diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7e3a08b --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +cmake-build-debug/ +.idea +/cmake-build-debug/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..04e4460 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,87 @@ +cmake_minimum_required(VERSION 3.5.1) +project(v2x_gw) + +# Default to C99 +if(NOT CMAKE_C_STANDARD) + set(CMAKE_C_STANDARD 99) +endif() + +# Default to C++14 +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() + +# compile options +# - activation will lead to a shitload of warnings of unused variables in autogenerated vcits lib +#if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") +# add_compile_options(-Wall -Wextra -Wpedantic) +#endif() + +# ZeroMQ configuration +# - activate relative paths for libraries (use that for deployment; WARNING: don't use with --symlink-install -> lib won't be found by file) +# - set lib location for building and linking +# - copy the lib files +#set(CMAKE_INSTALL_RPATH "$ORIGIN") +#set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) +set(ZEROMQ_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ext/libzmq/include") +set(ZEROMQ_LIBRARIES "${CMAKE_CURRENT_SOURCE_DIR}/ext/libzmq/libzmq.so") +install(FILES + "${CMAKE_CURRENT_SOURCE_DIR}/ext/libzmq/libzmq.so" + "${CMAKE_CURRENT_SOURCE_DIR}/ext/libzmq/libzmq.so.5" + "${CMAKE_CURRENT_SOURCE_DIR}/ext/libzmq/libzmq.so.5.2.4" + DESTINATION lib/${PROJECT_NAME}/ + ) + +# find dependencies +find_package(ament_cmake REQUIRED) +find_package(ament_cmake_auto REQUIRED) +find_package(ament_index_cpp REQUIRED) +find_package(rclcpp REQUIRED) +find_package(eigen3_cmake_module) +find_package(geometry_msgs REQUIRED) +find_package(nav_msgs REQUIRED) +find_package(visualization_msgs REQUIRED) +find_package(diagnostic_msgs REQUIRED) +find_package(tf2 REQUIRED) +find_package(tf2_ros REQUIRED) +find_package(std_msgs REQUIRED) +find_package(dbw_ford_msgs REQUIRED) +find_package(v2x_msgs REQUIRED) + +#pkg_check_modules(vcits REQUIRED) +add_subdirectory(vcits) + +# add executable and sources +ament_auto_add_executable(v2x_gw src/V2XGateway.cpp + src/server/V2XServer.cpp + src/server/V2XZMQServer.cpp + src/handler/V2XMHandler.cpp + src/handler/CAMHandler.cpp + src/handler/CPMHandler.cpp + src/handler/DENMHandler.cpp + src/handler/ExampleMHandler.cpp + ) + +# reference headers +target_include_directories(v2x_gw PUBLIC ${CMAKE_INSTALL_PREFIX}/include/ + include + include/server + include/handler + ${ZEROMQ_INCLUDE_DIR} + vcits/asn1c + . + ) + +# link libraries +ament_target_dependencies(v2x_gw rclcpp std_msgs geometry_msgs nav_msgs visualization_msgs diagnostic_msgs dbw_ford_msgs v2x_msgs tf2 tf2_ros) + +target_link_libraries(v2x_gw + ${ZEROMQ_LIBRARIES} + vcits) + +# install ros package dependencies +ament_auto_package( + INSTALL_TO_SHARE + launch + config +) diff --git a/FindZeroMQ.cmake b/FindZeroMQ.cmake new file mode 100644 index 0000000..32acc27 --- /dev/null +++ b/FindZeroMQ.cmake @@ -0,0 +1,36 @@ +# ZeroMQ.cmake from http://lists.gforge.inria.fr/pipermail/simgrid-devel/2012-July/001513.html + +SET (ZEROMQ_FIND_QUIETLY TRUE) +SET (ZEROMQ_FIND_REQUIRED FALSE) + +IF (NOT ZEROMQ_FOUND) + # Search user environment for headers, then default paths + FIND_PATH (ZEROMQ_INCLUDE_DIR zmq.hpp + PATHS ${ZEROMQROOT}/include $ENV{ZEROMQROOT}/include /usr/local/include + NO_DEFAULT_PATH) + FIND_PATH (ZEROMQ_INCLUDE_DIR zmq.hpp) + GET_FILENAME_COMPONENT (ZEROMQROOT ${ZEROMQ_INCLUDE_DIR} PATH) + + # Search user environment for libraries, then default paths + FIND_LIBRARY (ZEROMQ_LIBRARIES zmq + PATHS ${ZEROMQROOT}/lib $ENV{ZEROMQROOT}/lib /usr/local/lib + NO_DEFAULT_PATH) + FIND_LIBRARY (ZEROMQ_LIBRARIES zmq) + + # Set ZEROMQ_FOUND and error out if zmq is not found + INCLUDE (FindPackageHandleStandardArgs) + FIND_PACKAGE_HANDLE_STANDARD_ARGS (ZEROMQ + DEFAULT_MSG ZEROMQ_LIBRARIES ZEROMQ_INCLUDE_DIR) + + IF (ZEROMQ_FOUND) + MESSAGE (STATUS "ZeroMQ found: zmq library and zmq.hpp ") + MESSAGE (STATUS " * includes: ${ZEROMQ_INCLUDE_DIR}") + MESSAGE (STATUS " * libs: ${ZEROMQ_LIBRARIES}") + ELSE (ZEROMQ_FOUND) + IF(${ZEROMQ_LIBRARIES} STREQUAL "ZEROMQ_LIBRARIES-NOTFOUND") + MESSAGE (STATUS "ZeroMQ library does not exist") + ELSEIF(${ZEROMQ_INCLUDE_DIR} STREQUAL "ZEROMQ_INCLUDE_DIR-NOTFOUND") + MESSAGE (STATUS "ZeroMQ has a problem: zmq.hpp does not exist, try to download it from https://github.com/zeromq/cppzmq/blob/master/zmq.hpp") + ENDIF() + ENDIF (ZEROMQ_FOUND) +ENDIF (NOT ZEROMQ_FOUND) diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2ffd520 --- /dev/null +++ b/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2022, Virtual Vehicle +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 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 +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..3a0080b --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# V2X Gateway +The *v2x_gw* is part of the [vehicleCAPTAIN](https://github.com/virtual-vehicle/vehicle_captain) toolbox. + +The *v2x_gw* is a central ROS2 node that (i) connects to the vehicleCAPTAIN routing core (ii) converts V2X messages to ROS messages (iii) converts ROS messages to V2X messages. + +The vehicleCAPTAIN routing core may be replaced by your implementation for rx/tx of V2X messages. + +Version Support: +* v1.x + * v2x_msgs v1.1.0 + * vcits 1.0 + +## Copyright +Please cite the [vehicleCAPTAIN paper](https://TODO_link_to_paper_when_it_is_published) if you used any part of this library for your work. + +## Contribution Guidelines +Feel free to add fixes and new features! + +## Authors +Main Author: [Christoph Pilz](https://github.com/MrMushroom) + +## Acknowledgement +The majority of this work is part of my ([Christoph Pilz](https://www.researchgate.net/profile/Christoph-Pilz)) PhD studies at [Graz University of Technology](https://www.tugraz.at/home) in cooperation with the [Virtual Vehicle Research GmbH](https://www.v2c2.at/). + +Features are also integrated across various funded projects (see [vehicleCAPTAIN](https://github.com/virtual-vehicle/vehicle_captain)). diff --git a/USAGE_GUIDE.md b/USAGE_GUIDE.md new file mode 100644 index 0000000..d8997e8 --- /dev/null +++ b/USAGE_GUIDE.md @@ -0,0 +1,55 @@ +# Usage Guide +Check out the Requirements below! + +Afterwards simply check out the repo and integrate it into your ROS2 environment. + +## Requirements +This node requires the [v2x_msgs](https://github.com/virtual-vehicle/v2x_msgs) library from the [vehicleCAPTAIN](https://github.com/virtual-vehicle/vehicle_captain) toolbox. + +This node is designed for the [v2x_routing_core](https://github.com/virtual-vehicle/vehicle_captain_routing_core) from the [vehicleCAPTAIN](https://github.com/virtual-vehicle/vehicle_captain) toolbox. +However, you may introduce your own V2XServer connection. + +Also, check out the ROS2 dependencies (package.xml)! + +## In case you want to install ZMQ locally + +You may use zmq_setup.sh for setup + +In top level "CMakeLists.txt" replace setting of ZMQ libs with "FindZeroMQ.cmake" + +### LibZMQ v4.3.4 +```shell +cd /opt +git clone https://github.com/zeromq/libzmq.git +cd /opt/libzmq +git checkout v4.3.4 + +apt-get update -qq +apt-get install -qq --yes --no-install-recommends \ +libkrb5-dev \ +libsodium23 + +./autogen.sh +./configure --prefix=/usr/local --with-libgssapi_krb5 +make +make check +make install + +ldconfig && ldconfig -p | grep libzmq +``` + +### CPPZMQ v4.8.0 +WARNING: v4.8.0 recommended, but Ubuntu 18.04 has wrong cmake version! +WARNING: also for that reason, the -DCPPZMQ_BUILD_TESTS=OFF is required +```shell +cd /opt +git clone https://github.com/zeromq/cppzmq.git +cd /opt/cppzmq +git checkout v4.7.1 + +mkdir build +cd /opt/cppzmq/build + +cmake -DCPPZMQ_BUILD_TESTS=OFF .. +make install +``` diff --git a/config/v2x_gw.param.yaml b/config/v2x_gw.param.yaml new file mode 100644 index 0000000..eef17e3 --- /dev/null +++ b/config/v2x_gw.param.yaml @@ -0,0 +1,32 @@ +# config/v2x_gw.param.yaml +--- + +# Node-specific parameters +/**: + ros__parameters: + server: + type: "zmq" # type of the V2X server (supported: "zmq") + address: "vcaptain001.local" # hostname or ipv4 of the vehicleCAPTAIN routing core + receive_port: 5556 # 5556 is default for receiving from the vehicleCAPTAIN routing core + send_port: 5555 # 5555 is default for sending to the vehicleCAPTAIN routing core + topic_filter: "v2x." # supported: "v2x." ... get v2x messages (see vehicleCAPTAIN routing core docs) + cycle_time_ms: 1 # cycle time leads to communication update interval + + header: + station_id: 1337 # this value is pseudonymized and should be unique in a GN communication + + cam: + active: true # activate processing of CAM module + handler_debug_msg_throttle_ms: 5000 # throttle for debug msgs in milliseconds (throttles <=WARN) + + cpm: + active: true # activate processing of CPM module + handler_debug_msg_throttle_ms: 5000 # throttle for debug msgs in milliseconds (throttles <=WARN) + + denm: + active: true # activate processing of DENM module + handler_debug_msg_throttle_ms: 5000 # throttle for debug msgs in milliseconds (throttles <=WARN) + + examplem: + active: false # activate processing of ExampleM module + handler_debug_msg_throttle_ms: 5000 # throttle for debug msgs in milliseconds (throttles <=WARN) diff --git a/docs/v2x_gw_node_ros.drawio b/docs/v2x_gw_node_ros.drawio new file mode 100644 index 0000000..726bd0a --- /dev/null +++ b/docs/v2x_gw_node_ros.drawio @@ -0,0 +1 @@ +7VrZcqM6EP0aV819mJRBQJxHL1lmKluZ1CyPAmSsiYxcIGI7X38lkABb2HFdL8S+4zwEtYSQzulWt1pqgf5kfhvD6fiBBoi0zHYwb4FByzQNYLf5PyFZ5JLOZScXhDEOZKNS4OJ3JIXyvTDFAUqWGjJKCcPTZaFPowj5bEkG45jOlpuNKFn+6hSGSBO4PiS69CcO2DiXmgA4ZcUdwuFYfdqxrbxmAlVrOZVkDAM6q4jAdQv0Y0pZ/jSZ9xER6Clg8vdu1tQWI4tRxLZ5YXBjPty8Mdd9fjHd7/7L0Ex+fJW9vEGSyhn/MH9xwS1kaAYX/OmRc8r/fRk+uf/IibCFgofPaSoeBa4oboHeiEbMlfUGLzPoKdwMp50LCrxMKXimCWaYRlxE0IjX9MZsQmQPHk2jAAX3nhIQ6CHyLbpDMPtkJuP0M4ijSpkQOE2wlw1EfCZGfhon+A0NUZJrmZCOMCF9SmicTQcEEHVGPpcnLKavqFLj+B3kjXiNjrqCEMUMzSsiycItohPEYgGlrAVKIxZKZ2R5VmqYrWTjinJZlhRCqdVh0XfJO3+Q1NerQa83v/R/vtt3g/k7DOevnj24+2oBjVoUcEOQRRqzMQ1pBMl1Ke3FOTMSyrLNPaVTycMfxNhCWjVMGV2mNmEwZl1hpVwQ0Qgp2Q0Ww8+6zcclBrNW7TcpdkLT2EcbZi7tmH81RGxDOwPUcxojAhlXq+WVZ9/8OJqZDpGPxGdXaStJEQjPxpghdwozCGZ8iV4mYEX9R6OR6deqf+B4ju0UdGi6vi0ha21ixSQs3SIMs8YinEMZhGFriLsoCs4UblCzAh0Xb8v8vy5ABth2BbJ3XIGyV/lsM7euGkwpjlhS6flZCKrOyl5WlU57hey8x5L6Ymg7aENbsz5NPULO/nStfch4EHqqeXsvdlO4auW6FToVwwGgxnCKgHb/KxWoC+Ee7mAUEBQnGm4CLMwD3C7BoYi4mLCVHpQlGX8lfA3DUfiS2VGnFNxn1QOzlAzlHI1MJsNBP/UyU8rtzhBmFGAegckgj9uEAGspWLQ2L5W2+JOvVOT5rzZgy37bLqEbtFDXhea4BrpX6ncV1RrTio0JDdJsvawnWXHarrTwOTJZPL+qLRMcBFlf+4e13jXZW3om+2CY67HX4PrxvEEvEG4O9Utd05/PDPRVZ9K8qndq3K5DBILCpfDnUDyfNwvN635NTgaNsU9EGqbffX7pfntci/1WiRjz0ydikBHY6LLOr185lwBu7dc3R3PWCvM1uyCzXcO8cbhtkEb9kMdK3Gi48CEzhRmfncb+Z9iFrlfl09n0OxqyR9iEtj7eYG69l5Tx4Yd7Sauel+Mks4zOicNsbYmy0yjKV9pacgMjXwxg+OSKGpelo9G5e5Ji57h+h7huT7kHD2MY7Y99jHHcXL+pxxdPAZ3s5lR2cBFXJ+UjVCaqGp3hJOWB7DvMFP4kYNw6yD0cjnraqsvX7Dy8aT95f5DP9OTVpwSziBGbA1OPGy8uLk4EvU7j6OlZtZNBr/mTG/NKQ+oI0RzHMF78ku9nhd+icGGr4mBerRwsZGnpxMcnMEmwv3Los+dg0ZTR7ofR4rpQ4jjhokpk/6VxVxrNRmk0mqDxM9PR6L0NYP61qv3Q2GjGAjRyPeocadz1DsNuoYp+vpGnQvIzDi9WJxyDgasRXpxtLwjmvMbg4yBQy3N40H8NM714ShnvRqVU1EG5fbj07OY8xdXKIQioOYuqy1J0DhVVWlbjfuy/3wfa+9WfXHH3bza8WN4/zi/vlNe4wfW/7Vxtb9pIEP41SMlJifyCKflIIE2qS3KoRNeqX9BiL/a2ay9dLyHpr78Ze40xNsRJcNNeLaFgz77P6zOztB17GD5cSrIIboRHeccyvIeOPepYlmk7Bnwh5TGl9N/1U4Ivmac75YQJ+0E1UY/zl8yjcaGjEoIrtigSXRFF1FUFGpFSrIrd5oIXV10Qn5YIE5fwMvUT81SQUi3b7uUNV5T5QbZ0z+mmLSHJeuujxAHxxGqDZF907KEUQqVP4cOQcuRexpjBhym9/OLfOl8/XZ+F/7jfr0J5kk72/jlD1meQNFIvnlp8md1cWPPVdPC3ID1XBvH1Zz3EuCd8qRn2r/X5kii6Io/61Oox42W8YiEnEbydz0WkJrrFhHfCmR/Bsws7pBII91QqBmIY6AYlFkB1A8a9a/IolniOWBH3W/Z2HgjJfsC0hOs5oVkqrVFWr9BjgiOBbABV0hj6jDPmmFukG/JQ6HhNYqUJruCcLGI2Wx8jJNJn0blQSoS6U03eaxnhsenDhuppWVxSEVIlgaeGbu1r1j8WX1e5knYNTQsK+qmJRBuGv545lz08aPE/QxXMkiqc4Kv1MA1pHIOZTAMSeZzKeNqxB4lmePhgD0Ky6KBF9DjKkQGfLNiCAZp0k468SgcC7S/o5auErWCAtokczpaJqQT2TYnngaRKi8RKssjfPUxSl7J7Ol0IqfTYZCe7+sc08mp3dh9dTqeKhXSz95Z5gOBVorZSfKNDwQXYwSgSqb0wzrdImclwOlc7DSZeEBeOfZ30GXVzyketEkgSMHbOE9cUMM+jESq7UESRVLPxQAsBW05UxjmHD0hraJw6HWeEsnLOzfwdPthdqqGI4CyEJXpPwWxWNFaVFrHXtTxtEdoErF49E+h3G7IAq2QBJRlzlsgulXEWUMwXCTgEUXGaS/QOBT46MUtSt8tStyskzMmM8rGImWIC55dp3y3Jv5VwTbOmg+s3JFy70r2Bj/qYOo6xFC64naNbgEB30BLB93Fq7PcCZi76Bhg3AQfy5KDWRRxYi/r1tKhrNaRG3Qofkca9wMxi2x2JvyXMTvQE/q4BVdoTFs47Z8RFRkD1kpR4KSieM39j2GLvKBYxhXzQYbr2OBeWUxQFtpxxFgfJWOMooIC/ZtCUhvNs2uPnzxsvZ7Er2QxGH4EYyEsnxACMKAKeeyRE5dd9MVYnbEtMGebB6I4LJ+E7m2smt2cHS4kKFtr7vkQ4f74KmKInaEg0NeeFpHlrEcScbUyISydzVq2zKV+90fWRjhgCZ1ArXmi+Hw7Gd4MPt8e/yhmaWwf5gkHCuPrRsd/vPu8bbW+XKLWmVcpRt/1pQjwxUYbAi9T7hbGPSy6oy+bM3cOEHXsuuoXqiBqoME8b6wVXHSWB4JRAmGVkLJmkHBmtJFnsjKPLyKNew/miYz2ZMK5pm5EQ4mNTCaNRkgb1fJqVBQAeBMIXEeEXOXWLWXmfa5FwHgX4lSr1qPN+slSiKF4wqQHWheDVYyQUYGEJ8T3D3b9ABLFYSpfuOaejy1ZE+rQGmkEe7BWopJwodO+FWtehpeNUVXZu1pl4W9r5aaUdu1eR+lhVtR2rKVPtVSY/LHJFCE5v+n1Jl3S74JIQj9avC8LWQCrNbbCYgzgOWT9VmYc+bpOe/UmPU1ud9tRFqtTHaqou8q6tizQmXKemb2iqLNKvkC0mVJdU5fXb+Oj4MM5ho4qSLjNeFpZ5vfOpKtjAdyevT2ffZIaCdjf3lmWTI1E4/uFO33rGwxpPRTWoynh6TVWDzp5XDVqjrzp1oF0JZ7laU1kRAW7HNNXC2RKgGR4/yUb1MHj6+M9knZ5B3gqgDG81DBHlJYjXZms1q0KVJwDkn+/94m7yATebWiRueC6kTrGTe6F02x4N4ZTPrijV3Tqk9TOAp7jfuQQcWSXSNle1+t0nc9VutwoA95sCwJb9xrnqjAtMa5rNVM3sFxZPparOL5WqmuWr5+GgTVV/RqraM4qW6hh1c1WzsbJS+RoWfe/p6Wkx5hXu49LWPKK0UGs/1DLra8ozs1C7qSzULN/gtmnowcRbt0bVVB5qVl2s2uVc7HCp6NDqDAzcNH5yVAqRZ8u3PHnJr2fRiBtniNdoW18BpVA7mdtAQePfUeukDq7FNRPCxn4ekNnH/xtnZpXG3wxnWmUfM7q4bYHmWwDNnl0OOE7lD14bA5pW+YqsBZqH9uFrm3sN0KxUjMaAplW+LWuB5sHEWwE0K8XbFNC0qm6zKoBm0zgTI0+cDmBzPOg9YTwR4+vQp563Cn5iU4s/G1XuMv6sVO7G8Kf9R9Q5rbPfE3+Wr4uG4xZ+vgX8fFc3DDUHPzMA3MLPJl34WW1N+VXgp12+DWnh58HE+9bw0y7fbrxRnXN80wD6hFl31T7HLfZsVrObw57wmv8z96Rt438LsC/+Aw== \ No newline at end of file diff --git a/ext/libzmq/include/zmq/zmq.h b/ext/libzmq/include/zmq/zmq.h new file mode 100644 index 0000000..d05659f --- /dev/null +++ b/ext/libzmq/include/zmq/zmq.h @@ -0,0 +1,788 @@ +/* + Copyright (c) 2007-2016 Contributors as noted in the AUTHORS file + + This file is part of libzmq, the ZeroMQ core engine in C++. + + libzmq is free software; you can redistribute it and/or modify it under + the terms of the GNU Lesser General Public License (LGPL) as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + As a special exception, the Contributors give you permission to link + this library with independent modules to produce an executable, + regardless of the license terms of these independent modules, and to + copy and distribute the resulting executable under terms of your choice, + provided that you also meet, for each linked independent module, the + terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. + If you modify this library, you must extend this exception to your + version of the library. + + libzmq is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . + + ************************************************************************* + NOTE to contributors. This file comprises the principal public contract + for ZeroMQ API users. Any change to this file supplied in a stable + release SHOULD not break existing applications. + In practice this means that the value of constants must not change, and + that old values may not be reused for new constants. + ************************************************************************* +*/ + +#ifndef __ZMQ_H_INCLUDED__ +#define __ZMQ_H_INCLUDED__ + +/* Version macros for compile-time API version detection */ +#define ZMQ_VERSION_MAJOR 4 +#define ZMQ_VERSION_MINOR 3 +#define ZMQ_VERSION_PATCH 4 + +#define ZMQ_MAKE_VERSION(major, minor, patch) \ + ((major) *10000 + (minor) *100 + (patch)) +#define ZMQ_VERSION \ + ZMQ_MAKE_VERSION (ZMQ_VERSION_MAJOR, ZMQ_VERSION_MINOR, ZMQ_VERSION_PATCH) + +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined _WIN32_WCE +#include +#endif +#include +#include +#if defined _WIN32 +// Set target version to Windows Server 2008, Windows Vista or higher. +// Windows XP (0x0501) is supported but without client & server socket types. +#ifndef _WIN32_WINNT +#define _WIN32_WINNT 0x0600 +#endif + +#ifdef __MINGW32__ +// Require Windows XP or higher with MinGW for getaddrinfo(). +#if (_WIN32_WINNT >= 0x0501) +#else +#error You need at least Windows XP target +#endif +#endif +#endif + +/* Handle DSO symbol visibility */ +#if defined _WIN32 +#if defined ZMQ_STATIC +#define ZMQ_EXPORT +#elif defined DLL_EXPORT +#define ZMQ_EXPORT __declspec(dllexport) +#else +#define ZMQ_EXPORT __declspec(dllimport) +#endif +#else +#if defined __SUNPRO_C || defined __SUNPRO_CC +#define ZMQ_EXPORT __global +#elif (defined __GNUC__ && __GNUC__ >= 4) || defined __INTEL_COMPILER +#define ZMQ_EXPORT __attribute__ ((visibility ("default"))) +#else +#define ZMQ_EXPORT +#endif +#endif + +/* Define integer types needed for event interface */ +#define ZMQ_DEFINED_STDINT 1 +#if defined ZMQ_HAVE_SOLARIS || defined ZMQ_HAVE_OPENVMS +#include +#elif defined _MSC_VER && _MSC_VER < 1600 +#ifndef uint64_t +typedef unsigned __int64 uint64_t; +#endif +#ifndef int32_t +typedef __int32 int32_t; +#endif +#ifndef uint32_t +typedef unsigned __int32 uint32_t; +#endif +#ifndef uint16_t +typedef unsigned __int16 uint16_t; +#endif +#ifndef uint8_t +typedef unsigned __int8 uint8_t; +#endif +#else +#include +#endif + +// 32-bit AIX's pollfd struct members are called reqevents and rtnevents so it +// defines compatibility macros for them. Need to include that header first to +// stop build failures since zmq_pollset_t defines them as events and revents. +#ifdef ZMQ_HAVE_AIX +#include +#endif + + +/******************************************************************************/ +/* 0MQ errors. */ +/******************************************************************************/ + +/* A number random enough not to collide with different errno ranges on */ +/* different OSes. The assumption is that error_t is at least 32-bit type. */ +#define ZMQ_HAUSNUMERO 156384712 + +/* On Windows platform some of the standard POSIX errnos are not defined. */ +#ifndef ENOTSUP +#define ENOTSUP (ZMQ_HAUSNUMERO + 1) +#endif +#ifndef EPROTONOSUPPORT +#define EPROTONOSUPPORT (ZMQ_HAUSNUMERO + 2) +#endif +#ifndef ENOBUFS +#define ENOBUFS (ZMQ_HAUSNUMERO + 3) +#endif +#ifndef ENETDOWN +#define ENETDOWN (ZMQ_HAUSNUMERO + 4) +#endif +#ifndef EADDRINUSE +#define EADDRINUSE (ZMQ_HAUSNUMERO + 5) +#endif +#ifndef EADDRNOTAVAIL +#define EADDRNOTAVAIL (ZMQ_HAUSNUMERO + 6) +#endif +#ifndef ECONNREFUSED +#define ECONNREFUSED (ZMQ_HAUSNUMERO + 7) +#endif +#ifndef EINPROGRESS +#define EINPROGRESS (ZMQ_HAUSNUMERO + 8) +#endif +#ifndef ENOTSOCK +#define ENOTSOCK (ZMQ_HAUSNUMERO + 9) +#endif +#ifndef EMSGSIZE +#define EMSGSIZE (ZMQ_HAUSNUMERO + 10) +#endif +#ifndef EAFNOSUPPORT +#define EAFNOSUPPORT (ZMQ_HAUSNUMERO + 11) +#endif +#ifndef ENETUNREACH +#define ENETUNREACH (ZMQ_HAUSNUMERO + 12) +#endif +#ifndef ECONNABORTED +#define ECONNABORTED (ZMQ_HAUSNUMERO + 13) +#endif +#ifndef ECONNRESET +#define ECONNRESET (ZMQ_HAUSNUMERO + 14) +#endif +#ifndef ENOTCONN +#define ENOTCONN (ZMQ_HAUSNUMERO + 15) +#endif +#ifndef ETIMEDOUT +#define ETIMEDOUT (ZMQ_HAUSNUMERO + 16) +#endif +#ifndef EHOSTUNREACH +#define EHOSTUNREACH (ZMQ_HAUSNUMERO + 17) +#endif +#ifndef ENETRESET +#define ENETRESET (ZMQ_HAUSNUMERO + 18) +#endif + +/* Native 0MQ error codes. */ +#define EFSM (ZMQ_HAUSNUMERO + 51) +#define ENOCOMPATPROTO (ZMQ_HAUSNUMERO + 52) +#define ETERM (ZMQ_HAUSNUMERO + 53) +#define EMTHREAD (ZMQ_HAUSNUMERO + 54) + +/* This function retrieves the errno as it is known to 0MQ library. The goal */ +/* of this function is to make the code 100% portable, including where 0MQ */ +/* compiled with certain CRT library (on Windows) is linked to an */ +/* application that uses different CRT library. */ +ZMQ_EXPORT int zmq_errno (void); + +/* Resolves system errors and 0MQ errors to human-readable string. */ +ZMQ_EXPORT const char *zmq_strerror (int errnum_); + +/* Run-time API version detection */ +ZMQ_EXPORT void zmq_version (int *major_, int *minor_, int *patch_); + +/******************************************************************************/ +/* 0MQ infrastructure (a.k.a. context) initialisation & termination. */ +/******************************************************************************/ + +/* Context options */ +#define ZMQ_IO_THREADS 1 +#define ZMQ_MAX_SOCKETS 2 +#define ZMQ_SOCKET_LIMIT 3 +#define ZMQ_THREAD_PRIORITY 3 +#define ZMQ_THREAD_SCHED_POLICY 4 +#define ZMQ_MAX_MSGSZ 5 +#define ZMQ_MSG_T_SIZE 6 +#define ZMQ_THREAD_AFFINITY_CPU_ADD 7 +#define ZMQ_THREAD_AFFINITY_CPU_REMOVE 8 +#define ZMQ_THREAD_NAME_PREFIX 9 + +/* Default for new contexts */ +#define ZMQ_IO_THREADS_DFLT 1 +#define ZMQ_MAX_SOCKETS_DFLT 1023 +#define ZMQ_THREAD_PRIORITY_DFLT -1 +#define ZMQ_THREAD_SCHED_POLICY_DFLT -1 + +ZMQ_EXPORT void *zmq_ctx_new (void); +ZMQ_EXPORT int zmq_ctx_term (void *context_); +ZMQ_EXPORT int zmq_ctx_shutdown (void *context_); +ZMQ_EXPORT int zmq_ctx_set (void *context_, int option_, int optval_); +ZMQ_EXPORT int zmq_ctx_get (void *context_, int option_); + +/* Old (legacy) API */ +ZMQ_EXPORT void *zmq_init (int io_threads_); +ZMQ_EXPORT int zmq_term (void *context_); +ZMQ_EXPORT int zmq_ctx_destroy (void *context_); + + +/******************************************************************************/ +/* 0MQ message definition. */ +/******************************************************************************/ + +/* Some architectures, like sparc64 and some variants of aarch64, enforce pointer + * alignment and raise sigbus on violations. Make sure applications allocate + * zmq_msg_t on addresses aligned on a pointer-size boundary to avoid this issue. + */ +typedef struct zmq_msg_t +{ +#if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_ARM64)) + __declspec(align (8)) unsigned char _[64]; +#elif defined(_MSC_VER) \ + && (defined(_M_IX86) || defined(_M_ARM_ARMV7VE) || defined(_M_ARM)) + __declspec(align (4)) unsigned char _[64]; +#elif defined(__GNUC__) || defined(__INTEL_COMPILER) \ + || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x590) \ + || (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x590) + unsigned char _[64] __attribute__ ((aligned (sizeof (void *)))); +#else + unsigned char _[64]; +#endif +} zmq_msg_t; + +typedef void(zmq_free_fn) (void *data_, void *hint_); + +ZMQ_EXPORT int zmq_msg_init (zmq_msg_t *msg_); +ZMQ_EXPORT int zmq_msg_init_size (zmq_msg_t *msg_, size_t size_); +ZMQ_EXPORT int zmq_msg_init_data ( + zmq_msg_t *msg_, void *data_, size_t size_, zmq_free_fn *ffn_, void *hint_); +ZMQ_EXPORT int zmq_msg_send (zmq_msg_t *msg_, void *s_, int flags_); +ZMQ_EXPORT int zmq_msg_recv (zmq_msg_t *msg_, void *s_, int flags_); +ZMQ_EXPORT int zmq_msg_close (zmq_msg_t *msg_); +ZMQ_EXPORT int zmq_msg_move (zmq_msg_t *dest_, zmq_msg_t *src_); +ZMQ_EXPORT int zmq_msg_copy (zmq_msg_t *dest_, zmq_msg_t *src_); +ZMQ_EXPORT void *zmq_msg_data (zmq_msg_t *msg_); +ZMQ_EXPORT size_t zmq_msg_size (const zmq_msg_t *msg_); +ZMQ_EXPORT int zmq_msg_more (const zmq_msg_t *msg_); +ZMQ_EXPORT int zmq_msg_get (const zmq_msg_t *msg_, int property_); +ZMQ_EXPORT int zmq_msg_set (zmq_msg_t *msg_, int property_, int optval_); +ZMQ_EXPORT const char *zmq_msg_gets (const zmq_msg_t *msg_, + const char *property_); + +/******************************************************************************/ +/* 0MQ socket definition. */ +/******************************************************************************/ + +/* Socket types. */ +#define ZMQ_PAIR 0 +#define ZMQ_PUB 1 +#define ZMQ_SUB 2 +#define ZMQ_REQ 3 +#define ZMQ_REP 4 +#define ZMQ_DEALER 5 +#define ZMQ_ROUTER 6 +#define ZMQ_PULL 7 +#define ZMQ_PUSH 8 +#define ZMQ_XPUB 9 +#define ZMQ_XSUB 10 +#define ZMQ_STREAM 11 + +/* Deprecated aliases */ +#define ZMQ_XREQ ZMQ_DEALER +#define ZMQ_XREP ZMQ_ROUTER + +/* Socket options. */ +#define ZMQ_AFFINITY 4 +#define ZMQ_ROUTING_ID 5 +#define ZMQ_SUBSCRIBE 6 +#define ZMQ_UNSUBSCRIBE 7 +#define ZMQ_RATE 8 +#define ZMQ_RECOVERY_IVL 9 +#define ZMQ_SNDBUF 11 +#define ZMQ_RCVBUF 12 +#define ZMQ_RCVMORE 13 +#define ZMQ_FD 14 +#define ZMQ_EVENTS 15 +#define ZMQ_TYPE 16 +#define ZMQ_LINGER 17 +#define ZMQ_RECONNECT_IVL 18 +#define ZMQ_BACKLOG 19 +#define ZMQ_RECONNECT_IVL_MAX 21 +#define ZMQ_MAXMSGSIZE 22 +#define ZMQ_SNDHWM 23 +#define ZMQ_RCVHWM 24 +#define ZMQ_MULTICAST_HOPS 25 +#define ZMQ_RCVTIMEO 27 +#define ZMQ_SNDTIMEO 28 +#define ZMQ_LAST_ENDPOINT 32 +#define ZMQ_ROUTER_MANDATORY 33 +#define ZMQ_TCP_KEEPALIVE 34 +#define ZMQ_TCP_KEEPALIVE_CNT 35 +#define ZMQ_TCP_KEEPALIVE_IDLE 36 +#define ZMQ_TCP_KEEPALIVE_INTVL 37 +#define ZMQ_IMMEDIATE 39 +#define ZMQ_XPUB_VERBOSE 40 +#define ZMQ_ROUTER_RAW 41 +#define ZMQ_IPV6 42 +#define ZMQ_MECHANISM 43 +#define ZMQ_PLAIN_SERVER 44 +#define ZMQ_PLAIN_USERNAME 45 +#define ZMQ_PLAIN_PASSWORD 46 +#define ZMQ_CURVE_SERVER 47 +#define ZMQ_CURVE_PUBLICKEY 48 +#define ZMQ_CURVE_SECRETKEY 49 +#define ZMQ_CURVE_SERVERKEY 50 +#define ZMQ_PROBE_ROUTER 51 +#define ZMQ_REQ_CORRELATE 52 +#define ZMQ_REQ_RELAXED 53 +#define ZMQ_CONFLATE 54 +#define ZMQ_ZAP_DOMAIN 55 +#define ZMQ_ROUTER_HANDOVER 56 +#define ZMQ_TOS 57 +#define ZMQ_CONNECT_ROUTING_ID 61 +#define ZMQ_GSSAPI_SERVER 62 +#define ZMQ_GSSAPI_PRINCIPAL 63 +#define ZMQ_GSSAPI_SERVICE_PRINCIPAL 64 +#define ZMQ_GSSAPI_PLAINTEXT 65 +#define ZMQ_HANDSHAKE_IVL 66 +#define ZMQ_SOCKS_PROXY 68 +#define ZMQ_XPUB_NODROP 69 +#define ZMQ_BLOCKY 70 +#define ZMQ_XPUB_MANUAL 71 +#define ZMQ_XPUB_WELCOME_MSG 72 +#define ZMQ_STREAM_NOTIFY 73 +#define ZMQ_INVERT_MATCHING 74 +#define ZMQ_HEARTBEAT_IVL 75 +#define ZMQ_HEARTBEAT_TTL 76 +#define ZMQ_HEARTBEAT_TIMEOUT 77 +#define ZMQ_XPUB_VERBOSER 78 +#define ZMQ_CONNECT_TIMEOUT 79 +#define ZMQ_TCP_MAXRT 80 +#define ZMQ_THREAD_SAFE 81 +#define ZMQ_MULTICAST_MAXTPDU 84 +#define ZMQ_VMCI_BUFFER_SIZE 85 +#define ZMQ_VMCI_BUFFER_MIN_SIZE 86 +#define ZMQ_VMCI_BUFFER_MAX_SIZE 87 +#define ZMQ_VMCI_CONNECT_TIMEOUT 88 +#define ZMQ_USE_FD 89 +#define ZMQ_GSSAPI_PRINCIPAL_NAMETYPE 90 +#define ZMQ_GSSAPI_SERVICE_PRINCIPAL_NAMETYPE 91 +#define ZMQ_BINDTODEVICE 92 + +/* Message options */ +#define ZMQ_MORE 1 +#define ZMQ_SHARED 3 + +/* Send/recv options. */ +#define ZMQ_DONTWAIT 1 +#define ZMQ_SNDMORE 2 + +/* Security mechanisms */ +#define ZMQ_NULL 0 +#define ZMQ_PLAIN 1 +#define ZMQ_CURVE 2 +#define ZMQ_GSSAPI 3 + +/* RADIO-DISH protocol */ +#define ZMQ_GROUP_MAX_LENGTH 255 + +/* Deprecated options and aliases */ +#define ZMQ_IDENTITY ZMQ_ROUTING_ID +#define ZMQ_CONNECT_RID ZMQ_CONNECT_ROUTING_ID +#define ZMQ_TCP_ACCEPT_FILTER 38 +#define ZMQ_IPC_FILTER_PID 58 +#define ZMQ_IPC_FILTER_UID 59 +#define ZMQ_IPC_FILTER_GID 60 +#define ZMQ_IPV4ONLY 31 +#define ZMQ_DELAY_ATTACH_ON_CONNECT ZMQ_IMMEDIATE +#define ZMQ_NOBLOCK ZMQ_DONTWAIT +#define ZMQ_FAIL_UNROUTABLE ZMQ_ROUTER_MANDATORY +#define ZMQ_ROUTER_BEHAVIOR ZMQ_ROUTER_MANDATORY + +/* Deprecated Message options */ +#define ZMQ_SRCFD 2 + +/******************************************************************************/ +/* GSSAPI definitions */ +/******************************************************************************/ + +/* GSSAPI principal name types */ +#define ZMQ_GSSAPI_NT_HOSTBASED 0 +#define ZMQ_GSSAPI_NT_USER_NAME 1 +#define ZMQ_GSSAPI_NT_KRB5_PRINCIPAL 2 + +/******************************************************************************/ +/* 0MQ socket events and monitoring */ +/******************************************************************************/ + +/* Socket transport events (TCP, IPC and TIPC only) */ + +#define ZMQ_EVENT_CONNECTED 0x0001 +#define ZMQ_EVENT_CONNECT_DELAYED 0x0002 +#define ZMQ_EVENT_CONNECT_RETRIED 0x0004 +#define ZMQ_EVENT_LISTENING 0x0008 +#define ZMQ_EVENT_BIND_FAILED 0x0010 +#define ZMQ_EVENT_ACCEPTED 0x0020 +#define ZMQ_EVENT_ACCEPT_FAILED 0x0040 +#define ZMQ_EVENT_CLOSED 0x0080 +#define ZMQ_EVENT_CLOSE_FAILED 0x0100 +#define ZMQ_EVENT_DISCONNECTED 0x0200 +#define ZMQ_EVENT_MONITOR_STOPPED 0x0400 +#define ZMQ_EVENT_ALL 0xFFFF +/* Unspecified system errors during handshake. Event value is an errno. */ +#define ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL 0x0800 +/* Handshake complete successfully with successful authentication (if * + * enabled). Event value is unused. */ +#define ZMQ_EVENT_HANDSHAKE_SUCCEEDED 0x1000 +/* Protocol errors between ZMTP peers or between server and ZAP handler. * + * Event value is one of ZMQ_PROTOCOL_ERROR_* */ +#define ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL 0x2000 +/* Failed authentication requests. Event value is the numeric ZAP status * + * code, i.e. 300, 400 or 500. */ +#define ZMQ_EVENT_HANDSHAKE_FAILED_AUTH 0x4000 +#define ZMQ_PROTOCOL_ERROR_ZMTP_UNSPECIFIED 0x10000000 +#define ZMQ_PROTOCOL_ERROR_ZMTP_UNEXPECTED_COMMAND 0x10000001 +#define ZMQ_PROTOCOL_ERROR_ZMTP_INVALID_SEQUENCE 0x10000002 +#define ZMQ_PROTOCOL_ERROR_ZMTP_KEY_EXCHANGE 0x10000003 +#define ZMQ_PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_UNSPECIFIED 0x10000011 +#define ZMQ_PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_MESSAGE 0x10000012 +#define ZMQ_PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_HELLO 0x10000013 +#define ZMQ_PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_INITIATE 0x10000014 +#define ZMQ_PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_ERROR 0x10000015 +#define ZMQ_PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_READY 0x10000016 +#define ZMQ_PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_WELCOME 0x10000017 +#define ZMQ_PROTOCOL_ERROR_ZMTP_INVALID_METADATA 0x10000018 +// the following two may be due to erroneous configuration of a peer +#define ZMQ_PROTOCOL_ERROR_ZMTP_CRYPTOGRAPHIC 0x11000001 +#define ZMQ_PROTOCOL_ERROR_ZMTP_MECHANISM_MISMATCH 0x11000002 +#define ZMQ_PROTOCOL_ERROR_ZAP_UNSPECIFIED 0x20000000 +#define ZMQ_PROTOCOL_ERROR_ZAP_MALFORMED_REPLY 0x20000001 +#define ZMQ_PROTOCOL_ERROR_ZAP_BAD_REQUEST_ID 0x20000002 +#define ZMQ_PROTOCOL_ERROR_ZAP_BAD_VERSION 0x20000003 +#define ZMQ_PROTOCOL_ERROR_ZAP_INVALID_STATUS_CODE 0x20000004 +#define ZMQ_PROTOCOL_ERROR_ZAP_INVALID_METADATA 0x20000005 +#define ZMQ_PROTOCOL_ERROR_WS_UNSPECIFIED 0x30000000 + +ZMQ_EXPORT void *zmq_socket (void *, int type_); +ZMQ_EXPORT int zmq_close (void *s_); +ZMQ_EXPORT int +zmq_setsockopt (void *s_, int option_, const void *optval_, size_t optvallen_); +ZMQ_EXPORT int +zmq_getsockopt (void *s_, int option_, void *optval_, size_t *optvallen_); +ZMQ_EXPORT int zmq_bind (void *s_, const char *addr_); +ZMQ_EXPORT int zmq_connect (void *s_, const char *addr_); +ZMQ_EXPORT int zmq_unbind (void *s_, const char *addr_); +ZMQ_EXPORT int zmq_disconnect (void *s_, const char *addr_); +ZMQ_EXPORT int zmq_send (void *s_, const void *buf_, size_t len_, int flags_); +ZMQ_EXPORT int +zmq_send_const (void *s_, const void *buf_, size_t len_, int flags_); +ZMQ_EXPORT int zmq_recv (void *s_, void *buf_, size_t len_, int flags_); +ZMQ_EXPORT int zmq_socket_monitor (void *s_, const char *addr_, int events_); + +/******************************************************************************/ +/* Hide socket fd type; this was before zmq_poller_event_t typedef below */ +/******************************************************************************/ + +#if defined _WIN32 +// Windows uses a pointer-sized unsigned integer to store the socket fd. +#if defined _WIN64 +typedef unsigned __int64 zmq_fd_t; +#else +typedef unsigned int zmq_fd_t; +#endif +#else +typedef int zmq_fd_t; +#endif + +/******************************************************************************/ +/* Deprecated I/O multiplexing. Prefer using zmq_poller API */ +/******************************************************************************/ + +#define ZMQ_POLLIN 1 +#define ZMQ_POLLOUT 2 +#define ZMQ_POLLERR 4 +#define ZMQ_POLLPRI 8 + +typedef struct zmq_pollitem_t +{ + void *socket; + zmq_fd_t fd; + short events; + short revents; +} zmq_pollitem_t; + +#define ZMQ_POLLITEMS_DFLT 16 + +ZMQ_EXPORT int zmq_poll (zmq_pollitem_t *items_, int nitems_, long timeout_); + +/******************************************************************************/ +/* Message proxying */ +/******************************************************************************/ + +ZMQ_EXPORT int zmq_proxy (void *frontend_, void *backend_, void *capture_); +ZMQ_EXPORT int zmq_proxy_steerable (void *frontend_, + void *backend_, + void *capture_, + void *control_); + +/******************************************************************************/ +/* Probe library capabilities */ +/******************************************************************************/ + +#define ZMQ_HAS_CAPABILITIES 1 +ZMQ_EXPORT int zmq_has (const char *capability_); + +/* Deprecated aliases */ +#define ZMQ_STREAMER 1 +#define ZMQ_FORWARDER 2 +#define ZMQ_QUEUE 3 + +/* Deprecated methods */ +ZMQ_EXPORT int zmq_device (int type_, void *frontend_, void *backend_); +ZMQ_EXPORT int zmq_sendmsg (void *s_, zmq_msg_t *msg_, int flags_); +ZMQ_EXPORT int zmq_recvmsg (void *s_, zmq_msg_t *msg_, int flags_); +struct iovec; +ZMQ_EXPORT int +zmq_sendiov (void *s_, struct iovec *iov_, size_t count_, int flags_); +ZMQ_EXPORT int +zmq_recviov (void *s_, struct iovec *iov_, size_t *count_, int flags_); + +/******************************************************************************/ +/* Encryption functions */ +/******************************************************************************/ + +/* Encode data with Z85 encoding. Returns encoded data */ +ZMQ_EXPORT char * +zmq_z85_encode (char *dest_, const uint8_t *data_, size_t size_); + +/* Decode data with Z85 encoding. Returns decoded data */ +ZMQ_EXPORT uint8_t *zmq_z85_decode (uint8_t *dest_, const char *string_); + +/* Generate z85-encoded public and private keypair with tweetnacl/libsodium. */ +/* Returns 0 on success. */ +ZMQ_EXPORT int zmq_curve_keypair (char *z85_public_key_, char *z85_secret_key_); + +/* Derive the z85-encoded public key from the z85-encoded secret key. */ +/* Returns 0 on success. */ +ZMQ_EXPORT int zmq_curve_public (char *z85_public_key_, + const char *z85_secret_key_); + +/******************************************************************************/ +/* Atomic utility methods */ +/******************************************************************************/ + +ZMQ_EXPORT void *zmq_atomic_counter_new (void); +ZMQ_EXPORT void zmq_atomic_counter_set (void *counter_, int value_); +ZMQ_EXPORT int zmq_atomic_counter_inc (void *counter_); +ZMQ_EXPORT int zmq_atomic_counter_dec (void *counter_); +ZMQ_EXPORT int zmq_atomic_counter_value (void *counter_); +ZMQ_EXPORT void zmq_atomic_counter_destroy (void **counter_p_); + +/******************************************************************************/ +/* Scheduling timers */ +/******************************************************************************/ + +#define ZMQ_HAVE_TIMERS + +typedef void(zmq_timer_fn) (int timer_id, void *arg); + +ZMQ_EXPORT void *zmq_timers_new (void); +ZMQ_EXPORT int zmq_timers_destroy (void **timers_p); +ZMQ_EXPORT int +zmq_timers_add (void *timers, size_t interval, zmq_timer_fn handler, void *arg); +ZMQ_EXPORT int zmq_timers_cancel (void *timers, int timer_id); +ZMQ_EXPORT int +zmq_timers_set_interval (void *timers, int timer_id, size_t interval); +ZMQ_EXPORT int zmq_timers_reset (void *timers, int timer_id); +ZMQ_EXPORT long zmq_timers_timeout (void *timers); +ZMQ_EXPORT int zmq_timers_execute (void *timers); + + +/******************************************************************************/ +/* These functions are not documented by man pages -- use at your own risk. */ +/* If you need these to be part of the formal ZMQ API, then (a) write a man */ +/* page, and (b) write a test case in tests. */ +/******************************************************************************/ + +/* Helper functions are used by perf tests so that they don't have to care */ +/* about minutiae of time-related functions on different OS platforms. */ + +/* Starts the stopwatch. Returns the handle to the watch. */ +ZMQ_EXPORT void *zmq_stopwatch_start (void); + +/* Returns the number of microseconds elapsed since the stopwatch was */ +/* started, but does not stop or deallocate the stopwatch. */ +ZMQ_EXPORT unsigned long zmq_stopwatch_intermediate (void *watch_); + +/* Stops the stopwatch. Returns the number of microseconds elapsed since */ +/* the stopwatch was started, and deallocates that watch. */ +ZMQ_EXPORT unsigned long zmq_stopwatch_stop (void *watch_); + +/* Sleeps for specified number of seconds. */ +ZMQ_EXPORT void zmq_sleep (int seconds_); + +typedef void(zmq_thread_fn) (void *); + +/* Start a thread. Returns a handle to the thread. */ +ZMQ_EXPORT void *zmq_threadstart (zmq_thread_fn *func_, void *arg_); + +/* Wait for thread to complete then free up resources. */ +ZMQ_EXPORT void zmq_threadclose (void *thread_); + + +/******************************************************************************/ +/* These functions are DRAFT and disabled in stable releases, and subject to */ +/* change at ANY time until declared stable. */ +/******************************************************************************/ + +#ifdef ZMQ_BUILD_DRAFT_API + +/* DRAFT Socket types. */ +#define ZMQ_SERVER 12 +#define ZMQ_CLIENT 13 +#define ZMQ_RADIO 14 +#define ZMQ_DISH 15 +#define ZMQ_GATHER 16 +#define ZMQ_SCATTER 17 +#define ZMQ_DGRAM 18 +#define ZMQ_PEER 19 +#define ZMQ_CHANNEL 20 + +/* DRAFT Socket options. */ +#define ZMQ_ZAP_ENFORCE_DOMAIN 93 +#define ZMQ_LOOPBACK_FASTPATH 94 +#define ZMQ_METADATA 95 +#define ZMQ_MULTICAST_LOOP 96 +#define ZMQ_ROUTER_NOTIFY 97 +#define ZMQ_XPUB_MANUAL_LAST_VALUE 98 +#define ZMQ_SOCKS_USERNAME 99 +#define ZMQ_SOCKS_PASSWORD 100 +#define ZMQ_IN_BATCH_SIZE 101 +#define ZMQ_OUT_BATCH_SIZE 102 +#define ZMQ_WSS_KEY_PEM 103 +#define ZMQ_WSS_CERT_PEM 104 +#define ZMQ_WSS_TRUST_PEM 105 +#define ZMQ_WSS_HOSTNAME 106 +#define ZMQ_WSS_TRUST_SYSTEM 107 +#define ZMQ_ONLY_FIRST_SUBSCRIBE 108 +#define ZMQ_RECONNECT_STOP 109 +#define ZMQ_HELLO_MSG 110 +#define ZMQ_DISCONNECT_MSG 111 +#define ZMQ_PRIORITY 112 + +/* DRAFT ZMQ_RECONNECT_STOP options */ +#define ZMQ_RECONNECT_STOP_CONN_REFUSED 0x1 +#define ZMQ_RECONNECT_STOP_HANDSHAKE_FAILED 0x2 +#define ZMQ_RECONNECT_STOP_AFTER_DISCONNECT 0x3 + +/* DRAFT Context options */ +#define ZMQ_ZERO_COPY_RECV 10 + +/* DRAFT Context methods. */ +ZMQ_EXPORT int zmq_ctx_set_ext (void *context_, + int option_, + const void *optval_, + size_t optvallen_); +ZMQ_EXPORT int zmq_ctx_get_ext (void *context_, + int option_, + void *optval_, + size_t *optvallen_); + +/* DRAFT Socket methods. */ +ZMQ_EXPORT int zmq_join (void *s, const char *group); +ZMQ_EXPORT int zmq_leave (void *s, const char *group); +ZMQ_EXPORT uint32_t zmq_connect_peer (void *s_, const char *addr_); + +/* DRAFT Msg methods. */ +ZMQ_EXPORT int zmq_msg_set_routing_id (zmq_msg_t *msg, uint32_t routing_id); +ZMQ_EXPORT uint32_t zmq_msg_routing_id (zmq_msg_t *msg); +ZMQ_EXPORT int zmq_msg_set_group (zmq_msg_t *msg, const char *group); +ZMQ_EXPORT const char *zmq_msg_group (zmq_msg_t *msg); +ZMQ_EXPORT int +zmq_msg_init_buffer (zmq_msg_t *msg_, const void *buf_, size_t size_); + +/* DRAFT Msg property names. */ +#define ZMQ_MSG_PROPERTY_ROUTING_ID "Routing-Id" +#define ZMQ_MSG_PROPERTY_SOCKET_TYPE "Socket-Type" +#define ZMQ_MSG_PROPERTY_USER_ID "User-Id" +#define ZMQ_MSG_PROPERTY_PEER_ADDRESS "Peer-Address" + +/* Router notify options */ +#define ZMQ_NOTIFY_CONNECT 1 +#define ZMQ_NOTIFY_DISCONNECT 2 + +/******************************************************************************/ +/* Poller polling on sockets,fd and thread-safe sockets */ +/******************************************************************************/ + +#define ZMQ_HAVE_POLLER + +typedef struct zmq_poller_event_t +{ + void *socket; + zmq_fd_t fd; + void *user_data; + short events; +} zmq_poller_event_t; + +ZMQ_EXPORT void *zmq_poller_new (void); +ZMQ_EXPORT int zmq_poller_destroy (void **poller_p); +ZMQ_EXPORT int zmq_poller_size (void *poller); +ZMQ_EXPORT int +zmq_poller_add (void *poller, void *socket, void *user_data, short events); +ZMQ_EXPORT int zmq_poller_modify (void *poller, void *socket, short events); +ZMQ_EXPORT int zmq_poller_remove (void *poller, void *socket); +ZMQ_EXPORT int +zmq_poller_wait (void *poller, zmq_poller_event_t *event, long timeout); +ZMQ_EXPORT int zmq_poller_wait_all (void *poller, + zmq_poller_event_t *events, + int n_events, + long timeout); +ZMQ_EXPORT int zmq_poller_fd (void *poller, zmq_fd_t *fd); + +ZMQ_EXPORT int +zmq_poller_add_fd (void *poller, zmq_fd_t fd, void *user_data, short events); +ZMQ_EXPORT int zmq_poller_modify_fd (void *poller, zmq_fd_t fd, short events); +ZMQ_EXPORT int zmq_poller_remove_fd (void *poller, zmq_fd_t fd); + +ZMQ_EXPORT int zmq_socket_get_peer_state (void *socket, + const void *routing_id, + size_t routing_id_size); + +/* DRAFT Socket monitoring events */ +#define ZMQ_EVENT_PIPES_STATS 0x10000 + +#define ZMQ_CURRENT_EVENT_VERSION 1 +#define ZMQ_CURRENT_EVENT_VERSION_DRAFT 2 + +#define ZMQ_EVENT_ALL_V1 ZMQ_EVENT_ALL +#define ZMQ_EVENT_ALL_V2 ZMQ_EVENT_ALL_V1 | ZMQ_EVENT_PIPES_STATS + +ZMQ_EXPORT int zmq_socket_monitor_versioned ( + void *s_, const char *addr_, uint64_t events_, int event_version_, int type_); +ZMQ_EXPORT int zmq_socket_monitor_pipes_stats (void *s); + +#endif // ZMQ_BUILD_DRAFT_API + + +#undef ZMQ_EXPORT + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/ext/libzmq/include/zmq/zmq.hpp b/ext/libzmq/include/zmq/zmq.hpp new file mode 100644 index 0000000..8da9a2d --- /dev/null +++ b/ext/libzmq/include/zmq/zmq.hpp @@ -0,0 +1,2708 @@ +/* + Copyright (c) 2016-2017 ZeroMQ community + Copyright (c) 2009-2011 250bpm s.r.o. + Copyright (c) 2011 Botond Ballo + Copyright (c) 2007-2009 iMatix Corporation + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. +*/ + +#ifndef __ZMQ_HPP_INCLUDED__ +#define __ZMQ_HPP_INCLUDED__ + +#ifdef _WIN32 +#ifndef NOMINMAX +#define NOMINMAX +#endif +#endif + +// included here for _HAS_CXX* macros +#include + +#if defined(_MSVC_LANG) +#define CPPZMQ_LANG _MSVC_LANG +#else +#define CPPZMQ_LANG __cplusplus +#endif +// overwrite if specific language macros indicate higher version +#if defined(_HAS_CXX14) && _HAS_CXX14 && CPPZMQ_LANG < 201402L +#undef CPPZMQ_LANG +#define CPPZMQ_LANG 201402L +#endif +#if defined(_HAS_CXX17) && _HAS_CXX17 && CPPZMQ_LANG < 201703L +#undef CPPZMQ_LANG +#define CPPZMQ_LANG 201703L +#endif + +// macros defined if has a specific standard or greater +#if CPPZMQ_LANG >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900) +#define ZMQ_CPP11 +#endif +#if CPPZMQ_LANG >= 201402L +#define ZMQ_CPP14 +#endif +#if CPPZMQ_LANG >= 201703L +#define ZMQ_CPP17 +#endif + +#if defined(ZMQ_CPP14) && !defined(_MSC_VER) +#define ZMQ_DEPRECATED(msg) [[deprecated(msg)]] +#elif defined(_MSC_VER) +#define ZMQ_DEPRECATED(msg) __declspec(deprecated(msg)) +#elif defined(__GNUC__) +#define ZMQ_DEPRECATED(msg) __attribute__((deprecated(msg))) +#endif + +#if defined(ZMQ_CPP17) +#define ZMQ_NODISCARD [[nodiscard]] +#else +#define ZMQ_NODISCARD +#endif + +#if defined(ZMQ_CPP11) +#define ZMQ_NOTHROW noexcept +#define ZMQ_EXPLICIT explicit +#define ZMQ_OVERRIDE override +#define ZMQ_NULLPTR nullptr +#define ZMQ_CONSTEXPR_FN constexpr +#define ZMQ_CONSTEXPR_VAR constexpr +#define ZMQ_CPP11_DEPRECATED(msg) ZMQ_DEPRECATED(msg) +#else +#define ZMQ_NOTHROW throw() +#define ZMQ_EXPLICIT +#define ZMQ_OVERRIDE +#define ZMQ_NULLPTR 0 +#define ZMQ_CONSTEXPR_FN +#define ZMQ_CONSTEXPR_VAR const +#define ZMQ_CPP11_DEPRECATED(msg) +#endif +#if defined(ZMQ_CPP14) && (!defined(_MSC_VER) || _MSC_VER > 1900) +#define ZMQ_EXTENDED_CONSTEXPR +#endif +#if defined(ZMQ_CPP17) +#define ZMQ_INLINE_VAR inline +#define ZMQ_CONSTEXPR_IF constexpr +#else +#define ZMQ_INLINE_VAR +#define ZMQ_CONSTEXPR_IF +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include +#ifdef ZMQ_CPP11 +#include +#include +#include +#include +#endif + +#if defined(__has_include) && defined(ZMQ_CPP17) +#define CPPZMQ_HAS_INCLUDE_CPP17(X) __has_include(X) +#else +#define CPPZMQ_HAS_INCLUDE_CPP17(X) 0 +#endif + +#if CPPZMQ_HAS_INCLUDE_CPP17() && !defined(CPPZMQ_HAS_OPTIONAL) +#define CPPZMQ_HAS_OPTIONAL 1 +#endif +#ifndef CPPZMQ_HAS_OPTIONAL +#define CPPZMQ_HAS_OPTIONAL 0 +#elif CPPZMQ_HAS_OPTIONAL +#include +#endif + +#if CPPZMQ_HAS_INCLUDE_CPP17() && !defined(CPPZMQ_HAS_STRING_VIEW) +#define CPPZMQ_HAS_STRING_VIEW 1 +#endif +#ifndef CPPZMQ_HAS_STRING_VIEW +#define CPPZMQ_HAS_STRING_VIEW 0 +#elif CPPZMQ_HAS_STRING_VIEW +#include +#endif + +/* Version macros for compile-time API version detection */ +#define CPPZMQ_VERSION_MAJOR 4 +#define CPPZMQ_VERSION_MINOR 8 +#define CPPZMQ_VERSION_PATCH 0 + +#define CPPZMQ_VERSION \ + ZMQ_MAKE_VERSION(CPPZMQ_VERSION_MAJOR, CPPZMQ_VERSION_MINOR, \ + CPPZMQ_VERSION_PATCH) + +// Detect whether the compiler supports C++11 rvalue references. +#if (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) \ + && defined(__GXX_EXPERIMENTAL_CXX0X__)) +#define ZMQ_HAS_RVALUE_REFS +#define ZMQ_DELETED_FUNCTION = delete +#elif defined(__clang__) +#if __has_feature(cxx_rvalue_references) +#define ZMQ_HAS_RVALUE_REFS +#endif + +#if __has_feature(cxx_deleted_functions) +#define ZMQ_DELETED_FUNCTION = delete +#else +#define ZMQ_DELETED_FUNCTION +#endif +#elif defined(_MSC_VER) && (_MSC_VER >= 1900) +#define ZMQ_HAS_RVALUE_REFS +#define ZMQ_DELETED_FUNCTION = delete +#elif defined(_MSC_VER) && (_MSC_VER >= 1600) +#define ZMQ_HAS_RVALUE_REFS +#define ZMQ_DELETED_FUNCTION +#else +#define ZMQ_DELETED_FUNCTION +#endif + +#if defined(ZMQ_CPP11) && !defined(__llvm__) && !defined(__INTEL_COMPILER) \ + && defined(__GNUC__) && __GNUC__ < 5 +#define ZMQ_CPP11_PARTIAL +#elif defined(__GLIBCXX__) && __GLIBCXX__ < 20160805 +//the date here is the last date of gcc 4.9.4, which +// effectively means libstdc++ from gcc 5.5 and higher won't trigger this branch +#define ZMQ_CPP11_PARTIAL +#endif + +#ifdef ZMQ_CPP11 +#ifdef ZMQ_CPP11_PARTIAL +#define ZMQ_IS_TRIVIALLY_COPYABLE(T) __has_trivial_copy(T) +#else +#include +#define ZMQ_IS_TRIVIALLY_COPYABLE(T) std::is_trivially_copyable::value +#endif +#endif + +#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(3, 3, 0) +#define ZMQ_NEW_MONITOR_EVENT_LAYOUT +#endif + +#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 1, 0) +#define ZMQ_HAS_PROXY_STEERABLE +/* Socket event data */ +typedef struct +{ + uint16_t event; // id of the event as bitfield + int32_t value; // value is either error code, fd or reconnect interval +} zmq_event_t; +#endif + +// Avoid using deprecated message receive function when possible +#if ZMQ_VERSION < ZMQ_MAKE_VERSION(3, 2, 0) +#define zmq_msg_recv(msg, socket, flags) zmq_recvmsg(socket, msg, flags) +#endif + + +// In order to prevent unused variable warnings when building in non-debug +// mode use this macro to make assertions. +#ifndef NDEBUG +#define ZMQ_ASSERT(expression) assert(expression) +#else +#define ZMQ_ASSERT(expression) (void) (expression) +#endif + +namespace zmq +{ +#ifdef ZMQ_CPP11 +namespace detail +{ +namespace ranges +{ +using std::begin; +using std::end; +template auto begin(T &&r) -> decltype(begin(std::forward(r))) +{ + return begin(std::forward(r)); +} +template auto end(T &&r) -> decltype(end(std::forward(r))) +{ + return end(std::forward(r)); +} +} // namespace ranges + +template using void_t = void; + +template +using iter_value_t = typename std::iterator_traits::value_type; + +template +using range_iter_t = decltype( + ranges::begin(std::declval::type &>())); + +template using range_value_t = iter_value_t>; + +template struct is_range : std::false_type +{ +}; + +template +struct is_range< + T, + void_t::type &>()) + == ranges::end(std::declval::type &>()))>> + : std::true_type +{ +}; + +} // namespace detail +#endif + +typedef zmq_free_fn free_fn; +typedef zmq_pollitem_t pollitem_t; + +// duplicate definition from libzmq 4.3.3 +#if defined _WIN32 +#if defined _WIN64 +typedef unsigned __int64 fd_t; +#else +typedef unsigned int fd_t; +#endif +#else +typedef int fd_t; +#endif + +class error_t : public std::exception +{ + public: + error_t() ZMQ_NOTHROW : errnum(zmq_errno()) {} + explicit error_t(int err) ZMQ_NOTHROW : errnum(err) {} + virtual const char *what() const ZMQ_NOTHROW ZMQ_OVERRIDE + { + return zmq_strerror(errnum); + } + int num() const ZMQ_NOTHROW { return errnum; } + + private: + int errnum; +}; + +namespace detail { +inline int poll(zmq_pollitem_t *items_, size_t nitems_, long timeout_) +{ + int rc = zmq_poll(items_, static_cast(nitems_), timeout_); + if (rc < 0) + throw error_t(); + return rc; +} +} + +#ifdef ZMQ_CPP11 +ZMQ_DEPRECATED("from 4.8.0, use poll taking std::chrono::duration instead of long") +inline int poll(zmq_pollitem_t *items_, size_t nitems_, long timeout_) +#else +inline int poll(zmq_pollitem_t *items_, size_t nitems_, long timeout_ = -1) +#endif +{ + return detail::poll(items_, nitems_, timeout_); +} + +ZMQ_DEPRECATED("from 4.3.1, use poll taking non-const items") +inline int poll(zmq_pollitem_t const *items_, size_t nitems_, long timeout_ = -1) +{ + return detail::poll(const_cast(items_), nitems_, timeout_); +} + +#ifdef ZMQ_CPP11 +ZMQ_DEPRECATED("from 4.3.1, use poll taking non-const items") +inline int +poll(zmq_pollitem_t const *items, size_t nitems, std::chrono::milliseconds timeout) +{ + return detail::poll(const_cast(items), nitems, + static_cast(timeout.count())); +} + +ZMQ_DEPRECATED("from 4.3.1, use poll taking non-const items") +inline int poll(std::vector const &items, + std::chrono::milliseconds timeout) +{ + return detail::poll(const_cast(items.data()), items.size(), + static_cast(timeout.count())); +} + +ZMQ_DEPRECATED("from 4.3.1, use poll taking non-const items") +inline int poll(std::vector const &items, long timeout_ = -1) +{ + return detail::poll(const_cast(items.data()), items.size(), timeout_); +} + +inline int +poll(zmq_pollitem_t *items, size_t nitems, std::chrono::milliseconds timeout = std::chrono::milliseconds{-1}) +{ + return detail::poll(items, nitems, static_cast(timeout.count())); +} + +inline int poll(std::vector &items, + std::chrono::milliseconds timeout = std::chrono::milliseconds{-1}) +{ + return detail::poll(items.data(), items.size(), static_cast(timeout.count())); +} + +ZMQ_DEPRECATED("from 4.3.1, use poll taking std::chrono::duration instead of long") +inline int poll(std::vector &items, long timeout_) +{ + return detail::poll(items.data(), items.size(), timeout_); +} + +template +inline int poll(std::array &items, + std::chrono::milliseconds timeout = std::chrono::milliseconds{-1}) +{ + return detail::poll(items.data(), items.size(), static_cast(timeout.count())); +} +#endif + + +inline void version(int *major_, int *minor_, int *patch_) +{ + zmq_version(major_, minor_, patch_); +} + +#ifdef ZMQ_CPP11 +inline std::tuple version() +{ + std::tuple v; + zmq_version(&std::get<0>(v), &std::get<1>(v), &std::get<2>(v)); + return v; +} + +#if !defined(ZMQ_CPP11_PARTIAL) +namespace detail +{ +template struct is_char_type +{ + // true if character type for string literals in C++11 + static constexpr bool value = + std::is_same::value || std::is_same::value + || std::is_same::value || std::is_same::value; +}; +} +#endif + +#endif + +class message_t +{ + public: + message_t() ZMQ_NOTHROW + { + int rc = zmq_msg_init(&msg); + ZMQ_ASSERT(rc == 0); + } + + explicit message_t(size_t size_) + { + int rc = zmq_msg_init_size(&msg, size_); + if (rc != 0) + throw error_t(); + } + + template message_t(ForwardIter first, ForwardIter last) + { + typedef typename std::iterator_traits::value_type value_t; + + assert(std::distance(first, last) >= 0); + size_t const size_ = + static_cast(std::distance(first, last)) * sizeof(value_t); + int const rc = zmq_msg_init_size(&msg, size_); + if (rc != 0) + throw error_t(); + std::copy(first, last, data()); + } + + message_t(const void *data_, size_t size_) + { + int rc = zmq_msg_init_size(&msg, size_); + if (rc != 0) + throw error_t(); + if (size_) { + // this constructor allows (nullptr, 0), + // memcpy with a null pointer is UB + memcpy(data(), data_, size_); + } + } + + message_t(void *data_, size_t size_, free_fn *ffn_, void *hint_ = ZMQ_NULLPTR) + { + int rc = zmq_msg_init_data(&msg, data_, size_, ffn_, hint_); + if (rc != 0) + throw error_t(); + } + + // overload set of string-like types and generic containers +#if defined(ZMQ_CPP11) && !defined(ZMQ_CPP11_PARTIAL) + // NOTE this constructor will include the null terminator + // when called with a string literal. + // An overload taking const char* can not be added because + // it would be preferred over this function and break compatiblity. + template< + class Char, + size_t N, + typename = typename std::enable_if::value>::type> + ZMQ_DEPRECATED("from 4.7.0, use constructors taking iterators, (pointer, size) " + "or strings instead") + explicit message_t(const Char (&data)[N]) : + message_t(detail::ranges::begin(data), detail::ranges::end(data)) + { + } + + template::value + && ZMQ_IS_TRIVIALLY_COPYABLE(detail::range_value_t) + && !detail::is_char_type>::value + && !std::is_same::value>::type> + explicit message_t(const Range &rng) : + message_t(detail::ranges::begin(rng), detail::ranges::end(rng)) + { + } + + explicit message_t(const std::string &str) : message_t(str.data(), str.size()) {} + +#if CPPZMQ_HAS_STRING_VIEW + explicit message_t(std::string_view str) : message_t(str.data(), str.size()) {} +#endif + +#endif + +#ifdef ZMQ_HAS_RVALUE_REFS + message_t(message_t &&rhs) ZMQ_NOTHROW : msg(rhs.msg) + { + int rc = zmq_msg_init(&rhs.msg); + ZMQ_ASSERT(rc == 0); + } + + message_t &operator=(message_t &&rhs) ZMQ_NOTHROW + { + std::swap(msg, rhs.msg); + return *this; + } +#endif + + ~message_t() ZMQ_NOTHROW + { + int rc = zmq_msg_close(&msg); + ZMQ_ASSERT(rc == 0); + } + + void rebuild() + { + int rc = zmq_msg_close(&msg); + if (rc != 0) + throw error_t(); + rc = zmq_msg_init(&msg); + ZMQ_ASSERT(rc == 0); + } + + void rebuild(size_t size_) + { + int rc = zmq_msg_close(&msg); + if (rc != 0) + throw error_t(); + rc = zmq_msg_init_size(&msg, size_); + if (rc != 0) + throw error_t(); + } + + void rebuild(const void *data_, size_t size_) + { + int rc = zmq_msg_close(&msg); + if (rc != 0) + throw error_t(); + rc = zmq_msg_init_size(&msg, size_); + if (rc != 0) + throw error_t(); + memcpy(data(), data_, size_); + } + + void rebuild(void *data_, size_t size_, free_fn *ffn_, void *hint_ = ZMQ_NULLPTR) + { + int rc = zmq_msg_close(&msg); + if (rc != 0) + throw error_t(); + rc = zmq_msg_init_data(&msg, data_, size_, ffn_, hint_); + if (rc != 0) + throw error_t(); + } + + ZMQ_DEPRECATED("from 4.3.1, use move taking non-const reference instead") + void move(message_t const *msg_) + { + int rc = zmq_msg_move(&msg, const_cast(msg_->handle())); + if (rc != 0) + throw error_t(); + } + + void move(message_t &msg_) + { + int rc = zmq_msg_move(&msg, msg_.handle()); + if (rc != 0) + throw error_t(); + } + + ZMQ_DEPRECATED("from 4.3.1, use copy taking non-const reference instead") + void copy(message_t const *msg_) + { + int rc = zmq_msg_copy(&msg, const_cast(msg_->handle())); + if (rc != 0) + throw error_t(); + } + + void copy(message_t &msg_) + { + int rc = zmq_msg_copy(&msg, msg_.handle()); + if (rc != 0) + throw error_t(); + } + + bool more() const ZMQ_NOTHROW + { + int rc = zmq_msg_more(const_cast(&msg)); + return rc != 0; + } + + void *data() ZMQ_NOTHROW { return zmq_msg_data(&msg); } + + const void *data() const ZMQ_NOTHROW + { + return zmq_msg_data(const_cast(&msg)); + } + + size_t size() const ZMQ_NOTHROW + { + return zmq_msg_size(const_cast(&msg)); + } + + ZMQ_NODISCARD bool empty() const ZMQ_NOTHROW { return size() == 0u; } + + template T *data() ZMQ_NOTHROW { return static_cast(data()); } + + template T const *data() const ZMQ_NOTHROW + { + return static_cast(data()); + } + + ZMQ_DEPRECATED("from 4.3.0, use operator== instead") + bool equal(const message_t *other) const ZMQ_NOTHROW { return *this == *other; } + + bool operator==(const message_t &other) const ZMQ_NOTHROW + { + const size_t my_size = size(); + return my_size == other.size() && 0 == memcmp(data(), other.data(), my_size); + } + + bool operator!=(const message_t &other) const ZMQ_NOTHROW + { + return !(*this == other); + } + +#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(3, 2, 0) + int get(int property_) + { + int value = zmq_msg_get(&msg, property_); + if (value == -1) + throw error_t(); + return value; + } +#endif + +#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 1, 0) + const char *gets(const char *property_) + { + const char *value = zmq_msg_gets(&msg, property_); + if (value == ZMQ_NULLPTR) + throw error_t(); + return value; + } +#endif + +#if defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 0) + uint32_t routing_id() const + { + return zmq_msg_routing_id(const_cast(&msg)); + } + + void set_routing_id(uint32_t routing_id) + { + int rc = zmq_msg_set_routing_id(&msg, routing_id); + if (rc != 0) + throw error_t(); + } + + const char *group() const + { + return zmq_msg_group(const_cast(&msg)); + } + + void set_group(const char *group) + { + int rc = zmq_msg_set_group(&msg, group); + if (rc != 0) + throw error_t(); + } +#endif + + // interpret message content as a string + std::string to_string() const + { + return std::string(static_cast(data()), size()); + } +#if CPPZMQ_HAS_STRING_VIEW + // interpret message content as a string + std::string_view to_string_view() const noexcept + { + return std::string_view(static_cast(data()), size()); + } +#endif + + /** Dump content to string for debugging. + * Ascii chars are readable, the rest is printed as hex. + * Probably ridiculously slow. + * Use to_string() or to_string_view() for + * interpreting the message as a string. + */ + std::string str() const + { + // Partly mutuated from the same method in zmq::multipart_t + std::stringstream os; + + const unsigned char *msg_data = this->data(); + unsigned char byte; + size_t size = this->size(); + int is_ascii[2] = {0, 0}; + + os << "zmq::message_t [size " << std::dec << std::setw(3) + << std::setfill('0') << size << "] ("; + // Totally arbitrary + if (size >= 1000) { + os << "... too big to print)"; + } else { + while (size--) { + byte = *msg_data++; + + is_ascii[1] = (byte >= 32 && byte < 127); + if (is_ascii[1] != is_ascii[0]) + os << " "; // Separate text/non text + + if (is_ascii[1]) { + os << byte; + } else { + os << std::hex << std::uppercase << std::setw(2) + << std::setfill('0') << static_cast(byte); + } + is_ascii[0] = is_ascii[1]; + } + os << ")"; + } + return os.str(); + } + + void swap(message_t &other) ZMQ_NOTHROW + { + // this assumes zmq::msg_t from libzmq is trivially relocatable + std::swap(msg, other.msg); + } + + ZMQ_NODISCARD zmq_msg_t *handle() ZMQ_NOTHROW { return &msg; } + ZMQ_NODISCARD const zmq_msg_t *handle() const ZMQ_NOTHROW { return &msg; } + + private: + // The underlying message + zmq_msg_t msg; + + // Disable implicit message copying, so that users won't use shared + // messages (less efficient) without being aware of the fact. + message_t(const message_t &) ZMQ_DELETED_FUNCTION; + void operator=(const message_t &) ZMQ_DELETED_FUNCTION; +}; + +inline void swap(message_t &a, message_t &b) ZMQ_NOTHROW +{ + a.swap(b); +} + +#ifdef ZMQ_CPP11 +enum class ctxopt +{ +#ifdef ZMQ_BLOCKY + blocky = ZMQ_BLOCKY, +#endif +#ifdef ZMQ_IO_THREADS + io_threads = ZMQ_IO_THREADS, +#endif +#ifdef ZMQ_THREAD_SCHED_POLICY + thread_sched_policy = ZMQ_THREAD_SCHED_POLICY, +#endif +#ifdef ZMQ_THREAD_PRIORITY + thread_priority = ZMQ_THREAD_PRIORITY, +#endif +#ifdef ZMQ_THREAD_AFFINITY_CPU_ADD + thread_affinity_cpu_add = ZMQ_THREAD_AFFINITY_CPU_ADD, +#endif +#ifdef ZMQ_THREAD_AFFINITY_CPU_REMOVE + thread_affinity_cpu_remove = ZMQ_THREAD_AFFINITY_CPU_REMOVE, +#endif +#ifdef ZMQ_THREAD_NAME_PREFIX + thread_name_prefix = ZMQ_THREAD_NAME_PREFIX, +#endif +#ifdef ZMQ_MAX_MSGSZ + max_msgsz = ZMQ_MAX_MSGSZ, +#endif +#ifdef ZMQ_ZERO_COPY_RECV + zero_copy_recv = ZMQ_ZERO_COPY_RECV, +#endif +#ifdef ZMQ_MAX_SOCKETS + max_sockets = ZMQ_MAX_SOCKETS, +#endif +#ifdef ZMQ_SOCKET_LIMIT + socket_limit = ZMQ_SOCKET_LIMIT, +#endif +#ifdef ZMQ_IPV6 + ipv6 = ZMQ_IPV6, +#endif +#ifdef ZMQ_MSG_T_SIZE + msg_t_size = ZMQ_MSG_T_SIZE +#endif +}; +#endif + +class context_t +{ + public: + context_t() + { + ptr = zmq_ctx_new(); + if (ptr == ZMQ_NULLPTR) + throw error_t(); + } + + + explicit context_t(int io_threads_, int max_sockets_ = ZMQ_MAX_SOCKETS_DFLT) + { + ptr = zmq_ctx_new(); + if (ptr == ZMQ_NULLPTR) + throw error_t(); + + int rc = zmq_ctx_set(ptr, ZMQ_IO_THREADS, io_threads_); + ZMQ_ASSERT(rc == 0); + + rc = zmq_ctx_set(ptr, ZMQ_MAX_SOCKETS, max_sockets_); + ZMQ_ASSERT(rc == 0); + } + +#ifdef ZMQ_HAS_RVALUE_REFS + context_t(context_t &&rhs) ZMQ_NOTHROW : ptr(rhs.ptr) { rhs.ptr = ZMQ_NULLPTR; } + context_t &operator=(context_t &&rhs) ZMQ_NOTHROW + { + close(); + std::swap(ptr, rhs.ptr); + return *this; + } +#endif + + ~context_t() ZMQ_NOTHROW { close(); } + + ZMQ_CPP11_DEPRECATED("from 4.7.0, use set taking zmq::ctxopt instead") + int setctxopt(int option_, int optval_) + { + int rc = zmq_ctx_set(ptr, option_, optval_); + ZMQ_ASSERT(rc == 0); + return rc; + } + + ZMQ_CPP11_DEPRECATED("from 4.7.0, use get taking zmq::ctxopt instead") + int getctxopt(int option_) { return zmq_ctx_get(ptr, option_); } + +#ifdef ZMQ_CPP11 + void set(ctxopt option, int optval) + { + int rc = zmq_ctx_set(ptr, static_cast(option), optval); + if (rc == -1) + throw error_t(); + } + + ZMQ_NODISCARD int get(ctxopt option) + { + int rc = zmq_ctx_get(ptr, static_cast(option)); + // some options have a default value of -1 + // which is unfortunate, and may result in errors + // that don't make sense + if (rc == -1) + throw error_t(); + return rc; + } +#endif + + // Terminates context (see also shutdown()). + void close() ZMQ_NOTHROW + { + if (ptr == ZMQ_NULLPTR) + return; + + int rc; + do { + rc = zmq_ctx_term(ptr); + } while (rc == -1 && errno == EINTR); + + ZMQ_ASSERT(rc == 0); + ptr = ZMQ_NULLPTR; + } + + // Shutdown context in preparation for termination (close()). + // Causes all blocking socket operations and any further + // socket operations to return with ETERM. + void shutdown() ZMQ_NOTHROW + { + if (ptr == ZMQ_NULLPTR) + return; + int rc = zmq_ctx_shutdown(ptr); + ZMQ_ASSERT(rc == 0); + } + + // Be careful with this, it's probably only useful for + // using the C api together with an existing C++ api. + // Normally you should never need to use this. + ZMQ_EXPLICIT operator void *() ZMQ_NOTHROW { return ptr; } + + ZMQ_EXPLICIT operator void const *() const ZMQ_NOTHROW { return ptr; } + + ZMQ_NODISCARD void *handle() ZMQ_NOTHROW { return ptr; } + + ZMQ_DEPRECATED("from 4.7.0, use handle() != nullptr instead") + operator bool() const ZMQ_NOTHROW { return ptr != ZMQ_NULLPTR; } + + void swap(context_t &other) ZMQ_NOTHROW { std::swap(ptr, other.ptr); } + + private: + void *ptr; + + context_t(const context_t &) ZMQ_DELETED_FUNCTION; + void operator=(const context_t &) ZMQ_DELETED_FUNCTION; +}; + +inline void swap(context_t &a, context_t &b) ZMQ_NOTHROW +{ + a.swap(b); +} + +#ifdef ZMQ_CPP11 + +struct recv_buffer_size +{ + size_t size; // number of bytes written to buffer + size_t untruncated_size; // untruncated message size in bytes + + ZMQ_NODISCARD bool truncated() const noexcept + { + return size != untruncated_size; + } +}; + +#if CPPZMQ_HAS_OPTIONAL + +using send_result_t = std::optional; +using recv_result_t = std::optional; +using recv_buffer_result_t = std::optional; + +#else + +namespace detail +{ +// A C++11 type emulating the most basic +// operations of std::optional for trivial types +template class trivial_optional +{ + public: + static_assert(std::is_trivial::value, "T must be trivial"); + using value_type = T; + + trivial_optional() = default; + trivial_optional(T value) noexcept : _value(value), _has_value(true) {} + + const T *operator->() const noexcept + { + assert(_has_value); + return &_value; + } + T *operator->() noexcept + { + assert(_has_value); + return &_value; + } + + const T &operator*() const noexcept + { + assert(_has_value); + return _value; + } + T &operator*() noexcept + { + assert(_has_value); + return _value; + } + + T &value() + { + if (!_has_value) + throw std::exception(); + return _value; + } + const T &value() const + { + if (!_has_value) + throw std::exception(); + return _value; + } + + explicit operator bool() const noexcept { return _has_value; } + bool has_value() const noexcept { return _has_value; } + + private: + T _value{}; + bool _has_value{false}; +}; +} // namespace detail + +using send_result_t = detail::trivial_optional; +using recv_result_t = detail::trivial_optional; +using recv_buffer_result_t = detail::trivial_optional; + +#endif + +namespace detail +{ +template constexpr T enum_bit_or(T a, T b) noexcept +{ + static_assert(std::is_enum::value, "must be enum"); + using U = typename std::underlying_type::type; + return static_cast(static_cast(a) | static_cast(b)); +} +template constexpr T enum_bit_and(T a, T b) noexcept +{ + static_assert(std::is_enum::value, "must be enum"); + using U = typename std::underlying_type::type; + return static_cast(static_cast(a) & static_cast(b)); +} +template constexpr T enum_bit_xor(T a, T b) noexcept +{ + static_assert(std::is_enum::value, "must be enum"); + using U = typename std::underlying_type::type; + return static_cast(static_cast(a) ^ static_cast(b)); +} +template constexpr T enum_bit_not(T a) noexcept +{ + static_assert(std::is_enum::value, "must be enum"); + using U = typename std::underlying_type::type; + return static_cast(~static_cast(a)); +} +} // namespace detail + +// partially satisfies named requirement BitmaskType +enum class send_flags : int +{ + none = 0, + dontwait = ZMQ_DONTWAIT, + sndmore = ZMQ_SNDMORE +}; + +constexpr send_flags operator|(send_flags a, send_flags b) noexcept +{ + return detail::enum_bit_or(a, b); +} +constexpr send_flags operator&(send_flags a, send_flags b) noexcept +{ + return detail::enum_bit_and(a, b); +} +constexpr send_flags operator^(send_flags a, send_flags b) noexcept +{ + return detail::enum_bit_xor(a, b); +} +constexpr send_flags operator~(send_flags a) noexcept +{ + return detail::enum_bit_not(a); +} + +// partially satisfies named requirement BitmaskType +enum class recv_flags : int +{ + none = 0, + dontwait = ZMQ_DONTWAIT +}; + +constexpr recv_flags operator|(recv_flags a, recv_flags b) noexcept +{ + return detail::enum_bit_or(a, b); +} +constexpr recv_flags operator&(recv_flags a, recv_flags b) noexcept +{ + return detail::enum_bit_and(a, b); +} +constexpr recv_flags operator^(recv_flags a, recv_flags b) noexcept +{ + return detail::enum_bit_xor(a, b); +} +constexpr recv_flags operator~(recv_flags a) noexcept +{ + return detail::enum_bit_not(a); +} + + +// mutable_buffer, const_buffer and buffer are based on +// the Networking TS specification, draft: +// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4771.pdf + +class mutable_buffer +{ + public: + constexpr mutable_buffer() noexcept : _data(nullptr), _size(0) {} + constexpr mutable_buffer(void *p, size_t n) noexcept : _data(p), _size(n) + { +#ifdef ZMQ_EXTENDED_CONSTEXPR + assert(p != nullptr || n == 0); +#endif + } + + constexpr void *data() const noexcept { return _data; } + constexpr size_t size() const noexcept { return _size; } + mutable_buffer &operator+=(size_t n) noexcept + { + // (std::min) is a workaround for when a min macro is defined + const auto shift = (std::min)(n, _size); + _data = static_cast(_data) + shift; + _size -= shift; + return *this; + } + + private: + void *_data; + size_t _size; +}; + +inline mutable_buffer operator+(const mutable_buffer &mb, size_t n) noexcept +{ + return mutable_buffer(static_cast(mb.data()) + (std::min)(n, mb.size()), + mb.size() - (std::min)(n, mb.size())); +} +inline mutable_buffer operator+(size_t n, const mutable_buffer &mb) noexcept +{ + return mb + n; +} + +class const_buffer +{ + public: + constexpr const_buffer() noexcept : _data(nullptr), _size(0) {} + constexpr const_buffer(const void *p, size_t n) noexcept : _data(p), _size(n) + { +#ifdef ZMQ_EXTENDED_CONSTEXPR + assert(p != nullptr || n == 0); +#endif + } + constexpr const_buffer(const mutable_buffer &mb) noexcept : + _data(mb.data()), _size(mb.size()) + { + } + + constexpr const void *data() const noexcept { return _data; } + constexpr size_t size() const noexcept { return _size; } + const_buffer &operator+=(size_t n) noexcept + { + const auto shift = (std::min)(n, _size); + _data = static_cast(_data) + shift; + _size -= shift; + return *this; + } + + private: + const void *_data; + size_t _size; +}; + +inline const_buffer operator+(const const_buffer &cb, size_t n) noexcept +{ + return const_buffer(static_cast(cb.data()) + + (std::min)(n, cb.size()), + cb.size() - (std::min)(n, cb.size())); +} +inline const_buffer operator+(size_t n, const const_buffer &cb) noexcept +{ + return cb + n; +} + +// buffer creation + +constexpr mutable_buffer buffer(void *p, size_t n) noexcept +{ + return mutable_buffer(p, n); +} +constexpr const_buffer buffer(const void *p, size_t n) noexcept +{ + return const_buffer(p, n); +} +constexpr mutable_buffer buffer(const mutable_buffer &mb) noexcept +{ + return mb; +} +inline mutable_buffer buffer(const mutable_buffer &mb, size_t n) noexcept +{ + return mutable_buffer(mb.data(), (std::min)(mb.size(), n)); +} +constexpr const_buffer buffer(const const_buffer &cb) noexcept +{ + return cb; +} +inline const_buffer buffer(const const_buffer &cb, size_t n) noexcept +{ + return const_buffer(cb.data(), (std::min)(cb.size(), n)); +} + +namespace detail +{ +template struct is_buffer +{ + static constexpr bool value = + std::is_same::value || std::is_same::value; +}; + +template struct is_pod_like +{ + // NOTE: The networking draft N4771 section 16.11 requires + // T in the buffer functions below to be + // trivially copyable OR standard layout. + // Here we decide to be conservative and require both. + static constexpr bool value = + ZMQ_IS_TRIVIALLY_COPYABLE(T) && std::is_standard_layout::value; +}; + +template constexpr auto seq_size(const C &c) noexcept -> decltype(c.size()) +{ + return c.size(); +} +template +constexpr size_t seq_size(const T (&/*array*/)[N]) noexcept +{ + return N; +} + +template +auto buffer_contiguous_sequence(Seq &&seq) noexcept + -> decltype(buffer(std::addressof(*std::begin(seq)), size_t{})) +{ + using T = typename std::remove_cv< + typename std::remove_reference::type>::type; + static_assert(detail::is_pod_like::value, "T must be POD"); + + const auto size = seq_size(seq); + return buffer(size != 0u ? std::addressof(*std::begin(seq)) : nullptr, + size * sizeof(T)); +} +template +auto buffer_contiguous_sequence(Seq &&seq, size_t n_bytes) noexcept + -> decltype(buffer_contiguous_sequence(seq)) +{ + using T = typename std::remove_cv< + typename std::remove_reference::type>::type; + static_assert(detail::is_pod_like::value, "T must be POD"); + + const auto size = seq_size(seq); + return buffer(size != 0u ? std::addressof(*std::begin(seq)) : nullptr, + (std::min)(size * sizeof(T), n_bytes)); +} + +} // namespace detail + +// C array +template mutable_buffer buffer(T (&data)[N]) noexcept +{ + return detail::buffer_contiguous_sequence(data); +} +template +mutable_buffer buffer(T (&data)[N], size_t n_bytes) noexcept +{ + return detail::buffer_contiguous_sequence(data, n_bytes); +} +template const_buffer buffer(const T (&data)[N]) noexcept +{ + return detail::buffer_contiguous_sequence(data); +} +template +const_buffer buffer(const T (&data)[N], size_t n_bytes) noexcept +{ + return detail::buffer_contiguous_sequence(data, n_bytes); +} +// std::array +template mutable_buffer buffer(std::array &data) noexcept +{ + return detail::buffer_contiguous_sequence(data); +} +template +mutable_buffer buffer(std::array &data, size_t n_bytes) noexcept +{ + return detail::buffer_contiguous_sequence(data, n_bytes); +} +template +const_buffer buffer(std::array &data) noexcept +{ + return detail::buffer_contiguous_sequence(data); +} +template +const_buffer buffer(std::array &data, size_t n_bytes) noexcept +{ + return detail::buffer_contiguous_sequence(data, n_bytes); +} +template +const_buffer buffer(const std::array &data) noexcept +{ + return detail::buffer_contiguous_sequence(data); +} +template +const_buffer buffer(const std::array &data, size_t n_bytes) noexcept +{ + return detail::buffer_contiguous_sequence(data, n_bytes); +} +// std::vector +template +mutable_buffer buffer(std::vector &data) noexcept +{ + return detail::buffer_contiguous_sequence(data); +} +template +mutable_buffer buffer(std::vector &data, size_t n_bytes) noexcept +{ + return detail::buffer_contiguous_sequence(data, n_bytes); +} +template +const_buffer buffer(const std::vector &data) noexcept +{ + return detail::buffer_contiguous_sequence(data); +} +template +const_buffer buffer(const std::vector &data, size_t n_bytes) noexcept +{ + return detail::buffer_contiguous_sequence(data, n_bytes); +} +// std::basic_string +template +mutable_buffer buffer(std::basic_string &data) noexcept +{ + return detail::buffer_contiguous_sequence(data); +} +template +mutable_buffer buffer(std::basic_string &data, + size_t n_bytes) noexcept +{ + return detail::buffer_contiguous_sequence(data, n_bytes); +} +template +const_buffer buffer(const std::basic_string &data) noexcept +{ + return detail::buffer_contiguous_sequence(data); +} +template +const_buffer buffer(const std::basic_string &data, + size_t n_bytes) noexcept +{ + return detail::buffer_contiguous_sequence(data, n_bytes); +} + +#if CPPZMQ_HAS_STRING_VIEW +// std::basic_string_view +template +const_buffer buffer(std::basic_string_view data) noexcept +{ + return detail::buffer_contiguous_sequence(data); +} +template +const_buffer buffer(std::basic_string_view data, size_t n_bytes) noexcept +{ + return detail::buffer_contiguous_sequence(data, n_bytes); +} +#endif + +// Buffer for a string literal (null terminated) +// where the buffer size excludes the terminating character. +// Equivalent to zmq::buffer(std::string_view("...")). +template +constexpr const_buffer str_buffer(const Char (&data)[N]) noexcept +{ + static_assert(detail::is_pod_like::value, "Char must be POD"); +#ifdef ZMQ_EXTENDED_CONSTEXPR + assert(data[N - 1] == Char{0}); +#endif + return const_buffer(static_cast(data), (N - 1) * sizeof(Char)); +} + +namespace literals +{ +constexpr const_buffer operator"" _zbuf(const char *str, size_t len) noexcept +{ + return const_buffer(str, len * sizeof(char)); +} +constexpr const_buffer operator"" _zbuf(const wchar_t *str, size_t len) noexcept +{ + return const_buffer(str, len * sizeof(wchar_t)); +} +constexpr const_buffer operator"" _zbuf(const char16_t *str, size_t len) noexcept +{ + return const_buffer(str, len * sizeof(char16_t)); +} +constexpr const_buffer operator"" _zbuf(const char32_t *str, size_t len) noexcept +{ + return const_buffer(str, len * sizeof(char32_t)); +} +} + +namespace sockopt +{ +// There are two types of options, +// integral type with known compiler time size (int, bool, int64_t, uint64_t) +// and arrays with dynamic size (strings, binary data). + +// BoolUnit: if true accepts values of type bool (but passed as T into libzmq) +template struct integral_option +{ +}; + +// NullTerm: +// 0: binary data +// 1: null-terminated string (`getsockopt` size includes null) +// 2: binary (size 32) or Z85 encoder string of size 41 (null included) +template struct array_option +{ +}; + +#define ZMQ_DEFINE_INTEGRAL_OPT(OPT, NAME, TYPE) \ + using NAME##_t = integral_option; \ + ZMQ_INLINE_VAR ZMQ_CONSTEXPR_VAR NAME##_t NAME {} +#define ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(OPT, NAME, TYPE) \ + using NAME##_t = integral_option; \ + ZMQ_INLINE_VAR ZMQ_CONSTEXPR_VAR NAME##_t NAME {} +#define ZMQ_DEFINE_ARRAY_OPT(OPT, NAME) \ + using NAME##_t = array_option; \ + ZMQ_INLINE_VAR ZMQ_CONSTEXPR_VAR NAME##_t NAME {} +#define ZMQ_DEFINE_ARRAY_OPT_BINARY(OPT, NAME) \ + using NAME##_t = array_option; \ + ZMQ_INLINE_VAR ZMQ_CONSTEXPR_VAR NAME##_t NAME {} +#define ZMQ_DEFINE_ARRAY_OPT_BIN_OR_Z85(OPT, NAME) \ + using NAME##_t = array_option; \ + ZMQ_INLINE_VAR ZMQ_CONSTEXPR_VAR NAME##_t NAME {} + +// deprecated, use zmq::fd_t +using cppzmq_fd_t = ::zmq::fd_t; + +#ifdef ZMQ_AFFINITY +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_AFFINITY, affinity, uint64_t); +#endif +#ifdef ZMQ_BACKLOG +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_BACKLOG, backlog, int); +#endif +#ifdef ZMQ_BINDTODEVICE +ZMQ_DEFINE_ARRAY_OPT_BINARY(ZMQ_BINDTODEVICE, bindtodevice); +#endif +#ifdef ZMQ_CONFLATE +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_CONFLATE, conflate, int); +#endif +#ifdef ZMQ_CONNECT_ROUTING_ID +ZMQ_DEFINE_ARRAY_OPT(ZMQ_CONNECT_ROUTING_ID, connect_routing_id); +#endif +#ifdef ZMQ_CONNECT_TIMEOUT +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_CONNECT_TIMEOUT, connect_timeout, int); +#endif +#ifdef ZMQ_CURVE_PUBLICKEY +ZMQ_DEFINE_ARRAY_OPT_BIN_OR_Z85(ZMQ_CURVE_PUBLICKEY, curve_publickey); +#endif +#ifdef ZMQ_CURVE_SECRETKEY +ZMQ_DEFINE_ARRAY_OPT_BIN_OR_Z85(ZMQ_CURVE_SECRETKEY, curve_secretkey); +#endif +#ifdef ZMQ_CURVE_SERVER +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_CURVE_SERVER, curve_server, int); +#endif +#ifdef ZMQ_CURVE_SERVERKEY +ZMQ_DEFINE_ARRAY_OPT_BIN_OR_Z85(ZMQ_CURVE_SERVERKEY, curve_serverkey); +#endif +#ifdef ZMQ_EVENTS +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_EVENTS, events, int); +#endif +#ifdef ZMQ_FD +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_FD, fd, ::zmq::fd_t); +#endif +#ifdef ZMQ_GSSAPI_PLAINTEXT +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_GSSAPI_PLAINTEXT, gssapi_plaintext, int); +#endif +#ifdef ZMQ_GSSAPI_SERVER +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_GSSAPI_SERVER, gssapi_server, int); +#endif +#ifdef ZMQ_GSSAPI_SERVICE_PRINCIPAL +ZMQ_DEFINE_ARRAY_OPT(ZMQ_GSSAPI_SERVICE_PRINCIPAL, gssapi_service_principal); +#endif +#ifdef ZMQ_GSSAPI_SERVICE_PRINCIPAL_NAMETYPE +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_GSSAPI_SERVICE_PRINCIPAL_NAMETYPE, + gssapi_service_principal_nametype, + int); +#endif +#ifdef ZMQ_GSSAPI_PRINCIPAL +ZMQ_DEFINE_ARRAY_OPT(ZMQ_GSSAPI_PRINCIPAL, gssapi_principal); +#endif +#ifdef ZMQ_GSSAPI_PRINCIPAL_NAMETYPE +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_GSSAPI_PRINCIPAL_NAMETYPE, + gssapi_principal_nametype, + int); +#endif +#ifdef ZMQ_HANDSHAKE_IVL +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_HANDSHAKE_IVL, handshake_ivl, int); +#endif +#ifdef ZMQ_HEARTBEAT_IVL +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_HEARTBEAT_IVL, heartbeat_ivl, int); +#endif +#ifdef ZMQ_HEARTBEAT_TIMEOUT +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_HEARTBEAT_TIMEOUT, heartbeat_timeout, int); +#endif +#ifdef ZMQ_HEARTBEAT_TTL +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_HEARTBEAT_TTL, heartbeat_ttl, int); +#endif +#ifdef ZMQ_IMMEDIATE +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_IMMEDIATE, immediate, int); +#endif +#ifdef ZMQ_INVERT_MATCHING +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_INVERT_MATCHING, invert_matching, int); +#endif +#ifdef ZMQ_IPV6 +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_IPV6, ipv6, int); +#endif +#ifdef ZMQ_LAST_ENDPOINT +ZMQ_DEFINE_ARRAY_OPT(ZMQ_LAST_ENDPOINT, last_endpoint); +#endif +#ifdef ZMQ_LINGER +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_LINGER, linger, int); +#endif +#ifdef ZMQ_MAXMSGSIZE +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_MAXMSGSIZE, maxmsgsize, int64_t); +#endif +#ifdef ZMQ_MECHANISM +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_MECHANISM, mechanism, int); +#endif +#ifdef ZMQ_METADATA +ZMQ_DEFINE_ARRAY_OPT(ZMQ_METADATA, metadata); +#endif +#ifdef ZMQ_MULTICAST_HOPS +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_MULTICAST_HOPS, multicast_hops, int); +#endif +#ifdef ZMQ_MULTICAST_LOOP +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_MULTICAST_LOOP, multicast_loop, int); +#endif +#ifdef ZMQ_MULTICAST_MAXTPDU +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_MULTICAST_MAXTPDU, multicast_maxtpdu, int); +#endif +#ifdef ZMQ_PLAIN_SERVER +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_PLAIN_SERVER, plain_server, int); +#endif +#ifdef ZMQ_PLAIN_PASSWORD +ZMQ_DEFINE_ARRAY_OPT(ZMQ_PLAIN_PASSWORD, plain_password); +#endif +#ifdef ZMQ_PLAIN_USERNAME +ZMQ_DEFINE_ARRAY_OPT(ZMQ_PLAIN_USERNAME, plain_username); +#endif +#ifdef ZMQ_USE_FD +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_USE_FD, use_fd, int); +#endif +#ifdef ZMQ_PROBE_ROUTER +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_PROBE_ROUTER, probe_router, int); +#endif +#ifdef ZMQ_RATE +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_RATE, rate, int); +#endif +#ifdef ZMQ_RCVBUF +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_RCVBUF, rcvbuf, int); +#endif +#ifdef ZMQ_RCVHWM +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_RCVHWM, rcvhwm, int); +#endif +#ifdef ZMQ_RCVMORE +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_RCVMORE, rcvmore, int); +#endif +#ifdef ZMQ_RCVTIMEO +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_RCVTIMEO, rcvtimeo, int); +#endif +#ifdef ZMQ_RECONNECT_IVL +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_RECONNECT_IVL, reconnect_ivl, int); +#endif +#ifdef ZMQ_RECONNECT_IVL_MAX +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_RECONNECT_IVL_MAX, reconnect_ivl_max, int); +#endif +#ifdef ZMQ_RECOVERY_IVL +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_RECOVERY_IVL, recovery_ivl, int); +#endif +#ifdef ZMQ_REQ_CORRELATE +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_REQ_CORRELATE, req_correlate, int); +#endif +#ifdef ZMQ_REQ_RELAXED +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_REQ_RELAXED, req_relaxed, int); +#endif +#ifdef ZMQ_ROUTER_HANDOVER +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_ROUTER_HANDOVER, router_handover, int); +#endif +#ifdef ZMQ_ROUTER_MANDATORY +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_ROUTER_MANDATORY, router_mandatory, int); +#endif +#ifdef ZMQ_ROUTER_NOTIFY +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_ROUTER_NOTIFY, router_notify, int); +#endif +#ifdef ZMQ_ROUTING_ID +ZMQ_DEFINE_ARRAY_OPT_BINARY(ZMQ_ROUTING_ID, routing_id); +#endif +#ifdef ZMQ_SNDBUF +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_SNDBUF, sndbuf, int); +#endif +#ifdef ZMQ_SNDHWM +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_SNDHWM, sndhwm, int); +#endif +#ifdef ZMQ_SNDTIMEO +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_SNDTIMEO, sndtimeo, int); +#endif +#ifdef ZMQ_SOCKS_PROXY +ZMQ_DEFINE_ARRAY_OPT(ZMQ_SOCKS_PROXY, socks_proxy); +#endif +#ifdef ZMQ_STREAM_NOTIFY +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_STREAM_NOTIFY, stream_notify, int); +#endif +#ifdef ZMQ_SUBSCRIBE +ZMQ_DEFINE_ARRAY_OPT(ZMQ_SUBSCRIBE, subscribe); +#endif +#ifdef ZMQ_TCP_KEEPALIVE +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TCP_KEEPALIVE, tcp_keepalive, int); +#endif +#ifdef ZMQ_TCP_KEEPALIVE_CNT +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TCP_KEEPALIVE_CNT, tcp_keepalive_cnt, int); +#endif +#ifdef ZMQ_TCP_KEEPALIVE_IDLE +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TCP_KEEPALIVE_IDLE, tcp_keepalive_idle, int); +#endif +#ifdef ZMQ_TCP_KEEPALIVE_INTVL +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TCP_KEEPALIVE_INTVL, tcp_keepalive_intvl, int); +#endif +#ifdef ZMQ_TCP_MAXRT +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TCP_MAXRT, tcp_maxrt, int); +#endif +#ifdef ZMQ_THREAD_SAFE +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_THREAD_SAFE, thread_safe, int); +#endif +#ifdef ZMQ_TOS +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TOS, tos, int); +#endif +#ifdef ZMQ_TYPE +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TYPE, type, int); +#endif +#ifdef ZMQ_UNSUBSCRIBE +ZMQ_DEFINE_ARRAY_OPT(ZMQ_UNSUBSCRIBE, unsubscribe); +#endif +#ifdef ZMQ_VMCI_BUFFER_SIZE +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_VMCI_BUFFER_SIZE, vmci_buffer_size, uint64_t); +#endif +#ifdef ZMQ_VMCI_BUFFER_MIN_SIZE +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_VMCI_BUFFER_MIN_SIZE, vmci_buffer_min_size, uint64_t); +#endif +#ifdef ZMQ_VMCI_BUFFER_MAX_SIZE +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_VMCI_BUFFER_MAX_SIZE, vmci_buffer_max_size, uint64_t); +#endif +#ifdef ZMQ_VMCI_CONNECT_TIMEOUT +ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_VMCI_CONNECT_TIMEOUT, vmci_connect_timeout, int); +#endif +#ifdef ZMQ_XPUB_VERBOSE +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_XPUB_VERBOSE, xpub_verbose, int); +#endif +#ifdef ZMQ_XPUB_VERBOSER +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_XPUB_VERBOSER, xpub_verboser, int); +#endif +#ifdef ZMQ_XPUB_MANUAL +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_XPUB_MANUAL, xpub_manual, int); +#endif +#ifdef ZMQ_XPUB_NODROP +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_XPUB_NODROP, xpub_nodrop, int); +#endif +#ifdef ZMQ_XPUB_WELCOME_MSG +ZMQ_DEFINE_ARRAY_OPT(ZMQ_XPUB_WELCOME_MSG, xpub_welcome_msg); +#endif +#ifdef ZMQ_ZAP_ENFORCE_DOMAIN +ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_ZAP_ENFORCE_DOMAIN, zap_enforce_domain, int); +#endif +#ifdef ZMQ_ZAP_DOMAIN +ZMQ_DEFINE_ARRAY_OPT(ZMQ_ZAP_DOMAIN, zap_domain); +#endif + +} // namespace sockopt +#endif // ZMQ_CPP11 + + +namespace detail +{ +class socket_base +{ + public: + socket_base() ZMQ_NOTHROW : _handle(ZMQ_NULLPTR) {} + ZMQ_EXPLICIT socket_base(void *handle) ZMQ_NOTHROW : _handle(handle) {} + + template + ZMQ_CPP11_DEPRECATED("from 4.7.0, use `set` taking option from zmq::sockopt") + void setsockopt(int option_, T const &optval) + { + setsockopt(option_, &optval, sizeof(T)); + } + + ZMQ_CPP11_DEPRECATED("from 4.7.0, use `set` taking option from zmq::sockopt") + void setsockopt(int option_, const void *optval_, size_t optvallen_) + { + int rc = zmq_setsockopt(_handle, option_, optval_, optvallen_); + if (rc != 0) + throw error_t(); + } + + ZMQ_CPP11_DEPRECATED("from 4.7.0, use `get` taking option from zmq::sockopt") + void getsockopt(int option_, void *optval_, size_t *optvallen_) const + { + int rc = zmq_getsockopt(_handle, option_, optval_, optvallen_); + if (rc != 0) + throw error_t(); + } + + template + ZMQ_CPP11_DEPRECATED("from 4.7.0, use `get` taking option from zmq::sockopt") + T getsockopt(int option_) const + { + T optval; + size_t optlen = sizeof(T); + getsockopt(option_, &optval, &optlen); + return optval; + } + +#ifdef ZMQ_CPP11 + // Set integral socket option, e.g. + // `socket.set(zmq::sockopt::linger, 0)` + template + void set(sockopt::integral_option, const T &val) + { + static_assert(std::is_integral::value, "T must be integral"); + set_option(Opt, &val, sizeof val); + } + + // Set integral socket option from boolean, e.g. + // `socket.set(zmq::sockopt::immediate, false)` + template + void set(sockopt::integral_option, bool val) + { + static_assert(std::is_integral::value, "T must be integral"); + T rep_val = val; + set_option(Opt, &rep_val, sizeof rep_val); + } + + // Set array socket option, e.g. + // `socket.set(zmq::sockopt::plain_username, "foo123")` + template + void set(sockopt::array_option, const char *buf) + { + set_option(Opt, buf, std::strlen(buf)); + } + + // Set array socket option, e.g. + // `socket.set(zmq::sockopt::routing_id, zmq::buffer(id))` + template + void set(sockopt::array_option, const_buffer buf) + { + set_option(Opt, buf.data(), buf.size()); + } + + // Set array socket option, e.g. + // `socket.set(zmq::sockopt::routing_id, id_str)` + template + void set(sockopt::array_option, const std::string &buf) + { + set_option(Opt, buf.data(), buf.size()); + } + +#if CPPZMQ_HAS_STRING_VIEW + // Set array socket option, e.g. + // `socket.set(zmq::sockopt::routing_id, id_str)` + template + void set(sockopt::array_option, std::string_view buf) + { + set_option(Opt, buf.data(), buf.size()); + } +#endif + + // Get scalar socket option, e.g. + // `auto opt = socket.get(zmq::sockopt::linger)` + template + ZMQ_NODISCARD T get(sockopt::integral_option) const + { + static_assert(std::is_integral::value, "T must be integral"); + T val; + size_t size = sizeof val; + get_option(Opt, &val, &size); + assert(size == sizeof val); + return val; + } + + // Get array socket option, writes to buf, returns option size in bytes, e.g. + // `size_t optsize = socket.get(zmq::sockopt::routing_id, zmq::buffer(id))` + template + ZMQ_NODISCARD size_t get(sockopt::array_option, + mutable_buffer buf) const + { + size_t size = buf.size(); + get_option(Opt, buf.data(), &size); + return size; + } + + // Get array socket option as string (initializes the string buffer size to init_size) e.g. + // `auto s = socket.get(zmq::sockopt::routing_id)` + // Note: removes the null character from null-terminated string options, + // i.e. the string size excludes the null character. + template + ZMQ_NODISCARD std::string get(sockopt::array_option, + size_t init_size = 1024) const + { + if ZMQ_CONSTEXPR_IF (NullTerm == 2) { + if (init_size == 1024) { + init_size = 41; // get as Z85 string + } + } + std::string str(init_size, '\0'); + size_t size = get(sockopt::array_option{}, buffer(str)); + if ZMQ_CONSTEXPR_IF (NullTerm == 1) { + if (size > 0) { + assert(str[size - 1] == '\0'); + --size; + } + } else if ZMQ_CONSTEXPR_IF (NullTerm == 2) { + assert(size == 32 || size == 41); + if (size == 41) { + assert(str[size - 1] == '\0'); + --size; + } + } + str.resize(size); + return str; + } +#endif + + void bind(std::string const &addr) { bind(addr.c_str()); } + + void bind(const char *addr_) + { + int rc = zmq_bind(_handle, addr_); + if (rc != 0) + throw error_t(); + } + + void unbind(std::string const &addr) { unbind(addr.c_str()); } + + void unbind(const char *addr_) + { + int rc = zmq_unbind(_handle, addr_); + if (rc != 0) + throw error_t(); + } + + void connect(std::string const &addr) { connect(addr.c_str()); } + + void connect(const char *addr_) + { + int rc = zmq_connect(_handle, addr_); + if (rc != 0) + throw error_t(); + } + + void disconnect(std::string const &addr) { disconnect(addr.c_str()); } + + void disconnect(const char *addr_) + { + int rc = zmq_disconnect(_handle, addr_); + if (rc != 0) + throw error_t(); + } + + ZMQ_DEPRECATED("from 4.7.1, use handle() != nullptr or operator bool") + bool connected() const ZMQ_NOTHROW { return (_handle != ZMQ_NULLPTR); } + + ZMQ_CPP11_DEPRECATED("from 4.3.1, use send taking a const_buffer and send_flags") + size_t send(const void *buf_, size_t len_, int flags_ = 0) + { + int nbytes = zmq_send(_handle, buf_, len_, flags_); + if (nbytes >= 0) + return static_cast(nbytes); + if (zmq_errno() == EAGAIN) + return 0; + throw error_t(); + } + + ZMQ_CPP11_DEPRECATED("from 4.3.1, use send taking message_t and send_flags") + bool send(message_t &msg_, + int flags_ = 0) // default until removed + { + int nbytes = zmq_msg_send(msg_.handle(), _handle, flags_); + if (nbytes >= 0) + return true; + if (zmq_errno() == EAGAIN) + return false; + throw error_t(); + } + + template + ZMQ_CPP11_DEPRECATED( + "from 4.4.1, use send taking message_t or buffer (for contiguous " + "ranges), and send_flags") + bool send(T first, T last, int flags_ = 0) + { + zmq::message_t msg(first, last); + int nbytes = zmq_msg_send(msg.handle(), _handle, flags_); + if (nbytes >= 0) + return true; + if (zmq_errno() == EAGAIN) + return false; + throw error_t(); + } + +#ifdef ZMQ_HAS_RVALUE_REFS + ZMQ_CPP11_DEPRECATED("from 4.3.1, use send taking message_t and send_flags") + bool send(message_t &&msg_, + int flags_ = 0) // default until removed + { +#ifdef ZMQ_CPP11 + return send(msg_, static_cast(flags_)).has_value(); +#else + return send(msg_, flags_); +#endif + } +#endif + +#ifdef ZMQ_CPP11 + send_result_t send(const_buffer buf, send_flags flags = send_flags::none) + { + const int nbytes = + zmq_send(_handle, buf.data(), buf.size(), static_cast(flags)); + if (nbytes >= 0) + return static_cast(nbytes); + if (zmq_errno() == EAGAIN) + return {}; + throw error_t(); + } + + send_result_t send(message_t &msg, send_flags flags) + { + int nbytes = zmq_msg_send(msg.handle(), _handle, static_cast(flags)); + if (nbytes >= 0) + return static_cast(nbytes); + if (zmq_errno() == EAGAIN) + return {}; + throw error_t(); + } + + send_result_t send(message_t &&msg, send_flags flags) + { + return send(msg, flags); + } +#endif + + ZMQ_CPP11_DEPRECATED( + "from 4.3.1, use recv taking a mutable_buffer and recv_flags") + size_t recv(void *buf_, size_t len_, int flags_ = 0) + { + int nbytes = zmq_recv(_handle, buf_, len_, flags_); + if (nbytes >= 0) + return static_cast(nbytes); + if (zmq_errno() == EAGAIN) + return 0; + throw error_t(); + } + + ZMQ_CPP11_DEPRECATED( + "from 4.3.1, use recv taking a reference to message_t and recv_flags") + bool recv(message_t *msg_, int flags_ = 0) + { + int nbytes = zmq_msg_recv(msg_->handle(), _handle, flags_); + if (nbytes >= 0) + return true; + if (zmq_errno() == EAGAIN) + return false; + throw error_t(); + } + +#ifdef ZMQ_CPP11 + ZMQ_NODISCARD + recv_buffer_result_t recv(mutable_buffer buf, + recv_flags flags = recv_flags::none) + { + const int nbytes = + zmq_recv(_handle, buf.data(), buf.size(), static_cast(flags)); + if (nbytes >= 0) { + return recv_buffer_size{ + (std::min)(static_cast(nbytes), buf.size()), + static_cast(nbytes)}; + } + if (zmq_errno() == EAGAIN) + return {}; + throw error_t(); + } + + ZMQ_NODISCARD + recv_result_t recv(message_t &msg, recv_flags flags = recv_flags::none) + { + const int nbytes = + zmq_msg_recv(msg.handle(), _handle, static_cast(flags)); + if (nbytes >= 0) { + assert(msg.size() == static_cast(nbytes)); + return static_cast(nbytes); + } + if (zmq_errno() == EAGAIN) + return {}; + throw error_t(); + } +#endif + +#if defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 0) + void join(const char *group) + { + int rc = zmq_join(_handle, group); + if (rc != 0) + throw error_t(); + } + + void leave(const char *group) + { + int rc = zmq_leave(_handle, group); + if (rc != 0) + throw error_t(); + } +#endif + + ZMQ_NODISCARD void *handle() ZMQ_NOTHROW { return _handle; } + ZMQ_NODISCARD const void *handle() const ZMQ_NOTHROW { return _handle; } + + ZMQ_EXPLICIT operator bool() const ZMQ_NOTHROW { return _handle != ZMQ_NULLPTR; } + // note: non-const operator bool can be removed once + // operator void* is removed from socket_t + ZMQ_EXPLICIT operator bool() ZMQ_NOTHROW { return _handle != ZMQ_NULLPTR; } + + protected: + void *_handle; + + private: + void set_option(int option_, const void *optval_, size_t optvallen_) + { + int rc = zmq_setsockopt(_handle, option_, optval_, optvallen_); + if (rc != 0) + throw error_t(); + } + + void get_option(int option_, void *optval_, size_t *optvallen_) const + { + int rc = zmq_getsockopt(_handle, option_, optval_, optvallen_); + if (rc != 0) + throw error_t(); + } +}; +} // namespace detail + +#ifdef ZMQ_CPP11 +enum class socket_type : int +{ + req = ZMQ_REQ, + rep = ZMQ_REP, + dealer = ZMQ_DEALER, + router = ZMQ_ROUTER, + pub = ZMQ_PUB, + sub = ZMQ_SUB, + xpub = ZMQ_XPUB, + xsub = ZMQ_XSUB, + push = ZMQ_PUSH, + pull = ZMQ_PULL, +#if defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 0) + server = ZMQ_SERVER, + client = ZMQ_CLIENT, + radio = ZMQ_RADIO, + dish = ZMQ_DISH, + gather = ZMQ_GATHER, + scatter = ZMQ_SCATTER, + dgram = ZMQ_DGRAM, +#endif +#if defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 3, 3) + peer = ZMQ_PEER, + channel = ZMQ_CHANNEL, +#endif +#if ZMQ_VERSION_MAJOR >= 4 + stream = ZMQ_STREAM, +#endif + pair = ZMQ_PAIR +}; +#endif + +struct from_handle_t +{ + struct _private + { + }; // disabling use other than with from_handle + ZMQ_CONSTEXPR_FN ZMQ_EXPLICIT from_handle_t(_private /*p*/) ZMQ_NOTHROW {} +}; + +ZMQ_CONSTEXPR_VAR from_handle_t from_handle = + from_handle_t(from_handle_t::_private()); + +// A non-owning nullable reference to a socket. +// The reference is invalidated on socket close or destruction. +class socket_ref : public detail::socket_base +{ + public: + socket_ref() ZMQ_NOTHROW : detail::socket_base() {} +#ifdef ZMQ_CPP11 + socket_ref(std::nullptr_t) ZMQ_NOTHROW : detail::socket_base() {} +#endif + socket_ref(from_handle_t /*fh*/, void *handle) ZMQ_NOTHROW + : detail::socket_base(handle) + { + } +}; + +#ifdef ZMQ_CPP11 +inline bool operator==(socket_ref sr, std::nullptr_t /*p*/) ZMQ_NOTHROW +{ + return sr.handle() == nullptr; +} +inline bool operator==(std::nullptr_t /*p*/, socket_ref sr) ZMQ_NOTHROW +{ + return sr.handle() == nullptr; +} +inline bool operator!=(socket_ref sr, std::nullptr_t /*p*/) ZMQ_NOTHROW +{ + return !(sr == nullptr); +} +inline bool operator!=(std::nullptr_t /*p*/, socket_ref sr) ZMQ_NOTHROW +{ + return !(sr == nullptr); +} +#endif + +inline bool operator==(const detail::socket_base& a, const detail::socket_base& b) ZMQ_NOTHROW +{ + return std::equal_to()(a.handle(), b.handle()); +} +inline bool operator!=(const detail::socket_base& a, const detail::socket_base& b) ZMQ_NOTHROW +{ + return !(a == b); +} +inline bool operator<(const detail::socket_base& a, const detail::socket_base& b) ZMQ_NOTHROW +{ + return std::less()(a.handle(), b.handle()); +} +inline bool operator>(const detail::socket_base& a, const detail::socket_base& b) ZMQ_NOTHROW +{ + return b < a; +} +inline bool operator<=(const detail::socket_base& a, const detail::socket_base& b) ZMQ_NOTHROW +{ + return !(a > b); +} +inline bool operator>=(const detail::socket_base& a, const detail::socket_base& b) ZMQ_NOTHROW +{ + return !(a < b); +} + +} // namespace zmq + +#ifdef ZMQ_CPP11 +namespace std +{ +template<> struct hash +{ + size_t operator()(zmq::socket_ref sr) const ZMQ_NOTHROW + { + return hash()(sr.handle()); + } +}; +} // namespace std +#endif + +namespace zmq +{ +class socket_t : public detail::socket_base +{ + friend class monitor_t; + + public: + socket_t() ZMQ_NOTHROW : detail::socket_base(ZMQ_NULLPTR), ctxptr(ZMQ_NULLPTR) {} + + socket_t(context_t &context_, int type_) : + detail::socket_base(zmq_socket(context_.handle(), type_)), + ctxptr(context_.handle()) + { + if (_handle == ZMQ_NULLPTR) + throw error_t(); + } + +#ifdef ZMQ_CPP11 + socket_t(context_t &context_, socket_type type_) : + socket_t(context_, static_cast(type_)) + { + } +#endif + +#ifdef ZMQ_HAS_RVALUE_REFS + socket_t(socket_t &&rhs) ZMQ_NOTHROW : detail::socket_base(rhs._handle), + ctxptr(rhs.ctxptr) + { + rhs._handle = ZMQ_NULLPTR; + rhs.ctxptr = ZMQ_NULLPTR; + } + socket_t &operator=(socket_t &&rhs) ZMQ_NOTHROW + { + close(); + std::swap(_handle, rhs._handle); + std::swap(ctxptr, rhs.ctxptr); + return *this; + } +#endif + + ~socket_t() ZMQ_NOTHROW { close(); } + + operator void *() ZMQ_NOTHROW { return _handle; } + + operator void const *() const ZMQ_NOTHROW { return _handle; } + + void close() ZMQ_NOTHROW + { + if (_handle == ZMQ_NULLPTR) + // already closed + return; + int rc = zmq_close(_handle); + ZMQ_ASSERT(rc == 0); + _handle = ZMQ_NULLPTR; + ctxptr = ZMQ_NULLPTR; + } + + void swap(socket_t &other) ZMQ_NOTHROW + { + std::swap(_handle, other._handle); + std::swap(ctxptr, other.ctxptr); + } + + operator socket_ref() ZMQ_NOTHROW { return socket_ref(from_handle, _handle); } + + private: + void *ctxptr; + + socket_t(const socket_t &) ZMQ_DELETED_FUNCTION; + void operator=(const socket_t &) ZMQ_DELETED_FUNCTION; + + // used by monitor_t + socket_t(void *context_, int type_) : + detail::socket_base(zmq_socket(context_, type_)), ctxptr(context_) + { + if (_handle == ZMQ_NULLPTR) + throw error_t(); + if (ctxptr == ZMQ_NULLPTR) + throw error_t(); + } +}; + +inline void swap(socket_t &a, socket_t &b) ZMQ_NOTHROW +{ + a.swap(b); +} + +ZMQ_DEPRECATED("from 4.3.1, use proxy taking socket_t objects") +inline void proxy(void *frontend, void *backend, void *capture) +{ + int rc = zmq_proxy(frontend, backend, capture); + if (rc != 0) + throw error_t(); +} + +inline void +proxy(socket_ref frontend, socket_ref backend, socket_ref capture = socket_ref()) +{ + int rc = zmq_proxy(frontend.handle(), backend.handle(), capture.handle()); + if (rc != 0) + throw error_t(); +} + +#ifdef ZMQ_HAS_PROXY_STEERABLE +ZMQ_DEPRECATED("from 4.3.1, use proxy_steerable taking socket_t objects") +inline void +proxy_steerable(void *frontend, void *backend, void *capture, void *control) +{ + int rc = zmq_proxy_steerable(frontend, backend, capture, control); + if (rc != 0) + throw error_t(); +} + +inline void proxy_steerable(socket_ref frontend, + socket_ref backend, + socket_ref capture, + socket_ref control) +{ + int rc = zmq_proxy_steerable(frontend.handle(), backend.handle(), + capture.handle(), control.handle()); + if (rc != 0) + throw error_t(); +} +#endif + +class monitor_t +{ + public: + monitor_t() : _socket(), _monitor_socket() {} + + virtual ~monitor_t() { close(); } + +#ifdef ZMQ_HAS_RVALUE_REFS + monitor_t(monitor_t &&rhs) ZMQ_NOTHROW : _socket(), _monitor_socket() + { + std::swap(_socket, rhs._socket); + std::swap(_monitor_socket, rhs._monitor_socket); + } + + monitor_t &operator=(monitor_t &&rhs) ZMQ_NOTHROW + { + close(); + _socket = socket_ref(); + std::swap(_socket, rhs._socket); + std::swap(_monitor_socket, rhs._monitor_socket); + return *this; + } +#endif + + + void + monitor(socket_t &socket, std::string const &addr, int events = ZMQ_EVENT_ALL) + { + monitor(socket, addr.c_str(), events); + } + + void monitor(socket_t &socket, const char *addr_, int events = ZMQ_EVENT_ALL) + { + init(socket, addr_, events); + while (true) { + check_event(-1); + } + } + + void init(socket_t &socket, std::string const &addr, int events = ZMQ_EVENT_ALL) + { + init(socket, addr.c_str(), events); + } + + void init(socket_t &socket, const char *addr_, int events = ZMQ_EVENT_ALL) + { + int rc = zmq_socket_monitor(socket.handle(), addr_, events); + if (rc != 0) + throw error_t(); + + _socket = socket; + _monitor_socket = socket_t(socket.ctxptr, ZMQ_PAIR); + _monitor_socket.connect(addr_); + + on_monitor_started(); + } + + bool check_event(int timeout = 0) + { + assert(_monitor_socket); + + zmq::message_t eventMsg; + + zmq::pollitem_t items[] = { + {_monitor_socket.handle(), 0, ZMQ_POLLIN, 0}, + }; + + #ifdef ZMQ_CPP11 + zmq::poll(&items[0], 1, std::chrono::milliseconds(timeout)); + #else + zmq::poll(&items[0], 1, timeout); + #endif + + if (items[0].revents & ZMQ_POLLIN) { + int rc = zmq_msg_recv(eventMsg.handle(), _monitor_socket.handle(), 0); + if (rc == -1 && zmq_errno() == ETERM) + return false; + assert(rc != -1); + + } else { + return false; + } + +#if ZMQ_VERSION_MAJOR >= 4 + const char *data = static_cast(eventMsg.data()); + zmq_event_t msgEvent; + memcpy(&msgEvent.event, data, sizeof(uint16_t)); + data += sizeof(uint16_t); + memcpy(&msgEvent.value, data, sizeof(int32_t)); + zmq_event_t *event = &msgEvent; +#else + zmq_event_t *event = static_cast(eventMsg.data()); +#endif + +#ifdef ZMQ_NEW_MONITOR_EVENT_LAYOUT + zmq::message_t addrMsg; + int rc = zmq_msg_recv(addrMsg.handle(), _monitor_socket.handle(), 0); + if (rc == -1 && zmq_errno() == ETERM) { + return false; + } + + assert(rc != -1); + std::string address = addrMsg.to_string(); +#else + // Bit of a hack, but all events in the zmq_event_t union have the same layout so this will work for all event types. + std::string address = event->data.connected.addr; +#endif + +#ifdef ZMQ_EVENT_MONITOR_STOPPED + if (event->event == ZMQ_EVENT_MONITOR_STOPPED) { + return false; + } + +#endif + + switch (event->event) { + case ZMQ_EVENT_CONNECTED: + on_event_connected(*event, address.c_str()); + break; + case ZMQ_EVENT_CONNECT_DELAYED: + on_event_connect_delayed(*event, address.c_str()); + break; + case ZMQ_EVENT_CONNECT_RETRIED: + on_event_connect_retried(*event, address.c_str()); + break; + case ZMQ_EVENT_LISTENING: + on_event_listening(*event, address.c_str()); + break; + case ZMQ_EVENT_BIND_FAILED: + on_event_bind_failed(*event, address.c_str()); + break; + case ZMQ_EVENT_ACCEPTED: + on_event_accepted(*event, address.c_str()); + break; + case ZMQ_EVENT_ACCEPT_FAILED: + on_event_accept_failed(*event, address.c_str()); + break; + case ZMQ_EVENT_CLOSED: + on_event_closed(*event, address.c_str()); + break; + case ZMQ_EVENT_CLOSE_FAILED: + on_event_close_failed(*event, address.c_str()); + break; + case ZMQ_EVENT_DISCONNECTED: + on_event_disconnected(*event, address.c_str()); + break; +#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 3, 0) || (defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 3)) + case ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL: + on_event_handshake_failed_no_detail(*event, address.c_str()); + break; + case ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL: + on_event_handshake_failed_protocol(*event, address.c_str()); + break; + case ZMQ_EVENT_HANDSHAKE_FAILED_AUTH: + on_event_handshake_failed_auth(*event, address.c_str()); + break; + case ZMQ_EVENT_HANDSHAKE_SUCCEEDED: + on_event_handshake_succeeded(*event, address.c_str()); + break; +#elif defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 1) + case ZMQ_EVENT_HANDSHAKE_FAILED: + on_event_handshake_failed(*event, address.c_str()); + break; + case ZMQ_EVENT_HANDSHAKE_SUCCEED: + on_event_handshake_succeed(*event, address.c_str()); + break; +#endif + default: + on_event_unknown(*event, address.c_str()); + break; + } + + return true; + } + +#ifdef ZMQ_EVENT_MONITOR_STOPPED + void abort() + { + if (_socket) + zmq_socket_monitor(_socket.handle(), ZMQ_NULLPTR, 0); + + _socket = socket_ref(); + } +#endif + virtual void on_monitor_started() {} + virtual void on_event_connected(const zmq_event_t &event_, const char *addr_) + { + (void) event_; + (void) addr_; + } + virtual void on_event_connect_delayed(const zmq_event_t &event_, + const char *addr_) + { + (void) event_; + (void) addr_; + } + virtual void on_event_connect_retried(const zmq_event_t &event_, + const char *addr_) + { + (void) event_; + (void) addr_; + } + virtual void on_event_listening(const zmq_event_t &event_, const char *addr_) + { + (void) event_; + (void) addr_; + } + virtual void on_event_bind_failed(const zmq_event_t &event_, const char *addr_) + { + (void) event_; + (void) addr_; + } + virtual void on_event_accepted(const zmq_event_t &event_, const char *addr_) + { + (void) event_; + (void) addr_; + } + virtual void on_event_accept_failed(const zmq_event_t &event_, const char *addr_) + { + (void) event_; + (void) addr_; + } + virtual void on_event_closed(const zmq_event_t &event_, const char *addr_) + { + (void) event_; + (void) addr_; + } + virtual void on_event_close_failed(const zmq_event_t &event_, const char *addr_) + { + (void) event_; + (void) addr_; + } + virtual void on_event_disconnected(const zmq_event_t &event_, const char *addr_) + { + (void) event_; + (void) addr_; + } +#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 3) + virtual void on_event_handshake_failed_no_detail(const zmq_event_t &event_, + const char *addr_) + { + (void) event_; + (void) addr_; + } + virtual void on_event_handshake_failed_protocol(const zmq_event_t &event_, + const char *addr_) + { + (void) event_; + (void) addr_; + } + virtual void on_event_handshake_failed_auth(const zmq_event_t &event_, + const char *addr_) + { + (void) event_; + (void) addr_; + } + virtual void on_event_handshake_succeeded(const zmq_event_t &event_, + const char *addr_) + { + (void) event_; + (void) addr_; + } +#elif ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 1) + virtual void on_event_handshake_failed(const zmq_event_t &event_, + const char *addr_) + { + (void) event_; + (void) addr_; + } + virtual void on_event_handshake_succeed(const zmq_event_t &event_, + const char *addr_) + { + (void) event_; + (void) addr_; + } +#endif + virtual void on_event_unknown(const zmq_event_t &event_, const char *addr_) + { + (void) event_; + (void) addr_; + } + + private: + monitor_t(const monitor_t &) ZMQ_DELETED_FUNCTION; + void operator=(const monitor_t &) ZMQ_DELETED_FUNCTION; + + socket_ref _socket; + socket_t _monitor_socket; + + void close() ZMQ_NOTHROW + { + if (_socket) + zmq_socket_monitor(_socket.handle(), ZMQ_NULLPTR, 0); + _monitor_socket.close(); + } +}; + +#if defined(ZMQ_BUILD_DRAFT_API) && defined(ZMQ_CPP11) && defined(ZMQ_HAVE_POLLER) + +// polling events +enum class event_flags : short +{ + none = 0, + pollin = ZMQ_POLLIN, + pollout = ZMQ_POLLOUT, + pollerr = ZMQ_POLLERR, + pollpri = ZMQ_POLLPRI +}; + +constexpr event_flags operator|(event_flags a, event_flags b) noexcept +{ + return detail::enum_bit_or(a, b); +} +constexpr event_flags operator&(event_flags a, event_flags b) noexcept +{ + return detail::enum_bit_and(a, b); +} +constexpr event_flags operator^(event_flags a, event_flags b) noexcept +{ + return detail::enum_bit_xor(a, b); +} +constexpr event_flags operator~(event_flags a) noexcept +{ + return detail::enum_bit_not(a); +} + +struct no_user_data; + +// layout compatible with zmq_poller_event_t +template struct poller_event +{ + socket_ref socket; + ::zmq::fd_t fd; + T *user_data; + event_flags events; +}; + +template class poller_t +{ + public: + using event_type = poller_event; + + poller_t() : poller_ptr(zmq_poller_new()) + { + if (!poller_ptr) + throw error_t(); + } + + template< + typename Dummy = void, + typename = + typename std::enable_if::value, Dummy>::type> + void add(zmq::socket_ref socket, event_flags events, T *user_data) + { + add_impl(socket, events, user_data); + } + + void add(zmq::socket_ref socket, event_flags events) + { + add_impl(socket, events, nullptr); + } + + void remove(zmq::socket_ref socket) + { + if (0 != zmq_poller_remove(poller_ptr.get(), socket.handle())) { + throw error_t(); + } + } + + void modify(zmq::socket_ref socket, event_flags events) + { + if (0 + != zmq_poller_modify(poller_ptr.get(), socket.handle(), + static_cast(events))) { + throw error_t(); + } + } + + size_t wait_all(std::vector &poller_events, + const std::chrono::milliseconds timeout) + { + int rc = zmq_poller_wait_all( + poller_ptr.get(), + reinterpret_cast(poller_events.data()), + static_cast(poller_events.size()), + static_cast(timeout.count())); + if (rc > 0) + return static_cast(rc); + +#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 3) + if (zmq_errno() == EAGAIN) +#else + if (zmq_errno() == ETIMEDOUT) +#endif + return 0; + + throw error_t(); + } + +#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 3, 3) + size_t size() const noexcept + { + int rc = zmq_poller_size(const_cast(poller_ptr.get())); + ZMQ_ASSERT(rc >= 0); + return static_cast(std::max(rc, 0)); + } +#endif + + private: + struct destroy_poller_t + { + void operator()(void *ptr) noexcept + { + int rc = zmq_poller_destroy(&ptr); + ZMQ_ASSERT(rc == 0); + } + }; + + std::unique_ptr poller_ptr; + + void add_impl(zmq::socket_ref socket, event_flags events, T *user_data) + { + if (0 + != zmq_poller_add(poller_ptr.get(), socket.handle(), user_data, + static_cast(events))) { + throw error_t(); + } + } +}; +#endif // defined(ZMQ_BUILD_DRAFT_API) && defined(ZMQ_CPP11) && defined(ZMQ_HAVE_POLLER) + +inline std::ostream &operator<<(std::ostream &os, const message_t &msg) +{ + return os << msg.str(); +} + +} // namespace zmq + +#endif // __ZMQ_HPP_INCLUDED__ diff --git a/ext/libzmq/include/zmq/zmq_addon.hpp b/ext/libzmq/include/zmq/zmq_addon.hpp new file mode 100644 index 0000000..4c36d6e --- /dev/null +++ b/ext/libzmq/include/zmq/zmq_addon.hpp @@ -0,0 +1,743 @@ +/* + Copyright (c) 2016-2017 ZeroMQ community + Copyright (c) 2016 VOCA AS / Harald Nøkland + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. +*/ + +#ifndef __ZMQ_ADDON_HPP_INCLUDED__ +#define __ZMQ_ADDON_HPP_INCLUDED__ + +#include "zmq.hpp" + +#include +#include +#include +#include +#ifdef ZMQ_CPP11 +#include +#include +#include +#endif + +namespace zmq +{ +#ifdef ZMQ_CPP11 + +namespace detail +{ +template +recv_result_t +recv_multipart_n(socket_ref s, OutputIt out, size_t n, recv_flags flags) +{ + size_t msg_count = 0; + message_t msg; + while (true) { + if ZMQ_CONSTEXPR_IF (CheckN) { + if (msg_count >= n) + throw std::runtime_error( + "Too many message parts in recv_multipart_n"); + } + if (!s.recv(msg, flags)) { + // zmq ensures atomic delivery of messages + assert(msg_count == 0); + return {}; + } + ++msg_count; + const bool more = msg.more(); + *out++ = std::move(msg); + if (!more) + break; + } + return msg_count; +} + +inline bool is_little_endian() +{ + const uint16_t i = 0x01; + return *reinterpret_cast(&i) == 0x01; +} + +inline void write_network_order(unsigned char *buf, const uint32_t value) +{ + if (is_little_endian()) { + ZMQ_CONSTEXPR_VAR uint32_t mask = std::numeric_limits::max(); + *buf++ = static_cast((value >> 24) & mask); + *buf++ = static_cast((value >> 16) & mask); + *buf++ = static_cast((value >> 8) & mask); + *buf++ = static_cast(value & mask); + } else { + std::memcpy(buf, &value, sizeof(value)); + } +} + +inline uint32_t read_u32_network_order(const unsigned char *buf) +{ + if (is_little_endian()) { + return (static_cast(buf[0]) << 24) + + (static_cast(buf[1]) << 16) + + (static_cast(buf[2]) << 8) + + static_cast(buf[3]); + } else { + uint32_t value; + std::memcpy(&value, buf, sizeof(value)); + return value; + } +} +} // namespace detail + +/* Receive a multipart message. + + Writes the zmq::message_t objects to OutputIterator out. + The out iterator must handle an unspecified number of writes, + e.g. by using std::back_inserter. + + Returns: the number of messages received or nullopt (on EAGAIN). + Throws: if recv throws. Any exceptions thrown + by the out iterator will be propagated and the message + may have been only partially received with pending + message parts. It is adviced to close this socket in that event. +*/ +template +ZMQ_NODISCARD recv_result_t recv_multipart(socket_ref s, + OutputIt out, + recv_flags flags = recv_flags::none) +{ + return detail::recv_multipart_n(s, std::move(out), 0, flags); +} + +/* Receive a multipart message. + + Writes at most n zmq::message_t objects to OutputIterator out. + If the number of message parts of the incoming message exceeds n + then an exception will be thrown. + + Returns: the number of messages received or nullopt (on EAGAIN). + Throws: if recv throws. Throws std::runtime_error if the number + of message parts exceeds n (exactly n messages will have been written + to out). Any exceptions thrown + by the out iterator will be propagated and the message + may have been only partially received with pending + message parts. It is adviced to close this socket in that event. +*/ +template +ZMQ_NODISCARD recv_result_t recv_multipart_n(socket_ref s, + OutputIt out, + size_t n, + recv_flags flags = recv_flags::none) +{ + return detail::recv_multipart_n(s, std::move(out), n, flags); +} + +/* Send a multipart message. + + The range must be a ForwardRange of zmq::message_t, + zmq::const_buffer or zmq::mutable_buffer. + The flags may be zmq::send_flags::sndmore if there are + more message parts to be sent after the call to this function. + + Returns: the number of messages sent (exactly msgs.size()) or nullopt (on EAGAIN). + Throws: if send throws. Any exceptions thrown + by the msgs range will be propagated and the message + may have been only partially sent. It is adviced to close this socket in that event. +*/ +template::value + && (std::is_same, message_t>::value + || detail::is_buffer>::value)>::type +#endif + > +send_result_t +send_multipart(socket_ref s, Range &&msgs, send_flags flags = send_flags::none) +{ + using std::begin; + using std::end; + auto it = begin(msgs); + const auto end_it = end(msgs); + size_t msg_count = 0; + while (it != end_it) { + const auto next = std::next(it); + const auto msg_flags = + flags | (next == end_it ? send_flags::none : send_flags::sndmore); + if (!s.send(*it, msg_flags)) { + // zmq ensures atomic delivery of messages + assert(it == begin(msgs)); + return {}; + } + ++msg_count; + it = next; + } + return msg_count; +} + +/* Encode a multipart message. + + The range must be a ForwardRange of zmq::message_t. A + zmq::multipart_t or STL container may be passed for encoding. + + Returns: a zmq::message_t holding the encoded multipart data. + + Throws: std::range_error is thrown if the size of any single part + can not fit in an unsigned 32 bit integer. + + The encoding is compatible with that used by the CZMQ function + zmsg_encode(), see https://rfc.zeromq.org/spec/50/. + Each part consists of a size followed by the data. + These are placed contiguously into the output message. A part of + size less than 255 bytes will have a single byte size value. + Larger parts will have a five byte size value with the first byte + set to 0xFF and the remaining four bytes holding the size of the + part's data. +*/ +template::value + && (std::is_same, message_t>::value + || detail::is_buffer>::value)>::type +#endif + > +message_t encode(const Range &parts) +{ + size_t mmsg_size = 0; + + // First pass check sizes + for (const auto &part : parts) { + const size_t part_size = part.size(); + if (part_size > std::numeric_limits::max()) { + // Size value must fit into uint32_t. + throw std::range_error("Invalid size, message part too large"); + } + const size_t count_size = + part_size < std::numeric_limits::max() ? 1 : 5; + mmsg_size += part_size + count_size; + } + + message_t encoded(mmsg_size); + unsigned char *buf = encoded.data(); + for (const auto &part : parts) { + const uint32_t part_size = static_cast(part.size()); + const unsigned char *part_data = + static_cast(part.data()); + + if (part_size < std::numeric_limits::max()) { + // small part + *buf++ = (unsigned char) part_size; + } else { + // big part + *buf++ = std::numeric_limits::max(); + detail::write_network_order(buf, part_size); + buf += sizeof(part_size); + } + std::memcpy(buf, part_data, part_size); + buf += part_size; + } + + assert(static_cast(buf - encoded.data()) == mmsg_size); + return encoded; +} + +/* Decode an encoded message to multiple parts. + + The given output iterator must be a ForwardIterator to a container + holding zmq::message_t such as a zmq::multipart_t or various STL + containers. + + Returns the ForwardIterator advanced once past the last decoded + part. + + Throws: a std::out_of_range is thrown if the encoded part sizes + lead to exceeding the message data bounds. + + The decoding assumes the message is encoded in the manner + performed by zmq::encode(), see https://rfc.zeromq.org/spec/50/. + */ +template OutputIt decode(const message_t &encoded, OutputIt out) +{ + const unsigned char *source = encoded.data(); + const unsigned char *const limit = source + encoded.size(); + + while (source < limit) { + size_t part_size = *source++; + if (part_size == std::numeric_limits::max()) { + if (static_cast(limit - source) < sizeof(uint32_t)) { + throw std::out_of_range( + "Malformed encoding, overflow in reading size"); + } + part_size = detail::read_u32_network_order(source); + // the part size is allowed to be less than 0xFF + source += sizeof(uint32_t); + } + + if (static_cast(limit - source) < part_size) { + throw std::out_of_range("Malformed encoding, overflow in reading part"); + } + *out = message_t(source, part_size); + ++out; + source += part_size; + } + + assert(source == limit); + return out; +} + +#endif + + +#ifdef ZMQ_HAS_RVALUE_REFS + +/* + This class handles multipart messaging. It is the C++ equivalent of zmsg.h, + which is part of CZMQ (the high-level C binding). Furthermore, it is a major + improvement compared to zmsg.hpp, which is part of the examples in the ØMQ + Guide. Unnecessary copying is avoided by using move semantics to efficiently + add/remove parts. +*/ +class multipart_t +{ + private: + std::deque m_parts; + + public: + typedef std::deque::value_type value_type; + + typedef std::deque::iterator iterator; + typedef std::deque::const_iterator const_iterator; + + typedef std::deque::reverse_iterator reverse_iterator; + typedef std::deque::const_reverse_iterator const_reverse_iterator; + + // Default constructor + multipart_t() {} + + // Construct from socket receive + multipart_t(socket_ref socket) { recv(socket); } + + // Construct from memory block + multipart_t(const void *src, size_t size) { addmem(src, size); } + + // Construct from string + multipart_t(const std::string &string) { addstr(string); } + + // Construct from message part + multipart_t(message_t &&message) { add(std::move(message)); } + + // Move constructor + multipart_t(multipart_t &&other) { m_parts = std::move(other.m_parts); } + + // Move assignment operator + multipart_t &operator=(multipart_t &&other) + { + m_parts = std::move(other.m_parts); + return *this; + } + + // Destructor + virtual ~multipart_t() { clear(); } + + message_t &operator[](size_t n) { return m_parts[n]; } + + const message_t &operator[](size_t n) const { return m_parts[n]; } + + message_t &at(size_t n) { return m_parts.at(n); } + + const message_t &at(size_t n) const { return m_parts.at(n); } + + iterator begin() { return m_parts.begin(); } + + const_iterator begin() const { return m_parts.begin(); } + + const_iterator cbegin() const { return m_parts.cbegin(); } + + reverse_iterator rbegin() { return m_parts.rbegin(); } + + const_reverse_iterator rbegin() const { return m_parts.rbegin(); } + + iterator end() { return m_parts.end(); } + + const_iterator end() const { return m_parts.end(); } + + const_iterator cend() const { return m_parts.cend(); } + + reverse_iterator rend() { return m_parts.rend(); } + + const_reverse_iterator rend() const { return m_parts.rend(); } + + // Delete all parts + void clear() { m_parts.clear(); } + + // Get number of parts + size_t size() const { return m_parts.size(); } + + // Check if number of parts is zero + bool empty() const { return m_parts.empty(); } + + // Receive multipart message from socket + bool recv(socket_ref socket, int flags = 0) + { + clear(); + bool more = true; + while (more) { + message_t message; +#ifdef ZMQ_CPP11 + if (!socket.recv(message, static_cast(flags))) + return false; +#else + if (!socket.recv(&message, flags)) + return false; +#endif + more = message.more(); + add(std::move(message)); + } + return true; + } + + // Send multipart message to socket + bool send(socket_ref socket, int flags = 0) + { + flags &= ~(ZMQ_SNDMORE); + bool more = size() > 0; + while (more) { + message_t message = pop(); + more = size() > 0; +#ifdef ZMQ_CPP11 + if (!socket.send(message, static_cast( + (more ? ZMQ_SNDMORE : 0) | flags))) + return false; +#else + if (!socket.send(message, (more ? ZMQ_SNDMORE : 0) | flags)) + return false; +#endif + } + clear(); + return true; + } + + // Concatenate other multipart to front + void prepend(multipart_t &&other) + { + while (!other.empty()) + push(other.remove()); + } + + // Concatenate other multipart to back + void append(multipart_t &&other) + { + while (!other.empty()) + add(other.pop()); + } + + // Push memory block to front + void pushmem(const void *src, size_t size) + { + m_parts.push_front(message_t(src, size)); + } + + // Push memory block to back + void addmem(const void *src, size_t size) + { + m_parts.push_back(message_t(src, size)); + } + + // Push string to front + void pushstr(const std::string &string) + { + m_parts.push_front(message_t(string.data(), string.size())); + } + + // Push string to back + void addstr(const std::string &string) + { + m_parts.push_back(message_t(string.data(), string.size())); + } + + // Push type (fixed-size) to front + template void pushtyp(const T &type) + { + static_assert(!std::is_same::value, + "Use pushstr() instead of pushtyp()"); + m_parts.push_front(message_t(&type, sizeof(type))); + } + + // Push type (fixed-size) to back + template void addtyp(const T &type) + { + static_assert(!std::is_same::value, + "Use addstr() instead of addtyp()"); + m_parts.push_back(message_t(&type, sizeof(type))); + } + + // Push message part to front + void push(message_t &&message) { m_parts.push_front(std::move(message)); } + + // Push message part to back + void add(message_t &&message) { m_parts.push_back(std::move(message)); } + + // Alias to allow std::back_inserter() + void push_back(message_t &&message) { m_parts.push_back(std::move(message)); } + + // Pop string from front + std::string popstr() + { + std::string string(m_parts.front().data(), m_parts.front().size()); + m_parts.pop_front(); + return string; + } + + // Pop type (fixed-size) from front + template T poptyp() + { + static_assert(!std::is_same::value, + "Use popstr() instead of poptyp()"); + if (sizeof(T) != m_parts.front().size()) + throw std::runtime_error( + "Invalid type, size does not match the message size"); + T type = *m_parts.front().data(); + m_parts.pop_front(); + return type; + } + + // Pop message part from front + message_t pop() + { + message_t message = std::move(m_parts.front()); + m_parts.pop_front(); + return message; + } + + // Pop message part from back + message_t remove() + { + message_t message = std::move(m_parts.back()); + m_parts.pop_back(); + return message; + } + + // get message part from front + const message_t &front() { return m_parts.front(); } + + // get message part from back + const message_t &back() { return m_parts.back(); } + + // Get pointer to a specific message part + const message_t *peek(size_t index) const { return &m_parts[index]; } + + // Get a string copy of a specific message part + std::string peekstr(size_t index) const + { + std::string string(m_parts[index].data(), m_parts[index].size()); + return string; + } + + // Peek type (fixed-size) from front + template T peektyp(size_t index) const + { + static_assert(!std::is_same::value, + "Use peekstr() instead of peektyp()"); + if (sizeof(T) != m_parts[index].size()) + throw std::runtime_error( + "Invalid type, size does not match the message size"); + T type = *m_parts[index].data(); + return type; + } + + // Create multipart from type (fixed-size) + template static multipart_t create(const T &type) + { + multipart_t multipart; + multipart.addtyp(type); + return multipart; + } + + // Copy multipart + multipart_t clone() const + { + multipart_t multipart; + for (size_t i = 0; i < size(); i++) + multipart.addmem(m_parts[i].data(), m_parts[i].size()); + return multipart; + } + + // Dump content to string + std::string str() const + { + std::stringstream ss; + for (size_t i = 0; i < m_parts.size(); i++) { + const unsigned char *data = m_parts[i].data(); + size_t size = m_parts[i].size(); + + // Dump the message as text or binary + bool isText = true; + for (size_t j = 0; j < size; j++) { + if (data[j] < 32 || data[j] > 127) { + isText = false; + break; + } + } + ss << "\n[" << std::dec << std::setw(3) << std::setfill('0') << size + << "] "; + if (size >= 1000) { + ss << "... (too big to print)"; + continue; + } + for (size_t j = 0; j < size; j++) { + if (isText) + ss << static_cast(data[j]); + else + ss << std::hex << std::setw(2) << std::setfill('0') + << static_cast(data[j]); + } + } + return ss.str(); + } + + // Check if equal to other multipart + bool equal(const multipart_t *other) const + { + if (size() != other->size()) + return false; + for (size_t i = 0; i < size(); i++) + if (*peek(i) != *other->peek(i)) + return false; + return true; + } + +#ifdef ZMQ_CPP11 + + // Return single part message_t encoded from this multipart_t. + message_t encode() const { return zmq::encode(*this); } + + // Decode encoded message into multiple parts and append to self. + void decode_append(const message_t &encoded) + { + zmq::decode(encoded, std::back_inserter(*this)); + } + + // Return a new multipart_t containing the decoded message_t. + static multipart_t decode(const message_t &encoded) + { + multipart_t tmp; + zmq::decode(encoded, std::back_inserter(tmp)); + return tmp; + } + +#endif + + private: + // Disable implicit copying (moving is more efficient) + multipart_t(const multipart_t &other) ZMQ_DELETED_FUNCTION; + void operator=(const multipart_t &other) ZMQ_DELETED_FUNCTION; +}; // class multipart_t + +inline std::ostream &operator<<(std::ostream &os, const multipart_t &msg) +{ + return os << msg.str(); +} + +#endif // ZMQ_HAS_RVALUE_REFS + +#if defined(ZMQ_BUILD_DRAFT_API) && defined(ZMQ_CPP11) && defined(ZMQ_HAVE_POLLER) +class active_poller_t +{ + public: + active_poller_t() = default; + ~active_poller_t() = default; + + active_poller_t(const active_poller_t &) = delete; + active_poller_t &operator=(const active_poller_t &) = delete; + + active_poller_t(active_poller_t &&src) = default; + active_poller_t &operator=(active_poller_t &&src) = default; + + using handler_type = std::function; + + void add(zmq::socket_ref socket, event_flags events, handler_type handler) + { + if (!handler) + throw std::invalid_argument("null handler in active_poller_t::add"); + auto ret = handlers.emplace( + socket, std::make_shared(std::move(handler))); + if (!ret.second) + throw error_t(EINVAL); // already added + try { + base_poller.add(socket, events, ret.first->second.get()); + need_rebuild = true; + } + catch (...) { + // rollback + handlers.erase(socket); + throw; + } + } + + void remove(zmq::socket_ref socket) + { + base_poller.remove(socket); + handlers.erase(socket); + need_rebuild = true; + } + + void modify(zmq::socket_ref socket, event_flags events) + { + base_poller.modify(socket, events); + } + + size_t wait(std::chrono::milliseconds timeout) + { + if (need_rebuild) { + poller_events.resize(handlers.size()); + poller_handlers.clear(); + poller_handlers.reserve(handlers.size()); + for (const auto &handler : handlers) { + poller_handlers.push_back(handler.second); + } + need_rebuild = false; + } + const auto count = base_poller.wait_all(poller_events, timeout); + std::for_each(poller_events.begin(), + poller_events.begin() + static_cast(count), + [](decltype(base_poller)::event_type &event) { + assert(event.user_data != nullptr); + (*event.user_data)(event.events); + }); + return count; + } + + ZMQ_NODISCARD bool empty() const noexcept { return handlers.empty(); } + + size_t size() const noexcept { return handlers.size(); } + + private: + bool need_rebuild{false}; + + poller_t base_poller{}; + std::unordered_map> handlers{}; + std::vector poller_events{}; + std::vector> poller_handlers{}; +}; // class active_poller_t +#endif // defined(ZMQ_BUILD_DRAFT_API) && defined(ZMQ_CPP11) && defined(ZMQ_HAVE_POLLER) + + +} // namespace zmq + +#endif // __ZMQ_ADDON_HPP_INCLUDED__ diff --git a/ext/libzmq/include/zmq/zmq_utils.h b/ext/libzmq/include/zmq/zmq_utils.h new file mode 100644 index 0000000..b9398d5 --- /dev/null +++ b/ext/libzmq/include/zmq/zmq_utils.h @@ -0,0 +1,50 @@ +/* + Copyright (c) 2007-2016 Contributors as noted in the AUTHORS file + + This file is part of libzmq, the ZeroMQ core engine in C++. + + libzmq is free software; you can redistribute it and/or modify it under + the terms of the GNU Lesser General Public License (LGPL) as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + As a special exception, the Contributors give you permission to link + this library with independent modules to produce an executable, + regardless of the license terms of these independent modules, and to + copy and distribute the resulting executable under terms of your choice, + provided that you also meet, for each linked independent module, the + terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. + If you modify this library, you must extend this exception to your + version of the library. + + libzmq is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . +*/ + +/* This file is deprecated, and all its functionality provided by zmq.h */ +/* Note that -Wpedantic compilation requires GCC to avoid using its custom + extensions such as #warning, hence the trick below. Also, pragmas for + warnings or other messages are not standard, not portable, and not all + compilers even have an equivalent concept. + So in the worst case, this include file is treated as silently empty. */ + +#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) \ + || defined(_MSC_VER) +#if defined(__GNUC__) || defined(__GNUG__) +#pragma GCC diagnostic push +#pragma GCC diagnostic warning "-Wcpp" +#pragma GCC diagnostic ignored "-Werror" +#pragma GCC diagnostic ignored "-Wall" +#endif +#pragma message( \ + "Warning: zmq_utils.h is deprecated. All its functionality is provided by zmq.h.") +#if defined(__GNUC__) || defined(__GNUG__) +#pragma GCC diagnostic pop +#endif +#endif diff --git a/ext/libzmq/libzmq.so b/ext/libzmq/libzmq.so new file mode 100755 index 0000000..da38730 Binary files /dev/null and b/ext/libzmq/libzmq.so differ diff --git a/ext/libzmq/libzmq.so.5 b/ext/libzmq/libzmq.so.5 new file mode 100755 index 0000000..da38730 Binary files /dev/null and b/ext/libzmq/libzmq.so.5 differ diff --git a/ext/libzmq/libzmq.so.5.2.4 b/ext/libzmq/libzmq.so.5.2.4 new file mode 100755 index 0000000..da38730 Binary files /dev/null and b/ext/libzmq/libzmq.so.5.2.4 differ diff --git a/include/V2XGateway.h b/include/V2XGateway.h new file mode 100644 index 0000000..2c13d62 --- /dev/null +++ b/include/V2XGateway.h @@ -0,0 +1,120 @@ +// +// Created by Christoph Pilz +// +// Description: +// This is the main file for the ROS2 node +// - it handles the server connection for rx/tx of V2X messages +// - it handles the execution of Handler methods for the single V2X messages +// +// Author(s): "Christoph Pilz, Markus Schratter" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Christoph Pilz", "Markus Schratter"] +// License: "BSD-3-clause" +// Version: "1.0.0" +// Maintainer: "Christoph Pilz" +// E-Mail: "christoph.pilz@v2c2.at" +// Status = "Production" +// +// Reference to used code: +// () +// () +// +// Possible Improvements: +// [] +// [] +// [] +// + +#ifndef _V2XGATEWAY_H_ +#define _V2XGATEWAY_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include "rclcpp/rclcpp.hpp" +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#include + +#include +#include + +#include +#include + +#include +#include + +#include "handler/V2XMHandler.h" +#include "server/V2XServer.h" + +using namespace std::chrono_literals; + +class V2XGateway : public rclcpp::Node { +public: + V2XGateway(); + + ~V2XGateway(); + +protected: + +private: + + // Attributes + bool is_node_initialized_; + + diagnostic_msgs::msg::DiagnosticArray diagnostics_; + + std::map v2x_m_handler_; + + V2XServer *v2x_server_; + + // Parameters + std::string ZMQ_IP_ADDRESS; + int ZMQ_SEND_PORT; + + // Timer + rclcpp::TimerBase::SharedPtr timer_; + + // Published topics + rclcpp::Publisher::SharedPtr diagnostics_pub_; + + // Methods + bool readConfig(); + + void process(void); + + // Helpers + double getTimeDifferenceSeconds(rclcpp::Time A, rclcpp::Time B); + +}; + +#endif // _V2XGATEWAY_H_ diff --git a/include/handler/CAMHandler.h b/include/handler/CAMHandler.h new file mode 100644 index 0000000..879669f --- /dev/null +++ b/include/handler/CAMHandler.h @@ -0,0 +1,96 @@ +// +// Created by Christoph Pilz +// +// Description: +// The CAMHandler handles CAMs +// - it converts ROS2 type messages into vcits type messages and vice versa +// - it takes care of basic input output handling +// +// Author(s): "Christoph Pilz, Alina Steinberger" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Christoph Pilz", "Alina Steinberger"] +// License: "BSD-3-clause" +// Version: "1.0.0" +// Maintainer: "Christoph Pilz" +// E-Mail: "christoph.pilz@v2c2.at" +// Status = "Production" +// +// Reference to used code: +// () +// () +// +// Possible Improvements: +// [] +// [] +// [] +// + +#ifndef V2X_GW_CAMHANDLER_H +#define V2X_GW_CAMHANDLER_H + +#include "V2XMHandler.h" + +#include + +#include + +extern "C" { +#include "vcits/cam/CAM.h" +} + + +class CAMHandler : public V2XMHandler { +public: + /// Initializes the CAM handler + CAMHandler(rclcpp::Node *gateway_node); + + /// Destroys CAM handler + ~CAMHandler(); + + /// Get the most recent CAM + /// CAM is produced in the background with ros subscriber magic; this method encodes it before returning. + /// \return most recent CAM + std::queue> GetMessages() override; + + /// Process the received CAM(s) + /// CAM(s) will be processed and ros published + /// \param msgs most recent set of received CAM(s) + void PutMessages(std::queue> msgs); + +protected: + /// Read the configuration for the CAM + void ReadConfig() override; + +private: + // necessary handler processing constants + bool CAM_ACTIVE; + long CAM_DEBUG_MSG_THROTTLE_MS; + + bool new_data_received_; + + // CAM attributes + std::vector cam_list_; + std::mutex cam_list_lock_; + + // Published topics + rclcpp::Publisher::SharedPtr cam_pub_; + + // Subsribed topics + rclcpp::Subscription::SharedPtr ros_cam_sub_; + + // Callbacks + void RosCAMCallback(const v2x_msgs::msg::CAMList::SharedPtr odom); + + // CAM generation + void InitCAM(); + void fillCAM(v2x_msgs::msg::CAM ros_cam, CAM_t* cam); + + + v2x_msgs::msg::CAM GetROSCAM(std::pair msg); + + // debug + void PrintCAM(); + +}; + +#endif //V2X_GW_CAMHANDLER_H diff --git a/include/handler/CPMHandler.h b/include/handler/CPMHandler.h new file mode 100644 index 0000000..159dd51 --- /dev/null +++ b/include/handler/CPMHandler.h @@ -0,0 +1,88 @@ +// +// Created by Christoph Pilz +// +// Description: +// The CPMHandler handles CPMs +// - it converts ROS2 type messages into vcits type messages and vice versa +// - it takes care of basic input output handling +// +// Author(s): "Lukas, Kuschnig, Alina Steinberger" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Lukas Kuschnig", "Christoph Pilz", "Alina Steinberger"] +// License: "BSD-3-clause" +// Version: "1.0.0" +// Maintainer: "Alina Steinberger" +// E-Mail: "alina.steinberger@v2c2.at" +// Status = "Production" +// +// Reference to used code: +// () +// () +// +// Possible Improvements: +// [] +// [] +// [] +// + +#ifndef V2X_GW_CPMHANDLER_H +#define V2X_GW_CPMHANDLER_H + +#include "V2XMHandler.h" +#include + +extern "C" { +#include "vcits/cpm/CPM.h" +} + +class CPMHandler : public V2XMHandler { +public: + /// Initializes the CPM handler + CPMHandler(rclcpp::Node *gateway_node); + + /// Destroys CPM handler + ~CPMHandler(); + + /// Get the most recent CPM + /// CPM is produced in the background with ros subscriber magic; this method encodes it before returning. + /// \return most recent CPM + std::queue> GetMessages() override; + + /// Process the received CPM(s) + /// CPM(s) will be processed and ros published + /// \param msgs most recent set of received CPM(s) + void PutMessages(std::queue> msgs); + +protected: + /// Read the configuration for the CPM + void ReadConfig() override; + +private: + // necessary handler processing constants + bool CPM_ACTIVE; + long CPM_DEBUG_MSG_THROTTLE_MS; + + bool new_data_received_; + + // CPM attributes + CPM_t *cpm_; + + // Published topics + rclcpp::Publisher::SharedPtr cpm_pub_; + + // Subsribed topics + rclcpp::Subscription::SharedPtr cpm_sub_; + + // Callbacks + void rosCPMCallback(const v2x_msgs::msg::CPMList::SharedPtr cpm); + + // CPM generation + void InitCPM(); + + v2x_msgs::msg::CPM GetROSCPM(std::pair msg); + + // debug + void PrintCPM(); +}; + +#endif //V2X_GW_CPMHANDLER_H diff --git a/include/handler/DENMHandler.h b/include/handler/DENMHandler.h new file mode 100644 index 0000000..4a0dbec --- /dev/null +++ b/include/handler/DENMHandler.h @@ -0,0 +1,93 @@ +// +// Created by Christoph Pilz +// +// Description: +// The DENMHandler handles DENMs +// - it converts ROS2 type messages into vcits type messages and vice versa +// - it takes care of basic input output handling +// +// Author(s): "Christoph Pilz" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Christoph Pilz"] +// License: "BSD-3-clause" +// Version: "1.0.0" +// Maintainer: "Christoph Pilz" +// E-Mail: "christoph.pilz@v2c2.at" +// Status = "Production" +// +// Reference to used code: +// () +// () +// +// Possible Improvements: +// [] +// [] +// [] +// + +#ifndef V2X_GW_DENMHANDLER_H +#define V2X_GW_DENMHANDLER_H + +#include "V2XMHandler.h" + +#include + +extern "C" { +#include "vcits/denm/DENM.h" +} + +class DENMHandler : public V2XMHandler { +public: + /// Initializes the DENM handler + DENMHandler(rclcpp::Node *gateway_node); + + /// Destroys DENM handler + ~DENMHandler(); + + /// Get the most recent DENMs + /// DENMs are produced in the background with ros subscriber magic; this method encodes them before returning. + /// \return most recent DENMs + std::queue> GetMessages() override; + + /// Process the received DENM(s) + /// DENM(s) will be processed and ros published + /// \param msgs most recent set of received DENM(s) + void PutMessages(std::queue> msgs); + +protected: + /// Read the configuration for the DENM + void ReadConfig() override; + +private: + // necessary handler processing constants + bool DENM_ACTIVE; + long DENM_DEBUG_MSG_THROTTLE_MS; + + // necessary header constants + long DENM_HEADER_STATION_ID; + + // necessary DENM constants + + // constants that should be set by code + + // DENM attributes + DENM_t *denm_; + + // Published topics + rclcpp::Publisher::SharedPtr denm_pub_; + + // Subsribed topics + + // Callbacks + + // DENM generation + void InitDENM(); + + v2x_msgs::msg::DENM GetROSDENM(std::pair msg); + + // debug + void PrintDENM(); + +}; + +#endif //V2X_GW_DENMHANDLER_H diff --git a/include/handler/ExampleMHandler.h b/include/handler/ExampleMHandler.h new file mode 100644 index 0000000..cd2710a --- /dev/null +++ b/include/handler/ExampleMHandler.h @@ -0,0 +1,62 @@ +// +// Created by Christoph Pilz +// +// Description: +// The ExampleMHandler handles ExampleMs +// - it is a sample implementation +// - it may serve as placeholder +// +// Author(s): "Christoph Pilz" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Christoph Pilz"] +// License: "BSD-3-clause" +// Version: "1.0.0" +// Maintainer: "Christoph Pilz" +// E-Mail: "christoph.pilz@v2c2.at" +// Status = "Production" +// +// Reference to used code: +// () +// () +// +// Possible Improvements: +// [] +// [] +// [] +// + +#ifndef V2X_GW_EXAMPLEMHANDLER_H +#define V2X_GW_EXAMPLEMHANDLER_H + +#include "V2XMHandler.h" + +class ExampleMHandler : public V2XMHandler { +public: + /// Initializes the ExampleM handler + ExampleMHandler(rclcpp::Node *gateway_node); + + /// Destroys ExampleM handler + ~ExampleMHandler(); + + /// Get the most recent ExampleM + /// ExampleM is produced in the background with ros subscriber magic; this method encodes it before returning. + /// \return most recent ExampleM + std::queue> GetMessages() override; + + /// Process the received ExampleM(s) + /// ExampleM(s) will be processed and ros published + /// \param msgs most recent set of received ExampleM(s) + void PutMessages(std::queue> msgs); + +protected: + /// Read the configuration for the ExampleM + void ReadConfig() override; + +private: + // necessary handler processing constants + bool EXAMPLEM_ACTIVE; + long EXAMPLEM_DEBUG_MSG_THROTTLE_MS; + +}; + +#endif //V2X_GW_EXAMPLEMHANDLER_H diff --git a/include/handler/V2XMHandler.h b/include/handler/V2XMHandler.h new file mode 100644 index 0000000..ca32307 --- /dev/null +++ b/include/handler/V2XMHandler.h @@ -0,0 +1,106 @@ +// +// Created by Christoph Pilz +// +// Description: +// The V2XMHandler is the main class to derive from for implementation of new messages +// - is an interface class +// +// Author(s): "Christoph Pilz" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Christoph Pilz"] +// License: "BSD-3-clause" +// Version: "1.0.0" +// Maintainer: "Christoph Pilz" +// E-Mail: "christoph.pilz@v2c2.at" +// Status = "Production" +// +// Reference to used code: +// () +// () +// +// Possible Improvements: +// [] +// [] +// [] +// + +#ifndef V2X_GW_V2XMHANDLER_H +#define V2X_GW_V2XMHANDLER_H + +#include +#include +#include +#include + +#include "rclcpp/rclcpp.hpp" + +enum class MsgType : int { + kNone = 0, + kDENM = 1, + kCAM = 2, + kCPM = 101 +} ; + +class V2XMHandler { +public: + + /// Initializes the message handler for a specific V2X message + /// \param msg_type type of the message + /// \param gateway_node reference to the ros2 gateway_node + V2XMHandler(MsgType msg_type, rclcpp::Node *gateway_node); + + /// Destroys message handler for a specific V2X message + virtual ~V2XMHandler(); + + /// Get the messages generated by the handler + /// V2X Messages have been prepared by ros magic in the background; get them here + /// BE AWARE: you have to control all message parameters here, including the generation frequency! + /// \return most recent generated V2X messages + virtual std::queue > GetMessages() = 0; + + /// Get the type of a V2X message + /// \param msg as asn1 buffer with size + /// \return the type of the message + MsgType GetMessageType(std::pair msg); + + /// Put the received V2X messages + /// Messages will be processed and ros published in the background + /// \param msgs most recent set of received V2X messages + virtual void PutMessages(std::queue > msgs) = 0; + +protected: + // Attributes + bool is_active_; + bool is_configured_; + + /// Get the V2X timestamp (Generation Delta Time), according to ETSI + /// \return V2X message timestamp + uint64_t GetGenerationDeltaTime(); + + /// Get the V2X timestamp (Generation Delta Time), according to ETSI + /// \param milliseconds timestamp since epoch in ms + /// \return V2X message timestamp + uint64_t GetGenerationDeltaTime(uint64_t milliseconds); + + /// Get access to the node; masked to prevent accidental tampering + /// \return pointer to parent ros2 node + rclcpp::Node *GetNode(); + + /// Read the configuration for the message + virtual void ReadConfig() = 0; + + // Helpers + /// Get the frequency between two timestamps + /// \param A first timestamp + /// \param B second timestamp + /// \return frequency between two timestamps + double GetFrequency(rclcpp::Time A, rclcpp::Time B); + +private: + // Attributes + MsgType msg_type_; + rclcpp::Node *gateway_node_; + +}; + +#endif //V2X_GW_V2XMHANDLER_H diff --git a/include/server/V2XServer.h b/include/server/V2XServer.h new file mode 100644 index 0000000..5ff36ee --- /dev/null +++ b/include/server/V2XServer.h @@ -0,0 +1,116 @@ +// +// Created by Christoph Pilz +// +// Description: +// The V2XServer is the interface class for the Server implementation +// - inherit this interface class to implement another V2X connection +// +// Author(s): "Christoph Pilz" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Christoph Pilz"] +// License: "BSD-3-clause" +// Version: "1.0.0" +// Maintainer: "Christoph Pilz" +// E-Mail: "christoph.pilz@v2c2.at" +// Status = "Production" +// +// Reference to used code: +// () +// () +// +// Possible Improvements: +// [] +// [] +// [] +// + +#ifndef V2X_GW_V2XSERVER_H +#define V2X_GW_V2XSERVER_H + +#include +#include +#include + +#include "rclcpp/rclcpp.hpp" + +#include + +#include "handler/V2XMHandler.h" + +class V2XServer { +public: + /// Stores parameters, derivatives should setup and connect to server in constructor + /// \param gateway_node reference to the ros2 gateway_node + /// \param v2x_m_handler reference to the message handlers + V2XServer(rclcpp::Node *gateway_node, std::map v2x_m_handler); + + /// Derivates should disconnect and clean up server in destructor + virtual ~V2XServer(); + + /// Checks if the server is still alive + /// \return true, if alive; false, otherwise + virtual bool IsAlive() = 0; + + /// Receive server diagnostics + /// \return server diagnostic key value pairs + virtual std::vector GetDiagnostics() = 0; + + /// Receives V2X messages from the server + /// \return a queue of received bytestreams + virtual std::queue> ReceiveMessages() = 0; + + /// Sends V2X messages to the server + /// \param msgs a queue of bytestream messages to send + virtual void SendMessages(std::queue> msgs) = 0; + +protected: + // attributes - general + bool is_active_; + bool is_configured_; + bool is_connected_; + + std::map v2x_m_handler_; + + // attributes - client + long client_received_messages_; + long client_sent_messages_; + rclcpp::Time client_last_message_received_; + rclcpp::Time client_last_message_sent_; + + // attributes - server + long server_heartbeat_counter_; + long server_received_messages_; + long server_sent_messages_; + rclcpp::Time server_last_message_received_; + rclcpp::Time server_last_message_sent_; + + // Timer + rclcpp::TimerBase::SharedPtr timer_; + + /// Get access to the node; masked to prevent accidental tampering + /// \return pointer to parent ros2 node + rclcpp::Node *GetNode(); + + /// main server method; processes incoming/outgoing messages + void Process(void); + + /// Read the configuration for the server + virtual void ReadConfig() = 0; + + /// Returns an IP address for a given hostname + /// \param hostname to find the IP address for + /// \return ip address for the given hostname + std::string GetIPAddressFromHostname(std::string hostname); + + /// Verifies if a given IPv4 Address is valid + /// \param ip_address to check + /// \return true if valid, false if invalid + bool VerifyIPv4Address(std::string ip_address); + +private: + // attributes + rclcpp::Node *gateway_node_; + +}; + +#endif //V2X_GW_V2XSERVER_H diff --git a/include/server/V2XZMQServer.h b/include/server/V2XZMQServer.h new file mode 100644 index 0000000..71b8915 --- /dev/null +++ b/include/server/V2XZMQServer.h @@ -0,0 +1,84 @@ +// +// Created by Christoph Pilz +// +// Description: +// The V2XZMQServer is the ZMQ implementation of the V2XServer that connects to the vehicleCAPTAIN routing core +// - this implementation of the V2XServer connects to the vehicleCAPTAIN routing core +// +// Author(s): "Christoph Pilz" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Christoph Pilz"] +// License: "BSD-3-clause" +// Version: "1.0.0" +// Maintainer: "Christoph Pilz" +// E-Mail: "christoph.pilz@v2c2.at" +// Status = "Production" +// +// Reference to used code: +// () +// () +// +// Possible Improvements: +// [] +// [] +// [] +// + +#ifndef V2X_GW_V2XZMQSERVER_H +#define V2X_GW_V2XZMQSERVER_H + +#include +#include +#include + +#include "zmq/zmq.hpp" + +#include "V2XServer.h" + +class V2XZMQServer : public V2XServer { +public: + /// Sets up and connects to the server + /// \param gateway_node reference to the ros2 gateway_node + /// \param v2x_m_handler reference to the message handlers + V2XZMQServer(rclcpp::Node *gateway_node, std::map v2x_m_handler); + + /// Disconnects from the server + ~V2XZMQServer(); + + /// Checks if the server is still alive + /// \return true, if alive; false, otherwise + bool IsAlive() override; + + /// Receive server diagnostics + /// \return server diagnostic key value pairs + virtual std::vector GetDiagnostics() override; + + /// Receives V2X messages from the server + /// \return a queue of received bytestreams + std::queue > ReceiveMessages() override; + + /// Sends V2X messages to the server + /// \param msgs a queue of bytestream messages to send + void SendMessages(std::queue > msgs) override; + +protected: + /// Read the configuration for the ZMQ server + void ReadConfig() override; + +private: + // necessary CAM constants + std::string SERVER_TYPE; + std::string SERVER_ADDRESS; + std::string SERVER_TOPIC_FILTER; + long SERVER_RECEIVE_PORT; + long SERVER_SEND_PORT; + long SERVER_CYCLE_TIME_MS; + + // zmq server attributes + zmq::context_t *zmq_context_; + zmq::socket_t *zmq_recv_socket_; + zmq::socket_t *zmq_snd_socket_; + +}; + +#endif //V2X_GW_V2XZMQSERVER_H diff --git a/include/utils.h b/include/utils.h new file mode 100644 index 0000000..8e6920a --- /dev/null +++ b/include/utils.h @@ -0,0 +1,120 @@ +// +// Created by Alina Steinberger +// +// Description: +// This uitls file contains a few supporting methods for copying message parts +// +// Author(s): "Alina Steinberger" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Alina Steinberger"] +// License: "BSD-3-clause" +// Version: "1.0.0" +// Maintainer: "Alina Steinberger" +// E-Mail: "alina.steinberger@v2c2.at" +// Status = "Production" +// +// Reference to used code: +// () +// () +// +// Possible Improvements: +// [] +// [] +// [] +// + +#include +#include "vcits/cpm/PerceivedObjectContainer.h" +#include "vcits/cpm/SensorInformationContainer.h" +#include "vcits/cpm/StationDataContainer.h" +#include "vcits/cpm/FreeSpaceAddendumContainer.h" +#include "vcits/cpm/PerceivedObject.h" +#include "vcits/cpm/ObjectClassDescription.h" +#include "vcits/cpm/ObjectClass.h" +#include "vcits/cpm/LongitudinalAcceleration.h" +#include "vcits/cpm/LateralAcceleration.h" +#include "vcits/cpm/VerticalAcceleration.h" +#include "vcits/cpm/ObjectRefPoint.h" +#include "vcits/cpm/ObjectDimension.h" +#include "vcits/cpm/ObjectDistanceWithConfidence.h" +#include "vcits/cpm/CartesianAngle.h" + +namespace utils +{ + + +static void convert2ASN1ObjectClass(ObjectClass *myObjClass, v2x_msgs::msg::PerceivedObject object) +{ + switch(object.classification.description.at(0).class_container_select){ + case v2x_msgs::msg::ObjectClass::CLASS_NOTHING: + break; + case v2x_msgs::msg::ObjectClass::CLASS_PERSON_SUBCLASS: + myObjClass->Class.present = ObjectClass__class_PR::ObjectClass__class_PR_person; + myObjClass->confidence = object.classification.description.at(0).confidence.class_confidence; + myObjClass->Class.choice.person.confidence = object.classification.description.at(0).person.confidence.class_confidence; + myObjClass->Class.choice.person.type = object.classification.description.at(0).person.type.person_subclass_type; + break; + case v2x_msgs::msg::ObjectClass::CLASS_VEHICLE_SUBCLASS: + myObjClass->Class.present = ObjectClass__class_PR::ObjectClass__class_PR_vehicle; + myObjClass->confidence = object.classification.description.at(0).confidence.class_confidence; + myObjClass->Class.choice.vehicle.confidence = object.classification.description.at(0).vehicle.confidence.class_confidence; + myObjClass->Class.choice.vehicle.type = object.classification.description.at(0).vehicle.type.vehicle_subclass_type; + break; + case v2x_msgs::msg::ObjectClass::CLASS_ANIMAL_SUBCLASS: + myObjClass->Class.present = ObjectClass__class_PR::ObjectClass__class_PR_animal; + myObjClass->confidence = object.classification.description.at(0).confidence.class_confidence; + myObjClass->Class.choice.animal.confidence = object.classification.description.at(0).animal.confidence.class_confidence; + myObjClass->Class.choice.animal.type = object.classification.description.at(0).animal.type.animal_subclass_type; + break; + case v2x_msgs::msg::ObjectClass::CLASS_OTHER_SUBCLASS: + myObjClass->Class.present = ObjectClass__class_PR::ObjectClass__class_PR_other; + myObjClass->confidence = object.classification.description.at(0).confidence.class_confidence; + myObjClass->Class.choice.other.confidence = object.classification.description.at(0).other.confidence.class_confidence; + myObjClass->Class.choice.other.type = object.classification.description.at(0).other.type.other_sublass_type; + default: + break; + } +} + +/** +* convert2ROSObjectClass +* +* This function does convert the asn1 object class to a v2x_msgs ROS specific object class. +* +* @param ObjectClass asn1 object class +* @return v2x_msgs::msg::ObjectClass +*/ +v2x_msgs::msg::ObjectClass getROSMsgsObjectClass(ObjectClass *asn1Class) +{ + v2x_msgs::msg::ObjectClass ros_class; + switch(asn1Class->Class.present){ + case ObjectClass__class_PR::ObjectClass__class_PR_NOTHING: + break; + case ObjectClass__class_PR::ObjectClass__class_PR_person: + ros_class.class_container_select = ros_class.CLASS_PERSON_SUBCLASS; + ros_class.person.confidence.class_confidence = asn1Class->Class.choice.person.confidence; + ros_class.person.type.person_subclass_type = asn1Class->Class.choice.person.type; + break; + case ObjectClass__class_PR::ObjectClass__class_PR_vehicle: + ros_class.class_container_select = ros_class.CLASS_VEHICLE_SUBCLASS; + ros_class.vehicle.confidence.class_confidence = asn1Class->Class.choice.vehicle.confidence; + ros_class.vehicle.type.vehicle_subclass_type = asn1Class->Class.choice.vehicle.type; + break; + case ObjectClass__class_PR::ObjectClass__class_PR_animal: + ros_class.class_container_select = ros_class.CLASS_ANIMAL_SUBCLASS; + ros_class.animal.confidence.class_confidence = asn1Class->Class.choice.animal.confidence; + ros_class.animal.type.animal_subclass_type = asn1Class->Class.choice.animal.type; + break; + case ObjectClass__class_PR::ObjectClass__class_PR_other: + ros_class.class_container_select = ros_class.CLASS_OTHER_SUBCLASS; + ros_class.other.confidence.class_confidence = asn1Class->Class.choice.other.confidence; + ros_class.other.type.other_sublass_type = asn1Class->Class.choice.other.type; + break; + default: + break; + } + + return ros_class; +} + +} // namespace utils \ No newline at end of file diff --git a/launch/v2x_gw.launch.py b/launch/v2x_gw.launch.py new file mode 100644 index 0000000..5d58346 --- /dev/null +++ b/launch/v2x_gw.launch.py @@ -0,0 +1,69 @@ +import os +import urllib.parse +import socket + +from launch import LaunchDescription +from launch.actions import DeclareLaunchArgument +from launch.actions import IncludeLaunchDescription + +from launch.launch_description_sources import PythonLaunchDescriptionSource + +from ament_index_python import get_package_share_directory +import launch.substitutions +from launch.substitutions import LaunchConfiguration +import launch_ros.actions +from launch_ros.actions import Node + + +from pathlib import Path + +def get_share_file(package_name, file_name): + return os.path.join(get_package_share_directory(package_name), file_name) + + + +def generate_launch_description(): + + namespace = 'v2x' + + + param_file = get_share_file(package_name='v2x_gw', file_name='config/v2x_gw.param.yaml') + + + return launch.LaunchDescription([ + DeclareLaunchArgument('param', default_value=param_file, description='configuration file for v2x_gw.'), + DeclareLaunchArgument('server.address_fusion', default_value='192.168.1.30', description='vehicleCAPTAIN routing core address.'), + + # V2X Gateway Node + Node( + package="v2x_gw", + executable="v2x_gw", + name="v2x_gw", + parameters=[ + LaunchConfiguration('param'), + {"server.address_fusion": LaunchConfiguration('server.address_fusion')} + ], + # prefix=['valgrind --leak-check=full'], #test for memory leaks + namespace=namespace + ) + + ]) + + +# code to resolve URI with python +def resolve_uri(uri: str) -> str: + """ + Resolved the hostname of the given uri + uri has to be in form scheme://hostname + :raises ValueError if the uri is not valid, i.e. contains no hostname or IP address + :param uri: the uri to resolve + :return: resolved uri + """ + uri_parts = urllib.parse.urlsplit(uri) + if uri_parts.hostname is None: + raise ValueError(f'Bad uri {uri}') + ip_addr = socket.gethostbyname(uri_parts.hostname) + uri_resolved = f'{uri_parts.scheme}://{ip_addr}:{uri_parts.port}' + + return uri_resolved + diff --git a/package.xml b/package.xml new file mode 100644 index 0000000..9ccd7d0 --- /dev/null +++ b/package.xml @@ -0,0 +1,40 @@ + + + +v2x_gw +1.0.0 +ROS node to link the vehicleCAPTAIN routing core with the ROS2 environment +Christoph Pilz +Lukas Kuschnig +Alina Steinberger +BSD3-clause + +ament_cmake +eigen3_cmake_module + +ament_lint_auto +ament_lint_common + +rclcpp +std_msgs +geometry_msgs +nav_msgs +visualization_msgs +diagnostic_msgs +tf2 +tf2_ros +dbw_ford_msgs +v2x_msgs + +rosidl_default_generators +eigen + +rosidl_default_runtime + +rosidl_interface_packages + + + ament_cmake + + + diff --git a/scripts/zmq_setup-clone_and_install.sh b/scripts/zmq_setup-clone_and_install.sh new file mode 100644 index 0000000..8d69853 --- /dev/null +++ b/scripts/zmq_setup-clone_and_install.sh @@ -0,0 +1,47 @@ + +#Install libzmq +echo "libzmq" +echo "libzmq - checkout repo" +[ ! -d "/opt" ] && mkdir -p "/opt" +cd /opt +git clone https://github.com/zeromq/libzmq.git +cd /opt/libzmq +git checkout v4.3.4 + +echo "libzmq - generate install environment" +./autogen.sh + +echo "libzmq - configure install environment" +./configure --prefix=/usr/local --with-libgssapi_krb5 + +echo "libzmq - make, make check" +make +make check + +echo "libzmq - install" +make install + +echo "libzmq - check output" +ldconfig && ldconfig -p | grep libzmq + +echo "libzmq - done" + +echo "cppzmq" +echo "cppzmq - checkout git" +[ ! -d "/opt" ] && mkdir -p "/opt" +cd /opt +git clone https://github.com/zeromq/cppzmq.git +cd /opt/cppzmq +git checkout v4.7.1 + +echo "cppzmq - create build" +mkdir build +cd /opt/cppzmq/build + +echo "cppzmq - cmake" +cmake -DCPPZMQ_BUILD_TESTS=OFF .. + +echo "cppzmq - make install" +make install + +echo "cppzmq - done" diff --git a/scripts/zmq_setup-dependencies.sh b/scripts/zmq_setup-dependencies.sh new file mode 100644 index 0000000..1791280 --- /dev/null +++ b/scripts/zmq_setup-dependencies.sh @@ -0,0 +1,19 @@ +#Install dependencies +echo "dependencies" +apt-get update -qq \ + && apt-get install -qq --yes --no-install-recommends \ + autoconf \ + automake \ + build-essential \ + git \ + libkrb5-dev \ + libsodium-dev \ + libtool \ + pkg-config \ + && rm -rf /var/lib/apt/lists/* + +apt-get update -qq +apt-get install -qq --yes --no-install-recommends \ + libkrb5-dev \ + libsodium23 +echo "dependencies - done" \ No newline at end of file diff --git a/scripts/zmq_setup.sh b/scripts/zmq_setup.sh new file mode 100644 index 0000000..b72ded8 --- /dev/null +++ b/scripts/zmq_setup.sh @@ -0,0 +1,67 @@ +#Install dependencies +echo "dependencies" +apt-get update -qq \ + && apt-get install -qq --yes --no-install-recommends \ + autoconf \ + automake \ + build-essential \ + git \ + libkrb5-dev \ + libsodium-dev \ + libtool \ + pkg-config \ + && rm -rf /var/lib/apt/lists/* +echo "dependencies - done" + +#Install libzmq +echo "libzmq" +echo "libzmq - checkout repo" +[ ! -d "/opt" ] && mkdir -p "/opt" +cd /opt +git clone https://github.com/zeromq/libzmq.git +cd /opt/libzmq +git checkout v4.3.4 + +echo "libzmq - install dependencies" +apt-get update -qq +apt-get install -qq --yes --no-install-recommends \ +libkrb5-dev \ +libsodium23 + +echo "libzmq - generate install environment" +./autogen.sh + +echo "libzmq - configure install environment" +./configure --prefix=/usr/local --with-libgssapi_krb5 + +echo "libzmq - make, make check" +make +make check + +echo "libzmq - install" +make install + +echo "libzmq - check output" +ldconfig && ldconfig -p | grep libzmq + +echo "libzmq - done" + +echo "cppzmq" +echo "cppzmq - checkout git" +[ ! -d "/opt" ] && mkdir -p "/opt" +cd /opt +git clone https://github.com/zeromq/cppzmq.git +cd /opt/cppzmq +git checkout v4.7.1 + +echo "cppzmq - create build" +mkdir build +cd /opt/cppzmq/build + +echo "cppzmq - cmake" +cmake -DCPPZMQ_BUILD_TESTS=OFF .. + +echo "cppzmq - make install" +make install + +echo "cppzmq - done" diff --git a/src/V2XGateway.cpp b/src/V2XGateway.cpp new file mode 100644 index 0000000..bf99961 --- /dev/null +++ b/src/V2XGateway.cpp @@ -0,0 +1,129 @@ + +#include "V2XGateway.h" + +#include "handler/CAMHandler.h" +#include "handler/CPMHandler.h" +#include "handler/DENMHandler.h" +#include "handler/ExampleMHandler.h" + +#include "server/V2XZMQServer.h" + +/* + * TODO + * [] Read Only for Raspi + */ + + +using namespace std; + + +V2XGateway::V2XGateway() : Node("v2x_gw") { + is_node_initialized_ = false; + + // read configuration + if (!readConfig()) { + RCLCPP_ERROR(this->get_logger(), "Invalid configuration. Shutdown the node."); + rclcpp::shutdown(); + } + + // init handlers + v2x_m_handler_[MsgType::kCAM] = new CAMHandler(this); + v2x_m_handler_[MsgType::kCPM] = new CPMHandler(this); + v2x_m_handler_[MsgType::kDENM] = new DENMHandler(this); + v2x_m_handler_[MsgType::kNone] = new ExampleMHandler(this); // keep it, it is used for decoding + + // init server + v2x_server_ = new V2XZMQServer(this, v2x_m_handler_); + + // create publishers + diagnostics_pub_ = + this->create_publisher("diagnostics/vehicle_captain", 1); + + // create subscribers + + // create timers + timer_ = rclcpp::create_timer(this, this->get_clock(), 10ms, std::bind(&V2XGateway::process, this)); + + is_node_initialized_ = true; +} + + +V2XGateway::~V2XGateway() { + // delete in reverse order + + // delete server + delete v2x_server_; + + // delete message handler + for (auto elem: v2x_m_handler_) { + delete elem.second; + } +} + + +bool V2XGateway::readConfig() { + // Config arguments + + //RCLCPP_INFO(this->get_logger(), "Center_line: %s and racing_line: %s", m_center_line_file.c_str(), m_racing_line_file.c_str()); + + return true; +} + + +void V2XGateway::process(void) { + rclcpp::Time current_timestamp = this->get_clock()->now(); + rclcpp::Clock ros_clock(RCL_ROS_TIME); + + static unsigned int alive = 0; + static rclcpp::Time prev_process_timestamp = current_timestamp; + + + // prepare diagnostics_array + diagnostics_.header.stamp = current_timestamp; + diagnostics_.header.frame_id = ""; + diagnostics_.status.clear(); + + diagnostic_msgs::msg::DiagnosticStatus diagnostic_status; + diagnostic_status.name = "v2x_sender"; + diagnostic_status.hardware_id = "VehicleCAPTAIN"; + + // update status + diagnostic_status.level = diagnostic_status.OK; + diagnostic_status.message = "OK"; + + // get update time + diagnostic_msgs::msg::KeyValue key_value; + key_value.key = "Update Time"; + key_value.value = std::to_string(getTimeDifferenceSeconds(current_timestamp, prev_process_timestamp)); + diagnostic_status.values.push_back(key_value); + + // V2X server diagnostics + std::vector server_values = v2x_server_->GetDiagnostics(); + diagnostic_status.values.insert(std::end(diagnostic_status.values), std::begin(server_values), std::end(server_values)); + + + diagnostics_.status.push_back(diagnostic_status); + + // send diagnostics_array with 10Hz or if an error is present + if (alive % 10 == 0 || (diagnostics_.status.size() > 0 && diagnostics_.status.at(0).level > 0)) { + diagnostics_pub_->publish(diagnostics_); + } + + prev_process_timestamp = current_timestamp; + alive++; +} + +double V2XGateway::getTimeDifferenceSeconds(rclcpp::Time A, rclcpp::Time B) { + return (abs((A - B).seconds())); +} + + +// Main +int main(int argc, char *argv[]) { + rclcpp::init(argc, argv); + + rclcpp::spin(std::make_shared()); + + rclcpp::shutdown(); + return 0; +} diff --git a/src/handler/CAMHandler.cpp b/src/handler/CAMHandler.cpp new file mode 100644 index 0000000..eca992d --- /dev/null +++ b/src/handler/CAMHandler.cpp @@ -0,0 +1,661 @@ + +#include "CAMHandler.h" + +#include + +extern "C" { +#include "vcits/cam/LowFrequencyContainer.h" +#include "vcits/cam/SpecialVehicleContainer.h" + +#include "vcits/exceptions/V2XLibExceptions.h" + +#include "vcits/parser/Decoder.h" +#include "vcits/parser/Encoder.h" +} + +CAMHandler::CAMHandler(rclcpp::Node *gateway_node) + : V2XMHandler(MsgType::kCAM, gateway_node) { + + // configure + ReadConfig(); + new_data_received_ = false; + + // publisher + cam_pub_ = GetNode()->create_publisher("cam/received", 1); + + // subscriber + ros_cam_sub_ = GetNode()->create_subscription + ("cam/transmitted", 10, std::bind(&CAMHandler::RosCAMCallback, this, std::placeholders::_1)); +} + +CAMHandler::~CAMHandler() { + // free the cam structure + while(cam_list_.size() > 0){ + //frees and removes last element of cam_list + ASN_STRUCT_FREE(asn_DEF_CAM ,cam_list_.back()); + cam_list_.pop_back(); + } +} + +std::queue > CAMHandler::GetMessages() { + + + + // processing variables + rclcpp::Time current_timestamp = GetNode()->get_clock()->now(); + std::queue > cam_queue; // there will only be one CAM in the queue, despite the queue + + if(!new_data_received_){ + return cam_queue; + } + + // CAM creation + size_t final_cam_size; + void *final_cam_buffer; + + cam_list_lock_.lock(); + for(CAM_t* cam : cam_list_){ + try { + Encoder::validate_constraints(&asn_DEF_CAM, cam); + final_cam_size = Encoder::encode(&asn_DEF_CAM, nullptr, cam, &final_cam_buffer); + + if (final_cam_size > 0) { + //TODO: put multiple cams in queue if receiving from carla + cam_queue.push(std::make_pair(final_cam_buffer, final_cam_size)); + auto& clk = *GetNode()->get_clock(); + RCLCPP_INFO_THROTTLE(GetNode()->get_logger(), clk, CAM_DEBUG_MSG_THROTTLE_MS, + "CAM created successfully with size %ld", final_cam_size); + } else { + RCLCPP_ERROR(GetNode()->get_logger(), "CAM creation failed - you should probably stop the program"); + } + } catch (ValidateConstraintsException e) { + RCLCPP_ERROR(GetNode()->get_logger(), e.what()); + } catch (EncodingException e) { + RCLCPP_ERROR(GetNode()->get_logger(), e.what()); + } + } + new_data_received_ = false; + cam_list_lock_.unlock(); + + return cam_queue; +} + +void CAMHandler::PutMessages(std::queue > msgs) { + // variables + v2x_msgs::msg::CAMList cam_list; + cam_list.header.stamp = GetNode()->get_clock()->now(); + + // take each element from the incoming_queue, convert it to ROS2 format and publish + while (!msgs.empty()) { + cam_list.cams.push_back(GetROSCAM(msgs.front())); + msgs.pop(); + } + + cam_pub_->publish(cam_list); +} + +void CAMHandler::ReadConfig() { + // read configuration and set is_configured_ + + // necessary handler processing constants + GetNode()->declare_parameter("cam.active", false); + GetNode()->get_parameter("cam.active", CAM_ACTIVE); + GetNode()->declare_parameter("cam.handler_debug_msg_throttle_ms", 5000); + GetNode()->get_parameter("cam.handler_debug_msg_throttle_ms", CAM_DEBUG_MSG_THROTTLE_MS); + + if (CAM_ACTIVE) { + is_active_ = true; + } + + is_configured_ = true; +} + +// Callbacks +void CAMHandler::RosCAMCallback(const v2x_msgs::msg::CAMList::SharedPtr ros_camlist) { + cam_list_lock_.lock(); + while(cam_list_.size() < ros_camlist->cams.size()){ + CAM_t* next_cam = (CAM_t *) malloc(sizeof(CAM_t)); + cam_list_.push_back(next_cam); + } + + while(cam_list_.size() > ros_camlist->cams.size()){ + //frees and removes last element of cam_list + ASN_STRUCT_FREE(asn_DEF_CAM, cam_list_.back()); + cam_list_.pop_back(); + } + + if(cam_list_.size() != ros_camlist->cams.size()){ + std::cout<< "[ERROR] wrong size of cam_list!"<< std::endl; + exit(-1); + } + + for (int i = 0; i < ros_camlist->cams.size(); i++) { + // allocate attributes + fillCAM(ros_camlist->cams[i],cam_list_[i]); + } + + new_data_received_ = true; + + cam_list_lock_.unlock(); +} + +// CAM generation +void CAMHandler::fillCAM(v2x_msgs::msg::CAM ros_cam, CAM_t* cam) { + // reset data structure + memset((void *) cam, 0, sizeof(CAM_t)); + + // set header + cam->header.protocolVersion = 2; // V2 is most recent CDD header Q1 2022 + cam->header.messageID = 2; // CAM + cam->header.stationID = ros_cam.header.station_id.station_id; + + // Update the CAM with new data + + // BasicContainer + cam->cam.generationDeltaTime = ros_cam.cam.generation_delta_time.generation_delta_time; + cam->cam.camParameters.basicContainer.stationType = ros_cam.cam.cam_parameters.basic_container.station_type.station_type; + cam->cam.camParameters.basicContainer.referencePosition.latitude = ros_cam.cam.cam_parameters.basic_container.reference_position.latitude.latitude; // position callback + cam->cam.camParameters.basicContainer.referencePosition.longitude = ros_cam.cam.cam_parameters.basic_container.reference_position.longitude.longitude; // position callback + cam->cam.camParameters.basicContainer.referencePosition.positionConfidenceEllipse.semiMajorConfidence = ros_cam.cam.cam_parameters.basic_container.reference_position.position_confidence_ellipse.semi_major_confidence.semi_axis_length; + cam->cam.camParameters.basicContainer.referencePosition.positionConfidenceEllipse.semiMinorConfidence = ros_cam.cam.cam_parameters.basic_container.reference_position.position_confidence_ellipse.semi_minor_confidence.semi_axis_length; + cam->cam.camParameters.basicContainer.referencePosition.positionConfidenceEllipse.semiMajorOrientation = ros_cam.cam.cam_parameters.basic_container.reference_position.position_confidence_ellipse.semi_major_orientation.heading_value; // NOT SET + cam->cam.camParameters.basicContainer.referencePosition.altitude.altitudeValue = ros_cam.cam.cam_parameters.basic_container.reference_position.altitude.altitude_value.altitude_value; // position callback + cam->cam.camParameters.basicContainer.referencePosition.altitude.altitudeConfidence = ros_cam.cam.cam_parameters.basic_container.reference_position.altitude.altitude_confidence.altitude_confidence; + + // HighFrequencyContainer - needed for vehicles + if(ros_cam.cam.cam_parameters.high_frequency_container.high_frequency_container_container_select = v2x_msgs::msg::HighFrequencyContainer::HIGH_FREQUENCY_CONTAINER_BASIC_VEHICLE_CONTAINER_HIGH_FREQUENCY){ + cam->cam.camParameters.highFrequencyContainer.present = HighFrequencyContainer_PR_basicVehicleContainerHighFrequency; + + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.heading.headingValue = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.heading.heading_value.heading_value; + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.heading.headingConfidence = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.heading.heading_confidence.heading_confidence; + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.speed.speedValue = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.speed.speed_value.speed_value; + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.speed.speedConfidence = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.speed.speed_confidence.speed_confidence; + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.driveDirection = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.drive_direction.drive_direction; + + //set vehicles mesurements + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.vehicleLength.vehicleLengthValue = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_length.vehicle_length_value.vehicle_length_value; + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.vehicleLength.vehicleLengthConfidenceIndication = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_length.vehicle_length_confidence_indication.vehicle_length_confidence_indication; + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.vehicleWidth = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_width.vehicle_width; + + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.longitudinalAcceleration.longitudinalAccelerationValue = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.longitudinal_acceleration.longitudinal_acceleration_value.longitudinal_acceleration_value; + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.longitudinalAcceleration.longitudinalAccelerationConfidence = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.longitudinal_acceleration.longitudinal_acceleration_confidence.acceleration_confidence; + + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.curvature.curvatureValue = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.curvature.curvature_value.curvature_value; + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.curvature.curvatureConfidence = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.curvature.curvature_confidence.curvature_confidence; + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.curvatureCalculationMode = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.curvature_calculation_mode.curvature_calculation_mode; + + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.yawRate.yawRateValue = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.yaw_rate.yaw_rate_value.yaw_rate_value; + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.yawRate.yawRateConfidence = + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.yaw_rate.yaw_rate_confidence.yaw_rate_confidence; + + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.accelerationControl = nullptr; // NOT SET + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.lanePosition = nullptr; // NOT SET + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.steeringWheelAngle = nullptr; // NOT SET + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.lateralAcceleration = nullptr; // NOT SET + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.verticalAcceleration = nullptr; // NOT SET + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.performanceClass = nullptr; // NOT SET + cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.cenDsrcTollingZone = nullptr; // NOT SET + } + + // LowFrequencyContainer - needed for special vehicles + cam->cam.camParameters.lowFrequencyContainer = nullptr; // NOT SET + + // LowFrequencyContainer - needed for specific special vehicles + cam->cam.camParameters.specialVehicleContainer = nullptr; // NOT SET +} + + +v2x_msgs::msg::CAM CAMHandler::GetROSCAM(std::pair msg) { + // variables + v2x_msgs::msg::CAM ros_cam; + CAM_t *asn_cam = nullptr; + + // decode + try { + asn_cam = (CAM_t *) Decoder::decode(&asn_DEF_CAM, msg.first, msg.second); + } catch (DecodingException e) { + RCLCPP_ERROR(GetNode()->get_logger(), e.what()); + RCLCPP_INFO(GetNode()->get_logger(), + "If decoding fails, we throw away everything, as we would have to check how far we were able to decode"); + } + + auto& clk = *GetNode()->get_clock(); + RCLCPP_WARN_THROTTLE(GetNode()->get_logger(), clk, CAM_DEBUG_MSG_THROTTLE_MS, + "Not all parts implemented for translation to ROS CAM! -> search for TODO"); + + // convert from asn_cam to ros_cam + //Header + ros_cam.header.protocol_version = asn_cam->header.protocolVersion; + ros_cam.header.message_id = asn_cam->header.messageID; + ros_cam.header.station_id.station_id = asn_cam->header.stationID; + + ros_cam.cam.generation_delta_time.generation_delta_time = asn_cam->cam.generationDeltaTime; + + //BasicContainer + ros_cam.cam.cam_parameters.basic_container.station_type.station_type = asn_cam->cam.camParameters.basicContainer.stationType; + ros_cam.cam.cam_parameters.basic_container.reference_position.latitude.latitude = asn_cam->cam.camParameters.basicContainer.referencePosition.latitude; + ros_cam.cam.cam_parameters.basic_container.reference_position.longitude.longitude = asn_cam->cam.camParameters.basicContainer.referencePosition.longitude; + ros_cam.cam.cam_parameters.basic_container.reference_position.position_confidence_ellipse.semi_major_confidence.semi_axis_length = asn_cam->cam.camParameters.basicContainer.referencePosition.positionConfidenceEllipse.semiMajorConfidence; + ros_cam.cam.cam_parameters.basic_container.reference_position.position_confidence_ellipse.semi_minor_confidence.semi_axis_length = asn_cam->cam.camParameters.basicContainer.referencePosition.positionConfidenceEllipse.semiMinorConfidence; + ros_cam.cam.cam_parameters.basic_container.reference_position.position_confidence_ellipse.semi_major_orientation.heading_value = asn_cam->cam.camParameters.basicContainer.referencePosition.positionConfidenceEllipse.semiMajorOrientation; + ros_cam.cam.cam_parameters.basic_container.reference_position.altitude.altitude_value.altitude_value = asn_cam->cam.camParameters.basicContainer.referencePosition.altitude.altitudeValue; + ros_cam.cam.cam_parameters.basic_container.reference_position.altitude.altitude_confidence.altitude_confidence = asn_cam->cam.camParameters.basicContainer.referencePosition.altitude.altitudeConfidence; + + //HighFrequencyContainer + ros_cam.cam.cam_parameters.high_frequency_container.high_frequency_container_container_select = asn_cam->cam.camParameters.highFrequencyContainer.present; + if (ros_cam.cam.cam_parameters.high_frequency_container.high_frequency_container_container_select == + ros_cam.cam.cam_parameters.high_frequency_container.HIGH_FREQUENCY_CONTAINER_BASIC_VEHICLE_CONTAINER_HIGH_FREQUENCY) { + //VehicleContainer + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.heading.heading_value.heading_value = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.heading.headingValue; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.heading.heading_confidence.heading_confidence = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.heading.headingConfidence; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.speed.speed_value.speed_value = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.speed.speedValue; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.speed.speed_confidence.speed_confidence = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.speed.speedConfidence; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.drive_direction.drive_direction = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.driveDirection; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_length.vehicle_length_value.vehicle_length_value = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.vehicleLength.vehicleLengthValue; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_length.vehicle_length_confidence_indication.vehicle_length_confidence_indication = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.vehicleLength.vehicleLengthConfidenceIndication; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_width.vehicle_width = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.vehicleWidth; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.longitudinal_acceleration.longitudinal_acceleration_value.longitudinal_acceleration_value = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.longitudinalAcceleration.longitudinalAccelerationValue; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.longitudinal_acceleration.longitudinal_acceleration_confidence.acceleration_confidence = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.longitudinalAcceleration.longitudinalAccelerationConfidence; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.curvature.curvature_value.curvature_value = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.curvature.curvatureValue; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.curvature.curvature_confidence.curvature_confidence = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.curvature.curvatureConfidence; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.curvature_calculation_mode.curvature_calculation_mode = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.curvatureCalculationMode; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.yaw_rate.yaw_rate_value.yaw_rate_value = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.yawRate.yawRateValue; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.yaw_rate.yaw_rate_confidence.yaw_rate_confidence = asn_cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.yawRate.yawRateConfidence; + + RCLCPP_WARN(GetNode()->get_logger(), "GetROSCAM not yet fully implemented -> only important parts"); + //TODO implementation of translation missing from here + if (false) { +// ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.acceleration_control_present = true; +// ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.acceleration_control.brake_pedal_engaged; +// ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.acceleration_control.gas_pedal_engaged; +// ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.acceleration_control.emergency_brake_engaged; +// ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.acceleration_control.collision_warning_engaged; +// ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.acceleration_control.acc_engaged; +// ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.acceleration_control.cruise_control_engaged; +// ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.acceleration_control.speed_limiter_engaged; + } + if (false) { + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lane_position_present = true; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lane_position.lane_position; + } + if (false) { + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.steering_wheel_angle_present = true; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.steering_wheel_angle.steering_wheel_angle_value.steering_wheel_angle_value; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.steering_wheel_angle.steering_wheel_angle_confidence.steering_wheel_angle_confidence; + } + if (false) { + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration_present = true; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration.lateral_acceleration_value.lateral_acceleration_value; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration.lateral_acceleration_confidence.acceleration_confidence; + } + if (false) { + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vertical_acceleration_present = true; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vertical_acceleration.vertical_acceleration_value.vertical_acceleration_value; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vertical_acceleration.vertical_acceleration_confidence.acceleration_confidence; + } + if (false) { + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.performance_class_present = true; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.performance_class.performance_class; + } + if (false) { + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.cen_dsrc_tolling_zone_present = true; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.cen_dsrc_tolling_zone.protected_zone_latitude.latitude; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.cen_dsrc_tolling_zone.protected_zone_longitude.longitude; + if (false) { + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.cen_dsrc_tolling_zone.cen_dsrc_tolling_zone_id_present = true; + ros_cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.cen_dsrc_tolling_zone.cen_dsrc_tolling_zone_id.cen_dsrc_tolling_zone_id; + } + } + } else if (ros_cam.cam.cam_parameters.high_frequency_container.high_frequency_container_container_select == + ros_cam.cam.cam_parameters.high_frequency_container.HIGH_FREQUENCY_CONTAINER_RSU_CONTAINER_HIGH_FREQUENCY) { + //RSUContainer + if (false) { + ros_cam.cam.cam_parameters.high_frequency_container.rsu_container_high_frequency.protected_communication_zones_rsu_present = true; + ros_cam.cam.cam_parameters.high_frequency_container.rsu_container_high_frequency.protected_communication_zones_rsu.zonesrsu; // TODO copy zones + } + } + + //LowFrequencyContainer + if (false) { + ros_cam.cam.cam_parameters.low_frequency_container_present = true; + ros_cam.cam.cam_parameters.low_frequency_container.low_frequency_container_container_select; + if (ros_cam.cam.cam_parameters.low_frequency_container.low_frequency_container_container_select == + ros_cam.cam.cam_parameters.low_frequency_container.LOW_FREQUENCY_CONTAINER_BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY) { + ros_cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.vehicle_role.vehicle_role; +// ros_cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights.low_beam_headlights_on; +// ros_cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights.high_beam_headlights_on; +// ros_cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights.left_turn_signal_on; +// ros_cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights.right_turn_signal_on; +// ros_cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights.daytime_running_lights_on; +// ros_cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights.reverse_light_on; +// ros_cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights.fog_light_on; +// ros_cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights.parking_lights_on; + ros_cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.path_history.history; //TODO copy + } + } + + //SpecialVehicleContainer + if (false) { + ros_cam.cam.cam_parameters.special_vehicle_container_present = true; + ros_cam.cam.cam_parameters.special_vehicle_container.special_vehicle_container_container_select; + if (ros_cam.cam.cam_parameters.special_vehicle_container.special_vehicle_container_container_select == + ros_cam.cam.cam_parameters.special_vehicle_container.SPECIAL_VEHICLE_CONTAINER_PUBLIC_TRANSPORT_CONTAINER) { + ros_cam.cam.cam_parameters.special_vehicle_container.public_transport_container.embarkation_status.embarkation_status; + if (false) { + ros_cam.cam.cam_parameters.special_vehicle_container.public_transport_container.pt_activation_present = true; + ros_cam.cam.cam_parameters.special_vehicle_container.public_transport_container.pt_activation.pt_activation_type.pt_activation_type; + ros_cam.cam.cam_parameters.special_vehicle_container.public_transport_container.pt_activation.pt_activation_data; //TODO cpy + } + } + if (ros_cam.cam.cam_parameters.special_vehicle_container.special_vehicle_container_container_select == + ros_cam.cam.cam_parameters.special_vehicle_container.SPECIAL_VEHICLE_CONTAINER_SPECIAL_TRANSPORT_CONTAINER) { +// ros_cam.cam.cam_parameters.special_vehicle_container.special_transport_container.special_transport_type.heavy_load; +// ros_cam.cam.cam_parameters.special_vehicle_container.special_transport_container.special_transport_type.excess_width; +// ros_cam.cam.cam_parameters.special_vehicle_container.special_transport_container.special_transport_type.excess_length; +// ros_cam.cam.cam_parameters.special_vehicle_container.special_transport_container.special_transport_type.excess_height; +// ros_cam.cam.cam_parameters.special_vehicle_container.special_transport_container.light_bar_siren_in_use.light_bar_activated; +// ros_cam.cam.cam_parameters.special_vehicle_container.special_transport_container.light_bar_siren_in_use.siren_activated; + } + if (ros_cam.cam.cam_parameters.special_vehicle_container.special_vehicle_container_container_select == + ros_cam.cam.cam_parameters.special_vehicle_container.SPECIAL_VEHICLE_CONTAINER_DANGEROUS_GOODS_CONTAINER) { + ros_cam.cam.cam_parameters.special_vehicle_container.dangerous_goods_container.dangerous_goods_basic.dangerous_goods_basic; + } + if (ros_cam.cam.cam_parameters.special_vehicle_container.special_vehicle_container_container_select == + ros_cam.cam.cam_parameters.special_vehicle_container.SPECIAL_VEHICLE_CONTAINER_ROAD_WORKS_CONTAINER_BASIC) { + if (false) { + ros_cam.cam.cam_parameters.special_vehicle_container.road_works_container_basic.roadworks_sub_cause_code_present = true; + ros_cam.cam.cam_parameters.special_vehicle_container.road_works_container_basic.roadworks_sub_cause_code.roadworks_sub_cause_code; + } +// ros_cam.cam.cam_parameters.special_vehicle_container.road_works_container_basic.light_bar_siren_in_use.light_bar_activated; +// ros_cam.cam.cam_parameters.special_vehicle_container.road_works_container_basic.light_bar_siren_in_use.siren_activated; + if (false) { + ros_cam.cam.cam_parameters.special_vehicle_container.road_works_container_basic.closed_lanes_present = true; + if (false) { + ros_cam.cam.cam_parameters.special_vehicle_container.road_works_container_basic.closed_lanes.innerhard_shoulder_status_present = true; + ros_cam.cam.cam_parameters.special_vehicle_container.road_works_container_basic.closed_lanes.innerhard_shoulder_status.hard_shoulder_status; + } + if (false) { + ros_cam.cam.cam_parameters.special_vehicle_container.road_works_container_basic.closed_lanes.outerhard_shoulder_status_present = true; + ros_cam.cam.cam_parameters.special_vehicle_container.road_works_container_basic.closed_lanes.outerhard_shoulder_status.hard_shoulder_status; + } + if (false) { + ros_cam.cam.cam_parameters.special_vehicle_container.road_works_container_basic.closed_lanes.driving_lane_status_present = true; + ros_cam.cam.cam_parameters.special_vehicle_container.road_works_container_basic.closed_lanes.driving_lane_status.driving_lane_status; //TODO cpy + } + } + } + if (ros_cam.cam.cam_parameters.special_vehicle_container.special_vehicle_container_container_select == + ros_cam.cam.cam_parameters.special_vehicle_container.SPECIAL_VEHICLE_CONTAINER_RESCUE_CONTAINER) { +// ros_cam.cam.cam_parameters.special_vehicle_container.rescue_container.light_bar_siren_in_use.light_bar_activated; +// ros_cam.cam.cam_parameters.special_vehicle_container.rescue_container.light_bar_siren_in_use.siren_activated; + } + if (ros_cam.cam.cam_parameters.special_vehicle_container.special_vehicle_container_container_select == + ros_cam.cam.cam_parameters.special_vehicle_container.SPECIAL_VEHICLE_CONTAINER_EMERGENCY_CONTAINER) { +// ros_cam.cam.cam_parameters.special_vehicle_container.emergency_container.light_bar_siren_in_use.light_bar_activated; +// ros_cam.cam.cam_parameters.special_vehicle_container.emergency_container.light_bar_siren_in_use.siren_activated; + if (false) { + ros_cam.cam.cam_parameters.special_vehicle_container.emergency_container.incident_indication_present = true; + ros_cam.cam.cam_parameters.special_vehicle_container.emergency_container.incident_indication.cause_code.cause_code_type; + ros_cam.cam.cam_parameters.special_vehicle_container.emergency_container.incident_indication.sub_cause_code.sub_cause_code_type; + } + if (false) { + ros_cam.cam.cam_parameters.special_vehicle_container.emergency_container.emergency_priority_present = true; +// ros_cam.cam.cam_parameters.special_vehicle_container.emergency_container.emergency_priority.request_for_right_of_way; +// ros_cam.cam.cam_parameters.special_vehicle_container.emergency_container.emergency_priority.request_for_free_crossing_at_a_traffic_light; + } + } + if (ros_cam.cam.cam_parameters.special_vehicle_container.special_vehicle_container_container_select == + ros_cam.cam.cam_parameters.special_vehicle_container.SPECIAL_VEHICLE_CONTAINER_SAFETY_CAR_CONTAINER) { +// ros_cam.cam.cam_parameters.special_vehicle_container.safety_car_container.light_bar_siren_in_use.light_bar_activated; +// ros_cam.cam.cam_parameters.special_vehicle_container.safety_car_container.light_bar_siren_in_use.siren_activated; + if (false) { + ros_cam.cam.cam_parameters.special_vehicle_container.safety_car_container.incident_indication_present = true; + ros_cam.cam.cam_parameters.special_vehicle_container.safety_car_container.incident_indication.cause_code.cause_code_type; + ros_cam.cam.cam_parameters.special_vehicle_container.safety_car_container.incident_indication.sub_cause_code.sub_cause_code_type; + } + if (false) { + ros_cam.cam.cam_parameters.special_vehicle_container.safety_car_container.traffic_rule_present = true; + ros_cam.cam.cam_parameters.special_vehicle_container.safety_car_container.traffic_rule.traffic_rule; + } + if (false) { + ros_cam.cam.cam_parameters.special_vehicle_container.safety_car_container.speed_limit_present = true; + ros_cam.cam.cam_parameters.special_vehicle_container.safety_car_container.speed_limit.speed_limit; + } + } + } + + // free memory + ASN_STRUCT_FREE(asn_DEF_CAM, asn_cam); + asn_cam = nullptr; + + // return converted cam + return ros_cam; +} + +// for debug +void CAMHandler::PrintCAM() { + for(CAM_t* cam : cam_list_){ + std::ostringstream oss; + + oss << "--- --- --- CAM --- --- ---" << "\n"; + + oss << "CAM" << "\n"; + oss << "|-header:" << "\n"; + oss << " |-protocolVersion: " << cam->header.protocolVersion << "\n"; + oss << " |-messageID: " << cam->header.messageID << "\n"; + oss << " |-stationID: " << cam->header.stationID << "\n"; + oss << "|-cam:" << "\n"; + oss << " |-generationDeltaTime: " << cam->cam.generationDeltaTime << "\n"; + oss << " |-camParameters: " << "\n"; + oss << " |-basicContainer: " << "\n"; + oss << " |-stationType: " << cam->cam.camParameters.basicContainer.stationType << "\n"; + oss << " |-referencePosition: " << "\n"; + oss << " |-latitude: " << cam->cam.camParameters.basicContainer.referencePosition.latitude << "\n"; + oss << " |-longitude: " << cam->cam.camParameters.basicContainer.referencePosition.longitude << "\n"; + oss << " |-positionConfidenceEllipse: " << "\n"; + oss << " |-semiMajorConfidence: " + << cam->cam.camParameters.basicContainer.referencePosition.positionConfidenceEllipse.semiMajorConfidence + << "\n"; + oss << " |-semiMinorConfidence: " + << cam->cam.camParameters.basicContainer.referencePosition.positionConfidenceEllipse.semiMinorConfidence + << "\n"; + oss << " |-semiMajorOrientation: " + << cam->cam.camParameters.basicContainer.referencePosition.positionConfidenceEllipse.semiMajorOrientation + << "\n"; + oss << " |-altitude: " << "\n"; + oss << " |-altitudeValue: " << cam->cam.camParameters.basicContainer.referencePosition.altitude.altitudeValue + << "\n"; + oss << " |-altitudeConfidence: " + << cam->cam.camParameters.basicContainer.referencePosition.altitude.altitudeConfidence << "\n"; + oss << " |-highFrequencyContainer: " << "\n"; + oss << " |-present: " << cam->cam.camParameters.highFrequencyContainer.present << "\n"; + switch (cam->cam.camParameters.highFrequencyContainer.present) { + case (HighFrequencyContainer_PR_NOTHING): + oss << " |-choice: " << "HighFrequencyContainer_PR_NOTHING" << "\n"; + break; + case (HighFrequencyContainer_PR_basicVehicleContainerHighFrequency): + oss << " |-choice: " << "HighFrequencyContainer_PR_basicVehicleContainerHighFrequency" << "\n"; + oss << " |-basicVehicleContainerHighFrequency: " << "\n"; + oss << " |-heading: " << "\n"; + oss << " |-headingValue: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.heading.headingValue + << "\n"; + oss << " |-headingConfidence: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.heading.headingConfidence + << "\n"; + oss << " |-speed: " << "\n"; + oss << " |-speedValue: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.speed.speedValue + << "\n"; + oss << " |-speedConfidence: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.speed.speedConfidence + << "\n"; + oss << " |-driveDirection: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.driveDirection + << "\n"; + oss << " |-vehicleLength: " << "\n"; + oss << " |-vehicleLengthValue: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.vehicleLength.vehicleLengthValue + << "\n"; + oss << " |-vehicleLengthConfidenceIndication: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.vehicleLength.vehicleLengthConfidenceIndication + << "\n"; + oss << " |-vehicleWidth: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.vehicleWidth + << "\n"; + oss << " |-longitudinalAcceleration: " << "\n"; + oss << " |-longitudinalAccelerationValue: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.longitudinalAcceleration.longitudinalAccelerationValue + << "\n"; + oss << " |-longitudinalAccelerationConfidence: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.longitudinalAcceleration.longitudinalAccelerationConfidence + << "\n"; + oss << " |-curvature: " << "\n"; + oss << " |-curvatureValue: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.curvature.curvatureValue + << "\n"; + oss << " |-curvatureConfidence: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.curvature.curvatureConfidence + << "\n"; + oss << " |-curvatureCalculationMode: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.curvatureCalculationMode + << "\n"; + oss << " |-yawRate: " << "\n"; + oss << " |-yawRateValue: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.yawRate.yawRateValue + << "\n"; + oss << " |-yawRateConfidence: " + << cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.yawRate.yawRateConfidence + << "\n"; + + if (cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.accelerationControl) + oss << " |-accelerationControl(OPTIONAL): present - parsing not yet implemented" << "\n"; + else + oss << " |-accelerationControl(OPTIONAL): not present" << "\n"; + + if (cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.lanePosition) + oss << " |-lanePosition(OPTIONAL): present - parsing not yet implemented" << "\n"; + else + oss << " |-lanePosition(OPTIONAL): not present" << "\n"; + + if (cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.steeringWheelAngle) + oss << " |-steeringWheelAngle(OPTIONAL): present - parsing not yet implemented" << "\n"; + else + oss << " |-steeringWheelAngle(OPTIONAL): not present" << "\n"; + + if (cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.lateralAcceleration) + oss << " |-lateralAcceleration(OPTIONAL): present - parsing not yet implemented" << "\n"; + else + oss << " |-lateralAcceleration(OPTIONAL): not present" << "\n"; + + if (cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.verticalAcceleration) + oss << " |-verticalAcceleration(OPTIONAL): present - parsing not yet implemented" << "\n"; + else + oss << " |-verticalAcceleration(OPTIONAL): not present" << "\n"; + + if (cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.performanceClass) + oss << " |-performanceClass(OPTIONAL): present - parsing not yet implemented" << "\n"; + else + oss << " |-performanceClass(OPTIONAL): not present" << "\n"; + + if (cam->cam.camParameters.highFrequencyContainer.choice.basicVehicleContainerHighFrequency.cenDsrcTollingZone) + oss << " |-cenDsrcTollingZone(OPTIONAL): present - parsing not yet implemented" << "\n"; + else + oss << " |-cenDsrcTollingZone(OPTIONAL): not present" << "\n"; + + break; + case (HighFrequencyContainer_PR_rsuContainerHighFrequency): + oss << " |-choice: " << "HighFrequencyContainer_PR_rsuContainerHighFrequency" << "\n"; + oss << " |-rsuContainerHighFrequency: " << "\n"; + + if (cam->cam.camParameters.highFrequencyContainer.choice.rsuContainerHighFrequency.protectedCommunicationZonesRSU) + oss << " |-protectedCommunicationZonesRSU(OPTIONAL): present - parsing not yet implemented" << "\n"; + else + oss << " |-protectedCommunicationZonesRSU(OPTIONAL): not present" << "\n"; + break; + default: + oss << "Non standard present value" << "\n"; + } + + if (cam->cam.camParameters.lowFrequencyContainer) { + oss << " |-lowFrequencyContainer(OPTIONAL): present" << "\n"; + oss << " |-present: " << ((LowFrequencyContainer *) cam->cam.camParameters.lowFrequencyContainer)->present + << "\n"; + switch (cam->cam.camParameters.lowFrequencyContainer->present) { + case (LowFrequencyContainer_PR_NOTHING): + oss << " |-choice: " << "LowFrequencyContainer_PR_NOTHING" << "\n"; + break; + case (LowFrequencyContainer_PR_basicVehicleContainerLowFrequency): + oss << " |-choice: " << "LowFrequencyContainer_PR_basicVehicleContainerLowFrequency" << "\n"; + oss << " |-basicVehicleContainerLowFrequency: " << "\n"; + oss << " |-vehicleRole: " + << cam->cam.camParameters.lowFrequencyContainer->choice.basicVehicleContainerLowFrequency.vehicleRole + << "\n"; + oss << " |-exteriorLights: BITSTRING - not implemented for displaying in demo" << "\n"; + oss << " |-pathHistory: A_SEQUENCE_OF - not implemented for displaying in demo" << "\n"; + break; + default: + oss << "Non standard present value" << "\n"; + } + } else + oss << " |-lowFrequencyContainer(OPTIONAL): not present" << "\n"; + + if (cam->cam.camParameters.specialVehicleContainer) { + oss << " |-specialVehicleContainer(OPTIONAL): present" << "\n"; + oss << " |-present: " << cam->cam.camParameters.specialVehicleContainer->present << "\n"; + switch (cam->cam.camParameters.specialVehicleContainer->present) { + case (SpecialVehicleContainer_PR_NOTHING): + oss << " |-choice: " << "SpecialVehicleContainer_PR_NOTHING" << "\n"; + break; + case (SpecialVehicleContainer_PR_publicTransportContainer): + oss << " |-choice: " << "SpecialVehicleContainer_PR_publicTransportContainer" << "\n"; + oss << " |-publicTransportContainer: content parsing not further implemented in demo" << "\n"; + break; + case (SpecialVehicleContainer_PR_specialTransportContainer): + oss << " |-choice: " << "SpecialVehicleContainer_PR_specialTransportContainer" << "\n"; + oss << " |-specialTransportContainer: content parsing not further implemented in demo" << "\n"; + break; + case (SpecialVehicleContainer_PR_dangerousGoodsContainer): + oss << " |-choice: " << "SpecialVehicleContainer_PR_dangerousGoodsContainer" << "\n"; + oss << " |-dangerousGoodsContainer: content parsing not further implemented in demo" << "\n"; + break; + case (SpecialVehicleContainer_PR_roadWorksContainerBasic): + oss << " |-choice: " << "SpecialVehicleContainer_PR_roadWorksContainerBasic" << "\n"; + oss << " |-roadWorksContainerBasic: content parsing not further implemented in demo" << "\n"; + break; + case (SpecialVehicleContainer_PR_rescueContainer): + oss << " |-choice: " << "SpecialVehicleContainer_PR_rescueContainer" << "\n"; + oss << " |-rescueContainer: content parsing not further implemented in demo" << "\n"; + break; + case (SpecialVehicleContainer_PR_emergencyContainer): + oss << " |-choice: " << "SpecialVehicleContainer_PR_emergencyContainer" << "\n"; + oss << " |-emergencyContainer: content parsing not further implemented in demo" << "\n"; + break; + case (SpecialVehicleContainer_PR_safetyCarContainer): + oss << " |-choice: " << "SpecialVehicleContainer_PR_safetyCarContainer" << "\n"; + oss << " |-safetyCarContainer: content parsing not further implemented in demo" << "\n"; + break; + default: + oss << "Non standard present value" << "\n"; + } + } else + oss << " |-specialVehicleContainer(OPTIONAL): not present" << "\n"; + + RCLCPP_INFO(GetNode()->get_logger(), oss.str().c_str()); + } + +} diff --git a/src/handler/CPMHandler.cpp b/src/handler/CPMHandler.cpp new file mode 100644 index 0000000..a9d1e3f --- /dev/null +++ b/src/handler/CPMHandler.cpp @@ -0,0 +1,620 @@ +#include "CPMHandler.h" +#include "utils.h" +extern "C" { +#include "vcits/exceptions/V2XLibExceptions.h" + +#include "vcits/parser/Decoder.h" +#include "vcits/parser/Encoder.h" +} + + +struct PerceivedObject; + +CPMHandler::CPMHandler(rclcpp::Node *gateway_node) + : V2XMHandler(MsgType::kCPM, gateway_node) { + + cpm_ = (CPM_t *) malloc( + sizeof(CPM_t)); + new_data_received_ = false; + + // configure + ReadConfig(); + + // init CPM + InitCPM(); + + // publisher + cpm_pub_ = GetNode()->create_publisher("cpm/received", 1);; + + // subscriber + cpm_sub_ = GetNode()->create_subscription + ("cpm/transmitted", 10, std::bind(&CPMHandler::rosCPMCallback, this, std::placeholders::_1)); +} + +CPMHandler::~CPMHandler() { + // TODO: CHECK how deep this mighty free functions works, does it free all encapsulated pointers? + if(cpm_!= nullptr){ + ASN_STRUCT_FREE(asn_DEF_CPM, cpm_); + cpm_ = nullptr; + } +} + +std::queue> CPMHandler::GetMessages() { + + // processing variables + rclcpp::Time current_timestamp = GetNode()->get_clock()->now(); + std::queue> cpm_queue; // there may be 0..1 CPMs in the queue + + if(!new_data_received_){ + return cpm_queue; + } + + // static variables + static rclcpp::Time prev_process_timestamp = current_timestamp; + + // max frequency check -> CPM specs <= 10Hz + if(GetFrequency(current_timestamp, prev_process_timestamp) <= 10.0) { + + auto& clk = *GetNode()->get_clock(); + // CAM creation + size_t final_cpm_size; + void *final_cpm_buffer; + + try { + Encoder::validate_constraints(&asn_DEF_CPM, cpm_); + final_cpm_size = Encoder::encode(&asn_DEF_CPM, nullptr, cpm_, &final_cpm_buffer); + + if (final_cpm_size > 0) { + cpm_queue.push(std::make_pair(final_cpm_buffer, final_cpm_size)); + auto& clk = *GetNode()->get_clock(); + RCLCPP_INFO_THROTTLE(GetNode()->get_logger(), clk, CPM_DEBUG_MSG_THROTTLE_MS, + "CPM created successfully with size %ld", final_cpm_size); + } else { + RCLCPP_ERROR(GetNode()->get_logger(), "CPM creation failed - you should probably stop the program"); + } + } catch (ValidateConstraintsException e) { + RCLCPP_ERROR(GetNode()->get_logger(), e.what()); + } catch (EncodingException e) { + RCLCPP_ERROR(GetNode()->get_logger(), e.what()); + } + + prev_process_timestamp = current_timestamp; + } + new_data_received_ = false; + + return cpm_queue; +} + +void CPMHandler::PutMessages(std::queue> msgs) { + // take each element from the incoming_queue, convert it to ROS2 format and publish + + auto& clk = *GetNode()->get_clock(); + + // variables + v2x_msgs::msg::CPMList cpm_list; + cpm_list.header.stamp = GetNode()->get_clock()->now(); + + // take each element from the incoming_queue, convert it to ROS2 format and publish + while (!msgs.empty()) { + cpm_list.cpms.push_back(GetROSCPM(msgs.front())); + msgs.pop(); + } + + cpm_pub_->publish(cpm_list); +} + +void CPMHandler::ReadConfig() { + // read configuration and set is_configured_ + + // necessary handler processing constants + GetNode()->declare_parameter("cpm.active", false); + GetNode()->get_parameter("cpm.active", CPM_ACTIVE); + GetNode()->declare_parameter("cpm.handler_debug_msg_throttle_ms", 5000); + GetNode()->get_parameter("cpm.handler_debug_msg_throttle_ms", CPM_DEBUG_MSG_THROTTLE_MS); + + if(CPM_ACTIVE) { + is_active_ = true; + } + + is_configured_ = true; +} + +void CPMHandler::rosCPMCallback(const v2x_msgs::msg::CPMList::SharedPtr ros_cpm_list){ + if(ros_cpm_list->cpms.size() > 1){ + RCLCPP_WARN(GetNode()->get_logger(), "CPM creation only implemented for one CPM in CPMList"); + } + + //TODO: make CPMList when there are more elements in ros_cpm_list + + if(ros_cpm_list->cpms.size() != 0){ + //free optional Containers before pointer is lost + if(cpm_->cpm.cpmParameters.stationDataContainer != nullptr){ + ASN_STRUCT_FREE(asn_DEF_StationDataContainer, cpm_->cpm.cpmParameters.stationDataContainer); + } + if(cpm_->cpm.cpmParameters.perceivedObjectContainer != nullptr){ + ASN_STRUCT_FREE(asn_DEF_PerceivedObjectContainer, cpm_->cpm.cpmParameters.perceivedObjectContainer); + } + // reset data structure + memset((void *) cpm_, 0, sizeof(CPM_t)); + + new_data_received_ = true; + for(auto ros_cpm : ros_cpm_list->cpms){ + // header + cpm_->header.protocolVersion = ros_cpm.header.protocol_version; + cpm_->header.messageID = ros_cpm.header.message_id; + cpm_->header.stationID = ros_cpm.header.station_id.station_id; + + // Generation delta time + cpm_->cpm.generationDeltaTime = ros_cpm.cpm.generation_delta_time.generation_delta_time; + + // Management container + cpm_->cpm.cpmParameters.managementContainer.stationType = + ros_cpm.cpm.cpm_parameters.management_container.station_type.station_type; + + //TODO: Implement perceived_object_container_segment_info (not needed yet) + + cpm_->cpm.cpmParameters.managementContainer.referencePosition.latitude = + ros_cpm.cpm.cpm_parameters.management_container.reference_position.latitude.latitude; + cpm_->cpm.cpmParameters.managementContainer.referencePosition.longitude = + ros_cpm.cpm.cpm_parameters.management_container.reference_position.longitude.longitude; + + cpm_->cpm.cpmParameters.managementContainer.referencePosition.positionConfidenceEllipse.semiMajorConfidence = + ros_cpm.cpm.cpm_parameters.management_container.reference_position.position_confidence_ellipse.semi_major_confidence.semi_axis_length; + cpm_->cpm.cpmParameters.managementContainer.referencePosition.positionConfidenceEllipse.semiMinorConfidence = + ros_cpm.cpm.cpm_parameters.management_container.reference_position.position_confidence_ellipse.semi_minor_confidence.semi_axis_length; + cpm_->cpm.cpmParameters.managementContainer.referencePosition.positionConfidenceEllipse.semiMajorOrientation = + ros_cpm.cpm.cpm_parameters.management_container.reference_position.position_confidence_ellipse.semi_major_orientation.heading_value; + + cpm_->cpm.cpmParameters.managementContainer.referencePosition.altitude.altitudeValue = + ros_cpm.cpm.cpm_parameters.management_container.reference_position.altitude.altitude_value.altitude_value; + cpm_->cpm.cpmParameters.managementContainer.referencePosition.altitude.altitudeConfidence = + ros_cpm.cpm.cpm_parameters.management_container.reference_position.altitude.altitude_confidence.altitude_confidence; + + // Station data container + if (ros_cpm.cpm.cpm_parameters.station_data_container_present){ + //originatingVehicleContainer + if(ros_cpm.cpm.cpm_parameters.station_data_container.station_data_container_container_select == v2x_msgs::msg::StationDataContainer::STATION_DATA_CONTAINER_ORIGINATING_VEHICLE_CONTAINER){ + cpm_->cpm.cpmParameters.stationDataContainer = (StationDataContainer *) malloc(sizeof(StationDataContainer)); + memset((void *) cpm_->cpm.cpmParameters.stationDataContainer, 0, sizeof(StationDataContainer)); + + cpm_->cpm.cpmParameters.stationDataContainer->present = StationDataContainer_PR_originatingVehicleContainer; + + //Heading + cpm_->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.heading.headingValue = + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.heading.heading_value.heading_value; + cpm_->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.heading.headingConfidence = + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.heading.heading_confidence.heading_confidence; + + //Speed + cpm_->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.speed.speedValue = + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.speed.speed_value.speed_value; + cpm_->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.speed.speedConfidence = + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.speed.speed_confidence.speed_confidence; + + //Drive direction + cpm_->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.driveDirection = + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.drive_direction.drive_direction; + + // TODO: inpmelent optional Vehicle orientation Angle, Acceleration, Yaw Rate (Not needed Yet) + + //Optional: Pitch Angle + if(ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.pitch_angle_present){ + cpm_->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.pitchAngle = (CartesianAngle *) malloc(sizeof(CartesianAngle)); + memset((void *) cpm_->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.pitchAngle, 0, sizeof(CartesianAngle)); + cpm_->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.pitchAngle->value = + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.pitch_angle.value.cartesian_angle_value; + cpm_->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.pitchAngle->confidence = + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.pitch_angle.confidence.angle_confidence; + } + + //Optional: Roll Angle + if(ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.roll_angle_present){ + cpm_->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.rollAngle = (CartesianAngle *) malloc(sizeof(CartesianAngle)); + memset((void *) cpm_->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.rollAngle, 0, sizeof(CartesianAngle)); + cpm_->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.rollAngle->value = + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.roll_angle.value.cartesian_angle_value; + cpm_->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.rollAngle->confidence = + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.roll_angle.confidence.angle_confidence; + } + + //TODO: Implement Vehicle Length, width, height and trailer data container (not needed yet) + } else { + //TODO: Implement originating rsu container (Not needed yet) + } + } + + //TODO: Implement Optional: sensor_information_container (not needed yet) + + //Optional: PerceivedObjectContainer + if(ros_cpm.cpm.cpm_parameters.perceived_object_container_present){ + cpm_->cpm.cpmParameters.perceivedObjectContainer = (PerceivedObjectContainer *) malloc(sizeof(PerceivedObjectContainer)); + memset((void *) cpm_->cpm.cpmParameters.perceivedObjectContainer, 0, sizeof(PerceivedObjectContainer)); + + for(auto ros_object : ros_cpm.cpm.cpm_parameters.perceived_object_container.container){ + PerceivedObject *myObj = (PerceivedObject*) malloc(sizeof(PerceivedObject)); + memset((void *) myObj, 0, sizeof(PerceivedObject)); + // ID + myObj->objectID = ros_object.object_id.identifier; + + //OPTIONAL: SensorIDList + // TODO:: SensorIDList (not needed yet) + + //time of measurement + myObj->timeOfMeasurement = ros_object.time_of_measurement.time_of_measurement; + + //OPTIONAL: ObjectAge + // TODO:: Implement Age (not needed yet) + + //ObjectConfidence + myObj->objectConfidence = ros_object.object_confidence.object_confidence; + + // Distance + myObj->xDistance.value = ros_object.x_distance.value.distance_value; + myObj->xDistance.confidence = ros_object.x_distance.confidence.distance_confidence; + myObj->yDistance.value = ros_object.y_distance.value.distance_value; + myObj->yDistance.confidence = ros_object.y_distance.confidence.distance_confidence; + //OPTIONAL: zDistance + if(ros_object.z_distance_present){ + myObj->zDistance = (ObjectDistanceWithConfidence*) malloc(sizeof(ObjectDistanceWithConfidence)); + memset((void *) myObj->zDistance, 0, sizeof(ObjectDistanceWithConfidence)); + myObj->zDistance->value = ros_object.z_distance.value.distance_value; + myObj->zDistance->confidence = ros_object.z_distance.confidence.distance_confidence; + } + + // Speed + myObj->xSpeed.value = ros_object.x_speed.value.speed_value_extended; + myObj->xSpeed.confidence = ros_object.x_speed.confidence.speed_confidence; + myObj->ySpeed.value = ros_object.y_speed.value.speed_value_extended; + myObj->ySpeed.confidence = ros_object.y_speed.confidence.speed_confidence; + //OPTIONAL: zSpeed + if(ros_object.z_speed_present){ + myObj->zSpeed = (SpeedExtended*)malloc(sizeof(SpeedExtended)); + memset((void *) myObj->zSpeed, 0, sizeof(SpeedExtended)); + myObj->zSpeed->value = ros_object.z_speed.value.speed_value_extended; + myObj->zSpeed->confidence = ros_object.z_speed.confidence.speed_confidence; + } + + //OPTIONAL: Acceleration + if(ros_object.x_acceleration_present){ + myObj->xAcceleration = (LongitudinalAcceleration *)malloc(sizeof(LongitudinalAcceleration)); + memset((void *) myObj->xAcceleration, 0, sizeof(LongitudinalAcceleration)); + myObj->xAcceleration->longitudinalAccelerationValue = + ros_object.x_acceleration.longitudinal_acceleration_value.longitudinal_acceleration_value; + myObj->xAcceleration->longitudinalAccelerationConfidence = + ros_object.x_acceleration.longitudinal_acceleration_confidence.acceleration_confidence; + } + if(ros_object.y_acceleration_present){ + myObj->yAcceleration = (LateralAcceleration *)malloc(sizeof(LateralAcceleration)); + memset((void *) myObj->yAcceleration, 0, sizeof(LateralAcceleration)); + myObj->yAcceleration->lateralAccelerationValue = + ros_object.y_acceleration.lateral_acceleration_value.lateral_acceleration_value; + myObj->yAcceleration->lateralAccelerationConfidence = + ros_object.y_acceleration.lateral_acceleration_confidence.acceleration_confidence; + } + if(ros_object.z_acceleration_present){ + myObj->zAcceleration = (VerticalAcceleration *)malloc(sizeof(VerticalAcceleration)); + memset((void *) myObj->zAcceleration, 0, sizeof(VerticalAcceleration)); + myObj->zAcceleration->verticalAccelerationValue = + ros_object.z_acceleration.vertical_acceleration_value.vertical_acceleration_value; + myObj->zAcceleration->verticalAccelerationConfidence = + ros_object.z_acceleration.vertical_acceleration_confidence.acceleration_confidence; + } + + //OPTIONAL: YawAngle + if(ros_object.yaw_angle_present){ + myObj->yawAngle = (CartesianAngle *) malloc(sizeof(CartesianAngle)); + memset((void *) myObj->yawAngle, 0, sizeof(CartesianAngle)); + myObj->yawAngle->value = ros_object.yaw_angle.value.cartesian_angle_value; + myObj->yawAngle->confidence = ros_object.yaw_angle.confidence.angle_confidence; + } + + //OPTIONAL: Dimension + if(ros_object.planar_object_dimension1_present){ + myObj->planarObjectDimension1 = (ObjectDimension*)malloc(sizeof(ObjectDimension)); + memset((void *) myObj->planarObjectDimension1, 0, sizeof(ObjectDimension)); + myObj->planarObjectDimension1->value = ros_object.planar_object_dimension1.value.object_dimension_value; + myObj->planarObjectDimension1->confidence = ros_object.planar_object_dimension1.confidence.object_dimension_confidence; + } + if(ros_object.planar_object_dimension2_present){ + myObj->planarObjectDimension2 = (ObjectDimension*)malloc(sizeof(ObjectDimension)); + memset((void *) myObj->planarObjectDimension2, 0, sizeof(ObjectDimension)); + myObj->planarObjectDimension2->value = ros_object.planar_object_dimension2.value.object_dimension_value; + myObj->planarObjectDimension2->confidence = ros_object.planar_object_dimension2.confidence.object_dimension_confidence; + } + if(ros_object.vertical_object_dimension_present){ + myObj->verticalObjectDimension = (ObjectDimension*)malloc(sizeof(ObjectDimension)); + memset((void *) myObj->verticalObjectDimension, 0, sizeof(ObjectDimension)); + myObj->verticalObjectDimension->value = ros_object.vertical_object_dimension.value.object_dimension_value; + myObj->verticalObjectDimension->confidence = ros_object.vertical_object_dimension.confidence.object_dimension_confidence; + } + + //objectRefPoint + myObj->objectRefPoint = ros_object.object_ref_point.object_ref_point; + + //OPTIONAL: DynamicsStatus + // TODO:: Implement Dynamic Status (not needed yet) + + //OPTIONAL: classification + if(ros_object.classification_present){ + ObjectClassDescription *myObjCLassDescription = (ObjectClassDescription*)malloc(sizeof(ObjectClassDescription)); + ObjectClass *myObjClass = (ObjectClass*) malloc(sizeof(ObjectClass)); + memset((void *) myObjCLassDescription, 0, sizeof(ObjectClassDescription)); + memset((void *) myObjClass, 0, sizeof(ObjectClass)); + utils::convert2ASN1ObjectClass(myObjClass, ros_object); + + const int result = ASN_SET_ADD(myObjCLassDescription, myObjClass); + if(result != 0){ + ASN_STRUCT_FREE(asn_DEF_ObjectClassDescription, myObjCLassDescription); + RCLCPP_ERROR(GetNode()->get_logger(), "asn_set_add() for ObjectClassDescription failed"); + exit(EXIT_FAILURE); + } + myObj->classification = myObjCLassDescription; + } + + //OPTIONAL: matchedPosition + // TODO:: Implement Match position (not needed yet) + + // Add object to container list + const int result = ASN_SET_ADD(cpm_->cpm.cpmParameters.perceivedObjectContainer, myObj); + if(result != 0){ + ASN_STRUCT_FREE(asn_DEF_PerceivedObjectContainer, cpm_->cpm.cpmParameters.perceivedObjectContainer); + RCLCPP_ERROR(GetNode()->get_logger(), "asn_set_add() failed"); + exit(EXIT_FAILURE); + } + } + } + + //Number of perceived objects + cpm_->cpm.cpmParameters.numberOfPerceivedObjects = ros_cpm.cpm.cpm_parameters.number_of_perceived_objects.number_of_perceived_objects; + + } + } +} + + +void CPMHandler::InitCPM(){ + // reset data structure + memset((void *) cpm_, 0, sizeof(CPM_t)); + + cpm_->header.protocolVersion = 2; + cpm_->header.messageID = 101; + cpm_->header.stationID = 0; + + // Management container + cpm_->cpm.generationDeltaTime = GetGenerationDeltaTime(); + cpm_->cpm.cpmParameters.managementContainer.stationType = StationType::StationType_unknown; + cpm_->cpm.cpmParameters.managementContainer.referencePosition.altitude.altitudeValue = AltitudeValue::AltitudeValue_unavailable; + cpm_->cpm.cpmParameters.managementContainer.referencePosition.longitude = Longitude::Longitude_unavailable; + cpm_->cpm.cpmParameters.managementContainer.referencePosition.latitude = Latitude::Latitude_unavailable; + cpm_->cpm.cpmParameters.managementContainer.perceivedObjectContainerSegmentInfo = nullptr; + + // Not set + cpm_->cpm.cpmParameters.numberOfPerceivedObjects = 0; + cpm_->cpm.cpmParameters.perceivedObjectContainer = nullptr; + cpm_->cpm.cpmParameters.sensorInformationContainer = nullptr; + cpm_->cpm.cpmParameters.stationDataContainer = nullptr; + cpm_->cpm.cpmParameters.freeSpaceAddendumContainer = nullptr; +} + +v2x_msgs::msg::CPM CPMHandler::GetROSCPM(std::pair msg){ + // variables + v2x_msgs::msg::CPM ros_cpm; + CPM_t *asn_cpm = nullptr; + + // decode + try { + asn_cpm = (CPM_t *) Decoder::decode(&asn_DEF_CPM, msg.first, msg.second); + } catch (DecodingException e) { + RCLCPP_ERROR(GetNode()->get_logger(), e.what()); + RCLCPP_INFO(GetNode()->get_logger(), + "If decoding fails, we throw away everything, as we would have to check how far we were able to decode"); + } + + auto& clk = *GetNode()->get_clock(); + RCLCPP_WARN_THROTTLE(GetNode()->get_logger(), clk, CPM_DEBUG_MSG_THROTTLE_MS, + "Not all parts implemented for translation to ROS CPM! -> search for TODO"); + + // convert from asn_cam to ros_cam + //Header + ros_cpm.header.protocol_version = asn_cpm->header.protocolVersion; + ros_cpm.header.message_id = asn_cpm->header.messageID; + ros_cpm.header.station_id.station_id = asn_cpm->header.stationID; + + //Generation Delta Time + ros_cpm.cpm.generation_delta_time.generation_delta_time = asn_cpm->cpm.generationDeltaTime; + + // Management container + ros_cpm.cpm.cpm_parameters.management_container.station_type.station_type = asn_cpm->cpm.cpmParameters.managementContainer.stationType; + + //TODO implement optional perceived_object_container_segment_info (not needed yet) + + ros_cpm.cpm.cpm_parameters.management_container.reference_position.latitude.latitude = asn_cpm->cpm.cpmParameters.managementContainer.referencePosition.latitude; + ros_cpm.cpm.cpm_parameters.management_container.reference_position.longitude.longitude = asn_cpm->cpm.cpmParameters.managementContainer.referencePosition.longitude; + + ros_cpm.cpm.cpm_parameters.management_container.reference_position.position_confidence_ellipse.semi_major_confidence.semi_axis_length = asn_cpm->cpm.cpmParameters.managementContainer.referencePosition.positionConfidenceEllipse.semiMajorConfidence; + ros_cpm.cpm.cpm_parameters.management_container.reference_position.position_confidence_ellipse.semi_minor_confidence.semi_axis_length = asn_cpm->cpm.cpmParameters.managementContainer.referencePosition.positionConfidenceEllipse.semiMinorConfidence; + ros_cpm.cpm.cpm_parameters.management_container.reference_position.position_confidence_ellipse.semi_major_orientation.heading_value = asn_cpm->cpm.cpmParameters.managementContainer.referencePosition.positionConfidenceEllipse.semiMajorOrientation; + + ros_cpm.cpm.cpm_parameters.management_container.reference_position.altitude.altitude_value.altitude_value = asn_cpm->cpm.cpmParameters.managementContainer.referencePosition.altitude.altitudeValue; + ros_cpm.cpm.cpm_parameters.management_container.reference_position.altitude.altitude_confidence.altitude_confidence = asn_cpm->cpm.cpmParameters.managementContainer.referencePosition.altitude.altitudeConfidence; + + //Station Data Container + if (asn_cpm->cpm.cpmParameters.stationDataContainer != nullptr){ + ros_cpm.cpm.cpm_parameters.station_data_container_present = true; + // originatingVehicleContainer + ros_cpm.cpm.cpm_parameters.station_data_container.station_data_container_container_select = asn_cpm->cpm.cpmParameters.stationDataContainer->present; + + if (ros_cpm.cpm.cpm_parameters.station_data_container.station_data_container_container_select == + ros_cpm.cpm.cpm_parameters.station_data_container.STATION_DATA_CONTAINER_ORIGINATING_VEHICLE_CONTAINER) { + + //Heading + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.heading.heading_value.heading_value = + asn_cpm->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.heading.headingValue; + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.heading.heading_confidence.heading_confidence = + asn_cpm->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.heading.headingConfidence; + + //Speed + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.speed.speed_value.speed_value = + asn_cpm->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.speed.speedValue; + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.speed.speed_confidence.speed_confidence = + asn_cpm->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.speed.speedConfidence; + + //Drive direction + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.drive_direction.drive_direction = + asn_cpm->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.driveDirection; + + // TODO: inpmelent optional Vehicle orientation Angle, Acceleration, Yaw Rate (Not needed Yet) + + //Optional: Pitch Angle + if(asn_cpm->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.pitchAngle != nullptr){ + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.pitch_angle_present = true; + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.pitch_angle.value.cartesian_angle_value = + asn_cpm->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.pitchAngle->value; + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.pitch_angle.confidence.angle_confidence = + asn_cpm->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.pitchAngle->confidence; + } + + //Optional: Roll Angle + if(asn_cpm->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.rollAngle != nullptr){ + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.roll_angle_present = true; + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.roll_angle.value.cartesian_angle_value = + asn_cpm->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.rollAngle->value; + ros_cpm.cpm.cpm_parameters.station_data_container.originating_vehicle_container.roll_angle.confidence.angle_confidence = + asn_cpm->cpm.cpmParameters.stationDataContainer->choice.originatingVehicleContainer.rollAngle->confidence; + } + + //TODO: Implement Vehicle Length, width, height and trailer data container (not needed yet) + + }else if (ros_cpm.cpm.cpm_parameters.station_data_container.station_data_container_container_select == + ros_cpm.cpm.cpm_parameters.station_data_container.STATION_DATA_CONTAINER_ORIGINATING_RSUCONTAINER) { + //TODO: implement originating rsu container (Not needed yet) + } + } + + //TODO: Implement Optional: sensor_information_container (not needed yet) + + // Perceived Object Container + if( asn_cpm->cpm.cpmParameters.numberOfPerceivedObjects > 0 && asn_cpm->cpm.cpmParameters.perceivedObjectContainer != nullptr){ + ros_cpm.cpm.cpm_parameters.perceived_object_container_present = true; + // TODO: I don't know if we can iterate through sequence like this + + for(int i = 0; i < asn_cpm->cpm.cpmParameters.perceivedObjectContainer->list.count; i++){ + PerceivedObject *object; + v2x_msgs::msg::PerceivedObject ros_object; + + object = asn_cpm->cpm.cpmParameters.perceivedObjectContainer->list.array[i]; + //Object Identifier + ros_object.object_id.identifier = object->objectID; + + //OPTIONAL: SensorIDList + // TODO:: SensorIDList (not needed yet) + + //Time of measurement + ros_object.time_of_measurement.time_of_measurement = object->timeOfMeasurement; + + //OPTIONAL: ObjectAge + // TODO:: Implement Age (not needed yet) + + //Object Confidence + ros_object.object_confidence.object_confidence = object->objectConfidence; + + // Distance + ros_object.x_distance.value.distance_value = object->xDistance.value; + ros_object.x_distance.confidence.distance_confidence = object->xDistance.confidence; + ros_object.y_distance.value.distance_value = object->yDistance.value; + ros_object.y_distance.confidence.distance_confidence = object->yDistance.confidence; + if(object->zDistance != nullptr){ + ros_object.z_distance_present = true; + ros_object.z_distance.value.distance_value = object->zDistance->value; + ros_object.z_distance.confidence.distance_confidence = object->zDistance->confidence; + } + + //Speed + ros_object.x_speed.value.speed_value_extended = object->xSpeed.value; + ros_object.x_speed.confidence.speed_confidence = object->xSpeed.confidence; + ros_object.y_speed.value.speed_value_extended = object->ySpeed.value; + ros_object.y_speed.confidence.speed_confidence = object->ySpeed.confidence; + if(object->zSpeed != nullptr){ + ros_object.z_speed_present = true; + ros_object.z_speed.value.speed_value_extended = object->zSpeed->value; + ros_object.z_speed.confidence.speed_confidence = object->zSpeed->confidence; + } + + //OPTIONAL: Acceleration + if(object->xAcceleration != nullptr){ + ros_object.x_acceleration_present = true; + ros_object.x_acceleration.longitudinal_acceleration_value.longitudinal_acceleration_value = object->xAcceleration->longitudinalAccelerationValue; + ros_object.x_acceleration.longitudinal_acceleration_confidence.acceleration_confidence = object->xAcceleration->longitudinalAccelerationConfidence; + } + if(object->yAcceleration != nullptr){ + ros_object.y_acceleration_present = true; + ros_object.y_acceleration.lateral_acceleration_value.lateral_acceleration_value = object->yAcceleration->lateralAccelerationValue; + ros_object.y_acceleration.lateral_acceleration_confidence.acceleration_confidence = object->yAcceleration->lateralAccelerationConfidence; + } + if(object->zAcceleration != nullptr){ + ros_object.z_acceleration_present = true; + ros_object.z_acceleration.vertical_acceleration_value.vertical_acceleration_value = object->zAcceleration->verticalAccelerationValue; + ros_object.z_acceleration.vertical_acceleration_confidence.acceleration_confidence = object->zAcceleration->verticalAccelerationConfidence; + } + + //OPTIONAL: yaw angle + if(object->yawAngle != nullptr){ + ros_object.yaw_angle_present = true; + ros_object.yaw_angle.value.cartesian_angle_value = object->yawAngle->value; + ros_object.yaw_angle.confidence.angle_confidence = object->yawAngle->confidence; + } + + //OPTIONAL: Dimension + if(object->planarObjectDimension1 != nullptr){ + ros_object.planar_object_dimension1_present = true; + ros_object.planar_object_dimension1.value.object_dimension_value = object->planarObjectDimension1->value; + ros_object.planar_object_dimension1.confidence.object_dimension_confidence = object->planarObjectDimension1->confidence; + } + if(object->planarObjectDimension2 != nullptr){ + ros_object.planar_object_dimension2_present = true; + ros_object.planar_object_dimension2.value.object_dimension_value = object->planarObjectDimension2->value; + ros_object.planar_object_dimension2.confidence.object_dimension_confidence = object->planarObjectDimension2->confidence; + } + if(object->verticalObjectDimension != nullptr){ + ros_object.vertical_object_dimension_present = true; + ros_object.vertical_object_dimension.value.object_dimension_value = object->verticalObjectDimension->value; + ros_object.vertical_object_dimension.confidence.object_dimension_confidence = object->verticalObjectDimension->confidence; + } + + // reference point + ros_object.object_ref_point.object_ref_point = object->objectRefPoint; + + //OPTIONAL: DynamicsStatus + // TODO:: Implement Dynamic Status (not needed yet) + + //OPTIONAL: classification + if(object->classification != nullptr) { + ros_object.classification_present = true; + // iterate over sequence items + for(int j = 0; j< object->classification->list.count; j++){ + ObjectClass* obj_class = object->classification->list.array[j]; + ros_object.classification.description.push_back(utils::getROSMsgsObjectClass(obj_class)); + } + } + + // TODO:: Implement Match position (not needed yet) + + ros_cpm.cpm.cpm_parameters.perceived_object_container.container.push_back(ros_object); + } + + //Number of perceived objects + ros_cpm.cpm.cpm_parameters.number_of_perceived_objects.number_of_perceived_objects = asn_cpm->cpm.cpmParameters.numberOfPerceivedObjects; + } + // TODO: Implement + + // free memory + ASN_STRUCT_FREE(asn_DEF_CPM, asn_cpm); + asn_cpm = nullptr; + + // return converted cam + return ros_cpm; +} + +void CPMHandler::PrintCPM(){ + +} \ No newline at end of file diff --git a/src/handler/DENMHandler.cpp b/src/handler/DENMHandler.cpp new file mode 100644 index 0000000..b3d0a35 --- /dev/null +++ b/src/handler/DENMHandler.cpp @@ -0,0 +1,259 @@ + +#include "DENMHandler.h" + +#include + +#include + +extern "C" { +#include "vcits/denm/SituationContainer.h" +#include "vcits/denm/EventHistory.h" +#include "vcits/denm/EventPoint.h" + +#include "vcits/exceptions/V2XLibExceptions.h" + +#include "vcits/parser/Decoder.h" +#include "vcits/parser/Encoder.h" +} + +DENMHandler::DENMHandler(rclcpp::Node *gateway_node) + : V2XMHandler(MsgType::kDENM, gateway_node) { + + // allocate attributes + denm_ = (DENM_t *) malloc( + sizeof(DENM_t)); // we could check on nullptr ... however, if this fails, we have other problems (out of memory) + + // configure + ReadConfig(); + + // init denm structure + InitDENM(); + + // publisher + denm_pub_ = GetNode()->create_publisher("denm/received", 1); + + // subscriber +} + +DENMHandler::~DENMHandler() { + // free the denm structure + ASN_STRUCT_FREE(asn_DEF_DENM, denm_); + denm_ = nullptr; +} + +std::queue > DENMHandler::GetMessages() { + + // processing variables + rclcpp::Time current_timestamp = GetNode()->get_clock()->now(); + std::queue > denm_queue; // there may be 0..N DENMs in the queue + + // static variables + static rclcpp::Time prev_process_timestamp = current_timestamp; + + // max frequency check -> DENM specs <= 10Hz + if (GetFrequency(current_timestamp, prev_process_timestamp) <= 10.0) { + + auto &clk = *GetNode()->get_clock(); + //RCLCPP_INFO_THROTTLE(GetNode()->get_logger(), clk, DENM_DEBUG_MSG_THROTTLE_MS, + // "GetMessages(): not yet implemented for DENM"); + + // TODO implement DENM relaying, do it similar to CAM, when its changed to the Autoware interface + // TODO also think about: (i) denms being sent out multiple times with specific frequency, (ii) denms being sent out first time, (iii) multiple, different denms + // TODO -> who is the trigger, who is in control of sending ... i.e. similar with CAM sending + + prev_process_timestamp = current_timestamp; + } + + return denm_queue; +} + +void DENMHandler::PutMessages(std::queue > msgs) { + // variables + v2x_msgs::msg::DENMList denm_list; + denm_list.header.stamp = GetNode()->get_clock()->now(); + + // take each element from the incoming_queue, convert it to ROS2 format and publish + while (!msgs.empty()) { + denm_list.denms.push_back(GetROSDENM(msgs.front())); + msgs.pop(); + } + + denm_pub_->publish(denm_list); +} + +void DENMHandler::ReadConfig() { + // read configuration and set is_configured_ + + // necessary handler processing constants + GetNode()->declare_parameter("denm.active", false); + GetNode()->get_parameter("denm.active", DENM_ACTIVE); + GetNode()->declare_parameter("denm.handler_debug_msg_throttle_ms", 5000); + GetNode()->get_parameter("denm.handler_debug_msg_throttle_ms", DENM_DEBUG_MSG_THROTTLE_MS); + + if (DENM_ACTIVE) { + is_active_ = true; + + // necessary header constants + GetNode()->declare_parameter("header.station_id", 0); + GetNode()->get_parameter("header.station_id", DENM_HEADER_STATION_ID); + + // necessary DENM constants + + // constants that should be set by code + + } + + is_configured_ = true; +} + +// Callbacks + + +// DENM generation +void DENMHandler::InitDENM() { + // reset data structure + memset((void *) denm_, 0, sizeof(DENM_t)); + + // set header + denm_->header.protocolVersion = 2; // V2 is most recent CDD header Q1 2022 + denm_->header.messageID = 1; // DENM + denm_->header.stationID = DENM_HEADER_STATION_ID; + + //ManagementContainer + denm_->denm.management; //TODO WARNING: undefined parameters may lead to validation/encoding issues + + //SituationContainer + denm_->denm.situation = nullptr; // NOT SET; + + //LocationContainer + denm_->denm.location = nullptr; // NOT SET; + + //AlacarteContainer + denm_->denm.alacarte = nullptr; // NOT SET; +} + +v2x_msgs::msg::DENM DENMHandler::GetROSDENM(std::pair msg) { + // variables + v2x_msgs::msg::DENM ros_denm; + DENM_t *asn_denm = nullptr; + unsigned long tmp_timestamp; // needed for shoving ulong timestamp into int64 + + // decode + try { + asn_denm = (DENM_t *) Decoder::decode(&asn_DEF_DENM, msg.first, msg.second); + } catch (DecodingException e) { + RCLCPP_ERROR(GetNode()->get_logger(), e.what()); + RCLCPP_INFO(GetNode()->get_logger(), + "If decoding fails, we throw away everything, as we would have to check how far we were able to decode"); + } + + auto &clk = *GetNode()->get_clock(); + RCLCPP_WARN_THROTTLE(GetNode()->get_logger(), clk, DENM_DEBUG_MSG_THROTTLE_MS, + "Not all parts implemented for translation to ROS DENM! -> search for TODO"); + + // convert from asn_denm to ros_denm + //Header + ros_denm.header.protocol_version = asn_denm->header.protocolVersion; + ros_denm.header.message_id = asn_denm->header.messageID; + ros_denm.header.station_id.station_id = asn_denm->header.stationID; + + //ManagementContainer + ros_denm.denm.management.action_id.originating_station_id.station_id = asn_denm->denm.management.actionID.originatingStationID; + ros_denm.denm.management.action_id.sequence_number.sequence_number = asn_denm->denm.management.actionID.sequenceNumber; + asn_INTEGER2ulong(&(asn_denm->denm.management.detectionTime), &tmp_timestamp); + ros_denm.denm.management.detection_time.timestamp_its = tmp_timestamp; + asn_INTEGER2ulong(&(asn_denm->denm.management.referenceTime), &tmp_timestamp); + ros_denm.denm.management.detection_time.timestamp_its = tmp_timestamp; + + if (asn_denm->denm.management.termination != nullptr) { + ros_denm.denm.management.termination_present = true; + ros_denm.denm.management.termination.termination = *(asn_denm->denm.management.termination); + } + ros_denm.denm.management.event_position.latitude.latitude = asn_denm->denm.management.eventPosition.latitude; + ros_denm.denm.management.event_position.longitude.longitude = asn_denm->denm.management.eventPosition.longitude; + ros_denm.denm.management.event_position.position_confidence_ellipse.semi_major_confidence.semi_axis_length = asn_denm->denm.management.eventPosition.positionConfidenceEllipse.semiMajorConfidence; + ros_denm.denm.management.event_position.position_confidence_ellipse.semi_minor_confidence.semi_axis_length = asn_denm->denm.management.eventPosition.positionConfidenceEllipse.semiMinorConfidence; + ros_denm.denm.management.event_position.position_confidence_ellipse.semi_major_orientation.heading_value = asn_denm->denm.management.eventPosition.positionConfidenceEllipse.semiMajorOrientation; + ros_denm.denm.management.event_position.altitude.altitude_value.altitude_value = asn_denm->denm.management.eventPosition.altitude.altitudeValue; + ros_denm.denm.management.event_position.altitude.altitude_confidence.altitude_confidence = asn_denm->denm.management.eventPosition.altitude.altitudeConfidence; + if (asn_denm->denm.management.relevanceDistance != nullptr) { + ros_denm.denm.management.relevance_distance_present = true; + ros_denm.denm.management.relevance_distance.relevance_distance = *(asn_denm->denm.management.relevanceDistance); + } + if (asn_denm->denm.management.relevanceTrafficDirection != nullptr) { + ros_denm.denm.management.relevance_traffic_direction_present = true; + ros_denm.denm.management.relevance_traffic_direction.relevance_traffic_direction = *(asn_denm->denm.management.relevanceTrafficDirection); + } + if (asn_denm->denm.management.validityDuration != nullptr) { + ros_denm.denm.management.validity_duration.validity_duration = *(asn_denm->denm.management.validityDuration); + } + if (asn_denm->denm.management.transmissionInterval != nullptr) { + ros_denm.denm.management.transmission_interval_present = true; + ros_denm.denm.management.transmission_interval.transmission_interval = *(asn_denm->denm.management.transmissionInterval); + } + ros_denm.denm.management.station_type.station_type = asn_denm->denm.management.stationType; + + //SituationContainer + if (asn_denm->denm.situation != nullptr) { + ros_denm.denm.situation_present = true; + ros_denm.denm.situation.information_quality.information_quality = asn_denm->denm.situation->informationQuality; + ros_denm.denm.situation.event_type.cause_code.cause_code_type = asn_denm->denm.situation->eventType.causeCode; + ros_denm.denm.situation.event_type.sub_cause_code.sub_cause_code_type = asn_denm->denm.situation->eventType.subCauseCode; + if (asn_denm->denm.situation->linkedCause != nullptr) { + ros_denm.denm.situation.linked_cause_present = true; + ros_denm.denm.situation.linked_cause.cause_code.cause_code_type = asn_denm->denm.situation->linkedCause->causeCode; + ros_denm.denm.situation.linked_cause.sub_cause_code.sub_cause_code_type = asn_denm->denm.situation->linkedCause->subCauseCode; + } + if (asn_denm->denm.situation->eventHistory != nullptr) { + ros_denm.denm.situation.event_history_present = true; + for (int i = 0; i < asn_denm->denm.situation->eventHistory->list.count; i++) { + v2x_msgs::msg::EventPoint ep; + ep.event_position.delta_latitude.delta_latitude; + ep.event_position.delta_longitude.delta_longitude; + ep.event_position.delta_altitude.delta_altitude; + if (asn_denm->denm.situation->eventHistory->list.array[i]->eventDeltaTime != nullptr) { + ep.event_delta_time_present = true; + ep.event_delta_time.path_delta_time = *(asn_denm->denm.situation->eventHistory->list.array[i]->eventDeltaTime); + } + ep.information_quality.information_quality = asn_denm->denm.situation->eventHistory->list.array[i]->informationQuality; + ros_denm.denm.situation.event_history.history.push_back(ep); + } + } + } + + //TODO implementation of translation missing from here + //RCLCPP_INFO(GetNode()->get_logger(), "GetROSDENM not yet fully implemented -> only important parts"); + + //LocationContainer + if (false) { + ros_denm.denm.location_present = true; + } + + //AlacarteContainer + if (false) { + ros_denm.denm.alacarte_present = true; + } + + + // free memory + ASN_STRUCT_FREE(asn_DEF_DENM, asn_denm); + asn_denm = nullptr; + + // return converted denm + return ros_denm; +} + +// for debug +void DENMHandler::PrintDENM() { + std::ostringstream oss; + + oss << "--- --- --- DENM --- --- ---" << "\n"; + + oss << "DENM" << "\n"; + oss << "|-header:" << "\n"; + oss << " |-protocolVersion: " << denm_->header.protocolVersion << "\n"; + oss << " |-messageID: " << denm_->header.messageID << "\n"; + oss << " |-stationID: " << denm_->header.stationID << "\n"; + + RCLCPP_INFO(GetNode()->get_logger(), oss.str().c_str()); +} diff --git a/src/handler/ExampleMHandler.cpp b/src/handler/ExampleMHandler.cpp new file mode 100644 index 0000000..ba7f8b9 --- /dev/null +++ b/src/handler/ExampleMHandler.cpp @@ -0,0 +1,70 @@ + +#include "ExampleMHandler.h" + +ExampleMHandler::ExampleMHandler(rclcpp::Node *gateway_node) + : V2XMHandler(MsgType::kNone, gateway_node) { + + // configure + ReadConfig(); + + // publisher + + // subscriber +} + +ExampleMHandler::~ExampleMHandler() {} + +std::queue> ExampleMHandler::GetMessages() { + + // processing variables + rclcpp::Time current_timestamp = GetNode()->get_clock()->now(); + std::queue> examplem_queue; // depending on message type, there may be 0..N messages in the queue + + // static variables + static rclcpp::Time prev_process_timestamp = current_timestamp; + + // max frequency check -> ExampleM specs <= 1Hz + if(GetFrequency(current_timestamp, prev_process_timestamp) <= 1.0) { + + auto& clk = *GetNode()->get_clock(); + RCLCPP_WARN_THROTTLE(GetNode()->get_logger(), clk, EXAMPLEM_DEBUG_MSG_THROTTLE_MS, + "GetMessages(): not yet implemented for ExampleM -> throwing \"Not Implemented\""); + + throw "NotImplemented"; + + prev_process_timestamp = current_timestamp; + } + + return examplem_queue; +} + +void ExampleMHandler::PutMessages(std::queue> msgs) { + // take each element from the incoming_queue, convert it to ROS2 format and publish + RCLCPP_WARN(GetNode()->get_logger(), "PutMessages(): not yet implemented for ExampleM -> throwing \"Not Implemented\""); + + auto& clk = *GetNode()->get_clock(); + RCLCPP_WARN_THROTTLE(GetNode()->get_logger(), clk, EXAMPLEM_DEBUG_MSG_THROTTLE_MS, + "PutMessages(): not yet implemented for ExampleM -> throwing \"Not Implemented\""); + + throw "NotImplemented"; +} + +void ExampleMHandler::ReadConfig() { + // read configuration and set is_configured_ + + // necessary handler processing constants + GetNode()->declare_parameter("examplem.active", false); + GetNode()->get_parameter("examplem.active", EXAMPLEM_ACTIVE); + GetNode()->declare_parameter("examplem.handler_debug_msg_throttle_ms", 5000); + GetNode()->get_parameter("examplem.handler_debug_msg_throttle_ms", EXAMPLEM_DEBUG_MSG_THROTTLE_MS); + + if(EXAMPLEM_ACTIVE) { + is_active_ = true; + + // implement configuration! + RCLCPP_ERROR(GetNode()->get_logger(), "Configuration not yet implemented for ExampleM"); + throw "NotImplemented"; + } + + is_configured_ = true; +} diff --git a/src/handler/V2XMHandler.cpp b/src/handler/V2XMHandler.cpp new file mode 100644 index 0000000..cb71186 --- /dev/null +++ b/src/handler/V2XMHandler.cpp @@ -0,0 +1,76 @@ + +#include "V2XMHandler.h" + +extern "C" { +#include "vcits/cam/ItsPduHeader.h" + +#include "vcits/exceptions/V2XLibExceptions.h" + +#include "vcits/parser/Decoder.h" +} + +V2XMHandler::V2XMHandler(MsgType msg_type = MsgType::kNone, rclcpp::Node *gateway_node = nullptr) { + // params + msg_type_ = msg_type; + gateway_node_ = gateway_node; + + // init + is_active_ = false; + is_configured_ = false; +} + +V2XMHandler::~V2XMHandler() {} + +// public methods +MsgType V2XMHandler::GetMessageType(std::pair msg){ + MsgType msg_type = MsgType::kNone; + ItsPduHeader_t *its_pdu_header = nullptr; + + try { + its_pdu_header = (ItsPduHeader_t *) Decoder::decode(&asn_DEF_ItsPduHeader, msg.first, msg.second); + + msg_type = MsgType(its_pdu_header->messageID); + + ASN_STRUCT_FREE(asn_DEF_ItsPduHeader, its_pdu_header); + its_pdu_header = nullptr; + } catch (DecodingException e) { + RCLCPP_INFO(GetNode()->get_logger(), e.what()); + } + return msg_type; +} + +// protected methods +uint64_t V2XMHandler::GetGenerationDeltaTime() { + rclcpp::Time current_time = gateway_node_->get_clock()->now(); + uint64_t current_epoch_ms = (current_time.nanoseconds() / 1000) / 1000; + + return GetGenerationDeltaTime(current_epoch_ms); +} + +uint64_t V2XMHandler::GetGenerationDeltaTime(uint64_t milliseconds) { +// ETSI EN 302 637-2 V1.3.1 (Annex B3) +// - Time corresponding to the time of the reference position in the CAM, considered as time of the CAM generation. +// -> meaning the timestamp of the situation, i.e., the exact time matching the GPS position, when the CAM was generated +// -> in other words: the timestamp matching the GPS position +// - calculation: generationDeltaTime = TimestampIts mod 65 536 +// -> TimestampIts represents an integer value in milliseconds since 2004-01-01T00:00:00:000Z as defined in ETSI TS 102 894-2 [2]. +// ... TimestampIts = zulu_time_now - 2004-01-01T00:00:00:000Z + rclcpp::Time current_time = gateway_node_->get_clock()->now(); + uint64_t current_epoch_ms = (current_time.nanoseconds() / 1000) / 1000; + uint64_t its_time_ms = 1072915200; // time to ITS time since epoch in MS https://www.epochconverter.com/ + + if (current_epoch_ms < its_time_ms) + std::cout << "ros epoch time should not be smaller than 2004! bad things will happen now!" << std::endl; + + uint64_t timestamp_its = current_epoch_ms - its_time_ms; + + return timestamp_its % 65536; +} + +rclcpp::Node *V2XMHandler::GetNode() { + return gateway_node_; +} + +double V2XMHandler::GetFrequency(rclcpp::Time A, rclcpp::Time B) { + return (1.0/abs((A - B).seconds())); +} \ No newline at end of file diff --git a/src/server/V2XServer.cpp b/src/server/V2XServer.cpp new file mode 100644 index 0000000..0ffdd17 --- /dev/null +++ b/src/server/V2XServer.cpp @@ -0,0 +1,102 @@ +#include //hostent +#include + +#include "V2XServer.h" + +V2XServer::V2XServer(rclcpp::Node *gateway_node, std::map v2x_m_handler) { + // params + gateway_node_ = gateway_node; + v2x_m_handler_ = v2x_m_handler; + + // init + is_active_ = false; + is_configured_ = false; + is_connected_ = false; + + // init client status + client_received_messages_ = 0; + client_sent_messages_ = 0; + client_last_message_received_ = rclcpp::Time(0); + client_last_message_sent_ = rclcpp::Time(0); + + // init server status + server_heartbeat_counter_ = 0; + server_received_messages_ = 0; + server_sent_messages_ = 0; + client_last_message_received_ = rclcpp::Time(0); + client_last_message_sent_ = rclcpp::Time(0); +} + +V2XServer::~V2XServer() {} + + +rclcpp::Node *V2XServer::GetNode() { + return gateway_node_; +} + +void V2XServer::Process(void) { + // first receive, then send + + // receive all messages + std::queue > incoming = ReceiveMessages(); + if (v2x_m_handler_.size() == 0) { + RCLCPP_ERROR(GetNode()->get_logger(), "Configuration error! There are no handlers for messages. This will crash!"); + } + if (v2x_m_handler_.count(MsgType::kNone) != 1) { + RCLCPP_ERROR(GetNode()->get_logger(), "Configuration error! Please add the MsgType::kNone handler to be used for decoding"); + } + + // handle each incoming message + std::map>> msg_mapping; + MsgType msg_type = MsgType::kNone; + while (!incoming.empty()) { + std::pair msg = incoming.front(); + msg_type = v2x_m_handler_[MsgType::kNone]->GetMessageType(msg); + msg_mapping[msg_type].push(msg); + incoming.pop(); + } + for (auto const& elem : msg_mapping) { + try { + v2x_m_handler_[elem.first]->PutMessages(elem.second); + } catch (...) { + // most likely a segfault because elem.first does not exist vof v2x_m_handler + RCLCPP_FATAL(GetNode()->get_logger(), ("Unstable Situation: Configuration error! Please add the MsgType::int(" + std::to_string(static_cast(elem.first)) + ") handler to be used for decoding.").c_str()); + } + } + + // collect outgoing messages + std::queue > outgoing; + for (auto const& handler : v2x_m_handler_) { + if(handler.first != MsgType::kNone) { + std::queue > msgs_to_send = handler.second->GetMessages(); + while (!msgs_to_send.empty()) { + outgoing.push(msgs_to_send.front()); + msgs_to_send.pop(); + } + } + } + SendMessages(outgoing); +} + +std::string V2XServer::GetIPAddressFromHostname(std::string hostname) +{ + struct hostent *hostent_struct; + struct in_addr **addr_list; + + std::string ip_address = ""; + + if( (hostent_struct = gethostbyname( hostname.c_str()) ) != NULL) { + addr_list = (struct in_addr **) hostent_struct->h_addr_list; + if( addr_list[0] != NULL) { + ip_address = std::string( inet_ntoa(*addr_list[0]) ); + } + } + + return ip_address; +} + +bool V2XServer::VerifyIPv4Address(std::string ip_address) { + struct sockaddr_in socket_address; + + return inet_pton(AF_INET, ip_address.c_str(), &(socket_address)) == 1; +} \ No newline at end of file diff --git a/src/server/V2XZMQServer.cpp b/src/server/V2XZMQServer.cpp new file mode 100644 index 0000000..dfa581c --- /dev/null +++ b/src/server/V2XZMQServer.cpp @@ -0,0 +1,225 @@ + +#include "V2XZMQServer.h" + +V2XZMQServer::V2XZMQServer(rclcpp::Node *gateway_node, std::map v2x_m_handler) + : V2XServer(gateway_node, v2x_m_handler) { + + // attributes + std::string server_ip_address; + + // configure + ReadConfig(); + + // get/verify server ip address + if(VerifyIPv4Address(SERVER_ADDRESS)) { + server_ip_address = SERVER_ADDRESS; + RCLCPP_INFO(GetNode()->get_logger(), "Got %s as server address. Verified as IPv4 address", SERVER_ADDRESS.c_str()); + } + else { + server_ip_address = GetIPAddressFromHostname(SERVER_ADDRESS); + if(VerifyIPv4Address(server_ip_address)) + RCLCPP_INFO(GetNode()->get_logger(), "Got %s as server address. Using %s as IPv4 address.", SERVER_ADDRESS.c_str(), server_ip_address.c_str()); + else + RCLCPP_WARN(GetNode()->get_logger(), "Got %s as server address. Cannot be translated to IPv4 address. Might not connect ...", SERVER_ADDRESS.c_str()); + } + + // create ZMQ context + zmq_context_ = new zmq::context_t(1); + + // create ZMQ sockets + zmq_recv_socket_ = new zmq::socket_t(*zmq_context_, ZMQ_SUB); + zmq_snd_socket_ = new zmq::socket_t(*zmq_context_, ZMQ_PUB); + + // connect ZMQ sockets + std::string zmq_recv_connect_string; + std::string zmq_snd_connect_string; + zmq_recv_connect_string.append("tcp://"); + zmq_snd_connect_string.append("tcp://"); + zmq_recv_connect_string.append(server_ip_address); + zmq_snd_connect_string.append(server_ip_address); + zmq_recv_connect_string.append(":"); + zmq_snd_connect_string.append(":"); + zmq_recv_connect_string.append(std::to_string(SERVER_RECEIVE_PORT)); + zmq_snd_connect_string.append(std::to_string(SERVER_SEND_PORT)); + + RCLCPP_INFO(GetNode()->get_logger(), "V2XZMQServer receiver connecting to %s", zmq_recv_connect_string.c_str()); + zmq_recv_socket_->connect(zmq_recv_connect_string); + RCLCPP_INFO(GetNode()->get_logger(), "V2XZMQServer sender connecting to %s", zmq_snd_connect_string.c_str()); + zmq_snd_socket_->connect(zmq_snd_connect_string); + is_connected_ = true; + + // set ZMQ socket options + zmq_recv_socket_->set(zmq::sockopt::subscribe, SERVER_TOPIC_FILTER); + + // create timers + timer_ = rclcpp::create_timer(GetNode(), GetNode()->get_clock(), + rclcpp::Duration::from_nanoseconds(RCL_MS_TO_NS(SERVER_CYCLE_TIME_MS)), + std::bind(&V2XZMQServer::Process, this)); +} + +V2XZMQServer::~V2XZMQServer() { + + // delete ZMQ sockets + delete zmq_snd_socket_; + delete zmq_recv_socket_; + + // delete ZMQ context + delete zmq_context_; +} + +bool V2XZMQServer::IsAlive() { + RCLCPP_ERROR(GetNode()->get_logger(), "V2XZMQServer::IsAlive() not yet implemented"); + throw "NotImplemented"; + + return false; +} + +std::vector V2XZMQServer::GetDiagnostics() { + std::vector values; + diagnostic_msgs::msg::KeyValue key_value; + + // status - general + key_value.key = "v2x_server.is_active"; + key_value.value = std::to_string(is_active_); + values.push_back(key_value); + key_value.key = "v2x_server.is_configured_"; + key_value.value = std::to_string(is_configured_); + values.push_back(key_value); + key_value.key = "v2x_server.is_connected_"; + key_value.value = std::to_string(is_connected_); + values.push_back(key_value); + + // status - client + key_value.key = "v2x_server.client_received_messages_"; + key_value.value = std::to_string(client_received_messages_); + values.push_back(key_value); + key_value.key = "v2x_server.client_sent_messages_"; + key_value.value = std::to_string(client_sent_messages_); + values.push_back(key_value); + key_value.key = "v2x_server.client_last_message_received_"; + key_value.value = std::to_string(client_last_message_received_.nanoseconds()); + values.push_back(key_value); + key_value.key = "v2x_server.client_last_message_sent_"; + key_value.value = std::to_string(client_last_message_sent_.nanoseconds()); + values.push_back(key_value); + + // status - server + key_value.key = "v2x_server.server_heartbeat_counter_"; + key_value.value = std::to_string(server_heartbeat_counter_); + values.push_back(key_value); + key_value.key = "v2x_server.server_received_messages_"; + key_value.value = std::to_string(server_received_messages_); + values.push_back(key_value); + key_value.key = "v2x_server.server_sent_messages_"; + key_value.value = std::to_string(server_sent_messages_); + values.push_back(key_value); + key_value.key = "v2x_server.server_last_message_received_"; + key_value.value = std::to_string(server_last_message_received_.nanoseconds()); + values.push_back(key_value); + key_value.key = "v2x_server.server_last_message_sent_"; + key_value.value = std::to_string(server_last_message_sent_.nanoseconds()); + values.push_back(key_value); + + return values; +} + +std::queue > V2XZMQServer::ReceiveMessages() { + + // variables + bool isReceivingMessages = true; + std::queue > msgs; + zmq::message_t topic; + zmq::message_t msg; + + // receive topic and msg + while (isReceivingMessages) { + if (zmq_recv_socket_->recv(topic, zmq::recv_flags::dontwait)) { + isReceivingMessages = true; + + if (zmq_recv_socket_->recv(msg, zmq::recv_flags::dontwait)) { + // expect: a raw VIF container message + // topic string can be checked for other applications + // std::string topic_string = std::string(static_cast(topic.data()), topic.size()); + + // get memory for msg + unsigned char *msg_cpy = nullptr; + msg_cpy = (unsigned char *) malloc(sizeof(unsigned char) * msg.size()); + if (msg_cpy == nullptr) { + // if we are out of memory here, there are bigger problems ... just return and crash ... or so ... + return msgs; + } + + // copy message + memcpy(msg_cpy, msg.data(), msg.size()); + + // store message + msgs.push(std::make_pair(msg_cpy, msg.size())); + + // update counter + client_received_messages_++; + client_last_message_received_ = GetNode()->get_clock()->now(); + } else { + //something is wrong ... zmq broken ... will most likely crash at some point + } + } else { + isReceivingMessages = false; + } + } + + return msgs; +} + +void V2XZMQServer::SendMessages(std::queue > msgs) { + //variables + zmq::message_t topic(SERVER_TOPIC_FILTER); + zmq::message_t msg; + + while (!msgs.empty()) { + // create v2x_msg + msg = zmq::message_t(msgs.front().first, msgs.front().second); + + // free memory of msg + free(msgs.front().first); + + // pop msg from queue + msgs.pop(); + + // topic may be extended with message type: currently "v2x.", better: "v2x.cam.", "v2x.denm.", etc. + topic = zmq::message_t(SERVER_TOPIC_FILTER); + + + // send msg + zmq_snd_socket_->send(topic, zmq::send_flags::sndmore); + zmq_snd_socket_->send(msg, zmq::send_flags::none); + + // update counter + client_sent_messages_++; + client_last_message_sent_ = GetNode()->get_clock()->now(); + } + +} + +// --- --- --- protected methods --- --- --- + +void V2XZMQServer::ReadConfig() { + // read configuration and set is_configured_ + GetNode()->declare_parameter("server.type", "none"); + GetNode()->get_parameter("server.type", SERVER_TYPE); + + if (SERVER_TYPE.compare("zmq") == 0) { + is_active_ = true; + + GetNode()->declare_parameter("server.address", "not set"); + GetNode()->get_parameter("server.address", SERVER_ADDRESS); + GetNode()->declare_parameter("server.receive_port", 0); + GetNode()->get_parameter("server.receive_port", SERVER_RECEIVE_PORT); + GetNode()->declare_parameter("server.send_port", 0); + GetNode()->get_parameter("server.send_port", SERVER_SEND_PORT); + GetNode()->declare_parameter("server.topic_filter", "v2x."); + GetNode()->get_parameter("server.topic_filter", SERVER_TOPIC_FILTER); + GetNode()->declare_parameter("server.cycle_time_ms", 100); + GetNode()->get_parameter("server.cycle_time_ms", SERVER_CYCLE_TIME_MS); + } + + is_configured_ = true; +} \ No newline at end of file diff --git a/vcits/CMakeLists.txt b/vcits/CMakeLists.txt new file mode 100644 index 0000000..e4afbd2 --- /dev/null +++ b/vcits/CMakeLists.txt @@ -0,0 +1,54 @@ +# This file is auto-generated by command-cxx.sh +cmake_minimum_required(VERSION 3.9) + +message(STATUS "--> Configure build of vcits") + + +project(vcits VERSION 0.2 DESCRIPTION "VIF ITS Library") + +add_subdirectory(asn1c) +add_subdirectory(cam) +add_subdirectory(cpm) +add_subdirectory(denm) +add_subdirectory(exceptions) +add_subdirectory(ivim) +add_subdirectory(mapem) +add_subdirectory(parser) +add_subdirectory(rtcmem) +add_subdirectory(spatem) +add_subdirectory(srem) +add_subdirectory(ssem) +add_subdirectory(vccontainer) + +add_library(vcits INTERFACE) +# old CMake versions +#add_library(vcits SHARED "") + +# not supported for INTERFACE +#set_target_properties(vcits PROPERTIES +#LINKER_LANGUAGE CXX +#COMPILE_FLAGS "-std=gnu99 -Wall -Wextra" +#LINK_FLAGS "-std=gnu99 -Wall -Wextra" +#) + +# not supported for INTERFACE +#set_target_properties(vcits PROPERTIES VERSION ${PROJECT_VERSION}) + +target_link_libraries(vcits INTERFACE +vcits-asn1c +vcits-cam +vcits-cpm +vcits-denm +vcits-exceptions +vcits-ivim +vcits-mapem +vcits-parser +vcits-rtcmem +vcits-spatem +vcits-srem +vcits-ssem +vcits-vccontainer +) + +message(STATUS "--> Configure build of vcits - done") + diff --git a/vcits/asn1c/ANY.h b/vcits/asn1c/ANY.h new file mode 100644 index 0000000..b30381f --- /dev/null +++ b/vcits/asn1c/ANY.h @@ -0,0 +1,65 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_TYPE_ANY_H +#define ASN_TYPE_ANY_H + +#include /* Implemented via OCTET STRING type */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ANY { + uint8_t *buf; /* BER-encoded ANY contents */ + int size; /* Size of the above buffer */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} ANY_t; + +extern asn_TYPE_descriptor_t asn_DEF_ANY; +extern asn_TYPE_operation_t asn_OP_ANY; +extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs; + +asn_struct_free_f ANY_free; +asn_struct_print_f ANY_print; +ber_type_decoder_f ANY_decode_ber; +der_type_encoder_f ANY_encode_der; +xer_type_encoder_f ANY_encode_xer; +per_type_decoder_f ANY_decode_uper; +per_type_encoder_f ANY_encode_uper; +per_type_decoder_f ANY_decode_aper; +per_type_encoder_f ANY_encode_aper; + +#define ANY_free OCTET_STRING_free +#define ANY_print OCTET_STRING_print +#define ANY_compare OCTET_STRING_compare +#define ANY_constraint asn_generic_no_constraint +#define ANY_decode_ber OCTET_STRING_decode_ber +#define ANY_encode_der OCTET_STRING_encode_der +#define ANY_decode_xer OCTET_STRING_decode_xer_hex + +/****************************** + * Handy conversion routines. * + ******************************/ + +/* Convert another ASN.1 type into the ANY. This implies DER encoding. */ +int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr); +int ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr); +ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr); +ANY_t *ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr); + +/* Convert the contents of the ANY type into the specified type. */ +int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); +int ANY_to_type_aper(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); + +#define ANY_fromBuf(s, buf, size) OCTET_STRING_fromBuf((s), (buf), (size)) +#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf( \ + &asn_DEF_ANY, (buf), (size)) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_TYPE_ANY_H */ diff --git a/vcits/asn1c/BIT_STRING.h b/vcits/asn1c/BIT_STRING.h new file mode 100644 index 0000000..c1bdbbc --- /dev/null +++ b/vcits/asn1c/BIT_STRING.h @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BIT_STRING_H_ +#define _BIT_STRING_H_ + +#include /* Some help from OCTET STRING */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct BIT_STRING_s { + uint8_t *buf; /* BIT STRING body */ + size_t size; /* Size of the above buffer */ + + int bits_unused;/* Unused trailing bits in the last octet (0..7) */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} BIT_STRING_t; + +extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING; +extern asn_TYPE_operation_t asn_OP_BIT_STRING; +extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs; + +asn_struct_print_f BIT_STRING_print; /* Human-readable output */ +asn_struct_compare_f BIT_STRING_compare; +asn_constr_check_f BIT_STRING_constraint; +xer_type_encoder_f BIT_STRING_encode_xer; +oer_type_decoder_f BIT_STRING_decode_oer; +oer_type_encoder_f BIT_STRING_encode_oer; +per_type_decoder_f BIT_STRING_decode_uper; +per_type_encoder_f BIT_STRING_encode_uper; +asn_random_fill_f BIT_STRING_random_fill; + +#define BIT_STRING_free OCTET_STRING_free +#define BIT_STRING_decode_ber OCTET_STRING_decode_ber +#define BIT_STRING_encode_der OCTET_STRING_encode_der +#define BIT_STRING_decode_xer OCTET_STRING_decode_xer_binary +#define BIT_STRING_decode_aper OCTET_STRING_decode_aper +#define BIT_STRING_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _BIT_STRING_H_ */ diff --git a/vcits/asn1c/BMPString.h b/vcits/asn1c/BMPString.h new file mode 100644 index 0000000..af14588 --- /dev/null +++ b/vcits/asn1c/BMPString.h @@ -0,0 +1,39 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BMPString_H_ +#define _BMPString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t BMPString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_BMPString; +extern asn_TYPE_operation_t asn_OP_BMPString; +extern asn_OCTET_STRING_specifics_t asn_SPC_BMPString_specs; + +asn_struct_print_f BMPString_print; /* Human-readable output */ +asn_constr_check_f BMPString_constraint; +xer_type_decoder_f BMPString_decode_xer; +xer_type_encoder_f BMPString_encode_xer; + +#define BMPString_free OCTET_STRING_free +#define BMPString_print BMPString_print +#define BMPString_compare OCTET_STRING_compare +#define BMPString_decode_ber OCTET_STRING_decode_ber +#define BMPString_encode_der OCTET_STRING_encode_der +#define BMPString_decode_uper OCTET_STRING_decode_uper +#define BMPString_encode_uper OCTET_STRING_encode_uper +#define BMPString_decode_aper OCTET_STRING_decode_aper +#define BMPString_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _BMPString_H_ */ diff --git a/vcits/asn1c/BOOLEAN.h b/vcits/asn1c/BOOLEAN.h new file mode 100644 index 0000000..620acf7 --- /dev/null +++ b/vcits/asn1c/BOOLEAN.h @@ -0,0 +1,45 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BOOLEAN_H_ +#define _BOOLEAN_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The underlying integer may contain various values, but everything + * non-zero is capped to 0xff by the DER encoder. The BER decoder may + * yield non-zero values different from 1, beware. + */ +typedef int BOOLEAN_t; + +extern asn_TYPE_descriptor_t asn_DEF_BOOLEAN; +extern asn_TYPE_operation_t asn_OP_BOOLEAN; + +asn_struct_free_f BOOLEAN_free; +asn_struct_print_f BOOLEAN_print; +asn_struct_compare_f BOOLEAN_compare; +ber_type_decoder_f BOOLEAN_decode_ber; +der_type_encoder_f BOOLEAN_encode_der; +oer_type_decoder_f BOOLEAN_decode_oer; +oer_type_encoder_f BOOLEAN_encode_oer; +per_type_decoder_f BOOLEAN_decode_uper; +per_type_encoder_f BOOLEAN_encode_uper; +per_type_decoder_f BOOLEAN_decode_aper; +per_type_encoder_f BOOLEAN_encode_aper; +xer_type_decoder_f BOOLEAN_decode_xer; +xer_type_encoder_f BOOLEAN_encode_xer; +asn_random_fill_f BOOLEAN_random_fill; + +#define BOOLEAN_constraint asn_generic_no_constraint + +#ifdef __cplusplus +} +#endif + +#endif /* _BOOLEAN_H_ */ diff --git a/vcits/asn1c/CMakeLists.txt b/vcits/asn1c/CMakeLists.txt new file mode 100644 index 0000000..d31d85c --- /dev/null +++ b/vcits/asn1c/CMakeLists.txt @@ -0,0 +1,84 @@ +# This file is auto-generated by command-cxx.sh +cmake_minimum_required(VERSION 3.9) + +message(STATUS "--> Configure build of |-vcits-asn1c") + +project(vcits-asn1c VERSION 0.2 DESCRIPTION "asn1c part of vcits") + +add_library(vcits-asn1c STATIC +src/ANY.c +src/BIT_STRING.c +src/BIT_STRING_oer.c +src/BMPString.c +src/BOOLEAN.c +src/ENUMERATED.c +src/GeneralString.c +src/GeneralizedTime.c +src/GraphicString.c +src/IA5String.c +src/INTEGER.c +src/INTEGER_oer.c +src/ISO646String.c +src/NULL.c +src/NativeEnumerated.c +src/NativeEnumerated_oer.c +src/NativeInteger.c +src/NativeInteger_oer.c +src/NativeReal.c +src/NumericString.c +src/OBJECT_IDENTIFIER.c +src/OCTET_STRING.c +src/OCTET_STRING_oer.c +src/OPEN_TYPE.c +src/OPEN_TYPE_oer.c +src/ObjectDescriptor.c +src/PrintableString.c +src/REAL.c +src/RELATIVE-OID.c +src/T61String.c +src/TeletexString.c +src/UTCTime.c +src/UTF8String.c +src/UniversalString.c +src/VideotexString.c +src/VisibleString.c +src/asn_SEQUENCE_OF.c +src/asn_SET_OF.c +src/asn_application.c +src/asn_bit_data.c +src/asn_codecs_prim.c +src/asn_internal.c +src/asn_random_fill.c +src/ber_decoder.c +src/ber_tlv_length.c +src/ber_tlv_tag.c +src/constr_CHOICE.c +src/constr_CHOICE_oer.c +src/constr_SEQUENCE.c +src/constr_SEQUENCE_OF.c +src/constr_SEQUENCE_oer.c +src/constr_SET.c +src/constr_SET_OF.c +src/constr_SET_OF_oer.c +src/constr_TYPE.c +src/constraints.c +src/der_encoder.c +src/oer_decoder.c +src/oer_encoder.c +src/oer_support.c +src/per_decoder.c +src/per_encoder.c +src/per_opentype.c +src/per_support.c +src/xer_decoder.c +src/xer_encoder.c +src/xer_support.c +) + +set_target_properties(vcits-asn1c PROPERTIES VERSION ${PROJECT_VERSION}) + +target_include_directories(vcits-asn1c PRIVATE .) +target_include_directories(vcits-asn1c PRIVATE ../asn1c) + +message(STATUS "--> Configure build of |-vcits-asn1c - done") + diff --git a/vcits/asn1c/ENUMERATED.h b/vcits/asn1c/ENUMERATED.h new file mode 100644 index 0000000..8fd04de --- /dev/null +++ b/vcits/asn1c/ENUMERATED.h @@ -0,0 +1,40 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _ENUMERATED_H_ +#define _ENUMERATED_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef INTEGER_t ENUMERATED_t; /* Implemented via INTEGER */ + +extern asn_TYPE_descriptor_t asn_DEF_ENUMERATED; +extern asn_TYPE_operation_t asn_OP_ENUMERATED; + +oer_type_decoder_f ENUMERATED_decode_oer; +oer_type_encoder_f ENUMERATED_encode_oer; +per_type_decoder_f ENUMERATED_decode_uper; +per_type_encoder_f ENUMERATED_encode_uper; +per_type_decoder_f ENUMERATED_decode_aper; +per_type_encoder_f ENUMERATED_encode_aper; + +#define ENUMERATED_free ASN__PRIMITIVE_TYPE_free +#define ENUMERATED_print INTEGER_print +#define ENUMERATED_compare INTEGER_compare +#define ENUMERATED_constraint asn_generic_no_constraint +#define ENUMERATED_decode_ber ber_decode_primitive +#define ENUMERATED_encode_der INTEGER_encode_der +#define ENUMERATED_decode_xer INTEGER_decode_xer +#define ENUMERATED_encode_xer INTEGER_encode_xer +#define ENUMERATED_random_fill INTEGER_random_fill + +#ifdef __cplusplus +} +#endif + +#endif /* _ENUMERATED_H_ */ diff --git a/vcits/asn1c/GeneralString.h b/vcits/asn1c/GeneralString.h new file mode 100644 index 0000000..fb5de1c --- /dev/null +++ b/vcits/asn1c/GeneralString.h @@ -0,0 +1,36 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _GeneralString_H_ +#define _GeneralString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t GeneralString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_GeneralString; +extern asn_TYPE_operation_t asn_OP_GeneralString; + +#define GeneralString_free OCTET_STRING_free +#define GeneralString_print OCTET_STRING_print +#define GeneralString_compare OCTET_STRING_compare +#define GeneralString_constraint asn_generic_unknown_constraint +#define GeneralString_decode_ber OCTET_STRING_decode_ber +#define GeneralString_encode_der OCTET_STRING_encode_der +#define GeneralString_decode_xer OCTET_STRING_decode_xer_hex +#define GeneralString_encode_xer OCTET_STRING_encode_xer +#define GeneralString_decode_uper OCTET_STRING_decode_uper +#define GeneralString_encode_uper OCTET_STRING_encode_uper +#define GeneralString_decode_aper OCTET_STRING_decode_aper +#define GeneralString_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _GeneralString_H_ */ diff --git a/vcits/asn1c/GeneralizedTime.h b/vcits/asn1c/GeneralizedTime.h new file mode 100644 index 0000000..02bffe0 --- /dev/null +++ b/vcits/asn1c/GeneralizedTime.h @@ -0,0 +1,80 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _GeneralizedTime_H_ +#define _GeneralizedTime_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t GeneralizedTime_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_GeneralizedTime; +extern asn_TYPE_operation_t asn_OP_GeneralizedTime; + +asn_struct_print_f GeneralizedTime_print; +asn_struct_compare_f GeneralizedTime_compare; +asn_constr_check_f GeneralizedTime_constraint; +der_type_encoder_f GeneralizedTime_encode_der; +xer_type_encoder_f GeneralizedTime_encode_xer; +asn_random_fill_f GeneralizedTime_random_fill; + +#define GeneralizedTime_free OCTET_STRING_free +#define GeneralizedTime_decode_ber OCTET_STRING_decode_ber +#define GeneralizedTime_decode_xer OCTET_STRING_decode_xer_utf8 +#define GeneralizedTime_decode_uper OCTET_STRING_decode_uper +#define GeneralizedTime_encode_uper OCTET_STRING_encode_uper +#define GeneralizedTime_decode_aper OCTET_STRING_decode_aper +#define GeneralizedTime_encode_aper OCTET_STRING_encode_aper + +/*********************** + * Some handy helpers. * + ***********************/ + +struct tm; /* */ + +/* + * Convert a GeneralizedTime structure into time_t + * and optionally into struct tm. + * If as_gmt is given, the resulting _optional_tm4fill will have a GMT zone, + * instead of default local one. + * On error returns -1 and errno set to EINVAL + */ +time_t asn_GT2time(const GeneralizedTime_t *, struct tm *_optional_tm4fill, + int as_gmt); + +/* A version of the above function also returning the fractions of seconds */ +time_t asn_GT2time_frac(const GeneralizedTime_t *, + int *frac_value, int *frac_digits, /* (value / (10 ^ digits)) */ + struct tm *_optional_tm4fill, int as_gmt); + +/* + * Another version returning fractions with defined precision + * For example, parsing of the time ending with ".1" seconds + * with frac_digits=3 (msec) would yield frac_value = 100. + */ +time_t asn_GT2time_prec(const GeneralizedTime_t *, + int *frac_value, int frac_digits, + struct tm *_optional_tm4fill, int as_gmt); + +/* + * Convert a struct tm into GeneralizedTime. + * If _optional_gt is not given, this function will try to allocate one. + * If force_gmt is given, the resulting GeneralizedTime will be forced + * into a GMT time zone (encoding ends with a "Z"). + * On error, this function returns 0 and sets errno. + */ +GeneralizedTime_t *asn_time2GT(GeneralizedTime_t *_optional_gt, + const struct tm *, int force_gmt); +GeneralizedTime_t *asn_time2GT_frac(GeneralizedTime_t *_optional_gt, + const struct tm *, int frac_value, int frac_digits, int force_gmt); + +#ifdef __cplusplus +} +#endif + +#endif /* _GeneralizedTime_H_ */ diff --git a/vcits/asn1c/GraphicString.h b/vcits/asn1c/GraphicString.h new file mode 100644 index 0000000..19cac68 --- /dev/null +++ b/vcits/asn1c/GraphicString.h @@ -0,0 +1,36 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _GraphicString_H_ +#define _GraphicString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t GraphicString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_GraphicString; +extern asn_TYPE_operation_t asn_OP_GraphicString; + +#define GraphicString_free OCTET_STRING_free +#define GraphicString_print OCTET_STRING_print +#define GraphicString_compare OCTET_STRING_compare +#define GraphicString_constraint asn_generic_unknown_constraint +#define GraphicString_decode_ber OCTET_STRING_decode_ber +#define GraphicString_encode_der OCTET_STRING_encode_der +#define GraphicString_decode_xer OCTET_STRING_decode_xer_hex +#define GraphicString_encode_xer OCTET_STRING_encode_xer +#define GraphicString_decode_uper OCTET_STRING_decode_uper +#define GraphicString_encode_uper OCTET_STRING_encode_uper +#define GraphicString_decode_aper OCTET_STRING_decode_aper +#define GraphicString_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _GraphicString_H_ */ diff --git a/vcits/asn1c/IA5String.h b/vcits/asn1c/IA5String.h new file mode 100644 index 0000000..321f0c7 --- /dev/null +++ b/vcits/asn1c/IA5String.h @@ -0,0 +1,40 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _IA5String_H_ +#define _IA5String_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t IA5String_t; /* Implemented via OCTET STRING */ + +/* + * IA5String ASN.1 type definition. + */ +extern asn_TYPE_descriptor_t asn_DEF_IA5String; +extern asn_TYPE_operation_t asn_OP_IA5String; + +asn_constr_check_f IA5String_constraint; + +#define IA5String_free OCTET_STRING_free +#define IA5String_print OCTET_STRING_print_utf8 +#define IA5String_compare OCTET_STRING_compare +#define IA5String_decode_ber OCTET_STRING_decode_ber +#define IA5String_encode_der OCTET_STRING_encode_der +#define IA5String_decode_xer OCTET_STRING_decode_xer_utf8 +#define IA5String_encode_xer OCTET_STRING_encode_xer_utf8 +#define IA5String_decode_uper OCTET_STRING_decode_uper +#define IA5String_encode_uper OCTET_STRING_encode_uper +#define IA5String_decode_aper OCTET_STRING_decode_aper +#define IA5String_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _IA5String_H_ */ diff --git a/vcits/asn1c/INTEGER.h b/vcits/asn1c/INTEGER.h new file mode 100644 index 0000000..f776c07 --- /dev/null +++ b/vcits/asn1c/INTEGER.h @@ -0,0 +1,108 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _INTEGER_H_ +#define _INTEGER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef ASN__PRIMITIVE_TYPE_t INTEGER_t; + +extern asn_TYPE_descriptor_t asn_DEF_INTEGER; +extern asn_TYPE_operation_t asn_OP_INTEGER; + +/* Map with to integer value association */ +typedef struct asn_INTEGER_enum_map_s { + long nat_value; /* associated native integer value */ + size_t enum_len; /* strlen("tag") */ + const char *enum_name; /* "tag" */ +} asn_INTEGER_enum_map_t; + +/* This type describes an enumeration for INTEGER and ENUMERATED types */ +typedef struct asn_INTEGER_specifics_s { + const asn_INTEGER_enum_map_t *value2enum; /* N -> "tag"; sorted by N */ + const unsigned int *enum2value; /* "tag" => N; sorted by tag */ + int map_count; /* Elements in either map */ + int extension; /* This map is extensible */ + int strict_enumeration; /* Enumeration set is fixed */ + int field_width; /* Size of native integer */ + int field_unsigned; /* Signed=0, unsigned=1 */ +} asn_INTEGER_specifics_t; + +#define INTEGER_free ASN__PRIMITIVE_TYPE_free +#define INTEGER_decode_ber ber_decode_primitive +#define INTEGER_constraint asn_generic_no_constraint +asn_struct_print_f INTEGER_print; +asn_struct_compare_f INTEGER_compare; +der_type_encoder_f INTEGER_encode_der; +xer_type_decoder_f INTEGER_decode_xer; +xer_type_encoder_f INTEGER_encode_xer; +oer_type_decoder_f INTEGER_decode_oer; +oer_type_encoder_f INTEGER_encode_oer; +per_type_decoder_f INTEGER_decode_uper; +per_type_encoder_f INTEGER_encode_uper; +per_type_decoder_f INTEGER_decode_aper; +per_type_encoder_f INTEGER_encode_aper; +asn_random_fill_f INTEGER_random_fill; + +/*********************************** + * Some handy conversion routines. * + ***********************************/ + +/* + * Natiwe size-independent conversion of native integers to/from INTEGER. + * (l_size) is in bytes. + * Returns 0 if it was possible to convert, -1 otherwise. + * -1/EINVAL: Mandatory argument missing + * -1/ERANGE: Value encoded is out of range for long representation + * -1/ENOMEM: Memory allocation failed (in asn_*2INTEGER()). + */ +int asn_INTEGER2imax(const INTEGER_t *i, intmax_t *l); +int asn_INTEGER2umax(const INTEGER_t *i, uintmax_t *l); +int asn_imax2INTEGER(INTEGER_t *i, intmax_t l); +int asn_umax2INTEGER(INTEGER_t *i, uintmax_t l); + +/* + * Size-specific conversion helpers. + */ +int asn_INTEGER2long(const INTEGER_t *i, long *l); +int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l); +int asn_long2INTEGER(INTEGER_t *i, long l); +int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l); +int asn_int642INTEGER(INTEGER_t *i, int64_t l); +int asn_uint642INTEGER(INTEGER_t *i, uint64_t l); + +/* A version of strtol/strtoimax(3) with nicer error reporting. */ +enum asn_strtox_result_e { + ASN_STRTOX_ERROR_RANGE = -3, /* Input outside of supported numeric range */ + ASN_STRTOX_ERROR_INVAL = -2, /* Invalid data encountered (e.g., "+-") */ + ASN_STRTOX_EXPECT_MORE = -1, /* More data expected (e.g. "+") */ + ASN_STRTOX_OK = 0, /* Conversion succeded, number ends at (*end) */ + ASN_STRTOX_EXTRA_DATA = 1 /* Conversion succeded, but the string has extra stuff */ +}; +enum asn_strtox_result_e asn_strtol_lim(const char *str, const char **end, + long *l); +enum asn_strtox_result_e asn_strtoul_lim(const char *str, const char **end, + unsigned long *l); +enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end, + intmax_t *l); +enum asn_strtox_result_e asn_strtoumax_lim(const char *str, const char **end, + uintmax_t *l); + +/* + * Convert the integer value into the corresponding enumeration map entry. + */ +const asn_INTEGER_enum_map_t *INTEGER_map_value2enum( + const asn_INTEGER_specifics_t *specs, long value); + +#ifdef __cplusplus +} +#endif + +#endif /* _INTEGER_H_ */ diff --git a/vcits/asn1c/ISO646String.h b/vcits/asn1c/ISO646String.h new file mode 100644 index 0000000..cd24a68 --- /dev/null +++ b/vcits/asn1c/ISO646String.h @@ -0,0 +1,37 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _ISO646String_H_ +#define _ISO646String_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef VisibleString_t ISO646String_t; /* Implemented using VisibleString */ + +extern asn_TYPE_descriptor_t asn_DEF_ISO646String; +extern asn_TYPE_operation_t asn_OP_ISO646String; + +#define ISO646String_free OCTET_STRING_free +#define ISO646String_print OCTET_STRING_print_utf8 +#define ISO646String_compare OCTET_STRING_compare +#define ISO646String_constraint VisibleString_constraint +#define ISO646String_decode_ber OCTET_STRING_decode_ber +#define ISO646String_encode_der OCTET_STRING_encode_der +#define ISO646String_decode_xer OCTET_STRING_decode_xer_utf8 +#define ISO646String_encode_xer OCTET_STRING_encode_xer_utf8 +#define ISO646String_decode_uper OCTET_STRING_decode_uper +#define ISO646String_encode_uper OCTET_STRING_encode_uper +#define ISO646String_decode_aper OCTET_STRING_decode_aper +#define ISO646String_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _ISO646String_H_ */ diff --git a/vcits/asn1c/NULL.h b/vcits/asn1c/NULL.h new file mode 100644 index 0000000..802d12c --- /dev/null +++ b/vcits/asn1c/NULL.h @@ -0,0 +1,45 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_TYPE_NULL_H +#define ASN_TYPE_NULL_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The value of the NULL type is meaningless: see BOOLEAN if you want to + * carry true/false semantics. + */ +typedef int NULL_t; + +extern asn_TYPE_descriptor_t asn_DEF_NULL; +extern asn_TYPE_operation_t asn_OP_NULL; + +asn_struct_print_f NULL_print; +asn_struct_compare_f NULL_compare; +der_type_encoder_f NULL_encode_der; +xer_type_decoder_f NULL_decode_xer; +xer_type_encoder_f NULL_encode_xer; +oer_type_decoder_f NULL_decode_oer; +oer_type_encoder_f NULL_encode_oer; +per_type_decoder_f NULL_decode_uper; +per_type_encoder_f NULL_encode_uper; +per_type_decoder_f NULL_decode_aper; +per_type_encoder_f NULL_encode_aper; +asn_random_fill_f NULL_random_fill; + +#define NULL_free BOOLEAN_free +#define NULL_decode_ber BOOLEAN_decode_ber +#define NULL_constraint asn_generic_no_constraint + +#ifdef __cplusplus +} +#endif + +#endif /* NULL_H */ diff --git a/vcits/asn1c/NativeEnumerated.h b/vcits/asn1c/NativeEnumerated.h new file mode 100644 index 0000000..459f0e6 --- /dev/null +++ b/vcits/asn1c/NativeEnumerated.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This type differs from the standard ENUMERATED in that it is modelled using + * the fixed machine type (long, int, short), so it can hold only values of + * limited length. There is no type (i.e., NativeEnumerated_t, any integer type + * will do). + * This type may be used when integer range is limited by subtype constraints. + */ +#ifndef _NativeEnumerated_H_ +#define _NativeEnumerated_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated; +extern asn_TYPE_operation_t asn_OP_NativeEnumerated; + +xer_type_encoder_f NativeEnumerated_encode_xer; +oer_type_decoder_f NativeEnumerated_decode_oer; +oer_type_encoder_f NativeEnumerated_encode_oer; +per_type_decoder_f NativeEnumerated_decode_uper; +per_type_encoder_f NativeEnumerated_encode_uper; +per_type_decoder_f NativeEnumerated_decode_aper; +per_type_encoder_f NativeEnumerated_encode_aper; + +#define NativeEnumerated_free NativeInteger_free +#define NativeEnumerated_print NativeInteger_print +#define NativeEnumerated_compare NativeInteger_compare +#define NativeEnumerated_random_fill NativeInteger_random_fill +#define NativeEnumerated_constraint asn_generic_no_constraint +#define NativeEnumerated_decode_ber NativeInteger_decode_ber +#define NativeEnumerated_encode_der NativeInteger_encode_der +#define NativeEnumerated_decode_xer NativeInteger_decode_xer + +#ifdef __cplusplus +} +#endif + +#endif /* _NativeEnumerated_H_ */ diff --git a/vcits/asn1c/NativeInteger.h b/vcits/asn1c/NativeInteger.h new file mode 100644 index 0000000..c74406a --- /dev/null +++ b/vcits/asn1c/NativeInteger.h @@ -0,0 +1,46 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This type differs from the standard INTEGER in that it is modelled using + * the fixed machine type (long, int, short), so it can hold only values of + * limited length. There is no type (i.e., NativeInteger_t, any integer type + * will do). + * This type may be used when integer range is limited by subtype constraints. + */ +#ifndef _NativeInteger_H_ +#define _NativeInteger_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern asn_TYPE_descriptor_t asn_DEF_NativeInteger; +extern asn_TYPE_operation_t asn_OP_NativeInteger; + +asn_struct_free_f NativeInteger_free; +asn_struct_print_f NativeInteger_print; +asn_struct_compare_f NativeInteger_compare; +ber_type_decoder_f NativeInteger_decode_ber; +der_type_encoder_f NativeInteger_encode_der; +xer_type_decoder_f NativeInteger_decode_xer; +xer_type_encoder_f NativeInteger_encode_xer; +oer_type_decoder_f NativeInteger_decode_oer; +oer_type_encoder_f NativeInteger_encode_oer; +per_type_decoder_f NativeInteger_decode_uper; +per_type_encoder_f NativeInteger_encode_uper; +per_type_decoder_f NativeInteger_decode_aper; +per_type_encoder_f NativeInteger_encode_aper; +asn_random_fill_f NativeInteger_random_fill; + +#define NativeInteger_constraint asn_generic_no_constraint + +#ifdef __cplusplus +} +#endif + +#endif /* _NativeInteger_H_ */ diff --git a/vcits/asn1c/NativeReal.h b/vcits/asn1c/NativeReal.h new file mode 100644 index 0000000..1bfdc96 --- /dev/null +++ b/vcits/asn1c/NativeReal.h @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This type differs from the standard REAL in that it is modelled using + * the fixed machine type (double), so it can hold only values of + * limited precision. There is no explicit type (i.e., NativeReal_t). + * Use of this type is normally enabled by -fnative-types. + */ +#ifndef ASN_TYPE_NativeReal_H +#define ASN_TYPE_NativeReal_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_NativeReal_specifics_s { + unsigned float_size; /* sizeof(float) or sizeof(double) */ +} asn_NativeReal_specifics_t; + +extern asn_TYPE_descriptor_t asn_DEF_NativeReal; +extern asn_TYPE_operation_t asn_OP_NativeReal; + +asn_struct_free_f NativeReal_free; +asn_struct_print_f NativeReal_print; +asn_struct_compare_f NativeReal_compare; +ber_type_decoder_f NativeReal_decode_ber; +der_type_encoder_f NativeReal_encode_der; +per_type_decoder_f NativeReal_decode_uper; +per_type_encoder_f NativeReal_encode_uper; +per_type_decoder_f NativeReal_decode_aper; +per_type_encoder_f NativeReal_encode_aper; +oer_type_decoder_f NativeReal_decode_oer; +oer_type_encoder_f NativeReal_encode_oer; +xer_type_decoder_f NativeReal_decode_xer; +xer_type_encoder_f NativeReal_encode_xer; +asn_random_fill_f NativeReal_random_fill; + +#define NativeReal_constraint asn_generic_no_constraint + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_TYPE_NativeReal_H */ diff --git a/vcits/asn1c/NumericString.h b/vcits/asn1c/NumericString.h new file mode 100644 index 0000000..5f33484 --- /dev/null +++ b/vcits/asn1c/NumericString.h @@ -0,0 +1,37 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _NumericString_H_ +#define _NumericString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t NumericString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_NumericString; +extern asn_TYPE_operation_t asn_OP_NumericString; + +asn_constr_check_f NumericString_constraint; + +#define NumericString_free OCTET_STRING_free +#define NumericString_print OCTET_STRING_print_utf8 +#define NumericString_compare OCTET_STRING_compare +#define NumericString_decode_ber OCTET_STRING_decode_ber +#define NumericString_encode_der OCTET_STRING_encode_der +#define NumericString_decode_xer OCTET_STRING_decode_xer_utf8 +#define NumericString_encode_xer OCTET_STRING_encode_xer_utf8 +#define NumericString_decode_uper OCTET_STRING_decode_uper +#define NumericString_encode_uper OCTET_STRING_encode_uper +#define NumericString_decode_aper OCTET_STRING_decode_aper +#define NumericString_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _NumericString_H_ */ diff --git a/vcits/asn1c/OBJECT_IDENTIFIER.h b/vcits/asn1c/OBJECT_IDENTIFIER.h new file mode 100644 index 0000000..087c6fd --- /dev/null +++ b/vcits/asn1c/OBJECT_IDENTIFIER.h @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _OBJECT_IDENTIFIER_H_ +#define _OBJECT_IDENTIFIER_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef uint32_t asn_oid_arc_t; +#define ASN_OID_ARC_MAX (~((asn_oid_arc_t)0)) + +typedef ASN__PRIMITIVE_TYPE_t OBJECT_IDENTIFIER_t; + +extern asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER; +extern asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER; + +asn_struct_print_f OBJECT_IDENTIFIER_print; +asn_constr_check_f OBJECT_IDENTIFIER_constraint; +der_type_encoder_f OBJECT_IDENTIFIER_encode_der; +xer_type_decoder_f OBJECT_IDENTIFIER_decode_xer; +xer_type_encoder_f OBJECT_IDENTIFIER_encode_xer; +asn_random_fill_f OBJECT_IDENTIFIER_random_fill; + +#define OBJECT_IDENTIFIER_free ASN__PRIMITIVE_TYPE_free +#define OBJECT_IDENTIFIER_compare OCTET_STRING_compare +#define OBJECT_IDENTIFIER_decode_ber ber_decode_primitive +#define OBJECT_IDENTIFIER_encode_der der_encode_primitive +#define OBJECT_IDENTIFIER_decode_oer oer_decode_primitive +#define OBJECT_IDENTIFIER_encode_oer oer_encode_primitive +#define OBJECT_IDENTIFIER_decode_uper OCTET_STRING_decode_uper +#define OBJECT_IDENTIFIER_encode_uper OCTET_STRING_encode_uper +#define OBJECT_IDENTIFIER_decode_aper OCTET_STRING_decode_aper +#define OBJECT_IDENTIFIER_encode_aper OCTET_STRING_encode_aper + +/********************************** + * Some handy conversion routines * + **********************************/ + +/* + * This function fills an (arcs) array with OBJECT IDENTIFIER arcs + * up to specified (arc_slots) elements. + * + * EXAMPLE: + * void print_arcs(OBJECT_IDENTIFIER_t *oid) { + * asn_oid_arc_t fixed_arcs[10]; // Try with fixed space first + * asn_oid_arc_t *arcs = fixed_arcs; + * size_t arc_slots = sizeof(fixed_arcs)/sizeof(fixed_arcs[0]); // 10 + * ssize_t count; // Real number of arcs. + * int i; + * + * count = OBJECT_IDENTIFIER_get_arcs(oid, arcs, arc_slots); + * // If necessary, reallocate arcs array and try again. + * if(count > arc_slots) { + * arc_slots = count; + * arcs = malloc(sizeof(asn_oid_arc_t) * arc_slots); + * if(!arcs) return; + * count = OBJECT_IDENTIFIER_get_arcs(oid, arcs, arc_slots); + * assert(count == arc_slots); + * } + * + * // Print the contents of the arcs array. + * for(i = 0; i < count; i++) + * printf("%"PRIu32"\n", arcs[i]); + * + * // Avoid memory leak. + * if(arcs != fixed_arcs) free(arcs); + * } + * + * RETURN VALUES: + * -1/EINVAL: Invalid arguments (oid is missing) + * -1/ERANGE: One or more arcs have value out of array cell type range. + * >=0: Number of arcs contained in the OBJECT IDENTIFIER + * + * WARNING: The function always returns the actual number of arcs, + * even if there is no sufficient (arc_slots) provided. + */ +ssize_t OBJECT_IDENTIFIER_get_arcs(const OBJECT_IDENTIFIER_t *oid, + asn_oid_arc_t *arcs, size_t arc_slots); + +/* + * This functions initializes the OBJECT IDENTIFIER object with + * the given set of arcs. + * The minimum of two arcs must be present; some restrictions apply. + * RETURN VALUES: + * -1/EINVAL: Invalid arguments + * -1/ERANGE: The first two arcs do not conform to ASN.1 restrictions. + * -1/ENOMEM: Memory allocation failed + * 0: The object was initialized with new arcs. + */ +int OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid, + const asn_oid_arc_t *arcs, size_t arcs_count); + + +/* + * Parse the OBJECT IDENTIFIER textual representation ("1.3.6.1.4.1.9363"). + * No arc can exceed the (0..ASN_OID_ARC_MAX, which is the same as UINT32_MAX). + * This function is not specific to OBJECT IDENTIFIER, it may be used to parse + * the RELATIVE-OID data, or any other data consisting of dot-separated + * series of numeric values. + * + * If (oid_txt_length == -1), the strlen() will be invoked to determine the + * size of the (oid_text) string. + * + * After return, the optional (opt_oid_text_end) is set to the character after + * the last parsed one. (opt_oid_text_end) is never less than (oid_text). + * + * RETURN VALUES: + * -1: Parse error. + * >= 0: Number of arcs contained in the OBJECT IDENTIFIER. + * + * WARNING: The function always returns the real number of arcs, + * even if there is no sufficient (arc_slots) provided. + * This is useful for (arc_slots) value estimation. + */ +ssize_t OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, + ssize_t oid_txt_length, + asn_oid_arc_t *arcs, size_t arcs_count, + const char **opt_oid_text_end); + +/* + * Internal functions. + * Used by RELATIVE-OID implementation in particular. + */ + +/* + * Retrieve a single arc of size from the (arcbuf) buffer. + * RETURN VALUES: + * -1: Failed to retrieve the value from the (arcbuf). + * >0: Number of bytes consumed from the (arcbuf), <= (arcbuf_len). + */ +ssize_t OBJECT_IDENTIFIER_get_single_arc(const uint8_t *arcbuf, + size_t arcbuf_len, + asn_oid_arc_t *ret_value); + +/* + * Write the unterminated arc value into the (arcbuf) which has the size at + * least (arcbuf_len). + * RETURN VALUES: + * -1: (arcbuf_len) size is not sufficient to write the value. + * : Number of bytes appended to the arcbuf (<= arcbuf_len). + */ +ssize_t OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t arc_value); + +#ifdef __cplusplus +} +#endif + +#endif /* _OBJECT_IDENTIFIER_H_ */ diff --git a/vcits/asn1c/OCTET_STRING.h b/vcits/asn1c/OCTET_STRING.h new file mode 100644 index 0000000..c2f8bae --- /dev/null +++ b/vcits/asn1c/OCTET_STRING.h @@ -0,0 +1,102 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _OCTET_STRING_H_ +#define _OCTET_STRING_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct OCTET_STRING { + uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */ + size_t size; /* Size of the buffer */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} OCTET_STRING_t; + +extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING; +extern asn_TYPE_operation_t asn_OP_OCTET_STRING; + +asn_struct_free_f OCTET_STRING_free; +asn_struct_print_f OCTET_STRING_print; +asn_struct_print_f OCTET_STRING_print_utf8; +asn_struct_compare_f OCTET_STRING_compare; +ber_type_decoder_f OCTET_STRING_decode_ber; +der_type_encoder_f OCTET_STRING_encode_der; +xer_type_decoder_f OCTET_STRING_decode_xer_hex; /* Hexadecimal */ +xer_type_decoder_f OCTET_STRING_decode_xer_binary; /* 01010111010 */ +xer_type_decoder_f OCTET_STRING_decode_xer_utf8; /* ASCII/UTF-8 */ +xer_type_encoder_f OCTET_STRING_encode_xer; +xer_type_encoder_f OCTET_STRING_encode_xer_utf8; +oer_type_decoder_f OCTET_STRING_decode_oer; +oer_type_encoder_f OCTET_STRING_encode_oer; +per_type_decoder_f OCTET_STRING_decode_uper; +per_type_encoder_f OCTET_STRING_encode_uper; +per_type_decoder_f OCTET_STRING_decode_aper; +per_type_encoder_f OCTET_STRING_encode_aper; +asn_random_fill_f OCTET_STRING_random_fill; + +#define OCTET_STRING_constraint asn_generic_no_constraint +#define OCTET_STRING_decode_xer OCTET_STRING_decode_xer_hex + +/****************************** + * Handy conversion routines. * + ******************************/ + +/* + * This function clears the previous value of the OCTET STRING (if any) + * and then allocates a new memory with the specified content (str/size). + * If size = -1, the size of the original string will be determined + * using strlen(str). + * If str equals to NULL, the function will silently clear the + * current contents of the OCTET STRING. + * Returns 0 if it was possible to perform operation, -1 otherwise. + */ +int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size); + +/* Handy conversion from the C string into the OCTET STRING. */ +#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1) + +/* + * Allocate and fill the new OCTET STRING and return a pointer to the newly + * allocated object. NULL is permitted in str: the function will just allocate + * empty OCTET STRING. + */ +OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, + const char *str, int size); + +/**************************** + * Internally useful stuff. * + ****************************/ + +typedef struct asn_OCTET_STRING_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the structure */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + enum asn_OS_Subvariant { + ASN_OSUBV_ANY, /* The open type (ANY) */ + ASN_OSUBV_BIT, /* BIT STRING */ + ASN_OSUBV_STR, /* String types, not {BMP,Universal}String */ + ASN_OSUBV_U16, /* 16-bit character (BMPString) */ + ASN_OSUBV_U32 /* 32-bit character (UniversalString) */ + } subvariant; +} asn_OCTET_STRING_specifics_t; + +extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs; + +size_t OCTET_STRING_random_length_constrained( + const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *, + size_t max_length); + +#ifdef __cplusplus +} +#endif + +#endif /* _OCTET_STRING_H_ */ diff --git a/vcits/asn1c/OPEN_TYPE.h b/vcits/asn1c/OPEN_TYPE.h new file mode 100644 index 0000000..b0d023c --- /dev/null +++ b/vcits/asn1c/OPEN_TYPE.h @@ -0,0 +1,77 @@ +/*- + * Copyright (c) 2017-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_OPEN_TYPE_H +#define ASN_OPEN_TYPE_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define OPEN_TYPE_free CHOICE_free +#define OPEN_TYPE_print CHOICE_print +#define OPEN_TYPE_compare CHOICE_compare +#define OPEN_TYPE_constraint CHOICE_constraint +#define OPEN_TYPE_decode_ber NULL +#define OPEN_TYPE_encode_der CHOICE_encode_der +#define OPEN_TYPE_decode_xer NULL +#define OPEN_TYPE_encode_xer CHOICE_encode_xer +#define OPEN_TYPE_decode_oer NULL +#define OPEN_TYPE_encode_oer CHOICE_encode_oer +#define OPEN_TYPE_decode_uper NULL +#define OPEN_TYPE_decode_aper NULL + +extern asn_TYPE_operation_t asn_OP_OPEN_TYPE; + +/* + * Decode an Open Type which is potentially constraiend + * by the other members of the parent structure. + */ +asn_dec_rval_t OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + const void *ptr, size_t size); + +asn_dec_rval_t OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + const void *ptr, size_t size); + +asn_dec_rval_t OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + asn_TYPE_member_t *element, const void *ptr, + size_t size); + +asn_dec_rval_t OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + asn_per_data_t *pd); + +asn_dec_rval_t OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + asn_per_data_t *pd); + +asn_enc_rval_t OPEN_TYPE_encode_uper( + const asn_TYPE_descriptor_t *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); + +asn_enc_rval_t OPEN_TYPE_encode_aper( + const asn_TYPE_descriptor_t *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_OPEN_TYPE_H */ diff --git a/vcits/asn1c/ObjectDescriptor.h b/vcits/asn1c/ObjectDescriptor.h new file mode 100644 index 0000000..fa1c1fc --- /dev/null +++ b/vcits/asn1c/ObjectDescriptor.h @@ -0,0 +1,35 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _ObjectDescriptor_H_ +#define _ObjectDescriptor_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef GraphicString_t ObjectDescriptor_t; /* Implemented via GraphicString */ + +extern asn_TYPE_descriptor_t asn_DEF_ObjectDescriptor; +extern asn_TYPE_operation_t asn_OP_ObjectDescriptor; + +#define ObjectDescriptor_free OCTET_STRING_free +#define ObjectDescriptor_print OCTET_STRING_print_utf8 +#define ObjectDescriptor_constraint asn_generic_unknown_constraint +#define ObjectDescriptor_decode_ber OCTET_STRING_decode_ber +#define ObjectDescriptor_encode_der OCTET_STRING_encode_der +#define ObjectDescriptor_decode_xer OCTET_STRING_decode_xer_utf8 +#define ObjectDescriptor_encode_xer OCTET_STRING_encode_xer_utf8 +#define ObjectDescriptor_decode_uper OCTET_STRING_decode_uper +#define ObjectDescriptor_encode_uper OCTET_STRING_encode_uper +#define ObjectDescriptor_decode_aper OCTET_STRING_decode_aper +#define ObjectDescriptor_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _ObjectDescriptor_H_ */ diff --git a/vcits/asn1c/PrintableString.h b/vcits/asn1c/PrintableString.h new file mode 100644 index 0000000..8c2b61a --- /dev/null +++ b/vcits/asn1c/PrintableString.h @@ -0,0 +1,37 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PrintableString_H_ +#define _PrintableString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t PrintableString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_PrintableString; +extern asn_TYPE_operation_t asn_OP_PrintableString; + +asn_constr_check_f PrintableString_constraint; + +#define PrintableString_free OCTET_STRING_free +#define PrintableString_print OCTET_STRING_print_utf8 +#define PrintableString_compare OCTET_STRING_compare +#define PrintableString_decode_ber OCTET_STRING_decode_ber +#define PrintableString_encode_der OCTET_STRING_encode_der +#define PrintableString_decode_xer OCTET_STRING_decode_xer_utf8 +#define PrintableString_encode_xer OCTET_STRING_encode_xer_utf8 +#define PrintableString_decode_uper OCTET_STRING_decode_uper +#define PrintableString_encode_uper OCTET_STRING_encode_uper +#define PrintableString_decode_aper OCTET_STRING_decode_aper +#define PrintableString_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _PrintableString_H_ */ diff --git a/vcits/asn1c/README b/vcits/asn1c/README new file mode 100644 index 0000000..df5521f --- /dev/null +++ b/vcits/asn1c/README @@ -0,0 +1,4 @@ +This directory contains encoder/decoder code for various encoding rules +(OER, PER, DER, BER, XER) that work with the tables constructed by the compiler. +The compiler itself does not generate much code. It creates parsing tables +and then copies (or links) over these files which contain generic codecs. diff --git a/vcits/asn1c/REAL.h b/vcits/asn1c/REAL.h new file mode 100644 index 0000000..fce6714 --- /dev/null +++ b/vcits/asn1c/REAL.h @@ -0,0 +1,67 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_TYPE_REAL_H +#define ASN_TYPE_REAL_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef ASN__PRIMITIVE_TYPE_t REAL_t; + +extern asn_TYPE_descriptor_t asn_DEF_REAL; +extern asn_TYPE_operation_t asn_OP_REAL; + +asn_struct_print_f REAL_print; +asn_struct_compare_f REAL_compare; +oer_type_decoder_f REAL_decode_oer; +oer_type_encoder_f REAL_encode_oer; +per_type_decoder_f REAL_decode_uper; +per_type_encoder_f REAL_encode_uper; +per_type_decoder_f REAL_decode_aper; +per_type_encoder_f REAL_encode_aper; +xer_type_decoder_f REAL_decode_xer; +xer_type_encoder_f REAL_encode_xer; +asn_random_fill_f REAL_random_fill; + +#define REAL_free ASN__PRIMITIVE_TYPE_free, +#define REAL_constraint asn_generic_no_constraint +#define REAL_decode_ber ber_decode_primitive +#define REAL_encode_der der_encode_primitive + +/*********************************** + * Some handy conversion routines. * + ***********************************/ + +ssize_t REAL__dump(double d, int canonical, asn_app_consume_bytes_f *cb, void *app_key); + +/* + * Convert between native double type and REAL representation (DER). + * RETURN VALUES: + * 0: Value converted successfully + * -1: An error occured while converting the value: invalid format. + */ +int asn_REAL2double(const REAL_t *real_ptr, double *d); +int asn_double2REAL(REAL_t *real_ptr, double d); + +/* + * Downcast double to float while checking that no overflow occurs. + * This allows stricter control of the input data. + * RETURN VALUES: + * 0: The conversion was successful (perhaps with a loss of precision) + * -1: The conversion created overflow into infinities. + * The (outcome) is ALWAYS set to a value you'd expect from the + * standard silent float to double conversion behavior. + */ +int asn_double2float(double d, float *outcome); + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_TYPE_REAL_H */ diff --git a/vcits/asn1c/RELATIVE-OID.h b/vcits/asn1c/RELATIVE-OID.h new file mode 100644 index 0000000..a51bf51 --- /dev/null +++ b/vcits/asn1c/RELATIVE-OID.h @@ -0,0 +1,53 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _RELATIVE_OID_H_ +#define _RELATIVE_OID_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Implemented via OBJECT IDENTIFIER */ +typedef OBJECT_IDENTIFIER_t RELATIVE_OID_t; + +extern asn_TYPE_descriptor_t asn_DEF_RELATIVE_OID; +extern asn_TYPE_operation_t asn_OP_RELATIVE_OID; + +asn_struct_print_f RELATIVE_OID_print; +xer_type_decoder_f RELATIVE_OID_decode_xer; +xer_type_encoder_f RELATIVE_OID_encode_xer; +asn_random_fill_f RELATIVE_OID_random_fill; + +#define RELATIVE_OID_free ASN__PRIMITIVE_TYPE_free +#define RELATIVE_OID_compare OCTET_STRING_compare +#define RELATIVE_OID_constraint asn_generic_no_constraint +#define RELATIVE_OID_decode_ber ber_decode_primitive +#define RELATIVE_OID_encode_der der_encode_primitive +#define RELATIVE_OID_decode_oer oer_decode_primitive +#define RELATIVE_OID_encode_oer oer_encode_primitive +#define RELATIVE_OID_decode_uper OCTET_STRING_decode_uper +#define RELATIVE_OID_encode_uper OCTET_STRING_encode_uper +#define RELATIVE_OID_decode_aper OCTET_STRING_decode_aper +#define RELATIVE_OID_encode_aper OCTET_STRING_encode_aper + +/********************************** + * Some handy conversion routines * + **********************************/ + +/* See OBJECT_IDENTIFIER_get_arcs() function in OBJECT_IDENTIFIER.h */ +ssize_t RELATIVE_OID_get_arcs(const RELATIVE_OID_t *, asn_oid_arc_t *arcs, + size_t arcs_count); + +/* See OBJECT_IDENTIFIER_set_arcs() function in OBJECT_IDENTIFIER.h */ +int RELATIVE_OID_set_arcs(RELATIVE_OID_t *, const asn_oid_arc_t *arcs, + size_t arcs_count); + +#ifdef __cplusplus +} +#endif + +#endif /* _RELATIVE_OID_H_ */ diff --git a/vcits/asn1c/T61String.h b/vcits/asn1c/T61String.h new file mode 100644 index 0000000..9e9e380 --- /dev/null +++ b/vcits/asn1c/T61String.h @@ -0,0 +1,36 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _T61String_H_ +#define _T61String_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t T61String_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_T61String; +extern asn_TYPE_operation_t asn_OP_T61String; + +#define T61String_free OCTET_STRING_free +#define T61String_print OCTET_STRING_print +#define T61String_compare OCTET_STRING_compare +#define T61String_constraint asn_generic_unknown_constraint +#define T61String_decode_ber OCTET_STRING_decode_ber +#define T61String_encode_der OCTET_STRING_encode_der +#define T61String_decode_xer OCTET_STRING_decode_xer_hex +#define T61String_encode_xer OCTET_STRING_encode_xer +#define T61String_decode_uper OCTET_STRING_decode_uper +#define T61String_encode_uper OCTET_STRING_encode_uper +#define T61String_decode_aper OCTET_STRING_decode_aper +#define T61String_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _T61String_H_ */ diff --git a/vcits/asn1c/TeletexString.h b/vcits/asn1c/TeletexString.h new file mode 100644 index 0000000..9f04aef --- /dev/null +++ b/vcits/asn1c/TeletexString.h @@ -0,0 +1,36 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _TeletexString_H_ +#define _TeletexString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t TeletexString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_TeletexString; +extern asn_TYPE_operation_t asn_OP_TeletexString; + +#define TeletexString_free OCTET_STRING_free +#define TeletexString_print OCTET_STRING_print +#define TeletexString_compare OCTET_STRING_compare +#define TeletexString_constraint asn_generic_unknown_constraint +#define TeletexString_decode_ber OCTET_STRING_decode_ber +#define TeletexString_encode_der OCTET_STRING_encode_der +#define TeletexString_decode_xer OCTET_STRING_decode_xer_hex +#define TeletexString_encode_xer OCTET_STRING_encode_xer +#define TeletexString_decode_uper OCTET_STRING_decode_uper +#define TeletexString_encode_uper OCTET_STRING_encode_uper +#define TeletexString_decode_aper OCTET_STRING_decode_aper +#define TeletexString_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _TeletexString_H_ */ diff --git a/vcits/asn1c/UTCTime.h b/vcits/asn1c/UTCTime.h new file mode 100644 index 0000000..295f156 --- /dev/null +++ b/vcits/asn1c/UTCTime.h @@ -0,0 +1,50 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UTCTime_H_ +#define _UTCTime_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t UTCTime_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_UTCTime; +extern asn_TYPE_operation_t asn_OP_UTCTime; + +asn_struct_print_f UTCTime_print; +asn_struct_compare_f UTCTime_compare; +asn_constr_check_f UTCTime_constraint; +xer_type_encoder_f UTCTime_encode_xer; +asn_random_fill_f UTCTime_random_fill; + +#define UTCTime_free OCTET_STRING_free +#define UTCTime_decode_ber OCTET_STRING_decode_ber +#define UTCTime_encode_der OCTET_STRING_encode_der +#define UTCTime_decode_xer OCTET_STRING_decode_xer_utf8 +#define UTCTime_decode_uper OCTET_STRING_decode_uper +#define UTCTime_encode_uper OCTET_STRING_encode_uper +#define UTCTime_decode_aper OCTET_STRING_decode_aper +#define UTCTime_encode_aper OCTET_STRING_encode_aper + +/*********************** + * Some handy helpers. * + ***********************/ + +struct tm; /* */ + +/* See asn_GT2time() in GeneralizedTime.h */ +time_t asn_UT2time(const UTCTime_t *, struct tm *_optional_tm4fill, int as_gmt); + +/* See asn_time2GT() in GeneralizedTime.h */ +UTCTime_t *asn_time2UT(UTCTime_t *__opt_ut, const struct tm *, int force_gmt); + +#ifdef __cplusplus +} +#endif + +#endif /* _UTCTime_H_ */ diff --git a/vcits/asn1c/UTF8String.h b/vcits/asn1c/UTF8String.h new file mode 100644 index 0000000..7ad9c82 --- /dev/null +++ b/vcits/asn1c/UTF8String.h @@ -0,0 +1,63 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UTF8String_H_ +#define _UTF8String_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t UTF8String_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_UTF8String; +extern asn_TYPE_operation_t asn_OP_UTF8String; + +asn_struct_print_f UTF8String_print; +asn_constr_check_f UTF8String_constraint; +asn_random_fill_f UTF8String_random_fill; + +#define UTF8String_free OCTET_STRING_free +#define UTF8String_compare OCTET_STRING_compare +#define UTF8String_constraint UTF8String_constraint +#define UTF8String_decode_ber OCTET_STRING_decode_ber +#define UTF8String_encode_der OCTET_STRING_encode_der +#define UTF8String_decode_xer OCTET_STRING_decode_xer_utf8 +#define UTF8String_encode_xer OCTET_STRING_encode_xer_utf8 +#define UTF8String_decode_uper OCTET_STRING_decode_uper +#define UTF8String_encode_uper OCTET_STRING_encode_uper +#define UTF8String_decode_aper OCTET_STRING_decode_aper +#define UTF8String_encode_aper OCTET_STRING_encode_aper + +/* + * Returns length of the given UTF-8 string in characters, + * or a negative error code: + * -1: UTF-8 sequence truncated + * -2: Illegal UTF-8 sequence start + * -3: Continuation expectation failed + * -4: Not minimal length encoding + * -5: Invalid arguments + */ +ssize_t UTF8String_length(const UTF8String_t *st); + +/* + * Convert the UTF-8 string into a sequence of wide characters. + * Returns the number of characters necessary. + * Returned value might be greater than dstlen. + * In case of conversion error, 0 is returned. + * + * If st points to a valid UTF-8 string, calling + * UTF8String_to_wcs(st, 0, 0); + * is equivalent to + * UTF8String_length(const UTF8String_t *st); + */ +size_t UTF8String_to_wcs(const UTF8String_t *st, uint32_t *dst, size_t dstlen); + +#ifdef __cplusplus +} +#endif + +#endif /* _UTF8String_H_ */ diff --git a/vcits/asn1c/UniversalString.h b/vcits/asn1c/UniversalString.h new file mode 100644 index 0000000..510807a --- /dev/null +++ b/vcits/asn1c/UniversalString.h @@ -0,0 +1,38 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UniversalString_H_ +#define _UniversalString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t UniversalString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_UniversalString; +extern asn_TYPE_operation_t asn_OP_UniversalString; +extern asn_OCTET_STRING_specifics_t asn_SPC_UniversalString_specs; + +asn_struct_print_f UniversalString_print; /* Human-readable output */ +asn_constr_check_f UniversalString_constraint; +xer_type_decoder_f UniversalString_decode_xer; +xer_type_encoder_f UniversalString_encode_xer; + +#define UniversalString_free OCTET_STRING_free +#define UniversalString_compare OCTET_STRING_compare +#define UniversalString_decode_ber OCTET_STRING_decode_ber +#define UniversalString_encode_der OCTET_STRING_encode_der +#define UniversalString_decode_uper OCTET_STRING_decode_uper +#define UniversalString_encode_uper OCTET_STRING_encode_uper +#define UniversalString_decode_aper OCTET_STRING_decode_aper +#define UniversalString_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _UniversalString_H_ */ diff --git a/vcits/asn1c/VideotexString.h b/vcits/asn1c/VideotexString.h new file mode 100644 index 0000000..b535389 --- /dev/null +++ b/vcits/asn1c/VideotexString.h @@ -0,0 +1,36 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _VideotexString_H_ +#define _VideotexString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t VideotexString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_VideotexString; +extern asn_TYPE_operation_t asn_OP_VideotexString; + +#define VideotexString_free OCTET_STRING_free +#define VideotexString_print OCTET_STRING_print +#define VideotexString_compare OCTET_STRING_compare +#define VideotexString_constraint asn_generic_unknown_constraint +#define VideotexString_decode_ber OCTET_STRING_decode_ber +#define VideotexString_encode_der OCTET_STRING_encode_der +#define VideotexString_decode_xer OCTET_STRING_decode_xer_hex +#define VideotexString_encode_xer OCTET_STRING_encode_xer +#define VideotexString_decode_uper OCTET_STRING_decode_uper +#define VideotexString_encode_uper OCTET_STRING_encode_uper +#define VideotexString_decode_aper OCTET_STRING_decode_aper +#define VideotexString_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _VideotexString_H_ */ diff --git a/vcits/asn1c/VisibleString.h b/vcits/asn1c/VisibleString.h new file mode 100644 index 0000000..ad5f713 --- /dev/null +++ b/vcits/asn1c/VisibleString.h @@ -0,0 +1,38 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _VisibleString_H_ +#define _VisibleString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t VisibleString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_VisibleString; +extern asn_TYPE_operation_t asn_OP_VisibleString; + +asn_constr_check_f VisibleString_constraint; + +#define VisibleString_free OCTET_STRING_free +#define VisibleString_print OCTET_STRING_print +#define VisibleString_compare OCTET_STRING_compare +#define VisibleString_constraint VisibleString_constraint +#define VisibleString_decode_ber OCTET_STRING_decode_ber +#define VisibleString_encode_der OCTET_STRING_encode_der +#define VisibleString_decode_xer OCTET_STRING_decode_xer_hex +#define VisibleString_encode_xer OCTET_STRING_encode_xer +#define VisibleString_decode_uper OCTET_STRING_decode_uper +#define VisibleString_encode_uper OCTET_STRING_encode_uper +#define VisibleString_decode_aper OCTET_STRING_decode_aper +#define VisibleString_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _VisibleString_H_ */ diff --git a/vcits/asn1c/asn_SEQUENCE_OF.h b/vcits/asn1c/asn_SEQUENCE_OF.h new file mode 100644 index 0000000..e35bc44 --- /dev/null +++ b/vcits/asn1c/asn_SEQUENCE_OF.h @@ -0,0 +1,52 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_SEQUENCE_OF_H +#define ASN_SEQUENCE_OF_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * SEQUENCE OF is the same as SET OF with a tiny difference: + * the delete operation preserves the initial order of elements + * and thus MAY operate in non-constant time. + */ +#define A_SEQUENCE_OF(type) A_SET_OF(type) + +#define ASN_SEQUENCE_ADD(headptr, ptr) \ + asn_sequence_add((headptr), (ptr)) + +/*********************************************** + * Implementation of the SEQUENCE OF structure. + */ + +#define asn_sequence_add asn_set_add +#define asn_sequence_empty asn_set_empty + +/* + * Delete the element from the set by its number (base 0). + * This is NOT a constant-time operation. + * The order of elements is preserved. + * If _do_free is given AND the (*free) is initialized, the element + * will be freed using the custom (*free) function as well. + */ +void asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free); + +/* + * Cope with different conversions requirements to/from void in C and C++. + * This is mostly useful for support library. + */ +typedef A_SEQUENCE_OF(void) asn_anonymous_sequence_; +#define _A_SEQUENCE_FROM_VOID(ptr) ((asn_anonymous_sequence_ *)(ptr)) +#define _A_CSEQUENCE_FROM_VOID(ptr) ((const asn_anonymous_sequence_ *)(ptr)) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_SEQUENCE_OF_H */ diff --git a/vcits/asn1c/asn_SET_OF.h b/vcits/asn1c/asn_SET_OF.h new file mode 100644 index 0000000..882e1a4 --- /dev/null +++ b/vcits/asn1c/asn_SET_OF.h @@ -0,0 +1,72 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_SET_OF_H +#define ASN_SET_OF_H + +#ifdef __cplusplus +#define A_SET_OF(type) \ + struct { \ + type **array; \ + int count; /* Meaningful size */ \ + int size; /* Allocated size */ \ + void (*free)(decltype(*array)); \ + } +#else /* C */ +#define A_SET_OF(type) \ + struct { \ + type **array; \ + int count; /* Meaningful size */ \ + int size; /* Allocated size */ \ + void (*free)(type *); \ + } +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#define ASN_SET_ADD(headptr, ptr) \ + asn_set_add((headptr), (ptr)) + +/******************************************* + * Implementation of the SET OF structure. + */ + +/* + * Add another structure into the set by its pointer. + * RETURN VALUES: + * 0 for success and -1/errno for failure. + */ +int asn_set_add(void *asn_set_of_x, void *ptr); + +/* + * Delete the element from the set by its number (base 0). + * This is a constant-time operation. The order of elements before the + * deleted ones is guaranteed, the order of elements after the deleted + * one is NOT guaranteed. + * If _do_free is given AND the (*free) is initialized, the element + * will be freed using the custom (*free) function as well. + */ +void asn_set_del(void *asn_set_of_x, int number, int _do_free); + +/* + * Empty the contents of the set. Will free the elements, if (*free) is given. + * Will NOT free the set itself. + */ +void asn_set_empty(void *asn_set_of_x); + +/* + * Cope with different conversions requirements to/from void in C and C++. + * This is mostly useful for support library. + */ +typedef A_SET_OF(void) asn_anonymous_set_; +#define _A_SET_FROM_VOID(ptr) ((asn_anonymous_set_ *)(ptr)) +#define _A_CSET_FROM_VOID(ptr) ((const asn_anonymous_set_ *)(ptr)) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_SET_OF_H */ diff --git a/vcits/asn1c/asn_application.h b/vcits/asn1c/asn_application.h new file mode 100644 index 0000000..449318d --- /dev/null +++ b/vcits/asn1c/asn_application.h @@ -0,0 +1,171 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Application-level ASN.1 callbacks. + */ +#ifndef ASN_APPLICATION_H +#define ASN_APPLICATION_H + +#include "asn_system.h" /* for platform-dependent types */ +#include "asn_codecs.h" /* for ASN.1 codecs specifics */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * A selection of ASN.1 Transfer Syntaxes to use with generalized + * encoders and decoders declared further in this .h file. + */ +enum asn_transfer_syntax { + /* Avoid appearance of a default transfer syntax. */ + ATS_INVALID = 0, + /* Plaintext output (not conforming to any standard), for debugging. */ + ATS_NONSTANDARD_PLAINTEXT, + /* Returns a randomly generatede structure. */ + ATS_RANDOM, + /* + * X.690: + * BER: Basic Encoding Rules. + * DER: Distinguished Encoding Rules. + * CER: Canonical Encoding Rules. + * DER and CER are more strict variants of BER. + */ + ATS_BER, + ATS_DER, + ATS_CER, /* Only decoding is supported */ + /* + * X.696: + * OER: Octet Encoding Rules. + * CANONICAL-OER is a more strict variant of BASIC-OER. + */ + ATS_BASIC_OER, + ATS_CANONICAL_OER, + /* + * X.691: + * PER: Packed Encoding Rules. + * CANONICAL-PER is a more strict variant of BASIC-PER. + * NOTE: Produces or consumes a complete encoding (X.691 (08/2015) #11.1). + */ + ATS_UNALIGNED_BASIC_PER, + ATS_UNALIGNED_CANONICAL_PER, + ATS_ALIGNED_BASIC_PER, + ATS_ALIGNED_CANONICAL_PER, + /* + * X.693: + * XER: XML Encoding Rules. + * CANONICAL-XER is a more strict variant of BASIC-XER. + */ + ATS_BASIC_XER, + ATS_CANONICAL_XER +}; + +/* + * A generic encoder for any supported transfer syntax. + * RETURN VALUES: + * The (.encoded) field of the return value is REDEFINED to mean the following: + * >=0: The computed size of the encoded data. Can exceed the (buffer_size). + * -1: Error encoding the structure. See the error code in (errno): + * EINVAL: Incorrect parameters to the function, such as NULLs. + * ENOENT: Encoding transfer syntax is not defined (for this type). + * EBADF: The structure has invalid form or content constraint failed. + * The (.failed_type) and (.structure_ptr) MIGHT be set to the appropriate + * values at the place of failure, if at all possible. + * WARNING: The (.encoded) field of the return value can exceed the buffer_size. + * This is similar to snprintf(3) contract which might return values + * greater than the buffer size. + */ +asn_enc_rval_t asn_encode_to_buffer( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode, void *buffer, size_t buffer_size); + +/* + * A variant of asn_encode_to_buffer() with automatically allocated buffer. + * RETURN VALUES: + * On success, returns a newly allocated (.buffer) containing the whole message. + * The message size is returned in (.result.encoded). + * On failure: + * (.buffer) is NULL, + * (.result.encoded) as in asn_encode_to_buffer(), + * The errno codes as in asn_encode_to_buffer(), plus the following: + * ENOMEM: Memory allocation failed due to system or internal limits. + * The user is responsible for freeing the (.buffer). + */ +typedef struct asn_encode_to_new_buffer_result_s { + void *buffer; /* NULL if failed to encode. */ + asn_enc_rval_t result; +} asn_encode_to_new_buffer_result_t; +asn_encode_to_new_buffer_result_t asn_encode_to_new_buffer( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode); + + +/* + * Generic type of an application-defined callback to return various + * types of data to the application. + * EXPECTED RETURN VALUES: + * -1: Failed to consume bytes. Abort the mission. + * Non-negative return values indicate success, and ignored. + */ +typedef int(asn_app_consume_bytes_f)(const void *buffer, size_t size, + void *application_specific_key); + + +/* + * A generic encoder for any supported transfer syntax. + * Returns the comprehensive encoding result descriptor (see asn_codecs.h). + * RETURN VALUES: + * The negative (.encoded) field of the return values is accompanied with the + * following error codes (errno): + * EINVAL: Incorrect parameters to the function, such as NULLs. + * ENOENT: Encoding transfer syntax is not defined (for this type). + * EBADF: The structure has invalid form or content constraint failed. + * EIO: The (callback) has returned negative value during encoding. + */ +asn_enc_rval_t asn_encode( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode, + asn_app_consume_bytes_f *callback, void *callback_key); + + +/* + * A generic decoder for any supported transfer syntax. + */ +asn_dec_rval_t asn_decode( + const asn_codec_ctx_t *opt_codec_parameters, enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_decode, + void **structure_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of that buffer */ +); + + +/* + * A callback of this type is called whenever constraint validation fails + * on some ASN.1 type. See "constraints.h" for more details on constraint + * validation. + * This callback specifies a descriptor of the ASN.1 type which failed + * the constraint check, as well as human readable message on what + * particular constraint has failed. + */ +typedef void (asn_app_constraint_failed_f)(void *application_specific_key, + const struct asn_TYPE_descriptor_s *type_descriptor_which_failed, + const void *structure_which_failed_ptr, + const char *error_message_format, ...) CC_PRINTFLIKE(4, 5); + + +#ifdef __cplusplus +} +#endif + +#include "constr_TYPE.h" /* for asn_TYPE_descriptor_t */ + +#endif /* ASN_APPLICATION_H */ diff --git a/vcits/asn1c/asn_bit_data.h b/vcits/asn1c/asn_bit_data.h new file mode 100644 index 0000000..59de7af --- /dev/null +++ b/vcits/asn1c/asn_bit_data.h @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_BIT_DATA +#define ASN_BIT_DATA + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * This structure describes a position inside an incoming PER bit stream. + */ +typedef struct asn_bit_data_s { + const uint8_t *buffer; /* Pointer to the octet stream */ + size_t nboff; /* Bit offset to the meaningful bit */ + size_t nbits; /* Number of bits in the stream */ + size_t moved; /* Number of bits moved through this bit stream */ + int (*refill)(struct asn_bit_data_s *); + void *refill_key; +} asn_bit_data_t; + +/* + * Create a contiguous non-refillable bit data structure. + * Can be freed by FREEMEM(). + */ +asn_bit_data_t *asn_bit_data_new_contiguous(const void *data, size_t size_bits); + +/* + * Extract a small number of bits (<= 31) from the specified PER data pointer. + * This function returns -1 if the specified number of bits could not be + * extracted due to EOD or other conditions. + */ +int32_t asn_get_few_bits(asn_bit_data_t *, int get_nbits); + +/* Undo the immediately preceeding "get_few_bits" operation */ +void asn_get_undo(asn_bit_data_t *, int get_nbits); + +/* + * Extract a large number of bits from the specified PER data pointer. + * This function returns -1 if the specified number of bits could not be + * extracted due to EOD or other conditions. + */ +int asn_get_many_bits(asn_bit_data_t *, uint8_t *dst, int right_align, + int get_nbits); + +/* Non-thread-safe debugging function, don't use it */ +char *asn_bit_data_string(asn_bit_data_t *); + +/* + * This structure supports forming bit output. + */ +typedef struct asn_bit_outp_s { + uint8_t *buffer; /* Pointer into the (tmpspace) */ + size_t nboff; /* Bit offset to the meaningful bit */ + size_t nbits; /* Number of bits left in (tmpspace) */ + uint8_t tmpspace[32]; /* Preliminary storage to hold data */ + int (*output)(const void *data, size_t size, void *op_key); + void *op_key; /* Key for (output) data callback */ + size_t flushed_bytes; /* Bytes already flushed through (output) */ +} asn_bit_outp_t; + +/* Output a small number of bits (<= 31) */ +int asn_put_few_bits(asn_bit_outp_t *, uint32_t bits, int obits); + +/* Output a large number of bits */ +int asn_put_many_bits(asn_bit_outp_t *, const uint8_t *src, int put_nbits); + +/* + * Flush whole bytes (0 or more) through (outper) member. + * The least significant bits which are not used are guaranteed to be set to 0. + * Returns -1 if callback returns -1. Otherwise, 0. + */ +int asn_put_aligned_flush(asn_bit_outp_t *); + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_BIT_DATA */ diff --git a/vcits/asn1c/asn_codecs.h b/vcits/asn1c/asn_codecs.h new file mode 100644 index 0000000..e75c270 --- /dev/null +++ b/vcits/asn1c/asn_codecs.h @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_CODECS_H +#define ASN_CODECS_H + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * This structure defines a set of parameters that may be passed + * to every ASN.1 encoder or decoder function. + * WARNING: if max_stack_size member is set, and you are calling the + * function pointers of the asn_TYPE_descriptor_t directly, + * this structure must be ALLOCATED ON THE STACK! + * If you can't always satisfy this requirement, use ber_decode(), + * xer_decode() and uper_decode() functions instead. + */ +typedef struct asn_codec_ctx_s { + /* + * Limit the decoder routines to use no (much) more stack than a given + * number of bytes. Most of decoders are stack-based, and this + * would protect against stack overflows if the number of nested + * encodings is high. + * The OCTET STRING, BIT STRING and ANY BER decoders are heap-based, + * and are safe from this kind of overflow. + * A value from getrlimit(RLIMIT_STACK) may be used to initialize + * this variable. Be careful in multithreaded environments, as the + * stack size is rather limited. + */ + size_t max_stack_size; /* 0 disables stack bounds checking */ +} asn_codec_ctx_t; + +/* + * Type of the return value of the encoding functions (der_encode, xer_encode). + */ +typedef struct asn_enc_rval_s { + /* + * Number of bytes encoded. + * -1 indicates failure to encode the structure. + * In this case, the members below this one are meaningful. + */ + ssize_t encoded; + + /* + * Members meaningful when (encoded == -1), for post mortem analysis. + */ + + /* Type which cannot be encoded */ + const struct asn_TYPE_descriptor_s *failed_type; + + /* Pointer to the structure of that type */ + const void *structure_ptr; +} asn_enc_rval_t; +#define ASN__ENCODE_FAILED do { \ + asn_enc_rval_t tmp_error; \ + tmp_error.encoded = -1; \ + tmp_error.failed_type = td; \ + tmp_error.structure_ptr = sptr; \ + ASN_DEBUG("Failed to encode element %s", td ? td->name : ""); \ + return tmp_error; \ +} while(0) +#define ASN__ENCODED_OK(rval) do { \ + rval.structure_ptr = 0; \ + rval.failed_type = 0; \ + return rval; \ +} while(0) + +/* + * Type of the return value of the decoding functions (ber_decode, xer_decode) + * + * Please note that the number of consumed bytes is ALWAYS meaningful, + * even if code==RC_FAIL. This is to indicate the number of successfully + * decoded bytes, hence providing a possibility to fail with more diagnostics + * (i.e., print the offending remainder of the buffer). + */ +enum asn_dec_rval_code_e { + RC_OK, /* Decoded successfully */ + RC_WMORE, /* More data expected, call again */ + RC_FAIL /* Failure to decode data */ +}; +typedef struct asn_dec_rval_s { + enum asn_dec_rval_code_e code; /* Result code */ + size_t consumed; /* Number of bytes consumed */ +} asn_dec_rval_t; +#define ASN__DECODE_FAILED do { \ + asn_dec_rval_t tmp_error; \ + tmp_error.code = RC_FAIL; \ + tmp_error.consumed = 0; \ + ASN_DEBUG("Failed to decode element %s", td ? td->name : ""); \ + return tmp_error; \ +} while(0) +#define ASN__DECODE_STARVED do { \ + asn_dec_rval_t tmp_error; \ + tmp_error.code = RC_WMORE; \ + tmp_error.consumed = 0; \ + return tmp_error; \ +} while(0) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_CODECS_H */ diff --git a/vcits/asn1c/asn_codecs_prim.h b/vcits/asn1c/asn_codecs_prim.h new file mode 100644 index 0000000..fbc5576 --- /dev/null +++ b/vcits/asn1c/asn_codecs_prim.h @@ -0,0 +1,51 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_CODECS_PRIM_H +#define ASN_CODECS_PRIM_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ASN__PRIMITIVE_TYPE_s { + uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */ + size_t size; /* Size of the buffer */ +} ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */ + +asn_struct_free_f ASN__PRIMITIVE_TYPE_free; +ber_type_decoder_f ber_decode_primitive; +der_type_encoder_f der_encode_primitive; + +/* + * A callback specification for the xer_decode_primitive() function below. + */ +enum xer_pbd_rval { + XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */ + XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */ + XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */ + XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */ + XPBD_BODY_CONSUMED /* Body is recognized and consumed */ +}; +typedef enum xer_pbd_rval(xer_primitive_body_decoder_f)( + const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, + size_t chunk_size); + +/* + * Specific function to decode simple primitive types. + * Also see xer_decode_general() in xer_decoder.h + */ +asn_dec_rval_t xer_decode_primitive( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, + size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size, + xer_primitive_body_decoder_f *prim_body_decoder); + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_CODECS_PRIM_H */ diff --git a/vcits/asn1c/asn_internal.h b/vcits/asn1c/asn_internal.h new file mode 100644 index 0000000..2736083 --- /dev/null +++ b/vcits/asn1c/asn_internal.h @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Declarations internally useful for the ASN.1 support code. + */ +#ifndef ASN_INTERNAL_H +#define ASN_INTERNAL_H +#define __EXTENSIONS__ /* for Sun */ + +#include "asn_application.h" /* Application-visible API */ + +#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */ +#include /* for assert() macro */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Environment version might be used to avoid running with the old library */ +#define ASN1C_ENVIRONMENT_VERSION 923 /* Compile-time version */ +int get_asn1c_environment_version(void); /* Run-time version */ + +#define CALLOC(nmemb, size) calloc(nmemb, size) +#define MALLOC(size) malloc(size) +#define REALLOC(oldptr, size) realloc(oldptr, size) +#define FREEMEM(ptr) free(ptr) + +#define asn_debug_indent 0 +#define ASN_DEBUG_INDENT_ADD(i) do{}while(0) + +#ifdef EMIT_ASN_DEBUG +#warning "Use ASN_EMIT_DEBUG instead of EMIT_ASN_DEBUG" +#define ASN_EMIT_DEBUG EMIT_ASN_DEBUG +#endif + +/* + * A macro for debugging the ASN.1 internals. + * You may enable or override it. + */ +#ifndef ASN_DEBUG /* If debugging code is not defined elsewhere... */ +#if ASN_EMIT_DEBUG == 1 /* And it was asked to emit this code... */ +#if __STDC_VERSION__ >= 199901L +#ifdef ASN_THREAD_SAFE +/* Thread safety requires sacrifice in output indentation: + * Retain empty definition of ASN_DEBUG_INDENT_ADD. */ +#else /* !ASN_THREAD_SAFE */ +#undef ASN_DEBUG_INDENT_ADD +#undef asn_debug_indent +int asn_debug_indent; +#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0) +#endif /* ASN_THREAD_SAFE */ +#define ASN_DEBUG(fmt, args...) do { \ + int adi = asn_debug_indent; \ + while(adi--) fprintf(stderr, " "); \ + fprintf(stderr, fmt, ##args); \ + fprintf(stderr, " (%s:%d)\n", \ + __FILE__, __LINE__); \ + } while(0) +#else /* !C99 */ +void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); +#define ASN_DEBUG ASN_DEBUG_f +#endif /* C99 */ +#else /* ASN_EMIT_DEBUG != 1 */ +#if __STDC_VERSION__ >= 199901L +#define ASN_DEBUG(...) do{}while(0) +#else /* not C99 */ +static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; } +#endif /* C99 or better */ +#endif /* ASN_EMIT_DEBUG */ +#endif /* ASN_DEBUG */ + +/* + * Print to a callback. + * The callback is expected to return negative values on error. + * 0 and positive values are treated as success. + * RETURN VALUES: + * -1: Failed to format or invoke the callback. + * >0: Size of the data that got delivered to the callback. + */ +ssize_t CC_PRINTFLIKE(3, 4) +asn__format_to_callback( + int (*callback)(const void *, size_t, void *key), void *key, + const char *fmt, ...); + +/* + * Invoke the application-supplied callback and fail, if something is wrong. + */ +#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0) +#define ASN__E_CALLBACK(size, foo) \ + do { \ + if(foo) goto cb_failed; \ + er.encoded += (size); \ + } while(0) +#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size)) +#define ASN__CALLBACK2(buf1, size1, buf2, size2) \ + ASN__E_CALLBACK((size1) + (size2), \ + ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2)) +#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3) \ + ASN__E_CALLBACK((size1) + (size2) + (size3), \ + ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \ + || ASN__E_cbc(buf3, size3)) + +#define ASN__TEXT_INDENT(nl, level) \ + do { \ + int tmp_level = (level); \ + int tmp_nl = ((nl) != 0); \ + int tmp_i; \ + if(tmp_nl) ASN__CALLBACK("\n", 1); \ + if(tmp_level < 0) tmp_level = 0; \ + for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK(" ", 4); \ + } while(0) + +#define _i_INDENT(nl) do { \ + int tmp_i; \ + if((nl) && cb("\n", 1, app_key) < 0) \ + return -1; \ + for(tmp_i = 0; tmp_i < ilevel; tmp_i++) \ + if(cb(" ", 4, app_key) < 0) \ + return -1; \ + } while(0) + +/* + * Check stack against overflow, if limit is set. + */ +#define ASN__DEFAULT_STACK_MAX (30000) +static int CC_NOTUSED +ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { + if(ctx && ctx->max_stack_size) { + + /* ctx MUST be allocated on the stack */ + ptrdiff_t usedstack = ((const char *)ctx - (const char *)&ctx); + if(usedstack > 0) usedstack = -usedstack; /* grows up! */ + + /* double negative required to avoid int wrap-around */ + if(usedstack < -(ptrdiff_t)ctx->max_stack_size) { + ASN_DEBUG("Stack limit %ld reached", + (long)ctx->max_stack_size); + return -1; + } + } + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_INTERNAL_H */ diff --git a/vcits/asn1c/asn_ioc.h b/vcits/asn1c/asn_ioc.h new file mode 100644 index 0000000..7de210e --- /dev/null +++ b/vcits/asn1c/asn_ioc.h @@ -0,0 +1,51 @@ +/* + * Run-time support for Information Object Classes. + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_IOC_H +#define ASN_IOC_H + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; +struct asn_ioc_cell_s; + +/* + * X.681, #13 + */ +typedef struct asn_ioc_set_s { + size_t rows_count; + size_t columns_count; + const struct asn_ioc_cell_s *rows; +} asn_ioc_set_t; + + +typedef struct asn_ioc_cell_s { + const char *field_name; /* Is equal to corresponding column_name */ + enum { + aioc__undefined = 0, + aioc__value, + aioc__type, + aioc__open_type, + } cell_kind; + struct asn_TYPE_descriptor_s *type_descriptor; + const void *value_sptr; + struct { + size_t types_count; + struct { + unsigned choice_position; + } *types; + } open_type; +} asn_ioc_cell_t; + + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_IOC_H */ diff --git a/vcits/asn1c/asn_random_fill.h b/vcits/asn1c/asn_random_fill.h new file mode 100644 index 0000000..47f9b8a --- /dev/null +++ b/vcits/asn1c/asn_random_fill.h @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_RANDOM_FILL +#define ASN_RANDOM_FILL + +/* Forward declarations */ +struct asn_TYPE_descriptor_s; +struct asn_encoding_constraints_s; + +/* + * Initialize a structure with random data according to the type specification + * and optional member constraints. + * ARGUMENTS: + * (max_length) - See (approx_max_length_limit). + * (memb_constraints) - Member constraints, if exist. + * The type can be constrained differently according + * to PER and OER specifications, so we find a value + * at the intersection of these constraints. + * In case the return differs from ARFILL_OK, the (struct_ptr) contents + * and (current_length) value remain in their original state. + */ +typedef struct asn_random_fill_result_s { + enum { + ARFILL_FAILED = -1, /* System error (memory?) */ + ARFILL_OK = 0, /* Initialization succeeded */ + ARFILL_SKIPPED = 1 /* Not done due to (length?) constraint */ + } code; + size_t length; /* Approximate number of bytes created. */ +} asn_random_fill_result_t; +typedef asn_random_fill_result_t(asn_random_fill_f)( + const struct asn_TYPE_descriptor_s *td, void **struct_ptr, + const struct asn_encoding_constraints_s *memb_constraints, + size_t max_length); + +/* + * Returns 0 if the structure was properly initialized, -1 otherwise. + * The (approx_max_length_limit) specifies the approximate limit of the + * resulting structure in units closely resembling bytes. The actual result + * might be several times larger or smaller than the length limit. + */ +int asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, + size_t approx_max_length_limit); + +/* + * Returns a random number between min and max. + */ +intmax_t asn_random_between(intmax_t min, intmax_t max); + +#endif /* ASN_RANDOM_FILL */ diff --git a/vcits/asn1c/asn_system.h b/vcits/asn1c/asn_system.h new file mode 100644 index 0000000..fa8cf11 --- /dev/null +++ b/vcits/asn1c/asn_system.h @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Miscellaneous system-dependent types. + */ +#ifndef ASN_SYSTEM_H +#define ASN_SYSTEM_H + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifndef _DEFAULT_SOURCE +#define _DEFAULT_SOURCE 1 +#endif + +#ifndef _BSD_SOURCE +#define _BSD_SOURCE /* for snprintf() on some linux systems */ +#endif + +#include /* For snprintf(3) */ +#include /* For *alloc(3) */ +#include /* For memcpy(3) */ +#include /* For size_t */ +#include /* For LONG_MAX */ +#include /* For va_start */ +#include /* for offsetof and ptrdiff_t */ + +#ifdef _WIN32 + +#include +#define snprintf _snprintf +#define vsnprintf _vsnprintf + +/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */ +#define sys_ntohl(l) ((((l) << 24) & 0xff000000) \ + | (((l) << 8) & 0xff0000) \ + | (((l) >> 8) & 0xff00) \ + | ((l >> 24) & 0xff)) + +#ifdef _MSC_VER /* MSVS.Net */ +#ifndef __cplusplus +#define inline __inline +#endif +#ifndef ASSUMESTDTYPES /* Standard types have been defined elsewhere */ +#define ssize_t SSIZE_T +#if _MSC_VER < 1600 +typedef char int8_t; +typedef short int16_t; +typedef int int32_t; +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +#else /* _MSC_VER >= 1600 */ +#include +#endif /* _MSC_VER < 1600 */ +#endif /* ASSUMESTDTYPES */ +#define WIN32_LEAN_AND_MEAN +#include +#include +#define isnan _isnan +#define finite _finite +#define copysign _copysign +#define ilogb _logb +#else /* !_MSC_VER */ +#include +#endif /* _MSC_VER */ + +#else /* !_WIN32 */ + +#if defined(__vxworks) +#include +#else /* !defined(__vxworks) */ + +#include /* C99 specifies this file */ +#include /* for ntohl() */ +#define sys_ntohl(foo) ntohl(foo) +#endif /* defined(__vxworks) */ + +#endif /* _WIN32 */ + +#if __GNUC__ >= 3 || defined(__clang__) +#define CC_ATTRIBUTE(attr) __attribute__((attr)) +#else +#define CC_ATTRIBUTE(attr) +#endif +#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(printf, fmt, var)) +#define CC_NOTUSED CC_ATTRIBUTE(unused) +#ifndef CC_ATTR_NO_SANITIZE +#define CC_ATTR_NO_SANITIZE(what) CC_ATTRIBUTE(no_sanitize(what)) +#endif + +/* Figure out if thread safety is requested */ +#if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT)) +#define ASN_THREAD_SAFE +#endif /* Thread safety */ + +#ifndef offsetof /* If not defined by */ +#define offsetof(s, m) ((ptrdiff_t)&(((s *)0)->m) - (ptrdiff_t)((s *)0)) +#endif /* offsetof */ + +#ifndef MIN /* Suitable for comparing primitive types (integers) */ +#if defined(__GNUC__) +#define MIN(a,b) ({ __typeof a _a = a; __typeof b _b = b; \ + ((_a)<(_b)?(_a):(_b)); }) +#else /* !__GNUC__ */ +#define MIN(a,b) ((a)<(b)?(a):(b)) /* Unsafe variant */ +#endif /* __GNUC__ */ +#endif /* MIN */ + +#if __STDC_VERSION__ >= 199901L +#ifndef SIZE_MAX +#define SIZE_MAX ((~((size_t)0)) >> 1) +#endif + +#ifndef RSIZE_MAX /* C11, Annex K */ +#define RSIZE_MAX (SIZE_MAX >> 1) +#endif +#ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */ +#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) +#endif +#else /* Old compiler */ +#undef SIZE_MAX +#undef RSIZE_MAX +#undef RSSIZE_MAX +#define SIZE_MAX ((~((size_t)0)) >> 1) +#define RSIZE_MAX (SIZE_MAX >> 1) +#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) +#endif + +#if __STDC_VERSION__ >= 199901L +#define ASN_PRI_SIZE "zu" +#define ASN_PRI_SSIZE "zd" +#define ASN_PRIuMAX PRIuMAX +#define ASN_PRIdMAX PRIdMAX +#else +#define ASN_PRI_SIZE "lu" +#define ASN_PRI_SSIZE "ld" +#if LLONG_MAX > LONG_MAX +#define ASN_PRIuMAX "llu" +#define ASN_PRIdMAX "lld" +#else +#define ASN_PRIuMAX "lu" +#define ASN_PRIdMAX "ld" +#endif +#endif + +#endif /* ASN_SYSTEM_H */ diff --git a/vcits/asn1c/ber_decoder.h b/vcits/asn1c/ber_decoder.h new file mode 100644 index 0000000..1ac2a5e --- /dev/null +++ b/vcits/asn1c/ber_decoder.h @@ -0,0 +1,66 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BER_DECODER_H_ +#define _BER_DECODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ +struct asn_codec_ctx_s; /* Forward declaration */ + +/* + * The BER decoder of any type. + * This function may be invoked directly from the application. + * Decodes BER, DER and CER data (DER and CER are different subsets of BER). + * + * NOTE: Use the der_encode() function (der_encoder.h) to produce encoding + * which is compliant with ber_decode(). + */ +asn_dec_rval_t ber_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of that buffer */ +); + +/* + * Type of generic function which decodes the byte stream into the structure. + */ +typedef asn_dec_rval_t(ber_type_decoder_f)( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, + const void *buf_ptr, size_t size, int tag_mode); + +/******************************* + * INTERNALLY USEFUL FUNCTIONS * + *******************************/ + +/* + * Check that all tags correspond to the type definition (as given in head). + * On return, last_length would contain either a non-negative length of the + * value part of the last TLV, or the negative number of expected + * "end of content" sequences. The number may only be negative if the + * head->last_tag_form is non-zero. + */ +asn_dec_rval_t ber_check_tags( + const struct asn_codec_ctx_s *opt_codec_ctx, /* codec options */ + const struct asn_TYPE_descriptor_s *type_descriptor, + asn_struct_ctx_t *opt_ctx, /* saved decoding context */ + const void *ptr, size_t size, + int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ + int last_tag_form, /* {-1,0:1}: any, primitive, constr */ + ber_tlv_len_t *last_length, int *opt_tlv_form /* optional tag form */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _BER_DECODER_H_ */ diff --git a/vcits/asn1c/ber_tlv_length.h b/vcits/asn1c/ber_tlv_length.h new file mode 100644 index 0000000..d1e4d48 --- /dev/null +++ b/vcits/asn1c/ber_tlv_length.h @@ -0,0 +1,50 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BER_TLV_LENGTH_H_ +#define _BER_TLV_LENGTH_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef ssize_t ber_tlv_len_t; + +/* + * This function tries to fetch the length of the BER TLV value and place it + * in *len_r. + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering length. + * >0: Number of bytes used from bufptr. + * On return with >0, len_r is constrained as -1..MAX, where -1 mean + * that the value is of indefinite length. + */ +ssize_t ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, + ber_tlv_len_t *len_r); + +/* + * This function expects bufptr to be positioned over L in TLV. + * It returns number of bytes occupied by L and V together, suitable + * for skipping. The function properly handles indefinite length. + * RETURN VALUES: + * Standard {-1,0,>0} convention. + */ +ssize_t ber_skip_length( + const struct asn_codec_ctx_s *opt_codec_ctx, /* optional context */ + int _is_constructed, const void *bufptr, size_t size); + +/* + * This function serializes the length (L from TLV) in DER format. + * It always returns number of bytes necessary to represent the length, + * it is a caller's responsibility to check the return value + * against the supplied buffer's size. + */ +size_t der_tlv_length_serialize(ber_tlv_len_t len, void *bufptr, size_t size); + +#ifdef __cplusplus +} +#endif + +#endif /* _BER_TLV_LENGTH_H_ */ diff --git a/vcits/asn1c/ber_tlv_tag.h b/vcits/asn1c/ber_tlv_tag.h new file mode 100644 index 0000000..ce227ad --- /dev/null +++ b/vcits/asn1c/ber_tlv_tag.h @@ -0,0 +1,60 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BER_TLV_TAG_H_ +#define _BER_TLV_TAG_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +enum asn_tag_class { + ASN_TAG_CLASS_UNIVERSAL = 0, /* 0b00 */ + ASN_TAG_CLASS_APPLICATION = 1, /* 0b01 */ + ASN_TAG_CLASS_CONTEXT = 2, /* 0b10 */ + ASN_TAG_CLASS_PRIVATE = 3 /* 0b11 */ +}; +typedef unsigned ber_tlv_tag_t; /* BER TAG from Tag-Length-Value */ + +/* + * Tag class is encoded together with tag value for optimization purposes. + */ +#define BER_TAG_CLASS(tag) ((tag) & 0x3) +#define BER_TAG_VALUE(tag) ((tag) >> 2) +#define BER_TLV_CONSTRUCTED(tagptr) (((*(const uint8_t *)tagptr)&0x20)?1:0) + +#define BER_TAGS_EQUAL(tag1, tag2) ((tag1) == (tag2)) + +/* + * Several functions for printing the TAG in the canonical form + * (i.e. "[PRIVATE 0]"). + * Return values correspond to their libc counterparts (if any). + */ +ssize_t ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t buflen); +ssize_t ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *); +char *ber_tlv_tag_string(ber_tlv_tag_t tag); + + +/* + * This function tries to fetch the tag from the input stream. + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering tag. + * >0: Number of bytes used from bufptr. tag_r will contain the tag. + */ +ssize_t ber_fetch_tag(const void *bufptr, size_t size, ber_tlv_tag_t *tag_r); + +/* + * This function serializes the tag (T from TLV) in BER format. + * It always returns number of bytes necessary to represent the tag, + * it is a caller's responsibility to check the return value + * against the supplied buffer's size. + */ +size_t ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufptr, size_t size); + +#ifdef __cplusplus +} +#endif + +#endif /* _BER_TLV_TAG_H_ */ diff --git a/vcits/asn1c/constr_CHOICE.h b/vcits/asn1c/constr_CHOICE.h new file mode 100644 index 0000000..a1999ed --- /dev/null +++ b/vcits/asn1c/constr_CHOICE.h @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_CHOICE_H_ +#define _CONSTR_CHOICE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_CHOICE_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_codec_ctx_t member */ + unsigned pres_offset; /* Identifier of the present member */ + unsigned pres_size; /* Size of the identifier (enum) */ + + /* + * Tags to members mapping table. + */ + const asn_TYPE_tag2member_t *tag2el; + unsigned tag2el_count; + + /* Canonical ordering of CHOICE elements, for PER */ + const unsigned *to_canonical_order; + const unsigned *from_canonical_order; + + /* + * Extensions-related stuff. + */ + signed ext_start; /* First member of extensions, or -1 */ +} asn_CHOICE_specifics_t; + +/* + * A set specialized functions dealing with the CHOICE type. + */ +asn_struct_free_f CHOICE_free; +asn_struct_print_f CHOICE_print; +asn_struct_compare_f CHOICE_compare; +asn_constr_check_f CHOICE_constraint; +ber_type_decoder_f CHOICE_decode_ber; +der_type_encoder_f CHOICE_encode_der; +xer_type_decoder_f CHOICE_decode_xer; +xer_type_encoder_f CHOICE_encode_xer; +oer_type_decoder_f CHOICE_decode_oer; +oer_type_encoder_f CHOICE_encode_oer; +per_type_decoder_f CHOICE_decode_uper; +per_type_encoder_f CHOICE_encode_uper; +per_type_decoder_f CHOICE_decode_aper; +per_type_encoder_f CHOICE_encode_aper; +asn_outmost_tag_f CHOICE_outmost_tag; +asn_random_fill_f CHOICE_random_fill; +extern asn_TYPE_operation_t asn_OP_CHOICE; + +/* + * Return the 1-based choice variant presence index. + * Returns 0 in case of error. + */ +unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, + const void *structure_ptr); + +/* + * Sets or resets the 1-based choice variant presence index. + * In case a previous index is not zero, the currently selected structure + * member is freed and zeroed-out first. + * Returns 0 on success and -1 on error. + */ +int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, + void *structure_ptr, unsigned present); + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_CHOICE_H_ */ diff --git a/vcits/asn1c/constr_SEQUENCE.h b/vcits/asn1c/constr_SEQUENCE.h new file mode 100644 index 0000000..a22ed3a --- /dev/null +++ b/vcits/asn1c/constr_SEQUENCE.h @@ -0,0 +1,68 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_SEQUENCE_H_ +#define _CONSTR_SEQUENCE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_SEQUENCE_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + /* + * Tags to members mapping table (sorted). + */ + const asn_TYPE_tag2member_t *tag2el; + unsigned tag2el_count; + + /* + * Optional members of the extensions root (roms) or additions (aoms). + * Meaningful for PER. + */ + const int *oms; /* Optional MemberS */ + unsigned roms_count; /* Root optional members count */ + unsigned aoms_count; /* Additions optional members count */ + + /* + * Description of an extensions group. + * Root components are clustered at the beginning of the structure, + * whereas extensions are clustered at the end. -1 means not extensible. + */ + signed first_extension; /* First extension addition */ +} asn_SEQUENCE_specifics_t; + + +/* + * A set specialized functions dealing with the SEQUENCE type. + */ +asn_struct_free_f SEQUENCE_free; +asn_struct_print_f SEQUENCE_print; +asn_struct_compare_f SEQUENCE_compare; +asn_constr_check_f SEQUENCE_constraint; +ber_type_decoder_f SEQUENCE_decode_ber; +der_type_encoder_f SEQUENCE_encode_der; +xer_type_decoder_f SEQUENCE_decode_xer; +xer_type_encoder_f SEQUENCE_encode_xer; +oer_type_decoder_f SEQUENCE_decode_oer; +oer_type_encoder_f SEQUENCE_encode_oer; +per_type_decoder_f SEQUENCE_decode_uper; +per_type_encoder_f SEQUENCE_encode_uper; +per_type_decoder_f SEQUENCE_decode_aper; +per_type_encoder_f SEQUENCE_encode_aper; +asn_random_fill_f SEQUENCE_random_fill; +extern asn_TYPE_operation_t asn_OP_SEQUENCE; + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_SEQUENCE_H_ */ diff --git a/vcits/asn1c/constr_SEQUENCE_OF.h b/vcits/asn1c/constr_SEQUENCE_OF.h new file mode 100644 index 0000000..6857f0f --- /dev/null +++ b/vcits/asn1c/constr_SEQUENCE_OF.h @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_SEQUENCE_OF_H_ +#define _CONSTR_SEQUENCE_OF_H_ + +#include +#include /* Implemented using SET OF */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * A set specialized functions dealing with the SEQUENCE OF type. + * Generally implemented using SET OF. + */ +asn_struct_compare_f SEQUENCE_OF_compare; +der_type_encoder_f SEQUENCE_OF_encode_der; +xer_type_encoder_f SEQUENCE_OF_encode_xer; +per_type_encoder_f SEQUENCE_OF_encode_uper; +per_type_encoder_f SEQUENCE_OF_encode_aper; +extern asn_TYPE_operation_t asn_OP_SEQUENCE_OF; + +#define SEQUENCE_OF_free SET_OF_free +#define SEQUENCE_OF_print SET_OF_print +#define SEQUENCE_OF_constraint SET_OF_constraint +#define SEQUENCE_OF_decode_ber SET_OF_decode_ber +#define SEQUENCE_OF_decode_xer SET_OF_decode_xer +#define SEQUENCE_OF_decode_oer SET_OF_decode_oer +#define SEQUENCE_OF_encode_oer SET_OF_encode_oer +#define SEQUENCE_OF_decode_uper SET_OF_decode_uper +#define SEQUENCE_OF_decode_aper SET_OF_decode_aper +#define SEQUENCE_OF_random_fill SET_OF_random_fill + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_SET_OF_H_ */ diff --git a/vcits/asn1c/constr_SET.h b/vcits/asn1c/constr_SET.h new file mode 100644 index 0000000..d64a00f --- /dev/null +++ b/vcits/asn1c/constr_SET.h @@ -0,0 +1,87 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_SET_H_ +#define _CONSTR_SET_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct asn_SET_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + unsigned pres_offset; /* Offset of _presence_map member */ + + /* + * Tags to members mapping table (sorted). + * Sometimes suitable for DER encoding (untagged CHOICE is present); + * if so, tag2el_count will be greater than td->elements_count. + */ + const asn_TYPE_tag2member_t *tag2el; + unsigned tag2el_count; + + /* + * Tags to members mapping table, second edition. + * Suitable for CANONICAL-XER encoding. + */ + const asn_TYPE_tag2member_t *tag2el_cxer; + unsigned tag2el_cxer_count; + + /* + * Extensions-related stuff. + */ + int extensible; /* Whether SET is extensible */ + const unsigned int *_mandatory_elements; /* Bitmask of mandatory ones */ +} asn_SET_specifics_t; + +/* + * A set specialized functions dealing with the SET type. + */ +asn_struct_free_f SET_free; +asn_struct_print_f SET_print; +asn_struct_compare_f SET_compare; +asn_constr_check_f SET_constraint; +ber_type_decoder_f SET_decode_ber; +der_type_encoder_f SET_encode_der; +xer_type_decoder_f SET_decode_xer; +xer_type_encoder_f SET_encode_xer; +per_type_decoder_f SET_decode_uper; +per_type_encoder_f SET_encode_uper; +asn_random_fill_f SET_random_fill; +extern asn_TYPE_operation_t asn_OP_SET; + +/*********************** + * Some handy helpers. * + ***********************/ + +/* + * Figure out whether the SET member indicated by PR_x has already been decoded. + * It is very simple bitfield test, despite its visual complexity. + */ +#define ASN_SET_ISPRESENT(set_ptr, PR_x) \ + ASN_SET_ISPRESENT2(&((set_ptr)->_presence_map), PR_x) +#define ASN_SET_ISPRESENT2(map_ptr, PR_x) \ + (((unsigned int *)(map_ptr)) \ + [(PR_x) / (8 * sizeof(unsigned int))] \ + & (1u << ((8 * sizeof(unsigned int)) - 1 \ + - ((PR_x) % (8 * sizeof(unsigned int)))))) + +#define ASN_SET_MKPRESENT(map_ptr, PR_x) \ + (((unsigned int *)(map_ptr)) \ + [(PR_x) / (8 * sizeof(unsigned int))] \ + |= (1u << ((8 * sizeof(unsigned int)) - 1 \ + - ((PR_x) % (8 * sizeof(unsigned int)))))) + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_SET_H_ */ diff --git a/vcits/asn1c/constr_SET_OF.h b/vcits/asn1c/constr_SET_OF.h new file mode 100644 index 0000000..7681062 --- /dev/null +++ b/vcits/asn1c/constr_SET_OF.h @@ -0,0 +1,49 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef CONSTR_SET_OF_H +#define CONSTR_SET_OF_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_SET_OF_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + /* XER-specific stuff */ + int as_XMLValueList; /* The member type must be encoded like this */ +} asn_SET_OF_specifics_t; + +/* + * A set specialized functions dealing with the SET OF type. + */ +asn_struct_free_f SET_OF_free; +asn_struct_print_f SET_OF_print; +asn_struct_compare_f SET_OF_compare; +asn_constr_check_f SET_OF_constraint; +ber_type_decoder_f SET_OF_decode_ber; +der_type_encoder_f SET_OF_encode_der; +xer_type_decoder_f SET_OF_decode_xer; +xer_type_encoder_f SET_OF_encode_xer; +oer_type_decoder_f SET_OF_decode_oer; +oer_type_encoder_f SET_OF_encode_oer; +per_type_decoder_f SET_OF_decode_uper; +per_type_encoder_f SET_OF_encode_uper; +per_type_decoder_f SET_OF_decode_aper; +per_type_encoder_f SET_OF_encode_aper; +asn_random_fill_f SET_OF_random_fill; +extern asn_TYPE_operation_t asn_OP_SET_OF; + +#ifdef __cplusplus +} +#endif + +#endif /* CONSTR_SET_OF_H */ diff --git a/vcits/asn1c/constr_TYPE.h b/vcits/asn1c/constr_TYPE.h new file mode 100644 index 0000000..d80dea5 --- /dev/null +++ b/vcits/asn1c/constr_TYPE.h @@ -0,0 +1,262 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This file contains the declaration structure called "ASN.1 Type Definition", + * which holds all information necessary for encoding and decoding routines. + * This structure even contains pointer to these encoding and decoding routines + * for each defined ASN.1 type. + */ +#ifndef _CONSTR_TYPE_H_ +#define _CONSTR_TYPE_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ +struct asn_TYPE_member_s; /* Forward declaration */ + +/* + * This type provides the context information for various ASN.1 routines, + * primarily ones doing decoding. A member _asn_ctx of this type must be + * included into certain target language's structures, such as compound types. + */ +typedef struct asn_struct_ctx_s { + short phase; /* Decoding phase */ + short step; /* Elementary step of a phase */ + int context; /* Other context information */ + void *ptr; /* Decoder-specific stuff (stack elements) */ + ber_tlv_len_t left; /* Number of bytes left, -1 for indefinite */ +} asn_struct_ctx_t; + +#include /* Basic Encoding Rules decoder */ +#include /* Distinguished Encoding Rules encoder */ +#include /* Decoder of XER (XML, text) */ +#include /* Encoder into XER (XML, text) */ +#include /* Packet Encoding Rules decoder */ +#include /* Packet Encoding Rules encoder */ +#include /* Subtype constraints support */ +#include /* Random structures support */ + +#ifdef ASN_DISABLE_OER_SUPPORT +typedef void (oer_type_decoder_f)(void); +typedef void (oer_type_encoder_f)(void); +typedef void asn_oer_constraints_t; +#else +#include /* Octet Encoding Rules encoder */ +#include /* Octet Encoding Rules encoder */ +#endif + +/* + * Free the structure according to its specification. + * Use one of ASN_STRUCT_{FREE,RESET,CONTENTS_ONLY} macros instead. + * Do not use directly. + */ +enum asn_struct_free_method { + ASFM_FREE_EVERYTHING, /* free(struct_ptr) and underlying members */ + ASFM_FREE_UNDERLYING, /* free underlying members */ + ASFM_FREE_UNDERLYING_AND_RESET /* FREE_UNDERLYING + memset(0) */ +}; +typedef void (asn_struct_free_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + void *struct_ptr, enum asn_struct_free_method); + +/* + * Free the structure including freeing the memory pointed to by ptr itself. + */ +#define ASN_STRUCT_FREE(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_EVERYTHING) + +/* + * Free the memory used by the members of the structure without freeing the + * the structure pointer itself. + * ZERO-OUT the structure to the safe clean state. + * (Retaining the pointer may be useful in case the structure is allocated + * statically or arranged on the stack, yet its elements are dynamic.) + */ +#define ASN_STRUCT_RESET(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING_AND_RESET) + +/* + * Free memory used by the members of the structure without freeing + * the structure pointer itself. + * (Retaining the pointer may be useful in case the structure is allocated + * statically or arranged on the stack, yet its elements are dynamic.) + * AVOID using it in the application code; + * Use a safer ASN_STRUCT_RESET() instead. + */ +#define ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING) + +/* + * Print the structure according to its specification. + */ +typedef int(asn_struct_print_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, + int level, /* Indentation level */ + asn_app_consume_bytes_f *callback, void *app_key); + +/* + * Compare two structs between each other. + * Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater", + * and =0 if "equal to", for some type-specific, stable definition of + * "smaller", "greater" and "equal to". + */ +typedef int (asn_struct_compare_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_A, + const void *struct_B); + +/* + * Return the outmost tag of the type. + * If the type is untagged CHOICE, the dynamic operation is performed. + * NOTE: This function pointer type is only useful internally. + * Do not use it in your application. + */ +typedef ber_tlv_tag_t (asn_outmost_tag_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag); +/* The instance of the above function type; used internally. */ +asn_outmost_tag_f asn_TYPE_outmost_tag; + +/* + * Fetch the desired type of the Open Type based on the + * Information Object Set driven constraints. + */ +typedef struct asn_type_selector_result_s { + const struct asn_TYPE_descriptor_s *type_descriptor; /* Type encoded. */ + unsigned presence_index; /* Associated choice variant. */ +} asn_type_selector_result_t; +typedef asn_type_selector_result_t(asn_type_selector_f)( + const struct asn_TYPE_descriptor_s *parent_type_descriptor, + const void *parent_structure_ptr); + +/* + * Generalized functions for dealing with the speciic type. + * May be directly invoked by applications. + */ +typedef struct asn_TYPE_operation_s { + asn_struct_free_f *free_struct; /* Free the structure */ + asn_struct_print_f *print_struct; /* Human readable output */ + asn_struct_compare_f *compare_struct; /* Compare two structures */ + ber_type_decoder_f *ber_decoder; /* Generic BER decoder */ + der_type_encoder_f *der_encoder; /* Canonical DER encoder */ + xer_type_decoder_f *xer_decoder; /* Generic XER decoder */ + xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */ + oer_type_decoder_f *oer_decoder; /* Generic OER decoder */ + oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */ + per_type_decoder_f *uper_decoder; /* Unaligned PER decoder */ + per_type_encoder_f *uper_encoder; /* Unaligned PER encoder */ + per_type_decoder_f *aper_decoder; /* Aligned PER decoder */ + per_type_encoder_f *aper_encoder; /* Aligned PER encoder */ + asn_random_fill_f *random_fill; /* Initialize with a random value */ + asn_outmost_tag_f *outmost_tag; /* */ +} asn_TYPE_operation_t; + +/* + * A constraints tuple specifying both the OER and PER constraints. + */ +typedef struct asn_encoding_constraints_s { + const struct asn_oer_constraints_s *oer_constraints; + const struct asn_per_constraints_s *per_constraints; + asn_constr_check_f *general_constraints; +} asn_encoding_constraints_t; + +/* + * The definitive description of the destination language's structure. + */ +typedef struct asn_TYPE_descriptor_s { + const char *name; /* A name of the ASN.1 type. "" in some cases. */ + const char *xml_tag; /* Name used in XML tag */ + + /* + * Generalized functions for dealing with the specific type. + * May be directly invoked by applications. + */ + asn_TYPE_operation_t *op; + + /*********************************************************************** + * Internally useful members. Not to be used by applications directly. * + **********************************************************************/ + + /* + * Tags that are expected to occur. + */ + const ber_tlv_tag_t *tags; /* Effective tags sequence for this type */ + unsigned tags_count; /* Number of tags which are expected */ + const ber_tlv_tag_t *all_tags; /* Every tag for BER/containment */ + unsigned all_tags_count; /* Number of tags */ + + /* OER, PER, and general constraints */ + asn_encoding_constraints_t encoding_constraints; + + /* + * An ASN.1 production type members (members of SEQUENCE, SET, CHOICE). + */ + struct asn_TYPE_member_s *elements; + unsigned elements_count; + + /* + * Additional information describing the type, used by appropriate + * functions above. + */ + const void *specifics; +} asn_TYPE_descriptor_t; + +/* + * This type describes an element of the constructed type, + * i.e. SEQUENCE, SET, CHOICE, etc. + */ + enum asn_TYPE_flags_e { + ATF_NOFLAGS, + ATF_POINTER = 0x01, /* Represented by the pointer */ + ATF_OPEN_TYPE = 0x02, /* Open Type */ + ATF_ANY_TYPE = 0x04 /* ANY type (deprecated!) */ + }; +typedef struct asn_TYPE_member_s { + enum asn_TYPE_flags_e flags; /* Element's presentation flags */ + unsigned optional; /* Following optional members, including current */ + unsigned memb_offset; /* Offset of the element */ + ber_tlv_tag_t tag; /* Outmost (most immediate) tag */ + int tag_mode; /* IMPLICIT/no/EXPLICIT tag at current level */ + asn_TYPE_descriptor_t *type; /* Member type descriptor */ + asn_type_selector_f *type_selector; /* IoS runtime type selector */ + asn_encoding_constraints_t encoding_constraints; + int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT */ + int (*default_value_set)(void **sptr); /* Set DEFAULT */ + const char *name; /* ASN.1 identifier of the element */ +} asn_TYPE_member_t; + +/* + * BER tag to element number mapping. + */ +typedef struct asn_TYPE_tag2member_s { + ber_tlv_tag_t el_tag; /* Outmost tag of the member */ + unsigned el_no; /* Index of the associated member, base 0 */ + int toff_first; /* First occurence of the el_tag, relative */ + int toff_last; /* Last occurence of the el_tag, relative */ +} asn_TYPE_tag2member_t; + +/* + * This function prints out the contents of the target language's structure + * (struct_ptr) into the file pointer (stream) in human readable form. + * RETURN VALUES: + * 0: The structure is printed. + * -1: Problem dumping the structure. + * (See also xer_fprint() in xer_encoder.h) + */ +int asn_fprint(FILE *stream, /* Destination stream descriptor */ + const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */ + const void *struct_ptr); /* Structure to be printed */ + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_TYPE_H_ */ diff --git a/vcits/asn1c/constraints.h b/vcits/asn1c/constraints.h new file mode 100644 index 0000000..0bd86a9 --- /dev/null +++ b/vcits/asn1c/constraints.h @@ -0,0 +1,62 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN1_CONSTRAINTS_VALIDATOR_H +#define ASN1_CONSTRAINTS_VALIDATOR_H + +#include /* Platform-dependent types */ + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Validate the structure according to the ASN.1 constraints. + * If errbuf and errlen are given, they shall be pointing to the appropriate + * buffer space and its length before calling this function. Alternatively, + * they could be passed as NULL's. If constraints validation fails, + * errlen will contain the actual number of bytes taken from the errbuf + * to encode an error message (properly 0-terminated). + * + * RETURN VALUES: + * This function returns 0 in case all ASN.1 constraints are met + * and -1 if one or more constraints were failed. + */ +int asn_check_constraints( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Target language's structure */ + char *errbuf, /* Returned error description */ + size_t *errlen /* Length of the error description */ +); + + +/* + * Generic type for constraint checking callback, + * associated with every type descriptor. + */ +typedef int(asn_constr_check_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct_ptr, + asn_app_constraint_failed_f *optional_callback, /* Log the error */ + void *optional_app_key /* Opaque key passed to a callback */ +); + +/******************************* + * INTERNALLY USEFUL FUNCTIONS * + *******************************/ + +asn_constr_check_f asn_generic_no_constraint; /* No constraint whatsoever */ +asn_constr_check_f asn_generic_unknown_constraint; /* Not fully supported */ + +/* + * Invoke the callback with a complete error message. + */ +#define ASN__CTFAIL if(ctfailcb) ctfailcb + +#ifdef __cplusplus +} +#endif + +#endif /* ASN1_CONSTRAINTS_VALIDATOR_H */ diff --git a/vcits/asn1c/der_encoder.h b/vcits/asn1c/der_encoder.h new file mode 100644 index 0000000..e93944e --- /dev/null +++ b/vcits/asn1c/der_encoder.h @@ -0,0 +1,68 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _DER_ENCODER_H_ +#define _DER_ENCODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * The DER encoder of any type. May be invoked by the application. + * Produces DER- and BER-compliant encoding. (DER is a subset of BER). + * + * NOTE: Use the ber_decode() function (ber_decoder.h) to decode data + * produced by der_encode(). + */ +asn_enc_rval_t der_encode(const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key /* Arbitrary callback argument */ +); + +/* A variant of der_encode() which encodes data into the pre-allocated buffer */ +asn_enc_rval_t der_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (maximum) */ +); + +/* + * Type of the generic DER encoder. + */ +typedef asn_enc_rval_t(der_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ + ber_tlv_tag_t tag, asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ + void *app_key /* Arbitrary callback argument */ +); + + +/******************************* + * INTERNALLY USEFUL FUNCTIONS * + *******************************/ + +/* + * Write out leading TL[v] sequence according to the type definition. + */ +ssize_t der_write_tags(const struct asn_TYPE_descriptor_s *type_descriptor, + size_t struct_length, + int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ + int last_tag_form, /* {0,!0}: prim, constructed */ + ber_tlv_tag_t tag, + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key); + +#ifdef __cplusplus +} +#endif + +#endif /* _DER_ENCODER_H_ */ diff --git a/vcits/asn1c/file-dependencies b/vcits/asn1c/file-dependencies new file mode 100644 index 0000000..59e2ce6 --- /dev/null +++ b/vcits/asn1c/file-dependencies @@ -0,0 +1,89 @@ +# This file contains dependency information for the asn1c compiler's skeletons. +# Feel free to edit this file. +# The format is like this: +# # Include this file unconditionally +# ... # Include dependencies of . +# + +ANY.h ANY.c OCTET_STRING.h +OPEN_TYPE.h OPEN_TYPE.c constr_CHOICE.h +BMPString.h BMPString.c UTF8String.h OCTET_STRING.h +BOOLEAN.h BOOLEAN.c +ENUMERATED.h ENUMERATED.c INTEGER.h NativeEnumerated.h +GeneralString.h GeneralString.c OCTET_STRING.h +GeneralizedTime.h GeneralizedTime.c OCTET_STRING.h +GraphicString.h GraphicString.c OCTET_STRING.h +IA5String.h IA5String.c OCTET_STRING.h +INTEGER.h INTEGER.c +ISO646String.h ISO646String.c OCTET_STRING.h +NULL.h NULL.c BOOLEAN.h +NativeEnumerated.h NativeEnumerated.c NativeInteger.h +NativeInteger.h NativeInteger.c INTEGER.h +NativeReal.h NativeReal.c REAL.h +NumericString.h NumericString.c OCTET_STRING.h +OBJECT_IDENTIFIER.h OBJECT_IDENTIFIER.c INTEGER.h OCTET_STRING.h +ObjectDescriptor.h ObjectDescriptor.c GraphicString.h +PrintableString.h PrintableString.c OCTET_STRING.h +REAL.h REAL.c INTEGER.h OCTET_STRING.h +RELATIVE-OID.h RELATIVE-OID.c OBJECT_IDENTIFIER.h OCTET_STRING.h +T61String.h T61String.c OCTET_STRING.h +TeletexString.h TeletexString.c OCTET_STRING.h +UTCTime.h UTCTime.c GeneralizedTime.h OCTET_STRING.h +UTF8String.h UTF8String.c OCTET_STRING.h +UniversalString.h UniversalString.c UTF8String.h OCTET_STRING.h +VideotexString.h VideotexString.c OCTET_STRING.h +VisibleString.h VisibleString.c OCTET_STRING.h +asn_SEQUENCE_OF.h asn_SEQUENCE_OF.c asn_SET_OF.h +asn_SET_OF.h asn_SET_OF.c +constr_CHOICE.h constr_CHOICE.c +constr_SEQUENCE.h constr_SEQUENCE.c OPEN_TYPE.h +constr_SEQUENCE_OF.h constr_SEQUENCE_OF.c asn_SEQUENCE_OF.h constr_SET_OF.h +constr_SET.h constr_SET.c +constr_SET_OF.h constr_SET_OF.c asn_SET_OF.h + +COMMON-FILES: # THIS IS A SPECIAL SECTION +asn_application.h asn_application.c # Applications should include this file +asn_ioc.h # Information Object Classes, runtime support +asn_system.h # Platform-dependent types +asn_codecs.h # Return types of encoders and decoders +asn_internal.h asn_internal.c # Internal stuff +asn_random_fill.h asn_random_fill.c # Initialize with a random value +asn_bit_data.h asn_bit_data.c # Bit streaming support +OCTET_STRING.h OCTET_STRING.c +BIT_STRING.h BIT_STRING.c OCTET_STRING.h +asn_codecs_prim.c asn_codecs_prim.h # enc/decoders for primitive types +ber_tlv_length.h ber_tlv_length.c # BER TLV L (length) +ber_tlv_tag.h ber_tlv_tag.c # BER TLV T (tag) +ber_decoder.h ber_decoder.c # BER decoder support code +der_encoder.h der_encoder.c # DER encoder support code +constr_TYPE.h constr_TYPE.c # Description of a type +constraints.h constraints.c # Subtype constraints support +xer_support.h xer_support.c # XML parsing +xer_decoder.h xer_decoder.c # XER decoding support +xer_encoder.h xer_encoder.c # XER encoding support +per_support.h per_support.c # PER parsing +per_decoder.h per_decoder.c # PER decoding support +per_encoder.h per_encoder.c # PER encoding support +per_opentype.h per_opentype.c # PER "open type" handling + +CONVERTER: # THIS IS A SPECIAL SECTION +converter-example.c # A default name for the example transcoder + +CODEC-OER: # THIS IS A SPECIAL SECTION +oer_decoder.h +oer_encoder.h +oer_support.h +oer_decoder.h oer_decoder.c OPEN_TYPE.h +oer_encoder.h oer_encoder.c +oer_support.h oer_support.c +OPEN_TYPE.h OPEN_TYPE_oer.c constr_CHOICE.h +INTEGER.h INTEGER_oer.c +BIT_STRING.h BIT_STRING_oer.c OCTET_STRING.h +OCTET_STRING.h OCTET_STRING_oer.c +NativeInteger.h NativeInteger_oer.c +NativeEnumerated.h NativeEnumerated_oer.c +constr_CHOICE.h constr_CHOICE_oer.c +constr_SEQUENCE.h constr_SEQUENCE_oer.c +constr_SET_OF.h constr_SET_OF_oer.c + +CODEC-PER: # THIS IS A SPECIAL SECTION diff --git a/vcits/asn1c/oer_decoder.h b/vcits/asn1c/oer_decoder.h new file mode 100644 index 0000000..40992e9 --- /dev/null +++ b/vcits/asn1c/oer_decoder.h @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef OER_DECODER_H +#define OER_DECODER_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ +struct asn_codec_ctx_s; /* Forward declaration */ + +/* + * The Octet Encoding Rules (OER, X.696 08/2015) decoder for any given type. + * This function may be invoked directly by the application. + * Parses CANONICAL-OER and BASIC-OER. + */ +asn_dec_rval_t oer_decode(const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of that buffer */ + ); + +/* + * Type of generic function which decodes the byte stream into the structure. + */ +typedef asn_dec_rval_t(oer_type_decoder_f)( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_oer_constraints_t *constraints, + void **struct_ptr, + const void *buf_ptr, + size_t size); + +/* + * Swallow the Open Type (X.696 (08/2015), #30) into /dev/null. + * RETURN VALUES: + * -1: Fatal error deciphering length. + * 0: More data expected than bufptr contains. + * >0: Number of bytes used from bufptr. + */ +ssize_t oer_open_type_skip(const void *bufptr, size_t size); + +/* + * Read the Open Type (X.696 (08/2015), #30). + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering length. + * >0: Number of bytes used from bufptr. + */ +ssize_t oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *td, + const asn_oer_constraints_t *constraints, + void **struct_ptr, const void *bufptr, size_t size); + +/* + * Length-prefixed buffer decoding for primitive types. + */ +oer_type_decoder_f oer_decode_primitive; + + +#ifdef __cplusplus +} +#endif + +#endif /* OER_DECODER_H */ diff --git a/vcits/asn1c/oer_encoder.h b/vcits/asn1c/oer_encoder.h new file mode 100644 index 0000000..6a7b681 --- /dev/null +++ b/vcits/asn1c/oer_encoder.h @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef OER_ENCODER_H +#define OER_ENCODER_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * The Octet Encoding Rules (OER, X.696 08/2015) encoder for any type. + * This function may be invoked directly by the application. + * Produces CANONICAL-OER output compatible with CANONICAL-OER + * and BASIC-OER decoders. + */ +asn_enc_rval_t oer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key /* Arbitrary callback argument */ +); + +/* A variant of oer_encode() which encodes data into the pre-allocated buffer */ +asn_enc_rval_t oer_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_oer_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (maximum) */ +); + +/* + * Type of the generic OER encoder. + */ +typedef asn_enc_rval_t(oer_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_oer_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ + void *app_key /* Arbitrary callback argument */ +); + +/* + * Write out the Open Type (X.696 (08/2015), #30). + * RETURN VALUES: + * -1: Fatal error encoding the type. + * >0: Number of bytes serialized. + */ +ssize_t oer_open_type_put(const struct asn_TYPE_descriptor_s *td, + const asn_oer_constraints_t *constraints, + const void *struct_ptr, + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key); + + +/* + * Length-prefixed buffer encoding for primitive types. + */ +oer_type_encoder_f oer_encode_primitive; + +#ifdef __cplusplus +} +#endif + +#endif /* OER_ENCODER_H */ diff --git a/vcits/asn1c/oer_support.h b/vcits/asn1c/oer_support.h new file mode 100644 index 0000000..dbc9b5f --- /dev/null +++ b/vcits/asn1c/oer_support.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef OER_SUPPORT_H +#define OER_SUPPORT_H + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Pre-computed OER constraints. + */ +typedef struct asn_oer_constraint_number_s { + unsigned width; /* ±8,4,2,1 fixed bytes */ + unsigned positive; /* 1 for unsigned number, 0 for signed */ +} asn_oer_constraint_number_t; +typedef struct asn_oer_constraints_s { + asn_oer_constraint_number_t value; + ssize_t size; /* -1 (no constraint) or >= 0 */ +} asn_oer_constraints_t; + + +/* + * Fetch the length determinant (X.696 (08/2015), #8.6) into *len_r. + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering length. + * >0: Number of bytes used from bufptr. + */ +ssize_t oer_fetch_length(const void *bufptr, size_t size, size_t *len_r); + +/* + * Serialize OER length. Returns the number of bytes serialized + * or -1 if a given callback returned with negative result. + */ +ssize_t oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, void *app_key); + + +#ifdef __cplusplus +} +#endif + +#endif /* OER_SUPPORT_H */ diff --git a/vcits/asn1c/per_decoder.h b/vcits/asn1c/per_decoder.h new file mode 100644 index 0000000..eea474a --- /dev/null +++ b/vcits/asn1c/per_decoder.h @@ -0,0 +1,82 @@ +/*- + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_DECODER_H_ +#define _PER_DECODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Unaligned PER decoder of a "complete encoding" as per X.691 (08/2015) #11.1. + * On success, this call always returns (.consumed >= 1), as per #11.1.3. + */ +asn_dec_rval_t uper_decode_complete( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of data buffer */ +); + +/* + * Unaligned PER decoder of any ASN.1 type. May be invoked by the application. + * WARNING: This call returns the number of BITS read from the stream. Beware. + */ +asn_dec_rval_t uper_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size, /* Size of the input data buffer, in bytes */ + int skip_bits, /* Number of unused leading bits, 0..7 */ + int unused_bits /* Number of unused tailing bits, 0..7 */ +); + +/* + * Aligned PER decoder of a "complete encoding" as per X.691#10.1. + * On success, this call always returns (.consumed >= 1), in BITS, as per X.691#10.1.3. + */ +asn_dec_rval_t aper_decode_complete( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of data buffer */ + ); + +/* + * Aligned PER decoder of any ASN.1 type. May be invoked by the application. + * WARNING: This call returns the number of BITS read from the stream. Beware. + */ +asn_dec_rval_t aper_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size, /* Size of data buffer */ + int skip_bits, /* Number of unused leading bits, 0..7 */ + int unused_bits /* Number of unused tailing bits, 0..7 */ + ); + +/* + * Type of the type-specific PER decoder function. + */ +typedef asn_dec_rval_t(per_type_decoder_f)( + const asn_codec_ctx_t *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, void **struct_ptr, + asn_per_data_t *per_data); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_DECODER_H_ */ diff --git a/vcits/asn1c/per_encoder.h b/vcits/asn1c/per_encoder.h new file mode 100644 index 0000000..b615ef0 --- /dev/null +++ b/vcits/asn1c/per_encoder.h @@ -0,0 +1,93 @@ +/*- + * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_ENCODER_H_ +#define _PER_ENCODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Unaligned PER encoder of any ASN.1 type. May be invoked by the application. + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. Use the following formula to convert to bytes: + * bytes = ((.encoded + 7) / 8) + */ +asn_enc_rval_t uper_encode( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ + void *app_key /* Arbitrary callback argument */ +); + +asn_enc_rval_t aper_encode( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ + void *app_key /* Arbitrary callback argument */ +); + +/* + * A variant of uper_encode() which encodes data into the existing buffer + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. + */ +asn_enc_rval_t uper_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (max) */ +); + +asn_enc_rval_t aper_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (max) */ +); +/* + * A variant of uper_encode_to_buffer() which allocates buffer itself. + * Returns the number of bytes in the buffer or -1 in case of failure. + * WARNING: This function produces a "Production of the complete encoding", + * with length of at least one octet. Contrast this to precise bit-packing + * encoding of uper_encode() and uper_encode_to_buffer(). + */ +ssize_t uper_encode_to_new_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void **buffer_r /* Buffer allocated and returned */ +); + +ssize_t +aper_encode_to_new_buffer( + const struct asn_TYPE_descriptor_s *td, + const asn_per_constraints_t *constraints, + const void *sptr, + void **buffer_r +); + +/* + * Type of the generic PER encoder function. + */ +typedef asn_enc_rval_t(per_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_ENCODER_H_ */ diff --git a/vcits/asn1c/per_opentype.h b/vcits/asn1c/per_opentype.h new file mode 100644 index 0000000..1493b2d --- /dev/null +++ b/vcits/asn1c/per_opentype.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_OPENTYPE_H_ +#define _PER_OPENTYPE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +asn_dec_rval_t uper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + +int uper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, + asn_per_data_t *pd); + +/* + * X.691 (2015/08), #11.2 + * Returns -1 if error is encountered. 0 if all OK. + */ +int uper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po); + +asn_dec_rval_t aper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + + +int aper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, asn_per_data_t *pd); + +int aper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_OPENTYPE_H_ */ diff --git a/vcits/asn1c/per_support.h b/vcits/asn1c/per_support.h new file mode 100644 index 0000000..5203687 --- /dev/null +++ b/vcits/asn1c/per_support.h @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_SUPPORT_H_ +#define _PER_SUPPORT_H_ + +#include /* Platform-specific types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Pre-computed PER constraints. + */ +typedef struct asn_per_constraint_s { + enum asn_per_constraint_flags { + APC_UNCONSTRAINED = 0x0, /* No PER visible constraints */ + APC_SEMI_CONSTRAINED = 0x1, /* Constrained at "lb" */ + APC_CONSTRAINED = 0x2, /* Fully constrained */ + APC_EXTENSIBLE = 0x4 /* May have extension */ + } flags; + int range_bits; /* Full number of bits in the range */ + int effective_bits; /* Effective bits */ + long long lower_bound; /* "lb" value */ + long long upper_bound; /* "ub" value */ +} asn_per_constraint_t; +typedef struct asn_per_constraints_s { + asn_per_constraint_t value; + asn_per_constraint_t size; + int (*value2code)(unsigned int value); + int (*code2value)(unsigned int code); +} asn_per_constraints_t; + +/* Temporary compatibility layer. Will get removed. */ +typedef struct asn_bit_data_s asn_per_data_t; +#define per_get_few_bits(data, bits) asn_get_few_bits(data, bits) +#define per_get_undo(data, bits) asn_get_undo(data, bits) +#define per_get_many_bits(data, dst, align, bits) \ + asn_get_many_bits(data, dst, align, bits) + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Get the length "n" from the Unaligned PER stream. + */ +ssize_t uper_get_length(asn_per_data_t *pd, int effective_bound_bits, + size_t lower_bound, int *repeat); + +ssize_t aper_get_length(asn_per_data_t *pd, int range, + int effective_bound_bits, int *repeat); + +/* + * Get the normally small length "n". + */ +ssize_t uper_get_nslength(asn_per_data_t *pd); +ssize_t aper_get_nslength(asn_per_data_t *pd); + +/* + * Get the normally small non-negative whole number. + */ +ssize_t uper_get_nsnnwn(asn_per_data_t *pd); +ssize_t aper_get_nsnnwn(asn_per_data_t *pd, int range); + +/* X.691-2008/11, #11.5.6 */ +int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *v, int nbits); + + +/* Temporary compatibility layer. Will get removed. */ +typedef struct asn_bit_outp_s asn_per_outp_t; +#define per_put_few_bits(out, bits, obits) asn_put_few_bits(out, bits, obits) +#define per_put_many_bits(out, src, nbits) asn_put_many_bits(out, src, nbits) +#define per_put_aligned_flush(out) asn_put_aligned_flush(out) + + +/* + * Rebase the given value as an offset into the range specified by the + * lower bound (lb) and upper bound (ub). + * RETURN VALUES: + * -1: Conversion failed due to range problems. + * 0: Conversion was successful. + */ +int per_long_range_rebase(long v, long lb, long ub, unsigned long *output); +/* The inverse operation: restores the value by the offset and its bounds. */ +int per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp); + +/* X.691-2008/11, #11.5 */ +int uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, int nbits); + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "whole_length" to the Unaligned PER stream. + * If (opt_need_eom) is given, it will be set to 1 if final 0-length is needed. + * In that case, invoke uper_put_length(po, 0, 0) after encoding the last block. + * This function returns the number of units which may be flushed + * in the next units saving iteration. + */ +ssize_t uper_put_length(asn_per_outp_t *po, size_t whole_length, + int *opt_need_eom); + +ssize_t aper_put_length(asn_per_outp_t *po, int range, size_t length); + +/* Align the current bit position to octet bundary */ +int aper_put_align(asn_per_outp_t *po); +int32_t aper_get_align(asn_per_data_t *pd); + +/* + * Put the normally small length "n" to the Unaligned PER stream. + * Returns 0 or -1. + */ +int uper_put_nslength(asn_per_outp_t *po, size_t length); + +int aper_put_nslength(asn_per_outp_t *po, size_t length); + +/* + * Put the normally small non-negative whole number. + */ +int uper_put_nsnnwn(asn_per_outp_t *po, int n); + +int aper_put_nsnnwn(asn_per_outp_t *po, int range, int number); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_SUPPORT_H_ */ diff --git a/vcits/asn1c/src/ANY.c b/vcits/asn1c/src/ANY.c new file mode 100644 index 0000000..b24d6f4 --- /dev/null +++ b/vcits/asn1c/src/ANY.c @@ -0,0 +1,450 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs = { + sizeof(ANY_t), + offsetof(ANY_t, _asn_ctx), + ASN_OSUBV_ANY +}; +asn_TYPE_operation_t asn_OP_ANY = { + OCTET_STRING_free, + OCTET_STRING_print, + OCTET_STRING_compare, + OCTET_STRING_decode_ber, + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_hex, + ANY_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, 0, 0, 0, +#else + ANY_decode_uper, + ANY_encode_uper, + ANY_decode_aper, + ANY_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + 0, /* Random fill is not defined for ANY type */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_ANY = { + "ANY", + "ANY", + &asn_OP_ANY, + 0, 0, 0, 0, + { 0, 0, asn_generic_no_constraint }, /* No constraints */ + 0, 0, /* No members */ + &asn_SPC_ANY_specs, +}; + +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +asn_enc_rval_t +ANY_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + if(flags & XER_F_CANONICAL) { + /* + * Canonical XER-encoding of ANY type is not supported. + */ + ASN__ENCODE_FAILED; + } + + /* Dump as binary */ + return OCTET_STRING_encode_xer(td, sptr, ilevel, flags, cb, app_key); +} + +struct _callback_arg { + uint8_t *buffer; + size_t offset; + size_t size; +}; + +static int ANY__consume_bytes(const void *buffer, size_t size, void *key); + +int +ANY_fromType(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { + struct _callback_arg arg; + asn_enc_rval_t erval; + + if(!st || !td) { + errno = EINVAL; + return -1; + } + + if(!sptr) { + if(st->buf) FREEMEM(st->buf); + st->size = 0; + return 0; + } + + arg.offset = arg.size = 0; + arg.buffer = 0; + + erval = der_encode(td, sptr, ANY__consume_bytes, &arg); + if(erval.encoded == -1) { + if(arg.buffer) FREEMEM(arg.buffer); + return -1; + } + assert((size_t)erval.encoded == arg.offset); + + if(st->buf) FREEMEM(st->buf); + st->buf = arg.buffer; + st->size = arg.offset; + + return 0; +} + +int +ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { + uint8_t *buffer = NULL; + ssize_t erval; + + if(!st || !td) { + errno = EINVAL; + return -1; + } + + if(!sptr) { + if(st->buf) FREEMEM(st->buf); + st->size = 0; + return 0; + } + + erval = aper_encode_to_new_buffer(td, td->encoding_constraints.per_constraints, sptr, (void**)&buffer); + + if(erval == -1) { + if(buffer) FREEMEM(buffer); + return -1; + } + assert((size_t)erval > 0); + + if(st->buf) FREEMEM(st->buf); + st->buf = buffer; + st->size = erval; + + return 0; +} + +ANY_t * +ANY_new_fromType(asn_TYPE_descriptor_t *td, void *sptr) { + ANY_t tmp; + ANY_t *st; + + if(!td || !sptr) { + errno = EINVAL; + return 0; + } + + memset(&tmp, 0, sizeof(tmp)); + + if(ANY_fromType(&tmp, td, sptr)) return 0; + + st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); + if(st) { + *st = tmp; + return st; + } else { + FREEMEM(tmp.buf); + return 0; + } +} + +ANY_t * +ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr) { + ANY_t tmp; + ANY_t *st; + + if(!td || !sptr) { + errno = EINVAL; + return 0; + } + + memset(&tmp, 0, sizeof(tmp)); + + if(ANY_fromType_aper(&tmp, td, sptr)) return 0; + + st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); + if(st) { + *st = tmp; + return st; + } else { + FREEMEM(tmp.buf); + return 0; + } +} + +int +ANY_to_type(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { + asn_dec_rval_t rval; + void *newst = 0; + + if(!st || !td || !struct_ptr) { + errno = EINVAL; + return -1; + } + + if(st->buf == 0) { + /* Nothing to convert, make it empty. */ + *struct_ptr = (void *)0; + return 0; + } + + rval = ber_decode(0, td, (void **)&newst, st->buf, st->size); + if(rval.code == RC_OK) { + *struct_ptr = newst; + return 0; + } else { + /* Remove possibly partially decoded data. */ + ASN_STRUCT_FREE(*td, newst); + return -1; + } +} + +int +ANY_to_type_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { + asn_dec_rval_t rval; + void *newst = 0; + + if(!st || !td || !struct_ptr) { + errno = EINVAL; + return -1; + } + + if(st->buf == 0) { + /* Nothing to convert, make it empty. */ + *struct_ptr = (void *)0; + return 0; + } + + rval = aper_decode(0, td, (void **)&newst, st->buf, st->size, 0, 0); + if(rval.code == RC_OK) { + *struct_ptr = newst; + return 0; + } else { + /* Remove possibly partially decoded data. */ + ASN_STRUCT_FREE(*td, newst); + return -1; + } +} + +static int ANY__consume_bytes(const void *buffer, size_t size, void *key) { + struct _callback_arg *arg = (struct _callback_arg *)key; + + if((arg->offset + size) >= arg->size) { + size_t nsize = (arg->size ? arg->size << 2 : 16) + size; + void *p = REALLOC(arg->buffer, nsize); + if(!p) return -1; + arg->buffer = (uint8_t *)p; + arg->size = nsize; + } + + memcpy(arg->buffer + arg->offset, buffer, size); + arg->offset += size; + assert(arg->offset < arg->size); + + return 0; +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_ANY_specs; + size_t consumed_myself = 0; + int repeat; + ANY_t *st = (ANY_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + + /* + * Allocate the structure. + */ + if(!st) { + st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("UPER Decoding ANY type"); + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, -1, 0, &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len; + len_bits = len_bytes * 8; + + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += len_bits; + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + RETURN(RC_OK); +} + +asn_enc_rval_t +ANY_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const ANY_t *st = (const ANY_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + const uint8_t *buf; + size_t size; + int ret; + + (void)constraints; + + if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; + + buf = st->buf; + size = st->size; + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ret = per_put_many_bits(po, buf, may_save * 8); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save; + size -= may_save; + assert(!(may_save & 0x07) || !size); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size); + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_ANY_specs; + size_t consumed_myself = 0; + int repeat; + ANY_t *st = (ANY_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + + /* + * Allocate the structure. + */ + if(!st) { + st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("APER Decoding ANY type"); + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = aper_get_length(pd, -1, 0, &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len; + len_bits = len_bytes * 8; + + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += len_bits; + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + RETURN(RC_OK); +} + +asn_enc_rval_t +ANY_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const ANY_t *st = (const ANY_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + const uint8_t *buf; + size_t size; + int ret; + + (void)constraints; + + if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; + + buf = st->buf; + size = st->size; + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ret = per_put_many_bits(po, buf, may_save * 8); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save; + size -= may_save; + assert(!(may_save & 0x07) || !size); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size); + + ASN__ENCODED_OK(er); +} +#endif /* ASN_DISABLE_PER_SUPPORT */ + diff --git a/vcits/asn1c/src/BIT_STRING.c b/vcits/asn1c/src/BIT_STRING.c new file mode 100644 index 0000000..87246f1 --- /dev/null +++ b/vcits/asn1c/src/BIT_STRING.c @@ -0,0 +1,656 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * BIT STRING basic type description. + */ +static const ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs = { + sizeof(BIT_STRING_t), + offsetof(BIT_STRING_t, _asn_ctx), + ASN_OSUBV_BIT +}; +asn_TYPE_operation_t asn_OP_BIT_STRING = { + OCTET_STRING_free, /* Implemented in terms of OCTET STRING */ + BIT_STRING_print, + BIT_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_decode_xer_binary, + BIT_STRING_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + BIT_STRING_decode_oer, + BIT_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + BIT_STRING_decode_uper, /* Unaligned PER decoder */ + BIT_STRING_encode_uper, /* Unaligned PER encoder */ + OCTET_STRING_decode_aper, /* Aligned PER decoder */ + OCTET_STRING_encode_aper, /* Aligned PER encoder */ +#endif /* ASN_DISABLE_PER_SUPPORT */ + BIT_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_BIT_STRING = { + "BIT STRING", + "BIT_STRING", + &asn_OP_BIT_STRING, + asn_DEF_BIT_STRING_tags, + sizeof(asn_DEF_BIT_STRING_tags) + / sizeof(asn_DEF_BIT_STRING_tags[0]), + asn_DEF_BIT_STRING_tags, /* Same as above */ + sizeof(asn_DEF_BIT_STRING_tags) + / sizeof(asn_DEF_BIT_STRING_tags[0]), + { 0, 0, BIT_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs +}; + +/* + * BIT STRING generic constraint. + */ +int +BIT_STRING_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + + if(st && st->buf) { + if((st->size == 0 && st->bits_unused) + || st->bits_unused < 0 || st->bits_unused > 7) { + ASN__CTFAIL(app_key, td, sptr, + "%s: invalid padding byte (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} + +static const char *_bit_pattern[16] = { + "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", + "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" +}; + +asn_enc_rval_t +BIT_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er; + char scratch[128]; + char *p = scratch; + char *scend = scratch + (sizeof(scratch) - 10); + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + int xcan = (flags & XER_F_CANONICAL); + uint8_t *buf; + uint8_t *end; + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + buf = st->buf; + end = buf + st->size - 1; /* Last byte is special */ + + /* + * Binary dump + */ + for(; buf < end; buf++) { + int v = *buf; + int nline = xcan?0:(((buf - st->buf) % 8) == 0); + if(p >= scend || nline) { + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + if(nline) ASN__TEXT_INDENT(1, ilevel); + } + memcpy(p + 0, _bit_pattern[v >> 4], 4); + memcpy(p + 4, _bit_pattern[v & 0x0f], 4); + p += 8; + } + + if(!xcan && ((buf - st->buf) % 8) == 0) + ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + + if(buf == end) { + int v = *buf; + int ubits = st->bits_unused; + int i; + for(i = 7; i >= ubits; i--) + *p++ = (v & (1 << i)) ? 0x31 : 0x30; + ASN__CALLBACK(scratch, p - scratch); + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + + +/* + * BIT STRING specific contents printer. + */ +int +BIT_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + char scratch[64]; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + uint8_t *buf; + uint8_t *end; + char *p = scratch; + + (void)td; /* Unused argument */ + + if(!st || !st->buf) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + ilevel++; + buf = st->buf; + end = buf + st->size; + + /* + * Hexadecimal dump. + */ + for(; buf < end; buf++) { + if((buf - st->buf) % 16 == 0 && (st->size > 16) + && buf != st->buf) { + _i_INDENT(1); + /* Dump the string */ + if(cb(scratch, p - scratch, app_key) < 0) return -1; + p = scratch; + } + *p++ = h2c[*buf >> 4]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + + if(p > scratch) { + p--; /* Eat the tailing space */ + + if((st->size > 16)) { + _i_INDENT(1); + } + + /* Dump the incomplete 16-bytes row */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + } + + if(st->bits_unused) { + int ret = snprintf(scratch, sizeof(scratch), " (%d bit%s unused)", + st->bits_unused, st->bits_unused == 1 ? "" : "s"); + assert(ret > 0 && ret < (ssize_t)sizeof(scratch)); + if(ret > 0 && ret < (ssize_t)sizeof(scratch) + && cb(scratch, ret, app_key) < 0) + return -1; + } + + return 0; +} + +/* + * Non-destructively remove the trailing 0-bits from the given bit string. + */ +static const BIT_STRING_t * +BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp) { + const uint8_t *b; + union { + const uint8_t *c_buf; + uint8_t *nc_buf; + } unconst; + + if(st->size == 0) { + assert(st->bits_unused == 0); + return st; + } else { + for(b = &st->buf[st->size - 1]; b > st->buf && *b == 0; b--) { + ; + } + /* b points to the last byte which may contain data */ + if(*b) { + int unused = 7; + uint8_t v = *b; + v &= -(int8_t)v; + if(v & 0x0F) unused -= 4; + if(v & 0x33) unused -= 2; + if(v & 0x55) unused -= 1; + tmp->size = b-st->buf + 1; + tmp->bits_unused = unused; + } else { + tmp->size = b-st->buf; + tmp->bits_unused = 0; + } + + assert(b >= st->buf); + } + + unconst.c_buf = st->buf; + tmp->buf = unconst.nc_buf; + return tmp; +} + +/* + * Lexicographically compare the common prefix of both strings, + * and if it is the same return -1 for the smallest string. + */ +int +BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + /* + * Remove information about trailing bits, since + * X.680 (08/2015) #22.7 "ensure that different semantics are not" + * "associated with [values that differ only in] the trailing 0 bits." + */ + BIT_STRING_t compact_a, compact_b; + const BIT_STRING_t *a = BIT_STRING__compactify(aptr, &compact_a); + const BIT_STRING_t *b = BIT_STRING__compactify(bptr, &compact_b); + const asn_OCTET_STRING_specifics_t *specs = td->specifics; + + assert(specs && specs->subvariant == ASN_OSUBV_BIT); + + if(a && b) { + size_t common_prefix_size = a->size <= b->size ? a->size : b->size; + int ret = memcmp(a->buf, b->buf, common_prefix_size); + if(ret == 0) { + /* Figure out which string with equal prefixes is longer. */ + if(a->size < b->size) { + return -1; + } else if(a->size > b->size) { + return 1; + } else { + /* Figure out how many unused bits */ + if(a->bits_unused > b->bits_unused) { + return -1; + } else if(a->bits_unused < b->bits_unused) { + return 1; + } else { + return 0; + } + } + } else { + return ret; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +static asn_per_constraint_t asn_DEF_BIT_STRING_constraint_size = { + APC_SEMI_CONSTRAINED, -1, -1, 0, 0}; + +asn_dec_rval_t +BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + + (void)opt_codec_ctx; + + if(pc) { + csiz = &pc->size; + } else { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + + if(specs->subvariant != ASN_OSUBV_BIT) { + ASN_DEBUG("Subvariant %d is not BIT OSUBV_BIT", specs->subvariant); + RETURN(RC_FAIL); + } + + /* + * Allocate the string. + */ + if(!st) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + st->size = (csiz->upper_bound + 7) >> 3; + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + ASN_DEBUG("Encoding BIT STRING size %ld", csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, csiz->upper_bound); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += csiz->upper_bound; + st->buf[st->size] = 0; + st->bits_unused = (8 - (csiz->upper_bound & 0x7)) & 0x7; + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, + &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + len_bits = raw_len; + len_bytes = (len_bits + 7) >> 3; + if(len_bits & 0x7) st->bits_unused = 8 - (len_bits & 0x7); + /* len_bits be multiple of 16K if repeat is set */ + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +BIT_STRING_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *csiz; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + BIT_STRING_t compact_bstr; /* Do not modify this directly! */ + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + size_t size_in_bits; + const uint8_t *buf; + int ret; + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(specs->subvariant == ASN_OSUBV_BIT) { + if((st->size == 0 && st->bits_unused) || (st->bits_unused & ~7)) + ASN__ENCODE_FAILED; + } else { + ASN__ENCODE_FAILED; + } + + if(pc) { + csiz = &pc->size; + } else { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + /* Figure out the size without the trailing bits */ + st = BIT_STRING__compactify(st, &compact_bstr); + size_in_bits = 8 * st->size - st->bits_unused; + + ASN_DEBUG( + "Encoding %s into %" ASN_PRI_SIZE " bits" + " (%ld..%ld, effective %d)%s", + td->name, size_in_bits, csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out whether size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((ssize_t)size_in_bits > csiz->upper_bound) { + if(ct_extensible) { + csiz = &asn_DEF_BIT_STRING_constraint_size; + inext = 1; + } else { + ASN__ENCODE_FAILED; + } + } + } else { + inext = 0; + } + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + } + + if(csiz->effective_bits >= 0 && !inext) { + int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound; + ASN_DEBUG( + "Encoding %" ASN_PRI_SIZE " bytes (%ld), length (in %d bits) trailer %d; actual " + "value %" ASN_PRI_SSIZE "", + st->size, size_in_bits - csiz->lower_bound, csiz->effective_bits, + add_trailer, + add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound); + ret = per_put_few_bits( + po, add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound, + csiz->effective_bits); + if(ret) ASN__ENCODE_FAILED; + ret = per_put_many_bits(po, st->buf, size_in_bits); + if(ret) ASN__ENCODE_FAILED; + if(add_trailer) { + static const uint8_t zeros[16]; + size_t trailing_zero_bits = csiz->lower_bound - size_in_bits; + while(trailing_zero_bits > 0) { + if(trailing_zero_bits > 8 * sizeof(zeros)) { + ret = per_put_many_bits(po, zeros, 8 * sizeof(zeros)); + trailing_zero_bits -= 8 * sizeof(zeros); + } else { + ret = per_put_many_bits(po, zeros, trailing_zero_bits); + trailing_zero_bits = 0; + } + if(ret) ASN__ENCODE_FAILED; + } + } + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); + + buf = st->buf; + do { + int need_eom = 0; + ssize_t maySave = uper_put_length(po, size_in_bits, &need_eom); + if(maySave < 0) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "", maySave, size_in_bits); + + ret = per_put_many_bits(po, buf, maySave); + if(ret) ASN__ENCODE_FAILED; + + buf += maySave >> 3; + size_in_bits -= maySave; + assert(!(maySave & 0x07) || !size_in_bits); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size_in_bits); + + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +asn_random_fill_result_t +BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + static unsigned lengths[] = {0, 1, 2, 3, 4, 8, + 126, 127, 128, 16383, 16384, 16385, + 65534, 65535, 65536, 65537}; + uint8_t *buf; + uint8_t *bend; + uint8_t *b; + size_t rnd_bits, rnd_len; + BIT_STRING_t *st; + + if(max_length == 0) return result_skipped; + + switch(specs->subvariant) { + case ASN_OSUBV_ANY: + return result_failed; + case ASN_OSUBV_BIT: + break; + default: + break; + } + + /* Figure out how far we should go */ + rnd_bits = lengths[asn_random_between( + 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_CONSTRAINED) { + long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length + ? pc->upper_bound + : (ssize_t)max_length; + if(max_length < (size_t)pc->lower_bound) { + return result_skipped; + } + if(pc->flags & APC_EXTENSIBLE) { + switch(asn_random_between(0, 5)) { + case 0: + if(pc->lower_bound > 0) { + rnd_bits = pc->lower_bound - 1; + break; + } + /* Fall through */ + case 1: + rnd_bits = pc->upper_bound + 1; + break; + case 2: + /* Keep rnd_bits from the table */ + if(rnd_bits < max_length) { + break; + } + /* Fall through */ + default: + rnd_bits = asn_random_between(pc->lower_bound, + suggested_upper_bound); + } + } else { + rnd_bits = + asn_random_between(pc->lower_bound, suggested_upper_bound); + } + } else { + rnd_bits = asn_random_between(0, max_length - 1); + } + } else if(rnd_bits >= max_length) { + rnd_bits = asn_random_between(0, max_length - 1); + } + + rnd_len = (rnd_bits + 7) / 8; + buf = CALLOC(1, rnd_len + 1); + if(!buf) return result_failed; + + bend = &buf[rnd_len]; + + for(b = buf; b < bend; b++) { + *(uint8_t *)b = asn_random_between(0, 255); + } + *b = 0; /* Zero-terminate just in case. */ + + if(*sptr) { + st = *sptr; + FREEMEM(st->buf); + } else { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) { + FREEMEM(buf); + return result_failed; + } + } + + st->buf = buf; + st->size = rnd_len; + st->bits_unused = (8 - (rnd_bits & 0x7)) & 0x7; + if(st->bits_unused) { + assert(st->size > 0); + st->buf[st->size-1] &= 0xff << st->bits_unused; + } + + result_ok.length = st->size; + return result_ok; +} diff --git a/vcits/asn1c/src/BIT_STRING_oer.c b/vcits/asn1c/src/BIT_STRING_oer.c new file mode 100644 index 0000000..aff5075 --- /dev/null +++ b/vcits/asn1c/src/BIT_STRING_oer.c @@ -0,0 +1,174 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_DISABLE_OER_SUPPORT + +#include +#include +#include + +asn_dec_rval_t +BIT_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **sptr, + const void *ptr, size_t size) { + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + const asn_oer_constraints_t *cts = + constraints ? constraints : td->encoding_constraints.oer_constraints; + ssize_t ct_size = cts ? cts->size : -1; + asn_dec_rval_t rval = {RC_OK, 0}; + size_t expected_length = 0; + + (void)opt_codec_ctx; + + if(!st) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + if(ct_size >= 0) { + expected_length = (ct_size + 7) >> 3; + st->bits_unused = (8 - (ct_size & 7)) & 7; + } else { + /* + * X.696 (08/2015) #13.3.1 + * Encode length determinant as _number of octets_, but only + * if upper bound is not equal to lower bound. + */ + ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); + if(len_len > 0) { + ptr = (const char *)ptr + len_len; + size -= len_len; + } else if(len_len == 0) { + ASN__DECODE_STARVED; + } else if(len_len < 0) { + ASN__DECODE_FAILED; + } + + if(expected_length < 1) { + ASN__DECODE_FAILED; + } else if(expected_length > size) { + ASN__DECODE_STARVED; + } + + st->bits_unused = ((const uint8_t *)ptr)[0]; + if(st->bits_unused & ~7) { + ASN_DEBUG("%s: unused bits outside of 0..7 range", td->name); + ASN__DECODE_FAILED; + } + ptr = (const char *)ptr + 1; + size--; + expected_length--; + rval.consumed = len_len + 1; + } + + if(size < expected_length) { + ASN__DECODE_STARVED; + } else { + uint8_t *buf = MALLOC(expected_length + 1); + if(buf == NULL) { + ASN__DECODE_FAILED; + } else { + memcpy(buf, ptr, expected_length); + buf[expected_length] = '\0'; + } + FREEMEM(st->buf); + st->buf = buf; + st->size = expected_length; + if(expected_length > 0) { + buf[expected_length - 1] &= (0xff << st->bits_unused); + } + + rval.consumed += expected_length; + return rval; + } +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +BIT_STRING_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, + void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + asn_enc_rval_t erval = {0, 0, 0}; + const asn_oer_constraints_t *cts = + constraints ? constraints : td->encoding_constraints.oer_constraints; + ssize_t ct_size = cts ? cts->size : -1; + size_t trailing_zeros = 0; + int fix_last_byte = 0; + + if(!st) ASN__ENCODE_FAILED; + + if(st->bits_unused & ~7) { + ASN_DEBUG("BIT STRING unused bits %d out of 0..7 range", + st->bits_unused); + ASN__ENCODE_FAILED; + } + if(st->bits_unused && !(st->size && st->buf)) { + ASN_DEBUG("BIT STRING %s size 0 can't support unused bits %d", td->name, + st->bits_unused); + ASN__ENCODE_FAILED; + } + + if(ct_size >= 0) { + size_t ct_bytes = (ct_size + 7) >> 3; + if(st->size > ct_bytes) { + ASN_DEBUG("More bits in BIT STRING %s (%" ASN_PRI_SSIZE ") than constrained %" ASN_PRI_SSIZE "", + td->name, 8 * st->size - st->bits_unused, ct_size); + ASN__ENCODE_FAILED; + } + trailing_zeros = ct_bytes - st->size; /* Allow larger constraint */ + } else { + uint8_t ub = st->bits_unused & 7; + ssize_t len_len = oer_serialize_length(1 + st->size, cb, app_key); + if(len_len < 0) ASN__ENCODE_FAILED; + if(cb(&ub, 1, app_key) < 0) { + ASN__ENCODE_FAILED; + } + erval.encoded += len_len + 1; + } + + if(st->bits_unused) { + if(st->buf[st->size - 1] & (0xff << st->bits_unused)) { + fix_last_byte = 1; + } + } + + if(cb(st->buf, st->size - fix_last_byte, app_key) < 0) { + ASN__ENCODE_FAILED; + } + + if(fix_last_byte) { + uint8_t b = st->buf[st->size - 1] & (0xff << st->bits_unused); + if(cb(&b, 1, app_key) < 0) { + ASN__ENCODE_FAILED; + } + } + + erval.encoded += st->size; + + if(trailing_zeros) { + static uint8_t zeros[16]; + while(trailing_zeros > 0) { + int ret; + if(trailing_zeros < sizeof(zeros)) { + ret = cb(zeros, trailing_zeros, app_key); + erval.encoded += trailing_zeros; + } else { + ret = cb(zeros, sizeof(zeros), app_key); + erval.encoded += sizeof(zeros); + } + if(ret < 0) ASN__ENCODE_FAILED; + } + } + + return erval; +} + + +#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/vcits/asn1c/src/BMPString.c b/vcits/asn1c/src/BMPString.c new file mode 100644 index 0000000..3273216 --- /dev/null +++ b/vcits/asn1c/src/BMPString.c @@ -0,0 +1,233 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * BMPString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_BMPString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (30 << 2)), /* [UNIVERSAL 30] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +asn_OCTET_STRING_specifics_t asn_SPC_BMPString_specs = { + sizeof(BMPString_t), + offsetof(BMPString_t, _asn_ctx), + ASN_OSUBV_U16 /* 16-bits character */ +}; +static asn_per_constraints_t asn_DEF_BMPString_per_constraints = { + { APC_CONSTRAINED, 16, 16, 0, 65535 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, + 0, 0 +}; +asn_TYPE_operation_t asn_OP_BMPString = { + OCTET_STRING_free, /* Implemented in terms of OCTET STRING */ + BMPString_print, + OCTET_STRING_compare, + OCTET_STRING_decode_ber, + OCTET_STRING_encode_der, + BMPString_decode_xer, /* Convert from UTF-8 */ + BMPString_encode_xer, /* Convert to UTF-8 */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_BMPString = { + "BMPString", + "BMPString", + &asn_OP_BMPString, + asn_DEF_BMPString_tags, + sizeof(asn_DEF_BMPString_tags) + / sizeof(asn_DEF_BMPString_tags[0]) - 1, + asn_DEF_BMPString_tags, + sizeof(asn_DEF_BMPString_tags) + / sizeof(asn_DEF_BMPString_tags[0]), + { 0, &asn_DEF_BMPString_per_constraints, BMPString_constraint }, + 0, 0, /* No members */ + &asn_SPC_BMPString_specs +}; + +int +BMPString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BMPString_t *st = (const BMPString_t *)sptr; + + if(st && st->buf) { + if(st->size & 1) { + ASN__CTFAIL(app_key, td, sptr, + "%s: invalid size %" ASN_PRI_SIZE " not divisible by 2 (%s:%d)", + td->name, st->size, __FILE__, __LINE__); + return -1; + } + } else { + ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, + __FILE__, __LINE__); + return -1; + } + + return 0; +} + +/* + * BMPString specific contents printer. + */ +static ssize_t +BMPString__dump(const BMPString_t *st, + asn_app_consume_bytes_f *cb, void *app_key) { + char scratch[128]; /* Scratchpad buffer */ + char *p = scratch; + ssize_t wrote = 0; + uint8_t *ch; + uint8_t *end; + + ch = st->buf; + end = (st->buf + st->size); + for(end--; ch < end; ch += 2) { + uint16_t wc = (ch[0] << 8) | ch[1]; /* 2 bytes */ + if(sizeof(scratch) - (p - scratch) < 3) { + wrote += p - scratch; + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + p = scratch; + } + if(wc < 0x80) { + *p++ = (char)wc; + } else if(wc < 0x800) { + *p++ = 0xc0 | ((wc >> 6)); + *p++ = 0x80 | ((wc & 0x3f)); + } else { + *p++ = 0xe0 | ((wc >> 12)); + *p++ = 0x80 | ((wc >> 6) & 0x3f); + *p++ = 0x80 | ((wc & 0x3f)); + } + } + + wrote += p - scratch; + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + + return wrote; +} + +asn_dec_rval_t +BMPString_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + asn_dec_rval_t rc; + + rc = OCTET_STRING_decode_xer_utf8(opt_codec_ctx, td, sptr, opt_mname, + buf_ptr, size); + if(rc.code == RC_OK) { + /* + * Now we have a whole string in UTF-8 format. + * Convert it into UCS-2. + */ + uint32_t *wcs; + size_t wcs_len; + UTF8String_t *st; + + assert(*sptr); + st = (UTF8String_t *)*sptr; + assert(st->buf); + wcs_len = UTF8String_to_wcs(st, 0, 0); + + wcs = (uint32_t *)MALLOC(4 * (wcs_len + 1)); + if(wcs == 0 || UTF8String_to_wcs(st, wcs, wcs_len) != wcs_len) { + rc.code = RC_FAIL; + rc.consumed = 0; + return rc; + } else { + wcs[wcs_len] = 0; /* nul-terminate */ + } + + if(1) { + /* Swap byte order and trim encoding to 2 bytes */ + uint32_t *wc = wcs; + uint32_t *wc_end = wcs + wcs_len; + uint16_t *dstwc = (uint16_t *)wcs; + for(; wc < wc_end; wc++, dstwc++) { + uint32_t wch = *wc; + if(wch > 0xffff) { + FREEMEM(wcs); + rc.code = RC_FAIL; + rc.consumed = 0; + return rc; + } + *((uint8_t *)dstwc + 0) = wch >> 8; + *((uint8_t *)dstwc + 1) = wch; + } + dstwc = (uint16_t *)REALLOC(wcs, 2 * (wcs_len + 1)); + if(!dstwc) { + FREEMEM(wcs); + rc.code = RC_FAIL; + rc.consumed = 0; + return rc; + } else { + dstwc[wcs_len] = 0; /* nul-terminate */ + wcs = (uint32_t *)(void *)dstwc; /* Alignment OK */ + } + } + + FREEMEM(st->buf); + st->buf = (uint8_t *)wcs; + st->size = 2 * wcs_len; + } + return rc; +} + +asn_enc_rval_t +BMPString_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const BMPString_t *st = (const BMPString_t *)sptr; + asn_enc_rval_t er; + + (void)ilevel; + (void)flags; + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = BMPString__dump(st, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +int +BMPString_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const BMPString_t *st = (const BMPString_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(!st || !st->buf) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + if(BMPString__dump(st, cb, app_key) < 0) + return -1; + + return 0; +} + diff --git a/vcits/asn1c/src/BOOLEAN.c b/vcits/asn1c/src/BOOLEAN.c new file mode 100644 index 0000000..1bb7f7d --- /dev/null +++ b/vcits/asn1c/src/BOOLEAN.c @@ -0,0 +1,492 @@ +/*- + * Copyright (c) 2003, 2005 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * BOOLEAN basic type description. + */ +static const ber_tlv_tag_t asn_DEF_BOOLEAN_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_operation_t asn_OP_BOOLEAN = { + BOOLEAN_free, + BOOLEAN_print, + BOOLEAN_compare, + BOOLEAN_decode_ber, + BOOLEAN_encode_der, + BOOLEAN_decode_xer, + BOOLEAN_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + BOOLEAN_decode_oer, + BOOLEAN_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + BOOLEAN_decode_uper, /* Unaligned PER decoder */ + BOOLEAN_encode_uper, /* Unaligned PER encoder */ + BOOLEAN_decode_aper, /* Aligned PER decoder */ + BOOLEAN_encode_aper, /* Aligned PER encoder */ +#endif /* ASN_DISABLE_PER_SUPPORT */ + BOOLEAN_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_BOOLEAN = { + "BOOLEAN", + "BOOLEAN", + &asn_OP_BOOLEAN, + asn_DEF_BOOLEAN_tags, + sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]), + asn_DEF_BOOLEAN_tags, /* Same as above */ + sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +/* + * Decode BOOLEAN type. + */ +asn_dec_rval_t +BOOLEAN_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **bool_value, + const void *buf_ptr, size_t size, int tag_mode) { + BOOLEAN_t *st = (BOOLEAN_t *)*bool_value; + asn_dec_rval_t rval; + ber_tlv_len_t length; + ber_tlv_len_t lidx; + + if(st == NULL) { + st = (BOOLEAN_t *)(*bool_value = CALLOC(1, sizeof(*st))); + if(st == NULL) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + } + + ASN_DEBUG("Decoding %s as BOOLEAN (tm=%d)", + td->name, tag_mode); + + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, + tag_mode, 0, &length, 0); + if(rval.code != RC_OK) + return rval; + + ASN_DEBUG("Boolean length is %d bytes", (int)length); + + buf_ptr = ((const char *)buf_ptr) + rval.consumed; + size -= rval.consumed; + if(length > (ber_tlv_len_t)size) { + rval.code = RC_WMORE; + rval.consumed = 0; + return rval; + } + + /* + * Compute boolean value. + */ + for(*st = 0, lidx = 0; + (lidx < length) && *st == 0; lidx++) { + /* + * Very simple approach: read bytes until the end or + * value is already TRUE. + * BOOLEAN is not supposed to contain meaningful data anyway. + */ + *st |= ((const uint8_t *)buf_ptr)[lidx]; + } + + rval.code = RC_OK; + rval.consumed += length; + + ASN_DEBUG("Took %ld/%ld bytes to encode %s, value=%d", + (long)rval.consumed, (long)length, + td->name, *st); + + return rval; +} + +asn_enc_rval_t +BOOLEAN_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t erval; + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + + erval.encoded = der_write_tags(td, 1, tag_mode, 0, tag, cb, app_key); + if(erval.encoded == -1) { + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + + if(cb) { + uint8_t bool_value; + + bool_value = *st ? 0xff : 0; /* 0xff mandated by DER */ + + if(cb(&bool_value, 1, app_key) < 0) { + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + } + + erval.encoded += 1; + + ASN__ENCODED_OK(erval); +} + + +/* + * Decode the chunk of XML text encoding INTEGER. + */ +static enum xer_pbd_rval +BOOLEAN__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + BOOLEAN_t *st = (BOOLEAN_t *)sptr; + const char *p = (const char *)chunk_buf; + + (void)td; + + if(chunk_size && p[0] == 0x3c /* '<' */) { + switch(xer_check_tag(chunk_buf, chunk_size, "false")) { + case XCT_BOTH: + /* "" */ + *st = 0; + break; + case XCT_UNKNOWN_BO: + if(xer_check_tag(chunk_buf, chunk_size, "true") + != XCT_BOTH) + return XPBD_BROKEN_ENCODING; + /* "" */ + *st = 1; /* Or 0xff as in DER?.. */ + break; + default: + return XPBD_BROKEN_ENCODING; + } + return XPBD_BODY_CONSUMED; + } else { + return XPBD_BROKEN_ENCODING; + } +} + + +asn_dec_rval_t +BOOLEAN_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(BOOLEAN_t), opt_mname, buf_ptr, size, + BOOLEAN__xer_body_decode); +} + +asn_enc_rval_t +BOOLEAN_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + + (void)ilevel; + (void)flags; + + if(!st) ASN__ENCODE_FAILED; + + if(*st) { + ASN__CALLBACK("", 7); + } else { + ASN__CALLBACK("", 8); + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +int +BOOLEAN_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + const char *buf; + size_t buflen; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st) { + if(*st) { + buf = "TRUE"; + buflen = 4; + } else { + buf = "FALSE"; + buflen = 5; + } + } else { + buf = ""; + buflen = 8; + } + + return (cb(buf, buflen, app_key) < 0) ? -1 : 0; +} + +void +BOOLEAN_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(td && ptr) { + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, sizeof(BOOLEAN_t)); + break; + } + } +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +BOOLEAN_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + BOOLEAN_t *st = (BOOLEAN_t *)*sptr; + + (void)opt_codec_ctx; + (void)td; + (void)constraints; + + if(!st) { + st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + /* + * Extract a single bit + */ + switch(per_get_few_bits(pd, 1)) { + case 1: *st = 1; break; + case 0: *st = 0; break; + case -1: default: ASN__DECODE_STARVED; + } + + ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE"); + + rv.code = RC_OK; + rv.consumed = 1; + return rv; +} + + +asn_enc_rval_t +BOOLEAN_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + + (void)constraints; + + if(!st) ASN__ENCODE_FAILED; + + if(per_put_few_bits(po, *st ? 1 : 0, 1)) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +BOOLEAN_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv; + BOOLEAN_t *st = (BOOLEAN_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + (void)td; + + if(!st) { + st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + /* + * Extract a single bit + */ + switch(per_get_few_bits(pd, 1)) { + case 1: + *st = 1; + break; + case 0: + *st = 0; + break; + case -1: + default: + ASN__DECODE_STARVED; + } + + ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE"); + + rv.code = RC_OK; + rv.consumed = 1; + return rv; +} + +asn_enc_rval_t +BOOLEAN_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + + (void)constraints; + + if(!st) ASN__ENCODE_FAILED; + + if(per_put_few_bits(po, *st ? 1 : 0, 1)) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +#ifndef ASN_DISABLE_OER_SUPPORT + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +BOOLEAN_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = { 1, 0, 0 }; + const BOOLEAN_t *st = sptr; + uint8_t bool_value = *st ? 0xff : 0; /* 0xff mandated by OER */ + + (void)td; + (void)constraints; /* Constraints are unused in OER */ + + if(cb(&bool_value, 1, app_key) < 0) { + ASN__ENCODE_FAILED; + } else { + ASN__ENCODED_OK(er); + } +} + +asn_dec_rval_t +BOOLEAN_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **sptr, + const void *ptr, size_t size) { + asn_dec_rval_t ok = {RC_OK, 1}; + BOOLEAN_t *st; + + (void)opt_codec_ctx; + (void)td; + (void)constraints; /* Constraints are unused in OER */ + + if(size < 1) { + ASN__DECODE_STARVED; + } + + if(!(st = *sptr)) { + st = (BOOLEAN_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + *st = *(const uint8_t *)ptr; + + return ok; +} + + + +#endif + +int +BOOLEAN_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const BOOLEAN_t *a = aptr; + const BOOLEAN_t *b = bptr; + + (void)td; + + if(a && b) { + if(!*a == !*b) { /* TRUE can be encoded by any non-zero byte. */ + return 0; + } else if(!*a) { + return -1; + } else { + return 1; + } + } else if(!a) { + return -1; + } else { + return 1; + } +} + +asn_random_fill_result_t +BOOLEAN_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + BOOLEAN_t *st = *sptr; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (BOOLEAN_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(st == NULL) { + return result_failed; + } + } + + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->value; + if(pc->flags & APC_CONSTRAINED) { + *st = asn_random_between(pc->lower_bound, pc->upper_bound); + return result_ok; + } + } + + /* Simulate booleans that are sloppily set and biased. */ + switch(asn_random_between(0, 7)) { + case 0: + case 1: + case 2: + *st = 0; break; + case 3: *st = -1; break; + case 4: *st = 1; break; + case 5: *st = INT_MIN; break; + case 6: *st = INT_MAX; break; + default: + *st = asn_random_between(INT_MIN, INT_MAX); + break; + } + return result_ok; +} diff --git a/vcits/asn1c/src/ENUMERATED.c b/vcits/asn1c/src/ENUMERATED.c new file mode 100644 index 0000000..e16cdd9 --- /dev/null +++ b/vcits/asn1c/src/ENUMERATED.c @@ -0,0 +1,180 @@ +/*- + * Copyright (c) 2003, 2005, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include /* Encoder and decoder of a primitive type */ + +/* + * ENUMERATED basic type description. + */ +static const ber_tlv_tag_t asn_DEF_ENUMERATED_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_operation_t asn_OP_ENUMERATED = { + ASN__PRIMITIVE_TYPE_free, + INTEGER_print, /* Implemented in terms of INTEGER */ + INTEGER_compare, /* Implemented in terms of INTEGER */ + ber_decode_primitive, + INTEGER_encode_der, /* Implemented in terms of INTEGER */ + INTEGER_decode_xer, /* This is temporary! */ + INTEGER_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + ENUMERATED_decode_oer, + ENUMERATED_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + ENUMERATED_decode_uper, /* Unaligned PER decoder */ + ENUMERATED_encode_uper, /* Unaligned PER encoder */ + ENUMERATED_decode_aper, /* Aligned PER decoder */ + ENUMERATED_encode_aper, /* Aligned PER encoder */ +#endif /* ASN_DISABLE_PER_SUPPORT */ + ENUMERATED_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_ENUMERATED = { + "ENUMERATED", + "ENUMERATED", + &asn_OP_ENUMERATED, + asn_DEF_ENUMERATED_tags, + sizeof(asn_DEF_ENUMERATED_tags) / sizeof(asn_DEF_ENUMERATED_tags[0]), + asn_DEF_ENUMERATED_tags, /* Same as above */ + sizeof(asn_DEF_ENUMERATED_tags) / sizeof(asn_DEF_ENUMERATED_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +#ifndef ASN_DISABLE_OER_SUPPORT + +asn_dec_rval_t +ENUMERATED_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **sptr, + const void *ptr, size_t size) { + asn_dec_rval_t rval; + ENUMERATED_t *st = (ENUMERATED_t *)*sptr; + long value; + void *vptr = &value; + + if(!st) { + st = (ENUMERATED_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + rval = NativeEnumerated_decode_oer(opt_codec_ctx, td, constraints, + (void **)&vptr, ptr, size); + if(rval.code == RC_OK) { + if(asn_long2INTEGER(st, value)) { + rval.code = RC_FAIL; + } + } + return rval; +} + +asn_enc_rval_t +ENUMERATED_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, + void *app_key) { + const ENUMERATED_t *st = sptr; + long value; + + if(asn_INTEGER2long(st, &value)) { + ASN__ENCODE_FAILED; + } + + return NativeEnumerated_encode_oer(td, constraints, &value, cb, app_key); +} + +#endif /* ASN_DISABLE_OER_SUPPORT */ + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +ENUMERATED_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rval; + ENUMERATED_t *st = (ENUMERATED_t *)*sptr; + long value; + void *vptr = &value; + + if(!st) { + st = (ENUMERATED_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + rval = NativeEnumerated_decode_uper(opt_codec_ctx, td, constraints, + (void **)&vptr, pd); + if(rval.code == RC_OK) { + if(asn_long2INTEGER(st, value)) { + rval.code = RC_FAIL; + } + } + return rval; +} + +asn_enc_rval_t +ENUMERATED_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const ENUMERATED_t *st = (const ENUMERATED_t *)sptr; + long value; + + if(asn_INTEGER2long(st, &value)) { + ASN__ENCODE_FAILED; + } + + return NativeEnumerated_encode_uper(td, constraints, &value, po); +} + +asn_dec_rval_t +ENUMERATED_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rval; + ENUMERATED_t *st = (ENUMERATED_t *)*sptr; + long value; + void *vptr = &value; + + if(!st) { + st = (ENUMERATED_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + rval = NativeEnumerated_decode_aper(opt_codec_ctx, td, constraints, + (void **)&vptr, pd); + if(rval.code == RC_OK) + if(asn_long2INTEGER(st, value)) + rval.code = RC_FAIL; + return rval; +} + +asn_enc_rval_t +ENUMERATED_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const ENUMERATED_t *st = (const ENUMERATED_t *)sptr; + long value; + + if(asn_INTEGER2long(st, &value)) + ASN__ENCODE_FAILED; + + return NativeEnumerated_encode_aper(td, constraints, &value, po); +} +#endif /* ASN_DISABLE_PER_SUPPORT */ + diff --git a/vcits/asn1c/src/GeneralString.c b/vcits/asn1c/src/GeneralString.c new file mode 100644 index 0000000..cc35a3a --- /dev/null +++ b/vcits/asn1c/src/GeneralString.c @@ -0,0 +1,58 @@ +/*- + * Copyright (c) 2003 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * GeneralString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_GeneralString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (27 << 2)), /* [UNIVERSAL 27] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_GeneralString = { + OCTET_STRING_free, + OCTET_STRING_print, /* non-ascii string */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_hex, + OCTET_STRING_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_GeneralString = { + "GeneralString", + "GeneralString", + &asn_OP_GeneralString, + asn_DEF_GeneralString_tags, + sizeof(asn_DEF_GeneralString_tags) + / sizeof(asn_DEF_GeneralString_tags[0]) - 1, + asn_DEF_GeneralString_tags, + sizeof(asn_DEF_GeneralString_tags) + / sizeof(asn_DEF_GeneralString_tags[0]), + { 0, 0, asn_generic_unknown_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/asn1c/src/GeneralizedTime.c b/vcits/asn1c/src/GeneralizedTime.c new file mode 100644 index 0000000..a426065 --- /dev/null +++ b/vcits/asn1c/src/GeneralizedTime.c @@ -0,0 +1,833 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#define _POSIX_PTHREAD_SEMANTICS /* for Sun */ +#define _REENTRANT /* for Sun */ +#define __EXTENSIONS__ /* for Sun */ +#ifndef _BSD_SOURCE +#define _BSD_SOURCE /* for timegm(3) */ +#endif +#include +#include + +#ifdef __CYGWIN__ +#include "/usr/include/time.h" +#else +#include +#endif /* __CYGWIN__ */ + +#include +#include + +#if defined(_WIN32) +#pragma message( "PLEASE STOP AND READ!") +#pragma message( " localtime_r is implemented via localtime(), which may be not thread-safe.") +#pragma message( " gmtime_r is implemented via gmtime(), which may be not thread-safe.") +#pragma message( " ") +#pragma message( " You must fix the code by inserting appropriate locking") +#pragma message( " if you want to use asn_GT2time() or asn_UT2time().") +#pragma message( "PLEASE STOP AND READ!") + +static struct tm *localtime_r(const time_t *tloc, struct tm *result) { + struct tm *tm; + if((tm = localtime(tloc))) + return memcpy(result, tm, sizeof(struct tm)); + return 0; +} + +static struct tm *gmtime_r(const time_t *tloc, struct tm *result) { + struct tm *tm; + if((tm = gmtime(tloc))) + return memcpy(result, tm, sizeof(struct tm)); + return 0; +} + +#define tzset() _tzset() +#define putenv(c) _putenv(c) +#define _EMULATE_TIMEGM + +#endif /* _WIN32 */ + +#if defined(sun) || defined(__sun) || defined(__solaris__) +#define _EMULATE_TIMEGM +#endif + +/* + * Where to look for offset from GMT, Phase I. + * Several platforms are known. + */ +#if defined(__FreeBSD__) \ + || (defined(__GNUC__) && defined(__APPLE_CC__)) \ + || (defined __GLIBC__ && __GLIBC__ >= 2) +#undef HAVE_TM_GMTOFF +#define HAVE_TM_GMTOFF +#endif /* BSDs and newer glibc */ + +/* + * Where to look for offset from GMT, Phase II. + */ +#ifdef HAVE_TM_GMTOFF +#define GMTOFF(tm) ((tm).tm_gmtoff) +#else /* HAVE_TM_GMTOFF */ +#define GMTOFF(tm) (-timezone) +#endif /* HAVE_TM_GMTOFF */ + +#if defined(_WIN32) +#pragma message( "PLEASE STOP AND READ!") +#pragma message( " timegm() is implemented via getenv(\"TZ\")/setenv(\"TZ\"), which may be not thread-safe.") +#pragma message( " ") +#pragma message( " You must fix the code by inserting appropriate locking") +#pragma message( " if you want to use asn_GT2time() or asn_UT2time().") +#pragma message( "PLEASE STOP AND READ!") +#else +#if (defined(_EMULATE_TIMEGM) || !defined(HAVE_TM_GMTOFF)) +#warning "PLEASE STOP AND READ!" +#warning " timegm() is implemented via getenv(\"TZ\")/setenv(\"TZ\"), which may be not thread-safe." +#warning " " +#warning " You must fix the code by inserting appropriate locking" +#warning " if you want to use asn_GT2time() or asn_UT2time()." +#warning "PLEASE STOP AND READ!" +#endif /* _EMULATE_TIMEGM */ +#endif + +/* + * Override our GMTOFF decision for other known platforms. + */ +#ifdef __CYGWIN__ +#undef GMTOFF +static long GMTOFF(struct tm a){ + struct tm *lt; + time_t local_time, gmt_time; + long zone; + + tzset(); + gmt_time = time (NULL); + + lt = gmtime(&gmt_time); + + local_time = mktime(lt); + return (gmt_time - local_time); +} +#define _EMULATE_TIMEGM + +#endif /* __CYGWIN__ */ + +#define ATZVARS do { \ + char tzoldbuf[64]; \ + char *tzold +#define ATZSAVETZ do { \ + tzold = getenv("TZ"); \ + if(tzold) { \ + size_t tzlen = strlen(tzold); \ + if(tzlen < sizeof(tzoldbuf)) { \ + tzold = memcpy(tzoldbuf, tzold, tzlen + 1); \ + } else { \ + char *dupptr = tzold; \ + tzold = MALLOC(tzlen + 1); \ + if(tzold) memcpy(tzold, dupptr, tzlen + 1); \ + } \ + setenv("TZ", "UTC", 1); \ + } \ + tzset(); \ +} while(0) +#define ATZOLDTZ do { \ + if (tzold) { \ + setenv("TZ", tzold, 1); \ + *tzoldbuf = 0; \ + if(tzold != tzoldbuf) \ + FREEMEM(tzold); \ + } else { \ + unsetenv("TZ"); \ + } \ + tzset(); \ +} while(0); } while(0); + +#ifndef HAVE_TIMEGM +#ifdef _EMULATE_TIMEGM +#include +static time_t timegm(struct tm *tm) { + time_t tloc; + ATZVARS; + ATZSAVETZ; + tloc = mktime(tm); + ATZOLDTZ; + return tloc; +} +#endif /* _EMULATE_TIMEGM */ +#endif + + +#ifndef ASN___INTERNAL_TEST_MODE + +/* + * GeneralizedTime basic type description. + */ +static const ber_tlv_tag_t asn_DEF_GeneralizedTime_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (24 << 2)), /* [UNIVERSAL 24] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), /* [UNIVERSAL 26] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +static asn_per_constraints_t asn_DEF_GeneralizedTime_per_constraints = { + { APC_CONSTRAINED, 7, 7, 0x20, 0x7e }, /* Value */ + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ + 0, 0 +}; +asn_TYPE_operation_t asn_OP_GeneralizedTime = { + OCTET_STRING_free, + GeneralizedTime_print, + GeneralizedTime_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + GeneralizedTime_encode_der, + OCTET_STRING_decode_xer_utf8, + GeneralizedTime_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + GeneralizedTime_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_GeneralizedTime = { + "GeneralizedTime", + "GeneralizedTime", + &asn_OP_GeneralizedTime, + asn_DEF_GeneralizedTime_tags, + sizeof(asn_DEF_GeneralizedTime_tags) + / sizeof(asn_DEF_GeneralizedTime_tags[0]) - 2, + asn_DEF_GeneralizedTime_tags, + sizeof(asn_DEF_GeneralizedTime_tags) + / sizeof(asn_DEF_GeneralizedTime_tags[0]), + { 0, &asn_DEF_GeneralizedTime_per_constraints, GeneralizedTime_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +#endif /* ASN___INTERNAL_TEST_MODE */ + +/* + * Check that the time looks like the time. + */ +int +GeneralizedTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, + void *app_key) { + const GeneralizedTime_t *st = (const GeneralizedTime_t *)sptr; + time_t tloc; + + errno = EPERM; /* Just an unlikely error code */ + tloc = asn_GT2time(st, 0, 0); + if(tloc == -1 && errno != EPERM) { + ASN__CTFAIL(app_key, td, sptr, + "%s: Invalid time format: %s (%s:%d)", + td->name, strerror(errno), __FILE__, __LINE__); + return -1; + } + + return 0; +} + +asn_enc_rval_t +GeneralizedTime_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + GeneralizedTime_t *st; + asn_enc_rval_t erval; + int fv, fd; /* seconds fraction value and number of digits */ + struct tm tm; + time_t tloc; + + /* + * Encode as a canonical DER. + */ + errno = EPERM; + tloc = asn_GT2time_frac((const GeneralizedTime_t *)sptr, &fv, &fd, &tm, + 1); /* Recognize time */ + if(tloc == -1 && errno != EPERM) { + /* Failed to recognize time. Fail completely. */ + ASN__ENCODE_FAILED; + } + + st = asn_time2GT_frac(0, &tm, fv, fd, 1); /* Save time canonically */ + if(!st) ASN__ENCODE_FAILED; /* Memory allocation failure. */ + + erval = OCTET_STRING_encode_der(td, st, tag_mode, tag, cb, app_key); + + ASN_STRUCT_FREE(*td, st); + + return erval; +} + +#ifndef ASN___INTERNAL_TEST_MODE + +asn_enc_rval_t +GeneralizedTime_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + if(flags & XER_F_CANONICAL) { + GeneralizedTime_t *gt; + asn_enc_rval_t rv; + int fv, fd; /* fractional parts */ + struct tm tm; + + errno = EPERM; + if(asn_GT2time_frac((const GeneralizedTime_t *)sptr, + &fv, &fd, &tm, 1) == -1 + && errno != EPERM) + ASN__ENCODE_FAILED; + + gt = asn_time2GT_frac(0, &tm, fv, fd, 1); + if(!gt) ASN__ENCODE_FAILED; + + rv = OCTET_STRING_encode_xer_utf8(td, sptr, ilevel, flags, + cb, app_key); + ASN_STRUCT_FREE(asn_DEF_GeneralizedTime, gt); + return rv; + } else { + return OCTET_STRING_encode_xer_utf8(td, sptr, ilevel, flags, + cb, app_key); + } +} + +#endif /* ASN___INTERNAL_TEST_MODE */ + +int +GeneralizedTime_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + const GeneralizedTime_t *st = (const GeneralizedTime_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st && st->buf) { + char buf[32]; + struct tm tm; + int ret; + + errno = EPERM; + if(asn_GT2time(st, &tm, 1) == -1 && errno != EPERM) + return (cb("", 11, app_key) < 0) ? -1 : 0; + + ret = snprintf(buf, sizeof(buf), + "%04d-%02d-%02d %02d:%02d:%02d (GMT)", + tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, + tm.tm_hour, tm.tm_min, tm.tm_sec); + assert(ret > 0 && ret < (int)sizeof(buf)); + return (cb(buf, ret, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} + +time_t +asn_GT2time(const GeneralizedTime_t *st, struct tm *ret_tm, int as_gmt) { + return asn_GT2time_frac(st, 0, 0, ret_tm, as_gmt); +} + +time_t +asn_GT2time_prec(const GeneralizedTime_t *st, int *frac_value, int frac_digits, struct tm *ret_tm, int as_gmt) { + time_t tloc; + int fv, fd = 0; + + if(frac_value) + tloc = asn_GT2time_frac(st, &fv, &fd, ret_tm, as_gmt); + else + return asn_GT2time_frac(st, 0, 0, ret_tm, as_gmt); + if(fd == 0 || frac_digits <= 0) { + *frac_value = 0; + } else { + while(fd > frac_digits) + fv /= 10, fd--; + while(fd < frac_digits) { + if(fv < INT_MAX / 10) { + fv *= 10; + fd++; + } else { + /* Too long precision request */ + fv = 0; + break; + } + } + + *frac_value = fv; + } + + return tloc; +} + +time_t +asn_GT2time_frac(const GeneralizedTime_t *st, int *frac_value, int *frac_digits, struct tm *ret_tm, int as_gmt) { + struct tm tm_s; + uint8_t *buf; + uint8_t *end; + int gmtoff_h = 0; + int gmtoff_m = 0; + int gmtoff = 0; /* h + m */ + int offset_specified = 0; + int fvalue = 0; + int fdigits = 0; + time_t tloc; + + if(!st || !st->buf) { + errno = EINVAL; + return -1; + } else { + buf = st->buf; + end = buf + st->size; + } + + if(st->size < 10) { + errno = EINVAL; + return -1; + } + + /* + * Decode first 10 bytes: "AAAAMMJJhh" + */ + memset(&tm_s, 0, sizeof(tm_s)); +#undef B2F +#undef B2T +#define B2F(var) do { \ + unsigned ch = *buf; \ + if(ch < 0x30 || ch > 0x39) { \ + errno = EINVAL; \ + return -1; \ + } else { \ + var = var * 10 + (ch - 0x30); \ + buf++; \ + } \ + } while(0) +#define B2T(var) B2F(tm_s.var) + + B2T(tm_year); /* 1: A */ + B2T(tm_year); /* 2: A */ + B2T(tm_year); /* 3: A */ + B2T(tm_year); /* 4: A */ + B2T(tm_mon); /* 5: M */ + B2T(tm_mon); /* 6: M */ + B2T(tm_mday); /* 7: J */ + B2T(tm_mday); /* 8: J */ + B2T(tm_hour); /* 9: h */ + B2T(tm_hour); /* 0: h */ + + if(buf == end) goto local_finish; + + /* + * Parse [mm[ss[(.|,)ffff]]] + * ^^ + */ + switch(*buf) { + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: + tm_s.tm_min = (*buf++) - 0x30; + if(buf == end) { errno = EINVAL; return -1; } + B2T(tm_min); + break; + case 0x2B: case 0x2D: /* +, - */ + goto offset; + case 0x5A: /* Z */ + goto utc_finish; + default: + errno = EINVAL; + return -1; + } + + if(buf == end) goto local_finish; + + /* + * Parse [mm[ss[(.|,)ffff]]] + * ^^ + */ + switch(*buf) { + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: + tm_s.tm_sec = (*buf++) - 0x30; + if(buf == end) { errno = EINVAL; return -1; } + B2T(tm_sec); + break; + case 0x2B: case 0x2D: /* +, - */ + goto offset; + case 0x5A: /* Z */ + goto utc_finish; + default: + errno = EINVAL; + return -1; + } + + if(buf == end) goto local_finish; + + /* + * Parse [mm[ss[(.|,)ffff]]] + * ^ ^ + */ + switch(*buf) { + case 0x2C: case 0x2E: /* (.|,) */ + /* + * Process fractions of seconds. + */ + for(buf++; buf < end; buf++) { + int v = *buf; + /* GCC 4.x is being too smart without volatile */ + switch(v) { + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: + if(fvalue < INT_MAX/10) { + fvalue = fvalue * 10 + (v - 0x30); + fdigits++; + } else { + /* Not enough precision, ignore */ + } + continue; + default: + break; + } + break; + } + } + + if(buf == end) goto local_finish; + + switch(*buf) { + case 0x2B: case 0x2D: /* +, - */ + goto offset; + case 0x5A: /* Z */ + goto utc_finish; + default: + errno = EINVAL; + return -1; + } + + +offset: + + if(end - buf < 3) { + errno = EINVAL; + return -1; + } + buf++; + B2F(gmtoff_h); + B2F(gmtoff_h); + if(buf[-3] == 0x2D) /* Negative */ + gmtoff = -1; + else + gmtoff = 1; + + if((end - buf) == 2) { + B2F(gmtoff_m); + B2F(gmtoff_m); + } else if(end != buf) { + errno = EINVAL; + return -1; + } + + gmtoff = gmtoff * (3600 * gmtoff_h + 60 * gmtoff_m); + + /* Fall through */ +utc_finish: + + offset_specified = 1; + + /* Fall through */ +local_finish: + + /* + * Validation. + */ + if((tm_s.tm_mon > 12 || tm_s.tm_mon < 1) + || (tm_s.tm_mday > 31 || tm_s.tm_mday < 1) + || (tm_s.tm_hour > 23) + || (tm_s.tm_sec > 60) + ) { + errno = EINVAL; + return -1; + } + + /* Canonicalize */ + tm_s.tm_mon -= 1; /* 0 - 11 */ + tm_s.tm_year -= 1900; + tm_s.tm_isdst = -1; + + tm_s.tm_sec -= gmtoff; + + /*** AT THIS POINT tm_s is either GMT or local (unknown) ****/ + + if(offset_specified) { + tloc = timegm(&tm_s); + } else { + /* + * Without an offset (or "Z"), + * we can only guess that it is a local zone. + * Interpret it in this fashion. + */ + tloc = mktime(&tm_s); + } + if(tloc == -1) { + errno = EINVAL; + return -1; + } + + if(ret_tm) { + if(as_gmt) { + if(offset_specified) { + *ret_tm = tm_s; + } else { + if(gmtime_r(&tloc, ret_tm) == 0) { + errno = EINVAL; + return -1; + } + } + } else { + if(localtime_r(&tloc, ret_tm) == 0) { + errno = EINVAL; + return -1; + } + } + } + + /* Fractions of seconds */ + if(frac_value) *frac_value = fvalue; + if(frac_digits) *frac_digits = fdigits; + + return tloc; +} + +GeneralizedTime_t * +asn_time2GT(GeneralizedTime_t *opt_gt, const struct tm *tm, int force_gmt) { + return asn_time2GT_frac(opt_gt, tm, 0, 0, force_gmt); +} + +GeneralizedTime_t * +asn_time2GT_frac(GeneralizedTime_t *opt_gt, const struct tm *tm, int frac_value, int frac_digits, int force_gmt) { + struct tm tm_s; + long gmtoff; + const unsigned int buf_size = + 4 + 2 + 2 /* yyyymmdd */ + + 2 + 2 + 2 /* hhmmss */ + + 1 + 6 /* .ffffff */ + + 1 + 4 /* +hhmm */ + + 1 /* '\0' */ + ; + char *buf; + char *p; + int size; + + /* Check arguments */ + if(!tm) { + errno = EINVAL; + return 0; + } + + /* Pre-allocate a buffer of sufficient yet small length */ + buf = (char *)MALLOC(buf_size); + if(!buf) return 0; + + gmtoff = GMTOFF(*tm); + + if(force_gmt && gmtoff) { + tm_s = *tm; + tm_s.tm_sec -= gmtoff; + timegm(&tm_s); /* Fix the time */ + tm = &tm_s; +#ifdef HAVE_TM_GMTOFF + assert(!GMTOFF(tm_s)); /* Will fix itself */ +#else /* !HAVE_TM_GMTOFF */ + gmtoff = 0; +#endif + } + + size = snprintf(buf, buf_size, "%04d%02d%02d%02d%02d%02d", + tm->tm_year + 1900, + tm->tm_mon + 1, + tm->tm_mday, + tm->tm_hour, + tm->tm_min, + tm->tm_sec + ); + if(size != 14) { + /* Could be assert(size == 14); */ + FREEMEM(buf); + errno = EINVAL; + return 0; + } + + p = buf + size; + + /* + * Deal with fractions. + */ + if(frac_value > 0 && frac_digits > 0) { + char *end = p + 1 + 6; /* '.' + maximum 6 digits */ + char *z = p; + long fbase; + *z++ = '.'; + + /* Place bounds on precision */ + while(frac_digits-- > 6) + frac_value /= 10; + + /* emulate fbase = pow(10, frac_digits) */ + for(fbase = 1; frac_digits--;) + fbase *= 10; + + do { + int digit = frac_value / fbase; + if(digit > 9) { z = 0; break; } + *z++ = digit + 0x30; + frac_value %= fbase; + fbase /= 10; + } while(fbase > 0 && frac_value > 0 && z < end); + if(z) { + for(--z; *z == 0x30; --z); /* Strip zeroes */ + p = z + (*z != '.'); + size = p - buf; + } + } + + if(force_gmt) { + *p++ = 0x5a; /* "Z" */ + *p++ = 0; + size++; + } else { + int ret; + gmtoff %= 86400; + ret = snprintf(p, buf_size - size, "%+03ld%02ld", + gmtoff / 3600, labs(gmtoff % 3600) / 60); + if(ret != 5) { + FREEMEM(buf); + errno = EINVAL; + return 0; + } + size += ret; + } + + if(opt_gt) { + if(opt_gt->buf) + FREEMEM(opt_gt->buf); + } else { + opt_gt = (GeneralizedTime_t *)CALLOC(1, sizeof *opt_gt); + if(!opt_gt) { FREEMEM(buf); return 0; } + } + + opt_gt->buf = (unsigned char *)buf; + opt_gt->size = size; + + return opt_gt; +} + +asn_random_fill_result_t +GeneralizedTime_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + static const char *values[] = { + "19700101000000", "19700101000000-0000", "19700101000000+0000", + "19700101000000Z", "19700101000000.3Z", "19821106210623.3", + "19821106210629.3Z", "19691106210827.3-0500", "19821106210629.456", + }; + size_t rnd = asn_random_between(0, sizeof(values)/sizeof(values[0])-1); + + (void)constraints; + + if(max_length < sizeof("yyyymmddhhmmss") && !*sptr) { + return result_skipped; + } + + if(*sptr) { + if(OCTET_STRING_fromBuf(*sptr, values[rnd], -1) != 0) { + if(!sptr) return result_failed; + } + } else { + *sptr = OCTET_STRING_new_fromBuf(td, values[rnd], -1); + if(!sptr) return result_failed; + } + + return result_ok; +} + +int +GeneralizedTime_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const GeneralizedTime_t *a = aptr; + const GeneralizedTime_t *b = bptr; + + (void)td; + + if(a && b) { + int afrac_value, afrac_digits; + int bfrac_value, bfrac_digits; + int aerr, berr; + time_t at, bt; + + errno = EPERM; + at = asn_GT2time_frac(a, &afrac_value, &afrac_digits, 0, 0); + aerr = errno; + errno = EPERM; + bt = asn_GT2time_frac(b, &bfrac_value, &bfrac_digits, 0, 0); + berr = errno; + + if(at == -1 && aerr != EPERM) { + if(bt == -1 && berr != EPERM) { + return OCTET_STRING_compare(td, aptr, bptr); + } else { + return -1; + } + } else if(bt == -1 && berr != EPERM) { + return 1; + } else { + /* Both values are valid. */ + } + + if(at < bt) { + return -1; + } else if(at > bt) { + return 1; + } else if(afrac_digits == bfrac_digits) { + if(afrac_value == bfrac_value) { + return 0; + } + if(afrac_value < bfrac_value) { + return -1; + } else { + return 1; + } + } else if(afrac_digits == 0) { + return -1; + } else if(bfrac_digits == 0) { + return 1; + } else { + double afrac = (double)afrac_value / afrac_digits; + double bfrac = (double)bfrac_value / bfrac_digits; + if(afrac < bfrac) { + return -1; + } else if(afrac > bfrac) { + return 1; + } else { + return 0; + } + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } + +} + diff --git a/vcits/asn1c/src/GraphicString.c b/vcits/asn1c/src/GraphicString.c new file mode 100644 index 0000000..e6642c9 --- /dev/null +++ b/vcits/asn1c/src/GraphicString.c @@ -0,0 +1,58 @@ +/*- + * Copyright (c) 2003 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * GraphicString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_GraphicString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (25 << 2)), /* [UNIVERSAL 25] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_GraphicString = { + OCTET_STRING_free, + OCTET_STRING_print, /* non-ascii string */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_hex, + OCTET_STRING_encode_xer, /* Can't expect it to be ASCII/UTF8 */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_GraphicString = { + "GraphicString", + "GraphicString", + &asn_OP_GraphicString, + asn_DEF_GraphicString_tags, + sizeof(asn_DEF_GraphicString_tags) + / sizeof(asn_DEF_GraphicString_tags[0]) - 1, + asn_DEF_GraphicString_tags, + sizeof(asn_DEF_GraphicString_tags) + / sizeof(asn_DEF_GraphicString_tags[0]), + { 0, 0, asn_generic_unknown_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/asn1c/src/IA5String.c b/vcits/asn1c/src/IA5String.c new file mode 100644 index 0000000..1aeebf4 --- /dev/null +++ b/vcits/asn1c/src/IA5String.c @@ -0,0 +1,97 @@ +/*- + * Copyright (c) 2003 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * IA5String basic type description. + */ +static const ber_tlv_tag_t asn_DEF_IA5String_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)), /* [UNIVERSAL 22] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +static asn_per_constraints_t asn_DEF_IA5String_per_constraints = { + { APC_CONSTRAINED, 7, 7, 0, 0x7f }, /* Value */ + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ + 0, 0 +}; +asn_TYPE_operation_t asn_OP_IA5String = { + OCTET_STRING_free, + OCTET_STRING_print_utf8, /* ASCII subset */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_IA5String = { + "IA5String", + "IA5String", + &asn_OP_IA5String, + asn_DEF_IA5String_tags, + sizeof(asn_DEF_IA5String_tags) + / sizeof(asn_DEF_IA5String_tags[0]) - 1, + asn_DEF_IA5String_tags, + sizeof(asn_DEF_IA5String_tags) + / sizeof(asn_DEF_IA5String_tags[0]), + { 0, &asn_DEF_IA5String_per_constraints, IA5String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +int +IA5String_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + + if(st && st->buf) { + uint8_t *buf = st->buf; + uint8_t *end = buf + st->size; + /* + * IA5String is generally equivalent to 7bit ASCII. + * ISO/ITU-T T.50, 1963. + */ + for(; buf < end; buf++) { + if(*buf > 0x7F) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value byte %ld out of range: " + "%d > 127 (%s:%d)", + td->name, + (long)((buf - st->buf) + 1), + *buf, + __FILE__, __LINE__); + return -1; + } + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} + diff --git a/vcits/asn1c/src/INTEGER.c b/vcits/asn1c/src/INTEGER.c new file mode 100644 index 0000000..ab001b2 --- /dev/null +++ b/vcits/asn1c/src/INTEGER.c @@ -0,0 +1,1723 @@ +/*- + * Copyright (c) 2003-2014 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* Encoder and decoder of a primitive type */ +#include + +/* + * INTEGER basic type description. + */ +static const ber_tlv_tag_t asn_DEF_INTEGER_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_operation_t asn_OP_INTEGER = { + INTEGER_free, + INTEGER_print, + INTEGER_compare, + ber_decode_primitive, + INTEGER_encode_der, + INTEGER_decode_xer, + INTEGER_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + INTEGER_decode_oer, /* OER decoder */ + INTEGER_encode_oer, /* Canonical OER encoder */ +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + INTEGER_decode_uper, /* Unaligned PER decoder */ + INTEGER_encode_uper, /* Unaligned PER encoder */ + INTEGER_decode_aper, /* Aligned PER decoder */ + INTEGER_encode_aper, /* Aligned PER encoder */ +#endif /* ASN_DISABLE_PER_SUPPORT */ + INTEGER_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_INTEGER = { + "INTEGER", + "INTEGER", + &asn_OP_INTEGER, + asn_DEF_INTEGER_tags, + sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), + asn_DEF_INTEGER_tags, /* Same as above */ + sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +/* + * Encode INTEGER type using DER. + */ +asn_enc_rval_t +INTEGER_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + asn_enc_rval_t rval; + INTEGER_t effective_integer; + + ASN_DEBUG("%s %s as INTEGER (tm=%d)", + cb?"Encoding":"Estimating", td->name, tag_mode); + + /* + * Canonicalize integer in the buffer. + * (Remove too long sign extension, remove some first 0x00 bytes) + */ + if(st->buf) { + uint8_t *buf = st->buf; + uint8_t *end1 = buf + st->size - 1; + int shift; + + /* Compute the number of superfluous leading bytes */ + for(; buf < end1; buf++) { + /* + * If the contents octets of an integer value encoding + * consist of more than one octet, then the bits of the + * first octet and bit 8 of the second octet: + * a) shall not all be ones; and + * b) shall not all be zero. + */ + switch(*buf) { + case 0x00: if((buf[1] & 0x80) == 0) + continue; + break; + case 0xff: if((buf[1] & 0x80)) + continue; + break; + } + break; + } + + /* Remove leading superfluous bytes from the integer */ + shift = buf - st->buf; + if(shift) { + union { + const uint8_t *c_buf; + uint8_t *nc_buf; + } unconst; + unconst.c_buf = st->buf; + effective_integer.buf = unconst.nc_buf + shift; + effective_integer.size = st->size - shift; + + st = &effective_integer; + } + } + + rval = der_encode_primitive(td, st, tag_mode, tag, cb, app_key); + if(rval.structure_ptr == &effective_integer) { + rval.structure_ptr = sptr; + } + return rval; +} + +static const asn_INTEGER_enum_map_t *INTEGER_map_enum2value( + const asn_INTEGER_specifics_t *specs, const char *lstart, + const char *lstop); + +/* + * INTEGER specific human-readable output. + */ +static ssize_t +INTEGER__dump(const asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + char scratch[32]; + uint8_t *buf = st->buf; + uint8_t *buf_end = st->buf + st->size; + intmax_t value; + ssize_t wrote = 0; + char *p; + int ret; + + if(specs && specs->field_unsigned) + ret = asn_INTEGER2umax(st, (uintmax_t *)&value); + else + ret = asn_INTEGER2imax(st, &value); + + /* Simple case: the integer size is small */ + if(ret == 0) { + const asn_INTEGER_enum_map_t *el; + el = (value >= 0 || !specs || !specs->field_unsigned) + ? INTEGER_map_value2enum(specs, value) : 0; + if(el) { + if(plainOrXER == 0) + return asn__format_to_callback(cb, app_key, + "%" ASN_PRIdMAX " (%s)", value, el->enum_name); + else + return asn__format_to_callback(cb, app_key, + "<%s/>", el->enum_name); + } else if(plainOrXER && specs && specs->strict_enumeration) { + ASN_DEBUG("ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + errno = EPERM; + return -1; + } else { + return asn__format_to_callback(cb, app_key, + (specs && specs->field_unsigned) + ? "%" ASN_PRIuMAX + : "%" ASN_PRIdMAX, + value); + } + } else if(plainOrXER && specs && specs->strict_enumeration) { + /* + * Here and earlier, we cannot encode the ENUMERATED values + * if there is no corresponding identifier. + */ + ASN_DEBUG("ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + errno = EPERM; + return -1; + } + + /* Output in the long xx:yy:zz... format */ + /* TODO: replace with generic algorithm (Knuth TAOCP Vol 2, 4.3.1) */ + for(p = scratch; buf < buf_end; buf++) { + const char * const h2c = "0123456789ABCDEF"; + if((p - scratch) >= (ssize_t)(sizeof(scratch) - 4)) { + /* Flush buffer */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + wrote += p - scratch; + p = scratch; + } + *p++ = h2c[*buf >> 4]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x3a; /* ":" */ + } + if(p != scratch) + p--; /* Remove the last ":" */ + + wrote += p - scratch; + return (cb(scratch, p - scratch, app_key) < 0) ? -1 : wrote; +} + +/* + * INTEGER specific human-readable output. + */ +int +INTEGER_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + ssize_t ret; + + (void)ilevel; + + if(!st || !st->buf) + ret = cb("", 8, app_key); + else + ret = INTEGER__dump(td, st, cb, app_key, 0); + + return (ret < 0) ? -1 : 0; +} + +struct e2v_key { + const char *start; + const char *stop; + const asn_INTEGER_enum_map_t *vemap; + const unsigned int *evmap; +}; +static int +INTEGER__compar_enum2value(const void *kp, const void *am) { + const struct e2v_key *key = (const struct e2v_key *)kp; + const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; + const char *ptr, *end, *name; + + /* Remap the element (sort by different criterion) */ + el = key->vemap + key->evmap[el - key->vemap]; + + /* Compare strings */ + for(ptr = key->start, end = key->stop, name = el->enum_name; + ptr < end; ptr++, name++) { + if(*ptr != *name || !*name) + return *(const unsigned char *)ptr + - *(const unsigned char *)name; + } + return name[0] ? -1 : 0; +} + +static const asn_INTEGER_enum_map_t * +INTEGER_map_enum2value(const asn_INTEGER_specifics_t *specs, const char *lstart, + const char *lstop) { + const asn_INTEGER_enum_map_t *el_found; + int count = specs ? specs->map_count : 0; + struct e2v_key key; + const char *lp; + + if(!count) return NULL; + + /* Guaranteed: assert(lstart < lstop); */ + /* Figure out the tag name */ + for(lstart++, lp = lstart; lp < lstop; lp++) { + switch(*lp) { + case 9: case 10: case 11: case 12: case 13: case 32: /* WSP */ + case 0x2f: /* '/' */ case 0x3e: /* '>' */ + break; + default: + continue; + } + break; + } + if(lp == lstop) return NULL; /* No tag found */ + lstop = lp; + + key.start = lstart; + key.stop = lstop; + key.vemap = specs->value2enum; + key.evmap = specs->enum2value; + el_found = (asn_INTEGER_enum_map_t *)bsearch(&key, + specs->value2enum, count, sizeof(specs->value2enum[0]), + INTEGER__compar_enum2value); + if(el_found) { + /* Remap enum2value into value2enum */ + el_found = key.vemap + key.evmap[el_found - key.vemap]; + } + return el_found; +} + +static int +INTEGER__compar_value2enum(const void *kp, const void *am) { + long a = *(const long *)kp; + const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; + long b = el->nat_value; + if(a < b) return -1; + else if(a == b) return 0; + else return 1; +} + +const asn_INTEGER_enum_map_t * +INTEGER_map_value2enum(const asn_INTEGER_specifics_t *specs, long value) { + int count = specs ? specs->map_count : 0; + if(!count) return 0; + return (asn_INTEGER_enum_map_t *)bsearch(&value, specs->value2enum, + count, sizeof(specs->value2enum[0]), + INTEGER__compar_value2enum); +} + +static int +INTEGER_st_prealloc(INTEGER_t *st, int min_size) { + void *p = MALLOC(min_size + 1); + if(p) { + void *b = st->buf; + st->size = 0; + st->buf = p; + FREEMEM(b); + return 0; + } else { + return -1; + } +} + +/* + * Decode the chunk of XML text encoding INTEGER. + */ +static enum xer_pbd_rval +INTEGER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + INTEGER_t *st = (INTEGER_t *)sptr; + intmax_t dec_value; + intmax_t hex_value = 0; + const char *lp; + const char *lstart = (const char *)chunk_buf; + const char *lstop = lstart + chunk_size; + enum { + ST_LEADSPACE, + ST_SKIPSPHEX, + ST_WAITDIGITS, + ST_DIGITS, + ST_DIGITS_TRAILSPACE, + ST_HEXDIGIT1, + ST_HEXDIGIT2, + ST_HEXDIGITS_TRAILSPACE, + ST_HEXCOLON, + ST_END_ENUM, + ST_UNEXPECTED + } state = ST_LEADSPACE; + const char *dec_value_start = 0; /* INVARIANT: always !0 in ST_DIGITS */ + const char *dec_value_end = 0; + + if(chunk_size) + ASN_DEBUG("INTEGER body %ld 0x%2x..0x%2x", + (long)chunk_size, *lstart, lstop[-1]); + + if(INTEGER_st_prealloc(st, (chunk_size/3) + 1)) + return XPBD_SYSTEM_FAILURE; + + /* + * We may have received a tag here. It will be processed inline. + * Use strtoul()-like code and serialize the result. + */ + for(lp = lstart; lp < lstop; lp++) { + int lv = *lp; + switch(lv) { + case 0x09: case 0x0a: case 0x0d: case 0x20: + switch(state) { + case ST_LEADSPACE: + case ST_DIGITS_TRAILSPACE: + case ST_HEXDIGITS_TRAILSPACE: + case ST_SKIPSPHEX: + continue; + case ST_DIGITS: + dec_value_end = lp; + state = ST_DIGITS_TRAILSPACE; + continue; + case ST_HEXCOLON: + state = ST_HEXDIGITS_TRAILSPACE; + continue; + default: + break; + } + break; + case 0x2d: /* '-' */ + if(state == ST_LEADSPACE) { + dec_value = 0; + dec_value_start = lp; + state = ST_WAITDIGITS; + continue; + } + break; + case 0x2b: /* '+' */ + if(state == ST_LEADSPACE) { + dec_value = 0; + dec_value_start = lp; + state = ST_WAITDIGITS; + continue; + } + break; + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: + switch(state) { + case ST_DIGITS: continue; + case ST_SKIPSPHEX: /* Fall through */ + case ST_HEXDIGIT1: + hex_value = (lv - 0x30) << 4; + state = ST_HEXDIGIT2; + continue; + case ST_HEXDIGIT2: + hex_value += (lv - 0x30); + state = ST_HEXCOLON; + st->buf[st->size++] = (uint8_t)hex_value; + continue; + case ST_HEXCOLON: + return XPBD_BROKEN_ENCODING; + case ST_LEADSPACE: + dec_value = 0; + dec_value_start = lp; + /* FALL THROUGH */ + case ST_WAITDIGITS: + state = ST_DIGITS; + continue; + default: + break; + } + break; + case 0x3c: /* '<', start of XML encoded enumeration */ + if(state == ST_LEADSPACE) { + const asn_INTEGER_enum_map_t *el; + el = INTEGER_map_enum2value( + (const asn_INTEGER_specifics_t *) + td->specifics, lstart, lstop); + if(el) { + ASN_DEBUG("Found \"%s\" => %ld", + el->enum_name, el->nat_value); + dec_value = el->nat_value; + state = ST_END_ENUM; + lp = lstop - 1; + continue; + } + ASN_DEBUG("Unknown identifier for INTEGER"); + } + return XPBD_BROKEN_ENCODING; + case 0x3a: /* ':' */ + if(state == ST_HEXCOLON) { + /* This colon is expected */ + state = ST_HEXDIGIT1; + continue; + } else if(state == ST_DIGITS) { + /* The colon here means that we have + * decoded the first two hexadecimal + * places as a decimal value. + * Switch decoding mode. */ + ASN_DEBUG("INTEGER re-evaluate as hex form"); + state = ST_SKIPSPHEX; + dec_value_start = 0; + lp = lstart - 1; + continue; + } else { + ASN_DEBUG("state %d at %ld", state, (long)(lp - lstart)); + break; + } + /* [A-Fa-f] */ + case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46: + case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66: + switch(state) { + case ST_SKIPSPHEX: + case ST_LEADSPACE: /* Fall through */ + case ST_HEXDIGIT1: + hex_value = lv - ((lv < 0x61) ? 0x41 : 0x61); + hex_value += 10; + hex_value <<= 4; + state = ST_HEXDIGIT2; + continue; + case ST_HEXDIGIT2: + hex_value += lv - ((lv < 0x61) ? 0x41 : 0x61); + hex_value += 10; + st->buf[st->size++] = (uint8_t)hex_value; + state = ST_HEXCOLON; + continue; + case ST_DIGITS: + ASN_DEBUG("INTEGER re-evaluate as hex form"); + state = ST_SKIPSPHEX; + dec_value_start = 0; + lp = lstart - 1; + continue; + default: + break; + } + break; + } + + /* Found extra non-numeric stuff */ + ASN_DEBUG("INTEGER :: Found non-numeric 0x%2x at %ld", + lv, (long)(lp - lstart)); + state = ST_UNEXPECTED; + break; + } + + switch(state) { + case ST_END_ENUM: + /* Got a complete and valid enumeration encoded as a tag. */ + break; + case ST_DIGITS: + dec_value_end = lstop; + /* FALL THROUGH */ + case ST_DIGITS_TRAILSPACE: + /* The last symbol encountered was a digit. */ + switch(asn_strtoimax_lim(dec_value_start, &dec_value_end, &dec_value)) { + case ASN_STRTOX_OK: + if(specs && specs->field_unsigned && (uintmax_t) dec_value <= ULONG_MAX) { + break; + } else if(dec_value >= LONG_MIN && dec_value <= LONG_MAX) { + break; + } else { + /* + * We model INTEGER on long for XER, + * to avoid rewriting all the tests at once. + */ + ASN_DEBUG("INTEGER exceeds long range"); + } + /* Fall through */ + case ASN_STRTOX_ERROR_RANGE: + ASN_DEBUG("INTEGER decode %s hit range limit", td->name); + return XPBD_DECODER_LIMIT; + case ASN_STRTOX_ERROR_INVAL: + case ASN_STRTOX_EXPECT_MORE: + case ASN_STRTOX_EXTRA_DATA: + return XPBD_BROKEN_ENCODING; + } + break; + case ST_HEXCOLON: + case ST_HEXDIGITS_TRAILSPACE: + st->buf[st->size] = 0; /* Just in case termination */ + return XPBD_BODY_CONSUMED; + case ST_HEXDIGIT1: + case ST_HEXDIGIT2: + case ST_SKIPSPHEX: + return XPBD_BROKEN_ENCODING; + case ST_LEADSPACE: + /* Content not found */ + return XPBD_NOT_BODY_IGNORE; + case ST_WAITDIGITS: + case ST_UNEXPECTED: + ASN_DEBUG("INTEGER: No useful digits (state %d)", state); + return XPBD_BROKEN_ENCODING; /* No digits */ + } + + /* + * Convert the result of parsing of enumeration or a straight + * decimal value into a BER representation. + */ + if(asn_imax2INTEGER(st, dec_value)) { + ASN_DEBUG("INTEGER decode %s conversion failed", td->name); + return XPBD_SYSTEM_FAILURE; + } + + return XPBD_BODY_CONSUMED; +} + +asn_dec_rval_t +INTEGER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(INTEGER_t), opt_mname, + buf_ptr, size, INTEGER__xer_body_decode); +} + +asn_enc_rval_t +INTEGER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + asn_enc_rval_t er; + + (void)ilevel; + (void)flags; + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = INTEGER__dump(td, st, cb, app_key, 1); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +INTEGER_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + INTEGER_t *st = (INTEGER_t *)*sptr; + const asn_per_constraint_t *ct; + int repeat; + + (void)opt_codec_ctx; + + if(!st) { + st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + if(ct) { + if(ct->flags & APC_SEMI_CONSTRAINED) { + st->buf = (uint8_t *)CALLOC(1, 2); + if(!st->buf) ASN__DECODE_FAILED; + st->size = 1; + } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { + size_t size = (ct->range_bits + 7) >> 3; + st->buf = (uint8_t *)MALLOC(1 + size + 1); + if(!st->buf) ASN__DECODE_FAILED; + st->size = size; + } + } + + /* X.691-2008/11, #13.2.2, constrained whole number */ + if(ct && ct->flags != APC_UNCONSTRAINED) { + /* #11.5.6 */ + ASN_DEBUG("Integer with range %d bits", ct->range_bits); + if(ct->range_bits >= 0) { + if((size_t)ct->range_bits > 8 * sizeof(unsigned long)) + ASN__DECODE_FAILED; + + if(specs && specs->field_unsigned) { + unsigned long uvalue = 0; + if(uper_get_constrained_whole_number(pd, + &uvalue, ct->range_bits)) + ASN__DECODE_STARVED; + ASN_DEBUG("Got value %lu + low %ld", + uvalue, ct->lower_bound); + uvalue += ct->lower_bound; + if(asn_ulong2INTEGER(st, uvalue)) + ASN__DECODE_FAILED; + } else { + unsigned long uvalue = 0; + long svalue; + if(uper_get_constrained_whole_number(pd, + &uvalue, ct->range_bits)) + ASN__DECODE_STARVED; + ASN_DEBUG("Got value %lu + low %ld", + uvalue, ct->lower_bound); + if(per_long_range_unrebase(uvalue, ct->lower_bound, + ct->upper_bound, &svalue) + || asn_long2INTEGER(st, svalue)) { + ASN__DECODE_FAILED; + } + } + return rval; + } + } else { + ASN_DEBUG("Decoding unconstrained integer %s", td->name); + } + + /* X.691, #12.2.3, #12.2.4 */ + do { + ssize_t len = 0; + void *p = NULL; + int ret = 0; + + /* Get the PER length */ + len = uper_get_length(pd, -1, 0, &repeat); + if(len < 0) ASN__DECODE_STARVED; + + p = REALLOC(st->buf, st->size + len + 1); + if(!p) ASN__DECODE_FAILED; + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); + if(ret < 0) ASN__DECODE_STARVED; + st->size += len; + } while(repeat); + st->buf[st->size] = 0; /* JIC */ + + /* #12.2.3 */ + if(ct && ct->lower_bound) { + /* + * TODO: replace by in-place arithmetics. + */ + long value = 0; + if(asn_INTEGER2long(st, &value)) + ASN__DECODE_FAILED; + if(asn_imax2INTEGER(st, value + ct->lower_bound)) + ASN__DECODE_FAILED; + } + + return rval; +} + +asn_enc_rval_t +INTEGER_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er; + const INTEGER_t *st = (const INTEGER_t *)sptr; + const uint8_t *buf; + const uint8_t *end; + const asn_per_constraint_t *ct; + long value = 0; + + if(!st || st->size == 0) ASN__ENCODE_FAILED; + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + er.encoded = 0; + + if(ct) { + int inext = 0; + if(specs && specs->field_unsigned) { + unsigned long uval; + if(asn_INTEGER2ulong(st, &uval)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(uval < (unsigned long)ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(uval < (unsigned long)ct->lower_bound + || uval > (unsigned long)ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %lu (%02x/%" ASN_PRI_SIZE ") lb %lu ub %lu %s", + uval, st->buf[0], st->size, + ct->lower_bound, ct->upper_bound, + inext ? "ext" : "fix"); + value = uval; + } else { + if(asn_INTEGER2long(st, &value)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(value < ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(value < ct->lower_bound + || value > ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %ld (%02x/%" ASN_PRI_SIZE ") lb %ld ub %ld %s", + value, st->buf[0], st->size, + ct->lower_bound, ct->upper_bound, + inext ? "ext" : "fix"); + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + } + + + /* X.691-11/2008, #13.2.2, test if constrained whole number */ + if(ct && ct->range_bits >= 0) { + unsigned long v; + /* #11.5.6 -> #11.3 */ + ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", + value, value - ct->lower_bound, ct->range_bits); + if(per_long_range_rebase(value, ct->lower_bound, ct->upper_bound, &v)) { + ASN__ENCODE_FAILED; + } + if(uper_put_constrained_whole_number_u(po, v, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(ct && ct->lower_bound) { + ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); + /* TODO: adjust lower bound */ + ASN__ENCODE_FAILED; + } + + for(buf = st->buf, end = st->buf + st->size; buf < end;) { + int need_eom = 0; + ssize_t mayEncode = uper_put_length(po, end - buf, &need_eom); + if(mayEncode < 0) + ASN__ENCODE_FAILED; + if(per_put_many_bits(po, buf, 8 * mayEncode)) + ASN__ENCODE_FAILED; + buf += mayEncode; + if(need_eom && uper_put_length(po, 0, 0)) ASN__ENCODE_FAILED; + } + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + INTEGER_t *st = (INTEGER_t *)*sptr; + const asn_per_constraint_t *ct; + int repeat; + + (void)opt_codec_ctx; + + if(!st) { + st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + if(ct) { + if(ct->flags & APC_SEMI_CONSTRAINED) { + st->buf = (uint8_t *)CALLOC(1, 2); + if(!st->buf) ASN__DECODE_FAILED; + st->size = 1; + } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { + size_t size = (ct->range_bits + 7) >> 3; + st->buf = (uint8_t *)MALLOC(1 + size + 1); + if(!st->buf) ASN__DECODE_FAILED; + st->size = size; + } + } + + /* X.691, #12.2.2 */ + if(ct && ct->flags != APC_UNCONSTRAINED) { + /* #10.5.6 */ + ASN_DEBUG("Integer with range %d bits", ct->range_bits); + if(ct->range_bits >= 0) { + if (ct->range_bits > 16) { + int max_range_bytes = (ct->range_bits >> 3) + + (((ct->range_bits % 8) > 0) ? 1 : 0); + int length = 0, i; + long value = 0; + + for (i = 1; ; i++) { + int upper = 1 << i; + if (upper >= max_range_bytes) + break; + } + ASN_DEBUG("Can encode %d (%d bytes) in %d bits", ct->range_bits, + max_range_bytes, i); + + if ((length = per_get_few_bits(pd, i)) < 0) + ASN__DECODE_FAILED; + + /* X.691 #12.2.6 length determinant + lb (1) */ + length += 1; + ASN_DEBUG("Got length %d", length); + if (aper_get_align(pd) != 0) + ASN__DECODE_FAILED; + while (length--) { + int buf = per_get_few_bits(pd, 8); + if (buf < 0) + ASN__DECODE_FAILED; + value += (((long)buf) << (8 * length)); + } + + value += ct->lower_bound; + if((specs && specs->field_unsigned) + ? asn_uint642INTEGER(st, (unsigned long)value) + : asn_int642INTEGER(st, value)) + ASN__DECODE_FAILED; + ASN_DEBUG("Got value %ld + low %ld", + value, ct->lower_bound); + } else { + long value = 0; + if (ct->range_bits < 8) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + } else if (ct->range_bits == 8) { + if (aper_get_align(pd) < 0) + ASN__DECODE_FAILED; + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + } else { + /* Align */ + if (aper_get_align(pd) < 0) + ASN__DECODE_FAILED; + value = per_get_few_bits(pd, 16); + if(value < 0) ASN__DECODE_STARVED; + } + value += ct->lower_bound; + if((specs && specs->field_unsigned) + ? asn_ulong2INTEGER(st, value) + : asn_long2INTEGER(st, value)) + ASN__DECODE_FAILED; + ASN_DEBUG("Got value %ld + low %ld", + value, ct->lower_bound); + } + return rval; + } else { + ASN__DECODE_FAILED; + } + } else { + ASN_DEBUG("Decoding unconstrained integer %s", td->name); + } + + /* X.691, #12.2.3, #12.2.4 */ + do { + ssize_t len; + void *p; + int ret; + + /* Get the PER length */ + len = aper_get_length(pd, -1, -1, &repeat); + if(len < 0) ASN__DECODE_STARVED; + + p = REALLOC(st->buf, st->size + len + 1); + if(!p) ASN__DECODE_FAILED; + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); + if(ret < 0) ASN__DECODE_STARVED; + st->size += len; + } while(repeat); + st->buf[st->size] = 0; /* JIC */ + + /* #12.2.3 */ + if(ct && ct->lower_bound) { + /* + * TODO: replace by in-place arithmetics. + */ + long value; + if(asn_INTEGER2long(st, &value)) + ASN__DECODE_FAILED; + if(asn_long2INTEGER(st, value + ct->lower_bound)) + ASN__DECODE_FAILED; + } + + return rval; +} + +asn_enc_rval_t +INTEGER_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er; + const INTEGER_t *st = (const INTEGER_t *)sptr; + const uint8_t *buf; + const uint8_t *end; + const asn_per_constraint_t *ct; + long value = 0; + + if(!st || st->size == 0) ASN__ENCODE_FAILED; + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + er.encoded = 0; + + if(ct) { + int inext = 0; + if(specs && specs->field_unsigned) { + unsigned long uval; + if(asn_INTEGER2ulong(st, &uval)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(uval < (unsigned long)ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(uval < (unsigned long)ct->lower_bound + || uval > (unsigned long)ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", + uval, st->buf[0], st->size, + ct->lower_bound, ct->upper_bound, + inext ? "ext" : "fix"); + value = uval; + } else { + if(asn_INTEGER2long(st, &value)) ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(value < ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(value < ct->lower_bound + || value > ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", + value, st->buf[0], st->size, + ct->lower_bound, ct->upper_bound, + inext ? "ext" : "fix"); + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + } + + /* X.691, #12.2.2 */ + if(ct && ct->range_bits >= 0) { + unsigned long v; + + /* #10.5.6 */ + ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", + value, value - ct->lower_bound, ct->range_bits); + + v = value - ct->lower_bound; + + /* #12 <= 8 -> alignment ? */ + if (ct->range_bits < 8) { + if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) + ASN__ENCODE_FAILED; + } else if (ct->range_bits == 8) { + if(aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) + ASN__ENCODE_FAILED; + } else if (ct->range_bits <= 16) { + /* Consume the bytes to align on octet */ + if(aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + if(per_put_few_bits(po, 0x0000 | v, + 16)) + ASN__ENCODE_FAILED; + } else { + /* TODO: extend to >64 bits */ + int64_t v64 = v; + int i, j; + int max_range_bytes = (ct->range_bits >> 3) + + (((ct->range_bits % 8) > 0) ? 1 : 0); + + for (i = 1; ; i++) { + int upper = 1 << i; + if (upper >= max_range_bytes) + break; + } + + for (j = sizeof(int64_t) -1; j != 0; j--) { + int64_t val; + val = v64 >> (j * 8); + if (val != 0) + break; + } + + /* Putting length in the minimum number of bits ex: 5 = 3bits */ + if (per_put_few_bits(po, j, i)) + ASN__ENCODE_FAILED; + + /* Consume the bits to align on octet */ + if (aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + /* Put the value */ + for (i = 0; i <= j; i++) { + if(per_put_few_bits(po, (v64 >> (8 * (j - i))) & 0xff, 8)) + ASN__ENCODE_FAILED; + } + } + ASN__ENCODED_OK(er); + } + + if(ct && ct->lower_bound) { + ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); + /* TODO: adjust lower bound */ + ASN__ENCODE_FAILED; + } + + for(buf = st->buf, end = st->buf + st->size; buf < end;) { + ssize_t mayEncode = aper_put_length(po, -1, end - buf); + if(mayEncode < 0) + ASN__ENCODE_FAILED; + if(per_put_many_bits(po, buf, 8 * mayEncode)) + ASN__ENCODE_FAILED; + buf += mayEncode; + } + + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +static intmax_t +asn__integer_convert(const uint8_t *b, const uint8_t *end) { + uintmax_t value; + + /* Perform the sign initialization */ + /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ + if((*b >> 7)) { + value = (uintmax_t)(-1); + } else { + value = 0; + } + + /* Conversion engine */ + for(; b < end; b++) { + value = (value << 8) | *b; + } + + return value; +} + +int +asn_INTEGER2imax(const INTEGER_t *iptr, intmax_t *lptr) { + uint8_t *b, *end; + size_t size; + + /* Sanity checking */ + if(!iptr || !iptr->buf || !lptr) { + errno = EINVAL; + return -1; + } + + /* Cache the begin/end of the buffer */ + b = iptr->buf; /* Start of the INTEGER buffer */ + size = iptr->size; + end = b + size; /* Where to stop */ + + if(size > sizeof(intmax_t)) { + uint8_t *end1 = end - 1; + /* + * Slightly more advanced processing, + * able to process INTEGERs with >sizeof(intmax_t) bytes + * when the actual value is small, e.g. for intmax_t == int32_t + * (0x0000000000abcdef INTEGER would yield a fine 0x00abcdef int32_t) + */ + /* Skip out the insignificant leading bytes */ + for(; b < end1; b++) { + switch(*b) { + case 0x00: if((b[1] & 0x80) == 0) continue; break; + case 0xff: if((b[1] & 0x80) != 0) continue; break; + } + break; + } + + size = end - b; + if(size > sizeof(intmax_t)) { + /* Still cannot fit the sizeof(intmax_t) */ + errno = ERANGE; + return -1; + } + } + + /* Shortcut processing of a corner case */ + if(end == b) { + *lptr = 0; + return 0; + } + + *lptr = asn__integer_convert(b, end); + return 0; +} + +/* FIXME: negative INTEGER values are silently interpreted as large unsigned ones. */ +int +asn_INTEGER2umax(const INTEGER_t *iptr, uintmax_t *lptr) { + uint8_t *b, *end; + uintmax_t value; + size_t size; + + if(!iptr || !iptr->buf || !lptr) { + errno = EINVAL; + return -1; + } + + b = iptr->buf; + size = iptr->size; + end = b + size; + + /* If all extra leading bytes are zeroes, ignore them */ + for(; size > sizeof(value); b++, size--) { + if(*b) { + /* Value won't fit into uintmax_t */ + errno = ERANGE; + return -1; + } + } + + /* Conversion engine */ + for(value = 0; b < end; b++) + value = (value << 8) | *b; + + *lptr = value; + return 0; +} + +int +asn_umax2INTEGER(INTEGER_t *st, uintmax_t value) { + uint8_t *buf; + uint8_t *end; + uint8_t *b; + int shr; + + if(value <= ((~(uintmax_t)0) >> 1)) { + return asn_imax2INTEGER(st, value); + } + + buf = (uint8_t *)MALLOC(1 + sizeof(value)); + if(!buf) return -1; + + end = buf + (sizeof(value) + 1); + buf[0] = 0; /* INTEGERs are signed. 0-byte indicates positive. */ + for(b = buf + 1, shr = (sizeof(value) - 1) * 8; b < end; shr -= 8, b++) + *b = (uint8_t)(value >> shr); + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = 1 + sizeof(value); + + return 0; +} + +int +asn_imax2INTEGER(INTEGER_t *st, intmax_t value) { + uint8_t *buf, *bp; + uint8_t *p; + uint8_t *pstart; + uint8_t *pend1; + int littleEndian = 1; /* Run-time detection */ + int add; + + if(!st) { + errno = EINVAL; + return -1; + } + + buf = (uint8_t *)(long *)MALLOC(sizeof(value)); + if(!buf) return -1; + + if(*(char *)&littleEndian) { + pstart = (uint8_t *)&value + sizeof(value) - 1; + pend1 = (uint8_t *)&value; + add = -1; + } else { + pstart = (uint8_t *)&value; + pend1 = pstart + sizeof(value) - 1; + add = 1; + } + + /* + * If the contents octet consists of more than one octet, + * then bits of the first octet and bit 8 of the second octet: + * a) shall not all be ones; and + * b) shall not all be zero. + */ + for(p = pstart; p != pend1; p += add) { + switch(*p) { + case 0x00: if((*(p+add) & 0x80) == 0) + continue; + break; + case 0xff: if((*(p+add) & 0x80)) + continue; + break; + } + break; + } + /* Copy the integer body */ + for(bp = buf, pend1 += add; p != pend1; p += add) + *bp++ = *p; + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = bp - buf; + + return 0; +} + +int +asn_INTEGER2long(const INTEGER_t *iptr, long *l) { + intmax_t v; + if(asn_INTEGER2imax(iptr, &v) == 0) { + if(v < LONG_MIN || v > LONG_MAX) { + errno = ERANGE; + return -1; + } + *l = v; + return 0; + } else { + return -1; + } +} + +int +asn_INTEGER2ulong(const INTEGER_t *iptr, unsigned long *l) { + uintmax_t v; + if(asn_INTEGER2umax(iptr, &v) == 0) { + if(v > ULONG_MAX) { + errno = ERANGE; + return -1; + } + *l = v; + return 0; + } else { + return -1; + } +} + +int +asn_long2INTEGER(INTEGER_t *st, long value) { + return asn_imax2INTEGER(st, value); +} + +int +asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) { + return asn_imax2INTEGER(st, value); +} + + +int +asn_uint642INTEGER(INTEGER_t *st, uint64_t value) { + uint8_t *buf; + uint8_t *end; + uint8_t *b; + int shr; + + if(value <= INT64_MAX) + return asn_int642INTEGER(st, value); + + buf = (uint8_t *)MALLOC(1 + sizeof(value)); + if(!buf) return -1; + + end = buf + (sizeof(value) + 1); + buf[0] = 0; + for(b = buf + 1, shr = (sizeof(value)-1)*8; b < end; shr -= 8, b++) + *b = (uint8_t)(value >> shr); + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = 1 + sizeof(value); + + return 0; +} + +int +asn_int642INTEGER(INTEGER_t *st, int64_t value) { + uint8_t *buf, *bp; + uint8_t *p; + uint8_t *pstart; + uint8_t *pend1; + int littleEndian = 1; /* Run-time detection */ + int add; + + if(!st) { + errno = EINVAL; + return -1; + } + + buf = (uint8_t *)MALLOC(sizeof(value)); + if(!buf) return -1; + + if(*(char *)&littleEndian) { + pstart = (uint8_t *)&value + sizeof(value) - 1; + pend1 = (uint8_t *)&value; + add = -1; + } else { + pstart = (uint8_t *)&value; + pend1 = pstart + sizeof(value) - 1; + add = 1; + } + + /* + * If the contents octet consists of more than one octet, + * then bits of the first octet and bit 8 of the second octet: + * a) shall not all be ones; and + * b) shall not all be zero. + */ + for(p = pstart; p != pend1; p += add) { + switch(*p) { + case 0x00: if((*(p+add) & 0x80) == 0) + continue; + break; + case 0xff: if((*(p+add) & 0x80)) + continue; + break; + } + break; + } + /* Copy the integer body */ + for(pstart = p, bp = buf, pend1 += add; p != pend1; p += add) + *bp++ = *p; + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = bp - buf; + + return 0; +} + +/* + * Parse the number in the given string until the given *end position, + * returning the position after the last parsed character back using the + * same (*end) pointer. + * WARNING: This behavior is different from the standard strtol/strtoimax(3). + */ +enum asn_strtox_result_e +asn_strtoimax_lim(const char *str, const char **end, intmax_t *intp) { + int sign = 1; + intmax_t value; + +#define ASN1_INTMAX_MAX ((~(uintmax_t)0) >> 1) + const intmax_t upper_boundary = ASN1_INTMAX_MAX / 10; + intmax_t last_digit_max = ASN1_INTMAX_MAX % 10; +#undef ASN1_INTMAX_MAX + + if(str >= *end) return ASN_STRTOX_ERROR_INVAL; + + switch(*str) { + case '-': + last_digit_max++; + sign = -1; + /* FALL THROUGH */ + case '+': + str++; + if(str >= *end) { + *end = str; + return ASN_STRTOX_EXPECT_MORE; + } + } + + for(value = 0; str < (*end); str++) { + switch(*str) { + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { + int d = *str - '0'; + if(value < upper_boundary) { + value = value * 10 + d; + } else if(value == upper_boundary) { + if(d <= last_digit_max) { + if(sign > 0) { + value = value * 10 + d; + } else { + sign = 1; + value = -value * 10 - d; + } + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } + continue; + default: + *end = str; + *intp = sign * value; + return ASN_STRTOX_EXTRA_DATA; + } + } + + *end = str; + *intp = sign * value; + return ASN_STRTOX_OK; +} + +/* + * Parse the number in the given string until the given *end position, + * returning the position after the last parsed character back using the + * same (*end) pointer. + * WARNING: This behavior is different from the standard strtoul/strtoumax(3). + */ +enum asn_strtox_result_e +asn_strtoumax_lim(const char *str, const char **end, uintmax_t *uintp) { + uintmax_t value; + +#define ASN1_UINTMAX_MAX ((~(uintmax_t)0)) + const uintmax_t upper_boundary = ASN1_UINTMAX_MAX / 10; + uintmax_t last_digit_max = ASN1_UINTMAX_MAX % 10; +#undef ASN1_UINTMAX_MAX + + if(str >= *end) return ASN_STRTOX_ERROR_INVAL; + + switch(*str) { + case '-': + return ASN_STRTOX_ERROR_INVAL; + case '+': + str++; + if(str >= *end) { + *end = str; + return ASN_STRTOX_EXPECT_MORE; + } + } + + for(value = 0; str < (*end); str++) { + switch(*str) { + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { + unsigned int d = *str - '0'; + if(value < upper_boundary) { + value = value * 10 + d; + } else if(value == upper_boundary) { + if(d <= last_digit_max) { + value = value * 10 + d; + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } + continue; + default: + *end = str; + *uintp = value; + return ASN_STRTOX_EXTRA_DATA; + } + } + + *end = str; + *uintp = value; + return ASN_STRTOX_OK; +} + +enum asn_strtox_result_e +asn_strtol_lim(const char *str, const char **end, long *lp) { + intmax_t value; + switch(asn_strtoimax_lim(str, end, &value)) { + case ASN_STRTOX_ERROR_RANGE: + return ASN_STRTOX_ERROR_RANGE; + case ASN_STRTOX_ERROR_INVAL: + return ASN_STRTOX_ERROR_INVAL; + case ASN_STRTOX_EXPECT_MORE: + return ASN_STRTOX_EXPECT_MORE; + case ASN_STRTOX_OK: + if(value >= LONG_MIN && value <= LONG_MAX) { + *lp = value; + return ASN_STRTOX_OK; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + case ASN_STRTOX_EXTRA_DATA: + if(value >= LONG_MIN && value <= LONG_MAX) { + *lp = value; + return ASN_STRTOX_EXTRA_DATA; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + } + + assert(!"Unreachable"); + return ASN_STRTOX_ERROR_INVAL; +} + +enum asn_strtox_result_e +asn_strtoul_lim(const char *str, const char **end, unsigned long *ulp) { + uintmax_t value; + switch(asn_strtoumax_lim(str, end, &value)) { + case ASN_STRTOX_ERROR_RANGE: + return ASN_STRTOX_ERROR_RANGE; + case ASN_STRTOX_ERROR_INVAL: + return ASN_STRTOX_ERROR_INVAL; + case ASN_STRTOX_EXPECT_MORE: + return ASN_STRTOX_EXPECT_MORE; + case ASN_STRTOX_OK: + if(value <= ULONG_MAX) { + *ulp = value; + return ASN_STRTOX_OK; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + case ASN_STRTOX_EXTRA_DATA: + if(value <= ULONG_MAX) { + *ulp = value; + return ASN_STRTOX_EXTRA_DATA; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + } + + assert(!"Unreachable"); + return ASN_STRTOX_ERROR_INVAL; +} + +int +INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const INTEGER_t *a = aptr; + const INTEGER_t *b = bptr; + + (void)td; + + if(a && b) { + if(a->size && b->size) { + int sign_a = (a->buf[0] & 0x80) ? -1 : 1; + int sign_b = (b->buf[0] & 0x80) ? -1 : 1; + + if(sign_a < sign_b) return -1; + if(sign_a > sign_b) return 1; + + /* The shortest integer wins, unless comparing negatives */ + if(a->size < b->size) { + return -1 * sign_a; + } else if(a->size > b->size) { + return 1 * sign_b; + } + + return sign_a * memcmp(a->buf, b->buf, a->size); + } else if(a->size) { + int sign = (a->buf[0] & 0x80) ? -1 : 1; + return (1) * sign; + } else if(b->size) { + int sign = (a->buf[0] & 0x80) ? -1 : 1; + return (-1) * sign; + } else { + return 0; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } + +} + +asn_random_fill_result_t +INTEGER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + INTEGER_t *st = *sptr; + const asn_INTEGER_enum_map_t *emap; + size_t emap_len; + intmax_t value; + int find_inside_map; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (INTEGER_t *)CALLOC(1, sizeof(*st)); + if(st == NULL) { + return result_failed; + } + } + + if(specs) { + emap = specs->value2enum; + emap_len = specs->map_count; + if(specs->strict_enumeration) { + find_inside_map = emap_len > 0; + } else { + find_inside_map = emap_len ? asn_random_between(0, 1) : 0; + } + } else { + emap = 0; + emap_len = 0; + find_inside_map = 0; + } + + if(find_inside_map) { + assert(emap_len > 0); + value = emap[asn_random_between(0, emap_len - 1)].nat_value; + } else { + const asn_per_constraints_t *ct; + + static const long variants[] = { + -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, + -16383, -257, -256, -255, -254, -129, -128, -127, + -126, -1, 0, 1, 126, 127, 128, 129, + 254, 255, 256, 257, 16383, 16384, 16385, 32767, + 32768, 32769, 65534, 65535, 65536, 65537}; + if(specs && specs->field_unsigned) { + assert(variants[18] == 0); + value = variants[asn_random_between( + 18, sizeof(variants) / sizeof(variants[0]) - 1)]; + } else { + value = variants[asn_random_between( + 0, sizeof(variants) / sizeof(variants[0]) - 1)]; + } + + if(!constraints) constraints = &td->encoding_constraints; + ct = constraints ? constraints->per_constraints : 0; + if(ct && (ct->value.flags & APC_CONSTRAINED)) { + if(value < ct->value.lower_bound || value > ct->value.upper_bound) { + value = asn_random_between(ct->value.lower_bound, + ct->value.upper_bound); + } + } + } + + if(asn_imax2INTEGER(st, value)) { + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + return result_failed; + } else { + *sptr = st; + result_ok.length = st->size; + return result_ok; + } +} diff --git a/vcits/asn1c/src/INTEGER_oer.c b/vcits/asn1c/src/INTEGER_oer.c new file mode 100644 index 0000000..5c98d3e --- /dev/null +++ b/vcits/asn1c/src/INTEGER_oer.c @@ -0,0 +1,179 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_DISABLE_OER_SUPPORT + +#include +#include +#include + +asn_dec_rval_t +INTEGER_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **sptr, + const void *ptr, size_t size) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = {RC_OK, 0}; + INTEGER_t *st = (INTEGER_t *)*sptr; + struct asn_oer_constraint_number_s ct = {0, 0}; + size_t req_bytes; + + (void)opt_codec_ctx; + (void)specs; + + if(!st) { + st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + + if(!constraints) constraints = td->encoding_constraints.oer_constraints; + if(constraints) ct = constraints->value; + + if(ct.width) { + req_bytes = ct.width; + } else { + /* No lower bound and no upper bound, effectively */ + + ssize_t consumed = oer_fetch_length(ptr, size, &req_bytes); + if(consumed == 0) { + ASN__DECODE_STARVED; + } else if(consumed == -1) { + ASN__DECODE_FAILED; + } + rval.consumed += consumed; + ptr = (const char *)ptr + consumed; + size -= consumed; + } + + if(req_bytes > size) { + ASN__DECODE_STARVED; + } + + if(ct.positive) { + /* X.969 08/2015 10.2(a) */ + unsigned msb; /* Most significant bit */ + size_t useful_size; + + /* Check most significant bit */ + msb = *(const uint8_t *)ptr >> 7; /* yields 0 or 1 */ + useful_size = msb + req_bytes; + st->buf = (uint8_t *)MALLOC(useful_size + 1); + if(!st->buf) { + ASN__DECODE_FAILED; + } + + /* + * Record a large unsigned in a way not to confuse it + * with signed value. + */ + st->buf[0] = '\0'; + memcpy(st->buf + msb, ptr, req_bytes); + st->buf[useful_size] = '\0'; /* Just in case, 0-terminate */ + st->size = useful_size; + + rval.consumed += req_bytes; + return rval; + } else { + /* X.969 08/2015 10.2(b) */ + st->buf = (uint8_t *)MALLOC(req_bytes + 1); + if(!st->buf) { + ASN__DECODE_FAILED; + } + + memcpy(st->buf, ptr, req_bytes); + st->buf[req_bytes] = '\0'; /* Just in case, 0-terminate */ + st->size = req_bytes; + + rval.consumed += req_bytes; + return rval; + } +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +INTEGER_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + const INTEGER_t *st = sptr; + asn_enc_rval_t er; + struct asn_oer_constraint_number_s ct = {0, 0}; + const uint8_t *buf; + const uint8_t *end; + size_t useful_bytes; + size_t req_bytes = 0; + int sign = 0; + + if(!st || st->size == 0) ASN__ENCODE_FAILED; + + if(!constraints) constraints = td->encoding_constraints.oer_constraints; + if(constraints) ct = constraints->value; + + er.encoded = 0; + + buf = st->buf; + end = buf + st->size; + + sign = (buf && buf < end) ? buf[0] & 0x80 : 0; + + /* Ignore 9 leading zeroes or ones */ + if(ct.positive) { + if(sign) { + /* The value given is a signed value. Can't proceed. */ + ASN__ENCODE_FAILED; + } + /* Remove leading zeros. */ + for(; buf + 1 < end; buf++) { + if(buf[0] != 0x0) break; + } + } else { + for(; buf + 1 < end; buf++) { + if(buf[0] == 0x0 && (buf[1] & 0x80) == 0) { + continue; + } else if(buf[0] == 0xff && (buf[1] & 0x80) != 0) { + continue; + } + break; + } + } + + useful_bytes = end - buf; + if(ct.width) { + req_bytes = ct.width; + } else { + ssize_t r = oer_serialize_length(useful_bytes, cb, app_key); + if(r < 0) { + ASN__ENCODE_FAILED; + } + er.encoded += r; + req_bytes = useful_bytes; + } + + if(req_bytes < useful_bytes) { + ASN__ENCODE_FAILED; + } + + er.encoded += req_bytes; + + for(; req_bytes > useful_bytes; req_bytes--) { + if(cb(sign?"\xff":"\0", 1, app_key) < 0) { + ASN__ENCODE_FAILED; + } + } + + if(cb(buf, useful_bytes, app_key) < 0) { + ASN__ENCODE_FAILED; + } + + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/vcits/asn1c/src/ISO646String.c b/vcits/asn1c/src/ISO646String.c new file mode 100644 index 0000000..f5fc69e --- /dev/null +++ b/vcits/asn1c/src/ISO646String.c @@ -0,0 +1,62 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * ISO646String basic type description. + */ +static const ber_tlv_tag_t asn_DEF_ISO646String_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), /* [UNIVERSAL 26] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +static asn_per_constraints_t asn_DEF_ISO646String_per_constraints = { + { APC_CONSTRAINED, 7, 7, 0x20, 0x7e }, /* Value */ + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ + 0, 0 +}; +asn_TYPE_operation_t asn_OP_ISO646String = { + OCTET_STRING_free, + OCTET_STRING_print_utf8, /* ASCII subset */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_ISO646String = { + "ISO646String", + "ISO646String", + &asn_OP_ISO646String, + asn_DEF_ISO646String_tags, + sizeof(asn_DEF_ISO646String_tags) + / sizeof(asn_DEF_ISO646String_tags[0]) - 1, + asn_DEF_ISO646String_tags, + sizeof(asn_DEF_ISO646String_tags) + / sizeof(asn_DEF_ISO646String_tags[0]), + { 0, &asn_DEF_ISO646String_per_constraints, ISO646String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; diff --git a/vcits/asn1c/src/NULL.c b/vcits/asn1c/src/NULL.c new file mode 100644 index 0000000..d882500 --- /dev/null +++ b/vcits/asn1c/src/NULL.c @@ -0,0 +1,299 @@ +/*- + * Copyright (c) 2003, 2005 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include /* Implemented in terms of BOOLEAN type */ + +/* + * NULL basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NULL_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (5 << 2)) +}; +asn_TYPE_operation_t asn_OP_NULL = { + BOOLEAN_free, + NULL_print, + NULL_compare, + BOOLEAN_decode_ber, /* Implemented in terms of BOOLEAN */ + NULL_encode_der, /* Special handling of DER encoding */ + NULL_decode_xer, + NULL_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + NULL_decode_oer, + NULL_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + NULL_decode_uper, /* Unaligned PER decoder */ + NULL_encode_uper, /* Unaligned PER encoder */ + NULL_decode_aper, /* Aligned PER decoder */ + NULL_encode_aper, /* Aligned PER encoder */ +#endif /* ASN_DISABLE_PER_SUPPORT */ + NULL_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NULL = { + "NULL", + "NULL", + &asn_OP_NULL, + asn_DEF_NULL_tags, + sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[0]), + asn_DEF_NULL_tags, /* Same as above */ + sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +asn_enc_rval_t +NULL_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, + ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t erval; + + erval.encoded = der_write_tags(td, 0, tag_mode, 0, tag, cb, app_key); + if(erval.encoded == -1) { + erval.failed_type = td; + erval.structure_ptr = ptr; + } + + ASN__ENCODED_OK(erval); +} + +asn_enc_rval_t +NULL_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er; + + (void)td; + (void)sptr; + (void)ilevel; + (void)flags; + (void)cb; + (void)app_key; + + /* XMLNullValue is empty */ + er.encoded = 0; + ASN__ENCODED_OK(er); +} + + +static enum xer_pbd_rval +NULL__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + (void)td; + (void)sptr; + (void)chunk_buf; /* Going to be empty according to the rules below. */ + + /* + * There must be no content in self-terminating tag. + */ + if(chunk_size) + return XPBD_BROKEN_ENCODING; + else + return XPBD_BODY_CONSUMED; +} + +asn_dec_rval_t +NULL_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(NULL_t), opt_mname, buf_ptr, size, + NULL__xer_body_decode); +} + +int +NULL_compare(const asn_TYPE_descriptor_t *td, const void *a, const void *b) { + (void)td; + (void)a; + (void)b; + return 0; +} + +int +NULL_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(sptr) { + return (cb("", 9, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} + +#ifndef ASN_DISABLE_OER_SUPPORT + +asn_dec_rval_t +NULL_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **sptr, + const void *ptr, size_t size) { + asn_dec_rval_t rv = {RC_OK, 0}; + (void)opt_codec_ctx; + (void)td; + (void)constraints; + (void)ptr; + (void)size; + + if(!*sptr) { + *sptr = MALLOC(sizeof(NULL_t)); + if(*sptr) { + *(NULL_t *)*sptr = 0; + } else { + ASN__DECODE_FAILED; + } + } + + return rv; +} + +asn_enc_rval_t +NULL_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er; + + (void)td; + (void)sptr; + (void)constraints; + (void)cb; + (void)app_key; + + er.encoded = 0; /* Encoding in 0 bytes. */ + + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_OER_SUPPORT */ + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +NULL_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + + (void)opt_codec_ctx; + (void)td; + (void)constraints; + (void)pd; + + if(!*sptr) { + *sptr = MALLOC(sizeof(NULL_t)); + if(*sptr) { + *(NULL_t *)*sptr = 0; + } else { + ASN__DECODE_FAILED; + } + } + + /* + * NULL type does not have content octets. + */ + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} + +asn_enc_rval_t +NULL_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + asn_enc_rval_t er; + + (void)td; + (void)constraints; + (void)sptr; + (void)po; + + er.encoded = 0; + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +NULL_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv; + + (void)opt_codec_ctx; + (void)td; + (void)constraints; + (void)pd; + + if(!*sptr) { + *sptr = MALLOC(sizeof(NULL_t)); + if(*sptr) { + *(NULL_t *)*sptr = 0; + } else { + ASN__DECODE_FAILED; + } + } + + /* + * NULL type does not have content octets. + */ + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} + + +asn_enc_rval_t +NULL_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + asn_enc_rval_t er; + + (void)td; + (void)constraints; + (void)sptr; + (void)po; + + er.encoded = 0; + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +asn_random_fill_result_t +NULL_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constr, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + NULL_t *st = *sptr; + + (void)td; + (void)constr; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (NULL_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(st == NULL) { + return result_failed; + } + } + + return result_ok; +} + diff --git a/vcits/asn1c/src/NativeEnumerated.c b/vcits/asn1c/src/NativeEnumerated.c new file mode 100644 index 0000000..7c069e7 --- /dev/null +++ b/vcits/asn1c/src/NativeEnumerated.c @@ -0,0 +1,367 @@ +/*- + * Copyright (c) 2004, 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Read the NativeInteger.h for the explanation wrt. differences between + * INTEGER and NativeInteger. + * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this + * implementation deals with the standard (machine-specific) representation + * of them instead of using the platform-independent buffer. + */ +#include +#include + +/* + * NativeEnumerated basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NativeEnumerated_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_operation_t asn_OP_NativeEnumerated = { + NativeInteger_free, + NativeInteger_print, + NativeInteger_compare, + NativeInteger_decode_ber, + NativeInteger_encode_der, + NativeInteger_decode_xer, + NativeEnumerated_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + NativeEnumerated_decode_oer, + NativeEnumerated_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + NativeEnumerated_decode_uper, + NativeEnumerated_encode_uper, + NativeEnumerated_decode_aper, + NativeEnumerated_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + NativeEnumerated_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = { + "ENUMERATED", /* The ASN.1 type is still ENUMERATED */ + "ENUMERATED", + &asn_OP_NativeEnumerated, + asn_DEF_NativeEnumerated_tags, + sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), + asn_DEF_NativeEnumerated_tags, /* Same as above */ + sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +asn_enc_rval_t +NativeEnumerated_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er; + const long *native = (const long *)sptr; + const asn_INTEGER_enum_map_t *el; + + (void)ilevel; + (void)flags; + + if(!native) ASN__ENCODE_FAILED; + + el = INTEGER_map_value2enum(specs, *native); + if(el) { + er.encoded = + asn__format_to_callback(cb, app_key, "<%s/>", el->enum_name); + if(er.encoded < 0) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } else { + ASN_DEBUG( + "ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + ASN__ENCODE_FAILED; + } +} + +asn_dec_rval_t +NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + long *native = (long *)*sptr; + const asn_per_constraint_t *ct; + long value; + + (void)opt_codec_ctx; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__DECODE_FAILED; /* Mandatory! */ + if(!specs) ASN__DECODE_FAILED; + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); + + if(ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + if(value >= (specs->extension + ? specs->extension - 1 : specs->map_count)) + ASN__DECODE_FAILED; + } else { + if(!specs->extension) + ASN__DECODE_FAILED; + /* + * X.691, #10.6: normally small non-negative whole number; + */ + value = uper_get_nsnnwn(pd); + if(value < 0) ASN__DECODE_STARVED; + value += specs->extension - 1; + if(value >= specs->map_count) + ASN__DECODE_FAILED; + } + + *native = specs->value2enum[value].nat_value; + ASN_DEBUG("Decoded %s = %ld", td->name, *native); + + return rval; +} + +static int +NativeEnumerated__compar_value2enum(const void *ap, const void *bp) { + const asn_INTEGER_enum_map_t *a = ap; + const asn_INTEGER_enum_map_t *b = bp; + if(a->nat_value == b->nat_value) + return 0; + if(a->nat_value < b->nat_value) + return -1; + return 1; +} + +asn_enc_rval_t +NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er; + long native, value; + const asn_per_constraint_t *ct; + int inext = 0; + asn_INTEGER_enum_map_t key; + const asn_INTEGER_enum_map_t *kf; + + if(!sptr) ASN__ENCODE_FAILED; + if(!specs) ASN__ENCODE_FAILED; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__ENCODE_FAILED; /* Mandatory! */ + + ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); + + er.encoded = 0; + + native = *(const long *)sptr; + + key.nat_value = native; + kf = bsearch(&key, specs->value2enum, specs->map_count, + sizeof(key), NativeEnumerated__compar_value2enum); + if(!kf) { + ASN_DEBUG("No element corresponds to %ld", native); + ASN__ENCODE_FAILED; + } + value = kf - specs->value2enum; + + if(ct->range_bits >= 0) { + int cmpWith = specs->extension + ? specs->extension - 1 : specs->map_count; + if(value >= cmpWith) + inext = 1; + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, value, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(!specs->extension) + ASN__ENCODE_FAILED; + + /* + * X.691, #10.6: normally small non-negative whole number; + */ + ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", + value, specs->extension, inext, + value - (inext ? (specs->extension - 1) : 0)); + if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + long *native = (long *)*sptr; + const asn_per_constraint_t *ct; + long value; + + (void)opt_codec_ctx; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__DECODE_FAILED; /* Mandatory! */ + if(!specs) ASN__DECODE_FAILED; + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); + + if(ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + /* Deal with APER padding */ + if(ct && ct->upper_bound >= 255) { + int padding = 0; + padding = (8 - (pd->moved % 8)) % 8; + ASN_DEBUG("For NativeEnumerated %s,offset= %lu Padding bits = %d", td->name, pd->moved, padding); + ASN_DEBUG("For NativeEnumerated %s, upper bound = %lu", td->name, ct->upper_bound); + if(padding > 0) + per_get_few_bits(pd, padding); + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + if(value >= (specs->extension + ? specs->extension - 1 : specs->map_count)) + ASN__DECODE_FAILED; + } else { + if(!specs->extension) + ASN__DECODE_FAILED; + /* + * X.691, #10.6: normally small non-negative whole number; + */ + value = uper_get_nsnnwn(pd); + if(value < 0) ASN__DECODE_STARVED; + value += specs->extension - 1; + if(value >= specs->map_count) + ASN__DECODE_FAILED; + } + + *native = specs->value2enum[value].nat_value; + ASN_DEBUG("Decoded %s = %ld", td->name, *native); + + return rval; +} + +asn_enc_rval_t +NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er; + long native, value; + const asn_per_constraint_t *ct; + int inext = 0; + asn_INTEGER_enum_map_t key; + asn_INTEGER_enum_map_t *kf; + + if(!sptr) ASN__ENCODE_FAILED; + if(!specs) ASN__ENCODE_FAILED; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__ENCODE_FAILED; /* Mandatory! */ + + ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); + + er.encoded = 0; + + native = *(const long *)sptr; + if(native < 0) ASN__ENCODE_FAILED; + + key.nat_value = native; + kf = bsearch(&key, specs->value2enum, specs->map_count, + sizeof(key), NativeEnumerated__compar_value2enum); + if(!kf) { + ASN_DEBUG("No element corresponds to %ld", native); + ASN__ENCODE_FAILED; + } + value = kf - specs->value2enum; + + if(ct->range_bits >= 0) { + int cmpWith = specs->extension + ? specs->extension - 1 : specs->map_count; + if(value >= cmpWith) + inext = 1; + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, value, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(!specs->extension) + ASN__ENCODE_FAILED; + + /* + * X.691, #10.6: normally small non-negative whole number; + */ + ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", + value, specs->extension, inext, + value - (inext ? (specs->extension - 1) : 0)); + if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/vcits/asn1c/src/NativeEnumerated_oer.c b/vcits/asn1c/src/NativeEnumerated_oer.c new file mode 100644 index 0000000..3222348 --- /dev/null +++ b/vcits/asn1c/src/NativeEnumerated_oer.c @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_DISABLE_OER_SUPPORT + +#include +#include +#include + +static long +asn__nativeenumerated_convert(const uint8_t *b, const uint8_t *end) { + unsigned long value; + + /* Perform the sign initialization */ + /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ + if((*b >> 7)) { + value = (unsigned long)(-1); + } else { + value = 0; + } + + /* Conversion engine */ + for(; b < end; b++) { + value = (value << 8) | *b; + } + + return value; +} + +asn_dec_rval_t +NativeEnumerated_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, + void **nint_ptr, const void *ptr, size_t size) { + asn_dec_rval_t rval = {RC_OK, 0}; + long *native = (long *)*nint_ptr; + const uint8_t *b = ptr; + + (void)opt_codec_ctx; + (void)constraints; + + if(size < 1) { + ASN__DECODE_STARVED; + } + + if((*b & 0x80) == 0) { + /* + * X.696 (08/2015) #11.2 Short form for Enumerated. + */ + if(!native) { + native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + *native = *b; + rval.consumed = 1; + } else { + /* + * X.696 (08/2015) #11.4 Long form for Enumerated. + */ + size_t length = *b & 0x7f; + const uint8_t *bend; + long value; + + if(length < 1 || length > sizeof(*native)) { + ASN__DECODE_FAILED; + } + if((1 + length) > size) { + ASN__DECODE_STARVED; + } + b++; + bend = b + length; + + value = asn__nativeenumerated_convert(b, bend); + if(value < 0) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + if(specs && specs->field_unsigned) { + ASN__DECODE_FAILED; + } + } + + if(!native) { + native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + *native = value; + + rval.consumed = (1 + length); + } + + return rval; +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +NativeEnumerated_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er; + long native; + + (void)constraints; + + if(!sptr) ASN__ENCODE_FAILED; + + native = *(const long *)sptr; + + if(native >= 0 && native <= 127) { + /* #11.2 Short form */ + uint8_t b = native; + er.encoded = 1; + if(cb(&b, er.encoded, app_key) < 0) { + ASN__ENCODE_FAILED; + } + ASN__ENCODED_OK(er); + } else { + /* #11.2 Long form */ + uint8_t buf[1 + sizeof(native)]; + uint8_t *b = &buf[sizeof(native)]; /* Last addressable */ + long final_pattern = -1 * (native < 0); + + for(;;) { + *b-- = native; + native >>= 8; + if(native == final_pattern) { + if(final_pattern) { + if((b[1] & 0x80)) break; + } else { + if(!(b[1] & 0x80)) break; + } + } + } + *b = 0x80 | (&buf[sizeof(native)] - b); + er.encoded = 1 + (&buf[sizeof(native)] - b); + if(cb(b, er.encoded, app_key) < 0) { + ASN__ENCODE_FAILED; + } + ASN__ENCODED_OK(er); + } +} + +#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/vcits/asn1c/src/NativeInteger.c b/vcits/asn1c/src/NativeInteger.c new file mode 100644 index 0000000..8c00d54 --- /dev/null +++ b/vcits/asn1c/src/NativeInteger.c @@ -0,0 +1,550 @@ +/*- + * Copyright (c) 2004, 2005, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Read the NativeInteger.h for the explanation wrt. differences between + * INTEGER and NativeInteger. + * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this + * implementation deals with the standard (machine-specific) representation + * of them instead of using the platform-independent buffer. + */ +#include +#include + +/* + * NativeInteger basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NativeInteger_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_operation_t asn_OP_NativeInteger = { + NativeInteger_free, + NativeInteger_print, + NativeInteger_compare, + NativeInteger_decode_ber, + NativeInteger_encode_der, + NativeInteger_decode_xer, + NativeInteger_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + NativeInteger_decode_oer, /* OER decoder */ + NativeInteger_encode_oer, /* Canonical OER encoder */ +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + NativeInteger_decode_uper, /* Unaligned PER decoder */ + NativeInteger_encode_uper, /* Unaligned PER encoder */ + NativeInteger_decode_aper, /* Aligned PER decoder */ + NativeInteger_encode_aper, /* Aligned PER encoder */ +#endif /* ASN_DISABLE_PER_SUPPORT */ + NativeInteger_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NativeInteger = { + "INTEGER", /* The ASN.1 type is still INTEGER */ + "INTEGER", + &asn_OP_NativeInteger, + asn_DEF_NativeInteger_tags, + sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), + asn_DEF_NativeInteger_tags, /* Same as above */ + sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +/* + * Decode INTEGER type. + */ +asn_dec_rval_t +NativeInteger_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **nint_ptr, + const void *buf_ptr, size_t size, int tag_mode) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + long *native = (long *)*nint_ptr; + asn_dec_rval_t rval; + ber_tlv_len_t length; + + /* + * If the structure is not there, allocate it. + */ + if(native == NULL) { + native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); + if(native == NULL) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + } + + ASN_DEBUG("Decoding %s as INTEGER (tm=%d)", + td->name, tag_mode); + + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, + tag_mode, 0, &length, 0); + if(rval.code != RC_OK) + return rval; + + ASN_DEBUG("%s length is %d bytes", td->name, (int)length); + + /* + * Make sure we have this length. + */ + buf_ptr = ((const char *)buf_ptr) + rval.consumed; + size -= rval.consumed; + if(length > (ber_tlv_len_t)size) { + rval.code = RC_WMORE; + rval.consumed = 0; + return rval; + } + + /* + * ASN.1 encoded INTEGER: buf_ptr, length + * Fill the native, at the same time checking for overflow. + * If overflow occured, return with RC_FAIL. + */ + { + INTEGER_t tmp; + union { + const void *constbuf; + void *nonconstbuf; + } unconst_buf; + long l; + + unconst_buf.constbuf = buf_ptr; + tmp.buf = (uint8_t *)unconst_buf.nonconstbuf; + tmp.size = length; + + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&tmp, (unsigned long *)&l) /* sic */ + : asn_INTEGER2long(&tmp, &l)) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + + *native = l; + } + + rval.code = RC_OK; + rval.consumed += length; + + ASN_DEBUG("Took %ld/%ld bytes to encode %s (%ld)", + (long)rval.consumed, (long)length, td->name, (long)*native); + + return rval; +} + +/* + * Encode the NativeInteger using the standard INTEGER type DER encoder. + */ +asn_enc_rval_t +NativeInteger_encode_der(const asn_TYPE_descriptor_t *sd, const void *ptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + unsigned long native = *(const unsigned long *)ptr; /* Disable sign ext. */ + asn_enc_rval_t erval; + INTEGER_t tmp; + +#ifdef WORDS_BIGENDIAN /* Opportunistic optimization */ + + tmp.buf = (uint8_t *)&native; + tmp.size = sizeof(native); + +#else /* Works even if WORDS_BIGENDIAN is not set where should've been */ + uint8_t buf[sizeof(native)]; + uint8_t *p; + + /* Prepare a fake INTEGER */ + for(p = buf + sizeof(buf) - 1; p >= buf; p--, native >>= 8) + *p = (uint8_t)native; + + tmp.buf = buf; + tmp.size = sizeof(buf); +#endif /* WORDS_BIGENDIAN */ + + /* Encode fake INTEGER */ + erval = INTEGER_encode_der(sd, &tmp, tag_mode, tag, cb, app_key); + if(erval.structure_ptr == &tmp) { + erval.structure_ptr = ptr; + } + return erval; +} + +/* + * Decode the chunk of XML text encoding INTEGER. + */ +asn_dec_rval_t +NativeInteger_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval; + INTEGER_t st; + void *st_ptr = (void *)&st; + long *native = (long *)*sptr; + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + memset(&st, 0, sizeof(st)); + rval = INTEGER_decode_xer(opt_codec_ctx, td, &st_ptr, + opt_mname, buf_ptr, size); + if(rval.code == RC_OK) { + long l; + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&st, (unsigned long *)&l) /* sic */ + : asn_INTEGER2long(&st, &l)) { + rval.code = RC_FAIL; + rval.consumed = 0; + } else { + *native = l; + } + } else { + /* + * Cannot restart from the middle; + * there is no place to save state in the native type. + * Request a continuation from the very beginning. + */ + rval.consumed = 0; + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &st); + return rval; +} + + +asn_enc_rval_t +NativeInteger_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + char scratch[32]; /* Enough for 64-bit int */ + asn_enc_rval_t er; + const long *native = (const long *)sptr; + + (void)ilevel; + (void)flags; + + if(!native) ASN__ENCODE_FAILED; + + er.encoded = snprintf(scratch, sizeof(scratch), + (specs && specs->field_unsigned) + ? "%lu" : "%ld", *native); + if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch) + || cb(scratch, er.encoded, app_key) < 0) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +NativeInteger_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval; + long *native = (long *)*sptr; + INTEGER_t tmpint; + void *tmpintptr = &tmpint; + + (void)opt_codec_ctx; + ASN_DEBUG("Decoding NativeInteger %s (UPER)", td->name); + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + memset(&tmpint, 0, sizeof tmpint); + rval = INTEGER_decode_uper(opt_codec_ctx, td, constraints, + &tmpintptr, pd); + if(rval.code == RC_OK) { + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) + : asn_INTEGER2long(&tmpint, native)) + rval.code = RC_FAIL; + else + ASN_DEBUG("NativeInteger %s got value %ld", + td->name, *native); + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + + return rval; +} + +asn_enc_rval_t +NativeInteger_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er; + long native; + INTEGER_t tmpint; + + if(!sptr) ASN__ENCODE_FAILED; + + native = *(const long *)sptr; + + ASN_DEBUG("Encoding NativeInteger %s %ld (UPER)", td->name, native); + + memset(&tmpint, 0, sizeof(tmpint)); + if((specs&&specs->field_unsigned) + ? asn_ulong2INTEGER(&tmpint, native) + : asn_long2INTEGER(&tmpint, native)) + ASN__ENCODE_FAILED; + er = INTEGER_encode_uper(td, constraints, &tmpint, po); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + return er; +} + +asn_dec_rval_t +NativeInteger_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval; + long *native = (long *)*sptr; + INTEGER_t tmpint; + void *tmpintptr = &tmpint; + + (void)opt_codec_ctx; + ASN_DEBUG("Decoding NativeInteger %s (APER)", td->name); + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + memset(&tmpint, 0, sizeof tmpint); + rval = INTEGER_decode_aper(opt_codec_ctx, td, constraints, + &tmpintptr, pd); + if(rval.code == RC_OK) { + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) + : asn_INTEGER2long(&tmpint, native)) + rval.code = RC_FAIL; + else + ASN_DEBUG("NativeInteger %s got value %ld", + td->name, *native); + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + + return rval; +} + +asn_enc_rval_t +NativeInteger_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er; + long native; + INTEGER_t tmpint; + + if(!sptr) ASN__ENCODE_FAILED; + + native = *(const long *)sptr; + + ASN_DEBUG("Encoding NativeInteger %s %ld (APER)", td->name, native); + + memset(&tmpint, 0, sizeof(tmpint)); + if((specs&&specs->field_unsigned) + ? asn_ulong2INTEGER(&tmpint, (unsigned long)native) + : asn_long2INTEGER(&tmpint, native)) + ASN__ENCODE_FAILED; + er = INTEGER_encode_aper(td, constraints, &tmpint, po); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + return er; +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +/* + * INTEGER specific human-readable output. + */ +int +NativeInteger_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + const long *native = (const long *)sptr; + char scratch[32]; /* Enough for 64-bit int */ + int ret; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(native) { + long value = *native; + ret = snprintf(scratch, sizeof(scratch), + (specs && specs->field_unsigned) ? "%lu" : "%ld", value); + assert(ret > 0 && (size_t)ret < sizeof(scratch)); + if(cb(scratch, ret, app_key) < 0) return -1; + if(specs && (value >= 0 || !specs->field_unsigned)) { + const asn_INTEGER_enum_map_t *el = + INTEGER_map_value2enum(specs, value); + if(el) { + if(cb(" (", 2, app_key) < 0) return -1; + if(cb(el->enum_name, el->enum_len, app_key) < 0) return -1; + if(cb(")", 1, app_key) < 0) return -1; + } + } + return 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} + +void +NativeInteger_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(!td || !ptr) + return; + + ASN_DEBUG("Freeing %s as INTEGER (%d, %p, Native)", + td->name, method, ptr); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, sizeof(long)); + break; + } +} + +int +NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { + (void)td; + + if(aptr && bptr) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + if(specs && specs->field_unsigned) { + const unsigned long *a = aptr; + const unsigned long *b = bptr; + if(*a < *b) { + return -1; + } else if(*a > *b) { + return 1; + } else { + return 0; + } + } else { + const long *a = aptr; + const long *b = bptr; + if(*a < *b) { + return -1; + } else if(*a > *b) { + return 1; + } else { + return 0; + } + } + } else if(!aptr) { + return -1; + } else { + return 1; + } +} + +asn_random_fill_result_t +NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + long *st = *sptr; + const asn_INTEGER_enum_map_t *emap; + size_t emap_len; + intmax_t value; + int find_inside_map; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (long *)CALLOC(1, sizeof(*st)); + if(st == NULL) { + return result_failed; + } + } + + if(specs) { + emap = specs->value2enum; + emap_len = specs->map_count; + if(specs->strict_enumeration) { + find_inside_map = emap_len > 0; + } else { + find_inside_map = emap_len ? asn_random_between(0, 1) : 0; + } + } else { + emap = 0; + emap_len = 0; + find_inside_map = 0; + } + + if(find_inside_map) { + assert(emap_len > 0); + value = emap[asn_random_between(0, emap_len - 1)].nat_value; + } else { + const asn_per_constraints_t *ct; + + static const long variants[] = { + -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, + -16383, -257, -256, -255, -254, -129, -128, -127, + -126, -1, 0, 1, 126, 127, 128, 129, + 254, 255, 256, 257, 16383, 16384, 16385, 32767, + 32768, 32769, 65534, 65535, 65536, 65537}; + if(specs && specs->field_unsigned) { + assert(variants[18] == 0); + value = variants[asn_random_between( + 18, sizeof(variants) / sizeof(variants[0]) - 1)]; + } else { + value = variants[asn_random_between( + 0, sizeof(variants) / sizeof(variants[0]) - 1)]; + } + + if(!constraints) constraints = &td->encoding_constraints; + ct = constraints ? constraints->per_constraints : 0; + if(ct && (ct->value.flags & APC_CONSTRAINED)) { + if(value < ct->value.lower_bound || value > ct->value.upper_bound) { + value = asn_random_between(ct->value.lower_bound, + ct->value.upper_bound); + } + } + } + + *sptr = st; + *st = value; + return result_ok; +} diff --git a/vcits/asn1c/src/NativeInteger_oer.c b/vcits/asn1c/src/NativeInteger_oer.c new file mode 100644 index 0000000..411413a --- /dev/null +++ b/vcits/asn1c/src/NativeInteger_oer.c @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_DISABLE_OER_SUPPORT + +#include +#include +#include + +asn_dec_rval_t +NativeInteger_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, + void **nint_ptr, const void *ptr, size_t size) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = {RC_OK, 0}; + long *native = (long *)*nint_ptr; + INTEGER_t tmpint; + INTEGER_t *tmpintptr = &tmpint; + + memset(&tmpint, 0, sizeof(tmpint)); + + if(!native) { + native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + /* + * OPTIMIZATION: Encode directly rather than passing through INTEGER. + * Saves a memory allocation. + */ + rval = INTEGER_decode_oer(opt_codec_ctx, td, constraints, + (void **)&tmpintptr, ptr, size); + if(rval.code != RC_OK) { + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + return rval; + } + + if(specs && specs->field_unsigned) { + unsigned long ul; + int ok = asn_INTEGER2ulong(&tmpint, &ul) == 0; + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + if(ok) { + *native = ul; + } else { + rval.code = RC_FAIL; + return rval; + } + } else { + long l; + int ok = asn_INTEGER2long(&tmpint, &l) == 0; + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + if(ok) { + *native = l; + } else { + rval.code = RC_FAIL; + return rval; + } + } + + return rval; +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +NativeInteger_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + INTEGER_t tmpint; + long native; + + if(!sptr) ASN__ENCODE_FAILED; + + native = *(const long *)sptr; + memset(&tmpint, 0, sizeof(tmpint)); + + ASN_DEBUG("Encoding %s %ld as NativeInteger", td ? td->name : "", native); + + if((specs && specs->field_unsigned) ? asn_ulong2INTEGER(&tmpint, native) + : asn_long2INTEGER(&tmpint, native)) { + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + ASN__ENCODE_FAILED; + } else { + asn_enc_rval_t er = + INTEGER_encode_oer(td, constraints, &tmpint, cb, app_key); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + return er; + } +} + +#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/vcits/asn1c/src/NativeReal.c b/vcits/asn1c/src/NativeReal.c new file mode 100644 index 0000000..d4c14ad --- /dev/null +++ b/vcits/asn1c/src/NativeReal.c @@ -0,0 +1,781 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Read the NativeReal.h for the explanation wrt. differences between + * REAL and NativeReal. + * Basically, both are decoders and encoders of ASN.1 REAL type, but this + * implementation deals with the standard (machine-specific) representation + * of them instead of using the platform-independent buffer. + */ +#include +#include +#include +#include +#include +#include + +#if defined(__clang__) +/* + * isnan() is defined using generic selections and won't compile in + * strict C89 mode because of too fancy system's standard library. + * However, prior to C11 the math had a perfectly working isnan() + * in the math library. + * Disable generic selection warning so we can test C89 mode with newer libc. + */ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc11-extensions" +static int asn_isnan(double d) { + return isnan(d); +} +#pragma clang diagnostic pop +#else +#define asn_isnan(v) isnan(v) +#endif /* generic selections */ + +/* + * NativeReal basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NativeReal_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (9 << 2)) +}; +asn_TYPE_operation_t asn_OP_NativeReal = { + NativeReal_free, + NativeReal_print, + NativeReal_compare, + NativeReal_decode_ber, + NativeReal_encode_der, + NativeReal_decode_xer, + NativeReal_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + NativeReal_decode_oer, + NativeReal_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + NativeReal_decode_uper, + NativeReal_encode_uper, + NativeReal_decode_aper, + NativeReal_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + NativeReal_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NativeReal = { + "REAL", /* The ASN.1 type is still REAL */ + "REAL", + &asn_OP_NativeReal, + asn_DEF_NativeReal_tags, + sizeof(asn_DEF_NativeReal_tags) / sizeof(asn_DEF_NativeReal_tags[0]), + asn_DEF_NativeReal_tags, /* Same as above */ + sizeof(asn_DEF_NativeReal_tags) / sizeof(asn_DEF_NativeReal_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +static size_t NativeReal__float_size(const asn_TYPE_descriptor_t *td); +static double NativeReal__get_double(const asn_TYPE_descriptor_t *td, + const void *ptr); +static ssize_t NativeReal__set(const asn_TYPE_descriptor_t *td, void **sptr, + double d); + +/* + * Decode REAL type. + */ +asn_dec_rval_t +NativeReal_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buf_ptr, size_t size, int tag_mode) { + asn_dec_rval_t rval; + ber_tlv_len_t length; + + ASN_DEBUG("Decoding %s as REAL (tm=%d)", td->name, tag_mode); + + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, tag_mode, 0, + &length, 0); + if(rval.code != RC_OK) return rval; + assert(length >= 0); /* Ensured by ber_check_tags */ + + ASN_DEBUG("%s length is %d bytes", td->name, (int)length); + + /* + * Make sure we have this length. + */ + buf_ptr = ((const char *)buf_ptr) + rval.consumed; + size -= rval.consumed; + if(length > (ber_tlv_len_t)size) { + rval.code = RC_WMORE; + rval.consumed = 0; + return rval; + } + + /* + * ASN.1 encoded REAL: buf_ptr, length + * Fill the Dbl, at the same time checking for overflow. + * If overflow occured, return with RC_FAIL. + */ + { + uint8_t scratch[24]; /* Longer than %.16f in decimal */ + REAL_t tmp; + double d; + int ret; + + if((size_t)length < sizeof(scratch)) { + tmp.buf = scratch; + tmp.size = length; + } else { + /* This rarely happens: impractically long value */ + tmp.buf = CALLOC(1, length + 1); + tmp.size = length; + if(!tmp.buf) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + } + + memcpy(tmp.buf, buf_ptr, length); + tmp.buf[length] = '\0'; + + ret = asn_REAL2double(&tmp, &d); + if(tmp.buf != scratch) FREEMEM(tmp.buf); + if(ret) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + + if(NativeReal__set(td, sptr, d) < 0) + ASN__DECODE_FAILED; + } + + rval.code = RC_OK; + rval.consumed += length; + + ASN_DEBUG("Took %ld/%ld bytes to encode %s", (long)rval.consumed, + (long)length, td->name); + + return rval; +} + +/* + * Encode the NativeReal using the standard REAL type DER encoder. + */ +asn_enc_rval_t +NativeReal_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + double d = NativeReal__get_double(td, sptr); + asn_enc_rval_t erval; + REAL_t tmp; + + /* Prepare a temporary clean structure */ + memset(&tmp, 0, sizeof(tmp)); + + if(asn_double2REAL(&tmp, d)) + ASN__ENCODE_FAILED; + + /* Encode a fake REAL */ + erval = der_encode_primitive(td, &tmp, tag_mode, tag, cb, app_key); + if(erval.encoded == -1) { + assert(erval.structure_ptr == &tmp); + erval.structure_ptr = sptr; + } + + /* Free possibly allocated members of the temporary structure */ + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + + return erval; +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +/* + * Decode REAL type using PER. + */ +asn_dec_rval_t +NativeReal_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rval; + double d; + REAL_t tmp; + void *ptmp = &tmp; + int ret; + + (void)constraints; + + memset(&tmp, 0, sizeof(tmp)); + rval = OCTET_STRING_decode_uper(opt_codec_ctx, &asn_DEF_REAL, + NULL, &ptmp, pd); + if(rval.code != RC_OK) { + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + return rval; + } + + ret = asn_REAL2double(&tmp, &d); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + if(ret) ASN__DECODE_FAILED; + + if(NativeReal__set(td, sptr, d) < 0 ) + ASN__DECODE_FAILED; + + return rval; +} + +/* + * Encode the NativeReal using the OCTET STRING PER encoder. + */ +asn_enc_rval_t +NativeReal_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + double d = NativeReal__get_double(td, sptr); + asn_enc_rval_t erval; + REAL_t tmp; + + (void)constraints; + + /* Prepare a temporary clean structure */ + memset(&tmp, 0, sizeof(tmp)); + + if(asn_double2REAL(&tmp, d)) + ASN__ENCODE_FAILED; + + /* Encode a DER REAL */ + erval = OCTET_STRING_encode_uper(&asn_DEF_REAL, NULL, &tmp, po); + if(erval.encoded == -1) + erval.structure_ptr = sptr; + + /* Free possibly allocated members of the temporary structure */ + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + + return erval; +} + + +asn_dec_rval_t +NativeReal_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **dbl_ptr, asn_per_data_t *pd) { + double *Dbl = (double *)*dbl_ptr; + asn_dec_rval_t rval; + REAL_t tmp; + void *ptmp = &tmp; + int ret; + + (void)constraints; + + /* + * If the structure is not there, allocate it. + */ + if(Dbl == NULL) { + *dbl_ptr = CALLOC(1, sizeof(*Dbl)); + Dbl = (double *)*dbl_ptr; + if(Dbl == NULL) + ASN__DECODE_FAILED; + } + + memset(&tmp, 0, sizeof(tmp)); + rval = OCTET_STRING_decode_aper(opt_codec_ctx, td, NULL, + &ptmp, pd); + if(rval.code != RC_OK) { + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + return rval; + } + + ret = asn_REAL2double(&tmp, Dbl); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + if(ret) ASN__DECODE_FAILED; + + return rval; +} + +asn_enc_rval_t +NativeReal_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + double Dbl = *(const double *)sptr; + asn_enc_rval_t erval; + REAL_t tmp; + + (void)constraints; + + /* Prepare a temporary clean structure */ + memset(&tmp, 0, sizeof(tmp)); + + if(asn_double2REAL(&tmp, Dbl)) + ASN__ENCODE_FAILED; + + /* Encode a DER REAL */ + erval = OCTET_STRING_encode_aper(td, NULL, &tmp, po); + if(erval.encoded == -1) + erval.structure_ptr = sptr; + + /* Free possibly allocated members of the temporary structure */ + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + + return erval; +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +#ifndef ASN_DISABLE_OER_SUPPORT + +/* + * Swap bytes from/to network, if local is little-endian. + * Unused endianness sections are likely removed at compile phase. + */ +static void +NativeReal__network_swap(size_t float_size, const void *srcp, uint8_t *dst) { + const uint8_t *src = srcp; + double test = -0.0; + int float_big_endian = *(const char *)&test != 0; + /* In lieu of static_assert(sizeof(double) == 8) */ + static const char sizeof_double_is_8_a[sizeof(double)-7] CC_NOTUSED; + static const char sizeof_double_is_8_b[9-sizeof(double)] CC_NOTUSED; + /* In lieu of static_assert(sizeof(sizeof) == 4) */ + static const char sizeof_float_is_4_a[sizeof(float)-3] CC_NOTUSED; + static const char sizeof_float_is_4_b[5-sizeof(float)] CC_NOTUSED; + + switch(float_size) { + case sizeof(double): + assert(sizeof(double) == 8); + if(float_big_endian) { + dst[0] = src[0]; + dst[1] = src[1]; + dst[2] = src[2]; + dst[3] = src[3]; + dst[4] = src[4]; + dst[5] = src[5]; + dst[6] = src[6]; + dst[7] = src[7]; + } else { + dst[0] = src[7]; + dst[1] = src[6]; + dst[2] = src[5]; + dst[3] = src[4]; + dst[4] = src[3]; + dst[5] = src[2]; + dst[6] = src[1]; + dst[7] = src[0]; + } + return; + case sizeof(float): + assert(sizeof(float) == 4); + if(float_big_endian) { + dst[0] = src[0]; + dst[1] = src[1]; + dst[2] = src[2]; + dst[3] = src[3]; + } else { + dst[0] = src[3]; + dst[1] = src[2]; + dst[2] = src[1]; + dst[3] = src[0]; + } + return; + } +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +NativeReal_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er = {0, 0, 0}; + + if(!constraints) constraints = td->encoding_constraints.oer_constraints; + if(constraints && constraints->value.width != 0) { + /* X.696 IEEE 754 binary32 and binary64 encoding */ + uint8_t scratch[sizeof(double)]; + const asn_NativeReal_specifics_t *specs = + (const asn_NativeReal_specifics_t *)td->specifics; + size_t wire_size = constraints->value.width; + + if(specs ? (wire_size == specs->float_size) + : (wire_size == sizeof(double))) { + /* + * Our representation matches the wire, modulo endianness. + * That was the whole point of compact encoding! + */ + } else { + assert((wire_size == sizeof(double)) + || (specs && specs->float_size == wire_size)); + ASN__ENCODE_FAILED; + } + + /* + * The X.696 standard doesn't specify endianness, neither is IEEE 754. + * So we assume the network format is big endian. + */ + NativeReal__network_swap(wire_size, sptr, scratch); + if(cb(scratch, wire_size, app_key) < 0) { + ASN__ENCODE_FAILED; + } else { + er.encoded = wire_size; + ASN__ENCODED_OK(er); + } + } else { + double d = NativeReal__get_double(td, sptr); + ssize_t len_len; + REAL_t tmp; + + /* Prepare a temporary clean structure */ + memset(&tmp, 0, sizeof(tmp)); + + if(asn_double2REAL(&tmp, d)) { + ASN__ENCODE_FAILED; + } + + /* Encode a fake REAL */ + len_len = oer_serialize_length(tmp.size, cb, app_key); + if(len_len < 0 || cb(tmp.buf, tmp.size, app_key) < 0) { + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + ASN__ENCODE_FAILED; + } else { + er.encoded = len_len + tmp.size; + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + ASN__ENCODED_OK(er); + } + } +} + +asn_dec_rval_t +NativeReal_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **sptr, + const void *ptr, size_t size) { + asn_dec_rval_t ok = {RC_OK, 0}; + double d; + ssize_t len_len; + size_t real_body_len; + + (void)opt_codec_ctx; + + if(!constraints) constraints = td->encoding_constraints.oer_constraints; + if(constraints && constraints->value.width != 0) { + /* X.696 IEEE 754 binary32 and binary64 encoding */ + uint8_t scratch[sizeof(double)]; + size_t wire_size = constraints->value.width; + + if(size < wire_size) + ASN__DECODE_STARVED; + + /* + * The X.696 standard doesn't specify endianness, neither is IEEE 754. + * So we assume the network format is big endian. + */ + NativeReal__network_swap(wire_size, ptr, scratch); + + + switch(wire_size) { + case sizeof(double): + { + double tmp; + memcpy(&tmp, scratch, sizeof(double)); + if(NativeReal__set(td, sptr, tmp) < 0) + ASN__DECODE_FAILED; + } + break; + case sizeof(float): + { + float tmp; + memcpy(&tmp, scratch, sizeof(float)); + if(NativeReal__set(td, sptr, tmp) < 0) + ASN__DECODE_FAILED; + } + break; + default: + ASN__DECODE_FAILED; + } + + ok.consumed = wire_size; + return ok; + } + + len_len = oer_fetch_length(ptr, size, &real_body_len); + if(len_len < 0) ASN__DECODE_FAILED; + if(len_len == 0) ASN__DECODE_STARVED; + + ptr = (const char *)ptr + len_len; + size -= len_len; + + if(real_body_len > size) ASN__DECODE_STARVED; + + { + uint8_t scratch[24]; /* Longer than %.16f in decimal */ + REAL_t tmp; + int ret; + + if(real_body_len < sizeof(scratch)) { + tmp.buf = scratch; + tmp.size = real_body_len; + } else { + /* This rarely happens: impractically long value */ + tmp.buf = CALLOC(1, real_body_len + 1); + tmp.size = real_body_len; + if(!tmp.buf) { + ASN__DECODE_FAILED; + } + } + + memcpy(tmp.buf, ptr, real_body_len); + tmp.buf[real_body_len] = '\0'; + + ret = asn_REAL2double(&tmp, &d); + if(tmp.buf != scratch) FREEMEM(tmp.buf); + if(ret) { + ASN_DEBUG("REAL decoded in %" ASN_PRI_SIZE " bytes, but can't convert t double", + real_body_len); + ASN__DECODE_FAILED; + } + } + + if(NativeReal__set(td, sptr, d) < 0) + ASN__DECODE_FAILED; + + ok.consumed = len_len + real_body_len; + return ok; +} + +#endif /* ASN_DISABLE_OER_SUPPORT */ + +/* + * Decode the chunk of XML text encoding REAL. + */ +asn_dec_rval_t +NativeReal_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + asn_dec_rval_t rval; + REAL_t st = { 0, 0 }; + REAL_t *stp = &st; + + rval = REAL_decode_xer(opt_codec_ctx, td, (void **)&stp, opt_mname, + buf_ptr, size); + if(rval.code == RC_OK) { + double d; + if(asn_REAL2double(&st, &d) || NativeReal__set(td, sptr, d) < 0) { + rval.code = RC_FAIL; + rval.consumed = 0; + } + } else { + /* Convert all errors into RC_FAIL */ + rval.consumed = 0; + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &st); + return rval; +} + +asn_enc_rval_t +NativeReal_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + double d = NativeReal__get_double(td, sptr); + asn_enc_rval_t er; + + (void)ilevel; + + er.encoded = REAL__dump(d, flags & XER_F_CANONICAL, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +/* + * REAL specific human-readable output. + */ +int +NativeReal_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + (void)ilevel; /* Unused argument */ + + if(sptr) { + double d = NativeReal__get_double(td, sptr); + return (REAL__dump(d, 0, cb, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} + +int +NativeReal_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + + if(aptr && bptr) { + double a = NativeReal__get_double(td, aptr); + double b = NativeReal__get_double(td, bptr); + + /* NaN sorted above everything else */ + if(asn_isnan(a)) { + if(asn_isnan(b)) { + return 0; + } else { + return -1; + } + } else if(asn_isnan(b)) { + return 1; + } + /* Value comparison. */ + if(a < b) { + return -1; + } else if(a > b) { + return 1; + } else { + return 0; + } + } else if(!aptr) { + return -1; + } else { + return 1; + } +} + +void +NativeReal_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(!td || !ptr) + return; + + ASN_DEBUG("Freeing %s as REAL (%d, %p, Native)", + td->name, method, ptr); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: { + const asn_NativeReal_specifics_t *specs; + size_t float_size; + specs = (const asn_NativeReal_specifics_t *)td->specifics; + float_size = specs ? specs->float_size : sizeof(double); + memset(ptr, 0, float_size); + } break; + } +} + +asn_random_fill_result_t +NativeReal_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; +#ifndef INFINITY +#define INFINITY (1.0/0.0) +#endif +#ifndef NAN +#define NAN (0.0/0.0) +#endif + static const double double_values[] = { + -M_E, M_E, -M_PI, M_PI, /* Better precision than with floats */ + -1E+308, 1E+308, + /* 2^51 */ + -2251799813685248.0, 2251799813685248.0, + /* 2^52 */ + -4503599627370496.0, 4503599627370496.0, + /* 2^100 */ + -1267650600228229401496703205376.0, 1267650600228229401496703205376.0, + -DBL_MIN, DBL_MIN, + -DBL_MAX, DBL_MAX, +#ifdef DBL_TRUE_MIN + -DBL_TRUE_MIN, DBL_TRUE_MIN +#endif + }; + static const float float_values[] = { + 0, -0.0, -1, 1, -M_E, M_E, -3.14, 3.14, -M_PI, M_PI, -255, 255, + -FLT_MIN, FLT_MIN, + -FLT_MAX, FLT_MAX, +#ifdef FLT_TRUE_MIN + -FLT_TRUE_MIN, FLT_TRUE_MIN, +#endif + INFINITY, -INFINITY, NAN + }; + ssize_t float_set_size = NativeReal__float_size(td); + const size_t n_doubles = sizeof(double_values) / sizeof(double_values[0]); + const size_t n_floats = sizeof(float_values) / sizeof(float_values[0]); + double d; + + (void)constraints; + + if(max_length == 0) return result_skipped; + + if(float_set_size == sizeof(double) && asn_random_between(0, 1) == 0) { + d = double_values[asn_random_between(0, n_doubles - 1)]; + } else { + d = float_values[asn_random_between(0, n_floats - 1)]; + } + + if(NativeReal__set(td, sptr, d) < 0) { + return result_failed; + } + + result_ok.length = float_set_size; + return result_ok; +} + + +/* + * Local helper functions. + */ + +static size_t +NativeReal__float_size(const asn_TYPE_descriptor_t *td) { + const asn_NativeReal_specifics_t *specs = + (const asn_NativeReal_specifics_t *)td->specifics; + return specs ? specs->float_size : sizeof(double); +} + +static double +NativeReal__get_double(const asn_TYPE_descriptor_t *td, const void *ptr) { + size_t float_size = NativeReal__float_size(td); + if(float_size == sizeof(float)) { + return *(const float *)ptr; + } else { + return *(const double *)ptr; + } +} + +static ssize_t /* Returns -1 or float size. */ +NativeReal__set(const asn_TYPE_descriptor_t *td, void **sptr, double d) { + size_t float_size = NativeReal__float_size(td); + void *native; + + if(!(native = *sptr)) { + native = (*sptr = CALLOC(1, float_size)); + if(!native) { + return -1; + } + } + + if(float_size == sizeof(float)) { + if(asn_double2float(d, (float *)native)) { + return -1; + } + } else { + *(double *)native = d; + } + + return float_size; +} + diff --git a/vcits/asn1c/src/NumericString.c b/vcits/asn1c/src/NumericString.c new file mode 100644 index 0000000..ec98ba5 --- /dev/null +++ b/vcits/asn1c/src/NumericString.c @@ -0,0 +1,121 @@ +/*- + * Copyright (c) 2003, 2006 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * NumericString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NumericString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)), /* [UNIVERSAL 18] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +static int asn_DEF_NumericString_v2c(unsigned int value) { + switch(value) { + case 0x20: return 0; + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: + return value - (0x30 - 1); + } + return -1; +} +static int asn_DEF_NumericString_c2v(unsigned int code) { + if(code > 0) { + if(code <= 10) + return code + (0x30 - 1); + else + return -1; + } else { + return 0x20; + } +} +static asn_per_constraints_t asn_DEF_NumericString_per_constraints = { + { APC_CONSTRAINED, 4, 4, 0x20, 0x39 }, /* Value */ + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ + asn_DEF_NumericString_v2c, + asn_DEF_NumericString_c2v +}; +asn_TYPE_operation_t asn_OP_NumericString = { + OCTET_STRING_free, + OCTET_STRING_print_utf8, /* ASCII subset */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NumericString = { + "NumericString", + "NumericString", + &asn_OP_NumericString, + asn_DEF_NumericString_tags, + sizeof(asn_DEF_NumericString_tags) + / sizeof(asn_DEF_NumericString_tags[0]) - 1, + asn_DEF_NumericString_tags, + sizeof(asn_DEF_NumericString_tags) + / sizeof(asn_DEF_NumericString_tags[0]), + { 0, &asn_DEF_NumericString_per_constraints, NumericString_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +int +NumericString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const NumericString_t *st = (const NumericString_t *)sptr; + + if(st && st->buf) { + uint8_t *buf = st->buf; + uint8_t *end = buf + st->size; + + /* + * Check the alphabet of the NumericString. + * ASN.1:1984 (X.409) + */ + for(; buf < end; buf++) { + switch(*buf) { + case 0x20: + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: + continue; + } + ASN__CTFAIL(app_key, td, sptr, + "%s: value byte %ld (%d) " + "not in NumericString alphabet (%s:%d)", + td->name, + (long)((buf - st->buf) + 1), + *buf, + __FILE__, __LINE__); + return -1; + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} diff --git a/vcits/asn1c/src/OBJECT_IDENTIFIER.c b/vcits/asn1c/src/OBJECT_IDENTIFIER.c new file mode 100644 index 0000000..80ab797 --- /dev/null +++ b/vcits/asn1c/src/OBJECT_IDENTIFIER.c @@ -0,0 +1,647 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include +#include /* for CHAR_BIT */ +#include + +/* + * OBJECT IDENTIFIER basic type description. + */ +static const ber_tlv_tag_t asn_DEF_OBJECT_IDENTIFIER_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (6 << 2)) +}; +asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER = { + ASN__PRIMITIVE_TYPE_free, + OBJECT_IDENTIFIER_print, + OCTET_STRING_compare, /* Implemented in terms of a string comparison */ + ber_decode_primitive, + der_encode_primitive, + OBJECT_IDENTIFIER_decode_xer, + OBJECT_IDENTIFIER_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OBJECT_IDENTIFIER_decode_oer, + OBJECT_IDENTIFIER_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OBJECT_IDENTIFIER_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER = { + "OBJECT IDENTIFIER", + "OBJECT_IDENTIFIER", + &asn_OP_OBJECT_IDENTIFIER, + asn_DEF_OBJECT_IDENTIFIER_tags, + sizeof(asn_DEF_OBJECT_IDENTIFIER_tags) + / sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]), + asn_DEF_OBJECT_IDENTIFIER_tags, /* Same as above */ + sizeof(asn_DEF_OBJECT_IDENTIFIER_tags) + / sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]), + { 0, 0, OBJECT_IDENTIFIER_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +int +OBJECT_IDENTIFIER_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, + void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + + if(st && st->buf) { + if(st->size < 1) { + ASN__CTFAIL(app_key, td, sptr, + "%s: at least one numerical value " + "expected (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} + +static ssize_t +OBJECT_IDENTIFIER_get_first_arcs(const uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t *arc0, asn_oid_arc_t *arc1) { + asn_oid_arc_t value; + + ssize_t rd = OBJECT_IDENTIFIER_get_single_arc(arcbuf, arcbuf_len, &value); + if(rd <= 0) return rd; + + if(value >= 80) { + *arc0 = 2; + *arc1 = value - 80; + } else if(value >= 40) { + *arc0 = 1; + *arc1 = value - 40; + } else { + *arc0 = 0; + *arc1 = value; + } + + return rd; +} + +ssize_t +OBJECT_IDENTIFIER_get_single_arc(const uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t *ret_value) { + const uint8_t *b = arcbuf; + const uint8_t *arcend = arcbuf + arcbuf_len; /* End of arc */ + + if(arcbuf == arcend) { + return 0; + } else { + asn_oid_arc_t accum; + /* Gather all bits into the accumulator */ + for(accum = 0; b < arcend; b++) { + accum = (accum << 7) | (*b & ~0x80); + if((*b & 0x80) == 0) { + if(accum <= ASN_OID_ARC_MAX) { + *ret_value = accum; + return 1 + (b - arcbuf); + } else { + errno = ERANGE; /* Overflow */ + return -1; + } + } + } + errno = EINVAL; + return -1; + } + +} + +static ssize_t +OBJECT_IDENTIFIER__dump_body(const OBJECT_IDENTIFIER_t *st, + asn_app_consume_bytes_f *cb, void *app_key) { + char scratch[32]; + asn_oid_arc_t arc0, arc1; + size_t produced = 0; + size_t off = 0; + ssize_t rd; + int ret; + + rd = OBJECT_IDENTIFIER_get_first_arcs(st->buf, st->size, &arc0, &arc1); + if(rd <= 0) { + return -1; + } + + ret = snprintf(scratch, sizeof(scratch), "%"PRIu32".%"PRIu32, arc0, arc1); + if(ret >= (ssize_t)sizeof(scratch)) { + return -1; + } + produced += ret; + if(cb(scratch, ret, app_key) < 0) + return -1; + + for(off = rd; ; ) { + asn_oid_arc_t arc; + rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, st->size - off, + &arc); + if(rd < 0) { + return -1; + } else if(rd == 0) { + /* No more arcs. */ + break; + } else { + off += rd; + assert(off <= st->size); + ret = snprintf(scratch, sizeof(scratch), ".%" PRIu32, arc); + if(ret >= (ssize_t)sizeof(scratch)) { + return -1; + } + produced += ret; + if(cb(scratch, ret, app_key) < 0) return -1; + } + } + + if(off != st->size) { + ASN_DEBUG("Could not scan to the end of Object Identifier"); + return -1; + } + + return produced; +} + +static enum xer_pbd_rval +OBJECT_IDENTIFIER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + OBJECT_IDENTIFIER_t *st = (OBJECT_IDENTIFIER_t *)sptr; + const char *chunk_end = (const char *)chunk_buf + chunk_size; + const char *endptr; + asn_oid_arc_t s_arcs[10]; + asn_oid_arc_t *arcs = s_arcs; + ssize_t num_arcs; + ssize_t ret; + + (void)td; + + num_arcs = OBJECT_IDENTIFIER_parse_arcs( + (const char *)chunk_buf, chunk_size, arcs, + sizeof(s_arcs) / sizeof(s_arcs[0]), &endptr); + if(num_arcs < 0) { + /* Expecting more than zero arcs */ + return XPBD_BROKEN_ENCODING; + } else if(num_arcs == 0) { + return XPBD_NOT_BODY_IGNORE; + } + assert(endptr == chunk_end); + + if((size_t)num_arcs > sizeof(s_arcs)/sizeof(s_arcs[0])) { + arcs = (asn_oid_arc_t *)MALLOC(num_arcs * sizeof(asn_oid_arc_t)); + if(!arcs) return XPBD_SYSTEM_FAILURE; + ret = OBJECT_IDENTIFIER_parse_arcs((const char *)chunk_buf, chunk_size, + arcs, num_arcs, &endptr); + if(ret != num_arcs) + return XPBD_SYSTEM_FAILURE; /* assert?.. */ + } + + /* + * Convert arcs into BER representation. + */ + ret = OBJECT_IDENTIFIER_set_arcs(st, arcs, num_arcs); + if(arcs != s_arcs) FREEMEM(arcs); + + return ret ? XPBD_SYSTEM_FAILURE : XPBD_BODY_CONSUMED; +} + +asn_dec_rval_t +OBJECT_IDENTIFIER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(OBJECT_IDENTIFIER_t), opt_mname, + buf_ptr, size, OBJECT_IDENTIFIER__xer_body_decode); +} + +asn_enc_rval_t +OBJECT_IDENTIFIER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + asn_enc_rval_t er; + + (void)ilevel; + (void)flags; + + if(!st || !st->buf) { + ASN__ENCODE_FAILED; + } + + er.encoded = OBJECT_IDENTIFIER__dump_body(st, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +int +OBJECT_IDENTIFIER_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, + void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(!st || !st->buf) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb("{ ", 2, app_key) < 0) + return -1; + + if(OBJECT_IDENTIFIER__dump_body(st, cb, app_key) < 0) { + return -1; + } + + return (cb(" }", 2, app_key) < 0) ? -1 : 0; +} + +ssize_t +OBJECT_IDENTIFIER_get_arcs(const OBJECT_IDENTIFIER_t *st, asn_oid_arc_t *arcs, + size_t arc_slots) { + asn_oid_arc_t arc0, arc1; + size_t num_arcs = 0; + size_t off; + ssize_t rd; + + if(!st || !st->buf) { + errno = EINVAL; + return -1; + } + + rd = OBJECT_IDENTIFIER_get_first_arcs(st->buf, st->size, &arc0, &arc1); + if(rd <= 0) { + return -1; + } + num_arcs = 2; + switch(arc_slots) { + default: + case 2: + arcs[1] = arc1; + /* Fall through */ + case 1: + arcs[0] = arc0; + /* Fall through */ + case 0: + break; + } + + for(off = rd; ; ) { + asn_oid_arc_t arc; + rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, st->size - off, + &arc); + if(rd < 0) { + return -1; + } else if(rd == 0) { + /* No more arcs. */ + break; + } else { + off += rd; + if(num_arcs < arc_slots) { + arcs[num_arcs] = arc; + } + num_arcs++; + } + } + + if(off != st->size) { + return -1; + } + + return num_arcs; +} + + +/* + * Save the single value as an object identifier arc. + */ +ssize_t +OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t value) { + /* + * The following conditions must hold: + * assert(arcbuf); + */ + uint8_t scratch[((sizeof(value) * CHAR_BIT + 6) / 7)]; + uint8_t *scratch_end = &scratch[sizeof(scratch)-1]; + uint8_t *b; + size_t result_len; + uint8_t mask; + + for(b = scratch_end, mask = 0; ; mask = 0x80, b--) { + *b = mask | (value & 0x7f); + value >>= 7; + if(!value) { + break; + } + } + + result_len = (scratch_end - b) + 1; + + if(result_len > arcbuf_len) { + return -1; + } + + memcpy(arcbuf, b, result_len); + + return result_len; +} + +int +OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *st, const asn_oid_arc_t *arcs, + size_t arc_slots) { + uint8_t *buf; + uint8_t *bp; + ssize_t wrote; + asn_oid_arc_t arc0; + asn_oid_arc_t arc1; + size_t size; + size_t i; + + if(!st || !arcs || arc_slots < 2) { + errno = EINVAL; + return -1; + } + + arc0 = arcs[0]; + arc1 = arcs[1]; + + if(arc0 <= 1) { + if(arc1 >= 40) { + /* 8.19.4: At most 39 subsequent values (including 0) */ + errno = ERANGE; + return -1; + } + } else if(arc0 == 2) { + if(arc1 > ASN_OID_ARC_MAX - 80) { + errno = ERANGE; + return -1; + } + } else if(arc0 > 2) { + /* 8.19.4: Only three values are allocated from the root node */ + errno = ERANGE; + return -1; + } + + /* + * After above tests it is known that the value of arc0 is completely + * trustworthy (0..2). However, the arc1's value is still meaningless. + */ + + /* + * Roughly estimate the maximum size necessary to encode these arcs. + * This estimation implicitly takes in account the following facts, + * that cancel each other: + * * the first two arcs are encoded in a single value. + * * the first value may require more space (+1 byte) + * * the value of the first arc which is in range (0..2) + */ + size = ((sizeof(asn_oid_arc_t) * CHAR_BIT + 6) / 7) * arc_slots; + bp = buf = (uint8_t *)MALLOC(size + 1); + if(!buf) { + /* ENOMEM */ + return -1; + } + + wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arc0 * 40 + arc1); + if(wrote <= 0) { + FREEMEM(buf); + return -1; + } + assert((size_t)wrote <= size); + bp += wrote; + size -= wrote; + + for(i = 2; i < arc_slots; i++) { + wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arcs[i]); + if(wrote <= 0) { + FREEMEM(buf); + return -1; + } + assert((size_t)wrote <= size); + bp += wrote; + size -= wrote; + } + + /* + * Replace buffer. + */ + st->size = bp - buf; + bp = st->buf; + st->buf = buf; + st->buf[st->size] = '\0'; + if(bp) FREEMEM(bp); + + return 0; +} + +ssize_t +OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, ssize_t oid_txt_length, + asn_oid_arc_t *arcs, size_t arcs_count, + const char **opt_oid_text_end) { + size_t num_arcs = 0; + const char *oid_end; + enum { + ST_LEADSPACE, + ST_TAILSPACE, + ST_AFTERVALUE, /* Next character ought to be '.' or a space */ + ST_WAITDIGITS /* Next character is expected to be a digit */ + } state = ST_LEADSPACE; + + if(!oid_text || oid_txt_length < -1 || (arcs_count && !arcs)) { + if(opt_oid_text_end) *opt_oid_text_end = oid_text; + errno = EINVAL; + return -1; + } + + if(oid_txt_length == -1) + oid_txt_length = strlen(oid_text); + +#define _OID_CAPTURE_ARC(oid_text, oid_end) \ + do { \ + const char *endp = oid_end; \ + unsigned long value; \ + switch(asn_strtoul_lim(oid_text, &endp, &value)) { \ + case ASN_STRTOX_EXTRA_DATA: \ + case ASN_STRTOX_OK: \ + if(value <= ASN_OID_ARC_MAX) { \ + if(num_arcs < arcs_count) arcs[num_arcs] = value; \ + num_arcs++; \ + oid_text = endp - 1; \ + break; \ + } \ + /* Fall through */ \ + case ASN_STRTOX_ERROR_RANGE: \ + if(opt_oid_text_end) *opt_oid_text_end = oid_text; \ + errno = ERANGE; \ + return -1; \ + case ASN_STRTOX_ERROR_INVAL: \ + case ASN_STRTOX_EXPECT_MORE: \ + if(opt_oid_text_end) *opt_oid_text_end = oid_text; \ + errno = EINVAL; \ + return -1; \ + } \ + } while(0) + + for(oid_end = oid_text + oid_txt_length; oid_text broken OID */ + return -1; + case ST_LEADSPACE: + case ST_WAITDIGITS: + _OID_CAPTURE_ARC(oid_text, oid_end); + state = ST_AFTERVALUE; + continue; + } + break; + default: + /* Unexpected symbols */ + state = ST_WAITDIGITS; + break; + } /* switch() */ + break; + } /* for() */ + + + if(opt_oid_text_end) *opt_oid_text_end = oid_text; + + /* Finalize last arc */ + switch(state) { + case ST_LEADSPACE: + return 0; /* No OID found in input data */ + case ST_WAITDIGITS: + errno = EINVAL; /* Broken OID */ + return -1; + case ST_AFTERVALUE: + case ST_TAILSPACE: + return num_arcs; + } + + errno = EINVAL; /* Broken OID */ + return -1; +} + +/* + * Generate values from the list of interesting values, or just a random + * value up to the upper limit. + */ +static asn_oid_arc_t +OBJECT_IDENTIFIER__biased_random_arc(asn_oid_arc_t upper_bound) { + const asn_oid_arc_t values[] = {0, 1, 127, 128, 129, 254, 255, 256}; + size_t idx; + + switch(asn_random_between(0, 2)) { + case 0: + idx = asn_random_between(0, sizeof(values) / sizeof(values[0]) - 1); + if(values[idx] < upper_bound) { + return values[idx]; + } + /* Fall through */ + case 1: + return asn_random_between(0, upper_bound); + case 2: + default: + return upper_bound; + } +} + +asn_random_fill_result_t +OBJECT_IDENTIFIER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + OBJECT_IDENTIFIER_t *st; + asn_oid_arc_t arcs[5]; + size_t arcs_len = asn_random_between(2, 5); + size_t i; + + (void)constraints; + + if(max_length < arcs_len) return result_skipped; + + if(*sptr) { + st = *sptr; + } else { + st = CALLOC(1, sizeof(*st)); + } + + arcs[0] = asn_random_between(0, 2); + arcs[1] = OBJECT_IDENTIFIER__biased_random_arc( + arcs[0] <= 1 ? 39 : (ASN_OID_ARC_MAX - 80)); + for(i = 2; i < arcs_len; i++) { + arcs[i] = OBJECT_IDENTIFIER__biased_random_arc(ASN_OID_ARC_MAX); + } + + if(OBJECT_IDENTIFIER_set_arcs(st, arcs, arcs_len)) { + if(st != *sptr) { + ASN_STRUCT_FREE(*td, st); + } + return result_failed; + } + + *sptr = st; + + result_ok.length = st->size; + return result_ok; +} diff --git a/vcits/asn1c/src/OCTET_STRING.c b/vcits/asn1c/src/OCTET_STRING.c new file mode 100644 index 0000000..5779330 --- /dev/null +++ b/vcits/asn1c/src/OCTET_STRING.c @@ -0,0 +1,2409 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ +#include + +/* + * OCTET STRING basic type description. + */ +static const ber_tlv_tag_t asn_DEF_OCTET_STRING_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs = { + sizeof(OCTET_STRING_t), + offsetof(OCTET_STRING_t, _asn_ctx), + ASN_OSUBV_STR +}; + +asn_TYPE_operation_t asn_OP_OCTET_STRING = { + OCTET_STRING_free, + OCTET_STRING_print, /* OCTET STRING generally means a non-ascii sequence */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_hex, + OCTET_STRING_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, /* Unaligned PER decoder */ + OCTET_STRING_encode_uper, /* Unaligned PER encoder */ + OCTET_STRING_decode_aper, /* Aligned PER decoder */ + OCTET_STRING_encode_aper, /* Aligned PER encoder */ +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = { + "OCTET STRING", /* Canonical name */ + "OCTET_STRING", /* XML tag name */ + &asn_OP_OCTET_STRING, + asn_DEF_OCTET_STRING_tags, + sizeof(asn_DEF_OCTET_STRING_tags) + / sizeof(asn_DEF_OCTET_STRING_tags[0]), + asn_DEF_OCTET_STRING_tags, /* Same as above */ + sizeof(asn_DEF_OCTET_STRING_tags) + / sizeof(asn_DEF_OCTET_STRING_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs +}; + +#undef _CH_PHASE +#undef NEXT_PHASE +#undef PREV_PHASE +#define _CH_PHASE(ctx, inc) do { \ + if(ctx->phase == 0) \ + ctx->context = 0; \ + ctx->phase += inc; \ + } while(0) +#define NEXT_PHASE(ctx) _CH_PHASE(ctx, +1) +#define PREV_PHASE(ctx) _CH_PHASE(ctx, -1) + +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = (num_bytes); \ + buf_ptr = ((const char *)buf_ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +#undef RETURN +#define RETURN(_code) do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +#undef APPEND +#define APPEND(bufptr, bufsize) do { \ + size_t _bs = (bufsize); /* Append size */ \ + size_t _ns = ctx->context; /* Allocated now */ \ + size_t _es = st->size + _bs; /* Expected size */ \ + /* int is really a typeof(st->size): */ \ + if((int)_es < 0) RETURN(RC_FAIL); \ + if(_ns <= _es) { \ + void *ptr; \ + /* Be nice and round to the memory allocator */ \ + do { _ns = _ns ? _ns << 1 : 16; } \ + while(_ns <= _es); \ + /* int is really a typeof(st->size): */ \ + if((int)_ns < 0) RETURN(RC_FAIL); \ + ptr = REALLOC(st->buf, _ns); \ + if(ptr) { \ + st->buf = (uint8_t *)ptr; \ + ctx->context = _ns; \ + } else { \ + RETURN(RC_FAIL); \ + } \ + ASN_DEBUG("Reallocating into %ld", (long)_ns); \ + } \ + memcpy(st->buf + st->size, bufptr, _bs); \ + /* Convenient nul-termination */ \ + st->buf[_es] = '\0'; \ + st->size = _es; \ + } while(0) + +/* + * The main reason why ASN.1 is still alive is that too much time and effort + * is necessary for learning it more or less adequately, thus creating a gut + * necessity to demonstrate that aquired skill everywhere afterwards. + * No, I am not going to explain what the following stuff is. + */ +struct _stack_el { + ber_tlv_len_t left; /* What's left to read (or -1) */ + ber_tlv_len_t got; /* What was actually processed */ + unsigned cont_level; /* Depth of subcontainment */ + int want_nulls; /* Want null "end of content" octets? */ + int bits_chopped; /* Flag in BIT STRING mode */ + ber_tlv_tag_t tag; /* For debugging purposes */ + struct _stack_el *prev; + struct _stack_el *next; +}; +struct _stack { + struct _stack_el *tail; + struct _stack_el *cur_ptr; +}; + +static struct _stack_el * +OS__add_stack_el(struct _stack *st) { + struct _stack_el *nel; + + /* + * Reuse the old stack frame or allocate a new one. + */ + if(st->cur_ptr && st->cur_ptr->next) { + nel = st->cur_ptr->next; + nel->bits_chopped = 0; + nel->got = 0; + /* Retain the nel->cont_level, it's correct. */ + } else { + nel = (struct _stack_el *)CALLOC(1, sizeof(struct _stack_el)); + if(nel == NULL) + return NULL; + + if(st->tail) { + /* Increase a subcontainment depth */ + nel->cont_level = st->tail->cont_level + 1; + st->tail->next = nel; + } + nel->prev = st->tail; + st->tail = nel; + } + + st->cur_ptr = nel; + + return nel; +} + +static struct _stack * +_new_stack(void) { + return (struct _stack *)CALLOC(1, sizeof(struct _stack)); +} + +/* + * Decode OCTET STRING type. + */ +asn_dec_rval_t +OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buf_ptr, size_t size, int tag_mode) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + asn_dec_rval_t rval; + asn_struct_ctx_t *ctx; + ssize_t consumed_myself = 0; + struct _stack *stck; /* Expectations stack structure */ + struct _stack_el *sel = 0; /* Stack element */ + int tlv_constr; + enum asn_OS_Subvariant type_variant = specs->subvariant; + + ASN_DEBUG("Decoding %s as %s (frame %ld)", + td->name, + (type_variant == ASN_OSUBV_STR) ? + "OCTET STRING" : "OS-SpecialCase", + (long)size); + + /* + * Create the string if does not exist. + */ + if(st == NULL) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(st == NULL) RETURN(RC_FAIL); + } + + /* Restore parsing context */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + switch(ctx->phase) { + case 0: + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, ctx, + buf_ptr, size, tag_mode, -1, + &ctx->left, &tlv_constr); + if(rval.code != RC_OK) + return rval; + + if(tlv_constr) { + /* + * Complex operation, requires stack of expectations. + */ + ctx->ptr = _new_stack(); + if(!ctx->ptr) { + RETURN(RC_FAIL); + } + } else { + /* + * Jump into stackless primitive decoding. + */ + _CH_PHASE(ctx, 3); + if(type_variant == ASN_OSUBV_ANY && tag_mode != 1) + APPEND(buf_ptr, rval.consumed); + ADVANCE(rval.consumed); + goto phase3; + } + + NEXT_PHASE(ctx); + /* Fall through */ + case 1: + phase1: + /* + * Fill the stack with expectations. + */ + stck = (struct _stack *)ctx->ptr; + sel = stck->cur_ptr; + do { + ber_tlv_tag_t tlv_tag; + ber_tlv_len_t tlv_len; + ber_tlv_tag_t expected_tag; + ssize_t tl, ll, tlvl; + /* This one works even if (sel->left == -1) */ + size_t Left = ((!sel||(size_t)sel->left >= size) + ?size:(size_t)sel->left); + + + ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", (void *)sel, + (long)(sel?sel->left:0), + (long)(sel?sel->want_nulls:0), + (long)(sel?sel->got:0) + ); + if(sel && sel->left <= 0 && sel->want_nulls == 0) { + if(sel->prev) { + struct _stack_el *prev = sel->prev; + if(prev->left != -1) { + if(prev->left < sel->got) + RETURN(RC_FAIL); + prev->left -= sel->got; + } + prev->got += sel->got; + sel = stck->cur_ptr = prev; + if(!sel) break; + tlv_constr = 1; + continue; + } else { + sel = stck->cur_ptr = 0; + break; /* Nothing to wait */ + } + } + + tl = ber_fetch_tag(buf_ptr, Left, &tlv_tag); + ASN_DEBUG("fetch tag(size=%ld,L=%ld), %sstack, left=%ld, wn=%ld, tl=%ld", + (long)size, (long)Left, sel?"":"!", + (long)(sel?sel->left:0), + (long)(sel?sel->want_nulls:0), + (long)tl); + switch(tl) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + + tlv_constr = BER_TLV_CONSTRUCTED(buf_ptr); + + ll = ber_fetch_length(tlv_constr, + (const char *)buf_ptr + tl,Left - tl,&tlv_len); + ASN_DEBUG("Got tag=%s, tc=%d, left=%ld, tl=%ld, len=%ld, ll=%ld", + ber_tlv_tag_string(tlv_tag), tlv_constr, + (long)Left, (long)tl, (long)tlv_len, (long)ll); + switch(ll) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + + if(sel && sel->want_nulls + && ((const uint8_t *)buf_ptr)[0] == 0 + && ((const uint8_t *)buf_ptr)[1] == 0) + { + + ASN_DEBUG("Eat EOC; wn=%d--", sel->want_nulls); + + if(type_variant == ASN_OSUBV_ANY + && (tag_mode != 1 || sel->cont_level)) + APPEND("\0\0", 2); + + ADVANCE(2); + sel->got += 2; + if(sel->left != -1) { + sel->left -= 2; /* assert(sel->left >= 2) */ + } + + sel->want_nulls--; + if(sel->want_nulls == 0) { + /* Move to the next expectation */ + sel->left = 0; + tlv_constr = 1; + } + + continue; + } + + /* + * Set up expected tags, + * depending on ASN.1 type being decoded. + */ + switch(type_variant) { + case ASN_OSUBV_BIT: + /* X.690: 8.6.4.1, NOTE 2 */ + /* Fall through */ + case ASN_OSUBV_STR: + default: + if(sel) { + unsigned level = sel->cont_level; + if(level < td->all_tags_count) { + expected_tag = td->all_tags[level]; + break; + } else if(td->all_tags_count) { + expected_tag = td->all_tags + [td->all_tags_count - 1]; + break; + } + /* else, Fall through */ + } + /* Fall through */ + case ASN_OSUBV_ANY: + expected_tag = tlv_tag; + break; + } + + + if(tlv_tag != expected_tag) { + char buf[2][32]; + ber_tlv_tag_snprint(tlv_tag, + buf[0], sizeof(buf[0])); + ber_tlv_tag_snprint(td->tags[td->tags_count-1], + buf[1], sizeof(buf[1])); + ASN_DEBUG("Tag does not match expectation: %s != %s", + buf[0], buf[1]); + RETURN(RC_FAIL); + } + + tlvl = tl + ll; /* Combined length of T and L encoding */ + if((tlv_len + tlvl) < 0) { + /* tlv_len value is too big */ + ASN_DEBUG("TLV encoding + length (%ld) is too big", + (long)tlv_len); + RETURN(RC_FAIL); + } + + /* + * Append a new expectation. + */ + sel = OS__add_stack_el(stck); + if(!sel) RETURN(RC_FAIL); + + sel->tag = tlv_tag; + + sel->want_nulls = (tlv_len==-1); + if(sel->prev && sel->prev->left != -1) { + /* Check that the parent frame is big enough */ + if(sel->prev->left < tlvl + (tlv_len==-1?0:tlv_len)) + RETURN(RC_FAIL); + if(tlv_len == -1) + sel->left = sel->prev->left - tlvl; + else + sel->left = tlv_len; + } else { + sel->left = tlv_len; + } + if(type_variant == ASN_OSUBV_ANY + && (tag_mode != 1 || sel->cont_level)) + APPEND(buf_ptr, tlvl); + sel->got += tlvl; + ADVANCE(tlvl); + + ASN_DEBUG("+EXPECT2 got=%ld left=%ld, wn=%d, clvl=%u", + (long)sel->got, (long)sel->left, + sel->want_nulls, sel->cont_level); + + } while(tlv_constr); + if(sel == NULL) { + /* Finished operation, "phase out" */ + ASN_DEBUG("Phase out"); + _CH_PHASE(ctx, +3); + break; + } + + NEXT_PHASE(ctx); + /* Fall through */ + case 2: + stck = (struct _stack *)ctx->ptr; + sel = stck->cur_ptr; + ASN_DEBUG("Phase 2: Need %ld bytes, size=%ld, alrg=%ld, wn=%d", + (long)sel->left, (long)size, (long)sel->got, + sel->want_nulls); + { + ber_tlv_len_t len; + + assert(sel->left >= 0); + + len = ((ber_tlv_len_t)size < sel->left) + ? (ber_tlv_len_t)size : sel->left; + if(len > 0) { + if(type_variant == ASN_OSUBV_BIT + && sel->bits_chopped == 0) { + /* Put the unused-bits-octet away */ + st->bits_unused = *(const uint8_t *)buf_ptr; + APPEND(((const char *)buf_ptr+1), (len - 1)); + sel->bits_chopped = 1; + } else { + APPEND(buf_ptr, len); + } + ADVANCE(len); + sel->left -= len; + sel->got += len; + } + + if(sel->left) { + ASN_DEBUG("OS left %ld, size = %ld, wn=%d\n", + (long)sel->left, (long)size, sel->want_nulls); + RETURN(RC_WMORE); + } + + PREV_PHASE(ctx); + goto phase1; + } + break; + case 3: + phase3: + /* + * Primitive form, no stack required. + */ + assert(ctx->left >= 0); + + if(size < (size_t)ctx->left) { + if(!size) RETURN(RC_WMORE); + if(type_variant == ASN_OSUBV_BIT && !ctx->context) { + st->bits_unused = *(const uint8_t *)buf_ptr; + ctx->left--; + ADVANCE(1); + } + APPEND(buf_ptr, size); + assert(ctx->context > 0); + ctx->left -= size; + ADVANCE(size); + RETURN(RC_WMORE); + } else { + if(type_variant == ASN_OSUBV_BIT + && !ctx->context && ctx->left) { + st->bits_unused = *(const uint8_t *)buf_ptr; + ctx->left--; + ADVANCE(1); + } + APPEND(buf_ptr, ctx->left); + ADVANCE(ctx->left); + ctx->left = 0; + + NEXT_PHASE(ctx); + } + break; + } + + if(sel) { + ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld", + (void *)sel->prev, sel->want_nulls, + (long)sel->left, (long)sel->got, (long)size); + if(sel->prev || sel->want_nulls > 1 || sel->left > 0) { + RETURN(RC_WMORE); + } + } + + /* + * BIT STRING-specific processing. + */ + if(type_variant == ASN_OSUBV_BIT) { + if(st->size) { + if(st->bits_unused < 0 || st->bits_unused > 7) { + RETURN(RC_FAIL); + } + /* Finalize BIT STRING: zero out unused bits. */ + st->buf[st->size-1] &= 0xff << st->bits_unused; + } else { + if(st->bits_unused) { + RETURN(RC_FAIL); + } + } + } + + ASN_DEBUG("Took %ld bytes to encode %s: [%s]:%ld", + (long)consumed_myself, td->name, + (type_variant == ASN_OSUBV_STR) ? (char *)st->buf : "", + (long)st->size); + + + RETURN(RC_OK); +} + +/* + * Encode OCTET STRING type using DER. + */ +asn_enc_rval_t +OCTET_STRING_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er; + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + enum asn_OS_Subvariant type_variant = specs->subvariant; + int fix_last_byte = 0; + + ASN_DEBUG("%s %s as OCTET STRING", + cb?"Estimating":"Encoding", td->name); + + /* + * Write tags. + */ + if(type_variant != ASN_OSUBV_ANY || tag_mode == 1) { + er.encoded = der_write_tags(td, + (type_variant == ASN_OSUBV_BIT) + st->size, + tag_mode, type_variant == ASN_OSUBV_ANY, tag, + cb, app_key); + if(er.encoded == -1) { + er.failed_type = td; + er.structure_ptr = sptr; + return er; + } + } else { + /* Disallow: [] IMPLICIT ANY */ + assert(type_variant != ASN_OSUBV_ANY || tag_mode != -1); + er.encoded = 0; + } + + if(!cb) { + er.encoded += (type_variant == ASN_OSUBV_BIT) + st->size; + ASN__ENCODED_OK(er); + } + + /* + * Prepare to deal with the last octet of BIT STRING. + */ + if(type_variant == ASN_OSUBV_BIT) { + uint8_t b = st->bits_unused & 0x07; + if(b && st->size) fix_last_byte = 1; + ASN__CALLBACK(&b, 1); + } + + /* Invoke callback for the main part of the buffer */ + ASN__CALLBACK(st->buf, st->size - fix_last_byte); + + /* The last octet should be stripped off the unused bits */ + if(fix_last_byte) { + uint8_t b = st->buf[st->size-1] & (0xff << st->bits_unused); + ASN__CALLBACK(&b, 1); + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +asn_enc_rval_t +OCTET_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er; + char scratch[16 * 3 + 4]; + char *p = scratch; + uint8_t *buf; + uint8_t *end; + size_t i; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + /* + * Dump the contents of the buffer in hexadecimal. + */ + buf = st->buf; + end = buf + st->size; + if(flags & XER_F_CANONICAL) { + char *scend = scratch + (sizeof(scratch) - 2); + for(; buf < end; buf++) { + if(p >= scend) { + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + } + + ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ + } else { + for(i = 0; buf < end; buf++, i++) { + if(!(i % 16) && (i || st->size > 16)) { + ASN__CALLBACK(scratch, p-scratch); + p = scratch; + ASN__TEXT_INDENT(1, ilevel); + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + if(p - scratch) { + p--; /* Remove the tail space */ + ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ + if(st->size > 16) + ASN__TEXT_INDENT(1, ilevel-1); + } + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +static const struct OCTET_STRING__xer_escape_table_s { + const char *string; + int size; +} OCTET_STRING__xer_escape_table[] = { +#define OSXET(s) { s, sizeof(s) - 1 } + OSXET("\074\156\165\154\057\076"), /* */ + OSXET("\074\163\157\150\057\076"), /* */ + OSXET("\074\163\164\170\057\076"), /* */ + OSXET("\074\145\164\170\057\076"), /* */ + OSXET("\074\145\157\164\057\076"), /* */ + OSXET("\074\145\156\161\057\076"), /* */ + OSXET("\074\141\143\153\057\076"), /* */ + OSXET("\074\142\145\154\057\076"), /* */ + OSXET("\074\142\163\057\076"), /* */ + OSXET("\011"), /* \t */ + OSXET("\012"), /* \n */ + OSXET("\074\166\164\057\076"), /* */ + OSXET("\074\146\146\057\076"), /* */ + OSXET("\015"), /* \r */ + OSXET("\074\163\157\057\076"), /* */ + OSXET("\074\163\151\057\076"), /* */ + OSXET("\074\144\154\145\057\076"), /* */ + OSXET("\074\144\143\061\057\076"), /* */ + OSXET("\074\144\143\062\057\076"), /* */ + OSXET("\074\144\143\063\057\076"), /* */ + OSXET("\074\144\143\064\057\076"), /* */ + OSXET("\074\156\141\153\057\076"), /* */ + OSXET("\074\163\171\156\057\076"), /* */ + OSXET("\074\145\164\142\057\076"), /* */ + OSXET("\074\143\141\156\057\076"), /* */ + OSXET("\074\145\155\057\076"), /* */ + OSXET("\074\163\165\142\057\076"), /* */ + OSXET("\074\145\163\143\057\076"), /* */ + OSXET("\074\151\163\064\057\076"), /* */ + OSXET("\074\151\163\063\057\076"), /* */ + OSXET("\074\151\163\062\057\076"), /* */ + OSXET("\074\151\163\061\057\076"), /* */ + { 0, 0 }, /* " " */ + { 0, 0 }, /* ! */ + { 0, 0 }, /* \" */ + { 0, 0 }, /* # */ + { 0, 0 }, /* $ */ + { 0, 0 }, /* % */ + OSXET("\046\141\155\160\073"), /* & */ + { 0, 0 }, /* ' */ + {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* ()*+,-./ */ + {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 01234567 */ + {0,0},{0,0},{0,0},{0,0}, /* 89:; */ + OSXET("\046\154\164\073"), /* < */ + { 0, 0 }, /* = */ + OSXET("\046\147\164\073"), /* > */ +}; + +static int +OS__check_escaped_control_char(const void *buf, int size) { + size_t i; + /* + * Inefficient algorithm which translates the escape sequences + * defined above into characters. Returns -1 if not found. + * TODO: replace by a faster algorithm (bsearch(), hash or + * nested table lookups). + */ + for(i = 0; i < 32 /* Don't spend time on the bottom half */; i++) { + const struct OCTET_STRING__xer_escape_table_s *el; + el = &OCTET_STRING__xer_escape_table[i]; + if(el->size == size && memcmp(buf, el->string, size) == 0) + return i; + } + return -1; +} + +static int +OCTET_STRING__handle_control_chars(void *struct_ptr, const void *chunk_buf, size_t chunk_size) { + /* + * This might be one of the escape sequences + * for control characters. Check it out. + * #11.15.5 + */ + int control_char = OS__check_escaped_control_char(chunk_buf,chunk_size); + if(control_char >= 0) { + OCTET_STRING_t *st = (OCTET_STRING_t *)struct_ptr; + void *p = REALLOC(st->buf, st->size + 2); + if(p) { + st->buf = (uint8_t *)p; + st->buf[st->size++] = control_char; + st->buf[st->size] = '\0'; /* nul-termination */ + return 0; + } + } + + return -1; /* No, it's not */ +} + +asn_enc_rval_t +OCTET_STRING_encode_xer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er; + uint8_t *buf, *end; + uint8_t *ss; /* Sequence start */ + ssize_t encoded_len = 0; + + (void)ilevel; /* Unused argument */ + (void)flags; /* Unused argument */ + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + buf = st->buf; + end = buf + st->size; + for(ss = buf; buf < end; buf++) { + unsigned int ch = *buf; + int s_len; /* Special encoding sequence length */ + + /* + * Escape certain characters: X.680/11.15 + */ + if(ch < sizeof(OCTET_STRING__xer_escape_table) + /sizeof(OCTET_STRING__xer_escape_table[0]) + && (s_len = OCTET_STRING__xer_escape_table[ch].size)) { + if(((buf - ss) && cb(ss, buf - ss, app_key) < 0) + || cb(OCTET_STRING__xer_escape_table[ch].string, s_len, + app_key) < 0) + ASN__ENCODE_FAILED; + encoded_len += (buf - ss) + s_len; + ss = buf + 1; + } + } + + encoded_len += (buf - ss); + if((buf - ss) && cb(ss, buf - ss, app_key) < 0) + ASN__ENCODE_FAILED; + + er.encoded = encoded_len; + ASN__ENCODED_OK(er); +} + +/* + * Convert from hexadecimal format (cstring): "AB CD EF" + */ +static ssize_t OCTET_STRING__convert_hexadecimal(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { + OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; + const char *chunk_stop = (const char *)chunk_buf; + const char *p = chunk_stop; + const char *pend = p + chunk_size; + unsigned int clv = 0; + int half = 0; /* Half bit */ + uint8_t *buf; + + /* Reallocate buffer according to high cap estimation */ + size_t new_size = st->size + (chunk_size + 1) / 2; + void *nptr = REALLOC(st->buf, new_size + 1); + if(!nptr) return -1; + st->buf = (uint8_t *)nptr; + buf = st->buf + st->size; + + /* + * If something like " a b c " appears here, the " a b":3 will be + * converted, and the rest skipped. That is, unless buf_size is greater + * than chunk_size, then it'll be equivalent to "ABC0". + */ + for(; p < pend; p++) { + int ch = *(const unsigned char *)p; + switch(ch) { + case 0x09: case 0x0a: case 0x0c: case 0x0d: + case 0x20: + /* Ignore whitespace */ + continue; + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ + clv = (clv << 4) + (ch - 0x30); + break; + case 0x41: case 0x42: case 0x43: /* ABC */ + case 0x44: case 0x45: case 0x46: /* DEF */ + clv = (clv << 4) + (ch - 0x41 + 10); + break; + case 0x61: case 0x62: case 0x63: /* abc */ + case 0x64: case 0x65: case 0x66: /* def */ + clv = (clv << 4) + (ch - 0x61 + 10); + break; + default: + *buf = 0; /* JIC */ + return -1; + } + if(half++) { + half = 0; + *buf++ = clv; + chunk_stop = p + 1; + } + } + + /* + * Check partial decoding. + */ + if(half) { + if(have_more) { + /* + * Partial specification is fine, + * because no more more PXER_TEXT data is available. + */ + *buf++ = clv << 4; + chunk_stop = p; + } + } else { + chunk_stop = p; + } + + st->size = buf - st->buf; /* Adjust the buffer size */ + assert(st->size <= new_size); + st->buf[st->size] = 0; /* Courtesy termination */ + + return (chunk_stop - (const char *)chunk_buf); /* Converted size */ +} + +/* + * Convert from binary format: "00101011101" + */ +static ssize_t OCTET_STRING__convert_binary(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { + BIT_STRING_t *st = (BIT_STRING_t *)sptr; + const char *p = (const char *)chunk_buf; + const char *pend = p + chunk_size; + int bits_unused = st->bits_unused & 0x7; + uint8_t *buf; + + /* Reallocate buffer according to high cap estimation */ + size_t new_size = st->size + (chunk_size + 7) / 8; + void *nptr = REALLOC(st->buf, new_size + 1); + if(!nptr) return -1; + st->buf = (uint8_t *)nptr; + buf = st->buf + st->size; + + (void)have_more; + + if(bits_unused == 0) + bits_unused = 8; + else if(st->size) + buf--; + + /* + * Convert series of 0 and 1 into the octet string. + */ + for(; p < pend; p++) { + int ch = *(const unsigned char *)p; + switch(ch) { + case 0x09: case 0x0a: case 0x0c: case 0x0d: + case 0x20: + /* Ignore whitespace */ + break; + case 0x30: + case 0x31: + if(bits_unused-- <= 0) { + *++buf = 0; /* Clean the cell */ + bits_unused = 7; + } + *buf |= (ch&1) << bits_unused; + break; + default: + st->bits_unused = bits_unused; + return -1; + } + } + + if(bits_unused == 8) { + st->size = buf - st->buf; + st->bits_unused = 0; + } else { + st->size = buf - st->buf + 1; + st->bits_unused = bits_unused; + } + + assert(st->size <= new_size); + st->buf[st->size] = 0; /* Courtesy termination */ + + return chunk_size; /* Converted in full */ +} + +/* + * Something like strtod(), but with stricter rules. + */ +static int +OS__strtoent(int base, const char *buf, const char *end, int32_t *ret_value) { + const int32_t last_unicode_codepoint = 0x10ffff; + int32_t val = 0; + const char *p; + + for(p = buf; p < end; p++) { + int ch = *p; + + switch(ch) { + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ + val = val * base + (ch - 0x30); + break; + case 0x41: case 0x42: case 0x43: /* ABC */ + case 0x44: case 0x45: case 0x46: /* DEF */ + val = val * base + (ch - 0x41 + 10); + break; + case 0x61: case 0x62: case 0x63: /* abc */ + case 0x64: case 0x65: case 0x66: /* def */ + val = val * base + (ch - 0x61 + 10); + break; + case 0x3b: /* ';' */ + *ret_value = val; + return (p - buf) + 1; + default: + return -1; /* Character set error */ + } + + /* Value exceeds the Unicode range. */ + if(val > last_unicode_codepoint) { + return -1; + } + } + + *ret_value = -1; + return (p - buf); +} + +/* + * Convert from the plain UTF-8 format, expanding entity references: "2 < 3" + */ +static ssize_t +OCTET_STRING__convert_entrefs(void *sptr, const void *chunk_buf, + size_t chunk_size, int have_more) { + OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; + const char *p = (const char *)chunk_buf; + const char *pend = p + chunk_size; + uint8_t *buf; + + /* Reallocate buffer */ + size_t new_size = st->size + chunk_size; + void *nptr = REALLOC(st->buf, new_size + 1); + if(!nptr) return -1; + st->buf = (uint8_t *)nptr; + buf = st->buf + st->size; + + /* + * Convert series of 0 and 1 into the octet string. + */ + for(; p < pend; p++) { + int ch = *(const unsigned char *)p; + int len; /* Length of the rest of the chunk */ + + if(ch != 0x26 /* '&' */) { + *buf++ = ch; + continue; /* That was easy... */ + } + + /* + * Process entity reference. + */ + len = chunk_size - (p - (const char *)chunk_buf); + if(len == 1 /* "&" */) goto want_more; + if(p[1] == 0x23 /* '#' */) { + const char *pval; /* Pointer to start of digits */ + int32_t val = 0; /* Entity reference value */ + int base; + + if(len == 2 /* "&#" */) goto want_more; + if(p[2] == 0x78 /* 'x' */) + pval = p + 3, base = 16; + else + pval = p + 2, base = 10; + len = OS__strtoent(base, pval, p + len, &val); + if(len == -1) { + /* Invalid charset. Just copy verbatim. */ + *buf++ = ch; + continue; + } + if(!len || pval[len-1] != 0x3b) goto want_more; + assert(val > 0); + p += (pval - p) + len - 1; /* Advance past entref */ + + if(val < 0x80) { + *buf++ = (char)val; + } else if(val < 0x800) { + *buf++ = 0xc0 | ((val >> 6)); + *buf++ = 0x80 | ((val & 0x3f)); + } else if(val < 0x10000) { + *buf++ = 0xe0 | ((val >> 12)); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } else if(val < 0x200000) { + *buf++ = 0xf0 | ((val >> 18)); + *buf++ = 0x80 | ((val >> 12) & 0x3f); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } else if(val < 0x4000000) { + *buf++ = 0xf8 | ((val >> 24)); + *buf++ = 0x80 | ((val >> 18) & 0x3f); + *buf++ = 0x80 | ((val >> 12) & 0x3f); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } else { + *buf++ = 0xfc | ((val >> 30) & 0x1); + *buf++ = 0x80 | ((val >> 24) & 0x3f); + *buf++ = 0x80 | ((val >> 18) & 0x3f); + *buf++ = 0x80 | ((val >> 12) & 0x3f); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } + } else { + /* + * Ugly, limited parsing of & > < + */ + char *sc = (char *)memchr(p, 0x3b, len > 5 ? 5 : len); + if(!sc) goto want_more; + if((sc - p) == 4 + && p[1] == 0x61 /* 'a' */ + && p[2] == 0x6d /* 'm' */ + && p[3] == 0x70 /* 'p' */) { + *buf++ = 0x26; + p = sc; + continue; + } + if((sc - p) == 3) { + if(p[1] == 0x6c) { + *buf = 0x3c; /* '<' */ + } else if(p[1] == 0x67) { + *buf = 0x3e; /* '>' */ + } else { + /* Unsupported entity reference */ + *buf++ = ch; + continue; + } + if(p[2] != 0x74) { + /* Unsupported entity reference */ + *buf++ = ch; + continue; + } + buf++; + p = sc; + continue; + } + /* Unsupported entity reference */ + *buf++ = ch; + } + + continue; + want_more: + if(have_more) { + /* + * We know that no more data (of the same type) + * is coming. Copy the rest verbatim. + */ + *buf++ = ch; + continue; + } + chunk_size = (p - (const char *)chunk_buf); + /* Processing stalled: need more data */ + break; + } + + st->size = buf - st->buf; + assert(st->size <= new_size); + st->buf[st->size] = 0; /* Courtesy termination */ + + return chunk_size; /* Converted in full */ +} + +/* + * Decode OCTET STRING from the XML element's body. + */ +static asn_dec_rval_t +OCTET_STRING__decode_xer( + const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, + void **sptr, const char *opt_mname, const void *buf_ptr, size_t size, + int (*opt_unexpected_tag_decoder)(void *struct_ptr, const void *chunk_buf, + size_t chunk_size), + ssize_t (*body_receiver)(void *struct_ptr, const void *chunk_buf, + size_t chunk_size, int have_more)) { + OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + asn_struct_ctx_t *ctx; /* Per-structure parser context */ + asn_dec_rval_t rval; /* Return value from the decoder */ + int st_allocated; + + /* + * Create the string if does not exist. + */ + if(!st) { + st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); + *sptr = (void *)st; + if(!st) goto sta_failed; + st_allocated = 1; + } else { + st_allocated = 0; + } + if(!st->buf) { + /* This is separate from above section */ + st->buf = (uint8_t *)CALLOC(1, 1); + if(!st->buf) { + if(st_allocated) { + *sptr = 0; + goto stb_failed; + } else { + goto sta_failed; + } + } + } + + /* Restore parsing context */ + ctx = (asn_struct_ctx_t *)(((char *)*sptr) + specs->ctx_offset); + + return xer_decode_general(opt_codec_ctx, ctx, *sptr, xml_tag, + buf_ptr, size, opt_unexpected_tag_decoder, body_receiver); + +stb_failed: + FREEMEM(st); +sta_failed: + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; +} + +/* + * Decode OCTET STRING from the hexadecimal data. + */ +asn_dec_rval_t +OCTET_STRING_decode_xer_hex(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, + buf_ptr, size, 0, OCTET_STRING__convert_hexadecimal); +} + +/* + * Decode OCTET STRING from the binary (0/1) data. + */ +asn_dec_rval_t +OCTET_STRING_decode_xer_binary(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, + buf_ptr, size, 0, OCTET_STRING__convert_binary); +} + +/* + * Decode OCTET STRING from the string (ASCII/UTF-8) data. + */ +asn_dec_rval_t +OCTET_STRING_decode_xer_utf8(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, + buf_ptr, size, + OCTET_STRING__handle_control_chars, + OCTET_STRING__convert_entrefs); +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +static int +OCTET_STRING_per_get_characters(asn_per_data_t *po, uint8_t *buf, + size_t units, unsigned int bpc, unsigned int unit_bits, + long lb, long ub, const asn_per_constraints_t *pc) { + uint8_t *end = buf + units * bpc; + + ASN_DEBUG("Expanding %d characters into (%ld..%ld):%d", + (int)units, lb, ub, unit_bits); + + /* X.691: 27.5.4 */ + if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { + /* Decode without translation */ + lb = 0; + } else if(pc && pc->code2value) { + if(unit_bits > 16) + return 1; /* FATAL: can't have constrained + * UniversalString with more than + * 16 million code points */ + for(; buf < end; buf += bpc) { + int value; + int code = per_get_few_bits(po, unit_bits); + if(code < 0) return -1; /* WMORE */ + value = pc->code2value(code); + if(value < 0) { + ASN_DEBUG("Code %d (0x%02x) is" + " not in map (%ld..%ld)", + code, code, lb, ub); + return 1; /* FATAL */ + } + switch(bpc) { + case 1: *buf = value; break; + case 2: buf[0] = value >> 8; buf[1] = value; break; + case 4: buf[0] = value >> 24; buf[1] = value >> 16; + buf[2] = value >> 8; buf[3] = value; break; + } + } + return 0; + } + + /* Shortcut the no-op copying to the aligned structure */ + if(lb == 0 && (unit_bits == 8 * bpc)) { + return per_get_many_bits(po, buf, 0, unit_bits * units); + } + + for(; buf < end; buf += bpc) { + int32_t code = per_get_few_bits(po, unit_bits); + int32_t ch = code + lb; + if(code < 0) return -1; /* WMORE */ + if(ch > ub) { + ASN_DEBUG("Code %d is out of range (%ld..%ld)", + ch, lb, ub); + return 1; /* FATAL */ + } + switch(bpc) { + case 1: *buf = ch; break; + case 2: buf[0] = ch >> 8; buf[1] = ch; break; + case 4: buf[0] = ch >> 24; buf[1] = ch >> 16; + buf[2] = ch >> 8; buf[3] = ch; break; + } + } + + return 0; +} + +static int +OCTET_STRING_per_put_characters(asn_per_outp_t *po, const uint8_t *buf, + size_t units, unsigned int bpc, unsigned int unit_bits, + long lb, long ub, const asn_per_constraints_t *pc) { + const uint8_t *end = buf + units * bpc; + + ASN_DEBUG("Squeezing %d characters into (%ld..%ld):%d (%d bpc)", + (int)units, lb, ub, unit_bits, bpc); + + /* X.691: 27.5.4 */ + if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { + /* Encode as is */ + lb = 0; + } else if(pc && pc->value2code) { + for(; buf < end; buf += bpc) { + int code; + uint32_t value; + switch(bpc) { + case 1: value = *(const uint8_t *)buf; break; + case 2: value = (buf[0] << 8) | buf[1]; break; + case 4: value = (buf[0] << 24) | (buf[1] << 16) + | (buf[2] << 8) | buf[3]; break; + default: return -1; + } + code = pc->value2code(value); + if(code < 0) { + ASN_DEBUG("Character %d (0x%02x) is" + " not in map (%ld..%ld)", + *buf, *buf, lb, ub); + return -1; + } + if(per_put_few_bits(po, code, unit_bits)) + return -1; + } + } + + /* Shortcut the no-op copying to the aligned structure */ + if(lb == 0 && (unit_bits == 8 * bpc)) { + return per_put_many_bits(po, buf, unit_bits * units); + } + + for(ub -= lb; buf < end; buf += bpc) { + int ch; + uint32_t value; + switch(bpc) { + case 1: + value = *(const uint8_t *)buf; + break; + case 2: + value = (buf[0] << 8) | buf[1]; + break; + case 4: + value = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; + break; + default: + return -1; + } + ch = value - lb; + if(ch < 0 || ch > ub) { + ASN_DEBUG("Character %d (0x%02x) is out of range (%ld..%ld)", *buf, + value, lb, ub + lb); + return -1; + } + if(per_put_few_bits(po, ch, unit_bits)) return -1; + } + + return 0; +} + +static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { + { APC_CONSTRAINED, 8, 8, 0, 255 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, + 0, 0 +}; + +asn_dec_rval_t +OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + enum { + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + + (void)opt_codec_ctx; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + case ASN_OSUBV_BIT: + ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); + RETURN(RC_FAIL); + break; + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_CHAR; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + break; + } + + /* + * Allocate the string. + */ + if(!st) { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + if(bpc) { + st->size = csiz->upper_bound * bpc; + } else { + st->size = (csiz->upper_bound + 7) >> 3; + } + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + if(bpc) { + ASN_DEBUG("Encoding OCTET STRING size %ld", + csiz->upper_bound); + ret = OCTET_STRING_per_get_characters(pd, st->buf, + csiz->upper_bound, bpc, unit_bits, + cval->lower_bound, cval->upper_bound, pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ASN_DEBUG("Encoding BIT STRING size %ld", + csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, + unit_bits * csiz->upper_bound); + } + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += unit_bits * csiz->upper_bound; + st->buf[st->size] = 0; + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, + &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len * bpc; + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = OCTET_STRING_per_get_characters(pd, &st->buf[st->size], raw_len, + bpc, unit_bits, cval->lower_bound, + cval->upper_bound, pc); + if(ret > 0) RETURN(RC_FAIL); + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +OCTET_STRING_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + size_t size_in_units; + const uint8_t *buf; + int ret; + enum { + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + case ASN_OSUBV_BIT: + ASN__ENCODE_FAILED; + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_CHAR; + size_in_units = st->size; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + size_in_units = st->size >> 1; + if(st->size & 1) { + ASN_DEBUG("%s string size is not modulo 2", td->name); + ASN__ENCODE_FAILED; + } + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + size_in_units = st->size >> 2; + if(st->size & 3) { + ASN_DEBUG("%s string size is not modulo 4", td->name); + ASN__ENCODE_FAILED; + } + break; + } + + ASN_DEBUG("Encoding %s into %" ASN_PRI_SIZE " units of %d bits" + " (%ld..%ld, effective %d)%s", + td->name, size_in_units, unit_bits, + csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out whether size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((ssize_t)size_in_units < csiz->lower_bound + || (ssize_t)size_in_units > csiz->upper_bound) { + if(ct_extensible) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + inext = 1; + } else { + ASN__ENCODE_FAILED; + } + } + } else { + inext = 0; + } + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + } + + if(csiz->effective_bits >= 0 && !inext) { + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes (%ld), length in %d bits", st->size, + size_in_units - csiz->lower_bound, csiz->effective_bits); + ret = per_put_few_bits(po, size_in_units - csiz->lower_bound, + csiz->effective_bits); + if(ret) ASN__ENCODE_FAILED; + ret = OCTET_STRING_per_put_characters(po, st->buf, size_in_units, bpc, + unit_bits, cval->lower_bound, + cval->upper_bound, pc); + if(ret) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); + + buf = st->buf; + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " in units", size_in_units); + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size_in_units, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "%s", may_save, size_in_units, + need_eom ? ",+EOM" : ""); + + ret = OCTET_STRING_per_put_characters(po, buf, may_save, bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, pc); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save * bpc; + size_in_units -= may_save; + assert(!(may_save & 0x07) || !size_in_units); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size_in_units); + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + enum { + OS__BPC_BIT = 0, + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + + (void)opt_codec_ctx; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + + switch(specs->subvariant) { + default: +/* case ASN_OSUBV_ANY: + ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); + RETURN(RC_FAIL); +*/ + case ASN_OSUBV_BIT: + canonical_unit_bits = unit_bits = 1; + bpc = OS__BPC_BIT; + break; + case ASN_OSUBV_ANY: + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; +/* if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; +*/ + bpc = OS__BPC_CHAR; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + break; + } + + /* + * Allocate the string. + */ + if(!st) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + cval = &asn_DEF_OCTET_STRING_constraints.value; + unit_bits = canonical_unit_bits; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + if(bpc) { + st->size = csiz->upper_bound * bpc; + } else { + st->size = (csiz->upper_bound + 7) >> 3; + } + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + if (st->size > 2) { /* X.691 #16 NOTE 1 */ + if (aper_get_align(pd) < 0) + RETURN(RC_FAIL); + } + if(bpc) { + ASN_DEBUG("Decoding OCTET STRING size %ld", + csiz->upper_bound); + ret = OCTET_STRING_per_get_characters(pd, st->buf, + csiz->upper_bound, bpc, unit_bits, + cval->lower_bound, cval->upper_bound, pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ASN_DEBUG("Decoding BIT STRING size %ld", + csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, + unit_bits * csiz->upper_bound); + } + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += unit_bits * csiz->upper_bound; + st->buf[st->size] = 0; + if(bpc == 0) { + int ubs = (csiz->upper_bound & 0x7); + st->bits_unused = ubs ? 8 - ubs : 0; + } + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + if (csiz->upper_bound - csiz->lower_bound == 0) + /* Indefinite length case */ + raw_len = aper_get_length(pd, -1, csiz->effective_bits, &repeat); + else + raw_len = aper_get_length(pd, csiz->upper_bound - csiz->lower_bound + 1, csiz->effective_bits, &repeat); + repeat = 0; + if(raw_len < 0) RETURN(RC_WMORE); + raw_len += csiz->lower_bound; + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + + if (raw_len > 2) { /* X.691 #16 NOTE 1 */ + if (aper_get_align(pd) < 0) + RETURN(RC_FAIL); + } + + if(bpc) { + len_bytes = raw_len * bpc; + len_bits = len_bytes * unit_bits; + } else { + len_bits = raw_len; + len_bytes = (len_bits + 7) >> 3; + if(len_bits & 0x7) + st->bits_unused = 8 - (len_bits & 0x7); + /* len_bits be multiple of 16K if repeat is set */ + } + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + if(bpc) { + ret = OCTET_STRING_per_get_characters(pd, + &st->buf[st->size], raw_len, bpc, unit_bits, + cval->lower_bound, cval->upper_bound, pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ret = per_get_many_bits(pd, &st->buf[st->size], + 0, len_bits); + } + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + unsigned int sizeinunits; + const uint8_t *buf; + int ret; + enum { + OS__BPC_BIT = 0, + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + switch(specs->subvariant) { + default: + /* case ASN_OSUBV_ANY: + ASN__ENCODE_FAILED; + */ + case ASN_OSUBV_BIT: + canonical_unit_bits = unit_bits = 1; + bpc = OS__BPC_BIT; + sizeinunits = st->size * 8 - (st->bits_unused & 0x07); + ASN_DEBUG("BIT STRING of %d bytes", + sizeinunits); + break; + case ASN_OSUBV_ANY: + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; +/* if(cval->flags & APC_CONSTRAINED) + unit_bits = 8; +*/ + bpc = OS__BPC_CHAR; + sizeinunits = st->size; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + sizeinunits = st->size / 2; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + sizeinunits = st->size / 4; + break; + } + + ASN_DEBUG("Encoding %s into %d units of %d bits" + " (%ld..%ld, effective %d)%s", + td->name, sizeinunits, unit_bits, + csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out wheter size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((int)sizeinunits < csiz->lower_bound + || (int)sizeinunits > csiz->upper_bound) { + if(ct_extensible) { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + inext = 1; + } else + ASN__ENCODE_FAILED; + } + } else { + inext = 0; + } + + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits >= 0) { + ASN_DEBUG("Encoding %lu bytes (%ld), length in %d bits", + st->size, sizeinunits - csiz->lower_bound, + csiz->effective_bits); + if (csiz->effective_bits > 0) { + ret = aper_put_length(po, csiz->upper_bound - csiz->lower_bound + 1, sizeinunits - csiz->lower_bound); + if(ret) ASN__ENCODE_FAILED; + } + if (st->size > 2) { /* X.691 #16 NOTE 1 */ + if (aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + } + if(bpc) { + ret = OCTET_STRING_per_put_characters(po, st->buf, + sizeinunits, bpc, unit_bits, + cval->lower_bound, cval->upper_bound, pc); + } else { + ret = per_put_many_bits(po, st->buf, + sizeinunits * unit_bits); + } + if(ret) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %lu bytes", st->size); + + if(sizeinunits == 0) { + if(aper_put_length(po, -1, 0)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + buf = st->buf; + while(sizeinunits) { + ssize_t maySave = aper_put_length(po, -1, sizeinunits); + + if(maySave < 0) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %ld of %ld", + (long)maySave, (long)sizeinunits); + + if(bpc) { + ret = OCTET_STRING_per_put_characters(po, buf, + maySave, bpc, unit_bits, + cval->lower_bound, cval->upper_bound, pc); + } else { + ret = per_put_many_bits(po, buf, maySave * unit_bits); + } + if(ret) ASN__ENCODE_FAILED; + + if(bpc) + buf += maySave * bpc; + else + buf += maySave >> 3; + sizeinunits -= maySave; + assert(!(maySave & 0x07) || !sizeinunits); + } + + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +int +OCTET_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + char scratch[16 * 3 + 4]; + char *p = scratch; + uint8_t *buf; + uint8_t *end; + size_t i; + + (void)td; /* Unused argument */ + + if(!st || (!st->buf && st->size)) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* + * Dump the contents of the buffer in hexadecimal. + */ + buf = st->buf; + end = buf + st->size; + for(i = 0; buf < end; buf++, i++) { + if(!(i % 16) && (i || st->size > 16)) { + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + _i_INDENT(1); + p = scratch; + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + + if(p > scratch) { + p--; /* Remove the tail space */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + } + + return 0; +} + +int +OCTET_STRING_print_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, + void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st && (st->buf || !st->size)) { + return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} + +void +OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; + const asn_OCTET_STRING_specifics_t *specs; + asn_struct_ctx_t *ctx; + struct _stack *stck; + + if(!td || !st) + return; + + specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + ASN_DEBUG("Freeing %s as OCTET STRING", td->name); + + if(st->buf) { + FREEMEM(st->buf); + st->buf = 0; + } + + /* + * Remove decode-time stack. + */ + stck = (struct _stack *)ctx->ptr; + if(stck) { + while(stck->tail) { + struct _stack_el *sel = stck->tail; + stck->tail = sel->prev; + FREEMEM(sel); + } + FREEMEM(stck); + } + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(sptr, 0, + td->specifics + ? ((const asn_OCTET_STRING_specifics_t *)(td->specifics)) + ->struct_size + : sizeof(OCTET_STRING_t)); + break; + } +} + +/* + * Conversion routines. + */ +int +OCTET_STRING_fromBuf(OCTET_STRING_t *st, const char *str, int len) { + void *buf; + + if(st == 0 || (str == 0 && len)) { + errno = EINVAL; + return -1; + } + + /* + * Clear the OCTET STRING. + */ + if(str == NULL) { + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + return 0; + } + + /* Determine the original string size, if not explicitly given */ + if(len < 0) + len = strlen(str); + + /* Allocate and fill the memory */ + buf = MALLOC(len + 1); + if(buf == NULL) + return -1; + + memcpy(buf, str, len); + ((uint8_t *)buf)[len] = '\0'; /* Couldn't use memcpy(len+1)! */ + FREEMEM(st->buf); + st->buf = (uint8_t *)buf; + st->size = len; + + return 0; +} + +OCTET_STRING_t * +OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, const char *str, + int len) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + OCTET_STRING_t *st; + + st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); + if(st && str && OCTET_STRING_fromBuf(st, str, len)) { + FREEMEM(st); + st = NULL; + } + + return st; +} + +/* + * Lexicographically compare the common prefix of both strings, + * and if it is the same return -1 for the smallest string. + */ +int +OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics; + const OCTET_STRING_t *a = aptr; + const OCTET_STRING_t *b = bptr; + + assert(!specs || specs->subvariant != ASN_OSUBV_BIT); + + if(a && b) { + size_t common_prefix_size = a->size <= b->size ? a->size : b->size; + int ret = memcmp(a->buf, b->buf, common_prefix_size); + if(ret == 0) { + /* Figure out which string with equal prefixes is longer. */ + if(a->size < b->size) { + return -1; + } else if(a->size > b->size) { + return 1; + } else { + return 0; + } + } else { + return ret < 0 ? -1 : 1; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } + +} + +/* + * Biased function for randomizing character values around their limits. + */ +static uint32_t +OCTET_STRING__random_char(unsigned long lb, unsigned long ub) { + assert(lb <= ub); + switch(asn_random_between(0, 16)) { + case 0: + if(lb < ub) return lb + 1; + /* Fall through */ + case 1: + return lb; + case 2: + if(lb < ub) return ub - 1; + /* Fall through */ + case 3: + return ub; + default: + return asn_random_between(lb, ub); + } +} + + +size_t +OCTET_STRING_random_length_constrained( + const asn_TYPE_descriptor_t *td, + const asn_encoding_constraints_t *constraints, size_t max_length) { + const unsigned lengths[] = {0, 1, 2, 3, 4, 8, + 126, 127, 128, 16383, 16384, 16385, + 65534, 65535, 65536, 65537}; + size_t rnd_len; + + /* Figure out how far we should go */ + rnd_len = lengths[asn_random_between( + 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; + + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_CONSTRAINED) { + long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length + ? pc->upper_bound + : (ssize_t)max_length; + if(max_length <= (size_t)pc->lower_bound) { + return pc->lower_bound; + } + if(pc->flags & APC_EXTENSIBLE) { + switch(asn_random_between(0, 5)) { + case 0: + if(pc->lower_bound > 0) { + rnd_len = pc->lower_bound - 1; + break; + } + /* Fall through */ + case 1: + rnd_len = pc->upper_bound + 1; + break; + case 2: + /* Keep rnd_len from the table */ + if(rnd_len <= max_length) { + break; + } + /* Fall through */ + default: + rnd_len = asn_random_between(pc->lower_bound, + suggested_upper_bound); + } + } else { + rnd_len = + asn_random_between(pc->lower_bound, suggested_upper_bound); + } + } else { + rnd_len = asn_random_between(0, max_length); + } + } else if(rnd_len > max_length) { + rnd_len = asn_random_between(0, max_length); + } + + return rnd_len; +} + +asn_random_fill_result_t +OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + unsigned int unit_bytes = 1; + unsigned long clb = 0; /* Lower bound on char */ + unsigned long cub = 255; /* Higher bound on char value */ + uint8_t *buf; + uint8_t *bend; + uint8_t *b; + size_t rnd_len; + OCTET_STRING_t *st; + + if(max_length == 0 && !*sptr) return result_skipped; + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + return result_failed; + case ASN_OSUBV_BIT: + /* Handled by BIT_STRING itself. */ + return result_failed; + case ASN_OSUBV_STR: + unit_bytes = 1; + clb = 0; + cub = 255; + break; + case ASN_OSUBV_U16: + unit_bytes = 2; + clb = 0; + cub = 65535; + break; + case ASN_OSUBV_U32: + unit_bytes = 4; + clb = 0; + cub = 0x10FFFF; + break; + } + + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->value; + if(pc->flags & APC_SEMI_CONSTRAINED) { + clb = pc->lower_bound; + } else if(pc->flags & APC_CONSTRAINED) { + clb = pc->lower_bound; + cub = pc->upper_bound; + } + } + + rnd_len = + OCTET_STRING_random_length_constrained(td, constraints, max_length); + + buf = CALLOC(unit_bytes, rnd_len + 1); + if(!buf) return result_failed; + + bend = &buf[unit_bytes * rnd_len]; + + switch(unit_bytes) { + case 1: + for(b = buf; b < bend; b += unit_bytes) { + *(uint8_t *)b = OCTET_STRING__random_char(clb, cub); + } + *(uint8_t *)b = 0; + break; + case 2: + for(b = buf; b < bend; b += unit_bytes) { + uint32_t code = OCTET_STRING__random_char(clb, cub); + b[0] = code >> 8; + b[1] = code; + } + *(uint16_t *)b = 0; + break; + case 4: + for(b = buf; b < bend; b += unit_bytes) { + uint32_t code = OCTET_STRING__random_char(clb, cub); + b[0] = code >> 24; + b[1] = code >> 16; + b[2] = code >> 8; + b[3] = code; + } + *(uint32_t *)b = 0; + break; + } + + if(*sptr) { + st = *sptr; + FREEMEM(st->buf); + } else { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) { + FREEMEM(buf); + return result_failed; + } + } + + st->buf = buf; + st->size = unit_bytes * rnd_len; + + result_ok.length = st->size; + return result_ok; +} diff --git a/vcits/asn1c/src/OCTET_STRING_oer.c b/vcits/asn1c/src/OCTET_STRING_oer.c new file mode 100644 index 0000000..c16faea --- /dev/null +++ b/vcits/asn1c/src/OCTET_STRING_oer.c @@ -0,0 +1,171 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_DISABLE_OER_SUPPORT + +#include +#include +#include + +asn_dec_rval_t +OCTET_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **sptr, + const void *ptr, size_t size) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; + const asn_oer_constraints_t *cts = + constraints ? constraints : td->encoding_constraints.oer_constraints; + ssize_t ct_size = cts ? cts->size : -1; + asn_dec_rval_t rval = {RC_OK, 0}; + size_t expected_length = 0; + + size_t unit_bytes; + switch(specs->subvariant) { + default: + case ASN_OSUBV_BIT: + ASN_DEBUG("Invalid use of OCTET STRING to decode BIT STRING"); + ASN__DECODE_FAILED; + case ASN_OSUBV_ANY: + /* Fall through */ + case ASN_OSUBV_STR: + unit_bytes = 1; + break; + case ASN_OSUBV_U16: + unit_bytes = 2; + break; + case ASN_OSUBV_U32: + unit_bytes = 4; + break; + } + + (void)opt_codec_ctx; + + if(!st) { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) ASN__DECODE_FAILED; + } + + if(ct_size >= 0) { + expected_length = unit_bytes * ct_size; + } else { + /* + * X.696 (08/2015) #27.2 + * Encode length determinant as _number of octets_, but only + * if upper bound is not equal to lower bound. + */ + ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); + if(len_len > 0) { + rval.consumed = len_len; + ptr = (const char *)ptr + len_len; + size -= len_len; + } else if(len_len == 0) { + ASN__DECODE_STARVED; + } else if(len_len < 0) { + ASN__DECODE_FAILED; + } + + if(expected_length % unit_bytes != 0) { + ASN_DEBUG( + "Data size %" ASN_PRI_SIZE " bytes is not consistent with multiplier %" ASN_PRI_SIZE "", + expected_length, unit_bytes); + ASN__DECODE_FAILED; + } + } + + if(size < expected_length) { + ASN__DECODE_STARVED; + } else { + uint8_t *buf = MALLOC(expected_length + 1); + if(buf == NULL) { + ASN__DECODE_FAILED; + } else { + memcpy(buf, ptr, expected_length); + buf[expected_length] = '\0'; + } + FREEMEM(st->buf); + st->buf = buf; + st->size = expected_length; + + rval.consumed += expected_length; + return rval; + } +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +OCTET_STRING_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + const asn_oer_constraints_t *cts = + constraints ? constraints : td->encoding_constraints.oer_constraints; + ssize_t ct_size = cts ? cts->size : -1; + asn_enc_rval_t er = {0, 0, 0}; + + if(!st) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %s %" ASN_PRI_SIZE " as OCTET STRING", td ? td->name : "", st->size); + + if(ct_size >= 0) { + /* + * Check that available data matches the constraint + */ + size_t unit_bytes; + switch(specs->subvariant) { + default: + case ASN_OSUBV_BIT: + ASN_DEBUG("Invalid use of OCTET STRING to encode BIT STRING"); + ASN__ENCODE_FAILED; + case ASN_OSUBV_ANY: + /* Fall through */ + case ASN_OSUBV_STR: + unit_bytes = 1; + break; + case ASN_OSUBV_U16: + unit_bytes = 2; + break; + case ASN_OSUBV_U32: + unit_bytes = 4; + break; + } + + if(st->size != unit_bytes * (size_t)ct_size) { + ASN_DEBUG( + "Trying to encode %s (%" ASN_PRI_SIZE " bytes) which doesn't fit SIZE " + "constraint (%" ASN_PRI_SIZE ")", + td->name, st->size, ct_size); + ASN__ENCODE_FAILED; + } + } else { + /* + * X.696 (08/2015) #27.2 + * Encode length determinant as _number of octets_, but only + * if upper bound is not equal to lower bound. + */ + ssize_t ret = oer_serialize_length(st->size, cb, app_key); + if(ret < 0) { + ASN__ENCODE_FAILED; + } + er.encoded += ret; + } + + er.encoded += st->size; + if(cb(st->buf, st->size, app_key) < 0) { + ASN__ENCODE_FAILED; + } else { + ASN__ENCODED_OK(er); + } +} + +#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/vcits/asn1c/src/OPEN_TYPE.c b/vcits/asn1c/src/OPEN_TYPE.c new file mode 100644 index 0000000..fd25b69 --- /dev/null +++ b/vcits/asn1c/src/OPEN_TYPE.c @@ -0,0 +1,509 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include +#include + +asn_TYPE_operation_t asn_OP_OPEN_TYPE = { + OPEN_TYPE_free, + OPEN_TYPE_print, + OPEN_TYPE_compare, + OPEN_TYPE_decode_ber, + OPEN_TYPE_encode_der, + OPEN_TYPE_decode_xer, + OPEN_TYPE_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, 0, /* No OER support, use "-gen-OER" to enable */ +#else + OPEN_TYPE_decode_oer, + OPEN_TYPE_encode_oer, +#endif +#ifdef ASN_DISABLE_PER_SUPPORT + 0, 0, 0, 0, +#else + OPEN_TYPE_decode_uper, + OPEN_TYPE_encode_uper, + OPEN_TYPE_decode_aper, + OPEN_TYPE_encode_aper, +#endif + 0, /* Random fill is not supported for open type */ + 0 /* Use generic outmost tag fetcher */ +}; + +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +asn_dec_rval_t +OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, const void *ptr, size_t size) { + size_t consumed_myself = 0; + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + ASN_DEBUG("presence %d\n", selected.presence_index); + + rv = selected.type_descriptor->op->ber_decoder( + opt_codec_ctx, selected.type_descriptor, &inner_value, ptr, size, + elm->tag_mode); + ADVANCE(rv.consumed); + rv.consumed = 0; + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + rv.code = RC_OK; + rv.consumed = consumed_myself; + return rv; + } else { + /* Oh, now a full-blown failure failure */ + } + /* Fall through */ + case RC_FAIL: + rv.consumed = consumed_myself; + /* Fall through */ + case RC_WMORE: + break; + } + + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + return rv; +} + +asn_dec_rval_t +OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, const void *ptr, size_t size) { + size_t consumed_myself = 0; + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + int xer_context = 0; + ssize_t ch_size; + pxer_chunk_type_e ch_type; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + assert(elm->flags == ATF_OPEN_TYPE); + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) + != 0) { + ASN__DECODE_FAILED; + } + } + + /* + * Confirm wrapper. + */ + for(;;) { + ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); + if(ch_size < 0) { + ASN__DECODE_FAILED; + } else { + switch(ch_type) { + case PXER_WMORE: + ASN__DECODE_STARVED; + case PXER_COMMENT: + case PXER_TEXT: + ADVANCE(ch_size); + continue; + case PXER_TAG: + break; + } + break; + } + } + + /* + * Wrapper value confirmed. + */ + switch(xer_check_tag(ptr, ch_size, elm->name)) { + case XCT_OPENING: + ADVANCE(ch_size); + break; + case XCT_BROKEN: + default: + ASN__DECODE_FAILED; + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + rv = selected.type_descriptor->op->xer_decoder( + opt_codec_ctx, selected.type_descriptor, &inner_value, NULL, ptr, size); + ADVANCE(rv.consumed); + rv.consumed = 0; + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + break; + } else { + rv.code = RC_FAIL; + } + /* Fall through */ + case RC_FAIL: + /* Point to a best position where failure occurred */ + rv.consumed = consumed_myself; + /* Fall through */ + case RC_WMORE: + /* Wrt. rv.consumed==0: + * In case a genuine RC_WMORE, the whole Open Type decoding + * will have to be restarted. + */ + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + return rv; + } + + /* + * Finalize wrapper. + */ + for(;;) { + ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); + if(ch_size < 0) { + ASN__DECODE_FAILED; + } else { + switch(ch_type) { + case PXER_WMORE: + ASN__DECODE_STARVED; + case PXER_COMMENT: + case PXER_TEXT: + ADVANCE(ch_size); + continue; + case PXER_TAG: + break; + } + break; + } + } + + /* + * Wrapper value confirmed. + */ + switch(xer_check_tag(ptr, ch_size, elm->name)) { + case XCT_CLOSING: + ADVANCE(ch_size); + break; + case XCT_BROKEN: + default: + ASN__DECODE_FAILED; + } + + rv.consumed += consumed_myself; + + return rv; +} + + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, asn_per_data_t *pd) { + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + assert(elm->flags == ATF_OPEN_TYPE); + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) + != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + rv = uper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, + &inner_value, pd); + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + break; + } else { + rv.code = RC_FAIL; + } + /* Fall through */ + case RC_WMORE: + case RC_FAIL: + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + } + return rv; +} + +asn_enc_rval_t +OPEN_TYPE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const void *memb_ptr; /* Pointer to the member */ + asn_TYPE_member_t *elm; /* CHOICE's element */ + asn_enc_rval_t er; + unsigned present; + + (void)constraints; + + present = CHOICE_variant_get_presence(td, sptr); + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + present--; + } + + ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(uper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { + ASN__ENCODE_FAILED; + } + + er.encoded = 0; + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, asn_per_data_t *pd) { + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + assert(elm->flags == ATF_OPEN_TYPE); + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) + != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, + &inner_value, pd); + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + break; + } else { + rv.code = RC_FAIL; + } + /* Fall through */ + case RC_WMORE: + case RC_FAIL: + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + } + return rv; +} + +asn_enc_rval_t +OPEN_TYPE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const void *memb_ptr; /* Pointer to the member */ + asn_TYPE_member_t *elm; /* CHOICE's element */ + asn_enc_rval_t er; + unsigned present; + + (void)constraints; + + present = CHOICE_variant_get_presence(td, sptr); + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + present--; + } + + ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(aper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { + ASN__ENCODE_FAILED; + } + + er.encoded = 0; + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ diff --git a/vcits/asn1c/src/OPEN_TYPE_oer.c b/vcits/asn1c/src/OPEN_TYPE_oer.c new file mode 100644 index 0000000..dd2f5c6 --- /dev/null +++ b/vcits/asn1c/src/OPEN_TYPE_oer.c @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +asn_dec_rval_t +OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + asn_TYPE_member_t *elm, const void *ptr, size_t size) { + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + size_t ot_ret; + + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + ot_ret = oer_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, + &inner_value, ptr, size); + switch(ot_ret) { + default: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + rv.code = RC_OK; + rv.consumed = ot_ret; + return rv; + } else { + /* Oh, now a full-blown failure failure */ + } + /* Fall through */ + case -1: + rv.code = RC_FAIL; + rv.consumed = ot_ret; + break; + case 0: + rv.code = RC_WMORE; + rv.consumed = 0; + break; + } + + if(*memb_ptr2) { + const asn_CHOICE_specifics_t *specs = + selected.type_descriptor->specifics; + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_FREE_CONTENTS_ONLY(*selected.type_descriptor, + inner_value); + memset(*memb_ptr2, 0, specs->struct_size); + } + } + return rv; +} diff --git a/vcits/asn1c/src/ObjectDescriptor.c b/vcits/asn1c/src/ObjectDescriptor.c new file mode 100644 index 0000000..5d8bfb2 --- /dev/null +++ b/vcits/asn1c/src/ObjectDescriptor.c @@ -0,0 +1,58 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * ObjectDescriptor basic type description. + */ +static const ber_tlv_tag_t asn_DEF_ObjectDescriptor_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (7 << 2)), /* [UNIVERSAL 7] IMPLICIT ... */ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_ObjectDescriptor = { + OCTET_STRING_free, + OCTET_STRING_print_utf8, /* Treat as ASCII subset (it's not) */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + 0, /* Not supported for ObjectDescriptor */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_ObjectDescriptor = { + "ObjectDescriptor", + "ObjectDescriptor", + &asn_OP_ObjectDescriptor, + asn_DEF_ObjectDescriptor_tags, + sizeof(asn_DEF_ObjectDescriptor_tags) + / sizeof(asn_DEF_ObjectDescriptor_tags[0]) - 1, + asn_DEF_ObjectDescriptor_tags, + sizeof(asn_DEF_ObjectDescriptor_tags) + / sizeof(asn_DEF_ObjectDescriptor_tags[0]), + { 0, 0, asn_generic_unknown_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/asn1c/src/PrintableString.c b/vcits/asn1c/src/PrintableString.c new file mode 100644 index 0000000..8fc3939 --- /dev/null +++ b/vcits/asn1c/src/PrintableString.c @@ -0,0 +1,130 @@ +/*- + * Copyright (c) 2003, 2004, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * ASN.1:1984 (X.409) + */ +static const int _PrintableString_alphabet[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ +10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ + 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ +38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ + 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ +64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ +}; +static const int _PrintableString_code2value[74] = { +32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, +55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, +75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, +97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, +113,114,115,116,117,118,119,120,121,122}; + +/* + * PrintableString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_PrintableString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), /* [UNIVERSAL 19] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +static int asn_DEF_PrintableString_v2c(unsigned int value) { + return _PrintableString_alphabet[value > 255 ? 0 : value] - 1; +} +static int asn_DEF_PrintableString_c2v(unsigned int code) { + if(code < 74) + return _PrintableString_code2value[code]; + return -1; +} +static asn_per_constraints_t asn_DEF_PrintableString_per_constraints = { + { APC_CONSTRAINED, 4, 4, 0x20, 0x39 }, /* Value */ + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ + asn_DEF_PrintableString_v2c, + asn_DEF_PrintableString_c2v +}; +asn_TYPE_operation_t asn_OP_PrintableString = { + OCTET_STRING_free, + OCTET_STRING_print_utf8, /* ASCII subset */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_PrintableString = { + "PrintableString", + "PrintableString", + &asn_OP_PrintableString, + asn_DEF_PrintableString_tags, + sizeof(asn_DEF_PrintableString_tags) + / sizeof(asn_DEF_PrintableString_tags[0]) - 1, + asn_DEF_PrintableString_tags, + sizeof(asn_DEF_PrintableString_tags) + / sizeof(asn_DEF_PrintableString_tags[0]), + { 0, &asn_DEF_PrintableString_per_constraints, PrintableString_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +int +PrintableString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, + void *app_key) { + const PrintableString_t *st = (const PrintableString_t *)sptr; + + if(st && st->buf) { + uint8_t *buf = st->buf; + uint8_t *end = buf + st->size; + + /* + * Check the alphabet of the PrintableString. + * ASN.1:1984 (X.409) + */ + for(; buf < end; buf++) { + if(!_PrintableString_alphabet[*buf]) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value byte %ld (%d) " + "not in PrintableString alphabet " + "(%s:%d)", + td->name, + (long)((buf - st->buf) + 1), + *buf, + __FILE__, __LINE__); + return -1; + } + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} diff --git a/vcits/asn1c/src/REAL.c b/vcits/asn1c/src/REAL.c new file mode 100644 index 0000000..7dfcaec --- /dev/null +++ b/vcits/asn1c/src/REAL.c @@ -0,0 +1,1028 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#define _ISOC99_SOURCE /* For ilogb() and quiet NAN */ +#ifndef _BSD_SOURCE +#define _BSD_SOURCE /* To reintroduce finite(3) */ +#endif +#include +#if defined(__alpha) +#include /* For INFINITY */ +#endif +#include /* for strtod(3) */ +#include +#include +#include +#include +#include + +#undef INT_MAX +#define INT_MAX ((int)(((unsigned int)-1) >> 1)) + +#if !(defined(NAN) || defined(INFINITY)) +static volatile double real_zero CC_NOTUSED = 0.0; +#endif +#ifndef NAN +#define NAN (0.0/0.0) +#endif +#ifndef INFINITY +#define INFINITY (1.0/0.0) +#endif + +#if defined(__clang__) +/* + * isnan() is defined using generic selections and won't compile in + * strict C89 mode because of too fancy system's standard library. + * However, prior to C11 the math had a perfectly working isnan() + * in the math library. + * Disable generic selection warning so we can test C89 mode with newer libc. + */ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc11-extensions" +static int asn_isnan(double d) { + return isnan(d); +} +static int asn_isfinite(double d) { +#ifdef isfinite + return isfinite(d); /* ISO C99 */ +#else + return finite(d); /* Deprecated on Mac OS X 10.9 */ +#endif +} +#pragma clang diagnostic pop +#else /* !clang */ +#define asn_isnan(v) isnan(v) +#ifdef isfinite +#define asn_isfinite(d) isfinite(d) /* ISO C99 */ +#else +#define asn_isfinite(d) finite(d) /* Deprecated on Mac OS X 10.9 */ +#endif +#endif /* clang */ + +/* + * REAL basic type description. + */ +static const ber_tlv_tag_t asn_DEF_REAL_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (9 << 2)) +}; +asn_TYPE_operation_t asn_OP_REAL = { + ASN__PRIMITIVE_TYPE_free, + REAL_print, + REAL_compare, + ber_decode_primitive, + der_encode_primitive, + REAL_decode_xer, + REAL_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + REAL_decode_oer, + REAL_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + REAL_decode_uper, + REAL_encode_uper, + REAL_decode_aper, + REAL_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + REAL_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_REAL = { + "REAL", + "REAL", + &asn_OP_REAL, + asn_DEF_REAL_tags, + sizeof(asn_DEF_REAL_tags) / sizeof(asn_DEF_REAL_tags[0]), + asn_DEF_REAL_tags, /* Same as above */ + sizeof(asn_DEF_REAL_tags) / sizeof(asn_DEF_REAL_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, + 0, /* No members */ + 0 /* No specifics */ +}; + +typedef enum specialRealValue { + SRV__NOT_A_NUMBER, + SRV__MINUS_INFINITY, + SRV__PLUS_INFINITY +} specialRealValue_e; +static struct specialRealValue_s { + char *string; + size_t length; + long dv; +} specialRealValue[] = { +#define SRV_SET(foo, val) { foo, sizeof(foo) - 1, val } + SRV_SET("", 0), + SRV_SET("", -1), + SRV_SET("", 1), +#undef SRV_SET +}; + +ssize_t +REAL__dump(double d, int canonical, asn_app_consume_bytes_f *cb, void *app_key) { + char local_buf[64]; + char *buf = local_buf; + ssize_t buflen = sizeof(local_buf); + const char *fmt = canonical ? "%.17E" /* Precise */ : "%.15f" /* Pleasant*/; + ssize_t ret; + + /* + * Check whether it is a special value. + */ + /* fpclassify(3) is not portable yet */ + if(asn_isnan(d)) { + buf = specialRealValue[SRV__NOT_A_NUMBER].string; + buflen = specialRealValue[SRV__NOT_A_NUMBER].length; + return (cb(buf, buflen, app_key) < 0) ? -1 : buflen; + } else if(!asn_isfinite(d)) { + if(copysign(1.0, d) < 0.0) { + buf = specialRealValue[SRV__MINUS_INFINITY].string; + buflen = specialRealValue[SRV__MINUS_INFINITY].length; + } else { + buf = specialRealValue[SRV__PLUS_INFINITY].string; + buflen = specialRealValue[SRV__PLUS_INFINITY].length; + } + return (cb(buf, buflen, app_key) < 0) ? -1 : buflen; + } else if(ilogb(d) <= -INT_MAX) { + if(copysign(1.0, d) < 0.0) { + buf = "-0"; + buflen = 2; + } else { + buf = "0"; + buflen = 1; + } + return (cb(buf, buflen, app_key) < 0) ? -1 : buflen; + } + + /* + * Use the libc's double printing, hopefully they got it right. + */ + do { + ret = snprintf(buf, buflen, fmt, d); + if(ret < 0) { + /* There are some old broken APIs. */ + buflen <<= 1; + if(buflen > 4096) { + /* Should be plenty. */ + if(buf != local_buf) FREEMEM(buf); + return -1; + } + } else if(ret >= buflen) { + buflen = ret + 1; + } else { + buflen = ret; + break; + } + if(buf != local_buf) FREEMEM(buf); + buf = (char *)MALLOC(buflen); + if(!buf) return -1; + } while(1); + + if(canonical) { + /* + * Transform the "[-]d.dddE+-dd" output into "[-]d.dddE[-]d" + * Check that snprintf() constructed the output correctly. + */ + char *dot; + char *end = buf + buflen; + char *last_zero; + char *first_zero_in_run; + char *s; + + enum { + LZSTATE_NOTHING, + LZSTATE_ZEROES + } lz_state = LZSTATE_NOTHING; + + dot = (buf[0] == 0x2d /* '-' */) ? (buf + 2) : (buf + 1); + if(*dot >= 0x30) { + if(buf != local_buf) FREEMEM(buf); + errno = EINVAL; + return -1; /* Not a dot, really */ + } + *dot = 0x2e; /* Replace possible comma */ + + for(first_zero_in_run = last_zero = s = dot + 2; s < end; s++) { + switch(*s) { + case 0x45: /* 'E' */ + if(lz_state == LZSTATE_ZEROES) last_zero = first_zero_in_run; + break; + case 0x30: /* '0' */ + if(lz_state == LZSTATE_NOTHING) first_zero_in_run = s; + lz_state = LZSTATE_ZEROES; + continue; + default: + lz_state = LZSTATE_NOTHING; + continue; + } + break; + } + + if(s == end) { + if(buf != local_buf) FREEMEM(buf); + errno = EINVAL; + return -1; /* No promised E */ + } + + assert(*s == 0x45); + { + char *E = s; + char *expptr = ++E; + char *s = expptr; + int sign; + + if(*expptr == 0x2b /* '+' */) { + /* Skip the "+" */ + buflen -= 1; + sign = 0; + } else { + sign = 1; + s++; + } + expptr++; + if(expptr > end) { + if(buf != local_buf) FREEMEM(buf); + errno = EINVAL; + return -1; + } + if(*expptr == 0x30) { + buflen--; + expptr++; + } + if(lz_state == LZSTATE_ZEROES) { + *last_zero = 0x45; /* E */ + buflen -= s - (last_zero + 1); + s = last_zero + 1; + if(sign) { + *s++ = 0x2d /* '-' */; + buflen++; + } + } + for(; expptr <= end; s++, expptr++) + *s = *expptr; + } + } else { + /* + * Remove trailing zeros. + */ + char *end = buf + buflen; + char *last_zero = end; + int stoplooking = 0; + char *z; + for(z = end - 1; z > buf; z--) { + switch(*z) { + case 0x30: + if(!stoplooking) + last_zero = z; + continue; + case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: + stoplooking = 1; + continue; + default: /* Catch dot and other separators */ + /* + * Replace possible comma (which may even + * be not a comma at all: locale-defined). + */ + *z = 0x2e; + if(last_zero == z + 1) { /* leave x.0 */ + last_zero++; + } + buflen = last_zero - buf; + *last_zero = '\0'; + break; + } + break; + } + } + + ret = cb(buf, buflen, app_key); + if(buf != local_buf) FREEMEM(buf); + return (ret < 0) ? -1 : buflen; +} + +int +REAL_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const REAL_t *st = (const REAL_t *)sptr; + ssize_t ret; + double d; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(!st || !st->buf) + ret = cb("", 8, app_key); + else if(asn_REAL2double(st, &d)) + ret = cb("", 7, app_key); + else + ret = REAL__dump(d, 0, cb, app_key); + + return (ret < 0) ? -1 : 0; +} + +int +REAL_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const REAL_t *a = aptr; + const REAL_t *b = bptr; + + (void)td; + + if(a && b) { + double adbl, bdbl; + int ra, rb; + ra = asn_REAL2double(a, &adbl); + rb = asn_REAL2double(b, &bdbl); + if(ra == 0 && rb == 0) { + if(asn_isnan(adbl)) { + if(asn_isnan(bdbl)) { + return 0; + } else { + return -1; + } + } else if(asn_isnan(bdbl)) { + return 1; + } + /* Value comparison. */ + if(adbl < bdbl) { + return -1; + } else if(adbl > bdbl) { + return 1; + } else { + return 0; + } + } else if(ra) { + return -1; + } else { + return 1; + } + } else if(!a) { + return -1; + } else { + return 1; + } +} + +asn_enc_rval_t +REAL_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + const REAL_t *st = (const REAL_t *)sptr; + asn_enc_rval_t er; + double d; + + (void)ilevel; + + if(!st || !st->buf || asn_REAL2double(st, &d)) + ASN__ENCODE_FAILED; + + er.encoded = REAL__dump(d, flags & XER_F_CANONICAL, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + + +/* + * Decode the chunk of XML text encoding REAL. + */ +static enum xer_pbd_rval +REAL__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + REAL_t *st = (REAL_t *)sptr; + double value; + const char *xerdata = (const char *)chunk_buf; + char *endptr = 0; + char *b; + + (void)td; + + if(!chunk_size) return XPBD_BROKEN_ENCODING; + + /* + * Decode an XMLSpecialRealValue: , etc. + */ + if(xerdata[0] == 0x3c /* '<' */) { + size_t i; + for(i = 0; i < sizeof(specialRealValue) + / sizeof(specialRealValue[0]); i++) { + struct specialRealValue_s *srv = &specialRealValue[i]; + double dv; + + if(srv->length != chunk_size + || memcmp(srv->string, chunk_buf, chunk_size)) + continue; + + /* + * It could've been done using + * (double)srv->dv / real_zero, + * but it summons fp exception on some platforms. + */ + switch(srv->dv) { + case -1: dv = - INFINITY; break; + case 0: dv = NAN; break; + case 1: dv = INFINITY; break; + default: return XPBD_SYSTEM_FAILURE; + } + + if(asn_double2REAL(st, dv)) + return XPBD_SYSTEM_FAILURE; + + return XPBD_BODY_CONSUMED; + } + ASN_DEBUG("Unknown XMLSpecialRealValue"); + return XPBD_BROKEN_ENCODING; + } + + /* + * Copy chunk into the nul-terminated string, and run strtod. + */ + b = (char *)MALLOC(chunk_size + 1); + if(!b) return XPBD_SYSTEM_FAILURE; + memcpy(b, chunk_buf, chunk_size); + b[chunk_size] = 0; /* nul-terminate */ + + value = strtod(b, &endptr); + FREEMEM(b); + if(endptr == b) return XPBD_BROKEN_ENCODING; + + if(asn_double2REAL(st, value)) + return XPBD_SYSTEM_FAILURE; + + return XPBD_BODY_CONSUMED; +} + +asn_dec_rval_t +REAL_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(REAL_t), opt_mname, + buf_ptr, size, REAL__xer_body_decode); +} + +int +asn_REAL2double(const REAL_t *st, double *dbl_value) { + unsigned int octv; + + if(!st || !st->buf) { + errno = EINVAL; + return -1; + } + + if(st->size == 0) { + *dbl_value = 0; + return 0; + } + + octv = st->buf[0]; /* unsigned byte */ + + switch(octv & 0xC0) { + case 0x40: /* X.690: 8.5.6 a) => 8.5.9 */ + /* "SpecialRealValue" */ + + /* Be liberal in what you accept... + * http://en.wikipedia.org/wiki/Robustness_principle + if(st->size != 1) ... + */ + + switch(st->buf[0]) { + case 0x40: /* 01000000: PLUS-INFINITY */ + *dbl_value = INFINITY; + return 0; + case 0x41: /* 01000001: MINUS-INFINITY */ + *dbl_value = - INFINITY; + return 0; + case 0x42: /* 01000010: NOT-A-NUMBER */ + *dbl_value = NAN; + return 0; + case 0x43: /* 01000011: minus zero */ + *dbl_value = -0.0; + return 0; + } + + errno = EINVAL; + return -1; + case 0x00: { /* X.690: 8.5.7 */ + /* + * Decimal. NR{1,2,3} format from ISO 6093. + * NR1: [ ]*[+-]?[0-9]+ + * NR2: [ ]*[+-]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+) + * NR3: [ ]*[+-]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)[Ee][+-]?[0-9]+ + */ + double d; + char *source = 0; + char *endptr; + int used_malloc = 0; + + if(octv == 0 || (octv & 0x3C)) { + /* Remaining values of bits 6 to 1 are Reserved. */ + errno = EINVAL; + return -1; + } + + /* 1. By contract, an input buffer should be '\0'-terminated. + * OCTET STRING decoder ensures that, as is asn_double2REAL(). + * 2. ISO 6093 specifies COMMA as a possible decimal separator. + * However, strtod() can't always deal with COMMA. + * So her we fix both by reallocating, copying and fixing. + */ + if(st->buf[st->size] != '\0' || memchr(st->buf, ',', st->size)) { + const uint8_t *p, *end; + char *b; + + b = source = (char *)MALLOC(st->size + 1); + if(!source) return -1; + used_malloc = 1; + + /* Copy without the first byte and with 0-termination */ + for(p = st->buf + 1, end = st->buf + st->size; + p < end; b++, p++) + *b = (*p == ',') ? '.' : *p; + *b = '\0'; + } else { + source = (char *)&st->buf[1]; + } + + endptr = source; + d = strtod(source, &endptr); + if(*endptr != '\0') { + /* Format is not consistent with ISO 6093 */ + if(used_malloc) FREEMEM(source); + errno = EINVAL; + return -1; + } + if(used_malloc) FREEMEM(source); + if(asn_isfinite(d)) { + *dbl_value = d; + return 0; + } else { + errno = ERANGE; + return -1; + } + } + } + + /* + * Binary representation. + */ + { + double m; + int32_t expval; /* exponent value */ + unsigned int elen; /* exponent value length, in octets */ + int scaleF; + int baseF; + uint8_t *ptr; + uint8_t *end; + int sign; + + switch((octv & 0x30) >> 4) { + case 0x00: baseF = 1; break; /* base 2 */ + case 0x01: baseF = 3; break; /* base 8 */ + case 0x02: baseF = 4; break; /* base 16 */ + default: + /* Reserved field, can't parse now. */ + errno = EINVAL; + return -1; + } + + sign = (octv & 0x40); /* bit 7 */ + scaleF = (octv & 0x0C) >> 2; /* bits 4 to 3 */ + + if(st->size <= 1 + (octv & 0x03)) { + errno = EINVAL; + return -1; + } + + elen = (octv & 0x03); /* bits 2 to 1; 8.5.6.4 */ + if(elen == 0x03) { /* bits 2 to 1 = 11; 8.5.6.4, case d) */ + elen = st->buf[1]; /* unsigned binary number */ + if(elen == 0 || st->size <= (2 + elen)) { + errno = EINVAL; + return -1; + } + /* FIXME: verify constraints of case d) */ + ptr = &st->buf[2]; + } else { + ptr = &st->buf[1]; + } + + /* Fetch the multibyte exponent */ + expval = (int)(*(int8_t *)ptr); + if(elen >= sizeof(expval)-1) { + errno = ERANGE; + return -1; + } + end = ptr + elen + 1; + for(ptr++; ptr < end; ptr++) + expval = (expval * 256) + *ptr; + + m = 0.0; /* Initial mantissa value */ + + /* Okay, the exponent is here. Now, what about mantissa? */ + end = st->buf + st->size; + for(; ptr < end; ptr++) + m = ldexp(m, 8) + *ptr; + + if(0) + ASN_DEBUG("m=%.10f, scF=%d, bF=%d, expval=%d, ldexp()=%f, ldexp()=%f\n", + m, scaleF, baseF, expval, + ldexp(m, expval * baseF + scaleF), + ldexp(m, scaleF) * pow(pow(2, baseF), expval) + ); + + /* + * (S * N * 2^F) * B^E + * Essentially: + m = ldexp(m, scaleF) * pow(pow(2, baseF), expval); + */ + m = ldexp(m, expval * baseF + scaleF); + if(asn_isfinite(m)) { + *dbl_value = sign ? -m : m; + } else { + errno = ERANGE; + return -1; + } + + } /* if(binary_format) */ + + return 0; +} + +/* + * Assume IEEE 754 floating point: standard 64 bit double. + * [1 bit sign] [11 bits exponent] [52 bits mantissa] + */ +int +asn_double2REAL(REAL_t *st, double dbl_value) { + double test = -0.0; + int float_big_endian = *(const char *)&test != 0; + uint8_t buf[16]; /* More than enough for 8-byte dbl_value */ + uint8_t dscr[sizeof(dbl_value)]; /* double value scratch pad */ + /* Assertion guards: won't even compile, if unexpected double size */ + char assertion_buffer1[9 - sizeof(dbl_value)] CC_NOTUSED; + char assertion_buffer2[sizeof(dbl_value) - 7] CC_NOTUSED; + uint8_t *ptr = buf; + uint8_t *mstop; /* Last byte of mantissa */ + unsigned int mval; /* Value of the last byte of mantissa */ + unsigned int bmsign; /* binary mask with sign */ + unsigned int buflen; + unsigned int accum; + int expval; + + if(!st) { + errno = EINVAL; + return -1; + } + + /* + * ilogb(+-0) returns -INT_MAX or INT_MIN (platform-dependent) + * ilogb(+-inf) returns INT_MAX, logb(+-inf) returns +inf + * ilogb(NaN) returns INT_MIN or INT_MAX (platform-dependent) + */ + expval = ilogb(dbl_value); + if(expval <= -INT_MAX /* Also catches +-0 and maybe isnan() */ + || expval == INT_MAX /* catches isfin() and maybe isnan() */ + ) { + if(!st->buf || st->size < 2) { + ptr = (uint8_t *)MALLOC(2); + if(!ptr) return -1; + if(st->buf) FREEMEM(st->buf); + st->buf = ptr; + } + /* fpclassify(3) is not portable yet */ + if(asn_isnan(dbl_value)) { + st->buf[0] = 0x42; /* NaN */ + st->buf[1] = 0; + st->size = 1; + } else if(!asn_isfinite(dbl_value)) { + if(copysign(1.0, dbl_value) < 0.0) { + st->buf[0] = 0x41; /* MINUS-INFINITY */ + } else { + st->buf[0] = 0x40; /* PLUS-INFINITY */ + } + st->buf[1] = 0; + st->size = 1; + } else { + if(copysign(1.0, dbl_value) >= 0.0) { + /* no content octets: positive zero */ + st->buf[0] = 0; /* JIC */ + st->size = 0; + } else { + /* Negative zero. #8.5.3, 8.5.9 */ + st->buf[0] = 0x43; + st->buf[1] = 0; + st->size = 1; + } + } + return 0; + } + + if(float_big_endian) { + uint8_t *s = ((uint8_t *)&dbl_value) + 1; + uint8_t *end = ((uint8_t *)&dbl_value) + sizeof(double); + uint8_t *d; + + bmsign = 0x80 | ((s[-1] >> 1) & 0x40); /* binary mask & - */ + for(mstop = d = dscr; s < end; d++, s++) { + *d = *s; + if(*d) mstop = d; + } + } else { + uint8_t *s = ((uint8_t *)&dbl_value) + sizeof(dbl_value) - 2; + uint8_t *start = ((uint8_t *)&dbl_value); + uint8_t *d; + + bmsign = 0x80 | ((s[1] >> 1) & 0x40); /* binary mask & - */ + for(mstop = d = dscr; s >= start; d++, s--) { + *d = *s; + if(*d) mstop = d; + } + } + + /* Remove parts of the exponent, leave mantissa and explicit 1. */ + dscr[0] = 0x10 | (dscr[0] & 0x0f); + + /* Adjust exponent in a very unobvious way */ + expval -= 8 * ((mstop - dscr) + 1) - 4; + + /* This loop ensures DER conformance by forcing mantissa odd: 11.3.1 */ + mval = *mstop; + if(mval && !(mval & 1)) { + int shift_count = 1; + int ishift; + uint8_t *mptr; + + /* + * Figure out what needs to be done to make mantissa odd. + */ + if(!(mval & 0x0f)) /* Speed-up a little */ + shift_count = 4; + while(((mval >> shift_count) & 1) == 0) + shift_count++; + + ishift = 8 - shift_count; + accum = 0; + + /* Go over the buffer, shifting it shift_count bits right. */ + for(mptr = dscr; mptr <= mstop; mptr++) { + mval = *mptr; + *mptr = accum | (mval >> shift_count); + accum = mval << ishift; + } + + /* Adjust exponent appropriately. */ + expval += shift_count; + } + + if(expval < 0) { + if((expval >> 7) == -1) { + *ptr++ = bmsign | 0x00; + *ptr++ = expval; + } else if((expval >> 15) == -1) { + *ptr++ = bmsign | 0x01; + *ptr++ = expval >> 8; + *ptr++ = expval; + } else { + *ptr++ = bmsign | 0x02; + *ptr++ = expval >> 16; + *ptr++ = expval >> 8; + *ptr++ = expval; + } + } else if(expval <= 0x7f) { + *ptr++ = bmsign | 0x00; + *ptr++ = expval; + } else if(expval <= 0x7fff) { + *ptr++ = bmsign | 0x01; + *ptr++ = expval >> 8; + *ptr++ = expval; + } else { + assert(expval <= 0x7fffff); + *ptr++ = bmsign | 0x02; + *ptr++ = expval >> 16; + *ptr++ = expval >> 8; + *ptr++ = expval; + } + + buflen = (mstop - dscr) + 1; + memcpy(ptr, dscr, buflen); + ptr += buflen; + buflen = ptr - buf; + + ptr = (uint8_t *)MALLOC(buflen + 1); + if(!ptr) return -1; + + memcpy(ptr, buf, buflen); + buf[buflen] = 0; /* JIC */ + + if(st->buf) FREEMEM(st->buf); + st->buf = ptr; + st->size = buflen; + + return 0; +} + +int CC_ATTR_NO_SANITIZE("float-cast-overflow") +asn_double2float(double d, float *outcome) { + float f = d; + + *outcome = f; + + if(asn_isfinite(d) == asn_isfinite(f)) { + return 0; + } else { + return -1; + } +} + +#ifndef ASN_DISABLE_OER_SUPPORT + +/* + * Encode as Canonical OER + */ +asn_enc_rval_t +REAL_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + const REAL_t *st = sptr; + asn_enc_rval_t er; + ssize_t len_len; + + if(!st || !st->buf || !td) + ASN__ENCODE_FAILED; + + if(!constraints) constraints = td->encoding_constraints.oer_constraints; + if(constraints && constraints->value.width != 0) { + /* If we're constrained to a narrow float/double representation, we + * shouldn't have ended up using REAL. Expecting NativeReal. */ + ASN__ENCODE_FAILED; + } + + /* Encode a fake REAL */ + len_len = oer_serialize_length(st->size, cb, app_key); + if(len_len < 0 || cb(st->buf, st->size, app_key) < 0) { + ASN__ENCODE_FAILED; + } else { + er.encoded = len_len + st->size; + ASN__ENCODED_OK(er); + } +} + +asn_dec_rval_t +REAL_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **sptr, + const void *ptr, size_t size) { + asn_dec_rval_t ok = {RC_OK, 0}; + REAL_t *st; + uint8_t *buf; + ssize_t len_len; + size_t real_body_len; + + (void)opt_codec_ctx; + + if(!constraints) constraints = td->encoding_constraints.oer_constraints; + if(constraints && constraints->value.width != 0) { + /* If we're constrained to a narrow float/double representation, we + * shouldn't have ended up using REAL. Expecting NativeReal. */ + ASN__DECODE_FAILED; + } + + len_len = oer_fetch_length(ptr, size, &real_body_len); + if(len_len < 0) ASN__DECODE_FAILED; + if(len_len == 0) ASN__DECODE_STARVED; + + ptr = (const char *)ptr + len_len; + size -= len_len; + + if(real_body_len > size) ASN__DECODE_STARVED; + + buf = CALLOC(1, real_body_len + 1); + if(!buf) ASN__DECODE_FAILED; + + if(!(st = *sptr)) { + st = (*sptr = CALLOC(1, sizeof(REAL_t))); + if(!st) { + FREEMEM(buf); + ASN__DECODE_FAILED; + } + } else { + FREEMEM(st->buf); + } + + memcpy(buf, ptr, real_body_len); + buf[real_body_len] = '\0'; + + st->buf = buf; + st->size = real_body_len; + + ok.consumed = len_len + real_body_len; + return ok; +} + +#endif /* ASN_DISABLE_OER_SUPPORT */ + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +REAL_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + (void)constraints; /* No PER visible constraints */ + return OCTET_STRING_decode_uper(opt_codec_ctx, td, 0, sptr, pd); +} + +asn_enc_rval_t +REAL_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + (void)constraints; /* No PER visible constraints */ + return OCTET_STRING_encode_uper(td, 0, sptr, po); +} + +asn_dec_rval_t +REAL_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + (void)constraints; /* No PER visible constraints */ + return OCTET_STRING_decode_aper(opt_codec_ctx, td, 0, sptr, pd); +} + +asn_enc_rval_t +REAL_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + (void)constraints; /* No PER visible constraints */ + return OCTET_STRING_encode_aper(td, 0, sptr, po); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +asn_random_fill_result_t +REAL_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + static const double values[] = { + 0, -0.0, -1, 1, -M_E, M_E, -3.14, 3.14, -M_PI, M_PI, -255, 255, + /* 2^51 */ + -2251799813685248.0, 2251799813685248.0, + /* 2^52 */ + -4503599627370496.0, 4503599627370496.0, + /* 2^100 */ + -1267650600228229401496703205376.0, 1267650600228229401496703205376.0, + -FLT_MIN, FLT_MIN, + -FLT_MAX, FLT_MAX, + -DBL_MIN, DBL_MIN, + -DBL_MAX, DBL_MAX, +#ifdef FLT_TRUE_MIN + -FLT_TRUE_MIN, FLT_TRUE_MIN, +#endif +#ifdef DBL_TRUE_MIN + -DBL_TRUE_MIN, DBL_TRUE_MIN, +#endif + INFINITY, -INFINITY, NAN}; + REAL_t *st; + double d; + + (void)constraints; + + if(max_length == 0) return result_skipped; + + d = values[asn_random_between(0, sizeof(values) / sizeof(values[0]) - 1)]; + + if(*sptr) { + st = *sptr; + } else { + st = (REAL_t*)(*sptr = CALLOC(1, sizeof(REAL_t))); + if(!st) { + return result_failed; + } + } + + if(asn_double2REAL(st, d)) { + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + return result_failed; + } + + result_ok.length = st->size; + return result_ok; +} + diff --git a/vcits/asn1c/src/RELATIVE-OID.c b/vcits/asn1c/src/RELATIVE-OID.c new file mode 100644 index 0000000..81b9d7a --- /dev/null +++ b/vcits/asn1c/src/RELATIVE-OID.c @@ -0,0 +1,336 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include /* Encoder and decoder of a primitive type */ +#include /* for CHAR_BIT */ +#include + +/* + * RELATIVE-OID basic type description. + */ +static const ber_tlv_tag_t asn_DEF_RELATIVE_OID_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (13 << 2)) +}; +asn_TYPE_operation_t asn_OP_RELATIVE_OID = { + ASN__PRIMITIVE_TYPE_free, + RELATIVE_OID_print, + OCTET_STRING_compare, /* Implemented in terms of opaque comparison */ + ber_decode_primitive, + der_encode_primitive, + RELATIVE_OID_decode_xer, + RELATIVE_OID_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + RELATIVE_OID_decode_oer, + RELATIVE_OID_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + RELATIVE_OID_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_RELATIVE_OID = { + "RELATIVE-OID", + "RELATIVE_OID", + &asn_OP_RELATIVE_OID, + asn_DEF_RELATIVE_OID_tags, + sizeof(asn_DEF_RELATIVE_OID_tags) + / sizeof(asn_DEF_RELATIVE_OID_tags[0]), + asn_DEF_RELATIVE_OID_tags, /* Same as above */ + sizeof(asn_DEF_RELATIVE_OID_tags) + / sizeof(asn_DEF_RELATIVE_OID_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +static ssize_t +RELATIVE_OID__dump_body(const RELATIVE_OID_t *st, asn_app_consume_bytes_f *cb, void *app_key) { + char scratch[32]; + size_t produced = 0; + size_t off = 0; + + for(;;) { + asn_oid_arc_t arc; + ssize_t rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, + st->size - off, &arc); + if(rd < 0) { + return -1; + } else if(rd == 0) { + /* No more arcs. */ + break; + } else { + int ret = snprintf(scratch, sizeof(scratch), "%s%" PRIu32, + off ? "." : "", arc); + if(ret >= (ssize_t)sizeof(scratch)) { + return -1; + } + produced += ret; + off += rd; + assert(off <= st->size); + if(cb(scratch, ret, app_key) < 0) return -1; + } + } + + if(off != st->size) { + ASN_DEBUG("Could not scan to the end of Object Identifier"); + return -1; + } + + return produced; +} + +int +RELATIVE_OID_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + const RELATIVE_OID_t *st = (const RELATIVE_OID_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(!st || !st->buf) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb("{ ", 2, app_key) < 0) + return -1; + + if(RELATIVE_OID__dump_body(st, cb, app_key) < 0) + return -1; + + return (cb(" }", 2, app_key) < 0) ? -1 : 0; +} + +static enum xer_pbd_rval +RELATIVE_OID__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + RELATIVE_OID_t *st = (RELATIVE_OID_t *)sptr; + const char *chunk_end = (const char *)chunk_buf + chunk_size; + const char *endptr; + asn_oid_arc_t s_arcs[6]; + asn_oid_arc_t *arcs = s_arcs; + ssize_t num_arcs; + int ret; + + (void)td; + + num_arcs = OBJECT_IDENTIFIER_parse_arcs( + (const char *)chunk_buf, chunk_size, arcs, + sizeof(s_arcs) / sizeof(s_arcs[0]), &endptr); + if(num_arcs < 0) { + /* Expecting at least one arc arcs */ + return XPBD_BROKEN_ENCODING; + } else if(num_arcs == 0) { + return XPBD_NOT_BODY_IGNORE; + } + assert(endptr == chunk_end); + + if((size_t)num_arcs > sizeof(s_arcs) / sizeof(s_arcs[0])) { + arcs = (asn_oid_arc_t *)MALLOC(num_arcs * sizeof(arcs[0])); + if(!arcs) return XPBD_SYSTEM_FAILURE; + ret = OBJECT_IDENTIFIER_parse_arcs((const char *)chunk_buf, chunk_size, + arcs, num_arcs, &endptr); + if(ret != num_arcs) { + return XPBD_SYSTEM_FAILURE; /* assert?.. */ + } + } + + /* + * Convert arcs into BER representation. + */ + ret = RELATIVE_OID_set_arcs(st, arcs, num_arcs); + if(arcs != s_arcs) FREEMEM(arcs); + + return ret ? XPBD_SYSTEM_FAILURE : XPBD_BODY_CONSUMED; +} + +asn_dec_rval_t +RELATIVE_OID_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(RELATIVE_OID_t), opt_mname, + buf_ptr, size, RELATIVE_OID__xer_body_decode); +} + +asn_enc_rval_t +RELATIVE_OID_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const RELATIVE_OID_t *st = (const RELATIVE_OID_t *)sptr; + asn_enc_rval_t er; + + (void)ilevel; /* Unused argument */ + (void)flags; /* Unused argument */ + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = RELATIVE_OID__dump_body(st, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +ssize_t +RELATIVE_OID_get_arcs(const RELATIVE_OID_t *st, asn_oid_arc_t *arcs, + size_t arcs_count) { + size_t num_arcs = 0; + size_t off; + + if(!st || !st->buf) { + errno = EINVAL; + return -1; + } + + for(off = 0;;) { + asn_oid_arc_t arc; + ssize_t rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, + st->size - off, &arc); + if(rd < 0) { + return -1; + } else if(rd == 0) { + /* No more arcs. */ + break; + } else { + off += rd; + if(num_arcs < arcs_count) { + arcs[num_arcs] = arc; + } + num_arcs++; + } + } + + if(off != st->size) { + return -1; + } + + return num_arcs; +} + +int +RELATIVE_OID_set_arcs(RELATIVE_OID_t *st, const asn_oid_arc_t *arcs, + size_t arcs_count) { + uint8_t *buf; + uint8_t *bp; + size_t size; + size_t i; + + if(!st || !arcs) { + errno = EINVAL; + return -1; + } + + /* + * Roughly estimate the maximum size necessary to encode these arcs. + */ + size = ((sizeof(asn_oid_arc_t) * CHAR_BIT + 6) / 7) * arcs_count; + bp = buf = (uint8_t *)MALLOC(size + 1); + if(!buf) { + /* ENOMEM */ + return -1; + } + + /* + * Encode the arcs. + */ + for(i = 0; i < arcs_count; i++) { + ssize_t wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arcs[i]); + if(wrote <= 0) { + FREEMEM(buf); + return -1; + } + assert((size_t)wrote <= size); + bp += wrote; + size -= wrote; + } + + /* + * Replace buffer. + */ + st->size = bp - buf; + bp = st->buf; + st->buf = buf; + st->buf[st->size] = '\0'; + if(bp) FREEMEM(bp); + + return 0; +} + + +/* + * Generate values from the list of interesting values, or just a random value. + */ +static asn_oid_arc_t +RELATIVE_OID__biased_random_arc() { + static const uint16_t values[] = {0, 1, 127, 128, 129, 254, 255, 256}; + + switch(asn_random_between(0, 2)) { + case 0: + return values[asn_random_between( + 0, sizeof(values) / sizeof(values[0]) - 1)]; + case 1: + return asn_random_between(0, UINT_MAX); + case 2: + default: + return UINT_MAX; + } +} + +asn_random_fill_result_t +RELATIVE_OID_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + RELATIVE_OID_t *st; + const int min_arcs = 1; /* A minimum of 1 arc is required */ + asn_oid_arc_t arcs[3]; + size_t arcs_len = + asn_random_between(min_arcs, sizeof(arcs) / sizeof(arcs[0])); + size_t i; + + (void)constraints; + + if(max_length < arcs_len) return result_skipped; + + if(*sptr) { + st = *sptr; + } else { + st = CALLOC(1, sizeof(*st)); + } + + for(i = 0; i < arcs_len; i++) { + arcs[i] = RELATIVE_OID__biased_random_arc(); + } + + if(RELATIVE_OID_set_arcs(st, arcs, arcs_len)) { + if(st != *sptr) { + ASN_STRUCT_FREE(*td, st); + } + return result_failed; + } + + *sptr = st; + + result_ok.length = st->size; + return result_ok; +} diff --git a/vcits/asn1c/src/T61String.c b/vcits/asn1c/src/T61String.c new file mode 100644 index 0000000..d3de88b --- /dev/null +++ b/vcits/asn1c/src/T61String.c @@ -0,0 +1,58 @@ +/*- + * Copyright (c) 2003 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * T61String basic type description. + */ +static const ber_tlv_tag_t asn_DEF_T61String_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (20 << 2)), /* [UNIVERSAL 20] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_T61String = { + OCTET_STRING_free, + OCTET_STRING_print, /* non-ascii string */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_hex, + OCTET_STRING_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_T61String = { + "T61String", + "T61String", + &asn_OP_T61String, + asn_DEF_T61String_tags, + sizeof(asn_DEF_T61String_tags) + / sizeof(asn_DEF_T61String_tags[0]) - 1, + asn_DEF_T61String_tags, + sizeof(asn_DEF_T61String_tags) + / sizeof(asn_DEF_T61String_tags[0]), + { 0, 0, asn_generic_unknown_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/asn1c/src/TeletexString.c b/vcits/asn1c/src/TeletexString.c new file mode 100644 index 0000000..9756c72 --- /dev/null +++ b/vcits/asn1c/src/TeletexString.c @@ -0,0 +1,194 @@ +/*- + * Copyright (c) 2003, 2006 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * TeletexString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_TeletexString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (20 << 2)), /* [UNIVERSAL 20] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_TeletexString = { + OCTET_STRING_free, + OCTET_STRING_print, /* non-ascii string */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_hex, + OCTET_STRING_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_TeletexString = { + "TeletexString", + "TeletexString", + &asn_OP_TeletexString, + asn_DEF_TeletexString_tags, + sizeof(asn_DEF_TeletexString_tags) + / sizeof(asn_DEF_TeletexString_tags[0]) - 1, + asn_DEF_TeletexString_tags, + sizeof(asn_DEF_TeletexString_tags) + / sizeof(asn_DEF_TeletexString_tags[0]), + { 0, 0, asn_generic_unknown_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +/* + * Here is a formal attempt at creating a mapping from TeletexString + * (T61String) of the latest ASN.1 standard (X.680:2002) into the Unicode + * character set. -- Lev Walkin + * + * The first thing to keep in mind is that TeletexString (T61String) + * is defined in ASN.1, and is not really a T.61 string. + * The T.61 standard is withdrawn by ITU-T and is no longer an authoritative + * reference. See http://www.itu.int/rec/T-REC-T.61 + * + * The X.680 specifies TeletexString (T61String) as a combination of the + * character sets specified by the registration numbers listed in + * ISO International Register of Coded Character Sets to be used with + * Escape Sequences (ISO-2375): + * 6, 87, 102, 103, 106, 107, 126, 144, 150, 153, 156, 164, 165, 168, + * plus SPACE and DELETE characters. + * In addition to that, the X.680 Table 6 NOTE 2 allows using register entries + * 6 and 156 instead of 102 and 103. + * + * The ISO Register itself is available at http://www.itscj.ipsj.or.jp/ISO-IR/ + * + * #6 is ASCII. http://www.itscj.ipsj.or.jp/ISO-IR/006.pdf + * Escapes into: + * G0: ESC 2/8 4/2 ("(B") + * G1: ESC 2/9 4/2 (")B") + * The range is [0x21 .. 0x7e]. Conversion into Unicode + * is simple, because it has one-to-one correspondence. + * #87 is a "Japanese Graphic Character Set for Information Interchange". + * Is a multiple-byte set of 6877 characters. + * The character set is JIS X 0208-1983 (originally JIS C 6226-1983). + * Escapes into: + * G0: ESC 2/4 4/2 ("$B") + * G1: ESC 2/4 2/9 4/2 ("$)B") + * G2: ESC 2/4 2/10 4/2 ("$*B") + * G3: ESC 2/4 2/11 4/2 ("$+B") + * #102 is "Teletex Primary Set of Graphic Characters" and is almost ASCII. + * Escapes into: + * G0: ESC 2/8 7/5 ("(u") + * G1: ESC 2/9 7/5 (")u") + * G2: ESC 2/10 7/5 ("*u") + * G3: ESC 2/11 7/5 ("+u") + * It is almost identical to ASCII, except for ASCII position for '$' + * (DOLLAR SIGN) is filled with '¤' (CURRENCY SIGN), which is U+00A4. + * Also, ASCII positions for '`', '\', '^', '{', '}', '~' are marked + * as "should not be used". + * #103 is a supplementary set of characters used in combination with #102. + * Escapes into: + * G0: ESC 2/8 7/6 ("(v") + * G1: ESC 2/9 7/6 (")v") + * G2: ESC 2/10 7/6 ("*v") + * G3: ESC 2/11 7/6 ("+v") + * Some characters in that character set are combining characters, + * which can only be restrictively used with certain basic Latin letters. + * It can be thought of as a subset of #156 with the exception of 4/12 + * which is UNDERLINE in #103 and absent in #156. + * #106 is a primary set of control functions, used in combination with #107. + * Escapes into: + * C0: ESC 2/1 4/5 ("!E") + * This set is so short I can list it here: + * 0x08 BS BACKSPACE -- same as Unicode + * 0x0a LF LINE FEED -- same as Unicode + * 0x0c FF FORM FEED -- same as Unicode + * 0x0d CR CARRIAGE RETURN -- same as Unicode + * 0x0e LS1 LOCKING SHIFT ONE + * 0x0f LS0 LOCKING SHIFT ZERO + * 0x19 SS2 SINGLE SHIFT TWO + * 0x1a SUB SUBSTITUTE CHARACTER + * 0x1b ESC ESCAPE -- same as Unicode + * 0x1d SS3 SINGLE SHIFT THREE + * The LS1 and LS0 are two magical functions which, respectively, invoke + * the currently designated G1 or G0 set into positions 2/1 to 7/14 + * The SS2 and SS3, respectively, invoke one character of the + * currently designated set G2 and G3. + * The SUB is wholly equivalent to U+001a (SUBSTITUTE) + * #107 is a supplementary set of control functions, used with #106. + * Escapes into: + * C1: ESC 2/2 4/8 ('"H') + * This set contains three special control codes: + * 0x8b PLD PARTIAL LINE DOWN -- similar to + * 0x8c PLU PARTIAL LINE UP -- sumilar to + * 0x9b CSI CONTROL SEQUENCE INTRODUCER + * This set is so out of world we can probably safely ignore it. + * #126 is a "Right-hand Part of the Latin/Greek Alphabet". + * Comprises of 90 characters, including accented letters. + * Escapes into: + * G1: ESC 2/13 4/6 ("-F") + * G2: ESC 2/14 4/6 (".F") + * G3: ESC 2/15 4/6 ("/F") + * Note: This Registration is a subset of ISO-IR 227. + * #144 is a "Cyrillic part of the Latin/Cyrillic Alphabet". + * Comprises of 95 characters. + * Escapes into: + * G1: ESC 2/13 4/12 ("-L") + * G2: ESC 2/14 4/12 (".L") + * G3: ESC 2/15 4/12 ("/L") + * #150 is a "Greek Primary Set of Graphic Characters". + * Comprises of 94 characters. + * Escapes into: + * G0: ESC 2/8 2/1 4/0 ("(!@") + * G1: ESC 2/9 2/1 4/0 (")!@") + * G2: ESC 2/10 2/1 4/0 ("*!@") + * G3: ESC 2/11 2/1 4/0 ("+!@") + * #153 is a "Basic Cyrillic Character Set for 8-bit codes". + * Comprises of 68 characters. + * Escapes into: + * G1: ESC 2/13 4/15 ("-O") + * G2: ESC 2/14 4/15 (".O") + * G3: ESC 2/15 4/15 ("/O") + * #156 is a "Supplementary Set of ISO/IEC 6937:1992" for use with #6 + * Comprises of 87 characters. + * Escapes into: + * G1: ESC 2/13 5/2 ("-R") + * G2: ESC 2/14 5/2 (".R") + * G3: ESC 2/15 5/2 ("/R") + * #164 is a "Hebrew Supplementary Set of Graphic Characters" + * Comprises of 27 characters. + * Escapes into: + * G1: ESC 2/13 5/3 ("-S") + * G2: ESC 2/14 5/3 (".S") + * G3: ESC 2/15 5/3 ("/S") + * #165 is a set of "Codes of the Chinese graphic character set" + * Is a multiple-byte set of 8446 characters. + * Escapes into: + * G0: ESC 2/4 2/8 4/5 ("$(E") + * G1: ESC 2/4 2/9 4/5 ("$)E") + * G2: ESC 2/4 2/10 4/5 ("$*E") + * G3: ESC 2/4 2/11 4/5 ("$+E") + * #168 is a "Japanese Graphic Character Set for Information Interchange" + * A multiple-byte set of 6879 characters updated from #87. + * Escapes into: + * G0: ESC 2/6 4/0 ESC 2/4 4/2 ("&@" "$B") + * G1: ESC 2/6 4/0 ESC 2/4 2/9 4/2 ("&@" "$)B") + * G2: ESC 2/6 4/0 ESC 2/4 2/10 4/2 ("&@" "$*B") + * G3: ESC 2/6 4/0 ESC 2/4 2/11 4/2 ("&@" "$+B") + */ + diff --git a/vcits/asn1c/src/UTCTime.c b/vcits/asn1c/src/UTCTime.c new file mode 100644 index 0000000..07891ac --- /dev/null +++ b/vcits/asn1c/src/UTCTime.c @@ -0,0 +1,277 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +#ifdef __CYGWIN__ +#include "/usr/include/time.h" +#else +#include +#endif /* __CYGWIN__ */ + +#ifndef ASN___INTERNAL_TEST_MODE + +/* + * UTCTime basic type description. + */ +static const ber_tlv_tag_t asn_DEF_UTCTime_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (23 << 2)), /* [UNIVERSAL 23] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), /* [UNIVERSAL 26] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +static asn_per_constraints_t asn_DEF_UTCTime_constraints = { + { APC_CONSTRAINED, 7, 7, 0x20, 0x7e }, /* Value */ + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ + 0, 0 +}; +asn_TYPE_operation_t asn_OP_UTCTime = { + OCTET_STRING_free, + UTCTime_print, + UTCTime_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_decode_xer_utf8, + UTCTime_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + UTCTime_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_UTCTime = { + "UTCTime", + "UTCTime", + &asn_OP_UTCTime, + asn_DEF_UTCTime_tags, + sizeof(asn_DEF_UTCTime_tags) + / sizeof(asn_DEF_UTCTime_tags[0]) - 2, + asn_DEF_UTCTime_tags, + sizeof(asn_DEF_UTCTime_tags) + / sizeof(asn_DEF_UTCTime_tags[0]), + { 0, &asn_DEF_UTCTime_constraints, UTCTime_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +#endif /* ASN___INTERNAL_TEST_MODE */ + +/* + * Check that the time looks like the time. + */ +int +UTCTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const UTCTime_t *st = (const UTCTime_t *)sptr; + time_t tloc; + + errno = EPERM; /* Just an unlikely error code */ + tloc = asn_UT2time(st, 0, 0); + if(tloc == -1 && errno != EPERM) { + ASN__CTFAIL(app_key, td, sptr, "%s: Invalid time format: %s (%s:%d)", + td->name, strerror(errno), __FILE__, __LINE__); + return -1; + } + + return 0; +} + +#ifndef ASN___INTERNAL_TEST_MODE + +asn_enc_rval_t +UTCTime_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + if(flags & XER_F_CANONICAL) { + asn_enc_rval_t rv; + UTCTime_t *ut; + struct tm tm; + + errno = EPERM; + if(asn_UT2time((const UTCTime_t *)sptr, &tm, 1) == -1 + && errno != EPERM) + ASN__ENCODE_FAILED; + + /* Fractions are not allowed in UTCTime */ + ut = asn_time2UT(0, &tm, 1); + if(!ut) ASN__ENCODE_FAILED; + + rv = OCTET_STRING_encode_xer_utf8(td, sptr, ilevel, flags, + cb, app_key); + OCTET_STRING_free(&asn_DEF_UTCTime, ut, 0); + return rv; + } else { + return OCTET_STRING_encode_xer_utf8(td, sptr, ilevel, flags, + cb, app_key); + } +} + +#endif /* ASN___INTERNAL_TEST_MODE */ + +int +UTCTime_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const UTCTime_t *st = (const UTCTime_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st && st->buf) { + char buf[32]; + struct tm tm; + int ret; + + errno = EPERM; + if(asn_UT2time(st, &tm, 1) == -1 && errno != EPERM) + return (cb("", 11, app_key) < 0) ? -1 : 0; + + ret = snprintf(buf, sizeof(buf), + "%04d-%02d-%02d %02d:%02d:%02d (GMT)", + tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, + tm.tm_hour, tm.tm_min, tm.tm_sec); + assert(ret > 0 && ret < (int)sizeof(buf)); + return (cb(buf, ret, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} + +time_t +asn_UT2time(const UTCTime_t *st, struct tm *_tm, int as_gmt) { + char buf[24]; /* "AAMMJJhhmmss+hhmm" + cushion */ + GeneralizedTime_t gt; + + if(!st || !st->buf + || st->size < 11 || st->size >= ((int)sizeof(buf) - 2)) { + errno = EINVAL; + return -1; + } + + gt.buf = (unsigned char *)buf; + gt.size = st->size + 2; + memcpy(gt.buf + 2, st->buf, st->size); + if(st->buf[0] > 0x35) { + /* 19xx */ + gt.buf[0] = 0x31; + gt.buf[1] = 0x39; + } else { + /* 20xx */ + gt.buf[0] = 0x32; + gt.buf[1] = 0x30; + } + + return asn_GT2time(>, _tm, as_gmt); +} + +UTCTime_t * +asn_time2UT(UTCTime_t *opt_ut, const struct tm *tm, int force_gmt) { + GeneralizedTime_t *gt = (GeneralizedTime_t *)opt_ut; + + gt = asn_time2GT(gt, tm, force_gmt); + if(gt == 0) return 0; + + assert(gt->size >= 2); + gt->size -= 2; + memmove(gt->buf, gt->buf + 2, gt->size + 1); + + return (UTCTime_t *)gt; +} + + +asn_random_fill_result_t +UTCTime_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + static const char *values[] = { + "700101000000", "700101000000-0000", "700101000000+0000", + "700101000000Z", "821106210623", "691106210827-0500", + "821106210629Z", + }; + size_t rnd = asn_random_between(0, sizeof(values)/sizeof(values[0])-1); + + (void)constraints; + + if(max_length < sizeof("yymmddhhmmss") && !*sptr) { + return result_skipped; + } + + if(*sptr) { + if(OCTET_STRING_fromBuf(*sptr, values[rnd], -1) != 0) { + if(!sptr) return result_failed; + } + } else { + *sptr = OCTET_STRING_new_fromBuf(td, values[rnd], -1); + if(!sptr) return result_failed; + } + + return result_ok; +} + +int +UTCTime_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const GeneralizedTime_t *a = aptr; + const GeneralizedTime_t *b = bptr; + + (void)td; + + if(a && b) { + time_t at, bt; + int aerr, berr; + + errno = EPERM; + at = asn_UT2time(a, 0, 0); + aerr = errno; + errno = EPERM; + bt = asn_UT2time(b, 0, 0); + berr = errno; + + if(at == -1 && aerr != EPERM) { + if(bt == -1 && berr != EPERM) { + return OCTET_STRING_compare(td, aptr, bptr); + } else { + return -1; + } + } else if(bt == -1 && berr != EPERM) { + return 1; + } else { + /* Both values are valid. */ + } + + if(at < bt) { + return -1; + } else if(at > bt) { + return 1; + } else { + return 0; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } +} + diff --git a/vcits/asn1c/src/UTF8String.c b/vcits/asn1c/src/UTF8String.c new file mode 100644 index 0000000..c023ca1 --- /dev/null +++ b/vcits/asn1c/src/UTF8String.c @@ -0,0 +1,294 @@ +/*- + * Copyright (c) 2003, 2004, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * UTF8String basic type description. + */ +static const ber_tlv_tag_t asn_DEF_UTF8String_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)), /* [UNIVERSAL 12] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_UTF8String = { + OCTET_STRING_free, + UTF8String_print, + OCTET_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + UTF8String_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_UTF8String = { + "UTF8String", + "UTF8String", + &asn_OP_UTF8String, + asn_DEF_UTF8String_tags, + sizeof(asn_DEF_UTF8String_tags) + / sizeof(asn_DEF_UTF8String_tags[0]) - 1, + asn_DEF_UTF8String_tags, + sizeof(asn_DEF_UTF8String_tags) + / sizeof(asn_DEF_UTF8String_tags[0]), + { 0, 0, UTF8String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +/* + * This is the table of length expectations. + * The second half of this table is only applicable to the long sequences. + */ +static const int UTF8String_ht[2][16] = { + { /* 0x0 ... 0x7 */ + /* 0000..0111 */ + 1, 1, 1, 1, 1, 1, 1, 1, + /* 1000..1011(0), 1100..1101(2), 1110(3), 1111(-1) */ + 0, 0, 0, 0, 2, 2, 3, -1 }, + { /* 0xF0 .. 0xF7 */ + /* 11110000..11110111 */ + 4, 4, 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 6, 6, -1, -1 } +}; +static const int32_t UTF8String_mv[7] = { 0, 0, + 0x00000080, + 0x00000800, + 0x00010000, + 0x00200000, + 0x04000000 +}; + +/* Internal aliases for return codes */ +#define U8E_TRUNC -1 /* UTF-8 sequence truncated */ +#define U8E_ILLSTART -2 /* Illegal UTF-8 sequence start */ +#define U8E_NOTCONT -3 /* Continuation expectation failed */ +#define U8E_NOTMIN -4 /* Not minimal length encoding */ +#define U8E_EINVAL -5 /* Invalid arguments */ + +int +UTF8String_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + ssize_t len = UTF8String_length((const UTF8String_t *)sptr); + switch(len) { + case U8E_EINVAL: + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given", td->name); + break; + case U8E_TRUNC: + ASN__CTFAIL(app_key, td, sptr, + "%s: truncated UTF-8 sequence (%s:%d)", + td->name, __FILE__, __LINE__); + break; + case U8E_ILLSTART: + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8 illegal start of encoding (%s:%d)", + td->name, __FILE__, __LINE__); + break; + case U8E_NOTCONT: + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8 not continuation (%s:%d)", + td->name, __FILE__, __LINE__); + break; + case U8E_NOTMIN: + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8 not minimal sequence (%s:%d)", + td->name, __FILE__, __LINE__); + break; + } + return (len < 0) ? -1 : 0; +} + +static ssize_t +UTF8String__process(const UTF8String_t *st, uint32_t *dst, size_t dstlen) { + size_t length; + uint8_t *buf = st->buf; + uint8_t *end = buf + st->size; + uint32_t *dstend = dst + dstlen; + + for(length = 0; buf < end; length++) { + int ch = *buf; + uint8_t *cend; + int32_t value; + int want; + + /* Compute the sequence length */ + want = UTF8String_ht[0][ch >> 4]; + switch(want) { + case -1: + /* Second half of the table, long sequence */ + want = UTF8String_ht[1][ch & 0x0F]; + if(want != -1) break; + /* Fall through */ + case 0: + return U8E_ILLSTART; + } + + /* assert(want >= 1 && want <= 6) */ + + /* Check character sequence length */ + if(buf + want > end) return U8E_TRUNC; + + value = ch & (0xff >> want); + cend = buf + want; + for(buf++; buf < cend; buf++) { + ch = *buf; + if(ch < 0x80 || ch > 0xbf) return U8E_NOTCONT; + value = (value << 6) | (ch & 0x3F); + } + if(value < UTF8String_mv[want]) + return U8E_NOTMIN; + if(dst < dstend) + *dst++ = value; /* Record value */ + } + + if(dst < dstend) *dst = 0; /* zero-terminate */ + + return length; +} + + +ssize_t +UTF8String_length(const UTF8String_t *st) { + if(st && st->buf) { + return UTF8String__process(st, 0, 0); + } else { + return U8E_EINVAL; + } +} + +size_t +UTF8String_to_wcs(const UTF8String_t *st, uint32_t *dst, size_t dstlen) { + if(st && st->buf) { + ssize_t ret = UTF8String__process(st, dst, dstlen); + return (ret < 0) ? 0 : ret; + } else { + return 0; + } +} + +int +UTF8String_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const UTF8String_t *st = (const UTF8String_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st && st->buf) { + return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} + + +/* + * Biased function for randomizing UTF-8 sequences. + */ +static size_t +UTF8String__random_char(uint8_t *b, size_t size) { + static const struct rnd_value { + const char *value; + size_t size; + } values[] = {{"\0", 1}, + {"\x01", 1}, + {"\x7f", 1}, + {"\xc2\xa2", 2}, + {"\xe2\x82\xac", 3}, + {"\xf0\x90\x8d\x88", 4}, + {"\xf4\x8f\xbf\xbf", 4}}; + + const struct rnd_value *v; + size_t max_idx = 0; + + switch(size) { + case 0: + assert(size != 0); + return 0; + case 1: + max_idx = 2; + break; + case 2: + max_idx = 3; + break; + default: + case 4: + max_idx = sizeof(values) / sizeof(values[0]) - 1; + break; + } + + v = &values[asn_random_between(0, max_idx)]; + memcpy(b, v->value, v->size); + return v->size; +} + +asn_random_fill_result_t +UTF8String_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + uint8_t *buf; + uint8_t *bend; + uint8_t *b; + size_t rnd_len; + size_t idx; + UTF8String_t *st; + + if(max_length == 0 && !*sptr) return result_skipped; + + /* Figure out how far we should go */ + rnd_len = OCTET_STRING_random_length_constrained(td, constraints, + max_length / 4); + + buf = CALLOC(4, rnd_len + 1); + if(!buf) return result_failed; + + bend = &buf[4 * rnd_len]; + + for(b = buf, idx = 0; idx < rnd_len; idx++) { + b += UTF8String__random_char(b, (bend - b)); + } + *(uint8_t *)b = 0; + + if(*sptr) { + st = *sptr; + FREEMEM(st->buf); + } else { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, sizeof(UTF8String_t))); + if(!st) { + FREEMEM(buf); + return result_failed; + } + } + + st->buf = buf; + st->size = b - buf; + + assert(UTF8String_length(st) == (ssize_t)rnd_len); + + return result_ok; +} diff --git a/vcits/asn1c/src/UniversalString.c b/vcits/asn1c/src/UniversalString.c new file mode 100644 index 0000000..2a1880f --- /dev/null +++ b/vcits/asn1c/src/UniversalString.c @@ -0,0 +1,243 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * UniversalString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_UniversalString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (28 << 2)), /* [UNIVERSAL 28] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +asn_OCTET_STRING_specifics_t asn_SPC_UniversalString_specs = { + sizeof(UniversalString_t), + offsetof(UniversalString_t, _asn_ctx), + ASN_OSUBV_U32 /* 32-bits character */ +}; +static asn_per_constraints_t asn_DEF_UniversalString_per_constraints = { + { APC_CONSTRAINED, 32, 32, 0, 2147483647 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, + 0, 0 +}; +asn_TYPE_operation_t asn_OP_UniversalString = { + OCTET_STRING_free, + UniversalString_print, /* Convert into UTF8 and print */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, + OCTET_STRING_encode_der, + UniversalString_decode_xer, /* Convert from UTF-8 */ + UniversalString_encode_xer, /* Convert into UTF-8 */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_UniversalString = { + "UniversalString", + "UniversalString", + &asn_OP_UniversalString, + asn_DEF_UniversalString_tags, + sizeof(asn_DEF_UniversalString_tags) + / sizeof(asn_DEF_UniversalString_tags[0]) - 1, + asn_DEF_UniversalString_tags, + sizeof(asn_DEF_UniversalString_tags) + / sizeof(asn_DEF_UniversalString_tags[0]), + { 0, &asn_DEF_UniversalString_per_constraints, UniversalString_constraint }, + 0, 0, /* No members */ + &asn_SPC_UniversalString_specs +}; + +int +UniversalString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, + void *app_key) { + const UniversalString_t *st = (const UniversalString_t *)sptr; + + if(st && st->buf) { + if(st->size % 4) { + ASN__CTFAIL(app_key, td, sptr, + "%s: invalid size %" ASN_PRI_SIZE " not divisible by 4 (%s:%d)", + td->name, st->size, __FILE__, __LINE__); + return -1; + } + } else { + ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, + __FILE__, __LINE__); + return -1; + } + + return 0; +} + +static ssize_t +UniversalString__dump(const UniversalString_t *st, + asn_app_consume_bytes_f *cb, void *app_key) { + char scratch[128]; /* Scratchpad buffer */ + char *p = scratch; + ssize_t wrote = 0; + uint8_t *ch; + uint8_t *end; + + ch = st->buf; + end = (st->buf + st->size); + for(end -= 3; ch < end; ch += 4) { + uint32_t wc = (ch[0] << 24) + | (ch[1] << 16) + | (ch[2] << 8) + | ch[3]; /* 4 bytes */ + if(sizeof(scratch) - (p - scratch) < 6) { + wrote += p - scratch; + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + p = scratch; + } + if(wc < 0x80) { + *p++ = (char)wc; + } else if(wc < 0x800) { + *p++ = 0xc0 | ((wc >> 6)); + *p++ = 0x80 | ((wc & 0x3f)); + } else if(wc < 0x10000) { + *p++ = 0xe0 | ((wc >> 12)); + *p++ = 0x80 | ((wc >> 6) & 0x3f); + *p++ = 0x80 | ((wc & 0x3f)); + } else if(wc < 0x200000) { + *p++ = 0xf0 | ((wc >> 18)); + *p++ = 0x80 | ((wc >> 12) & 0x3f); + *p++ = 0x80 | ((wc >> 6) & 0x3f); + *p++ = 0x80 | ((wc & 0x3f)); + } else if(wc < 0x4000000) { + *p++ = 0xf8 | ((wc >> 24)); + *p++ = 0x80 | ((wc >> 18) & 0x3f); + *p++ = 0x80 | ((wc >> 12) & 0x3f); + *p++ = 0x80 | ((wc >> 6) & 0x3f); + *p++ = 0x80 | ((wc & 0x3f)); + } else { + *p++ = 0xfc | ((wc >> 30) & 0x1); + *p++ = 0x80 | ((wc >> 24) & 0x3f); + *p++ = 0x80 | ((wc >> 18) & 0x3f); + *p++ = 0x80 | ((wc >> 12) & 0x3f); + *p++ = 0x80 | ((wc >> 6) & 0x3f); + *p++ = 0x80 | ((wc & 0x3f)); + } + } + + wrote += p - scratch; + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + + return wrote; +} + +asn_dec_rval_t +UniversalString_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + asn_dec_rval_t rc; + + rc = OCTET_STRING_decode_xer_utf8(opt_codec_ctx, td, sptr, opt_mname, + buf_ptr, size); + if(rc.code == RC_OK) { + /* + * Now we have a whole string in UTF-8 format. + * Convert it into UCS-4. + */ + uint32_t *wcs; + size_t wcs_len; + UTF8String_t *st; +#ifndef WORDS_BIGENDIAN + int little_endian = 1; +#endif + + assert(*sptr); + st = (UTF8String_t *)*sptr; + assert(st->buf); + wcs_len = UTF8String_to_wcs(st, 0, 0); + + wcs = (uint32_t *)MALLOC(4 * (wcs_len + 1)); + if(wcs == 0 || UTF8String_to_wcs(st, wcs, wcs_len) != wcs_len) { + rc.code = RC_FAIL; + rc.consumed = 0; + return rc; + } else { + wcs[wcs_len] = 0; /* nul-terminate */ + } + +#ifndef WORDS_BIGENDIAN + if(*(char *)&little_endian) { + /* Swap byte order in encoding */ + uint32_t *wc = wcs; + uint32_t *wc_end = wcs + wcs_len; + for(; wc < wc_end; wc++) { + /* *wc = htonl(*wc); */ + uint32_t wch = *wc; + *((uint8_t *)wc + 0) = wch >> 24; + *((uint8_t *)wc + 1) = wch >> 16; + *((uint8_t *)wc + 2) = wch >> 8; + *((uint8_t *)wc + 3) = wch; + } + } +#endif /* WORDS_BIGENDIAN */ + + FREEMEM(st->buf); + st->buf = (uint8_t *)wcs; + st->size = 4 * wcs_len; + } + return rc; +} + +asn_enc_rval_t +UniversalString_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const UniversalString_t *st = (const UniversalString_t *)sptr; + asn_enc_rval_t er; + + (void)ilevel; + (void)flags; + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = UniversalString__dump(st, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +int +UniversalString_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + const UniversalString_t *st = (const UniversalString_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(!st || !st->buf) return (cb("", 8, app_key) < 0) ? -1 : 0; + + if(UniversalString__dump(st, cb, app_key) < 0) + return -1; + + return 0; +} + diff --git a/vcits/asn1c/src/VideotexString.c b/vcits/asn1c/src/VideotexString.c new file mode 100644 index 0000000..69417bd --- /dev/null +++ b/vcits/asn1c/src/VideotexString.c @@ -0,0 +1,58 @@ +/*- + * Copyright (c) 2003 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * VideotexString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_VideotexString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (21 << 2)), /* [UNIVERSAL 21] IMPLICIT */ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_VideotexString = { + OCTET_STRING_free, + OCTET_STRING_print, /* non-ascii string */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_hex, + OCTET_STRING_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_VideotexString = { + "VideotexString", + "VideotexString", + &asn_OP_VideotexString, + asn_DEF_VideotexString_tags, + sizeof(asn_DEF_VideotexString_tags) + / sizeof(asn_DEF_VideotexString_tags[0]) - 1, + asn_DEF_VideotexString_tags, + sizeof(asn_DEF_VideotexString_tags) + / sizeof(asn_DEF_VideotexString_tags[0]), + { 0, 0, asn_generic_unknown_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/asn1c/src/VisibleString.c b/vcits/asn1c/src/VisibleString.c new file mode 100644 index 0000000..03fef8b --- /dev/null +++ b/vcits/asn1c/src/VisibleString.c @@ -0,0 +1,99 @@ +/*- + * Copyright (c) 2003, 2006 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * VisibleString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_VisibleString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), /* [UNIVERSAL 26] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +static asn_per_constraints_t asn_DEF_VisibleString_constraints = { + { APC_CONSTRAINED, 7, 7, 0x20, 0x7e }, /* Value */ + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ + 0, 0 +}; +asn_TYPE_operation_t asn_OP_VisibleString = { + OCTET_STRING_free, + OCTET_STRING_print_utf8, /* ASCII subset */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_VisibleString = { + "VisibleString", + "VisibleString", + &asn_OP_VisibleString, + asn_DEF_VisibleString_tags, + sizeof(asn_DEF_VisibleString_tags) + / sizeof(asn_DEF_VisibleString_tags[0]) - 1, + asn_DEF_VisibleString_tags, + sizeof(asn_DEF_VisibleString_tags) + / sizeof(asn_DEF_VisibleString_tags[0]), + { 0, &asn_DEF_VisibleString_constraints, VisibleString_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +int +VisibleString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const VisibleString_t *st = (const VisibleString_t *)sptr; + + if(st && st->buf) { + uint8_t *buf = st->buf; + uint8_t *end = buf + st->size; + + /* + * Check the alphabet of the VisibleString. + * ISO646, ISOReg#6 + * The alphabet is a subset of ASCII between the space + * and "~" (tilde). + */ + for(; buf < end; buf++) { + if(*buf < 0x20 || *buf > 0x7e) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value byte %ld (%d) " + "not in VisibleString alphabet (%s:%d)", + td->name, + (long)((buf - st->buf) + 1), + *buf, + __FILE__, __LINE__); + return -1; + } + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} diff --git a/vcits/asn1c/src/asn_SEQUENCE_OF.c b/vcits/asn1c/src/asn_SEQUENCE_OF.c new file mode 100644 index 0000000..ec952fc --- /dev/null +++ b/vcits/asn1c/src/asn_SEQUENCE_OF.c @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +typedef A_SEQUENCE_OF(void) asn_sequence; + +void +asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free) { + asn_sequence *as = (asn_sequence *)asn_sequence_of_x; + + if(as) { + void *ptr; + int n; + + if(number < 0 || number >= as->count) + return; /* Nothing to delete */ + + if(_do_free && as->free) { + ptr = as->array[number]; + } else { + ptr = 0; + } + + /* + * Shift all elements to the left to hide the gap. + */ + --as->count; + for(n = number; n < as->count; n++) + as->array[n] = as->array[n+1]; + + /* + * Invoke the third-party function only when the state + * of the parent structure is consistent. + */ + if(ptr) as->free(ptr); + } +} + diff --git a/vcits/asn1c/src/asn_SET_OF.c b/vcits/asn1c/src/asn_SET_OF.c new file mode 100644 index 0000000..944f2cb --- /dev/null +++ b/vcits/asn1c/src/asn_SET_OF.c @@ -0,0 +1,88 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Add another element into the set. + */ +int +asn_set_add(void *asn_set_of_x, void *ptr) { + asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); + + if(as == 0 || ptr == 0) { + errno = EINVAL; /* Invalid arguments */ + return -1; + } + + /* + * Make sure there's enough space to insert an element. + */ + if(as->count == as->size) { + int _newsize = as->size ? (as->size << 1) : 4; + void *_new_arr; + _new_arr = REALLOC(as->array, _newsize * sizeof(as->array[0])); + if(_new_arr) { + as->array = (void **)_new_arr; + as->size = _newsize; + } else { + /* ENOMEM */ + return -1; + } + } + + as->array[as->count++] = ptr; + + return 0; +} + +void +asn_set_del(void *asn_set_of_x, int number, int _do_free) { + asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); + + if(as) { + void *ptr; + if(number < 0 || number >= as->count) + return; + + if(_do_free && as->free) { + ptr = as->array[number]; + } else { + ptr = 0; + } + + as->array[number] = as->array[--as->count]; + + /* + * Invoke the third-party function only when the state + * of the parent structure is consistent. + */ + if(ptr) as->free(ptr); + } +} + +/* + * Free the contents of the set, do not free the set itself. + */ +void +asn_set_empty(void *asn_set_of_x) { + asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); + + if(as) { + if(as->array) { + if(as->free) { + while(as->count--) + as->free(as->array[as->count]); + } + FREEMEM(as->array); + as->array = 0; + } + as->count = 0; + as->size = 0; + } + +} + diff --git a/vcits/asn1c/src/asn_application.c b/vcits/asn1c/src/asn_application.c new file mode 100644 index 0000000..a55e14e --- /dev/null +++ b/vcits/asn1c/src/asn_application.c @@ -0,0 +1,481 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +static asn_enc_rval_t asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, + const void *sptr, + asn_app_consume_bytes_f *callback, + void *callback_key); + + +struct callback_count_bytes_key { + asn_app_consume_bytes_f *callback; + void *callback_key; + size_t computed_size; +}; + +/* + * Encoder which just counts bytes that come through it. + */ +static int +callback_count_bytes_cb(const void *data, size_t size, void *keyp) { + struct callback_count_bytes_key *key = keyp; + int ret; + + ret = key->callback(data, size, key->callback_key); + if(ret >= 0) { + key->computed_size += size; + } + + return ret; +} + +struct overrun_encoder_key { + void *buffer; + size_t buffer_size; + size_t computed_size; +}; + +struct dynamic_encoder_key { + void *buffer; + size_t buffer_size; + size_t computed_size; +}; + +struct callback_failure_catch_key { + asn_app_consume_bytes_f *callback; + void *callback_key; + int callback_failed; +}; + +/* + * Encoder which doesn't stop counting bytes + * even if it reaches the end of the buffer. + */ +static int +overrun_encoder_cb(const void *data, size_t size, void *keyp) { + struct overrun_encoder_key *key = keyp; + + if(key->computed_size + size > key->buffer_size) { + /* + * Avoid accident on the next call: + * stop adding bytes to the buffer. + */ + key->buffer_size = 0; + } else { + memcpy((char *)key->buffer + key->computed_size, data, size); + } + key->computed_size += size; + + return 0; +} + +/* + * Encoder which dynamically allocates output, and continues + * to count even if allocation failed. + */ +static int +dynamic_encoder_cb(const void *data, size_t size, void *keyp) { + struct dynamic_encoder_key *key = keyp; + + if(key->buffer) { + if(key->computed_size + size >= key->buffer_size) { + void *p; + size_t new_size = key->buffer_size; + + do { + new_size *= 2; + } while(new_size <= key->computed_size + size); + + p = REALLOC(key->buffer, new_size); + if(p) { + key->buffer = p; + key->buffer_size = new_size; + } else { + FREEMEM(key->buffer); + key->buffer = 0; + key->buffer_size = 0; + key->computed_size += size; + return 0; + } + } + memcpy((char *)key->buffer + key->computed_size, data, size); + } + + key->computed_size += size; + + return 0; +} + +/* + * Encoder which help convert the application level encoder failure into EIO. + */ +static int +callback_failure_catch_cb(const void *data, size_t size, void *keyp) { + struct callback_failure_catch_key *key = keyp; + int ret; + + ret = key->callback(data, size, key->callback_key); + if(ret < 0) { + key->callback_failed = 1; + } + + return ret; +} + +asn_enc_rval_t +asn_encode(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, + const void *sptr, asn_app_consume_bytes_f *callback, void *callback_key) { + struct callback_failure_catch_key cb_key; + asn_enc_rval_t er; + + if(!callback) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + cb_key.callback = callback; + cb_key.callback_key = callback_key; + cb_key.callback_failed = 0; + + er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + callback_failure_catch_cb, &cb_key); + if(cb_key.callback_failed) { + assert(er.encoded == -1); + assert(errno == EBADF); + errno = EIO; + } + + return er; +} + +asn_enc_rval_t +asn_encode_to_buffer(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr, + void *buffer, size_t buffer_size) { + struct overrun_encoder_key buf_key; + asn_enc_rval_t er; + + if(buffer_size > 0 && !buffer) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + buf_key.buffer = buffer; + buf_key.buffer_size = buffer_size; + buf_key.computed_size = 0; + + er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + overrun_encoder_cb, &buf_key); + + if(er.encoded >= 0 && (size_t)er.encoded != buf_key.computed_size) { + ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE + " yet produced %" ASN_PRI_SIZE " bytes", + er.encoded, buf_key.computed_size); + assert(er.encoded < 0 || (size_t)er.encoded == buf_key.computed_size); + } + + return er; +} + +asn_encode_to_new_buffer_result_t +asn_encode_to_new_buffer(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr) { + struct dynamic_encoder_key buf_key; + asn_encode_to_new_buffer_result_t res; + + buf_key.buffer_size = 16; + buf_key.buffer = MALLOC(buf_key.buffer_size); + buf_key.computed_size = 0; + + res.result = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + dynamic_encoder_cb, &buf_key); + + if(res.result.encoded >= 0 + && (size_t)res.result.encoded != buf_key.computed_size) { + ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE + " yet produced %" ASN_PRI_SIZE " bytes", + res.result.encoded, buf_key.computed_size); + assert(res.result.encoded < 0 + || (size_t)res.result.encoded == buf_key.computed_size); + } + + res.buffer = buf_key.buffer; + + /* 0-terminate just in case. */ + if(res.buffer) { + assert(buf_key.computed_size < buf_key.buffer_size); + ((char *)res.buffer)[buf_key.computed_size] = '\0'; + } + + return res; +} + +static asn_enc_rval_t +asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *callback, void *callback_key) { + asn_enc_rval_t er; + enum xer_encoder_flags_e xer_flags = XER_F_CANONICAL; + + (void)opt_codec_ctx; /* Parameters are not checked on encode yet. */ + + if(!td || !sptr) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + switch(syntax) { + case ATS_NONSTANDARD_PLAINTEXT: + if(td->op->print_struct) { + struct callback_count_bytes_key cb_key; + cb_key.callback = callback; + cb_key.callback_key = callback_key; + cb_key.computed_size = 0; + if(td->op->print_struct(td, sptr, 1, callback_count_bytes_cb, + &cb_key) + < 0 + || callback_count_bytes_cb("\n", 1, &cb_key) < 0) { + errno = EBADF; /* Structure has incorrect form. */ + er.encoded = -1; + er.failed_type = td; + er.structure_ptr = sptr; + } else { + er.encoded = cb_key.computed_size; + er.failed_type = 0; + er.structure_ptr = 0; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; + + case ATS_RANDOM: + errno = ENOENT; /* Randomization doesn't make sense on output. */ + ASN__ENCODE_FAILED; + + case ATS_BER: + /* BER is a superset of DER. */ + /* Fall through. */ + case ATS_DER: + if(td->op->der_encoder) { + er = der_encode(td, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->der_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* DER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; + case ATS_CER: + errno = ENOENT; /* Transfer syntax is not defined for any type. */ + ASN__ENCODE_FAILED; + +#ifdef ASN_DISABLE_OER_SUPPORT + case ATS_BASIC_OER: + case ATS_CANONICAL_OER: + errno = ENOENT; /* PER is not defined. */ + ASN__ENCODE_FAILED; + break; +#else /* ASN_DISABLE_OER_SUPPORT */ + case ATS_BASIC_OER: + /* CANONICAL-OER is a superset of BASIC-OER. */ + /* Fall through. */ + case ATS_CANONICAL_OER: + if(td->op->oer_encoder) { + er = oer_encode(td, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->oer_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* OER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#endif /* ASN_DISABLE_OER_SUPPORT */ + +#ifdef ASN_DISABLE_PER_SUPPORT + case ATS_UNALIGNED_BASIC_PER: + case ATS_UNALIGNED_CANONICAL_PER: + case ATS_ALIGNED_BASIC_PER: + case ATS_ALIGNED_CANONICAL_PER: + errno = ENOENT; /* PER is not defined. */ + ASN__ENCODE_FAILED; + break; +#else /* ASN_DISABLE_PER_SUPPORT */ + case ATS_UNALIGNED_BASIC_PER: + /* CANONICAL-UPER is a superset of BASIC-UPER. */ + /* Fall through. */ + case ATS_UNALIGNED_CANONICAL_PER: + if(td->op->uper_encoder) { + er = uper_encode(td, 0, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->uper_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* UPER is not defined for this type. */ + } + } else { + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + if(er.encoded == 0) { + /* Enforce "Complete Encoding" of X.691 #11.1 */ + if(callback("\0", 1, callback_key) < 0) { + errno = EBADF; + ASN__ENCODE_FAILED; + } + er.encoded = 8; /* Exactly 8 zero bits is added. */ + } + /* Convert bits into bytes */ + er.encoded = (er.encoded + 7) >> 3; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; + case ATS_ALIGNED_BASIC_PER: + /* CANONICAL-APER is a superset of BASIC-APER. */ + /* Fall through. */ + case ATS_ALIGNED_CANONICAL_PER: + if(td->op->aper_encoder) { + er = aper_encode(td, 0, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->aper_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* APER is not defined for this type. */ + } + } else { + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + if(er.encoded == 0) { + /* Enforce "Complete Encoding" of X.691 #11.1 */ + if(callback("\0", 1, callback_key) < 0) { + errno = EBADF; + ASN__ENCODE_FAILED; + } + er.encoded = 8; /* Exactly 8 zero bits is added. */ + } + /* Convert bits into bytes */ + er.encoded = (er.encoded + 7) >> 3; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#endif /* ASN_DISABLE_PER_SUPPORT */ + + case ATS_BASIC_XER: + /* CANONICAL-XER is a superset of BASIC-XER. */ + xer_flags &= ~XER_F_CANONICAL; + xer_flags |= XER_F_BASIC; + /* Fall through. */ + case ATS_CANONICAL_XER: + if(td->op->xer_encoder) { + er = xer_encode(td, sptr, xer_flags, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->xer_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* XER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; + + default: + errno = ENOENT; + ASN__ENCODE_FAILED; + } + + return er; +} + +asn_dec_rval_t +asn_decode(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, + void **sptr, const void *buffer, size_t size) { + if(!td || !td->op || !sptr || (size && !buffer)) { + ASN__DECODE_FAILED; + } + + switch(syntax) { + case ATS_CER: + case ATS_NONSTANDARD_PLAINTEXT: + default: + errno = ENOENT; + ASN__DECODE_FAILED; + + case ATS_RANDOM: + if(!td->op->random_fill) { + ASN__DECODE_FAILED; + } else { + if(asn_random_fill(td, sptr, 16000) == 0) { + asn_dec_rval_t ret = {RC_OK, 0}; + return ret; + } else { + ASN__DECODE_FAILED; + } + } + break; + + case ATS_DER: + case ATS_BER: + return ber_decode(opt_codec_ctx, td, sptr, buffer, size); + + case ATS_BASIC_OER: + case ATS_CANONICAL_OER: +#ifdef ASN_DISABLE_OER_SUPPORT + errno = ENOENT; + ASN__DECODE_FAILED; +#else + return oer_decode(opt_codec_ctx, td, sptr, buffer, size); +#endif + + case ATS_UNALIGNED_BASIC_PER: + case ATS_UNALIGNED_CANONICAL_PER: +#ifdef ASN_DISABLE_PER_SUPPORT + errno = ENOENT; + ASN__DECODE_FAILED; +#else + return uper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); +#endif + + case ATS_ALIGNED_BASIC_PER: + case ATS_ALIGNED_CANONICAL_PER: +#ifdef ASN_DISABLE_PER_SUPPORT + errno = ENOENT; + ASN__DECODE_FAILED; +#else + return aper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); +#endif + + case ATS_BASIC_XER: + case ATS_CANONICAL_XER: + return xer_decode(opt_codec_ctx, td, sptr, buffer, size); + } +} + diff --git a/vcits/asn1c/src/asn_bit_data.c b/vcits/asn1c/src/asn_bit_data.c new file mode 100644 index 0000000..fe4b89b --- /dev/null +++ b/vcits/asn1c/src/asn_bit_data.c @@ -0,0 +1,333 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Create a contiguous non-refillable bit data structure. + * Can be freed by FREEMEM(). + */ +asn_bit_data_t * +asn_bit_data_new_contiguous(const void *data, size_t size_bits) { + size_t size_bytes = (size_bits + 7) / 8; + asn_bit_data_t *pd; + uint8_t *bytes; + + /* Get the extensions map */ + pd = CALLOC(1, sizeof(*pd) + size_bytes + 1); + if(!pd) { + return NULL; + } + bytes = (void *)(((char *)pd) + sizeof(*pd)); + memcpy(bytes, data, size_bytes); + bytes[size_bytes] = 0; + pd->buffer = bytes; + pd->nboff = 0; + pd->nbits = size_bits; + + return pd; +} + + +char * +asn_bit_data_string(asn_bit_data_t *pd) { + static char buf[2][32]; + static int n; + n = (n+1) % 2; + snprintf(buf[n], sizeof(buf[n]), + "{m=%" ASN_PRI_SIZE " span %" ASN_PRI_SIZE "[%" ASN_PRI_SIZE + "..%" ASN_PRI_SIZE "] (%" ASN_PRI_SIZE ")}", + pd->moved, ((uintptr_t)(pd->buffer) & 0xf), pd->nboff, pd->nbits, + pd->nbits - pd->nboff); + return buf[n]; +} + +void +asn_get_undo(asn_bit_data_t *pd, int nbits) { + if((ssize_t)pd->nboff < nbits) { + assert((ssize_t)pd->nboff < nbits); + } else { + pd->nboff -= nbits; + pd->moved -= nbits; + } +} + +/* + * Extract a small number of bits (<= 31) from the specified PER data pointer. + */ +int32_t +asn_get_few_bits(asn_bit_data_t *pd, int nbits) { + size_t off; /* Next after last bit offset */ + ssize_t nleft; /* Number of bits left in this stream */ + uint32_t accum; + const uint8_t *buf; + + if(nbits < 0) + return -1; + + nleft = pd->nbits - pd->nboff; + if(nbits > nleft) { + int32_t tailv, vhead; + if(!pd->refill || nbits > 31) return -1; + /* Accumulate unused bytes before refill */ + ASN_DEBUG("Obtain the rest %d bits (want %d)", + (int)nleft, (int)nbits); + tailv = asn_get_few_bits(pd, nleft); + if(tailv < 0) return -1; + /* Refill (replace pd contents with new data) */ + if(pd->refill(pd)) + return -1; + nbits -= nleft; + vhead = asn_get_few_bits(pd, nbits); + /* Combine the rest of previous pd with the head of new one */ + tailv = (tailv << nbits) | vhead; /* Could == -1 */ + return tailv; + } + + /* + * Normalize position indicator. + */ + if(pd->nboff >= 8) { + pd->buffer += (pd->nboff >> 3); + pd->nbits -= (pd->nboff & ~0x07); + pd->nboff &= 0x07; + } + pd->moved += nbits; + pd->nboff += nbits; + off = pd->nboff; + buf = pd->buffer; + + /* + * Extract specified number of bits. + */ + if(off <= 8) + accum = nbits ? (buf[0]) >> (8 - off) : 0; + else if(off <= 16) + accum = ((buf[0] << 8) + buf[1]) >> (16 - off); + else if(off <= 24) + accum = ((buf[0] << 16) + (buf[1] << 8) + buf[2]) >> (24 - off); + else if(off <= 31) + accum = (((uint32_t)buf[0] << 24) + (buf[1] << 16) + + (buf[2] << 8) + (buf[3])) >> (32 - off); + else if(nbits <= 31) { + asn_bit_data_t tpd = *pd; + /* Here are we with our 31-bits limit plus 1..7 bits offset. */ + asn_get_undo(&tpd, nbits); + /* The number of available bits in the stream allow + * for the following operations to take place without + * invoking the ->refill() function */ + accum = asn_get_few_bits(&tpd, nbits - 24) << 24; + accum |= asn_get_few_bits(&tpd, 24); + } else { + asn_get_undo(pd, nbits); + return -1; + } + + accum &= (((uint32_t)1 << nbits) - 1); + + ASN_DEBUG(" [PER got %2d<=%2d bits => span %d %+ld[%d..%d]:%02x (%d) => 0x%x]", + (int)nbits, (int)nleft, + (int)pd->moved, + (((long)pd->buffer) & 0xf), + (int)pd->nboff, (int)pd->nbits, + ((pd->buffer != NULL)?pd->buffer[0]:0), + (int)(pd->nbits - pd->nboff), + (int)accum); + + return accum; +} + +/* + * Extract a large number of bits from the specified PER data pointer. + */ +int +asn_get_many_bits(asn_bit_data_t *pd, uint8_t *dst, int alright, int nbits) { + int32_t value; + + if(alright && (nbits & 7)) { + /* Perform right alignment of a first few bits */ + value = asn_get_few_bits(pd, nbits & 0x07); + if(value < 0) return -1; + *dst++ = value; /* value is already right-aligned */ + nbits &= ~7; + } + + while(nbits) { + if(nbits >= 24) { + value = asn_get_few_bits(pd, 24); + if(value < 0) return -1; + *(dst++) = value >> 16; + *(dst++) = value >> 8; + *(dst++) = value; + nbits -= 24; + } else { + value = asn_get_few_bits(pd, nbits); + if(value < 0) return -1; + if(nbits & 7) { /* implies left alignment */ + value <<= 8 - (nbits & 7), + nbits += 8 - (nbits & 7); + if(nbits > 24) + *dst++ = value >> 24; + } + if(nbits > 16) + *dst++ = value >> 16; + if(nbits > 8) + *dst++ = value >> 8; + *dst++ = value; + break; + } + } + + return 0; +} + +/* + * Put a small number of bits (<= 31). + */ +int +asn_put_few_bits(asn_bit_outp_t *po, uint32_t bits, int obits) { + size_t off; /* Next after last bit offset */ + size_t omsk; /* Existing last byte meaningful bits mask */ + uint8_t *buf; + + if(obits <= 0 || obits >= 32) return obits ? -1 : 0; + + ASN_DEBUG("[PER put %d bits %x to %p+%d bits]", + obits, (int)bits, (void *)po->buffer, (int)po->nboff); + + /* + * Normalize position indicator. + */ + if(po->nboff >= 8) { + po->buffer += (po->nboff >> 3); + po->nbits -= (po->nboff & ~0x07); + po->nboff &= 0x07; + } + + /* + * Flush whole-bytes output, if necessary. + */ + if(po->nboff + obits > po->nbits) { + size_t complete_bytes; + if(!po->buffer) po->buffer = po->tmpspace; + complete_bytes = (po->buffer - po->tmpspace); + ASN_DEBUG("[PER output %ld complete + %ld]", + (long)complete_bytes, (long)po->flushed_bytes); + if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) + return -1; + if(po->nboff) + po->tmpspace[0] = po->buffer[0]; + po->buffer = po->tmpspace; + po->nbits = 8 * sizeof(po->tmpspace); + po->flushed_bytes += complete_bytes; + } + + /* + * Now, due to sizeof(tmpspace), we are guaranteed large enough space. + */ + buf = po->buffer; + omsk = ~((1 << (8 - po->nboff)) - 1); + off = (po->nboff + obits); + + /* Clear data of debris before meaningful bits */ + bits &= (((uint32_t)1 << obits) - 1); + + ASN_DEBUG("[PER out %d %u/%x (t=%d,o=%d) %x&%x=%x]", obits, + (int)bits, (int)bits, + (int)po->nboff, (int)off, + buf[0], (int)(omsk&0xff), + (int)(buf[0] & omsk)); + + if(off <= 8) /* Completely within 1 byte */ + po->nboff = off, + bits <<= (8 - off), + buf[0] = (buf[0] & omsk) | bits; + else if(off <= 16) + po->nboff = off, + bits <<= (16 - off), + buf[0] = (buf[0] & omsk) | (bits >> 8), + buf[1] = bits; + else if(off <= 24) + po->nboff = off, + bits <<= (24 - off), + buf[0] = (buf[0] & omsk) | (bits >> 16), + buf[1] = bits >> 8, + buf[2] = bits; + else if(off <= 31) + po->nboff = off, + bits <<= (32 - off), + buf[0] = (buf[0] & omsk) | (bits >> 24), + buf[1] = bits >> 16, + buf[2] = bits >> 8, + buf[3] = bits; + else { + if(asn_put_few_bits(po, bits >> (obits - 24), 24)) return -1; + if(asn_put_few_bits(po, bits, obits - 24)) return -1; + } + + ASN_DEBUG("[PER out %u/%x => %02x buf+%ld]", + (int)bits, (int)bits, buf[0], + (long)(po->buffer - po->tmpspace)); + + return 0; +} + + +/* + * Output a large number of bits. + */ +int +asn_put_many_bits(asn_bit_outp_t *po, const uint8_t *src, int nbits) { + + while(nbits) { + uint32_t value; + + if(nbits >= 24) { + value = (src[0] << 16) | (src[1] << 8) | src[2]; + src += 3; + nbits -= 24; + if(asn_put_few_bits(po, value, 24)) + return -1; + } else { + value = src[0]; + if(nbits > 8) + value = (value << 8) | src[1]; + if(nbits > 16) + value = (value << 8) | src[2]; + if(nbits & 0x07) + value >>= (8 - (nbits & 0x07)); + if(asn_put_few_bits(po, value, nbits)) + return -1; + break; + } + } + + return 0; +} + + +int +asn_put_aligned_flush(asn_bit_outp_t *po) { + uint32_t unused_bits = (0x7 & (8 - (po->nboff & 0x07))); + size_t complete_bytes = + (po->buffer ? po->buffer - po->tmpspace : 0) + ((po->nboff + 7) >> 3); + + if(unused_bits) { + po->buffer[po->nboff >> 3] &= ~0u << unused_bits; + } + + if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) { + return -1; + } else { + po->buffer = po->tmpspace; + po->nboff = 0; + po->nbits = 8 * sizeof(po->tmpspace); + po->flushed_bytes += complete_bytes; + return 0; + } +} + diff --git a/vcits/asn1c/src/asn_codecs_prim.c b/vcits/asn1c/src/asn_codecs_prim.c new file mode 100644 index 0000000..78448a8 --- /dev/null +++ b/vcits/asn1c/src/asn_codecs_prim.c @@ -0,0 +1,317 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Decode an always-primitive type. + */ +asn_dec_rval_t +ber_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buf_ptr, size_t size, int tag_mode) { + ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; + asn_dec_rval_t rval; + ber_tlv_len_t length = 0; /* =0 to avoid [incorrect] warning. */ + + /* + * If the structure is not there, allocate it. + */ + if(st == NULL) { + st = (ASN__PRIMITIVE_TYPE_t *)CALLOC(1, sizeof(*st)); + if(st == NULL) ASN__DECODE_FAILED; + *sptr = (void *)st; + } + + ASN_DEBUG("Decoding %s as plain primitive (tm=%d)", + td->name, tag_mode); + + /* + * Check tags and extract value length. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, + tag_mode, 0, &length, 0); + if(rval.code != RC_OK) + return rval; + + ASN_DEBUG("%s length is %d bytes", td->name, (int)length); + + /* + * Make sure we have this length. + */ + buf_ptr = ((const char *)buf_ptr) + rval.consumed; + size -= rval.consumed; + if(length > (ber_tlv_len_t)size) { + rval.code = RC_WMORE; + rval.consumed = 0; + return rval; + } + + st->size = (int)length; + /* The following better be optimized away. */ + if(sizeof(st->size) != sizeof(length) + && (ber_tlv_len_t)st->size != length) { + st->size = 0; + ASN__DECODE_FAILED; + } + + st->buf = (uint8_t *)MALLOC(length + 1); + if(!st->buf) { + st->size = 0; + ASN__DECODE_FAILED; + } + + memcpy(st->buf, buf_ptr, length); + st->buf[length] = '\0'; /* Just in case */ + + rval.code = RC_OK; + rval.consumed += length; + + ASN_DEBUG("Took %ld/%ld bytes to encode %s", + (long)rval.consumed, + (long)length, td->name); + + return rval; +} + +/* + * Encode an always-primitive type using DER. + */ +asn_enc_rval_t +der_encode_primitive(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t erval; + const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; + + ASN_DEBUG("%s %s as a primitive type (tm=%d)", + cb?"Encoding":"Estimating", td->name, tag_mode); + + erval.encoded = der_write_tags(td, st->size, tag_mode, 0, tag, + cb, app_key); + ASN_DEBUG("%s wrote tags %d", td->name, (int)erval.encoded); + if(erval.encoded == -1) { + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + + if(cb && st->buf) { + if(cb(st->buf, st->size, app_key) < 0) { + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + } else { + assert(st->buf || st->size == 0); + } + + erval.encoded += st->size; + ASN__ENCODED_OK(erval); +} + +void +ASN__PRIMITIVE_TYPE_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)sptr; + + if(!td || !sptr) + return; + + ASN_DEBUG("Freeing %s as a primitive type", td->name); + + if(st->buf) + FREEMEM(st->buf); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(sptr, 0, sizeof(ASN__PRIMITIVE_TYPE_t)); + break; + } +} + + +/* + * Local internal type passed around as an argument. + */ +struct xdp_arg_s { + const asn_TYPE_descriptor_t *type_descriptor; + void *struct_key; + xer_primitive_body_decoder_f *prim_body_decoder; + int decoded_something; + int want_more; +}; + +/* + * Since some kinds of primitive values can be encoded using value-specific + * tags (, , etc), the primitive decoder must + * be supplied with such tags to parse them as needed. + */ +static int +xer_decode__unexpected_tag(void *key, const void *chunk_buf, size_t chunk_size) { + struct xdp_arg_s *arg = (struct xdp_arg_s *)key; + enum xer_pbd_rval bret; + + /* + * The chunk_buf is guaranteed to start at '<'. + */ + assert(chunk_size && ((const char *)chunk_buf)[0] == 0x3c); + + /* + * Decoding was performed once already. Prohibit doing it again. + */ + if(arg->decoded_something) + return -1; + + bret = arg->prim_body_decoder(arg->type_descriptor, + arg->struct_key, chunk_buf, chunk_size); + switch(bret) { + case XPBD_SYSTEM_FAILURE: + case XPBD_DECODER_LIMIT: + case XPBD_BROKEN_ENCODING: + break; + case XPBD_BODY_CONSUMED: + /* Tag decoded successfully */ + arg->decoded_something = 1; + /* Fall through */ + case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ + return 0; + } + + return -1; +} + +static ssize_t +xer_decode__primitive_body(void *key, const void *chunk_buf, size_t chunk_size, int have_more) { + struct xdp_arg_s *arg = (struct xdp_arg_s *)key; + enum xer_pbd_rval bret; + size_t lead_wsp_size; + + if(arg->decoded_something) { + if(xer_whitespace_span(chunk_buf, chunk_size) == chunk_size) { + /* + * Example: + * "123 " + * ^- chunk_buf position. + */ + return chunk_size; + } + /* + * Decoding was done once already. Prohibit doing it again. + */ + return -1; + } + + if(!have_more) { + /* + * If we've received something like "1", we can't really + * tell whether it is really `1` or `123`, until we know + * that there is no more data coming. + * The have_more argument will be set to 1 once something + * like this is available to the caller of this callback: + * "1want_more = 1; + return -1; + } + + lead_wsp_size = xer_whitespace_span(chunk_buf, chunk_size); + chunk_buf = (const char *)chunk_buf + lead_wsp_size; + chunk_size -= lead_wsp_size; + + bret = arg->prim_body_decoder(arg->type_descriptor, + arg->struct_key, chunk_buf, chunk_size); + switch(bret) { + case XPBD_SYSTEM_FAILURE: + case XPBD_DECODER_LIMIT: + case XPBD_BROKEN_ENCODING: + break; + case XPBD_BODY_CONSUMED: + /* Tag decoded successfully */ + arg->decoded_something = 1; + /* Fall through */ + case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ + return lead_wsp_size + chunk_size; + } + + return -1; +} + + +asn_dec_rval_t +xer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + size_t struct_size, const char *opt_mname, + const void *buf_ptr, size_t size, + xer_primitive_body_decoder_f *prim_body_decoder) { + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + asn_struct_ctx_t s_ctx; + struct xdp_arg_s s_arg; + asn_dec_rval_t rc; + + /* + * Create the structure if does not exist. + */ + if(!*sptr) { + *sptr = CALLOC(1, struct_size); + if(!*sptr) ASN__DECODE_FAILED; + } + + memset(&s_ctx, 0, sizeof(s_ctx)); + s_arg.type_descriptor = td; + s_arg.struct_key = *sptr; + s_arg.prim_body_decoder = prim_body_decoder; + s_arg.decoded_something = 0; + s_arg.want_more = 0; + + rc = xer_decode_general(opt_codec_ctx, &s_ctx, &s_arg, + xml_tag, buf_ptr, size, + xer_decode__unexpected_tag, xer_decode__primitive_body); + switch(rc.code) { + case RC_OK: + if(!s_arg.decoded_something) { + char ch; + ASN_DEBUG("Primitive body is not recognized, " + "supplying empty one"); + /* + * Decoding opportunity has come and gone. + * Where's the result? + * Try to feed with empty body, see if it eats it. + */ + if(prim_body_decoder(s_arg.type_descriptor, + s_arg.struct_key, &ch, 0) + != XPBD_BODY_CONSUMED) { + /* + * This decoder does not like empty stuff. + */ + ASN__DECODE_FAILED; + } + } + break; + case RC_WMORE: + /* + * Redo the whole thing later. + * We don't have a context to save intermediate parsing state. + */ + rc.consumed = 0; + break; + case RC_FAIL: + rc.consumed = 0; + if(s_arg.want_more) + rc.code = RC_WMORE; + else + ASN__DECODE_FAILED; + break; + } + return rc; +} + diff --git a/vcits/asn1c/src/asn_internal.c b/vcits/asn1c/src/asn_internal.c new file mode 100644 index 0000000..c2a8108 --- /dev/null +++ b/vcits/asn1c/src/asn_internal.c @@ -0,0 +1,48 @@ +#include + +ssize_t +asn__format_to_callback(int (*cb)(const void *, size_t, void *key), void *key, + const char *fmt, ...) { + char scratch[64]; + char *buf = scratch; + size_t buf_size = sizeof(scratch); + int wrote; + int cb_ret; + + do { + va_list args; + va_start(args, fmt); + + wrote = vsnprintf(buf, buf_size, fmt, args); + va_end(args); + if(wrote < (ssize_t)buf_size) { + if(wrote < 0) { + if(buf != scratch) FREEMEM(buf); + return -1; + } + break; + } + + buf_size <<= 1; + if(buf == scratch) { + buf = MALLOC(buf_size); + if(!buf) return -1; + } else { + void *p = REALLOC(buf, buf_size); + if(!p) { + FREEMEM(buf); + return -1; + } + buf = p; + } + } while(1); + + cb_ret = cb(buf, wrote, key); + if(buf != scratch) FREEMEM(buf); + if(cb_ret < 0) { + return -1; + } + + return wrote; +} + diff --git a/vcits/asn1c/src/asn_random_fill.c b/vcits/asn1c/src/asn_random_fill.c new file mode 100644 index 0000000..819cf70 --- /dev/null +++ b/vcits/asn1c/src/asn_random_fill.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +int +asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, + size_t length) { + + if(td && td->op->random_fill) { + asn_random_fill_result_t res = + td->op->random_fill(td, struct_ptr, 0, length); + return (res.code == ARFILL_OK) ? 0 : -1; + } else { + return -1; + } +} + +static uintmax_t +asn__intmax_range(intmax_t lb, intmax_t ub) { + assert(lb <= ub); + if((ub < 0) == (lb < 0)) { + return ub - lb; + } else if(lb < 0) { + return 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); + } else { + assert(!"Unreachable"); + return 0; + } +} + +intmax_t +asn_random_between(intmax_t lb, intmax_t rb) { + if(lb == rb) { + return lb; + } else { + const uintmax_t intmax_max = ((~(uintmax_t)0) >> 1); + uintmax_t range = asn__intmax_range(lb, rb); + uintmax_t value = 0; + uintmax_t got_entropy = 0; + + assert(RAND_MAX > 0xffffff); /* Seen 7ffffffd! */ + assert(range < intmax_max); + + for(; got_entropy < range;) { + got_entropy = (got_entropy << 24) | 0xffffff; + value = (value << 24) | (random() % 0xffffff); + } + + return lb + (intmax_t)(value % (range + 1)); + } +} diff --git a/vcits/asn1c/src/ber_decoder.c b/vcits/asn1c/src/ber_decoder.c new file mode 100644 index 0000000..75d6016 --- /dev/null +++ b/vcits/asn1c/src/ber_decoder.c @@ -0,0 +1,283 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include + +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) +#undef RETURN +#define RETURN(_code) do { \ + asn_dec_rval_t rval; \ + rval.code = _code; \ + if(opt_ctx) opt_ctx->step = step; /* Save context */ \ + if(_code == RC_OK || opt_ctx) \ + rval.consumed = consumed_myself; \ + else \ + rval.consumed = 0; /* Context-free */ \ + return rval; \ + } while(0) + +/* + * The BER decoder of any type. + */ +asn_dec_rval_t +ber_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, + const void *ptr, size_t size) { + asn_codec_ctx_t s_codec_ctx; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* + * Invoke type-specific decoder. + */ + return type_descriptor->op->ber_decoder(opt_codec_ctx, type_descriptor, + struct_ptr, /* Pointer to the destination structure */ + ptr, size, /* Buffer and its size */ + 0 /* Default tag mode is 0 */ + ); +} + +/* + * Check the set of >> tags matches the definition. + */ +asn_dec_rval_t +ber_check_tags(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, asn_struct_ctx_t *opt_ctx, + const void *ptr, size_t size, int tag_mode, int last_tag_form, + ber_tlv_len_t *last_length, int *opt_tlv_form) { + ssize_t consumed_myself = 0; + ssize_t tag_len; + ssize_t len_len; + ber_tlv_tag_t tlv_tag; + ber_tlv_len_t tlv_len; + ber_tlv_len_t limit_len = -1; + int expect_00_terminators = 0; + int tlv_constr = -1; /* If CHOICE, opt_tlv_form is not given */ + int step = opt_ctx ? opt_ctx->step : 0; /* Where we left previously */ + int tagno; + + /* + * Make sure we didn't exceed the maximum stack size. + */ + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + RETURN(RC_FAIL); + + /* + * So what does all this implicit skip stuff mean? + * Imagine two types, + * A ::= [5] IMPLICIT T + * B ::= [2] EXPLICIT T + * Where T is defined as + * T ::= [4] IMPLICIT SEQUENCE { ... } + * + * Let's say, we are starting to decode type A, given the + * following TLV stream: <5> <0>. What does this mean? + * It means that the type A contains type T which is, + * in turn, empty. + * Remember though, that we are still in A. We cannot + * just pass control to the type T decoder. Why? Because + * the type T decoder expects <4> <0>, not <5> <0>. + * So, we must make sure we are going to receive <5> while + * still in A, then pass control to the T decoder, indicating + * that the tag <4> was implicitly skipped. The decoder of T + * hence will be prepared to treat <4> as valid tag, and decode + * it appropriately. + */ + + tagno = step /* Continuing where left previously */ + + (tag_mode==1?-1:0) + ; + ASN_DEBUG("ber_check_tags(%s, size=%ld, tm=%d, step=%d, tagno=%d)", + td->name, (long)size, tag_mode, step, tagno); + /* assert(td->tags_count >= 1) May not be the case for CHOICE or ANY */ + + if(tag_mode == 0 && tagno == (int)td->tags_count) { + /* + * This must be the _untagged_ ANY type, + * which outermost tag isn't known in advance. + * Fetch the tag and length separately. + */ + tag_len = ber_fetch_tag(ptr, size, &tlv_tag); + switch(tag_len) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + tlv_constr = BER_TLV_CONSTRUCTED(ptr); + len_len = ber_fetch_length(tlv_constr, + (const char *)ptr + tag_len, size - tag_len, &tlv_len); + switch(len_len) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + ASN_DEBUG("Advancing %ld in ANY case", + (long)(tag_len + len_len)); + ADVANCE(tag_len + len_len); + } else { + assert(tagno < (int)td->tags_count); /* At least one loop */ + } + for((void)tagno; tagno < (int)td->tags_count; tagno++, step++) { + + /* + * Fetch and process T from TLV. + */ + tag_len = ber_fetch_tag(ptr, size, &tlv_tag); + ASN_DEBUG("Fetching tag from {%p,%ld}: " + "len %ld, step %d, tagno %d got %s", + ptr, (long)size, + (long)tag_len, step, tagno, + ber_tlv_tag_string(tlv_tag)); + switch(tag_len) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + + tlv_constr = BER_TLV_CONSTRUCTED(ptr); + + /* + * If {I}, don't check anything. + * If {I,B,C}, check B and C unless we're at I. + */ + if(tag_mode != 0 && step == 0) { + /* + * We don't expect tag to match here. + * It's just because we don't know how the tag + * is supposed to look like. + */ + } else { + assert(tagno >= 0); /* Guaranteed by the code above */ + if(tlv_tag != td->tags[tagno]) { + /* + * Unexpected tag. Too bad. + */ + ASN_DEBUG("Expected: %s, " + "expectation failed (tn=%d, tm=%d)", + ber_tlv_tag_string(td->tags[tagno]), + tagno, tag_mode + ); + RETURN(RC_FAIL); + } + } + + /* + * Attention: if there are more tags expected, + * ensure that the current tag is presented + * in constructed form (it contains other tags!). + * If this one is the last one, check that the tag form + * matches the one given in descriptor. + */ + if(tagno < ((int)td->tags_count - 1)) { + if(tlv_constr == 0) { + ASN_DEBUG("tlv_constr = %d, expfail", + tlv_constr); + RETURN(RC_FAIL); + } + } else { + if(last_tag_form != tlv_constr + && last_tag_form != -1) { + ASN_DEBUG("last_tag_form %d != %d", + last_tag_form, tlv_constr); + RETURN(RC_FAIL); + } + } + + /* + * Fetch and process L from TLV. + */ + len_len = ber_fetch_length(tlv_constr, + (const char *)ptr + tag_len, size - tag_len, &tlv_len); + ASN_DEBUG("Fetching len = %ld", (long)len_len); + switch(len_len) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + + /* + * FIXME + * As of today, the chain of tags + * must either contain several indefinite length TLVs, + * or several definite length ones. + * No mixing is allowed. + */ + if(tlv_len == -1) { + /* + * Indefinite length. + */ + if(limit_len == -1) { + expect_00_terminators++; + } else { + ASN_DEBUG("Unexpected indefinite length " + "in a chain of definite lengths"); + RETURN(RC_FAIL); + } + ADVANCE(tag_len + len_len); + continue; + } else { + if(expect_00_terminators) { + ASN_DEBUG("Unexpected definite length " + "in a chain of indefinite lengths"); + RETURN(RC_FAIL); + } + } + + /* + * Check that multiple TLVs specify ever decreasing length, + * which is consistent. + */ + if(limit_len == -1) { + limit_len = tlv_len + tag_len + len_len; + if(limit_len < 0) { + /* Too great tlv_len value? */ + RETURN(RC_FAIL); + } + } else if(limit_len != tlv_len + tag_len + len_len) { + /* + * Inner TLV specifies length which is inconsistent + * with the outer TLV's length value. + */ + ASN_DEBUG("Outer TLV is %ld and inner is %ld", + (long)limit_len, (long)tlv_len); + RETURN(RC_FAIL); + } + + ADVANCE(tag_len + len_len); + + limit_len -= (tag_len + len_len); + if((ssize_t)size > limit_len) { + /* + * Make sure that we won't consume more bytes + * from the parent frame than the inferred limit. + */ + size = limit_len; + } + } + + if(opt_tlv_form) + *opt_tlv_form = tlv_constr; + if(expect_00_terminators) + *last_length = -expect_00_terminators; + else + *last_length = tlv_len; + + RETURN(RC_OK); +} diff --git a/vcits/asn1c/src/ber_tlv_length.c b/vcits/asn1c/src/ber_tlv_length.c new file mode 100644 index 0000000..0a0deec --- /dev/null +++ b/vcits/asn1c/src/ber_tlv_length.c @@ -0,0 +1,168 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +ssize_t +ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, + ber_tlv_len_t *len_r) { + const uint8_t *buf = (const uint8_t *)bufptr; + unsigned oct; + + if(size == 0) + return 0; /* Want more */ + + oct = *(const uint8_t *)buf; + if((oct & 0x80) == 0) { + /* + * Short definite length. + */ + *len_r = oct; /* & 0x7F */ + return 1; + } else { + ber_tlv_len_t len; + size_t skipped; + + if(_is_constructed && oct == 0x80) { + *len_r = -1; /* Indefinite length */ + return 1; + } + + if(oct == 0xff) { + /* Reserved in standard for future use. */ + return -1; + } + + oct &= 0x7F; /* Leave only the 7 LS bits */ + for(len = 0, buf++, skipped = 1; + oct && (++skipped <= size); buf++, oct--) { + + /* Verify that we won't overflow. */ + if(!(len >> ((8 * sizeof(len)) - (8+1)))) { + len = (len << 8) | *buf; + } else { + /* Too large length value. */ + return -1; + } + } + + if(oct == 0) { + if(len < 0 || len > RSSIZE_MAX) { + /* Length value out of sane range. */ + return -1; + } + + *len_r = len; + return skipped; + } + + return 0; /* Want more */ + } + +} + +ssize_t +ber_skip_length(const asn_codec_ctx_t *opt_codec_ctx, + int _is_constructed, const void *ptr, size_t size) { + ber_tlv_len_t vlen; /* Length of V in TLV */ + ssize_t tl; /* Length of L in TLV */ + ssize_t ll; /* Length of L in TLV */ + size_t skip; + + /* + * Make sure we didn't exceed the maximum stack size. + */ + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + return -1; + + /* + * Determine the size of L in TLV. + */ + ll = ber_fetch_length(_is_constructed, ptr, size, &vlen); + if(ll <= 0) return ll; + + /* + * Definite length. + */ + if(vlen >= 0) { + skip = ll + vlen; + if(skip > size) + return 0; /* Want more */ + return skip; + } + + /* + * Indefinite length! + */ + ASN_DEBUG("Skipping indefinite length"); + for(skip = ll, ptr = ((const char *)ptr) + ll, size -= ll;;) { + ber_tlv_tag_t tag; + + /* Fetch the tag */ + tl = ber_fetch_tag(ptr, size, &tag); + if(tl <= 0) return tl; + + ll = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + ((const char *)ptr) + tl, size - tl); + if(ll <= 0) return ll; + + skip += tl + ll; + + /* + * This may be the end of the indefinite length structure, + * two consecutive 0 octets. + * Check if it is true. + */ + if(((const uint8_t *)ptr)[0] == 0 + && ((const uint8_t *)ptr)[1] == 0) + return skip; + + ptr = ((const char *)ptr) + tl + ll; + size -= tl + ll; + } + + /* UNREACHABLE */ +} + +size_t +der_tlv_length_serialize(ber_tlv_len_t len, void *bufp, size_t size) { + size_t required_size; /* Size of len encoding */ + uint8_t *buf = (uint8_t *)bufp; + uint8_t *end; + int i; + + if(len <= 127) { + /* Encoded in 1 octet */ + if(size) *buf = (uint8_t)len; + return 1; + } + + /* + * Compute the size of the subsequent bytes. + */ + for(required_size = 1, i = 8; i < 8 * (int)sizeof(len); i += 8) { + if(len >> i) + required_size++; + else + break; + } + + if(size <= required_size) + return required_size + 1; + + *buf++ = (uint8_t)(0x80 | required_size); /* Length of the encoding */ + + /* + * Produce the len encoding, space permitting. + */ + end = buf + required_size; + for(i -= 8; buf < end; i -= 8, buf++) + *buf = (uint8_t)(len >> i); + + return required_size + 1; +} + diff --git a/vcits/asn1c/src/ber_tlv_tag.c b/vcits/asn1c/src/ber_tlv_tag.c new file mode 100644 index 0000000..4a7d732 --- /dev/null +++ b/vcits/asn1c/src/ber_tlv_tag.c @@ -0,0 +1,144 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +ssize_t +ber_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { + ber_tlv_tag_t val; + ber_tlv_tag_t tclass; + size_t skipped; + + if(size == 0) + return 0; + + val = *(const uint8_t *)ptr; + tclass = (val >> 6); + if((val &= 0x1F) != 0x1F) { + /* + * Simple form: everything encoded in a single octet. + * Tag Class is encoded using two least significant bits. + */ + *tag_r = (val << 2) | tclass; + return 1; + } + + /* + * Each octet contains 7 bits of useful information. + * The MSB is 0 if it is the last octet of the tag. + */ + for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; + skipped <= size; + ptr = ((const char *)ptr) + 1, skipped++) { + unsigned int oct = *(const uint8_t *)ptr; + if(oct & 0x80) { + val = (val << 7) | (oct & 0x7F); + /* + * Make sure there are at least 9 bits spare + * at the MS side of a value. + */ + if(val >> ((8 * sizeof(val)) - 9)) { + /* + * We would not be able to accomodate + * any more tag bits. + */ + return -1; + } + } else { + val = (val << 7) | oct; + *tag_r = (val << 2) | tclass; + return skipped; + } + } + + return 0; /* Want more */ +} + + +ssize_t +ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) { + char buf[sizeof("[APPLICATION ]") + 32]; + ssize_t ret; + + ret = ber_tlv_tag_snprint(tag, buf, sizeof(buf)); + if(ret >= (ssize_t)sizeof(buf) || ret < 2) { + errno = EPERM; + return -1; + } + + return fwrite(buf, 1, ret, f); +} + +ssize_t +ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t size) { + const char *type = 0; + int ret; + + switch(tag & 0x3) { + case ASN_TAG_CLASS_UNIVERSAL: type = "UNIVERSAL "; break; + case ASN_TAG_CLASS_APPLICATION: type = "APPLICATION "; break; + case ASN_TAG_CLASS_CONTEXT: type = ""; break; + case ASN_TAG_CLASS_PRIVATE: type = "PRIVATE "; break; + } + + ret = snprintf(buf, size, "[%s%u]", type, ((unsigned)tag) >> 2); + if(ret <= 0 && size) buf[0] = '\0'; /* against broken libc's */ + + return ret; +} + +char * +ber_tlv_tag_string(ber_tlv_tag_t tag) { + static char buf[sizeof("[APPLICATION ]") + 32]; + + (void)ber_tlv_tag_snprint(tag, buf, sizeof(buf)); + + return buf; +} + + +size_t +ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufp, size_t size) { + int tclass = BER_TAG_CLASS(tag); + ber_tlv_tag_t tval = BER_TAG_VALUE(tag); + uint8_t *buf = (uint8_t *)bufp; + uint8_t *end; + size_t required_size; + size_t i; + + if(tval <= 30) { + /* Encoded in 1 octet */ + if(size) buf[0] = (tclass << 6) | tval; + return 1; + } else if(size) { + *buf++ = (tclass << 6) | 0x1F; + size--; + } + + /* + * Compute the size of the subsequent bytes. + */ + for(required_size = 1, i = 7; i < 8 * sizeof(tval); i += 7) { + if(tval >> i) + required_size++; + else + break; + } + + if(size < required_size) + return required_size + 1; + + /* + * Fill in the buffer, space permitting. + */ + end = buf + required_size - 1; + for(i -= 7; buf < end; i -= 7, buf++) + *buf = 0x80 | ((tval >> i) & 0x7F); + *buf = (tval & 0x7F); /* Last octet without high bit */ + + return required_size + 1; +} + diff --git a/vcits/asn1c/src/constr_CHOICE.c b/vcits/asn1c/src/constr_CHOICE.c new file mode 100644 index 0000000..402b6be --- /dev/null +++ b/vcits/asn1c/src/constr_CHOICE.c @@ -0,0 +1,1509 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Number of bytes left for this structure. + * (ctx->left) indicates the number of bytes _transferred_ for the structure. + * (size) contains the number of bytes in the buffer passed. + */ +#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) + +/* + * If the subprocessor function returns with an indication that it wants + * more data, it may well be a fatal decoding problem, because the + * size is constrained by the 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * The TLV length clearly indicates that one byte is expected in V, but + * if the V processor returns with "want more data" even if the buffer + * contains way more data than the V processor have seen. + */ +#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num;\ + size -= num; \ + if(ctx->left >= 0) \ + ctx->left -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) do { \ + rval.code = _code; \ + rval.consumed = consumed_myself;\ + return rval; \ + } while(0) + +/* + * See the definitions. + */ +static unsigned _fetch_present_idx(const void *struct_ptr, unsigned off, + unsigned size); +static void _set_present_idx(void *sptr, unsigned offset, unsigned size, + unsigned pres); +static const void *_get_member_ptr(const asn_TYPE_descriptor_t *, + const void *sptr, asn_TYPE_member_t **elm, + unsigned *present); + +/* + * Tags are canonically sorted in the tag to member table. + */ +static int +_search4tag(const void *ap, const void *bp) { + const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; + const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; + + int a_class = BER_TAG_CLASS(a->el_tag); + int b_class = BER_TAG_CLASS(b->el_tag); + + if(a_class == b_class) { + ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); + ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); + + if(a_value == b_value) + return 0; + else if(a_value < b_value) + return -1; + else + return 1; + } else if(a_class < b_class) { + return -1; + } else { + return 1; + } +} + +/* + * The decoder of the CHOICE type. + */ +asn_dec_rval_t +CHOICE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *ptr, size_t size, int tag_mode) { + /* + * Bring closer parts of structure description. + */ + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elements = td->elements; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ber_tlv_tag_t tlv_tag; /* T from TLV */ + ssize_t tag_len; /* Length of TLV's T */ + asn_dec_rval_t rval; /* Return code from subparsers */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + + ASN_DEBUG("Decoding %s as CHOICE", td->name); + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously + */ + switch(ctx->phase) { + case 0: + /* + * PHASE 0. + * Check that the set of tags associated with given structure + * perfectly fits our expectations. + */ + + if(tag_mode || td->tags_count) { + rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, + tag_mode, -1, &ctx->left, 0); + if(rval.code != RC_OK) { + ASN_DEBUG("%s tagging check failed: %d", + td->name, rval.code); + return rval; + } + + if(ctx->left >= 0) { + /* ?Substracted below! */ + ctx->left += rval.consumed; + } + ADVANCE(rval.consumed); + } else { + ctx->left = -1; + } + + NEXT_PHASE(ctx); + + ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", + (long)ctx->left, (long)size); + + /* Fall through */ + case 1: + /* + * Fetch the T from TLV. + */ + tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); + ASN_DEBUG("In %s CHOICE tag length %d", td->name, (int)tag_len); + switch(tag_len) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + do { + const asn_TYPE_tag2member_t *t2m; + asn_TYPE_tag2member_t key; + + key.el_tag = tlv_tag; + t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, + specs->tag2el, specs->tag2el_count, + sizeof(specs->tag2el[0]), _search4tag); + if(t2m) { + /* + * Found the element corresponding to the tag. + */ + NEXT_PHASE(ctx); + ctx->step = t2m->el_no; + break; + } else if(specs->ext_start == -1) { + ASN_DEBUG("Unexpected tag %s " + "in non-extensible CHOICE %s", + ber_tlv_tag_string(tlv_tag), td->name); + RETURN(RC_FAIL); + } else { + /* Skip this tag */ + ssize_t skip; + + ASN_DEBUG("Skipping unknown tag %s", + ber_tlv_tag_string(tlv_tag)); + + skip = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + (const char *)ptr + tag_len, + LEFT - tag_len); + + switch(skip) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + ADVANCE(skip + tag_len); + RETURN(RC_OK); + } + } while(0); + + case 2: + /* + * PHASE 2. + * Read in the element. + */ + do { + asn_TYPE_member_t *elm;/* CHOICE's element */ + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + elm = &elements[ctx->step]; + + /* + * Compute the position of the member inside a structure, + * and also a type of containment (it may be contained + * as pointer or using inline inclusion). + */ + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + /* + * A pointer to a pointer + * holding the start of the structure + */ + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + /* Set presence to be able to free it properly at any time */ + _set_present_idx(st, specs->pres_offset, + specs->pres_size, ctx->step + 1); + /* + * Invoke the member fetch routine according to member's type + */ + rval = elm->type->op->ber_decoder(opt_codec_ctx, elm->type, + memb_ptr2, ptr, LEFT, elm->tag_mode); + switch(rval.code) { + case RC_OK: + break; + case RC_WMORE: /* More data expected */ + if(!SIZE_VIOLATION) { + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + } + RETURN(RC_FAIL); + case RC_FAIL: /* Fatal error */ + RETURN(rval.code); + } /* switch(rval) */ + + ADVANCE(rval.consumed); + } while(0); + + NEXT_PHASE(ctx); + + /* Fall through */ + case 3: + ASN_DEBUG("CHOICE %s Leftover: %ld, size = %ld, tm=%d, tc=%d", + td->name, (long)ctx->left, (long)size, + tag_mode, td->tags_count); + + if(ctx->left > 0) { + /* + * The type must be fully decoded + * by the CHOICE member-specific decoder. + */ + RETURN(RC_FAIL); + } + + if(ctx->left == -1 + && !(tag_mode || td->tags_count)) { + /* + * This is an untagged CHOICE. + * It doesn't contain nothing + * except for the member itself, including all its tags. + * The decoding is completed. + */ + NEXT_PHASE(ctx); + break; + } + + /* + * Read in the "end of data chunks"'s. + */ + while(ctx->left < 0) { + ssize_t tl; + + tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); + switch(tl) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + /* + * Expected <0><0>... + */ + if(((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) + RETURN(RC_FAIL); + else + RETURN(RC_WMORE); + } else if(((const uint8_t *)ptr)[1] == 0) { + /* + * Correctly finished with <0><0>. + */ + ADVANCE(2); + ctx->left++; + continue; + } + } else { + ASN_DEBUG("Unexpected continuation in %s", + td->name); + RETURN(RC_FAIL); + } + + /* UNREACHABLE */ + } + + NEXT_PHASE(ctx); + case 4: + /* No meaningful work here */ + break; + } + + RETURN(RC_OK); +} + +asn_enc_rval_t +CHOICE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elm; /* CHOICE element */ + asn_enc_rval_t erval; + const void *memb_ptr; + size_t computed_size = 0; + unsigned present; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("%s %s as CHOICE", + cb?"Encoding":"Estimating", td->name); + + present = _fetch_present_idx(sptr, + specs->pres_offset, specs->pres_size); + + /* + * If the structure was not initialized, it cannot be encoded: + * can't deduce what to encode in the choice type. + */ + if(present == 0 || present > td->elements_count) { + if(present == 0 && td->elements_count == 0) { + /* The CHOICE is empty?! */ + erval.encoded = 0; + ASN__ENCODED_OK(erval); + } + ASN__ENCODE_FAILED; + } + + /* + * Seek over the present member of the structure. + */ + elm = &td->elements[present-1]; + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(memb_ptr == 0) { + if(elm->optional) { + erval.encoded = 0; + ASN__ENCODED_OK(erval); + } + /* Mandatory element absent */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + /* + * If the CHOICE itself is tagged EXPLICIT: + * T ::= [2] EXPLICIT CHOICE { ... } + * Then emit the appropriate tags. + */ + if(tag_mode == 1 || td->tags_count) { + /* + * For this, we need to pre-compute the member. + */ + ssize_t ret; + + /* Encode member with its tag */ + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + elm->tag_mode, elm->tag, 0, 0); + if(erval.encoded == -1) + return erval; + + /* Encode CHOICE with parent or my own tag */ + ret = der_write_tags(td, erval.encoded, tag_mode, 1, tag, + cb, app_key); + if(ret == -1) + ASN__ENCODE_FAILED; + computed_size += ret; + } + + /* + * Encode the single underlying member. + */ + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + elm->tag_mode, elm->tag, cb, app_key); + if(erval.encoded == -1) + return erval; + + ASN_DEBUG("Encoded CHOICE member in %ld bytes (+%ld)", + (long)erval.encoded, (long)computed_size); + + erval.encoded += computed_size; + + return erval; +} + +ber_tlv_tag_t +CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + assert(tag_mode == 0); (void)tag_mode; + assert(tag == 0); (void)tag; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); + + if(present > 0 && present <= td->elements_count) { + const asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *) + ((const char *)ptr + elm->memb_offset); + } else { + memb_ptr = (const void *) + ((const char *)ptr + elm->memb_offset); + } + + return asn_TYPE_outmost_tag(elm->type, memb_ptr, + elm->tag_mode, elm->tag); + } else { + return (ber_tlv_tag_t)-1; + } +} + +int +CHOICE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) + return 0; + ASN__CTFAIL(app_key, td, sptr, + "%s: mandatory CHOICE element %s absent (%s:%d)", + td->name, elm->name, __FILE__, __LINE__); + return -1; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if(elm->encoding_constraints.general_constraints) { + return elm->encoding_constraints.general_constraints(elm->type, memb_ptr, + ctfailcb, app_key); + } else { + return elm->type->encoding_constraints.general_constraints(elm->type, + memb_ptr, ctfailcb, app_key); + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: no CHOICE element given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#undef XER_ADVANCE +#define XER_ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + buf_ptr = (const void *)(((const char *)buf_ptr) + num); \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Decode the XER (XML) data. + */ +asn_dec_rval_t +CHOICE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + asn_dec_rval_t rval; /* Return value of a decoder */ + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + size_t edx; /* Element index */ + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) RETURN(RC_FAIL); + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + if(ctx->phase == 0 && !*xml_tag) + ctx->phase = 1; /* Skip the outer tag checking phase */ + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + * Phase 2: Processing inner type. + * Phase 3: Only waiting for closing tag. + * Phase 4: Skipping unknown extensions. + * Phase 5: PHASED OUT + */ + for(edx = ctx->step; ctx->phase <= 4;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + asn_TYPE_member_t *elm; + + /* + * Go inside the member. + */ + if(ctx->phase == 2) { + asn_dec_rval_t tmprval; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + unsigned old_present; + + elm = &td->elements[edx]; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + /* Start/Continue decoding the inner member */ + tmprval = elm->type->op->xer_decoder(opt_codec_ctx, + elm->type, memb_ptr2, elm->name, + buf_ptr, size); + XER_ADVANCE(tmprval.consumed); + ASN_DEBUG("XER/CHOICE: itdf: [%s] code=%d", + elm->type->name, tmprval.code); + old_present = _fetch_present_idx(st, + specs->pres_offset, specs->pres_size); + assert(old_present == 0 || old_present == edx + 1); + /* Record what we've got */ + _set_present_idx(st, + specs->pres_offset, specs->pres_size, edx + 1); + if(tmprval.code != RC_OK) + RETURN(tmprval.code); + ctx->phase = 3; + /* Fall through */ + } + + /* No need to wait for closing tag; special mode. */ + if(ctx->phase == 3 && !*xml_tag) { + ctx->phase = 5; /* Phase out */ + RETURN(RC_OK); + } + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, buf_ptr, size, &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + case PXER_TEXT: /* Ignore free-standing text */ + XER_ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); + ASN_DEBUG("XER/CHOICE checked [%c%c%c%c] vs [%s], tcv=%d", + ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', + ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', + ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', + ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', + xml_tag, tcv); + + /* Skip the extensions section */ + if(ctx->phase == 4) { + ASN_DEBUG("skip_unknown(%d, %ld)", + tcv, (long)ctx->left); + switch(xer_skip_unknown(tcv, &ctx->left)) { + case -1: + ctx->phase = 5; + RETURN(RC_FAIL); + case 1: + ctx->phase = 3; + /* Fall through */ + case 0: + XER_ADVANCE(ch_size); + continue; + case 2: + ctx->phase = 3; + break; + } + } + + switch(tcv) { + case XCT_BOTH: + break; /* No CHOICE? */ + case XCT_CLOSING: + if(ctx->phase != 3) + break; + XER_ADVANCE(ch_size); + ctx->phase = 5; /* Phase out */ + RETURN(RC_OK); + case XCT_OPENING: + if(ctx->phase == 0) { + XER_ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + } + /* Fall through */ + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + + if(ctx->phase != 1) + break; /* Really unexpected */ + + /* + * Search which inner member corresponds to this tag. + */ + for(edx = 0; edx < td->elements_count; edx++) { + elm = &td->elements[edx]; + tcv = xer_check_tag(buf_ptr,ch_size,elm->name); + switch(tcv) { + case XCT_BOTH: + case XCT_OPENING: + /* + * Process this member. + */ + ctx->step = edx; + ctx->phase = 2; + break; + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + continue; + default: + edx = td->elements_count; + break; /* Phase out */ + } + break; + } + if(edx != td->elements_count) + continue; + + /* It is expected extension */ + if(specs->ext_start != -1) { + ASN_DEBUG("Got anticipated extension"); + /* + * Check for (XCT_BOTH or XCT_UNKNOWN_BO) + * By using a mask. Only record a pure + * tags. + */ + if(tcv & XCT_CLOSING) { + /* Found without body */ + ctx->phase = 3; /* Terminating */ + } else { + ctx->left = 1; + ctx->phase = 4; /* Skip ...'s */ + } + XER_ADVANCE(ch_size); + continue; + } + + /* Fall through */ + default: + break; + } + + ASN_DEBUG("Unexpected XML tag [%c%c%c%c] in CHOICE [%s]" + " (ph=%d, tag=%s)", + ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', + ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', + ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', + ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', + td->name, ctx->phase, xml_tag); + break; + } + + ctx->phase = 5; /* Phase out, just in case */ + RETURN(RC_FAIL); +} + + +asn_enc_rval_t +CHOICE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_enc_rval_t er; + unsigned present; + + if(!sptr) + ASN__ENCODE_FAILED; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + asn_enc_rval_t tmper; + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + const char *mname = elm->name; + unsigned int mlen = strlen(mname); + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + er.encoded = 0; + + if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, + ilevel + 1, flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK3("", 1); + } + + if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +asn_dec_rval_t +CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_dec_rval_t rv; + const asn_per_constraint_t *ct; + asn_TYPE_member_t *elm; /* CHOICE's element */ + void *memb_ptr; + void **memb_ptr2; + void *st = *sptr; + int value; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted */ + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + ASN_DEBUG("CHOICE %s got index %d in range %d", + td->name, value, ct->range_bits); + if(value > ct->upper_bound) + ASN__DECODE_FAILED; + } else { + if(specs->ext_start == -1) + ASN__DECODE_FAILED; + value = uper_get_nsnnwn(pd); + if(value < 0) ASN__DECODE_STARVED; + value += specs->ext_start; + if((unsigned)value >= td->elements_count) + ASN__DECODE_FAILED; + } + + /* Adjust if canonical order is different from natural order */ + if(specs->from_canonical_order) { + ASN_DEBUG("CHOICE presence from wire %d", value); + value = specs->from_canonical_order[value]; + ASN_DEBUG("CHOICE presence index effective %d", value); + } + + /* Set presence to be able to free it later */ + _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); + + elm = &td->elements[value]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); + + if(ct && ct->range_bits >= 0) { + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } else { + rv = uper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } + + if(rv.code != RC_OK) + ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", + elm->name, td->name, rv.code); + return rv; +} + +asn_enc_rval_t +CHOICE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elm; /* CHOICE's element */ + const asn_per_constraint_t *ct; + const void *memb_ptr; + unsigned present; + int present_enc; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %s as CHOICE", td->name); + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + + /* + * If the structure was not initialized properly, it cannot be encoded: + * can't deduce what to encode in the choice type. + */ + if(present == 0 || present > td->elements_count) + ASN__ENCODE_FAILED; + else + present--; + + ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); + + /* Adjust if canonical order is different from natural order */ + if(specs->to_canonical_order) + present_enc = specs->to_canonical_order[present]; + else + present_enc = present; + + if(ct && ct->range_bits >= 0) { + if(present_enc < ct->lower_bound + || present_enc > ct->upper_bound) { + if(ct->flags & APC_EXTENSIBLE) { + ASN_DEBUG( + "CHOICE member %d (enc %d) is an extension (%ld..%ld)", + present, present_enc, ct->lower_bound, ct->upper_bound); + if(per_put_few_bits(po, 1, 1)) + ASN__ENCODE_FAILED; + } else { + ASN__ENCODE_FAILED; + } + ct = 0; + } + } + if(ct && ct->flags & APC_EXTENSIBLE) { + ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", + present, present_enc, ct->lower_bound, ct->upper_bound); + if(per_put_few_bits(po, 0, 1)) + ASN__ENCODE_FAILED; + } + + + elm = &td->elements[present]; + ASN_DEBUG("CHOICE member \"%s\" %d (as %d)", elm->name, present, + present_enc); + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, present_enc, ct->range_bits)) + ASN__ENCODE_FAILED; + + return elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po); + } else { + asn_enc_rval_t rval; + if(specs->ext_start == -1) ASN__ENCODE_FAILED; + if(uper_put_nsnnwn(po, present_enc - specs->ext_start)) + ASN__ENCODE_FAILED; + if(uper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, po)) + ASN__ENCODE_FAILED; + rval.encoded = 0; + ASN__ENCODED_OK(rval); + } +} + +asn_dec_rval_t +CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + asn_dec_rval_t rv; + const asn_per_constraint_t *ct; + asn_TYPE_member_t *elm; /* CHOICE's element */ + void *memb_ptr; + void **memb_ptr2; + void *st = *sptr; + int value; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted */ + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + ASN_DEBUG("CHOICE %s got index %d in range %d", + td->name, value, ct->range_bits); + if(value > ct->upper_bound) + ASN__DECODE_FAILED; + } else { + if(specs->ext_start == -1) + ASN__DECODE_FAILED; + value = uper_get_nsnnwn(pd); + if(value < 0) ASN__DECODE_STARVED; + value += specs->ext_start; + if((unsigned)value >= td->elements_count) + ASN__DECODE_FAILED; + } + + /* Adjust if canonical order is different from natural order */ + if(specs->from_canonical_order) + value = specs->from_canonical_order[value]; + + /* Set presence to be able to free it later */ + _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); + + elm = &td->elements[value]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); + + if(ct && ct->range_bits >= 0) { + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } else { + rv = uper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } + + if(rv.code != RC_OK) + ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", + elm->name, td->name, rv.code); + return rv; +} + +asn_enc_rval_t +CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm; /* CHOICE's element */ + const asn_per_constraint_t *ct; + const void *memb_ptr; + int present; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %s as CHOICE using ALIGNED PER", td->name); + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + present = _fetch_present_idx(sptr, + specs->pres_offset, specs->pres_size); + + /* + * If the structure was not initialized properly, it cannot be encoded: + * can't deduce what to encode in the choice type. + */ + if(present <= 0 || (unsigned)present > td->elements_count) + ASN__ENCODE_FAILED; + else + present--; + + /* Adjust if canonical order is different from natural order */ + if(specs->to_canonical_order) + present = specs->to_canonical_order[present]; + + ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); + + if(ct && ct->range_bits >= 0) { + if(present < ct->lower_bound + || present > ct->upper_bound) { + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, 1, 1)) + ASN__ENCODE_FAILED; + } else { + ASN__ENCODE_FAILED; + } + ct = 0; + } + } + if(ct && ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, 0, 1)) + ASN__ENCODE_FAILED; + } + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, present, ct->range_bits)) + ASN__ENCODE_FAILED; + + return elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, + memb_ptr, po); + } else { + asn_enc_rval_t rval; + if(specs->ext_start == -1) + ASN__ENCODE_FAILED; + if(aper_put_nsnnwn(po, ct->range_bits, present - specs->ext_start)) + ASN__ENCODE_FAILED; + if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints, + memb_ptr, po)) + ASN__ENCODE_FAILED; + rval.encoded = 0; + ASN__ENCODED_OK(rval); + } +} + +int +CHOICE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + + /* + * Print that element. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + /* Print member's name and stuff */ + if(0) { + if(cb(elm->name, strlen(elm->name), app_key) < 0 + || cb(": ", 2, app_key) < 0) + return -1; + } + + return elm->type->op->print_struct(elm->type, memb_ptr, ilevel, + cb, app_key); + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} + +void +CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!td || !ptr) + return; + + ASN_DEBUG("Freeing %s as CHOICE", td->name); + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); + + /* + * Free that element. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(void **)((char *)ptr + elm->memb_offset); + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } else { + memb_ptr = (void *)((char *)ptr + elm->memb_offset); + ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); + } + } + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, specs->struct_size); + break; + } +} + + +/* + * The following functions functions offer protection against -fshort-enums, + * compatible with little- and big-endian machines. + * If assertion is triggered, either disable -fshort-enums, or add an entry + * here with the ->pres_size of your target stracture. + * Unless the target structure is packed, the ".present" member + * is guaranteed to be aligned properly. ASN.1 compiler itself does not + * produce packed code. + */ +static unsigned +_fetch_present_idx(const void *struct_ptr, unsigned pres_offset, + unsigned pres_size) { + const void *present_ptr; + unsigned present; + + present_ptr = ((const char *)struct_ptr) + pres_offset; + + switch(pres_size) { + case sizeof(int): present = *(const unsigned int *)present_ptr; break; + case sizeof(short): present = *(const unsigned short *)present_ptr; break; + case sizeof(char): present = *(const unsigned char *)present_ptr; break; + default: + /* ANSI C mandates enum to be equivalent to integer */ + assert(pres_size != sizeof(int)); + return 0; /* If not aborted, pass back safe value */ + } + + return present; +} + +static void +_set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size, + unsigned present) { + void *present_ptr; + present_ptr = ((char *)struct_ptr) + pres_offset; + + switch(pres_size) { + case sizeof(int): *(unsigned int *)present_ptr = present; break; + case sizeof(short): *(unsigned short *)present_ptr = present; break; + case sizeof(char): *(unsigned char *)present_ptr = present; break; + default: + /* ANSI C mandates enum to be equivalent to integer */ + assert(pres_size != sizeof(int)); + } +} + +static const void * +_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_TYPE_member_t **elm_ptr, unsigned *present_out) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) { + *elm_ptr = NULL; + *present_out = 0; + return NULL; + } + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + *present_out = present; + + /* + * The presence index is intentionally 1-based to avoid + * treating zeroed structure as a valid one. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *const elm = &td->elements[present - 1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + *elm_ptr = elm; + return memb_ptr; + } else { + *elm_ptr = NULL; + return NULL; + } + +} + +int +CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { + asn_TYPE_member_t *aelm; + asn_TYPE_member_t *belm; + unsigned apresent = 0; + unsigned bpresent = 0; + const void *amember = _get_member_ptr(td, aptr, &aelm, &apresent); + const void *bmember = _get_member_ptr(td, bptr, &belm, &bpresent); + + if(amember && bmember) { + if(apresent == bpresent) { + assert(aelm == belm); + return aelm->type->op->compare_struct(aelm->type, amember, bmember); + } else if(apresent < bpresent) { + return -1; + } else { + return 1; + } + } else if(!amember) { + return -1; + } else { + return 1; + } +} + +/* + * Return the 1-based choice variant presence index. + * Returns 0 in case of error. + */ +unsigned +CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); +} + +/* + * Sets or resets the 1-based choice variant presence index. + * In case a previous index is not zero, the currently selected structure + * member is freed and zeroed-out first. + * Returns 0 on success and -1 on error. + */ +int +CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr, + unsigned present) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned old_present; + + if(!sptr) { + return -1; + } + + if(present > td->elements_count) + return -1; + + old_present = + _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + if(present == old_present) + return 0; + + if(old_present != 0) { + assert(old_present <= td->elements_count); + ASN_STRUCT_RESET(*td, sptr); + } + + _set_present_idx(sptr, specs->pres_offset, specs->pres_size, present); + + return 0; +} + + +asn_random_fill_result_t +CHOICE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constr, + size_t max_length) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_random_fill_result_t res; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + const asn_TYPE_member_t *elm; + unsigned present; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *st = *sptr; + + if(max_length == 0) return result_skipped; + + (void)constr; + + if(st == NULL) { + st = CALLOC(1, specs->struct_size); + if(st == NULL) { + return result_failed; + } + } + + present = asn_random_between(1, td->elements_count); + elm = &td->elements[present - 1]; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + res = elm->type->op->random_fill(elm->type, memb_ptr2, + &elm->encoding_constraints, max_length); + _set_present_idx(st, specs->pres_offset, specs->pres_size, present); + if(res.code == ARFILL_OK) { + *sptr = st; + } else { + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + } + + return res; +} + + +asn_TYPE_operation_t asn_OP_CHOICE = { + CHOICE_free, + CHOICE_print, + CHOICE_compare, + CHOICE_decode_ber, + CHOICE_encode_der, + CHOICE_decode_xer, + CHOICE_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + CHOICE_decode_oer, + CHOICE_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + CHOICE_decode_uper, + CHOICE_encode_uper, + CHOICE_decode_aper, + CHOICE_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + CHOICE_random_fill, + CHOICE_outmost_tag +}; diff --git a/vcits/asn1c/src/constr_CHOICE_oer.c b/vcits/asn1c/src/constr_CHOICE_oer.c new file mode 100644 index 0000000..6480a96 --- /dev/null +++ b/vcits/asn1c/src/constr_CHOICE_oer.c @@ -0,0 +1,380 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_DISABLE_OER_SUPPORT + +#include +#include +#include + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t rval; \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) \ + do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) +#undef SET_PHASE +#define SET_PHASE(ctx, value) \ + do { \ + ctx->phase = value; \ + ctx->step = 0; \ + } while(0) + +/* + * Tags are canonically sorted in the tag to member table. + */ +static int +_search4tag(const void *ap, const void *bp) { + const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; + const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; + + int a_class = BER_TAG_CLASS(a->el_tag); + int b_class = BER_TAG_CLASS(b->el_tag); + + if(a_class == b_class) { + ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); + ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); + + if(a_value == b_value) + return 0; + else if(a_value < b_value) + return -1; + else + return 1; + } else if(a_class < b_class) { + return -1; + } else { + return 1; + } +} + +/* + * X.696 (08/2015) #8.7 Encoding of tags + */ +static ssize_t +oer_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { + ber_tlv_tag_t val; + ber_tlv_tag_t tclass; + size_t skipped; + + if(size == 0) + return 0; + + val = *(const uint8_t *)ptr; + tclass = (val >> 6); + if((val & 0x3F) != 0x3F) { + /* #8.7.1 */ + *tag_r = ((val & 0x3F) << 2) | tclass; + return 1; + } + + /* + * Each octet contains 7 bits of useful information. + * The MSB is 0 if it is the last octet of the tag. + */ + for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; skipped <= size; + ptr = ((const char *)ptr) + 1, skipped++) { + unsigned int oct = *(const uint8_t *)ptr; + if(oct & 0x80) { + val = (val << 7) | (oct & 0x7F); + /* + * Make sure there are at least 9 bits spare + * at the MS side of a value. + */ + if(val >> ((8 * sizeof(val)) - 9)) { + /* + * We would not be able to accomodate + * any more tag bits. + */ + return -1; + } + } else { + val = (val << 7) | oct; + *tag_r = (val << 2) | tclass; + return skipped; + } + } + + return 0; /* Want more */ +} + +asn_dec_rval_t +CHOICE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **struct_ptr, + const void *ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elements = td->elements; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + + (void)constraints; + + ASN_DEBUG("Decoding %s as CHOICE", td->name); + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + switch(ctx->phase) { + case 0: { + /* + * Discover the tag. + */ + ber_tlv_tag_t tlv_tag; /* T from TLV */ + ssize_t tag_len; /* Length of TLV's T */ + + tag_len = oer_fetch_tag(ptr, size, &tlv_tag); + switch(tag_len) { + case 0: + ASN__DECODE_STARVED; + case -1: + ASN__DECODE_FAILED; + } + + do { + const asn_TYPE_tag2member_t *t2m; + asn_TYPE_tag2member_t key = {0, 0, 0, 0}; + key.el_tag = tlv_tag; + + t2m = (const asn_TYPE_tag2member_t *)bsearch( + &key, specs->tag2el, specs->tag2el_count, + sizeof(specs->tag2el[0]), _search4tag); + if(t2m) { + /* + * Found the element corresponding to the tag. + */ + NEXT_PHASE(ctx); + ctx->step = t2m->el_no; + break; + } else if(specs->ext_start == -1) { + ASN_DEBUG( + "Unexpected tag %s " + "in non-extensible CHOICE %s", + ber_tlv_tag_string(tlv_tag), td->name); + RETURN(RC_FAIL); + } else { + /* Skip open type extension */ + ASN_DEBUG( + "Not implemented skipping open type extension for tag %s", + ber_tlv_tag_string(tlv_tag)); + RETURN(RC_FAIL); + } + } while(0); + + + ADVANCE(tag_len); + } + /* Fall through */ + case 1: { + asn_TYPE_member_t *elm = &elements[ctx->step]; /* CHOICE's element */ + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + asn_dec_rval_t rval; + + /* + * Compute the position of the member inside a structure, + * and also a type of containment (it may be contained + * as pointer or using inline inclusion). + */ + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + /* + * A pointer to a pointer + * holding the start of the structure + */ + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + /* Set presence to be able to free it properly at any time */ + (void)CHOICE_variant_set_presence(td, st, ctx->step + 1); + + if(specs->ext_start >= 0 && specs->ext_start <= ctx->step) { + ssize_t got = + oer_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.oer_constraints, + memb_ptr2, ptr, size); + if(got < 0) ASN__DECODE_FAILED; + if(got == 0) ASN__DECODE_STARVED; + rval.code = RC_OK; + rval.consumed = got; + } else { + rval = elm->type->op->oer_decoder( + opt_codec_ctx, elm->type, + elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, + size); + } + rval.consumed += consumed_myself; + switch(rval.code) { + case RC_OK: + NEXT_PHASE(ctx); + case RC_WMORE: + break; + case RC_FAIL: + SET_PHASE(ctx, 3); /* => 3 */ + } + return rval; + } + case 2: + /* Already decoded everything */ + RETURN(RC_OK); + case 3: + /* Failed to decode, after all */ + RETURN(RC_FAIL); + } + + RETURN(RC_FAIL); +} + +/* + * X.696 (08/2015) #8.7 Encoding of tags + */ +static ssize_t +oer_put_tag(ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) { + uint8_t tclass = BER_TAG_CLASS(tag); + ber_tlv_tag_t tval = BER_TAG_VALUE(tag); + + if(tval < 0x3F) { + uint8_t b = (uint8_t)((tclass << 6) | tval); + if(cb(&b, 1, app_key) < 0) { + return -1; + } + return 1; + } else { + uint8_t buf[1 + 2 * sizeof(tval)]; + uint8_t *b = &buf[sizeof(buf)-1]; /* Last addressable */ + size_t encoded; + for(; ; tval >>= 7) { + if(tval >> 7) { + *b-- = 0x80 | (tval & 0x7f); + } else { + *b-- = tval & 0x7f; + break; + } + } + *b = (uint8_t)((tclass << 6) | 0x3F); + encoded = sizeof(buf) - (b - buf); + if(cb(b, encoded, app_key) < 0) { + return -1; + } + return encoded; + } + +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +CHOICE_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elm; /* CHOICE element */ + unsigned present; + const void *memb_ptr; + ber_tlv_tag_t tag; + ssize_t tag_len; + asn_enc_rval_t er = {0, 0, 0}; + + (void)constraints; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("OER %s encoding as CHOICE", td->name); + + present = CHOICE_variant_get_presence(td, sptr); + if(present == 0 || present > td->elements_count) { + ASN_DEBUG("CHOICE %s member is not selected", td->name); + ASN__ENCODE_FAILED; + } + + elm = &td->elements[present-1]; + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(memb_ptr == 0) { + /* Mandatory element absent */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + tag = asn_TYPE_outmost_tag(elm->type, memb_ptr, elm->tag_mode, elm->tag); + if(tag == 0) { + ASN__ENCODE_FAILED; + } + + tag_len = oer_put_tag(tag, cb, app_key); + if(tag_len < 0) { + ASN__ENCODE_FAILED; + } + + if(specs->ext_start >= 0 && (unsigned)specs->ext_start <= (present-1)) { + ssize_t encoded = oer_open_type_put(elm->type, + elm->encoding_constraints.oer_constraints, + memb_ptr, cb, app_key); + if(encoded < 0) ASN__ENCODE_FAILED; + er.encoded = tag_len + encoded; + } else { + er = elm->type->op->oer_encoder( + elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, + app_key); + if(er.encoded >= 0) er.encoded += tag_len; + } + + return er; +} + +#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/vcits/asn1c/src/constr_SEQUENCE.c b/vcits/asn1c/src/constr_SEQUENCE.c new file mode 100644 index 0000000..f12275c --- /dev/null +++ b/vcits/asn1c/src/constr_SEQUENCE.c @@ -0,0 +1,2059 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * Number of bytes left for this structure. + * (ctx->left) indicates the number of bytes _transferred_ for the structure. + * (size) contains the number of bytes in the buffer passed. + */ +#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) + +/* + * If the subprocessor function returns with an indication that it wants + * more data, it may well be a fatal decoding problem, because the + * size is constrained by the 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * The TLV length clearly indicates that one byte is expected in V, but + * if the V processor returns with "want more data" even if the buffer + * contains way more data than the V processor have seen. + */ +#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + if(ctx->left >= 0) \ + ctx->left -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#undef PHASE_OUT +#define NEXT_PHASE(ctx) do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) +#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) do { \ + rval.code = _code; \ + rval.consumed = consumed_myself;\ + return rval; \ + } while(0) + +/* + * Check whether we are inside the extensions group. + */ +#define IN_EXTENSION_GROUP(specs, memb_idx) \ + ((specs)->first_extension >= 0 \ + && (unsigned)(specs)->first_extension <= (memb_idx)) + +/* + * Tags are canonically sorted in the tag2element map. + */ +static int +_t2e_cmp(const void *ap, const void *bp) { + const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; + const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; + + int a_class = BER_TAG_CLASS(a->el_tag); + int b_class = BER_TAG_CLASS(b->el_tag); + + if(a_class == b_class) { + ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); + ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); + + if(a_value == b_value) { + if(a->el_no > b->el_no) + return 1; + /* + * Important: we do not check + * for a->el_no <= b->el_no! + */ + return 0; + } else if(a_value < b_value) + return -1; + else + return 1; + } else if(a_class < b_class) { + return -1; + } else { + return 1; + } +} + + +/* + * The decoder of the SEQUENCE type. + */ +asn_dec_rval_t +SEQUENCE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *ptr, size_t size, int tag_mode) { + /* + * Bring closer parts of structure description. + */ + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + const asn_TYPE_member_t *elements = td->elements; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ber_tlv_tag_t tlv_tag; /* T from TLV */ + asn_dec_rval_t rval; /* Return code from subparsers */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + size_t edx; /* SEQUENCE element's index */ + + ASN_DEBUG("Decoding %s as SEQUENCE", td->name); + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously + */ + switch(ctx->phase) { + case 0: + /* + * PHASE 0. + * Check that the set of tags associated with given structure + * perfectly fits our expectations. + */ + + rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, + tag_mode, 1, &ctx->left, 0); + if(rval.code != RC_OK) { + ASN_DEBUG("%s tagging check failed: %d", + td->name, rval.code); + return rval; + } + + if(ctx->left >= 0) + ctx->left += rval.consumed; /* ?Substracted below! */ + ADVANCE(rval.consumed); + + NEXT_PHASE(ctx); + + ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", + (long)ctx->left, (long)size); + + /* Fall through */ + case 1: + /* + * PHASE 1. + * From the place where we've left it previously, + * try to decode the next member from the list of + * this structure's elements. + * (ctx->step) stores the member being processed + * between invocations and the microphase {0,1} of parsing + * that member: + * step = ( * 2 + ). + */ + for(edx = ((size_t)ctx->step >> 1); edx < td->elements_count; + edx++, ctx->step = (ctx->step & ~1) + 2) { + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + ssize_t tag_len; /* Length of TLV's T */ + size_t opt_edx_end; /* Next non-optional element */ + size_t n; + int use_bsearch; + + if(ctx->step & 1) + goto microphase2; + + /* + * MICROPHASE 1: Synchronize decoding. + */ + ASN_DEBUG("In %s SEQUENCE left %d, edx=%" ASN_PRI_SIZE " flags=%d" + " opt=%d ec=%d", + td->name, (int)ctx->left, edx, + elements[edx].flags, elements[edx].optional, + td->elements_count); + + if(ctx->left == 0 /* No more stuff is expected */ + && ( + /* Explicit OPTIONAL specification reaches the end */ + (edx + elements[edx].optional == td->elements_count) || + /* All extensions are optional */ + IN_EXTENSION_GROUP(specs, edx))) { + ASN_DEBUG("End of SEQUENCE %s", td->name); + /* + * Found the legitimate end of the structure. + */ + PHASE_OUT(ctx); + RETURN(RC_OK); + } + + /* + * Fetch the T from TLV. + */ + tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); + ASN_DEBUG("Current tag in %s SEQUENCE for element %" ASN_PRI_SIZE " " + "(%s) is %s encoded in %d bytes, of frame %ld", + td->name, edx, elements[edx].name, + ber_tlv_tag_string(tlv_tag), (int)tag_len, (long)LEFT); + switch(tag_len) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) { + RETURN(RC_FAIL); + } else { + RETURN(RC_WMORE); + } + } else if(((const uint8_t *)ptr)[1] == 0) { + ASN_DEBUG("edx = %" ASN_PRI_SIZE ", opt = %d, ec=%d", edx, + elements[edx].optional, td->elements_count); + if((edx + elements[edx].optional == td->elements_count) + || IN_EXTENSION_GROUP(specs, edx)) { + /* + * Yeah, baby! Found the terminator + * of the indefinite length structure. + */ + /* + * Proceed to the canonical + * finalization function. + * No advancing is necessary. + */ + goto phase3; + } + } + } + + /* + * Find the next available type with this tag. + */ + use_bsearch = 0; + opt_edx_end = edx + elements[edx].optional + 1; + if(opt_edx_end > td->elements_count) + opt_edx_end = td->elements_count; /* Cap */ + else if(opt_edx_end - edx > 8) { + /* Limit the scope of linear search... */ + opt_edx_end = edx + 8; + use_bsearch = 1; + /* ... and resort to bsearch() */ + } + for(n = edx; n < opt_edx_end; n++) { + if(BER_TAGS_EQUAL(tlv_tag, elements[n].tag)) { + /* + * Found element corresponding to the tag + * being looked at. + * Reposition over the right element. + */ + edx = n; + ctx->step = 1 + 2 * edx; /* Remember! */ + goto microphase2; + } else if(elements[n].flags & ATF_ANY_TYPE) { + /* + * This is the ANY type, which may bear + * any flag whatsoever. + */ + edx = n; + ctx->step = 1 + 2 * edx; /* Remember! */ + goto microphase2; + } else if(elements[n].tag == (ber_tlv_tag_t)-1) { + use_bsearch = 1; + break; + } + } + if(use_bsearch) { + /* + * Resort to a binary search over + * sorted array of tags. + */ + const asn_TYPE_tag2member_t *t2m; + asn_TYPE_tag2member_t key = {0, 0, 0, 0}; + key.el_tag = tlv_tag; + key.el_no = edx; + t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, + specs->tag2el, specs->tag2el_count, + sizeof(specs->tag2el[0]), _t2e_cmp); + if(t2m) { + const asn_TYPE_tag2member_t *best = 0; + const asn_TYPE_tag2member_t *t2m_f, *t2m_l; + size_t edx_max = edx + elements[edx].optional; + /* + * Rewind to the first element with that tag, + * `cause bsearch() does not guarantee order. + */ + t2m_f = t2m + t2m->toff_first; + t2m_l = t2m + t2m->toff_last; + for(t2m = t2m_f; t2m <= t2m_l; t2m++) { + if(t2m->el_no > edx_max) break; + if(t2m->el_no < edx) continue; + best = t2m; + } + if(best) { + edx = best->el_no; + ctx->step = 1 + 2 * edx; + goto microphase2; + } + } + n = opt_edx_end; + } + if(n == opt_edx_end) { + /* + * If tag is unknown, it may be either + * an unknown (thus, incorrect) tag, + * or an extension (...), + * or an end of the indefinite-length structure. + */ + if(!IN_EXTENSION_GROUP(specs, + edx + elements[edx].optional)) { + ASN_DEBUG("Unexpected tag %s (at %" ASN_PRI_SIZE ")", + ber_tlv_tag_string(tlv_tag), edx); + ASN_DEBUG("Expected tag %s (%s)%s", + ber_tlv_tag_string(elements[edx].tag), + elements[edx].name, + elements[edx].optional + ?" or alternatives":""); + RETURN(RC_FAIL); + } else { + /* Skip this tag */ + ssize_t skip; + edx += elements[edx].optional; + + ASN_DEBUG("Skipping unexpected %s (at %" ASN_PRI_SIZE ")", + ber_tlv_tag_string(tlv_tag), edx); + skip = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + (const char *)ptr + tag_len, + LEFT - tag_len); + ASN_DEBUG("Skip length %d in %s", + (int)skip, td->name); + switch(skip) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + ADVANCE(skip + tag_len); + ctx->step -= 2; + edx--; + continue; /* Try again with the next tag */ + } + } + + /* + * MICROPHASE 2: Invoke the member-specific decoder. + */ + ctx->step |= 1; /* Confirm entering next microphase */ + microphase2: + ASN_DEBUG("Inside SEQUENCE %s MF2", td->name); + + /* + * Compute the position of the member inside a structure, + * and also a type of containment (it may be contained + * as pointer or using inline inclusion). + */ + if(elements[edx].flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elements[edx].memb_offset); + } else { + /* + * A pointer to a pointer + * holding the start of the structure + */ + memb_ptr = (char *)st + elements[edx].memb_offset; + memb_ptr2 = &memb_ptr; + } + /* + * Invoke the member fetch routine according to member's type + */ + if(elements[edx].flags & ATF_OPEN_TYPE) { + rval = OPEN_TYPE_ber_get(opt_codec_ctx, td, st, &elements[edx], ptr, LEFT); + } else { + rval = elements[edx].type->op->ber_decoder(opt_codec_ctx, + elements[edx].type, + memb_ptr2, ptr, LEFT, + elements[edx].tag_mode); + } + ASN_DEBUG("In %s SEQUENCE decoded %" ASN_PRI_SIZE " %s of %d " + "in %d bytes rval.code %d, size=%d", + td->name, edx, elements[edx].type->name, + (int)LEFT, (int)rval.consumed, rval.code, (int)size); + switch(rval.code) { + case RC_OK: + break; + case RC_WMORE: /* More data expected */ + if(!SIZE_VIOLATION) { + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + } + ASN_DEBUG("Size violation (c->l=%ld <= s=%ld)", + (long)ctx->left, (long)size); + /* Fall through */ + case RC_FAIL: /* Fatal error */ + RETURN(RC_FAIL); + } /* switch(rval) */ + + ADVANCE(rval.consumed); + } /* for(all structure members) */ + + phase3: + ctx->phase = 3; + /* Fall through */ + case 3: /* 00 and other tags expected */ + case 4: /* only 00's expected */ + + ASN_DEBUG("SEQUENCE %s Leftover: %ld, size = %ld", + td->name, (long)ctx->left, (long)size); + + /* + * Skip everything until the end of the SEQUENCE. + */ + while(ctx->left) { + ssize_t tl, ll; + + tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); + switch(tl) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + /* + * If expected <0><0>... + */ + if(ctx->left < 0 + && ((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) + RETURN(RC_FAIL); + else + RETURN(RC_WMORE); + } else if(((const uint8_t *)ptr)[1] == 0) { + /* + * Correctly finished with <0><0>. + */ + ADVANCE(2); + ctx->left++; + ctx->phase = 4; + continue; + } + } + + if(!IN_EXTENSION_GROUP(specs, td->elements_count) + || ctx->phase == 4) { + ASN_DEBUG("Unexpected continuation " + "of a non-extensible type " + "%s (SEQUENCE): %s", + td->name, + ber_tlv_tag_string(tlv_tag)); + RETURN(RC_FAIL); + } + + ll = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + (const char *)ptr + tl, LEFT - tl); + switch(ll) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + ADVANCE(tl + ll); + } + + PHASE_OUT(ctx); + } + + RETURN(RC_OK); +} + + +/* + * The DER encoder of the SEQUENCE type. + */ +asn_enc_rval_t +SEQUENCE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + size_t computed_size = 0; + asn_enc_rval_t erval; + ssize_t ret; + size_t edx; + + ASN_DEBUG("%s %s as SEQUENCE", + cb?"Encoding":"Estimating", td->name); + + /* + * Gather the length of the underlying members sequence. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", + elm->name, edx); + if(elm->optional) + continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + erval = elm->type->op->der_encoder(elm->type, *memb_ptr2, + elm->tag_mode, elm->tag, + 0, 0); + if(erval.encoded == -1) + return erval; + computed_size += erval.encoded; + ASN_DEBUG("Member %" ASN_PRI_SIZE " %s estimated %ld bytes", + edx, elm->name, (long)erval.encoded); + } + + /* + * Encode the TLV for the sequence itself. + */ + ret = der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); + ASN_DEBUG("Wrote tags: %ld (+%ld)", (long)ret, (long)computed_size); + if(ret == -1) + ASN__ENCODE_FAILED; + erval.encoded = computed_size + ret; + + if(!cb) ASN__ENCODED_OK(erval); + + /* + * Encode all members. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + asn_enc_rval_t tmperval; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) continue; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + tmperval = elm->type->op->der_encoder(elm->type, *memb_ptr2, + elm->tag_mode, elm->tag, cb, app_key); + if(tmperval.encoded == -1) + return tmperval; + computed_size -= tmperval.encoded; + ASN_DEBUG("Member %" ASN_PRI_SIZE " %s of SEQUENCE %s encoded in %ld bytes", + edx, elm->name, td->name, (long)tmperval.encoded); + } + + if(computed_size != 0) + /* + * Encoded size is not equal to the computed size. + */ + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(erval); +} + + +#undef XER_ADVANCE +#define XER_ADVANCE(num_bytes) \ + do { \ + size_t num = (num_bytes); \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Decode the XER (XML) data. + */ +asn_dec_rval_t +SEQUENCE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const char *opt_mname, const void *ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_TYPE_member_t *elements = td->elements; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + + /* + * ... and parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + asn_dec_rval_t rval; /* Return value from a decoder */ + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + size_t edx; /* Element index */ + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) RETURN(RC_FAIL); + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + * Phase 2: Processing inner type. + * Phase 3: Skipping unknown extensions. + * Phase 4: PHASED OUT + */ + for(edx = ctx->step; ctx->phase <= 3;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + asn_TYPE_member_t *elm; + + /* + * Go inside the inner member of a sequence. + */ + if(ctx->phase == 2) { + asn_dec_rval_t tmprval; + void *memb_ptr_dontuse; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + elm = &td->elements[edx]; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr_dontuse = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr_dontuse; /* Only use of memb_ptr_dontuse */ + } + + if(elm->flags & ATF_OPEN_TYPE) { + tmprval = OPEN_TYPE_xer_get(opt_codec_ctx, td, st, elm, ptr, size); + } else { + /* Invoke the inner type decoder, m.b. multiple times */ + tmprval = elm->type->op->xer_decoder(opt_codec_ctx, + elm->type, memb_ptr2, elm->name, + ptr, size); + } + XER_ADVANCE(tmprval.consumed); + if(tmprval.code != RC_OK) + RETURN(tmprval.code); + ctx->phase = 1; /* Back to body processing */ + ctx->step = ++edx; + ASN_DEBUG("XER/SEQUENCE phase => %d, step => %d", + ctx->phase, ctx->step); + /* Fall through */ + } + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, ptr, size, + &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + case PXER_TEXT: /* Ignore free-standing text */ + XER_ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + tcv = xer_check_tag(ptr, ch_size, xml_tag); + ASN_DEBUG("XER/SEQUENCE: tcv = %d, ph=%d [%s]", + tcv, ctx->phase, xml_tag); + + /* Skip the extensions section */ + if(ctx->phase == 3) { + switch(xer_skip_unknown(tcv, &ctx->left)) { + case -1: + ctx->phase = 4; + RETURN(RC_FAIL); + case 0: + XER_ADVANCE(ch_size); + continue; + case 1: + XER_ADVANCE(ch_size); + ctx->phase = 1; + continue; + case 2: + ctx->phase = 1; + break; + } + } + + switch(tcv) { + case XCT_CLOSING: + if(ctx->phase == 0) break; + ctx->phase = 0; + /* Fall through */ + case XCT_BOTH: + if(ctx->phase == 0) { + if(edx >= td->elements_count || + /* Explicit OPTIONAL specs reaches the end */ + (edx + elements[edx].optional == td->elements_count) || + /* All extensions are optional */ + IN_EXTENSION_GROUP(specs, edx)) { + XER_ADVANCE(ch_size); + ctx->phase = 4; /* Phase out */ + RETURN(RC_OK); + } else { + ASN_DEBUG("Premature end of XER SEQUENCE"); + RETURN(RC_FAIL); + } + } + /* Fall through */ + case XCT_OPENING: + if(ctx->phase == 0) { + XER_ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + } + /* Fall through */ + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + + ASN_DEBUG("XER/SEQUENCE: tcv=%d, ph=%d, edx=%" ASN_PRI_SIZE "", + tcv, ctx->phase, edx); + if(ctx->phase != 1) { + break; /* Really unexpected */ + } + + if(edx < td->elements_count) { + /* + * Search which member corresponds to this tag. + */ + size_t n; + size_t edx_end = edx + elements[edx].optional + 1; + if(edx_end > td->elements_count) + edx_end = td->elements_count; + for(n = edx; n < edx_end; n++) { + elm = &td->elements[n]; + tcv = xer_check_tag(ptr, ch_size, elm->name); + switch(tcv) { + case XCT_BOTH: + case XCT_OPENING: + /* + * Process this member. + */ + ctx->step = edx = n; + ctx->phase = 2; + break; + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + continue; + default: + n = edx_end; + break; /* Phase out */ + } + break; + } + if(n != edx_end) + continue; + } else { + ASN_DEBUG("Out of defined members: %" ASN_PRI_SIZE "/%u", + edx, td->elements_count); + } + + /* It is expected extension */ + if(IN_EXTENSION_GROUP(specs, + edx + (edx < td->elements_count + ? elements[edx].optional : 0))) { + ASN_DEBUG("Got anticipated extension at %" ASN_PRI_SIZE "", + edx); + /* + * Check for (XCT_BOTH or XCT_UNKNOWN_BO) + * By using a mask. Only record a pure + * tags. + */ + if(tcv & XCT_CLOSING) { + /* Found without body */ + } else { + ctx->left = 1; + ctx->phase = 3; /* Skip ...'s */ + } + XER_ADVANCE(ch_size); + continue; + } + + /* Fall through */ + default: + break; + } + + ASN_DEBUG("Unexpected XML tag in SEQUENCE [%c%c%c%c%c%c]", + size>0?((const char *)ptr)[0]:'.', + size>1?((const char *)ptr)[1]:'.', + size>2?((const char *)ptr)[2]:'.', + size>3?((const char *)ptr)[3]:'.', + size>4?((const char *)ptr)[4]:'.', + size>5?((const char *)ptr)[5]:'.'); + break; + } + + ctx->phase = 4; /* "Phase out" on hard failure */ + RETURN(RC_FAIL); +} + +asn_enc_rval_t +SEQUENCE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er; + int xcan = (flags & XER_F_CANONICAL); + asn_TYPE_descriptor_t *tmp_def_val_td = 0; + void *tmp_def_val = 0; + size_t edx; + + if(!sptr) ASN__ENCODE_FAILED; + + er.encoded = 0; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_enc_rval_t tmper; + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + const char *mname = elm->name; + unsigned int mlen = strlen(mname); + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + assert(tmp_def_val == 0); + if(elm->default_value_set) { + if(elm->default_value_set(&tmp_def_val)) { + ASN__ENCODE_FAILED; + } else { + memb_ptr = tmp_def_val; + tmp_def_val_td = elm->type; + } + } else if(elm->optional) { + continue; + } else { + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + + /* Print the member itself */ + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, + flags, cb, app_key); + if(tmp_def_val) { + ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); + tmp_def_val = 0; + } + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK3("", 1); + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + if(tmp_def_val) ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); + ASN__ENCODE_FAILED; +} + +int +SEQUENCE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + size_t edx; + int ret; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb(td->name, strlen(td->name), app_key) < 0 + || cb(" ::= {", 6, app_key) < 0) + return -1; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) continue; + /* Print line */ + /* Fall through */ + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + /* Indentation */ + _i_INDENT(1); + + /* Print the member's name and stuff */ + if(cb(elm->name, strlen(elm->name), app_key) < 0 + || cb(": ", 2, app_key) < 0) + return -1; + + /* Print the member itself */ + ret = elm->type->op->print_struct(elm->type, memb_ptr, ilevel + 1, + cb, app_key); + if(ret) return ret; + } + + ilevel--; + _i_INDENT(1); + + return (cb("}", 1, app_key) < 0) ? -1 : 0; +} + +void +SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + size_t edx; + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_struct_ctx_t *ctx; /* Decoder context */ + + if(!td || !sptr) + return; + + ASN_DEBUG("Freeing %s as SEQUENCE", td->name); + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; + if(elm->flags & ATF_POINTER) { + memb_ptr = *(void **)((char *)sptr + elm->memb_offset); + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } else { + memb_ptr = (void *)((char *)sptr + elm->memb_offset); + ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); + } + } + + /* Clean parsing context */ + ctx = (asn_struct_ctx_t *)((char *)sptr + specs->ctx_offset); + FREEMEM(ctx->ptr); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset( + sptr, 0, + ((const asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size); + break; + } +} + +int +SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t edx; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* + * Iterate over structure members and check their validity. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) + continue; + ASN__CTFAIL(app_key, td, sptr, + "%s: mandatory element %s absent (%s:%d)", + td->name, elm->name, __FILE__, __LINE__); + return -1; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if(elm->encoding_constraints.general_constraints) { + int ret = elm->encoding_constraints.general_constraints(elm->type, memb_ptr, + ctfailcb, app_key); + if(ret) return ret; + } else { + return elm->type->encoding_constraints.general_constraints(elm->type, + memb_ptr, ctfailcb, app_key); + } + } + + return 0; +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + void *st = *sptr; /* Target structure. */ + int extpresent; /* Extension additions are present */ + uint8_t *opres; /* Presence of optional root members */ + asn_per_data_t opmd; + asn_dec_rval_t rv; + size_t edx; + + (void)constraints; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as SEQUENCE (UPER)", td->name); + + /* Handle extensions */ + if(specs->first_extension < 0) { + extpresent = 0; + } else { + extpresent = per_get_few_bits(pd, 1); + if(extpresent < 0) ASN__DECODE_STARVED; + } + + /* Prepare a place and read-in the presence bitmap */ + memset(&opmd, 0, sizeof(opmd)); + if(specs->roms_count) { + opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); + if(!opres) ASN__DECODE_FAILED; + /* Get the presence map */ + if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { + FREEMEM(opres); + ASN__DECODE_STARVED; + } + opmd.buffer = opres; + opmd.nbits = specs->roms_count; + ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", + td->name, specs->roms_count, *opres); + } else { + opres = 0; + } + + /* + * Get the sequence ROOT elements. + */ + for(edx = 0; + edx < (specs->first_extension < 0 ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + assert(!IN_EXTENSION_GROUP(specs, edx)); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + /* Deal with optionality */ + if(elm->optional) { + int present = per_get_few_bits(&opmd, 1); + ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", + td->name, elm->name, present, + (int)opmd.nboff, (int)opmd.nbits); + if(present == 0) { + /* This element is not present */ + if(elm->default_value_set) { + /* Fill-in DEFAULT */ + if(elm->default_value_set(memb_ptr2)) { + FREEMEM(opres); + ASN__DECODE_FAILED; + } + ASN_DEBUG("Filled-in default"); + } + /* The member is just not present */ + continue; + } + /* Fall through */ + } + + /* Fetch the member from the stream */ + ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); + + if(elm->flags & ATF_OPEN_TYPE) { + rv = OPEN_TYPE_uper_get(opt_codec_ctx, td, st, elm, pd); + } else { + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } + if(rv.code != RC_OK) { + ASN_DEBUG("Failed decode %s in %s", + elm->name, td->name); + FREEMEM(opres); + return rv; + } + } + + /* Optionality map is not needed anymore */ + FREEMEM(opres); + + /* + * Deal with extensions. + */ + if(extpresent) { + ssize_t bmlength; + uint8_t *epres; /* Presence of extension members */ + asn_per_data_t epmd; + + bmlength = uper_get_nslength(pd); + if(bmlength < 0) ASN__DECODE_STARVED; + + ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); + + epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); + if(!epres) ASN__DECODE_STARVED; + + /* Get the extensions map */ + if(per_get_many_bits(pd, epres, 0, bmlength)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + + memset(&epmd, 0, sizeof(epmd)); + epmd.buffer = epres; + epmd.nbits = bmlength; + ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", + td->name, (long)bmlength, *epres); + + /* Go over extensions and read them in */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + int present; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (void *)((char *)st + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + present = per_get_few_bits(&epmd, 1); + if(present <= 0) { + if(present < 0) break; /* No more extensions */ + continue; + } + + ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, + *memb_ptr2); + rv = uper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + if(rv.code != RC_OK) { + FREEMEM(epres); + return rv; + } + } + + /* Skip over overflow extensions which aren't present + * in this system's version of the protocol */ + for(;;) { + ASN_DEBUG("Getting overflow extensions"); + switch(per_get_few_bits(&epmd, 1)) { + case -1: break; + case 0: continue; + default: + if(uper_open_type_skip(opt_codec_ctx, pd)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + ASN_DEBUG("Skipped overflow extension"); + continue; + } + break; + } + + FREEMEM(epres); + } + + if(specs->first_extension >= 0) { + unsigned i; + /* Fill DEFAULT members in extensions */ + for(i = specs->roms_count; i < specs->roms_count + specs->aoms_count; + i++) { + asn_TYPE_member_t *elm; + void **memb_ptr2; /* Pointer to member pointer */ + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + if(!elm->default_value_set) continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + if(*memb_ptr2) continue; + } else { + continue; /* Extensions are all optionals */ + } + + /* Set default value */ + if(elm->default_value_set(memb_ptr2)) { + ASN__DECODE_FAILED; + } + } + } + + rv.consumed = 0; + rv.code = RC_OK; + return rv; +} + +static int +SEQUENCE__handle_extensions(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_per_outp_t *po1, asn_per_outp_t *po2) { + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + int exts_present = 0; + int exts_count = 0; + size_t edx; + + if(specs->first_extension < 0) { + return 0; + } + + /* Find out which extensions are present */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + int present; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + ASN_DEBUG("checking %s:%s (@%" ASN_PRI_SIZE ") present => %d", elm->name, + elm->type->name, edx, present); + exts_count++; + exts_present += present; + + /* Encode as presence marker */ + if(po1 && per_put_few_bits(po1, present, 1)) { + return -1; + } + /* Encode as open type field */ + if(po2 && present + && uper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, + *memb_ptr2, po2)) + return -1; + } + + return exts_present ? exts_count : 0; +} + +asn_enc_rval_t +SEQUENCE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_enc_rval_t er; + int n_extensions; + size_t edx; + size_t i; + + (void)constraints; + + if(!sptr) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE (UPER)", td->name); + + /* + * X.691#18.1 Whether structure is extensible + * and whether to encode extensions + */ + if(specs->first_extension < 0) { + n_extensions = 0; /* There are no extensions to encode */ + } else { + n_extensions = SEQUENCE__handle_extensions(td, sptr, 0, 0); + if(n_extensions < 0) ASN__ENCODE_FAILED; + if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { + ASN__ENCODE_FAILED; + } + } + + /* Encode a presence bitmap */ + for(i = 0; i < specs->roms_count; i++) { + asn_TYPE_member_t *elm; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + int present; + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + /* Eliminate default values */ + if(present && elm->default_value_cmp + && elm->default_value_cmp(*memb_ptr2) == 0) + present = 0; + + ASN_DEBUG("Element %s %s %s->%s is %s", + elm->flags & ATF_POINTER ? "ptr" : "inline", + elm->default_value_cmp ? "def" : "wtv", + td->name, elm->name, present ? "present" : "absent"); + if(per_put_few_bits(po, present, 1)) + ASN__ENCODE_FAILED; + } + + /* + * Encode the sequence ROOT elements. + */ + ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, + td->elements_count); + for(edx = 0; + edx < ((specs->first_extension < 0) ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + ASN_DEBUG("About to encode %s", elm->type->name); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", + elm->name, edx); + if(elm->optional) + continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + ASN_DEBUG("Encoding %s->%s:%s", td->name, elm->name, elm->type->name); + er = elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, *memb_ptr2, + po); + if(er.encoded == -1) return er; + } + + /* No extensions to encode */ + if(!n_extensions) ASN__ENCODED_OK(er); + + ASN_DEBUG("Length of extensions %d bit-map", n_extensions); + /* #18.8. Write down the presence bit-map length. */ + if(uper_put_nslength(po, n_extensions)) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Bit-map of %d elements", n_extensions); + /* #18.7. Encoding the extensions presence bit-map. */ + /* TODO: act upon NOTE in #18.7 for canonical PER */ + if(SEQUENCE__handle_extensions(td, sptr, po, 0) != n_extensions) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Writing %d extensions", n_extensions); + /* #18.9. Encode extensions as open type fields. */ + if(SEQUENCE__handle_extensions(td, sptr, 0, po) != n_extensions) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +SEQUENCE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + void *st = *sptr; /* Target structure. */ + int extpresent; /* Extension additions are present */ + uint8_t *opres; /* Presence of optional root members */ + asn_per_data_t opmd; + asn_dec_rval_t rv; + size_t edx; + + (void)constraints; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as SEQUENCE (APER)", td->name); + + /* Handle extensions */ + if(specs->first_extension < 0) { + extpresent = 0; + } else { + extpresent = per_get_few_bits(pd, 1); + if(extpresent < 0) ASN__DECODE_STARVED; + } + + /* Prepare a place and read-in the presence bitmap */ + memset(&opmd, 0, sizeof(opmd)); + if(specs->roms_count) { + opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); + if(!opres) ASN__DECODE_FAILED; + /* Get the presence map */ + if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { + FREEMEM(opres); + ASN__DECODE_STARVED; + } + opmd.buffer = opres; + opmd.nbits = specs->roms_count; + ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", + td->name, specs->roms_count, *opres); + } else { + opres = 0; + } + + /* + * Get the sequence ROOT elements. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ +#if 0 + int padding; +#endif + + if(IN_EXTENSION_GROUP(specs, edx)) + continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } +#if 0 + /* Get Padding */ + padding = (8 - (pd->moved % 8)) % 8; + if(padding > 0) + ASN_DEBUG("For element %s,offset= %ld Padding bits = %d", td->name, pd->moved, padding); +#if 0 /* old way of removing padding */ + per_get_few_bits(pd, padding); +#else /* Experimental fix proposed by @mhanna123 */ + if(edx != (td->elements_count-1)) + per_get_few_bits(pd, padding); + else { + if(specs->roms_count && (padding > 0)) + ASN_DEBUG(">>>>> not skipping padding of %d bits for element:%ld out of %d", padding, edx, td->elements_count); + else + per_get_few_bits(pd, padding); + } +#endif /* dealing with padding */ +#endif + /* Deal with optionality */ + if(elm->optional) { + int present = per_get_few_bits(&opmd, 1); + ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", + td->name, elm->name, present, + (int)opmd.nboff, (int)opmd.nbits); + if(present == 0) { + /* This element is not present */ + if(elm->default_value_set) { + /* Fill-in DEFAULT */ + if(elm->default_value_set(memb_ptr2)) { + FREEMEM(opres); + ASN__DECODE_FAILED; + } + ASN_DEBUG("Filled-in default"); + } + /* The member is just not present */ + continue; + } + /* Fall through */ + } + + /* Fetch the member from the stream */ + ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); + + if(elm->flags & ATF_OPEN_TYPE) { + rv = OPEN_TYPE_aper_get(opt_codec_ctx, td, st, elm, pd); + } else { + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } + if(rv.code != RC_OK) { + ASN_DEBUG("Failed decode %s in %s", + elm->name, td->name); + FREEMEM(opres); + return rv; + } + } + + /* Optionality map is not needed anymore */ + FREEMEM(opres); + + /* + * Deal with extensions. + */ + if(extpresent) { + ssize_t bmlength; + uint8_t *epres; /* Presence of extension members */ + asn_per_data_t epmd; + + bmlength = aper_get_nslength(pd); + if(bmlength < 0) ASN__DECODE_STARVED; + + ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); + + epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); + if(!epres) ASN__DECODE_STARVED; + + /* Get the extensions map */ + if(per_get_many_bits(pd, epres, 0, bmlength)) + ASN__DECODE_STARVED; + + memset(&epmd, 0, sizeof(epmd)); + epmd.buffer = epres; + epmd.nbits = bmlength; + ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", + td->name, bmlength, *epres); + + /* Go over extensions and read them in */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + int present; + + if(!IN_EXTENSION_GROUP(specs, edx)) { + ASN_DEBUG("%ld is not extension", edx); + continue; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (void *)((char *)st + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + present = per_get_few_bits(&epmd, 1); + if(present <= 0) { + if(present < 0) break; /* No more extensions */ + continue; + } + + ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, *memb_ptr2); + rv = aper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + if(rv.code != RC_OK) { + FREEMEM(epres); + return rv; + } + } + + /* Skip over overflow extensions which aren't present + * in this system's version of the protocol */ + for(;;) { + ASN_DEBUG("Getting overflow extensions"); + switch(per_get_few_bits(&epmd, 1)) { + case -1: + break; + case 0: + continue; + default: + if(aper_open_type_skip(opt_codec_ctx, pd)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + } + break; + } + + FREEMEM(epres); + } + + /* Fill DEFAULT members in extensions */ + for(edx = specs->roms_count; edx < specs->roms_count + + specs->aoms_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void **memb_ptr2; /* Pointer to member pointer */ + + if(!elm->default_value_set) continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + + elm->memb_offset); + if(*memb_ptr2) continue; + } else { + continue; /* Extensions are all optionals */ + } + + /* Set default value */ + if(elm->default_value_set(memb_ptr2)) { + ASN__DECODE_FAILED; + } + } + + rv.consumed = 0; + rv.code = RC_OK; + return rv; +} + +static int +SEQUENCE_handle_extensions_aper(const asn_TYPE_descriptor_t *td, + const void *sptr, + asn_per_outp_t *po1, asn_per_outp_t *po2) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + int exts_present = 0; + int exts_count = 0; + size_t edx; + + if(specs->first_extension < 0) { + return 0; + } + + /* Find out which extensions are present */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + int present; + + if(!IN_EXTENSION_GROUP(specs, edx)) { + ASN_DEBUG("%s (@%ld) is not extension", elm->type->name, edx); + continue; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + ASN_DEBUG("checking %s (@%ld) present => %d", + elm->type->name, edx, present); + exts_count++; + exts_present += present; + + /* Encode as presence marker */ + if(po1 && per_put_few_bits(po1, present, 1)) + return -1; + /* Encode as open type field */ + if(po2 && present && aper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, *memb_ptr2, po2)) + return -1; + + } + + return exts_present ? exts_count : 0; +} + +asn_enc_rval_t +SEQUENCE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_enc_rval_t er; + int n_extensions; + size_t edx; + size_t i; + + (void)constraints; + + if(!sptr) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE (APER)", td->name); + + /* + * X.691#18.1 Whether structure is extensible + * and whether to encode extensions + */ + if(specs->first_extension < 0) { + n_extensions = 0; /* There are no extensions to encode */ + } else { + n_extensions = SEQUENCE_handle_extensions_aper(td, sptr, 0, 0); + if(n_extensions < 0) ASN__ENCODE_FAILED; + if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { + ASN__ENCODE_FAILED; + } + } + + /* Encode a presence bitmap */ + for(i = 0; i < specs->roms_count; i++) { + asn_TYPE_member_t *elm; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + int present; + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + /* Eliminate default values */ + if(present && elm->default_value_cmp + && elm->default_value_cmp(memb_ptr2) == 0) + present = 0; + + ASN_DEBUG("Element %s %s %s->%s is %s", + elm->flags & ATF_POINTER ? "ptr" : "inline", + elm->default_value_cmp ? "def" : "wtv", + td->name, elm->name, present ? "present" : "absent"); + if(per_put_few_bits(po, present, 1)) + ASN__ENCODE_FAILED; + } + + /* + * Encode the sequence ROOT elements. + */ + ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, + td->elements_count); + for(edx = 0; + edx < ((specs->first_extension < 0) ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + + if(IN_EXTENSION_GROUP(specs, edx)) + continue; + + ASN_DEBUG("About to encode %s", elm->type->name); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + ASN_DEBUG("Element %s %ld not present", + elm->name, edx); + if(elm->optional) + continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(memb_ptr2) == 0) + continue; + + ASN_DEBUG("Encoding %s->%s", td->name, elm->name); + er = elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, + *memb_ptr2, po); + if(er.encoded == -1) + return er; + } + + /* No extensions to encode */ + if(!n_extensions) ASN__ENCODED_OK(er); + + ASN_DEBUG("Length of %d bit-map", n_extensions); + /* #18.8. Write down the presence bit-map length. */ + if(aper_put_nslength(po, n_extensions)) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Bit-map of %d elements", n_extensions); + /* #18.7. Encoding the extensions presence bit-map. */ + /* TODO: act upon NOTE in #18.7 for canonical PER */ + if(SEQUENCE_handle_extensions_aper(td, sptr, po, 0) != n_extensions) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Writing %d extensions", n_extensions); + /* #18.9. Encode extensions as open type fields. */ + if(SEQUENCE_handle_extensions_aper(td, sptr, 0, po) != n_extensions) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +int +SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + size_t edx; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *amemb; + const void *bmemb; + int ret; + + if(elm->flags & ATF_POINTER) { + amemb = + *(const void *const *)((const char *)aptr + elm->memb_offset); + bmemb = + *(const void *const *)((const char *)bptr + elm->memb_offset); + if(!amemb) { + if(!bmemb) continue; + if(elm->default_value_cmp + && elm->default_value_cmp(bmemb) == 0) { + /* A is absent, but B is present and equal to DEFAULT */ + continue; + } + return -1; + } else if(!bmemb) { + if(elm->default_value_cmp + && elm->default_value_cmp(amemb) == 0) { + /* B is absent, but A is present and equal to DEFAULT */ + continue; + } + return 1; + } + } else { + amemb = (const void *)((const char *)aptr + elm->memb_offset); + bmemb = (const void *)((const char *)bptr + elm->memb_offset); + } + + ret = elm->type->op->compare_struct(elm->type, amemb, bmemb); + if(ret != 0) return ret; + } + + return 0; +} + +asn_TYPE_operation_t asn_OP_SEQUENCE = { + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_compare, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + SEQUENCE_decode_oer, + SEQUENCE_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + SEQUENCE_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; + + +asn_random_fill_result_t +SEQUENCE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constr, + size_t max_length) { + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + void *st = *sptr; + size_t edx; + + if(max_length == 0) return result_skipped; + + (void)constr; + + if(st == NULL) { + st = CALLOC(1, specs->struct_size); + if(st == NULL) { + return result_failed; + } + } + + for(edx = 0; edx < td->elements_count; edx++) { + const asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + asn_random_fill_result_t tmpres; + + if(elm->optional && asn_random_between(0, 4) == 2) { + /* Sometimes decide not to fill the optional value */ + continue; + } + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + tmpres = elm->type->op->random_fill( + elm->type, memb_ptr2, &elm->encoding_constraints, + max_length > result_ok.length ? max_length - result_ok.length : 0); + switch(tmpres.code) { + case ARFILL_OK: + result_ok.length += tmpres.length; + continue; + case ARFILL_SKIPPED: + assert(!(elm->flags & ATF_POINTER) || *memb_ptr2 == NULL); + continue; + case ARFILL_FAILED: + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + return tmpres; + } + } + + *sptr = st; + + return result_ok; +} + diff --git a/vcits/asn1c/src/constr_SEQUENCE_OF.c b/vcits/asn1c/src/constr_SEQUENCE_OF.c new file mode 100644 index 0000000..2a500c3 --- /dev/null +++ b/vcits/asn1c/src/constr_SEQUENCE_OF.c @@ -0,0 +1,358 @@ +/*- + * Copyright (c) 2003, 2004, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * The DER encoder of the SEQUENCE OF type. + */ +asn_enc_rval_t +SEQUENCE_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(ptr); + size_t computed_size = 0; + ssize_t encoding_size = 0; + asn_enc_rval_t erval; + int edx; + + ASN_DEBUG("Estimating size of SEQUENCE OF %s", td->name); + + /* + * Gather the length of the underlying members sequence. + */ + for(edx = 0; edx < list->count; edx++) { + void *memb_ptr = list->array[edx]; + if(!memb_ptr) continue; + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + 0, elm->tag, + 0, 0); + if(erval.encoded == -1) + return erval; + computed_size += erval.encoded; + } + + /* + * Encode the TLV for the sequence itself. + */ + encoding_size = der_write_tags(td, computed_size, tag_mode, 1, tag, + cb, app_key); + if(encoding_size == -1) { + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = ptr; + return erval; + } + + computed_size += encoding_size; + if(!cb) { + erval.encoded = computed_size; + ASN__ENCODED_OK(erval); + } + + ASN_DEBUG("Encoding members of SEQUENCE OF %s", td->name); + + /* + * Encode all members. + */ + for(edx = 0; edx < list->count; edx++) { + void *memb_ptr = list->array[edx]; + if(!memb_ptr) continue; + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + 0, elm->tag, + cb, app_key); + if(erval.encoded == -1) + return erval; + encoding_size += erval.encoded; + } + + if(computed_size != (size_t)encoding_size) { + /* + * Encoded size is not equal to the computed size. + */ + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = ptr; + } else { + erval.encoded = computed_size; + erval.structure_ptr = 0; + erval.failed_type = 0; + } + + return erval; +} + +asn_enc_rval_t +SEQUENCE_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(sptr); + const char *mname = specs->as_XMLValueList + ? 0 + : ((*elm->name) ? elm->name : elm->type->xml_tag); + size_t mlen = mname ? strlen(mname) : 0; + int xcan = (flags & XER_F_CANONICAL); + int i; + + if(!sptr) ASN__ENCODE_FAILED; + + er.encoded = 0; + + for(i = 0; i < list->count; i++) { + asn_enc_rval_t tmper; + void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + if(mname) { + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + } + + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, + flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + if(tmper.encoded == 0 && specs->as_XMLValueList) { + const char *name = elm->type->xml_tag; + size_t len = strlen(name); + if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1); + ASN__CALLBACK3("<", 1, name, len, "/>", 2); + } + + if(mname) { + ASN__CALLBACK3("", 1); + } + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_enc_rval_t +SEQUENCE_OF_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_anonymous_sequence_ *list; + const asn_per_constraint_t *ct; + asn_enc_rval_t er; + const asn_TYPE_member_t *elm = td->elements; + size_t encoded_edx; + + if(!sptr) ASN__ENCODE_FAILED; + list = _A_CSEQUENCE_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = + (list->count < ct->lower_bound || list->count > ct->upper_bound); + ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) { + ASN__ENCODE_FAILED; + } + + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; + } else if(list->count == 0) { + /* When the list is empty add only the length determinant + * X.691, #20.6 and #11.9.4.1 + */ + if (uper_put_length(po, 0, 0)) { + ASN__ENCODE_FAILED; + } + ASN__ENCODED_OK(er); + } + + for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { + ssize_t may_encode; + size_t edx; + int need_eom = 0; + + if(ct && ct->effective_bits >= 0) { + may_encode = list->count; + } else { + may_encode = + uper_put_length(po, list->count - encoded_edx, &need_eom); + if(may_encode < 0) ASN__ENCODE_FAILED; + } + + for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { + void *memb_ptr = list->array[edx]; + if(!memb_ptr) ASN__ENCODE_FAILED; + er = elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, memb_ptr, + po); + if(er.encoded == -1) ASN__ENCODE_FAILED; + } + + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + + encoded_edx += may_encode; + } + + ASN__ENCODED_OK(er); +} + +asn_enc_rval_t +SEQUENCE_OF_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_anonymous_sequence_ *list; + const asn_per_constraint_t *ct; + asn_enc_rval_t er; + asn_TYPE_member_t *elm = td->elements; + int seq; + + if(!sptr) ASN__ENCODE_FAILED; + list = _A_CSEQUENCE_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF size (%d) using ALIGNED PER", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = (list->count < ct->lower_bound + || list->count > ct->upper_bound); + ASN_DEBUG("lb %ld ub %ld %s", + ct->lower_bound, ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) + ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) + ASN__ENCODE_FAILED; + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ +/* if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; +*/ + if (aper_put_length(po, ct->upper_bound - ct->lower_bound + 1, list->count - ct->lower_bound) < 0) + ASN__ENCODE_FAILED; + } + + for(seq = -1; seq < list->count;) { + ssize_t mayEncode; + if(seq < 0) seq = 0; + if(ct && ct->effective_bits >= 0) { + mayEncode = list->count; + } else { + mayEncode = aper_put_length(po, -1, list->count - seq); + if(mayEncode < 0) ASN__ENCODE_FAILED; + } + + while(mayEncode--) { + void *memb_ptr = list->array[seq++]; + if(!memb_ptr) ASN__ENCODE_FAILED; + er = elm->type->op->aper_encoder(elm->type, + elm->encoding_constraints.per_constraints, memb_ptr, po); + if(er.encoded == -1) + ASN__ENCODE_FAILED; + } + } + + ASN__ENCODED_OK(er); +} +#endif /* ASN_DISABLE_PER_SUPPORT */ + +int +SEQUENCE_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_anonymous_sequence_ *a = _A_CSEQUENCE_FROM_VOID(aptr); + const asn_anonymous_sequence_ *b = _A_CSEQUENCE_FROM_VOID(bptr); + ssize_t idx; + + if(a && b) { + ssize_t common_length = (a->count < b->count ? a->count : b->count); + for(idx = 0; idx < common_length; idx++) { + int ret = td->elements->type->op->compare_struct( + td->elements->type, a->array[idx], b->array[idx]); + if(ret) return ret; + } + + if(idx < b->count) /* more elements in b */ + return -1; /* a is shorter, so put it first */ + if(idx < a->count) return 1; + + } else if(!a) { + return -1; + } else if(!b) { + return 1; + } + + return 0; +} + + +asn_TYPE_operation_t asn_OP_SEQUENCE_OF = { + SEQUENCE_OF_free, + SEQUENCE_OF_print, + SEQUENCE_OF_compare, + SEQUENCE_OF_decode_ber, + SEQUENCE_OF_encode_der, + SEQUENCE_OF_decode_xer, + SEQUENCE_OF_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + SEQUENCE_OF_decode_oer, /* Same as SET OF decoder. */ + SEQUENCE_OF_encode_oer, /* Same as SET OF encoder */ +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + SEQUENCE_OF_decode_uper, /* Same as SET OF decoder */ + SEQUENCE_OF_encode_uper, + SEQUENCE_OF_decode_aper, + SEQUENCE_OF_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + SEQUENCE_OF_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; + diff --git a/vcits/asn1c/src/constr_SEQUENCE_oer.c b/vcits/asn1c/src/constr_SEQUENCE_oer.c new file mode 100644 index 0000000..4f290a1 --- /dev/null +++ b/vcits/asn1c/src/constr_SEQUENCE_oer.c @@ -0,0 +1,561 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_DISABLE_OER_SUPPORT + +#include +#include +#include +#include + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#undef PHASE_OUT +#define NEXT_PHASE(ctx) \ + do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) + +/* + * Check whether we are inside the extensions group. + */ +#define IN_EXTENSION_GROUP(specs, memb_idx) \ + ((specs)->first_extension >= 0 \ + && (unsigned)(specs)->first_extension <= (memb_idx)) + +#define IN_ROOT_GROUP_PRED(edx) \ + edx < (specs->first_extension < 0 ? td->elements_count \ + : (size_t)specs->first_extension) + +#define FOR_IN_ROOT_GROUP(edx) for(edx = 0; IN_ROOT_GROUP_PRED(edx); edx++) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) do { \ + rval.code = _code; \ + rval.consumed = consumed_myself;\ + return rval; \ + } while(0) + +/* + * Return pointer to a member. + */ +static void ** +element_ptrptr(void *struct_ptr, asn_TYPE_member_t *elm, void **tmp_save_ptr) { + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + return (void **)((char *)struct_ptr + elm->memb_offset); + } else { + assert(tmp_save_ptr); + *tmp_save_ptr = (void *)((char *)struct_ptr + elm->memb_offset); + return tmp_save_ptr; + } +} + +static const void * +element_ptr(const void *struct_ptr, const asn_TYPE_member_t *elm) { + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + return *(const void *const *)((const char *)struct_ptr + + elm->memb_offset); + } else { + return (const void *)((const char *)struct_ptr + elm->memb_offset); + } +} + +asn_dec_rval_t +SEQUENCE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **struct_ptr, + const void *ptr, size_t size) { + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_dec_rval_t rval = {RC_OK, 0}; + void *st = *struct_ptr; /* Target structure */ + asn_struct_ctx_t *ctx; /* Decoder context */ + size_t consumed_myself = 0; /* Consumed bytes from ptr. */ + + (void)constraints; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously. + */ + switch(ctx->phase) { + case 0: { + /* + * Fetch preamble. + */ + asn_bit_data_t *preamble; + int has_extensions_bit = (specs->first_extension >= 0); + size_t preamble_bits = (has_extensions_bit + specs->roms_count); + size_t preamble_bytes = ((7 + preamble_bits) >> 3); + + ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 0", td->name); + + ASN_DEBUG( + "Expecting preamble bits %" ASN_PRI_SIZE " for %s (including %d extension bits)", + preamble_bits, td->name, has_extensions_bit); + + if(preamble_bytes > size) { + ASN__DECODE_STARVED; + } + + preamble = asn_bit_data_new_contiguous(ptr, preamble_bits); + if(!preamble) { + RETURN(RC_FAIL); + } + preamble->nboff = has_extensions_bit; + ctx->ptr = preamble; + ADVANCE(preamble_bytes); + } + NEXT_PHASE(ctx); + /* FALL THROUGH */ + case 1: { + /* Decode components of the extension root */ + asn_bit_data_t *preamble = ctx->ptr; + size_t edx; + + ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 1 (Root)", td->name); + + assert(preamble); + + for(edx = (ctx->step >> 1); IN_ROOT_GROUP_PRED(edx); + edx++, ctx->step = (ctx->step & ~1) + 2) { + asn_TYPE_member_t *elm = &td->elements[edx]; + + ASN_DEBUG("Decoding %s->%s", td->name, elm->name); + + assert(!IN_EXTENSION_GROUP(specs, edx)); + + if(ctx->step & 1) { + goto microphase2_decode_continues; + } + + + if(elm->optional) { + int32_t present = asn_get_few_bits(preamble, 1); + if(present < 0) { + ASN_DEBUG("Presence map ended prematurely: %d", present); + RETURN(RC_FAIL); + } else if(present == 0) { + if(elm->default_value_set) { + /* Fill-in DEFAULT */ + void *tmp; + if(elm->default_value_set( + element_ptrptr(st, elm, &tmp))) { + RETURN(RC_FAIL); + } + } + /* The member is not present. */ + continue; + } + /* Present OPTIONAL or DEFAULT component. */ + } + + /* + * MICROPHASE 2: Invoke the member-specific decoder. + */ + ctx->step |= 1; /* Confirm entering next microphase */ + microphase2_decode_continues: + if(elm->flags & ATF_OPEN_TYPE) { + rval = OPEN_TYPE_oer_get(opt_codec_ctx, td, st, elm, ptr, size); + } else { + void *save_memb_ptr; /* Temporary reference. */ + void **memb_ptr2; /* Pointer to a pointer to a memmber */ + + memb_ptr2 = element_ptrptr(st, elm, &save_memb_ptr); + + rval = elm->type->op->oer_decoder( + opt_codec_ctx, elm->type, + elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, + size); + } + switch(rval.code) { + case RC_OK: + ADVANCE(rval.consumed); + break; + case RC_WMORE: + ASN_DEBUG("More bytes needed at element %s \"%s\"", td->name, + elm->name); + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + case RC_FAIL: + ASN_DEBUG("Decoding failed at element %s \"%s\"", td->name, + elm->name); + RETURN(RC_FAIL); + } + } /* for(all root members) */ + + } + NEXT_PHASE(ctx); + /* FALL THROUGH */ + case 2: + assert(ctx->ptr); + { + /* Cleanup preamble. */ + asn_bit_data_t *preamble = ctx->ptr; + asn_bit_data_t *extadds; + int has_extensions_bit = (specs->first_extension >= 0); + int extensions_present = + has_extensions_bit + && (preamble->buffer == NULL + || (((const uint8_t *)preamble->buffer)[0] & 0x80)); + uint8_t unused_bits; + size_t len = 0; + ssize_t len_len; + + ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 2", td->name); + + preamble->buffer = 0; /* Will do extensions_present==1 next time. */ + + if(!extensions_present) { + ctx->phase = 10; + RETURN(RC_OK); + } + + /* + * X.696 (08/2015) #16.1 (c), #16.4 + * Read in the extension addition presence bitmap. + */ + + len_len = oer_fetch_length(ptr, size, &len); + if(len_len > 0) { + ADVANCE(len_len); + } else if(len_len < 0) { + RETURN(RC_FAIL); + } else { + RETURN(RC_WMORE); + } + + if(len == 0) { + /* 16.4.1-2 */ + RETURN(RC_FAIL); + } else if(len > size) { + RETURN(RC_WMORE); + } + + /* Account for unused bits */ + unused_bits = 0x7 & *(const uint8_t *)ptr; + ADVANCE(1); + len--; + if(unused_bits && len == 0) { + RETURN(RC_FAIL); + } + + /* Get the extensions map */ + extadds = asn_bit_data_new_contiguous(ptr, len * 8 - unused_bits); + if(!extadds) { + RETURN(RC_FAIL); + } + FREEMEM(preamble); + ctx->ptr = extadds; + ADVANCE(len); + } + NEXT_PHASE(ctx); + ctx->step = + (specs->first_extension < 0 ? td->elements_count + : (size_t)specs->first_extension); + /* Fall through */ + case 3: + ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 3 (Extensions)", td->name); + for(; ctx->step < (signed)td->elements_count; ctx->step++) { + asn_bit_data_t *extadds = ctx->ptr; + size_t edx = ctx->step; + asn_TYPE_member_t *elm = &td->elements[edx]; + void *tmp_memb_ptr; + void **memb_ptr2 = element_ptrptr(st, elm, &tmp_memb_ptr); + + switch(asn_get_few_bits(extadds, 1)) { + case -1: + /* + * Not every one of our extensions is known to the remote side. + * Continue filling in their defaults though. + */ + /* Fall through */ + case 0: + /* Fill-in DEFAULT */ + if(elm->default_value_set + && elm->default_value_set(memb_ptr2)) { + RETURN(RC_FAIL); + } + continue; + case 1: { + /* Read OER open type */ + ssize_t ot_size = + oer_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.oer_constraints, + memb_ptr2, ptr, size); + assert(ot_size <= (ssize_t)size); + if(ot_size > 0) { + ADVANCE(ot_size); + } else if(ot_size < 0) { + RETURN(RC_FAIL); + } else { + /* Roll back open type parsing */ + asn_get_undo(extadds, 1); + RETURN(RC_WMORE); + } + break; + } + default: + RETURN(RC_FAIL); + } + } + + NEXT_PHASE(ctx); + /* Fall through */ + case 4: + ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 4", td->name); + /* Read in the rest of Open Types while ignoring them */ + for(;;) { + asn_bit_data_t *extadds = ctx->ptr; + switch(asn_get_few_bits(extadds, 1)) { + case 0: + continue; + case 1: { + ssize_t skipped = oer_open_type_skip(ptr, size); + if(skipped > 0) { + ADVANCE(skipped); + } else if(skipped < 0) { + RETURN(RC_FAIL); + } else { + asn_get_undo(extadds, 1); + RETURN(RC_WMORE); + } + continue; + } + case -1: + /* No more Open Type encoded components */ + break; + default: + RETURN(RC_FAIL); + } + break; + } + } + + RETURN(RC_OK); +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +SEQUENCE_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + size_t computed_size = 0; + int has_extensions_bit = (specs->first_extension >= 0); + size_t preamble_bits = (has_extensions_bit + specs->roms_count); + uint32_t has_extensions = 0; + size_t edx; + int ret; + + (void)constraints; + + if(preamble_bits) { + asn_bit_outp_t preamble; + + memset(&preamble, 0, sizeof(preamble)); + preamble.output = cb; + preamble.op_key = app_key; + + if(has_extensions_bit) { + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr = element_ptr(sptr, elm); + if(memb_ptr) { + if(elm->default_value_cmp + && elm->default_value_cmp(memb_ptr) == 0) { + /* Do not encode default values in extensions */ + } else { + has_extensions = 1; + break; + } + } + } + ret = asn_put_few_bits(&preamble, has_extensions, 1); + assert(ret == 0); + if(ret < 0) { + ASN__ENCODE_FAILED; + } + } + + /* + * Encode optional components bitmap. + */ + if(specs->roms_count) { + FOR_IN_ROOT_GROUP(edx) { + asn_TYPE_member_t *elm = &td->elements[edx]; + + if(IN_EXTENSION_GROUP(specs, edx)) break; + + if(elm->optional) { + const void *memb_ptr = element_ptr(sptr, elm); + uint32_t has_component = memb_ptr != NULL; + if(has_component && elm->default_value_cmp + && elm->default_value_cmp(memb_ptr) == 0) { + has_component = 0; + } + ret = asn_put_few_bits(&preamble, has_component, 1); + if(ret < 0) { + ASN__ENCODE_FAILED; + } + } + } + } + + asn_put_aligned_flush(&preamble); + computed_size += preamble.flushed_bytes; + } /* if(preamble_bits) */ + + /* + * Put root components and extensions root. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + asn_enc_rval_t er; + const void *memb_ptr; + + if(IN_EXTENSION_GROUP(specs, edx)) break; + + memb_ptr = element_ptr(sptr, elm); + if(memb_ptr) { + if(elm->default_value_cmp + && elm->default_value_cmp(memb_ptr) == 0) { + /* Skip default values in encoding */ + continue; + } + } else { + if(elm->optional) continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + if(!elm->type->op->oer_encoder) { + ASN_DEBUG("OER encoder is not defined for type %s", elm->type->name); + ASN__ENCODE_FAILED; + } + er = elm->type->op->oer_encoder( + elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, + app_key); + if(er.encoded == -1) { + ASN_DEBUG("... while encoding %s member \"%s\"\n", td->name, + elm->name); + return er; + } + computed_size += er.encoded; + } + + /* + * Before encode extensions, encode extensions additions presense bitmap + # X.696 (08/2015) #16.4. + */ + if(has_extensions) { + asn_bit_outp_t extadds; + + /* Special case allowing us to use exactly one byte for #8.6 */ + size_t aoms_length_bits = specs->aoms_count; + size_t aoms_length_bytes = (7 + aoms_length_bits) >> 3; + uint8_t unused_bits = 0x07 & (8 - (aoms_length_bits & 0x07)); + + assert(1 + aoms_length_bytes <= 127); + + memset(&extadds, 0, sizeof(extadds)); + extadds.output = cb; + extadds.op_key = app_key; + + /* #8.6 length determinant */ + ret = asn_put_few_bits(&extadds, (1 + aoms_length_bytes), 8); + if(ret < 0) ASN__ENCODE_FAILED; + + /* Number of unused bytes, #16.4.2 */ + ret = asn_put_few_bits(&extadds, unused_bits, 8); + if(ret < 0) ASN__ENCODE_FAILED; + + /* Encode presence bitmap #16.4.3 */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr = element_ptr(sptr, elm); + if(memb_ptr && elm->default_value_cmp + && elm->default_value_cmp(memb_ptr) == 0) { + memb_ptr = 0; /* Do not encode default value. */ + } + ret |= asn_put_few_bits(&extadds, memb_ptr ? 1 : 0, 1); + } + if(ret < 0) ASN__ENCODE_FAILED; + + asn_put_aligned_flush(&extadds); + computed_size += extadds.flushed_bytes; + + /* Now, encode extensions */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr = element_ptr(sptr, elm); + + if(memb_ptr) { + if(elm->default_value_cmp + && elm->default_value_cmp(memb_ptr) == 0) { + /* Do not encode default value. */ + } else { + ssize_t wrote = oer_open_type_put( + elm->type, elm->encoding_constraints.oer_constraints, + memb_ptr, cb, app_key); + if(wrote == -1) { + ASN__ENCODE_FAILED; + } + computed_size += wrote; + } + } else if(!elm->optional) { + ASN__ENCODE_FAILED; + } + } + } /* if(has_extensions) */ + + + { + asn_enc_rval_t er = {0, 0, 0}; + er.encoded = computed_size; + ASN__ENCODED_OK(er); + } +} + +#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/vcits/asn1c/src/constr_SET.c b/vcits/asn1c/src/constr_SET.c new file mode 100644 index 0000000..554a7dd --- /dev/null +++ b/vcits/asn1c/src/constr_SET.c @@ -0,0 +1,1149 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* Check that all the mandatory members are present */ +static int _SET_is_populated(const asn_TYPE_descriptor_t *td, const void *st); + +/* + * Number of bytes left for this structure. + * (ctx->left) indicates the number of bytes _transferred_ for the structure. + * (size) contains the number of bytes in the buffer passed. + */ +#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) + +/* + * If the subprocessor function returns with an indication that it wants + * more data, it may well be a fatal decoding problem, because the + * size is constrained by the 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * The TLV length clearly indicates that one byte is expected in V, but + * if the V processor returns with "want more data" even if the buffer + * contains way more data than the V processor have seen. + */ +#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num;\ + size -= num; \ + if(ctx->left >= 0) \ + ctx->left -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) do { \ + rval.code = _code; \ + rval.consumed = consumed_myself;\ + return rval; \ + } while(0) + +/* + * Tags are canonically sorted in the tag2element map. + */ +static int +_t2e_cmp(const void *ap, const void *bp) { + const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; + const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; + + int a_class = BER_TAG_CLASS(a->el_tag); + int b_class = BER_TAG_CLASS(b->el_tag); + + if(a_class == b_class) { + ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); + ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); + + if(a_value == b_value) + return 0; + else if(a_value < b_value) + return -1; + else + return 1; + } else if(a_class < b_class) { + return -1; + } else { + return 1; + } +} + +/* + * The decoder of the SET type. + */ +asn_dec_rval_t +SET_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *ptr, size_t size, int tag_mode) { + /* + * Bring closer parts of structure description. + */ + const asn_SET_specifics_t *specs = (const asn_SET_specifics_t *)td->specifics; + const asn_TYPE_member_t *elements = td->elements; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ber_tlv_tag_t tlv_tag; /* T from TLV */ + asn_dec_rval_t rval; /* Return code from subparsers */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + size_t edx; /* SET element's index */ + + ASN_DEBUG("Decoding %s as SET", td->name); + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously + */ + switch(ctx->phase) { + case 0: + /* + * PHASE 0. + * Check that the set of tags associated with given structure + * perfectly fits our expectations. + */ + + rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, + tag_mode, 1, &ctx->left, 0); + if(rval.code != RC_OK) { + ASN_DEBUG("%s tagging check failed: %d", + td->name, rval.code); + return rval; + } + + if(ctx->left >= 0) + ctx->left += rval.consumed; /* ?Substracted below! */ + ADVANCE(rval.consumed); + + NEXT_PHASE(ctx); + + ASN_DEBUG("Structure advertised %ld bytes, " + "buffer contains %ld", (long)ctx->left, (long)size); + + /* Fall through */ + case 1: + /* + * PHASE 1. + * From the place where we've left it previously, + * try to decode the next member from the list of + * this structure's elements. + * Note that elements in BER may arrive out of + * order, yet DER mandates that they shall arive in the + * canonical order of their tags. So, there is a room + * for optimization. + */ + for(;; ctx->step = 0) { + const asn_TYPE_tag2member_t *t2m; + asn_TYPE_tag2member_t key; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + ssize_t tag_len; /* Length of TLV's T */ + + if(ctx->step & 1) { + edx = ctx->step >> 1; + goto microphase2; + } + + /* + * MICROPHASE 1: Synchronize decoding. + */ + + if(ctx->left == 0) + /* + * No more things to decode. + * Exit out of here and check whether all mandatory + * elements have been received (in the next phase). + */ + break; + + /* + * Fetch the T from TLV. + */ + tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); + switch(tag_len) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) + RETURN(RC_FAIL); + else + RETURN(RC_WMORE); + } else if(((const uint8_t *)ptr)[1] == 0) { + /* + * Found the terminator of the + * indefinite length structure. + * Invoke the generic finalization function. + */ + goto phase3; + } + } + + key.el_tag = tlv_tag; + t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, + specs->tag2el, specs->tag2el_count, + sizeof(specs->tag2el[0]), _t2e_cmp); + if(t2m) { + /* + * Found the element corresponding to the tag. + */ + edx = t2m->el_no; + ctx->step = (edx << 1) + 1; + ASN_DEBUG("Got tag %s (%s), edx %" ASN_PRI_SSIZE "", + ber_tlv_tag_string(tlv_tag), td->name, edx); + } else if(specs->extensible == 0) { + ASN_DEBUG("Unexpected tag %s " + "in non-extensible SET %s", + ber_tlv_tag_string(tlv_tag), td->name); + RETURN(RC_FAIL); + } else { + /* Skip this tag */ + ssize_t skip; + + ASN_DEBUG("Skipping unknown tag %s", + ber_tlv_tag_string(tlv_tag)); + + skip = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + (const char *)ptr + tag_len, LEFT - tag_len); + + switch(skip) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + ADVANCE(skip + tag_len); + continue; /* Try again with the next tag */ + } + + /* + * MICROPHASE 2: Invoke the member-specific decoder. + */ + microphase2: + + /* + * Check for duplications: must not overwrite + * already decoded elements. + */ + if(ASN_SET_ISPRESENT2((char *)st + specs->pres_offset, edx)) { + ASN_DEBUG("SET %s: Duplicate element %s (%" ASN_PRI_SSIZE ")", + td->name, elements[edx].name, edx); + RETURN(RC_FAIL); + } + + /* + * Compute the position of the member inside a structure, + * and also a type of containment (it may be contained + * as pointer or using inline inclusion). + */ + if(elements[edx].flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elements[edx].memb_offset); + } else { + /* + * A pointer to a pointer + * holding the start of the structure + */ + memb_ptr = (char *)st + elements[edx].memb_offset; + memb_ptr2 = &memb_ptr; + } + /* + * Invoke the member fetch routine according to member's type + */ + rval = elements[edx].type->op->ber_decoder(opt_codec_ctx, + elements[edx].type, + memb_ptr2, ptr, LEFT, + elements[edx].tag_mode); + switch(rval.code) { + case RC_OK: + ASN_SET_MKPRESENT((char *)st + specs->pres_offset, edx); + break; + case RC_WMORE: /* More data expected */ + if(!SIZE_VIOLATION) { + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + } + /* Fall through */ + case RC_FAIL: /* Fatal error */ + RETURN(RC_FAIL); + } /* switch(rval) */ + + ADVANCE(rval.consumed); + } /* for(all structure members) */ + + phase3: + ctx->phase = 3; + /* Fall through */ + case 3: + case 4: /* Only 00 is expected */ + ASN_DEBUG("SET %s Leftover: %ld, size = %ld", + td->name, (long)ctx->left, (long)size); + + /* + * Skip everything until the end of the SET. + */ + while(ctx->left) { + ssize_t tl, ll; + + tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); + switch(tl) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + /* + * If expected <0><0>... + */ + if(ctx->left < 0 + && ((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) + RETURN(RC_FAIL); + else + RETURN(RC_WMORE); + } else if(((const uint8_t *)ptr)[1] == 0) { + /* + * Correctly finished with <0><0>. + */ + ADVANCE(2); + ctx->left++; + ctx->phase = 4; + continue; + } + } + + if(specs->extensible == 0 || ctx->phase == 4) { + ASN_DEBUG("Unexpected continuation " + "of a non-extensible type %s " + "(ptr=%02x)", + td->name, *(const uint8_t *)ptr); + RETURN(RC_FAIL); + } + + ll = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + (const char *)ptr + tl, LEFT - tl); + switch(ll) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + ADVANCE(tl + ll); + } + + ctx->phase = 5; + /* Fall through */ + case 5: + /* Check that all mandatory elements are present. */ + if(!_SET_is_populated(td, st)) + RETURN(RC_FAIL); + + NEXT_PHASE(ctx); + } + + RETURN(RC_OK); +} + +static int +_SET_is_populated(const asn_TYPE_descriptor_t *td, const void *st) { + const asn_SET_specifics_t *specs = (const asn_SET_specifics_t *)td->specifics; + size_t edx; + + /* + * Check that all mandatory elements are present. + */ + for(edx = 0; edx < td->elements_count; + edx += (8 * sizeof(specs->_mandatory_elements[0]))) { + unsigned int midx, pres, must; + + midx = edx/(8 * sizeof(specs->_mandatory_elements[0])); + pres = ((const unsigned int *)((const char *)st + + specs->pres_offset))[midx]; + must = sys_ntohl(specs->_mandatory_elements[midx]); + + if((pres & must) == must) { + /* + * Yes, everything seems to be in place. + */ + } else { + ASN_DEBUG("One or more mandatory elements " + "of a SET %s %d (%08x.%08x)=%08x " + "are not present", + td->name, + midx, + pres, + must, + (~(pres & must) & must) + ); + return 0; + } + } + + return 1; +} + +/* + * The DER encoder of the SET type. + */ +asn_enc_rval_t +SET_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, int tag_mode, + ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) { + const asn_SET_specifics_t *specs = (const asn_SET_specifics_t *)td->specifics; + size_t computed_size = 0; + asn_enc_rval_t er; + int t2m_build_own = (specs->tag2el_count != td->elements_count); + const asn_TYPE_tag2member_t *t2m; + asn_TYPE_tag2member_t *t2m_build; + size_t t2m_count; + ssize_t ret; + size_t edx; + + /* + * Use existing, or build our own tags map. + */ + if(t2m_build_own) { + t2m_build = (asn_TYPE_tag2member_t *)CALLOC(td->elements_count, + sizeof(t2m_build[0])); + if(!t2m_build) ASN__ENCODE_FAILED; + t2m_count = 0; + } else { + t2m_build = NULL; + /* + * There is no untagged CHOICE in this SET. + * Employ existing table. + */ + } + + /* + * Gather the length of the underlying members sequence. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + asn_enc_rval_t tmper; + const void *memb_ptr_dontuse; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + /* + * Compute the length of the encoding of this member. + */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + if(!elm->optional) { + /* Mandatory elements missing */ + FREEMEM(t2m_build); + ASN__ENCODE_FAILED; + } + if(t2m_build) { + t2m_build[t2m_count].el_no = edx; + t2m_build[t2m_count].el_tag = 0; + t2m_count++; + } + continue; + } + } else { + memb_ptr_dontuse = + (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr_dontuse; /* Only use of memb_ptr_dontuse */ + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) { + if(t2m_build) { + t2m_build[t2m_count].el_no = edx; + t2m_build[t2m_count].el_tag = 0; + t2m_count++; + } + continue; + } + + tmper = elm->type->op->der_encoder(elm->type, *memb_ptr2, + elm->tag_mode, elm->tag, + 0, 0); + if(tmper.encoded == -1) + return tmper; + computed_size += tmper.encoded; + + /* + * Remember the outmost tag of this member. + */ + if(t2m_build) { + t2m_build[t2m_count].el_no = edx; + t2m_build[t2m_count].el_tag = asn_TYPE_outmost_tag( + elm->type, *memb_ptr2, elm->tag_mode, elm->tag); + t2m_count++; + } else { + /* + * No dynamic sorting is necessary. + */ + } + } + + /* + * Finalize order of the components. + */ + if(t2m_build) { + /* + * Sort the underlying members according to their + * canonical tags order. DER encoding mandates it. + */ + qsort(t2m_build, t2m_count, sizeof(specs->tag2el[0]), _t2e_cmp); + t2m = t2m_build; + } else { + /* + * Tags are already sorted by the compiler. + */ + t2m = specs->tag2el; + t2m_count = specs->tag2el_count; + } + assert(t2m_count == td->elements_count); + + /* + * Encode the TLV for the sequence itself. + */ + ret = der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); + if(ret == -1) { + FREEMEM(t2m_build); + ASN__ENCODE_FAILED; + } + er.encoded = computed_size + ret; + + if(!cb) { + FREEMEM(t2m_build); + ASN__ENCODED_OK(er); + } + + /* + * Encode all members. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm; + asn_enc_rval_t tmper; + + const void *memb_ptr_dontuse; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + /* Encode according to the tag order */ + elm = &td->elements[t2m[edx].el_no]; + + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) continue; + } else { + memb_ptr_dontuse = + (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr_dontuse; /* Only use of memb_ptr_dontuse */ + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + tmper = elm->type->op->der_encoder(elm->type, *memb_ptr2, + elm->tag_mode, elm->tag, cb, app_key); + if(tmper.encoded == -1) + return tmper; + computed_size -= tmper.encoded; + } + + if(computed_size != 0) { + /* + * Encoded size is not equal to the computed size. + */ + FREEMEM(t2m_build); + ASN__ENCODE_FAILED; + } + + FREEMEM(t2m_build); + ASN__ENCODED_OK(er); +} + +#undef XER_ADVANCE +#define XER_ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + buf_ptr = ((const char *)buf_ptr) + num;\ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Decode the XER (XML) data. + */ +asn_dec_rval_t +SET_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_SET_specifics_t *specs = (const asn_SET_specifics_t *)td->specifics; + const asn_TYPE_member_t *elements = td->elements; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + + /* + * ... and parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + asn_dec_rval_t rval; /* Return value from a decoder */ + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + size_t edx; /* Element index */ + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) RETURN(RC_FAIL); + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + * Phase 2: Processing inner type. + * Phase 3: Skipping unknown extensions. + * Phase 4: PHASED OUT + */ + for(edx = ctx->step; ctx->phase <= 3;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + const asn_TYPE_member_t *elm; + + /* + * Go inside the inner member of a set. + */ + if(ctx->phase == 2) { + asn_dec_rval_t tmprval; + void *memb_ptr_dontuse; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + if(ASN_SET_ISPRESENT2((char *)st + specs->pres_offset, + edx)) { + ASN_DEBUG("SET %s: Duplicate element %s (%" ASN_PRI_SSIZE ")", + td->name, elements[edx].name, edx); + RETURN(RC_FAIL); + } + + elm = &elements[edx]; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr_dontuse = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr_dontuse; /* Only use of memb_ptr_dontuse */ + } + + /* Invoke the inner type decoder, m.b. multiple times */ + tmprval = elm->type->op->xer_decoder(opt_codec_ctx, + elm->type, memb_ptr2, elm->name, + buf_ptr, size); + XER_ADVANCE(tmprval.consumed); + if(tmprval.code != RC_OK) + RETURN(tmprval.code); + ctx->phase = 1; /* Back to body processing */ + ASN_SET_MKPRESENT((char *)st + specs->pres_offset, edx); + ASN_DEBUG("XER/SET phase => %d", ctx->phase); + /* Fall through */ + } + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, + buf_ptr, size, &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + case PXER_TEXT: /* Ignore free-standing text */ + XER_ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); + ASN_DEBUG("XER/SET: tcv = %d, ph=%d", tcv, ctx->phase); + + /* Skip the extensions section */ + if(ctx->phase == 3) { + switch(xer_skip_unknown(tcv, &ctx->left)) { + case -1: + ctx->phase = 4; + RETURN(RC_FAIL); + case 1: + ctx->phase = 1; + /* Fall through */ + case 0: + XER_ADVANCE(ch_size); + continue; + case 2: + ctx->phase = 1; + break; + } + } + + switch(tcv) { + case XCT_CLOSING: + if(ctx->phase == 0) break; + ctx->phase = 0; + /* Fall through */ + case XCT_BOTH: + if(ctx->phase == 0) { + if(_SET_is_populated(td, st)) { + XER_ADVANCE(ch_size); + ctx->phase = 4; /* Phase out */ + RETURN(RC_OK); + } else { + ASN_DEBUG("Premature end of XER SET"); + RETURN(RC_FAIL); + } + } + /* Fall through */ + case XCT_OPENING: + if(ctx->phase == 0) { + XER_ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + } + /* Fall through */ + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + + ASN_DEBUG("XER/SET: tcv=%d, ph=%d", tcv, ctx->phase); + if(ctx->phase != 1) + break; /* Really unexpected */ + + /* + * Search which member corresponds to this tag. + */ + for(edx = 0; edx < td->elements_count; edx++) { + switch(xer_check_tag(buf_ptr, ch_size, + elements[edx].name)) { + case XCT_BOTH: + case XCT_OPENING: + /* + * Process this member. + */ + ctx->step = edx; + ctx->phase = 2; + break; + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + continue; + default: + edx = td->elements_count; + break; /* Phase out */ + } + break; + } + if(edx != td->elements_count) + continue; + + /* It is expected extension */ + if(specs->extensible) { + ASN_DEBUG("Got anticipated extension"); + /* + * Check for (XCT_BOTH or XCT_UNKNOWN_BO) + * By using a mask. Only record a pure + * tags. + */ + if(tcv & XCT_CLOSING) { + /* Found without body */ + } else { + ctx->left = 1; + ctx->phase = 3; /* Skip ...'s */ + } + XER_ADVANCE(ch_size); + continue; + } + + /* Fall through */ + default: + break; + } + + ASN_DEBUG("Unexpected XML tag in SET, expected \"%s\"", + xml_tag); + break; + } + + ctx->phase = 4; /* "Phase out" on hard failure */ + RETURN(RC_FAIL); +} + +asn_enc_rval_t +SET_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_SET_specifics_t *specs = (const asn_SET_specifics_t *)td->specifics; + asn_enc_rval_t er; + int xcan = (flags & XER_F_CANONICAL); + const asn_TYPE_tag2member_t *t2m = specs->tag2el_cxer; + size_t t2m_count = specs->tag2el_cxer_count; + size_t edx; + + if(!sptr) + ASN__ENCODE_FAILED; + + assert(t2m_count == td->elements_count); + + er.encoded = 0; + + for(edx = 0; edx < t2m_count; edx++) { + asn_enc_rval_t tmper; + asn_TYPE_member_t *elm; + const void *memb_ptr; + const char *mname; + size_t mlen; + + elm = &td->elements[t2m[edx].el_no]; + mname = elm->name; + mlen = strlen(elm->name); + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) + continue; + /* Mandatory element missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if(!xcan) + ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + + /* Print the member itself */ + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, + ilevel + 1, flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK3("", 1); + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +int +SET_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + size_t edx; + int ret; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb(td->name, strlen(td->name), app_key) < 0 + || cb(" ::= {", 6, app_key) < 0) + return -1; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) continue; + /* Print line */ + /* Fall through */ + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + _i_INDENT(1); + + /* Print the member's name and stuff */ + if(cb(elm->name, strlen(elm->name), app_key) < 0 + || cb(": ", 2, app_key) < 0) + return -1; + + /* Print the member itself */ + ret = elm->type->op->print_struct(elm->type, memb_ptr, ilevel + 1, + cb, app_key); + if(ret) return ret; + } + + ilevel--; + _i_INDENT(1); + + return (cb("}", 1, app_key) < 0) ? -1 : 0; +} + +void +SET_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + size_t edx; + + if(!td || !ptr) + return; + + ASN_DEBUG("Freeing %s as SET", td->name); + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; + if(elm->flags & ATF_POINTER) { + memb_ptr = *(void **)((char *)ptr + elm->memb_offset); + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } else { + memb_ptr = (void *)((char *)ptr + elm->memb_offset); + ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); + } + } + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, + ((const asn_SET_specifics_t *)(td->specifics))->struct_size); + break; + } +} + +int +SET_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t edx; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* + * Iterate over structure members and check their validity. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) + continue; + ASN__CTFAIL(app_key, td, sptr, + "%s: mandatory element %s absent (%s:%d)", + td->name, elm->name, __FILE__, __LINE__); + return -1; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if(elm->encoding_constraints.general_constraints) { + return elm->encoding_constraints.general_constraints( + elm->type, memb_ptr, ctfailcb, app_key); + } else { + return elm->type->encoding_constraints.general_constraints( + elm->type, memb_ptr, ctfailcb, app_key); + } + } + + return 0; +} + +int +SET_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + size_t edx; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *amemb; + const void *bmemb; + int ret; + + if(elm->flags & ATF_POINTER) { + amemb = + *(const void *const *)((const char *)aptr + elm->memb_offset); + bmemb = + *(const void *const *)((const char *)bptr + elm->memb_offset); + if(!amemb) { + if(!bmemb) continue; + return -1; + } else if(!bmemb) { + return 1; + } + } else { + amemb = (const void *)((const char *)aptr + elm->memb_offset); + bmemb = (const void *)((const char *)bptr + elm->memb_offset); + } + + ret = elm->type->op->compare_struct(elm->type, amemb, bmemb); + if(ret != 0) return ret; + } + + return 0; +} + + +asn_TYPE_operation_t asn_OP_SET = { + SET_free, + SET_print, + SET_compare, + SET_decode_ber, + SET_encode_der, + SET_decode_xer, + SET_encode_xer, + 0, /* SET_decode_oer */ + 0, /* SET_encode_oer */ + 0, /* SET_decode_uper */ + 0, /* SET_encode_uper */ + 0, /* SET_decode_aper */ + 0, /* SET_encode_aper */ + SET_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; + + +asn_random_fill_result_t +SET_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constr, + size_t max_length) { + const asn_SET_specifics_t *specs = + (const asn_SET_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + void *st = *sptr; + size_t edx; + + if(max_length == 0) return result_skipped; + + (void)constr; + + if(st == NULL) { + st = CALLOC(1, specs->struct_size); + if(st == NULL) { + return result_failed; + } + } + + for(edx = 0; edx < td->elements_count; edx++) { + const asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + asn_random_fill_result_t tmpres; + + if(elm->optional && asn_random_between(0, 4) == 2) { + /* Sometimes decide not to fill the optional value */ + continue; + } + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + tmpres = elm->type->op->random_fill( + elm->type, memb_ptr2, &elm->encoding_constraints, + max_length > result_ok.length ? max_length - result_ok.length : 0); + switch(tmpres.code) { + case ARFILL_OK: + result_ok.length += tmpres.length; + continue; + case ARFILL_SKIPPED: + assert(!(elm->flags & ATF_POINTER) || *memb_ptr2 == NULL); + continue; + case ARFILL_FAILED: + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + return tmpres; + } + } + + *sptr = st; + + return result_ok; +} + diff --git a/vcits/asn1c/src/constr_SET_OF.c b/vcits/asn1c/src/constr_SET_OF.c new file mode 100644 index 0000000..ab51d38 --- /dev/null +++ b/vcits/asn1c/src/constr_SET_OF.c @@ -0,0 +1,1441 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Number of bytes left for this structure. + * (ctx->left) indicates the number of bytes _transferred_ for the structure. + * (size) contains the number of bytes in the buffer passed. + */ +#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) + +/* + * If the subprocessor function returns with an indication that it wants + * more data, it may well be a fatal decoding problem, because the + * size is constrained by the 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * The TLV length clearly indicates that one byte is expected in V, but + * if the V processor returns with "want more data" even if the buffer + * contains way more data than the V processor have seen. + */ +#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num;\ + size -= num; \ + if(ctx->left >= 0) \ + ctx->left -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#undef PHASE_OUT +#define NEXT_PHASE(ctx) do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) +#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) do { \ + rval.code = _code; \ + rval.consumed = consumed_myself;\ + return rval; \ + } while(0) + +/* + * The decoder of the SET OF type. + */ +asn_dec_rval_t +SET_OF_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *ptr, size_t size, int tag_mode) { + /* + * Bring closer parts of structure description. + */ + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; /* Single one */ + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ber_tlv_tag_t tlv_tag; /* T from TLV */ + asn_dec_rval_t rval; /* Return code from subparsers */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + + ASN_DEBUG("Decoding %s as SET OF", td->name); + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously + */ + switch(ctx->phase) { + case 0: + /* + * PHASE 0. + * Check that the set of tags associated with given structure + * perfectly fits our expectations. + */ + + rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, + tag_mode, 1, &ctx->left, 0); + if(rval.code != RC_OK) { + ASN_DEBUG("%s tagging check failed: %d", + td->name, rval.code); + return rval; + } + + if(ctx->left >= 0) + ctx->left += rval.consumed; /* ?Substracted below! */ + ADVANCE(rval.consumed); + + ASN_DEBUG("Structure consumes %ld bytes, " + "buffer %ld", (long)ctx->left, (long)size); + + NEXT_PHASE(ctx); + /* Fall through */ + case 1: + /* + * PHASE 1. + * From the place where we've left it previously, + * try to decode the next item. + */ + for(;; ctx->step = 0) { + ssize_t tag_len; /* Length of TLV's T */ + + if(ctx->step & 1) + goto microphase2; + + /* + * MICROPHASE 1: Synchronize decoding. + */ + + if(ctx->left == 0) { + ASN_DEBUG("End of SET OF %s", td->name); + /* + * No more things to decode. + * Exit out of here. + */ + PHASE_OUT(ctx); + RETURN(RC_OK); + } + + /* + * Fetch the T from TLV. + */ + tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); + switch(tag_len) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) + RETURN(RC_FAIL); + else + RETURN(RC_WMORE); + } else if(((const uint8_t *)ptr)[1] == 0) { + /* + * Found the terminator of the + * indefinite length structure. + */ + break; + } + } + + /* Outmost tag may be unknown and cannot be fetched/compared */ + if(elm->tag != (ber_tlv_tag_t)-1) { + if(BER_TAGS_EQUAL(tlv_tag, elm->tag)) { + /* + * The new list member of expected type has arrived. + */ + } else { + ASN_DEBUG("Unexpected tag %s fixed SET OF %s", + ber_tlv_tag_string(tlv_tag), td->name); + ASN_DEBUG("%s SET OF has tag %s", + td->name, ber_tlv_tag_string(elm->tag)); + RETURN(RC_FAIL); + } + } + + /* + * MICROPHASE 2: Invoke the member-specific decoder. + */ + ctx->step |= 1; /* Confirm entering next microphase */ + microphase2: + + /* + * Invoke the member fetch routine according to member's type + */ + rval = elm->type->op->ber_decoder(opt_codec_ctx, + elm->type, &ctx->ptr, ptr, LEFT, 0); + ASN_DEBUG("In %s SET OF %s code %d consumed %d", + td->name, elm->type->name, + rval.code, (int)rval.consumed); + switch(rval.code) { + case RC_OK: + { + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + if(ASN_SET_ADD(list, ctx->ptr) != 0) + RETURN(RC_FAIL); + else + ctx->ptr = 0; + } + break; + case RC_WMORE: /* More data expected */ + if(!SIZE_VIOLATION) { + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + } + /* Fall through */ + case RC_FAIL: /* Fatal error */ + ASN_STRUCT_FREE(*elm->type, ctx->ptr); + ctx->ptr = 0; + RETURN(RC_FAIL); + } /* switch(rval) */ + + ADVANCE(rval.consumed); + } /* for(all list members) */ + + NEXT_PHASE(ctx); + case 2: + /* + * Read in all "end of content" TLVs. + */ + while(ctx->left < 0) { + if(LEFT < 2) { + if(LEFT > 0 && ((const char *)ptr)[0] != 0) { + /* Unexpected tag */ + RETURN(RC_FAIL); + } else { + RETURN(RC_WMORE); + } + } + if(((const char *)ptr)[0] == 0 + && ((const char *)ptr)[1] == 0) { + ADVANCE(2); + ctx->left++; + } else { + RETURN(RC_FAIL); + } + } + + PHASE_OUT(ctx); + } + + RETURN(RC_OK); +} + +/* + * Internally visible buffer holding a single encoded element. + */ +struct _el_buffer { + uint8_t *buf; + size_t length; + size_t allocated_size; + unsigned bits_unused; +}; +/* Append bytes to the above structure */ +static int _el_addbytes(const void *buffer, size_t size, void *el_buf_ptr) { + struct _el_buffer *el_buf = (struct _el_buffer *)el_buf_ptr; + + if(el_buf->length + size > el_buf->allocated_size) { + size_t new_size = el_buf->allocated_size ? el_buf->allocated_size : 8; + void *p; + + do { + new_size <<= 2; + } while(el_buf->length + size > new_size); + + p = REALLOC(el_buf->buf, new_size); + if(p) { + el_buf->buf = p; + el_buf->allocated_size = new_size; + } else { + return -1; + } + } + + memcpy(el_buf->buf + el_buf->length, buffer, size); + + el_buf->length += size; + return 0; +} + +static void assert_unused_bits(const struct _el_buffer* p) { + if(p->length) { + assert((p->buf[p->length-1] & ~(0xff << p->bits_unused)) == 0); + } else { + assert(p->bits_unused == 0); + } +} + +static int _el_buf_cmp(const void *ap, const void *bp) { + const struct _el_buffer *a = (const struct _el_buffer *)ap; + const struct _el_buffer *b = (const struct _el_buffer *)bp; + size_t common_len; + int ret = 0; + + if(a->length < b->length) + common_len = a->length; + else + common_len = b->length; + + if (a->buf && b->buf) { + ret = memcmp(a->buf, b->buf, common_len); + } + if(ret == 0) { + if(a->length < b->length) + ret = -1; + else if(a->length > b->length) + ret = 1; + /* Ignore unused bits. */ + assert_unused_bits(a); + assert_unused_bits(b); + } + + return ret; +} + +static void +SET_OF__encode_sorted_free(struct _el_buffer *el_buf, size_t count) { + size_t i; + + for(i = 0; i < count; i++) { + FREEMEM(el_buf[i].buf); + } + + FREEMEM(el_buf); +} + +enum SET_OF__encode_method { + SOES_DER, /* Distinguished Encoding Rules */ + SOES_CUPER /* Canonical Unaligned Packed Encoding Rules */ +}; + +static struct _el_buffer * +SET_OF__encode_sorted(const asn_TYPE_member_t *elm, + const asn_anonymous_set_ *list, + enum SET_OF__encode_method method) { + struct _el_buffer *encoded_els; + int edx; + + encoded_els = + (struct _el_buffer *)CALLOC(list->count, sizeof(encoded_els[0])); + if(encoded_els == NULL) { + return NULL; + } + + /* + * Encode all members. + */ + for(edx = 0; edx < list->count; edx++) { + const void *memb_ptr = list->array[edx]; + struct _el_buffer *encoding_el = &encoded_els[edx]; + asn_enc_rval_t erval; + + if(!memb_ptr) break; + + /* + * Encode the member into the prepared space. + */ + switch(method) { + case SOES_DER: + erval = elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, + _el_addbytes, encoding_el); + break; + case SOES_CUPER: + erval = uper_encode(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, _el_addbytes, encoding_el); + if(erval.encoded != -1) { + size_t extra_bits = erval.encoded % 8; + assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); + encoding_el->bits_unused = (8 - extra_bits) & 0x7; + } + break; + default: + assert(!"Unreachable"); + break; + } + if(erval.encoded < 0) break; + } + + if(edx == list->count) { + /* + * Sort the encoded elements according to their encoding. + */ + qsort(encoded_els, list->count, sizeof(encoded_els[0]), _el_buf_cmp); + + return encoded_els; + } else { + SET_OF__encode_sorted_free(encoded_els, edx); + return NULL; + } +} + + +/* + * The DER encoder of the SET OF type. + */ +asn_enc_rval_t +SET_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + size_t computed_size = 0; + ssize_t encoding_size = 0; + struct _el_buffer *encoded_els; + int edx; + + ASN_DEBUG("Estimating size for SET OF %s", td->name); + + /* + * Gather the length of the underlying members sequence. + */ + for(edx = 0; edx < list->count; edx++) { + void *memb_ptr = list->array[edx]; + asn_enc_rval_t erval; + + if(!memb_ptr) ASN__ENCODE_FAILED; + + erval = + elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, 0, 0); + if(erval.encoded == -1) return erval; + computed_size += erval.encoded; + } + + + /* + * Encode the TLV for the sequence itself. + */ + encoding_size = + der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); + if(encoding_size < 0) { + ASN__ENCODE_FAILED; + } + computed_size += encoding_size; + + if(!cb || list->count == 0) { + asn_enc_rval_t erval; + erval.encoded = computed_size; + ASN__ENCODED_OK(erval); + } + + ASN_DEBUG("Encoding members of %s SET OF", td->name); + + /* + * DER mandates dynamic sorting of the SET OF elements + * according to their encodings. Build an array of the + * encoded elements. + */ + encoded_els = SET_OF__encode_sorted(elm, list, SOES_DER); + + /* + * Report encoded elements to the application. + * Dispose of temporary sorted members table. + */ + for(edx = 0; edx < list->count; edx++) { + struct _el_buffer *encoded_el = &encoded_els[edx]; + /* Report encoded chunks to the application */ + if(cb(encoded_el->buf, encoded_el->length, app_key) < 0) { + break; + } else { + encoding_size += encoded_el->length; + } + } + + SET_OF__encode_sorted_free(encoded_els, list->count); + + if(edx == list->count) { + asn_enc_rval_t erval; + assert(computed_size == (size_t)encoding_size); + erval.encoded = computed_size; + ASN__ENCODED_OK(erval); + } else { + ASN__ENCODE_FAILED; + } +} + +#undef XER_ADVANCE +#define XER_ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + buf_ptr = ((const char *)buf_ptr) + num;\ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Decode the XER (XML) data. + */ +asn_dec_rval_t +SET_OF_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *element = td->elements; + const char *elm_tag; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + + /* + * ... and parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + asn_dec_rval_t rval; /* Return value from a decoder */ + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) RETURN(RC_FAIL); + } + + /* Which tag is expected for the downstream */ + if(specs->as_XMLValueList) { + elm_tag = (specs->as_XMLValueList == 1) ? 0 : ""; + } else { + elm_tag = (*element->name) + ? element->name : element->type->xml_tag; + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + * Phase 2: Processing inner type. + */ + for(; ctx->phase <= 2;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + + /* + * Go inside the inner member of a set. + */ + if(ctx->phase == 2) { + asn_dec_rval_t tmprval; + + /* Invoke the inner type decoder, m.b. multiple times */ + ASN_DEBUG("XER/SET OF element [%s]", elm_tag); + tmprval = element->type->op->xer_decoder(opt_codec_ctx, + element->type, &ctx->ptr, elm_tag, + buf_ptr, size); + if(tmprval.code == RC_OK) { + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + if(ASN_SET_ADD(list, ctx->ptr) != 0) + RETURN(RC_FAIL); + ctx->ptr = 0; + XER_ADVANCE(tmprval.consumed); + } else { + XER_ADVANCE(tmprval.consumed); + RETURN(tmprval.code); + } + ctx->phase = 1; /* Back to body processing */ + ASN_DEBUG("XER/SET OF phase => %d", ctx->phase); + /* Fall through */ + } + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, + buf_ptr, size, &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + case PXER_TEXT: /* Ignore free-standing text */ + XER_ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); + ASN_DEBUG("XER/SET OF: tcv = %d, ph=%d t=%s", + tcv, ctx->phase, xml_tag); + switch(tcv) { + case XCT_CLOSING: + if(ctx->phase == 0) break; + ctx->phase = 0; + /* Fall through */ + case XCT_BOTH: + if(ctx->phase == 0) { + /* No more things to decode */ + XER_ADVANCE(ch_size); + ctx->phase = 3; /* Phase out */ + RETURN(RC_OK); + } + /* Fall through */ + case XCT_OPENING: + if(ctx->phase == 0) { + XER_ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + } + /* Fall through */ + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + + ASN_DEBUG("XER/SET OF: tcv=%d, ph=%d", tcv, ctx->phase); + if(ctx->phase == 1) { + /* + * Process a single possible member. + */ + ctx->phase = 2; + continue; + } + /* Fall through */ + default: + break; + } + + ASN_DEBUG("Unexpected XML tag in SET OF"); + break; + } + + ctx->phase = 3; /* "Phase out" on hard failure */ + RETURN(RC_FAIL); +} + + + +typedef struct xer_tmp_enc_s { + void *buffer; + size_t offset; + size_t size; +} xer_tmp_enc_t; +static int +SET_OF_encode_xer_callback(const void *buffer, size_t size, void *key) { + xer_tmp_enc_t *t = (xer_tmp_enc_t *)key; + if(t->offset + size >= t->size) { + size_t newsize = (t->size << 2) + size; + void *p = REALLOC(t->buffer, newsize); + if(!p) return -1; + t->buffer = p; + t->size = newsize; + } + memcpy((char *)t->buffer + t->offset, buffer, size); + t->offset += size; + return 0; +} +static int +SET_OF_xer_order(const void *aptr, const void *bptr) { + const xer_tmp_enc_t *a = (const xer_tmp_enc_t *)aptr; + const xer_tmp_enc_t *b = (const xer_tmp_enc_t *)bptr; + size_t minlen = a->offset; + int ret; + if(b->offset < minlen) minlen = b->offset; + /* Well-formed UTF-8 has this nice lexicographical property... */ + ret = memcmp(a->buffer, b->buffer, minlen); + if(ret != 0) return ret; + if(a->offset == b->offset) + return 0; + if(a->offset == minlen) + return -1; + return 1; +} + + +asn_enc_rval_t +SET_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + const char *mname = specs->as_XMLValueList + ? 0 : ((*elm->name) ? elm->name : elm->type->xml_tag); + size_t mlen = mname ? strlen(mname) : 0; + int xcan = (flags & XER_F_CANONICAL); + xer_tmp_enc_t *encs = 0; + size_t encs_count = 0; + void *original_app_key = app_key; + asn_app_consume_bytes_f *original_cb = cb; + int i; + + if(!sptr) ASN__ENCODE_FAILED; + + if(xcan) { + encs = (xer_tmp_enc_t *)MALLOC(list->count * sizeof(encs[0])); + if(!encs) ASN__ENCODE_FAILED; + cb = SET_OF_encode_xer_callback; + } + + er.encoded = 0; + + for(i = 0; i < list->count; i++) { + asn_enc_rval_t tmper; + + void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + if(encs) { + memset(&encs[encs_count], 0, sizeof(encs[0])); + app_key = &encs[encs_count]; + encs_count++; + } + + if(mname) { + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + } + + if(!xcan && specs->as_XMLValueList == 1) + ASN__TEXT_INDENT(1, ilevel + 1); + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, + ilevel + (specs->as_XMLValueList != 2), + flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + if(tmper.encoded == 0 && specs->as_XMLValueList) { + const char *name = elm->type->xml_tag; + size_t len = strlen(name); + ASN__CALLBACK3("<", 1, name, len, "/>", 2); + } + + if(mname) { + ASN__CALLBACK3("", 1); + } + + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + if(encs) { + xer_tmp_enc_t *enc = encs; + xer_tmp_enc_t *end = encs + encs_count; + ssize_t control_size = 0; + + er.encoded = 0; + cb = original_cb; + app_key = original_app_key; + qsort(encs, encs_count, sizeof(encs[0]), SET_OF_xer_order); + + for(; enc < end; enc++) { + ASN__CALLBACK(enc->buffer, enc->offset); + FREEMEM(enc->buffer); + enc->buffer = 0; + control_size += enc->offset; + } + assert(control_size == er.encoded); + } + + goto cleanup; +cb_failed: + ASN__ENCODE_FAILED; +cleanup: + if(encs) { + size_t n; + for(n = 0; n < encs_count; n++) { + FREEMEM(encs[n].buffer); + } + FREEMEM(encs); + } + ASN__ENCODED_OK(er); +} + +int +SET_OF_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + int ret; + int i; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb(td->name, strlen(td->name), app_key) < 0 + || cb(" ::= {", 6, app_key) < 0) + return -1; + + for(i = 0; i < list->count; i++) { + const void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + _i_INDENT(1); + + ret = elm->type->op->print_struct(elm->type, memb_ptr, + ilevel + 1, cb, app_key); + if(ret) return ret; + } + + ilevel--; + _i_INDENT(1); + + return (cb("}", 1, app_key) < 0) ? -1 : 0; +} + +void +SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(td && ptr) { + const asn_SET_OF_specifics_t *specs; + asn_TYPE_member_t *elm = td->elements; + asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr); + asn_struct_ctx_t *ctx; /* Decoder context */ + int i; + + /* + * Could not use set_of_empty() because of (*free) + * incompatibility. + */ + for(i = 0; i < list->count; i++) { + void *memb_ptr = list->array[i]; + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } + list->count = 0; /* No meaningful elements left */ + + asn_set_empty(list); /* Remove (list->array) */ + + specs = (const asn_SET_OF_specifics_t *)td->specifics; + ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset); + if(ctx->ptr) { + ASN_STRUCT_FREE(*elm->type, ctx->ptr); + ctx->ptr = 0; + } + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, specs->struct_size); + break; + } + } +} + +int +SET_OF_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const asn_TYPE_member_t *elm = td->elements; + asn_constr_check_f *constr; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + int i; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + constr = elm->encoding_constraints.general_constraints; + if(!constr) constr = elm->type->encoding_constraints.general_constraints; + + /* + * Iterate over the members of an array. + * Validate each in turn, until one fails. + */ + for(i = 0; i < list->count; i++) { + const void *memb_ptr = list->array[i]; + int ret; + + if(!memb_ptr) continue; + + ret = constr(elm->type, memb_ptr, ctfailcb, app_key); + if(ret) return ret; + } + + return 0; +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; /* Single one */ + void *st = *sptr; + asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + int repeat = 0; + ssize_t nelems; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + list = _A_SET_FROM_VOID(st); + + /* Figure out which constraints to use */ + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted! */ + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + nelems = per_get_few_bits(pd, ct->effective_bits); + ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", + (long)nelems, ct->lower_bound, td->name); + if(nelems < 0) ASN__DECODE_STARVED; + nelems += ct->lower_bound; + } else { + nelems = -1; + } + + do { + int i; + if(nelems < 0) { + nelems = uper_get_length(pd, -1, 0, &repeat); + ASN_DEBUG("Got to decode %" ASN_PRI_SSIZE " elements (eff %d)", + nelems, (int)(ct ? ct->effective_bits : -1)); + if(nelems < 0) ASN__DECODE_STARVED; + } + + for(i = 0; i < nelems; i++) { + void *ptr = 0; + ASN_DEBUG("SET OF %s decoding", elm->type->name); + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, &ptr, pd); + ASN_DEBUG("%s SET OF %s decoded %d, %p", + td->name, elm->type->name, rv.code, ptr); + if(rv.code == RC_OK) { + if(ASN_SET_ADD(list, ptr) == 0) { + if(rv.consumed == 0 && nelems > 200) { + /* Protect from SET OF NULL compression bombs. */ + ASN__DECODE_FAILED; + } + continue; + } + ASN_DEBUG("Failed to add element into %s", + td->name); + /* Fall through */ + rv.code = RC_FAIL; + } else { + ASN_DEBUG("Failed decoding %s of %s (SET OF)", + elm->type->name, td->name); + } + if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); + return rv; + } + + nelems = -1; /* Allow uper_get_length() */ + } while(repeat); + + ASN_DEBUG("Decoded %s as SET OF", td->name); + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} + +asn_enc_rval_t +SET_OF_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + const asn_TYPE_member_t *elm = td->elements; + struct _el_buffer *encoded_els; + asn_enc_rval_t er; + size_t encoded_edx; + + if(!sptr) ASN__ENCODE_FAILED; + + list = _A_CSET_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = + (list->count < ct->lower_bound || list->count > ct->upper_bound); + ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) { + ASN__ENCODE_FAILED; + } + + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; + } else if(list->count == 0) { + /* When the list is empty add only the length determinant + * X.691, #20.6 and #11.9.4.1 + */ + if (uper_put_length(po, 0, 0)) { + ASN__ENCODE_FAILED; + } + ASN__ENCODED_OK(er); + } + + + /* + * Canonical UPER #22.1 mandates dynamic sorting of the SET OF elements + * according to their encodings. Build an array of the encoded elements. + */ + encoded_els = SET_OF__encode_sorted(elm, list, SOES_CUPER); + + for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { + ssize_t may_encode; + size_t edx; + int need_eom = 0; + + if(ct && ct->effective_bits >= 0) { + may_encode = list->count; + } else { + may_encode = + uper_put_length(po, list->count - encoded_edx, &need_eom); + if(may_encode < 0) ASN__ENCODE_FAILED; + } + + for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { + const struct _el_buffer *el = &encoded_els[edx]; + if(asn_put_many_bits(po, el->buf, + (8 * el->length) - el->bits_unused) < 0) { + break; + } + } + + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + + encoded_edx += may_encode; + } + + SET_OF__encode_sorted_free(encoded_els, list->count); + + if((ssize_t)encoded_edx == list->count) { + ASN__ENCODED_OK(er); + } else { + ASN__ENCODE_FAILED; + } +} + +asn_dec_rval_t +SET_OF_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; /* Single one */ + void *st = *sptr; + asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + int repeat = 0; + ssize_t nelems; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + list = _A_SET_FROM_VOID(st); + + /* Figure out which constraints to use */ + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted! */ + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + nelems = aper_get_nsnnwn(pd, ct->upper_bound - ct->lower_bound + 1); + ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", + (long)nelems, ct->lower_bound, td->name); + if(nelems < 0) ASN__DECODE_STARVED; + nelems += ct->lower_bound; + } else { + nelems = -1; + } + + do { + int i; + if(nelems < 0) { + nelems = aper_get_length(pd, ct ? ct->upper_bound - ct->lower_bound + 1 : -1, + ct ? ct->effective_bits : -1, &repeat); + ASN_DEBUG("Got to decode %d elements (eff %d)", + (int)nelems, (int)(ct ? ct->effective_bits : -1)); + if(nelems < 0) ASN__DECODE_STARVED; + } + + for(i = 0; i < nelems; i++) { + void *ptr = 0; + ASN_DEBUG("SET OF %s decoding", elm->type->name); + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, &ptr, pd); + ASN_DEBUG("%s SET OF %s decoded %d, %p", + td->name, elm->type->name, rv.code, ptr); + if(rv.code == RC_OK) { + if(ASN_SET_ADD(list, ptr) == 0) + continue; + ASN_DEBUG("Failed to add element into %s", + td->name); + /* Fall through */ + rv.code = RC_FAIL; + } else { + ASN_DEBUG("Failed decoding %s of %s (SET OF)", + elm->type->name, td->name); + } + if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); + return rv; + } + + nelems = -1; /* Allow uper_get_length() */ + } while(repeat); + + ASN_DEBUG("Decoded %s as SET OF", td->name); + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +struct comparable_ptr { + const asn_TYPE_descriptor_t *td; + const void *sptr; +}; + +static int +SET_OF__compare_cb(const void *aptr, const void *bptr) { + const struct comparable_ptr *a = aptr; + const struct comparable_ptr *b = bptr; + assert(a->td == b->td); + return a->td->op->compare_struct(a->td, a->sptr, b->sptr); +} + +int +SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_anonymous_set_ *a = _A_CSET_FROM_VOID(aptr); + const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr); + + if(a && b) { + struct comparable_ptr *asorted; + struct comparable_ptr *bsorted; + ssize_t common_length; + ssize_t idx; + + if(a->count == 0) { + if(b->count) return -1; + return 0; + } else if(b->count == 0) { + return 1; + } + + asorted = MALLOC(a->count * sizeof(asorted[0])); + bsorted = MALLOC(b->count * sizeof(bsorted[0])); + if(!asorted || !bsorted) { + FREEMEM(asorted); + FREEMEM(bsorted); + return -1; + } + + for(idx = 0; idx < a->count; idx++) { + asorted[idx].td = td->elements->type; + asorted[idx].sptr = a->array[idx]; + } + + for(idx = 0; idx < b->count; idx++) { + bsorted[idx].td = td->elements->type; + bsorted[idx].sptr = b->array[idx]; + } + + qsort(asorted, a->count, sizeof(asorted[0]), SET_OF__compare_cb); + qsort(bsorted, b->count, sizeof(bsorted[0]), SET_OF__compare_cb); + + common_length = (a->count < b->count ? a->count : b->count); + for(idx = 0; idx < common_length; idx++) { + int ret = td->elements->type->op->compare_struct( + td->elements->type, asorted[idx].sptr, bsorted[idx].sptr); + if(ret) { + FREEMEM(asorted); + FREEMEM(bsorted); + return ret; + } + } + + FREEMEM(asorted); + FREEMEM(bsorted); + + if(idx < b->count) /* more elements in b */ + return -1; /* a is shorter, so put it first */ + if(idx < a->count) return 1; + } else if(!a) { + return -1; + } else if(!b) { + return 1; + } + + return 0; +} + + +asn_TYPE_operation_t asn_OP_SET_OF = { + SET_OF_free, + SET_OF_print, + SET_OF_compare, + SET_OF_decode_ber, + SET_OF_encode_der, + SET_OF_decode_xer, + SET_OF_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + SET_OF_decode_oer, + SET_OF_encode_oer, +#endif +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + SET_OF_decode_uper, + SET_OF_encode_uper, + SET_OF_decode_aper, + 0, /* SET_OF_encode_aper */ +#endif /* ASN_DISABLE_PER_SUPPORT */ + SET_OF_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; + + +asn_random_fill_result_t +SET_OF_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_SET_OF_specifics_t *specs = + (const asn_SET_OF_specifics_t *)td->specifics; + asn_random_fill_result_t res_ok = {ARFILL_OK, 0}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + const asn_TYPE_member_t *elm = td->elements; + void *st = *sptr; + long max_elements = 5; + long slb = 0; /* Lower size bound */ + long sub = 0; /* Upper size bound */ + size_t rnd_len; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (*sptr = CALLOC(1, specs->struct_size)); + if(st == NULL) { + return result_failed; + } + } + + switch(asn_random_between(0, 6)) { + case 0: max_elements = 0; break; + case 1: max_elements = 1; break; + case 2: max_elements = 5; break; + case 3: max_elements = max_length; break; + case 4: max_elements = max_length / 2; break; + case 5: max_elements = max_length / 4; break; + default: break; + } + sub = slb + max_elements; + + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_SEMI_CONSTRAINED) { + slb = pc->lower_bound; + sub = pc->lower_bound + max_elements; + } else if(pc->flags & APC_CONSTRAINED) { + slb = pc->lower_bound; + sub = pc->upper_bound; + if(sub - slb > max_elements) sub = slb + max_elements; + } + } + + /* Bias towards edges of allowed space */ + switch(asn_random_between(-1, 4)) { + default: + case -1: + /* Prepare lengths somewhat outside of constrained range. */ + if(constraints->per_constraints + && (constraints->per_constraints->size.flags & APC_EXTENSIBLE)) { + switch(asn_random_between(0, 5)) { + default: + case 0: + rnd_len = 0; + break; + case 1: + if(slb > 0) { + rnd_len = slb - 1; + } else { + rnd_len = 0; + } + break; + case 2: + rnd_len = asn_random_between(0, slb); + break; + case 3: + if(sub < (ssize_t)max_length) { + rnd_len = sub + 1; + } else { + rnd_len = max_length; + } + break; + case 4: + if(sub < (ssize_t)max_length) { + rnd_len = asn_random_between(sub + 1, max_length); + } else { + rnd_len = max_length; + } + break; + case 5: + rnd_len = max_length; + break; + } + break; + } + /* Fall through */ + case 0: + rnd_len = asn_random_between(slb, sub); + break; + case 1: + if(slb < sub) { + rnd_len = asn_random_between(slb + 1, sub); + break; + } + /* Fall through */ + case 2: + rnd_len = asn_random_between(slb, slb); + break; + case 3: + if(slb < sub) { + rnd_len = asn_random_between(slb, sub - 1); + break; + } + /* Fall through */ + case 4: + rnd_len = asn_random_between(sub, sub); + break; + } + + for(; rnd_len > 0; rnd_len--) { + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + void *ptr = 0; + asn_random_fill_result_t tmpres = elm->type->op->random_fill( + elm->type, &ptr, &elm->encoding_constraints, + (max_length > res_ok.length ? max_length - res_ok.length : 0) + / rnd_len); + switch(tmpres.code) { + case ARFILL_OK: + ASN_SET_ADD(list, ptr); + res_ok.length += tmpres.length; + break; + case ARFILL_SKIPPED: + break; + case ARFILL_FAILED: + assert(ptr == 0); + return tmpres; + } + } + + return res_ok; +} + diff --git a/vcits/asn1c/src/constr_SET_OF_oer.c b/vcits/asn1c/src/constr_SET_OF_oer.c new file mode 100644 index 0000000..88d7a2a --- /dev/null +++ b/vcits/asn1c/src/constr_SET_OF_oer.c @@ -0,0 +1,285 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_DISABLE_OER_SUPPORT + +#include +#include +#include +#include + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) \ + do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) +#undef SET_PHASE +#define SET_PHASE(ctx, value) \ + do { \ + ctx->phase = value; \ + ctx->step = 0; \ + } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t rval; \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +/* + * The SEQUENCE OF and SET OF values utilize a "quantity field". + * It is is a pointless combination of #8.6 (length determinant, capable + * of encoding tiny and huge numbers in the shortest possible number of octets) + * and the variable sized integer. What could have been encoded by #8.6 alone + * is required to be encoded by #8.6 followed by that number of unsigned octets. + * This doesn't make too much sense. It seems that the original version of OER + * standard have been using the unconstrained unsigned integer as a quantity + * field, and this legacy have gone through ISO/ITU-T standardization process. + */ +static ssize_t +oer_fetch_quantity(const void *ptr, size_t size, size_t *qty_r) { + const uint8_t *b; + const uint8_t *bend; + size_t len = 0; + size_t qty; + + ssize_t len_len = oer_fetch_length(ptr, size, &len); + if(len_len <= 0) { + *qty_r = 0; + return len_len; + } + + if((len_len + len) > size) { + *qty_r = 0; + return 0; + } + + b = (const uint8_t *)ptr + len_len; + bend = b + len; + + /* Skip the leading 0-bytes */ + for(; b < bend && *b == 0; b++) { + } + + if((bend - b) > (ssize_t)sizeof(size_t)) { + /* Length is not representable by the native size_t type */ + *qty_r = 0; + return -1; + } + + for(qty = 0; b < bend; b++) { + qty = (qty << 8) + *b; + } + + if(qty > RSIZE_MAX) { /* A bit of C11 validation */ + *qty_r = 0; + return -1; + } + + *qty_r = qty; + assert((size_t)len_len + len == (size_t)(bend - (const uint8_t *)ptr)); + return len_len + len; +} + +asn_dec_rval_t +SET_OF_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **struct_ptr, + const void *ptr, size_t size) { + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + asn_dec_rval_t rval = {RC_OK, 0}; + void *st = *struct_ptr; /* Target structure */ + asn_struct_ctx_t *ctx; /* Decoder context */ + size_t consumed_myself = 0; /* Consumed bytes from ptr. */ + + (void)constraints; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously. + */ + switch(ctx->phase) { + case 0: { + /* + * Fetch number of elements to decode. + */ + size_t length = 0; + size_t len_size = oer_fetch_quantity(ptr, size, &length); + switch(len_size) { + case 0: + RETURN(RC_WMORE); + case -1: + RETURN(RC_FAIL); + default: + ADVANCE(len_size); + ctx->left = length; + } + } + NEXT_PHASE(ctx); + /* FALL THROUGH */ + case 1: { + /* Decode components of the extension root */ + asn_TYPE_member_t *elm = td->elements; + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + const void *base_ptr = ptr; + ber_tlv_len_t base_ctx_left = ctx->left; + + assert(td->elements_count == 1); + + ASN_DEBUG("OER SET OF %s Decoding PHASE 1", td->name); + + for(; ctx->left > 0; ctx->left--) { + asn_dec_rval_t rv = elm->type->op->oer_decoder( + opt_codec_ctx, elm->type, + elm->encoding_constraints.oer_constraints, &ctx->ptr, ptr, + size); + ADVANCE(rv.consumed); + switch(rv.code) { + case RC_OK: + if(ASN_SET_ADD(list, ctx->ptr) != 0) { + RETURN(RC_FAIL); + } else { + ctx->ptr = 0; + /* + * This check is to avoid compression bomb with + * specs like SEQUENCE/SET OF NULL which don't + * consume data at all. + */ + if(rv.consumed == 0 && base_ptr == ptr + && (base_ctx_left - ctx->left) > 200) { + ASN__DECODE_FAILED; + } + break; + } + case RC_WMORE: + RETURN(RC_WMORE); + case RC_FAIL: + ASN_STRUCT_FREE(*elm->type, ctx->ptr); + ctx->ptr = 0; + SET_PHASE(ctx, 3); + RETURN(RC_FAIL); + } + } + /* Decoded decently. */ + NEXT_PHASE(ctx); + } + /* Fall through */ + case 2: + /* Ignore fully decoded */ + assert(ctx->left == 0); + RETURN(RC_OK); + case 3: + /* Failed to decode. */ + RETURN(RC_FAIL); + } + + return rval; +} + +static ssize_t +oer_put_quantity(size_t qty, asn_app_consume_bytes_f *cb, void *app_key) { + uint8_t buf[1 + sizeof(size_t)]; + uint8_t *b = &buf[sizeof(size_t)]; /* Last addressable */ + size_t encoded; + + do { + *b-- = qty; + qty >>= 8; + } while(qty); + + *b = sizeof(buf) - (b-buf) - 1; + encoded = sizeof(buf) - (b-buf); + if(cb(b, encoded, app_key) < 0) + return -1; + return encoded; +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +SET_OF_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_TYPE_member_t *elm; + const asn_anonymous_set_ *list; + size_t computed_size = 0; + ssize_t qty_len; + int n; + + (void)constraints; + + if(!sptr) ASN__ENCODE_FAILED; + + elm = td->elements; + list = _A_CSET_FROM_VOID(sptr); + + qty_len = oer_put_quantity(list->count, cb, app_key); + if(qty_len < 0) { + ASN__ENCODE_FAILED; + } + computed_size += qty_len; + + for(n = 0; n < list->count; n++) { + void *memb_ptr = list->array[n]; + asn_enc_rval_t er; + er = elm->type->op->oer_encoder( + elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, + app_key); + if(er.encoded < 0) { + return er; + } else { + computed_size += er.encoded; + } + } + + { + asn_enc_rval_t erval; + erval.encoded = computed_size; + ASN__ENCODED_OK(erval); + } +} + +#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/vcits/asn1c/src/constr_TYPE.c b/vcits/asn1c/src/constr_TYPE.c new file mode 100644 index 0000000..aefaefd --- /dev/null +++ b/vcits/asn1c/src/constr_TYPE.c @@ -0,0 +1,80 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Version of the ASN.1 infrastructure shipped with compiler. + */ +int get_asn1c_environment_version() { return ASN1C_ENVIRONMENT_VERSION; } + +static asn_app_consume_bytes_f _print2fp; + +/* + * Return the outmost tag of the type. + */ +ber_tlv_tag_t +asn_TYPE_outmost_tag(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag) { + + if(tag_mode) + return tag; + + if(type_descriptor->tags_count) + return type_descriptor->tags[0]; + + return type_descriptor->op->outmost_tag(type_descriptor, struct_ptr, 0, 0); +} + +/* + * Print the target language's structure in human readable form. + */ +int +asn_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, + const void *struct_ptr) { + if(!stream) stream = stdout; + if(!td || !struct_ptr) { + errno = EINVAL; + return -1; + } + + /* Invoke type-specific printer */ + if(td->op->print_struct(td, struct_ptr, 1, _print2fp, stream)) { + return -1; + } + + /* Terminate the output */ + if(_print2fp("\n", 1, stream)) { + return -1; + } + + return fflush(stream); +} + +/* Dump the data into the specified stdio stream */ +static int +_print2fp(const void *buffer, size_t size, void *app_key) { + FILE *stream = (FILE *)app_key; + + if(fwrite(buffer, 1, size, stream) != size) + return -1; + + return 0; +} + + +/* + * Some compilers do not support variable args macros. + * This function is a replacement of ASN_DEBUG() macro. + */ +void ASN_DEBUG_f(const char *fmt, ...); +void ASN_DEBUG_f(const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + fprintf(stderr, "\n"); + va_end(ap); +} diff --git a/vcits/asn1c/src/constraints.c b/vcits/asn1c/src/constraints.c new file mode 100644 index 0000000..df3c6c1 --- /dev/null +++ b/vcits/asn1c/src/constraints.c @@ -0,0 +1,93 @@ +#include +#include + +int +asn_generic_no_constraint(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, + asn_app_constraint_failed_f *cb, void *key) { + (void)type_descriptor; /* Unused argument */ + (void)struct_ptr; /* Unused argument */ + (void)cb; /* Unused argument */ + (void)key; /* Unused argument */ + + /* Nothing to check */ + return 0; +} + +int +asn_generic_unknown_constraint(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, + asn_app_constraint_failed_f *cb, void *key) { + (void)type_descriptor; /* Unused argument */ + (void)struct_ptr; /* Unused argument */ + (void)cb; /* Unused argument */ + (void)key; /* Unused argument */ + + /* Unknown how to check */ + return 0; +} + +struct errbufDesc { + const asn_TYPE_descriptor_t *failed_type; + const void *failed_struct_ptr; + char *errbuf; + size_t errlen; +}; + +static void +_asn_i_ctfailcb(void *key, const asn_TYPE_descriptor_t *td, const void *sptr, + const char *fmt, ...) { + struct errbufDesc *arg = key; + va_list ap; + ssize_t vlen; + ssize_t maxlen; + + arg->failed_type = td; + arg->failed_struct_ptr = sptr; + + maxlen = arg->errlen; + if(maxlen <= 0) + return; + + va_start(ap, fmt); + vlen = vsnprintf(arg->errbuf, maxlen, fmt, ap); + va_end(ap); + if(vlen >= maxlen) { + arg->errbuf[maxlen-1] = '\0'; /* Ensuring libc correctness */ + arg->errlen = maxlen - 1; /* Not counting termination */ + return; + } else if(vlen >= 0) { + arg->errbuf[vlen] = '\0'; /* Ensuring libc correctness */ + arg->errlen = vlen; /* Not counting termination */ + } else { + /* + * The libc on this system is broken. + */ + vlen = sizeof("") - 1; + maxlen--; + arg->errlen = vlen < maxlen ? vlen : maxlen; + memcpy(arg->errbuf, "", arg->errlen); + arg->errbuf[arg->errlen] = 0; + } + + return; +} + +int +asn_check_constraints(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, char *errbuf, size_t *errlen) { + struct errbufDesc arg; + int ret; + + arg.failed_type = 0; + arg.failed_struct_ptr = 0; + arg.errbuf = errbuf; + arg.errlen = errlen ? *errlen : 0; + + ret = type_descriptor->encoding_constraints.general_constraints( + type_descriptor, struct_ptr, _asn_i_ctfailcb, &arg); + if(ret == -1 && errlen) *errlen = arg.errlen; + + return ret; +} + diff --git a/vcits/asn1c/src/der_encoder.c b/vcits/asn1c/src/der_encoder.c new file mode 100644 index 0000000..2c6a6f7 --- /dev/null +++ b/vcits/asn1c/src/der_encoder.c @@ -0,0 +1,194 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +static ssize_t der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, + asn_app_consume_bytes_f *cb, void *app_key, int constructed); + +/* + * The DER encoder of any type. + */ +asn_enc_rval_t +der_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, + asn_app_consume_bytes_f *consume_bytes, void *app_key) { + ASN_DEBUG("DER encoder invoked for %s", + type_descriptor->name); + + /* + * Invoke type-specific encoder. + */ + return type_descriptor->op->der_encoder( + type_descriptor, struct_ptr, /* Pointer to the destination structure */ + 0, 0, consume_bytes, app_key); +} + +/* + * Argument type and callback necessary for der_encode_to_buffer(). + */ +typedef struct enc_to_buf_arg { + void *buffer; + size_t left; +} enc_to_buf_arg; +static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { + enc_to_buf_arg *arg = (enc_to_buf_arg *)key; + + if(arg->left < size) + return -1; /* Data exceeds the available buffer size */ + + memcpy(arg->buffer, buffer, size); + arg->buffer = ((char *)arg->buffer) + size; + arg->left -= size; + + return 0; +} + +/* + * A variant of the der_encode() which encodes the data into the provided buffer + */ +asn_enc_rval_t +der_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, void *buffer, size_t buffer_size) { + enc_to_buf_arg arg; + asn_enc_rval_t ec; + + arg.buffer = buffer; + arg.left = buffer_size; + + ec = type_descriptor->op->der_encoder(type_descriptor, + struct_ptr, /* Pointer to the destination structure */ + 0, 0, encode_to_buffer_cb, &arg); + if(ec.encoded != -1) { + assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); + /* Return the encoded contents size */ + } + return ec; +} + + +/* + * Write out leading TL[v] sequence according to the type definition. + */ +ssize_t +der_write_tags(const asn_TYPE_descriptor_t *sd, size_t struct_length, + int tag_mode, int last_tag_form, + ber_tlv_tag_t tag, /* EXPLICIT or IMPLICIT tag */ + asn_app_consume_bytes_f *cb, void *app_key) { +#define ASN1_DER_MAX_TAGS_COUNT 4 + ber_tlv_tag_t + tags_buf_scratch[ASN1_DER_MAX_TAGS_COUNT * sizeof(ber_tlv_tag_t)]; + ssize_t lens[ASN1_DER_MAX_TAGS_COUNT * sizeof(ssize_t)]; + const ber_tlv_tag_t *tags; /* Copy of tags stream */ + int tags_count; /* Number of tags */ + size_t overall_length; + int i; + + ASN_DEBUG("Writing tags (%s, tm=%d, tc=%d, tag=%s, mtc=%d)", + sd->name, tag_mode, sd->tags_count, + ber_tlv_tag_string(tag), + tag_mode + ?(sd->tags_count+1 + -((tag_mode == -1) && sd->tags_count)) + :sd->tags_count + ); + + if(sd->tags_count + 1 > ASN1_DER_MAX_TAGS_COUNT) { + ASN_DEBUG("System limit %d on tags count", ASN1_DER_MAX_TAGS_COUNT); + return -1; + } + + if(tag_mode) { + /* + * Instead of doing shaman dance like we do in ber_check_tags(), + * allocate a small array on the stack + * and initialize it appropriately. + */ + int stag_offset; + ber_tlv_tag_t *tags_buf = tags_buf_scratch; + tags_count = sd->tags_count + + 1 /* EXPLICIT or IMPLICIT tag is given */ + - ((tag_mode == -1) && sd->tags_count); + /* Copy tags over */ + tags_buf[0] = tag; + stag_offset = -1 + ((tag_mode == -1) && sd->tags_count); + for(i = 1; i < tags_count; i++) + tags_buf[i] = sd->tags[i + stag_offset]; + tags = tags_buf; + } else { + tags = sd->tags; + tags_count = sd->tags_count; + } + + /* No tags to write */ + if(tags_count == 0) + return 0; + + /* + * Array of tags is initialized. + * Now, compute the size of the TLV pairs, from right to left. + */ + overall_length = struct_length; + for(i = tags_count - 1; i >= 0; --i) { + lens[i] = der_write_TL(tags[i], overall_length, 0, 0, 0); + if(lens[i] == -1) return -1; + overall_length += lens[i]; + lens[i] = overall_length - lens[i]; + } + + if(!cb) return overall_length - struct_length; + + ASN_DEBUG("Encoding %s TL sequence (%d elements)", sd->name, + tags_count); + + /* + * Encode the TL sequence for real. + */ + for(i = 0; i < tags_count; i++) { + ssize_t len; + int _constr; + + /* Check if this tag happens to be constructed */ + _constr = (last_tag_form || i < (tags_count - 1)); + + len = der_write_TL(tags[i], lens[i], cb, app_key, _constr); + if(len == -1) return -1; + } + + return overall_length - struct_length; +} + +static ssize_t +der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, + asn_app_consume_bytes_f *cb, void *app_key, + int constructed) { + uint8_t buf[32]; + size_t size = 0; + int buf_size = cb?sizeof(buf):0; + ssize_t tmp; + + /* Serialize tag (T from TLV) into possibly zero-length buffer */ + tmp = ber_tlv_tag_serialize(tag, buf, buf_size); + if(tmp == -1 || tmp > (ssize_t)sizeof(buf)) return -1; + size += tmp; + + /* Serialize length (L from TLV) into possibly zero-length buffer */ + tmp = der_tlv_length_serialize(len, buf+size, buf_size?buf_size-size:0); + if(tmp == -1) return -1; + size += tmp; + + if(size > sizeof(buf)) + return -1; + + /* + * If callback is specified, invoke it, and check its return value. + */ + if(cb) { + if(constructed) *buf |= 0x20; + if(cb(buf, size, app_key) < 0) + return -1; + } + + return size; +} diff --git a/vcits/asn1c/src/oer_decoder.c b/vcits/asn1c/src/oer_decoder.c new file mode 100644 index 0000000..0701738 --- /dev/null +++ b/vcits/asn1c/src/oer_decoder.c @@ -0,0 +1,152 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * The OER decoder of any type. + */ +asn_dec_rval_t +oer_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, + const void *ptr, size_t size) { + asn_codec_ctx_t s_codec_ctx; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* + * Invoke type-specific decoder. + */ + return type_descriptor->op->oer_decoder(opt_codec_ctx, type_descriptor, 0, + struct_ptr, /* Pointer to the destination structure */ + ptr, size /* Buffer and its size */ + ); +} + +/* + * Open Type is encoded as a length (#8.6) followed by that number of bytes. + * Since we're just skipping, reading the length would be enough. + */ +ssize_t +oer_open_type_skip(const void *bufptr, size_t size) { + size_t len = 0; + return oer_fetch_length(bufptr, size, &len); +} + +/* + * Read the Open Type (X.696 (08/2015), #30). + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering length. + * >0: Number of bytes used from bufptr. + */ +ssize_t +oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *td, + const asn_oer_constraints_t *constraints, void **struct_ptr, + const void *bufptr, size_t size) { + asn_dec_rval_t dr; + size_t container_len = 0; + ssize_t len_len; + enum asn_struct_free_method dispose_method = + (*struct_ptr) ? ASFM_FREE_UNDERLYING_AND_RESET : ASFM_FREE_EVERYTHING; + + /* Get the size of a length determinant */ + len_len = oer_fetch_length(bufptr, size, &container_len); + if(len_len <= 0) { + return len_len; /* Error or more data expected */ + } + + /* + * len_len can't be bigger than size, but size without len_len + * should be bigger or equal to container length + */ + if(size - len_len < container_len) { + /* More data is expected */ + return 0; + } + + dr = td->op->oer_decoder(opt_codec_ctx, td, constraints, struct_ptr, + (const uint8_t *)bufptr + len_len, container_len); + if(dr.code == RC_OK) { + return len_len + container_len; + } else { + /* Even if RC_WMORE, we can't get more data into a closed container. */ + td->op->free_struct(td, *struct_ptr, dispose_method); + *struct_ptr = NULL; + return -1; + } +} + + +asn_dec_rval_t +oer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **sptr, + const void *ptr, size_t size) { + ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; + asn_dec_rval_t rval = {RC_OK, 0}; + size_t expected_length = 0; + ssize_t len_len; + + (void)td; + (void)opt_codec_ctx; + (void)constraints; + + if(!st) { + st = (ASN__PRIMITIVE_TYPE_t *)(*sptr = CALLOC( + 1, sizeof(ASN__PRIMITIVE_TYPE_t))); + if(!st) ASN__DECODE_FAILED; + } + + + /* + * X.696 (08/2015) #27.2 + * Encode length determinant as _number of octets_, but only + * if upper bound is not equal to lower bound. + */ + len_len = oer_fetch_length(ptr, size, &expected_length); + if(len_len > 0) { + rval.consumed = len_len; + ptr = (const char *)ptr + len_len; + size -= len_len; + } else if(len_len == 0) { + ASN__DECODE_STARVED; + } else if(len_len < 0) { + ASN__DECODE_FAILED; + } + + if(size < expected_length) { + ASN__DECODE_STARVED; + } else { + uint8_t *buf = MALLOC(expected_length + 1); + if(buf == NULL) { + ASN__DECODE_FAILED; + } else { + memcpy(buf, ptr, expected_length); + buf[expected_length] = '\0'; + } + FREEMEM(st->buf); + st->buf = buf; + st->size = expected_length; + + rval.consumed += expected_length; + return rval; + } +} diff --git a/vcits/asn1c/src/oer_encoder.c b/vcits/asn1c/src/oer_encoder.c new file mode 100644 index 0000000..895aed4 --- /dev/null +++ b/vcits/asn1c/src/oer_encoder.c @@ -0,0 +1,141 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * The OER encoder of any type. + */ +asn_enc_rval_t +oer_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, + asn_app_consume_bytes_f *consume_bytes, void *app_key) { + ASN_DEBUG("OER encoder invoked for %s", type_descriptor->name); + + /* + * Invoke type-specific encoder. + */ + return type_descriptor->op->oer_encoder( + type_descriptor, 0, + struct_ptr, /* Pointer to the destination structure */ + consume_bytes, app_key); +} + +/* + * Argument type and callback necessary for oer_encode_to_buffer(). + */ +typedef struct enc_to_buf_arg { + void *buffer; + size_t left; +} enc_to_buf_arg; +static int +encode_to_buffer_cb(const void *buffer, size_t size, void *key) { + enc_to_buf_arg *arg = (enc_to_buf_arg *)key; + + if(arg->left < size) return -1; /* Data exceeds the available buffer size */ + + memcpy(arg->buffer, buffer, size); + arg->buffer = ((char *)arg->buffer) + size; + arg->left -= size; + + return 0; +} + +/* + * A variant of the oer_encode() which encodes the data into the provided buffer + */ +asn_enc_rval_t +oer_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, + const asn_oer_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (maximum) */ +) { + enc_to_buf_arg arg; + asn_enc_rval_t ec; + + arg.buffer = buffer; + arg.left = buffer_size; + + if(type_descriptor->op->oer_encoder == NULL) { + ec.encoded = -1; + ec.failed_type = type_descriptor; + ec.structure_ptr = struct_ptr; + ASN_DEBUG("OER encoder is not defined for %s", + type_descriptor->name); + } else { + ec = type_descriptor->op->oer_encoder( + type_descriptor, constraints, + struct_ptr, /* Pointer to the destination structure */ + encode_to_buffer_cb, &arg); + if(ec.encoded != -1) { + assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); + /* Return the encoded contents size */ + } + } + return ec; +} + +asn_enc_rval_t +oer_encode_primitive(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + ssize_t ret; + + (void)constraints; + + if(!st) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %s (%" ASN_PRI_SIZE " bytes)", td ? td->name : "", st->size); + + /* + * X.696 (08/2015) #27.2 + */ + ret = oer_serialize_length(st->size, cb, app_key); + if(ret < 0) { + ASN__ENCODE_FAILED; + } + er.encoded += ret; + + er.encoded += st->size; + if(cb(st->buf, st->size, app_key) < 0) { + ASN__ENCODE_FAILED; + } else { + ASN__ENCODED_OK(er); + } +} + +static int +oer__count_bytes(const void *buffer, size_t size, void *bytes_ptr) { + size_t *bytes = bytes_ptr; + (void)buffer; + *bytes += size; + return 0; +} + +ssize_t +oer_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + size_t serialized_byte_count = 0; + asn_enc_rval_t er; + ssize_t len_len; + + er = td->op->oer_encoder(td, constraints, sptr, oer__count_bytes, + &serialized_byte_count); + if(er.encoded < 0) return -1; + assert(serialized_byte_count == (size_t)er.encoded); + + len_len = oer_serialize_length(serialized_byte_count, cb, app_key); + if(len_len == -1) return -1; + + er = td->op->oer_encoder(td, constraints, sptr, cb, app_key); + if(er.encoded < 0) return -1; + assert(serialized_byte_count == (size_t)er.encoded); + + return len_len + er.encoded; +} + diff --git a/vcits/asn1c/src/oer_support.c b/vcits/asn1c/src/oer_support.c new file mode 100644 index 0000000..b15a3bc --- /dev/null +++ b/vcits/asn1c/src/oer_support.c @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +#include + +/* + * Fetch the length determinant (X.696 08/2015, #8.6) into *len_r. + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering length. + * >0: Number of bytes used from bufptr. + */ +ssize_t +oer_fetch_length(const void *bufptr, size_t size, size_t *len_r) { + uint8_t first_byte; + size_t len_len; /* Length of the length determinant */ + const uint8_t *b; + const uint8_t *bend; + size_t len; + + if(size == 0) { + *len_r = 0; + return 0; + } + + first_byte = *(const uint8_t *)bufptr; + if((first_byte & 0x80) == 0) { /* Short form */ + *len_r = first_byte; /* 0..127 */ + return 1; + } + + len_len = (first_byte & 0x7f); + if((1 + len_len) > size) { + *len_r = 0; + return 0; + } + + b = (const uint8_t *)bufptr + 1; + bend = b + len_len; + + for(; b < bend && *b == 0; b++) { + /* Skip the leading 0-bytes */ + } + + if((bend - b) > (ssize_t)sizeof(size_t)) { + /* Length is not representable by the native size_t type */ + *len_r = 0; + return -1; + } + + for(len = 0; b < bend; b++) { + len = (len << 8) + *b; + } + + if(len > RSIZE_MAX) { /* A bit of C11 validation */ + *len_r = 0; + return -1; + } + + *len_r = len; + assert(len_len + 1 == (size_t)(bend - (const uint8_t *)bufptr)); + return len_len + 1; +} + + +/* + * Serialize OER length. Returns the number of bytes serialized + * or -1 if a given callback returned with negative result. + */ +ssize_t +oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, + void *app_key) { + uint8_t scratch[1 + sizeof(length)]; + uint8_t *sp = scratch; + int littleEndian = 1; /* Run-time detection */ + const uint8_t *pstart; + const uint8_t *pend; + const uint8_t *p; + int add; + + if(length <= 127) { + uint8_t b = length; + if(cb(&b, 1, app_key) < 0) { + return -1; + } + return 1; + } + + if(*(char *)&littleEndian) { + pstart = (const uint8_t *)&length + sizeof(length) - 1; + pend = (const uint8_t *)&length; + add = -1; + } else { + pstart = (const uint8_t *)&length; + pend = pstart + sizeof(length); + add = 1; + } + + for(p = pstart; p != pend; p += add) { + /* Skip leading zeros. */ + if(*p) break; + } + + for(sp = scratch + 1; ; p += add) { + *sp++ = *p; + if(p == pend) break; + } + assert((sp - scratch) - 1 <= 0x7f); + scratch[0] = 0x80 + ((sp - scratch) - 1); + + if(cb(scratch, sp - scratch, app_key) < 0) { + return -1; + } + + return sp - scratch; +} + diff --git a/vcits/asn1c/src/per_decoder.c b/vcits/asn1c/src/per_decoder.c new file mode 100644 index 0000000..8a3e39d --- /dev/null +++ b/vcits/asn1c/src/per_decoder.c @@ -0,0 +1,185 @@ +#include +#include +#include + +/* + * Decode a "Production of a complete encoding", X.691#10.1. + * The complete encoding contains at least one byte, and is an integral + * multiple of 8 bytes. + */ +asn_dec_rval_t +uper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buffer, size_t size) { + asn_dec_rval_t rval; + + rval = uper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); + if(rval.consumed) { + /* + * We've always given 8-aligned data, + * so convert bits to integral bytes. + */ + rval.consumed += 7; + rval.consumed >>= 3; + } else if(rval.code == RC_OK) { + if(size) { + if(((const uint8_t *)buffer)[0] == 0) { + rval.consumed = 1; /* 1 byte */ + } else { + ASN_DEBUG("Expecting single zeroed byte"); + rval.code = RC_FAIL; + } + } else { + /* Must contain at least 8 bits. */ + rval.code = RC_WMORE; + } + } + + return rval; +} + +asn_dec_rval_t +uper_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, + size_t size, int skip_bits, int unused_bits) { + asn_codec_ctx_t s_codec_ctx; + asn_dec_rval_t rval; + asn_per_data_t pd; + + if(skip_bits < 0 || skip_bits > 7 + || unused_bits < 0 || unused_bits > 7 + || (unused_bits > 0 && !size)) + ASN__DECODE_FAILED; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* Fill in the position indicator */ + memset(&pd, 0, sizeof(pd)); + pd.buffer = (const uint8_t *)buffer; + pd.nboff = skip_bits; + pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ + if(pd.nboff > pd.nbits) + ASN__DECODE_FAILED; + + /* + * Invoke type-specific decoder. + */ + if(!td->op->uper_decoder) + ASN__DECODE_FAILED; /* PER is not compiled in */ + rval = td->op->uper_decoder(opt_codec_ctx, td, 0, sptr, &pd); + if(rval.code == RC_OK) { + /* Return the number of consumed bits */ + rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) + + pd.nboff - skip_bits; + ASN_DEBUG("PER decoding consumed %ld, counted %ld", + (long)rval.consumed, (long)pd.moved); + assert(rval.consumed == pd.moved); + } else { + /* PER codec is not a restartable */ + rval.consumed = 0; + } + return rval; +} + +asn_dec_rval_t +aper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buffer, size_t size) { + asn_dec_rval_t rval; + + rval = aper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); + if(rval.consumed) { + /* + * We've always given 8-aligned data, + * so convert bits to integral bytes. + */ + rval.consumed += 7; + rval.consumed >>= 3; + } else if(rval.code == RC_OK) { + if(size) { + if(((const uint8_t *)buffer)[0] == 0) { + rval.consumed = 1; /* 1 byte */ + } else { + ASN_DEBUG("Expecting single zeroed byte"); + rval.code = RC_FAIL; + } + } else { + /* Must contain at least 8 bits. */ + rval.code = RC_WMORE; + } + } + + return rval; +} + +asn_dec_rval_t +aper_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, + size_t size, int skip_bits, int unused_bits) { + asn_codec_ctx_t s_codec_ctx; + asn_dec_rval_t rval; + asn_per_data_t pd; + + if(skip_bits < 0 || skip_bits > 7 + || unused_bits < 0 || unused_bits > 7 + || (unused_bits > 0 && !size)) + ASN__DECODE_FAILED; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* Fill in the position indicator */ + memset(&pd, 0, sizeof(pd)); + pd.buffer = (const uint8_t *)buffer; + pd.nboff = skip_bits; + pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ + if(pd.nboff > pd.nbits) + ASN__DECODE_FAILED; + + /* + * Invoke type-specific decoder. + */ + if(!td->op->aper_decoder) + ASN__DECODE_FAILED; /* PER is not compiled in */ + rval = td->op->aper_decoder(opt_codec_ctx, td, 0, sptr, &pd); + if(rval.code == RC_OK) { + /* Return the number of consumed bits */ + rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) + + pd.nboff - skip_bits; + ASN_DEBUG("PER decoding consumed %zu, counted %zu", + rval.consumed, pd.moved); + assert(rval.consumed == pd.moved); + } else { + /* PER codec is not a restartable */ + rval.consumed = 0; + } + return rval; +} + diff --git a/vcits/asn1c/src/per_encoder.c b/vcits/asn1c/src/per_encoder.c new file mode 100644 index 0000000..a5d73ce --- /dev/null +++ b/vcits/asn1c/src/per_encoder.c @@ -0,0 +1,265 @@ +#include +#include +#include + +static int _uper_encode_flush_outp(asn_per_outp_t *po); + +static int +ignore_output(const void *data, size_t size, void *app_key) { + (void)data; + (void)size; + (void)app_key; + return 0; +} + +asn_enc_rval_t +uper_encode(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_per_outp_t po; + asn_enc_rval_t er; + + /* + * Invoke type-specific encoder. + */ + if(!td || !td->op->uper_encoder) + ASN__ENCODE_FAILED; /* PER is not compiled in */ + + po.buffer = po.tmpspace; + po.nboff = 0; + po.nbits = 8 * sizeof(po.tmpspace); + po.output = cb ? cb : ignore_output; + po.op_key = app_key; + po.flushed_bytes = 0; + + er = td->op->uper_encoder(td, constraints, sptr, &po); + if(er.encoded != -1) { + size_t bits_to_flush; + + bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; + + /* Set number of bits encoded to a firm value */ + er.encoded = (po.flushed_bytes << 3) + bits_to_flush; + + if(_uper_encode_flush_outp(&po)) ASN__ENCODE_FAILED; + } + + return er; +} + +/* + * Argument type and callback necessary for uper_encode_to_buffer(). + */ +typedef struct enc_to_buf_arg { + void *buffer; + size_t left; +} enc_to_buf_arg; +static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { + enc_to_buf_arg *arg = (enc_to_buf_arg *)key; + + if(arg->left < size) + return -1; /* Data exceeds the available buffer size */ + + memcpy(arg->buffer, buffer, size); + arg->buffer = ((char *)arg->buffer) + size; + arg->left -= size; + + return 0; +} + +asn_enc_rval_t +uper_encode_to_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void *buffer, size_t buffer_size) { + enc_to_buf_arg key; + + key.buffer = buffer; + key.left = buffer_size; + + if(td) ASN_DEBUG("Encoding \"%s\" using UNALIGNED PER", td->name); + + return uper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); +} + +typedef struct enc_dyn_arg { + void *buffer; + size_t length; + size_t allocated; +} enc_dyn_arg; +static int +encode_dyn_cb(const void *buffer, size_t size, void *key) { + enc_dyn_arg *arg = key; + if(arg->length + size >= arg->allocated) { + size_t new_size = arg->allocated ? arg->allocated : 8; + void *p; + + do { + new_size <<= 2; + } while(arg->length + size >= new_size); + + p = REALLOC(arg->buffer, new_size); + if(!p) { + FREEMEM(arg->buffer); + memset(arg, 0, sizeof(*arg)); + return -1; + } + arg->buffer = p; + arg->allocated = new_size; + } + memcpy(((char *)arg->buffer) + arg->length, buffer, size); + arg->length += size; + return 0; +} +ssize_t +uper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void **buffer_r) { + asn_enc_rval_t er; + enc_dyn_arg key; + + memset(&key, 0, sizeof(key)); + + er = uper_encode(td, constraints, sptr, encode_dyn_cb, &key); + switch(er.encoded) { + case -1: + FREEMEM(key.buffer); + return -1; + case 0: + FREEMEM(key.buffer); + key.buffer = MALLOC(1); + if(key.buffer) { + *(char *)key.buffer = '\0'; + *buffer_r = key.buffer; + return 1; + } else { + return -1; + } + default: + *buffer_r = key.buffer; + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + return ((er.encoded + 7) >> 3); + } +} + +/* + * Internally useful functions. + */ + +/* Flush partially filled buffer */ +static int +_uper_encode_flush_outp(asn_per_outp_t *po) { + uint8_t *buf; + + if(po->nboff == 0 && po->buffer == po->tmpspace) + return 0; + + buf = po->buffer + (po->nboff >> 3); + /* Make sure we account for the last, partially filled */ + if(po->nboff & 0x07) { + buf[0] &= 0xff << (8 - (po->nboff & 0x07)); + buf++; + } + + return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); +} + +asn_enc_rval_t +aper_encode_to_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void *buffer, size_t buffer_size) { + enc_to_buf_arg key; + + key.buffer = buffer; + key.left = buffer_size; + + if(td) ASN_DEBUG("Encoding \"%s\" using ALIGNED PER", td->name); + + return aper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); +} + +ssize_t +aper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void **buffer_r) { + asn_enc_rval_t er; + enc_dyn_arg key; + + memset(&key, 0, sizeof(key)); + + er = aper_encode(td, constraints, sptr, encode_dyn_cb, &key); + switch(er.encoded) { + case -1: + FREEMEM(key.buffer); + return -1; + case 0: + FREEMEM(key.buffer); + key.buffer = MALLOC(1); + if(key.buffer) { + *(char *)key.buffer = '\0'; + *buffer_r = key.buffer; + return 1; + } else { + return -1; + } + default: + *buffer_r = key.buffer; + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + return ((er.encoded + 7) >> 3); + } +} + +static int +_aper_encode_flush_outp(asn_per_outp_t *po) { + uint8_t *buf; + + if(po->nboff == 0 && po->buffer == po->tmpspace) + return 0; + + buf = po->buffer + (po->nboff >> 3); + /* Make sure we account for the last, partially filled */ + if(po->nboff & 0x07) { + buf[0] &= 0xff << (8 - (po->nboff & 0x07)); + buf++; + } + + if (po->output) { + return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); + } + return 0; +} + +asn_enc_rval_t +aper_encode(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, void *app_key) { + asn_per_outp_t po; + asn_enc_rval_t er; + + /* + * Invoke type-specific encoder. + */ + if(!td || !td->op->aper_encoder) + ASN__ENCODE_FAILED; /* PER is not compiled in */ + + po.buffer = po.tmpspace; + po.nboff = 0; + po.nbits = 8 * sizeof(po.tmpspace); + po.output = cb; + po.op_key = app_key; + po.flushed_bytes = 0; + + er = td->op->aper_encoder(td, constraints, sptr, &po); + if(er.encoded != -1) { + size_t bits_to_flush; + + bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; + + /* Set number of bits encoded to a firm value */ + er.encoded = (po.flushed_bytes << 3) + bits_to_flush; + + if(_aper_encode_flush_outp(&po)) + ASN__ENCODE_FAILED; + } + + return er; +} diff --git a/vcits/asn1c/src/per_opentype.c b/vcits/asn1c/src/per_opentype.c new file mode 100644 index 0000000..28f3cb6 --- /dev/null +++ b/vcits/asn1c/src/per_opentype.c @@ -0,0 +1,533 @@ +/* + * Copyright (c) 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +typedef struct uper_ugot_key { + asn_per_data_t oldpd; /* Old per data source */ + size_t unclaimed; + size_t ot_moved; /* Number of bits moved by OT processing */ + int repeat; +} uper_ugot_key; + +static int uper_ugot_refill(asn_per_data_t *pd); +static int per_skip_bits(asn_per_data_t *pd, int skip_nbits); +static asn_dec_rval_t uper_sot_suck(const asn_codec_ctx_t *, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + +/* + * Encode an "open type field". + * #10.1, #10.2 + */ +int +uper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + void *buf; + void *bptr; + ssize_t size; + + ASN_DEBUG("Open type put %s ...", td->name); + + size = uper_encode_to_new_buffer(td, constraints, sptr, &buf); + if(size <= 0) return -1; + + ASN_DEBUG("Open type put %s of length %" ASN_PRI_SSIZE " + overhead (1byte?)", td->name, + size); + + bptr = buf; + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size, &need_eom); + ASN_DEBUG("Prepending length %" ASN_PRI_SSIZE + " to %s and allowing to save %" ASN_PRI_SSIZE, + size, td->name, may_save); + if(may_save < 0) break; + if(per_put_many_bits(po, bptr, may_save * 8)) break; + bptr = (char *)bptr + may_save; + size -= may_save; + if(need_eom && uper_put_length(po, 0, 0)) { + FREEMEM(buf); + return -1; + } + } while(size); + + FREEMEM(buf); + if(size) return -1; + + return 0; +} + +static asn_dec_rval_t +uper_open_type_get_simple(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + ssize_t chunk_bytes; + int repeat; + uint8_t *buf = 0; + size_t bufLen = 0; + size_t bufSize = 0; + asn_per_data_t spd; + size_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s...", td->name); + + do { + chunk_bytes = uper_get_length(pd, -1, 0, &repeat); + if(chunk_bytes < 0) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + if(bufLen + chunk_bytes > bufSize) { + void *ptr; + bufSize = chunk_bytes + (bufSize << 2); + ptr = REALLOC(buf, bufSize); + if(!ptr) { + FREEMEM(buf); + ASN__DECODE_FAILED; + } + buf = ptr; + } + if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + bufLen += chunk_bytes; + } while(repeat); + + ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, + (long)bufLen); + + memset(&spd, 0, sizeof(spd)); + spd.buffer = buf; + spd.nbits = bufLen << 3; + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->uper_decoder(ctx, td, constraints, sptr, &spd); + ASN_DEBUG_INDENT_ADD(-4); + + if(rv.code == RC_OK) { + /* Check padding validity */ + padding = spd.nbits - spd.nboff; + if (((padding > 0 && padding < 8) || + /* X.691#10.1.3 */ + (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && + per_get_few_bits(&spd, padding) == 0) { + /* Everything is cool */ + FREEMEM(buf); + return rv; + } + FREEMEM(buf); + if(padding >= 8) { + ASN_DEBUG("Too large padding %d in open type", (int)padding); + ASN__DECODE_FAILED; + } else { + ASN_DEBUG("No padding"); + } + } else { + FREEMEM(buf); + /* rv.code could be RC_WMORE, nonsense in this context */ + rv.code = RC_FAIL; /* Noone would give us more */ + } + + return rv; +} + +static asn_dec_rval_t CC_NOTUSED +uper_open_type_get_complex(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + uper_ugot_key arg; + asn_dec_rval_t rv; + ssize_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s from %s", td->name, + asn_bit_data_string(pd)); + arg.oldpd = *pd; + arg.unclaimed = 0; + arg.ot_moved = 0; + arg.repeat = 1; + pd->refill = uper_ugot_refill; + pd->refill_key = &arg; + pd->nbits = pd->nboff; /* 0 good bits at this point, will refill */ + pd->moved = 0; /* This now counts the open type size in bits */ + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->uper_decoder(ctx, td, constraints, sptr, pd); + ASN_DEBUG_INDENT_ADD(-4); + +#define UPDRESTOREPD do { \ + /* buffer and nboff are valid, preserve them. */ \ + pd->nbits = arg.oldpd.nbits - (pd->moved - arg.ot_moved); \ + pd->moved = arg.oldpd.moved + (pd->moved - arg.ot_moved); \ + pd->refill = arg.oldpd.refill; \ + pd->refill_key = arg.oldpd.refill_key; \ + } while(0) + + if(rv.code != RC_OK) { + UPDRESTOREPD; + return rv; + } + + ASN_DEBUG("OpenType %s pd%s old%s unclaimed=%d, repeat=%d", td->name, + asn_bit_data_string(pd), + asn_bit_data_string(&arg.oldpd), + (int)arg.unclaimed, (int)arg.repeat); + + padding = pd->moved % 8; + if(padding) { + int32_t pvalue; + if(padding > 7) { + ASN_DEBUG("Too large padding %d in open type", + (int)padding); + rv.code = RC_FAIL; + UPDRESTOREPD; + return rv; + } + padding = 8 - padding; + ASN_DEBUG("Getting padding of %d bits", (int)padding); + pvalue = per_get_few_bits(pd, padding); + switch(pvalue) { + case -1: + ASN_DEBUG("Padding skip failed"); + UPDRESTOREPD; + ASN__DECODE_STARVED; + case 0: break; + default: + ASN_DEBUG("Non-blank padding (%d bits 0x%02x)", + (int)padding, (int)pvalue); + UPDRESTOREPD; + ASN__DECODE_FAILED; + } + } + if(pd->nboff != pd->nbits) { + ASN_DEBUG("Open type %s overhead pd%s old%s", td->name, + asn_bit_data_string(pd), asn_bit_data_string(&arg.oldpd)); + if(1) { + UPDRESTOREPD; + ASN__DECODE_FAILED; + } else { + arg.unclaimed += pd->nbits - pd->nboff; + } + } + + /* Adjust pd back so it points to original data */ + UPDRESTOREPD; + + /* Skip data not consumed by the decoder */ + if(arg.unclaimed) { + ASN_DEBUG("Getting unclaimed %d", (int)arg.unclaimed); + switch(per_skip_bits(pd, arg.unclaimed)) { + case -1: + ASN_DEBUG("Claim of %d failed", (int)arg.unclaimed); + ASN__DECODE_STARVED; + case 0: + ASN_DEBUG("Got claim of %d", (int)arg.unclaimed); + break; + default: + /* Padding must be blank */ + ASN_DEBUG("Non-blank unconsumed padding"); + ASN__DECODE_FAILED; + } + arg.unclaimed = 0; + } + + if(arg.repeat) { + ASN_DEBUG("Not consumed the whole thing"); + rv.code = RC_FAIL; + return rv; + } + + return rv; +} + + +asn_dec_rval_t +uper_open_type_get(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + return uper_open_type_get_simple(ctx, td, constraints, sptr, pd); +} + +int +uper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { + asn_TYPE_descriptor_t s_td; + asn_TYPE_operation_t s_op; + asn_dec_rval_t rv; + + s_td.name = ""; + s_td.op = &s_op; + s_op.uper_decoder = uper_sot_suck; + + rv = uper_open_type_get(ctx, &s_td, 0, 0, pd); + if(rv.code != RC_OK) + return -1; + else + return 0; +} + +/* + * Internal functions. + */ + +static asn_dec_rval_t +uper_sot_suck(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + + (void)ctx; + (void)td; + (void)constraints; + (void)sptr; + + while(per_get_few_bits(pd, 1) >= 0); + + rv.code = RC_OK; + rv.consumed = pd->moved; + + return rv; +} + +static int +uper_ugot_refill(asn_per_data_t *pd) { + uper_ugot_key *arg = pd->refill_key; + ssize_t next_chunk_bytes, next_chunk_bits; + ssize_t avail; + + asn_per_data_t *oldpd = &arg->oldpd; + + ASN_DEBUG("REFILLING pd->moved=%ld, oldpd->moved=%ld", + (long)pd->moved, (long)oldpd->moved); + + /* Advance our position to where pd is */ + oldpd->buffer = pd->buffer; + oldpd->nboff = pd->nboff; + oldpd->nbits -= pd->moved - arg->ot_moved; + oldpd->moved += pd->moved - arg->ot_moved; + arg->ot_moved = pd->moved; + + if(arg->unclaimed) { + /* Refill the container */ + if(per_get_few_bits(oldpd, 1)) + return -1; + if(oldpd->nboff == 0) { + assert(0); + return -1; + } + pd->buffer = oldpd->buffer; + pd->nboff = oldpd->nboff - 1; + pd->nbits = oldpd->nbits; + ASN_DEBUG("UNCLAIMED <- return from (pd->moved=%ld)", + (long)pd->moved); + return 0; + } + + if(!arg->repeat) { + ASN_DEBUG("Want more but refill doesn't have it"); + return -1; + } + + next_chunk_bytes = uper_get_length(oldpd, -1, 0, &arg->repeat); + ASN_DEBUG("Open type LENGTH %ld bytes at off %ld, repeat %ld", + (long)next_chunk_bytes, (long)oldpd->moved, (long)arg->repeat); + if(next_chunk_bytes < 0) return -1; + if(next_chunk_bytes == 0) { + pd->refill = 0; /* No more refills, naturally */ + assert(!arg->repeat); /* Implementation guarantee */ + } + next_chunk_bits = next_chunk_bytes << 3; + avail = oldpd->nbits - oldpd->nboff; + if(avail >= next_chunk_bits) { + pd->nbits = oldpd->nboff + next_chunk_bits; + arg->unclaimed = 0; + ASN_DEBUG("!+Parent frame %ld bits, alloting %ld [%ld..%ld] (%ld)", + (long)next_chunk_bits, (long)oldpd->moved, + (long)oldpd->nboff, (long)oldpd->nbits, + (long)(oldpd->nbits - oldpd->nboff)); + } else { + pd->nbits = oldpd->nbits; + arg->unclaimed = next_chunk_bits - avail; + ASN_DEBUG("!-Parent frame %ld, require %ld, will claim %ld", + (long)avail, (long)next_chunk_bits, + (long)arg->unclaimed); + } + pd->buffer = oldpd->buffer; + pd->nboff = oldpd->nboff; + ASN_DEBUG("Refilled pd%s old%s", + asn_bit_data_string(pd), asn_bit_data_string(oldpd)); + return 0; +} + +static int +per_skip_bits(asn_per_data_t *pd, int skip_nbits) { + int hasNonZeroBits = 0; + while(skip_nbits > 0) { + int skip; + + /* per_get_few_bits() is more efficient when nbits <= 24 */ + if(skip_nbits < 24) + skip = skip_nbits; + else + skip = 24; + skip_nbits -= skip; + + switch(per_get_few_bits(pd, skip)) { + case -1: return -1; /* Starving */ + case 0: continue; /* Skipped empty space */ + default: hasNonZeroBits = 1; continue; + } + } + return hasNonZeroBits; +} + +static asn_dec_rval_t +aper_open_type_get_simple(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv; + ssize_t chunk_bytes; + int repeat; + uint8_t *buf = 0; + size_t bufLen = 0; + size_t bufSize = 0; + asn_per_data_t spd; + size_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s...", td->name); + + do { + chunk_bytes = aper_get_length(pd, -1, -1, &repeat); + if(chunk_bytes < 0) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + if(bufLen + chunk_bytes > bufSize) { + void *ptr; + bufSize = chunk_bytes + (bufSize << 2); + ptr = REALLOC(buf, bufSize); + if(!ptr) { + FREEMEM(buf); + ASN__DECODE_FAILED; + } + buf = ptr; + } + if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + bufLen += chunk_bytes; + } while(repeat); + + ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, + (long)bufLen); + + memset(&spd, 0, sizeof(spd)); + spd.buffer = buf; + spd.nbits = bufLen << 3; + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->aper_decoder(ctx, td, constraints, sptr, &spd); + ASN_DEBUG_INDENT_ADD(-4); + + if(rv.code == RC_OK) { + /* Check padding validity */ + padding = spd.nbits - spd.nboff; + if (((padding > 0 && padding < 8) || + /* X.691#10.1.3 */ + (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && + per_get_few_bits(&spd, padding) == 0) { + /* Everything is cool */ + FREEMEM(buf); + return rv; + } + FREEMEM(buf); + if(padding >= 8) { + ASN_DEBUG("Too large padding %d in open type", (int)padding); + ASN__DECODE_FAILED; + } else { + ASN_DEBUG("No padding"); + } + } else { + FREEMEM(buf); + /* rv.code could be RC_WMORE, nonsense in this context */ + rv.code = RC_FAIL; /* Noone would give us more */ + } + + return rv; +} + +int +aper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + void *buf; + void *bptr; + ssize_t size; + size_t toGo; + + ASN_DEBUG("Open type put %s ...", td->name); + + size = aper_encode_to_new_buffer(td, constraints, sptr, &buf); + if(size <= 0) return -1; + + for(bptr = buf, toGo = size; toGo;) { + ssize_t maySave = aper_put_length(po, -1, toGo); + if(maySave < 0) break; + if(per_put_many_bits(po, bptr, maySave * 8)) break; + bptr = (char *)bptr + maySave; + toGo -= maySave; + } + + FREEMEM(buf); + if(toGo) return -1; + + ASN_DEBUG("Open type put %s of length %ld + overhead (1byte?)", + td->name, size); + + return 0; +} + +asn_dec_rval_t +aper_open_type_get(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + + return aper_open_type_get_simple(ctx, td, constraints, sptr, pd); +} + +int +aper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { + asn_TYPE_descriptor_t s_td; + asn_dec_rval_t rv; + asn_TYPE_operation_t op_t; + + memset(&op_t, 0, sizeof(op_t)); + s_td.name = ""; + s_td.op = &op_t; + s_td.op->aper_decoder = uper_sot_suck; + + rv = aper_open_type_get(ctx, &s_td, 0, 0, pd); + if(rv.code != RC_OK) + return -1; + else + return 0; +} + + diff --git a/vcits/asn1c/src/per_support.c b/vcits/asn1c/src/per_support.c new file mode 100644 index 0000000..2285677 --- /dev/null +++ b/vcits/asn1c/src/per_support.c @@ -0,0 +1,489 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * X.691-201508 #10.9 General rules for encoding a length determinant. + * Get the optionally constrained length "n" from the stream. + */ +ssize_t +uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound, + int *repeat) { + ssize_t value; + + *repeat = 0; + + /* #11.9.4.1 Encoding if constrained (according to effective bits) */ + if(ebits >= 0 && ebits <= 16) { + value = per_get_few_bits(pd, ebits); + if(value >= 0) value += lower_bound; + return value; + } + + value = per_get_few_bits(pd, 8); + if((value & 0x80) == 0) { /* #11.9.3.6 */ + return (value & 0x7F); + } else if((value & 0x40) == 0) { /* #11.9.3.7 */ + /* bit 8 ... set to 1 and bit 7 ... set to zero */ + value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8); + return value; /* potential -1 from per_get_few_bits passes through. */ + } else if(value < 0) { + ASN_DEBUG("END of stream reached for PER"); + return -1; + } + value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */ + if(value < 1 || value > 4) { + return -1; /* Prohibited by #11.9.3.8 */ + } + *repeat = 1; + return (16384 * value); +} + +/* + * Get the normally small length "n". + * This procedure used to decode length of extensions bit-maps + * for SET and SEQUENCE types. + */ +ssize_t +uper_get_nslength(asn_per_data_t *pd) { + ssize_t length; + + ASN_DEBUG("Getting normally small length"); + + if(per_get_few_bits(pd, 1) == 0) { + length = per_get_few_bits(pd, 6) + 1; + if(length <= 0) return -1; + ASN_DEBUG("l=%d", (int)length); + return length; + } else { + int repeat; + length = uper_get_length(pd, -1, 0, &repeat); + if(length >= 0 && !repeat) return length; + return -1; /* Error, or do not support >16K extensions */ + } +} + +/* + * Get the normally small non-negative whole number. + * X.691, #10.6 + */ +ssize_t +uper_get_nsnnwn(asn_per_data_t *pd) { + ssize_t value; + + value = per_get_few_bits(pd, 7); + if(value & 64) { /* implicit (value < 0) */ + value &= 63; + value <<= 2; + value |= per_get_few_bits(pd, 2); + if(value & 128) /* implicit (value < 0) */ + return -1; + if(value == 0) + return 0; + if(value >= 3) + return -1; + value = per_get_few_bits(pd, 8 * value); + return value; + } + + return value; +} + +/* + * X.691-11/2008, #11.6 + * Encoding of a normally small non-negative whole number + */ +int +uper_put_nsnnwn(asn_per_outp_t *po, int n) { + int bytes; + + if(n <= 63) { + if(n < 0) return -1; + return per_put_few_bits(po, n, 7); + } + if(n < 256) + bytes = 1; + else if(n < 65536) + bytes = 2; + else if(n < 256 * 65536) + bytes = 3; + else + return -1; /* This is not a "normally small" value */ + if(per_put_few_bits(po, bytes, 8)) + return -1; + + return per_put_few_bits(po, n, 8 * bytes); +} + + +/* X.691-2008/11, #11.5.6 -> #11.3 */ +int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *out_value, int nbits) { + unsigned long lhalf; /* Lower half of the number*/ + long half; + + if(nbits <= 31) { + half = per_get_few_bits(pd, nbits); + if(half < 0) return -1; + *out_value = half; + return 0; + } + + if((size_t)nbits > 8 * sizeof(*out_value)) + return -1; /* RANGE */ + + half = per_get_few_bits(pd, 31); + if(half < 0) return -1; + + if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31)) + return -1; + + *out_value = ((unsigned long)half << (nbits - 31)) | lhalf; + return 0; +} + + +/* X.691-2008/11, #11.5.6 -> #11.3 */ +int +uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, + int nbits) { + if(nbits <= 31) { + return per_put_few_bits(po, v, nbits); + } else { + /* Put higher portion first, followed by lower 31-bit */ + if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31)) + return -1; + return per_put_few_bits(po, v, 31); + } +} + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "n" (or part of it) into the stream. + */ +ssize_t +uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) { + int dummy = 0; + if(!need_eom) need_eom = &dummy; + + if(length <= 127) { /* #11.9.3.6 */ + *need_eom = 0; + return per_put_few_bits(po, length, 8) + ? -1 : (ssize_t)length; + } else if(length < 16384) { /* #10.9.3.7 */ + *need_eom = 0; + return per_put_few_bits(po, length|0x8000, 16) + ? -1 : (ssize_t)length; + } + + *need_eom = 0 == (length & 16383); + length >>= 14; + if(length > 4) { + *need_eom = 0; + length = 4; + } + + return per_put_few_bits(po, 0xC0 | length, 8) + ? -1 : (ssize_t)(length << 14); + +} + + +/* + * Put the normally small length "n" into the stream. + * This procedure used to encode length of extensions bit-maps + * for SET and SEQUENCE types. + */ +int +uper_put_nslength(asn_per_outp_t *po, size_t length) { + if(length <= 64) { + /* #11.9.3.4 */ + if(length == 0) return -1; + return per_put_few_bits(po, length - 1, 7) ? -1 : 0; + } else { + int need_eom = 0; + if(uper_put_length(po, length, &need_eom) != (ssize_t)length + || need_eom) { + /* This might happen in case of >16K extensions */ + return -1; + } + } + + return 0; +} + +static int +per__long_range(long lb, long ub, unsigned long *range_r) { + unsigned long bounds_range; + if((ub < 0) == (lb < 0)) { + bounds_range = ub - lb; + } else if(lb < 0) { + assert(ub >= 0); + bounds_range = 1 + ((unsigned long)ub + (unsigned long)-(lb + 1)); + } else { + assert(!"Unreachable"); + return -1; + } + *range_r = bounds_range; + return 0; +} + +int +per_long_range_rebase(long v, long lb, long ub, unsigned long *output) { + unsigned long range; + + assert(lb <= ub); + + if(v < lb || v > ub || per__long_range(lb, ub, &range) < 0) { + /* Range error. */ + return -1; + } + + /* + * Fundamentally what we're doing is returning (v-lb). + * However, this triggers undefined behavior when the word width + * of signed (v) is the same as the size of unsigned (*output). + * In practice, it triggers the UndefinedSanitizer. Therefore we shall + * compute the ranges accurately to avoid C's undefined behavior. + */ + if((v < 0) == (lb < 0)) { + *output = v-lb; + return 0; + } else if(v < 0) { + unsigned long rebased = 1 + (unsigned long)-(v+1) + (unsigned long)lb; + assert(rebased <= range); /* By construction */ + *output = rebased; + return 0; + } else if(lb < 0) { + unsigned long rebased = 1 + (unsigned long)-(lb+1) + (unsigned long)v; + assert(rebased <= range); /* By construction */ + *output = rebased; + return 0; + } else { + assert(!"Unreachable"); + return -1; + } +} + +int +per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp) { + unsigned long range; + + if(per__long_range(lb, ub, &range) != 0) { + return -1; + } + + if(inp > range) { + /* + * We can encode something in the given number of bits that technically + * exceeds the range. This is an avenue for security errors, + * so we don't allow that. + */ + return -1; + } + + if(inp <= LONG_MAX) { + *outp = (long)inp + lb; + } else { + *outp = (lb + LONG_MAX + 1) + (long)((inp - LONG_MAX) - 1); + } + + return 0; +} + +int32_t +aper_get_align(asn_per_data_t *pd) { + + if(pd->nboff & 0x7) { + ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)pd->nboff & 0x7)); + return per_get_few_bits(pd, 8 - (pd->nboff & 0x7)); + } + return 0; +} + +ssize_t +aper_get_length(asn_per_data_t *pd, int range, int ebits, int *repeat) { + ssize_t value; + + *repeat = 0; + + if (range <= 65536 && range >= 0) + return aper_get_nsnnwn(pd, range); + + if (aper_get_align(pd) < 0) + return -1; + + if(ebits >= 0) return per_get_few_bits(pd, ebits); + + value = per_get_few_bits(pd, 8); + if(value < 0) return -1; + if((value & 128) == 0) /* #10.9.3.6 */ + return (value & 0x7F); + if((value & 64) == 0) { /* #10.9.3.7 */ + value = ((value & 63) << 8) | per_get_few_bits(pd, 8); + if(value < 0) return -1; + return value; + } + value &= 63; /* this is "m" from X.691, #10.9.3.8 */ + if(value < 1 || value > 4) + return -1; + *repeat = 1; + return (16384 * value); +} + +ssize_t +aper_get_nslength(asn_per_data_t *pd) { + ssize_t length; + + ASN_DEBUG("Getting normally small length"); + + if(per_get_few_bits(pd, 1) == 0) { + length = per_get_few_bits(pd, 6) + 1; + if(length <= 0) return -1; + ASN_DEBUG("l=%ld", length); + return length; + } else { + int repeat; + length = aper_get_length(pd, -1, -1, &repeat); + if(length >= 0 && !repeat) return length; + return -1; /* Error, or do not support >16K extensions */ + } +} + +ssize_t +aper_get_nsnnwn(asn_per_data_t *pd, int range) { + ssize_t value; + int bytes = 0; + + ASN_DEBUG("getting nsnnwn with range %d", range); + + if(range <= 255) { + int i; + + if (range < 0) return -1; + /* 1 -> 8 bits */ + for (i = 1; i <= 8; i++) { + int upper = 1 << i; + if (upper >= range) + break; + } + value = per_get_few_bits(pd, i); + return value; + } else if (range == 256){ + /* 1 byte */ + bytes = 1; + } else if (range <= 65536) { + /* 2 bytes */ + bytes = 2; + } else { + return -1; + } + if (aper_get_align(pd) < 0) + return -1; + value = per_get_few_bits(pd, 8 * bytes); + return value; +} + +int aper_put_align(asn_per_outp_t *po) { + + if(po->nboff & 0x7) { + ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)po->nboff & 0x7)); + if(per_put_few_bits(po, 0x00, (8 - (po->nboff & 0x7)))) + return -1; + } + return 0; +} + +ssize_t +aper_put_length(asn_per_outp_t *po, int range, size_t length) { + + ASN_DEBUG("APER put length %zu with range %d", length, range); + + /* 10.9 X.691 Note 2 */ + if (range <= 65536 && range >= 0) + return aper_put_nsnnwn(po, range, length); + + if (aper_put_align(po) < 0) + return -1; + + if(length <= 127) /* #10.9.3.6 */{ + return per_put_few_bits(po, length, 8) + ? -1 : (ssize_t)length; + } + else if(length < 16384) /* #10.9.3.7 */ + return per_put_few_bits(po, length|0x8000, 16) + ? -1 : (ssize_t)length; + + length >>= 14; + if(length > 4) length = 4; + + return per_put_few_bits(po, 0xC0 | length, 8) + ? -1 : (ssize_t)(length << 14); +} + + +int +aper_put_nslength(asn_per_outp_t *po, size_t length) { + + if(length <= 64) { + /* #10.9.3.4 */ + if(length == 0) return -1; + return per_put_few_bits(po, length-1, 7) ? -1 : 0; + } else { + if(aper_put_length(po, -1, length) != (ssize_t)length) { + /* This might happen in case of >16K extensions */ + return -1; + } + } + + return 0; +} + +int +aper_put_nsnnwn(asn_per_outp_t *po, int range, int number) { + int bytes; + + ASN_DEBUG("aper put nsnnwn %d with range %d", number, range); + /* 10.5.7.1 X.691 */ + if(range < 0) { + int i; + for (i = 1; ; i++) { + int bits = 1 << (8 * i); + if (number <= bits) + break; + } + bytes = i; + assert(i <= 4); + } + if(range <= 255) { + int i; + for (i = 1; i <= 8; i++) { + int bits = 1 << i; + if (range <= bits) + break; + } + return per_put_few_bits(po, number, i); + } else if(range == 256) { + bytes = 1; + } else if(range <= 65536) { + bytes = 2; + } else { /* Ranges > 64K */ + int i; + for (i = 1; ; i++) { + int bits = 1 << (8 * i); + if (range <= bits) + break; + } + assert(i <= 4); + bytes = i; + } + if(aper_put_align(po) < 0) /* Aligning on octet */ + return -1; +/* if(per_put_few_bits(po, bytes, 8)) + return -1; +*/ + return per_put_few_bits(po, number, 8 * bytes); +} diff --git a/vcits/asn1c/src/xer_decoder.c b/vcits/asn1c/src/xer_decoder.c new file mode 100644 index 0000000..5b87703 --- /dev/null +++ b/vcits/asn1c/src/xer_decoder.c @@ -0,0 +1,369 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* XER/XML parsing support */ + + +/* + * Decode the XER encoding of a given type. + */ +asn_dec_rval_t +xer_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *buffer, size_t size) { + asn_codec_ctx_t s_codec_ctx; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* + * Invoke type-specific decoder. + */ + return td->op->xer_decoder(opt_codec_ctx, td, struct_ptr, 0, buffer, size); +} + + + +struct xer__cb_arg { + pxml_chunk_type_e chunk_type; + size_t chunk_size; + const void *chunk_buf; + int callback_not_invoked; +}; + +static int +xer__token_cb(pxml_chunk_type_e type, const void *_chunk_data, size_t _chunk_size, void *key) { + struct xer__cb_arg *arg = (struct xer__cb_arg *)key; + arg->chunk_type = type; + arg->chunk_size = _chunk_size; + arg->chunk_buf = _chunk_data; + arg->callback_not_invoked = 0; + return -1; /* Terminate the XML parsing */ +} + +/* + * Fetch the next token from the XER/XML stream. + */ +ssize_t +xer_next_token(int *stateContext, const void *buffer, size_t size, pxer_chunk_type_e *ch_type) { + struct xer__cb_arg arg; + int new_stateContext = *stateContext; + ssize_t ret; + + arg.callback_not_invoked = 1; + ret = pxml_parse(&new_stateContext, buffer, size, xer__token_cb, &arg); + if(ret < 0) return -1; + if(arg.callback_not_invoked) { + assert(ret == 0); /* No data was consumed */ + *ch_type = PXER_WMORE; + return 0; /* Try again with more data */ + } else { + assert(arg.chunk_size); + assert(arg.chunk_buf == buffer); + } + + /* + * Translate the XML chunk types into more convenient ones. + */ + switch(arg.chunk_type) { + case PXML_TEXT: + *ch_type = PXER_TEXT; + break; + case PXML_TAG: + *ch_type = PXER_WMORE; + return 0; /* Want more */ + case PXML_TAG_END: + *ch_type = PXER_TAG; + break; + case PXML_COMMENT: + case PXML_COMMENT_END: + *ch_type = PXER_COMMENT; + break; + } + + *stateContext = new_stateContext; + return arg.chunk_size; +} + +#define CSLASH 0x2f /* '/' */ +#define LANGLE 0x3c /* '<' */ +#define RANGLE 0x3e /* '>' */ + +xer_check_tag_e +xer_check_tag(const void *buf_ptr, int size, const char *need_tag) { + const char *buf = (const char *)buf_ptr; + const char *end; + xer_check_tag_e ct = XCT_OPENING; + + if(size < 2 || buf[0] != LANGLE || buf[size-1] != RANGLE) { + if(size >= 2) + ASN_DEBUG("Broken XML tag: \"%c...%c\"", + buf[0], buf[size - 1]); + return XCT_BROKEN; + } + + /* + * Determine the tag class. + */ + if(buf[1] == CSLASH) { + buf += 2; /* advance past "" */ + ct = XCT_CLOSING; + if(size > 0 && buf[size-1] == CSLASH) + return XCT_BROKEN; /* */ + } else { + buf++; /* advance past "<" */ + size -= 2; /* strip "<" and ">" */ + if(size > 0 && buf[size-1] == CSLASH) { + ct = XCT_BOTH; + size--; /* One more, for "/" */ + } + } + + /* Sometimes we don't care about the tag */ + if(!need_tag || !*need_tag) + return (xer_check_tag_e)(XCT__UNK__MASK | ct); + + /* + * Determine the tag name. + */ + for(end = buf + size; buf < end; buf++, need_tag++) { + int b = *buf, n = *need_tag; + if(b != n) { + if(n == 0) { + switch(b) { + case 0x09: case 0x0a: case 0x0c: case 0x0d: + case 0x20: + /* "": whitespace is normal */ + return ct; + } + } + return (xer_check_tag_e)(XCT__UNK__MASK | ct); + } + if(b == 0) + return XCT_BROKEN; /* Embedded 0 in buf?! */ + } + if(*need_tag) + return (xer_check_tag_e)(XCT__UNK__MASK | ct); + + return ct; +} + + +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = (num_bytes); \ + buf_ptr = ((const char *)buf_ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +#undef RETURN +#define RETURN(_code) do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + if(rval.code != RC_OK) \ + ASN_DEBUG("Failed with %d", rval.code); \ + return rval; \ + } while(0) + +#define XER_GOT_BODY(chunk_buf, chunk_size, size) do { \ + ssize_t converted_size = body_receiver \ + (struct_key, chunk_buf, chunk_size, \ + (size_t)chunk_size < size); \ + if(converted_size == -1) RETURN(RC_FAIL); \ + if(converted_size == 0 \ + && size == (size_t)chunk_size) \ + RETURN(RC_WMORE); \ + chunk_size = converted_size; \ + } while(0) +#define XER_GOT_EMPTY() do { \ + if(body_receiver(struct_key, 0, 0, size > 0) == -1) \ + RETURN(RC_FAIL); \ + } while(0) + +/* + * Generalized function for decoding the primitive values. + */ +asn_dec_rval_t +xer_decode_general(const asn_codec_ctx_t *opt_codec_ctx, + asn_struct_ctx_t *ctx, /* Type decoder context */ + void *struct_key, + const char *xml_tag, /* Expected XML tag */ + const void *buf_ptr, size_t size, + int (*opt_unexpected_tag_decoder) + (void *struct_key, const void *chunk_buf, size_t chunk_size), + ssize_t (*body_receiver) + (void *struct_key, const void *chunk_buf, size_t chunk_size, + int have_more) + ) { + + asn_dec_rval_t rval; + ssize_t consumed_myself = 0; + + (void)opt_codec_ctx; + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + */ + if(ctx->phase > 1) RETURN(RC_FAIL); + for(;;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, buf_ptr, size, + &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TEXT: + if(ctx->phase == 0) { + /* + * We have to ignore whitespace here, + * but in order to be forward compatible + * with EXTENDED-XER (EMBED-VALUES, #25) + * any text is just ignored here. + */ + } else { + XER_GOT_BODY(buf_ptr, ch_size, size); + } + ADVANCE(ch_size); + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + assert(ch_type == PXER_TAG && size); + + tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); + /* + * Phase 0: + * Expecting the opening tag + * for the type being processed. + * Phase 1: + * Waiting for the closing XML tag. + */ + switch(tcv) { + case XCT_BOTH: + if(ctx->phase) break; + /* Finished decoding of an empty element */ + XER_GOT_EMPTY(); + ADVANCE(ch_size); + ctx->phase = 2; /* Phase out */ + RETURN(RC_OK); + case XCT_OPENING: + if(ctx->phase) break; + ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + case XCT_CLOSING: + if(!ctx->phase) break; + ADVANCE(ch_size); + ctx->phase = 2; /* Phase out */ + RETURN(RC_OK); + case XCT_UNKNOWN_BO: + /* + * Certain tags in the body may be expected. + */ + if(opt_unexpected_tag_decoder + && opt_unexpected_tag_decoder(struct_key, + buf_ptr, ch_size) >= 0) { + /* Tag's processed fine */ + ADVANCE(ch_size); + if(!ctx->phase) { + /* We are not expecting + * the closing tag anymore. */ + ctx->phase = 2; /* Phase out */ + RETURN(RC_OK); + } + continue; + } + /* Fall through */ + default: + break; /* Unexpected tag */ + } + + ASN_DEBUG("Unexpected XML tag (expected \"%s\")", xml_tag); + break; /* Dark and mysterious things have just happened */ + } + + RETURN(RC_FAIL); +} + + +size_t +xer_whitespace_span(const void *chunk_buf, size_t chunk_size) { + const char *p = (const char *)chunk_buf; + const char *pend = p + chunk_size; + + for(; p < pend; p++) { + switch(*p) { + /* X.693, #8.1.4 + * HORISONTAL TAB (9) + * LINE FEED (10) + * CARRIAGE RETURN (13) + * SPACE (32) + */ + case 0x09: case 0x0a: case 0x0d: case 0x20: + continue; + default: + break; + } + break; + } + return (p - (const char *)chunk_buf); +} + +/* + * This is a vastly simplified, non-validating XML tree skipper. + */ +int +xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth) { + assert(*depth > 0); + switch(tcv) { + case XCT_BOTH: + case XCT_UNKNOWN_BO: + /* These negate each other. */ + return 0; + case XCT_OPENING: + case XCT_UNKNOWN_OP: + ++(*depth); + return 0; + case XCT_CLOSING: + case XCT_UNKNOWN_CL: + if(--(*depth) == 0) + return (tcv == XCT_CLOSING) ? 2 : 1; + return 0; + default: + return -1; + } +} diff --git a/vcits/asn1c/src/xer_encoder.c b/vcits/asn1c/src/xer_encoder.c new file mode 100644 index 0000000..dff3c44 --- /dev/null +++ b/vcits/asn1c/src/xer_encoder.c @@ -0,0 +1,237 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * The XER encoder of any type. May be invoked by the application. + */ +asn_enc_rval_t +xer_encode(const asn_TYPE_descriptor_t *td, const void *sptr, + enum xer_encoder_flags_e xer_flags, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er = {0, 0, 0}; + asn_enc_rval_t tmper; + const char *mname; + size_t mlen; + int xcan = (xer_flags & XER_F_CANONICAL) ? 1 : 2; + + if(!td || !sptr) goto cb_failed; + + mname = td->xml_tag; + mlen = strlen(mname); + + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + + tmper = td->op->xer_encoder(td, sptr, 1, xer_flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK3("\n", xcan); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +/* + * This is a helper function for xer_fprint, which directs all incoming data + * into the provided file descriptor. + */ +static int +xer__print2fp(const void *buffer, size_t size, void *app_key) { + FILE *stream = (FILE *)app_key; + + if(fwrite(buffer, 1, size, stream) != size) + return -1; + + return 0; +} + +int +xer_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, const void *sptr) { + asn_enc_rval_t er; + + if(!stream) stream = stdout; + if(!td || !sptr) + return -1; + + er = xer_encode(td, sptr, XER_F_BASIC, xer__print2fp, stream); + if(er.encoded == -1) + return -1; + + return fflush(stream); +} + +struct xer_buffer { + char *buffer; + size_t buffer_size; + size_t allocated_size; +}; + +static int +xer__buffer_append(const void *buffer, size_t size, void *app_key) { + struct xer_buffer *xb = app_key; + + while(xb->buffer_size + size + 1 > xb->allocated_size) { + size_t new_size = 2 * (xb->allocated_size ? xb->allocated_size : 64); + char *new_buf = MALLOC(new_size); + if(!new_buf) return -1; + if (xb->buffer) { + memcpy(new_buf, xb->buffer, xb->buffer_size); + } + FREEMEM(xb->buffer); + xb->buffer = new_buf; + xb->allocated_size = new_size; + } + + memcpy(xb->buffer + xb->buffer_size, buffer, size); + xb->buffer_size += size; + xb->buffer[xb->buffer_size] = '\0'; + return 0; +} + +enum xer_equivalence_e +xer_equivalent(const struct asn_TYPE_descriptor_s *td, const void *struct1, + const void *struct2, FILE *opt_debug_stream) { + struct xer_buffer xb1 = {0, 0, 0}; + struct xer_buffer xb2 = {0, 0, 0}; + asn_enc_rval_t e1, e2; + asn_dec_rval_t rval; + void *sptr = NULL; + + if(!td || !struct1 || !struct2) { + if(opt_debug_stream) { + if(!td) fprintf(opt_debug_stream, "Type descriptor missing\n"); + if(!struct1) fprintf(opt_debug_stream, "Structure 1 missing\n"); + if(!struct2) fprintf(opt_debug_stream, "Structure 2 missing\n"); + } + return XEQ_FAILURE; + } + + e1 = xer_encode(td, struct1, XER_F_BASIC, xer__buffer_append, &xb1); + if(e1.encoded == -1) { + if(opt_debug_stream) { + fprintf(stderr, "XER Encoding of %s failed\n", td->name); + } + FREEMEM(xb1.buffer); + return XEQ_ENCODE1_FAILED; + } + + e2 = xer_encode(td, struct2, XER_F_BASIC, xer__buffer_append, &xb2); + if(e2.encoded == -1) { + if(opt_debug_stream) { + fprintf(stderr, "XER Encoding of %s failed\n", td->name); + } + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_ENCODE1_FAILED; + } + + if(xb1.buffer_size != xb2.buffer_size + || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Structures XER-encoded into different byte streams:\n=== " + "Structure 1 ===\n%s\n=== Structure 2 ===\n%s\n", + xb1.buffer, xb2.buffer); + } + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_DIFFERENT; + } else { + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Both structures encoded into the same XER byte stream " + "of size %" ASN_PRI_SIZE ":\n%s", + xb1.buffer_size, xb1.buffer); + } + } + + rval = xer_decode(NULL, td, (void **)&sptr, xb1.buffer, + xb1.buffer_size); + switch(rval.code) { + case RC_OK: + break; + case RC_WMORE: + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Structure %s XER decode unexpectedly requires " + "more data:\n%s\n", + td->name, xb1.buffer); + } + /* Fall through */ + case RC_FAIL: + default: + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Structure %s XER decoding resulted in failure.\n", + td->name); + } + ASN_STRUCT_FREE(*td, sptr); + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_DECODE_FAILED; + } + + if(rval.consumed != xb1.buffer_size + && ((rval.consumed > xb1.buffer_size) + || xer_whitespace_span(xb1.buffer + rval.consumed, + xb1.buffer_size - rval.consumed) + != (xb1.buffer_size - rval.consumed))) { + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Round-trip decode of %s required less bytes (%" ASN_PRI_SIZE ") than " + "encoded (%" ASN_PRI_SIZE ")\n", + td->name, rval.consumed, xb1.buffer_size); + } + ASN_STRUCT_FREE(*td, sptr); + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_ROUND_TRIP_FAILED; + } + + /* + * Reuse xb2 to encode newly decoded structure. + */ + FREEMEM(xb2.buffer); + memset(&xb2, 0, sizeof(xb2)); + + e2 = xer_encode(td, sptr, XER_F_BASIC, xer__buffer_append, &xb2); + if(e2.encoded == -1) { + if(opt_debug_stream) { + fprintf(stderr, "XER Encoding of round-trip decode of %s failed\n", + td->name); + } + ASN_STRUCT_FREE(*td, sptr); + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_ROUND_TRIP_FAILED; + } + + ASN_STRUCT_FREE(*td, sptr); + sptr = 0; + + if(xb1.buffer_size != xb2.buffer_size + || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "XER Encoding of round-trip decode of %s resulted in " + "different byte stream:\n" + "=== Original ===\n%s\n" + "=== Round-tripped ===\n%s\n", + xb1.buffer, xb2.buffer, td->name); + } + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_ROUND_TRIP_FAILED; + } + + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_SUCCESS; +} + diff --git a/vcits/asn1c/src/xer_support.c b/vcits/asn1c/src/xer_support.c new file mode 100644 index 0000000..36b4bfb --- /dev/null +++ b/vcits/asn1c/src/xer_support.c @@ -0,0 +1,227 @@ +/* + * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. + * Copyright (c) 2003, 2004, 2005 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* Parser states */ +typedef enum { + ST_TEXT, + ST_TAG_START, + ST_TAG_BODY, + ST_TAG_QUOTE_WAIT, + ST_TAG_QUOTED_STRING, + ST_TAG_UNQUOTED_STRING, + ST_COMMENT_WAIT_DASH1, /* ""[0] */ + ST_COMMENT_CLO_RT /* "-->"[1] */ +} pstate_e; + +static const int +_charclass[256] = { + 0,0,0,0,0,0,0,0, 0,1,1,0,1,1,0,0, + 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, + 2,2,2,2,2,2,2,2, 2,2,0,0,0,0,0,0, /* 01234567 89 */ + 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* ABCDEFG HIJKLMNO */ + 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0, /* PQRSTUVW XYZ */ + 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* abcdefg hijklmno */ + 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0 /* pqrstuvw xyz */ +}; +#define WHITESPACE(c) (_charclass[(unsigned char)(c)] == 1) +#define ALNUM(c) (_charclass[(unsigned char)(c)] >= 2) +#define ALPHA(c) (_charclass[(unsigned char)(c)] == 3) + +/* Aliases for characters, ASCII/UTF-8 */ +#define EXCLAM 0x21 /* '!' */ +#define CQUOTE 0x22 /* '"' */ +#define CDASH 0x2d /* '-' */ +#define CSLASH 0x2f /* '/' */ +#define LANGLE 0x3c /* '<' */ +#define CEQUAL 0x3d /* '=' */ +#define RANGLE 0x3e /* '>' */ +#define CQUEST 0x3f /* '?' */ + +/* Invoke token callback */ +#define TOKEN_CB_CALL(type, _ns, _current_too, _final) do { \ + int _ret; \ + pstate_e ns = _ns; \ + ssize_t _sz = (p - chunk_start) + _current_too; \ + if (!_sz) { \ + /* Shortcut */ \ + state = _ns; \ + break; \ + } \ + _ret = cb(type, chunk_start, _sz, key); \ + if(_ret < _sz) { \ + if(_current_too && _ret == -1) \ + state = ns; \ + goto finish; \ + } \ + chunk_start = p + _current_too; \ + state = ns; \ + } while(0) + +#define TOKEN_CB(_type, _ns, _current_too) \ + TOKEN_CB_CALL(_type, _ns, _current_too, 0) + +#define PXML_TAG_FINAL_CHUNK_TYPE PXML_TAG_END +#define PXML_COMMENT_FINAL_CHUNK_TYPE PXML_COMMENT_END + +#define TOKEN_CB_FINAL(_type, _ns, _current_too) \ + TOKEN_CB_CALL( _type ## _FINAL_CHUNK_TYPE , _ns, _current_too, 1) + +/* + * Parser itself + */ +ssize_t pxml_parse(int *stateContext, const void *xmlbuf, size_t size, pxml_callback_f *cb, void *key) { + pstate_e state = (pstate_e)*stateContext; + const char *chunk_start = (const char *)xmlbuf; + const char *p = chunk_start; + const char *end = p + size; + + for(; p < end; p++) { + int C = *(const unsigned char *)p; + switch(state) { + case ST_TEXT: + /* + * Initial state: we're in the middle of some text, + * or just have started. + */ + if (C == LANGLE) + /* We're now in the tag, probably */ + TOKEN_CB(PXML_TEXT, ST_TAG_START, 0); + break; + case ST_TAG_START: + if (ALPHA(C) || (C == CSLASH)) + state = ST_TAG_BODY; + else if (C == EXCLAM) + state = ST_COMMENT_WAIT_DASH1; + else + /* + * Not characters and not whitespace. + * Must be something like "3 < 4". + */ + TOKEN_CB(PXML_TEXT, ST_TEXT, 1);/* Flush as data */ + break; + case ST_TAG_BODY: + switch(C) { + case RANGLE: + /* End of the tag */ + TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); + break; + case LANGLE: + /* + * The previous tag wasn't completed, but still + * recognized as valid. (Mozilla-compatible) + */ + TOKEN_CB_FINAL(PXML_TAG, ST_TAG_START, 0); + break; + case CEQUAL: + state = ST_TAG_QUOTE_WAIT; + break; + } + break; + case ST_TAG_QUOTE_WAIT: + /* + * State after the equal sign ("=") in the tag. + */ + switch(C) { + case CQUOTE: + state = ST_TAG_QUOTED_STRING; + break; + case RANGLE: + /* End of the tag */ + TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); + break; + default: + if(!WHITESPACE(C)) + /* Unquoted string value */ + state = ST_TAG_UNQUOTED_STRING; + } + break; + case ST_TAG_QUOTED_STRING: + /* + * Tag attribute's string value in quotes. + */ + if(C == CQUOTE) { + /* Return back to the tag state */ + state = ST_TAG_BODY; + } + break; + case ST_TAG_UNQUOTED_STRING: + if(C == RANGLE) { + /* End of the tag */ + TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); + } else if(WHITESPACE(C)) { + /* Return back to the tag state */ + state = ST_TAG_BODY; + } + break; + case ST_COMMENT_WAIT_DASH1: + if(C == CDASH) { + state = ST_COMMENT_WAIT_DASH2; + } else { + /* Some ordinary tag. */ + state = ST_TAG_BODY; + } + break; + case ST_COMMENT_WAIT_DASH2: + if(C == CDASH) { + /* Seen "<--" */ + state = ST_COMMENT; + } else { + /* Some ordinary tag */ + state = ST_TAG_BODY; + } + break; + case ST_COMMENT: + if(C == CDASH) { + state = ST_COMMENT_CLO_DASH2; + } + break; + case ST_COMMENT_CLO_DASH2: + if(C == CDASH) { + state = ST_COMMENT_CLO_RT; + } else { + /* This is not an end of a comment */ + state = ST_COMMENT; + } + break; + case ST_COMMENT_CLO_RT: + if(C == RANGLE) { + TOKEN_CB_FINAL(PXML_COMMENT, ST_TEXT, 1); + } else if(C == CDASH) { + /* Maintain current state, still waiting for '>' */ + } else { + state = ST_COMMENT; + } + break; + } /* switch(*ptr) */ + } /* for() */ + + /* + * Flush the partially processed chunk, state permitting. + */ + if(p - chunk_start) { + switch (state) { + case ST_COMMENT: + TOKEN_CB(PXML_COMMENT, state, 0); + break; + case ST_TEXT: + TOKEN_CB(PXML_TEXT, state, 0); + break; + default: break; /* a no-op */ + } + } + +finish: + *stateContext = (int)state; + return chunk_start - (const char *)xmlbuf; +} + diff --git a/vcits/asn1c/standard-modules/ASN1-Object-Identifier-Module.asn1 b/vcits/asn1c/standard-modules/ASN1-Object-Identifier-Module.asn1 new file mode 100644 index 0000000..b81e37c --- /dev/null +++ b/vcits/asn1c/standard-modules/ASN1-Object-Identifier-Module.asn1 @@ -0,0 +1,43 @@ +ASN1-Object-Identifier-Module { joint-iso-itu-t asn1(1) specification(0) modules(0) object-identifiers(1) } +DEFINITIONS ::= BEGIN + + -- NumericString ASN.1 type (see 37.3) -- + numericString OBJECT IDENTIFIER ::= { joint-iso-itu-t asn1(1) specification(0) characterStrings(1) numericString(0) } + + -- PrintableString ASN.1 type (see 37.5) -- + printableString OBJECT IDENTIFIER ::= { joint-iso-itu-t asn1(1) specification(0) characterStrings(1) printableString(1) } + + -- ASN.1 Character Module (see 38.1) -- + asn1CharacterModule OBJECT IDENTIFIER ::= { joint-iso-itu-t asn1(1) specification(0) modules(0) iso10646(0) } + + -- ASN.1 Object Identifier Module (this module) -- + asn1ObjectIdentifierModule OBJECT IDENTIFIER ::= { joint-iso-itu-t asn1(1) specification(0) modules(0) object-identifiers(1) } + + -- BER encoding of a single ASN.1 type -- + ber OBJECT IDENTIFIER ::= { joint-iso-itu-t asn1(1) basic-encoding(1) } + + -- CER encoding of a single ASN.1 type -- + cer OBJECT IDENTIFIER ::= { joint-iso-itu-t asn1(1) ber-derived(2) canonical-encoding(0) } + + -- DER encoding of a single ASN.1 type -- + der OBJECT IDENTIFIER ::= { joint-iso-itu-t asn1(1) ber-derived(2) distinguished-encoding(1) } + + -- PER encoding of a single ASN.1 type (basic aligned) -- + perBasicAligned OBJECT IDENTIFIER ::= { joint-iso-itu-t asn1(1) packed-encoding(3) basic(0) aligned(0) } + + -- PER encoding of a single ASN.1 type (basic unaligned) -- + perBasicUnaligned OBJECT IDENTIFIER ::= { joint-iso-itu-t asn1(1) packed-encoding(3) basic(0) unaligned(1) } + + -- PER encoding of a single ASN.1 type (canonical aligned) -- + perCanonicalAligned OBJECT IDENTIFIER ::= { joint-iso-itu-t asn1(1) packed-encoding(3) canonical(1) aligned(0) } + + -- PER encoding of a single ASN.1 type (canonical unaligned) -- + perCanonicalUnaligned OBJECT IDENTIFIER ::= { joint-iso-itu-t asn1(1) packed-encoding(3) canonical(1) unaligned(1) } + + -- XER encoding of a single ASN.1 type (basic) -- + xerBasic OBJECT IDENTIFIER ::= {joint-iso-itu-t asn1(1) xml-encoding(5) basic(0) } + + -- XER encoding of a single ASN.1 type (canonical) -- + xerCanonical OBJECT IDENTIFIER ::= {joint-iso-itu-t asn1(1) xml-encoding(5) canonical(1) } + +END -- ASN1-Object-Identifier-Module -- diff --git a/vcits/asn1c/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1 b/vcits/asn1c/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1 new file mode 100644 index 0000000..7ba2da4 --- /dev/null +++ b/vcits/asn1c/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1 @@ -0,0 +1,31 @@ +/* + * This specification contains pervasive ASN.1 information object classes. + * These classes are defined as "useful", and are available in any module + * without the necessity for explicit import. + */ +ASN1C-UsefulInformationObjectClasses + { iso(1) org(3) dod(6) internet (1) private(4) enterprise(1) + spelio(9363) software(1) asn1c(5) + standard-modules(3) auto-imported(0) 1 } +DEFINITIONS ::= BEGIN + + /* + * X.681-0207, Annex A + * The TYPE-IDENTIFIER information object class + */ + TYPE-IDENTIFIER ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Type + } WITH SYNTAX { &Type IDENTIFIED BY &id } + + /* + * X.681-0207, Annex B + * The ABSTRACT-SYNTAX information object class + */ + ABSTRACT-SYNTAX ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Type, + &property BIT STRING { handles-invalid-encodings(0) } DEFAULT {} + } WITH SYNTAX { &Type IDENTIFIED BY &id [HAS PROPERTY &property] } + +END diff --git a/vcits/asn1c/standard-modules/README b/vcits/asn1c/standard-modules/README new file mode 100644 index 0000000..014a698 --- /dev/null +++ b/vcits/asn1c/standard-modules/README @@ -0,0 +1,2 @@ +All *.asn1 files in this directory will be automatically +picked up by the asn1c during compilation of any user specified module. diff --git a/vcits/asn1c/xer_decoder.h b/vcits/asn1c/xer_decoder.h new file mode 100644 index 0000000..b951c41 --- /dev/null +++ b/vcits/asn1c/xer_decoder.h @@ -0,0 +1,106 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _XER_DECODER_H_ +#define _XER_DECODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * The XER decoder of any ASN.1 type. May be invoked by the application. + * Decodes CANONICAL-XER and BASIC-XER. + */ +asn_dec_rval_t xer_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of data buffer */ +); + +/* + * Type of the type-specific XER decoder function. + */ +typedef asn_dec_rval_t(xer_type_decoder_f)( + const asn_codec_ctx_t *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, + const char *opt_mname, /* Member name */ + const void *buf_ptr, size_t size); + +/******************************* + * INTERNALLY USEFUL FUNCTIONS * + *******************************/ + +/* + * Generalized function for decoding the primitive values. + * Used by more specialized functions, such as OCTET_STRING_decode_xer_utf8 + * and others. This function should not be used by applications, as its API + * is subject to changes. + */ +asn_dec_rval_t xer_decode_general( + const asn_codec_ctx_t *opt_codec_ctx, + asn_struct_ctx_t *ctx, /* Type decoder context */ + void *struct_key, /* Treated as opaque pointer */ + const char *xml_tag, /* Expected XML tag name */ + const void *buf_ptr, size_t size, + int (*opt_unexpected_tag_decoder)(void *struct_key, const void *chunk_buf, + size_t chunk_size), + ssize_t (*body_receiver)(void *struct_key, const void *chunk_buf, + size_t chunk_size, int have_more)); + + +/* + * Fetch the next XER (XML) token from the stream. + * The function returns the number of bytes occupied by the chunk type, + * returned in the _ch_type. The _ch_type is only set (and valid) when + * the return value is >= 0. + */ + typedef enum pxer_chunk_type { + PXER_WMORE, /* Chunk type is not clear, more data expected. */ + PXER_TAG, /* Complete XER tag */ + PXER_TEXT, /* Plain text between XER tags */ + PXER_COMMENT /* A comment, may be part of */ + } pxer_chunk_type_e; +ssize_t xer_next_token(int *stateContext, + const void *buffer, size_t size, pxer_chunk_type_e *_ch_type); + +/* + * This function checks the buffer against the tag name is expected to occur. + */ + typedef enum xer_check_tag { + XCT_BROKEN = 0, /* The tag is broken */ + XCT_OPENING = 1, /* This is the tag */ + XCT_CLOSING = 2, /* This is the tag */ + XCT_BOTH = 3, /* This is the tag */ + XCT__UNK__MASK = 4, /* Mask of everything unexpected */ + XCT_UNKNOWN_OP = 5, /* Unexpected tag */ + XCT_UNKNOWN_CL = 6, /* Unexpected tag */ + XCT_UNKNOWN_BO = 7 /* Unexpected tag */ + } xer_check_tag_e; +xer_check_tag_e xer_check_tag(const void *buf_ptr, int size, + const char *need_tag); + +/* + * Get the number of bytes consisting entirely of XER whitespace characters. + * RETURN VALUES: + * >=0: Number of whitespace characters in the string. + */ +size_t xer_whitespace_span(const void *chunk_buf, size_t chunk_size); + +/* + * Skip the series of anticipated extensions. + */ +int xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth); + +#ifdef __cplusplus +} +#endif + +#endif /* _XER_DECODER_H_ */ diff --git a/vcits/asn1c/xer_encoder.h b/vcits/asn1c/xer_encoder.h new file mode 100644 index 0000000..9d75922 --- /dev/null +++ b/vcits/asn1c/xer_encoder.h @@ -0,0 +1,83 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _XER_ENCODER_H_ +#define _XER_ENCODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* Flags used by the xer_encode() and (*xer_type_encoder_f), defined below */ +enum xer_encoder_flags_e { + /* Mode of encoding */ + XER_F_BASIC = 0x01, /* BASIC-XER (pretty-printing) */ + XER_F_CANONICAL = 0x02 /* Canonical XER (strict rules) */ +}; + +/* + * The XER encoder of any type. May be invoked by the application. + * Produces CANONICAL-XER and BASIC-XER depending on the (xer_flags). + */ +asn_enc_rval_t xer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + enum xer_encoder_flags_e xer_flags, + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key /* Arbitrary callback argument */ +); + +/* + * The variant of the above function which dumps the BASIC-XER (XER_F_BASIC) + * output into the chosen file pointer. + * RETURN VALUES: + * 0: The structure is printed. + * -1: Problem printing the structure. + * WARNING: No sensible errno value is returned. + */ +int xer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td, + const void *struct_ptr); + +/* + * A helper function that uses XER encoding/decoding to verify that: + * - Both structures encode into the same BASIC XER. + * - Both resulting XER byte streams can be decoded back. + * - Both decoded structures encode into the same BASIC XER (round-trip). + * All of this verifies equivalence between structures and a round-trip. + * ARGUMENTS: + * (opt_debug_stream) - If specified, prints ongoing details. + */ +enum xer_equivalence_e { + XEQ_SUCCESS, /* The only completely positive return value */ + XEQ_FAILURE, /* General failure */ + XEQ_ENCODE1_FAILED, /* First sructure XER encoding failed */ + XEQ_ENCODE2_FAILED, /* Second structure XER encoding failed */ + XEQ_DIFFERENT, /* Structures encoded into different XER */ + XEQ_DECODE_FAILED, /* Decode of the XER data failed */ + XEQ_ROUND_TRIP_FAILED /* Bad round-trip */ +}; +enum xer_equivalence_e xer_equivalent( + const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1, + const void *struct2, FILE *opt_debug_stream); + +/* + * Type of the generic XER encoder. + */ +typedef asn_enc_rval_t(xer_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + int ilevel, /* Level of indentation */ + enum xer_encoder_flags_e xer_flags, + asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ + void *app_key /* Arbitrary callback argument */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _XER_ENCODER_H_ */ diff --git a/vcits/asn1c/xer_support.h b/vcits/asn1c/xer_support.h new file mode 100644 index 0000000..c3a36e7 --- /dev/null +++ b/vcits/asn1c/xer_support.h @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _XER_SUPPORT_H_ +#define _XER_SUPPORT_H_ + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Types of data transferred to the application. + */ +typedef enum { + PXML_TEXT, /* Plain text between XML tags. */ + PXML_TAG, /* A tag, starting with '<'. */ + PXML_COMMENT, /* An XML comment, including "". */ + /* + * The following chunk types are reported if the chunk + * terminates the specified XML element. + */ + PXML_TAG_END, /* Tag ended */ + PXML_COMMENT_END /* Comment ended */ +} pxml_chunk_type_e; + +/* + * Callback function that is called by the parser when parsed data is + * available. The _opaque is the pointer to a field containing opaque user + * data specified in pxml_create() call. The chunk type is _type and the text + * data is the piece of buffer identified by _bufid (as supplied to + * pxml_feed() call) starting at offset _offset and of _size bytes size. + * The chunk is NOT '\0'-terminated. + */ +typedef int (pxml_callback_f)(pxml_chunk_type_e _type, + const void *_chunk_data, size_t _chunk_size, void *_key); + +/* + * Parse the given buffer as it were a chunk of XML data. + * Invoke the specified callback each time the meaninful data is found. + * This function returns number of bytes consumed from the bufer. + * It will always be lesser than or equal to the specified _size. + * The next invocation of this function must account the difference. + */ +ssize_t pxml_parse(int *_stateContext, const void *_buf, size_t _size, + pxml_callback_f *cb, void *_key); + +#ifdef __cplusplus +} +#endif + +#endif /* _XER_SUPPORT_H_ */ diff --git a/vcits/cam/AccelerationConfidence.h b/vcits/cam/AccelerationConfidence.h new file mode 100644 index 0000000..533c219 --- /dev/null +++ b/vcits/cam/AccelerationConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _AccelerationConfidence_H_ +#define _AccelerationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationConfidence { + AccelerationConfidence_pointOneMeterPerSecSquared = 1, + AccelerationConfidence_outOfRange = 101, + AccelerationConfidence_unavailable = 102 +} e_AccelerationConfidence; + +/* AccelerationConfidence */ +typedef long AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence; +asn_struct_free_f AccelerationConfidence_free; +asn_struct_print_f AccelerationConfidence_print; +asn_constr_check_f AccelerationConfidence_constraint; +ber_type_decoder_f AccelerationConfidence_decode_ber; +der_type_encoder_f AccelerationConfidence_encode_der; +xer_type_decoder_f AccelerationConfidence_decode_xer; +xer_type_encoder_f AccelerationConfidence_encode_xer; +oer_type_decoder_f AccelerationConfidence_decode_oer; +oer_type_encoder_f AccelerationConfidence_encode_oer; +per_type_decoder_f AccelerationConfidence_decode_uper; +per_type_encoder_f AccelerationConfidence_encode_uper; +per_type_decoder_f AccelerationConfidence_decode_aper; +per_type_encoder_f AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationConfidence_H_ */ +#include diff --git a/vcits/cam/AccelerationControl.h b/vcits/cam/AccelerationControl.h new file mode 100644 index 0000000..197ab8f --- /dev/null +++ b/vcits/cam/AccelerationControl.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _AccelerationControl_H_ +#define _AccelerationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationControl { + AccelerationControl_brakePedalEngaged = 0, + AccelerationControl_gasPedalEngaged = 1, + AccelerationControl_emergencyBrakeEngaged = 2, + AccelerationControl_collisionWarningEngaged = 3, + AccelerationControl_accEngaged = 4, + AccelerationControl_cruiseControlEngaged = 5, + AccelerationControl_speedLimiterEngaged = 6 +} e_AccelerationControl; + +/* AccelerationControl */ +typedef BIT_STRING_t AccelerationControl_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AccelerationControl_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AccelerationControl; +asn_struct_free_f AccelerationControl_free; +asn_struct_print_f AccelerationControl_print; +asn_constr_check_f AccelerationControl_constraint; +ber_type_decoder_f AccelerationControl_decode_ber; +der_type_encoder_f AccelerationControl_encode_der; +xer_type_decoder_f AccelerationControl_decode_xer; +xer_type_encoder_f AccelerationControl_encode_xer; +oer_type_decoder_f AccelerationControl_decode_oer; +oer_type_encoder_f AccelerationControl_encode_oer; +per_type_decoder_f AccelerationControl_decode_uper; +per_type_encoder_f AccelerationControl_encode_uper; +per_type_decoder_f AccelerationControl_decode_aper; +per_type_encoder_f AccelerationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationControl_H_ */ +#include diff --git a/vcits/cam/AccidentSubCauseCode.h b/vcits/cam/AccidentSubCauseCode.h new file mode 100644 index 0000000..27a24fb --- /dev/null +++ b/vcits/cam/AccidentSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _AccidentSubCauseCode_H_ +#define _AccidentSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccidentSubCauseCode { + AccidentSubCauseCode_unavailable = 0, + AccidentSubCauseCode_multiVehicleAccident = 1, + AccidentSubCauseCode_heavyAccident = 2, + AccidentSubCauseCode_accidentInvolvingLorry = 3, + AccidentSubCauseCode_accidentInvolvingBus = 4, + AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5, + AccidentSubCauseCode_accidentOnOppositeLane = 6, + AccidentSubCauseCode_unsecuredAccident = 7, + AccidentSubCauseCode_assistanceRequested = 8 +} e_AccidentSubCauseCode; + +/* AccidentSubCauseCode */ +typedef long AccidentSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode; +asn_struct_free_f AccidentSubCauseCode_free; +asn_struct_print_f AccidentSubCauseCode_print; +asn_constr_check_f AccidentSubCauseCode_constraint; +ber_type_decoder_f AccidentSubCauseCode_decode_ber; +der_type_encoder_f AccidentSubCauseCode_encode_der; +xer_type_decoder_f AccidentSubCauseCode_decode_xer; +xer_type_encoder_f AccidentSubCauseCode_encode_xer; +oer_type_decoder_f AccidentSubCauseCode_decode_oer; +oer_type_encoder_f AccidentSubCauseCode_encode_oer; +per_type_decoder_f AccidentSubCauseCode_decode_uper; +per_type_encoder_f AccidentSubCauseCode_encode_uper; +per_type_decoder_f AccidentSubCauseCode_decode_aper; +per_type_encoder_f AccidentSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccidentSubCauseCode_H_ */ +#include diff --git a/vcits/cam/ActionID.h b/vcits/cam/ActionID.h new file mode 100644 index 0000000..c66b4cc --- /dev/null +++ b/vcits/cam/ActionID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _ActionID_H_ +#define _ActionID_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "SequenceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ActionID */ +typedef struct ActionID { + StationID_t originatingStationID; + SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ActionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ActionID; + +#ifdef __cplusplus +} +#endif + +#endif /* _ActionID_H_ */ +#include diff --git a/vcits/cam/AdverseWeatherCondition-AdhesionSubCauseCode.h b/vcits/cam/AdverseWeatherCondition-AdhesionSubCauseCode.h new file mode 100644 index 0000000..24fcec7 --- /dev/null +++ b/vcits/cam/AdverseWeatherCondition-AdhesionSubCauseCode.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _AdverseWeatherCondition_AdhesionSubCauseCode_H_ +#define _AdverseWeatherCondition_AdhesionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_AdhesionSubCauseCode { + AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1, + AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2, + AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3, + AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4, + AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5, + AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6, + AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7, + AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8, + AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9, + AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10 +} e_AdverseWeatherCondition_AdhesionSubCauseCode; + +/* AdverseWeatherCondition-AdhesionSubCauseCode */ +typedef long AdverseWeatherCondition_AdhesionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_AdhesionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_AdhesionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_AdhesionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_AdhesionSubCauseCode_H_ */ +#include diff --git a/vcits/cam/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h b/vcits/cam/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 0000000..e2e8ac9 --- /dev/null +++ b/vcits/cam/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ +#define _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode { + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6 +} e_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; + +/* AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */ +typedef long AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */ +#include diff --git a/vcits/cam/AdverseWeatherCondition-PrecipitationSubCauseCode.h b/vcits/cam/AdverseWeatherCondition-PrecipitationSubCauseCode.h new file mode 100644 index 0000000..b901361 --- /dev/null +++ b/vcits/cam/AdverseWeatherCondition-PrecipitationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ +#define _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_PrecipitationSubCauseCode { + AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2, + AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3 +} e_AdverseWeatherCondition_PrecipitationSubCauseCode; + +/* AdverseWeatherCondition-PrecipitationSubCauseCode */ +typedef long AdverseWeatherCondition_PrecipitationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_PrecipitationSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_PrecipitationSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_PrecipitationSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */ +#include diff --git a/vcits/cam/AdverseWeatherCondition-VisibilitySubCauseCode.h b/vcits/cam/AdverseWeatherCondition-VisibilitySubCauseCode.h new file mode 100644 index 0000000..854be8c --- /dev/null +++ b/vcits/cam/AdverseWeatherCondition-VisibilitySubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _AdverseWeatherCondition_VisibilitySubCauseCode_H_ +#define _AdverseWeatherCondition_VisibilitySubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_VisibilitySubCauseCode { + AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0, + AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1, + AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2, + AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5, + AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6, + AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7, + AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8 +} e_AdverseWeatherCondition_VisibilitySubCauseCode; + +/* AdverseWeatherCondition-VisibilitySubCauseCode */ +typedef long AdverseWeatherCondition_VisibilitySubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode; +asn_struct_free_f AdverseWeatherCondition_VisibilitySubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_VisibilitySubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_VisibilitySubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_VisibilitySubCauseCode_H_ */ +#include diff --git a/vcits/cam/Altitude.h b/vcits/cam/Altitude.h new file mode 100644 index 0000000..7581be2 --- /dev/null +++ b/vcits/cam/Altitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _Altitude_H_ +#define _Altitude_H_ + + +#include + +/* Including external dependencies */ +#include "AltitudeValue.h" +#include "AltitudeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Altitude */ +typedef struct Altitude { + AltitudeValue_t altitudeValue; + AltitudeConfidence_t altitudeConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Altitude_H_ */ +#include diff --git a/vcits/cam/AltitudeConfidence.h b/vcits/cam/AltitudeConfidence.h new file mode 100644 index 0000000..4fd424c --- /dev/null +++ b/vcits/cam/AltitudeConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _AltitudeConfidence_H_ +#define _AltitudeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeConfidence { + AltitudeConfidence_alt_000_01 = 0, + AltitudeConfidence_alt_000_02 = 1, + AltitudeConfidence_alt_000_05 = 2, + AltitudeConfidence_alt_000_10 = 3, + AltitudeConfidence_alt_000_20 = 4, + AltitudeConfidence_alt_000_50 = 5, + AltitudeConfidence_alt_001_00 = 6, + AltitudeConfidence_alt_002_00 = 7, + AltitudeConfidence_alt_005_00 = 8, + AltitudeConfidence_alt_010_00 = 9, + AltitudeConfidence_alt_020_00 = 10, + AltitudeConfidence_alt_050_00 = 11, + AltitudeConfidence_alt_100_00 = 12, + AltitudeConfidence_alt_200_00 = 13, + AltitudeConfidence_outOfRange = 14, + AltitudeConfidence_unavailable = 15 +} e_AltitudeConfidence; + +/* AltitudeConfidence */ +typedef long AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1; +asn_struct_free_f AltitudeConfidence_free; +asn_struct_print_f AltitudeConfidence_print; +asn_constr_check_f AltitudeConfidence_constraint; +ber_type_decoder_f AltitudeConfidence_decode_ber; +der_type_encoder_f AltitudeConfidence_encode_der; +xer_type_decoder_f AltitudeConfidence_decode_xer; +xer_type_encoder_f AltitudeConfidence_encode_xer; +oer_type_decoder_f AltitudeConfidence_decode_oer; +oer_type_encoder_f AltitudeConfidence_encode_oer; +per_type_decoder_f AltitudeConfidence_decode_uper; +per_type_encoder_f AltitudeConfidence_encode_uper; +per_type_decoder_f AltitudeConfidence_decode_aper; +per_type_encoder_f AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeConfidence_H_ */ +#include diff --git a/vcits/cam/AltitudeValue.h b/vcits/cam/AltitudeValue.h new file mode 100644 index 0000000..bf7ea5f --- /dev/null +++ b/vcits/cam/AltitudeValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _AltitudeValue_H_ +#define _AltitudeValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeValue { + AltitudeValue_referenceEllipsoidSurface = 0, + AltitudeValue_oneCentimeter = 1, + AltitudeValue_unavailable = 800001 +} e_AltitudeValue; + +/* AltitudeValue */ +typedef long AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeValue; +asn_struct_free_f AltitudeValue_free; +asn_struct_print_f AltitudeValue_print; +asn_constr_check_f AltitudeValue_constraint; +ber_type_decoder_f AltitudeValue_decode_ber; +der_type_encoder_f AltitudeValue_encode_der; +xer_type_decoder_f AltitudeValue_decode_xer; +xer_type_encoder_f AltitudeValue_encode_xer; +oer_type_decoder_f AltitudeValue_decode_oer; +oer_type_encoder_f AltitudeValue_encode_oer; +per_type_decoder_f AltitudeValue_decode_uper; +per_type_encoder_f AltitudeValue_encode_uper; +per_type_decoder_f AltitudeValue_decode_aper; +per_type_encoder_f AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeValue_H_ */ +#include diff --git a/vcits/cam/BasicContainer.h b/vcits/cam/BasicContainer.h new file mode 100644 index 0000000..a61d384 --- /dev/null +++ b/vcits/cam/BasicContainer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _BasicContainer_H_ +#define _BasicContainer_H_ + + +#include + +/* Including external dependencies */ +#include "StationType.h" +#include "ReferencePosition.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BasicContainer */ +typedef struct BasicContainer { + StationType_t stationType; + ReferencePosition_t referencePosition; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BasicContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BasicContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_BasicContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_BasicContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicContainer_H_ */ +#include diff --git a/vcits/cam/BasicVehicleContainerHighFrequency.h b/vcits/cam/BasicVehicleContainerHighFrequency.h new file mode 100644 index 0000000..f1acaa0 --- /dev/null +++ b/vcits/cam/BasicVehicleContainerHighFrequency.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _BasicVehicleContainerHighFrequency_H_ +#define _BasicVehicleContainerHighFrequency_H_ + + +#include + +/* Including external dependencies */ +#include "Heading.h" +#include "Speed.h" +#include "DriveDirection.h" +#include "VehicleLength.h" +#include "VehicleWidth.h" +#include "LongitudinalAcceleration.h" +#include "Curvature.h" +#include "CurvatureCalculationMode.h" +#include "YawRate.h" +#include "AccelerationControl.h" +#include "LanePosition.h" +#include "PerformanceClass.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SteeringWheelAngle; +struct LateralAcceleration; +struct VerticalAcceleration; +struct CenDsrcTollingZone; + +/* BasicVehicleContainerHighFrequency */ +typedef struct BasicVehicleContainerHighFrequency { + Heading_t heading; + Speed_t speed; + DriveDirection_t driveDirection; + VehicleLength_t vehicleLength; + VehicleWidth_t vehicleWidth; + LongitudinalAcceleration_t longitudinalAcceleration; + Curvature_t curvature; + CurvatureCalculationMode_t curvatureCalculationMode; + YawRate_t yawRate; + AccelerationControl_t *accelerationControl; /* OPTIONAL */ + LanePosition_t *lanePosition; /* OPTIONAL */ + struct SteeringWheelAngle *steeringWheelAngle; /* OPTIONAL */ + struct LateralAcceleration *lateralAcceleration; /* OPTIONAL */ + struct VerticalAcceleration *verticalAcceleration; /* OPTIONAL */ + PerformanceClass_t *performanceClass; /* OPTIONAL */ + struct CenDsrcTollingZone *cenDsrcTollingZone; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BasicVehicleContainerHighFrequency_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BasicVehicleContainerHighFrequency; +extern asn_SEQUENCE_specifics_t asn_SPC_BasicVehicleContainerHighFrequency_specs_1; +extern asn_TYPE_member_t asn_MBR_BasicVehicleContainerHighFrequency_1[16]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicVehicleContainerHighFrequency_H_ */ +#include diff --git a/vcits/cam/BasicVehicleContainerLowFrequency.h b/vcits/cam/BasicVehicleContainerLowFrequency.h new file mode 100644 index 0000000..28a8d7d --- /dev/null +++ b/vcits/cam/BasicVehicleContainerLowFrequency.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _BasicVehicleContainerLowFrequency_H_ +#define _BasicVehicleContainerLowFrequency_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleRole.h" +#include "ExteriorLights.h" +#include "PathHistory.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BasicVehicleContainerLowFrequency */ +typedef struct BasicVehicleContainerLowFrequency { + VehicleRole_t vehicleRole; + ExteriorLights_t exteriorLights; + PathHistory_t pathHistory; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BasicVehicleContainerLowFrequency_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BasicVehicleContainerLowFrequency; +extern asn_SEQUENCE_specifics_t asn_SPC_BasicVehicleContainerLowFrequency_specs_1; +extern asn_TYPE_member_t asn_MBR_BasicVehicleContainerLowFrequency_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicVehicleContainerLowFrequency_H_ */ +#include diff --git a/vcits/cam/CAM.h b/vcits/cam/CAM.h new file mode 100644 index 0000000..4c6dfc7 --- /dev/null +++ b/vcits/cam/CAM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _CAM_H_ +#define _CAM_H_ + + +#include + +/* Including external dependencies */ +#include "ItsPduHeader.h" +#include "CoopAwareness.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CAM */ +typedef struct CAM { + ItsPduHeader_t header; + CoopAwareness_t cam; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CAM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CAM; + +#ifdef __cplusplus +} +#endif + +#endif /* _CAM_H_ */ +#include diff --git a/vcits/cam/CMakeLists.txt b/vcits/cam/CMakeLists.txt new file mode 100644 index 0000000..ef66af5 --- /dev/null +++ b/vcits/cam/CMakeLists.txt @@ -0,0 +1,174 @@ +# This file is auto-generated by command-cxx.sh +cmake_minimum_required(VERSION 3.9) + +message(STATUS "--> Configure build of |-vcits-cam") + +project(vcits-cam VERSION 0.2 DESCRIPTION "cam part of vcits") + +add_library(vcits-cam STATIC +src/AccelerationConfidence.c +src/AccelerationControl.c +src/AccidentSubCauseCode.c +src/ActionID.c +src/AdverseWeatherCondition-AdhesionSubCauseCode.c +src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c +src/AdverseWeatherCondition-PrecipitationSubCauseCode.c +src/AdverseWeatherCondition-VisibilitySubCauseCode.c +src/Altitude.c +src/AltitudeConfidence.c +src/AltitudeValue.c +src/BasicContainer.c +src/BasicVehicleContainerHighFrequency.c +src/BasicVehicleContainerLowFrequency.c +src/CAM.c +src/CamParameters.c +src/CauseCode.c +src/CauseCodeType.c +src/CenDsrcTollingZone.c +src/CenDsrcTollingZoneID.c +src/ClosedLanes.c +src/CollisionRiskSubCauseCode.c +src/CoopAwareness.c +src/Curvature.c +src/CurvatureCalculationMode.c +src/CurvatureConfidence.c +src/CurvatureValue.c +src/DangerousEndOfQueueSubCauseCode.c +src/DangerousGoodsBasic.c +src/DangerousGoodsContainer.c +src/DangerousGoodsExtended.c +src/DangerousSituationSubCauseCode.c +src/DeltaAltitude.c +src/DeltaLatitude.c +src/DeltaLongitude.c +src/DeltaReferencePosition.c +src/DigitalMap.c +src/DriveDirection.c +src/DrivingLaneStatus.c +src/EmbarkationStatus.c +src/EmergencyContainer.c +src/EmergencyPriority.c +src/EmergencyVehicleApproachingSubCauseCode.c +src/EnergyStorageType.c +src/EventHistory.c +src/EventPoint.c +src/ExteriorLights.c +src/GenerationDeltaTime.c +src/HardShoulderStatus.c +src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c +src/HazardousLocation-DangerousCurveSubCauseCode.c +src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c +src/HazardousLocation-SurfaceConditionSubCauseCode.c +src/Heading.c +src/HeadingConfidence.c +src/HeadingValue.c +src/HeightLonCarr.c +src/HighFrequencyContainer.c +src/HumanPresenceOnTheRoadSubCauseCode.c +src/HumanProblemSubCauseCode.c +src/InformationQuality.c +src/ItineraryPath.c +src/ItsPduHeader.c +src/LanePosition.c +src/LateralAcceleration.c +src/LateralAccelerationValue.c +src/Latitude.c +src/LightBarSirenInUse.c +src/Longitude.c +src/LongitudinalAcceleration.c +src/LongitudinalAccelerationValue.c +src/LowFrequencyContainer.c +src/NumberOfOccupants.c +src/OpeningDaysHours.c +src/PathDeltaTime.c +src/PathHistory.c +src/PathPoint.c +src/PerformanceClass.c +src/PhoneNumber.c +src/PosCentMass.c +src/PosConfidenceEllipse.c +src/PosFrontAx.c +src/PosLonCarr.c +src/PosPillar.c +src/PositionOfOccupants.c +src/PositionOfPillars.c +src/PositioningSolutionType.c +src/PostCrashSubCauseCode.c +src/ProtectedCommunicationZone.c +src/ProtectedCommunicationZonesRSU.c +src/ProtectedZoneID.c +src/ProtectedZoneRadius.c +src/ProtectedZoneType.c +src/PtActivation.c +src/PtActivationData.c +src/PtActivationType.c +src/PublicTransportContainer.c +src/RSUContainerHighFrequency.c +src/ReferencePosition.c +src/RelevanceDistance.c +src/RelevanceTrafficDirection.c +src/RequestResponseIndication.c +src/RescueAndRecoveryWorkInProgressSubCauseCode.c +src/RescueContainer.c +src/RestrictedTypes.c +src/RoadType.c +src/RoadWorksContainerBasic.c +src/RoadworksSubCauseCode.c +src/SafetyCarContainer.c +src/SemiAxisLength.c +src/SequenceNumber.c +src/SignalViolationSubCauseCode.c +src/SlowVehicleSubCauseCode.c +src/SpecialTransportContainer.c +src/SpecialTransportType.c +src/SpecialVehicleContainer.c +src/Speed.c +src/SpeedConfidence.c +src/SpeedLimit.c +src/SpeedValue.c +src/StationID.c +src/StationType.c +src/StationarySince.c +src/StationaryVehicleSubCauseCode.c +src/SteeringWheelAngle.c +src/SteeringWheelAngleConfidence.c +src/SteeringWheelAngleValue.c +src/SubCauseCodeType.c +src/Temperature.c +src/TimestampIts.c +src/Traces.c +src/TrafficConditionSubCauseCode.c +src/TrafficRule.c +src/TransmissionInterval.c +src/TurningRadius.c +src/VDS.c +src/ValidityDuration.c +src/VehicleBreakdownSubCauseCode.c +src/VehicleIdentification.c +src/VehicleLength.c +src/VehicleLengthConfidenceIndication.c +src/VehicleLengthValue.c +src/VehicleMass.c +src/VehicleRole.c +src/VehicleWidth.c +src/VerticalAcceleration.c +src/VerticalAccelerationValue.c +src/WMInumber.c +src/WheelBaseVehicle.c +src/WrongWayDrivingSubCauseCode.c +src/YawRate.c +src/YawRateConfidence.c +src/YawRateValue.c +) + +set_target_properties(vcits-cam PROPERTIES VERSION ${PROJECT_VERSION}) + +target_include_directories(vcits-cam PRIVATE .) +target_include_directories(vcits-cam PRIVATE ../asn1c) + +target_link_libraries(vcits-cam PUBLIC +vcits-asn1c +) + +message(STATUS "--> Configure build of |-vcits-cam - done") + diff --git a/vcits/cam/CamParameters.h b/vcits/cam/CamParameters.h new file mode 100644 index 0000000..0ff19c3 --- /dev/null +++ b/vcits/cam/CamParameters.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _CamParameters_H_ +#define _CamParameters_H_ + + +#include + +/* Including external dependencies */ +#include "BasicContainer.h" +#include "HighFrequencyContainer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LowFrequencyContainer; +struct SpecialVehicleContainer; + +/* CamParameters */ +typedef struct CamParameters { + BasicContainer_t basicContainer; + HighFrequencyContainer_t highFrequencyContainer; + struct LowFrequencyContainer *lowFrequencyContainer; /* OPTIONAL */ + struct SpecialVehicleContainer *specialVehicleContainer; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CamParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CamParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_CamParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_CamParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CamParameters_H_ */ +#include diff --git a/vcits/cam/CauseCode.h b/vcits/cam/CauseCode.h new file mode 100644 index 0000000..948bfed --- /dev/null +++ b/vcits/cam/CauseCode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _CauseCode_H_ +#define _CauseCode_H_ + + +#include + +/* Including external dependencies */ +#include "CauseCodeType.h" +#include "SubCauseCodeType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CauseCode */ +typedef struct CauseCode { + CauseCodeType_t causeCode; + SubCauseCodeType_t subCauseCode; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CauseCode; +extern asn_SEQUENCE_specifics_t asn_SPC_CauseCode_specs_1; +extern asn_TYPE_member_t asn_MBR_CauseCode_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCode_H_ */ +#include diff --git a/vcits/cam/CauseCodeType.h b/vcits/cam/CauseCodeType.h new file mode 100644 index 0000000..459b3a5 --- /dev/null +++ b/vcits/cam/CauseCodeType.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _CauseCodeType_H_ +#define _CauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseCodeType { + CauseCodeType_reserved = 0, + CauseCodeType_trafficCondition = 1, + CauseCodeType_accident = 2, + CauseCodeType_roadworks = 3, + CauseCodeType_impassability = 5, + CauseCodeType_adverseWeatherCondition_Adhesion = 6, + CauseCodeType_aquaplannning = 7, + CauseCodeType_hazardousLocation_SurfaceCondition = 9, + CauseCodeType_hazardousLocation_ObstacleOnTheRoad = 10, + CauseCodeType_hazardousLocation_AnimalOnTheRoad = 11, + CauseCodeType_humanPresenceOnTheRoad = 12, + CauseCodeType_wrongWayDriving = 14, + CauseCodeType_rescueAndRecoveryWorkInProgress = 15, + CauseCodeType_adverseWeatherCondition_ExtremeWeatherCondition = 17, + CauseCodeType_adverseWeatherCondition_Visibility = 18, + CauseCodeType_adverseWeatherCondition_Precipitation = 19, + CauseCodeType_slowVehicle = 26, + CauseCodeType_dangerousEndOfQueue = 27, + CauseCodeType_vehicleBreakdown = 91, + CauseCodeType_postCrash = 92, + CauseCodeType_humanProblem = 93, + CauseCodeType_stationaryVehicle = 94, + CauseCodeType_emergencyVehicleApproaching = 95, + CauseCodeType_hazardousLocation_DangerousCurve = 96, + CauseCodeType_collisionRisk = 97, + CauseCodeType_signalViolation = 98, + CauseCodeType_dangerousSituation = 99 +} e_CauseCodeType; + +/* CauseCodeType */ +typedef long CauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseCodeType; +asn_struct_free_f CauseCodeType_free; +asn_struct_print_f CauseCodeType_print; +asn_constr_check_f CauseCodeType_constraint; +ber_type_decoder_f CauseCodeType_decode_ber; +der_type_encoder_f CauseCodeType_encode_der; +xer_type_decoder_f CauseCodeType_decode_xer; +xer_type_encoder_f CauseCodeType_encode_xer; +oer_type_decoder_f CauseCodeType_decode_oer; +oer_type_encoder_f CauseCodeType_encode_oer; +per_type_decoder_f CauseCodeType_decode_uper; +per_type_encoder_f CauseCodeType_encode_uper; +per_type_decoder_f CauseCodeType_decode_aper; +per_type_encoder_f CauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCodeType_H_ */ +#include diff --git a/vcits/cam/CenDsrcTollingZone.h b/vcits/cam/CenDsrcTollingZone.h new file mode 100644 index 0000000..ffaecf5 --- /dev/null +++ b/vcits/cam/CenDsrcTollingZone.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _CenDsrcTollingZone_H_ +#define _CenDsrcTollingZone_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "CenDsrcTollingZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZone */ +typedef struct CenDsrcTollingZone { + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + CenDsrcTollingZoneID_t *cenDsrcTollingZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CenDsrcTollingZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone; +extern asn_SEQUENCE_specifics_t asn_SPC_CenDsrcTollingZone_specs_1; +extern asn_TYPE_member_t asn_MBR_CenDsrcTollingZone_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZone_H_ */ +#include diff --git a/vcits/cam/CenDsrcTollingZoneID.h b/vcits/cam/CenDsrcTollingZoneID.h new file mode 100644 index 0000000..40aeaa7 --- /dev/null +++ b/vcits/cam/CenDsrcTollingZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _CenDsrcTollingZoneID_H_ +#define _CenDsrcTollingZoneID_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneID.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZoneID */ +typedef ProtectedZoneID_t CenDsrcTollingZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID; +asn_struct_free_f CenDsrcTollingZoneID_free; +asn_struct_print_f CenDsrcTollingZoneID_print; +asn_constr_check_f CenDsrcTollingZoneID_constraint; +ber_type_decoder_f CenDsrcTollingZoneID_decode_ber; +der_type_encoder_f CenDsrcTollingZoneID_encode_der; +xer_type_decoder_f CenDsrcTollingZoneID_decode_xer; +xer_type_encoder_f CenDsrcTollingZoneID_encode_xer; +oer_type_decoder_f CenDsrcTollingZoneID_decode_oer; +oer_type_encoder_f CenDsrcTollingZoneID_encode_oer; +per_type_decoder_f CenDsrcTollingZoneID_decode_uper; +per_type_encoder_f CenDsrcTollingZoneID_encode_uper; +per_type_decoder_f CenDsrcTollingZoneID_decode_aper; +per_type_encoder_f CenDsrcTollingZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZoneID_H_ */ +#include diff --git a/vcits/cam/ClosedLanes.h b/vcits/cam/ClosedLanes.h new file mode 100644 index 0000000..e7dca44 --- /dev/null +++ b/vcits/cam/ClosedLanes.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _ClosedLanes_H_ +#define _ClosedLanes_H_ + + +#include + +/* Including external dependencies */ +#include "HardShoulderStatus.h" +#include "DrivingLaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ClosedLanes */ +typedef struct ClosedLanes { + HardShoulderStatus_t *innerhardShoulderStatus; /* OPTIONAL */ + HardShoulderStatus_t *outerhardShoulderStatus; /* OPTIONAL */ + DrivingLaneStatus_t *drivingLaneStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ClosedLanes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ClosedLanes; +extern asn_SEQUENCE_specifics_t asn_SPC_ClosedLanes_specs_1; +extern asn_TYPE_member_t asn_MBR_ClosedLanes_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ClosedLanes_H_ */ +#include diff --git a/vcits/cam/CollisionRiskSubCauseCode.h b/vcits/cam/CollisionRiskSubCauseCode.h new file mode 100644 index 0000000..3e56bad --- /dev/null +++ b/vcits/cam/CollisionRiskSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _CollisionRiskSubCauseCode_H_ +#define _CollisionRiskSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CollisionRiskSubCauseCode { + CollisionRiskSubCauseCode_unavailable = 0, + CollisionRiskSubCauseCode_longitudinalCollisionRisk = 1, + CollisionRiskSubCauseCode_crossingCollisionRisk = 2, + CollisionRiskSubCauseCode_lateralCollisionRisk = 3, + CollisionRiskSubCauseCode_vulnerableRoadUser = 4 +} e_CollisionRiskSubCauseCode; + +/* CollisionRiskSubCauseCode */ +typedef long CollisionRiskSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode; +asn_struct_free_f CollisionRiskSubCauseCode_free; +asn_struct_print_f CollisionRiskSubCauseCode_print; +asn_constr_check_f CollisionRiskSubCauseCode_constraint; +ber_type_decoder_f CollisionRiskSubCauseCode_decode_ber; +der_type_encoder_f CollisionRiskSubCauseCode_encode_der; +xer_type_decoder_f CollisionRiskSubCauseCode_decode_xer; +xer_type_encoder_f CollisionRiskSubCauseCode_encode_xer; +oer_type_decoder_f CollisionRiskSubCauseCode_decode_oer; +oer_type_encoder_f CollisionRiskSubCauseCode_encode_oer; +per_type_decoder_f CollisionRiskSubCauseCode_decode_uper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_uper; +per_type_decoder_f CollisionRiskSubCauseCode_decode_aper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CollisionRiskSubCauseCode_H_ */ +#include diff --git a/vcits/cam/CoopAwareness.h b/vcits/cam/CoopAwareness.h new file mode 100644 index 0000000..961f288 --- /dev/null +++ b/vcits/cam/CoopAwareness.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _CoopAwareness_H_ +#define _CoopAwareness_H_ + + +#include + +/* Including external dependencies */ +#include "GenerationDeltaTime.h" +#include "CamParameters.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CoopAwareness */ +typedef struct CoopAwareness { + GenerationDeltaTime_t generationDeltaTime; + CamParameters_t camParameters; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CoopAwareness_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CoopAwareness; +extern asn_SEQUENCE_specifics_t asn_SPC_CoopAwareness_specs_1; +extern asn_TYPE_member_t asn_MBR_CoopAwareness_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CoopAwareness_H_ */ +#include diff --git a/vcits/cam/Curvature.h b/vcits/cam/Curvature.h new file mode 100644 index 0000000..333d9aa --- /dev/null +++ b/vcits/cam/Curvature.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _Curvature_H_ +#define _Curvature_H_ + + +#include + +/* Including external dependencies */ +#include "CurvatureValue.h" +#include "CurvatureConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Curvature */ +typedef struct Curvature { + CurvatureValue_t curvatureValue; + CurvatureConfidence_t curvatureConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Curvature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Curvature; +extern asn_SEQUENCE_specifics_t asn_SPC_Curvature_specs_1; +extern asn_TYPE_member_t asn_MBR_Curvature_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Curvature_H_ */ +#include diff --git a/vcits/cam/CurvatureCalculationMode.h b/vcits/cam/CurvatureCalculationMode.h new file mode 100644 index 0000000..ca5c0d7 --- /dev/null +++ b/vcits/cam/CurvatureCalculationMode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _CurvatureCalculationMode_H_ +#define _CurvatureCalculationMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureCalculationMode { + CurvatureCalculationMode_yawRateUsed = 0, + CurvatureCalculationMode_yawRateNotUsed = 1, + CurvatureCalculationMode_unavailable = 2 + /* + * Enumeration is extensible + */ +} e_CurvatureCalculationMode; + +/* CurvatureCalculationMode */ +typedef long CurvatureCalculationMode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureCalculationMode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode; +extern const asn_INTEGER_specifics_t asn_SPC_CurvatureCalculationMode_specs_1; +asn_struct_free_f CurvatureCalculationMode_free; +asn_struct_print_f CurvatureCalculationMode_print; +asn_constr_check_f CurvatureCalculationMode_constraint; +ber_type_decoder_f CurvatureCalculationMode_decode_ber; +der_type_encoder_f CurvatureCalculationMode_encode_der; +xer_type_decoder_f CurvatureCalculationMode_decode_xer; +xer_type_encoder_f CurvatureCalculationMode_encode_xer; +oer_type_decoder_f CurvatureCalculationMode_decode_oer; +oer_type_encoder_f CurvatureCalculationMode_encode_oer; +per_type_decoder_f CurvatureCalculationMode_decode_uper; +per_type_encoder_f CurvatureCalculationMode_encode_uper; +per_type_decoder_f CurvatureCalculationMode_decode_aper; +per_type_encoder_f CurvatureCalculationMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureCalculationMode_H_ */ +#include diff --git a/vcits/cam/CurvatureConfidence.h b/vcits/cam/CurvatureConfidence.h new file mode 100644 index 0000000..807f63c --- /dev/null +++ b/vcits/cam/CurvatureConfidence.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _CurvatureConfidence_H_ +#define _CurvatureConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureConfidence { + CurvatureConfidence_onePerMeter_0_00002 = 0, + CurvatureConfidence_onePerMeter_0_0001 = 1, + CurvatureConfidence_onePerMeter_0_0005 = 2, + CurvatureConfidence_onePerMeter_0_002 = 3, + CurvatureConfidence_onePerMeter_0_01 = 4, + CurvatureConfidence_onePerMeter_0_1 = 5, + CurvatureConfidence_outOfRange = 6, + CurvatureConfidence_unavailable = 7 +} e_CurvatureConfidence; + +/* CurvatureConfidence */ +typedef long CurvatureConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1; +asn_struct_free_f CurvatureConfidence_free; +asn_struct_print_f CurvatureConfidence_print; +asn_constr_check_f CurvatureConfidence_constraint; +ber_type_decoder_f CurvatureConfidence_decode_ber; +der_type_encoder_f CurvatureConfidence_encode_der; +xer_type_decoder_f CurvatureConfidence_decode_xer; +xer_type_encoder_f CurvatureConfidence_encode_xer; +oer_type_decoder_f CurvatureConfidence_decode_oer; +oer_type_encoder_f CurvatureConfidence_encode_oer; +per_type_decoder_f CurvatureConfidence_decode_uper; +per_type_encoder_f CurvatureConfidence_encode_uper; +per_type_decoder_f CurvatureConfidence_decode_aper; +per_type_encoder_f CurvatureConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureConfidence_H_ */ +#include diff --git a/vcits/cam/CurvatureValue.h b/vcits/cam/CurvatureValue.h new file mode 100644 index 0000000..7191be4 --- /dev/null +++ b/vcits/cam/CurvatureValue.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _CurvatureValue_H_ +#define _CurvatureValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureValue { + CurvatureValue_straight = 0, + CurvatureValue_unavailable = 1023 +} e_CurvatureValue; + +/* CurvatureValue */ +typedef long CurvatureValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureValue; +asn_struct_free_f CurvatureValue_free; +asn_struct_print_f CurvatureValue_print; +asn_constr_check_f CurvatureValue_constraint; +ber_type_decoder_f CurvatureValue_decode_ber; +der_type_encoder_f CurvatureValue_encode_der; +xer_type_decoder_f CurvatureValue_decode_xer; +xer_type_encoder_f CurvatureValue_encode_xer; +oer_type_decoder_f CurvatureValue_decode_oer; +oer_type_encoder_f CurvatureValue_encode_oer; +per_type_decoder_f CurvatureValue_decode_uper; +per_type_encoder_f CurvatureValue_encode_uper; +per_type_decoder_f CurvatureValue_decode_aper; +per_type_encoder_f CurvatureValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureValue_H_ */ +#include diff --git a/vcits/cam/DangerousEndOfQueueSubCauseCode.h b/vcits/cam/DangerousEndOfQueueSubCauseCode.h new file mode 100644 index 0000000..4aa2f0a --- /dev/null +++ b/vcits/cam/DangerousEndOfQueueSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _DangerousEndOfQueueSubCauseCode_H_ +#define _DangerousEndOfQueueSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousEndOfQueueSubCauseCode { + DangerousEndOfQueueSubCauseCode_unavailable = 0, + DangerousEndOfQueueSubCauseCode_suddenEndOfQueue = 1, + DangerousEndOfQueueSubCauseCode_queueOverHill = 2, + DangerousEndOfQueueSubCauseCode_queueAroundBend = 3, + DangerousEndOfQueueSubCauseCode_queueInTunnel = 4 +} e_DangerousEndOfQueueSubCauseCode; + +/* DangerousEndOfQueueSubCauseCode */ +typedef long DangerousEndOfQueueSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode; +asn_struct_free_f DangerousEndOfQueueSubCauseCode_free; +asn_struct_print_f DangerousEndOfQueueSubCauseCode_print; +asn_constr_check_f DangerousEndOfQueueSubCauseCode_constraint; +ber_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_ber; +der_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_der; +xer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_xer; +xer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_xer; +oer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_oer; +oer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_oer; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_uper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_uper; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_aper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousEndOfQueueSubCauseCode_H_ */ +#include diff --git a/vcits/cam/DangerousGoodsBasic.h b/vcits/cam/DangerousGoodsBasic.h new file mode 100644 index 0000000..da97201 --- /dev/null +++ b/vcits/cam/DangerousGoodsBasic.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _DangerousGoodsBasic_H_ +#define _DangerousGoodsBasic_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousGoodsBasic { + DangerousGoodsBasic_explosives1 = 0, + DangerousGoodsBasic_explosives2 = 1, + DangerousGoodsBasic_explosives3 = 2, + DangerousGoodsBasic_explosives4 = 3, + DangerousGoodsBasic_explosives5 = 4, + DangerousGoodsBasic_explosives6 = 5, + DangerousGoodsBasic_flammableGases = 6, + DangerousGoodsBasic_nonFlammableGases = 7, + DangerousGoodsBasic_toxicGases = 8, + DangerousGoodsBasic_flammableLiquids = 9, + DangerousGoodsBasic_flammableSolids = 10, + DangerousGoodsBasic_substancesLiableToSpontaneousCombustion = 11, + DangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater = 12, + DangerousGoodsBasic_oxidizingSubstances = 13, + DangerousGoodsBasic_organicPeroxides = 14, + DangerousGoodsBasic_toxicSubstances = 15, + DangerousGoodsBasic_infectiousSubstances = 16, + DangerousGoodsBasic_radioactiveMaterial = 17, + DangerousGoodsBasic_corrosiveSubstances = 18, + DangerousGoodsBasic_miscellaneousDangerousSubstances = 19 +} e_DangerousGoodsBasic; + +/* DangerousGoodsBasic */ +typedef long DangerousGoodsBasic_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic; +extern const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1; +asn_struct_free_f DangerousGoodsBasic_free; +asn_struct_print_f DangerousGoodsBasic_print; +asn_constr_check_f DangerousGoodsBasic_constraint; +ber_type_decoder_f DangerousGoodsBasic_decode_ber; +der_type_encoder_f DangerousGoodsBasic_encode_der; +xer_type_decoder_f DangerousGoodsBasic_decode_xer; +xer_type_encoder_f DangerousGoodsBasic_encode_xer; +oer_type_decoder_f DangerousGoodsBasic_decode_oer; +oer_type_encoder_f DangerousGoodsBasic_encode_oer; +per_type_decoder_f DangerousGoodsBasic_decode_uper; +per_type_encoder_f DangerousGoodsBasic_encode_uper; +per_type_decoder_f DangerousGoodsBasic_decode_aper; +per_type_encoder_f DangerousGoodsBasic_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsBasic_H_ */ +#include diff --git a/vcits/cam/DangerousGoodsContainer.h b/vcits/cam/DangerousGoodsContainer.h new file mode 100644 index 0000000..57e60b8 --- /dev/null +++ b/vcits/cam/DangerousGoodsContainer.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _DangerousGoodsContainer_H_ +#define _DangerousGoodsContainer_H_ + + +#include + +/* Including external dependencies */ +#include "DangerousGoodsBasic.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DangerousGoodsContainer */ +typedef struct DangerousGoodsContainer { + DangerousGoodsBasic_t dangerousGoodsBasic; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DangerousGoodsContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_DangerousGoodsContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_DangerousGoodsContainer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsContainer_H_ */ +#include diff --git a/vcits/cam/DangerousGoodsExtended.h b/vcits/cam/DangerousGoodsExtended.h new file mode 100644 index 0000000..54040eb --- /dev/null +++ b/vcits/cam/DangerousGoodsExtended.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _DangerousGoodsExtended_H_ +#define _DangerousGoodsExtended_H_ + + +#include + +/* Including external dependencies */ +#include "DangerousGoodsBasic.h" +#include +#include +#include +#include "PhoneNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DangerousGoodsExtended */ +typedef struct DangerousGoodsExtended { + DangerousGoodsBasic_t dangerousGoodsType; + long unNumber; + BOOLEAN_t elevatedTemperature; + BOOLEAN_t tunnelsRestricted; + BOOLEAN_t limitedQuantity; + IA5String_t *emergencyActionCode; /* OPTIONAL */ + PhoneNumber_t *phoneNumber; /* OPTIONAL */ + UTF8String_t *companyName; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DangerousGoodsExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsExtended_H_ */ +#include diff --git a/vcits/cam/DangerousSituationSubCauseCode.h b/vcits/cam/DangerousSituationSubCauseCode.h new file mode 100644 index 0000000..e9c46a4 --- /dev/null +++ b/vcits/cam/DangerousSituationSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _DangerousSituationSubCauseCode_H_ +#define _DangerousSituationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousSituationSubCauseCode { + DangerousSituationSubCauseCode_unavailable = 0, + DangerousSituationSubCauseCode_emergencyElectronicBrakeEngaged = 1, + DangerousSituationSubCauseCode_preCrashSystemEngaged = 2, + DangerousSituationSubCauseCode_espEngaged = 3, + DangerousSituationSubCauseCode_absEngaged = 4, + DangerousSituationSubCauseCode_aebEngaged = 5, + DangerousSituationSubCauseCode_brakeWarningEngaged = 6, + DangerousSituationSubCauseCode_collisionRiskWarningEngaged = 7 +} e_DangerousSituationSubCauseCode; + +/* DangerousSituationSubCauseCode */ +typedef long DangerousSituationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode; +asn_struct_free_f DangerousSituationSubCauseCode_free; +asn_struct_print_f DangerousSituationSubCauseCode_print; +asn_constr_check_f DangerousSituationSubCauseCode_constraint; +ber_type_decoder_f DangerousSituationSubCauseCode_decode_ber; +der_type_encoder_f DangerousSituationSubCauseCode_encode_der; +xer_type_decoder_f DangerousSituationSubCauseCode_decode_xer; +xer_type_encoder_f DangerousSituationSubCauseCode_encode_xer; +oer_type_decoder_f DangerousSituationSubCauseCode_decode_oer; +oer_type_encoder_f DangerousSituationSubCauseCode_encode_oer; +per_type_decoder_f DangerousSituationSubCauseCode_decode_uper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_uper; +per_type_decoder_f DangerousSituationSubCauseCode_decode_aper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousSituationSubCauseCode_H_ */ +#include diff --git a/vcits/cam/DeltaAltitude.h b/vcits/cam/DeltaAltitude.h new file mode 100644 index 0000000..7f3fc56 --- /dev/null +++ b/vcits/cam/DeltaAltitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _DeltaAltitude_H_ +#define _DeltaAltitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaAltitude { + DeltaAltitude_oneCentimeterUp = 1, + DeltaAltitude_oneCentimeterDown = -1, + DeltaAltitude_unavailable = 12800 +} e_DeltaAltitude; + +/* DeltaAltitude */ +typedef long DeltaAltitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAltitude; +asn_struct_free_f DeltaAltitude_free; +asn_struct_print_f DeltaAltitude_print; +asn_constr_check_f DeltaAltitude_constraint; +ber_type_decoder_f DeltaAltitude_decode_ber; +der_type_encoder_f DeltaAltitude_encode_der; +xer_type_decoder_f DeltaAltitude_decode_xer; +xer_type_encoder_f DeltaAltitude_encode_xer; +oer_type_decoder_f DeltaAltitude_decode_oer; +oer_type_encoder_f DeltaAltitude_encode_oer; +per_type_decoder_f DeltaAltitude_decode_uper; +per_type_encoder_f DeltaAltitude_encode_uper; +per_type_decoder_f DeltaAltitude_decode_aper; +per_type_encoder_f DeltaAltitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAltitude_H_ */ +#include diff --git a/vcits/cam/DeltaLatitude.h b/vcits/cam/DeltaLatitude.h new file mode 100644 index 0000000..45df33b --- /dev/null +++ b/vcits/cam/DeltaLatitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _DeltaLatitude_H_ +#define _DeltaLatitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLatitude { + DeltaLatitude_oneMicrodegreeNorth = 10, + DeltaLatitude_oneMicrodegreeSouth = -10, + DeltaLatitude_unavailable = 131072 +} e_DeltaLatitude; + +/* DeltaLatitude */ +typedef long DeltaLatitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLatitude; +asn_struct_free_f DeltaLatitude_free; +asn_struct_print_f DeltaLatitude_print; +asn_constr_check_f DeltaLatitude_constraint; +ber_type_decoder_f DeltaLatitude_decode_ber; +der_type_encoder_f DeltaLatitude_encode_der; +xer_type_decoder_f DeltaLatitude_decode_xer; +xer_type_encoder_f DeltaLatitude_encode_xer; +oer_type_decoder_f DeltaLatitude_decode_oer; +oer_type_encoder_f DeltaLatitude_encode_oer; +per_type_decoder_f DeltaLatitude_decode_uper; +per_type_encoder_f DeltaLatitude_encode_uper; +per_type_decoder_f DeltaLatitude_decode_aper; +per_type_encoder_f DeltaLatitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLatitude_H_ */ +#include diff --git a/vcits/cam/DeltaLongitude.h b/vcits/cam/DeltaLongitude.h new file mode 100644 index 0000000..262c7f2 --- /dev/null +++ b/vcits/cam/DeltaLongitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _DeltaLongitude_H_ +#define _DeltaLongitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLongitude { + DeltaLongitude_oneMicrodegreeEast = 10, + DeltaLongitude_oneMicrodegreeWest = -10, + DeltaLongitude_unavailable = 131072 +} e_DeltaLongitude; + +/* DeltaLongitude */ +typedef long DeltaLongitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLongitude; +asn_struct_free_f DeltaLongitude_free; +asn_struct_print_f DeltaLongitude_print; +asn_constr_check_f DeltaLongitude_constraint; +ber_type_decoder_f DeltaLongitude_decode_ber; +der_type_encoder_f DeltaLongitude_encode_der; +xer_type_decoder_f DeltaLongitude_decode_xer; +xer_type_encoder_f DeltaLongitude_encode_xer; +oer_type_decoder_f DeltaLongitude_decode_oer; +oer_type_encoder_f DeltaLongitude_encode_oer; +per_type_decoder_f DeltaLongitude_decode_uper; +per_type_encoder_f DeltaLongitude_encode_uper; +per_type_decoder_f DeltaLongitude_decode_aper; +per_type_encoder_f DeltaLongitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLongitude_H_ */ +#include diff --git a/vcits/cam/DeltaReferencePosition.h b/vcits/cam/DeltaReferencePosition.h new file mode 100644 index 0000000..14b25ff --- /dev/null +++ b/vcits/cam/DeltaReferencePosition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _DeltaReferencePosition_H_ +#define _DeltaReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaLatitude.h" +#include "DeltaLongitude.h" +#include "DeltaAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaReferencePosition */ +typedef struct DeltaReferencePosition { + DeltaLatitude_t deltaLatitude; + DeltaLongitude_t deltaLongitude; + DeltaAltitude_t deltaAltitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DeltaReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaReferencePosition_H_ */ +#include diff --git a/vcits/cam/DigitalMap.h b/vcits/cam/DigitalMap.h new file mode 100644 index 0000000..73818d0 --- /dev/null +++ b/vcits/cam/DigitalMap.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _DigitalMap_H_ +#define _DigitalMap_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* DigitalMap */ +typedef struct DigitalMap { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DigitalMap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DigitalMap; + +#ifdef __cplusplus +} +#endif + +#endif /* _DigitalMap_H_ */ +#include diff --git a/vcits/cam/DriveDirection.h b/vcits/cam/DriveDirection.h new file mode 100644 index 0000000..a8c554e --- /dev/null +++ b/vcits/cam/DriveDirection.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _DriveDirection_H_ +#define _DriveDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DriveDirection { + DriveDirection_forward = 0, + DriveDirection_backward = 1, + DriveDirection_unavailable = 2 +} e_DriveDirection; + +/* DriveDirection */ +typedef long DriveDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DriveDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DriveDirection; +extern const asn_INTEGER_specifics_t asn_SPC_DriveDirection_specs_1; +asn_struct_free_f DriveDirection_free; +asn_struct_print_f DriveDirection_print; +asn_constr_check_f DriveDirection_constraint; +ber_type_decoder_f DriveDirection_decode_ber; +der_type_encoder_f DriveDirection_encode_der; +xer_type_decoder_f DriveDirection_decode_xer; +xer_type_encoder_f DriveDirection_encode_xer; +oer_type_decoder_f DriveDirection_decode_oer; +oer_type_encoder_f DriveDirection_encode_oer; +per_type_decoder_f DriveDirection_decode_uper; +per_type_encoder_f DriveDirection_encode_uper; +per_type_decoder_f DriveDirection_decode_aper; +per_type_encoder_f DriveDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DriveDirection_H_ */ +#include diff --git a/vcits/cam/DrivingLaneStatus.h b/vcits/cam/DrivingLaneStatus.h new file mode 100644 index 0000000..7d07c11 --- /dev/null +++ b/vcits/cam/DrivingLaneStatus.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _DrivingLaneStatus_H_ +#define _DrivingLaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivingLaneStatus */ +typedef BIT_STRING_t DrivingLaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus; +asn_struct_free_f DrivingLaneStatus_free; +asn_struct_print_f DrivingLaneStatus_print; +asn_constr_check_f DrivingLaneStatus_constraint; +ber_type_decoder_f DrivingLaneStatus_decode_ber; +der_type_encoder_f DrivingLaneStatus_encode_der; +xer_type_decoder_f DrivingLaneStatus_decode_xer; +xer_type_encoder_f DrivingLaneStatus_encode_xer; +oer_type_decoder_f DrivingLaneStatus_decode_oer; +oer_type_encoder_f DrivingLaneStatus_encode_oer; +per_type_decoder_f DrivingLaneStatus_decode_uper; +per_type_encoder_f DrivingLaneStatus_encode_uper; +per_type_decoder_f DrivingLaneStatus_decode_aper; +per_type_encoder_f DrivingLaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivingLaneStatus_H_ */ +#include diff --git a/vcits/cam/EmbarkationStatus.h b/vcits/cam/EmbarkationStatus.h new file mode 100644 index 0000000..6628977 --- /dev/null +++ b/vcits/cam/EmbarkationStatus.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _EmbarkationStatus_H_ +#define _EmbarkationStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EmbarkationStatus */ +typedef BOOLEAN_t EmbarkationStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus; +asn_struct_free_f EmbarkationStatus_free; +asn_struct_print_f EmbarkationStatus_print; +asn_constr_check_f EmbarkationStatus_constraint; +ber_type_decoder_f EmbarkationStatus_decode_ber; +der_type_encoder_f EmbarkationStatus_encode_der; +xer_type_decoder_f EmbarkationStatus_decode_xer; +xer_type_encoder_f EmbarkationStatus_encode_xer; +oer_type_decoder_f EmbarkationStatus_decode_oer; +oer_type_encoder_f EmbarkationStatus_encode_oer; +per_type_decoder_f EmbarkationStatus_decode_uper; +per_type_encoder_f EmbarkationStatus_encode_uper; +per_type_decoder_f EmbarkationStatus_decode_aper; +per_type_encoder_f EmbarkationStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmbarkationStatus_H_ */ +#include diff --git a/vcits/cam/EmergencyContainer.h b/vcits/cam/EmergencyContainer.h new file mode 100644 index 0000000..898a227 --- /dev/null +++ b/vcits/cam/EmergencyContainer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _EmergencyContainer_H_ +#define _EmergencyContainer_H_ + + +#include + +/* Including external dependencies */ +#include "LightBarSirenInUse.h" +#include "EmergencyPriority.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CauseCode; + +/* EmergencyContainer */ +typedef struct EmergencyContainer { + LightBarSirenInUse_t lightBarSirenInUse; + struct CauseCode *incidentIndication; /* OPTIONAL */ + EmergencyPriority_t *emergencyPriority; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EmergencyContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_EmergencyContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_EmergencyContainer_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyContainer_H_ */ +#include diff --git a/vcits/cam/EmergencyPriority.h b/vcits/cam/EmergencyPriority.h new file mode 100644 index 0000000..4f68ef8 --- /dev/null +++ b/vcits/cam/EmergencyPriority.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _EmergencyPriority_H_ +#define _EmergencyPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyPriority { + EmergencyPriority_requestForRightOfWay = 0, + EmergencyPriority_requestForFreeCrossingAtATrafficLight = 1 +} e_EmergencyPriority; + +/* EmergencyPriority */ +typedef BIT_STRING_t EmergencyPriority_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EmergencyPriority_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EmergencyPriority; +asn_struct_free_f EmergencyPriority_free; +asn_struct_print_f EmergencyPriority_print; +asn_constr_check_f EmergencyPriority_constraint; +ber_type_decoder_f EmergencyPriority_decode_ber; +der_type_encoder_f EmergencyPriority_encode_der; +xer_type_decoder_f EmergencyPriority_decode_xer; +xer_type_encoder_f EmergencyPriority_encode_xer; +oer_type_decoder_f EmergencyPriority_decode_oer; +oer_type_encoder_f EmergencyPriority_encode_oer; +per_type_decoder_f EmergencyPriority_decode_uper; +per_type_encoder_f EmergencyPriority_encode_uper; +per_type_decoder_f EmergencyPriority_decode_aper; +per_type_encoder_f EmergencyPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyPriority_H_ */ +#include diff --git a/vcits/cam/EmergencyVehicleApproachingSubCauseCode.h b/vcits/cam/EmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 0000000..69f8526 --- /dev/null +++ b/vcits/cam/EmergencyVehicleApproachingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _EmergencyVehicleApproachingSubCauseCode_H_ +#define _EmergencyVehicleApproachingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyVehicleApproachingSubCauseCode { + EmergencyVehicleApproachingSubCauseCode_unavailable = 0, + EmergencyVehicleApproachingSubCauseCode_emergencyVehicleApproaching = 1, + EmergencyVehicleApproachingSubCauseCode_prioritizedVehicleApproaching = 2 +} e_EmergencyVehicleApproachingSubCauseCode; + +/* EmergencyVehicleApproachingSubCauseCode */ +typedef long EmergencyVehicleApproachingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode; +asn_struct_free_f EmergencyVehicleApproachingSubCauseCode_free; +asn_struct_print_f EmergencyVehicleApproachingSubCauseCode_print; +asn_constr_check_f EmergencyVehicleApproachingSubCauseCode_constraint; +ber_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_ber; +der_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_der; +xer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_xer; +xer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_xer; +oer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_oer; +oer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_oer; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_uper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_uper; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_aper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyVehicleApproachingSubCauseCode_H_ */ +#include diff --git a/vcits/cam/EnergyStorageType.h b/vcits/cam/EnergyStorageType.h new file mode 100644 index 0000000..9e97686 --- /dev/null +++ b/vcits/cam/EnergyStorageType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _EnergyStorageType_H_ +#define _EnergyStorageType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EnergyStorageType { + EnergyStorageType_hydrogenStorage = 0, + EnergyStorageType_electricEnergyStorage = 1, + EnergyStorageType_liquidPropaneGas = 2, + EnergyStorageType_compressedNaturalGas = 3, + EnergyStorageType_diesel = 4, + EnergyStorageType_gasoline = 5, + EnergyStorageType_ammonia = 6 +} e_EnergyStorageType; + +/* EnergyStorageType */ +typedef BIT_STRING_t EnergyStorageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnergyStorageType; +asn_struct_free_f EnergyStorageType_free; +asn_struct_print_f EnergyStorageType_print; +asn_constr_check_f EnergyStorageType_constraint; +ber_type_decoder_f EnergyStorageType_decode_ber; +der_type_encoder_f EnergyStorageType_encode_der; +xer_type_decoder_f EnergyStorageType_decode_xer; +xer_type_encoder_f EnergyStorageType_encode_xer; +oer_type_decoder_f EnergyStorageType_decode_oer; +oer_type_encoder_f EnergyStorageType_encode_oer; +per_type_decoder_f EnergyStorageType_decode_uper; +per_type_encoder_f EnergyStorageType_encode_uper; +per_type_decoder_f EnergyStorageType_decode_aper; +per_type_encoder_f EnergyStorageType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnergyStorageType_H_ */ +#include diff --git a/vcits/cam/EventHistory.h b/vcits/cam/EventHistory.h new file mode 100644 index 0000000..14195d0 --- /dev/null +++ b/vcits/cam/EventHistory.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _EventHistory_H_ +#define _EventHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EventPoint; + +/* EventHistory */ +typedef struct EventHistory { + A_SEQUENCE_OF(struct EventPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventHistory; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventHistory_H_ */ +#include diff --git a/vcits/cam/EventPoint.h b/vcits/cam/EventPoint.h new file mode 100644 index 0000000..9be5c5f --- /dev/null +++ b/vcits/cam/EventPoint.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _EventPoint_H_ +#define _EventPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include "InformationQuality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EventPoint */ +typedef struct EventPoint { + DeltaReferencePosition_t eventPosition; + PathDeltaTime_t *eventDeltaTime; /* OPTIONAL */ + InformationQuality_t informationQuality; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_EventPoint_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventPoint_H_ */ +#include diff --git a/vcits/cam/ExteriorLights.h b/vcits/cam/ExteriorLights.h new file mode 100644 index 0000000..39a00ed --- /dev/null +++ b/vcits/cam/ExteriorLights.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _ExteriorLights_H_ +#define _ExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExteriorLights { + ExteriorLights_lowBeamHeadlightsOn = 0, + ExteriorLights_highBeamHeadlightsOn = 1, + ExteriorLights_leftTurnSignalOn = 2, + ExteriorLights_rightTurnSignalOn = 3, + ExteriorLights_daytimeRunningLightsOn = 4, + ExteriorLights_reverseLightOn = 5, + ExteriorLights_fogLightOn = 6, + ExteriorLights_parkingLightsOn = 7 +} e_ExteriorLights; + +/* ExteriorLights */ +typedef BIT_STRING_t ExteriorLights_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ExteriorLights_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ExteriorLights; +asn_struct_free_f ExteriorLights_free; +asn_struct_print_f ExteriorLights_print; +asn_constr_check_f ExteriorLights_constraint; +ber_type_decoder_f ExteriorLights_decode_ber; +der_type_encoder_f ExteriorLights_encode_der; +xer_type_decoder_f ExteriorLights_decode_xer; +xer_type_encoder_f ExteriorLights_encode_xer; +oer_type_decoder_f ExteriorLights_decode_oer; +oer_type_encoder_f ExteriorLights_encode_oer; +per_type_decoder_f ExteriorLights_decode_uper; +per_type_encoder_f ExteriorLights_encode_uper; +per_type_decoder_f ExteriorLights_decode_aper; +per_type_encoder_f ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExteriorLights_H_ */ +#include diff --git a/vcits/cam/GenerationDeltaTime.h b/vcits/cam/GenerationDeltaTime.h new file mode 100644 index 0000000..0fdf9ee --- /dev/null +++ b/vcits/cam/GenerationDeltaTime.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _GenerationDeltaTime_H_ +#define _GenerationDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GenerationDeltaTime { + GenerationDeltaTime_oneMilliSec = 1 +} e_GenerationDeltaTime; + +/* GenerationDeltaTime */ +typedef long GenerationDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GenerationDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GenerationDeltaTime; +asn_struct_free_f GenerationDeltaTime_free; +asn_struct_print_f GenerationDeltaTime_print; +asn_constr_check_f GenerationDeltaTime_constraint; +ber_type_decoder_f GenerationDeltaTime_decode_ber; +der_type_encoder_f GenerationDeltaTime_encode_der; +xer_type_decoder_f GenerationDeltaTime_decode_xer; +xer_type_encoder_f GenerationDeltaTime_encode_xer; +oer_type_decoder_f GenerationDeltaTime_decode_oer; +oer_type_encoder_f GenerationDeltaTime_encode_oer; +per_type_decoder_f GenerationDeltaTime_decode_uper; +per_type_encoder_f GenerationDeltaTime_encode_uper; +per_type_decoder_f GenerationDeltaTime_decode_aper; +per_type_encoder_f GenerationDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GenerationDeltaTime_H_ */ +#include diff --git a/vcits/cam/HardShoulderStatus.h b/vcits/cam/HardShoulderStatus.h new file mode 100644 index 0000000..9814845 --- /dev/null +++ b/vcits/cam/HardShoulderStatus.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _HardShoulderStatus_H_ +#define _HardShoulderStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HardShoulderStatus { + HardShoulderStatus_availableForStopping = 0, + HardShoulderStatus_closed = 1, + HardShoulderStatus_availableForDriving = 2 +} e_HardShoulderStatus; + +/* HardShoulderStatus */ +typedef long HardShoulderStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus; +extern const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1; +asn_struct_free_f HardShoulderStatus_free; +asn_struct_print_f HardShoulderStatus_print; +asn_constr_check_f HardShoulderStatus_constraint; +ber_type_decoder_f HardShoulderStatus_decode_ber; +der_type_encoder_f HardShoulderStatus_encode_der; +xer_type_decoder_f HardShoulderStatus_decode_xer; +xer_type_encoder_f HardShoulderStatus_encode_xer; +oer_type_decoder_f HardShoulderStatus_decode_oer; +oer_type_encoder_f HardShoulderStatus_encode_oer; +per_type_decoder_f HardShoulderStatus_decode_uper; +per_type_encoder_f HardShoulderStatus_encode_uper; +per_type_decoder_f HardShoulderStatus_decode_aper; +per_type_encoder_f HardShoulderStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HardShoulderStatus_H_ */ +#include diff --git a/vcits/cam/HazardousLocation-AnimalOnTheRoadSubCauseCode.h b/vcits/cam/HazardousLocation-AnimalOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..bc46b4f --- /dev/null +++ b/vcits/cam/HazardousLocation-AnimalOnTheRoadSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_AnimalOnTheRoadSubCauseCode { + HazardousLocation_AnimalOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimals = 1, + HazardousLocation_AnimalOnTheRoadSubCauseCode_herdOfAnimals = 2, + HazardousLocation_AnimalOnTheRoadSubCauseCode_smallAnimals = 3, + HazardousLocation_AnimalOnTheRoadSubCauseCode_largeAnimals = 4 +} e_HazardousLocation_AnimalOnTheRoadSubCauseCode; + +/* HazardousLocation-AnimalOnTheRoadSubCauseCode */ +typedef long HazardousLocation_AnimalOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_AnimalOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_AnimalOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/cam/HazardousLocation-DangerousCurveSubCauseCode.h b/vcits/cam/HazardousLocation-DangerousCurveSubCauseCode.h new file mode 100644 index 0000000..053599e --- /dev/null +++ b/vcits/cam/HazardousLocation-DangerousCurveSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _HazardousLocation_DangerousCurveSubCauseCode_H_ +#define _HazardousLocation_DangerousCurveSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_DangerousCurveSubCauseCode { + HazardousLocation_DangerousCurveSubCauseCode_unavailable = 0, + HazardousLocation_DangerousCurveSubCauseCode_dangerousLeftTurnCurve = 1, + HazardousLocation_DangerousCurveSubCauseCode_dangerousRightTurnCurve = 2, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithUnknownTurningDirection = 3, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithLeftTurn = 4, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithRightTurn = 5 +} e_HazardousLocation_DangerousCurveSubCauseCode; + +/* HazardousLocation-DangerousCurveSubCauseCode */ +typedef long HazardousLocation_DangerousCurveSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode; +asn_struct_free_f HazardousLocation_DangerousCurveSubCauseCode_free; +asn_struct_print_f HazardousLocation_DangerousCurveSubCauseCode_print; +asn_constr_check_f HazardousLocation_DangerousCurveSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_DangerousCurveSubCauseCode_H_ */ +#include diff --git a/vcits/cam/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h b/vcits/cam/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..57d5599 --- /dev/null +++ b/vcits/cam/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_ObstacleOnTheRoadSubCauseCode { + HazardousLocation_ObstacleOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_shedLoad = 1, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfVehicles = 2, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfTyres = 3, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_bigObjects = 4, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_fallenTrees = 5, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_hubCaps = 6, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_waitingVehicles = 7 +} e_HazardousLocation_ObstacleOnTheRoadSubCauseCode; + +/* HazardousLocation-ObstacleOnTheRoadSubCauseCode */ +typedef long HazardousLocation_ObstacleOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/cam/HazardousLocation-SurfaceConditionSubCauseCode.h b/vcits/cam/HazardousLocation-SurfaceConditionSubCauseCode.h new file mode 100644 index 0000000..3fdcefb --- /dev/null +++ b/vcits/cam/HazardousLocation-SurfaceConditionSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _HazardousLocation_SurfaceConditionSubCauseCode_H_ +#define _HazardousLocation_SurfaceConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_SurfaceConditionSubCauseCode { + HazardousLocation_SurfaceConditionSubCauseCode_unavailable = 0, + HazardousLocation_SurfaceConditionSubCauseCode_rockfalls = 1, + HazardousLocation_SurfaceConditionSubCauseCode_earthquakeDamage = 2, + HazardousLocation_SurfaceConditionSubCauseCode_sewerCollapse = 3, + HazardousLocation_SurfaceConditionSubCauseCode_subsidence = 4, + HazardousLocation_SurfaceConditionSubCauseCode_snowDrifts = 5, + HazardousLocation_SurfaceConditionSubCauseCode_stormDamage = 6, + HazardousLocation_SurfaceConditionSubCauseCode_burstPipe = 7, + HazardousLocation_SurfaceConditionSubCauseCode_volcanoEruption = 8, + HazardousLocation_SurfaceConditionSubCauseCode_fallingIce = 9 +} e_HazardousLocation_SurfaceConditionSubCauseCode; + +/* HazardousLocation-SurfaceConditionSubCauseCode */ +typedef long HazardousLocation_SurfaceConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode; +asn_struct_free_f HazardousLocation_SurfaceConditionSubCauseCode_free; +asn_struct_print_f HazardousLocation_SurfaceConditionSubCauseCode_print; +asn_constr_check_f HazardousLocation_SurfaceConditionSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_SurfaceConditionSubCauseCode_H_ */ +#include diff --git a/vcits/cam/Heading.h b/vcits/cam/Heading.h new file mode 100644 index 0000000..b830bec --- /dev/null +++ b/vcits/cam/Heading.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _Heading_H_ +#define _Heading_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingValue.h" +#include "HeadingConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Heading */ +typedef struct Heading { + HeadingValue_t headingValue; + HeadingConfidence_t headingConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Heading_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Heading; +extern asn_SEQUENCE_specifics_t asn_SPC_Heading_specs_1; +extern asn_TYPE_member_t asn_MBR_Heading_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Heading_H_ */ +#include diff --git a/vcits/cam/HeadingConfidence.h b/vcits/cam/HeadingConfidence.h new file mode 100644 index 0000000..071f915 --- /dev/null +++ b/vcits/cam/HeadingConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _HeadingConfidence_H_ +#define _HeadingConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidence { + HeadingConfidence_equalOrWithinZeroPointOneDegree = 1, + HeadingConfidence_equalOrWithinOneDegree = 10, + HeadingConfidence_outOfRange = 126, + HeadingConfidence_unavailable = 127 +} e_HeadingConfidence; + +/* HeadingConfidence */ +typedef long HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidence; +asn_struct_free_f HeadingConfidence_free; +asn_struct_print_f HeadingConfidence_print; +asn_constr_check_f HeadingConfidence_constraint; +ber_type_decoder_f HeadingConfidence_decode_ber; +der_type_encoder_f HeadingConfidence_encode_der; +xer_type_decoder_f HeadingConfidence_decode_xer; +xer_type_encoder_f HeadingConfidence_encode_xer; +oer_type_decoder_f HeadingConfidence_decode_oer; +oer_type_encoder_f HeadingConfidence_encode_oer; +per_type_decoder_f HeadingConfidence_decode_uper; +per_type_encoder_f HeadingConfidence_encode_uper; +per_type_decoder_f HeadingConfidence_decode_aper; +per_type_encoder_f HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidence_H_ */ +#include diff --git a/vcits/cam/HeadingValue.h b/vcits/cam/HeadingValue.h new file mode 100644 index 0000000..901bef1 --- /dev/null +++ b/vcits/cam/HeadingValue.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _HeadingValue_H_ +#define _HeadingValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingValue { + HeadingValue_wgs84North = 0, + HeadingValue_wgs84East = 900, + HeadingValue_wgs84South = 1800, + HeadingValue_wgs84West = 2700, + HeadingValue_unavailable = 3601 +} e_HeadingValue; + +/* HeadingValue */ +typedef long HeadingValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingValue; +asn_struct_free_f HeadingValue_free; +asn_struct_print_f HeadingValue_print; +asn_constr_check_f HeadingValue_constraint; +ber_type_decoder_f HeadingValue_decode_ber; +der_type_encoder_f HeadingValue_encode_der; +xer_type_decoder_f HeadingValue_decode_xer; +xer_type_encoder_f HeadingValue_encode_xer; +oer_type_decoder_f HeadingValue_decode_oer; +oer_type_encoder_f HeadingValue_encode_oer; +per_type_decoder_f HeadingValue_decode_uper; +per_type_encoder_f HeadingValue_encode_uper; +per_type_decoder_f HeadingValue_decode_aper; +per_type_encoder_f HeadingValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingValue_H_ */ +#include diff --git a/vcits/cam/HeightLonCarr.h b/vcits/cam/HeightLonCarr.h new file mode 100644 index 0000000..613ff10 --- /dev/null +++ b/vcits/cam/HeightLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _HeightLonCarr_H_ +#define _HeightLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeightLonCarr { + HeightLonCarr_oneCentimeter = 1, + HeightLonCarr_unavailable = 100 +} e_HeightLonCarr; + +/* HeightLonCarr */ +typedef long HeightLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HeightLonCarr; +asn_struct_free_f HeightLonCarr_free; +asn_struct_print_f HeightLonCarr_print; +asn_constr_check_f HeightLonCarr_constraint; +ber_type_decoder_f HeightLonCarr_decode_ber; +der_type_encoder_f HeightLonCarr_encode_der; +xer_type_decoder_f HeightLonCarr_decode_xer; +xer_type_encoder_f HeightLonCarr_encode_xer; +oer_type_decoder_f HeightLonCarr_decode_oer; +oer_type_encoder_f HeightLonCarr_encode_oer; +per_type_decoder_f HeightLonCarr_decode_uper; +per_type_encoder_f HeightLonCarr_encode_uper; +per_type_decoder_f HeightLonCarr_decode_aper; +per_type_encoder_f HeightLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeightLonCarr_H_ */ +#include diff --git a/vcits/cam/HighFrequencyContainer.h b/vcits/cam/HighFrequencyContainer.h new file mode 100644 index 0000000..1dd03ac --- /dev/null +++ b/vcits/cam/HighFrequencyContainer.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _HighFrequencyContainer_H_ +#define _HighFrequencyContainer_H_ + + +#include + +/* Including external dependencies */ +#include "BasicVehicleContainerHighFrequency.h" +#include "RSUContainerHighFrequency.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HighFrequencyContainer_PR { + HighFrequencyContainer_PR_NOTHING, /* No components present */ + HighFrequencyContainer_PR_basicVehicleContainerHighFrequency, + HighFrequencyContainer_PR_rsuContainerHighFrequency + /* Extensions may appear below */ + +} HighFrequencyContainer_PR; + +/* HighFrequencyContainer */ +typedef struct HighFrequencyContainer { + HighFrequencyContainer_PR present; + union HighFrequencyContainer_u { + BasicVehicleContainerHighFrequency_t basicVehicleContainerHighFrequency; + RSUContainerHighFrequency_t rsuContainerHighFrequency; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} HighFrequencyContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HighFrequencyContainer; +extern asn_CHOICE_specifics_t asn_SPC_HighFrequencyContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_HighFrequencyContainer_1[2]; +extern asn_per_constraints_t asn_PER_type_HighFrequencyContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _HighFrequencyContainer_H_ */ +#include diff --git a/vcits/cam/HumanPresenceOnTheRoadSubCauseCode.h b/vcits/cam/HumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..35e2986 --- /dev/null +++ b/vcits/cam/HumanPresenceOnTheRoadSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _HumanPresenceOnTheRoadSubCauseCode_H_ +#define _HumanPresenceOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanPresenceOnTheRoadSubCauseCode { + HumanPresenceOnTheRoadSubCauseCode_unavailable = 0, + HumanPresenceOnTheRoadSubCauseCode_childrenOnRoadway = 1, + HumanPresenceOnTheRoadSubCauseCode_cyclistOnRoadway = 2, + HumanPresenceOnTheRoadSubCauseCode_motorcyclistOnRoadway = 3 +} e_HumanPresenceOnTheRoadSubCauseCode; + +/* HumanPresenceOnTheRoadSubCauseCode */ +typedef long HumanPresenceOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode; +asn_struct_free_f HumanPresenceOnTheRoadSubCauseCode_free; +asn_struct_print_f HumanPresenceOnTheRoadSubCauseCode_print; +asn_constr_check_f HumanPresenceOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanPresenceOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/cam/HumanProblemSubCauseCode.h b/vcits/cam/HumanProblemSubCauseCode.h new file mode 100644 index 0000000..c261942 --- /dev/null +++ b/vcits/cam/HumanProblemSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _HumanProblemSubCauseCode_H_ +#define _HumanProblemSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanProblemSubCauseCode { + HumanProblemSubCauseCode_unavailable = 0, + HumanProblemSubCauseCode_glycemiaProblem = 1, + HumanProblemSubCauseCode_heartProblem = 2 +} e_HumanProblemSubCauseCode; + +/* HumanProblemSubCauseCode */ +typedef long HumanProblemSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode; +asn_struct_free_f HumanProblemSubCauseCode_free; +asn_struct_print_f HumanProblemSubCauseCode_print; +asn_constr_check_f HumanProblemSubCauseCode_constraint; +ber_type_decoder_f HumanProblemSubCauseCode_decode_ber; +der_type_encoder_f HumanProblemSubCauseCode_encode_der; +xer_type_decoder_f HumanProblemSubCauseCode_decode_xer; +xer_type_encoder_f HumanProblemSubCauseCode_encode_xer; +oer_type_decoder_f HumanProblemSubCauseCode_decode_oer; +oer_type_encoder_f HumanProblemSubCauseCode_encode_oer; +per_type_decoder_f HumanProblemSubCauseCode_decode_uper; +per_type_encoder_f HumanProblemSubCauseCode_encode_uper; +per_type_decoder_f HumanProblemSubCauseCode_decode_aper; +per_type_encoder_f HumanProblemSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanProblemSubCauseCode_H_ */ +#include diff --git a/vcits/cam/InformationQuality.h b/vcits/cam/InformationQuality.h new file mode 100644 index 0000000..f831ea2 --- /dev/null +++ b/vcits/cam/InformationQuality.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _InformationQuality_H_ +#define _InformationQuality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InformationQuality { + InformationQuality_unavailable = 0, + InformationQuality_lowest = 1, + InformationQuality_highest = 7 +} e_InformationQuality; + +/* InformationQuality */ +typedef long InformationQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_InformationQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_InformationQuality; +asn_struct_free_f InformationQuality_free; +asn_struct_print_f InformationQuality_print; +asn_constr_check_f InformationQuality_constraint; +ber_type_decoder_f InformationQuality_decode_ber; +der_type_encoder_f InformationQuality_encode_der; +xer_type_decoder_f InformationQuality_decode_xer; +xer_type_encoder_f InformationQuality_encode_xer; +oer_type_decoder_f InformationQuality_decode_oer; +oer_type_encoder_f InformationQuality_encode_oer; +per_type_decoder_f InformationQuality_decode_uper; +per_type_encoder_f InformationQuality_encode_uper; +per_type_decoder_f InformationQuality_decode_aper; +per_type_encoder_f InformationQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InformationQuality_H_ */ +#include diff --git a/vcits/cam/ItineraryPath.h b/vcits/cam/ItineraryPath.h new file mode 100644 index 0000000..383a21a --- /dev/null +++ b/vcits/cam/ItineraryPath.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _ItineraryPath_H_ +#define _ItineraryPath_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* ItineraryPath */ +typedef struct ItineraryPath { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItineraryPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItineraryPath; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItineraryPath_H_ */ +#include diff --git a/vcits/cam/ItsPduHeader.h b/vcits/cam/ItsPduHeader.h new file mode 100644 index 0000000..04332f7 --- /dev/null +++ b/vcits/cam/ItsPduHeader.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _ItsPduHeader_H_ +#define _ItsPduHeader_H_ + + +#include + +/* Including external dependencies */ +#include +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ItsPduHeader__messageID { + ItsPduHeader__messageID_denm = 1, + ItsPduHeader__messageID_cam = 2, + ItsPduHeader__messageID_poi = 3, + ItsPduHeader__messageID_spatem = 4, + ItsPduHeader__messageID_mapem = 5, + ItsPduHeader__messageID_ivim = 6, + ItsPduHeader__messageID_ev_rsr = 7, + ItsPduHeader__messageID_tistpgtransaction = 8, + ItsPduHeader__messageID_srem = 9, + ItsPduHeader__messageID_ssem = 10, + ItsPduHeader__messageID_evcsn = 11, + ItsPduHeader__messageID_saem = 12, + ItsPduHeader__messageID_rtcmem = 13 +} e_ItsPduHeader__messageID; + +/* ItsPduHeader */ +typedef struct ItsPduHeader { + long protocolVersion; + long messageID; + StationID_t stationID; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsPduHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsPduHeader; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsPduHeader_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsPduHeader_H_ */ +#include diff --git a/vcits/cam/LanePosition.h b/vcits/cam/LanePosition.h new file mode 100644 index 0000000..b034b32 --- /dev/null +++ b/vcits/cam/LanePosition.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _LanePosition_H_ +#define _LanePosition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LanePosition { + LanePosition_offTheRoad = -1, + LanePosition_innerHardShoulder = 0, + LanePosition_innermostDrivingLane = 1, + LanePosition_secondLaneFromInside = 2, + LanePosition_outerHardShoulder = 14 +} e_LanePosition; + +/* LanePosition */ +typedef long LanePosition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LanePosition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LanePosition; +asn_struct_free_f LanePosition_free; +asn_struct_print_f LanePosition_print; +asn_constr_check_f LanePosition_constraint; +ber_type_decoder_f LanePosition_decode_ber; +der_type_encoder_f LanePosition_encode_der; +xer_type_decoder_f LanePosition_decode_xer; +xer_type_encoder_f LanePosition_encode_xer; +oer_type_decoder_f LanePosition_decode_oer; +oer_type_encoder_f LanePosition_encode_oer; +per_type_decoder_f LanePosition_decode_uper; +per_type_encoder_f LanePosition_encode_uper; +per_type_decoder_f LanePosition_decode_aper; +per_type_encoder_f LanePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LanePosition_H_ */ +#include diff --git a/vcits/cam/LateralAcceleration.h b/vcits/cam/LateralAcceleration.h new file mode 100644 index 0000000..5a18a91 --- /dev/null +++ b/vcits/cam/LateralAcceleration.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _LateralAcceleration_H_ +#define _LateralAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LateralAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LateralAcceleration */ +typedef struct LateralAcceleration { + LateralAccelerationValue_t lateralAccelerationValue; + AccelerationConfidence_t lateralAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LateralAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LateralAcceleration; +extern asn_SEQUENCE_specifics_t asn_SPC_LateralAcceleration_specs_1; +extern asn_TYPE_member_t asn_MBR_LateralAcceleration_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAcceleration_H_ */ +#include diff --git a/vcits/cam/LateralAccelerationValue.h b/vcits/cam/LateralAccelerationValue.h new file mode 100644 index 0000000..e9b806f --- /dev/null +++ b/vcits/cam/LateralAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _LateralAccelerationValue_H_ +#define _LateralAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LateralAccelerationValue { + LateralAccelerationValue_pointOneMeterPerSecSquaredToRight = -1, + LateralAccelerationValue_pointOneMeterPerSecSquaredToLeft = 1, + LateralAccelerationValue_unavailable = 161 +} e_LateralAccelerationValue; + +/* LateralAccelerationValue */ +typedef long LateralAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue; +asn_struct_free_f LateralAccelerationValue_free; +asn_struct_print_f LateralAccelerationValue_print; +asn_constr_check_f LateralAccelerationValue_constraint; +ber_type_decoder_f LateralAccelerationValue_decode_ber; +der_type_encoder_f LateralAccelerationValue_encode_der; +xer_type_decoder_f LateralAccelerationValue_decode_xer; +xer_type_encoder_f LateralAccelerationValue_encode_xer; +oer_type_decoder_f LateralAccelerationValue_decode_oer; +oer_type_encoder_f LateralAccelerationValue_encode_oer; +per_type_decoder_f LateralAccelerationValue_decode_uper; +per_type_encoder_f LateralAccelerationValue_encode_uper; +per_type_decoder_f LateralAccelerationValue_decode_aper; +per_type_encoder_f LateralAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAccelerationValue_H_ */ +#include diff --git a/vcits/cam/Latitude.h b/vcits/cam/Latitude.h new file mode 100644 index 0000000..9ceb26d --- /dev/null +++ b/vcits/cam/Latitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _Latitude_H_ +#define _Latitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Latitude { + Latitude_oneMicrodegreeNorth = 10, + Latitude_oneMicrodegreeSouth = -10, + Latitude_unavailable = 900000001 +} e_Latitude; + +/* Latitude */ +typedef long Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Latitude; +asn_struct_free_f Latitude_free; +asn_struct_print_f Latitude_print; +asn_constr_check_f Latitude_constraint; +ber_type_decoder_f Latitude_decode_ber; +der_type_encoder_f Latitude_encode_der; +xer_type_decoder_f Latitude_decode_xer; +xer_type_encoder_f Latitude_encode_xer; +oer_type_decoder_f Latitude_decode_oer; +oer_type_encoder_f Latitude_encode_oer; +per_type_decoder_f Latitude_decode_uper; +per_type_encoder_f Latitude_encode_uper; +per_type_decoder_f Latitude_decode_aper; +per_type_encoder_f Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Latitude_H_ */ +#include diff --git a/vcits/cam/LightBarSirenInUse.h b/vcits/cam/LightBarSirenInUse.h new file mode 100644 index 0000000..fd55d65 --- /dev/null +++ b/vcits/cam/LightBarSirenInUse.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _LightBarSirenInUse_H_ +#define _LightBarSirenInUse_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LightBarSirenInUse { + LightBarSirenInUse_lightBarActivated = 0, + LightBarSirenInUse_sirenActivated = 1 +} e_LightBarSirenInUse; + +/* LightBarSirenInUse */ +typedef BIT_STRING_t LightBarSirenInUse_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LightBarSirenInUse_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse; +asn_struct_free_f LightBarSirenInUse_free; +asn_struct_print_f LightBarSirenInUse_print; +asn_constr_check_f LightBarSirenInUse_constraint; +ber_type_decoder_f LightBarSirenInUse_decode_ber; +der_type_encoder_f LightBarSirenInUse_encode_der; +xer_type_decoder_f LightBarSirenInUse_decode_xer; +xer_type_encoder_f LightBarSirenInUse_encode_xer; +oer_type_decoder_f LightBarSirenInUse_decode_oer; +oer_type_encoder_f LightBarSirenInUse_encode_oer; +per_type_decoder_f LightBarSirenInUse_decode_uper; +per_type_encoder_f LightBarSirenInUse_encode_uper; +per_type_decoder_f LightBarSirenInUse_decode_aper; +per_type_encoder_f LightBarSirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LightBarSirenInUse_H_ */ +#include diff --git a/vcits/cam/Longitude.h b/vcits/cam/Longitude.h new file mode 100644 index 0000000..093a750 --- /dev/null +++ b/vcits/cam/Longitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _Longitude_H_ +#define _Longitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Longitude { + Longitude_oneMicrodegreeEast = 10, + Longitude_oneMicrodegreeWest = -10, + Longitude_unavailable = 1800000001 +} e_Longitude; + +/* Longitude */ +typedef long Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Longitude; +asn_struct_free_f Longitude_free; +asn_struct_print_f Longitude_print; +asn_constr_check_f Longitude_constraint; +ber_type_decoder_f Longitude_decode_ber; +der_type_encoder_f Longitude_encode_der; +xer_type_decoder_f Longitude_decode_xer; +xer_type_encoder_f Longitude_encode_xer; +oer_type_decoder_f Longitude_decode_oer; +oer_type_encoder_f Longitude_encode_oer; +per_type_decoder_f Longitude_decode_uper; +per_type_encoder_f Longitude_encode_uper; +per_type_decoder_f Longitude_decode_aper; +per_type_encoder_f Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Longitude_H_ */ +#include diff --git a/vcits/cam/LongitudinalAcceleration.h b/vcits/cam/LongitudinalAcceleration.h new file mode 100644 index 0000000..b9aba98 --- /dev/null +++ b/vcits/cam/LongitudinalAcceleration.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _LongitudinalAcceleration_H_ +#define _LongitudinalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LongitudinalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LongitudinalAcceleration */ +typedef struct LongitudinalAcceleration { + LongitudinalAccelerationValue_t longitudinalAccelerationValue; + AccelerationConfidence_t longitudinalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LongitudinalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration; +extern asn_SEQUENCE_specifics_t asn_SPC_LongitudinalAcceleration_specs_1; +extern asn_TYPE_member_t asn_MBR_LongitudinalAcceleration_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAcceleration_H_ */ +#include diff --git a/vcits/cam/LongitudinalAccelerationValue.h b/vcits/cam/LongitudinalAccelerationValue.h new file mode 100644 index 0000000..1ba4689 --- /dev/null +++ b/vcits/cam/LongitudinalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _LongitudinalAccelerationValue_H_ +#define _LongitudinalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LongitudinalAccelerationValue { + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredForward = 1, + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredBackward = -1, + LongitudinalAccelerationValue_unavailable = 161 +} e_LongitudinalAccelerationValue; + +/* LongitudinalAccelerationValue */ +typedef long LongitudinalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue; +asn_struct_free_f LongitudinalAccelerationValue_free; +asn_struct_print_f LongitudinalAccelerationValue_print; +asn_constr_check_f LongitudinalAccelerationValue_constraint; +ber_type_decoder_f LongitudinalAccelerationValue_decode_ber; +der_type_encoder_f LongitudinalAccelerationValue_encode_der; +xer_type_decoder_f LongitudinalAccelerationValue_decode_xer; +xer_type_encoder_f LongitudinalAccelerationValue_encode_xer; +oer_type_decoder_f LongitudinalAccelerationValue_decode_oer; +oer_type_encoder_f LongitudinalAccelerationValue_encode_oer; +per_type_decoder_f LongitudinalAccelerationValue_decode_uper; +per_type_encoder_f LongitudinalAccelerationValue_encode_uper; +per_type_decoder_f LongitudinalAccelerationValue_decode_aper; +per_type_encoder_f LongitudinalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAccelerationValue_H_ */ +#include diff --git a/vcits/cam/LowFrequencyContainer.h b/vcits/cam/LowFrequencyContainer.h new file mode 100644 index 0000000..22f5f0f --- /dev/null +++ b/vcits/cam/LowFrequencyContainer.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _LowFrequencyContainer_H_ +#define _LowFrequencyContainer_H_ + + +#include + +/* Including external dependencies */ +#include "BasicVehicleContainerLowFrequency.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LowFrequencyContainer_PR { + LowFrequencyContainer_PR_NOTHING, /* No components present */ + LowFrequencyContainer_PR_basicVehicleContainerLowFrequency + /* Extensions may appear below */ + +} LowFrequencyContainer_PR; + +/* LowFrequencyContainer */ +typedef struct LowFrequencyContainer { + LowFrequencyContainer_PR present; + union LowFrequencyContainer_u { + BasicVehicleContainerLowFrequency_t basicVehicleContainerLowFrequency; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LowFrequencyContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LowFrequencyContainer; +extern asn_CHOICE_specifics_t asn_SPC_LowFrequencyContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_LowFrequencyContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_LowFrequencyContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LowFrequencyContainer_H_ */ +#include diff --git a/vcits/cam/NumberOfOccupants.h b/vcits/cam/NumberOfOccupants.h new file mode 100644 index 0000000..5178fb3 --- /dev/null +++ b/vcits/cam/NumberOfOccupants.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _NumberOfOccupants_H_ +#define _NumberOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NumberOfOccupants { + NumberOfOccupants_oneOccupant = 1, + NumberOfOccupants_unavailable = 127 +} e_NumberOfOccupants; + +/* NumberOfOccupants */ +typedef long NumberOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants; +asn_struct_free_f NumberOfOccupants_free; +asn_struct_print_f NumberOfOccupants_print; +asn_constr_check_f NumberOfOccupants_constraint; +ber_type_decoder_f NumberOfOccupants_decode_ber; +der_type_encoder_f NumberOfOccupants_encode_der; +xer_type_decoder_f NumberOfOccupants_decode_xer; +xer_type_encoder_f NumberOfOccupants_encode_xer; +oer_type_decoder_f NumberOfOccupants_decode_oer; +oer_type_encoder_f NumberOfOccupants_encode_oer; +per_type_decoder_f NumberOfOccupants_decode_uper; +per_type_encoder_f NumberOfOccupants_encode_uper; +per_type_decoder_f NumberOfOccupants_decode_aper; +per_type_encoder_f NumberOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NumberOfOccupants_H_ */ +#include diff --git a/vcits/cam/OpeningDaysHours.h b/vcits/cam/OpeningDaysHours.h new file mode 100644 index 0000000..5ecba87 --- /dev/null +++ b/vcits/cam/OpeningDaysHours.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _OpeningDaysHours_H_ +#define _OpeningDaysHours_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OpeningDaysHours */ +typedef UTF8String_t OpeningDaysHours_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours; +asn_struct_free_f OpeningDaysHours_free; +asn_struct_print_f OpeningDaysHours_print; +asn_constr_check_f OpeningDaysHours_constraint; +ber_type_decoder_f OpeningDaysHours_decode_ber; +der_type_encoder_f OpeningDaysHours_encode_der; +xer_type_decoder_f OpeningDaysHours_decode_xer; +xer_type_encoder_f OpeningDaysHours_encode_xer; +oer_type_decoder_f OpeningDaysHours_decode_oer; +oer_type_encoder_f OpeningDaysHours_encode_oer; +per_type_decoder_f OpeningDaysHours_decode_uper; +per_type_encoder_f OpeningDaysHours_encode_uper; +per_type_decoder_f OpeningDaysHours_decode_aper; +per_type_encoder_f OpeningDaysHours_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OpeningDaysHours_H_ */ +#include diff --git a/vcits/cam/PathDeltaTime.h b/vcits/cam/PathDeltaTime.h new file mode 100644 index 0000000..cc31851 --- /dev/null +++ b/vcits/cam/PathDeltaTime.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PathDeltaTime_H_ +#define _PathDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PathDeltaTime { + PathDeltaTime_tenMilliSecondsInPast = 1 +} e_PathDeltaTime; + +/* PathDeltaTime */ +typedef long PathDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PathDeltaTime; +asn_struct_free_f PathDeltaTime_free; +asn_struct_print_f PathDeltaTime_print; +asn_constr_check_f PathDeltaTime_constraint; +ber_type_decoder_f PathDeltaTime_decode_ber; +der_type_encoder_f PathDeltaTime_encode_der; +xer_type_decoder_f PathDeltaTime_decode_xer; +xer_type_encoder_f PathDeltaTime_encode_xer; +oer_type_decoder_f PathDeltaTime_decode_oer; +oer_type_encoder_f PathDeltaTime_encode_oer; +per_type_decoder_f PathDeltaTime_decode_uper; +per_type_encoder_f PathDeltaTime_encode_uper; +per_type_decoder_f PathDeltaTime_decode_aper; +per_type_encoder_f PathDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathDeltaTime_H_ */ +#include diff --git a/vcits/cam/PathHistory.h b/vcits/cam/PathHistory.h new file mode 100644 index 0000000..bbac028 --- /dev/null +++ b/vcits/cam/PathHistory.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PathHistory_H_ +#define _PathHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathPoint; + +/* PathHistory */ +typedef struct PathHistory { + A_SEQUENCE_OF(struct PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathHistory; +extern asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_PathHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_PathHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathHistory_H_ */ +#include diff --git a/vcits/cam/PathPoint.h b/vcits/cam/PathPoint.h new file mode 100644 index 0000000..e6b3dc4 --- /dev/null +++ b/vcits/cam/PathPoint.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PathPoint_H_ +#define _PathPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PathPoint */ +typedef struct PathPoint { + DeltaReferencePosition_t pathPosition; + PathDeltaTime_t *pathDeltaTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_PathPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathPoint_H_ */ +#include diff --git a/vcits/cam/PerformanceClass.h b/vcits/cam/PerformanceClass.h new file mode 100644 index 0000000..ad64d2c --- /dev/null +++ b/vcits/cam/PerformanceClass.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PerformanceClass_H_ +#define _PerformanceClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PerformanceClass { + PerformanceClass_unavailable = 0, + PerformanceClass_performanceClassA = 1, + PerformanceClass_performanceClassB = 2 +} e_PerformanceClass; + +/* PerformanceClass */ +typedef long PerformanceClass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PerformanceClass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PerformanceClass; +asn_struct_free_f PerformanceClass_free; +asn_struct_print_f PerformanceClass_print; +asn_constr_check_f PerformanceClass_constraint; +ber_type_decoder_f PerformanceClass_decode_ber; +der_type_encoder_f PerformanceClass_encode_der; +xer_type_decoder_f PerformanceClass_decode_xer; +xer_type_encoder_f PerformanceClass_encode_xer; +oer_type_decoder_f PerformanceClass_decode_oer; +oer_type_encoder_f PerformanceClass_encode_oer; +per_type_decoder_f PerformanceClass_decode_uper; +per_type_encoder_f PerformanceClass_encode_uper; +per_type_decoder_f PerformanceClass_decode_aper; +per_type_encoder_f PerformanceClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PerformanceClass_H_ */ +#include diff --git a/vcits/cam/PhoneNumber.h b/vcits/cam/PhoneNumber.h new file mode 100644 index 0000000..f894cf2 --- /dev/null +++ b/vcits/cam/PhoneNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PhoneNumber_H_ +#define _PhoneNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PhoneNumber */ +typedef NumericString_t PhoneNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PhoneNumber; +asn_struct_free_f PhoneNumber_free; +asn_struct_print_f PhoneNumber_print; +asn_constr_check_f PhoneNumber_constraint; +ber_type_decoder_f PhoneNumber_decode_ber; +der_type_encoder_f PhoneNumber_encode_der; +xer_type_decoder_f PhoneNumber_decode_xer; +xer_type_encoder_f PhoneNumber_encode_xer; +oer_type_decoder_f PhoneNumber_decode_oer; +oer_type_encoder_f PhoneNumber_encode_oer; +per_type_decoder_f PhoneNumber_decode_uper; +per_type_encoder_f PhoneNumber_encode_uper; +per_type_decoder_f PhoneNumber_decode_aper; +per_type_encoder_f PhoneNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PhoneNumber_H_ */ +#include diff --git a/vcits/cam/PosCentMass.h b/vcits/cam/PosCentMass.h new file mode 100644 index 0000000..488ff8f --- /dev/null +++ b/vcits/cam/PosCentMass.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PosCentMass_H_ +#define _PosCentMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosCentMass { + PosCentMass_tenCentimeters = 1, + PosCentMass_unavailable = 63 +} e_PosCentMass; + +/* PosCentMass */ +typedef long PosCentMass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosCentMass; +asn_struct_free_f PosCentMass_free; +asn_struct_print_f PosCentMass_print; +asn_constr_check_f PosCentMass_constraint; +ber_type_decoder_f PosCentMass_decode_ber; +der_type_encoder_f PosCentMass_encode_der; +xer_type_decoder_f PosCentMass_decode_xer; +xer_type_encoder_f PosCentMass_encode_xer; +oer_type_decoder_f PosCentMass_decode_oer; +oer_type_encoder_f PosCentMass_encode_oer; +per_type_decoder_f PosCentMass_decode_uper; +per_type_encoder_f PosCentMass_encode_uper; +per_type_decoder_f PosCentMass_decode_aper; +per_type_encoder_f PosCentMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosCentMass_H_ */ +#include diff --git a/vcits/cam/PosConfidenceEllipse.h b/vcits/cam/PosConfidenceEllipse.h new file mode 100644 index 0000000..acaec80 --- /dev/null +++ b/vcits/cam/PosConfidenceEllipse.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PosConfidenceEllipse_H_ +#define _PosConfidenceEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "SemiAxisLength.h" +#include "HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PosConfidenceEllipse */ +typedef struct PosConfidenceEllipse { + SemiAxisLength_t semiMajorConfidence; + SemiAxisLength_t semiMinorConfidence; + HeadingValue_t semiMajorOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PosConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosConfidenceEllipse_H_ */ +#include diff --git a/vcits/cam/PosFrontAx.h b/vcits/cam/PosFrontAx.h new file mode 100644 index 0000000..f8158fc --- /dev/null +++ b/vcits/cam/PosFrontAx.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PosFrontAx_H_ +#define _PosFrontAx_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosFrontAx { + PosFrontAx_tenCentimeters = 1, + PosFrontAx_unavailable = 20 +} e_PosFrontAx; + +/* PosFrontAx */ +typedef long PosFrontAx_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosFrontAx; +asn_struct_free_f PosFrontAx_free; +asn_struct_print_f PosFrontAx_print; +asn_constr_check_f PosFrontAx_constraint; +ber_type_decoder_f PosFrontAx_decode_ber; +der_type_encoder_f PosFrontAx_encode_der; +xer_type_decoder_f PosFrontAx_decode_xer; +xer_type_encoder_f PosFrontAx_encode_xer; +oer_type_decoder_f PosFrontAx_decode_oer; +oer_type_encoder_f PosFrontAx_encode_oer; +per_type_decoder_f PosFrontAx_decode_uper; +per_type_encoder_f PosFrontAx_encode_uper; +per_type_decoder_f PosFrontAx_decode_aper; +per_type_encoder_f PosFrontAx_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosFrontAx_H_ */ +#include diff --git a/vcits/cam/PosLonCarr.h b/vcits/cam/PosLonCarr.h new file mode 100644 index 0000000..d0834b3 --- /dev/null +++ b/vcits/cam/PosLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PosLonCarr_H_ +#define _PosLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosLonCarr { + PosLonCarr_oneCentimeter = 1, + PosLonCarr_unavailable = 127 +} e_PosLonCarr; + +/* PosLonCarr */ +typedef long PosLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosLonCarr; +asn_struct_free_f PosLonCarr_free; +asn_struct_print_f PosLonCarr_print; +asn_constr_check_f PosLonCarr_constraint; +ber_type_decoder_f PosLonCarr_decode_ber; +der_type_encoder_f PosLonCarr_encode_der; +xer_type_decoder_f PosLonCarr_decode_xer; +xer_type_encoder_f PosLonCarr_encode_xer; +oer_type_decoder_f PosLonCarr_decode_oer; +oer_type_encoder_f PosLonCarr_encode_oer; +per_type_decoder_f PosLonCarr_decode_uper; +per_type_encoder_f PosLonCarr_encode_uper; +per_type_decoder_f PosLonCarr_decode_aper; +per_type_encoder_f PosLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosLonCarr_H_ */ +#include diff --git a/vcits/cam/PosPillar.h b/vcits/cam/PosPillar.h new file mode 100644 index 0000000..5963ba9 --- /dev/null +++ b/vcits/cam/PosPillar.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PosPillar_H_ +#define _PosPillar_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosPillar { + PosPillar_tenCentimeters = 1, + PosPillar_unavailable = 30 +} e_PosPillar; + +/* PosPillar */ +typedef long PosPillar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PosPillar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PosPillar; +asn_struct_free_f PosPillar_free; +asn_struct_print_f PosPillar_print; +asn_constr_check_f PosPillar_constraint; +ber_type_decoder_f PosPillar_decode_ber; +der_type_encoder_f PosPillar_encode_der; +xer_type_decoder_f PosPillar_decode_xer; +xer_type_encoder_f PosPillar_encode_xer; +oer_type_decoder_f PosPillar_decode_oer; +oer_type_encoder_f PosPillar_encode_oer; +per_type_decoder_f PosPillar_decode_uper; +per_type_encoder_f PosPillar_encode_uper; +per_type_decoder_f PosPillar_decode_aper; +per_type_encoder_f PosPillar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosPillar_H_ */ +#include diff --git a/vcits/cam/PositionOfOccupants.h b/vcits/cam/PositionOfOccupants.h new file mode 100644 index 0000000..14c12b4 --- /dev/null +++ b/vcits/cam/PositionOfOccupants.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PositionOfOccupants_H_ +#define _PositionOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionOfOccupants { + PositionOfOccupants_row1LeftOccupied = 0, + PositionOfOccupants_row1RightOccupied = 1, + PositionOfOccupants_row1MidOccupied = 2, + PositionOfOccupants_row1NotDetectable = 3, + PositionOfOccupants_row1NotPresent = 4, + PositionOfOccupants_row2LeftOccupied = 5, + PositionOfOccupants_row2RightOccupied = 6, + PositionOfOccupants_row2MidOccupied = 7, + PositionOfOccupants_row2NotDetectable = 8, + PositionOfOccupants_row2NotPresent = 9, + PositionOfOccupants_row3LeftOccupied = 10, + PositionOfOccupants_row3RightOccupied = 11, + PositionOfOccupants_row3MidOccupied = 12, + PositionOfOccupants_row3NotDetectable = 13, + PositionOfOccupants_row3NotPresent = 14, + PositionOfOccupants_row4LeftOccupied = 15, + PositionOfOccupants_row4RightOccupied = 16, + PositionOfOccupants_row4MidOccupied = 17, + PositionOfOccupants_row4NotDetectable = 18, + PositionOfOccupants_row4NotPresent = 19 +} e_PositionOfOccupants; + +/* PositionOfOccupants */ +typedef BIT_STRING_t PositionOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants; +asn_struct_free_f PositionOfOccupants_free; +asn_struct_print_f PositionOfOccupants_print; +asn_constr_check_f PositionOfOccupants_constraint; +ber_type_decoder_f PositionOfOccupants_decode_ber; +der_type_encoder_f PositionOfOccupants_encode_der; +xer_type_decoder_f PositionOfOccupants_decode_xer; +xer_type_encoder_f PositionOfOccupants_encode_xer; +oer_type_decoder_f PositionOfOccupants_decode_oer; +oer_type_encoder_f PositionOfOccupants_encode_oer; +per_type_decoder_f PositionOfOccupants_decode_uper; +per_type_encoder_f PositionOfOccupants_encode_uper; +per_type_decoder_f PositionOfOccupants_decode_aper; +per_type_encoder_f PositionOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfOccupants_H_ */ +#include diff --git a/vcits/cam/PositionOfPillars.h b/vcits/cam/PositionOfPillars.h new file mode 100644 index 0000000..4bd4b1a --- /dev/null +++ b/vcits/cam/PositionOfPillars.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PositionOfPillars_H_ +#define _PositionOfPillars_H_ + + +#include + +/* Including external dependencies */ +#include "PosPillar.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionOfPillars */ +typedef struct PositionOfPillars { + A_SEQUENCE_OF(PosPillar_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionOfPillars_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfPillars; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfPillars_H_ */ +#include diff --git a/vcits/cam/PositioningSolutionType.h b/vcits/cam/PositioningSolutionType.h new file mode 100644 index 0000000..46c7060 --- /dev/null +++ b/vcits/cam/PositioningSolutionType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PositioningSolutionType_H_ +#define _PositioningSolutionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositioningSolutionType { + PositioningSolutionType_noPositioningSolution = 0, + PositioningSolutionType_sGNSS = 1, + PositioningSolutionType_dGNSS = 2, + PositioningSolutionType_sGNSSplusDR = 3, + PositioningSolutionType_dGNSSplusDR = 4, + PositioningSolutionType_dR = 5 + /* + * Enumeration is extensible + */ +} e_PositioningSolutionType; + +/* PositioningSolutionType */ +typedef long PositioningSolutionType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType; +asn_struct_free_f PositioningSolutionType_free; +asn_struct_print_f PositioningSolutionType_print; +asn_constr_check_f PositioningSolutionType_constraint; +ber_type_decoder_f PositioningSolutionType_decode_ber; +der_type_encoder_f PositioningSolutionType_encode_der; +xer_type_decoder_f PositioningSolutionType_decode_xer; +xer_type_encoder_f PositioningSolutionType_encode_xer; +oer_type_decoder_f PositioningSolutionType_decode_oer; +oer_type_encoder_f PositioningSolutionType_encode_oer; +per_type_decoder_f PositioningSolutionType_decode_uper; +per_type_encoder_f PositioningSolutionType_encode_uper; +per_type_decoder_f PositioningSolutionType_decode_aper; +per_type_encoder_f PositioningSolutionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositioningSolutionType_H_ */ +#include diff --git a/vcits/cam/PostCrashSubCauseCode.h b/vcits/cam/PostCrashSubCauseCode.h new file mode 100644 index 0000000..968ab4b --- /dev/null +++ b/vcits/cam/PostCrashSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PostCrashSubCauseCode_H_ +#define _PostCrashSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PostCrashSubCauseCode { + PostCrashSubCauseCode_unavailable = 0, + PostCrashSubCauseCode_accidentWithoutECallTriggered = 1, + PostCrashSubCauseCode_accidentWithECallManuallyTriggered = 2, + PostCrashSubCauseCode_accidentWithECallAutomaticallyTriggered = 3, + PostCrashSubCauseCode_accidentWithECallTriggeredWithoutAccessToCellularNetwork = 4 +} e_PostCrashSubCauseCode; + +/* PostCrashSubCauseCode */ +typedef long PostCrashSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode; +asn_struct_free_f PostCrashSubCauseCode_free; +asn_struct_print_f PostCrashSubCauseCode_print; +asn_constr_check_f PostCrashSubCauseCode_constraint; +ber_type_decoder_f PostCrashSubCauseCode_decode_ber; +der_type_encoder_f PostCrashSubCauseCode_encode_der; +xer_type_decoder_f PostCrashSubCauseCode_decode_xer; +xer_type_encoder_f PostCrashSubCauseCode_encode_xer; +oer_type_decoder_f PostCrashSubCauseCode_decode_oer; +oer_type_encoder_f PostCrashSubCauseCode_encode_oer; +per_type_decoder_f PostCrashSubCauseCode_decode_uper; +per_type_encoder_f PostCrashSubCauseCode_encode_uper; +per_type_decoder_f PostCrashSubCauseCode_decode_aper; +per_type_encoder_f PostCrashSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PostCrashSubCauseCode_H_ */ +#include diff --git a/vcits/cam/ProtectedCommunicationZone.h b/vcits/cam/ProtectedCommunicationZone.h new file mode 100644 index 0000000..7499aea --- /dev/null +++ b/vcits/cam/ProtectedCommunicationZone.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _ProtectedCommunicationZone_H_ +#define _ProtectedCommunicationZone_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneType.h" +#include "TimestampIts.h" +#include "Latitude.h" +#include "Longitude.h" +#include "ProtectedZoneRadius.h" +#include "ProtectedZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedCommunicationZone */ +typedef struct ProtectedCommunicationZone { + ProtectedZoneType_t protectedZoneType; + TimestampIts_t *expiryTime; /* OPTIONAL */ + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + ProtectedZoneRadius_t *protectedZoneRadius; /* OPTIONAL */ + ProtectedZoneID_t *protectedZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone; +extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZone_H_ */ +#include diff --git a/vcits/cam/ProtectedCommunicationZonesRSU.h b/vcits/cam/ProtectedCommunicationZonesRSU.h new file mode 100644 index 0000000..aa4cf97 --- /dev/null +++ b/vcits/cam/ProtectedCommunicationZonesRSU.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _ProtectedCommunicationZonesRSU_H_ +#define _ProtectedCommunicationZonesRSU_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtectedCommunicationZone; + +/* ProtectedCommunicationZonesRSU */ +typedef struct ProtectedCommunicationZonesRSU { + A_SEQUENCE_OF(struct ProtectedCommunicationZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZonesRSU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU; +extern asn_SET_OF_specifics_t asn_SPC_ProtectedCommunicationZonesRSU_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtectedCommunicationZonesRSU_1[1]; +extern asn_per_constraints_t asn_PER_type_ProtectedCommunicationZonesRSU_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZonesRSU_H_ */ +#include diff --git a/vcits/cam/ProtectedZoneID.h b/vcits/cam/ProtectedZoneID.h new file mode 100644 index 0000000..866d221 --- /dev/null +++ b/vcits/cam/ProtectedZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _ProtectedZoneID_H_ +#define _ProtectedZoneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedZoneID */ +typedef long ProtectedZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID; +asn_struct_free_f ProtectedZoneID_free; +asn_struct_print_f ProtectedZoneID_print; +asn_constr_check_f ProtectedZoneID_constraint; +ber_type_decoder_f ProtectedZoneID_decode_ber; +der_type_encoder_f ProtectedZoneID_encode_der; +xer_type_decoder_f ProtectedZoneID_decode_xer; +xer_type_encoder_f ProtectedZoneID_encode_xer; +oer_type_decoder_f ProtectedZoneID_decode_oer; +oer_type_encoder_f ProtectedZoneID_encode_oer; +per_type_decoder_f ProtectedZoneID_decode_uper; +per_type_encoder_f ProtectedZoneID_encode_uper; +per_type_decoder_f ProtectedZoneID_decode_aper; +per_type_encoder_f ProtectedZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneID_H_ */ +#include diff --git a/vcits/cam/ProtectedZoneRadius.h b/vcits/cam/ProtectedZoneRadius.h new file mode 100644 index 0000000..f88eb2e --- /dev/null +++ b/vcits/cam/ProtectedZoneRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _ProtectedZoneRadius_H_ +#define _ProtectedZoneRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneRadius { + ProtectedZoneRadius_oneMeter = 1 +} e_ProtectedZoneRadius; + +/* ProtectedZoneRadius */ +typedef long ProtectedZoneRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius; +asn_struct_free_f ProtectedZoneRadius_free; +asn_struct_print_f ProtectedZoneRadius_print; +asn_constr_check_f ProtectedZoneRadius_constraint; +ber_type_decoder_f ProtectedZoneRadius_decode_ber; +der_type_encoder_f ProtectedZoneRadius_encode_der; +xer_type_decoder_f ProtectedZoneRadius_decode_xer; +xer_type_encoder_f ProtectedZoneRadius_encode_xer; +oer_type_decoder_f ProtectedZoneRadius_decode_oer; +oer_type_encoder_f ProtectedZoneRadius_encode_oer; +per_type_decoder_f ProtectedZoneRadius_decode_uper; +per_type_encoder_f ProtectedZoneRadius_encode_uper; +per_type_decoder_f ProtectedZoneRadius_decode_aper; +per_type_encoder_f ProtectedZoneRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneRadius_H_ */ +#include diff --git a/vcits/cam/ProtectedZoneType.h b/vcits/cam/ProtectedZoneType.h new file mode 100644 index 0000000..c9e7ac4 --- /dev/null +++ b/vcits/cam/ProtectedZoneType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _ProtectedZoneType_H_ +#define _ProtectedZoneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneType { + ProtectedZoneType_permanentCenDsrcTolling = 0, + /* + * Enumeration is extensible + */ + ProtectedZoneType_temporaryCenDsrcTolling = 1 +} e_ProtectedZoneType; + +/* ProtectedZoneType */ +typedef long ProtectedZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1; +asn_struct_free_f ProtectedZoneType_free; +asn_struct_print_f ProtectedZoneType_print; +asn_constr_check_f ProtectedZoneType_constraint; +ber_type_decoder_f ProtectedZoneType_decode_ber; +der_type_encoder_f ProtectedZoneType_encode_der; +xer_type_decoder_f ProtectedZoneType_decode_xer; +xer_type_encoder_f ProtectedZoneType_encode_xer; +oer_type_decoder_f ProtectedZoneType_decode_oer; +oer_type_encoder_f ProtectedZoneType_encode_oer; +per_type_decoder_f ProtectedZoneType_decode_uper; +per_type_encoder_f ProtectedZoneType_encode_uper; +per_type_decoder_f ProtectedZoneType_decode_aper; +per_type_encoder_f ProtectedZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneType_H_ */ +#include diff --git a/vcits/cam/PtActivation.h b/vcits/cam/PtActivation.h new file mode 100644 index 0000000..1ab9301 --- /dev/null +++ b/vcits/cam/PtActivation.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PtActivation_H_ +#define _PtActivation_H_ + + +#include + +/* Including external dependencies */ +#include "PtActivationType.h" +#include "PtActivationData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivation */ +typedef struct PtActivation { + PtActivationType_t ptActivationType; + PtActivationData_t ptActivationData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PtActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PtActivation; +extern asn_SEQUENCE_specifics_t asn_SPC_PtActivation_specs_1; +extern asn_TYPE_member_t asn_MBR_PtActivation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivation_H_ */ +#include diff --git a/vcits/cam/PtActivationData.h b/vcits/cam/PtActivationData.h new file mode 100644 index 0000000..f1e9bd6 --- /dev/null +++ b/vcits/cam/PtActivationData.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PtActivationData_H_ +#define _PtActivationData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivationData */ +typedef OCTET_STRING_t PtActivationData_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationData_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationData; +asn_struct_free_f PtActivationData_free; +asn_struct_print_f PtActivationData_print; +asn_constr_check_f PtActivationData_constraint; +ber_type_decoder_f PtActivationData_decode_ber; +der_type_encoder_f PtActivationData_encode_der; +xer_type_decoder_f PtActivationData_decode_xer; +xer_type_encoder_f PtActivationData_encode_xer; +oer_type_decoder_f PtActivationData_decode_oer; +oer_type_encoder_f PtActivationData_encode_oer; +per_type_decoder_f PtActivationData_decode_uper; +per_type_encoder_f PtActivationData_encode_uper; +per_type_decoder_f PtActivationData_decode_aper; +per_type_encoder_f PtActivationData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationData_H_ */ +#include diff --git a/vcits/cam/PtActivationType.h b/vcits/cam/PtActivationType.h new file mode 100644 index 0000000..5456014 --- /dev/null +++ b/vcits/cam/PtActivationType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PtActivationType_H_ +#define _PtActivationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtActivationType { + PtActivationType_undefinedCodingType = 0, + PtActivationType_r09_16CodingType = 1, + PtActivationType_vdv_50149CodingType = 2 +} e_PtActivationType; + +/* PtActivationType */ +typedef long PtActivationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationType; +asn_struct_free_f PtActivationType_free; +asn_struct_print_f PtActivationType_print; +asn_constr_check_f PtActivationType_constraint; +ber_type_decoder_f PtActivationType_decode_ber; +der_type_encoder_f PtActivationType_encode_der; +xer_type_decoder_f PtActivationType_decode_xer; +xer_type_encoder_f PtActivationType_encode_xer; +oer_type_decoder_f PtActivationType_decode_oer; +oer_type_encoder_f PtActivationType_encode_oer; +per_type_decoder_f PtActivationType_decode_uper; +per_type_encoder_f PtActivationType_encode_uper; +per_type_decoder_f PtActivationType_decode_aper; +per_type_encoder_f PtActivationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationType_H_ */ +#include diff --git a/vcits/cam/PublicTransportContainer.h b/vcits/cam/PublicTransportContainer.h new file mode 100644 index 0000000..f04935d --- /dev/null +++ b/vcits/cam/PublicTransportContainer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _PublicTransportContainer_H_ +#define _PublicTransportContainer_H_ + + +#include + +/* Including external dependencies */ +#include "EmbarkationStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PtActivation; + +/* PublicTransportContainer */ +typedef struct PublicTransportContainer { + EmbarkationStatus_t embarkationStatus; + struct PtActivation *ptActivation; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PublicTransportContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PublicTransportContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_PublicTransportContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_PublicTransportContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PublicTransportContainer_H_ */ +#include diff --git a/vcits/cam/RSUContainerHighFrequency.h b/vcits/cam/RSUContainerHighFrequency.h new file mode 100644 index 0000000..260fc1d --- /dev/null +++ b/vcits/cam/RSUContainerHighFrequency.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _RSUContainerHighFrequency_H_ +#define _RSUContainerHighFrequency_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtectedCommunicationZonesRSU; + +/* RSUContainerHighFrequency */ +typedef struct RSUContainerHighFrequency { + struct ProtectedCommunicationZonesRSU *protectedCommunicationZonesRSU; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RSUContainerHighFrequency_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RSUContainerHighFrequency; +extern asn_SEQUENCE_specifics_t asn_SPC_RSUContainerHighFrequency_specs_1; +extern asn_TYPE_member_t asn_MBR_RSUContainerHighFrequency_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RSUContainerHighFrequency_H_ */ +#include diff --git a/vcits/cam/ReferencePosition.h b/vcits/cam/ReferencePosition.h new file mode 100644 index 0000000..ac76c0e --- /dev/null +++ b/vcits/cam/ReferencePosition.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _ReferencePosition_H_ +#define _ReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "PosConfidenceEllipse.h" +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReferencePosition */ +typedef struct ReferencePosition { + Latitude_t latitude; + Longitude_t longitude; + PosConfidenceEllipse_t positionConfidenceEllipse; + Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ReferencePosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReferencePosition_H_ */ +#include diff --git a/vcits/cam/RelevanceDistance.h b/vcits/cam/RelevanceDistance.h new file mode 100644 index 0000000..12f6b45 --- /dev/null +++ b/vcits/cam/RelevanceDistance.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _RelevanceDistance_H_ +#define _RelevanceDistance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceDistance { + RelevanceDistance_lessThan50m = 0, + RelevanceDistance_lessThan100m = 1, + RelevanceDistance_lessThan200m = 2, + RelevanceDistance_lessThan500m = 3, + RelevanceDistance_lessThan1000m = 4, + RelevanceDistance_lessThan5km = 5, + RelevanceDistance_lessThan10km = 6, + RelevanceDistance_over10km = 7 +} e_RelevanceDistance; + +/* RelevanceDistance */ +typedef long RelevanceDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceDistance; +asn_struct_free_f RelevanceDistance_free; +asn_struct_print_f RelevanceDistance_print; +asn_constr_check_f RelevanceDistance_constraint; +ber_type_decoder_f RelevanceDistance_decode_ber; +der_type_encoder_f RelevanceDistance_encode_der; +xer_type_decoder_f RelevanceDistance_decode_xer; +xer_type_encoder_f RelevanceDistance_encode_xer; +oer_type_decoder_f RelevanceDistance_decode_oer; +oer_type_encoder_f RelevanceDistance_encode_oer; +per_type_decoder_f RelevanceDistance_decode_uper; +per_type_encoder_f RelevanceDistance_encode_uper; +per_type_decoder_f RelevanceDistance_decode_aper; +per_type_encoder_f RelevanceDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceDistance_H_ */ +#include diff --git a/vcits/cam/RelevanceTrafficDirection.h b/vcits/cam/RelevanceTrafficDirection.h new file mode 100644 index 0000000..19b90a6 --- /dev/null +++ b/vcits/cam/RelevanceTrafficDirection.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _RelevanceTrafficDirection_H_ +#define _RelevanceTrafficDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceTrafficDirection { + RelevanceTrafficDirection_allTrafficDirections = 0, + RelevanceTrafficDirection_upstreamTraffic = 1, + RelevanceTrafficDirection_downstreamTraffic = 2, + RelevanceTrafficDirection_oppositeTraffic = 3 +} e_RelevanceTrafficDirection; + +/* RelevanceTrafficDirection */ +typedef long RelevanceTrafficDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection; +asn_struct_free_f RelevanceTrafficDirection_free; +asn_struct_print_f RelevanceTrafficDirection_print; +asn_constr_check_f RelevanceTrafficDirection_constraint; +ber_type_decoder_f RelevanceTrafficDirection_decode_ber; +der_type_encoder_f RelevanceTrafficDirection_encode_der; +xer_type_decoder_f RelevanceTrafficDirection_decode_xer; +xer_type_encoder_f RelevanceTrafficDirection_encode_xer; +oer_type_decoder_f RelevanceTrafficDirection_decode_oer; +oer_type_encoder_f RelevanceTrafficDirection_encode_oer; +per_type_decoder_f RelevanceTrafficDirection_decode_uper; +per_type_encoder_f RelevanceTrafficDirection_encode_uper; +per_type_decoder_f RelevanceTrafficDirection_decode_aper; +per_type_encoder_f RelevanceTrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceTrafficDirection_H_ */ +#include diff --git a/vcits/cam/RequestResponseIndication.h b/vcits/cam/RequestResponseIndication.h new file mode 100644 index 0000000..655c267 --- /dev/null +++ b/vcits/cam/RequestResponseIndication.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _RequestResponseIndication_H_ +#define _RequestResponseIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestResponseIndication { + RequestResponseIndication_request = 0, + RequestResponseIndication_response = 1 +} e_RequestResponseIndication; + +/* RequestResponseIndication */ +typedef long RequestResponseIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication; +asn_struct_free_f RequestResponseIndication_free; +asn_struct_print_f RequestResponseIndication_print; +asn_constr_check_f RequestResponseIndication_constraint; +ber_type_decoder_f RequestResponseIndication_decode_ber; +der_type_encoder_f RequestResponseIndication_encode_der; +xer_type_decoder_f RequestResponseIndication_decode_xer; +xer_type_encoder_f RequestResponseIndication_encode_xer; +oer_type_decoder_f RequestResponseIndication_decode_oer; +oer_type_encoder_f RequestResponseIndication_encode_oer; +per_type_decoder_f RequestResponseIndication_decode_uper; +per_type_encoder_f RequestResponseIndication_encode_uper; +per_type_decoder_f RequestResponseIndication_decode_aper; +per_type_encoder_f RequestResponseIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestResponseIndication_H_ */ +#include diff --git a/vcits/cam/RescueAndRecoveryWorkInProgressSubCauseCode.h b/vcits/cam/RescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 0000000..50c3d1a --- /dev/null +++ b/vcits/cam/RescueAndRecoveryWorkInProgressSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _RescueAndRecoveryWorkInProgressSubCauseCode_H_ +#define _RescueAndRecoveryWorkInProgressSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RescueAndRecoveryWorkInProgressSubCauseCode { + RescueAndRecoveryWorkInProgressSubCauseCode_unavailable = 0, + RescueAndRecoveryWorkInProgressSubCauseCode_emergencyVehicles = 1, + RescueAndRecoveryWorkInProgressSubCauseCode_rescueHelicopterLanding = 2, + RescueAndRecoveryWorkInProgressSubCauseCode_policeActivityOngoing = 3, + RescueAndRecoveryWorkInProgressSubCauseCode_medicalEmergencyOngoing = 4, + RescueAndRecoveryWorkInProgressSubCauseCode_childAbductionInProgress = 5 +} e_RescueAndRecoveryWorkInProgressSubCauseCode; + +/* RescueAndRecoveryWorkInProgressSubCauseCode */ +typedef long RescueAndRecoveryWorkInProgressSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode; +asn_struct_free_f RescueAndRecoveryWorkInProgressSubCauseCode_free; +asn_struct_print_f RescueAndRecoveryWorkInProgressSubCauseCode_print; +asn_constr_check_f RescueAndRecoveryWorkInProgressSubCauseCode_constraint; +ber_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_ber; +der_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_der; +xer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_xer; +xer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_xer; +oer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_oer; +oer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_oer; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_uper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_uper; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_aper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RescueAndRecoveryWorkInProgressSubCauseCode_H_ */ +#include diff --git a/vcits/cam/RescueContainer.h b/vcits/cam/RescueContainer.h new file mode 100644 index 0000000..28c0021 --- /dev/null +++ b/vcits/cam/RescueContainer.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _RescueContainer_H_ +#define _RescueContainer_H_ + + +#include + +/* Including external dependencies */ +#include "LightBarSirenInUse.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RescueContainer */ +typedef struct RescueContainer { + LightBarSirenInUse_t lightBarSirenInUse; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RescueContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RescueContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_RescueContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_RescueContainer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RescueContainer_H_ */ +#include diff --git a/vcits/cam/RestrictedTypes.h b/vcits/cam/RestrictedTypes.h new file mode 100644 index 0000000..a4ee61b --- /dev/null +++ b/vcits/cam/RestrictedTypes.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _RestrictedTypes_H_ +#define _RestrictedTypes_H_ + + +#include + +/* Including external dependencies */ +#include "StationType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictedTypes */ +typedef struct RestrictedTypes { + A_SEQUENCE_OF(StationType_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictedTypes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictedTypes; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictedTypes_H_ */ +#include diff --git a/vcits/cam/RoadType.h b/vcits/cam/RoadType.h new file mode 100644 index 0000000..9551a5a --- /dev/null +++ b/vcits/cam/RoadType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _RoadType_H_ +#define _RoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadType { + RoadType_urban_NoStructuralSeparationToOppositeLanes = 0, + RoadType_urban_WithStructuralSeparationToOppositeLanes = 1, + RoadType_nonUrban_NoStructuralSeparationToOppositeLanes = 2, + RoadType_nonUrban_WithStructuralSeparationToOppositeLanes = 3 +} e_RoadType; + +/* RoadType */ +typedef long RoadType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadType; +asn_struct_free_f RoadType_free; +asn_struct_print_f RoadType_print; +asn_constr_check_f RoadType_constraint; +ber_type_decoder_f RoadType_decode_ber; +der_type_encoder_f RoadType_encode_der; +xer_type_decoder_f RoadType_decode_xer; +xer_type_encoder_f RoadType_encode_xer; +oer_type_decoder_f RoadType_decode_oer; +oer_type_encoder_f RoadType_encode_oer; +per_type_decoder_f RoadType_decode_uper; +per_type_encoder_f RoadType_encode_uper; +per_type_decoder_f RoadType_decode_aper; +per_type_encoder_f RoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadType_H_ */ +#include diff --git a/vcits/cam/RoadWorksContainerBasic.h b/vcits/cam/RoadWorksContainerBasic.h new file mode 100644 index 0000000..f3b3ac5 --- /dev/null +++ b/vcits/cam/RoadWorksContainerBasic.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _RoadWorksContainerBasic_H_ +#define _RoadWorksContainerBasic_H_ + + +#include + +/* Including external dependencies */ +#include "RoadworksSubCauseCode.h" +#include "LightBarSirenInUse.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ClosedLanes; + +/* RoadWorksContainerBasic */ +typedef struct RoadWorksContainerBasic { + RoadworksSubCauseCode_t *roadworksSubCauseCode; /* OPTIONAL */ + LightBarSirenInUse_t lightBarSirenInUse; + struct ClosedLanes *closedLanes; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadWorksContainerBasic_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadWorksContainerBasic; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadWorksContainerBasic_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadWorksContainerBasic_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadWorksContainerBasic_H_ */ +#include diff --git a/vcits/cam/RoadworksSubCauseCode.h b/vcits/cam/RoadworksSubCauseCode.h new file mode 100644 index 0000000..97fb882 --- /dev/null +++ b/vcits/cam/RoadworksSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _RoadworksSubCauseCode_H_ +#define _RoadworksSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadworksSubCauseCode { + RoadworksSubCauseCode_unavailable = 0, + RoadworksSubCauseCode_majorRoadworks = 1, + RoadworksSubCauseCode_roadMarkingWork = 2, + RoadworksSubCauseCode_slowMovingRoadMaintenance = 3, + RoadworksSubCauseCode_shortTermStationaryRoadworks = 4, + RoadworksSubCauseCode_streetCleaning = 5, + RoadworksSubCauseCode_winterService = 6 +} e_RoadworksSubCauseCode; + +/* RoadworksSubCauseCode */ +typedef long RoadworksSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadworksSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode; +asn_struct_free_f RoadworksSubCauseCode_free; +asn_struct_print_f RoadworksSubCauseCode_print; +asn_constr_check_f RoadworksSubCauseCode_constraint; +ber_type_decoder_f RoadworksSubCauseCode_decode_ber; +der_type_encoder_f RoadworksSubCauseCode_encode_der; +xer_type_decoder_f RoadworksSubCauseCode_decode_xer; +xer_type_encoder_f RoadworksSubCauseCode_encode_xer; +oer_type_decoder_f RoadworksSubCauseCode_decode_oer; +oer_type_encoder_f RoadworksSubCauseCode_encode_oer; +per_type_decoder_f RoadworksSubCauseCode_decode_uper; +per_type_encoder_f RoadworksSubCauseCode_encode_uper; +per_type_decoder_f RoadworksSubCauseCode_decode_aper; +per_type_encoder_f RoadworksSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadworksSubCauseCode_H_ */ +#include diff --git a/vcits/cam/SafetyCarContainer.h b/vcits/cam/SafetyCarContainer.h new file mode 100644 index 0000000..c15986c --- /dev/null +++ b/vcits/cam/SafetyCarContainer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SafetyCarContainer_H_ +#define _SafetyCarContainer_H_ + + +#include + +/* Including external dependencies */ +#include "LightBarSirenInUse.h" +#include "TrafficRule.h" +#include "SpeedLimit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CauseCode; + +/* SafetyCarContainer */ +typedef struct SafetyCarContainer { + LightBarSirenInUse_t lightBarSirenInUse; + struct CauseCode *incidentIndication; /* OPTIONAL */ + TrafficRule_t *trafficRule; /* OPTIONAL */ + SpeedLimit_t *speedLimit; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SafetyCarContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SafetyCarContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_SafetyCarContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_SafetyCarContainer_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SafetyCarContainer_H_ */ +#include diff --git a/vcits/cam/SemiAxisLength.h b/vcits/cam/SemiAxisLength.h new file mode 100644 index 0000000..884e6bd --- /dev/null +++ b/vcits/cam/SemiAxisLength.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SemiAxisLength_H_ +#define _SemiAxisLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SemiAxisLength { + SemiAxisLength_oneCentimeter = 1, + SemiAxisLength_outOfRange = 4094, + SemiAxisLength_unavailable = 4095 +} e_SemiAxisLength; + +/* SemiAxisLength */ +typedef long SemiAxisLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiAxisLength; +asn_struct_free_f SemiAxisLength_free; +asn_struct_print_f SemiAxisLength_print; +asn_constr_check_f SemiAxisLength_constraint; +ber_type_decoder_f SemiAxisLength_decode_ber; +der_type_encoder_f SemiAxisLength_encode_der; +xer_type_decoder_f SemiAxisLength_decode_xer; +xer_type_encoder_f SemiAxisLength_encode_xer; +oer_type_decoder_f SemiAxisLength_decode_oer; +oer_type_encoder_f SemiAxisLength_encode_oer; +per_type_decoder_f SemiAxisLength_decode_uper; +per_type_encoder_f SemiAxisLength_encode_uper; +per_type_decoder_f SemiAxisLength_decode_aper; +per_type_encoder_f SemiAxisLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiAxisLength_H_ */ +#include diff --git a/vcits/cam/SequenceNumber.h b/vcits/cam/SequenceNumber.h new file mode 100644 index 0000000..80411c7 --- /dev/null +++ b/vcits/cam/SequenceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SequenceNumber_H_ +#define _SequenceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SequenceNumber */ +typedef long SequenceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SequenceNumber; +asn_struct_free_f SequenceNumber_free; +asn_struct_print_f SequenceNumber_print; +asn_constr_check_f SequenceNumber_constraint; +ber_type_decoder_f SequenceNumber_decode_ber; +der_type_encoder_f SequenceNumber_encode_der; +xer_type_decoder_f SequenceNumber_decode_xer; +xer_type_encoder_f SequenceNumber_encode_xer; +oer_type_decoder_f SequenceNumber_decode_oer; +oer_type_encoder_f SequenceNumber_encode_oer; +per_type_decoder_f SequenceNumber_decode_uper; +per_type_encoder_f SequenceNumber_encode_uper; +per_type_decoder_f SequenceNumber_decode_aper; +per_type_encoder_f SequenceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SequenceNumber_H_ */ +#include diff --git a/vcits/cam/SignalViolationSubCauseCode.h b/vcits/cam/SignalViolationSubCauseCode.h new file mode 100644 index 0000000..8f8c5db --- /dev/null +++ b/vcits/cam/SignalViolationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SignalViolationSubCauseCode_H_ +#define _SignalViolationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SignalViolationSubCauseCode { + SignalViolationSubCauseCode_unavailable = 0, + SignalViolationSubCauseCode_stopSignViolation = 1, + SignalViolationSubCauseCode_trafficLightViolation = 2, + SignalViolationSubCauseCode_turningRegulationViolation = 3 +} e_SignalViolationSubCauseCode; + +/* SignalViolationSubCauseCode */ +typedef long SignalViolationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode; +asn_struct_free_f SignalViolationSubCauseCode_free; +asn_struct_print_f SignalViolationSubCauseCode_print; +asn_constr_check_f SignalViolationSubCauseCode_constraint; +ber_type_decoder_f SignalViolationSubCauseCode_decode_ber; +der_type_encoder_f SignalViolationSubCauseCode_encode_der; +xer_type_decoder_f SignalViolationSubCauseCode_decode_xer; +xer_type_encoder_f SignalViolationSubCauseCode_encode_xer; +oer_type_decoder_f SignalViolationSubCauseCode_decode_oer; +oer_type_encoder_f SignalViolationSubCauseCode_encode_oer; +per_type_decoder_f SignalViolationSubCauseCode_decode_uper; +per_type_encoder_f SignalViolationSubCauseCode_encode_uper; +per_type_decoder_f SignalViolationSubCauseCode_decode_aper; +per_type_encoder_f SignalViolationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalViolationSubCauseCode_H_ */ +#include diff --git a/vcits/cam/SlowVehicleSubCauseCode.h b/vcits/cam/SlowVehicleSubCauseCode.h new file mode 100644 index 0000000..90dd7e0 --- /dev/null +++ b/vcits/cam/SlowVehicleSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SlowVehicleSubCauseCode_H_ +#define _SlowVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SlowVehicleSubCauseCode { + SlowVehicleSubCauseCode_unavailable = 0, + SlowVehicleSubCauseCode_maintenanceVehicle = 1, + SlowVehicleSubCauseCode_vehiclesSlowingToLookAtAccident = 2, + SlowVehicleSubCauseCode_abnormalLoad = 3, + SlowVehicleSubCauseCode_abnormalWideLoad = 4, + SlowVehicleSubCauseCode_convoy = 5, + SlowVehicleSubCauseCode_snowplough = 6, + SlowVehicleSubCauseCode_deicing = 7, + SlowVehicleSubCauseCode_saltingVehicles = 8 +} e_SlowVehicleSubCauseCode; + +/* SlowVehicleSubCauseCode */ +typedef long SlowVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode; +asn_struct_free_f SlowVehicleSubCauseCode_free; +asn_struct_print_f SlowVehicleSubCauseCode_print; +asn_constr_check_f SlowVehicleSubCauseCode_constraint; +ber_type_decoder_f SlowVehicleSubCauseCode_decode_ber; +der_type_encoder_f SlowVehicleSubCauseCode_encode_der; +xer_type_decoder_f SlowVehicleSubCauseCode_decode_xer; +xer_type_encoder_f SlowVehicleSubCauseCode_encode_xer; +oer_type_decoder_f SlowVehicleSubCauseCode_decode_oer; +oer_type_encoder_f SlowVehicleSubCauseCode_encode_oer; +per_type_decoder_f SlowVehicleSubCauseCode_decode_uper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_uper; +per_type_decoder_f SlowVehicleSubCauseCode_decode_aper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SlowVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/cam/SpecialTransportContainer.h b/vcits/cam/SpecialTransportContainer.h new file mode 100644 index 0000000..294c7bc --- /dev/null +++ b/vcits/cam/SpecialTransportContainer.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SpecialTransportContainer_H_ +#define _SpecialTransportContainer_H_ + + +#include + +/* Including external dependencies */ +#include "SpecialTransportType.h" +#include "LightBarSirenInUse.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpecialTransportContainer */ +typedef struct SpecialTransportContainer { + SpecialTransportType_t specialTransportType; + LightBarSirenInUse_t lightBarSirenInUse; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpecialTransportContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpecialTransportContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_SpecialTransportContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_SpecialTransportContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpecialTransportContainer_H_ */ +#include diff --git a/vcits/cam/SpecialTransportType.h b/vcits/cam/SpecialTransportType.h new file mode 100644 index 0000000..7786414 --- /dev/null +++ b/vcits/cam/SpecialTransportType.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SpecialTransportType_H_ +#define _SpecialTransportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpecialTransportType { + SpecialTransportType_heavyLoad = 0, + SpecialTransportType_excessWidth = 1, + SpecialTransportType_excessLength = 2, + SpecialTransportType_excessHeight = 3 +} e_SpecialTransportType; + +/* SpecialTransportType */ +typedef BIT_STRING_t SpecialTransportType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpecialTransportType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpecialTransportType; +asn_struct_free_f SpecialTransportType_free; +asn_struct_print_f SpecialTransportType_print; +asn_constr_check_f SpecialTransportType_constraint; +ber_type_decoder_f SpecialTransportType_decode_ber; +der_type_encoder_f SpecialTransportType_encode_der; +xer_type_decoder_f SpecialTransportType_decode_xer; +xer_type_encoder_f SpecialTransportType_encode_xer; +oer_type_decoder_f SpecialTransportType_decode_oer; +oer_type_encoder_f SpecialTransportType_encode_oer; +per_type_decoder_f SpecialTransportType_decode_uper; +per_type_encoder_f SpecialTransportType_encode_uper; +per_type_decoder_f SpecialTransportType_decode_aper; +per_type_encoder_f SpecialTransportType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpecialTransportType_H_ */ +#include diff --git a/vcits/cam/SpecialVehicleContainer.h b/vcits/cam/SpecialVehicleContainer.h new file mode 100644 index 0000000..595dce2 --- /dev/null +++ b/vcits/cam/SpecialVehicleContainer.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SpecialVehicleContainer_H_ +#define _SpecialVehicleContainer_H_ + + +#include + +/* Including external dependencies */ +#include "PublicTransportContainer.h" +#include "SpecialTransportContainer.h" +#include "DangerousGoodsContainer.h" +#include "RoadWorksContainerBasic.h" +#include "RescueContainer.h" +#include "EmergencyContainer.h" +#include "SafetyCarContainer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpecialVehicleContainer_PR { + SpecialVehicleContainer_PR_NOTHING, /* No components present */ + SpecialVehicleContainer_PR_publicTransportContainer, + SpecialVehicleContainer_PR_specialTransportContainer, + SpecialVehicleContainer_PR_dangerousGoodsContainer, + SpecialVehicleContainer_PR_roadWorksContainerBasic, + SpecialVehicleContainer_PR_rescueContainer, + SpecialVehicleContainer_PR_emergencyContainer, + SpecialVehicleContainer_PR_safetyCarContainer + /* Extensions may appear below */ + +} SpecialVehicleContainer_PR; + +/* SpecialVehicleContainer */ +typedef struct SpecialVehicleContainer { + SpecialVehicleContainer_PR present; + union SpecialVehicleContainer_u { + PublicTransportContainer_t publicTransportContainer; + SpecialTransportContainer_t specialTransportContainer; + DangerousGoodsContainer_t dangerousGoodsContainer; + RoadWorksContainerBasic_t roadWorksContainerBasic; + RescueContainer_t rescueContainer; + EmergencyContainer_t emergencyContainer; + SafetyCarContainer_t safetyCarContainer; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpecialVehicleContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpecialVehicleContainer; +extern asn_CHOICE_specifics_t asn_SPC_SpecialVehicleContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_SpecialVehicleContainer_1[7]; +extern asn_per_constraints_t asn_PER_type_SpecialVehicleContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpecialVehicleContainer_H_ */ +#include diff --git a/vcits/cam/Speed.h b/vcits/cam/Speed.h new file mode 100644 index 0000000..cba8b52 --- /dev/null +++ b/vcits/cam/Speed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _Speed_H_ +#define _Speed_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedValue.h" +#include "SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Speed */ +typedef struct Speed { + SpeedValue_t speedValue; + SpeedConfidence_t speedConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Speed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Speed; +extern asn_SEQUENCE_specifics_t asn_SPC_Speed_specs_1; +extern asn_TYPE_member_t asn_MBR_Speed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Speed_H_ */ +#include diff --git a/vcits/cam/SpeedConfidence.h b/vcits/cam/SpeedConfidence.h new file mode 100644 index 0000000..1192ab0 --- /dev/null +++ b/vcits/cam/SpeedConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SpeedConfidence_H_ +#define _SpeedConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidence { + SpeedConfidence_equalOrWithinOneCentimeterPerSec = 1, + SpeedConfidence_equalOrWithinOneMeterPerSec = 100, + SpeedConfidence_outOfRange = 126, + SpeedConfidence_unavailable = 127 +} e_SpeedConfidence; + +/* SpeedConfidence */ +typedef long SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidence; +asn_struct_free_f SpeedConfidence_free; +asn_struct_print_f SpeedConfidence_print; +asn_constr_check_f SpeedConfidence_constraint; +ber_type_decoder_f SpeedConfidence_decode_ber; +der_type_encoder_f SpeedConfidence_encode_der; +xer_type_decoder_f SpeedConfidence_decode_xer; +xer_type_encoder_f SpeedConfidence_encode_xer; +oer_type_decoder_f SpeedConfidence_decode_oer; +oer_type_encoder_f SpeedConfidence_encode_oer; +per_type_decoder_f SpeedConfidence_decode_uper; +per_type_encoder_f SpeedConfidence_encode_uper; +per_type_decoder_f SpeedConfidence_decode_aper; +per_type_encoder_f SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidence_H_ */ +#include diff --git a/vcits/cam/SpeedLimit.h b/vcits/cam/SpeedLimit.h new file mode 100644 index 0000000..f8a1305 --- /dev/null +++ b/vcits/cam/SpeedLimit.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SpeedLimit_H_ +#define _SpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimit { + SpeedLimit_oneKmPerHour = 1 +} e_SpeedLimit; + +/* SpeedLimit */ +typedef long SpeedLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimit; +asn_struct_free_f SpeedLimit_free; +asn_struct_print_f SpeedLimit_print; +asn_constr_check_f SpeedLimit_constraint; +ber_type_decoder_f SpeedLimit_decode_ber; +der_type_encoder_f SpeedLimit_encode_der; +xer_type_decoder_f SpeedLimit_decode_xer; +xer_type_encoder_f SpeedLimit_encode_xer; +oer_type_decoder_f SpeedLimit_decode_oer; +oer_type_encoder_f SpeedLimit_encode_oer; +per_type_decoder_f SpeedLimit_decode_uper; +per_type_encoder_f SpeedLimit_encode_uper; +per_type_decoder_f SpeedLimit_decode_aper; +per_type_encoder_f SpeedLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimit_H_ */ +#include diff --git a/vcits/cam/SpeedValue.h b/vcits/cam/SpeedValue.h new file mode 100644 index 0000000..ad340a6 --- /dev/null +++ b/vcits/cam/SpeedValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SpeedValue_H_ +#define _SpeedValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedValue { + SpeedValue_standstill = 0, + SpeedValue_oneCentimeterPerSec = 1, + SpeedValue_unavailable = 16383 +} e_SpeedValue; + +/* SpeedValue */ +typedef long SpeedValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedValue; +asn_struct_free_f SpeedValue_free; +asn_struct_print_f SpeedValue_print; +asn_constr_check_f SpeedValue_constraint; +ber_type_decoder_f SpeedValue_decode_ber; +der_type_encoder_f SpeedValue_encode_der; +xer_type_decoder_f SpeedValue_decode_xer; +xer_type_encoder_f SpeedValue_encode_xer; +oer_type_decoder_f SpeedValue_decode_oer; +oer_type_encoder_f SpeedValue_encode_oer; +per_type_decoder_f SpeedValue_decode_uper; +per_type_encoder_f SpeedValue_encode_uper; +per_type_decoder_f SpeedValue_decode_aper; +per_type_encoder_f SpeedValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedValue_H_ */ +#include diff --git a/vcits/cam/StationID.h b/vcits/cam/StationID.h new file mode 100644 index 0000000..e84d672 --- /dev/null +++ b/vcits/cam/StationID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _StationID_H_ +#define _StationID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* StationID */ +typedef unsigned long StationID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationID; +extern const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1; +asn_struct_free_f StationID_free; +asn_struct_print_f StationID_print; +asn_constr_check_f StationID_constraint; +ber_type_decoder_f StationID_decode_ber; +der_type_encoder_f StationID_encode_der; +xer_type_decoder_f StationID_decode_xer; +xer_type_encoder_f StationID_encode_xer; +oer_type_decoder_f StationID_decode_oer; +oer_type_encoder_f StationID_encode_oer; +per_type_decoder_f StationID_decode_uper; +per_type_encoder_f StationID_encode_uper; +per_type_decoder_f StationID_decode_aper; +per_type_encoder_f StationID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationID_H_ */ +#include diff --git a/vcits/cam/StationType.h b/vcits/cam/StationType.h new file mode 100644 index 0000000..1e9d1cf --- /dev/null +++ b/vcits/cam/StationType.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _StationType_H_ +#define _StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationType { + StationType_unknown = 0, + StationType_pedestrian = 1, + StationType_cyclist = 2, + StationType_moped = 3, + StationType_motorcycle = 4, + StationType_passengerCar = 5, + StationType_bus = 6, + StationType_lightTruck = 7, + StationType_heavyTruck = 8, + StationType_trailer = 9, + StationType_specialVehicles = 10, + StationType_tram = 11, + StationType_roadSideUnit = 15 +} e_StationType; + +/* StationType */ +typedef long StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationType; +asn_struct_free_f StationType_free; +asn_struct_print_f StationType_print; +asn_constr_check_f StationType_constraint; +ber_type_decoder_f StationType_decode_ber; +der_type_encoder_f StationType_encode_der; +xer_type_decoder_f StationType_decode_xer; +xer_type_encoder_f StationType_encode_xer; +oer_type_decoder_f StationType_decode_oer; +oer_type_encoder_f StationType_encode_oer; +per_type_decoder_f StationType_decode_uper; +per_type_encoder_f StationType_encode_uper; +per_type_decoder_f StationType_decode_aper; +per_type_encoder_f StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationType_H_ */ +#include diff --git a/vcits/cam/StationarySince.h b/vcits/cam/StationarySince.h new file mode 100644 index 0000000..f92e9af --- /dev/null +++ b/vcits/cam/StationarySince.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _StationarySince_H_ +#define _StationarySince_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationarySince { + StationarySince_lessThan1Minute = 0, + StationarySince_lessThan2Minutes = 1, + StationarySince_lessThan15Minutes = 2, + StationarySince_equalOrGreater15Minutes = 3 +} e_StationarySince; + +/* StationarySince */ +typedef long StationarySince_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationarySince; +asn_struct_free_f StationarySince_free; +asn_struct_print_f StationarySince_print; +asn_constr_check_f StationarySince_constraint; +ber_type_decoder_f StationarySince_decode_ber; +der_type_encoder_f StationarySince_encode_der; +xer_type_decoder_f StationarySince_decode_xer; +xer_type_encoder_f StationarySince_encode_xer; +oer_type_decoder_f StationarySince_decode_oer; +oer_type_encoder_f StationarySince_encode_oer; +per_type_decoder_f StationarySince_decode_uper; +per_type_encoder_f StationarySince_encode_uper; +per_type_decoder_f StationarySince_decode_aper; +per_type_encoder_f StationarySince_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationarySince_H_ */ +#include diff --git a/vcits/cam/StationaryVehicleSubCauseCode.h b/vcits/cam/StationaryVehicleSubCauseCode.h new file mode 100644 index 0000000..7af6459 --- /dev/null +++ b/vcits/cam/StationaryVehicleSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _StationaryVehicleSubCauseCode_H_ +#define _StationaryVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationaryVehicleSubCauseCode { + StationaryVehicleSubCauseCode_unavailable = 0, + StationaryVehicleSubCauseCode_humanProblem = 1, + StationaryVehicleSubCauseCode_vehicleBreakdown = 2, + StationaryVehicleSubCauseCode_postCrash = 3, + StationaryVehicleSubCauseCode_publicTransportStop = 4, + StationaryVehicleSubCauseCode_carryingDangerousGoods = 5 +} e_StationaryVehicleSubCauseCode; + +/* StationaryVehicleSubCauseCode */ +typedef long StationaryVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode; +asn_struct_free_f StationaryVehicleSubCauseCode_free; +asn_struct_print_f StationaryVehicleSubCauseCode_print; +asn_constr_check_f StationaryVehicleSubCauseCode_constraint; +ber_type_decoder_f StationaryVehicleSubCauseCode_decode_ber; +der_type_encoder_f StationaryVehicleSubCauseCode_encode_der; +xer_type_decoder_f StationaryVehicleSubCauseCode_decode_xer; +xer_type_encoder_f StationaryVehicleSubCauseCode_encode_xer; +oer_type_decoder_f StationaryVehicleSubCauseCode_decode_oer; +oer_type_encoder_f StationaryVehicleSubCauseCode_encode_oer; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_uper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_uper; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_aper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationaryVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/cam/SteeringWheelAngle.h b/vcits/cam/SteeringWheelAngle.h new file mode 100644 index 0000000..f1036d2 --- /dev/null +++ b/vcits/cam/SteeringWheelAngle.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SteeringWheelAngle_H_ +#define _SteeringWheelAngle_H_ + + +#include + +/* Including external dependencies */ +#include "SteeringWheelAngleValue.h" +#include "SteeringWheelAngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SteeringWheelAngle */ +typedef struct SteeringWheelAngle { + SteeringWheelAngleValue_t steeringWheelAngleValue; + SteeringWheelAngleConfidence_t steeringWheelAngleConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SteeringWheelAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle; +extern asn_SEQUENCE_specifics_t asn_SPC_SteeringWheelAngle_specs_1; +extern asn_TYPE_member_t asn_MBR_SteeringWheelAngle_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngle_H_ */ +#include diff --git a/vcits/cam/SteeringWheelAngleConfidence.h b/vcits/cam/SteeringWheelAngleConfidence.h new file mode 100644 index 0000000..bf22917 --- /dev/null +++ b/vcits/cam/SteeringWheelAngleConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SteeringWheelAngleConfidence_H_ +#define _SteeringWheelAngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleConfidence { + SteeringWheelAngleConfidence_equalOrWithinOnePointFiveDegree = 1, + SteeringWheelAngleConfidence_outOfRange = 126, + SteeringWheelAngleConfidence_unavailable = 127 +} e_SteeringWheelAngleConfidence; + +/* SteeringWheelAngleConfidence */ +typedef long SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence; +asn_struct_free_f SteeringWheelAngleConfidence_free; +asn_struct_print_f SteeringWheelAngleConfidence_print; +asn_constr_check_f SteeringWheelAngleConfidence_constraint; +ber_type_decoder_f SteeringWheelAngleConfidence_decode_ber; +der_type_encoder_f SteeringWheelAngleConfidence_encode_der; +xer_type_decoder_f SteeringWheelAngleConfidence_decode_xer; +xer_type_encoder_f SteeringWheelAngleConfidence_encode_xer; +oer_type_decoder_f SteeringWheelAngleConfidence_decode_oer; +oer_type_encoder_f SteeringWheelAngleConfidence_encode_oer; +per_type_decoder_f SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleConfidence_H_ */ +#include diff --git a/vcits/cam/SteeringWheelAngleValue.h b/vcits/cam/SteeringWheelAngleValue.h new file mode 100644 index 0000000..88dea8d --- /dev/null +++ b/vcits/cam/SteeringWheelAngleValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SteeringWheelAngleValue_H_ +#define _SteeringWheelAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleValue { + SteeringWheelAngleValue_straight = 0, + SteeringWheelAngleValue_onePointFiveDegreesToRight = -1, + SteeringWheelAngleValue_onePointFiveDegreesToLeft = 1, + SteeringWheelAngleValue_unavailable = 512 +} e_SteeringWheelAngleValue; + +/* SteeringWheelAngleValue */ +typedef long SteeringWheelAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue; +asn_struct_free_f SteeringWheelAngleValue_free; +asn_struct_print_f SteeringWheelAngleValue_print; +asn_constr_check_f SteeringWheelAngleValue_constraint; +ber_type_decoder_f SteeringWheelAngleValue_decode_ber; +der_type_encoder_f SteeringWheelAngleValue_encode_der; +xer_type_decoder_f SteeringWheelAngleValue_decode_xer; +xer_type_encoder_f SteeringWheelAngleValue_encode_xer; +oer_type_decoder_f SteeringWheelAngleValue_decode_oer; +oer_type_encoder_f SteeringWheelAngleValue_encode_oer; +per_type_decoder_f SteeringWheelAngleValue_decode_uper; +per_type_encoder_f SteeringWheelAngleValue_encode_uper; +per_type_decoder_f SteeringWheelAngleValue_decode_aper; +per_type_encoder_f SteeringWheelAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleValue_H_ */ +#include diff --git a/vcits/cam/SubCauseCodeType.h b/vcits/cam/SubCauseCodeType.h new file mode 100644 index 0000000..db6c4d2 --- /dev/null +++ b/vcits/cam/SubCauseCodeType.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _SubCauseCodeType_H_ +#define _SubCauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SubCauseCodeType */ +typedef long SubCauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType; +asn_struct_free_f SubCauseCodeType_free; +asn_struct_print_f SubCauseCodeType_print; +asn_constr_check_f SubCauseCodeType_constraint; +ber_type_decoder_f SubCauseCodeType_decode_ber; +der_type_encoder_f SubCauseCodeType_encode_der; +xer_type_decoder_f SubCauseCodeType_decode_xer; +xer_type_encoder_f SubCauseCodeType_encode_xer; +oer_type_decoder_f SubCauseCodeType_decode_oer; +oer_type_encoder_f SubCauseCodeType_encode_oer; +per_type_decoder_f SubCauseCodeType_decode_uper; +per_type_encoder_f SubCauseCodeType_encode_uper; +per_type_decoder_f SubCauseCodeType_decode_aper; +per_type_encoder_f SubCauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SubCauseCodeType_H_ */ +#include diff --git a/vcits/cam/Temperature.h b/vcits/cam/Temperature.h new file mode 100644 index 0000000..55e243e --- /dev/null +++ b/vcits/cam/Temperature.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _Temperature_H_ +#define _Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Temperature { + Temperature_equalOrSmallerThanMinus60Deg = -60, + Temperature_oneDegreeCelsius = 1, + Temperature_equalOrGreaterThan67Deg = 67 +} e_Temperature; + +/* Temperature */ +typedef long Temperature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Temperature; +asn_struct_free_f Temperature_free; +asn_struct_print_f Temperature_print; +asn_constr_check_f Temperature_constraint; +ber_type_decoder_f Temperature_decode_ber; +der_type_encoder_f Temperature_encode_der; +xer_type_decoder_f Temperature_decode_xer; +xer_type_encoder_f Temperature_encode_xer; +oer_type_decoder_f Temperature_decode_oer; +oer_type_encoder_f Temperature_encode_oer; +per_type_decoder_f Temperature_decode_uper; +per_type_encoder_f Temperature_encode_uper; +per_type_decoder_f Temperature_decode_aper; +per_type_encoder_f Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Temperature_H_ */ +#include diff --git a/vcits/cam/TimestampIts.h b/vcits/cam/TimestampIts.h new file mode 100644 index 0000000..9821787 --- /dev/null +++ b/vcits/cam/TimestampIts.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _TimestampIts_H_ +#define _TimestampIts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimestampIts { + TimestampIts_utcStartOf2004 = 0, + TimestampIts_oneMillisecAfterUTCStartOf2004 = 1 +} e_TimestampIts; + +/* TimestampIts */ +typedef INTEGER_t TimestampIts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimestampIts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimestampIts; +asn_struct_free_f TimestampIts_free; +asn_struct_print_f TimestampIts_print; +asn_constr_check_f TimestampIts_constraint; +ber_type_decoder_f TimestampIts_decode_ber; +der_type_encoder_f TimestampIts_encode_der; +xer_type_decoder_f TimestampIts_decode_xer; +xer_type_encoder_f TimestampIts_encode_xer; +oer_type_decoder_f TimestampIts_decode_oer; +oer_type_encoder_f TimestampIts_encode_oer; +per_type_decoder_f TimestampIts_decode_uper; +per_type_encoder_f TimestampIts_encode_uper; +per_type_decoder_f TimestampIts_decode_aper; +per_type_encoder_f TimestampIts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimestampIts_H_ */ +#include diff --git a/vcits/cam/Traces.h b/vcits/cam/Traces.h new file mode 100644 index 0000000..87c6153 --- /dev/null +++ b/vcits/cam/Traces.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _Traces_H_ +#define _Traces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathHistory; + +/* Traces */ +typedef struct Traces { + A_SEQUENCE_OF(struct PathHistory) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Traces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Traces; + +#ifdef __cplusplus +} +#endif + +#endif /* _Traces_H_ */ +#include diff --git a/vcits/cam/TrafficConditionSubCauseCode.h b/vcits/cam/TrafficConditionSubCauseCode.h new file mode 100644 index 0000000..094139e --- /dev/null +++ b/vcits/cam/TrafficConditionSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _TrafficConditionSubCauseCode_H_ +#define _TrafficConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficConditionSubCauseCode { + TrafficConditionSubCauseCode_unavailable = 0, + TrafficConditionSubCauseCode_increasedVolumeOfTraffic = 1, + TrafficConditionSubCauseCode_trafficJamSlowlyIncreasing = 2, + TrafficConditionSubCauseCode_trafficJamIncreasing = 3, + TrafficConditionSubCauseCode_trafficJamStronglyIncreasing = 4, + TrafficConditionSubCauseCode_trafficStationary = 5, + TrafficConditionSubCauseCode_trafficJamSlightlyDecreasing = 6, + TrafficConditionSubCauseCode_trafficJamDecreasing = 7, + TrafficConditionSubCauseCode_trafficJamStronglyDecreasing = 8 +} e_TrafficConditionSubCauseCode; + +/* TrafficConditionSubCauseCode */ +typedef long TrafficConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode; +asn_struct_free_f TrafficConditionSubCauseCode_free; +asn_struct_print_f TrafficConditionSubCauseCode_print; +asn_constr_check_f TrafficConditionSubCauseCode_constraint; +ber_type_decoder_f TrafficConditionSubCauseCode_decode_ber; +der_type_encoder_f TrafficConditionSubCauseCode_encode_der; +xer_type_decoder_f TrafficConditionSubCauseCode_decode_xer; +xer_type_encoder_f TrafficConditionSubCauseCode_encode_xer; +oer_type_decoder_f TrafficConditionSubCauseCode_decode_oer; +oer_type_encoder_f TrafficConditionSubCauseCode_encode_oer; +per_type_decoder_f TrafficConditionSubCauseCode_decode_uper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_uper; +per_type_decoder_f TrafficConditionSubCauseCode_decode_aper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficConditionSubCauseCode_H_ */ +#include diff --git a/vcits/cam/TrafficRule.h b/vcits/cam/TrafficRule.h new file mode 100644 index 0000000..0530bbb --- /dev/null +++ b/vcits/cam/TrafficRule.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _TrafficRule_H_ +#define _TrafficRule_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficRule { + TrafficRule_noPassing = 0, + TrafficRule_noPassingForTrucks = 1, + TrafficRule_passToRight = 2, + TrafficRule_passToLeft = 3 + /* + * Enumeration is extensible + */ +} e_TrafficRule; + +/* TrafficRule */ +typedef long TrafficRule_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TrafficRule_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TrafficRule; +extern const asn_INTEGER_specifics_t asn_SPC_TrafficRule_specs_1; +asn_struct_free_f TrafficRule_free; +asn_struct_print_f TrafficRule_print; +asn_constr_check_f TrafficRule_constraint; +ber_type_decoder_f TrafficRule_decode_ber; +der_type_encoder_f TrafficRule_encode_der; +xer_type_decoder_f TrafficRule_decode_xer; +xer_type_encoder_f TrafficRule_encode_xer; +oer_type_decoder_f TrafficRule_decode_oer; +oer_type_encoder_f TrafficRule_encode_oer; +per_type_decoder_f TrafficRule_decode_uper; +per_type_encoder_f TrafficRule_encode_uper; +per_type_decoder_f TrafficRule_decode_aper; +per_type_encoder_f TrafficRule_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficRule_H_ */ +#include diff --git a/vcits/cam/TransmissionInterval.h b/vcits/cam/TransmissionInterval.h new file mode 100644 index 0000000..99e4d69 --- /dev/null +++ b/vcits/cam/TransmissionInterval.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _TransmissionInterval_H_ +#define _TransmissionInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionInterval { + TransmissionInterval_oneMilliSecond = 1, + TransmissionInterval_tenSeconds = 10000 +} e_TransmissionInterval; + +/* TransmissionInterval */ +typedef long TransmissionInterval_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionInterval; +asn_struct_free_f TransmissionInterval_free; +asn_struct_print_f TransmissionInterval_print; +asn_constr_check_f TransmissionInterval_constraint; +ber_type_decoder_f TransmissionInterval_decode_ber; +der_type_encoder_f TransmissionInterval_encode_der; +xer_type_decoder_f TransmissionInterval_decode_xer; +xer_type_encoder_f TransmissionInterval_encode_xer; +oer_type_decoder_f TransmissionInterval_decode_oer; +oer_type_encoder_f TransmissionInterval_encode_oer; +per_type_decoder_f TransmissionInterval_decode_uper; +per_type_encoder_f TransmissionInterval_encode_uper; +per_type_decoder_f TransmissionInterval_decode_aper; +per_type_encoder_f TransmissionInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionInterval_H_ */ +#include diff --git a/vcits/cam/TurningRadius.h b/vcits/cam/TurningRadius.h new file mode 100644 index 0000000..add559e --- /dev/null +++ b/vcits/cam/TurningRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _TurningRadius_H_ +#define _TurningRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TurningRadius { + TurningRadius_point4Meters = 1, + TurningRadius_unavailable = 255 +} e_TurningRadius; + +/* TurningRadius */ +typedef long TurningRadius_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TurningRadius; +asn_struct_free_f TurningRadius_free; +asn_struct_print_f TurningRadius_print; +asn_constr_check_f TurningRadius_constraint; +ber_type_decoder_f TurningRadius_decode_ber; +der_type_encoder_f TurningRadius_encode_der; +xer_type_decoder_f TurningRadius_decode_xer; +xer_type_encoder_f TurningRadius_encode_xer; +oer_type_decoder_f TurningRadius_decode_oer; +oer_type_encoder_f TurningRadius_encode_oer; +per_type_decoder_f TurningRadius_decode_uper; +per_type_encoder_f TurningRadius_encode_uper; +per_type_decoder_f TurningRadius_decode_aper; +per_type_encoder_f TurningRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TurningRadius_H_ */ +#include diff --git a/vcits/cam/VDS.h b/vcits/cam/VDS.h new file mode 100644 index 0000000..b3d545d --- /dev/null +++ b/vcits/cam/VDS.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _VDS_H_ +#define _VDS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VDS */ +typedef IA5String_t VDS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VDS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VDS; +asn_struct_free_f VDS_free; +asn_struct_print_f VDS_print; +asn_constr_check_f VDS_constraint; +ber_type_decoder_f VDS_decode_ber; +der_type_encoder_f VDS_encode_der; +xer_type_decoder_f VDS_decode_xer; +xer_type_encoder_f VDS_encode_xer; +oer_type_decoder_f VDS_decode_oer; +oer_type_encoder_f VDS_encode_oer; +per_type_decoder_f VDS_decode_uper; +per_type_encoder_f VDS_encode_uper; +per_type_decoder_f VDS_decode_aper; +per_type_encoder_f VDS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VDS_H_ */ +#include diff --git a/vcits/cam/ValidityDuration.h b/vcits/cam/ValidityDuration.h new file mode 100644 index 0000000..bac9065 --- /dev/null +++ b/vcits/cam/ValidityDuration.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _ValidityDuration_H_ +#define _ValidityDuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ValidityDuration { + ValidityDuration_timeOfDetection = 0, + ValidityDuration_oneSecondAfterDetection = 1 +} e_ValidityDuration; + +/* ValidityDuration */ +typedef long ValidityDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ValidityDuration; +asn_struct_free_f ValidityDuration_free; +asn_struct_print_f ValidityDuration_print; +asn_constr_check_f ValidityDuration_constraint; +ber_type_decoder_f ValidityDuration_decode_ber; +der_type_encoder_f ValidityDuration_encode_der; +xer_type_decoder_f ValidityDuration_decode_xer; +xer_type_encoder_f ValidityDuration_encode_xer; +oer_type_decoder_f ValidityDuration_decode_oer; +oer_type_encoder_f ValidityDuration_encode_oer; +per_type_decoder_f ValidityDuration_decode_uper; +per_type_encoder_f ValidityDuration_encode_uper; +per_type_decoder_f ValidityDuration_decode_aper; +per_type_encoder_f ValidityDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ValidityDuration_H_ */ +#include diff --git a/vcits/cam/VehicleBreakdownSubCauseCode.h b/vcits/cam/VehicleBreakdownSubCauseCode.h new file mode 100644 index 0000000..427f118 --- /dev/null +++ b/vcits/cam/VehicleBreakdownSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _VehicleBreakdownSubCauseCode_H_ +#define _VehicleBreakdownSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleBreakdownSubCauseCode { + VehicleBreakdownSubCauseCode_unavailable = 0, + VehicleBreakdownSubCauseCode_lackOfFuel = 1, + VehicleBreakdownSubCauseCode_lackOfBatteryPower = 2, + VehicleBreakdownSubCauseCode_engineProblem = 3, + VehicleBreakdownSubCauseCode_transmissionProblem = 4, + VehicleBreakdownSubCauseCode_engineCoolingProblem = 5, + VehicleBreakdownSubCauseCode_brakingSystemProblem = 6, + VehicleBreakdownSubCauseCode_steeringProblem = 7, + VehicleBreakdownSubCauseCode_tyrePuncture = 8, + VehicleBreakdownSubCauseCode_tyrePressureProblem = 9 +} e_VehicleBreakdownSubCauseCode; + +/* VehicleBreakdownSubCauseCode */ +typedef long VehicleBreakdownSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode; +asn_struct_free_f VehicleBreakdownSubCauseCode_free; +asn_struct_print_f VehicleBreakdownSubCauseCode_print; +asn_constr_check_f VehicleBreakdownSubCauseCode_constraint; +ber_type_decoder_f VehicleBreakdownSubCauseCode_decode_ber; +der_type_encoder_f VehicleBreakdownSubCauseCode_encode_der; +xer_type_decoder_f VehicleBreakdownSubCauseCode_decode_xer; +xer_type_encoder_f VehicleBreakdownSubCauseCode_encode_xer; +oer_type_decoder_f VehicleBreakdownSubCauseCode_decode_oer; +oer_type_encoder_f VehicleBreakdownSubCauseCode_encode_oer; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_uper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_uper; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_aper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleBreakdownSubCauseCode_H_ */ +#include diff --git a/vcits/cam/VehicleIdentification.h b/vcits/cam/VehicleIdentification.h new file mode 100644 index 0000000..6af7a90 --- /dev/null +++ b/vcits/cam/VehicleIdentification.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _VehicleIdentification_H_ +#define _VehicleIdentification_H_ + + +#include + +/* Including external dependencies */ +#include "WMInumber.h" +#include "VDS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleIdentification */ +typedef struct VehicleIdentification { + WMInumber_t *wMInumber; /* OPTIONAL */ + VDS_t *vDS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleIdentification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleIdentification; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleIdentification_H_ */ +#include diff --git a/vcits/cam/VehicleLength.h b/vcits/cam/VehicleLength.h new file mode 100644 index 0000000..472e1a2 --- /dev/null +++ b/vcits/cam/VehicleLength.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _VehicleLength_H_ +#define _VehicleLength_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleLengthValue.h" +#include "VehicleLengthConfidenceIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleLength */ +typedef struct VehicleLength { + VehicleLengthValue_t vehicleLengthValue; + VehicleLengthConfidenceIndication_t vehicleLengthConfidenceIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleLength; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleLength_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleLength_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLength_H_ */ +#include diff --git a/vcits/cam/VehicleLengthConfidenceIndication.h b/vcits/cam/VehicleLengthConfidenceIndication.h new file mode 100644 index 0000000..2a3acdb --- /dev/null +++ b/vcits/cam/VehicleLengthConfidenceIndication.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _VehicleLengthConfidenceIndication_H_ +#define _VehicleLengthConfidenceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthConfidenceIndication { + VehicleLengthConfidenceIndication_noTrailerPresent = 0, + VehicleLengthConfidenceIndication_trailerPresentWithKnownLength = 1, + VehicleLengthConfidenceIndication_trailerPresentWithUnknownLength = 2, + VehicleLengthConfidenceIndication_trailerPresenceIsUnknown = 3, + VehicleLengthConfidenceIndication_unavailable = 4 +} e_VehicleLengthConfidenceIndication; + +/* VehicleLengthConfidenceIndication */ +typedef long VehicleLengthConfidenceIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1; +asn_struct_free_f VehicleLengthConfidenceIndication_free; +asn_struct_print_f VehicleLengthConfidenceIndication_print; +asn_constr_check_f VehicleLengthConfidenceIndication_constraint; +ber_type_decoder_f VehicleLengthConfidenceIndication_decode_ber; +der_type_encoder_f VehicleLengthConfidenceIndication_encode_der; +xer_type_decoder_f VehicleLengthConfidenceIndication_decode_xer; +xer_type_encoder_f VehicleLengthConfidenceIndication_encode_xer; +oer_type_decoder_f VehicleLengthConfidenceIndication_decode_oer; +oer_type_encoder_f VehicleLengthConfidenceIndication_encode_oer; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_uper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_uper; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_aper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthConfidenceIndication_H_ */ +#include diff --git a/vcits/cam/VehicleLengthValue.h b/vcits/cam/VehicleLengthValue.h new file mode 100644 index 0000000..8818479 --- /dev/null +++ b/vcits/cam/VehicleLengthValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _VehicleLengthValue_H_ +#define _VehicleLengthValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthValue { + VehicleLengthValue_tenCentimeters = 1, + VehicleLengthValue_outOfRange = 1022, + VehicleLengthValue_unavailable = 1023 +} e_VehicleLengthValue; + +/* VehicleLengthValue */ +typedef long VehicleLengthValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue; +asn_struct_free_f VehicleLengthValue_free; +asn_struct_print_f VehicleLengthValue_print; +asn_constr_check_f VehicleLengthValue_constraint; +ber_type_decoder_f VehicleLengthValue_decode_ber; +der_type_encoder_f VehicleLengthValue_encode_der; +xer_type_decoder_f VehicleLengthValue_decode_xer; +xer_type_encoder_f VehicleLengthValue_encode_xer; +oer_type_decoder_f VehicleLengthValue_decode_oer; +oer_type_encoder_f VehicleLengthValue_encode_oer; +per_type_decoder_f VehicleLengthValue_decode_uper; +per_type_encoder_f VehicleLengthValue_encode_uper; +per_type_decoder_f VehicleLengthValue_decode_aper; +per_type_encoder_f VehicleLengthValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthValue_H_ */ +#include diff --git a/vcits/cam/VehicleMass.h b/vcits/cam/VehicleMass.h new file mode 100644 index 0000000..27a7745 --- /dev/null +++ b/vcits/cam/VehicleMass.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _VehicleMass_H_ +#define _VehicleMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleMass { + VehicleMass_hundredKg = 1, + VehicleMass_unavailable = 1024 +} e_VehicleMass; + +/* VehicleMass */ +typedef long VehicleMass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleMass; +asn_struct_free_f VehicleMass_free; +asn_struct_print_f VehicleMass_print; +asn_constr_check_f VehicleMass_constraint; +ber_type_decoder_f VehicleMass_decode_ber; +der_type_encoder_f VehicleMass_encode_der; +xer_type_decoder_f VehicleMass_decode_xer; +xer_type_encoder_f VehicleMass_encode_xer; +oer_type_decoder_f VehicleMass_decode_oer; +oer_type_encoder_f VehicleMass_encode_oer; +per_type_decoder_f VehicleMass_decode_uper; +per_type_encoder_f VehicleMass_encode_uper; +per_type_decoder_f VehicleMass_decode_aper; +per_type_encoder_f VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleMass_H_ */ +#include diff --git a/vcits/cam/VehicleRole.h b/vcits/cam/VehicleRole.h new file mode 100644 index 0000000..8bef7eb --- /dev/null +++ b/vcits/cam/VehicleRole.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _VehicleRole_H_ +#define _VehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleRole { + VehicleRole_default = 0, + VehicleRole_publicTransport = 1, + VehicleRole_specialTransport = 2, + VehicleRole_dangerousGoods = 3, + VehicleRole_roadWork = 4, + VehicleRole_rescue = 5, + VehicleRole_emergency = 6, + VehicleRole_safetyCar = 7, + VehicleRole_agriculture = 8, + VehicleRole_commercial = 9, + VehicleRole_military = 10, + VehicleRole_roadOperator = 11, + VehicleRole_taxi = 12, + VehicleRole_reserved1 = 13, + VehicleRole_reserved2 = 14, + VehicleRole_reserved3 = 15 +} e_VehicleRole; + +/* VehicleRole */ +typedef long VehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleRole_specs_1; +asn_struct_free_f VehicleRole_free; +asn_struct_print_f VehicleRole_print; +asn_constr_check_f VehicleRole_constraint; +ber_type_decoder_f VehicleRole_decode_ber; +der_type_encoder_f VehicleRole_encode_der; +xer_type_decoder_f VehicleRole_decode_xer; +xer_type_encoder_f VehicleRole_encode_xer; +oer_type_decoder_f VehicleRole_decode_oer; +oer_type_encoder_f VehicleRole_encode_oer; +per_type_decoder_f VehicleRole_decode_uper; +per_type_encoder_f VehicleRole_encode_uper; +per_type_decoder_f VehicleRole_decode_aper; +per_type_encoder_f VehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleRole_H_ */ +#include diff --git a/vcits/cam/VehicleWidth.h b/vcits/cam/VehicleWidth.h new file mode 100644 index 0000000..ebb59dd --- /dev/null +++ b/vcits/cam/VehicleWidth.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _VehicleWidth_H_ +#define _VehicleWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleWidth { + VehicleWidth_tenCentimeters = 1, + VehicleWidth_outOfRange = 61, + VehicleWidth_unavailable = 62 +} e_VehicleWidth; + +/* VehicleWidth */ +typedef long VehicleWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleWidth; +asn_struct_free_f VehicleWidth_free; +asn_struct_print_f VehicleWidth_print; +asn_constr_check_f VehicleWidth_constraint; +ber_type_decoder_f VehicleWidth_decode_ber; +der_type_encoder_f VehicleWidth_encode_der; +xer_type_decoder_f VehicleWidth_decode_xer; +xer_type_encoder_f VehicleWidth_encode_xer; +oer_type_decoder_f VehicleWidth_decode_oer; +oer_type_encoder_f VehicleWidth_encode_oer; +per_type_decoder_f VehicleWidth_decode_uper; +per_type_encoder_f VehicleWidth_encode_uper; +per_type_decoder_f VehicleWidth_decode_aper; +per_type_encoder_f VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleWidth_H_ */ +#include diff --git a/vcits/cam/VerticalAcceleration.h b/vcits/cam/VerticalAcceleration.h new file mode 100644 index 0000000..7e85f04 --- /dev/null +++ b/vcits/cam/VerticalAcceleration.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _VerticalAcceleration_H_ +#define _VerticalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "VerticalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VerticalAcceleration */ +typedef struct VerticalAcceleration { + VerticalAccelerationValue_t verticalAccelerationValue; + AccelerationConfidence_t verticalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VerticalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration; +extern asn_SEQUENCE_specifics_t asn_SPC_VerticalAcceleration_specs_1; +extern asn_TYPE_member_t asn_MBR_VerticalAcceleration_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAcceleration_H_ */ +#include diff --git a/vcits/cam/VerticalAccelerationValue.h b/vcits/cam/VerticalAccelerationValue.h new file mode 100644 index 0000000..86530d6 --- /dev/null +++ b/vcits/cam/VerticalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _VerticalAccelerationValue_H_ +#define _VerticalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VerticalAccelerationValue { + VerticalAccelerationValue_pointOneMeterPerSecSquaredUp = 1, + VerticalAccelerationValue_pointOneMeterPerSecSquaredDown = -1, + VerticalAccelerationValue_unavailable = 161 +} e_VerticalAccelerationValue; + +/* VerticalAccelerationValue */ +typedef long VerticalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue; +asn_struct_free_f VerticalAccelerationValue_free; +asn_struct_print_f VerticalAccelerationValue_print; +asn_constr_check_f VerticalAccelerationValue_constraint; +ber_type_decoder_f VerticalAccelerationValue_decode_ber; +der_type_encoder_f VerticalAccelerationValue_encode_der; +xer_type_decoder_f VerticalAccelerationValue_decode_xer; +xer_type_encoder_f VerticalAccelerationValue_encode_xer; +oer_type_decoder_f VerticalAccelerationValue_decode_oer; +oer_type_encoder_f VerticalAccelerationValue_encode_oer; +per_type_decoder_f VerticalAccelerationValue_decode_uper; +per_type_encoder_f VerticalAccelerationValue_encode_uper; +per_type_decoder_f VerticalAccelerationValue_decode_aper; +per_type_encoder_f VerticalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAccelerationValue_H_ */ +#include diff --git a/vcits/cam/WMInumber.h b/vcits/cam/WMInumber.h new file mode 100644 index 0000000..ae15958 --- /dev/null +++ b/vcits/cam/WMInumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _WMInumber_H_ +#define _WMInumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WMInumber */ +typedef IA5String_t WMInumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WMInumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WMInumber; +asn_struct_free_f WMInumber_free; +asn_struct_print_f WMInumber_print; +asn_constr_check_f WMInumber_constraint; +ber_type_decoder_f WMInumber_decode_ber; +der_type_encoder_f WMInumber_encode_der; +xer_type_decoder_f WMInumber_decode_xer; +xer_type_encoder_f WMInumber_encode_xer; +oer_type_decoder_f WMInumber_decode_oer; +oer_type_encoder_f WMInumber_encode_oer; +per_type_decoder_f WMInumber_decode_uper; +per_type_encoder_f WMInumber_encode_uper; +per_type_decoder_f WMInumber_decode_aper; +per_type_encoder_f WMInumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WMInumber_H_ */ +#include diff --git a/vcits/cam/WheelBaseVehicle.h b/vcits/cam/WheelBaseVehicle.h new file mode 100644 index 0000000..e85156e --- /dev/null +++ b/vcits/cam/WheelBaseVehicle.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _WheelBaseVehicle_H_ +#define _WheelBaseVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WheelBaseVehicle { + WheelBaseVehicle_tenCentimeters = 1, + WheelBaseVehicle_unavailable = 127 +} e_WheelBaseVehicle; + +/* WheelBaseVehicle */ +typedef long WheelBaseVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle; +asn_struct_free_f WheelBaseVehicle_free; +asn_struct_print_f WheelBaseVehicle_print; +asn_constr_check_f WheelBaseVehicle_constraint; +ber_type_decoder_f WheelBaseVehicle_decode_ber; +der_type_encoder_f WheelBaseVehicle_encode_der; +xer_type_decoder_f WheelBaseVehicle_decode_xer; +xer_type_encoder_f WheelBaseVehicle_encode_xer; +oer_type_decoder_f WheelBaseVehicle_decode_oer; +oer_type_encoder_f WheelBaseVehicle_encode_oer; +per_type_decoder_f WheelBaseVehicle_decode_uper; +per_type_encoder_f WheelBaseVehicle_encode_uper; +per_type_decoder_f WheelBaseVehicle_decode_aper; +per_type_encoder_f WheelBaseVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WheelBaseVehicle_H_ */ +#include diff --git a/vcits/cam/WrongWayDrivingSubCauseCode.h b/vcits/cam/WrongWayDrivingSubCauseCode.h new file mode 100644 index 0000000..f38b638 --- /dev/null +++ b/vcits/cam/WrongWayDrivingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _WrongWayDrivingSubCauseCode_H_ +#define _WrongWayDrivingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WrongWayDrivingSubCauseCode { + WrongWayDrivingSubCauseCode_unavailable = 0, + WrongWayDrivingSubCauseCode_wrongLane = 1, + WrongWayDrivingSubCauseCode_wrongDirection = 2 +} e_WrongWayDrivingSubCauseCode; + +/* WrongWayDrivingSubCauseCode */ +typedef long WrongWayDrivingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode; +asn_struct_free_f WrongWayDrivingSubCauseCode_free; +asn_struct_print_f WrongWayDrivingSubCauseCode_print; +asn_constr_check_f WrongWayDrivingSubCauseCode_constraint; +ber_type_decoder_f WrongWayDrivingSubCauseCode_decode_ber; +der_type_encoder_f WrongWayDrivingSubCauseCode_encode_der; +xer_type_decoder_f WrongWayDrivingSubCauseCode_decode_xer; +xer_type_encoder_f WrongWayDrivingSubCauseCode_encode_xer; +oer_type_decoder_f WrongWayDrivingSubCauseCode_decode_oer; +oer_type_encoder_f WrongWayDrivingSubCauseCode_encode_oer; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_uper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_uper; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_aper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WrongWayDrivingSubCauseCode_H_ */ +#include diff --git a/vcits/cam/YawRate.h b/vcits/cam/YawRate.h new file mode 100644 index 0000000..88a7cfa --- /dev/null +++ b/vcits/cam/YawRate.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _YawRate_H_ +#define _YawRate_H_ + + +#include + +/* Including external dependencies */ +#include "YawRateValue.h" +#include "YawRateConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* YawRate */ +typedef struct YawRate { + YawRateValue_t yawRateValue; + YawRateConfidence_t yawRateConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} YawRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_YawRate; +extern asn_SEQUENCE_specifics_t asn_SPC_YawRate_specs_1; +extern asn_TYPE_member_t asn_MBR_YawRate_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRate_H_ */ +#include diff --git a/vcits/cam/YawRateConfidence.h b/vcits/cam/YawRateConfidence.h new file mode 100644 index 0000000..ca77f2f --- /dev/null +++ b/vcits/cam/YawRateConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _YawRateConfidence_H_ +#define _YawRateConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateConfidence { + YawRateConfidence_degSec_000_01 = 0, + YawRateConfidence_degSec_000_05 = 1, + YawRateConfidence_degSec_000_10 = 2, + YawRateConfidence_degSec_001_00 = 3, + YawRateConfidence_degSec_005_00 = 4, + YawRateConfidence_degSec_010_00 = 5, + YawRateConfidence_degSec_100_00 = 6, + YawRateConfidence_outOfRange = 7, + YawRateConfidence_unavailable = 8 +} e_YawRateConfidence; + +/* YawRateConfidence */ +typedef long YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1; +asn_struct_free_f YawRateConfidence_free; +asn_struct_print_f YawRateConfidence_print; +asn_constr_check_f YawRateConfidence_constraint; +ber_type_decoder_f YawRateConfidence_decode_ber; +der_type_encoder_f YawRateConfidence_encode_der; +xer_type_decoder_f YawRateConfidence_decode_xer; +xer_type_encoder_f YawRateConfidence_encode_xer; +oer_type_decoder_f YawRateConfidence_decode_oer; +oer_type_encoder_f YawRateConfidence_encode_oer; +per_type_decoder_f YawRateConfidence_decode_uper; +per_type_encoder_f YawRateConfidence_encode_uper; +per_type_decoder_f YawRateConfidence_decode_aper; +per_type_encoder_f YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateConfidence_H_ */ +#include diff --git a/vcits/cam/YawRateValue.h b/vcits/cam/YawRateValue.h new file mode 100644 index 0000000..f500430 --- /dev/null +++ b/vcits/cam/YawRateValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#ifndef _YawRateValue_H_ +#define _YawRateValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateValue { + YawRateValue_straight = 0, + YawRateValue_degSec_000_01ToRight = -1, + YawRateValue_degSec_000_01ToLeft = 1, + YawRateValue_unavailable = 32767 +} e_YawRateValue; + +/* YawRateValue */ +typedef long YawRateValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateValue; +asn_struct_free_f YawRateValue_free; +asn_struct_print_f YawRateValue_print; +asn_constr_check_f YawRateValue_constraint; +ber_type_decoder_f YawRateValue_decode_ber; +der_type_encoder_f YawRateValue_encode_der; +xer_type_decoder_f YawRateValue_decode_xer; +xer_type_encoder_f YawRateValue_encode_xer; +oer_type_decoder_f YawRateValue_decode_oer; +oer_type_encoder_f YawRateValue_encode_oer; +per_type_decoder_f YawRateValue_decode_uper; +per_type_encoder_f YawRateValue_encode_uper; +per_type_decoder_f YawRateValue_decode_aper; +per_type_encoder_f YawRateValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateValue_H_ */ +#include diff --git a/vcits/cam/asn_constant.h b/vcits/cam/asn_constant.h new file mode 100644 index 0000000..15b4d8c --- /dev/null +++ b/vcits/cam/asn_constant.h @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_GenerationDeltaTime (0) +#define max_val_GenerationDeltaTime (65535) +#define min_val_StationID (0) +#define max_val_StationID (4294967295) +#define min_val_Longitude (-1800000000) +#define max_val_Longitude (1800000001) +#define min_val_Latitude (-900000000) +#define max_val_Latitude (900000001) +#define min_val_AltitudeValue (-100000) +#define max_val_AltitudeValue (800001) +#define min_val_DeltaLongitude (-131071) +#define max_val_DeltaLongitude (131072) +#define min_val_DeltaLatitude (-131071) +#define max_val_DeltaLatitude (131072) +#define min_val_DeltaAltitude (-12700) +#define max_val_DeltaAltitude (12800) +#define min_val_PtActivationType (0) +#define max_val_PtActivationType (255) +#define min_val_SemiAxisLength (0) +#define max_val_SemiAxisLength (4095) +#define min_val_CauseCodeType (0) +#define max_val_CauseCodeType (255) +#define min_val_SubCauseCodeType (0) +#define max_val_SubCauseCodeType (255) +#define min_val_TrafficConditionSubCauseCode (0) +#define max_val_TrafficConditionSubCauseCode (255) +#define min_val_AccidentSubCauseCode (0) +#define max_val_AccidentSubCauseCode (255) +#define min_val_RoadworksSubCauseCode (0) +#define max_val_RoadworksSubCauseCode (255) +#define min_val_HumanPresenceOnTheRoadSubCauseCode (0) +#define max_val_HumanPresenceOnTheRoadSubCauseCode (255) +#define min_val_WrongWayDrivingSubCauseCode (0) +#define max_val_WrongWayDrivingSubCauseCode (255) +#define min_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_AdhesionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_AdhesionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_VisibilitySubCauseCode (0) +#define max_val_AdverseWeatherCondition_VisibilitySubCauseCode (255) +#define min_val_AdverseWeatherCondition_PrecipitationSubCauseCode (0) +#define max_val_AdverseWeatherCondition_PrecipitationSubCauseCode (255) +#define min_val_SlowVehicleSubCauseCode (0) +#define max_val_SlowVehicleSubCauseCode (255) +#define min_val_StationaryVehicleSubCauseCode (0) +#define max_val_StationaryVehicleSubCauseCode (255) +#define min_val_HumanProblemSubCauseCode (0) +#define max_val_HumanProblemSubCauseCode (255) +#define min_val_EmergencyVehicleApproachingSubCauseCode (0) +#define max_val_EmergencyVehicleApproachingSubCauseCode (255) +#define min_val_HazardousLocation_DangerousCurveSubCauseCode (0) +#define max_val_HazardousLocation_DangerousCurveSubCauseCode (255) +#define min_val_HazardousLocation_SurfaceConditionSubCauseCode (0) +#define max_val_HazardousLocation_SurfaceConditionSubCauseCode (255) +#define min_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (255) +#define min_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (255) +#define min_val_CollisionRiskSubCauseCode (0) +#define max_val_CollisionRiskSubCauseCode (255) +#define min_val_SignalViolationSubCauseCode (0) +#define max_val_SignalViolationSubCauseCode (255) +#define min_val_RescueAndRecoveryWorkInProgressSubCauseCode (0) +#define max_val_RescueAndRecoveryWorkInProgressSubCauseCode (255) +#define min_val_DangerousEndOfQueueSubCauseCode (0) +#define max_val_DangerousEndOfQueueSubCauseCode (255) +#define min_val_DangerousSituationSubCauseCode (0) +#define max_val_DangerousSituationSubCauseCode (255) +#define min_val_VehicleBreakdownSubCauseCode (0) +#define max_val_VehicleBreakdownSubCauseCode (255) +#define min_val_PostCrashSubCauseCode (0) +#define max_val_PostCrashSubCauseCode (255) +#define min_val_CurvatureValue (-1023) +#define max_val_CurvatureValue (1023) +#define min_val_HeadingValue (0) +#define max_val_HeadingValue (3601) +#define min_val_HeadingConfidence (1) +#define max_val_HeadingConfidence (127) +#define min_val_LanePosition (-1) +#define max_val_LanePosition (14) +#define min_val_PerformanceClass (0) +#define max_val_PerformanceClass (7) +#define min_val_SpeedValue (0) +#define max_val_SpeedValue (16383) +#define min_val_SpeedConfidence (1) +#define max_val_SpeedConfidence (127) +#define min_val_VehicleMass (1) +#define max_val_VehicleMass (1024) +#define min_val_LongitudinalAccelerationValue (-160) +#define max_val_LongitudinalAccelerationValue (161) +#define min_val_AccelerationConfidence (0) +#define max_val_AccelerationConfidence (102) +#define min_val_LateralAccelerationValue (-160) +#define max_val_LateralAccelerationValue (161) +#define min_val_VerticalAccelerationValue (-160) +#define max_val_VerticalAccelerationValue (161) +#define min_val_StationType (0) +#define max_val_StationType (255) +#define min_val_HeightLonCarr (1) +#define max_val_HeightLonCarr (100) +#define min_val_PosLonCarr (1) +#define max_val_PosLonCarr (127) +#define min_val_PosPillar (1) +#define max_val_PosPillar (30) +#define min_val_PosCentMass (1) +#define max_val_PosCentMass (63) +#define min_val_SpeedLimit (1) +#define max_val_SpeedLimit (255) +#define min_val_Temperature (-60) +#define max_val_Temperature (67) +#define min_val_WheelBaseVehicle (1) +#define max_val_WheelBaseVehicle (127) +#define min_val_TurningRadius (1) +#define max_val_TurningRadius (255) +#define min_val_PosFrontAx (1) +#define max_val_PosFrontAx (20) +#define min_val_VehicleLengthValue (1) +#define max_val_VehicleLengthValue (1023) +#define min_val_VehicleWidth (1) +#define max_val_VehicleWidth (62) +#define min_val_InformationQuality (0) +#define max_val_InformationQuality (7) +#define min_val_SteeringWheelAngleValue (-511) +#define max_val_SteeringWheelAngleValue (512) +#define min_val_SteeringWheelAngleConfidence (1) +#define max_val_SteeringWheelAngleConfidence (127) +#define min_val_TimestampIts (0) +#define max_val_TimestampIts (4398046511103) +#define min_val_YawRateValue (-32766) +#define max_val_YawRateValue (32767) +#define min_val_TransmissionInterval (1) +#define max_val_TransmissionInterval (10000) +#define min_val_ValidityDuration (0) +#define max_val_ValidityDuration (86400) +#define min_val_NumberOfOccupants (0) +#define max_val_NumberOfOccupants (127) +#define min_val_SequenceNumber (0) +#define max_val_SequenceNumber (65535) +#define min_val_ProtectedZoneID (0) +#define max_val_ProtectedZoneID (134217727) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/vcits/cam/src/AccelerationConfidence.c b/vcits/cam/src/AccelerationConfidence.c new file mode 100644 index 0000000..9ca7b82 --- /dev/null +++ b/vcits/cam/src/AccelerationConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "AccelerationConfidence.h" + +int +AccelerationConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 102)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..102) */, + -1}; +asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 102 } /* (0..102) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeInteger, + asn_DEF_AccelerationConfidence_tags_1, + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationConfidence_constr_1, &asn_PER_type_AccelerationConfidence_constr_1, AccelerationConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/AccelerationControl.c b/vcits/cam/src/AccelerationControl.c new file mode 100644 index 0000000..f9c5607 --- /dev/null +++ b/vcits/cam/src/AccelerationControl.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "AccelerationControl.h" + +int +AccelerationControl_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +asn_per_constraints_t asn_PER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationControl = { + "AccelerationControl", + "AccelerationControl", + &asn_OP_BIT_STRING, + asn_DEF_AccelerationControl_tags_1, + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + asn_DEF_AccelerationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationControl_constr_1, &asn_PER_type_AccelerationControl_constr_1, AccelerationControl_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cam/src/AccidentSubCauseCode.c b/vcits/cam/src/AccidentSubCauseCode.c new file mode 100644 index 0000000..626f069 --- /dev/null +++ b/vcits/cam/src/AccidentSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "AccidentSubCauseCode.h" + +int +AccidentSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccidentSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode = { + "AccidentSubCauseCode", + "AccidentSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AccidentSubCauseCode_tags_1, + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AccidentSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AccidentSubCauseCode_constr_1, &asn_PER_type_AccidentSubCauseCode_constr_1, AccidentSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/ActionID.c b/vcits/cam/src/ActionID.c new file mode 100644 index 0000000..2d7edfe --- /dev/null +++ b/vcits/cam/src/ActionID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "ActionID.h" + +static asn_TYPE_member_t asn_MBR_ActionID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ActionID, originatingStationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "originatingStationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ActionID, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SequenceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ActionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ActionID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingStationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sequenceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ActionID_specs_1 = { + sizeof(struct ActionID), + offsetof(struct ActionID, _asn_ctx), + asn_MAP_ActionID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ActionID = { + "ActionID", + "ActionID", + &asn_OP_SEQUENCE, + asn_DEF_ActionID_tags_1, + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + asn_DEF_ActionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ActionID_1, + 2, /* Elements count */ + &asn_SPC_ActionID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/AdverseWeatherCondition-AdhesionSubCauseCode.c b/vcits/cam/src/AdverseWeatherCondition-AdhesionSubCauseCode.c new file mode 100644 index 0000000..8cb40df --- /dev/null +++ b/vcits/cam/src/AdverseWeatherCondition-AdhesionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "AdverseWeatherCondition-AdhesionSubCauseCode.h" + +int +AdverseWeatherCondition_AdhesionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode = { + "AdverseWeatherCondition-AdhesionSubCauseCode", + "AdverseWeatherCondition-AdhesionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, AdverseWeatherCondition_AdhesionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c b/vcits/cam/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c new file mode 100644 index 0000000..f79c95d --- /dev/null +++ b/vcits/cam/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" + +int +AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = { + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c b/vcits/cam/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c new file mode 100644 index 0000000..2d7b470 --- /dev/null +++ b/vcits/cam/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "AdverseWeatherCondition-PrecipitationSubCauseCode.h" + +int +AdverseWeatherCondition_PrecipitationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode = { + "AdverseWeatherCondition-PrecipitationSubCauseCode", + "AdverseWeatherCondition-PrecipitationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, AdverseWeatherCondition_PrecipitationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/AdverseWeatherCondition-VisibilitySubCauseCode.c b/vcits/cam/src/AdverseWeatherCondition-VisibilitySubCauseCode.c new file mode 100644 index 0000000..87ce1b6 --- /dev/null +++ b/vcits/cam/src/AdverseWeatherCondition-VisibilitySubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "AdverseWeatherCondition-VisibilitySubCauseCode.h" + +int +AdverseWeatherCondition_VisibilitySubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode = { + "AdverseWeatherCondition-VisibilitySubCauseCode", + "AdverseWeatherCondition-VisibilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, AdverseWeatherCondition_VisibilitySubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/Altitude.c b/vcits/cam/src/Altitude.c new file mode 100644 index 0000000..458df44 --- /dev/null +++ b/vcits/cam/src/Altitude.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "Altitude.h" + +asn_TYPE_member_t asn_MBR_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Altitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altitudeValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altitudeConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1 = { + sizeof(struct Altitude), + offsetof(struct Altitude, _asn_ctx), + asn_MAP_Altitude_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_Altitude_tags_1, + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + asn_DEF_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Altitude_1, + 2, /* Elements count */ + &asn_SPC_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/AltitudeConfidence.c b/vcits/cam/src/AltitudeConfidence.c new file mode 100644 index 0000000..fd74ccc --- /dev/null +++ b/vcits/cam/src/AltitudeConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "AltitudeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AltitudeConfidence_value2enum_1[] = { + { 0, 10, "alt-000-01" }, + { 1, 10, "alt-000-02" }, + { 2, 10, "alt-000-05" }, + { 3, 10, "alt-000-10" }, + { 4, 10, "alt-000-20" }, + { 5, 10, "alt-000-50" }, + { 6, 10, "alt-001-00" }, + { 7, 10, "alt-002-00" }, + { 8, 10, "alt-005-00" }, + { 9, 10, "alt-010-00" }, + { 10, 10, "alt-020-00" }, + { 11, 10, "alt-050-00" }, + { 12, 10, "alt-100-00" }, + { 13, 10, "alt-200-00" }, + { 14, 10, "outOfRange" }, + { 15, 11, "unavailable" } +}; +static const unsigned int asn_MAP_AltitudeConfidence_enum2value_1[] = { + 0, /* alt-000-01(0) */ + 1, /* alt-000-02(1) */ + 2, /* alt-000-05(2) */ + 3, /* alt-000-10(3) */ + 4, /* alt-000-20(4) */ + 5, /* alt-000-50(5) */ + 6, /* alt-001-00(6) */ + 7, /* alt-002-00(7) */ + 8, /* alt-005-00(8) */ + 9, /* alt-010-00(9) */ + 10, /* alt-020-00(10) */ + 11, /* alt-050-00(11) */ + 12, /* alt-100-00(12) */ + 13, /* alt-200-00(13) */ + 14, /* outOfRange(14) */ + 15 /* unavailable(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1 = { + asn_MAP_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AltitudeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_AltitudeConfidence_tags_1, + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeConfidence_constr_1, &asn_PER_type_AltitudeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/AltitudeValue.c b/vcits/cam/src/AltitudeValue.c new file mode 100644 index 0000000..18dd173 --- /dev/null +++ b/vcits/cam/src/AltitudeValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "AltitudeValue.h" + +int +AltitudeValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -100000 && value <= 800001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-100000..800001) */, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, -100000, 800001 } /* (-100000..800001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_AltitudeValue_tags_1, + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeValue_constr_1, &asn_PER_type_AltitudeValue_constr_1, AltitudeValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/BasicContainer.c b/vcits/cam/src/BasicContainer.c new file mode 100644 index 0000000..c043fe1 --- /dev/null +++ b/vcits/cam/src/BasicContainer.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "BasicContainer.h" + +asn_TYPE_member_t asn_MBR_BasicContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BasicContainer, stationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicContainer, referencePosition), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referencePosition" + }, +}; +static const ber_tlv_tag_t asn_DEF_BasicContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BasicContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* referencePosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BasicContainer_specs_1 = { + sizeof(struct BasicContainer), + offsetof(struct BasicContainer, _asn_ctx), + asn_MAP_BasicContainer_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BasicContainer = { + "BasicContainer", + "BasicContainer", + &asn_OP_SEQUENCE, + asn_DEF_BasicContainer_tags_1, + sizeof(asn_DEF_BasicContainer_tags_1) + /sizeof(asn_DEF_BasicContainer_tags_1[0]), /* 1 */ + asn_DEF_BasicContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicContainer_tags_1) + /sizeof(asn_DEF_BasicContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BasicContainer_1, + 2, /* Elements count */ + &asn_SPC_BasicContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/BasicVehicleContainerHighFrequency.c b/vcits/cam/src/BasicVehicleContainerHighFrequency.c new file mode 100644 index 0000000..9458264 --- /dev/null +++ b/vcits/cam/src/BasicVehicleContainerHighFrequency.c @@ -0,0 +1,206 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "BasicVehicleContainerHighFrequency.h" + +#include "SteeringWheelAngle.h" +#include "LateralAcceleration.h" +#include "VerticalAcceleration.h" +#include "CenDsrcTollingZone.h" +asn_TYPE_member_t asn_MBR_BasicVehicleContainerHighFrequency_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Heading, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Speed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, driveDirection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DriveDirection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "driveDirection" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, vehicleLength), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, vehicleWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleWidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, longitudinalAcceleration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalAcceleration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAcceleration" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, curvature), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Curvature, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvature" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, curvatureCalculationMode), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureCalculationMode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureCalculationMode" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, yawRate), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRate" + }, + { ATF_POINTER, 7, offsetof(struct BasicVehicleContainerHighFrequency, accelerationControl), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationControl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "accelerationControl" + }, + { ATF_POINTER, 6, offsetof(struct BasicVehicleContainerHighFrequency, lanePosition), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LanePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lanePosition" + }, + { ATF_POINTER, 5, offsetof(struct BasicVehicleContainerHighFrequency, steeringWheelAngle), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngle" + }, + { ATF_POINTER, 4, offsetof(struct BasicVehicleContainerHighFrequency, lateralAcceleration), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LateralAcceleration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAcceleration" + }, + { ATF_POINTER, 3, offsetof(struct BasicVehicleContainerHighFrequency, verticalAcceleration), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAcceleration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAcceleration" + }, + { ATF_POINTER, 2, offsetof(struct BasicVehicleContainerHighFrequency, performanceClass), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PerformanceClass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "performanceClass" + }, + { ATF_POINTER, 1, offsetof(struct BasicVehicleContainerHighFrequency, cenDsrcTollingZone), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CenDsrcTollingZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cenDsrcTollingZone" + }, +}; +static const int asn_MAP_BasicVehicleContainerHighFrequency_oms_1[] = { 9, 10, 11, 12, 13, 14, 15 }; +static const ber_tlv_tag_t asn_DEF_BasicVehicleContainerHighFrequency_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BasicVehicleContainerHighFrequency_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* driveDirection */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* vehicleLength */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* vehicleWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* longitudinalAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* curvature */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* curvatureCalculationMode */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* yawRate */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* accelerationControl */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* lanePosition */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* steeringWheelAngle */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* lateralAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* verticalAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* performanceClass */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 } /* cenDsrcTollingZone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BasicVehicleContainerHighFrequency_specs_1 = { + sizeof(struct BasicVehicleContainerHighFrequency), + offsetof(struct BasicVehicleContainerHighFrequency, _asn_ctx), + asn_MAP_BasicVehicleContainerHighFrequency_tag2el_1, + 16, /* Count of tags in the map */ + asn_MAP_BasicVehicleContainerHighFrequency_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BasicVehicleContainerHighFrequency = { + "BasicVehicleContainerHighFrequency", + "BasicVehicleContainerHighFrequency", + &asn_OP_SEQUENCE, + asn_DEF_BasicVehicleContainerHighFrequency_tags_1, + sizeof(asn_DEF_BasicVehicleContainerHighFrequency_tags_1) + /sizeof(asn_DEF_BasicVehicleContainerHighFrequency_tags_1[0]), /* 1 */ + asn_DEF_BasicVehicleContainerHighFrequency_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicVehicleContainerHighFrequency_tags_1) + /sizeof(asn_DEF_BasicVehicleContainerHighFrequency_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BasicVehicleContainerHighFrequency_1, + 16, /* Elements count */ + &asn_SPC_BasicVehicleContainerHighFrequency_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/BasicVehicleContainerLowFrequency.c b/vcits/cam/src/BasicVehicleContainerLowFrequency.c new file mode 100644 index 0000000..874b066 --- /dev/null +++ b/vcits/cam/src/BasicVehicleContainerLowFrequency.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "BasicVehicleContainerLowFrequency.h" + +asn_TYPE_member_t asn_MBR_BasicVehicleContainerLowFrequency_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerLowFrequency, vehicleRole), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleRole" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerLowFrequency, exteriorLights), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExteriorLights, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "exteriorLights" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerLowFrequency, pathHistory), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathHistory, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathHistory" + }, +}; +static const ber_tlv_tag_t asn_DEF_BasicVehicleContainerLowFrequency_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BasicVehicleContainerLowFrequency_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleRole */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* exteriorLights */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pathHistory */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BasicVehicleContainerLowFrequency_specs_1 = { + sizeof(struct BasicVehicleContainerLowFrequency), + offsetof(struct BasicVehicleContainerLowFrequency, _asn_ctx), + asn_MAP_BasicVehicleContainerLowFrequency_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BasicVehicleContainerLowFrequency = { + "BasicVehicleContainerLowFrequency", + "BasicVehicleContainerLowFrequency", + &asn_OP_SEQUENCE, + asn_DEF_BasicVehicleContainerLowFrequency_tags_1, + sizeof(asn_DEF_BasicVehicleContainerLowFrequency_tags_1) + /sizeof(asn_DEF_BasicVehicleContainerLowFrequency_tags_1[0]), /* 1 */ + asn_DEF_BasicVehicleContainerLowFrequency_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicVehicleContainerLowFrequency_tags_1) + /sizeof(asn_DEF_BasicVehicleContainerLowFrequency_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BasicVehicleContainerLowFrequency_1, + 3, /* Elements count */ + &asn_SPC_BasicVehicleContainerLowFrequency_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/CAM.c b/vcits/cam/src/CAM.c new file mode 100644 index 0000000..8f3e69c --- /dev/null +++ b/vcits/cam/src/CAM.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "CAM.h" + +static asn_TYPE_member_t asn_MBR_CAM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CAM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsPduHeader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct CAM, cam), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CoopAwareness, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cam" + }, +}; +static const ber_tlv_tag_t asn_DEF_CAM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CAM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cam */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CAM_specs_1 = { + sizeof(struct CAM), + offsetof(struct CAM, _asn_ctx), + asn_MAP_CAM_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CAM = { + "CAM", + "CAM", + &asn_OP_SEQUENCE, + asn_DEF_CAM_tags_1, + sizeof(asn_DEF_CAM_tags_1) + /sizeof(asn_DEF_CAM_tags_1[0]), /* 1 */ + asn_DEF_CAM_tags_1, /* Same as above */ + sizeof(asn_DEF_CAM_tags_1) + /sizeof(asn_DEF_CAM_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CAM_1, + 2, /* Elements count */ + &asn_SPC_CAM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/CamParameters.c b/vcits/cam/src/CamParameters.c new file mode 100644 index 0000000..d222af4 --- /dev/null +++ b/vcits/cam/src/CamParameters.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "CamParameters.h" + +#include "LowFrequencyContainer.h" +#include "SpecialVehicleContainer.h" +asn_TYPE_member_t asn_MBR_CamParameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CamParameters, basicContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "basicContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct CamParameters, highFrequencyContainer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_HighFrequencyContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "highFrequencyContainer" + }, + { ATF_POINTER, 2, offsetof(struct CamParameters, lowFrequencyContainer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_LowFrequencyContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lowFrequencyContainer" + }, + { ATF_POINTER, 1, offsetof(struct CamParameters, specialVehicleContainer), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_SpecialVehicleContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "specialVehicleContainer" + }, +}; +static const int asn_MAP_CamParameters_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_CamParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CamParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* highFrequencyContainer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lowFrequencyContainer */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* specialVehicleContainer */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CamParameters_specs_1 = { + sizeof(struct CamParameters), + offsetof(struct CamParameters, _asn_ctx), + asn_MAP_CamParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_CamParameters_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CamParameters = { + "CamParameters", + "CamParameters", + &asn_OP_SEQUENCE, + asn_DEF_CamParameters_tags_1, + sizeof(asn_DEF_CamParameters_tags_1) + /sizeof(asn_DEF_CamParameters_tags_1[0]), /* 1 */ + asn_DEF_CamParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_CamParameters_tags_1) + /sizeof(asn_DEF_CamParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CamParameters_1, + 4, /* Elements count */ + &asn_SPC_CamParameters_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/CauseCode.c b/vcits/cam/src/CauseCode.c new file mode 100644 index 0000000..1a0b5fc --- /dev/null +++ b/vcits/cam/src/CauseCode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "CauseCode.h" + +asn_TYPE_member_t asn_MBR_CauseCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, causeCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "causeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, subCauseCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubCauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subCauseCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CauseCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* causeCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* subCauseCode */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CauseCode_specs_1 = { + sizeof(struct CauseCode), + offsetof(struct CauseCode, _asn_ctx), + asn_MAP_CauseCode_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CauseCode = { + "CauseCode", + "CauseCode", + &asn_OP_SEQUENCE, + asn_DEF_CauseCode_tags_1, + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + asn_DEF_CauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CauseCode_1, + 2, /* Elements count */ + &asn_SPC_CauseCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/CauseCodeType.c b/vcits/cam/src/CauseCodeType.c new file mode 100644 index 0000000..2f5e42a --- /dev/null +++ b/vcits/cam/src/CauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "CauseCodeType.h" + +int +CauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseCodeType = { + "CauseCodeType", + "CauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_CauseCodeType_tags_1, + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_CauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseCodeType_constr_1, &asn_PER_type_CauseCodeType_constr_1, CauseCodeType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/CenDsrcTollingZone.c b/vcits/cam/src/CenDsrcTollingZone.c new file mode 100644 index 0000000..9b5f010 --- /dev/null +++ b/vcits/cam/src/CenDsrcTollingZone.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "CenDsrcTollingZone.h" + +asn_TYPE_member_t asn_MBR_CenDsrcTollingZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 1, offsetof(struct CenDsrcTollingZone, cenDsrcTollingZoneID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CenDsrcTollingZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cenDsrcTollingZoneID" + }, +}; +static const int asn_MAP_CenDsrcTollingZone_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CenDsrcTollingZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cenDsrcTollingZoneID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CenDsrcTollingZone_specs_1 = { + sizeof(struct CenDsrcTollingZone), + offsetof(struct CenDsrcTollingZone, _asn_ctx), + asn_MAP_CenDsrcTollingZone_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CenDsrcTollingZone_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone = { + "CenDsrcTollingZone", + "CenDsrcTollingZone", + &asn_OP_SEQUENCE, + asn_DEF_CenDsrcTollingZone_tags_1, + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZone_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CenDsrcTollingZone_1, + 3, /* Elements count */ + &asn_SPC_CenDsrcTollingZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/CenDsrcTollingZoneID.c b/vcits/cam/src/CenDsrcTollingZoneID.c new file mode 100644 index 0000000..f32b76f --- /dev/null +++ b/vcits/cam/src/CenDsrcTollingZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "CenDsrcTollingZoneID.h" + +int +CenDsrcTollingZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using ProtectedZoneID, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID = { + "CenDsrcTollingZoneID", + "CenDsrcTollingZoneID", + &asn_OP_NativeInteger, + asn_DEF_CenDsrcTollingZoneID_tags_1, + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_CenDsrcTollingZoneID_constr_1, &asn_PER_type_CenDsrcTollingZoneID_constr_1, CenDsrcTollingZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/ClosedLanes.c b/vcits/cam/src/ClosedLanes.c new file mode 100644 index 0000000..df77692 --- /dev/null +++ b/vcits/cam/src/ClosedLanes.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "ClosedLanes.h" + +asn_TYPE_member_t asn_MBR_ClosedLanes_1[] = { + { ATF_POINTER, 3, offsetof(struct ClosedLanes, innerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "innerhardShoulderStatus" + }, + { ATF_POINTER, 2, offsetof(struct ClosedLanes, outerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outerhardShoulderStatus" + }, + { ATF_POINTER, 1, offsetof(struct ClosedLanes, drivingLaneStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivingLaneStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drivingLaneStatus" + }, +}; +static const int asn_MAP_ClosedLanes_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ClosedLanes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ClosedLanes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* innerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* outerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* drivingLaneStatus */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ClosedLanes_specs_1 = { + sizeof(struct ClosedLanes), + offsetof(struct ClosedLanes, _asn_ctx), + asn_MAP_ClosedLanes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ClosedLanes_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ClosedLanes = { + "ClosedLanes", + "ClosedLanes", + &asn_OP_SEQUENCE, + asn_DEF_ClosedLanes_tags_1, + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + asn_DEF_ClosedLanes_tags_1, /* Same as above */ + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ClosedLanes_1, + 3, /* Elements count */ + &asn_SPC_ClosedLanes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/CollisionRiskSubCauseCode.c b/vcits/cam/src/CollisionRiskSubCauseCode.c new file mode 100644 index 0000000..8bd11f7 --- /dev/null +++ b/vcits/cam/src/CollisionRiskSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "CollisionRiskSubCauseCode.h" + +int +CollisionRiskSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CollisionRiskSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode = { + "CollisionRiskSubCauseCode", + "CollisionRiskSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_CollisionRiskSubCauseCode_tags_1, + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_CollisionRiskSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CollisionRiskSubCauseCode_constr_1, &asn_PER_type_CollisionRiskSubCauseCode_constr_1, CollisionRiskSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/CoopAwareness.c b/vcits/cam/src/CoopAwareness.c new file mode 100644 index 0000000..ac8c2b3 --- /dev/null +++ b/vcits/cam/src/CoopAwareness.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "CoopAwareness.h" + +asn_TYPE_member_t asn_MBR_CoopAwareness_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CoopAwareness, generationDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GenerationDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "generationDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CoopAwareness, camParameters), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CamParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "camParameters" + }, +}; +static const ber_tlv_tag_t asn_DEF_CoopAwareness_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CoopAwareness_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* generationDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* camParameters */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CoopAwareness_specs_1 = { + sizeof(struct CoopAwareness), + offsetof(struct CoopAwareness, _asn_ctx), + asn_MAP_CoopAwareness_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CoopAwareness = { + "CoopAwareness", + "CoopAwareness", + &asn_OP_SEQUENCE, + asn_DEF_CoopAwareness_tags_1, + sizeof(asn_DEF_CoopAwareness_tags_1) + /sizeof(asn_DEF_CoopAwareness_tags_1[0]), /* 1 */ + asn_DEF_CoopAwareness_tags_1, /* Same as above */ + sizeof(asn_DEF_CoopAwareness_tags_1) + /sizeof(asn_DEF_CoopAwareness_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CoopAwareness_1, + 2, /* Elements count */ + &asn_SPC_CoopAwareness_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/Curvature.c b/vcits/cam/src/Curvature.c new file mode 100644 index 0000000..60526ec --- /dev/null +++ b/vcits/cam/src/Curvature.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "Curvature.h" + +asn_TYPE_member_t asn_MBR_Curvature_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Curvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Curvature_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* curvatureValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* curvatureConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Curvature_specs_1 = { + sizeof(struct Curvature), + offsetof(struct Curvature, _asn_ctx), + asn_MAP_Curvature_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Curvature = { + "Curvature", + "Curvature", + &asn_OP_SEQUENCE, + asn_DEF_Curvature_tags_1, + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + asn_DEF_Curvature_tags_1, /* Same as above */ + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Curvature_1, + 2, /* Elements count */ + &asn_SPC_Curvature_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/CurvatureCalculationMode.c b/vcits/cam/src/CurvatureCalculationMode.c new file mode 100644 index 0000000..46203d6 --- /dev/null +++ b/vcits/cam/src/CurvatureCalculationMode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "CurvatureCalculationMode.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureCalculationMode_value2enum_1[] = { + { 0, 11, "yawRateUsed" }, + { 1, 14, "yawRateNotUsed" }, + { 2, 11, "unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CurvatureCalculationMode_enum2value_1[] = { + 2, /* unavailable(2) */ + 1, /* yawRateNotUsed(1) */ + 0 /* yawRateUsed(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CurvatureCalculationMode_specs_1 = { + asn_MAP_CurvatureCalculationMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureCalculationMode_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureCalculationMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode = { + "CurvatureCalculationMode", + "CurvatureCalculationMode", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureCalculationMode_tags_1, + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + asn_DEF_CurvatureCalculationMode_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureCalculationMode_constr_1, &asn_PER_type_CurvatureCalculationMode_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureCalculationMode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/CurvatureConfidence.c b/vcits/cam/src/CurvatureConfidence.c new file mode 100644 index 0000000..4134cf7 --- /dev/null +++ b/vcits/cam/src/CurvatureConfidence.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "CurvatureConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureConfidence_value2enum_1[] = { + { 0, 19, "onePerMeter-0-00002" }, + { 1, 18, "onePerMeter-0-0001" }, + { 2, 18, "onePerMeter-0-0005" }, + { 3, 17, "onePerMeter-0-002" }, + { 4, 16, "onePerMeter-0-01" }, + { 5, 15, "onePerMeter-0-1" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_CurvatureConfidence_enum2value_1[] = { + 0, /* onePerMeter-0-00002(0) */ + 1, /* onePerMeter-0-0001(1) */ + 2, /* onePerMeter-0-0005(2) */ + 3, /* onePerMeter-0-002(3) */ + 4, /* onePerMeter-0-01(4) */ + 5, /* onePerMeter-0-1(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1 = { + asn_MAP_CurvatureConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence = { + "CurvatureConfidence", + "CurvatureConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureConfidence_tags_1, + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + asn_DEF_CurvatureConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureConfidence_constr_1, &asn_PER_type_CurvatureConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/CurvatureValue.c b/vcits/cam/src/CurvatureValue.c new file mode 100644 index 0000000..5e3f1aa --- /dev/null +++ b/vcits/cam/src/CurvatureValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "CurvatureValue.h" + +int +CurvatureValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1023 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1023..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1023, 1023 } /* (-1023..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CurvatureValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureValue = { + "CurvatureValue", + "CurvatureValue", + &asn_OP_NativeInteger, + asn_DEF_CurvatureValue_tags_1, + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + asn_DEF_CurvatureValue_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureValue_constr_1, &asn_PER_type_CurvatureValue_constr_1, CurvatureValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/DangerousEndOfQueueSubCauseCode.c b/vcits/cam/src/DangerousEndOfQueueSubCauseCode.c new file mode 100644 index 0000000..d7b849c --- /dev/null +++ b/vcits/cam/src/DangerousEndOfQueueSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "DangerousEndOfQueueSubCauseCode.h" + +int +DangerousEndOfQueueSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode = { + "DangerousEndOfQueueSubCauseCode", + "DangerousEndOfQueueSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1, &asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1, DangerousEndOfQueueSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/DangerousGoodsBasic.c b/vcits/cam/src/DangerousGoodsBasic.c new file mode 100644 index 0000000..129fbef --- /dev/null +++ b/vcits/cam/src/DangerousGoodsBasic.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "DangerousGoodsBasic.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DangerousGoodsBasic_value2enum_1[] = { + { 0, 11, "explosives1" }, + { 1, 11, "explosives2" }, + { 2, 11, "explosives3" }, + { 3, 11, "explosives4" }, + { 4, 11, "explosives5" }, + { 5, 11, "explosives6" }, + { 6, 14, "flammableGases" }, + { 7, 17, "nonFlammableGases" }, + { 8, 10, "toxicGases" }, + { 9, 16, "flammableLiquids" }, + { 10, 15, "flammableSolids" }, + { 11, 39, "substancesLiableToSpontaneousCombustion" }, + { 12, 52, "substancesEmittingFlammableGasesUponContactWithWater" }, + { 13, 19, "oxidizingSubstances" }, + { 14, 16, "organicPeroxides" }, + { 15, 15, "toxicSubstances" }, + { 16, 20, "infectiousSubstances" }, + { 17, 19, "radioactiveMaterial" }, + { 18, 19, "corrosiveSubstances" }, + { 19, 32, "miscellaneousDangerousSubstances" } +}; +static const unsigned int asn_MAP_DangerousGoodsBasic_enum2value_1[] = { + 18, /* corrosiveSubstances(18) */ + 0, /* explosives1(0) */ + 1, /* explosives2(1) */ + 2, /* explosives3(2) */ + 3, /* explosives4(3) */ + 4, /* explosives5(4) */ + 5, /* explosives6(5) */ + 6, /* flammableGases(6) */ + 9, /* flammableLiquids(9) */ + 10, /* flammableSolids(10) */ + 16, /* infectiousSubstances(16) */ + 19, /* miscellaneousDangerousSubstances(19) */ + 7, /* nonFlammableGases(7) */ + 14, /* organicPeroxides(14) */ + 13, /* oxidizingSubstances(13) */ + 17, /* radioactiveMaterial(17) */ + 12, /* substancesEmittingFlammableGasesUponContactWithWater(12) */ + 11, /* substancesLiableToSpontaneousCombustion(11) */ + 8, /* toxicGases(8) */ + 15 /* toxicSubstances(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1 = { + asn_MAP_DangerousGoodsBasic_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DangerousGoodsBasic_enum2value_1, /* N => "tag"; sorted by N */ + 20, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic = { + "DangerousGoodsBasic", + "DangerousGoodsBasic", + &asn_OP_NativeEnumerated, + asn_DEF_DangerousGoodsBasic_tags_1, + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousGoodsBasic_constr_1, &asn_PER_type_DangerousGoodsBasic_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DangerousGoodsBasic_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/DangerousGoodsContainer.c b/vcits/cam/src/DangerousGoodsContainer.c new file mode 100644 index 0000000..5834bc3 --- /dev/null +++ b/vcits/cam/src/DangerousGoodsContainer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "DangerousGoodsContainer.h" + +asn_TYPE_member_t asn_MBR_DangerousGoodsContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsContainer, dangerousGoodsBasic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsBasic, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dangerousGoodsBasic" + }, +}; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DangerousGoodsContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dangerousGoodsBasic */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DangerousGoodsContainer_specs_1 = { + sizeof(struct DangerousGoodsContainer), + offsetof(struct DangerousGoodsContainer, _asn_ctx), + asn_MAP_DangerousGoodsContainer_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsContainer = { + "DangerousGoodsContainer", + "DangerousGoodsContainer", + &asn_OP_SEQUENCE, + asn_DEF_DangerousGoodsContainer_tags_1, + sizeof(asn_DEF_DangerousGoodsContainer_tags_1) + /sizeof(asn_DEF_DangerousGoodsContainer_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsContainer_tags_1) + /sizeof(asn_DEF_DangerousGoodsContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DangerousGoodsContainer_1, + 1, /* Elements count */ + &asn_SPC_DangerousGoodsContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/DangerousGoodsExtended.c b/vcits/cam/src/DangerousGoodsExtended.c new file mode 100644 index 0000000..6d00ddb --- /dev/null +++ b/vcits/cam/src/DangerousGoodsExtended.c @@ -0,0 +1,243 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "DangerousGoodsExtended.h" + +static int check_permitted_alphabet_7(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_unNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 9999)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_emergencyActionCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 24) + && !check_permitted_alphabet_7(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_companyName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const UTF8String_t *st = (const UTF8String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = UTF8String_length(st); + if((ssize_t)size < 0) { + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((size >= 1 && size <= 24)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_unNumber_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..9999) */, + -1}; +static asn_per_constraints_t asn_PER_memb_unNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 9999 } /* (0..9999) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..24)) */}; +static asn_per_constraints_t asn_PER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 5, 5, 1, 24 } /* (SIZE(1..24)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_companyName_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_companyName_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DangerousGoodsExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsBasic, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dangerousGoodsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, unNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_unNumber_constr_3, &asn_PER_memb_unNumber_constr_3, memb_unNumber_constraint_1 }, + 0, 0, /* No default value */ + "unNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, elevatedTemperature), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevatedTemperature" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, tunnelsRestricted), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tunnelsRestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, limitedQuantity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "limitedQuantity" + }, + { ATF_POINTER, 3, offsetof(struct DangerousGoodsExtended, emergencyActionCode), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_emergencyActionCode_constr_7, &asn_PER_memb_emergencyActionCode_constr_7, memb_emergencyActionCode_constraint_1 }, + 0, 0, /* No default value */ + "emergencyActionCode" + }, + { ATF_POINTER, 2, offsetof(struct DangerousGoodsExtended, phoneNumber), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhoneNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phoneNumber" + }, + { ATF_POINTER, 1, offsetof(struct DangerousGoodsExtended, companyName), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { &asn_OER_memb_companyName_constr_9, &asn_PER_memb_companyName_constr_9, memb_companyName_constraint_1 }, + 0, 0, /* No default value */ + "companyName" + }, +}; +static const int asn_MAP_DangerousGoodsExtended_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DangerousGoodsExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dangerousGoodsType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* unNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevatedTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tunnelsRestricted */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* limitedQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyActionCode */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* phoneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* companyName */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DangerousGoodsExtended_specs_1 = { + sizeof(struct DangerousGoodsExtended), + offsetof(struct DangerousGoodsExtended, _asn_ctx), + asn_MAP_DangerousGoodsExtended_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_DangerousGoodsExtended_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended = { + "DangerousGoodsExtended", + "DangerousGoodsExtended", + &asn_OP_SEQUENCE, + asn_DEF_DangerousGoodsExtended_tags_1, + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DangerousGoodsExtended_1, + 8, /* Elements count */ + &asn_SPC_DangerousGoodsExtended_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/DangerousSituationSubCauseCode.c b/vcits/cam/src/DangerousSituationSubCauseCode.c new file mode 100644 index 0000000..7465913 --- /dev/null +++ b/vcits/cam/src/DangerousSituationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "DangerousSituationSubCauseCode.h" + +int +DangerousSituationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousSituationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode = { + "DangerousSituationSubCauseCode", + "DangerousSituationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousSituationSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousSituationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousSituationSubCauseCode_constr_1, &asn_PER_type_DangerousSituationSubCauseCode_constr_1, DangerousSituationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/DeltaAltitude.c b/vcits/cam/src/DeltaAltitude.c new file mode 100644 index 0000000..74bd504 --- /dev/null +++ b/vcits/cam/src/DeltaAltitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "DeltaAltitude.h" + +int +DeltaAltitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -12700 && value <= 12800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-12700..12800) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, -12700, 12800 } /* (-12700..12800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAltitude = { + "DeltaAltitude", + "DeltaAltitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaAltitude_tags_1, + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAltitude_constr_1, &asn_PER_type_DeltaAltitude_constr_1, DeltaAltitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/DeltaLatitude.c b/vcits/cam/src/DeltaLatitude.c new file mode 100644 index 0000000..197f138 --- /dev/null +++ b/vcits/cam/src/DeltaLatitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "DeltaLatitude.h" + +int +DeltaLatitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLatitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLatitude = { + "DeltaLatitude", + "DeltaLatitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLatitude_tags_1, + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLatitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLatitude_constr_1, &asn_PER_type_DeltaLatitude_constr_1, DeltaLatitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/DeltaLongitude.c b/vcits/cam/src/DeltaLongitude.c new file mode 100644 index 0000000..da1d9a1 --- /dev/null +++ b/vcits/cam/src/DeltaLongitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "DeltaLongitude.h" + +int +DeltaLongitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLongitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLongitude = { + "DeltaLongitude", + "DeltaLongitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLongitude_tags_1, + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLongitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLongitude_constr_1, &asn_PER_type_DeltaLongitude_constr_1, DeltaLongitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/DeltaReferencePosition.c b/vcits/cam/src/DeltaReferencePosition.c new file mode 100644 index 0000000..3f95bdf --- /dev/null +++ b/vcits/cam/src/DeltaReferencePosition.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "DeltaReferencePosition.h" + +asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLatitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLongitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLongitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaAltitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_DeltaReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DeltaReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* deltaAltitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1 = { + sizeof(struct DeltaReferencePosition), + offsetof(struct DeltaReferencePosition, _asn_ctx), + asn_MAP_DeltaReferencePosition_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition = { + "DeltaReferencePosition", + "DeltaReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_DeltaReferencePosition_tags_1, + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_DeltaReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DeltaReferencePosition_1, + 3, /* Elements count */ + &asn_SPC_DeltaReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/DigitalMap.c b/vcits/cam/src/DigitalMap.c new file mode 100644 index 0000000..9ad2321 --- /dev/null +++ b/vcits/cam/src/DigitalMap.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "DigitalMap.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_DigitalMap_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_DigitalMap_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DigitalMap_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DigitalMap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DigitalMap_specs_1 = { + sizeof(struct DigitalMap), + offsetof(struct DigitalMap, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DigitalMap = { + "DigitalMap", + "DigitalMap", + &asn_OP_SEQUENCE_OF, + asn_DEF_DigitalMap_tags_1, + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + asn_DEF_DigitalMap_tags_1, /* Same as above */ + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + { &asn_OER_type_DigitalMap_constr_1, &asn_PER_type_DigitalMap_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DigitalMap_1, + 1, /* Single element */ + &asn_SPC_DigitalMap_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/DriveDirection.c b/vcits/cam/src/DriveDirection.c new file mode 100644 index 0000000..1be5dbd --- /dev/null +++ b/vcits/cam/src/DriveDirection.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "DriveDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DriveDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DriveDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DriveDirection_value2enum_1[] = { + { 0, 7, "forward" }, + { 1, 8, "backward" }, + { 2, 11, "unavailable" } +}; +static const unsigned int asn_MAP_DriveDirection_enum2value_1[] = { + 1, /* backward(1) */ + 0, /* forward(0) */ + 2 /* unavailable(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DriveDirection_specs_1 = { + asn_MAP_DriveDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DriveDirection_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DriveDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DriveDirection = { + "DriveDirection", + "DriveDirection", + &asn_OP_NativeEnumerated, + asn_DEF_DriveDirection_tags_1, + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + asn_DEF_DriveDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_DriveDirection_constr_1, &asn_PER_type_DriveDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DriveDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/DrivingLaneStatus.c b/vcits/cam/src/DrivingLaneStatus.c new file mode 100644 index 0000000..9b75768 --- /dev/null +++ b/vcits/cam/src/DrivingLaneStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "DrivingLaneStatus.h" + +int +DrivingLaneStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size >= 1 && size <= 13)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..13)) */}; +asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 13 } /* (SIZE(1..13)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivingLaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus = { + "DrivingLaneStatus", + "DrivingLaneStatus", + &asn_OP_BIT_STRING, + asn_DEF_DrivingLaneStatus_tags_1, + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + asn_DEF_DrivingLaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivingLaneStatus_constr_1, &asn_PER_type_DrivingLaneStatus_constr_1, DrivingLaneStatus_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cam/src/EmbarkationStatus.c b/vcits/cam/src/EmbarkationStatus.c new file mode 100644 index 0000000..3af43a8 --- /dev/null +++ b/vcits/cam/src/EmbarkationStatus.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "EmbarkationStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_EmbarkationStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus = { + "EmbarkationStatus", + "EmbarkationStatus", + &asn_OP_BOOLEAN, + asn_DEF_EmbarkationStatus_tags_1, + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + asn_DEF_EmbarkationStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/EmergencyContainer.c b/vcits/cam/src/EmergencyContainer.c new file mode 100644 index 0000000..d565883 --- /dev/null +++ b/vcits/cam/src/EmergencyContainer.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "EmergencyContainer.h" + +#include "CauseCode.h" +asn_TYPE_member_t asn_MBR_EmergencyContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EmergencyContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LightBarSirenInUse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, + { ATF_POINTER, 2, offsetof(struct EmergencyContainer, incidentIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "incidentIndication" + }, + { ATF_POINTER, 1, offsetof(struct EmergencyContainer, emergencyPriority), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmergencyPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyPriority" + }, +}; +static const int asn_MAP_EmergencyContainer_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_EmergencyContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EmergencyContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lightBarSirenInUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* incidentIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* emergencyPriority */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EmergencyContainer_specs_1 = { + sizeof(struct EmergencyContainer), + offsetof(struct EmergencyContainer, _asn_ctx), + asn_MAP_EmergencyContainer_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_EmergencyContainer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyContainer = { + "EmergencyContainer", + "EmergencyContainer", + &asn_OP_SEQUENCE, + asn_DEF_EmergencyContainer_tags_1, + sizeof(asn_DEF_EmergencyContainer_tags_1) + /sizeof(asn_DEF_EmergencyContainer_tags_1[0]), /* 1 */ + asn_DEF_EmergencyContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyContainer_tags_1) + /sizeof(asn_DEF_EmergencyContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EmergencyContainer_1, + 3, /* Elements count */ + &asn_SPC_EmergencyContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/EmergencyPriority.c b/vcits/cam/src/EmergencyPriority.c new file mode 100644 index 0000000..75f3088 --- /dev/null +++ b/vcits/cam/src/EmergencyPriority.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "EmergencyPriority.h" + +int +EmergencyPriority_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +asn_per_constraints_t asn_PER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyPriority = { + "EmergencyPriority", + "EmergencyPriority", + &asn_OP_BIT_STRING, + asn_DEF_EmergencyPriority_tags_1, + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + asn_DEF_EmergencyPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyPriority_constr_1, &asn_PER_type_EmergencyPriority_constr_1, EmergencyPriority_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cam/src/EmergencyVehicleApproachingSubCauseCode.c b/vcits/cam/src/EmergencyVehicleApproachingSubCauseCode.c new file mode 100644 index 0000000..e6a9487 --- /dev/null +++ b/vcits/cam/src/EmergencyVehicleApproachingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "EmergencyVehicleApproachingSubCauseCode.h" + +int +EmergencyVehicleApproachingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode = { + "EmergencyVehicleApproachingSubCauseCode", + "EmergencyVehicleApproachingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, &asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, EmergencyVehicleApproachingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/EnergyStorageType.c b/vcits/cam/src/EnergyStorageType.c new file mode 100644 index 0000000..1ded880 --- /dev/null +++ b/vcits/cam/src/EnergyStorageType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "EnergyStorageType.h" + +int +EnergyStorageType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EnergyStorageType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EnergyStorageType = { + "EnergyStorageType", + "EnergyStorageType", + &asn_OP_BIT_STRING, + asn_DEF_EnergyStorageType_tags_1, + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + asn_DEF_EnergyStorageType_tags_1, /* Same as above */ + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + { &asn_OER_type_EnergyStorageType_constr_1, &asn_PER_type_EnergyStorageType_constr_1, EnergyStorageType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cam/src/EventHistory.c b/vcits/cam/src/EventHistory.c new file mode 100644 index 0000000..09e3c2b --- /dev/null +++ b/vcits/cam/src/EventHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "EventHistory.h" + +#include "EventPoint.h" +static asn_oer_constraints_t asn_OER_type_EventHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..23)) */}; +static asn_per_constraints_t asn_PER_type_EventHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (SIZE(1..23)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EventHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EventPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EventHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_EventHistory_specs_1 = { + sizeof(struct EventHistory), + offsetof(struct EventHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EventHistory = { + "EventHistory", + "EventHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_EventHistory_tags_1, + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + asn_DEF_EventHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_EventHistory_constr_1, &asn_PER_type_EventHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EventHistory_1, + 1, /* Single element */ + &asn_SPC_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/EventPoint.c b/vcits/cam/src/EventPoint.c new file mode 100644 index 0000000..4985baa --- /dev/null +++ b/vcits/cam/src/EventPoint.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "EventPoint.h" + +asn_TYPE_member_t asn_MBR_EventPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventPosition" + }, + { ATF_POINTER, 1, offsetof(struct EventPoint, eventDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InformationQuality, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "informationQuality" + }, +}; +static const int asn_MAP_EventPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_EventPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EventPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* informationQuality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1 = { + sizeof(struct EventPoint), + offsetof(struct EventPoint, _asn_ctx), + asn_MAP_EventPoint_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_EventPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EventPoint = { + "EventPoint", + "EventPoint", + &asn_OP_SEQUENCE, + asn_DEF_EventPoint_tags_1, + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + asn_DEF_EventPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EventPoint_1, + 3, /* Elements count */ + &asn_SPC_EventPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/ExteriorLights.c b/vcits/cam/src/ExteriorLights.c new file mode 100644 index 0000000..51d860f --- /dev/null +++ b/vcits/cam/src/ExteriorLights.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "ExteriorLights.h" + +int +ExteriorLights_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_ExteriorLights_tags_1, + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + { &asn_OER_type_ExteriorLights_constr_1, &asn_PER_type_ExteriorLights_constr_1, ExteriorLights_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cam/src/GenerationDeltaTime.c b/vcits/cam/src/GenerationDeltaTime.c new file mode 100644 index 0000000..efbb22b --- /dev/null +++ b/vcits/cam/src/GenerationDeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "GenerationDeltaTime.h" + +int +GenerationDeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GenerationDeltaTime_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_GenerationDeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GenerationDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GenerationDeltaTime = { + "GenerationDeltaTime", + "GenerationDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_GenerationDeltaTime_tags_1, + sizeof(asn_DEF_GenerationDeltaTime_tags_1) + /sizeof(asn_DEF_GenerationDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_GenerationDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_GenerationDeltaTime_tags_1) + /sizeof(asn_DEF_GenerationDeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_GenerationDeltaTime_constr_1, &asn_PER_type_GenerationDeltaTime_constr_1, GenerationDeltaTime_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/HardShoulderStatus.c b/vcits/cam/src/HardShoulderStatus.c new file mode 100644 index 0000000..33443d4 --- /dev/null +++ b/vcits/cam/src/HardShoulderStatus.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "HardShoulderStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HardShoulderStatus_value2enum_1[] = { + { 0, 20, "availableForStopping" }, + { 1, 6, "closed" }, + { 2, 19, "availableForDriving" } +}; +static const unsigned int asn_MAP_HardShoulderStatus_enum2value_1[] = { + 2, /* availableForDriving(2) */ + 0, /* availableForStopping(0) */ + 1 /* closed(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1 = { + asn_MAP_HardShoulderStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HardShoulderStatus_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HardShoulderStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus = { + "HardShoulderStatus", + "HardShoulderStatus", + &asn_OP_NativeEnumerated, + asn_DEF_HardShoulderStatus_tags_1, + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + asn_DEF_HardShoulderStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_HardShoulderStatus_constr_1, &asn_PER_type_HardShoulderStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HardShoulderStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c b/vcits/cam/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..416d287 --- /dev/null +++ b/vcits/cam/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "HazardousLocation-AnimalOnTheRoadSubCauseCode.h" + +int +HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode = { + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/HazardousLocation-DangerousCurveSubCauseCode.c b/vcits/cam/src/HazardousLocation-DangerousCurveSubCauseCode.c new file mode 100644 index 0000000..66d64fb --- /dev/null +++ b/vcits/cam/src/HazardousLocation-DangerousCurveSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "HazardousLocation-DangerousCurveSubCauseCode.h" + +int +HazardousLocation_DangerousCurveSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode = { + "HazardousLocation-DangerousCurveSubCauseCode", + "HazardousLocation-DangerousCurveSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, HazardousLocation_DangerousCurveSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c b/vcits/cam/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..2eaa3ef --- /dev/null +++ b/vcits/cam/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" + +int +HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode = { + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/HazardousLocation-SurfaceConditionSubCauseCode.c b/vcits/cam/src/HazardousLocation-SurfaceConditionSubCauseCode.c new file mode 100644 index 0000000..16204a0 --- /dev/null +++ b/vcits/cam/src/HazardousLocation-SurfaceConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "HazardousLocation-SurfaceConditionSubCauseCode.h" + +int +HazardousLocation_SurfaceConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode = { + "HazardousLocation-SurfaceConditionSubCauseCode", + "HazardousLocation-SurfaceConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, HazardousLocation_SurfaceConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/Heading.c b/vcits/cam/src/Heading.c new file mode 100644 index 0000000..b3083b9 --- /dev/null +++ b/vcits/cam/src/Heading.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "Heading.h" + +asn_TYPE_member_t asn_MBR_Heading_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Heading_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* headingValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* headingConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Heading_specs_1 = { + sizeof(struct Heading), + offsetof(struct Heading, _asn_ctx), + asn_MAP_Heading_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Heading = { + "Heading", + "Heading", + &asn_OP_SEQUENCE, + asn_DEF_Heading_tags_1, + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + asn_DEF_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Heading_1, + 2, /* Elements count */ + &asn_SPC_Heading_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/HeadingConfidence.c b/vcits/cam/src/HeadingConfidence.c new file mode 100644 index 0000000..c2d53a8 --- /dev/null +++ b/vcits/cam/src/HeadingConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "HeadingConfidence.h" + +int +HeadingConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeInteger, + asn_DEF_HeadingConfidence_tags_1, + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidence_constr_1, &asn_PER_type_HeadingConfidence_constr_1, HeadingConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/HeadingValue.c b/vcits/cam/src/HeadingValue.c new file mode 100644 index 0000000..87035e1 --- /dev/null +++ b/vcits/cam/src/HeadingValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "HeadingValue.h" + +int +HeadingValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3601)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3601) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingValue = { + "HeadingValue", + "HeadingValue", + &asn_OP_NativeInteger, + asn_DEF_HeadingValue_tags_1, + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + asn_DEF_HeadingValue_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingValue_constr_1, &asn_PER_type_HeadingValue_constr_1, HeadingValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/HeightLonCarr.c b/vcits/cam/src/HeightLonCarr.c new file mode 100644 index 0000000..349b70c --- /dev/null +++ b/vcits/cam/src/HeightLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "HeightLonCarr.h" + +int +HeightLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..100) */, + -1}; +static asn_per_constraints_t asn_PER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 100 } /* (1..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeightLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeightLonCarr = { + "HeightLonCarr", + "HeightLonCarr", + &asn_OP_NativeInteger, + asn_DEF_HeightLonCarr_tags_1, + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + asn_DEF_HeightLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_HeightLonCarr_constr_1, &asn_PER_type_HeightLonCarr_constr_1, HeightLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/HighFrequencyContainer.c b/vcits/cam/src/HighFrequencyContainer.c new file mode 100644 index 0000000..6c853cf --- /dev/null +++ b/vcits/cam/src/HighFrequencyContainer.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "HighFrequencyContainer.h" + +static asn_oer_constraints_t asn_OER_type_HighFrequencyContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HighFrequencyContainer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_HighFrequencyContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct HighFrequencyContainer, choice.basicVehicleContainerHighFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleContainerHighFrequency, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "basicVehicleContainerHighFrequency" + }, + { ATF_NOFLAGS, 0, offsetof(struct HighFrequencyContainer, choice.rsuContainerHighFrequency), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSUContainerHighFrequency, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsuContainerHighFrequency" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_HighFrequencyContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicVehicleContainerHighFrequency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rsuContainerHighFrequency */ +}; +asn_CHOICE_specifics_t asn_SPC_HighFrequencyContainer_specs_1 = { + sizeof(struct HighFrequencyContainer), + offsetof(struct HighFrequencyContainer, _asn_ctx), + offsetof(struct HighFrequencyContainer, present), + sizeof(((struct HighFrequencyContainer *)0)->present), + asn_MAP_HighFrequencyContainer_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_HighFrequencyContainer = { + "HighFrequencyContainer", + "HighFrequencyContainer", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_HighFrequencyContainer_constr_1, &asn_PER_type_HighFrequencyContainer_constr_1, CHOICE_constraint }, + asn_MBR_HighFrequencyContainer_1, + 2, /* Elements count */ + &asn_SPC_HighFrequencyContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/HumanPresenceOnTheRoadSubCauseCode.c b/vcits/cam/src/HumanPresenceOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..9aa36e1 --- /dev/null +++ b/vcits/cam/src/HumanPresenceOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "HumanPresenceOnTheRoadSubCauseCode.h" + +int +HumanPresenceOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode = { + "HumanPresenceOnTheRoadSubCauseCode", + "HumanPresenceOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, HumanPresenceOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/HumanProblemSubCauseCode.c b/vcits/cam/src/HumanProblemSubCauseCode.c new file mode 100644 index 0000000..98e073c --- /dev/null +++ b/vcits/cam/src/HumanProblemSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "HumanProblemSubCauseCode.h" + +int +HumanProblemSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanProblemSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode = { + "HumanProblemSubCauseCode", + "HumanProblemSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanProblemSubCauseCode_tags_1, + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanProblemSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanProblemSubCauseCode_constr_1, &asn_PER_type_HumanProblemSubCauseCode_constr_1, HumanProblemSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/InformationQuality.c b/vcits/cam/src/InformationQuality.c new file mode 100644 index 0000000..4fbca76 --- /dev/null +++ b/vcits/cam/src/InformationQuality.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "InformationQuality.h" + +int +InformationQuality_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_InformationQuality_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_InformationQuality_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_InformationQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InformationQuality = { + "InformationQuality", + "InformationQuality", + &asn_OP_NativeInteger, + asn_DEF_InformationQuality_tags_1, + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + asn_DEF_InformationQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + { &asn_OER_type_InformationQuality_constr_1, &asn_PER_type_InformationQuality_constr_1, InformationQuality_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/ItineraryPath.c b/vcits/cam/src/ItineraryPath.c new file mode 100644 index 0000000..8f93ce9 --- /dev/null +++ b/vcits/cam/src/ItineraryPath.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "ItineraryPath.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..40)) */}; +static asn_per_constraints_t asn_PER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 40 } /* (SIZE(1..40)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ItineraryPath_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItineraryPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ItineraryPath_specs_1 = { + sizeof(struct ItineraryPath), + offsetof(struct ItineraryPath, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItineraryPath = { + "ItineraryPath", + "ItineraryPath", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItineraryPath_tags_1, + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + asn_DEF_ItineraryPath_tags_1, /* Same as above */ + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + { &asn_OER_type_ItineraryPath_constr_1, &asn_PER_type_ItineraryPath_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItineraryPath_1, + 1, /* Single element */ + &asn_SPC_ItineraryPath_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/ItsPduHeader.c b/vcits/cam/src/ItsPduHeader.c new file mode 100644 index 0000000..adbd55f --- /dev/null +++ b/vcits/cam/src/ItsPduHeader.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "ItsPduHeader.h" + +static int +memb_protocolVersion_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_messageID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_messageID_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_messageID_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsPduHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, protocolVersion), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_protocolVersion_constr_2, &asn_PER_memb_protocolVersion_constr_2, memb_protocolVersion_constraint_1 }, + 0, 0, /* No default value */ + "protocolVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, messageID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_messageID_constr_3, &asn_PER_memb_messageID_constr_3, memb_messageID_constraint_1 }, + 0, 0, /* No default value */ + "messageID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, stationID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsPduHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsPduHeader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolVersion */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* messageID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* stationID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1 = { + sizeof(struct ItsPduHeader), + offsetof(struct ItsPduHeader, _asn_ctx), + asn_MAP_ItsPduHeader_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsPduHeader = { + "ItsPduHeader", + "ItsPduHeader", + &asn_OP_SEQUENCE, + asn_DEF_ItsPduHeader_tags_1, + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + asn_DEF_ItsPduHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsPduHeader_1, + 3, /* Elements count */ + &asn_SPC_ItsPduHeader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/LanePosition.c b/vcits/cam/src/LanePosition.c new file mode 100644 index 0000000..b108f98 --- /dev/null +++ b/vcits/cam/src/LanePosition.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "LanePosition.h" + +int +LanePosition_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1 && value <= 14)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LanePosition_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-1..14) */, + -1}; +asn_per_constraints_t asn_PER_type_LanePosition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, -1, 14 } /* (-1..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LanePosition = { + "LanePosition", + "LanePosition", + &asn_OP_NativeInteger, + asn_DEF_LanePosition_tags_1, + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + asn_DEF_LanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + { &asn_OER_type_LanePosition_constr_1, &asn_PER_type_LanePosition_constr_1, LanePosition_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/LateralAcceleration.c b/vcits/cam/src/LateralAcceleration.c new file mode 100644 index 0000000..0dfd743 --- /dev/null +++ b/vcits/cam/src/LateralAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "LateralAcceleration.h" + +asn_TYPE_member_t asn_MBR_LateralAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LateralAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LateralAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LateralAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateralAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lateralAccelerationConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LateralAcceleration_specs_1 = { + sizeof(struct LateralAcceleration), + offsetof(struct LateralAcceleration, _asn_ctx), + asn_MAP_LateralAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LateralAcceleration = { + "LateralAcceleration", + "LateralAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LateralAcceleration_tags_1, + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LateralAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LateralAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LateralAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/LateralAccelerationValue.c b/vcits/cam/src/LateralAccelerationValue.c new file mode 100644 index 0000000..636a226 --- /dev/null +++ b/vcits/cam/src/LateralAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "LateralAccelerationValue.h" + +int +LateralAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LateralAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue = { + "LateralAccelerationValue", + "LateralAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LateralAccelerationValue_tags_1, + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LateralAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LateralAccelerationValue_constr_1, &asn_PER_type_LateralAccelerationValue_constr_1, LateralAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/Latitude.c b/vcits/cam/src/Latitude.c new file mode 100644 index 0000000..a7a644d --- /dev/null +++ b/vcits/cam/src/Latitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "Latitude.h" + +int +Latitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -900000000 && value <= 900000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Latitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-900000000..900000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Latitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 31, -1, -900000000, 900000001 } /* (-900000000..900000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_Latitude_tags_1, + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + asn_DEF_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Latitude_constr_1, &asn_PER_type_Latitude_constr_1, Latitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/LightBarSirenInUse.c b/vcits/cam/src/LightBarSirenInUse.c new file mode 100644 index 0000000..da54e47 --- /dev/null +++ b/vcits/cam/src/LightBarSirenInUse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "LightBarSirenInUse.h" + +int +LightBarSirenInUse_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +asn_per_constraints_t asn_PER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LightBarSirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse = { + "LightBarSirenInUse", + "LightBarSirenInUse", + &asn_OP_BIT_STRING, + asn_DEF_LightBarSirenInUse_tags_1, + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + asn_DEF_LightBarSirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + { &asn_OER_type_LightBarSirenInUse_constr_1, &asn_PER_type_LightBarSirenInUse_constr_1, LightBarSirenInUse_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cam/src/Longitude.c b/vcits/cam/src/Longitude.c new file mode 100644 index 0000000..14ec28b --- /dev/null +++ b/vcits/cam/src/Longitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "Longitude.h" + +int +Longitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1800000000 && value <= 1800000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Longitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-1800000000..1800000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Longitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, -1800000000, 1800000001 } /* (-1800000000..1800000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_Longitude_tags_1, + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + asn_DEF_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Longitude_constr_1, &asn_PER_type_Longitude_constr_1, Longitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/LongitudinalAcceleration.c b/vcits/cam/src/LongitudinalAcceleration.c new file mode 100644 index 0000000..462a36c --- /dev/null +++ b/vcits/cam/src/LongitudinalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "LongitudinalAcceleration.h" + +asn_TYPE_member_t asn_MBR_LongitudinalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LongitudinalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longitudinalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalAccelerationConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LongitudinalAcceleration_specs_1 = { + sizeof(struct LongitudinalAcceleration), + offsetof(struct LongitudinalAcceleration, _asn_ctx), + asn_MAP_LongitudinalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration = { + "LongitudinalAcceleration", + "LongitudinalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LongitudinalAcceleration_tags_1, + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LongitudinalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LongitudinalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/LongitudinalAccelerationValue.c b/vcits/cam/src/LongitudinalAccelerationValue.c new file mode 100644 index 0000000..11b2e85 --- /dev/null +++ b/vcits/cam/src/LongitudinalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "LongitudinalAccelerationValue.h" + +int +LongitudinalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue = { + "LongitudinalAccelerationValue", + "LongitudinalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LongitudinalAccelerationValue_tags_1, + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LongitudinalAccelerationValue_constr_1, &asn_PER_type_LongitudinalAccelerationValue_constr_1, LongitudinalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/LowFrequencyContainer.c b/vcits/cam/src/LowFrequencyContainer.c new file mode 100644 index 0000000..a970ef1 --- /dev/null +++ b/vcits/cam/src/LowFrequencyContainer.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "LowFrequencyContainer.h" + +static asn_oer_constraints_t asn_OER_type_LowFrequencyContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LowFrequencyContainer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LowFrequencyContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LowFrequencyContainer, choice.basicVehicleContainerLowFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleContainerLowFrequency, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "basicVehicleContainerLowFrequency" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LowFrequencyContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* basicVehicleContainerLowFrequency */ +}; +asn_CHOICE_specifics_t asn_SPC_LowFrequencyContainer_specs_1 = { + sizeof(struct LowFrequencyContainer), + offsetof(struct LowFrequencyContainer, _asn_ctx), + offsetof(struct LowFrequencyContainer, present), + sizeof(((struct LowFrequencyContainer *)0)->present), + asn_MAP_LowFrequencyContainer_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LowFrequencyContainer = { + "LowFrequencyContainer", + "LowFrequencyContainer", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LowFrequencyContainer_constr_1, &asn_PER_type_LowFrequencyContainer_constr_1, CHOICE_constraint }, + asn_MBR_LowFrequencyContainer_1, + 1, /* Elements count */ + &asn_SPC_LowFrequencyContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/NumberOfOccupants.c b/vcits/cam/src/NumberOfOccupants.c new file mode 100644 index 0000000..8b41fe2 --- /dev/null +++ b/vcits/cam/src/NumberOfOccupants.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "NumberOfOccupants.h" + +int +NumberOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_NumberOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants = { + "NumberOfOccupants", + "NumberOfOccupants", + &asn_OP_NativeInteger, + asn_DEF_NumberOfOccupants_tags_1, + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_NumberOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_NumberOfOccupants_constr_1, &asn_PER_type_NumberOfOccupants_constr_1, NumberOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/OpeningDaysHours.c b/vcits/cam/src/OpeningDaysHours.c new file mode 100644 index 0000000..60e514b --- /dev/null +++ b/vcits/cam/src/OpeningDaysHours.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "OpeningDaysHours.h" + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_OpeningDaysHours_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours = { + "OpeningDaysHours", + "OpeningDaysHours", + &asn_OP_UTF8String, + asn_DEF_OpeningDaysHours_tags_1, + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + asn_DEF_OpeningDaysHours_tags_1, /* Same as above */ + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + { 0, 0, UTF8String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/PathDeltaTime.c b/vcits/cam/src/PathDeltaTime.c new file mode 100644 index 0000000..7575013 --- /dev/null +++ b/vcits/cam/src/PathDeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PathDeltaTime.h" + +int +PathDeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PathDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PathDeltaTime = { + "PathDeltaTime", + "PathDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_PathDeltaTime_tags_1, + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_PathDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_PathDeltaTime_constr_1, &asn_PER_type_PathDeltaTime_constr_1, PathDeltaTime_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/PathHistory.c b/vcits/cam/src/PathHistory.c new file mode 100644 index 0000000..2678350 --- /dev/null +++ b/vcits/cam/src/PathHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PathHistory.h" + +#include "PathPoint.h" +static asn_oer_constraints_t asn_OER_type_PathHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..40)) */}; +asn_per_constraints_t asn_PER_type_PathHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 40 } /* (SIZE(0..40)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PathHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1 = { + sizeof(struct PathHistory), + offsetof(struct PathHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_PathHistory_tags_1, + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_PathHistory_constr_1, &asn_PER_type_PathHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PathHistory_1, + 1, /* Single element */ + &asn_SPC_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/PathPoint.c b/vcits/cam/src/PathPoint.c new file mode 100644 index 0000000..9e0866e --- /dev/null +++ b/vcits/cam/src/PathPoint.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PathPoint.h" + +asn_TYPE_member_t asn_MBR_PathPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PathPoint, pathPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathPosition" + }, + { ATF_POINTER, 1, offsetof(struct PathPoint, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathDeltaTime" + }, +}; +static const int asn_MAP_PathPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PathPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PathPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pathDeltaTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1 = { + sizeof(struct PathPoint), + offsetof(struct PathPoint, _asn_ctx), + asn_MAP_PathPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PathPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PathPoint = { + "PathPoint", + "PathPoint", + &asn_OP_SEQUENCE, + asn_DEF_PathPoint_tags_1, + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + asn_DEF_PathPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PathPoint_1, + 2, /* Elements count */ + &asn_SPC_PathPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/PerformanceClass.c b/vcits/cam/src/PerformanceClass.c new file mode 100644 index 0000000..7c89888 --- /dev/null +++ b/vcits/cam/src/PerformanceClass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PerformanceClass.h" + +int +PerformanceClass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PerformanceClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PerformanceClass = { + "PerformanceClass", + "PerformanceClass", + &asn_OP_NativeInteger, + asn_DEF_PerformanceClass_tags_1, + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + asn_DEF_PerformanceClass_tags_1, /* Same as above */ + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + { &asn_OER_type_PerformanceClass_constr_1, &asn_PER_type_PerformanceClass_constr_1, PerformanceClass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/PhoneNumber.c b/vcits/cam/src/PhoneNumber.c new file mode 100644 index 0000000..570fc0f --- /dev/null +++ b/vcits/cam/src/PhoneNumber.c @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PhoneNumber.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* . */ + 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */ +}; +static const int permitted_alphabet_code2value_1[11] = { +32,48,49,50,51,52,53,54,55,56,57,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is NumericString */ + const NumericString_t *st = (const NumericString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +PhoneNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const NumericString_t *st = (const NumericString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 16) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_PhoneNumber_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_PhoneNumber_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using NumericString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 32, 57 } /* (32..57) */, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + asn_PER_MAP_PhoneNumber_1_v2c, /* Value to PER code map */ + asn_PER_MAP_PhoneNumber_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_PhoneNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PhoneNumber = { + "PhoneNumber", + "PhoneNumber", + &asn_OP_NumericString, + asn_DEF_PhoneNumber_tags_1, + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + asn_DEF_PhoneNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_PhoneNumber_constr_1, &asn_PER_type_PhoneNumber_constr_1, PhoneNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/PosCentMass.c b/vcits/cam/src/PosCentMass.c new file mode 100644 index 0000000..e4fa97d --- /dev/null +++ b/vcits/cam/src/PosCentMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PosCentMass.h" + +int +PosCentMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosCentMass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..63) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosCentMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosCentMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosCentMass = { + "PosCentMass", + "PosCentMass", + &asn_OP_NativeInteger, + asn_DEF_PosCentMass_tags_1, + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + asn_DEF_PosCentMass_tags_1, /* Same as above */ + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + { &asn_OER_type_PosCentMass_constr_1, &asn_PER_type_PosCentMass_constr_1, PosCentMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/PosConfidenceEllipse.c b/vcits/cam/src/PosConfidenceEllipse.c new file mode 100644 index 0000000..2992546 --- /dev/null +++ b/vcits/cam/src/PosConfidenceEllipse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PosConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMinorConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorOrientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PosConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PosConfidenceEllipse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* semiMajorOrientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1 = { + sizeof(struct PosConfidenceEllipse), + offsetof(struct PosConfidenceEllipse, _asn_ctx), + asn_MAP_PosConfidenceEllipse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse = { + "PosConfidenceEllipse", + "PosConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_PosConfidenceEllipse_tags_1, + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_PosConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PosConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_PosConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/PosFrontAx.c b/vcits/cam/src/PosFrontAx.c new file mode 100644 index 0000000..6bcd473 --- /dev/null +++ b/vcits/cam/src/PosFrontAx.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PosFrontAx.h" + +int +PosFrontAx_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..20) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (1..20) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosFrontAx_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosFrontAx = { + "PosFrontAx", + "PosFrontAx", + &asn_OP_NativeInteger, + asn_DEF_PosFrontAx_tags_1, + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + asn_DEF_PosFrontAx_tags_1, /* Same as above */ + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + { &asn_OER_type_PosFrontAx_constr_1, &asn_PER_type_PosFrontAx_constr_1, PosFrontAx_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/PosLonCarr.c b/vcits/cam/src/PosLonCarr.c new file mode 100644 index 0000000..ae10816 --- /dev/null +++ b/vcits/cam/src/PosLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PosLonCarr.h" + +int +PosLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosLonCarr = { + "PosLonCarr", + "PosLonCarr", + &asn_OP_NativeInteger, + asn_DEF_PosLonCarr_tags_1, + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + asn_DEF_PosLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_PosLonCarr_constr_1, &asn_PER_type_PosLonCarr_constr_1, PosLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/PosPillar.c b/vcits/cam/src/PosPillar.c new file mode 100644 index 0000000..76131b9 --- /dev/null +++ b/vcits/cam/src/PosPillar.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PosPillar.h" + +int +PosPillar_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 30)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosPillar_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..30) */, + -1}; +asn_per_constraints_t asn_PER_type_PosPillar_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 30 } /* (1..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosPillar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosPillar = { + "PosPillar", + "PosPillar", + &asn_OP_NativeInteger, + asn_DEF_PosPillar_tags_1, + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + asn_DEF_PosPillar_tags_1, /* Same as above */ + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + { &asn_OER_type_PosPillar_constr_1, &asn_PER_type_PosPillar_constr_1, PosPillar_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/PositionOfOccupants.c b/vcits/cam/src/PositionOfOccupants.c new file mode 100644 index 0000000..383920e --- /dev/null +++ b/vcits/cam/src/PositionOfOccupants.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PositionOfOccupants.h" + +int +PositionOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { 0, 0 }, + 20 /* (SIZE(20..20)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PositionOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants = { + "PositionOfOccupants", + "PositionOfOccupants", + &asn_OP_BIT_STRING, + asn_DEF_PositionOfOccupants_tags_1, + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_PositionOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfOccupants_constr_1, &asn_PER_type_PositionOfOccupants_constr_1, PositionOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cam/src/PositionOfPillars.c b/vcits/cam/src/PositionOfPillars.c new file mode 100644 index 0000000..2fb9ba3 --- /dev/null +++ b/vcits/cam/src/PositionOfPillars.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PositionOfPillars.h" + +static asn_oer_constraints_t asn_OER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_PositionOfPillars_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PosPillar, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionOfPillars_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_PositionOfPillars_specs_1 = { + sizeof(struct PositionOfPillars), + offsetof(struct PositionOfPillars, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfPillars = { + "PositionOfPillars", + "PositionOfPillars", + &asn_OP_SEQUENCE_OF, + asn_DEF_PositionOfPillars_tags_1, + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + asn_DEF_PositionOfPillars_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfPillars_constr_1, &asn_PER_type_PositionOfPillars_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PositionOfPillars_1, + 1, /* Single element */ + &asn_SPC_PositionOfPillars_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/PositioningSolutionType.c b/vcits/cam/src/PositioningSolutionType.c new file mode 100644 index 0000000..1edcba2 --- /dev/null +++ b/vcits/cam/src/PositioningSolutionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PositioningSolutionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositioningSolutionType_value2enum_1[] = { + { 0, 21, "noPositioningSolution" }, + { 1, 5, "sGNSS" }, + { 2, 5, "dGNSS" }, + { 3, 11, "sGNSSplusDR" }, + { 4, 11, "dGNSSplusDR" }, + { 5, 2, "dR" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PositioningSolutionType_enum2value_1[] = { + 2, /* dGNSS(2) */ + 4, /* dGNSSplusDR(4) */ + 5, /* dR(5) */ + 0, /* noPositioningSolution(0) */ + 1, /* sGNSS(1) */ + 3 /* sGNSSplusDR(3) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_PositioningSolutionType_specs_1 = { + asn_MAP_PositioningSolutionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositioningSolutionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositioningSolutionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType = { + "PositioningSolutionType", + "PositioningSolutionType", + &asn_OP_NativeEnumerated, + asn_DEF_PositioningSolutionType_tags_1, + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + asn_DEF_PositioningSolutionType_tags_1, /* Same as above */ + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + { &asn_OER_type_PositioningSolutionType_constr_1, &asn_PER_type_PositioningSolutionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositioningSolutionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/PostCrashSubCauseCode.c b/vcits/cam/src/PostCrashSubCauseCode.c new file mode 100644 index 0000000..01fbc84 --- /dev/null +++ b/vcits/cam/src/PostCrashSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PostCrashSubCauseCode.h" + +int +PostCrashSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PostCrashSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode = { + "PostCrashSubCauseCode", + "PostCrashSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_PostCrashSubCauseCode_tags_1, + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_PostCrashSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_PostCrashSubCauseCode_constr_1, &asn_PER_type_PostCrashSubCauseCode_constr_1, PostCrashSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/ProtectedCommunicationZone.c b/vcits/cam/src/ProtectedCommunicationZone.c new file mode 100644 index 0000000..a547b3e --- /dev/null +++ b/vcits/cam/src/ProtectedCommunicationZone.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "ProtectedCommunicationZone.h" + +asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneType" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expiryTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 2, offsetof(struct ProtectedCommunicationZone, protectedZoneRadius), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneRadius, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneRadius" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, protectedZoneID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneID" + }, +}; +static const int asn_MAP_ProtectedCommunicationZone_oms_1[] = { 1, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ProtectedCommunicationZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expiryTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protectedZoneRadius */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* protectedZoneID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1 = { + sizeof(struct ProtectedCommunicationZone), + offsetof(struct ProtectedCommunicationZone, _asn_ctx), + asn_MAP_ProtectedCommunicationZone_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ProtectedCommunicationZone_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone = { + "ProtectedCommunicationZone", + "ProtectedCommunicationZone", + &asn_OP_SEQUENCE, + asn_DEF_ProtectedCommunicationZone_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZone_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ProtectedCommunicationZone_1, + 6, /* Elements count */ + &asn_SPC_ProtectedCommunicationZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/ProtectedCommunicationZonesRSU.c b/vcits/cam/src/ProtectedCommunicationZonesRSU.c new file mode 100644 index 0000000..61a2712 --- /dev/null +++ b/vcits/cam/src/ProtectedCommunicationZonesRSU.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "ProtectedCommunicationZonesRSU.h" + +#include "ProtectedCommunicationZone.h" +static asn_oer_constraints_t asn_OER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ProtectedCommunicationZonesRSU_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtectedCommunicationZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZonesRSU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtectedCommunicationZonesRSU_specs_1 = { + sizeof(struct ProtectedCommunicationZonesRSU), + offsetof(struct ProtectedCommunicationZonesRSU, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU = { + "ProtectedCommunicationZonesRSU", + "ProtectedCommunicationZonesRSU", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedCommunicationZonesRSU_constr_1, &asn_PER_type_ProtectedCommunicationZonesRSU_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtectedCommunicationZonesRSU_1, + 1, /* Single element */ + &asn_SPC_ProtectedCommunicationZonesRSU_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/ProtectedZoneID.c b/vcits/cam/src/ProtectedZoneID.c new file mode 100644 index 0000000..106f977 --- /dev/null +++ b/vcits/cam/src/ProtectedZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "ProtectedZoneID.h" + +int +ProtectedZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID = { + "ProtectedZoneID", + "ProtectedZoneID", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneID_tags_1, + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneID_constr_1, &asn_PER_type_ProtectedZoneID_constr_1, ProtectedZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/ProtectedZoneRadius.c b/vcits/cam/src/ProtectedZoneRadius.c new file mode 100644 index 0000000..11f4f2e --- /dev/null +++ b/vcits/cam/src/ProtectedZoneRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "ProtectedZoneRadius.h" + +int +ProtectedZoneRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 255 } /* (1..255,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius = { + "ProtectedZoneRadius", + "ProtectedZoneRadius", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneRadius_tags_1, + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneRadius_constr_1, &asn_PER_type_ProtectedZoneRadius_constr_1, ProtectedZoneRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/ProtectedZoneType.c b/vcits/cam/src/ProtectedZoneType.c new file mode 100644 index 0000000..1c0618f --- /dev/null +++ b/vcits/cam/src/ProtectedZoneType.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "ProtectedZoneType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ProtectedZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ProtectedZoneType_enum2value_1[] = { + 0, /* permanentCenDsrcTolling(0) */ + 1 /* temporaryCenDsrcTolling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1 = { + asn_MAP_ProtectedZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ProtectedZoneType_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType = { + "ProtectedZoneType", + "ProtectedZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_ProtectedZoneType_tags_1, + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneType_constr_1, &asn_PER_type_ProtectedZoneType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ProtectedZoneType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/PtActivation.c b/vcits/cam/src/PtActivation.c new file mode 100644 index 0000000..64ca364 --- /dev/null +++ b/vcits/cam/src/PtActivation.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PtActivation.h" + +asn_TYPE_member_t asn_MBR_PtActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationData" + }, +}; +static const ber_tlv_tag_t asn_DEF_PtActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PtActivation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptActivationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivationData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PtActivation_specs_1 = { + sizeof(struct PtActivation), + offsetof(struct PtActivation, _asn_ctx), + asn_MAP_PtActivation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PtActivation = { + "PtActivation", + "PtActivation", + &asn_OP_SEQUENCE, + asn_DEF_PtActivation_tags_1, + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + asn_DEF_PtActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PtActivation_1, + 2, /* Elements count */ + &asn_SPC_PtActivation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/PtActivationData.c b/vcits/cam/src/PtActivationData.c new file mode 100644 index 0000000..4df7fc5 --- /dev/null +++ b/vcits/cam/src/PtActivationData.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PtActivationData.h" + +int +PtActivationData_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationData_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..20)) */}; +asn_per_constraints_t asn_PER_type_PtActivationData_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (SIZE(1..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationData = { + "PtActivationData", + "PtActivationData", + &asn_OP_OCTET_STRING, + asn_DEF_PtActivationData_tags_1, + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + asn_DEF_PtActivationData_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationData_constr_1, &asn_PER_type_PtActivationData_constr_1, PtActivationData_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cam/src/PtActivationType.c b/vcits/cam/src/PtActivationType.c new file mode 100644 index 0000000..7c0bac8 --- /dev/null +++ b/vcits/cam/src/PtActivationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PtActivationType.h" + +int +PtActivationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_PtActivationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationType = { + "PtActivationType", + "PtActivationType", + &asn_OP_NativeInteger, + asn_DEF_PtActivationType_tags_1, + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + asn_DEF_PtActivationType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationType_constr_1, &asn_PER_type_PtActivationType_constr_1, PtActivationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/PublicTransportContainer.c b/vcits/cam/src/PublicTransportContainer.c new file mode 100644 index 0000000..265422b --- /dev/null +++ b/vcits/cam/src/PublicTransportContainer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "PublicTransportContainer.h" + +#include "PtActivation.h" +asn_TYPE_member_t asn_MBR_PublicTransportContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PublicTransportContainer, embarkationStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmbarkationStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "embarkationStatus" + }, + { ATF_POINTER, 1, offsetof(struct PublicTransportContainer, ptActivation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivation" + }, +}; +static const int asn_MAP_PublicTransportContainer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PublicTransportContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PublicTransportContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* embarkationStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PublicTransportContainer_specs_1 = { + sizeof(struct PublicTransportContainer), + offsetof(struct PublicTransportContainer, _asn_ctx), + asn_MAP_PublicTransportContainer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PublicTransportContainer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PublicTransportContainer = { + "PublicTransportContainer", + "PublicTransportContainer", + &asn_OP_SEQUENCE, + asn_DEF_PublicTransportContainer_tags_1, + sizeof(asn_DEF_PublicTransportContainer_tags_1) + /sizeof(asn_DEF_PublicTransportContainer_tags_1[0]), /* 1 */ + asn_DEF_PublicTransportContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_PublicTransportContainer_tags_1) + /sizeof(asn_DEF_PublicTransportContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PublicTransportContainer_1, + 2, /* Elements count */ + &asn_SPC_PublicTransportContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/RSUContainerHighFrequency.c b/vcits/cam/src/RSUContainerHighFrequency.c new file mode 100644 index 0000000..78f6c3b --- /dev/null +++ b/vcits/cam/src/RSUContainerHighFrequency.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "RSUContainerHighFrequency.h" + +#include "ProtectedCommunicationZonesRSU.h" +asn_TYPE_member_t asn_MBR_RSUContainerHighFrequency_1[] = { + { ATF_POINTER, 1, offsetof(struct RSUContainerHighFrequency, protectedCommunicationZonesRSU), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedCommunicationZonesRSU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedCommunicationZonesRSU" + }, +}; +static const int asn_MAP_RSUContainerHighFrequency_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_RSUContainerHighFrequency_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RSUContainerHighFrequency_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protectedCommunicationZonesRSU */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RSUContainerHighFrequency_specs_1 = { + sizeof(struct RSUContainerHighFrequency), + offsetof(struct RSUContainerHighFrequency, _asn_ctx), + asn_MAP_RSUContainerHighFrequency_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_RSUContainerHighFrequency_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RSUContainerHighFrequency = { + "RSUContainerHighFrequency", + "RSUContainerHighFrequency", + &asn_OP_SEQUENCE, + asn_DEF_RSUContainerHighFrequency_tags_1, + sizeof(asn_DEF_RSUContainerHighFrequency_tags_1) + /sizeof(asn_DEF_RSUContainerHighFrequency_tags_1[0]), /* 1 */ + asn_DEF_RSUContainerHighFrequency_tags_1, /* Same as above */ + sizeof(asn_DEF_RSUContainerHighFrequency_tags_1) + /sizeof(asn_DEF_RSUContainerHighFrequency_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RSUContainerHighFrequency_1, + 1, /* Elements count */ + &asn_SPC_RSUContainerHighFrequency_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/ReferencePosition.c b/vcits/cam/src/ReferencePosition.c new file mode 100644 index 0000000..3c93834 --- /dev/null +++ b/vcits/cam/src/ReferencePosition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "ReferencePosition.h" + +asn_TYPE_member_t asn_MBR_ReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PosConfidenceEllipse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionConfidenceEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* longitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* positionConfidenceEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1 = { + sizeof(struct ReferencePosition), + offsetof(struct ReferencePosition, _asn_ctx), + asn_MAP_ReferencePosition_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReferencePosition = { + "ReferencePosition", + "ReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_ReferencePosition_tags_1, + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_ReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReferencePosition_1, + 4, /* Elements count */ + &asn_SPC_ReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/RelevanceDistance.c b/vcits/cam/src/RelevanceDistance.c new file mode 100644 index 0000000..898461a --- /dev/null +++ b/vcits/cam/src/RelevanceDistance.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "RelevanceDistance.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceDistance_value2enum_1[] = { + { 0, 11, "lessThan50m" }, + { 1, 12, "lessThan100m" }, + { 2, 12, "lessThan200m" }, + { 3, 12, "lessThan500m" }, + { 4, 13, "lessThan1000m" }, + { 5, 11, "lessThan5km" }, + { 6, 12, "lessThan10km" }, + { 7, 8, "over10km" } +}; +static const unsigned int asn_MAP_RelevanceDistance_enum2value_1[] = { + 4, /* lessThan1000m(4) */ + 1, /* lessThan100m(1) */ + 6, /* lessThan10km(6) */ + 2, /* lessThan200m(2) */ + 3, /* lessThan500m(3) */ + 0, /* lessThan50m(0) */ + 5, /* lessThan5km(5) */ + 7 /* over10km(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceDistance_specs_1 = { + asn_MAP_RelevanceDistance_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceDistance_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceDistance = { + "RelevanceDistance", + "RelevanceDistance", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceDistance_tags_1, + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + asn_DEF_RelevanceDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceDistance_constr_1, &asn_PER_type_RelevanceDistance_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceDistance_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/RelevanceTrafficDirection.c b/vcits/cam/src/RelevanceTrafficDirection.c new file mode 100644 index 0000000..498a273 --- /dev/null +++ b/vcits/cam/src/RelevanceTrafficDirection.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "RelevanceTrafficDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceTrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 15, "upstreamTraffic" }, + { 2, 17, "downstreamTraffic" }, + { 3, 15, "oppositeTraffic" } +}; +static const unsigned int asn_MAP_RelevanceTrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 2, /* downstreamTraffic(2) */ + 3, /* oppositeTraffic(3) */ + 1 /* upstreamTraffic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceTrafficDirection_specs_1 = { + asn_MAP_RelevanceTrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceTrafficDirection_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceTrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection = { + "RelevanceTrafficDirection", + "RelevanceTrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceTrafficDirection_tags_1, + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_RelevanceTrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceTrafficDirection_constr_1, &asn_PER_type_RelevanceTrafficDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceTrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/RequestResponseIndication.c b/vcits/cam/src/RequestResponseIndication.c new file mode 100644 index 0000000..61d50b5 --- /dev/null +++ b/vcits/cam/src/RequestResponseIndication.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "RequestResponseIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestResponseIndication_value2enum_1[] = { + { 0, 7, "request" }, + { 1, 8, "response" } +}; +static const unsigned int asn_MAP_RequestResponseIndication_enum2value_1[] = { + 0, /* request(0) */ + 1 /* response(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RequestResponseIndication_specs_1 = { + asn_MAP_RequestResponseIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestResponseIndication_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestResponseIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication = { + "RequestResponseIndication", + "RequestResponseIndication", + &asn_OP_NativeEnumerated, + asn_DEF_RequestResponseIndication_tags_1, + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + asn_DEF_RequestResponseIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestResponseIndication_constr_1, &asn_PER_type_RequestResponseIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestResponseIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/RescueAndRecoveryWorkInProgressSubCauseCode.c b/vcits/cam/src/RescueAndRecoveryWorkInProgressSubCauseCode.c new file mode 100644 index 0000000..fcbecbe --- /dev/null +++ b/vcits/cam/src/RescueAndRecoveryWorkInProgressSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "RescueAndRecoveryWorkInProgressSubCauseCode.h" + +int +RescueAndRecoveryWorkInProgressSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode = { + "RescueAndRecoveryWorkInProgressSubCauseCode", + "RescueAndRecoveryWorkInProgressSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, &asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, RescueAndRecoveryWorkInProgressSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/RescueContainer.c b/vcits/cam/src/RescueContainer.c new file mode 100644 index 0000000..aa5a14d --- /dev/null +++ b/vcits/cam/src/RescueContainer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "RescueContainer.h" + +asn_TYPE_member_t asn_MBR_RescueContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RescueContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LightBarSirenInUse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, +}; +static const ber_tlv_tag_t asn_DEF_RescueContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RescueContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* lightBarSirenInUse */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RescueContainer_specs_1 = { + sizeof(struct RescueContainer), + offsetof(struct RescueContainer, _asn_ctx), + asn_MAP_RescueContainer_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RescueContainer = { + "RescueContainer", + "RescueContainer", + &asn_OP_SEQUENCE, + asn_DEF_RescueContainer_tags_1, + sizeof(asn_DEF_RescueContainer_tags_1) + /sizeof(asn_DEF_RescueContainer_tags_1[0]), /* 1 */ + asn_DEF_RescueContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_RescueContainer_tags_1) + /sizeof(asn_DEF_RescueContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RescueContainer_1, + 1, /* Elements count */ + &asn_SPC_RescueContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/RestrictedTypes.c b/vcits/cam/src/RestrictedTypes.c new file mode 100644 index 0000000..381f942 --- /dev/null +++ b/vcits/cam/src/RestrictedTypes.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "RestrictedTypes.h" + +static asn_oer_constraints_t asn_OER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RestrictedTypes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictedTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_RestrictedTypes_specs_1 = { + sizeof(struct RestrictedTypes), + offsetof(struct RestrictedTypes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictedTypes = { + "RestrictedTypes", + "RestrictedTypes", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictedTypes_tags_1, + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + asn_DEF_RestrictedTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictedTypes_constr_1, &asn_PER_type_RestrictedTypes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictedTypes_1, + 1, /* Single element */ + &asn_SPC_RestrictedTypes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/RoadType.c b/vcits/cam/src/RoadType.c new file mode 100644 index 0000000..743a498 --- /dev/null +++ b/vcits/cam/src/RoadType.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "RoadType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RoadType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RoadType_value2enum_1[] = { + { 0, 43, "urban-NoStructuralSeparationToOppositeLanes" }, + { 1, 45, "urban-WithStructuralSeparationToOppositeLanes" }, + { 2, 46, "nonUrban-NoStructuralSeparationToOppositeLanes" }, + { 3, 48, "nonUrban-WithStructuralSeparationToOppositeLanes" } +}; +static const unsigned int asn_MAP_RoadType_enum2value_1[] = { + 2, /* nonUrban-NoStructuralSeparationToOppositeLanes(2) */ + 3, /* nonUrban-WithStructuralSeparationToOppositeLanes(3) */ + 0, /* urban-NoStructuralSeparationToOppositeLanes(0) */ + 1 /* urban-WithStructuralSeparationToOppositeLanes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RoadType_specs_1 = { + asn_MAP_RoadType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RoadType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadType = { + "RoadType", + "RoadType", + &asn_OP_NativeEnumerated, + asn_DEF_RoadType_tags_1, + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + asn_DEF_RoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadType_constr_1, &asn_PER_type_RoadType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RoadType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/RoadWorksContainerBasic.c b/vcits/cam/src/RoadWorksContainerBasic.c new file mode 100644 index 0000000..3f7acf9 --- /dev/null +++ b/vcits/cam/src/RoadWorksContainerBasic.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "RoadWorksContainerBasic.h" + +#include "ClosedLanes.h" +asn_TYPE_member_t asn_MBR_RoadWorksContainerBasic_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadWorksContainerBasic, roadworksSubCauseCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadworksSubCauseCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadworksSubCauseCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadWorksContainerBasic, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LightBarSirenInUse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, + { ATF_POINTER, 1, offsetof(struct RoadWorksContainerBasic, closedLanes), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ClosedLanes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "closedLanes" + }, +}; +static const int asn_MAP_RoadWorksContainerBasic_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_RoadWorksContainerBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadWorksContainerBasic_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roadworksSubCauseCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lightBarSirenInUse */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* closedLanes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadWorksContainerBasic_specs_1 = { + sizeof(struct RoadWorksContainerBasic), + offsetof(struct RoadWorksContainerBasic, _asn_ctx), + asn_MAP_RoadWorksContainerBasic_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RoadWorksContainerBasic_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadWorksContainerBasic = { + "RoadWorksContainerBasic", + "RoadWorksContainerBasic", + &asn_OP_SEQUENCE, + asn_DEF_RoadWorksContainerBasic_tags_1, + sizeof(asn_DEF_RoadWorksContainerBasic_tags_1) + /sizeof(asn_DEF_RoadWorksContainerBasic_tags_1[0]), /* 1 */ + asn_DEF_RoadWorksContainerBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadWorksContainerBasic_tags_1) + /sizeof(asn_DEF_RoadWorksContainerBasic_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadWorksContainerBasic_1, + 3, /* Elements count */ + &asn_SPC_RoadWorksContainerBasic_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/RoadworksSubCauseCode.c b/vcits/cam/src/RoadworksSubCauseCode.c new file mode 100644 index 0000000..7d95a83 --- /dev/null +++ b/vcits/cam/src/RoadworksSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "RoadworksSubCauseCode.h" + +int +RoadworksSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadworksSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode = { + "RoadworksSubCauseCode", + "RoadworksSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RoadworksSubCauseCode_tags_1, + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RoadworksSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadworksSubCauseCode_constr_1, &asn_PER_type_RoadworksSubCauseCode_constr_1, RoadworksSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/SafetyCarContainer.c b/vcits/cam/src/SafetyCarContainer.c new file mode 100644 index 0000000..86c7434 --- /dev/null +++ b/vcits/cam/src/SafetyCarContainer.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SafetyCarContainer.h" + +#include "CauseCode.h" +asn_TYPE_member_t asn_MBR_SafetyCarContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SafetyCarContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LightBarSirenInUse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, + { ATF_POINTER, 3, offsetof(struct SafetyCarContainer, incidentIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "incidentIndication" + }, + { ATF_POINTER, 2, offsetof(struct SafetyCarContainer, trafficRule), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrafficRule, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trafficRule" + }, + { ATF_POINTER, 1, offsetof(struct SafetyCarContainer, speedLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimit" + }, +}; +static const int asn_MAP_SafetyCarContainer_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_SafetyCarContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SafetyCarContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lightBarSirenInUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* incidentIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* trafficRule */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* speedLimit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SafetyCarContainer_specs_1 = { + sizeof(struct SafetyCarContainer), + offsetof(struct SafetyCarContainer, _asn_ctx), + asn_MAP_SafetyCarContainer_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SafetyCarContainer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SafetyCarContainer = { + "SafetyCarContainer", + "SafetyCarContainer", + &asn_OP_SEQUENCE, + asn_DEF_SafetyCarContainer_tags_1, + sizeof(asn_DEF_SafetyCarContainer_tags_1) + /sizeof(asn_DEF_SafetyCarContainer_tags_1[0]), /* 1 */ + asn_DEF_SafetyCarContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_SafetyCarContainer_tags_1) + /sizeof(asn_DEF_SafetyCarContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SafetyCarContainer_1, + 4, /* Elements count */ + &asn_SPC_SafetyCarContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/SemiAxisLength.c b/vcits/cam/src/SemiAxisLength.c new file mode 100644 index 0000000..2c6072d --- /dev/null +++ b/vcits/cam/src/SemiAxisLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SemiAxisLength.h" + +int +SemiAxisLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiAxisLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiAxisLength = { + "SemiAxisLength", + "SemiAxisLength", + &asn_OP_NativeInteger, + asn_DEF_SemiAxisLength_tags_1, + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + asn_DEF_SemiAxisLength_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiAxisLength_constr_1, &asn_PER_type_SemiAxisLength_constr_1, SemiAxisLength_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/SequenceNumber.c b/vcits/cam/src/SequenceNumber.c new file mode 100644 index 0000000..78b8c75 --- /dev/null +++ b/vcits/cam/src/SequenceNumber.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SequenceNumber.h" + +int +SequenceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SequenceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SequenceNumber = { + "SequenceNumber", + "SequenceNumber", + &asn_OP_NativeInteger, + asn_DEF_SequenceNumber_tags_1, + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + asn_DEF_SequenceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_SequenceNumber_constr_1, &asn_PER_type_SequenceNumber_constr_1, SequenceNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/SignalViolationSubCauseCode.c b/vcits/cam/src/SignalViolationSubCauseCode.c new file mode 100644 index 0000000..3e03da4 --- /dev/null +++ b/vcits/cam/src/SignalViolationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SignalViolationSubCauseCode.h" + +int +SignalViolationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalViolationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode = { + "SignalViolationSubCauseCode", + "SignalViolationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SignalViolationSubCauseCode_tags_1, + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SignalViolationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalViolationSubCauseCode_constr_1, &asn_PER_type_SignalViolationSubCauseCode_constr_1, SignalViolationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/SlowVehicleSubCauseCode.c b/vcits/cam/src/SlowVehicleSubCauseCode.c new file mode 100644 index 0000000..79cc690 --- /dev/null +++ b/vcits/cam/src/SlowVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SlowVehicleSubCauseCode.h" + +int +SlowVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SlowVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode = { + "SlowVehicleSubCauseCode", + "SlowVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SlowVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SlowVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SlowVehicleSubCauseCode_constr_1, &asn_PER_type_SlowVehicleSubCauseCode_constr_1, SlowVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/SpecialTransportContainer.c b/vcits/cam/src/SpecialTransportContainer.c new file mode 100644 index 0000000..d042cd0 --- /dev/null +++ b/vcits/cam/src/SpecialTransportContainer.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SpecialTransportContainer.h" + +asn_TYPE_member_t asn_MBR_SpecialTransportContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpecialTransportContainer, specialTransportType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpecialTransportType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "specialTransportType" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpecialTransportContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LightBarSirenInUse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpecialTransportContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SpecialTransportContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* specialTransportType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lightBarSirenInUse */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SpecialTransportContainer_specs_1 = { + sizeof(struct SpecialTransportContainer), + offsetof(struct SpecialTransportContainer, _asn_ctx), + asn_MAP_SpecialTransportContainer_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SpecialTransportContainer = { + "SpecialTransportContainer", + "SpecialTransportContainer", + &asn_OP_SEQUENCE, + asn_DEF_SpecialTransportContainer_tags_1, + sizeof(asn_DEF_SpecialTransportContainer_tags_1) + /sizeof(asn_DEF_SpecialTransportContainer_tags_1[0]), /* 1 */ + asn_DEF_SpecialTransportContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_SpecialTransportContainer_tags_1) + /sizeof(asn_DEF_SpecialTransportContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SpecialTransportContainer_1, + 2, /* Elements count */ + &asn_SPC_SpecialTransportContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/SpecialTransportType.c b/vcits/cam/src/SpecialTransportType.c new file mode 100644 index 0000000..2240da6 --- /dev/null +++ b/vcits/cam/src/SpecialTransportType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SpecialTransportType.h" + +int +SpecialTransportType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +asn_per_constraints_t asn_PER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpecialTransportType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpecialTransportType = { + "SpecialTransportType", + "SpecialTransportType", + &asn_OP_BIT_STRING, + asn_DEF_SpecialTransportType_tags_1, + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + asn_DEF_SpecialTransportType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpecialTransportType_constr_1, &asn_PER_type_SpecialTransportType_constr_1, SpecialTransportType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cam/src/SpecialVehicleContainer.c b/vcits/cam/src/SpecialVehicleContainer.c new file mode 100644 index 0000000..b5f83f0 --- /dev/null +++ b/vcits/cam/src/SpecialVehicleContainer.c @@ -0,0 +1,115 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SpecialVehicleContainer.h" + +static asn_oer_constraints_t asn_OER_type_SpecialVehicleContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpecialVehicleContainer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SpecialVehicleContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpecialVehicleContainer, choice.publicTransportContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PublicTransportContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "publicTransportContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpecialVehicleContainer, choice.specialTransportContainer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpecialTransportContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "specialTransportContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpecialVehicleContainer, choice.dangerousGoodsContainer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dangerousGoodsContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpecialVehicleContainer, choice.roadWorksContainerBasic), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadWorksContainerBasic, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadWorksContainerBasic" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpecialVehicleContainer, choice.rescueContainer), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RescueContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rescueContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpecialVehicleContainer, choice.emergencyContainer), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmergencyContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpecialVehicleContainer, choice.safetyCarContainer), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SafetyCarContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "safetyCarContainer" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_SpecialVehicleContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* publicTransportContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* specialTransportContainer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dangerousGoodsContainer */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roadWorksContainerBasic */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rescueContainer */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyContainer */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* safetyCarContainer */ +}; +asn_CHOICE_specifics_t asn_SPC_SpecialVehicleContainer_specs_1 = { + sizeof(struct SpecialVehicleContainer), + offsetof(struct SpecialVehicleContainer, _asn_ctx), + offsetof(struct SpecialVehicleContainer, present), + sizeof(((struct SpecialVehicleContainer *)0)->present), + asn_MAP_SpecialVehicleContainer_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_SpecialVehicleContainer = { + "SpecialVehicleContainer", + "SpecialVehicleContainer", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_SpecialVehicleContainer_constr_1, &asn_PER_type_SpecialVehicleContainer_constr_1, CHOICE_constraint }, + asn_MBR_SpecialVehicleContainer_1, + 7, /* Elements count */ + &asn_SPC_SpecialVehicleContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/Speed.c b/vcits/cam/src/Speed.c new file mode 100644 index 0000000..9561ad2 --- /dev/null +++ b/vcits/cam/src/Speed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "Speed.h" + +asn_TYPE_member_t asn_MBR_Speed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Speed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Speed_specs_1 = { + sizeof(struct Speed), + offsetof(struct Speed, _asn_ctx), + asn_MAP_Speed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Speed = { + "Speed", + "Speed", + &asn_OP_SEQUENCE, + asn_DEF_Speed_tags_1, + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + asn_DEF_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Speed_1, + 2, /* Elements count */ + &asn_SPC_Speed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/SpeedConfidence.c b/vcits/cam/src/SpeedConfidence.c new file mode 100644 index 0000000..f320c64 --- /dev/null +++ b/vcits/cam/src/SpeedConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SpeedConfidence.h" + +int +SpeedConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeInteger, + asn_DEF_SpeedConfidence_tags_1, + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidence_constr_1, &asn_PER_type_SpeedConfidence_constr_1, SpeedConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/SpeedLimit.c b/vcits/cam/src/SpeedLimit.c new file mode 100644 index 0000000..e8a54ef --- /dev/null +++ b/vcits/cam/src/SpeedLimit.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SpeedLimit.h" + +int +SpeedLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_NativeInteger, + asn_DEF_SpeedLimit_tags_1, + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimit_constr_1, &asn_PER_type_SpeedLimit_constr_1, SpeedLimit_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/SpeedValue.c b/vcits/cam/src/SpeedValue.c new file mode 100644 index 0000000..90e9d9d --- /dev/null +++ b/vcits/cam/src/SpeedValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SpeedValue.h" + +int +SpeedValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedValue = { + "SpeedValue", + "SpeedValue", + &asn_OP_NativeInteger, + asn_DEF_SpeedValue_tags_1, + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + asn_DEF_SpeedValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedValue_constr_1, &asn_PER_type_SpeedValue_constr_1, SpeedValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/StationID.c b/vcits/cam/src/StationID.c new file mode 100644 index 0000000..30a58b0 --- /dev/null +++ b/vcits/cam/src/StationID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "StationID.h" + +int +StationID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +asn_per_constraints_t asn_PER_type_StationID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_StationID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationID = { + "StationID", + "StationID", + &asn_OP_NativeInteger, + asn_DEF_StationID_tags_1, + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + asn_DEF_StationID_tags_1, /* Same as above */ + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + { &asn_OER_type_StationID_constr_1, &asn_PER_type_StationID_constr_1, StationID_constraint }, + 0, 0, /* No members */ + &asn_SPC_StationID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/StationType.c b/vcits/cam/src/StationType.c new file mode 100644 index 0000000..1398a80 --- /dev/null +++ b/vcits/cam/src/StationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "StationType.h" + +int +StationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_StationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationType = { + "StationType", + "StationType", + &asn_OP_NativeInteger, + asn_DEF_StationType_tags_1, + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + asn_DEF_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + { &asn_OER_type_StationType_constr_1, &asn_PER_type_StationType_constr_1, StationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/StationarySince.c b/vcits/cam/src/StationarySince.c new file mode 100644 index 0000000..af0edc2 --- /dev/null +++ b/vcits/cam/src/StationarySince.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "StationarySince.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationarySince_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_StationarySince_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_StationarySince_value2enum_1[] = { + { 0, 15, "lessThan1Minute" }, + { 1, 16, "lessThan2Minutes" }, + { 2, 17, "lessThan15Minutes" }, + { 3, 23, "equalOrGreater15Minutes" } +}; +static const unsigned int asn_MAP_StationarySince_enum2value_1[] = { + 3, /* equalOrGreater15Minutes(3) */ + 2, /* lessThan15Minutes(2) */ + 0, /* lessThan1Minute(0) */ + 1 /* lessThan2Minutes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_StationarySince_specs_1 = { + asn_MAP_StationarySince_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_StationarySince_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_StationarySince_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationarySince = { + "StationarySince", + "StationarySince", + &asn_OP_NativeEnumerated, + asn_DEF_StationarySince_tags_1, + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + asn_DEF_StationarySince_tags_1, /* Same as above */ + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + { &asn_OER_type_StationarySince_constr_1, &asn_PER_type_StationarySince_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_StationarySince_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/StationaryVehicleSubCauseCode.c b/vcits/cam/src/StationaryVehicleSubCauseCode.c new file mode 100644 index 0000000..ed3aef5 --- /dev/null +++ b/vcits/cam/src/StationaryVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "StationaryVehicleSubCauseCode.h" + +int +StationaryVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationaryVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode = { + "StationaryVehicleSubCauseCode", + "StationaryVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_StationaryVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_StationaryVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_StationaryVehicleSubCauseCode_constr_1, &asn_PER_type_StationaryVehicleSubCauseCode_constr_1, StationaryVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/SteeringWheelAngle.c b/vcits/cam/src/SteeringWheelAngle.c new file mode 100644 index 0000000..fac538c --- /dev/null +++ b/vcits/cam/src/SteeringWheelAngle.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SteeringWheelAngle.h" + +asn_TYPE_member_t asn_MBR_SteeringWheelAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SteeringWheelAngle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* steeringWheelAngleValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* steeringWheelAngleConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SteeringWheelAngle_specs_1 = { + sizeof(struct SteeringWheelAngle), + offsetof(struct SteeringWheelAngle, _asn_ctx), + asn_MAP_SteeringWheelAngle_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_SEQUENCE, + asn_DEF_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SteeringWheelAngle_1, + 2, /* Elements count */ + &asn_SPC_SteeringWheelAngle_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/SteeringWheelAngleConfidence.c b/vcits/cam/src/SteeringWheelAngleConfidence.c new file mode 100644 index 0000000..77908f4 --- /dev/null +++ b/vcits/cam/src/SteeringWheelAngleConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SteeringWheelAngleConfidence.h" + +int +SteeringWheelAngleConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleConfidence_constr_1, &asn_PER_type_SteeringWheelAngleConfidence_constr_1, SteeringWheelAngleConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/SteeringWheelAngleValue.c b/vcits/cam/src/SteeringWheelAngleValue.c new file mode 100644 index 0000000..539d376 --- /dev/null +++ b/vcits/cam/src/SteeringWheelAngleValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SteeringWheelAngleValue.h" + +int +SteeringWheelAngleValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -511 && value <= 512)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-511..512) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -511, 512 } /* (-511..512) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue = { + "SteeringWheelAngleValue", + "SteeringWheelAngleValue", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleValue_tags_1, + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleValue_constr_1, &asn_PER_type_SteeringWheelAngleValue_constr_1, SteeringWheelAngleValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/SubCauseCodeType.c b/vcits/cam/src/SubCauseCodeType.c new file mode 100644 index 0000000..fd075a4 --- /dev/null +++ b/vcits/cam/src/SubCauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "SubCauseCodeType.h" + +int +SubCauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SubCauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType = { + "SubCauseCodeType", + "SubCauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_SubCauseCodeType_tags_1, + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_SubCauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_SubCauseCodeType_constr_1, &asn_PER_type_SubCauseCodeType_constr_1, SubCauseCodeType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/Temperature.c b/vcits/cam/src/Temperature.c new file mode 100644 index 0000000..1cf16bf --- /dev/null +++ b/vcits/cam/src/Temperature.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "Temperature.h" + +int +Temperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -60 && value <= 67)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Temperature_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-60..67) */, + -1}; +static asn_per_constraints_t asn_PER_type_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 67 } /* (-60..67) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_Temperature_tags_1, + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + asn_DEF_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + { &asn_OER_type_Temperature_constr_1, &asn_PER_type_Temperature_constr_1, Temperature_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/TimestampIts.c b/vcits/cam/src/TimestampIts.c new file mode 100644 index 0000000..ae4dc5c --- /dev/null +++ b/vcits/cam/src/TimestampIts.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "TimestampIts.h" + +int +TimestampIts_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0 && value <= 4398046511103)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimestampIts_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..4398046511103) */, + -1}; +asn_per_constraints_t asn_PER_type_TimestampIts_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 42, -1, 0, 4398046511103 } /* (0..4398046511103) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimestampIts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimestampIts = { + "TimestampIts", + "TimestampIts", + &asn_OP_INTEGER, + asn_DEF_TimestampIts_tags_1, + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + asn_DEF_TimestampIts_tags_1, /* Same as above */ + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + { &asn_OER_type_TimestampIts_constr_1, &asn_PER_type_TimestampIts_constr_1, TimestampIts_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/Traces.c b/vcits/cam/src/Traces.c new file mode 100644 index 0000000..5b547d9 --- /dev/null +++ b/vcits/cam/src/Traces.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "Traces.h" + +#include "PathHistory.h" +static asn_oer_constraints_t asn_OER_type_Traces_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..7)) */}; +static asn_per_constraints_t asn_PER_type_Traces_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_Traces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathHistory, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Traces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Traces_specs_1 = { + sizeof(struct Traces), + offsetof(struct Traces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Traces = { + "Traces", + "Traces", + &asn_OP_SEQUENCE_OF, + asn_DEF_Traces_tags_1, + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + asn_DEF_Traces_tags_1, /* Same as above */ + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + { &asn_OER_type_Traces_constr_1, &asn_PER_type_Traces_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Traces_1, + 1, /* Single element */ + &asn_SPC_Traces_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/TrafficConditionSubCauseCode.c b/vcits/cam/src/TrafficConditionSubCauseCode.c new file mode 100644 index 0000000..4c30413 --- /dev/null +++ b/vcits/cam/src/TrafficConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "TrafficConditionSubCauseCode.h" + +int +TrafficConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TrafficConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode = { + "TrafficConditionSubCauseCode", + "TrafficConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_TrafficConditionSubCauseCode_tags_1, + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_TrafficConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficConditionSubCauseCode_constr_1, &asn_PER_type_TrafficConditionSubCauseCode_constr_1, TrafficConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/TrafficRule.c b/vcits/cam/src/TrafficRule.c new file mode 100644 index 0000000..3ba0a21 --- /dev/null +++ b/vcits/cam/src/TrafficRule.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "TrafficRule.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficRule_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TrafficRule_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TrafficRule_value2enum_1[] = { + { 0, 9, "noPassing" }, + { 1, 18, "noPassingForTrucks" }, + { 2, 11, "passToRight" }, + { 3, 10, "passToLeft" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TrafficRule_enum2value_1[] = { + 0, /* noPassing(0) */ + 1, /* noPassingForTrucks(1) */ + 3, /* passToLeft(3) */ + 2 /* passToRight(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_TrafficRule_specs_1 = { + asn_MAP_TrafficRule_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TrafficRule_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TrafficRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficRule = { + "TrafficRule", + "TrafficRule", + &asn_OP_NativeEnumerated, + asn_DEF_TrafficRule_tags_1, + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + asn_DEF_TrafficRule_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficRule_constr_1, &asn_PER_type_TrafficRule_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TrafficRule_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/TransmissionInterval.c b/vcits/cam/src/TransmissionInterval.c new file mode 100644 index 0000000..303175a --- /dev/null +++ b/vcits/cam/src/TransmissionInterval.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "TransmissionInterval.h" + +int +TransmissionInterval_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..10000) */, + -1}; +static asn_per_constraints_t asn_PER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 10000 } /* (1..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransmissionInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionInterval = { + "TransmissionInterval", + "TransmissionInterval", + &asn_OP_NativeInteger, + asn_DEF_TransmissionInterval_tags_1, + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + asn_DEF_TransmissionInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionInterval_constr_1, &asn_PER_type_TransmissionInterval_constr_1, TransmissionInterval_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/TurningRadius.c b/vcits/cam/src/TurningRadius.c new file mode 100644 index 0000000..f85f518 --- /dev/null +++ b/vcits/cam/src/TurningRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "TurningRadius.h" + +int +TurningRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TurningRadius_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TurningRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TurningRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TurningRadius = { + "TurningRadius", + "TurningRadius", + &asn_OP_NativeInteger, + asn_DEF_TurningRadius_tags_1, + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + asn_DEF_TurningRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_TurningRadius_constr_1, &asn_PER_type_TurningRadius_constr_1, TurningRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/VDS.c b/vcits/cam/src/VDS.c new file mode 100644 index 0000000..1c4ffbc --- /dev/null +++ b/vcits/cam/src/VDS.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "VDS.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +VDS_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 6) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VDS_constr_1 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +asn_per_constraints_t asn_PER_type_VDS_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_VDS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VDS = { + "VDS", + "VDS", + &asn_OP_IA5String, + asn_DEF_VDS_tags_1, + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + asn_DEF_VDS_tags_1, /* Same as above */ + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + { &asn_OER_type_VDS_constr_1, &asn_PER_type_VDS_constr_1, VDS_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/ValidityDuration.c b/vcits/cam/src/ValidityDuration.c new file mode 100644 index 0000000..d6776eb --- /dev/null +++ b/vcits/cam/src/ValidityDuration.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "ValidityDuration.h" + +int +ValidityDuration_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 86400)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..86400) */, + -1}; +static asn_per_constraints_t asn_PER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 0, 86400 } /* (0..86400) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ValidityDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ValidityDuration = { + "ValidityDuration", + "ValidityDuration", + &asn_OP_NativeInteger, + asn_DEF_ValidityDuration_tags_1, + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + asn_DEF_ValidityDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + { &asn_OER_type_ValidityDuration_constr_1, &asn_PER_type_ValidityDuration_constr_1, ValidityDuration_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/VehicleBreakdownSubCauseCode.c b/vcits/cam/src/VehicleBreakdownSubCauseCode.c new file mode 100644 index 0000000..896c6b4 --- /dev/null +++ b/vcits/cam/src/VehicleBreakdownSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "VehicleBreakdownSubCauseCode.h" + +int +VehicleBreakdownSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleBreakdownSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode = { + "VehicleBreakdownSubCauseCode", + "VehicleBreakdownSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleBreakdownSubCauseCode_constr_1, &asn_PER_type_VehicleBreakdownSubCauseCode_constr_1, VehicleBreakdownSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/VehicleIdentification.c b/vcits/cam/src/VehicleIdentification.c new file mode 100644 index 0000000..1128e43 --- /dev/null +++ b/vcits/cam/src/VehicleIdentification.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "VehicleIdentification.h" + +static asn_TYPE_member_t asn_MBR_VehicleIdentification_1[] = { + { ATF_POINTER, 2, offsetof(struct VehicleIdentification, wMInumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WMInumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wMInumber" + }, + { ATF_POINTER, 1, offsetof(struct VehicleIdentification, vDS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VDS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vDS" + }, +}; +static const int asn_MAP_VehicleIdentification_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_VehicleIdentification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleIdentification_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wMInumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vDS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleIdentification_specs_1 = { + sizeof(struct VehicleIdentification), + offsetof(struct VehicleIdentification, _asn_ctx), + asn_MAP_VehicleIdentification_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_VehicleIdentification_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleIdentification = { + "VehicleIdentification", + "VehicleIdentification", + &asn_OP_SEQUENCE, + asn_DEF_VehicleIdentification_tags_1, + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + asn_DEF_VehicleIdentification_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleIdentification_1, + 2, /* Elements count */ + &asn_SPC_VehicleIdentification_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/VehicleLength.c b/vcits/cam/src/VehicleLength.c new file mode 100644 index 0000000..ce6e04b --- /dev/null +++ b/vcits/cam/src/VehicleLength.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "VehicleLength.h" + +asn_TYPE_member_t asn_MBR_VehicleLength_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthConfidenceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthConfidenceIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthConfidenceIndication" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleLength_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vehicleLengthConfidenceIndication */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleLength_specs_1 = { + sizeof(struct VehicleLength), + offsetof(struct VehicleLength, _asn_ctx), + asn_MAP_VehicleLength_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_SEQUENCE, + asn_DEF_VehicleLength_tags_1, + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleLength_1, + 2, /* Elements count */ + &asn_SPC_VehicleLength_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/VehicleLengthConfidenceIndication.c b/vcits/cam/src/VehicleLengthConfidenceIndication.c new file mode 100644 index 0000000..520cfd3 --- /dev/null +++ b/vcits/cam/src/VehicleLengthConfidenceIndication.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "VehicleLengthConfidenceIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleLengthConfidenceIndication_value2enum_1[] = { + { 0, 16, "noTrailerPresent" }, + { 1, 29, "trailerPresentWithKnownLength" }, + { 2, 31, "trailerPresentWithUnknownLength" }, + { 3, 24, "trailerPresenceIsUnknown" }, + { 4, 11, "unavailable" } +}; +static const unsigned int asn_MAP_VehicleLengthConfidenceIndication_enum2value_1[] = { + 0, /* noTrailerPresent(0) */ + 3, /* trailerPresenceIsUnknown(3) */ + 1, /* trailerPresentWithKnownLength(1) */ + 2, /* trailerPresentWithUnknownLength(2) */ + 4 /* unavailable(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1 = { + asn_MAP_VehicleLengthConfidenceIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleLengthConfidenceIndication_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthConfidenceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication = { + "VehicleLengthConfidenceIndication", + "VehicleLengthConfidenceIndication", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleLengthConfidenceIndication_tags_1, + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthConfidenceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthConfidenceIndication_constr_1, &asn_PER_type_VehicleLengthConfidenceIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleLengthConfidenceIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/VehicleLengthValue.c b/vcits/cam/src/VehicleLengthValue.c new file mode 100644 index 0000000..cd2e710 --- /dev/null +++ b/vcits/cam/src/VehicleLengthValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "VehicleLengthValue.h" + +int +VehicleLengthValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (1..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue = { + "VehicleLengthValue", + "VehicleLengthValue", + &asn_OP_NativeInteger, + asn_DEF_VehicleLengthValue_tags_1, + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthValue_constr_1, &asn_PER_type_VehicleLengthValue_constr_1, VehicleLengthValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/VehicleMass.c b/vcits/cam/src/VehicleMass.c new file mode 100644 index 0000000..9c127db --- /dev/null +++ b/vcits/cam/src/VehicleMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "VehicleMass.h" + +int +VehicleMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1024)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleMass_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1024) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_VehicleMass_tags_1, + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleMass_constr_1, &asn_PER_type_VehicleMass_constr_1, VehicleMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/VehicleRole.c b/vcits/cam/src/VehicleRole.c new file mode 100644 index 0000000..011feb7 --- /dev/null +++ b/vcits/cam/src/VehicleRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "VehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleRole_value2enum_1[] = { + { 0, 7, "default" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 6, "rescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 11, "agriculture" }, + { 9, 10, "commercial" }, + { 10, 8, "military" }, + { 11, 12, "roadOperator" }, + { 12, 4, "taxi" }, + { 13, 9, "reserved1" }, + { 14, 9, "reserved2" }, + { 15, 9, "reserved3" } +}; +static const unsigned int asn_MAP_VehicleRole_enum2value_1[] = { + 8, /* agriculture(8) */ + 9, /* commercial(9) */ + 3, /* dangerousGoods(3) */ + 0, /* default(0) */ + 6, /* emergency(6) */ + 10, /* military(10) */ + 1, /* publicTransport(1) */ + 5, /* rescue(5) */ + 13, /* reserved1(13) */ + 14, /* reserved2(14) */ + 15, /* reserved3(15) */ + 11, /* roadOperator(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 2, /* specialTransport(2) */ + 12 /* taxi(12) */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleRole_specs_1 = { + asn_MAP_VehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleRole = { + "VehicleRole", + "VehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleRole_tags_1, + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + asn_DEF_VehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleRole_constr_1, &asn_PER_type_VehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/VehicleWidth.c b/vcits/cam/src/VehicleWidth.c new file mode 100644 index 0000000..52ae6c1 --- /dev/null +++ b/vcits/cam/src/VehicleWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "VehicleWidth.h" + +int +VehicleWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 62)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..62) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 62 } /* (1..62) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_VehicleWidth_tags_1, + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleWidth_constr_1, &asn_PER_type_VehicleWidth_constr_1, VehicleWidth_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/VerticalAcceleration.c b/vcits/cam/src/VerticalAcceleration.c new file mode 100644 index 0000000..9be7e57 --- /dev/null +++ b/vcits/cam/src/VerticalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "VerticalAcceleration.h" + +asn_TYPE_member_t asn_MBR_VerticalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VerticalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* verticalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* verticalAccelerationConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VerticalAcceleration_specs_1 = { + sizeof(struct VerticalAcceleration), + offsetof(struct VerticalAcceleration, _asn_ctx), + asn_MAP_VerticalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_VerticalAcceleration_tags_1, + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VerticalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_VerticalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/VerticalAccelerationValue.c b/vcits/cam/src/VerticalAccelerationValue.c new file mode 100644 index 0000000..331130e --- /dev/null +++ b/vcits/cam/src/VerticalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "VerticalAccelerationValue.h" + +int +VerticalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VerticalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue = { + "VerticalAccelerationValue", + "VerticalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_VerticalAccelerationValue_tags_1, + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_VerticalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VerticalAccelerationValue_constr_1, &asn_PER_type_VerticalAccelerationValue_constr_1, VerticalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/WMInumber.c b/vcits/cam/src/WMInumber.c new file mode 100644 index 0000000..00aae28 --- /dev/null +++ b/vcits/cam/src/WMInumber.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "WMInumber.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +WMInumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 3) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WMInumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +asn_per_constraints_t asn_PER_type_WMInumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_WMInumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WMInumber = { + "WMInumber", + "WMInumber", + &asn_OP_IA5String, + asn_DEF_WMInumber_tags_1, + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + asn_DEF_WMInumber_tags_1, /* Same as above */ + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + { &asn_OER_type_WMInumber_constr_1, &asn_PER_type_WMInumber_constr_1, WMInumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/WheelBaseVehicle.c b/vcits/cam/src/WheelBaseVehicle.c new file mode 100644 index 0000000..68be2d8 --- /dev/null +++ b/vcits/cam/src/WheelBaseVehicle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "WheelBaseVehicle.h" + +int +WheelBaseVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WheelBaseVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle = { + "WheelBaseVehicle", + "WheelBaseVehicle", + &asn_OP_NativeInteger, + asn_DEF_WheelBaseVehicle_tags_1, + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + asn_DEF_WheelBaseVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_WheelBaseVehicle_constr_1, &asn_PER_type_WheelBaseVehicle_constr_1, WheelBaseVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/WrongWayDrivingSubCauseCode.c b/vcits/cam/src/WrongWayDrivingSubCauseCode.c new file mode 100644 index 0000000..7958612 --- /dev/null +++ b/vcits/cam/src/WrongWayDrivingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "WrongWayDrivingSubCauseCode.h" + +int +WrongWayDrivingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WrongWayDrivingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode = { + "WrongWayDrivingSubCauseCode", + "WrongWayDrivingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_WrongWayDrivingSubCauseCode_constr_1, &asn_PER_type_WrongWayDrivingSubCauseCode_constr_1, WrongWayDrivingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cam/src/YawRate.c b/vcits/cam/src/YawRate.c new file mode 100644 index 0000000..9412a1e --- /dev/null +++ b/vcits/cam/src/YawRate.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "YawRate.h" + +asn_TYPE_member_t asn_MBR_YawRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_YawRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yawRateValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* yawRateConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_YawRate_specs_1 = { + sizeof(struct YawRate), + offsetof(struct YawRate, _asn_ctx), + asn_MAP_YawRate_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_YawRate = { + "YawRate", + "YawRate", + &asn_OP_SEQUENCE, + asn_DEF_YawRate_tags_1, + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + asn_DEF_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_YawRate_1, + 2, /* Elements count */ + &asn_SPC_YawRate_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/YawRateConfidence.c b/vcits/cam/src/YawRateConfidence.c new file mode 100644 index 0000000..0ee9717 --- /dev/null +++ b/vcits/cam/src/YawRateConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "YawRateConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_YawRateConfidence_value2enum_1[] = { + { 0, 13, "degSec-000-01" }, + { 1, 13, "degSec-000-05" }, + { 2, 13, "degSec-000-10" }, + { 3, 13, "degSec-001-00" }, + { 4, 13, "degSec-005-00" }, + { 5, 13, "degSec-010-00" }, + { 6, 13, "degSec-100-00" }, + { 7, 10, "outOfRange" }, + { 8, 11, "unavailable" } +}; +static const unsigned int asn_MAP_YawRateConfidence_enum2value_1[] = { + 0, /* degSec-000-01(0) */ + 1, /* degSec-000-05(1) */ + 2, /* degSec-000-10(2) */ + 3, /* degSec-001-00(3) */ + 4, /* degSec-005-00(4) */ + 5, /* degSec-010-00(5) */ + 6, /* degSec-100-00(6) */ + 7, /* outOfRange(7) */ + 8 /* unavailable(8) */ +}; +const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1 = { + asn_MAP_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_YawRateConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 9, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_YawRateConfidence_tags_1, + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateConfidence_constr_1, &asn_PER_type_YawRateConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cam/src/YawRateValue.c b/vcits/cam/src/YawRateValue.c new file mode 100644 index 0000000..92f159e --- /dev/null +++ b/vcits/cam/src/YawRateValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cam -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CAM` + */ + +#include "YawRateValue.h" + +int +YawRateValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32766 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32766..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_YawRateValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32766, 32767 } /* (-32766..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_YawRateValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateValue = { + "YawRateValue", + "YawRateValue", + &asn_OP_NativeInteger, + asn_DEF_YawRateValue_tags_1, + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + asn_DEF_YawRateValue_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateValue_constr_1, &asn_PER_type_YawRateValue_constr_1, YawRateValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/AccelerationConfidence.h b/vcits/cpm/AccelerationConfidence.h new file mode 100644 index 0000000..264dd76 --- /dev/null +++ b/vcits/cpm/AccelerationConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AccelerationConfidence_H_ +#define _AccelerationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationConfidence { + AccelerationConfidence_pointOneMeterPerSecSquared = 1, + AccelerationConfidence_outOfRange = 101, + AccelerationConfidence_unavailable = 102 +} e_AccelerationConfidence; + +/* AccelerationConfidence */ +typedef long AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence; +asn_struct_free_f AccelerationConfidence_free; +asn_struct_print_f AccelerationConfidence_print; +asn_constr_check_f AccelerationConfidence_constraint; +ber_type_decoder_f AccelerationConfidence_decode_ber; +der_type_encoder_f AccelerationConfidence_encode_der; +xer_type_decoder_f AccelerationConfidence_decode_xer; +xer_type_encoder_f AccelerationConfidence_encode_xer; +oer_type_decoder_f AccelerationConfidence_decode_oer; +oer_type_encoder_f AccelerationConfidence_encode_oer; +per_type_decoder_f AccelerationConfidence_decode_uper; +per_type_encoder_f AccelerationConfidence_encode_uper; +per_type_decoder_f AccelerationConfidence_decode_aper; +per_type_encoder_f AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationConfidence_H_ */ +#include diff --git a/vcits/cpm/AccelerationControl.h b/vcits/cpm/AccelerationControl.h new file mode 100644 index 0000000..09e8251 --- /dev/null +++ b/vcits/cpm/AccelerationControl.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AccelerationControl_H_ +#define _AccelerationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationControl { + AccelerationControl_brakePedalEngaged = 0, + AccelerationControl_gasPedalEngaged = 1, + AccelerationControl_emergencyBrakeEngaged = 2, + AccelerationControl_collisionWarningEngaged = 3, + AccelerationControl_accEngaged = 4, + AccelerationControl_cruiseControlEngaged = 5, + AccelerationControl_speedLimiterEngaged = 6 +} e_AccelerationControl; + +/* AccelerationControl */ +typedef BIT_STRING_t AccelerationControl_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AccelerationControl_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AccelerationControl; +asn_struct_free_f AccelerationControl_free; +asn_struct_print_f AccelerationControl_print; +asn_constr_check_f AccelerationControl_constraint; +ber_type_decoder_f AccelerationControl_decode_ber; +der_type_encoder_f AccelerationControl_encode_der; +xer_type_decoder_f AccelerationControl_decode_xer; +xer_type_encoder_f AccelerationControl_encode_xer; +oer_type_decoder_f AccelerationControl_decode_oer; +oer_type_encoder_f AccelerationControl_encode_oer; +per_type_decoder_f AccelerationControl_decode_uper; +per_type_encoder_f AccelerationControl_encode_uper; +per_type_decoder_f AccelerationControl_decode_aper; +per_type_encoder_f AccelerationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationControl_H_ */ +#include diff --git a/vcits/cpm/AccidentSubCauseCode.h b/vcits/cpm/AccidentSubCauseCode.h new file mode 100644 index 0000000..07cb911 --- /dev/null +++ b/vcits/cpm/AccidentSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AccidentSubCauseCode_H_ +#define _AccidentSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccidentSubCauseCode { + AccidentSubCauseCode_unavailable = 0, + AccidentSubCauseCode_multiVehicleAccident = 1, + AccidentSubCauseCode_heavyAccident = 2, + AccidentSubCauseCode_accidentInvolvingLorry = 3, + AccidentSubCauseCode_accidentInvolvingBus = 4, + AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5, + AccidentSubCauseCode_accidentOnOppositeLane = 6, + AccidentSubCauseCode_unsecuredAccident = 7, + AccidentSubCauseCode_assistanceRequested = 8 +} e_AccidentSubCauseCode; + +/* AccidentSubCauseCode */ +typedef long AccidentSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode; +asn_struct_free_f AccidentSubCauseCode_free; +asn_struct_print_f AccidentSubCauseCode_print; +asn_constr_check_f AccidentSubCauseCode_constraint; +ber_type_decoder_f AccidentSubCauseCode_decode_ber; +der_type_encoder_f AccidentSubCauseCode_encode_der; +xer_type_decoder_f AccidentSubCauseCode_decode_xer; +xer_type_encoder_f AccidentSubCauseCode_encode_xer; +oer_type_decoder_f AccidentSubCauseCode_decode_oer; +oer_type_encoder_f AccidentSubCauseCode_encode_oer; +per_type_decoder_f AccidentSubCauseCode_decode_uper; +per_type_encoder_f AccidentSubCauseCode_encode_uper; +per_type_decoder_f AccidentSubCauseCode_decode_aper; +per_type_encoder_f AccidentSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccidentSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/ActionID.h b/vcits/cpm/ActionID.h new file mode 100644 index 0000000..e160fd2 --- /dev/null +++ b/vcits/cpm/ActionID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ActionID_H_ +#define _ActionID_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "SequenceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ActionID */ +typedef struct ActionID { + StationID_t originatingStationID; + SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ActionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ActionID; + +#ifdef __cplusplus +} +#endif + +#endif /* _ActionID_H_ */ +#include diff --git a/vcits/cpm/AdverseWeatherCondition-AdhesionSubCauseCode.h b/vcits/cpm/AdverseWeatherCondition-AdhesionSubCauseCode.h new file mode 100644 index 0000000..43379aa --- /dev/null +++ b/vcits/cpm/AdverseWeatherCondition-AdhesionSubCauseCode.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AdverseWeatherCondition_AdhesionSubCauseCode_H_ +#define _AdverseWeatherCondition_AdhesionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_AdhesionSubCauseCode { + AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1, + AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2, + AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3, + AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4, + AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5, + AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6, + AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7, + AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8, + AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9, + AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10 +} e_AdverseWeatherCondition_AdhesionSubCauseCode; + +/* AdverseWeatherCondition-AdhesionSubCauseCode */ +typedef long AdverseWeatherCondition_AdhesionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_AdhesionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_AdhesionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_AdhesionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_AdhesionSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h b/vcits/cpm/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 0000000..b1294f4 --- /dev/null +++ b/vcits/cpm/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ +#define _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode { + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6 +} e_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; + +/* AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */ +typedef long AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/AdverseWeatherCondition-PrecipitationSubCauseCode.h b/vcits/cpm/AdverseWeatherCondition-PrecipitationSubCauseCode.h new file mode 100644 index 0000000..6c3cc0a --- /dev/null +++ b/vcits/cpm/AdverseWeatherCondition-PrecipitationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ +#define _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_PrecipitationSubCauseCode { + AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2, + AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3 +} e_AdverseWeatherCondition_PrecipitationSubCauseCode; + +/* AdverseWeatherCondition-PrecipitationSubCauseCode */ +typedef long AdverseWeatherCondition_PrecipitationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_PrecipitationSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_PrecipitationSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_PrecipitationSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/AdverseWeatherCondition-VisibilitySubCauseCode.h b/vcits/cpm/AdverseWeatherCondition-VisibilitySubCauseCode.h new file mode 100644 index 0000000..e9cf53a --- /dev/null +++ b/vcits/cpm/AdverseWeatherCondition-VisibilitySubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AdverseWeatherCondition_VisibilitySubCauseCode_H_ +#define _AdverseWeatherCondition_VisibilitySubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_VisibilitySubCauseCode { + AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0, + AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1, + AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2, + AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5, + AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6, + AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7, + AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8 +} e_AdverseWeatherCondition_VisibilitySubCauseCode; + +/* AdverseWeatherCondition-VisibilitySubCauseCode */ +typedef long AdverseWeatherCondition_VisibilitySubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode; +asn_struct_free_f AdverseWeatherCondition_VisibilitySubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_VisibilitySubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_VisibilitySubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_VisibilitySubCauseCode_H_ */ +#include diff --git a/vcits/cpm/AdvisorySpeed.h b/vcits/cpm/AdvisorySpeed.h new file mode 100644 index 0000000..dbc474c --- /dev/null +++ b/vcits/cpm/AdvisorySpeed.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AdvisorySpeed_H_ +#define _AdvisorySpeed_H_ + + +#include + +/* Including external dependencies */ +#include "AdvisorySpeedType.h" +#include "SpeedAdvice.h" +#include "SpeedConfidenceDSRC.h" +#include "ZoneLength.h" +#include "RestrictionClassID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_AdvisorySpeed; + +/* AdvisorySpeed */ +typedef struct AdvisorySpeed { + AdvisorySpeedType_t type; + SpeedAdvice_t *speed; /* OPTIONAL */ + SpeedConfidenceDSRC_t *confidence; /* OPTIONAL */ + ZoneLength_t *distance; /* OPTIONAL */ + RestrictionClassID_t *Class; /* OPTIONAL */ + struct AdvisorySpeed__regional { + A_SEQUENCE_OF(struct Reg_AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeed_H_ */ +#include diff --git a/vcits/cpm/AdvisorySpeedList.h b/vcits/cpm/AdvisorySpeedList.h new file mode 100644 index 0000000..49a3c1b --- /dev/null +++ b/vcits/cpm/AdvisorySpeedList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AdvisorySpeedList_H_ +#define _AdvisorySpeedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AdvisorySpeed; + +/* AdvisorySpeedList */ +typedef struct AdvisorySpeedList { + A_SEQUENCE_OF(struct AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList; +extern asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[1]; +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedList_H_ */ +#include diff --git a/vcits/cpm/AdvisorySpeedType.h b/vcits/cpm/AdvisorySpeedType.h new file mode 100644 index 0000000..ad35223 --- /dev/null +++ b/vcits/cpm/AdvisorySpeedType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AdvisorySpeedType_H_ +#define _AdvisorySpeedType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdvisorySpeedType { + AdvisorySpeedType_none = 0, + AdvisorySpeedType_greenwave = 1, + AdvisorySpeedType_ecoDrive = 2, + AdvisorySpeedType_transit = 3 + /* + * Enumeration is extensible + */ +} e_AdvisorySpeedType; + +/* AdvisorySpeedType */ +typedef long AdvisorySpeedType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType; +extern const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1; +asn_struct_free_f AdvisorySpeedType_free; +asn_struct_print_f AdvisorySpeedType_print; +asn_constr_check_f AdvisorySpeedType_constraint; +ber_type_decoder_f AdvisorySpeedType_decode_ber; +der_type_encoder_f AdvisorySpeedType_encode_der; +xer_type_decoder_f AdvisorySpeedType_decode_xer; +xer_type_encoder_f AdvisorySpeedType_encode_xer; +oer_type_decoder_f AdvisorySpeedType_decode_oer; +oer_type_encoder_f AdvisorySpeedType_encode_oer; +per_type_decoder_f AdvisorySpeedType_decode_uper; +per_type_encoder_f AdvisorySpeedType_encode_uper; +per_type_decoder_f AdvisorySpeedType_decode_aper; +per_type_encoder_f AdvisorySpeedType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedType_H_ */ +#include diff --git a/vcits/cpm/AllowedManeuvers.h b/vcits/cpm/AllowedManeuvers.h new file mode 100644 index 0000000..f6e140d --- /dev/null +++ b/vcits/cpm/AllowedManeuvers.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AllowedManeuvers_H_ +#define _AllowedManeuvers_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AllowedManeuvers { + AllowedManeuvers_maneuverStraightAllowed = 0, + AllowedManeuvers_maneuverLeftAllowed = 1, + AllowedManeuvers_maneuverRightAllowed = 2, + AllowedManeuvers_maneuverUTurnAllowed = 3, + AllowedManeuvers_maneuverLeftTurnOnRedAllowed = 4, + AllowedManeuvers_maneuverRightTurnOnRedAllowed = 5, + AllowedManeuvers_maneuverLaneChangeAllowed = 6, + AllowedManeuvers_maneuverNoStoppingAllowed = 7, + AllowedManeuvers_yieldAllwaysRequired = 8, + AllowedManeuvers_goWithHalt = 9, + AllowedManeuvers_caution = 10, + AllowedManeuvers_reserved1 = 11 +} e_AllowedManeuvers; + +/* AllowedManeuvers */ +typedef BIT_STRING_t AllowedManeuvers_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers; +asn_struct_free_f AllowedManeuvers_free; +asn_struct_print_f AllowedManeuvers_print; +asn_constr_check_f AllowedManeuvers_constraint; +ber_type_decoder_f AllowedManeuvers_decode_ber; +der_type_encoder_f AllowedManeuvers_encode_der; +xer_type_decoder_f AllowedManeuvers_decode_xer; +xer_type_encoder_f AllowedManeuvers_encode_xer; +oer_type_decoder_f AllowedManeuvers_decode_oer; +oer_type_encoder_f AllowedManeuvers_encode_oer; +per_type_decoder_f AllowedManeuvers_decode_uper; +per_type_encoder_f AllowedManeuvers_encode_uper; +per_type_decoder_f AllowedManeuvers_decode_aper; +per_type_encoder_f AllowedManeuvers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AllowedManeuvers_H_ */ +#include diff --git a/vcits/cpm/Altitude.h b/vcits/cpm/Altitude.h new file mode 100644 index 0000000..3c57cb4 --- /dev/null +++ b/vcits/cpm/Altitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Altitude_H_ +#define _Altitude_H_ + + +#include + +/* Including external dependencies */ +#include "AltitudeValue.h" +#include "AltitudeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Altitude */ +typedef struct Altitude { + AltitudeValue_t altitudeValue; + AltitudeConfidence_t altitudeConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Altitude_H_ */ +#include diff --git a/vcits/cpm/AltitudeConfidence.h b/vcits/cpm/AltitudeConfidence.h new file mode 100644 index 0000000..e44b50f --- /dev/null +++ b/vcits/cpm/AltitudeConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AltitudeConfidence_H_ +#define _AltitudeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeConfidence { + AltitudeConfidence_alt_000_01 = 0, + AltitudeConfidence_alt_000_02 = 1, + AltitudeConfidence_alt_000_05 = 2, + AltitudeConfidence_alt_000_10 = 3, + AltitudeConfidence_alt_000_20 = 4, + AltitudeConfidence_alt_000_50 = 5, + AltitudeConfidence_alt_001_00 = 6, + AltitudeConfidence_alt_002_00 = 7, + AltitudeConfidence_alt_005_00 = 8, + AltitudeConfidence_alt_010_00 = 9, + AltitudeConfidence_alt_020_00 = 10, + AltitudeConfidence_alt_050_00 = 11, + AltitudeConfidence_alt_100_00 = 12, + AltitudeConfidence_alt_200_00 = 13, + AltitudeConfidence_outOfRange = 14, + AltitudeConfidence_unavailable = 15 +} e_AltitudeConfidence; + +/* AltitudeConfidence */ +typedef long AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1; +asn_struct_free_f AltitudeConfidence_free; +asn_struct_print_f AltitudeConfidence_print; +asn_constr_check_f AltitudeConfidence_constraint; +ber_type_decoder_f AltitudeConfidence_decode_ber; +der_type_encoder_f AltitudeConfidence_encode_der; +xer_type_decoder_f AltitudeConfidence_decode_xer; +xer_type_encoder_f AltitudeConfidence_encode_xer; +oer_type_decoder_f AltitudeConfidence_decode_oer; +oer_type_encoder_f AltitudeConfidence_encode_oer; +per_type_decoder_f AltitudeConfidence_decode_uper; +per_type_encoder_f AltitudeConfidence_encode_uper; +per_type_decoder_f AltitudeConfidence_decode_aper; +per_type_encoder_f AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeConfidence_H_ */ +#include diff --git a/vcits/cpm/AltitudeValue.h b/vcits/cpm/AltitudeValue.h new file mode 100644 index 0000000..53dca9a --- /dev/null +++ b/vcits/cpm/AltitudeValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AltitudeValue_H_ +#define _AltitudeValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeValue { + AltitudeValue_referenceEllipsoidSurface = 0, + AltitudeValue_oneCentimeter = 1, + AltitudeValue_unavailable = 800001 +} e_AltitudeValue; + +/* AltitudeValue */ +typedef long AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeValue; +asn_struct_free_f AltitudeValue_free; +asn_struct_print_f AltitudeValue_print; +asn_constr_check_f AltitudeValue_constraint; +ber_type_decoder_f AltitudeValue_decode_ber; +der_type_encoder_f AltitudeValue_encode_der; +xer_type_decoder_f AltitudeValue_decode_xer; +xer_type_encoder_f AltitudeValue_encode_xer; +oer_type_decoder_f AltitudeValue_decode_oer; +oer_type_encoder_f AltitudeValue_encode_oer; +per_type_decoder_f AltitudeValue_decode_uper; +per_type_encoder_f AltitudeValue_encode_uper; +per_type_decoder_f AltitudeValue_decode_aper; +per_type_encoder_f AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeValue_H_ */ +#include diff --git a/vcits/cpm/Angle.h b/vcits/cpm/Angle.h new file mode 100644 index 0000000..74b029b --- /dev/null +++ b/vcits/cpm/Angle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Angle_H_ +#define _Angle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Angle */ +typedef long Angle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Angle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Angle; +asn_struct_free_f Angle_free; +asn_struct_print_f Angle_print; +asn_constr_check_f Angle_constraint; +ber_type_decoder_f Angle_decode_ber; +der_type_encoder_f Angle_encode_der; +xer_type_decoder_f Angle_decode_xer; +xer_type_encoder_f Angle_encode_xer; +oer_type_decoder_f Angle_decode_oer; +oer_type_encoder_f Angle_encode_oer; +per_type_decoder_f Angle_decode_uper; +per_type_encoder_f Angle_encode_uper; +per_type_decoder_f Angle_decode_aper; +per_type_encoder_f Angle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Angle_H_ */ +#include diff --git a/vcits/cpm/AngleConfidence.h b/vcits/cpm/AngleConfidence.h new file mode 100644 index 0000000..b7ef184 --- /dev/null +++ b/vcits/cpm/AngleConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AngleConfidence_H_ +#define _AngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AngleConfidence { + AngleConfidence_zeroPointOneDegree = 1, + AngleConfidence_oneDegree = 10, + AngleConfidence_outOfRange = 126, + AngleConfidence_unavailable = 127 +} e_AngleConfidence; + +/* AngleConfidence */ +typedef long AngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AngleConfidence; +asn_struct_free_f AngleConfidence_free; +asn_struct_print_f AngleConfidence_print; +asn_constr_check_f AngleConfidence_constraint; +ber_type_decoder_f AngleConfidence_decode_ber; +der_type_encoder_f AngleConfidence_encode_der; +xer_type_decoder_f AngleConfidence_decode_xer; +xer_type_encoder_f AngleConfidence_encode_xer; +oer_type_decoder_f AngleConfidence_decode_oer; +oer_type_encoder_f AngleConfidence_encode_oer; +per_type_decoder_f AngleConfidence_decode_uper; +per_type_encoder_f AngleConfidence_encode_uper; +per_type_decoder_f AngleConfidence_decode_aper; +per_type_encoder_f AngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AngleConfidence_H_ */ +#include diff --git a/vcits/cpm/AnimalSubclass.h b/vcits/cpm/AnimalSubclass.h new file mode 100644 index 0000000..55c118d --- /dev/null +++ b/vcits/cpm/AnimalSubclass.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AnimalSubclass_H_ +#define _AnimalSubclass_H_ + + +#include + +/* Including external dependencies */ +#include "AnimalSubclassType.h" +#include "ClassConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AnimalSubclass */ +typedef struct AnimalSubclass { + AnimalSubclassType_t type; /* DEFAULT 0 */ + ClassConfidence_t confidence; /* DEFAULT 0 */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AnimalSubclass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AnimalSubclass; +extern asn_SEQUENCE_specifics_t asn_SPC_AnimalSubclass_specs_1; +extern asn_TYPE_member_t asn_MBR_AnimalSubclass_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AnimalSubclass_H_ */ +#include diff --git a/vcits/cpm/AnimalSubclassType.h b/vcits/cpm/AnimalSubclassType.h new file mode 100644 index 0000000..cda2486 --- /dev/null +++ b/vcits/cpm/AnimalSubclassType.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AnimalSubclassType_H_ +#define _AnimalSubclassType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AnimalSubclassType { + AnimalSubclassType_unknown = 0 +} e_AnimalSubclassType; + +/* AnimalSubclassType */ +typedef long AnimalSubclassType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AnimalSubclassType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AnimalSubclassType; +asn_struct_free_f AnimalSubclassType_free; +asn_struct_print_f AnimalSubclassType_print; +asn_constr_check_f AnimalSubclassType_constraint; +ber_type_decoder_f AnimalSubclassType_decode_ber; +der_type_encoder_f AnimalSubclassType_encode_der; +xer_type_decoder_f AnimalSubclassType_decode_xer; +xer_type_encoder_f AnimalSubclassType_encode_xer; +oer_type_decoder_f AnimalSubclassType_decode_oer; +oer_type_encoder_f AnimalSubclassType_encode_oer; +per_type_decoder_f AnimalSubclassType_decode_uper; +per_type_encoder_f AnimalSubclassType_encode_uper; +per_type_decoder_f AnimalSubclassType_decode_aper; +per_type_encoder_f AnimalSubclassType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AnimalSubclassType_H_ */ +#include diff --git a/vcits/cpm/AntennaOffsetSet.h b/vcits/cpm/AntennaOffsetSet.h new file mode 100644 index 0000000..d7571c3 --- /dev/null +++ b/vcits/cpm/AntennaOffsetSet.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AntennaOffsetSet_H_ +#define _AntennaOffsetSet_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B12.h" +#include "Offset-B09.h" +#include "Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AntennaOffsetSet */ +typedef struct AntennaOffsetSet { + Offset_B12_t antOffsetX; + Offset_B09_t antOffsetY; + Offset_B10_t antOffsetZ; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AntennaOffsetSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet; +extern asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1; +extern asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AntennaOffsetSet_H_ */ +#include diff --git a/vcits/cpm/ApproachID.h b/vcits/cpm/ApproachID.h new file mode 100644 index 0000000..30151c8 --- /dev/null +++ b/vcits/cpm/ApproachID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ApproachID_H_ +#define _ApproachID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ApproachID */ +typedef long ApproachID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ApproachID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ApproachID; +asn_struct_free_f ApproachID_free; +asn_struct_print_f ApproachID_print; +asn_constr_check_f ApproachID_constraint; +ber_type_decoder_f ApproachID_decode_ber; +der_type_encoder_f ApproachID_encode_der; +xer_type_decoder_f ApproachID_decode_xer; +xer_type_encoder_f ApproachID_encode_xer; +oer_type_decoder_f ApproachID_decode_oer; +oer_type_encoder_f ApproachID_encode_oer; +per_type_decoder_f ApproachID_decode_uper; +per_type_encoder_f ApproachID_encode_uper; +per_type_decoder_f ApproachID_decode_aper; +per_type_encoder_f ApproachID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ApproachID_H_ */ +#include diff --git a/vcits/cpm/AreaCircular.h b/vcits/cpm/AreaCircular.h new file mode 100644 index 0000000..2e67073 --- /dev/null +++ b/vcits/cpm/AreaCircular.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AreaCircular_H_ +#define _AreaCircular_H_ + + +#include + +/* Including external dependencies */ +#include "Radius.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct OffsetPoint; + +/* AreaCircular */ +typedef struct AreaCircular { + struct OffsetPoint *nodeCenterPoint; /* OPTIONAL */ + Radius_t radius; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AreaCircular_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AreaCircular; +extern asn_SEQUENCE_specifics_t asn_SPC_AreaCircular_specs_1; +extern asn_TYPE_member_t asn_MBR_AreaCircular_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AreaCircular_H_ */ +#include diff --git a/vcits/cpm/AreaEllipse.h b/vcits/cpm/AreaEllipse.h new file mode 100644 index 0000000..c744f0e --- /dev/null +++ b/vcits/cpm/AreaEllipse.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AreaEllipse_H_ +#define _AreaEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "SemiRangeLength.h" +#include "WGS84AngleValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct OffsetPoint; + +/* AreaEllipse */ +typedef struct AreaEllipse { + struct OffsetPoint *nodeCenterPoint; /* OPTIONAL */ + SemiRangeLength_t semiMinorRangeLength; + SemiRangeLength_t semiMajorRangeLength; + WGS84AngleValue_t semiMajorRangeOrientation; + SemiRangeLength_t *semiHeight; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AreaEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AreaEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_AreaEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_AreaEllipse_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AreaEllipse_H_ */ +#include diff --git a/vcits/cpm/AreaPolygon.h b/vcits/cpm/AreaPolygon.h new file mode 100644 index 0000000..56c7c0e --- /dev/null +++ b/vcits/cpm/AreaPolygon.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AreaPolygon_H_ +#define _AreaPolygon_H_ + + +#include + +/* Including external dependencies */ +#include "PolyPointList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AreaPolygon */ +typedef struct AreaPolygon { + PolyPointList_t polyPointList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AreaPolygon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AreaPolygon; +extern asn_SEQUENCE_specifics_t asn_SPC_AreaPolygon_specs_1; +extern asn_TYPE_member_t asn_MBR_AreaPolygon_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AreaPolygon_H_ */ +#include diff --git a/vcits/cpm/AreaRadial.h b/vcits/cpm/AreaRadial.h new file mode 100644 index 0000000..e498563 --- /dev/null +++ b/vcits/cpm/AreaRadial.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AreaRadial_H_ +#define _AreaRadial_H_ + + +#include + +/* Including external dependencies */ +#include "Range.h" +#include "WGS84AngleValue.h" +#include "CartesianAngleValue.h" +#include "SensorHeight.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct OffsetPoint; + +/* AreaRadial */ +typedef struct AreaRadial { + Range_t range; + WGS84AngleValue_t stationaryHorizontalOpeningAngleStart; + WGS84AngleValue_t stationaryHorizontalOpeningAngleEnd; + CartesianAngleValue_t *verticalOpeningAngleStart; /* OPTIONAL */ + CartesianAngleValue_t *verticalOpeningAngleEnd; /* OPTIONAL */ + struct OffsetPoint *sensorPositionOffset; /* OPTIONAL */ + SensorHeight_t *sensorHeight; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AreaRadial_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AreaRadial; +extern asn_SEQUENCE_specifics_t asn_SPC_AreaRadial_specs_1; +extern asn_TYPE_member_t asn_MBR_AreaRadial_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AreaRadial_H_ */ +#include diff --git a/vcits/cpm/AreaRectangle.h b/vcits/cpm/AreaRectangle.h new file mode 100644 index 0000000..3cf6d23 --- /dev/null +++ b/vcits/cpm/AreaRectangle.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _AreaRectangle_H_ +#define _AreaRectangle_H_ + + +#include + +/* Including external dependencies */ +#include "SemiRangeLength.h" +#include "WGS84AngleValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct OffsetPoint; + +/* AreaRectangle */ +typedef struct AreaRectangle { + struct OffsetPoint *nodeCenterPoint; /* OPTIONAL */ + SemiRangeLength_t semiMajorRangeLength; + SemiRangeLength_t semiMinorRangeLength; + WGS84AngleValue_t semiMajorRangeOrientation; + SemiRangeLength_t *semiHeight; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AreaRectangle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AreaRectangle; +extern asn_SEQUENCE_specifics_t asn_SPC_AreaRectangle_specs_1; +extern asn_TYPE_member_t asn_MBR_AreaRectangle_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AreaRectangle_H_ */ +#include diff --git a/vcits/cpm/BasicContainer.h b/vcits/cpm/BasicContainer.h new file mode 100644 index 0000000..59b5ffb --- /dev/null +++ b/vcits/cpm/BasicContainer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _BasicContainer_H_ +#define _BasicContainer_H_ + + +#include + +/* Including external dependencies */ +#include "StationType.h" +#include "ReferencePosition.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BasicContainer */ +typedef struct BasicContainer { + StationType_t stationType; + ReferencePosition_t referencePosition; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BasicContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BasicContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_BasicContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_BasicContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicContainer_H_ */ +#include diff --git a/vcits/cpm/BasicVehicleContainerHighFrequency.h b/vcits/cpm/BasicVehicleContainerHighFrequency.h new file mode 100644 index 0000000..cb0009d --- /dev/null +++ b/vcits/cpm/BasicVehicleContainerHighFrequency.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _BasicVehicleContainerHighFrequency_H_ +#define _BasicVehicleContainerHighFrequency_H_ + + +#include + +/* Including external dependencies */ +#include "Heading.h" +#include "Speed.h" +#include "DriveDirection.h" +#include "VehicleLength.h" +#include "VehicleWidth.h" +#include "LongitudinalAcceleration.h" +#include "Curvature.h" +#include "CurvatureCalculationMode.h" +#include "YawRate.h" +#include "AccelerationControl.h" +#include "LanePosition.h" +#include "PerformanceClass.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SteeringWheelAngle; +struct LateralAcceleration; +struct VerticalAcceleration; +struct CenDsrcTollingZone; + +/* BasicVehicleContainerHighFrequency */ +typedef struct BasicVehicleContainerHighFrequency { + Heading_t heading; + Speed_t speed; + DriveDirection_t driveDirection; + VehicleLength_t vehicleLength; + VehicleWidth_t vehicleWidth; + LongitudinalAcceleration_t longitudinalAcceleration; + Curvature_t curvature; + CurvatureCalculationMode_t curvatureCalculationMode; + YawRate_t yawRate; + AccelerationControl_t *accelerationControl; /* OPTIONAL */ + LanePosition_t *lanePosition; /* OPTIONAL */ + struct SteeringWheelAngle *steeringWheelAngle; /* OPTIONAL */ + struct LateralAcceleration *lateralAcceleration; /* OPTIONAL */ + struct VerticalAcceleration *verticalAcceleration; /* OPTIONAL */ + PerformanceClass_t *performanceClass; /* OPTIONAL */ + struct CenDsrcTollingZone *cenDsrcTollingZone; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BasicVehicleContainerHighFrequency_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BasicVehicleContainerHighFrequency; +extern asn_SEQUENCE_specifics_t asn_SPC_BasicVehicleContainerHighFrequency_specs_1; +extern asn_TYPE_member_t asn_MBR_BasicVehicleContainerHighFrequency_1[16]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicVehicleContainerHighFrequency_H_ */ +#include diff --git a/vcits/cpm/BasicVehicleContainerLowFrequency.h b/vcits/cpm/BasicVehicleContainerLowFrequency.h new file mode 100644 index 0000000..ec8fc13 --- /dev/null +++ b/vcits/cpm/BasicVehicleContainerLowFrequency.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _BasicVehicleContainerLowFrequency_H_ +#define _BasicVehicleContainerLowFrequency_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleRole.h" +#include "ExteriorLights.h" +#include "PathHistory.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BasicVehicleContainerLowFrequency */ +typedef struct BasicVehicleContainerLowFrequency { + VehicleRole_t vehicleRole; + ExteriorLights_t exteriorLights; + PathHistory_t pathHistory; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BasicVehicleContainerLowFrequency_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BasicVehicleContainerLowFrequency; +extern asn_SEQUENCE_specifics_t asn_SPC_BasicVehicleContainerLowFrequency_specs_1; +extern asn_TYPE_member_t asn_MBR_BasicVehicleContainerLowFrequency_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicVehicleContainerLowFrequency_H_ */ +#include diff --git a/vcits/cpm/BasicVehicleRole.h b/vcits/cpm/BasicVehicleRole.h new file mode 100644 index 0000000..d5f38a1 --- /dev/null +++ b/vcits/cpm/BasicVehicleRole.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _BasicVehicleRole_H_ +#define _BasicVehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BasicVehicleRole { + BasicVehicleRole_basicVehicle = 0, + BasicVehicleRole_publicTransport = 1, + BasicVehicleRole_specialTransport = 2, + BasicVehicleRole_dangerousGoods = 3, + BasicVehicleRole_roadWork = 4, + BasicVehicleRole_roadRescue = 5, + BasicVehicleRole_emergency = 6, + BasicVehicleRole_safetyCar = 7, + BasicVehicleRole_none_unknown = 8, + BasicVehicleRole_truck = 9, + BasicVehicleRole_motorcycle = 10, + BasicVehicleRole_roadSideSource = 11, + BasicVehicleRole_police = 12, + BasicVehicleRole_fire = 13, + BasicVehicleRole_ambulance = 14, + BasicVehicleRole_dot = 15, + BasicVehicleRole_transit = 16, + BasicVehicleRole_slowMoving = 17, + BasicVehicleRole_stopNgo = 18, + BasicVehicleRole_cyclist = 19, + BasicVehicleRole_pedestrian = 20, + BasicVehicleRole_nonMotorized = 21, + BasicVehicleRole_military = 22 + /* + * Enumeration is extensible + */ +} e_BasicVehicleRole; + +/* BasicVehicleRole */ +typedef long BasicVehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1; +asn_struct_free_f BasicVehicleRole_free; +asn_struct_print_f BasicVehicleRole_print; +asn_constr_check_f BasicVehicleRole_constraint; +ber_type_decoder_f BasicVehicleRole_decode_ber; +der_type_encoder_f BasicVehicleRole_encode_der; +xer_type_decoder_f BasicVehicleRole_decode_xer; +xer_type_encoder_f BasicVehicleRole_encode_xer; +oer_type_decoder_f BasicVehicleRole_decode_oer; +oer_type_encoder_f BasicVehicleRole_encode_oer; +per_type_decoder_f BasicVehicleRole_decode_uper; +per_type_encoder_f BasicVehicleRole_encode_uper; +per_type_decoder_f BasicVehicleRole_decode_aper; +per_type_encoder_f BasicVehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicVehicleRole_H_ */ +#include diff --git a/vcits/cpm/BatteryStatus.h b/vcits/cpm/BatteryStatus.h new file mode 100644 index 0000000..d1865f3 --- /dev/null +++ b/vcits/cpm/BatteryStatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _BatteryStatus_H_ +#define _BatteryStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BatteryStatus { + BatteryStatus_unknown = 0, + BatteryStatus_critical = 1, + BatteryStatus_low = 2, + BatteryStatus_good = 3 + /* + * Enumeration is extensible + */ +} e_BatteryStatus; + +/* BatteryStatus */ +typedef long BatteryStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BatteryStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BatteryStatus; +extern const asn_INTEGER_specifics_t asn_SPC_BatteryStatus_specs_1; +asn_struct_free_f BatteryStatus_free; +asn_struct_print_f BatteryStatus_print; +asn_constr_check_f BatteryStatus_constraint; +ber_type_decoder_f BatteryStatus_decode_ber; +der_type_encoder_f BatteryStatus_encode_der; +xer_type_decoder_f BatteryStatus_decode_xer; +xer_type_encoder_f BatteryStatus_encode_xer; +oer_type_decoder_f BatteryStatus_decode_oer; +oer_type_encoder_f BatteryStatus_encode_oer; +per_type_decoder_f BatteryStatus_decode_uper; +per_type_encoder_f BatteryStatus_encode_uper; +per_type_decoder_f BatteryStatus_decode_aper; +per_type_encoder_f BatteryStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BatteryStatus_H_ */ +#include diff --git a/vcits/cpm/CAM.h b/vcits/cpm/CAM.h new file mode 100644 index 0000000..f549dad --- /dev/null +++ b/vcits/cpm/CAM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CAM_H_ +#define _CAM_H_ + + +#include + +/* Including external dependencies */ +#include "ItsPduHeader.h" +#include "CoopAwareness.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CAM */ +typedef struct CAM { + ItsPduHeader_t header; + CoopAwareness_t cam; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CAM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CAM; + +#ifdef __cplusplus +} +#endif + +#endif /* _CAM_H_ */ +#include diff --git a/vcits/cpm/CMakeLists.txt b/vcits/cpm/CMakeLists.txt new file mode 100644 index 0000000..9fe0a33 --- /dev/null +++ b/vcits/cpm/CMakeLists.txt @@ -0,0 +1,457 @@ +# This file is auto-generated by command-cxx.sh +cmake_minimum_required(VERSION 3.9) + +message(STATUS "--> Configure build of |-vcits-cpm") + +project(vcits-cpm VERSION 0.2 DESCRIPTION "cpm part of vcits") + +add_library(vcits-cpm STATIC +src/AccelerationConfidence.c +src/AccelerationControl.c +src/AccidentSubCauseCode.c +src/ActionID.c +src/AdverseWeatherCondition-AdhesionSubCauseCode.c +src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c +src/AdverseWeatherCondition-PrecipitationSubCauseCode.c +src/AdverseWeatherCondition-VisibilitySubCauseCode.c +src/AdvisorySpeed.c +src/AdvisorySpeedList.c +src/AdvisorySpeedType.c +src/AllowedManeuvers.c +src/Altitude.c +src/AltitudeConfidence.c +src/AltitudeValue.c +src/Angle.c +src/AngleConfidence.c +src/AnimalSubclass.c +src/AnimalSubclassType.c +src/AntennaOffsetSet.c +src/ApproachID.c +src/AreaCircular.c +src/AreaEllipse.c +src/AreaPolygon.c +src/AreaRadial.c +src/AreaRectangle.c +src/BasicContainer.c +src/BasicVehicleContainerHighFrequency.c +src/BasicVehicleContainerLowFrequency.c +src/BasicVehicleRole.c +src/BatteryStatus.c +src/CAM.c +src/CPM.c +src/CamParameters.c +src/CartesianAngle.c +src/CartesianAngleValue.c +src/CauseCode.c +src/CauseCodeType.c +src/CenDsrcTollingZone.c +src/CenDsrcTollingZoneID.c +src/ClassConfidence.c +src/ClosedLanes.c +src/CollectivePerceptionMessage.c +src/CollisionRiskSubCauseCode.c +src/ComputedLane.c +src/ConnectingLane.c +src/Connection.c +src/ConnectionManeuverAssist-addGrpC.c +src/ConnectionManeuverAssist.c +src/ConnectionTrajectory-addGrpC.c +src/ConnectsToList.c +src/CoopAwareness.c +src/CpmManagementContainer.c +src/CpmParameters.c +src/Curvature.c +src/CurvatureCalculationMode.c +src/CurvatureConfidence.c +src/CurvatureValue.c +src/DDateTime.c +src/DDay.c +src/DHour.c +src/DMinute.c +src/DMonth.c +src/DOffset.c +src/DSRCmsgID.c +src/DSecond.c +src/DYear.c +src/DangerousEndOfQueueSubCauseCode.c +src/DangerousGoodsBasic.c +src/DangerousGoodsContainer.c +src/DangerousGoodsExtended.c +src/DangerousSituationSubCauseCode.c +src/DataParameters.c +src/DeltaAltitude.c +src/DeltaAngle.c +src/DeltaLatitude.c +src/DeltaLongitude.c +src/DeltaReferencePosition.c +src/DeltaTime.c +src/DescriptiveName.c +src/DetectionArea.c +src/DigitalMap.c +src/DistanceConfidence.c +src/DistanceValue.c +src/DriveDirection.c +src/DrivenLineOffsetLg.c +src/DrivenLineOffsetSm.c +src/DrivingLaneStatus.c +src/DynamicStatus.c +src/Elevation.c +src/ElevationConfidence.c +src/EmbarkationStatus.c +src/EmergencyContainer.c +src/EmergencyPriority.c +src/EmergencyVehicleApproachingSubCauseCode.c +src/EmissionType.c +src/EnabledLaneList.c +src/EnergyStorageType.c +src/EuVehicleCategoryCode.c +src/EuVehicleCategoryL.c +src/EuVehicleCategoryM.c +src/EuVehicleCategoryN.c +src/EuVehicleCategoryO.c +src/EventHistory.c +src/EventPoint.c +src/ExceptionalCondition.c +src/ExteriorLights.c +src/FreeSpaceAddendum.c +src/FreeSpaceAddendumContainer.c +src/FreeSpaceArea.c +src/FreeSpaceConfidence.c +src/FrontOverhang.c +src/FuelType.c +src/FullPositionVector.c +src/GNSSstatus.c +src/GenerationDeltaTime.c +src/GenericLane.c +src/HardShoulderStatus.c +src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c +src/HazardousLocation-DangerousCurveSubCauseCode.c +src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c +src/HazardousLocation-SurfaceConditionSubCauseCode.c +src/Heading.c +src/HeadingConfidence.c +src/HeadingConfidenceDSRC.c +src/HeadingDSRC.c +src/HeadingValue.c +src/HeightLonCarr.c +src/HighFrequencyContainer.c +src/HitchPointOffset.c +src/HumanPresenceOnTheRoadSubCauseCode.c +src/HumanProblemSubCauseCode.c +src/Identifier.c +src/InformationQuality.c +src/IntersectionAccessPoint.c +src/IntersectionGeometry.c +src/IntersectionGeometryList.c +src/IntersectionID.c +src/IntersectionReferenceID.c +src/IntersectionState-addGrpC.c +src/IntersectionState.c +src/IntersectionStateList.c +src/IntersectionStatusObject.c +src/Iso3833VehicleType.c +src/ItineraryPath.c +src/ItsPduHeader.c +src/ItsStationPosition.c +src/ItsStationPositionList.c +src/LaneAttributes-Barrier.c +src/LaneAttributes-Bike.c +src/LaneAttributes-Crosswalk.c +src/LaneAttributes-Parking.c +src/LaneAttributes-Sidewalk.c +src/LaneAttributes-Striping.c +src/LaneAttributes-TrackedVehicle.c +src/LaneAttributes-Vehicle.c +src/LaneAttributes-addGrpC.c +src/LaneAttributes.c +src/LaneConnectionID.c +src/LaneDataAttribute.c +src/LaneDataAttributeList.c +src/LaneDirection.c +src/LaneID.c +src/LaneList.c +src/LanePosition.c +src/LaneSharing.c +src/LaneTypeAttributes.c +src/LaneWidth.c +src/LateralAcceleration.c +src/LateralAccelerationValue.c +src/Latitude.c +src/LayerID.c +src/LayerType.c +src/LightBarSirenInUse.c +src/Longitude.c +src/LongitudinalAcceleration.c +src/LongitudinalAccelerationValue.c +src/LongitudinalLanePosition.c +src/LongitudinalLanePositionConfidence.c +src/LongitudinalLanePositionValue.c +src/LowFrequencyContainer.c +src/ManeuverAssistList.c +src/MapData-addGrpC.c +src/MapData.c +src/MatchedPosition.c +src/MergeDivergeNodeAngle.c +src/MinuteOfTheYear.c +src/MovementEvent-addGrpC.c +src/MovementEvent.c +src/MovementEventList.c +src/MovementList.c +src/MovementPhaseState.c +src/MovementState.c +src/MsgCount.c +src/Node-LLmD-64b.c +src/Node-XY-20b.c +src/Node-XY-22b.c +src/Node-XY-24b.c +src/Node-XY-26b.c +src/Node-XY-28b.c +src/Node-XY-32b.c +src/Node.c +src/NodeAttributeSet-addGrpC.c +src/NodeAttributeSetXY.c +src/NodeAttributeXY.c +src/NodeAttributeXYList.c +src/NodeLink.c +src/NodeListXY.c +src/NodeOffsetPointXY.c +src/NodeOffsetPointZ.c +src/NodeSetXY.c +src/NodeXY.c +src/NumberOfOccupants.c +src/NumberOfPerceivedObjects.c +src/ObjectAge.c +src/ObjectClass.c +src/ObjectClassDescription.c +src/ObjectConfidence.c +src/ObjectDimension.c +src/ObjectDimensionConfidence.c +src/ObjectDimensionValue.c +src/ObjectDistanceWithConfidence.c +src/ObjectRefPoint.c +src/Offset-B09.c +src/Offset-B10.c +src/Offset-B11.c +src/Offset-B12.c +src/Offset-B13.c +src/Offset-B14.c +src/Offset-B16.c +src/OffsetPoint.c +src/OpeningDaysHours.c +src/OriginatingRSUContainer.c +src/OriginatingVehicleContainer.c +src/OtherSubclass.c +src/OtherSublassType.c +src/OverlayLaneList.c +src/PathDeltaTime.c +src/PathHistory.c +src/PathPoint.c +src/PedestrianBicycleDetect.c +src/PerceivedObject.c +src/PerceivedObjectContainer.c +src/PerceivedObjectContainerSegmentInfo.c +src/PerformanceClass.c +src/PersonSubclass.c +src/PersonSubclassType.c +src/PhoneNumber.c +src/PolyPointList.c +src/PosCentMass.c +src/PosConfidenceEllipse.c +src/PosFrontAx.c +src/PosLonCarr.c +src/PosPillar.c +src/Position3D-addGrpC.c +src/Position3D.c +src/PositionConfidence.c +src/PositionConfidenceSet.c +src/PositionOfOccupants.c +src/PositionOfPillars.c +src/PositionalAccuracy.c +src/PositioningSolutionType.c +src/PostCrashSubCauseCode.c +src/PreemptPriorityList.c +src/PrioritizationResponse.c +src/PrioritizationResponseList.c +src/PrioritizationResponseStatus.c +src/PriorityRequestType.c +src/ProtectedCommunicationZone.c +src/ProtectedCommunicationZonesRSU.c +src/ProtectedZoneID.c +src/ProtectedZoneRadius.c +src/ProtectedZoneType.c +src/PtActivation.c +src/PtActivationData.c +src/PtActivationType.c +src/PtvRequestType.c +src/PublicTransportContainer.c +src/RSUContainerHighFrequency.c +src/RTCM-Revision.c +src/RTCMcorrections.c +src/RTCMheader.c +src/RTCMmessage.c +src/RTCMmessageList.c +src/Radius.c +src/Range.c +src/RearOverhang.c +src/RefPointId.c +src/ReferencePosition.c +src/RegionId.c +src/RegionalExtension.c +src/RegulatorySpeedLimit.c +src/RejectedReason.c +src/RelevanceDistance.c +src/RelevanceTrafficDirection.c +src/RequestID.c +src/RequestImportanceLevel.c +src/RequestResponseIndication.c +src/RequestSubRole.c +src/RequestorDescription-addGrpC.c +src/RequestorDescription.c +src/RequestorPositionVector.c +src/RequestorType.c +src/RescueAndRecoveryWorkInProgressSubCauseCode.c +src/RescueContainer.c +src/RestrictedTypes.c +src/RestrictionAppliesTo.c +src/RestrictionClassAssignment.c +src/RestrictionClassID.c +src/RestrictionClassList.c +src/RestrictionUserType-addGrpC.c +src/RestrictionUserType.c +src/RestrictionUserTypeList.c +src/RoadLaneSetList.c +src/RoadRegulatorID.c +src/RoadSegment.c +src/RoadSegmentID.c +src/RoadSegmentList.c +src/RoadSegmentReferenceID.c +src/RoadType.c +src/RoadWorksContainerBasic.c +src/RoadwayCrownAngle.c +src/RoadworksSubCauseCode.c +src/SPAT.c +src/SafetyCarContainer.c +src/Scale-B12.c +src/SegmentAttributeXY.c +src/SegmentAttributeXYList.c +src/SegmentCount.c +src/SemiAxisLength.c +src/SemiMajorAxisAccuracy.c +src/SemiMajorAxisOrientation.c +src/SemiMinorAxisAccuracy.c +src/SemiRangeLength.c +src/SensorHeight.c +src/SensorIdList.c +src/SensorInformation.c +src/SensorInformationContainer.c +src/SensorType.c +src/SequenceNumber.c +src/ShadowingApplies.c +src/SignalControlZone.c +src/SignalGroupID.c +src/SignalHeadLocation.c +src/SignalHeadLocationList.c +src/SignalRequest.c +src/SignalRequestList.c +src/SignalRequestMessage.c +src/SignalRequestPackage.c +src/SignalRequesterInfo.c +src/SignalStatus.c +src/SignalStatusList.c +src/SignalStatusMessage.c +src/SignalStatusPackage-addGrpC.c +src/SignalStatusPackage.c +src/SignalStatusPackageList.c +src/SignalViolationSubCauseCode.c +src/SlowVehicleSubCauseCode.c +src/SpecialTransportContainer.c +src/SpecialTransportType.c +src/SpecialVehicleContainer.c +src/Speed.c +src/SpeedAdvice.c +src/SpeedConfidence.c +src/SpeedConfidenceDSRC.c +src/SpeedExtended.c +src/SpeedLimit.c +src/SpeedLimitList.c +src/SpeedLimitType.c +src/SpeedValue.c +src/SpeedValueExtended.c +src/SpeedandHeadingandThrottleConfidence.c +src/StationDataContainer.c +src/StationID.c +src/StationType.c +src/StationarySince.c +src/StationaryVehicleSubCauseCode.c +src/SteeringWheelAngle.c +src/SteeringWheelAngleConfidence.c +src/SteeringWheelAngleValue.c +src/SubCauseCodeType.c +src/Temperature.c +src/TemporaryID.c +src/ThrottleConfidence.c +src/TimeChangeDetails.c +src/TimeConfidence.c +src/TimeIntervalConfidence.c +src/TimeMark.c +src/TimeOfMeasurement.c +src/TimeReference.c +src/TimestampIts.c +src/Traces.c +src/TrafficConditionSubCauseCode.c +src/TrafficRule.c +src/TrailerData.c +src/TrailerDataContainer.c +src/TransitVehicleOccupancy.c +src/TransitVehicleStatus.c +src/TransmissionAndSpeed.c +src/TransmissionInterval.c +src/TransmissionState.c +src/TurningRadius.c +src/VDS.c +src/ValidityDuration.c +src/VehicleBreakdownSubCauseCode.c +src/VehicleHeight.c +src/VehicleID.c +src/VehicleIdentification.c +src/VehicleLength.c +src/VehicleLengthConfidenceIndication.c +src/VehicleLengthValue.c +src/VehicleMass.c +src/VehicleRole.c +src/VehicleSensor.c +src/VehicleSensorProperties.c +src/VehicleSensorPropertyList.c +src/VehicleSubclass.c +src/VehicleSubclassType.c +src/VehicleType.c +src/VehicleWidth.c +src/Velocity.c +src/VerticalAcceleration.c +src/VerticalAccelerationValue.c +src/WGS84Angle.c +src/WGS84AngleValue.c +src/WMInumber.c +src/WaitOnStopline.c +src/WheelBaseVehicle.c +src/WrongWayDrivingSubCauseCode.c +src/XSensorOffset.c +src/YSensorOffset.c +src/YawRate.c +src/YawRateConfidence.c +src/YawRateValue.c +src/ZSensorOffset.c +src/ZoneLength.c +) + +set_target_properties(vcits-cpm PROPERTIES VERSION ${PROJECT_VERSION}) + +target_include_directories(vcits-cpm PRIVATE .) +target_include_directories(vcits-cpm PRIVATE ../asn1c) + +target_link_libraries(vcits-cpm PUBLIC +vcits-asn1c +) + +message(STATUS "--> Configure build of |-vcits-cpm - done") + diff --git a/vcits/cpm/CPM.h b/vcits/cpm/CPM.h new file mode 100644 index 0000000..1b3abbd --- /dev/null +++ b/vcits/cpm/CPM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CPM_H_ +#define _CPM_H_ + + +#include + +/* Including external dependencies */ +#include "ItsPduHeader.h" +#include "CollectivePerceptionMessage.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CPM */ +typedef struct CPM { + ItsPduHeader_t header; + CollectivePerceptionMessage_t cpm; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CPM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CPM; + +#ifdef __cplusplus +} +#endif + +#endif /* _CPM_H_ */ +#include diff --git a/vcits/cpm/CamParameters.h b/vcits/cpm/CamParameters.h new file mode 100644 index 0000000..0960dd7 --- /dev/null +++ b/vcits/cpm/CamParameters.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CamParameters_H_ +#define _CamParameters_H_ + + +#include + +/* Including external dependencies */ +#include "BasicContainer.h" +#include "HighFrequencyContainer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LowFrequencyContainer; +struct SpecialVehicleContainer; + +/* CamParameters */ +typedef struct CamParameters { + BasicContainer_t basicContainer; + HighFrequencyContainer_t highFrequencyContainer; + struct LowFrequencyContainer *lowFrequencyContainer; /* OPTIONAL */ + struct SpecialVehicleContainer *specialVehicleContainer; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CamParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CamParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_CamParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_CamParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CamParameters_H_ */ +#include diff --git a/vcits/cpm/CartesianAngle.h b/vcits/cpm/CartesianAngle.h new file mode 100644 index 0000000..1ef8e10 --- /dev/null +++ b/vcits/cpm/CartesianAngle.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CartesianAngle_H_ +#define _CartesianAngle_H_ + + +#include + +/* Including external dependencies */ +#include "CartesianAngleValue.h" +#include "AngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CartesianAngle */ +typedef struct CartesianAngle { + CartesianAngleValue_t value; + AngleConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CartesianAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CartesianAngle; +extern asn_SEQUENCE_specifics_t asn_SPC_CartesianAngle_specs_1; +extern asn_TYPE_member_t asn_MBR_CartesianAngle_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CartesianAngle_H_ */ +#include diff --git a/vcits/cpm/CartesianAngleValue.h b/vcits/cpm/CartesianAngleValue.h new file mode 100644 index 0000000..8294a7d --- /dev/null +++ b/vcits/cpm/CartesianAngleValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CartesianAngleValue_H_ +#define _CartesianAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CartesianAngleValue { + CartesianAngleValue_zeroPointOneDegree = 1, + CartesianAngleValue_oneDegree = 10, + CartesianAngleValue_unavailable = 3601 +} e_CartesianAngleValue; + +/* CartesianAngleValue */ +typedef long CartesianAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CartesianAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CartesianAngleValue; +asn_struct_free_f CartesianAngleValue_free; +asn_struct_print_f CartesianAngleValue_print; +asn_constr_check_f CartesianAngleValue_constraint; +ber_type_decoder_f CartesianAngleValue_decode_ber; +der_type_encoder_f CartesianAngleValue_encode_der; +xer_type_decoder_f CartesianAngleValue_decode_xer; +xer_type_encoder_f CartesianAngleValue_encode_xer; +oer_type_decoder_f CartesianAngleValue_decode_oer; +oer_type_encoder_f CartesianAngleValue_encode_oer; +per_type_decoder_f CartesianAngleValue_decode_uper; +per_type_encoder_f CartesianAngleValue_encode_uper; +per_type_decoder_f CartesianAngleValue_decode_aper; +per_type_encoder_f CartesianAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CartesianAngleValue_H_ */ +#include diff --git a/vcits/cpm/CauseCode.h b/vcits/cpm/CauseCode.h new file mode 100644 index 0000000..6098703 --- /dev/null +++ b/vcits/cpm/CauseCode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CauseCode_H_ +#define _CauseCode_H_ + + +#include + +/* Including external dependencies */ +#include "CauseCodeType.h" +#include "SubCauseCodeType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CauseCode */ +typedef struct CauseCode { + CauseCodeType_t causeCode; + SubCauseCodeType_t subCauseCode; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CauseCode; +extern asn_SEQUENCE_specifics_t asn_SPC_CauseCode_specs_1; +extern asn_TYPE_member_t asn_MBR_CauseCode_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCode_H_ */ +#include diff --git a/vcits/cpm/CauseCodeType.h b/vcits/cpm/CauseCodeType.h new file mode 100644 index 0000000..b701053 --- /dev/null +++ b/vcits/cpm/CauseCodeType.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CauseCodeType_H_ +#define _CauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseCodeType { + CauseCodeType_reserved = 0, + CauseCodeType_trafficCondition = 1, + CauseCodeType_accident = 2, + CauseCodeType_roadworks = 3, + CauseCodeType_impassability = 5, + CauseCodeType_adverseWeatherCondition_Adhesion = 6, + CauseCodeType_aquaplannning = 7, + CauseCodeType_hazardousLocation_SurfaceCondition = 9, + CauseCodeType_hazardousLocation_ObstacleOnTheRoad = 10, + CauseCodeType_hazardousLocation_AnimalOnTheRoad = 11, + CauseCodeType_humanPresenceOnTheRoad = 12, + CauseCodeType_wrongWayDriving = 14, + CauseCodeType_rescueAndRecoveryWorkInProgress = 15, + CauseCodeType_adverseWeatherCondition_ExtremeWeatherCondition = 17, + CauseCodeType_adverseWeatherCondition_Visibility = 18, + CauseCodeType_adverseWeatherCondition_Precipitation = 19, + CauseCodeType_slowVehicle = 26, + CauseCodeType_dangerousEndOfQueue = 27, + CauseCodeType_vehicleBreakdown = 91, + CauseCodeType_postCrash = 92, + CauseCodeType_humanProblem = 93, + CauseCodeType_stationaryVehicle = 94, + CauseCodeType_emergencyVehicleApproaching = 95, + CauseCodeType_hazardousLocation_DangerousCurve = 96, + CauseCodeType_collisionRisk = 97, + CauseCodeType_signalViolation = 98, + CauseCodeType_dangerousSituation = 99 +} e_CauseCodeType; + +/* CauseCodeType */ +typedef long CauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseCodeType; +asn_struct_free_f CauseCodeType_free; +asn_struct_print_f CauseCodeType_print; +asn_constr_check_f CauseCodeType_constraint; +ber_type_decoder_f CauseCodeType_decode_ber; +der_type_encoder_f CauseCodeType_encode_der; +xer_type_decoder_f CauseCodeType_decode_xer; +xer_type_encoder_f CauseCodeType_encode_xer; +oer_type_decoder_f CauseCodeType_decode_oer; +oer_type_encoder_f CauseCodeType_encode_oer; +per_type_decoder_f CauseCodeType_decode_uper; +per_type_encoder_f CauseCodeType_encode_uper; +per_type_decoder_f CauseCodeType_decode_aper; +per_type_encoder_f CauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCodeType_H_ */ +#include diff --git a/vcits/cpm/CenDsrcTollingZone.h b/vcits/cpm/CenDsrcTollingZone.h new file mode 100644 index 0000000..29b3ae3 --- /dev/null +++ b/vcits/cpm/CenDsrcTollingZone.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CenDsrcTollingZone_H_ +#define _CenDsrcTollingZone_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "CenDsrcTollingZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZone */ +typedef struct CenDsrcTollingZone { + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + CenDsrcTollingZoneID_t *cenDsrcTollingZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CenDsrcTollingZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone; +extern asn_SEQUENCE_specifics_t asn_SPC_CenDsrcTollingZone_specs_1; +extern asn_TYPE_member_t asn_MBR_CenDsrcTollingZone_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZone_H_ */ +#include diff --git a/vcits/cpm/CenDsrcTollingZoneID.h b/vcits/cpm/CenDsrcTollingZoneID.h new file mode 100644 index 0000000..e36ca2f --- /dev/null +++ b/vcits/cpm/CenDsrcTollingZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CenDsrcTollingZoneID_H_ +#define _CenDsrcTollingZoneID_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneID.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZoneID */ +typedef ProtectedZoneID_t CenDsrcTollingZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID; +asn_struct_free_f CenDsrcTollingZoneID_free; +asn_struct_print_f CenDsrcTollingZoneID_print; +asn_constr_check_f CenDsrcTollingZoneID_constraint; +ber_type_decoder_f CenDsrcTollingZoneID_decode_ber; +der_type_encoder_f CenDsrcTollingZoneID_encode_der; +xer_type_decoder_f CenDsrcTollingZoneID_decode_xer; +xer_type_encoder_f CenDsrcTollingZoneID_encode_xer; +oer_type_decoder_f CenDsrcTollingZoneID_decode_oer; +oer_type_encoder_f CenDsrcTollingZoneID_encode_oer; +per_type_decoder_f CenDsrcTollingZoneID_decode_uper; +per_type_encoder_f CenDsrcTollingZoneID_encode_uper; +per_type_decoder_f CenDsrcTollingZoneID_decode_aper; +per_type_encoder_f CenDsrcTollingZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZoneID_H_ */ +#include diff --git a/vcits/cpm/ClassConfidence.h b/vcits/cpm/ClassConfidence.h new file mode 100644 index 0000000..2285c04 --- /dev/null +++ b/vcits/cpm/ClassConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ClassConfidence_H_ +#define _ClassConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ClassConfidence { + ClassConfidence_unknown = 0, + ClassConfidence_onePercent = 1, + ClassConfidence_oneHundredPercent = 100, + ClassConfidence_unavailable = 101 +} e_ClassConfidence; + +/* ClassConfidence */ +typedef long ClassConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ClassConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ClassConfidence; +asn_struct_free_f ClassConfidence_free; +asn_struct_print_f ClassConfidence_print; +asn_constr_check_f ClassConfidence_constraint; +ber_type_decoder_f ClassConfidence_decode_ber; +der_type_encoder_f ClassConfidence_encode_der; +xer_type_decoder_f ClassConfidence_decode_xer; +xer_type_encoder_f ClassConfidence_encode_xer; +oer_type_decoder_f ClassConfidence_decode_oer; +oer_type_encoder_f ClassConfidence_encode_oer; +per_type_decoder_f ClassConfidence_decode_uper; +per_type_encoder_f ClassConfidence_encode_uper; +per_type_decoder_f ClassConfidence_decode_aper; +per_type_encoder_f ClassConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ClassConfidence_H_ */ +#include diff --git a/vcits/cpm/ClosedLanes.h b/vcits/cpm/ClosedLanes.h new file mode 100644 index 0000000..db2166c --- /dev/null +++ b/vcits/cpm/ClosedLanes.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ClosedLanes_H_ +#define _ClosedLanes_H_ + + +#include + +/* Including external dependencies */ +#include "HardShoulderStatus.h" +#include "DrivingLaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ClosedLanes */ +typedef struct ClosedLanes { + HardShoulderStatus_t *innerhardShoulderStatus; /* OPTIONAL */ + HardShoulderStatus_t *outerhardShoulderStatus; /* OPTIONAL */ + DrivingLaneStatus_t *drivingLaneStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ClosedLanes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ClosedLanes; +extern asn_SEQUENCE_specifics_t asn_SPC_ClosedLanes_specs_1; +extern asn_TYPE_member_t asn_MBR_ClosedLanes_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ClosedLanes_H_ */ +#include diff --git a/vcits/cpm/CollectivePerceptionMessage.h b/vcits/cpm/CollectivePerceptionMessage.h new file mode 100644 index 0000000..9eac694 --- /dev/null +++ b/vcits/cpm/CollectivePerceptionMessage.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CollectivePerceptionMessage_H_ +#define _CollectivePerceptionMessage_H_ + + +#include + +/* Including external dependencies */ +#include "GenerationDeltaTime.h" +#include "CpmParameters.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CollectivePerceptionMessage */ +typedef struct CollectivePerceptionMessage { + GenerationDeltaTime_t generationDeltaTime; + CpmParameters_t cpmParameters; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CollectivePerceptionMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CollectivePerceptionMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_CollectivePerceptionMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_CollectivePerceptionMessage_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CollectivePerceptionMessage_H_ */ +#include diff --git a/vcits/cpm/CollisionRiskSubCauseCode.h b/vcits/cpm/CollisionRiskSubCauseCode.h new file mode 100644 index 0000000..b28fc3d --- /dev/null +++ b/vcits/cpm/CollisionRiskSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CollisionRiskSubCauseCode_H_ +#define _CollisionRiskSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CollisionRiskSubCauseCode { + CollisionRiskSubCauseCode_unavailable = 0, + CollisionRiskSubCauseCode_longitudinalCollisionRisk = 1, + CollisionRiskSubCauseCode_crossingCollisionRisk = 2, + CollisionRiskSubCauseCode_lateralCollisionRisk = 3, + CollisionRiskSubCauseCode_vulnerableRoadUser = 4 +} e_CollisionRiskSubCauseCode; + +/* CollisionRiskSubCauseCode */ +typedef long CollisionRiskSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode; +asn_struct_free_f CollisionRiskSubCauseCode_free; +asn_struct_print_f CollisionRiskSubCauseCode_print; +asn_constr_check_f CollisionRiskSubCauseCode_constraint; +ber_type_decoder_f CollisionRiskSubCauseCode_decode_ber; +der_type_encoder_f CollisionRiskSubCauseCode_encode_der; +xer_type_decoder_f CollisionRiskSubCauseCode_decode_xer; +xer_type_encoder_f CollisionRiskSubCauseCode_encode_xer; +oer_type_decoder_f CollisionRiskSubCauseCode_decode_oer; +oer_type_encoder_f CollisionRiskSubCauseCode_encode_oer; +per_type_decoder_f CollisionRiskSubCauseCode_decode_uper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_uper; +per_type_decoder_f CollisionRiskSubCauseCode_decode_aper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CollisionRiskSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/ComputedLane.h b/vcits/cpm/ComputedLane.h new file mode 100644 index 0000000..3571ccd --- /dev/null +++ b/vcits/cpm/ComputedLane.h @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ComputedLane_H_ +#define _ComputedLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "Angle.h" +#include "Scale-B12.h" +#include "DrivenLineOffsetSm.h" +#include "DrivenLineOffsetLg.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ComputedLane__offsetXaxis_PR { + ComputedLane__offsetXaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetXaxis_PR_small, + ComputedLane__offsetXaxis_PR_large +} ComputedLane__offsetXaxis_PR; +typedef enum ComputedLane__offsetYaxis_PR { + ComputedLane__offsetYaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetYaxis_PR_small, + ComputedLane__offsetYaxis_PR_large +} ComputedLane__offsetYaxis_PR; + +/* Forward declarations */ +struct Reg_ComputedLane; + +/* ComputedLane */ +typedef struct ComputedLane { + LaneID_t referenceLaneId; + struct ComputedLane__offsetXaxis { + ComputedLane__offsetXaxis_PR present; + union ComputedLane__offsetXaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetXaxis; + struct ComputedLane__offsetYaxis { + ComputedLane__offsetYaxis_PR present; + union ComputedLane__offsetYaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetYaxis; + Angle_t *rotateXY; /* OPTIONAL */ + Scale_B12_t *scaleXaxis; /* OPTIONAL */ + Scale_B12_t *scaleYaxis; /* OPTIONAL */ + struct ComputedLane__regional { + A_SEQUENCE_OF(struct Reg_ComputedLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ComputedLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ComputedLane_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ComputedLane_H_ */ +#include diff --git a/vcits/cpm/ConnectingLane.h b/vcits/cpm/ConnectingLane.h new file mode 100644 index 0000000..15f9823 --- /dev/null +++ b/vcits/cpm/ConnectingLane.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ConnectingLane_H_ +#define _ConnectingLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "AllowedManeuvers.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectingLane */ +typedef struct ConnectingLane { + LaneID_t lane; + AllowedManeuvers_t *maneuver; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectingLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectingLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectingLane_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectingLane_H_ */ +#include diff --git a/vcits/cpm/Connection.h b/vcits/cpm/Connection.h new file mode 100644 index 0000000..01c6f9b --- /dev/null +++ b/vcits/cpm/Connection.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Connection_H_ +#define _Connection_H_ + + +#include + +/* Including external dependencies */ +#include "ConnectingLane.h" +#include "SignalGroupID.h" +#include "RestrictionClassID.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionReferenceID; + +/* Connection */ +typedef struct Connection { + ConnectingLane_t connectingLane; + struct IntersectionReferenceID *remoteIntersection; /* OPTIONAL */ + SignalGroupID_t *signalGroup; /* OPTIONAL */ + RestrictionClassID_t *userClass; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Connection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Connection; +extern asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1; +extern asn_TYPE_member_t asn_MBR_Connection_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Connection_H_ */ +#include diff --git a/vcits/cpm/ConnectionManeuverAssist-addGrpC.h b/vcits/cpm/ConnectionManeuverAssist-addGrpC.h new file mode 100644 index 0000000..b0ca82f --- /dev/null +++ b/vcits/cpm/ConnectionManeuverAssist-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ConnectionManeuverAssist_addGrpC_H_ +#define _ConnectionManeuverAssist_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ItsStationPositionList; + +/* ConnectionManeuverAssist-addGrpC */ +typedef struct ConnectionManeuverAssist_addGrpC { + struct ItsStationPositionList *itsStationPosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_addGrpC_H_ */ +#include diff --git a/vcits/cpm/ConnectionManeuverAssist.h b/vcits/cpm/ConnectionManeuverAssist.h new file mode 100644 index 0000000..16dd749 --- /dev/null +++ b/vcits/cpm/ConnectionManeuverAssist.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ConnectionManeuverAssist_H_ +#define _ConnectionManeuverAssist_H_ + + +#include + +/* Including external dependencies */ +#include "LaneConnectionID.h" +#include "ZoneLength.h" +#include "WaitOnStopline.h" +#include "PedestrianBicycleDetect.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_ConnectionManeuverAssist; + +/* ConnectionManeuverAssist */ +typedef struct ConnectionManeuverAssist { + LaneConnectionID_t connectionID; + ZoneLength_t *queueLength; /* OPTIONAL */ + ZoneLength_t *availableStorageLength; /* OPTIONAL */ + WaitOnStopline_t *waitOnStop; /* OPTIONAL */ + PedestrianBicycleDetect_t *pedBicycleDetect; /* OPTIONAL */ + struct ConnectionManeuverAssist__regional { + A_SEQUENCE_OF(struct Reg_ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_H_ */ +#include diff --git a/vcits/cpm/ConnectionTrajectory-addGrpC.h b/vcits/cpm/ConnectionTrajectory-addGrpC.h new file mode 100644 index 0000000..d7d8537 --- /dev/null +++ b/vcits/cpm/ConnectionTrajectory-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ConnectionTrajectory_addGrpC_H_ +#define _ConnectionTrajectory_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectionTrajectory-addGrpC */ +typedef struct ConnectionTrajectory_addGrpC { + NodeSetXY_t nodes; + LaneConnectionID_t connectionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionTrajectory_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionTrajectory_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionTrajectory_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionTrajectory_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionTrajectory_addGrpC_H_ */ +#include diff --git a/vcits/cpm/ConnectsToList.h b/vcits/cpm/ConnectsToList.h new file mode 100644 index 0000000..2757966 --- /dev/null +++ b/vcits/cpm/ConnectsToList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ConnectsToList_H_ +#define _ConnectsToList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Connection; + +/* ConnectsToList */ +typedef struct ConnectsToList { + A_SEQUENCE_OF(struct Connection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectsToList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectsToList; +extern asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectsToList_1[1]; +extern asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectsToList_H_ */ +#include diff --git a/vcits/cpm/CoopAwareness.h b/vcits/cpm/CoopAwareness.h new file mode 100644 index 0000000..38b2708 --- /dev/null +++ b/vcits/cpm/CoopAwareness.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CoopAwareness_H_ +#define _CoopAwareness_H_ + + +#include + +/* Including external dependencies */ +#include "GenerationDeltaTime.h" +#include "CamParameters.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CoopAwareness */ +typedef struct CoopAwareness { + GenerationDeltaTime_t generationDeltaTime; + CamParameters_t camParameters; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CoopAwareness_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CoopAwareness; +extern asn_SEQUENCE_specifics_t asn_SPC_CoopAwareness_specs_1; +extern asn_TYPE_member_t asn_MBR_CoopAwareness_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CoopAwareness_H_ */ +#include diff --git a/vcits/cpm/CpmManagementContainer.h b/vcits/cpm/CpmManagementContainer.h new file mode 100644 index 0000000..807f2c0 --- /dev/null +++ b/vcits/cpm/CpmManagementContainer.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CpmManagementContainer_H_ +#define _CpmManagementContainer_H_ + + +#include + +/* Including external dependencies */ +#include "StationType.h" +#include "ReferencePosition.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PerceivedObjectContainerSegmentInfo; + +/* CpmManagementContainer */ +typedef struct CpmManagementContainer { + StationType_t stationType; + struct PerceivedObjectContainerSegmentInfo *perceivedObjectContainerSegmentInfo; /* OPTIONAL */ + ReferencePosition_t referencePosition; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CpmManagementContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CpmManagementContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_CpmManagementContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_CpmManagementContainer_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CpmManagementContainer_H_ */ +#include diff --git a/vcits/cpm/CpmParameters.h b/vcits/cpm/CpmParameters.h new file mode 100644 index 0000000..2da228b --- /dev/null +++ b/vcits/cpm/CpmParameters.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CpmParameters_H_ +#define _CpmParameters_H_ + + +#include + +/* Including external dependencies */ +#include "CpmManagementContainer.h" +#include "NumberOfPerceivedObjects.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct StationDataContainer; +struct SensorInformationContainer; +struct PerceivedObjectContainer; +struct FreeSpaceAddendumContainer; + +/* CpmParameters */ +typedef struct CpmParameters { + CpmManagementContainer_t managementContainer; + struct StationDataContainer *stationDataContainer; /* OPTIONAL */ + struct SensorInformationContainer *sensorInformationContainer; /* OPTIONAL */ + struct PerceivedObjectContainer *perceivedObjectContainer; /* OPTIONAL */ + struct FreeSpaceAddendumContainer *freeSpaceAddendumContainer; /* OPTIONAL */ + NumberOfPerceivedObjects_t numberOfPerceivedObjects; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CpmParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CpmParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_CpmParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_CpmParameters_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CpmParameters_H_ */ +#include diff --git a/vcits/cpm/Curvature.h b/vcits/cpm/Curvature.h new file mode 100644 index 0000000..3a14a06 --- /dev/null +++ b/vcits/cpm/Curvature.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Curvature_H_ +#define _Curvature_H_ + + +#include + +/* Including external dependencies */ +#include "CurvatureValue.h" +#include "CurvatureConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Curvature */ +typedef struct Curvature { + CurvatureValue_t curvatureValue; + CurvatureConfidence_t curvatureConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Curvature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Curvature; +extern asn_SEQUENCE_specifics_t asn_SPC_Curvature_specs_1; +extern asn_TYPE_member_t asn_MBR_Curvature_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Curvature_H_ */ +#include diff --git a/vcits/cpm/CurvatureCalculationMode.h b/vcits/cpm/CurvatureCalculationMode.h new file mode 100644 index 0000000..05d8b40 --- /dev/null +++ b/vcits/cpm/CurvatureCalculationMode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CurvatureCalculationMode_H_ +#define _CurvatureCalculationMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureCalculationMode { + CurvatureCalculationMode_yawRateUsed = 0, + CurvatureCalculationMode_yawRateNotUsed = 1, + CurvatureCalculationMode_unavailable = 2 + /* + * Enumeration is extensible + */ +} e_CurvatureCalculationMode; + +/* CurvatureCalculationMode */ +typedef long CurvatureCalculationMode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureCalculationMode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode; +extern const asn_INTEGER_specifics_t asn_SPC_CurvatureCalculationMode_specs_1; +asn_struct_free_f CurvatureCalculationMode_free; +asn_struct_print_f CurvatureCalculationMode_print; +asn_constr_check_f CurvatureCalculationMode_constraint; +ber_type_decoder_f CurvatureCalculationMode_decode_ber; +der_type_encoder_f CurvatureCalculationMode_encode_der; +xer_type_decoder_f CurvatureCalculationMode_decode_xer; +xer_type_encoder_f CurvatureCalculationMode_encode_xer; +oer_type_decoder_f CurvatureCalculationMode_decode_oer; +oer_type_encoder_f CurvatureCalculationMode_encode_oer; +per_type_decoder_f CurvatureCalculationMode_decode_uper; +per_type_encoder_f CurvatureCalculationMode_encode_uper; +per_type_decoder_f CurvatureCalculationMode_decode_aper; +per_type_encoder_f CurvatureCalculationMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureCalculationMode_H_ */ +#include diff --git a/vcits/cpm/CurvatureConfidence.h b/vcits/cpm/CurvatureConfidence.h new file mode 100644 index 0000000..ffa7c76 --- /dev/null +++ b/vcits/cpm/CurvatureConfidence.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CurvatureConfidence_H_ +#define _CurvatureConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureConfidence { + CurvatureConfidence_onePerMeter_0_00002 = 0, + CurvatureConfidence_onePerMeter_0_0001 = 1, + CurvatureConfidence_onePerMeter_0_0005 = 2, + CurvatureConfidence_onePerMeter_0_002 = 3, + CurvatureConfidence_onePerMeter_0_01 = 4, + CurvatureConfidence_onePerMeter_0_1 = 5, + CurvatureConfidence_outOfRange = 6, + CurvatureConfidence_unavailable = 7 +} e_CurvatureConfidence; + +/* CurvatureConfidence */ +typedef long CurvatureConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1; +asn_struct_free_f CurvatureConfidence_free; +asn_struct_print_f CurvatureConfidence_print; +asn_constr_check_f CurvatureConfidence_constraint; +ber_type_decoder_f CurvatureConfidence_decode_ber; +der_type_encoder_f CurvatureConfidence_encode_der; +xer_type_decoder_f CurvatureConfidence_decode_xer; +xer_type_encoder_f CurvatureConfidence_encode_xer; +oer_type_decoder_f CurvatureConfidence_decode_oer; +oer_type_encoder_f CurvatureConfidence_encode_oer; +per_type_decoder_f CurvatureConfidence_decode_uper; +per_type_encoder_f CurvatureConfidence_encode_uper; +per_type_decoder_f CurvatureConfidence_decode_aper; +per_type_encoder_f CurvatureConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureConfidence_H_ */ +#include diff --git a/vcits/cpm/CurvatureValue.h b/vcits/cpm/CurvatureValue.h new file mode 100644 index 0000000..1dd3609 --- /dev/null +++ b/vcits/cpm/CurvatureValue.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _CurvatureValue_H_ +#define _CurvatureValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureValue { + CurvatureValue_straight = 0, + CurvatureValue_unavailable = 1023 +} e_CurvatureValue; + +/* CurvatureValue */ +typedef long CurvatureValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureValue; +asn_struct_free_f CurvatureValue_free; +asn_struct_print_f CurvatureValue_print; +asn_constr_check_f CurvatureValue_constraint; +ber_type_decoder_f CurvatureValue_decode_ber; +der_type_encoder_f CurvatureValue_encode_der; +xer_type_decoder_f CurvatureValue_decode_xer; +xer_type_encoder_f CurvatureValue_encode_xer; +oer_type_decoder_f CurvatureValue_decode_oer; +oer_type_encoder_f CurvatureValue_encode_oer; +per_type_decoder_f CurvatureValue_decode_uper; +per_type_encoder_f CurvatureValue_encode_uper; +per_type_decoder_f CurvatureValue_decode_aper; +per_type_encoder_f CurvatureValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureValue_H_ */ +#include diff --git a/vcits/cpm/DDateTime.h b/vcits/cpm/DDateTime.h new file mode 100644 index 0000000..b296d0a --- /dev/null +++ b/vcits/cpm/DDateTime.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DDateTime_H_ +#define _DDateTime_H_ + + +#include + +/* Including external dependencies */ +#include "DYear.h" +#include "DMonth.h" +#include "DDay.h" +#include "DHour.h" +#include "DMinute.h" +#include "DSecond.h" +#include "DOffset.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDateTime */ +typedef struct DDateTime { + DYear_t *year; /* OPTIONAL */ + DMonth_t *month; /* OPTIONAL */ + DDay_t *day; /* OPTIONAL */ + DHour_t *hour; /* OPTIONAL */ + DMinute_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DOffset_t *offset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DDateTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DDateTime; +extern asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1; +extern asn_TYPE_member_t asn_MBR_DDateTime_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDateTime_H_ */ +#include diff --git a/vcits/cpm/DDay.h b/vcits/cpm/DDay.h new file mode 100644 index 0000000..7911e22 --- /dev/null +++ b/vcits/cpm/DDay.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DDay_H_ +#define _DDay_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDay */ +typedef long DDay_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DDay_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DDay; +asn_struct_free_f DDay_free; +asn_struct_print_f DDay_print; +asn_constr_check_f DDay_constraint; +ber_type_decoder_f DDay_decode_ber; +der_type_encoder_f DDay_encode_der; +xer_type_decoder_f DDay_decode_xer; +xer_type_encoder_f DDay_encode_xer; +oer_type_decoder_f DDay_decode_oer; +oer_type_encoder_f DDay_encode_oer; +per_type_decoder_f DDay_decode_uper; +per_type_encoder_f DDay_encode_uper; +per_type_decoder_f DDay_decode_aper; +per_type_encoder_f DDay_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDay_H_ */ +#include diff --git a/vcits/cpm/DHour.h b/vcits/cpm/DHour.h new file mode 100644 index 0000000..0f83585 --- /dev/null +++ b/vcits/cpm/DHour.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DHour_H_ +#define _DHour_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DHour */ +typedef long DHour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DHour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DHour; +asn_struct_free_f DHour_free; +asn_struct_print_f DHour_print; +asn_constr_check_f DHour_constraint; +ber_type_decoder_f DHour_decode_ber; +der_type_encoder_f DHour_encode_der; +xer_type_decoder_f DHour_decode_xer; +xer_type_encoder_f DHour_encode_xer; +oer_type_decoder_f DHour_decode_oer; +oer_type_encoder_f DHour_encode_oer; +per_type_decoder_f DHour_decode_uper; +per_type_encoder_f DHour_encode_uper; +per_type_decoder_f DHour_decode_aper; +per_type_encoder_f DHour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DHour_H_ */ +#include diff --git a/vcits/cpm/DMinute.h b/vcits/cpm/DMinute.h new file mode 100644 index 0000000..a64b378 --- /dev/null +++ b/vcits/cpm/DMinute.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DMinute_H_ +#define _DMinute_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMinute */ +typedef long DMinute_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMinute_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMinute; +asn_struct_free_f DMinute_free; +asn_struct_print_f DMinute_print; +asn_constr_check_f DMinute_constraint; +ber_type_decoder_f DMinute_decode_ber; +der_type_encoder_f DMinute_encode_der; +xer_type_decoder_f DMinute_decode_xer; +xer_type_encoder_f DMinute_encode_xer; +oer_type_decoder_f DMinute_decode_oer; +oer_type_encoder_f DMinute_encode_oer; +per_type_decoder_f DMinute_decode_uper; +per_type_encoder_f DMinute_encode_uper; +per_type_decoder_f DMinute_decode_aper; +per_type_encoder_f DMinute_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMinute_H_ */ +#include diff --git a/vcits/cpm/DMonth.h b/vcits/cpm/DMonth.h new file mode 100644 index 0000000..9e5cd86 --- /dev/null +++ b/vcits/cpm/DMonth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DMonth_H_ +#define _DMonth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMonth */ +typedef long DMonth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMonth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMonth; +asn_struct_free_f DMonth_free; +asn_struct_print_f DMonth_print; +asn_constr_check_f DMonth_constraint; +ber_type_decoder_f DMonth_decode_ber; +der_type_encoder_f DMonth_encode_der; +xer_type_decoder_f DMonth_decode_xer; +xer_type_encoder_f DMonth_encode_xer; +oer_type_decoder_f DMonth_decode_oer; +oer_type_encoder_f DMonth_encode_oer; +per_type_decoder_f DMonth_decode_uper; +per_type_encoder_f DMonth_encode_uper; +per_type_decoder_f DMonth_decode_aper; +per_type_encoder_f DMonth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMonth_H_ */ +#include diff --git a/vcits/cpm/DOffset.h b/vcits/cpm/DOffset.h new file mode 100644 index 0000000..29b8707 --- /dev/null +++ b/vcits/cpm/DOffset.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DOffset_H_ +#define _DOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DOffset */ +typedef long DOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DOffset; +asn_struct_free_f DOffset_free; +asn_struct_print_f DOffset_print; +asn_constr_check_f DOffset_constraint; +ber_type_decoder_f DOffset_decode_ber; +der_type_encoder_f DOffset_encode_der; +xer_type_decoder_f DOffset_decode_xer; +xer_type_encoder_f DOffset_encode_xer; +oer_type_decoder_f DOffset_decode_oer; +oer_type_encoder_f DOffset_encode_oer; +per_type_decoder_f DOffset_decode_uper; +per_type_encoder_f DOffset_encode_uper; +per_type_decoder_f DOffset_decode_aper; +per_type_encoder_f DOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DOffset_H_ */ +#include diff --git a/vcits/cpm/DSRCmsgID.h b/vcits/cpm/DSRCmsgID.h new file mode 100644 index 0000000..da9bc12 --- /dev/null +++ b/vcits/cpm/DSRCmsgID.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DSRCmsgID_H_ +#define _DSRCmsgID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSRCmsgID */ +typedef long DSRCmsgID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSRCmsgID; +asn_struct_free_f DSRCmsgID_free; +asn_struct_print_f DSRCmsgID_print; +asn_constr_check_f DSRCmsgID_constraint; +ber_type_decoder_f DSRCmsgID_decode_ber; +der_type_encoder_f DSRCmsgID_encode_der; +xer_type_decoder_f DSRCmsgID_decode_xer; +xer_type_encoder_f DSRCmsgID_encode_xer; +oer_type_decoder_f DSRCmsgID_decode_oer; +oer_type_encoder_f DSRCmsgID_encode_oer; +per_type_decoder_f DSRCmsgID_decode_uper; +per_type_encoder_f DSRCmsgID_encode_uper; +per_type_decoder_f DSRCmsgID_decode_aper; +per_type_encoder_f DSRCmsgID_encode_aper; +#define DSRCmsgID_mapData ((DSRCmsgID_t)18) +#define DSRCmsgID_rtcmCorrections ((DSRCmsgID_t)28) +#define DSRCmsgID_signalPhaseAndTimingMessage ((DSRCmsgID_t)19) +#define DSRCmsgID_signalRequestMessage ((DSRCmsgID_t)29) +#define DSRCmsgID_signalStatusMessage ((DSRCmsgID_t)30) + +#ifdef __cplusplus +} +#endif + +#endif /* _DSRCmsgID_H_ */ +#include diff --git a/vcits/cpm/DSecond.h b/vcits/cpm/DSecond.h new file mode 100644 index 0000000..6c63421 --- /dev/null +++ b/vcits/cpm/DSecond.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DSecond_H_ +#define _DSecond_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSecond */ +typedef long DSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSecond; +asn_struct_free_f DSecond_free; +asn_struct_print_f DSecond_print; +asn_constr_check_f DSecond_constraint; +ber_type_decoder_f DSecond_decode_ber; +der_type_encoder_f DSecond_encode_der; +xer_type_decoder_f DSecond_decode_xer; +xer_type_encoder_f DSecond_encode_xer; +oer_type_decoder_f DSecond_decode_oer; +oer_type_encoder_f DSecond_encode_oer; +per_type_decoder_f DSecond_decode_uper; +per_type_encoder_f DSecond_encode_uper; +per_type_decoder_f DSecond_decode_aper; +per_type_encoder_f DSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DSecond_H_ */ +#include diff --git a/vcits/cpm/DYear.h b/vcits/cpm/DYear.h new file mode 100644 index 0000000..67312f1 --- /dev/null +++ b/vcits/cpm/DYear.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DYear_H_ +#define _DYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DYear */ +typedef long DYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DYear; +asn_struct_free_f DYear_free; +asn_struct_print_f DYear_print; +asn_constr_check_f DYear_constraint; +ber_type_decoder_f DYear_decode_ber; +der_type_encoder_f DYear_encode_der; +xer_type_decoder_f DYear_decode_xer; +xer_type_encoder_f DYear_encode_xer; +oer_type_decoder_f DYear_decode_oer; +oer_type_encoder_f DYear_encode_oer; +per_type_decoder_f DYear_decode_uper; +per_type_encoder_f DYear_encode_uper; +per_type_decoder_f DYear_decode_aper; +per_type_encoder_f DYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DYear_H_ */ +#include diff --git a/vcits/cpm/DangerousEndOfQueueSubCauseCode.h b/vcits/cpm/DangerousEndOfQueueSubCauseCode.h new file mode 100644 index 0000000..4fb3bc8 --- /dev/null +++ b/vcits/cpm/DangerousEndOfQueueSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DangerousEndOfQueueSubCauseCode_H_ +#define _DangerousEndOfQueueSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousEndOfQueueSubCauseCode { + DangerousEndOfQueueSubCauseCode_unavailable = 0, + DangerousEndOfQueueSubCauseCode_suddenEndOfQueue = 1, + DangerousEndOfQueueSubCauseCode_queueOverHill = 2, + DangerousEndOfQueueSubCauseCode_queueAroundBend = 3, + DangerousEndOfQueueSubCauseCode_queueInTunnel = 4 +} e_DangerousEndOfQueueSubCauseCode; + +/* DangerousEndOfQueueSubCauseCode */ +typedef long DangerousEndOfQueueSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode; +asn_struct_free_f DangerousEndOfQueueSubCauseCode_free; +asn_struct_print_f DangerousEndOfQueueSubCauseCode_print; +asn_constr_check_f DangerousEndOfQueueSubCauseCode_constraint; +ber_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_ber; +der_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_der; +xer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_xer; +xer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_xer; +oer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_oer; +oer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_oer; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_uper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_uper; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_aper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousEndOfQueueSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/DangerousGoodsBasic.h b/vcits/cpm/DangerousGoodsBasic.h new file mode 100644 index 0000000..d5fb407 --- /dev/null +++ b/vcits/cpm/DangerousGoodsBasic.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DangerousGoodsBasic_H_ +#define _DangerousGoodsBasic_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousGoodsBasic { + DangerousGoodsBasic_explosives1 = 0, + DangerousGoodsBasic_explosives2 = 1, + DangerousGoodsBasic_explosives3 = 2, + DangerousGoodsBasic_explosives4 = 3, + DangerousGoodsBasic_explosives5 = 4, + DangerousGoodsBasic_explosives6 = 5, + DangerousGoodsBasic_flammableGases = 6, + DangerousGoodsBasic_nonFlammableGases = 7, + DangerousGoodsBasic_toxicGases = 8, + DangerousGoodsBasic_flammableLiquids = 9, + DangerousGoodsBasic_flammableSolids = 10, + DangerousGoodsBasic_substancesLiableToSpontaneousCombustion = 11, + DangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater = 12, + DangerousGoodsBasic_oxidizingSubstances = 13, + DangerousGoodsBasic_organicPeroxides = 14, + DangerousGoodsBasic_toxicSubstances = 15, + DangerousGoodsBasic_infectiousSubstances = 16, + DangerousGoodsBasic_radioactiveMaterial = 17, + DangerousGoodsBasic_corrosiveSubstances = 18, + DangerousGoodsBasic_miscellaneousDangerousSubstances = 19 +} e_DangerousGoodsBasic; + +/* DangerousGoodsBasic */ +typedef long DangerousGoodsBasic_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic; +extern const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1; +asn_struct_free_f DangerousGoodsBasic_free; +asn_struct_print_f DangerousGoodsBasic_print; +asn_constr_check_f DangerousGoodsBasic_constraint; +ber_type_decoder_f DangerousGoodsBasic_decode_ber; +der_type_encoder_f DangerousGoodsBasic_encode_der; +xer_type_decoder_f DangerousGoodsBasic_decode_xer; +xer_type_encoder_f DangerousGoodsBasic_encode_xer; +oer_type_decoder_f DangerousGoodsBasic_decode_oer; +oer_type_encoder_f DangerousGoodsBasic_encode_oer; +per_type_decoder_f DangerousGoodsBasic_decode_uper; +per_type_encoder_f DangerousGoodsBasic_encode_uper; +per_type_decoder_f DangerousGoodsBasic_decode_aper; +per_type_encoder_f DangerousGoodsBasic_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsBasic_H_ */ +#include diff --git a/vcits/cpm/DangerousGoodsContainer.h b/vcits/cpm/DangerousGoodsContainer.h new file mode 100644 index 0000000..297cb9a --- /dev/null +++ b/vcits/cpm/DangerousGoodsContainer.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DangerousGoodsContainer_H_ +#define _DangerousGoodsContainer_H_ + + +#include + +/* Including external dependencies */ +#include "DangerousGoodsBasic.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DangerousGoodsContainer */ +typedef struct DangerousGoodsContainer { + DangerousGoodsBasic_t dangerousGoodsBasic; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DangerousGoodsContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_DangerousGoodsContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_DangerousGoodsContainer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsContainer_H_ */ +#include diff --git a/vcits/cpm/DangerousGoodsExtended.h b/vcits/cpm/DangerousGoodsExtended.h new file mode 100644 index 0000000..9116fdd --- /dev/null +++ b/vcits/cpm/DangerousGoodsExtended.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DangerousGoodsExtended_H_ +#define _DangerousGoodsExtended_H_ + + +#include + +/* Including external dependencies */ +#include "DangerousGoodsBasic.h" +#include +#include +#include +#include "PhoneNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DangerousGoodsExtended */ +typedef struct DangerousGoodsExtended { + DangerousGoodsBasic_t dangerousGoodsType; + long unNumber; + BOOLEAN_t elevatedTemperature; + BOOLEAN_t tunnelsRestricted; + BOOLEAN_t limitedQuantity; + IA5String_t *emergencyActionCode; /* OPTIONAL */ + PhoneNumber_t *phoneNumber; /* OPTIONAL */ + UTF8String_t *companyName; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DangerousGoodsExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsExtended_H_ */ +#include diff --git a/vcits/cpm/DangerousSituationSubCauseCode.h b/vcits/cpm/DangerousSituationSubCauseCode.h new file mode 100644 index 0000000..5b9206e --- /dev/null +++ b/vcits/cpm/DangerousSituationSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DangerousSituationSubCauseCode_H_ +#define _DangerousSituationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousSituationSubCauseCode { + DangerousSituationSubCauseCode_unavailable = 0, + DangerousSituationSubCauseCode_emergencyElectronicBrakeEngaged = 1, + DangerousSituationSubCauseCode_preCrashSystemEngaged = 2, + DangerousSituationSubCauseCode_espEngaged = 3, + DangerousSituationSubCauseCode_absEngaged = 4, + DangerousSituationSubCauseCode_aebEngaged = 5, + DangerousSituationSubCauseCode_brakeWarningEngaged = 6, + DangerousSituationSubCauseCode_collisionRiskWarningEngaged = 7 +} e_DangerousSituationSubCauseCode; + +/* DangerousSituationSubCauseCode */ +typedef long DangerousSituationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode; +asn_struct_free_f DangerousSituationSubCauseCode_free; +asn_struct_print_f DangerousSituationSubCauseCode_print; +asn_constr_check_f DangerousSituationSubCauseCode_constraint; +ber_type_decoder_f DangerousSituationSubCauseCode_decode_ber; +der_type_encoder_f DangerousSituationSubCauseCode_encode_der; +xer_type_decoder_f DangerousSituationSubCauseCode_decode_xer; +xer_type_encoder_f DangerousSituationSubCauseCode_encode_xer; +oer_type_decoder_f DangerousSituationSubCauseCode_decode_oer; +oer_type_encoder_f DangerousSituationSubCauseCode_encode_oer; +per_type_decoder_f DangerousSituationSubCauseCode_decode_uper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_uper; +per_type_decoder_f DangerousSituationSubCauseCode_decode_aper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousSituationSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/DataParameters.h b/vcits/cpm/DataParameters.h new file mode 100644 index 0000000..e0c87f1 --- /dev/null +++ b/vcits/cpm/DataParameters.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DataParameters_H_ +#define _DataParameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DataParameters */ +typedef struct DataParameters { + IA5String_t *processMethod; /* OPTIONAL */ + IA5String_t *processAgency; /* OPTIONAL */ + IA5String_t *lastCheckedDate; /* OPTIONAL */ + IA5String_t *geoidUsed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DataParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DataParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_DataParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DataParameters_H_ */ +#include diff --git a/vcits/cpm/DeltaAltitude.h b/vcits/cpm/DeltaAltitude.h new file mode 100644 index 0000000..a3c7721 --- /dev/null +++ b/vcits/cpm/DeltaAltitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DeltaAltitude_H_ +#define _DeltaAltitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaAltitude { + DeltaAltitude_oneCentimeterUp = 1, + DeltaAltitude_oneCentimeterDown = -1, + DeltaAltitude_unavailable = 12800 +} e_DeltaAltitude; + +/* DeltaAltitude */ +typedef long DeltaAltitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAltitude; +asn_struct_free_f DeltaAltitude_free; +asn_struct_print_f DeltaAltitude_print; +asn_constr_check_f DeltaAltitude_constraint; +ber_type_decoder_f DeltaAltitude_decode_ber; +der_type_encoder_f DeltaAltitude_encode_der; +xer_type_decoder_f DeltaAltitude_decode_xer; +xer_type_encoder_f DeltaAltitude_encode_xer; +oer_type_decoder_f DeltaAltitude_decode_oer; +oer_type_encoder_f DeltaAltitude_encode_oer; +per_type_decoder_f DeltaAltitude_decode_uper; +per_type_encoder_f DeltaAltitude_encode_uper; +per_type_decoder_f DeltaAltitude_decode_aper; +per_type_encoder_f DeltaAltitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAltitude_H_ */ +#include diff --git a/vcits/cpm/DeltaAngle.h b/vcits/cpm/DeltaAngle.h new file mode 100644 index 0000000..b3a57c5 --- /dev/null +++ b/vcits/cpm/DeltaAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DeltaAngle_H_ +#define _DeltaAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaAngle */ +typedef long DeltaAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAngle; +asn_struct_free_f DeltaAngle_free; +asn_struct_print_f DeltaAngle_print; +asn_constr_check_f DeltaAngle_constraint; +ber_type_decoder_f DeltaAngle_decode_ber; +der_type_encoder_f DeltaAngle_encode_der; +xer_type_decoder_f DeltaAngle_decode_xer; +xer_type_encoder_f DeltaAngle_encode_xer; +oer_type_decoder_f DeltaAngle_decode_oer; +oer_type_encoder_f DeltaAngle_encode_oer; +per_type_decoder_f DeltaAngle_decode_uper; +per_type_encoder_f DeltaAngle_encode_uper; +per_type_decoder_f DeltaAngle_decode_aper; +per_type_encoder_f DeltaAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAngle_H_ */ +#include diff --git a/vcits/cpm/DeltaLatitude.h b/vcits/cpm/DeltaLatitude.h new file mode 100644 index 0000000..8e91757 --- /dev/null +++ b/vcits/cpm/DeltaLatitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DeltaLatitude_H_ +#define _DeltaLatitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLatitude { + DeltaLatitude_oneMicrodegreeNorth = 10, + DeltaLatitude_oneMicrodegreeSouth = -10, + DeltaLatitude_unavailable = 131072 +} e_DeltaLatitude; + +/* DeltaLatitude */ +typedef long DeltaLatitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLatitude; +asn_struct_free_f DeltaLatitude_free; +asn_struct_print_f DeltaLatitude_print; +asn_constr_check_f DeltaLatitude_constraint; +ber_type_decoder_f DeltaLatitude_decode_ber; +der_type_encoder_f DeltaLatitude_encode_der; +xer_type_decoder_f DeltaLatitude_decode_xer; +xer_type_encoder_f DeltaLatitude_encode_xer; +oer_type_decoder_f DeltaLatitude_decode_oer; +oer_type_encoder_f DeltaLatitude_encode_oer; +per_type_decoder_f DeltaLatitude_decode_uper; +per_type_encoder_f DeltaLatitude_encode_uper; +per_type_decoder_f DeltaLatitude_decode_aper; +per_type_encoder_f DeltaLatitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLatitude_H_ */ +#include diff --git a/vcits/cpm/DeltaLongitude.h b/vcits/cpm/DeltaLongitude.h new file mode 100644 index 0000000..e39ce10 --- /dev/null +++ b/vcits/cpm/DeltaLongitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DeltaLongitude_H_ +#define _DeltaLongitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLongitude { + DeltaLongitude_oneMicrodegreeEast = 10, + DeltaLongitude_oneMicrodegreeWest = -10, + DeltaLongitude_unavailable = 131072 +} e_DeltaLongitude; + +/* DeltaLongitude */ +typedef long DeltaLongitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLongitude; +asn_struct_free_f DeltaLongitude_free; +asn_struct_print_f DeltaLongitude_print; +asn_constr_check_f DeltaLongitude_constraint; +ber_type_decoder_f DeltaLongitude_decode_ber; +der_type_encoder_f DeltaLongitude_encode_der; +xer_type_decoder_f DeltaLongitude_decode_xer; +xer_type_encoder_f DeltaLongitude_encode_xer; +oer_type_decoder_f DeltaLongitude_decode_oer; +oer_type_encoder_f DeltaLongitude_encode_oer; +per_type_decoder_f DeltaLongitude_decode_uper; +per_type_encoder_f DeltaLongitude_encode_uper; +per_type_decoder_f DeltaLongitude_decode_aper; +per_type_encoder_f DeltaLongitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLongitude_H_ */ +#include diff --git a/vcits/cpm/DeltaReferencePosition.h b/vcits/cpm/DeltaReferencePosition.h new file mode 100644 index 0000000..7932349 --- /dev/null +++ b/vcits/cpm/DeltaReferencePosition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DeltaReferencePosition_H_ +#define _DeltaReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaLatitude.h" +#include "DeltaLongitude.h" +#include "DeltaAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaReferencePosition */ +typedef struct DeltaReferencePosition { + DeltaLatitude_t deltaLatitude; + DeltaLongitude_t deltaLongitude; + DeltaAltitude_t deltaAltitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DeltaReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaReferencePosition_H_ */ +#include diff --git a/vcits/cpm/DeltaTime.h b/vcits/cpm/DeltaTime.h new file mode 100644 index 0000000..67bffc4 --- /dev/null +++ b/vcits/cpm/DeltaTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DeltaTime_H_ +#define _DeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaTime */ +typedef long DeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaTime; +asn_struct_free_f DeltaTime_free; +asn_struct_print_f DeltaTime_print; +asn_constr_check_f DeltaTime_constraint; +ber_type_decoder_f DeltaTime_decode_ber; +der_type_encoder_f DeltaTime_encode_der; +xer_type_decoder_f DeltaTime_decode_xer; +xer_type_encoder_f DeltaTime_encode_xer; +oer_type_decoder_f DeltaTime_decode_oer; +oer_type_encoder_f DeltaTime_encode_oer; +per_type_decoder_f DeltaTime_decode_uper; +per_type_encoder_f DeltaTime_encode_uper; +per_type_decoder_f DeltaTime_decode_aper; +per_type_encoder_f DeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaTime_H_ */ +#include diff --git a/vcits/cpm/DescriptiveName.h b/vcits/cpm/DescriptiveName.h new file mode 100644 index 0000000..6ad2895 --- /dev/null +++ b/vcits/cpm/DescriptiveName.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DescriptiveName_H_ +#define _DescriptiveName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DescriptiveName */ +typedef IA5String_t DescriptiveName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DescriptiveName; +asn_struct_free_f DescriptiveName_free; +asn_struct_print_f DescriptiveName_print; +asn_constr_check_f DescriptiveName_constraint; +ber_type_decoder_f DescriptiveName_decode_ber; +der_type_encoder_f DescriptiveName_encode_der; +xer_type_decoder_f DescriptiveName_decode_xer; +xer_type_encoder_f DescriptiveName_encode_xer; +oer_type_decoder_f DescriptiveName_decode_oer; +oer_type_encoder_f DescriptiveName_encode_oer; +per_type_decoder_f DescriptiveName_decode_uper; +per_type_encoder_f DescriptiveName_encode_uper; +per_type_decoder_f DescriptiveName_decode_aper; +per_type_encoder_f DescriptiveName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DescriptiveName_H_ */ +#include diff --git a/vcits/cpm/DetectionArea.h b/vcits/cpm/DetectionArea.h new file mode 100644 index 0000000..8c5d43a --- /dev/null +++ b/vcits/cpm/DetectionArea.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DetectionArea_H_ +#define _DetectionArea_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleSensor.h" +#include "AreaRadial.h" +#include "AreaPolygon.h" +#include "AreaCircular.h" +#include "AreaEllipse.h" +#include "AreaRectangle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DetectionArea_PR { + DetectionArea_PR_NOTHING, /* No components present */ + DetectionArea_PR_vehicleSensor, + DetectionArea_PR_stationarySensorRadial, + DetectionArea_PR_stationarySensorPolygon, + DetectionArea_PR_stationarySensorCircular, + DetectionArea_PR_stationarySensorEllipse, + DetectionArea_PR_stationarySensorRectangle + /* Extensions may appear below */ + +} DetectionArea_PR; + +/* DetectionArea */ +typedef struct DetectionArea { + DetectionArea_PR present; + union DetectionArea_u { + VehicleSensor_t vehicleSensor; + AreaRadial_t stationarySensorRadial; + AreaPolygon_t stationarySensorPolygon; + AreaCircular_t stationarySensorCircular; + AreaEllipse_t stationarySensorEllipse; + AreaRectangle_t stationarySensorRectangle; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DetectionArea_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DetectionArea; +extern asn_CHOICE_specifics_t asn_SPC_DetectionArea_specs_1; +extern asn_TYPE_member_t asn_MBR_DetectionArea_1[6]; +extern asn_per_constraints_t asn_PER_type_DetectionArea_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DetectionArea_H_ */ +#include diff --git a/vcits/cpm/DigitalMap.h b/vcits/cpm/DigitalMap.h new file mode 100644 index 0000000..906301a --- /dev/null +++ b/vcits/cpm/DigitalMap.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DigitalMap_H_ +#define _DigitalMap_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* DigitalMap */ +typedef struct DigitalMap { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DigitalMap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DigitalMap; + +#ifdef __cplusplus +} +#endif + +#endif /* _DigitalMap_H_ */ +#include diff --git a/vcits/cpm/DistanceConfidence.h b/vcits/cpm/DistanceConfidence.h new file mode 100644 index 0000000..ff0512e --- /dev/null +++ b/vcits/cpm/DistanceConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DistanceConfidence_H_ +#define _DistanceConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DistanceConfidence { + DistanceConfidence_zeroPointZeroOneMeter = 1, + DistanceConfidence_oneMeter = 100, + DistanceConfidence_outOfRange = 101, + DistanceConfidence_unavailable = 102 +} e_DistanceConfidence; + +/* DistanceConfidence */ +typedef long DistanceConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DistanceConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DistanceConfidence; +asn_struct_free_f DistanceConfidence_free; +asn_struct_print_f DistanceConfidence_print; +asn_constr_check_f DistanceConfidence_constraint; +ber_type_decoder_f DistanceConfidence_decode_ber; +der_type_encoder_f DistanceConfidence_encode_der; +xer_type_decoder_f DistanceConfidence_decode_xer; +xer_type_encoder_f DistanceConfidence_encode_xer; +oer_type_decoder_f DistanceConfidence_decode_oer; +oer_type_encoder_f DistanceConfidence_encode_oer; +per_type_decoder_f DistanceConfidence_decode_uper; +per_type_encoder_f DistanceConfidence_encode_uper; +per_type_decoder_f DistanceConfidence_decode_aper; +per_type_encoder_f DistanceConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DistanceConfidence_H_ */ +#include diff --git a/vcits/cpm/DistanceValue.h b/vcits/cpm/DistanceValue.h new file mode 100644 index 0000000..5063f7b --- /dev/null +++ b/vcits/cpm/DistanceValue.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DistanceValue_H_ +#define _DistanceValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DistanceValue { + DistanceValue_zeroPointZeroOneMeter = 1, + DistanceValue_oneMeter = 100 +} e_DistanceValue; + +/* DistanceValue */ +typedef long DistanceValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DistanceValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DistanceValue; +asn_struct_free_f DistanceValue_free; +asn_struct_print_f DistanceValue_print; +asn_constr_check_f DistanceValue_constraint; +ber_type_decoder_f DistanceValue_decode_ber; +der_type_encoder_f DistanceValue_encode_der; +xer_type_decoder_f DistanceValue_decode_xer; +xer_type_encoder_f DistanceValue_encode_xer; +oer_type_decoder_f DistanceValue_decode_oer; +oer_type_encoder_f DistanceValue_encode_oer; +per_type_decoder_f DistanceValue_decode_uper; +per_type_encoder_f DistanceValue_encode_uper; +per_type_decoder_f DistanceValue_decode_aper; +per_type_encoder_f DistanceValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DistanceValue_H_ */ +#include diff --git a/vcits/cpm/DriveDirection.h b/vcits/cpm/DriveDirection.h new file mode 100644 index 0000000..c6892ea --- /dev/null +++ b/vcits/cpm/DriveDirection.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DriveDirection_H_ +#define _DriveDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DriveDirection { + DriveDirection_forward = 0, + DriveDirection_backward = 1, + DriveDirection_unavailable = 2 +} e_DriveDirection; + +/* DriveDirection */ +typedef long DriveDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DriveDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DriveDirection; +extern const asn_INTEGER_specifics_t asn_SPC_DriveDirection_specs_1; +asn_struct_free_f DriveDirection_free; +asn_struct_print_f DriveDirection_print; +asn_constr_check_f DriveDirection_constraint; +ber_type_decoder_f DriveDirection_decode_ber; +der_type_encoder_f DriveDirection_encode_der; +xer_type_decoder_f DriveDirection_decode_xer; +xer_type_encoder_f DriveDirection_encode_xer; +oer_type_decoder_f DriveDirection_decode_oer; +oer_type_encoder_f DriveDirection_encode_oer; +per_type_decoder_f DriveDirection_decode_uper; +per_type_encoder_f DriveDirection_encode_uper; +per_type_decoder_f DriveDirection_decode_aper; +per_type_encoder_f DriveDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DriveDirection_H_ */ +#include diff --git a/vcits/cpm/DrivenLineOffsetLg.h b/vcits/cpm/DrivenLineOffsetLg.h new file mode 100644 index 0000000..32be82a --- /dev/null +++ b/vcits/cpm/DrivenLineOffsetLg.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DrivenLineOffsetLg_H_ +#define _DrivenLineOffsetLg_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetLg */ +typedef long DrivenLineOffsetLg_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg; +asn_struct_free_f DrivenLineOffsetLg_free; +asn_struct_print_f DrivenLineOffsetLg_print; +asn_constr_check_f DrivenLineOffsetLg_constraint; +ber_type_decoder_f DrivenLineOffsetLg_decode_ber; +der_type_encoder_f DrivenLineOffsetLg_encode_der; +xer_type_decoder_f DrivenLineOffsetLg_decode_xer; +xer_type_encoder_f DrivenLineOffsetLg_encode_xer; +oer_type_decoder_f DrivenLineOffsetLg_decode_oer; +oer_type_encoder_f DrivenLineOffsetLg_encode_oer; +per_type_decoder_f DrivenLineOffsetLg_decode_uper; +per_type_encoder_f DrivenLineOffsetLg_encode_uper; +per_type_decoder_f DrivenLineOffsetLg_decode_aper; +per_type_encoder_f DrivenLineOffsetLg_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetLg_H_ */ +#include diff --git a/vcits/cpm/DrivenLineOffsetSm.h b/vcits/cpm/DrivenLineOffsetSm.h new file mode 100644 index 0000000..8a69e2c --- /dev/null +++ b/vcits/cpm/DrivenLineOffsetSm.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DrivenLineOffsetSm_H_ +#define _DrivenLineOffsetSm_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetSm */ +typedef long DrivenLineOffsetSm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm; +asn_struct_free_f DrivenLineOffsetSm_free; +asn_struct_print_f DrivenLineOffsetSm_print; +asn_constr_check_f DrivenLineOffsetSm_constraint; +ber_type_decoder_f DrivenLineOffsetSm_decode_ber; +der_type_encoder_f DrivenLineOffsetSm_encode_der; +xer_type_decoder_f DrivenLineOffsetSm_decode_xer; +xer_type_encoder_f DrivenLineOffsetSm_encode_xer; +oer_type_decoder_f DrivenLineOffsetSm_decode_oer; +oer_type_encoder_f DrivenLineOffsetSm_encode_oer; +per_type_decoder_f DrivenLineOffsetSm_decode_uper; +per_type_encoder_f DrivenLineOffsetSm_encode_uper; +per_type_decoder_f DrivenLineOffsetSm_decode_aper; +per_type_encoder_f DrivenLineOffsetSm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetSm_H_ */ +#include diff --git a/vcits/cpm/DrivingLaneStatus.h b/vcits/cpm/DrivingLaneStatus.h new file mode 100644 index 0000000..bc12856 --- /dev/null +++ b/vcits/cpm/DrivingLaneStatus.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DrivingLaneStatus_H_ +#define _DrivingLaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivingLaneStatus */ +typedef BIT_STRING_t DrivingLaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus; +asn_struct_free_f DrivingLaneStatus_free; +asn_struct_print_f DrivingLaneStatus_print; +asn_constr_check_f DrivingLaneStatus_constraint; +ber_type_decoder_f DrivingLaneStatus_decode_ber; +der_type_encoder_f DrivingLaneStatus_encode_der; +xer_type_decoder_f DrivingLaneStatus_decode_xer; +xer_type_encoder_f DrivingLaneStatus_encode_xer; +oer_type_decoder_f DrivingLaneStatus_decode_oer; +oer_type_encoder_f DrivingLaneStatus_encode_oer; +per_type_decoder_f DrivingLaneStatus_decode_uper; +per_type_encoder_f DrivingLaneStatus_encode_uper; +per_type_decoder_f DrivingLaneStatus_decode_aper; +per_type_encoder_f DrivingLaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivingLaneStatus_H_ */ +#include diff --git a/vcits/cpm/DynamicStatus.h b/vcits/cpm/DynamicStatus.h new file mode 100644 index 0000000..72fa530 --- /dev/null +++ b/vcits/cpm/DynamicStatus.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _DynamicStatus_H_ +#define _DynamicStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DynamicStatus { + DynamicStatus_dynamic = 0, + DynamicStatus_hasBeenDynamic = 1, + DynamicStatus_static = 2 +} e_DynamicStatus; + +/* DynamicStatus */ +typedef long DynamicStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DynamicStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DynamicStatus; +asn_struct_free_f DynamicStatus_free; +asn_struct_print_f DynamicStatus_print; +asn_constr_check_f DynamicStatus_constraint; +ber_type_decoder_f DynamicStatus_decode_ber; +der_type_encoder_f DynamicStatus_encode_der; +xer_type_decoder_f DynamicStatus_decode_xer; +xer_type_encoder_f DynamicStatus_encode_xer; +oer_type_decoder_f DynamicStatus_decode_oer; +oer_type_encoder_f DynamicStatus_encode_oer; +per_type_decoder_f DynamicStatus_decode_uper; +per_type_encoder_f DynamicStatus_encode_uper; +per_type_decoder_f DynamicStatus_decode_aper; +per_type_encoder_f DynamicStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DynamicStatus_H_ */ +#include diff --git a/vcits/cpm/Elevation.h b/vcits/cpm/Elevation.h new file mode 100644 index 0000000..4571cf4 --- /dev/null +++ b/vcits/cpm/Elevation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Elevation_H_ +#define _Elevation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Elevation */ +typedef long Elevation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Elevation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Elevation; +asn_struct_free_f Elevation_free; +asn_struct_print_f Elevation_print; +asn_constr_check_f Elevation_constraint; +ber_type_decoder_f Elevation_decode_ber; +der_type_encoder_f Elevation_encode_der; +xer_type_decoder_f Elevation_decode_xer; +xer_type_encoder_f Elevation_encode_xer; +oer_type_decoder_f Elevation_decode_oer; +oer_type_encoder_f Elevation_encode_oer; +per_type_decoder_f Elevation_decode_uper; +per_type_encoder_f Elevation_encode_uper; +per_type_decoder_f Elevation_decode_aper; +per_type_encoder_f Elevation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Elevation_H_ */ +#include diff --git a/vcits/cpm/ElevationConfidence.h b/vcits/cpm/ElevationConfidence.h new file mode 100644 index 0000000..25ac5a5 --- /dev/null +++ b/vcits/cpm/ElevationConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ElevationConfidence_H_ +#define _ElevationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ElevationConfidence { + ElevationConfidence_unavailable = 0, + ElevationConfidence_elev_500_00 = 1, + ElevationConfidence_elev_200_00 = 2, + ElevationConfidence_elev_100_00 = 3, + ElevationConfidence_elev_050_00 = 4, + ElevationConfidence_elev_020_00 = 5, + ElevationConfidence_elev_010_00 = 6, + ElevationConfidence_elev_005_00 = 7, + ElevationConfidence_elev_002_00 = 8, + ElevationConfidence_elev_001_00 = 9, + ElevationConfidence_elev_000_50 = 10, + ElevationConfidence_elev_000_20 = 11, + ElevationConfidence_elev_000_10 = 12, + ElevationConfidence_elev_000_05 = 13, + ElevationConfidence_elev_000_02 = 14, + ElevationConfidence_elev_000_01 = 15 +} e_ElevationConfidence; + +/* ElevationConfidence */ +typedef long ElevationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ElevationConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1; +asn_struct_free_f ElevationConfidence_free; +asn_struct_print_f ElevationConfidence_print; +asn_constr_check_f ElevationConfidence_constraint; +ber_type_decoder_f ElevationConfidence_decode_ber; +der_type_encoder_f ElevationConfidence_encode_der; +xer_type_decoder_f ElevationConfidence_decode_xer; +xer_type_encoder_f ElevationConfidence_encode_xer; +oer_type_decoder_f ElevationConfidence_decode_oer; +oer_type_encoder_f ElevationConfidence_encode_oer; +per_type_decoder_f ElevationConfidence_decode_uper; +per_type_encoder_f ElevationConfidence_encode_uper; +per_type_decoder_f ElevationConfidence_decode_aper; +per_type_encoder_f ElevationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ElevationConfidence_H_ */ +#include diff --git a/vcits/cpm/EmbarkationStatus.h b/vcits/cpm/EmbarkationStatus.h new file mode 100644 index 0000000..dbeb28e --- /dev/null +++ b/vcits/cpm/EmbarkationStatus.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _EmbarkationStatus_H_ +#define _EmbarkationStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EmbarkationStatus */ +typedef BOOLEAN_t EmbarkationStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus; +asn_struct_free_f EmbarkationStatus_free; +asn_struct_print_f EmbarkationStatus_print; +asn_constr_check_f EmbarkationStatus_constraint; +ber_type_decoder_f EmbarkationStatus_decode_ber; +der_type_encoder_f EmbarkationStatus_encode_der; +xer_type_decoder_f EmbarkationStatus_decode_xer; +xer_type_encoder_f EmbarkationStatus_encode_xer; +oer_type_decoder_f EmbarkationStatus_decode_oer; +oer_type_encoder_f EmbarkationStatus_encode_oer; +per_type_decoder_f EmbarkationStatus_decode_uper; +per_type_encoder_f EmbarkationStatus_encode_uper; +per_type_decoder_f EmbarkationStatus_decode_aper; +per_type_encoder_f EmbarkationStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmbarkationStatus_H_ */ +#include diff --git a/vcits/cpm/EmergencyContainer.h b/vcits/cpm/EmergencyContainer.h new file mode 100644 index 0000000..60ac4ca --- /dev/null +++ b/vcits/cpm/EmergencyContainer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _EmergencyContainer_H_ +#define _EmergencyContainer_H_ + + +#include + +/* Including external dependencies */ +#include "LightBarSirenInUse.h" +#include "EmergencyPriority.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CauseCode; + +/* EmergencyContainer */ +typedef struct EmergencyContainer { + LightBarSirenInUse_t lightBarSirenInUse; + struct CauseCode *incidentIndication; /* OPTIONAL */ + EmergencyPriority_t *emergencyPriority; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EmergencyContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_EmergencyContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_EmergencyContainer_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyContainer_H_ */ +#include diff --git a/vcits/cpm/EmergencyPriority.h b/vcits/cpm/EmergencyPriority.h new file mode 100644 index 0000000..58dad85 --- /dev/null +++ b/vcits/cpm/EmergencyPriority.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _EmergencyPriority_H_ +#define _EmergencyPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyPriority { + EmergencyPriority_requestForRightOfWay = 0, + EmergencyPriority_requestForFreeCrossingAtATrafficLight = 1 +} e_EmergencyPriority; + +/* EmergencyPriority */ +typedef BIT_STRING_t EmergencyPriority_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EmergencyPriority_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EmergencyPriority; +asn_struct_free_f EmergencyPriority_free; +asn_struct_print_f EmergencyPriority_print; +asn_constr_check_f EmergencyPriority_constraint; +ber_type_decoder_f EmergencyPriority_decode_ber; +der_type_encoder_f EmergencyPriority_encode_der; +xer_type_decoder_f EmergencyPriority_decode_xer; +xer_type_encoder_f EmergencyPriority_encode_xer; +oer_type_decoder_f EmergencyPriority_decode_oer; +oer_type_encoder_f EmergencyPriority_encode_oer; +per_type_decoder_f EmergencyPriority_decode_uper; +per_type_encoder_f EmergencyPriority_encode_uper; +per_type_decoder_f EmergencyPriority_decode_aper; +per_type_encoder_f EmergencyPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyPriority_H_ */ +#include diff --git a/vcits/cpm/EmergencyVehicleApproachingSubCauseCode.h b/vcits/cpm/EmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 0000000..fb7d5cf --- /dev/null +++ b/vcits/cpm/EmergencyVehicleApproachingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _EmergencyVehicleApproachingSubCauseCode_H_ +#define _EmergencyVehicleApproachingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyVehicleApproachingSubCauseCode { + EmergencyVehicleApproachingSubCauseCode_unavailable = 0, + EmergencyVehicleApproachingSubCauseCode_emergencyVehicleApproaching = 1, + EmergencyVehicleApproachingSubCauseCode_prioritizedVehicleApproaching = 2 +} e_EmergencyVehicleApproachingSubCauseCode; + +/* EmergencyVehicleApproachingSubCauseCode */ +typedef long EmergencyVehicleApproachingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode; +asn_struct_free_f EmergencyVehicleApproachingSubCauseCode_free; +asn_struct_print_f EmergencyVehicleApproachingSubCauseCode_print; +asn_constr_check_f EmergencyVehicleApproachingSubCauseCode_constraint; +ber_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_ber; +der_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_der; +xer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_xer; +xer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_xer; +oer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_oer; +oer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_oer; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_uper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_uper; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_aper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyVehicleApproachingSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/EmissionType.h b/vcits/cpm/EmissionType.h new file mode 100644 index 0000000..402dad2 --- /dev/null +++ b/vcits/cpm/EmissionType.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _EmissionType_H_ +#define _EmissionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmissionType { + EmissionType_euro1 = 0, + EmissionType_euro2 = 1, + EmissionType_euro3 = 2, + EmissionType_euro4 = 3, + EmissionType_euro5 = 4, + EmissionType_euro6 = 5 + /* + * Enumeration is extensible + */ +} e_EmissionType; + +/* EmissionType */ +typedef long EmissionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EmissionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EmissionType; +extern const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1; +asn_struct_free_f EmissionType_free; +asn_struct_print_f EmissionType_print; +asn_constr_check_f EmissionType_constraint; +ber_type_decoder_f EmissionType_decode_ber; +der_type_encoder_f EmissionType_encode_der; +xer_type_decoder_f EmissionType_decode_xer; +xer_type_encoder_f EmissionType_encode_xer; +oer_type_decoder_f EmissionType_decode_oer; +oer_type_encoder_f EmissionType_encode_oer; +per_type_decoder_f EmissionType_decode_uper; +per_type_encoder_f EmissionType_encode_uper; +per_type_decoder_f EmissionType_decode_aper; +per_type_encoder_f EmissionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmissionType_H_ */ +#include diff --git a/vcits/cpm/EnabledLaneList.h b/vcits/cpm/EnabledLaneList.h new file mode 100644 index 0000000..3c1bbbb --- /dev/null +++ b/vcits/cpm/EnabledLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _EnabledLaneList_H_ +#define _EnabledLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EnabledLaneList */ +typedef struct EnabledLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EnabledLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnabledLaneList; +extern asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_EnabledLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnabledLaneList_H_ */ +#include diff --git a/vcits/cpm/EnergyStorageType.h b/vcits/cpm/EnergyStorageType.h new file mode 100644 index 0000000..1bdfc00 --- /dev/null +++ b/vcits/cpm/EnergyStorageType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _EnergyStorageType_H_ +#define _EnergyStorageType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EnergyStorageType { + EnergyStorageType_hydrogenStorage = 0, + EnergyStorageType_electricEnergyStorage = 1, + EnergyStorageType_liquidPropaneGas = 2, + EnergyStorageType_compressedNaturalGas = 3, + EnergyStorageType_diesel = 4, + EnergyStorageType_gasoline = 5, + EnergyStorageType_ammonia = 6 +} e_EnergyStorageType; + +/* EnergyStorageType */ +typedef BIT_STRING_t EnergyStorageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnergyStorageType; +asn_struct_free_f EnergyStorageType_free; +asn_struct_print_f EnergyStorageType_print; +asn_constr_check_f EnergyStorageType_constraint; +ber_type_decoder_f EnergyStorageType_decode_ber; +der_type_encoder_f EnergyStorageType_encode_der; +xer_type_decoder_f EnergyStorageType_decode_xer; +xer_type_encoder_f EnergyStorageType_encode_xer; +oer_type_decoder_f EnergyStorageType_decode_oer; +oer_type_encoder_f EnergyStorageType_encode_oer; +per_type_decoder_f EnergyStorageType_decode_uper; +per_type_encoder_f EnergyStorageType_encode_uper; +per_type_decoder_f EnergyStorageType_decode_aper; +per_type_encoder_f EnergyStorageType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnergyStorageType_H_ */ +#include diff --git a/vcits/cpm/EuVehicleCategoryCode.h b/vcits/cpm/EuVehicleCategoryCode.h new file mode 100644 index 0000000..7cda488 --- /dev/null +++ b/vcits/cpm/EuVehicleCategoryCode.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _EuVehicleCategoryCode_H_ +#define _EuVehicleCategoryCode_H_ + + +#include + +/* Including external dependencies */ +#include "EuVehicleCategoryL.h" +#include "EuVehicleCategoryM.h" +#include "EuVehicleCategoryN.h" +#include "EuVehicleCategoryO.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryCode_PR { + EuVehicleCategoryCode_PR_NOTHING, /* No components present */ + EuVehicleCategoryCode_PR_euVehicleCategoryL, + EuVehicleCategoryCode_PR_euVehicleCategoryM, + EuVehicleCategoryCode_PR_euVehicleCategoryN, + EuVehicleCategoryCode_PR_euVehicleCategoryO, + EuVehicleCategoryCode_PR_euVehilcleCategoryT, + EuVehicleCategoryCode_PR_euVehilcleCategoryG +} EuVehicleCategoryCode_PR; + +/* EuVehicleCategoryCode */ +typedef struct EuVehicleCategoryCode { + EuVehicleCategoryCode_PR present; + union EuVehicleCategoryCode_u { + EuVehicleCategoryL_t euVehicleCategoryL; + EuVehicleCategoryM_t euVehicleCategoryM; + EuVehicleCategoryN_t euVehicleCategoryN; + EuVehicleCategoryO_t euVehicleCategoryO; + NULL_t euVehilcleCategoryT; + NULL_t euVehilcleCategoryG; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EuVehicleCategoryCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryCode_H_ */ +#include diff --git a/vcits/cpm/EuVehicleCategoryL.h b/vcits/cpm/EuVehicleCategoryL.h new file mode 100644 index 0000000..a0a5892 --- /dev/null +++ b/vcits/cpm/EuVehicleCategoryL.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _EuVehicleCategoryL_H_ +#define _EuVehicleCategoryL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryL { + EuVehicleCategoryL_l1 = 0, + EuVehicleCategoryL_l2 = 1, + EuVehicleCategoryL_l3 = 2, + EuVehicleCategoryL_l4 = 3, + EuVehicleCategoryL_l5 = 4, + EuVehicleCategoryL_l6 = 5, + EuVehicleCategoryL_l7 = 6 +} e_EuVehicleCategoryL; + +/* EuVehicleCategoryL */ +typedef long EuVehicleCategoryL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryL; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryL_specs_1; +asn_struct_free_f EuVehicleCategoryL_free; +asn_struct_print_f EuVehicleCategoryL_print; +asn_constr_check_f EuVehicleCategoryL_constraint; +ber_type_decoder_f EuVehicleCategoryL_decode_ber; +der_type_encoder_f EuVehicleCategoryL_encode_der; +xer_type_decoder_f EuVehicleCategoryL_decode_xer; +xer_type_encoder_f EuVehicleCategoryL_encode_xer; +oer_type_decoder_f EuVehicleCategoryL_decode_oer; +oer_type_encoder_f EuVehicleCategoryL_encode_oer; +per_type_decoder_f EuVehicleCategoryL_decode_uper; +per_type_encoder_f EuVehicleCategoryL_encode_uper; +per_type_decoder_f EuVehicleCategoryL_decode_aper; +per_type_encoder_f EuVehicleCategoryL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryL_H_ */ +#include diff --git a/vcits/cpm/EuVehicleCategoryM.h b/vcits/cpm/EuVehicleCategoryM.h new file mode 100644 index 0000000..2d96e40 --- /dev/null +++ b/vcits/cpm/EuVehicleCategoryM.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _EuVehicleCategoryM_H_ +#define _EuVehicleCategoryM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryM { + EuVehicleCategoryM_m1 = 0, + EuVehicleCategoryM_m2 = 1, + EuVehicleCategoryM_m3 = 2 +} e_EuVehicleCategoryM; + +/* EuVehicleCategoryM */ +typedef long EuVehicleCategoryM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryM; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryM_specs_1; +asn_struct_free_f EuVehicleCategoryM_free; +asn_struct_print_f EuVehicleCategoryM_print; +asn_constr_check_f EuVehicleCategoryM_constraint; +ber_type_decoder_f EuVehicleCategoryM_decode_ber; +der_type_encoder_f EuVehicleCategoryM_encode_der; +xer_type_decoder_f EuVehicleCategoryM_decode_xer; +xer_type_encoder_f EuVehicleCategoryM_encode_xer; +oer_type_decoder_f EuVehicleCategoryM_decode_oer; +oer_type_encoder_f EuVehicleCategoryM_encode_oer; +per_type_decoder_f EuVehicleCategoryM_decode_uper; +per_type_encoder_f EuVehicleCategoryM_encode_uper; +per_type_decoder_f EuVehicleCategoryM_decode_aper; +per_type_encoder_f EuVehicleCategoryM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryM_H_ */ +#include diff --git a/vcits/cpm/EuVehicleCategoryN.h b/vcits/cpm/EuVehicleCategoryN.h new file mode 100644 index 0000000..f28cd9b --- /dev/null +++ b/vcits/cpm/EuVehicleCategoryN.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _EuVehicleCategoryN_H_ +#define _EuVehicleCategoryN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryN { + EuVehicleCategoryN_n1 = 0, + EuVehicleCategoryN_n2 = 1, + EuVehicleCategoryN_n3 = 2 +} e_EuVehicleCategoryN; + +/* EuVehicleCategoryN */ +typedef long EuVehicleCategoryN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryN; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryN_specs_1; +asn_struct_free_f EuVehicleCategoryN_free; +asn_struct_print_f EuVehicleCategoryN_print; +asn_constr_check_f EuVehicleCategoryN_constraint; +ber_type_decoder_f EuVehicleCategoryN_decode_ber; +der_type_encoder_f EuVehicleCategoryN_encode_der; +xer_type_decoder_f EuVehicleCategoryN_decode_xer; +xer_type_encoder_f EuVehicleCategoryN_encode_xer; +oer_type_decoder_f EuVehicleCategoryN_decode_oer; +oer_type_encoder_f EuVehicleCategoryN_encode_oer; +per_type_decoder_f EuVehicleCategoryN_decode_uper; +per_type_encoder_f EuVehicleCategoryN_encode_uper; +per_type_decoder_f EuVehicleCategoryN_decode_aper; +per_type_encoder_f EuVehicleCategoryN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryN_H_ */ +#include diff --git a/vcits/cpm/EuVehicleCategoryO.h b/vcits/cpm/EuVehicleCategoryO.h new file mode 100644 index 0000000..57804ed --- /dev/null +++ b/vcits/cpm/EuVehicleCategoryO.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _EuVehicleCategoryO_H_ +#define _EuVehicleCategoryO_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryO { + EuVehicleCategoryO_o1 = 0, + EuVehicleCategoryO_o2 = 1, + EuVehicleCategoryO_o3 = 2, + EuVehicleCategoryO_o4 = 3 +} e_EuVehicleCategoryO; + +/* EuVehicleCategoryO */ +typedef long EuVehicleCategoryO_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryO_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryO; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryO_specs_1; +asn_struct_free_f EuVehicleCategoryO_free; +asn_struct_print_f EuVehicleCategoryO_print; +asn_constr_check_f EuVehicleCategoryO_constraint; +ber_type_decoder_f EuVehicleCategoryO_decode_ber; +der_type_encoder_f EuVehicleCategoryO_encode_der; +xer_type_decoder_f EuVehicleCategoryO_decode_xer; +xer_type_encoder_f EuVehicleCategoryO_encode_xer; +oer_type_decoder_f EuVehicleCategoryO_decode_oer; +oer_type_encoder_f EuVehicleCategoryO_encode_oer; +per_type_decoder_f EuVehicleCategoryO_decode_uper; +per_type_encoder_f EuVehicleCategoryO_encode_uper; +per_type_decoder_f EuVehicleCategoryO_decode_aper; +per_type_encoder_f EuVehicleCategoryO_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryO_H_ */ +#include diff --git a/vcits/cpm/EventHistory.h b/vcits/cpm/EventHistory.h new file mode 100644 index 0000000..5e89f59 --- /dev/null +++ b/vcits/cpm/EventHistory.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _EventHistory_H_ +#define _EventHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EventPoint; + +/* EventHistory */ +typedef struct EventHistory { + A_SEQUENCE_OF(struct EventPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventHistory; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventHistory_H_ */ +#include diff --git a/vcits/cpm/EventPoint.h b/vcits/cpm/EventPoint.h new file mode 100644 index 0000000..9ef105a --- /dev/null +++ b/vcits/cpm/EventPoint.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _EventPoint_H_ +#define _EventPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include "InformationQuality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EventPoint */ +typedef struct EventPoint { + DeltaReferencePosition_t eventPosition; + PathDeltaTime_t *eventDeltaTime; /* OPTIONAL */ + InformationQuality_t informationQuality; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_EventPoint_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventPoint_H_ */ +#include diff --git a/vcits/cpm/ExceptionalCondition.h b/vcits/cpm/ExceptionalCondition.h new file mode 100644 index 0000000..33407a2 --- /dev/null +++ b/vcits/cpm/ExceptionalCondition.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ExceptionalCondition_H_ +#define _ExceptionalCondition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExceptionalCondition { + ExceptionalCondition_unknown = 0, + ExceptionalCondition_publicTransportPriority = 1, + ExceptionalCondition_emergencyVehiclePriority = 2, + ExceptionalCondition_trainPriority = 3, + ExceptionalCondition_bridgeOpen = 4, + ExceptionalCondition_vehicleHeight = 5, + ExceptionalCondition_weather = 6, + ExceptionalCondition_trafficJam = 7, + ExceptionalCondition_tunnelClosure = 8, + ExceptionalCondition_meteringActive = 9, + ExceptionalCondition_truckPriority = 10, + ExceptionalCondition_bicyclePlatoonPriority = 11, + ExceptionalCondition_vehiclePlatoonPriority = 12 + /* + * Enumeration is extensible + */ +} e_ExceptionalCondition; + +/* ExceptionalCondition */ +typedef long ExceptionalCondition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ExceptionalCondition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ExceptionalCondition; +extern const asn_INTEGER_specifics_t asn_SPC_ExceptionalCondition_specs_1; +asn_struct_free_f ExceptionalCondition_free; +asn_struct_print_f ExceptionalCondition_print; +asn_constr_check_f ExceptionalCondition_constraint; +ber_type_decoder_f ExceptionalCondition_decode_ber; +der_type_encoder_f ExceptionalCondition_encode_der; +xer_type_decoder_f ExceptionalCondition_decode_xer; +xer_type_encoder_f ExceptionalCondition_encode_xer; +oer_type_decoder_f ExceptionalCondition_decode_oer; +oer_type_encoder_f ExceptionalCondition_encode_oer; +per_type_decoder_f ExceptionalCondition_decode_uper; +per_type_encoder_f ExceptionalCondition_encode_uper; +per_type_decoder_f ExceptionalCondition_decode_aper; +per_type_encoder_f ExceptionalCondition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExceptionalCondition_H_ */ +#include diff --git a/vcits/cpm/ExteriorLights.h b/vcits/cpm/ExteriorLights.h new file mode 100644 index 0000000..277cfb8 --- /dev/null +++ b/vcits/cpm/ExteriorLights.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ExteriorLights_H_ +#define _ExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExteriorLights { + ExteriorLights_lowBeamHeadlightsOn = 0, + ExteriorLights_highBeamHeadlightsOn = 1, + ExteriorLights_leftTurnSignalOn = 2, + ExteriorLights_rightTurnSignalOn = 3, + ExteriorLights_daytimeRunningLightsOn = 4, + ExteriorLights_reverseLightOn = 5, + ExteriorLights_fogLightOn = 6, + ExteriorLights_parkingLightsOn = 7 +} e_ExteriorLights; + +/* ExteriorLights */ +typedef BIT_STRING_t ExteriorLights_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ExteriorLights_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ExteriorLights; +asn_struct_free_f ExteriorLights_free; +asn_struct_print_f ExteriorLights_print; +asn_constr_check_f ExteriorLights_constraint; +ber_type_decoder_f ExteriorLights_decode_ber; +der_type_encoder_f ExteriorLights_encode_der; +xer_type_decoder_f ExteriorLights_decode_xer; +xer_type_encoder_f ExteriorLights_encode_xer; +oer_type_decoder_f ExteriorLights_decode_oer; +oer_type_encoder_f ExteriorLights_encode_oer; +per_type_decoder_f ExteriorLights_decode_uper; +per_type_encoder_f ExteriorLights_encode_uper; +per_type_decoder_f ExteriorLights_decode_aper; +per_type_encoder_f ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExteriorLights_H_ */ +#include diff --git a/vcits/cpm/FreeSpaceAddendum.h b/vcits/cpm/FreeSpaceAddendum.h new file mode 100644 index 0000000..2246342 --- /dev/null +++ b/vcits/cpm/FreeSpaceAddendum.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _FreeSpaceAddendum_H_ +#define _FreeSpaceAddendum_H_ + + +#include + +/* Including external dependencies */ +#include "FreeSpaceConfidence.h" +#include "FreeSpaceArea.h" +#include "ShadowingApplies.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SensorIdList; + +/* FreeSpaceAddendum */ +typedef struct FreeSpaceAddendum { + FreeSpaceConfidence_t freeSpaceConfidence; + FreeSpaceArea_t freeSpaceArea; + struct SensorIdList *sensorIDList; /* OPTIONAL */ + ShadowingApplies_t *shadowingApplies; /* DEFAULT TRUE */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreeSpaceAddendum_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreeSpaceAddendum; +extern asn_SEQUENCE_specifics_t asn_SPC_FreeSpaceAddendum_specs_1; +extern asn_TYPE_member_t asn_MBR_FreeSpaceAddendum_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreeSpaceAddendum_H_ */ +#include diff --git a/vcits/cpm/FreeSpaceAddendumContainer.h b/vcits/cpm/FreeSpaceAddendumContainer.h new file mode 100644 index 0000000..ce746af --- /dev/null +++ b/vcits/cpm/FreeSpaceAddendumContainer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _FreeSpaceAddendumContainer_H_ +#define _FreeSpaceAddendumContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FreeSpaceAddendum; + +/* FreeSpaceAddendumContainer */ +typedef struct FreeSpaceAddendumContainer { + A_SEQUENCE_OF(struct FreeSpaceAddendum) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreeSpaceAddendumContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreeSpaceAddendumContainer; +extern asn_SET_OF_specifics_t asn_SPC_FreeSpaceAddendumContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_FreeSpaceAddendumContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_FreeSpaceAddendumContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreeSpaceAddendumContainer_H_ */ +#include diff --git a/vcits/cpm/FreeSpaceArea.h b/vcits/cpm/FreeSpaceArea.h new file mode 100644 index 0000000..23aca84 --- /dev/null +++ b/vcits/cpm/FreeSpaceArea.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _FreeSpaceArea_H_ +#define _FreeSpaceArea_H_ + + +#include + +/* Including external dependencies */ +#include "AreaPolygon.h" +#include "AreaCircular.h" +#include "AreaEllipse.h" +#include "AreaRectangle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FreeSpaceArea_PR { + FreeSpaceArea_PR_NOTHING, /* No components present */ + FreeSpaceArea_PR_freeSpacePolygon, + FreeSpaceArea_PR_freeSpaceCircular, + FreeSpaceArea_PR_freeSpaceEllipse, + FreeSpaceArea_PR_freeSpaceRectangle + /* Extensions may appear below */ + +} FreeSpaceArea_PR; + +/* FreeSpaceArea */ +typedef struct FreeSpaceArea { + FreeSpaceArea_PR present; + union FreeSpaceArea_u { + AreaPolygon_t freeSpacePolygon; + AreaCircular_t freeSpaceCircular; + AreaEllipse_t freeSpaceEllipse; + AreaRectangle_t freeSpaceRectangle; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreeSpaceArea_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreeSpaceArea; +extern asn_CHOICE_specifics_t asn_SPC_FreeSpaceArea_specs_1; +extern asn_TYPE_member_t asn_MBR_FreeSpaceArea_1[4]; +extern asn_per_constraints_t asn_PER_type_FreeSpaceArea_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreeSpaceArea_H_ */ +#include diff --git a/vcits/cpm/FreeSpaceConfidence.h b/vcits/cpm/FreeSpaceConfidence.h new file mode 100644 index 0000000..a1be144 --- /dev/null +++ b/vcits/cpm/FreeSpaceConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _FreeSpaceConfidence_H_ +#define _FreeSpaceConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FreeSpaceConfidence { + FreeSpaceConfidence_unknown = 0, + FreeSpaceConfidence_onePercent = 1, + FreeSpaceConfidence_oneHundredPercent = 100, + FreeSpaceConfidence_unavailable = 101 +} e_FreeSpaceConfidence; + +/* FreeSpaceConfidence */ +typedef long FreeSpaceConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FreeSpaceConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FreeSpaceConfidence; +asn_struct_free_f FreeSpaceConfidence_free; +asn_struct_print_f FreeSpaceConfidence_print; +asn_constr_check_f FreeSpaceConfidence_constraint; +ber_type_decoder_f FreeSpaceConfidence_decode_ber; +der_type_encoder_f FreeSpaceConfidence_encode_der; +xer_type_decoder_f FreeSpaceConfidence_decode_xer; +xer_type_encoder_f FreeSpaceConfidence_encode_xer; +oer_type_decoder_f FreeSpaceConfidence_decode_oer; +oer_type_encoder_f FreeSpaceConfidence_encode_oer; +per_type_decoder_f FreeSpaceConfidence_decode_uper; +per_type_encoder_f FreeSpaceConfidence_encode_uper; +per_type_decoder_f FreeSpaceConfidence_decode_aper; +per_type_encoder_f FreeSpaceConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreeSpaceConfidence_H_ */ +#include diff --git a/vcits/cpm/FrontOverhang.h b/vcits/cpm/FrontOverhang.h new file mode 100644 index 0000000..7cbf734 --- /dev/null +++ b/vcits/cpm/FrontOverhang.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _FrontOverhang_H_ +#define _FrontOverhang_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FrontOverhang { + FrontOverhang_zeroPointOneMeter = 1, + FrontOverhang_oneMeter = 10 +} e_FrontOverhang; + +/* FrontOverhang */ +typedef long FrontOverhang_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FrontOverhang_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FrontOverhang; +asn_struct_free_f FrontOverhang_free; +asn_struct_print_f FrontOverhang_print; +asn_constr_check_f FrontOverhang_constraint; +ber_type_decoder_f FrontOverhang_decode_ber; +der_type_encoder_f FrontOverhang_encode_der; +xer_type_decoder_f FrontOverhang_decode_xer; +xer_type_encoder_f FrontOverhang_encode_xer; +oer_type_decoder_f FrontOverhang_decode_oer; +oer_type_encoder_f FrontOverhang_encode_oer; +per_type_decoder_f FrontOverhang_decode_uper; +per_type_encoder_f FrontOverhang_encode_uper; +per_type_decoder_f FrontOverhang_decode_aper; +per_type_encoder_f FrontOverhang_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FrontOverhang_H_ */ +#include diff --git a/vcits/cpm/FuelType.h b/vcits/cpm/FuelType.h new file mode 100644 index 0000000..64394d9 --- /dev/null +++ b/vcits/cpm/FuelType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _FuelType_H_ +#define _FuelType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FuelType */ +typedef long FuelType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FuelType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FuelType; +asn_struct_free_f FuelType_free; +asn_struct_print_f FuelType_print; +asn_constr_check_f FuelType_constraint; +ber_type_decoder_f FuelType_decode_ber; +der_type_encoder_f FuelType_encode_der; +xer_type_decoder_f FuelType_decode_xer; +xer_type_encoder_f FuelType_encode_xer; +oer_type_decoder_f FuelType_decode_oer; +oer_type_encoder_f FuelType_encode_oer; +per_type_decoder_f FuelType_decode_uper; +per_type_encoder_f FuelType_encode_uper; +per_type_decoder_f FuelType_decode_aper; +per_type_encoder_f FuelType_encode_aper; +#define FuelType_unknownFuel ((FuelType_t)0) +#define FuelType_gasoline ((FuelType_t)1) +#define FuelType_ethanol ((FuelType_t)2) +#define FuelType_diesel ((FuelType_t)3) +#define FuelType_electric ((FuelType_t)4) +#define FuelType_hybrid ((FuelType_t)5) +#define FuelType_hydrogen ((FuelType_t)6) +#define FuelType_natGasLiquid ((FuelType_t)7) +#define FuelType_natGasComp ((FuelType_t)8) +#define FuelType_propane ((FuelType_t)9) + +#ifdef __cplusplus +} +#endif + +#endif /* _FuelType_H_ */ +#include diff --git a/vcits/cpm/FullPositionVector.h b/vcits/cpm/FullPositionVector.h new file mode 100644 index 0000000..08190d3 --- /dev/null +++ b/vcits/cpm/FullPositionVector.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _FullPositionVector_H_ +#define _FullPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include "Elevation.h" +#include "HeadingDSRC.h" +#include "TimeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DDateTime; +struct TransmissionAndSpeed; +struct PositionalAccuracy; +struct PositionConfidenceSet; +struct SpeedandHeadingandThrottleConfidence; + +/* FullPositionVector */ +typedef struct FullPositionVector { + struct DDateTime *utcTime; /* OPTIONAL */ + Longitude_t Long; + Latitude_t lat; + Elevation_t *elevation; /* OPTIONAL */ + HeadingDSRC_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + struct PositionalAccuracy *posAccuracy; /* OPTIONAL */ + TimeConfidence_t *timeConfidence; /* OPTIONAL */ + struct PositionConfidenceSet *posConfidence; /* OPTIONAL */ + struct SpeedandHeadingandThrottleConfidence *speedConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FullPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FullPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_FullPositionVector_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FullPositionVector_H_ */ +#include diff --git a/vcits/cpm/GNSSstatus.h b/vcits/cpm/GNSSstatus.h new file mode 100644 index 0000000..85ab2a7 --- /dev/null +++ b/vcits/cpm/GNSSstatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _GNSSstatus_H_ +#define _GNSSstatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GNSSstatus { + GNSSstatus_unavailable = 0, + GNSSstatus_isHealthy = 1, + GNSSstatus_isMonitored = 2, + GNSSstatus_baseStationType = 3, + GNSSstatus_aPDOPofUnder5 = 4, + GNSSstatus_inViewOfUnder5 = 5, + GNSSstatus_localCorrectionsPresent = 6, + GNSSstatus_networkCorrectionsPresent = 7 +} e_GNSSstatus; + +/* GNSSstatus */ +typedef BIT_STRING_t GNSSstatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GNSSstatus; +asn_struct_free_f GNSSstatus_free; +asn_struct_print_f GNSSstatus_print; +asn_constr_check_f GNSSstatus_constraint; +ber_type_decoder_f GNSSstatus_decode_ber; +der_type_encoder_f GNSSstatus_encode_der; +xer_type_decoder_f GNSSstatus_decode_xer; +xer_type_encoder_f GNSSstatus_encode_xer; +oer_type_decoder_f GNSSstatus_decode_oer; +oer_type_encoder_f GNSSstatus_encode_oer; +per_type_decoder_f GNSSstatus_decode_uper; +per_type_encoder_f GNSSstatus_encode_uper; +per_type_decoder_f GNSSstatus_decode_aper; +per_type_encoder_f GNSSstatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNSSstatus_H_ */ +#include diff --git a/vcits/cpm/GenerationDeltaTime.h b/vcits/cpm/GenerationDeltaTime.h new file mode 100644 index 0000000..79d0d5c --- /dev/null +++ b/vcits/cpm/GenerationDeltaTime.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _GenerationDeltaTime_H_ +#define _GenerationDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GenerationDeltaTime { + GenerationDeltaTime_oneMilliSec = 1 +} e_GenerationDeltaTime; + +/* GenerationDeltaTime */ +typedef long GenerationDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GenerationDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GenerationDeltaTime; +asn_struct_free_f GenerationDeltaTime_free; +asn_struct_print_f GenerationDeltaTime_print; +asn_constr_check_f GenerationDeltaTime_constraint; +ber_type_decoder_f GenerationDeltaTime_decode_ber; +der_type_encoder_f GenerationDeltaTime_encode_der; +xer_type_decoder_f GenerationDeltaTime_decode_xer; +xer_type_encoder_f GenerationDeltaTime_encode_xer; +oer_type_decoder_f GenerationDeltaTime_decode_oer; +oer_type_encoder_f GenerationDeltaTime_encode_oer; +per_type_decoder_f GenerationDeltaTime_decode_uper; +per_type_encoder_f GenerationDeltaTime_encode_uper; +per_type_decoder_f GenerationDeltaTime_decode_aper; +per_type_encoder_f GenerationDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GenerationDeltaTime_H_ */ +#include diff --git a/vcits/cpm/GenericLane.h b/vcits/cpm/GenericLane.h new file mode 100644 index 0000000..42bda98 --- /dev/null +++ b/vcits/cpm/GenericLane.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _GenericLane_H_ +#define _GenericLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "DescriptiveName.h" +#include "ApproachID.h" +#include "LaneAttributes.h" +#include "AllowedManeuvers.h" +#include "NodeListXY.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectsToList; +struct OverlayLaneList; +struct Reg_GenericLane; + +/* GenericLane */ +typedef struct GenericLane { + LaneID_t laneID; + DescriptiveName_t *name; /* OPTIONAL */ + ApproachID_t *ingressApproach; /* OPTIONAL */ + ApproachID_t *egressApproach; /* OPTIONAL */ + LaneAttributes_t laneAttributes; + AllowedManeuvers_t *maneuvers; /* OPTIONAL */ + NodeListXY_t nodeList; + struct ConnectsToList *connectsTo; /* OPTIONAL */ + struct OverlayLaneList *overlays; /* OPTIONAL */ + struct GenericLane__regional { + A_SEQUENCE_OF(struct Reg_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GenericLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1; +extern asn_TYPE_member_t asn_MBR_GenericLane_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GenericLane_H_ */ +#include diff --git a/vcits/cpm/HardShoulderStatus.h b/vcits/cpm/HardShoulderStatus.h new file mode 100644 index 0000000..77e7fa4 --- /dev/null +++ b/vcits/cpm/HardShoulderStatus.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _HardShoulderStatus_H_ +#define _HardShoulderStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HardShoulderStatus { + HardShoulderStatus_availableForStopping = 0, + HardShoulderStatus_closed = 1, + HardShoulderStatus_availableForDriving = 2 +} e_HardShoulderStatus; + +/* HardShoulderStatus */ +typedef long HardShoulderStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus; +extern const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1; +asn_struct_free_f HardShoulderStatus_free; +asn_struct_print_f HardShoulderStatus_print; +asn_constr_check_f HardShoulderStatus_constraint; +ber_type_decoder_f HardShoulderStatus_decode_ber; +der_type_encoder_f HardShoulderStatus_encode_der; +xer_type_decoder_f HardShoulderStatus_decode_xer; +xer_type_encoder_f HardShoulderStatus_encode_xer; +oer_type_decoder_f HardShoulderStatus_decode_oer; +oer_type_encoder_f HardShoulderStatus_encode_oer; +per_type_decoder_f HardShoulderStatus_decode_uper; +per_type_encoder_f HardShoulderStatus_encode_uper; +per_type_decoder_f HardShoulderStatus_decode_aper; +per_type_encoder_f HardShoulderStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HardShoulderStatus_H_ */ +#include diff --git a/vcits/cpm/HazardousLocation-AnimalOnTheRoadSubCauseCode.h b/vcits/cpm/HazardousLocation-AnimalOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..abc32ee --- /dev/null +++ b/vcits/cpm/HazardousLocation-AnimalOnTheRoadSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_AnimalOnTheRoadSubCauseCode { + HazardousLocation_AnimalOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimals = 1, + HazardousLocation_AnimalOnTheRoadSubCauseCode_herdOfAnimals = 2, + HazardousLocation_AnimalOnTheRoadSubCauseCode_smallAnimals = 3, + HazardousLocation_AnimalOnTheRoadSubCauseCode_largeAnimals = 4 +} e_HazardousLocation_AnimalOnTheRoadSubCauseCode; + +/* HazardousLocation-AnimalOnTheRoadSubCauseCode */ +typedef long HazardousLocation_AnimalOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_AnimalOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_AnimalOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/HazardousLocation-DangerousCurveSubCauseCode.h b/vcits/cpm/HazardousLocation-DangerousCurveSubCauseCode.h new file mode 100644 index 0000000..0a03e72 --- /dev/null +++ b/vcits/cpm/HazardousLocation-DangerousCurveSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _HazardousLocation_DangerousCurveSubCauseCode_H_ +#define _HazardousLocation_DangerousCurveSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_DangerousCurveSubCauseCode { + HazardousLocation_DangerousCurveSubCauseCode_unavailable = 0, + HazardousLocation_DangerousCurveSubCauseCode_dangerousLeftTurnCurve = 1, + HazardousLocation_DangerousCurveSubCauseCode_dangerousRightTurnCurve = 2, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithUnknownTurningDirection = 3, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithLeftTurn = 4, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithRightTurn = 5 +} e_HazardousLocation_DangerousCurveSubCauseCode; + +/* HazardousLocation-DangerousCurveSubCauseCode */ +typedef long HazardousLocation_DangerousCurveSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode; +asn_struct_free_f HazardousLocation_DangerousCurveSubCauseCode_free; +asn_struct_print_f HazardousLocation_DangerousCurveSubCauseCode_print; +asn_constr_check_f HazardousLocation_DangerousCurveSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_DangerousCurveSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h b/vcits/cpm/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..06a453a --- /dev/null +++ b/vcits/cpm/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_ObstacleOnTheRoadSubCauseCode { + HazardousLocation_ObstacleOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_shedLoad = 1, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfVehicles = 2, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfTyres = 3, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_bigObjects = 4, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_fallenTrees = 5, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_hubCaps = 6, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_waitingVehicles = 7 +} e_HazardousLocation_ObstacleOnTheRoadSubCauseCode; + +/* HazardousLocation-ObstacleOnTheRoadSubCauseCode */ +typedef long HazardousLocation_ObstacleOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/HazardousLocation-SurfaceConditionSubCauseCode.h b/vcits/cpm/HazardousLocation-SurfaceConditionSubCauseCode.h new file mode 100644 index 0000000..8d90a56 --- /dev/null +++ b/vcits/cpm/HazardousLocation-SurfaceConditionSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _HazardousLocation_SurfaceConditionSubCauseCode_H_ +#define _HazardousLocation_SurfaceConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_SurfaceConditionSubCauseCode { + HazardousLocation_SurfaceConditionSubCauseCode_unavailable = 0, + HazardousLocation_SurfaceConditionSubCauseCode_rockfalls = 1, + HazardousLocation_SurfaceConditionSubCauseCode_earthquakeDamage = 2, + HazardousLocation_SurfaceConditionSubCauseCode_sewerCollapse = 3, + HazardousLocation_SurfaceConditionSubCauseCode_subsidence = 4, + HazardousLocation_SurfaceConditionSubCauseCode_snowDrifts = 5, + HazardousLocation_SurfaceConditionSubCauseCode_stormDamage = 6, + HazardousLocation_SurfaceConditionSubCauseCode_burstPipe = 7, + HazardousLocation_SurfaceConditionSubCauseCode_volcanoEruption = 8, + HazardousLocation_SurfaceConditionSubCauseCode_fallingIce = 9 +} e_HazardousLocation_SurfaceConditionSubCauseCode; + +/* HazardousLocation-SurfaceConditionSubCauseCode */ +typedef long HazardousLocation_SurfaceConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode; +asn_struct_free_f HazardousLocation_SurfaceConditionSubCauseCode_free; +asn_struct_print_f HazardousLocation_SurfaceConditionSubCauseCode_print; +asn_constr_check_f HazardousLocation_SurfaceConditionSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_SurfaceConditionSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/Heading.h b/vcits/cpm/Heading.h new file mode 100644 index 0000000..b8e5673 --- /dev/null +++ b/vcits/cpm/Heading.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Heading_H_ +#define _Heading_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingValue.h" +#include "HeadingConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Heading */ +typedef struct Heading { + HeadingValue_t headingValue; + HeadingConfidence_t headingConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Heading_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Heading; +extern asn_SEQUENCE_specifics_t asn_SPC_Heading_specs_1; +extern asn_TYPE_member_t asn_MBR_Heading_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Heading_H_ */ +#include diff --git a/vcits/cpm/HeadingConfidence.h b/vcits/cpm/HeadingConfidence.h new file mode 100644 index 0000000..d5d142b --- /dev/null +++ b/vcits/cpm/HeadingConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _HeadingConfidence_H_ +#define _HeadingConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidence { + HeadingConfidence_equalOrWithinZeroPointOneDegree = 1, + HeadingConfidence_equalOrWithinOneDegree = 10, + HeadingConfidence_outOfRange = 126, + HeadingConfidence_unavailable = 127 +} e_HeadingConfidence; + +/* HeadingConfidence */ +typedef long HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidence; +asn_struct_free_f HeadingConfidence_free; +asn_struct_print_f HeadingConfidence_print; +asn_constr_check_f HeadingConfidence_constraint; +ber_type_decoder_f HeadingConfidence_decode_ber; +der_type_encoder_f HeadingConfidence_encode_der; +xer_type_decoder_f HeadingConfidence_decode_xer; +xer_type_encoder_f HeadingConfidence_encode_xer; +oer_type_decoder_f HeadingConfidence_decode_oer; +oer_type_encoder_f HeadingConfidence_encode_oer; +per_type_decoder_f HeadingConfidence_decode_uper; +per_type_encoder_f HeadingConfidence_encode_uper; +per_type_decoder_f HeadingConfidence_decode_aper; +per_type_encoder_f HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidence_H_ */ +#include diff --git a/vcits/cpm/HeadingConfidenceDSRC.h b/vcits/cpm/HeadingConfidenceDSRC.h new file mode 100644 index 0000000..3254d66 --- /dev/null +++ b/vcits/cpm/HeadingConfidenceDSRC.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _HeadingConfidenceDSRC_H_ +#define _HeadingConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidenceDSRC { + HeadingConfidenceDSRC_unavailable = 0, + HeadingConfidenceDSRC_prec10deg = 1, + HeadingConfidenceDSRC_prec05deg = 2, + HeadingConfidenceDSRC_prec01deg = 3, + HeadingConfidenceDSRC_prec0_1deg = 4, + HeadingConfidenceDSRC_prec0_05deg = 5, + HeadingConfidenceDSRC_prec0_01deg = 6, + HeadingConfidenceDSRC_prec0_0125deg = 7 +} e_HeadingConfidenceDSRC; + +/* HeadingConfidenceDSRC */ +typedef long HeadingConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_HeadingConfidenceDSRC_specs_1; +asn_struct_free_f HeadingConfidenceDSRC_free; +asn_struct_print_f HeadingConfidenceDSRC_print; +asn_constr_check_f HeadingConfidenceDSRC_constraint; +ber_type_decoder_f HeadingConfidenceDSRC_decode_ber; +der_type_encoder_f HeadingConfidenceDSRC_encode_der; +xer_type_decoder_f HeadingConfidenceDSRC_decode_xer; +xer_type_encoder_f HeadingConfidenceDSRC_encode_xer; +oer_type_decoder_f HeadingConfidenceDSRC_decode_oer; +oer_type_encoder_f HeadingConfidenceDSRC_encode_oer; +per_type_decoder_f HeadingConfidenceDSRC_decode_uper; +per_type_encoder_f HeadingConfidenceDSRC_encode_uper; +per_type_decoder_f HeadingConfidenceDSRC_decode_aper; +per_type_encoder_f HeadingConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidenceDSRC_H_ */ +#include diff --git a/vcits/cpm/HeadingDSRC.h b/vcits/cpm/HeadingDSRC.h new file mode 100644 index 0000000..ab7589e --- /dev/null +++ b/vcits/cpm/HeadingDSRC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _HeadingDSRC_H_ +#define _HeadingDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HeadingDSRC */ +typedef long HeadingDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingDSRC; +asn_struct_free_f HeadingDSRC_free; +asn_struct_print_f HeadingDSRC_print; +asn_constr_check_f HeadingDSRC_constraint; +ber_type_decoder_f HeadingDSRC_decode_ber; +der_type_encoder_f HeadingDSRC_encode_der; +xer_type_decoder_f HeadingDSRC_decode_xer; +xer_type_encoder_f HeadingDSRC_encode_xer; +oer_type_decoder_f HeadingDSRC_decode_oer; +oer_type_encoder_f HeadingDSRC_encode_oer; +per_type_decoder_f HeadingDSRC_decode_uper; +per_type_encoder_f HeadingDSRC_encode_uper; +per_type_decoder_f HeadingDSRC_decode_aper; +per_type_encoder_f HeadingDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingDSRC_H_ */ +#include diff --git a/vcits/cpm/HeadingValue.h b/vcits/cpm/HeadingValue.h new file mode 100644 index 0000000..1ea981c --- /dev/null +++ b/vcits/cpm/HeadingValue.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _HeadingValue_H_ +#define _HeadingValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingValue { + HeadingValue_wgs84North = 0, + HeadingValue_wgs84East = 900, + HeadingValue_wgs84South = 1800, + HeadingValue_wgs84West = 2700, + HeadingValue_unavailable = 3601 +} e_HeadingValue; + +/* HeadingValue */ +typedef long HeadingValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingValue; +asn_struct_free_f HeadingValue_free; +asn_struct_print_f HeadingValue_print; +asn_constr_check_f HeadingValue_constraint; +ber_type_decoder_f HeadingValue_decode_ber; +der_type_encoder_f HeadingValue_encode_der; +xer_type_decoder_f HeadingValue_decode_xer; +xer_type_encoder_f HeadingValue_encode_xer; +oer_type_decoder_f HeadingValue_decode_oer; +oer_type_encoder_f HeadingValue_encode_oer; +per_type_decoder_f HeadingValue_decode_uper; +per_type_encoder_f HeadingValue_encode_uper; +per_type_decoder_f HeadingValue_decode_aper; +per_type_encoder_f HeadingValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingValue_H_ */ +#include diff --git a/vcits/cpm/HeightLonCarr.h b/vcits/cpm/HeightLonCarr.h new file mode 100644 index 0000000..0ba9b0c --- /dev/null +++ b/vcits/cpm/HeightLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _HeightLonCarr_H_ +#define _HeightLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeightLonCarr { + HeightLonCarr_oneCentimeter = 1, + HeightLonCarr_unavailable = 100 +} e_HeightLonCarr; + +/* HeightLonCarr */ +typedef long HeightLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HeightLonCarr; +asn_struct_free_f HeightLonCarr_free; +asn_struct_print_f HeightLonCarr_print; +asn_constr_check_f HeightLonCarr_constraint; +ber_type_decoder_f HeightLonCarr_decode_ber; +der_type_encoder_f HeightLonCarr_encode_der; +xer_type_decoder_f HeightLonCarr_decode_xer; +xer_type_encoder_f HeightLonCarr_encode_xer; +oer_type_decoder_f HeightLonCarr_decode_oer; +oer_type_encoder_f HeightLonCarr_encode_oer; +per_type_decoder_f HeightLonCarr_decode_uper; +per_type_encoder_f HeightLonCarr_encode_uper; +per_type_decoder_f HeightLonCarr_decode_aper; +per_type_encoder_f HeightLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeightLonCarr_H_ */ +#include diff --git a/vcits/cpm/HighFrequencyContainer.h b/vcits/cpm/HighFrequencyContainer.h new file mode 100644 index 0000000..ed06ede --- /dev/null +++ b/vcits/cpm/HighFrequencyContainer.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _HighFrequencyContainer_H_ +#define _HighFrequencyContainer_H_ + + +#include + +/* Including external dependencies */ +#include "BasicVehicleContainerHighFrequency.h" +#include "RSUContainerHighFrequency.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HighFrequencyContainer_PR { + HighFrequencyContainer_PR_NOTHING, /* No components present */ + HighFrequencyContainer_PR_basicVehicleContainerHighFrequency, + HighFrequencyContainer_PR_rsuContainerHighFrequency + /* Extensions may appear below */ + +} HighFrequencyContainer_PR; + +/* HighFrequencyContainer */ +typedef struct HighFrequencyContainer { + HighFrequencyContainer_PR present; + union HighFrequencyContainer_u { + BasicVehicleContainerHighFrequency_t basicVehicleContainerHighFrequency; + RSUContainerHighFrequency_t rsuContainerHighFrequency; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} HighFrequencyContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HighFrequencyContainer; +extern asn_CHOICE_specifics_t asn_SPC_HighFrequencyContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_HighFrequencyContainer_1[2]; +extern asn_per_constraints_t asn_PER_type_HighFrequencyContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _HighFrequencyContainer_H_ */ +#include diff --git a/vcits/cpm/HitchPointOffset.h b/vcits/cpm/HitchPointOffset.h new file mode 100644 index 0000000..38839d6 --- /dev/null +++ b/vcits/cpm/HitchPointOffset.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _HitchPointOffset_H_ +#define _HitchPointOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HitchPointOffset { + HitchPointOffset_zeroPointOneMeter = 1, + HitchPointOffset_oneMeter = 10 +} e_HitchPointOffset; + +/* HitchPointOffset */ +typedef long HitchPointOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HitchPointOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HitchPointOffset; +asn_struct_free_f HitchPointOffset_free; +asn_struct_print_f HitchPointOffset_print; +asn_constr_check_f HitchPointOffset_constraint; +ber_type_decoder_f HitchPointOffset_decode_ber; +der_type_encoder_f HitchPointOffset_encode_der; +xer_type_decoder_f HitchPointOffset_decode_xer; +xer_type_encoder_f HitchPointOffset_encode_xer; +oer_type_decoder_f HitchPointOffset_decode_oer; +oer_type_encoder_f HitchPointOffset_encode_oer; +per_type_decoder_f HitchPointOffset_decode_uper; +per_type_encoder_f HitchPointOffset_encode_uper; +per_type_decoder_f HitchPointOffset_decode_aper; +per_type_encoder_f HitchPointOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HitchPointOffset_H_ */ +#include diff --git a/vcits/cpm/HumanPresenceOnTheRoadSubCauseCode.h b/vcits/cpm/HumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..f2bd7df --- /dev/null +++ b/vcits/cpm/HumanPresenceOnTheRoadSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _HumanPresenceOnTheRoadSubCauseCode_H_ +#define _HumanPresenceOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanPresenceOnTheRoadSubCauseCode { + HumanPresenceOnTheRoadSubCauseCode_unavailable = 0, + HumanPresenceOnTheRoadSubCauseCode_childrenOnRoadway = 1, + HumanPresenceOnTheRoadSubCauseCode_cyclistOnRoadway = 2, + HumanPresenceOnTheRoadSubCauseCode_motorcyclistOnRoadway = 3 +} e_HumanPresenceOnTheRoadSubCauseCode; + +/* HumanPresenceOnTheRoadSubCauseCode */ +typedef long HumanPresenceOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode; +asn_struct_free_f HumanPresenceOnTheRoadSubCauseCode_free; +asn_struct_print_f HumanPresenceOnTheRoadSubCauseCode_print; +asn_constr_check_f HumanPresenceOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanPresenceOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/HumanProblemSubCauseCode.h b/vcits/cpm/HumanProblemSubCauseCode.h new file mode 100644 index 0000000..ae086a6 --- /dev/null +++ b/vcits/cpm/HumanProblemSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _HumanProblemSubCauseCode_H_ +#define _HumanProblemSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanProblemSubCauseCode { + HumanProblemSubCauseCode_unavailable = 0, + HumanProblemSubCauseCode_glycemiaProblem = 1, + HumanProblemSubCauseCode_heartProblem = 2 +} e_HumanProblemSubCauseCode; + +/* HumanProblemSubCauseCode */ +typedef long HumanProblemSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode; +asn_struct_free_f HumanProblemSubCauseCode_free; +asn_struct_print_f HumanProblemSubCauseCode_print; +asn_constr_check_f HumanProblemSubCauseCode_constraint; +ber_type_decoder_f HumanProblemSubCauseCode_decode_ber; +der_type_encoder_f HumanProblemSubCauseCode_encode_der; +xer_type_decoder_f HumanProblemSubCauseCode_decode_xer; +xer_type_encoder_f HumanProblemSubCauseCode_encode_xer; +oer_type_decoder_f HumanProblemSubCauseCode_decode_oer; +oer_type_encoder_f HumanProblemSubCauseCode_encode_oer; +per_type_decoder_f HumanProblemSubCauseCode_decode_uper; +per_type_encoder_f HumanProblemSubCauseCode_encode_uper; +per_type_decoder_f HumanProblemSubCauseCode_decode_aper; +per_type_encoder_f HumanProblemSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanProblemSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/Identifier.h b/vcits/cpm/Identifier.h new file mode 100644 index 0000000..5868e2e --- /dev/null +++ b/vcits/cpm/Identifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Identifier_H_ +#define _Identifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Identifier */ +typedef long Identifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Identifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Identifier; +asn_struct_free_f Identifier_free; +asn_struct_print_f Identifier_print; +asn_constr_check_f Identifier_constraint; +ber_type_decoder_f Identifier_decode_ber; +der_type_encoder_f Identifier_encode_der; +xer_type_decoder_f Identifier_decode_xer; +xer_type_encoder_f Identifier_encode_xer; +oer_type_decoder_f Identifier_decode_oer; +oer_type_encoder_f Identifier_encode_oer; +per_type_decoder_f Identifier_decode_uper; +per_type_encoder_f Identifier_encode_uper; +per_type_decoder_f Identifier_decode_aper; +per_type_encoder_f Identifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Identifier_H_ */ +#include diff --git a/vcits/cpm/InformationQuality.h b/vcits/cpm/InformationQuality.h new file mode 100644 index 0000000..dea8e4f --- /dev/null +++ b/vcits/cpm/InformationQuality.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _InformationQuality_H_ +#define _InformationQuality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InformationQuality { + InformationQuality_unavailable = 0, + InformationQuality_lowest = 1, + InformationQuality_highest = 7 +} e_InformationQuality; + +/* InformationQuality */ +typedef long InformationQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_InformationQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_InformationQuality; +asn_struct_free_f InformationQuality_free; +asn_struct_print_f InformationQuality_print; +asn_constr_check_f InformationQuality_constraint; +ber_type_decoder_f InformationQuality_decode_ber; +der_type_encoder_f InformationQuality_encode_der; +xer_type_decoder_f InformationQuality_decode_xer; +xer_type_encoder_f InformationQuality_encode_xer; +oer_type_decoder_f InformationQuality_decode_oer; +oer_type_encoder_f InformationQuality_encode_oer; +per_type_decoder_f InformationQuality_decode_uper; +per_type_encoder_f InformationQuality_encode_uper; +per_type_decoder_f InformationQuality_decode_aper; +per_type_encoder_f InformationQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InformationQuality_H_ */ +#include diff --git a/vcits/cpm/IntersectionAccessPoint.h b/vcits/cpm/IntersectionAccessPoint.h new file mode 100644 index 0000000..b98637a --- /dev/null +++ b/vcits/cpm/IntersectionAccessPoint.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _IntersectionAccessPoint_H_ +#define _IntersectionAccessPoint_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "ApproachID.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionAccessPoint_PR { + IntersectionAccessPoint_PR_NOTHING, /* No components present */ + IntersectionAccessPoint_PR_lane, + IntersectionAccessPoint_PR_approach, + IntersectionAccessPoint_PR_connection + /* Extensions may appear below */ + +} IntersectionAccessPoint_PR; + +/* IntersectionAccessPoint */ +typedef struct IntersectionAccessPoint { + IntersectionAccessPoint_PR present; + union IntersectionAccessPoint_u { + LaneID_t lane; + ApproachID_t approach; + LaneConnectionID_t connection; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionAccessPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint; +extern asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[3]; +extern asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionAccessPoint_H_ */ +#include diff --git a/vcits/cpm/IntersectionGeometry.h b/vcits/cpm/IntersectionGeometry.h new file mode 100644 index 0000000..95310a1 --- /dev/null +++ b/vcits/cpm/IntersectionGeometry.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _IntersectionGeometry_H_ +#define _IntersectionGeometry_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "LaneList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct PreemptPriorityList; +struct Reg_IntersectionGeometry; + +/* IntersectionGeometry */ +typedef struct IntersectionGeometry { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + LaneList_t laneSet; + struct PreemptPriorityList *preemptPriorityData; /* OPTIONAL */ + struct IntersectionGeometry__regional { + A_SEQUENCE_OF(struct Reg_IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometry_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometry_H_ */ +#include diff --git a/vcits/cpm/IntersectionGeometryList.h b/vcits/cpm/IntersectionGeometryList.h new file mode 100644 index 0000000..56a3975 --- /dev/null +++ b/vcits/cpm/IntersectionGeometryList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _IntersectionGeometryList_H_ +#define _IntersectionGeometryList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometry; + +/* IntersectionGeometryList */ +typedef struct IntersectionGeometryList { + A_SEQUENCE_OF(struct IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometryList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometryList_H_ */ +#include diff --git a/vcits/cpm/IntersectionID.h b/vcits/cpm/IntersectionID.h new file mode 100644 index 0000000..60bdbbe --- /dev/null +++ b/vcits/cpm/IntersectionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _IntersectionID_H_ +#define _IntersectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionID */ +typedef long IntersectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionID; +asn_struct_free_f IntersectionID_free; +asn_struct_print_f IntersectionID_print; +asn_constr_check_f IntersectionID_constraint; +ber_type_decoder_f IntersectionID_decode_ber; +der_type_encoder_f IntersectionID_encode_der; +xer_type_decoder_f IntersectionID_decode_xer; +xer_type_encoder_f IntersectionID_encode_xer; +oer_type_decoder_f IntersectionID_decode_oer; +oer_type_encoder_f IntersectionID_encode_oer; +per_type_decoder_f IntersectionID_decode_uper; +per_type_encoder_f IntersectionID_encode_uper; +per_type_decoder_f IntersectionID_decode_aper; +per_type_encoder_f IntersectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionID_H_ */ +#include diff --git a/vcits/cpm/IntersectionReferenceID.h b/vcits/cpm/IntersectionReferenceID.h new file mode 100644 index 0000000..3a3b054 --- /dev/null +++ b/vcits/cpm/IntersectionReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _IntersectionReferenceID_H_ +#define _IntersectionReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionReferenceID */ +typedef struct IntersectionReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + IntersectionID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionReferenceID_H_ */ +#include diff --git a/vcits/cpm/IntersectionState-addGrpC.h b/vcits/cpm/IntersectionState-addGrpC.h new file mode 100644 index 0000000..c7d88f4 --- /dev/null +++ b/vcits/cpm/IntersectionState-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _IntersectionState_addGrpC_H_ +#define _IntersectionState_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponseList; + +/* IntersectionState-addGrpC */ +typedef struct IntersectionState_addGrpC { + struct PrioritizationResponseList *activePrioritizations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_addGrpC_H_ */ +#include diff --git a/vcits/cpm/IntersectionState.h b/vcits/cpm/IntersectionState.h new file mode 100644 index 0000000..72a8041 --- /dev/null +++ b/vcits/cpm/IntersectionState.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _IntersectionState_H_ +#define _IntersectionState_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "MsgCount.h" +#include "IntersectionStatusObject.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MovementList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EnabledLaneList; +struct ManeuverAssistList; +struct Reg_IntersectionState; + +/* IntersectionState */ +typedef struct IntersectionState { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + MsgCount_t revision; + IntersectionStatusObject_t status; + MinuteOfTheYear_t *moy; /* OPTIONAL */ + DSecond_t *timeStamp; /* OPTIONAL */ + struct EnabledLaneList *enabledLanes; /* OPTIONAL */ + MovementList_t states; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct IntersectionState__regional { + A_SEQUENCE_OF(struct Reg_IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_H_ */ +#include diff --git a/vcits/cpm/IntersectionStateList.h b/vcits/cpm/IntersectionStateList.h new file mode 100644 index 0000000..1c8dad1 --- /dev/null +++ b/vcits/cpm/IntersectionStateList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _IntersectionStateList_H_ +#define _IntersectionStateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionState; + +/* IntersectionStateList */ +typedef struct IntersectionStateList { + A_SEQUENCE_OF(struct IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStateList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStateList_H_ */ +#include diff --git a/vcits/cpm/IntersectionStatusObject.h b/vcits/cpm/IntersectionStatusObject.h new file mode 100644 index 0000000..0cc0b06 --- /dev/null +++ b/vcits/cpm/IntersectionStatusObject.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _IntersectionStatusObject_H_ +#define _IntersectionStatusObject_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionStatusObject { + IntersectionStatusObject_manualControlIsEnabled = 0, + IntersectionStatusObject_stopTimeIsActivated = 1, + IntersectionStatusObject_failureFlash = 2, + IntersectionStatusObject_preemptIsActive = 3, + IntersectionStatusObject_signalPriorityIsActive = 4, + IntersectionStatusObject_fixedTimeOperation = 5, + IntersectionStatusObject_trafficDependentOperation = 6, + IntersectionStatusObject_standbyOperation = 7, + IntersectionStatusObject_failureMode = 8, + IntersectionStatusObject_off = 9, + IntersectionStatusObject_recentMAPmessageUpdate = 10, + IntersectionStatusObject_recentChangeInMAPassignedLanesIDsUsed = 11, + IntersectionStatusObject_noValidMAPisAvailableAtThisTime = 12, + IntersectionStatusObject_noValidSPATisAvailableAtThisTime = 13 +} e_IntersectionStatusObject; + +/* IntersectionStatusObject */ +typedef BIT_STRING_t IntersectionStatusObject_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject; +asn_struct_free_f IntersectionStatusObject_free; +asn_struct_print_f IntersectionStatusObject_print; +asn_constr_check_f IntersectionStatusObject_constraint; +ber_type_decoder_f IntersectionStatusObject_decode_ber; +der_type_encoder_f IntersectionStatusObject_encode_der; +xer_type_decoder_f IntersectionStatusObject_decode_xer; +xer_type_encoder_f IntersectionStatusObject_encode_xer; +oer_type_decoder_f IntersectionStatusObject_decode_oer; +oer_type_encoder_f IntersectionStatusObject_encode_oer; +per_type_decoder_f IntersectionStatusObject_decode_uper; +per_type_encoder_f IntersectionStatusObject_encode_uper; +per_type_decoder_f IntersectionStatusObject_decode_aper; +per_type_encoder_f IntersectionStatusObject_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStatusObject_H_ */ +#include diff --git a/vcits/cpm/Iso3833VehicleType.h b/vcits/cpm/Iso3833VehicleType.h new file mode 100644 index 0000000..b6a59a1 --- /dev/null +++ b/vcits/cpm/Iso3833VehicleType.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Iso3833VehicleType_H_ +#define _Iso3833VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Iso3833VehicleType { + Iso3833VehicleType_passengerCar = 0, + Iso3833VehicleType_saloon = 1, + Iso3833VehicleType_convertibleSaloon = 2, + Iso3833VehicleType_pullmanSaloon = 3, + Iso3833VehicleType_stationWagon = 4, + Iso3833VehicleType_truckStationWagon = 5, + Iso3833VehicleType_coupe = 6, + Iso3833VehicleType_convertible = 7, + Iso3833VehicleType_multipurposePassengerCar = 8, + Iso3833VehicleType_forwardControlPassengerCar = 9, + Iso3833VehicleType_specialPassengerCar = 10, + Iso3833VehicleType_bus = 11, + Iso3833VehicleType_minibus = 12, + Iso3833VehicleType_urbanBus = 13, + Iso3833VehicleType_interurbanCoach = 14, + Iso3833VehicleType_longDistanceCoach = 15, + Iso3833VehicleType_articulatedBus = 16, + Iso3833VehicleType_trolleyBus = 17, + Iso3833VehicleType_specialBus = 18, + Iso3833VehicleType_commercialVehicle = 19, + Iso3833VehicleType_specialCommercialVehicle = 20, + Iso3833VehicleType_specialVehicle = 21, + Iso3833VehicleType_trailingTowingVehicle = 22, + Iso3833VehicleType_semiTrailerTowingVehicle = 23, + Iso3833VehicleType_trailer = 24, + Iso3833VehicleType_busTrailer = 25, + Iso3833VehicleType_generalPurposeTrailer = 26, + Iso3833VehicleType_caravan = 27, + Iso3833VehicleType_specialTrailer = 28, + Iso3833VehicleType_semiTrailer = 29, + Iso3833VehicleType_busSemiTrailer = 30, + Iso3833VehicleType_generalPurposeSemiTrailer = 31, + Iso3833VehicleType_specialSemiTrailer = 32, + Iso3833VehicleType_roadTrain = 33, + Iso3833VehicleType_passengerRoadTrain = 34, + Iso3833VehicleType_articulatedRoadTrain = 35, + Iso3833VehicleType_doubleRoadTrain = 36, + Iso3833VehicleType_compositeRoadTrain = 37, + Iso3833VehicleType_specialRoadTrain = 38, + Iso3833VehicleType_moped = 39, + Iso3833VehicleType_motorCycle = 40 +} e_Iso3833VehicleType; + +/* Iso3833VehicleType */ +typedef long Iso3833VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType; +asn_struct_free_f Iso3833VehicleType_free; +asn_struct_print_f Iso3833VehicleType_print; +asn_constr_check_f Iso3833VehicleType_constraint; +ber_type_decoder_f Iso3833VehicleType_decode_ber; +der_type_encoder_f Iso3833VehicleType_encode_der; +xer_type_decoder_f Iso3833VehicleType_decode_xer; +xer_type_encoder_f Iso3833VehicleType_encode_xer; +oer_type_decoder_f Iso3833VehicleType_decode_oer; +oer_type_encoder_f Iso3833VehicleType_encode_oer; +per_type_decoder_f Iso3833VehicleType_decode_uper; +per_type_encoder_f Iso3833VehicleType_encode_uper; +per_type_decoder_f Iso3833VehicleType_decode_aper; +per_type_encoder_f Iso3833VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Iso3833VehicleType_H_ */ +#include diff --git a/vcits/cpm/ItineraryPath.h b/vcits/cpm/ItineraryPath.h new file mode 100644 index 0000000..8bb5cd7 --- /dev/null +++ b/vcits/cpm/ItineraryPath.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ItineraryPath_H_ +#define _ItineraryPath_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* ItineraryPath */ +typedef struct ItineraryPath { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItineraryPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItineraryPath; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItineraryPath_H_ */ +#include diff --git a/vcits/cpm/ItsPduHeader.h b/vcits/cpm/ItsPduHeader.h new file mode 100644 index 0000000..a323670 --- /dev/null +++ b/vcits/cpm/ItsPduHeader.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ItsPduHeader_H_ +#define _ItsPduHeader_H_ + + +#include + +/* Including external dependencies */ +#include +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ItsPduHeader__messageID { + ItsPduHeader__messageID_denm = 1, + ItsPduHeader__messageID_cam = 2, + ItsPduHeader__messageID_poi = 3, + ItsPduHeader__messageID_spatem = 4, + ItsPduHeader__messageID_mapem = 5, + ItsPduHeader__messageID_ivim = 6, + ItsPduHeader__messageID_ev_rsr = 7, + ItsPduHeader__messageID_tistpgtransaction = 8, + ItsPduHeader__messageID_srem = 9, + ItsPduHeader__messageID_ssem = 10, + ItsPduHeader__messageID_evcsn = 11, + ItsPduHeader__messageID_saem = 12, + ItsPduHeader__messageID_rtcmem = 13 +} e_ItsPduHeader__messageID; + +/* ItsPduHeader */ +typedef struct ItsPduHeader { + long protocolVersion; + long messageID; + StationID_t stationID; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsPduHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsPduHeader; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsPduHeader_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsPduHeader_H_ */ +#include diff --git a/vcits/cpm/ItsStationPosition.h b/vcits/cpm/ItsStationPosition.h new file mode 100644 index 0000000..d1f2d0c --- /dev/null +++ b/vcits/cpm/ItsStationPosition.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ItsStationPosition_H_ +#define _ItsStationPosition_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "LaneID.h" +#include "TimeReference.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeOffsetPointXY; + +/* ItsStationPosition */ +typedef struct ItsStationPosition { + StationID_t stationID; + LaneID_t *laneID; /* OPTIONAL */ + struct NodeOffsetPointXY *nodeXY; /* OPTIONAL */ + TimeReference_t *timeReference; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsStationPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsStationPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsStationPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsStationPosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsStationPosition_H_ */ +#include diff --git a/vcits/cpm/ItsStationPositionList.h b/vcits/cpm/ItsStationPositionList.h new file mode 100644 index 0000000..d2bb6cc --- /dev/null +++ b/vcits/cpm/ItsStationPositionList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ItsStationPositionList_H_ +#define _ItsStationPositionList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ItsStationPosition; + +/* ItsStationPositionList */ +typedef struct ItsStationPositionList { + A_SEQUENCE_OF(struct ItsStationPosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsStationPositionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsStationPositionList; +extern asn_SET_OF_specifics_t asn_SPC_ItsStationPositionList_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsStationPositionList_1[1]; +extern asn_per_constraints_t asn_PER_type_ItsStationPositionList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsStationPositionList_H_ */ +#include diff --git a/vcits/cpm/LaneAttributes-Barrier.h b/vcits/cpm/LaneAttributes-Barrier.h new file mode 100644 index 0000000..380932e --- /dev/null +++ b/vcits/cpm/LaneAttributes-Barrier.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneAttributes_Barrier_H_ +#define _LaneAttributes_Barrier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Barrier { + LaneAttributes_Barrier_median_RevocableLane = 0, + LaneAttributes_Barrier_median = 1, + LaneAttributes_Barrier_whiteLineHashing = 2, + LaneAttributes_Barrier_stripedLines = 3, + LaneAttributes_Barrier_doubleStripedLines = 4, + LaneAttributes_Barrier_trafficCones = 5, + LaneAttributes_Barrier_constructionBarrier = 6, + LaneAttributes_Barrier_trafficChannels = 7, + LaneAttributes_Barrier_lowCurbs = 8, + LaneAttributes_Barrier_highCurbs = 9 +} e_LaneAttributes_Barrier; + +/* LaneAttributes-Barrier */ +typedef BIT_STRING_t LaneAttributes_Barrier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier; +asn_struct_free_f LaneAttributes_Barrier_free; +asn_struct_print_f LaneAttributes_Barrier_print; +asn_constr_check_f LaneAttributes_Barrier_constraint; +ber_type_decoder_f LaneAttributes_Barrier_decode_ber; +der_type_encoder_f LaneAttributes_Barrier_encode_der; +xer_type_decoder_f LaneAttributes_Barrier_decode_xer; +xer_type_encoder_f LaneAttributes_Barrier_encode_xer; +oer_type_decoder_f LaneAttributes_Barrier_decode_oer; +oer_type_encoder_f LaneAttributes_Barrier_encode_oer; +per_type_decoder_f LaneAttributes_Barrier_decode_uper; +per_type_encoder_f LaneAttributes_Barrier_encode_uper; +per_type_decoder_f LaneAttributes_Barrier_decode_aper; +per_type_encoder_f LaneAttributes_Barrier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Barrier_H_ */ +#include diff --git a/vcits/cpm/LaneAttributes-Bike.h b/vcits/cpm/LaneAttributes-Bike.h new file mode 100644 index 0000000..b6abe65 --- /dev/null +++ b/vcits/cpm/LaneAttributes-Bike.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneAttributes_Bike_H_ +#define _LaneAttributes_Bike_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Bike { + LaneAttributes_Bike_bikeRevocableLane = 0, + LaneAttributes_Bike_pedestrianUseAllowed = 1, + LaneAttributes_Bike_isBikeFlyOverLane = 2, + LaneAttributes_Bike_fixedCycleTime = 3, + LaneAttributes_Bike_biDirectionalCycleTimes = 4, + LaneAttributes_Bike_isolatedByBarrier = 5, + LaneAttributes_Bike_unsignalizedSegmentsPresent = 6 +} e_LaneAttributes_Bike; + +/* LaneAttributes-Bike */ +typedef BIT_STRING_t LaneAttributes_Bike_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike; +asn_struct_free_f LaneAttributes_Bike_free; +asn_struct_print_f LaneAttributes_Bike_print; +asn_constr_check_f LaneAttributes_Bike_constraint; +ber_type_decoder_f LaneAttributes_Bike_decode_ber; +der_type_encoder_f LaneAttributes_Bike_encode_der; +xer_type_decoder_f LaneAttributes_Bike_decode_xer; +xer_type_encoder_f LaneAttributes_Bike_encode_xer; +oer_type_decoder_f LaneAttributes_Bike_decode_oer; +oer_type_encoder_f LaneAttributes_Bike_encode_oer; +per_type_decoder_f LaneAttributes_Bike_decode_uper; +per_type_encoder_f LaneAttributes_Bike_encode_uper; +per_type_decoder_f LaneAttributes_Bike_decode_aper; +per_type_encoder_f LaneAttributes_Bike_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Bike_H_ */ +#include diff --git a/vcits/cpm/LaneAttributes-Crosswalk.h b/vcits/cpm/LaneAttributes-Crosswalk.h new file mode 100644 index 0000000..8e9c93b --- /dev/null +++ b/vcits/cpm/LaneAttributes-Crosswalk.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneAttributes_Crosswalk_H_ +#define _LaneAttributes_Crosswalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Crosswalk { + LaneAttributes_Crosswalk_crosswalkRevocableLane = 0, + LaneAttributes_Crosswalk_bicyleUseAllowed = 1, + LaneAttributes_Crosswalk_isXwalkFlyOverLane = 2, + LaneAttributes_Crosswalk_fixedCycleTime = 3, + LaneAttributes_Crosswalk_biDirectionalCycleTimes = 4, + LaneAttributes_Crosswalk_hasPushToWalkButton = 5, + LaneAttributes_Crosswalk_audioSupport = 6, + LaneAttributes_Crosswalk_rfSignalRequestPresent = 7, + LaneAttributes_Crosswalk_unsignalizedSegmentsPresent = 8 +} e_LaneAttributes_Crosswalk; + +/* LaneAttributes-Crosswalk */ +typedef BIT_STRING_t LaneAttributes_Crosswalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk; +asn_struct_free_f LaneAttributes_Crosswalk_free; +asn_struct_print_f LaneAttributes_Crosswalk_print; +asn_constr_check_f LaneAttributes_Crosswalk_constraint; +ber_type_decoder_f LaneAttributes_Crosswalk_decode_ber; +der_type_encoder_f LaneAttributes_Crosswalk_encode_der; +xer_type_decoder_f LaneAttributes_Crosswalk_decode_xer; +xer_type_encoder_f LaneAttributes_Crosswalk_encode_xer; +oer_type_decoder_f LaneAttributes_Crosswalk_decode_oer; +oer_type_encoder_f LaneAttributes_Crosswalk_encode_oer; +per_type_decoder_f LaneAttributes_Crosswalk_decode_uper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_uper; +per_type_decoder_f LaneAttributes_Crosswalk_decode_aper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Crosswalk_H_ */ +#include diff --git a/vcits/cpm/LaneAttributes-Parking.h b/vcits/cpm/LaneAttributes-Parking.h new file mode 100644 index 0000000..38b1af2 --- /dev/null +++ b/vcits/cpm/LaneAttributes-Parking.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneAttributes_Parking_H_ +#define _LaneAttributes_Parking_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Parking { + LaneAttributes_Parking_parkingRevocableLane = 0, + LaneAttributes_Parking_parallelParkingInUse = 1, + LaneAttributes_Parking_headInParkingInUse = 2, + LaneAttributes_Parking_doNotParkZone = 3, + LaneAttributes_Parking_parkingForBusUse = 4, + LaneAttributes_Parking_parkingForTaxiUse = 5, + LaneAttributes_Parking_noPublicParkingUse = 6 +} e_LaneAttributes_Parking; + +/* LaneAttributes-Parking */ +typedef BIT_STRING_t LaneAttributes_Parking_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking; +asn_struct_free_f LaneAttributes_Parking_free; +asn_struct_print_f LaneAttributes_Parking_print; +asn_constr_check_f LaneAttributes_Parking_constraint; +ber_type_decoder_f LaneAttributes_Parking_decode_ber; +der_type_encoder_f LaneAttributes_Parking_encode_der; +xer_type_decoder_f LaneAttributes_Parking_decode_xer; +xer_type_encoder_f LaneAttributes_Parking_encode_xer; +oer_type_decoder_f LaneAttributes_Parking_decode_oer; +oer_type_encoder_f LaneAttributes_Parking_encode_oer; +per_type_decoder_f LaneAttributes_Parking_decode_uper; +per_type_encoder_f LaneAttributes_Parking_encode_uper; +per_type_decoder_f LaneAttributes_Parking_decode_aper; +per_type_encoder_f LaneAttributes_Parking_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Parking_H_ */ +#include diff --git a/vcits/cpm/LaneAttributes-Sidewalk.h b/vcits/cpm/LaneAttributes-Sidewalk.h new file mode 100644 index 0000000..5efed86 --- /dev/null +++ b/vcits/cpm/LaneAttributes-Sidewalk.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneAttributes_Sidewalk_H_ +#define _LaneAttributes_Sidewalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Sidewalk { + LaneAttributes_Sidewalk_sidewalk_RevocableLane = 0, + LaneAttributes_Sidewalk_bicyleUseAllowed = 1, + LaneAttributes_Sidewalk_isSidewalkFlyOverLane = 2, + LaneAttributes_Sidewalk_walkBikes = 3 +} e_LaneAttributes_Sidewalk; + +/* LaneAttributes-Sidewalk */ +typedef BIT_STRING_t LaneAttributes_Sidewalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk; +asn_struct_free_f LaneAttributes_Sidewalk_free; +asn_struct_print_f LaneAttributes_Sidewalk_print; +asn_constr_check_f LaneAttributes_Sidewalk_constraint; +ber_type_decoder_f LaneAttributes_Sidewalk_decode_ber; +der_type_encoder_f LaneAttributes_Sidewalk_encode_der; +xer_type_decoder_f LaneAttributes_Sidewalk_decode_xer; +xer_type_encoder_f LaneAttributes_Sidewalk_encode_xer; +oer_type_decoder_f LaneAttributes_Sidewalk_decode_oer; +oer_type_encoder_f LaneAttributes_Sidewalk_encode_oer; +per_type_decoder_f LaneAttributes_Sidewalk_decode_uper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_uper; +per_type_decoder_f LaneAttributes_Sidewalk_decode_aper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Sidewalk_H_ */ +#include diff --git a/vcits/cpm/LaneAttributes-Striping.h b/vcits/cpm/LaneAttributes-Striping.h new file mode 100644 index 0000000..1b58f6d --- /dev/null +++ b/vcits/cpm/LaneAttributes-Striping.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneAttributes_Striping_H_ +#define _LaneAttributes_Striping_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Striping { + LaneAttributes_Striping_stripeToConnectingLanesRevocableLane = 0, + LaneAttributes_Striping_stripeDrawOnLeft = 1, + LaneAttributes_Striping_stripeDrawOnRight = 2, + LaneAttributes_Striping_stripeToConnectingLanesLeft = 3, + LaneAttributes_Striping_stripeToConnectingLanesRight = 4, + LaneAttributes_Striping_stripeToConnectingLanesAhead = 5 +} e_LaneAttributes_Striping; + +/* LaneAttributes-Striping */ +typedef BIT_STRING_t LaneAttributes_Striping_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping; +asn_struct_free_f LaneAttributes_Striping_free; +asn_struct_print_f LaneAttributes_Striping_print; +asn_constr_check_f LaneAttributes_Striping_constraint; +ber_type_decoder_f LaneAttributes_Striping_decode_ber; +der_type_encoder_f LaneAttributes_Striping_encode_der; +xer_type_decoder_f LaneAttributes_Striping_decode_xer; +xer_type_encoder_f LaneAttributes_Striping_encode_xer; +oer_type_decoder_f LaneAttributes_Striping_decode_oer; +oer_type_encoder_f LaneAttributes_Striping_encode_oer; +per_type_decoder_f LaneAttributes_Striping_decode_uper; +per_type_encoder_f LaneAttributes_Striping_encode_uper; +per_type_decoder_f LaneAttributes_Striping_decode_aper; +per_type_encoder_f LaneAttributes_Striping_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Striping_H_ */ +#include diff --git a/vcits/cpm/LaneAttributes-TrackedVehicle.h b/vcits/cpm/LaneAttributes-TrackedVehicle.h new file mode 100644 index 0000000..024141e --- /dev/null +++ b/vcits/cpm/LaneAttributes-TrackedVehicle.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneAttributes_TrackedVehicle_H_ +#define _LaneAttributes_TrackedVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_TrackedVehicle { + LaneAttributes_TrackedVehicle_spec_RevocableLane = 0, + LaneAttributes_TrackedVehicle_spec_commuterRailRoadTrack = 1, + LaneAttributes_TrackedVehicle_spec_lightRailRoadTrack = 2, + LaneAttributes_TrackedVehicle_spec_heavyRailRoadTrack = 3, + LaneAttributes_TrackedVehicle_spec_otherRailType = 4 +} e_LaneAttributes_TrackedVehicle; + +/* LaneAttributes-TrackedVehicle */ +typedef BIT_STRING_t LaneAttributes_TrackedVehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle; +asn_struct_free_f LaneAttributes_TrackedVehicle_free; +asn_struct_print_f LaneAttributes_TrackedVehicle_print; +asn_constr_check_f LaneAttributes_TrackedVehicle_constraint; +ber_type_decoder_f LaneAttributes_TrackedVehicle_decode_ber; +der_type_encoder_f LaneAttributes_TrackedVehicle_encode_der; +xer_type_decoder_f LaneAttributes_TrackedVehicle_decode_xer; +xer_type_encoder_f LaneAttributes_TrackedVehicle_encode_xer; +oer_type_decoder_f LaneAttributes_TrackedVehicle_decode_oer; +oer_type_encoder_f LaneAttributes_TrackedVehicle_encode_oer; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_uper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_uper; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_aper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_TrackedVehicle_H_ */ +#include diff --git a/vcits/cpm/LaneAttributes-Vehicle.h b/vcits/cpm/LaneAttributes-Vehicle.h new file mode 100644 index 0000000..89fd616 --- /dev/null +++ b/vcits/cpm/LaneAttributes-Vehicle.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneAttributes_Vehicle_H_ +#define _LaneAttributes_Vehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Vehicle { + LaneAttributes_Vehicle_isVehicleRevocableLane = 0, + LaneAttributes_Vehicle_isVehicleFlyOverLane = 1, + LaneAttributes_Vehicle_hovLaneUseOnly = 2, + LaneAttributes_Vehicle_restrictedToBusUse = 3, + LaneAttributes_Vehicle_restrictedToTaxiUse = 4, + LaneAttributes_Vehicle_restrictedFromPublicUse = 5, + LaneAttributes_Vehicle_hasIRbeaconCoverage = 6, + LaneAttributes_Vehicle_permissionOnRequest = 7 +} e_LaneAttributes_Vehicle; + +/* LaneAttributes-Vehicle */ +typedef BIT_STRING_t LaneAttributes_Vehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle; +asn_struct_free_f LaneAttributes_Vehicle_free; +asn_struct_print_f LaneAttributes_Vehicle_print; +asn_constr_check_f LaneAttributes_Vehicle_constraint; +ber_type_decoder_f LaneAttributes_Vehicle_decode_ber; +der_type_encoder_f LaneAttributes_Vehicle_encode_der; +xer_type_decoder_f LaneAttributes_Vehicle_decode_xer; +xer_type_encoder_f LaneAttributes_Vehicle_encode_xer; +oer_type_decoder_f LaneAttributes_Vehicle_decode_oer; +oer_type_encoder_f LaneAttributes_Vehicle_encode_oer; +per_type_decoder_f LaneAttributes_Vehicle_decode_uper; +per_type_encoder_f LaneAttributes_Vehicle_encode_uper; +per_type_decoder_f LaneAttributes_Vehicle_decode_aper; +per_type_encoder_f LaneAttributes_Vehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Vehicle_H_ */ +#include diff --git a/vcits/cpm/LaneAttributes-addGrpC.h b/vcits/cpm/LaneAttributes-addGrpC.h new file mode 100644 index 0000000..01a43e6 --- /dev/null +++ b/vcits/cpm/LaneAttributes-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneAttributes_addGrpC_H_ +#define _LaneAttributes_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleHeight.h" +#include "VehicleMass.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneAttributes-addGrpC */ +typedef struct LaneAttributes_addGrpC { + VehicleHeight_t *maxVehicleHeight; /* OPTIONAL */ + VehicleMass_t *maxVehicleWeight; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_addGrpC_H_ */ +#include diff --git a/vcits/cpm/LaneAttributes.h b/vcits/cpm/LaneAttributes.h new file mode 100644 index 0000000..7c3c1e5 --- /dev/null +++ b/vcits/cpm/LaneAttributes.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneAttributes_H_ +#define _LaneAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "LaneDirection.h" +#include "LaneSharing.h" +#include "LaneTypeAttributes.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_LaneAttributes; + +/* LaneAttributes */ +typedef struct LaneAttributes { + LaneDirection_t directionalUse; + LaneSharing_t sharedWith; + LaneTypeAttributes_t laneType; + struct Reg_LaneAttributes *regional; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_H_ */ +#include diff --git a/vcits/cpm/LaneConnectionID.h b/vcits/cpm/LaneConnectionID.h new file mode 100644 index 0000000..9ee9377 --- /dev/null +++ b/vcits/cpm/LaneConnectionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneConnectionID_H_ +#define _LaneConnectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneConnectionID */ +typedef long LaneConnectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneConnectionID; +asn_struct_free_f LaneConnectionID_free; +asn_struct_print_f LaneConnectionID_print; +asn_constr_check_f LaneConnectionID_constraint; +ber_type_decoder_f LaneConnectionID_decode_ber; +der_type_encoder_f LaneConnectionID_encode_der; +xer_type_decoder_f LaneConnectionID_decode_xer; +xer_type_encoder_f LaneConnectionID_encode_xer; +oer_type_decoder_f LaneConnectionID_decode_oer; +oer_type_encoder_f LaneConnectionID_encode_oer; +per_type_decoder_f LaneConnectionID_decode_uper; +per_type_encoder_f LaneConnectionID_encode_uper; +per_type_decoder_f LaneConnectionID_decode_aper; +per_type_encoder_f LaneConnectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneConnectionID_H_ */ +#include diff --git a/vcits/cpm/LaneDataAttribute.h b/vcits/cpm/LaneDataAttribute.h new file mode 100644 index 0000000..c6e1e2f --- /dev/null +++ b/vcits/cpm/LaneDataAttribute.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneDataAttribute_H_ +#define _LaneDataAttribute_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaAngle.h" +#include "RoadwayCrownAngle.h" +#include "MergeDivergeNodeAngle.h" +#include "SpeedLimitList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDataAttribute_PR { + LaneDataAttribute_PR_NOTHING, /* No components present */ + LaneDataAttribute_PR_pathEndPointAngle, + LaneDataAttribute_PR_laneCrownPointCenter, + LaneDataAttribute_PR_laneCrownPointLeft, + LaneDataAttribute_PR_laneCrownPointRight, + LaneDataAttribute_PR_laneAngle, + LaneDataAttribute_PR_speedLimits, + LaneDataAttribute_PR_regional + /* Extensions may appear below */ + +} LaneDataAttribute_PR; + +/* Forward declarations */ +struct Reg_LaneDataAttribute; + +/* LaneDataAttribute */ +typedef struct LaneDataAttribute { + LaneDataAttribute_PR present; + union LaneDataAttribute_u { + DeltaAngle_t pathEndPointAngle; + RoadwayCrownAngle_t laneCrownPointCenter; + RoadwayCrownAngle_t laneCrownPointLeft; + RoadwayCrownAngle_t laneCrownPointRight; + MergeDivergeNodeAngle_t laneAngle; + SpeedLimitList_t speedLimits; + struct LaneDataAttribute__regional { + A_SEQUENCE_OF(struct Reg_LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute; +extern asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[7]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttribute_H_ */ +#include diff --git a/vcits/cpm/LaneDataAttributeList.h b/vcits/cpm/LaneDataAttributeList.h new file mode 100644 index 0000000..4c41f2d --- /dev/null +++ b/vcits/cpm/LaneDataAttributeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneDataAttributeList_H_ +#define _LaneDataAttributeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LaneDataAttribute; + +/* LaneDataAttributeList */ +typedef struct LaneDataAttributeList { + A_SEQUENCE_OF(struct LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttributeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList; +extern asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttributeList_H_ */ +#include diff --git a/vcits/cpm/LaneDirection.h b/vcits/cpm/LaneDirection.h new file mode 100644 index 0000000..6a8f7e4 --- /dev/null +++ b/vcits/cpm/LaneDirection.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneDirection_H_ +#define _LaneDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDirection { + LaneDirection_ingressPath = 0, + LaneDirection_egressPath = 1 +} e_LaneDirection; + +/* LaneDirection */ +typedef BIT_STRING_t LaneDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneDirection; +asn_struct_free_f LaneDirection_free; +asn_struct_print_f LaneDirection_print; +asn_constr_check_f LaneDirection_constraint; +ber_type_decoder_f LaneDirection_decode_ber; +der_type_encoder_f LaneDirection_encode_der; +xer_type_decoder_f LaneDirection_decode_xer; +xer_type_encoder_f LaneDirection_encode_xer; +oer_type_decoder_f LaneDirection_decode_oer; +oer_type_encoder_f LaneDirection_encode_oer; +per_type_decoder_f LaneDirection_decode_uper; +per_type_encoder_f LaneDirection_encode_uper; +per_type_decoder_f LaneDirection_decode_aper; +per_type_encoder_f LaneDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDirection_H_ */ +#include diff --git a/vcits/cpm/LaneID.h b/vcits/cpm/LaneID.h new file mode 100644 index 0000000..d1685d9 --- /dev/null +++ b/vcits/cpm/LaneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneID_H_ +#define _LaneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneID */ +typedef long LaneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneID; +asn_struct_free_f LaneID_free; +asn_struct_print_f LaneID_print; +asn_constr_check_f LaneID_constraint; +ber_type_decoder_f LaneID_decode_ber; +der_type_encoder_f LaneID_encode_der; +xer_type_decoder_f LaneID_decode_xer; +xer_type_encoder_f LaneID_encode_xer; +oer_type_decoder_f LaneID_decode_oer; +oer_type_encoder_f LaneID_encode_oer; +per_type_decoder_f LaneID_decode_uper; +per_type_encoder_f LaneID_encode_uper; +per_type_decoder_f LaneID_decode_aper; +per_type_encoder_f LaneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneID_H_ */ +#include diff --git a/vcits/cpm/LaneList.h b/vcits/cpm/LaneList.h new file mode 100644 index 0000000..6896299 --- /dev/null +++ b/vcits/cpm/LaneList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneList_H_ +#define _LaneList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* LaneList */ +typedef struct LaneList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneList; +extern asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneList_H_ */ +#include diff --git a/vcits/cpm/LanePosition.h b/vcits/cpm/LanePosition.h new file mode 100644 index 0000000..74e467a --- /dev/null +++ b/vcits/cpm/LanePosition.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LanePosition_H_ +#define _LanePosition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LanePosition { + LanePosition_offTheRoad = -1, + LanePosition_innerHardShoulder = 0, + LanePosition_innermostDrivingLane = 1, + LanePosition_secondLaneFromInside = 2, + LanePosition_outerHardShoulder = 14 +} e_LanePosition; + +/* LanePosition */ +typedef long LanePosition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LanePosition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LanePosition; +asn_struct_free_f LanePosition_free; +asn_struct_print_f LanePosition_print; +asn_constr_check_f LanePosition_constraint; +ber_type_decoder_f LanePosition_decode_ber; +der_type_encoder_f LanePosition_encode_der; +xer_type_decoder_f LanePosition_decode_xer; +xer_type_encoder_f LanePosition_encode_xer; +oer_type_decoder_f LanePosition_decode_oer; +oer_type_encoder_f LanePosition_encode_oer; +per_type_decoder_f LanePosition_decode_uper; +per_type_encoder_f LanePosition_encode_uper; +per_type_decoder_f LanePosition_decode_aper; +per_type_encoder_f LanePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LanePosition_H_ */ +#include diff --git a/vcits/cpm/LaneSharing.h b/vcits/cpm/LaneSharing.h new file mode 100644 index 0000000..8232d35 --- /dev/null +++ b/vcits/cpm/LaneSharing.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneSharing_H_ +#define _LaneSharing_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneSharing { + LaneSharing_overlappingLaneDescriptionProvided = 0, + LaneSharing_multipleLanesTreatedAsOneLane = 1, + LaneSharing_otherNonMotorizedTrafficTypes = 2, + LaneSharing_individualMotorizedVehicleTraffic = 3, + LaneSharing_busVehicleTraffic = 4, + LaneSharing_taxiVehicleTraffic = 5, + LaneSharing_pedestriansTraffic = 6, + LaneSharing_cyclistVehicleTraffic = 7, + LaneSharing_trackedVehicleTraffic = 8, + LaneSharing_pedestrianTraffic = 9 +} e_LaneSharing; + +/* LaneSharing */ +typedef BIT_STRING_t LaneSharing_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneSharing_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneSharing; +asn_struct_free_f LaneSharing_free; +asn_struct_print_f LaneSharing_print; +asn_constr_check_f LaneSharing_constraint; +ber_type_decoder_f LaneSharing_decode_ber; +der_type_encoder_f LaneSharing_encode_der; +xer_type_decoder_f LaneSharing_decode_xer; +xer_type_encoder_f LaneSharing_encode_xer; +oer_type_decoder_f LaneSharing_decode_oer; +oer_type_encoder_f LaneSharing_encode_oer; +per_type_decoder_f LaneSharing_decode_uper; +per_type_encoder_f LaneSharing_encode_uper; +per_type_decoder_f LaneSharing_decode_aper; +per_type_encoder_f LaneSharing_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneSharing_H_ */ +#include diff --git a/vcits/cpm/LaneTypeAttributes.h b/vcits/cpm/LaneTypeAttributes.h new file mode 100644 index 0000000..e03d696 --- /dev/null +++ b/vcits/cpm/LaneTypeAttributes.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneTypeAttributes_H_ +#define _LaneTypeAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "LaneAttributes-Vehicle.h" +#include "LaneAttributes-Crosswalk.h" +#include "LaneAttributes-Bike.h" +#include "LaneAttributes-Sidewalk.h" +#include "LaneAttributes-Barrier.h" +#include "LaneAttributes-Striping.h" +#include "LaneAttributes-TrackedVehicle.h" +#include "LaneAttributes-Parking.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneTypeAttributes_PR { + LaneTypeAttributes_PR_NOTHING, /* No components present */ + LaneTypeAttributes_PR_vehicle, + LaneTypeAttributes_PR_crosswalk, + LaneTypeAttributes_PR_bikeLane, + LaneTypeAttributes_PR_sidewalk, + LaneTypeAttributes_PR_median, + LaneTypeAttributes_PR_striping, + LaneTypeAttributes_PR_trackedVehicle, + LaneTypeAttributes_PR_parking + /* Extensions may appear below */ + +} LaneTypeAttributes_PR; + +/* LaneTypeAttributes */ +typedef struct LaneTypeAttributes { + LaneTypeAttributes_PR present; + union LaneTypeAttributes_u { + LaneAttributes_Vehicle_t vehicle; + LaneAttributes_Crosswalk_t crosswalk; + LaneAttributes_Bike_t bikeLane; + LaneAttributes_Sidewalk_t sidewalk; + LaneAttributes_Barrier_t median; + LaneAttributes_Striping_t striping; + LaneAttributes_TrackedVehicle_t trackedVehicle; + LaneAttributes_Parking_t parking; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneTypeAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes; +extern asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[8]; +extern asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneTypeAttributes_H_ */ +#include diff --git a/vcits/cpm/LaneWidth.h b/vcits/cpm/LaneWidth.h new file mode 100644 index 0000000..3013ff8 --- /dev/null +++ b/vcits/cpm/LaneWidth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LaneWidth_H_ +#define _LaneWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneWidth */ +typedef long LaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneWidth; +asn_struct_free_f LaneWidth_free; +asn_struct_print_f LaneWidth_print; +asn_constr_check_f LaneWidth_constraint; +ber_type_decoder_f LaneWidth_decode_ber; +der_type_encoder_f LaneWidth_encode_der; +xer_type_decoder_f LaneWidth_decode_xer; +xer_type_encoder_f LaneWidth_encode_xer; +oer_type_decoder_f LaneWidth_decode_oer; +oer_type_encoder_f LaneWidth_encode_oer; +per_type_decoder_f LaneWidth_decode_uper; +per_type_encoder_f LaneWidth_encode_uper; +per_type_decoder_f LaneWidth_decode_aper; +per_type_encoder_f LaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneWidth_H_ */ +#include diff --git a/vcits/cpm/LateralAcceleration.h b/vcits/cpm/LateralAcceleration.h new file mode 100644 index 0000000..6d4fad7 --- /dev/null +++ b/vcits/cpm/LateralAcceleration.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LateralAcceleration_H_ +#define _LateralAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LateralAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LateralAcceleration */ +typedef struct LateralAcceleration { + LateralAccelerationValue_t lateralAccelerationValue; + AccelerationConfidence_t lateralAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LateralAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LateralAcceleration; +extern asn_SEQUENCE_specifics_t asn_SPC_LateralAcceleration_specs_1; +extern asn_TYPE_member_t asn_MBR_LateralAcceleration_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAcceleration_H_ */ +#include diff --git a/vcits/cpm/LateralAccelerationValue.h b/vcits/cpm/LateralAccelerationValue.h new file mode 100644 index 0000000..6a2ec08 --- /dev/null +++ b/vcits/cpm/LateralAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LateralAccelerationValue_H_ +#define _LateralAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LateralAccelerationValue { + LateralAccelerationValue_pointOneMeterPerSecSquaredToRight = -1, + LateralAccelerationValue_pointOneMeterPerSecSquaredToLeft = 1, + LateralAccelerationValue_unavailable = 161 +} e_LateralAccelerationValue; + +/* LateralAccelerationValue */ +typedef long LateralAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue; +asn_struct_free_f LateralAccelerationValue_free; +asn_struct_print_f LateralAccelerationValue_print; +asn_constr_check_f LateralAccelerationValue_constraint; +ber_type_decoder_f LateralAccelerationValue_decode_ber; +der_type_encoder_f LateralAccelerationValue_encode_der; +xer_type_decoder_f LateralAccelerationValue_decode_xer; +xer_type_encoder_f LateralAccelerationValue_encode_xer; +oer_type_decoder_f LateralAccelerationValue_decode_oer; +oer_type_encoder_f LateralAccelerationValue_encode_oer; +per_type_decoder_f LateralAccelerationValue_decode_uper; +per_type_encoder_f LateralAccelerationValue_encode_uper; +per_type_decoder_f LateralAccelerationValue_decode_aper; +per_type_encoder_f LateralAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAccelerationValue_H_ */ +#include diff --git a/vcits/cpm/Latitude.h b/vcits/cpm/Latitude.h new file mode 100644 index 0000000..13556c6 --- /dev/null +++ b/vcits/cpm/Latitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Latitude_H_ +#define _Latitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Latitude { + Latitude_oneMicrodegreeNorth = 10, + Latitude_oneMicrodegreeSouth = -10, + Latitude_unavailable = 900000001 +} e_Latitude; + +/* Latitude */ +typedef long Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Latitude; +asn_struct_free_f Latitude_free; +asn_struct_print_f Latitude_print; +asn_constr_check_f Latitude_constraint; +ber_type_decoder_f Latitude_decode_ber; +der_type_encoder_f Latitude_encode_der; +xer_type_decoder_f Latitude_decode_xer; +xer_type_encoder_f Latitude_encode_xer; +oer_type_decoder_f Latitude_decode_oer; +oer_type_encoder_f Latitude_encode_oer; +per_type_decoder_f Latitude_decode_uper; +per_type_encoder_f Latitude_encode_uper; +per_type_decoder_f Latitude_decode_aper; +per_type_encoder_f Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Latitude_H_ */ +#include diff --git a/vcits/cpm/LayerID.h b/vcits/cpm/LayerID.h new file mode 100644 index 0000000..efee17d --- /dev/null +++ b/vcits/cpm/LayerID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LayerID_H_ +#define _LayerID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LayerID */ +typedef long LayerID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerID; +asn_struct_free_f LayerID_free; +asn_struct_print_f LayerID_print; +asn_constr_check_f LayerID_constraint; +ber_type_decoder_f LayerID_decode_ber; +der_type_encoder_f LayerID_encode_der; +xer_type_decoder_f LayerID_decode_xer; +xer_type_encoder_f LayerID_encode_xer; +oer_type_decoder_f LayerID_decode_oer; +oer_type_encoder_f LayerID_encode_oer; +per_type_decoder_f LayerID_decode_uper; +per_type_encoder_f LayerID_encode_uper; +per_type_decoder_f LayerID_decode_aper; +per_type_encoder_f LayerID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerID_H_ */ +#include diff --git a/vcits/cpm/LayerType.h b/vcits/cpm/LayerType.h new file mode 100644 index 0000000..df96016 --- /dev/null +++ b/vcits/cpm/LayerType.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LayerType_H_ +#define _LayerType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LayerType { + LayerType_none = 0, + LayerType_mixedContent = 1, + LayerType_generalMapData = 2, + LayerType_intersectionData = 3, + LayerType_curveData = 4, + LayerType_roadwaySectionData = 5, + LayerType_parkingAreaData = 6, + LayerType_sharedLaneData = 7 + /* + * Enumeration is extensible + */ +} e_LayerType; + +/* LayerType */ +typedef long LayerType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerType; +extern const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1; +asn_struct_free_f LayerType_free; +asn_struct_print_f LayerType_print; +asn_constr_check_f LayerType_constraint; +ber_type_decoder_f LayerType_decode_ber; +der_type_encoder_f LayerType_encode_der; +xer_type_decoder_f LayerType_decode_xer; +xer_type_encoder_f LayerType_encode_xer; +oer_type_decoder_f LayerType_decode_oer; +oer_type_encoder_f LayerType_encode_oer; +per_type_decoder_f LayerType_decode_uper; +per_type_encoder_f LayerType_encode_uper; +per_type_decoder_f LayerType_decode_aper; +per_type_encoder_f LayerType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerType_H_ */ +#include diff --git a/vcits/cpm/LightBarSirenInUse.h b/vcits/cpm/LightBarSirenInUse.h new file mode 100644 index 0000000..0d36a8f --- /dev/null +++ b/vcits/cpm/LightBarSirenInUse.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LightBarSirenInUse_H_ +#define _LightBarSirenInUse_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LightBarSirenInUse { + LightBarSirenInUse_lightBarActivated = 0, + LightBarSirenInUse_sirenActivated = 1 +} e_LightBarSirenInUse; + +/* LightBarSirenInUse */ +typedef BIT_STRING_t LightBarSirenInUse_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LightBarSirenInUse_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse; +asn_struct_free_f LightBarSirenInUse_free; +asn_struct_print_f LightBarSirenInUse_print; +asn_constr_check_f LightBarSirenInUse_constraint; +ber_type_decoder_f LightBarSirenInUse_decode_ber; +der_type_encoder_f LightBarSirenInUse_encode_der; +xer_type_decoder_f LightBarSirenInUse_decode_xer; +xer_type_encoder_f LightBarSirenInUse_encode_xer; +oer_type_decoder_f LightBarSirenInUse_decode_oer; +oer_type_encoder_f LightBarSirenInUse_encode_oer; +per_type_decoder_f LightBarSirenInUse_decode_uper; +per_type_encoder_f LightBarSirenInUse_encode_uper; +per_type_decoder_f LightBarSirenInUse_decode_aper; +per_type_encoder_f LightBarSirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LightBarSirenInUse_H_ */ +#include diff --git a/vcits/cpm/Longitude.h b/vcits/cpm/Longitude.h new file mode 100644 index 0000000..da5be44 --- /dev/null +++ b/vcits/cpm/Longitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Longitude_H_ +#define _Longitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Longitude { + Longitude_oneMicrodegreeEast = 10, + Longitude_oneMicrodegreeWest = -10, + Longitude_unavailable = 1800000001 +} e_Longitude; + +/* Longitude */ +typedef long Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Longitude; +asn_struct_free_f Longitude_free; +asn_struct_print_f Longitude_print; +asn_constr_check_f Longitude_constraint; +ber_type_decoder_f Longitude_decode_ber; +der_type_encoder_f Longitude_encode_der; +xer_type_decoder_f Longitude_decode_xer; +xer_type_encoder_f Longitude_encode_xer; +oer_type_decoder_f Longitude_decode_oer; +oer_type_encoder_f Longitude_encode_oer; +per_type_decoder_f Longitude_decode_uper; +per_type_encoder_f Longitude_encode_uper; +per_type_decoder_f Longitude_decode_aper; +per_type_encoder_f Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Longitude_H_ */ +#include diff --git a/vcits/cpm/LongitudinalAcceleration.h b/vcits/cpm/LongitudinalAcceleration.h new file mode 100644 index 0000000..e22c362 --- /dev/null +++ b/vcits/cpm/LongitudinalAcceleration.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LongitudinalAcceleration_H_ +#define _LongitudinalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LongitudinalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LongitudinalAcceleration */ +typedef struct LongitudinalAcceleration { + LongitudinalAccelerationValue_t longitudinalAccelerationValue; + AccelerationConfidence_t longitudinalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LongitudinalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration; +extern asn_SEQUENCE_specifics_t asn_SPC_LongitudinalAcceleration_specs_1; +extern asn_TYPE_member_t asn_MBR_LongitudinalAcceleration_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAcceleration_H_ */ +#include diff --git a/vcits/cpm/LongitudinalAccelerationValue.h b/vcits/cpm/LongitudinalAccelerationValue.h new file mode 100644 index 0000000..5701952 --- /dev/null +++ b/vcits/cpm/LongitudinalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LongitudinalAccelerationValue_H_ +#define _LongitudinalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LongitudinalAccelerationValue { + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredForward = 1, + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredBackward = -1, + LongitudinalAccelerationValue_unavailable = 161 +} e_LongitudinalAccelerationValue; + +/* LongitudinalAccelerationValue */ +typedef long LongitudinalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue; +asn_struct_free_f LongitudinalAccelerationValue_free; +asn_struct_print_f LongitudinalAccelerationValue_print; +asn_constr_check_f LongitudinalAccelerationValue_constraint; +ber_type_decoder_f LongitudinalAccelerationValue_decode_ber; +der_type_encoder_f LongitudinalAccelerationValue_encode_der; +xer_type_decoder_f LongitudinalAccelerationValue_decode_xer; +xer_type_encoder_f LongitudinalAccelerationValue_encode_xer; +oer_type_decoder_f LongitudinalAccelerationValue_decode_oer; +oer_type_encoder_f LongitudinalAccelerationValue_encode_oer; +per_type_decoder_f LongitudinalAccelerationValue_decode_uper; +per_type_encoder_f LongitudinalAccelerationValue_encode_uper; +per_type_decoder_f LongitudinalAccelerationValue_decode_aper; +per_type_encoder_f LongitudinalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAccelerationValue_H_ */ +#include diff --git a/vcits/cpm/LongitudinalLanePosition.h b/vcits/cpm/LongitudinalLanePosition.h new file mode 100644 index 0000000..3a6f045 --- /dev/null +++ b/vcits/cpm/LongitudinalLanePosition.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LongitudinalLanePosition_H_ +#define _LongitudinalLanePosition_H_ + + +#include + +/* Including external dependencies */ +#include "LongitudinalLanePositionValue.h" +#include "LongitudinalLanePositionConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LongitudinalLanePosition */ +typedef struct LongitudinalLanePosition { + LongitudinalLanePositionValue_t longitudinalLanePositionValue; + LongitudinalLanePositionConfidence_t longitudinalLanePositionConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LongitudinalLanePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalLanePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_LongitudinalLanePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_LongitudinalLanePosition_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalLanePosition_H_ */ +#include diff --git a/vcits/cpm/LongitudinalLanePositionConfidence.h b/vcits/cpm/LongitudinalLanePositionConfidence.h new file mode 100644 index 0000000..8905b2b --- /dev/null +++ b/vcits/cpm/LongitudinalLanePositionConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LongitudinalLanePositionConfidence_H_ +#define _LongitudinalLanePositionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LongitudinalLanePositionConfidence { + LongitudinalLanePositionConfidence_zeroPointZeroOneMeter = 1, + LongitudinalLanePositionConfidence_oneMeter = 100, + LongitudinalLanePositionConfidence_outOfRange = 101, + LongitudinalLanePositionConfidence_unavailable = 102 +} e_LongitudinalLanePositionConfidence; + +/* LongitudinalLanePositionConfidence */ +typedef long LongitudinalLanePositionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LongitudinalLanePositionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalLanePositionConfidence; +asn_struct_free_f LongitudinalLanePositionConfidence_free; +asn_struct_print_f LongitudinalLanePositionConfidence_print; +asn_constr_check_f LongitudinalLanePositionConfidence_constraint; +ber_type_decoder_f LongitudinalLanePositionConfidence_decode_ber; +der_type_encoder_f LongitudinalLanePositionConfidence_encode_der; +xer_type_decoder_f LongitudinalLanePositionConfidence_decode_xer; +xer_type_encoder_f LongitudinalLanePositionConfidence_encode_xer; +oer_type_decoder_f LongitudinalLanePositionConfidence_decode_oer; +oer_type_encoder_f LongitudinalLanePositionConfidence_encode_oer; +per_type_decoder_f LongitudinalLanePositionConfidence_decode_uper; +per_type_encoder_f LongitudinalLanePositionConfidence_encode_uper; +per_type_decoder_f LongitudinalLanePositionConfidence_decode_aper; +per_type_encoder_f LongitudinalLanePositionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalLanePositionConfidence_H_ */ +#include diff --git a/vcits/cpm/LongitudinalLanePositionValue.h b/vcits/cpm/LongitudinalLanePositionValue.h new file mode 100644 index 0000000..f444315 --- /dev/null +++ b/vcits/cpm/LongitudinalLanePositionValue.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LongitudinalLanePositionValue_H_ +#define _LongitudinalLanePositionValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LongitudinalLanePositionValue { + LongitudinalLanePositionValue_zeroPointOneMeter = 1 +} e_LongitudinalLanePositionValue; + +/* LongitudinalLanePositionValue */ +typedef long LongitudinalLanePositionValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LongitudinalLanePositionValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalLanePositionValue; +asn_struct_free_f LongitudinalLanePositionValue_free; +asn_struct_print_f LongitudinalLanePositionValue_print; +asn_constr_check_f LongitudinalLanePositionValue_constraint; +ber_type_decoder_f LongitudinalLanePositionValue_decode_ber; +der_type_encoder_f LongitudinalLanePositionValue_encode_der; +xer_type_decoder_f LongitudinalLanePositionValue_decode_xer; +xer_type_encoder_f LongitudinalLanePositionValue_encode_xer; +oer_type_decoder_f LongitudinalLanePositionValue_decode_oer; +oer_type_encoder_f LongitudinalLanePositionValue_encode_oer; +per_type_decoder_f LongitudinalLanePositionValue_decode_uper; +per_type_encoder_f LongitudinalLanePositionValue_encode_uper; +per_type_decoder_f LongitudinalLanePositionValue_decode_aper; +per_type_encoder_f LongitudinalLanePositionValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalLanePositionValue_H_ */ +#include diff --git a/vcits/cpm/LowFrequencyContainer.h b/vcits/cpm/LowFrequencyContainer.h new file mode 100644 index 0000000..2bf9f20 --- /dev/null +++ b/vcits/cpm/LowFrequencyContainer.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _LowFrequencyContainer_H_ +#define _LowFrequencyContainer_H_ + + +#include + +/* Including external dependencies */ +#include "BasicVehicleContainerLowFrequency.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LowFrequencyContainer_PR { + LowFrequencyContainer_PR_NOTHING, /* No components present */ + LowFrequencyContainer_PR_basicVehicleContainerLowFrequency + /* Extensions may appear below */ + +} LowFrequencyContainer_PR; + +/* LowFrequencyContainer */ +typedef struct LowFrequencyContainer { + LowFrequencyContainer_PR present; + union LowFrequencyContainer_u { + BasicVehicleContainerLowFrequency_t basicVehicleContainerLowFrequency; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LowFrequencyContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LowFrequencyContainer; +extern asn_CHOICE_specifics_t asn_SPC_LowFrequencyContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_LowFrequencyContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_LowFrequencyContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LowFrequencyContainer_H_ */ +#include diff --git a/vcits/cpm/ManeuverAssistList.h b/vcits/cpm/ManeuverAssistList.h new file mode 100644 index 0000000..8cde3bc --- /dev/null +++ b/vcits/cpm/ManeuverAssistList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ManeuverAssistList_H_ +#define _ManeuverAssistList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectionManeuverAssist; + +/* ManeuverAssistList */ +typedef struct ManeuverAssistList { + A_SEQUENCE_OF(struct ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ManeuverAssistList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList; +extern asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1; +extern asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[1]; +extern asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManeuverAssistList_H_ */ +#include diff --git a/vcits/cpm/MapData-addGrpC.h b/vcits/cpm/MapData-addGrpC.h new file mode 100644 index 0000000..8cb6424 --- /dev/null +++ b/vcits/cpm/MapData-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _MapData_addGrpC_H_ +#define _MapData_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocationList; + +/* MapData-addGrpC */ +typedef struct MapData_addGrpC { + struct SignalHeadLocationList *signalHeadLocations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_addGrpC_H_ */ +#include diff --git a/vcits/cpm/MapData.h b/vcits/cpm/MapData.h new file mode 100644 index 0000000..363e929 --- /dev/null +++ b/vcits/cpm/MapData.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _MapData_H_ +#define _MapData_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "MsgCount.h" +#include "LayerType.h" +#include "LayerID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometryList; +struct RoadSegmentList; +struct DataParameters; +struct RestrictionClassList; +struct Reg_MapData; + +/* MapData */ +typedef struct MapData { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + MsgCount_t msgIssueRevision; + LayerType_t *layerType; /* OPTIONAL */ + LayerID_t *layerID; /* OPTIONAL */ + struct IntersectionGeometryList *intersections; /* OPTIONAL */ + struct RoadSegmentList *roadSegments; /* OPTIONAL */ + struct DataParameters *dataParameters; /* OPTIONAL */ + struct RestrictionClassList *restrictionList; /* OPTIONAL */ + struct MapData__regional { + A_SEQUENCE_OF(struct Reg_MapData) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_H_ */ +#include diff --git a/vcits/cpm/MatchedPosition.h b/vcits/cpm/MatchedPosition.h new file mode 100644 index 0000000..baeb55b --- /dev/null +++ b/vcits/cpm/MatchedPosition.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _MatchedPosition_H_ +#define _MatchedPosition_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LongitudinalLanePosition; + +/* MatchedPosition */ +typedef struct MatchedPosition { + LaneID_t *laneID; /* OPTIONAL */ + struct LongitudinalLanePosition *longitudinalLanePosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MatchedPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MatchedPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_MatchedPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchedPosition_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchedPosition_H_ */ +#include diff --git a/vcits/cpm/MergeDivergeNodeAngle.h b/vcits/cpm/MergeDivergeNodeAngle.h new file mode 100644 index 0000000..7a3e7c4 --- /dev/null +++ b/vcits/cpm/MergeDivergeNodeAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _MergeDivergeNodeAngle_H_ +#define _MergeDivergeNodeAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MergeDivergeNodeAngle */ +typedef long MergeDivergeNodeAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle; +asn_struct_free_f MergeDivergeNodeAngle_free; +asn_struct_print_f MergeDivergeNodeAngle_print; +asn_constr_check_f MergeDivergeNodeAngle_constraint; +ber_type_decoder_f MergeDivergeNodeAngle_decode_ber; +der_type_encoder_f MergeDivergeNodeAngle_encode_der; +xer_type_decoder_f MergeDivergeNodeAngle_decode_xer; +xer_type_encoder_f MergeDivergeNodeAngle_encode_xer; +oer_type_decoder_f MergeDivergeNodeAngle_decode_oer; +oer_type_encoder_f MergeDivergeNodeAngle_encode_oer; +per_type_decoder_f MergeDivergeNodeAngle_decode_uper; +per_type_encoder_f MergeDivergeNodeAngle_encode_uper; +per_type_decoder_f MergeDivergeNodeAngle_decode_aper; +per_type_encoder_f MergeDivergeNodeAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MergeDivergeNodeAngle_H_ */ +#include diff --git a/vcits/cpm/MinuteOfTheYear.h b/vcits/cpm/MinuteOfTheYear.h new file mode 100644 index 0000000..7e0b985 --- /dev/null +++ b/vcits/cpm/MinuteOfTheYear.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _MinuteOfTheYear_H_ +#define _MinuteOfTheYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MinuteOfTheYear */ +typedef long MinuteOfTheYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear; +asn_struct_free_f MinuteOfTheYear_free; +asn_struct_print_f MinuteOfTheYear_print; +asn_constr_check_f MinuteOfTheYear_constraint; +ber_type_decoder_f MinuteOfTheYear_decode_ber; +der_type_encoder_f MinuteOfTheYear_encode_der; +xer_type_decoder_f MinuteOfTheYear_decode_xer; +xer_type_encoder_f MinuteOfTheYear_encode_xer; +oer_type_decoder_f MinuteOfTheYear_decode_oer; +oer_type_encoder_f MinuteOfTheYear_encode_oer; +per_type_decoder_f MinuteOfTheYear_decode_uper; +per_type_encoder_f MinuteOfTheYear_encode_uper; +per_type_decoder_f MinuteOfTheYear_decode_aper; +per_type_encoder_f MinuteOfTheYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MinuteOfTheYear_H_ */ +#include diff --git a/vcits/cpm/MovementEvent-addGrpC.h b/vcits/cpm/MovementEvent-addGrpC.h new file mode 100644 index 0000000..24a039f --- /dev/null +++ b/vcits/cpm/MovementEvent-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _MovementEvent_addGrpC_H_ +#define _MovementEvent_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "ExceptionalCondition.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MovementEvent-addGrpC */ +typedef struct MovementEvent_addGrpC { + ExceptionalCondition_t *stateChangeReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_addGrpC_H_ */ +#include diff --git a/vcits/cpm/MovementEvent.h b/vcits/cpm/MovementEvent.h new file mode 100644 index 0000000..1c730b7 --- /dev/null +++ b/vcits/cpm/MovementEvent.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _MovementEvent_H_ +#define _MovementEvent_H_ + + +#include + +/* Including external dependencies */ +#include "MovementPhaseState.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TimeChangeDetails; +struct AdvisorySpeedList; +struct Reg_MovementEvent; + +/* MovementEvent */ +typedef struct MovementEvent { + MovementPhaseState_t eventState; + struct TimeChangeDetails *timing; /* OPTIONAL */ + struct AdvisorySpeedList *speeds; /* OPTIONAL */ + struct MovementEvent__regional { + A_SEQUENCE_OF(struct Reg_MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_H_ */ +#include diff --git a/vcits/cpm/MovementEventList.h b/vcits/cpm/MovementEventList.h new file mode 100644 index 0000000..6d04b6e --- /dev/null +++ b/vcits/cpm/MovementEventList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _MovementEventList_H_ +#define _MovementEventList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementEvent; + +/* MovementEventList */ +typedef struct MovementEventList { + A_SEQUENCE_OF(struct MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEventList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEventList; +extern asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEventList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementEventList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEventList_H_ */ +#include diff --git a/vcits/cpm/MovementList.h b/vcits/cpm/MovementList.h new file mode 100644 index 0000000..9fa19e4 --- /dev/null +++ b/vcits/cpm/MovementList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _MovementList_H_ +#define _MovementList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementState; + +/* MovementList */ +typedef struct MovementList { + A_SEQUENCE_OF(struct MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementList; +extern asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementList_H_ */ +#include diff --git a/vcits/cpm/MovementPhaseState.h b/vcits/cpm/MovementPhaseState.h new file mode 100644 index 0000000..a87f88f --- /dev/null +++ b/vcits/cpm/MovementPhaseState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _MovementPhaseState_H_ +#define _MovementPhaseState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MovementPhaseState { + MovementPhaseState_unavailable = 0, + MovementPhaseState_dark = 1, + MovementPhaseState_stop_Then_Proceed = 2, + MovementPhaseState_stop_And_Remain = 3, + MovementPhaseState_pre_Movement = 4, + MovementPhaseState_permissive_Movement_Allowed = 5, + MovementPhaseState_protected_Movement_Allowed = 6, + MovementPhaseState_permissive_clearance = 7, + MovementPhaseState_protected_clearance = 8, + MovementPhaseState_caution_Conflicting_Traffic = 9 +} e_MovementPhaseState; + +/* MovementPhaseState */ +typedef long MovementPhaseState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MovementPhaseState; +extern const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1; +asn_struct_free_f MovementPhaseState_free; +asn_struct_print_f MovementPhaseState_print; +asn_constr_check_f MovementPhaseState_constraint; +ber_type_decoder_f MovementPhaseState_decode_ber; +der_type_encoder_f MovementPhaseState_encode_der; +xer_type_decoder_f MovementPhaseState_decode_xer; +xer_type_encoder_f MovementPhaseState_encode_xer; +oer_type_decoder_f MovementPhaseState_decode_oer; +oer_type_encoder_f MovementPhaseState_encode_oer; +per_type_decoder_f MovementPhaseState_decode_uper; +per_type_encoder_f MovementPhaseState_encode_uper; +per_type_decoder_f MovementPhaseState_decode_aper; +per_type_encoder_f MovementPhaseState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementPhaseState_H_ */ +#include diff --git a/vcits/cpm/MovementState.h b/vcits/cpm/MovementState.h new file mode 100644 index 0000000..e251e2e --- /dev/null +++ b/vcits/cpm/MovementState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _MovementState_H_ +#define _MovementState_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "SignalGroupID.h" +#include "MovementEventList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ManeuverAssistList; +struct Reg_MovementState; + +/* MovementState */ +typedef struct MovementState { + DescriptiveName_t *movementName; /* OPTIONAL */ + SignalGroupID_t signalGroup; + MovementEventList_t state_time_speed; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct MovementState__regional { + A_SEQUENCE_OF(struct Reg_MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementState_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementState_H_ */ +#include diff --git a/vcits/cpm/MsgCount.h b/vcits/cpm/MsgCount.h new file mode 100644 index 0000000..86b65b3 --- /dev/null +++ b/vcits/cpm/MsgCount.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _MsgCount_H_ +#define _MsgCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MsgCount */ +typedef long MsgCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MsgCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MsgCount; +asn_struct_free_f MsgCount_free; +asn_struct_print_f MsgCount_print; +asn_constr_check_f MsgCount_constraint; +ber_type_decoder_f MsgCount_decode_ber; +der_type_encoder_f MsgCount_encode_der; +xer_type_decoder_f MsgCount_decode_xer; +xer_type_encoder_f MsgCount_encode_xer; +oer_type_decoder_f MsgCount_decode_oer; +oer_type_encoder_f MsgCount_encode_oer; +per_type_decoder_f MsgCount_decode_uper; +per_type_encoder_f MsgCount_encode_uper; +per_type_decoder_f MsgCount_decode_aper; +per_type_encoder_f MsgCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MsgCount_H_ */ +#include diff --git a/vcits/cpm/Node-LLmD-64b.h b/vcits/cpm/Node-LLmD-64b.h new file mode 100644 index 0000000..9674276 --- /dev/null +++ b/vcits/cpm/Node-LLmD-64b.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Node_LLmD_64b_H_ +#define _Node_LLmD_64b_H_ + + +#include + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LLmD-64b */ +typedef struct Node_LLmD_64b { + Longitude_t lon; + Latitude_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LLmD_64b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LLmD_64b_H_ */ +#include diff --git a/vcits/cpm/Node-XY-20b.h b/vcits/cpm/Node-XY-20b.h new file mode 100644 index 0000000..8e6a1f8 --- /dev/null +++ b/vcits/cpm/Node-XY-20b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Node_XY_20b_H_ +#define _Node_XY_20b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-20b */ +typedef struct Node_XY_20b { + Offset_B10_t x; + Offset_B10_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_20b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_20b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_20b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_20b_H_ */ +#include diff --git a/vcits/cpm/Node-XY-22b.h b/vcits/cpm/Node-XY-22b.h new file mode 100644 index 0000000..c16933f --- /dev/null +++ b/vcits/cpm/Node-XY-22b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Node_XY_22b_H_ +#define _Node_XY_22b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B11.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-22b */ +typedef struct Node_XY_22b { + Offset_B11_t x; + Offset_B11_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_22b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_22b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_22b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_22b_H_ */ +#include diff --git a/vcits/cpm/Node-XY-24b.h b/vcits/cpm/Node-XY-24b.h new file mode 100644 index 0000000..3233fb3 --- /dev/null +++ b/vcits/cpm/Node-XY-24b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Node_XY_24b_H_ +#define _Node_XY_24b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B12.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-24b */ +typedef struct Node_XY_24b { + Offset_B12_t x; + Offset_B12_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_24b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_24b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_24b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_24b_H_ */ +#include diff --git a/vcits/cpm/Node-XY-26b.h b/vcits/cpm/Node-XY-26b.h new file mode 100644 index 0000000..9c850bc --- /dev/null +++ b/vcits/cpm/Node-XY-26b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Node_XY_26b_H_ +#define _Node_XY_26b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B13.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-26b */ +typedef struct Node_XY_26b { + Offset_B13_t x; + Offset_B13_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_26b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_26b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_26b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_26b_H_ */ +#include diff --git a/vcits/cpm/Node-XY-28b.h b/vcits/cpm/Node-XY-28b.h new file mode 100644 index 0000000..170acac --- /dev/null +++ b/vcits/cpm/Node-XY-28b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Node_XY_28b_H_ +#define _Node_XY_28b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B14.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-28b */ +typedef struct Node_XY_28b { + Offset_B14_t x; + Offset_B14_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_28b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_28b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_28b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_28b_H_ */ +#include diff --git a/vcits/cpm/Node-XY-32b.h b/vcits/cpm/Node-XY-32b.h new file mode 100644 index 0000000..1a6f36b --- /dev/null +++ b/vcits/cpm/Node-XY-32b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Node_XY_32b_H_ +#define _Node_XY_32b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B16.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-32b */ +typedef struct Node_XY_32b { + Offset_B16_t x; + Offset_B16_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_32b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_32b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_32b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_32b_H_ */ +#include diff --git a/vcits/cpm/Node.h b/vcits/cpm/Node.h new file mode 100644 index 0000000..238ff1c --- /dev/null +++ b/vcits/cpm/Node.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Node_H_ +#define _Node_H_ + + +#include + +/* Including external dependencies */ +#include +#include "LaneID.h" +#include "LaneConnectionID.h" +#include "IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node */ +typedef struct Node { + long id; + LaneID_t *lane; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + IntersectionID_t *intersectionID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_H_ */ +#include diff --git a/vcits/cpm/NodeAttributeSet-addGrpC.h b/vcits/cpm/NodeAttributeSet-addGrpC.h new file mode 100644 index 0000000..330fb3f --- /dev/null +++ b/vcits/cpm/NodeAttributeSet-addGrpC.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _NodeAttributeSet_addGrpC_H_ +#define _NodeAttributeSet_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "PtvRequestType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeLink; +struct Node; + +/* NodeAttributeSet-addGrpC */ +typedef struct NodeAttributeSet_addGrpC { + PtvRequestType_t *ptvRequest; /* OPTIONAL */ + struct NodeLink *nodeLink; /* OPTIONAL */ + struct Node *node; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSet_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSet_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSet_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSet_addGrpC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSet_addGrpC_H_ */ +#include diff --git a/vcits/cpm/NodeAttributeSetXY.h b/vcits/cpm/NodeAttributeSetXY.h new file mode 100644 index 0000000..f985295 --- /dev/null +++ b/vcits/cpm/NodeAttributeSetXY.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _NodeAttributeSetXY_H_ +#define _NodeAttributeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeXYList; +struct SegmentAttributeXYList; +struct LaneDataAttributeList; +struct Reg_NodeAttributeSetXY; + +/* NodeAttributeSetXY */ +typedef struct NodeAttributeSetXY { + struct NodeAttributeXYList *localNode; /* OPTIONAL */ + struct SegmentAttributeXYList *disabled; /* OPTIONAL */ + struct SegmentAttributeXYList *enabled; /* OPTIONAL */ + struct LaneDataAttributeList *data; /* OPTIONAL */ + Offset_B10_t *dWidth; /* OPTIONAL */ + Offset_B10_t *dElevation; /* OPTIONAL */ + struct NodeAttributeSetXY__regional { + A_SEQUENCE_OF(struct Reg_NodeAttributeSetXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSetXY_H_ */ +#include diff --git a/vcits/cpm/NodeAttributeXY.h b/vcits/cpm/NodeAttributeXY.h new file mode 100644 index 0000000..0bce06a --- /dev/null +++ b/vcits/cpm/NodeAttributeXY.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _NodeAttributeXY_H_ +#define _NodeAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeAttributeXY { + NodeAttributeXY_reserved = 0, + NodeAttributeXY_stopLine = 1, + NodeAttributeXY_roundedCapStyleA = 2, + NodeAttributeXY_roundedCapStyleB = 3, + NodeAttributeXY_mergePoint = 4, + NodeAttributeXY_divergePoint = 5, + NodeAttributeXY_downstreamStopLine = 6, + NodeAttributeXY_downstreamStartNode = 7, + NodeAttributeXY_closedToTraffic = 8, + NodeAttributeXY_safeIsland = 9, + NodeAttributeXY_curbPresentAtStepOff = 10, + NodeAttributeXY_hydrantPresent = 11 + /* + * Enumeration is extensible + */ +} e_NodeAttributeXY; + +/* NodeAttributeXY */ +typedef long NodeAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1; +asn_struct_free_f NodeAttributeXY_free; +asn_struct_print_f NodeAttributeXY_print; +asn_constr_check_f NodeAttributeXY_constraint; +ber_type_decoder_f NodeAttributeXY_decode_ber; +der_type_encoder_f NodeAttributeXY_encode_der; +xer_type_decoder_f NodeAttributeXY_decode_xer; +xer_type_encoder_f NodeAttributeXY_encode_xer; +oer_type_decoder_f NodeAttributeXY_decode_oer; +oer_type_encoder_f NodeAttributeXY_encode_oer; +per_type_decoder_f NodeAttributeXY_decode_uper; +per_type_encoder_f NodeAttributeXY_encode_uper; +per_type_decoder_f NodeAttributeXY_decode_aper; +per_type_encoder_f NodeAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXY_H_ */ +#include diff --git a/vcits/cpm/NodeAttributeXYList.h b/vcits/cpm/NodeAttributeXYList.h new file mode 100644 index 0000000..73189c5 --- /dev/null +++ b/vcits/cpm/NodeAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _NodeAttributeXYList_H_ +#define _NodeAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "NodeAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NodeAttributeXYList */ +typedef struct NodeAttributeXYList { + A_SEQUENCE_OF(NodeAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXYList_H_ */ +#include diff --git a/vcits/cpm/NodeLink.h b/vcits/cpm/NodeLink.h new file mode 100644 index 0000000..75be6c9 --- /dev/null +++ b/vcits/cpm/NodeLink.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _NodeLink_H_ +#define _NodeLink_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Node; + +/* NodeLink */ +typedef struct NodeLink { + A_SEQUENCE_OF(struct Node) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeLink_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeLink; +extern asn_SET_OF_specifics_t asn_SPC_NodeLink_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeLink_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeLink_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeLink_H_ */ +#include diff --git a/vcits/cpm/NodeListXY.h b/vcits/cpm/NodeListXY.h new file mode 100644 index 0000000..11e14df --- /dev/null +++ b/vcits/cpm/NodeListXY.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _NodeListXY_H_ +#define _NodeListXY_H_ + + +#include + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "ComputedLane.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeListXY_PR { + NodeListXY_PR_NOTHING, /* No components present */ + NodeListXY_PR_nodes, + NodeListXY_PR_computed + /* Extensions may appear below */ + +} NodeListXY_PR; + +/* NodeListXY */ +typedef struct NodeListXY { + NodeListXY_PR present; + union NodeListXY_u { + NodeSetXY_t nodes; + ComputedLane_t computed; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeListXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeListXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeListXY_1[2]; +extern asn_per_constraints_t asn_PER_type_NodeListXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeListXY_H_ */ +#include diff --git a/vcits/cpm/NodeOffsetPointXY.h b/vcits/cpm/NodeOffsetPointXY.h new file mode 100644 index 0000000..d00d8fd --- /dev/null +++ b/vcits/cpm/NodeOffsetPointXY.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _NodeOffsetPointXY_H_ +#define _NodeOffsetPointXY_H_ + + +#include + +/* Including external dependencies */ +#include "Node-XY-20b.h" +#include "Node-XY-22b.h" +#include "Node-XY-24b.h" +#include "Node-XY-26b.h" +#include "Node-XY-28b.h" +#include "Node-XY-32b.h" +#include "Node-LLmD-64b.h" +#include "RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeOffsetPointXY_PR { + NodeOffsetPointXY_PR_NOTHING, /* No components present */ + NodeOffsetPointXY_PR_node_XY1, + NodeOffsetPointXY_PR_node_XY2, + NodeOffsetPointXY_PR_node_XY3, + NodeOffsetPointXY_PR_node_XY4, + NodeOffsetPointXY_PR_node_XY5, + NodeOffsetPointXY_PR_node_XY6, + NodeOffsetPointXY_PR_node_LatLon, + NodeOffsetPointXY_PR_regional +} NodeOffsetPointXY_PR; + +/* NodeOffsetPointXY */ +typedef struct NodeOffsetPointXY { + NodeOffsetPointXY_PR present; + union NodeOffsetPointXY_u { + Node_XY_20b_t node_XY1; + Node_XY_22b_t node_XY2; + Node_XY_24b_t node_XY3; + Node_XY_26b_t node_XY4; + Node_XY_28b_t node_XY5; + Node_XY_32b_t node_XY6; + Node_LLmD_64b_t node_LatLon; + Reg_NodeOffsetPointXY_t regional; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeOffsetPointXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[8]; +extern asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeOffsetPointXY_H_ */ +#include diff --git a/vcits/cpm/NodeOffsetPointZ.h b/vcits/cpm/NodeOffsetPointZ.h new file mode 100644 index 0000000..eb07b4f --- /dev/null +++ b/vcits/cpm/NodeOffsetPointZ.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _NodeOffsetPointZ_H_ +#define _NodeOffsetPointZ_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include "Offset-B11.h" +#include "Offset-B12.h" +#include "Offset-B13.h" +#include "Offset-B14.h" +#include "Offset-B16.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeOffsetPointZ_PR { + NodeOffsetPointZ_PR_NOTHING, /* No components present */ + NodeOffsetPointZ_PR_node_Z1, + NodeOffsetPointZ_PR_node_Z2, + NodeOffsetPointZ_PR_node_Z3, + NodeOffsetPointZ_PR_node_Z4, + NodeOffsetPointZ_PR_node_Z5, + NodeOffsetPointZ_PR_node_Z6 +} NodeOffsetPointZ_PR; + +/* NodeOffsetPointZ */ +typedef struct NodeOffsetPointZ { + NodeOffsetPointZ_PR present; + union NodeOffsetPointZ_u { + Offset_B10_t node_Z1; + Offset_B11_t node_Z2; + Offset_B12_t node_Z3; + Offset_B13_t node_Z4; + Offset_B14_t node_Z5; + Offset_B16_t node_Z6; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeOffsetPointZ_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointZ; +extern asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointZ_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeOffsetPointZ_1[6]; +extern asn_per_constraints_t asn_PER_type_NodeOffsetPointZ_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeOffsetPointZ_H_ */ +#include diff --git a/vcits/cpm/NodeSetXY.h b/vcits/cpm/NodeSetXY.h new file mode 100644 index 0000000..e66ac50 --- /dev/null +++ b/vcits/cpm/NodeSetXY.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _NodeSetXY_H_ +#define _NodeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeXY; + +/* NodeSetXY */ +typedef struct NodeSetXY { + A_SEQUENCE_OF(struct NodeXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeSetXY; +extern asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeSetXY_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeSetXY_H_ */ +#include diff --git a/vcits/cpm/NodeXY.h b/vcits/cpm/NodeXY.h new file mode 100644 index 0000000..75cf027 --- /dev/null +++ b/vcits/cpm/NodeXY.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _NodeXY_H_ +#define _NodeXY_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeSetXY; + +/* NodeXY */ +typedef struct NodeXY { + NodeOffsetPointXY_t delta; + struct NodeAttributeSetXY *attributes; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeXY_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeXY_H_ */ +#include diff --git a/vcits/cpm/NumberOfOccupants.h b/vcits/cpm/NumberOfOccupants.h new file mode 100644 index 0000000..9dfb699 --- /dev/null +++ b/vcits/cpm/NumberOfOccupants.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _NumberOfOccupants_H_ +#define _NumberOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NumberOfOccupants { + NumberOfOccupants_oneOccupant = 1, + NumberOfOccupants_unavailable = 127 +} e_NumberOfOccupants; + +/* NumberOfOccupants */ +typedef long NumberOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants; +asn_struct_free_f NumberOfOccupants_free; +asn_struct_print_f NumberOfOccupants_print; +asn_constr_check_f NumberOfOccupants_constraint; +ber_type_decoder_f NumberOfOccupants_decode_ber; +der_type_encoder_f NumberOfOccupants_encode_der; +xer_type_decoder_f NumberOfOccupants_decode_xer; +xer_type_encoder_f NumberOfOccupants_encode_xer; +oer_type_decoder_f NumberOfOccupants_decode_oer; +oer_type_encoder_f NumberOfOccupants_encode_oer; +per_type_decoder_f NumberOfOccupants_decode_uper; +per_type_encoder_f NumberOfOccupants_encode_uper; +per_type_decoder_f NumberOfOccupants_decode_aper; +per_type_encoder_f NumberOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NumberOfOccupants_H_ */ +#include diff --git a/vcits/cpm/NumberOfPerceivedObjects.h b/vcits/cpm/NumberOfPerceivedObjects.h new file mode 100644 index 0000000..76b9277 --- /dev/null +++ b/vcits/cpm/NumberOfPerceivedObjects.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _NumberOfPerceivedObjects_H_ +#define _NumberOfPerceivedObjects_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NumberOfPerceivedObjects */ +typedef long NumberOfPerceivedObjects_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NumberOfPerceivedObjects_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NumberOfPerceivedObjects; +asn_struct_free_f NumberOfPerceivedObjects_free; +asn_struct_print_f NumberOfPerceivedObjects_print; +asn_constr_check_f NumberOfPerceivedObjects_constraint; +ber_type_decoder_f NumberOfPerceivedObjects_decode_ber; +der_type_encoder_f NumberOfPerceivedObjects_encode_der; +xer_type_decoder_f NumberOfPerceivedObjects_decode_xer; +xer_type_encoder_f NumberOfPerceivedObjects_encode_xer; +oer_type_decoder_f NumberOfPerceivedObjects_decode_oer; +oer_type_encoder_f NumberOfPerceivedObjects_encode_oer; +per_type_decoder_f NumberOfPerceivedObjects_decode_uper; +per_type_encoder_f NumberOfPerceivedObjects_encode_uper; +per_type_decoder_f NumberOfPerceivedObjects_decode_aper; +per_type_encoder_f NumberOfPerceivedObjects_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NumberOfPerceivedObjects_H_ */ +#include diff --git a/vcits/cpm/ObjectAge.h b/vcits/cpm/ObjectAge.h new file mode 100644 index 0000000..d35aa50 --- /dev/null +++ b/vcits/cpm/ObjectAge.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ObjectAge_H_ +#define _ObjectAge_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ObjectAge { + ObjectAge_oneMiliSec = 1 +} e_ObjectAge; + +/* ObjectAge */ +typedef long ObjectAge_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ObjectAge_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ObjectAge; +asn_struct_free_f ObjectAge_free; +asn_struct_print_f ObjectAge_print; +asn_constr_check_f ObjectAge_constraint; +ber_type_decoder_f ObjectAge_decode_ber; +der_type_encoder_f ObjectAge_encode_der; +xer_type_decoder_f ObjectAge_decode_xer; +xer_type_encoder_f ObjectAge_encode_xer; +oer_type_decoder_f ObjectAge_decode_oer; +oer_type_encoder_f ObjectAge_encode_oer; +per_type_decoder_f ObjectAge_decode_uper; +per_type_encoder_f ObjectAge_encode_uper; +per_type_decoder_f ObjectAge_decode_aper; +per_type_encoder_f ObjectAge_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ObjectAge_H_ */ +#include diff --git a/vcits/cpm/ObjectClass.h b/vcits/cpm/ObjectClass.h new file mode 100644 index 0000000..4fa20e7 --- /dev/null +++ b/vcits/cpm/ObjectClass.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ObjectClass_H_ +#define _ObjectClass_H_ + + +#include + +/* Including external dependencies */ +#include "ClassConfidence.h" +#include "VehicleSubclass.h" +#include "PersonSubclass.h" +#include "AnimalSubclass.h" +#include "OtherSubclass.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ObjectClass__class_PR { + ObjectClass__class_PR_NOTHING, /* No components present */ + ObjectClass__class_PR_vehicle, + ObjectClass__class_PR_person, + ObjectClass__class_PR_animal, + ObjectClass__class_PR_other +} ObjectClass__class_PR; + +/* ObjectClass */ +typedef struct ObjectClass { + ClassConfidence_t confidence; + struct ObjectClass__class { + ObjectClass__class_PR present; + union ObjectClass__class_u { + VehicleSubclass_t vehicle; + PersonSubclass_t person; + AnimalSubclass_t animal; + OtherSubclass_t other; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } Class; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ObjectClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ObjectClass; +extern asn_SEQUENCE_specifics_t asn_SPC_ObjectClass_specs_1; +extern asn_TYPE_member_t asn_MBR_ObjectClass_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ObjectClass_H_ */ +#include diff --git a/vcits/cpm/ObjectClassDescription.h b/vcits/cpm/ObjectClassDescription.h new file mode 100644 index 0000000..6ab13e1 --- /dev/null +++ b/vcits/cpm/ObjectClassDescription.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ObjectClassDescription_H_ +#define _ObjectClassDescription_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ObjectClass; + +/* ObjectClassDescription */ +typedef struct ObjectClassDescription { + A_SEQUENCE_OF(struct ObjectClass) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ObjectClassDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ObjectClassDescription; +extern asn_SET_OF_specifics_t asn_SPC_ObjectClassDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_ObjectClassDescription_1[1]; +extern asn_per_constraints_t asn_PER_type_ObjectClassDescription_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ObjectClassDescription_H_ */ +#include diff --git a/vcits/cpm/ObjectConfidence.h b/vcits/cpm/ObjectConfidence.h new file mode 100644 index 0000000..bca1fc1 --- /dev/null +++ b/vcits/cpm/ObjectConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ObjectConfidence_H_ +#define _ObjectConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ObjectConfidence { + ObjectConfidence_unknown = 0, + ObjectConfidence_onePercent = 1, + ObjectConfidence_oneHundredPercent = 100, + ObjectConfidence_unavailable = 101 +} e_ObjectConfidence; + +/* ObjectConfidence */ +typedef long ObjectConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ObjectConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ObjectConfidence; +asn_struct_free_f ObjectConfidence_free; +asn_struct_print_f ObjectConfidence_print; +asn_constr_check_f ObjectConfidence_constraint; +ber_type_decoder_f ObjectConfidence_decode_ber; +der_type_encoder_f ObjectConfidence_encode_der; +xer_type_decoder_f ObjectConfidence_decode_xer; +xer_type_encoder_f ObjectConfidence_encode_xer; +oer_type_decoder_f ObjectConfidence_decode_oer; +oer_type_encoder_f ObjectConfidence_encode_oer; +per_type_decoder_f ObjectConfidence_decode_uper; +per_type_encoder_f ObjectConfidence_encode_uper; +per_type_decoder_f ObjectConfidence_decode_aper; +per_type_encoder_f ObjectConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ObjectConfidence_H_ */ +#include diff --git a/vcits/cpm/ObjectDimension.h b/vcits/cpm/ObjectDimension.h new file mode 100644 index 0000000..b803f62 --- /dev/null +++ b/vcits/cpm/ObjectDimension.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ObjectDimension_H_ +#define _ObjectDimension_H_ + + +#include + +/* Including external dependencies */ +#include "ObjectDimensionValue.h" +#include "ObjectDimensionConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ObjectDimension */ +typedef struct ObjectDimension { + ObjectDimensionValue_t value; + ObjectDimensionConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ObjectDimension_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ObjectDimension; +extern asn_SEQUENCE_specifics_t asn_SPC_ObjectDimension_specs_1; +extern asn_TYPE_member_t asn_MBR_ObjectDimension_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ObjectDimension_H_ */ +#include diff --git a/vcits/cpm/ObjectDimensionConfidence.h b/vcits/cpm/ObjectDimensionConfidence.h new file mode 100644 index 0000000..60747bb --- /dev/null +++ b/vcits/cpm/ObjectDimensionConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ObjectDimensionConfidence_H_ +#define _ObjectDimensionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ObjectDimensionConfidence { + ObjectDimensionConfidence_zeroPointZeroOneMeter = 1, + ObjectDimensionConfidence_oneMeter = 100, + ObjectDimensionConfidence_outOfRange = 101, + ObjectDimensionConfidence_unavailable = 102 +} e_ObjectDimensionConfidence; + +/* ObjectDimensionConfidence */ +typedef long ObjectDimensionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ObjectDimensionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ObjectDimensionConfidence; +asn_struct_free_f ObjectDimensionConfidence_free; +asn_struct_print_f ObjectDimensionConfidence_print; +asn_constr_check_f ObjectDimensionConfidence_constraint; +ber_type_decoder_f ObjectDimensionConfidence_decode_ber; +der_type_encoder_f ObjectDimensionConfidence_encode_der; +xer_type_decoder_f ObjectDimensionConfidence_decode_xer; +xer_type_encoder_f ObjectDimensionConfidence_encode_xer; +oer_type_decoder_f ObjectDimensionConfidence_decode_oer; +oer_type_encoder_f ObjectDimensionConfidence_encode_oer; +per_type_decoder_f ObjectDimensionConfidence_decode_uper; +per_type_encoder_f ObjectDimensionConfidence_encode_uper; +per_type_decoder_f ObjectDimensionConfidence_decode_aper; +per_type_encoder_f ObjectDimensionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ObjectDimensionConfidence_H_ */ +#include diff --git a/vcits/cpm/ObjectDimensionValue.h b/vcits/cpm/ObjectDimensionValue.h new file mode 100644 index 0000000..c6a9f2b --- /dev/null +++ b/vcits/cpm/ObjectDimensionValue.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ObjectDimensionValue_H_ +#define _ObjectDimensionValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ObjectDimensionValue { + ObjectDimensionValue_zeroPointOneMeter = 1, + ObjectDimensionValue_oneMeter = 10 +} e_ObjectDimensionValue; + +/* ObjectDimensionValue */ +typedef long ObjectDimensionValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ObjectDimensionValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ObjectDimensionValue; +asn_struct_free_f ObjectDimensionValue_free; +asn_struct_print_f ObjectDimensionValue_print; +asn_constr_check_f ObjectDimensionValue_constraint; +ber_type_decoder_f ObjectDimensionValue_decode_ber; +der_type_encoder_f ObjectDimensionValue_encode_der; +xer_type_decoder_f ObjectDimensionValue_decode_xer; +xer_type_encoder_f ObjectDimensionValue_encode_xer; +oer_type_decoder_f ObjectDimensionValue_decode_oer; +oer_type_encoder_f ObjectDimensionValue_encode_oer; +per_type_decoder_f ObjectDimensionValue_decode_uper; +per_type_encoder_f ObjectDimensionValue_encode_uper; +per_type_decoder_f ObjectDimensionValue_decode_aper; +per_type_encoder_f ObjectDimensionValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ObjectDimensionValue_H_ */ +#include diff --git a/vcits/cpm/ObjectDistanceWithConfidence.h b/vcits/cpm/ObjectDistanceWithConfidence.h new file mode 100644 index 0000000..2a7d804 --- /dev/null +++ b/vcits/cpm/ObjectDistanceWithConfidence.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ObjectDistanceWithConfidence_H_ +#define _ObjectDistanceWithConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "DistanceValue.h" +#include "DistanceConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ObjectDistanceWithConfidence */ +typedef struct ObjectDistanceWithConfidence { + DistanceValue_t value; + DistanceConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ObjectDistanceWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ObjectDistanceWithConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_ObjectDistanceWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_ObjectDistanceWithConfidence_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ObjectDistanceWithConfidence_H_ */ +#include diff --git a/vcits/cpm/ObjectRefPoint.h b/vcits/cpm/ObjectRefPoint.h new file mode 100644 index 0000000..641203b --- /dev/null +++ b/vcits/cpm/ObjectRefPoint.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ObjectRefPoint_H_ +#define _ObjectRefPoint_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ObjectRefPoint { + ObjectRefPoint_mid = 0, + ObjectRefPoint_bottomLeft = 1, + ObjectRefPoint_midLeft = 2, + ObjectRefPoint_topLeft = 3, + ObjectRefPoint_bottomMid = 4, + ObjectRefPoint_topMid = 5, + ObjectRefPoint_bottomRight = 6, + ObjectRefPoint_midRight = 7, + ObjectRefPoint_topRight = 8 +} e_ObjectRefPoint; + +/* ObjectRefPoint */ +typedef long ObjectRefPoint_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ObjectRefPoint_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ObjectRefPoint; +asn_struct_free_f ObjectRefPoint_free; +asn_struct_print_f ObjectRefPoint_print; +asn_constr_check_f ObjectRefPoint_constraint; +ber_type_decoder_f ObjectRefPoint_decode_ber; +der_type_encoder_f ObjectRefPoint_encode_der; +xer_type_decoder_f ObjectRefPoint_decode_xer; +xer_type_encoder_f ObjectRefPoint_encode_xer; +oer_type_decoder_f ObjectRefPoint_decode_oer; +oer_type_encoder_f ObjectRefPoint_encode_oer; +per_type_decoder_f ObjectRefPoint_decode_uper; +per_type_encoder_f ObjectRefPoint_encode_uper; +per_type_decoder_f ObjectRefPoint_decode_aper; +per_type_encoder_f ObjectRefPoint_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ObjectRefPoint_H_ */ +#include diff --git a/vcits/cpm/Offset-B09.h b/vcits/cpm/Offset-B09.h new file mode 100644 index 0000000..8a75f24 --- /dev/null +++ b/vcits/cpm/Offset-B09.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Offset_B09_H_ +#define _Offset_B09_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B09 */ +typedef long Offset_B09_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B09_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B09; +asn_struct_free_f Offset_B09_free; +asn_struct_print_f Offset_B09_print; +asn_constr_check_f Offset_B09_constraint; +ber_type_decoder_f Offset_B09_decode_ber; +der_type_encoder_f Offset_B09_encode_der; +xer_type_decoder_f Offset_B09_decode_xer; +xer_type_encoder_f Offset_B09_encode_xer; +oer_type_decoder_f Offset_B09_decode_oer; +oer_type_encoder_f Offset_B09_encode_oer; +per_type_decoder_f Offset_B09_decode_uper; +per_type_encoder_f Offset_B09_encode_uper; +per_type_decoder_f Offset_B09_decode_aper; +per_type_encoder_f Offset_B09_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B09_H_ */ +#include diff --git a/vcits/cpm/Offset-B10.h b/vcits/cpm/Offset-B10.h new file mode 100644 index 0000000..b8e1112 --- /dev/null +++ b/vcits/cpm/Offset-B10.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Offset_B10_H_ +#define _Offset_B10_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B10 */ +typedef long Offset_B10_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B10_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B10; +asn_struct_free_f Offset_B10_free; +asn_struct_print_f Offset_B10_print; +asn_constr_check_f Offset_B10_constraint; +ber_type_decoder_f Offset_B10_decode_ber; +der_type_encoder_f Offset_B10_encode_der; +xer_type_decoder_f Offset_B10_decode_xer; +xer_type_encoder_f Offset_B10_encode_xer; +oer_type_decoder_f Offset_B10_decode_oer; +oer_type_encoder_f Offset_B10_encode_oer; +per_type_decoder_f Offset_B10_decode_uper; +per_type_encoder_f Offset_B10_encode_uper; +per_type_decoder_f Offset_B10_decode_aper; +per_type_encoder_f Offset_B10_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B10_H_ */ +#include diff --git a/vcits/cpm/Offset-B11.h b/vcits/cpm/Offset-B11.h new file mode 100644 index 0000000..65b1ce3 --- /dev/null +++ b/vcits/cpm/Offset-B11.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Offset_B11_H_ +#define _Offset_B11_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B11 */ +typedef long Offset_B11_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B11_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B11; +asn_struct_free_f Offset_B11_free; +asn_struct_print_f Offset_B11_print; +asn_constr_check_f Offset_B11_constraint; +ber_type_decoder_f Offset_B11_decode_ber; +der_type_encoder_f Offset_B11_encode_der; +xer_type_decoder_f Offset_B11_decode_xer; +xer_type_encoder_f Offset_B11_encode_xer; +oer_type_decoder_f Offset_B11_decode_oer; +oer_type_encoder_f Offset_B11_encode_oer; +per_type_decoder_f Offset_B11_decode_uper; +per_type_encoder_f Offset_B11_encode_uper; +per_type_decoder_f Offset_B11_decode_aper; +per_type_encoder_f Offset_B11_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B11_H_ */ +#include diff --git a/vcits/cpm/Offset-B12.h b/vcits/cpm/Offset-B12.h new file mode 100644 index 0000000..3ac71d2 --- /dev/null +++ b/vcits/cpm/Offset-B12.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Offset_B12_H_ +#define _Offset_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B12 */ +typedef long Offset_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B12; +asn_struct_free_f Offset_B12_free; +asn_struct_print_f Offset_B12_print; +asn_constr_check_f Offset_B12_constraint; +ber_type_decoder_f Offset_B12_decode_ber; +der_type_encoder_f Offset_B12_encode_der; +xer_type_decoder_f Offset_B12_decode_xer; +xer_type_encoder_f Offset_B12_encode_xer; +oer_type_decoder_f Offset_B12_decode_oer; +oer_type_encoder_f Offset_B12_encode_oer; +per_type_decoder_f Offset_B12_decode_uper; +per_type_encoder_f Offset_B12_encode_uper; +per_type_decoder_f Offset_B12_decode_aper; +per_type_encoder_f Offset_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B12_H_ */ +#include diff --git a/vcits/cpm/Offset-B13.h b/vcits/cpm/Offset-B13.h new file mode 100644 index 0000000..9891084 --- /dev/null +++ b/vcits/cpm/Offset-B13.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Offset_B13_H_ +#define _Offset_B13_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B13 */ +typedef long Offset_B13_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B13_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B13; +asn_struct_free_f Offset_B13_free; +asn_struct_print_f Offset_B13_print; +asn_constr_check_f Offset_B13_constraint; +ber_type_decoder_f Offset_B13_decode_ber; +der_type_encoder_f Offset_B13_encode_der; +xer_type_decoder_f Offset_B13_decode_xer; +xer_type_encoder_f Offset_B13_encode_xer; +oer_type_decoder_f Offset_B13_decode_oer; +oer_type_encoder_f Offset_B13_encode_oer; +per_type_decoder_f Offset_B13_decode_uper; +per_type_encoder_f Offset_B13_encode_uper; +per_type_decoder_f Offset_B13_decode_aper; +per_type_encoder_f Offset_B13_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B13_H_ */ +#include diff --git a/vcits/cpm/Offset-B14.h b/vcits/cpm/Offset-B14.h new file mode 100644 index 0000000..d13af1e --- /dev/null +++ b/vcits/cpm/Offset-B14.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Offset_B14_H_ +#define _Offset_B14_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B14 */ +typedef long Offset_B14_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B14_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B14; +asn_struct_free_f Offset_B14_free; +asn_struct_print_f Offset_B14_print; +asn_constr_check_f Offset_B14_constraint; +ber_type_decoder_f Offset_B14_decode_ber; +der_type_encoder_f Offset_B14_encode_der; +xer_type_decoder_f Offset_B14_decode_xer; +xer_type_encoder_f Offset_B14_encode_xer; +oer_type_decoder_f Offset_B14_decode_oer; +oer_type_encoder_f Offset_B14_encode_oer; +per_type_decoder_f Offset_B14_decode_uper; +per_type_encoder_f Offset_B14_encode_uper; +per_type_decoder_f Offset_B14_decode_aper; +per_type_encoder_f Offset_B14_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B14_H_ */ +#include diff --git a/vcits/cpm/Offset-B16.h b/vcits/cpm/Offset-B16.h new file mode 100644 index 0000000..cafc229 --- /dev/null +++ b/vcits/cpm/Offset-B16.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Offset_B16_H_ +#define _Offset_B16_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B16 */ +typedef long Offset_B16_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B16_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B16; +asn_struct_free_f Offset_B16_free; +asn_struct_print_f Offset_B16_print; +asn_constr_check_f Offset_B16_constraint; +ber_type_decoder_f Offset_B16_decode_ber; +der_type_encoder_f Offset_B16_encode_der; +xer_type_decoder_f Offset_B16_decode_xer; +xer_type_encoder_f Offset_B16_encode_xer; +oer_type_decoder_f Offset_B16_decode_oer; +oer_type_encoder_f Offset_B16_encode_oer; +per_type_decoder_f Offset_B16_decode_uper; +per_type_encoder_f Offset_B16_encode_uper; +per_type_decoder_f Offset_B16_decode_aper; +per_type_encoder_f Offset_B16_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B16_H_ */ +#include diff --git a/vcits/cpm/OffsetPoint.h b/vcits/cpm/OffsetPoint.h new file mode 100644 index 0000000..64fd21e --- /dev/null +++ b/vcits/cpm/OffsetPoint.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _OffsetPoint_H_ +#define _OffsetPoint_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeOffsetPointZ; + +/* OffsetPoint */ +typedef struct OffsetPoint { + NodeOffsetPointXY_t nodeOffsetPointxy; + struct NodeOffsetPointZ *nodeOffsetPointZ; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} OffsetPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OffsetPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_OffsetPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_OffsetPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _OffsetPoint_H_ */ +#include diff --git a/vcits/cpm/OpeningDaysHours.h b/vcits/cpm/OpeningDaysHours.h new file mode 100644 index 0000000..bdf2a66 --- /dev/null +++ b/vcits/cpm/OpeningDaysHours.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _OpeningDaysHours_H_ +#define _OpeningDaysHours_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OpeningDaysHours */ +typedef UTF8String_t OpeningDaysHours_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours; +asn_struct_free_f OpeningDaysHours_free; +asn_struct_print_f OpeningDaysHours_print; +asn_constr_check_f OpeningDaysHours_constraint; +ber_type_decoder_f OpeningDaysHours_decode_ber; +der_type_encoder_f OpeningDaysHours_encode_der; +xer_type_decoder_f OpeningDaysHours_decode_xer; +xer_type_encoder_f OpeningDaysHours_encode_xer; +oer_type_decoder_f OpeningDaysHours_decode_oer; +oer_type_encoder_f OpeningDaysHours_encode_oer; +per_type_decoder_f OpeningDaysHours_decode_uper; +per_type_encoder_f OpeningDaysHours_encode_uper; +per_type_decoder_f OpeningDaysHours_decode_aper; +per_type_encoder_f OpeningDaysHours_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OpeningDaysHours_H_ */ +#include diff --git a/vcits/cpm/OriginatingRSUContainer.h b/vcits/cpm/OriginatingRSUContainer.h new file mode 100644 index 0000000..2e0169d --- /dev/null +++ b/vcits/cpm/OriginatingRSUContainer.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _OriginatingRSUContainer_H_ +#define _OriginatingRSUContainer_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionReferenceID.h" +#include "RoadSegmentReferenceID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum OriginatingRSUContainer_PR { + OriginatingRSUContainer_PR_NOTHING, /* No components present */ + OriginatingRSUContainer_PR_intersectionReferenceId, + OriginatingRSUContainer_PR_roadSegmentReferenceId + /* Extensions may appear below */ + +} OriginatingRSUContainer_PR; + +/* OriginatingRSUContainer */ +typedef struct OriginatingRSUContainer { + OriginatingRSUContainer_PR present; + union OriginatingRSUContainer_u { + IntersectionReferenceID_t intersectionReferenceId; + RoadSegmentReferenceID_t roadSegmentReferenceId; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} OriginatingRSUContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OriginatingRSUContainer; +extern asn_CHOICE_specifics_t asn_SPC_OriginatingRSUContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_OriginatingRSUContainer_1[2]; +extern asn_per_constraints_t asn_PER_type_OriginatingRSUContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _OriginatingRSUContainer_H_ */ +#include diff --git a/vcits/cpm/OriginatingVehicleContainer.h b/vcits/cpm/OriginatingVehicleContainer.h new file mode 100644 index 0000000..a96e50a --- /dev/null +++ b/vcits/cpm/OriginatingVehicleContainer.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _OriginatingVehicleContainer_H_ +#define _OriginatingVehicleContainer_H_ + + +#include + +/* Including external dependencies */ +#include "Heading.h" +#include "Speed.h" +#include "DriveDirection.h" +#include "VehicleWidth.h" +#include "VehicleHeight.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct WGS84Angle; +struct LongitudinalAcceleration; +struct LateralAcceleration; +struct VerticalAcceleration; +struct YawRate; +struct CartesianAngle; +struct VehicleLength; +struct TrailerDataContainer; + +/* OriginatingVehicleContainer */ +typedef struct OriginatingVehicleContainer { + Heading_t heading; + Speed_t speed; + struct WGS84Angle *vehicleOrientationAngle; /* OPTIONAL */ + DriveDirection_t driveDirection; /* DEFAULT 0 */ + struct LongitudinalAcceleration *longitudinalAcceleration; /* OPTIONAL */ + struct LateralAcceleration *lateralAcceleration; /* OPTIONAL */ + struct VerticalAcceleration *verticalAcceleration; /* OPTIONAL */ + struct YawRate *yawRate; /* OPTIONAL */ + struct CartesianAngle *pitchAngle; /* OPTIONAL */ + struct CartesianAngle *rollAngle; /* OPTIONAL */ + struct VehicleLength *vehicleLength; /* OPTIONAL */ + VehicleWidth_t *vehicleWidth; /* OPTIONAL */ + VehicleHeight_t *vehicleHeight; /* OPTIONAL */ + struct TrailerDataContainer *trailerDataContainer; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} OriginatingVehicleContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OriginatingVehicleContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_OriginatingVehicleContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_OriginatingVehicleContainer_1[14]; + +#ifdef __cplusplus +} +#endif + +#endif /* _OriginatingVehicleContainer_H_ */ +#include diff --git a/vcits/cpm/OtherSubclass.h b/vcits/cpm/OtherSubclass.h new file mode 100644 index 0000000..fcd1116 --- /dev/null +++ b/vcits/cpm/OtherSubclass.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _OtherSubclass_H_ +#define _OtherSubclass_H_ + + +#include + +/* Including external dependencies */ +#include "OtherSublassType.h" +#include "ClassConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OtherSubclass */ +typedef struct OtherSubclass { + OtherSublassType_t type; /* DEFAULT 0 */ + ClassConfidence_t confidence; /* DEFAULT 0 */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} OtherSubclass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OtherSubclass; +extern asn_SEQUENCE_specifics_t asn_SPC_OtherSubclass_specs_1; +extern asn_TYPE_member_t asn_MBR_OtherSubclass_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _OtherSubclass_H_ */ +#include diff --git a/vcits/cpm/OtherSublassType.h b/vcits/cpm/OtherSublassType.h new file mode 100644 index 0000000..472c375 --- /dev/null +++ b/vcits/cpm/OtherSublassType.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _OtherSublassType_H_ +#define _OtherSublassType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum OtherSublassType { + OtherSublassType_unknown = 0, + OtherSublassType_roadSideUnit = 1 +} e_OtherSublassType; + +/* OtherSublassType */ +typedef long OtherSublassType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_OtherSublassType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_OtherSublassType; +asn_struct_free_f OtherSublassType_free; +asn_struct_print_f OtherSublassType_print; +asn_constr_check_f OtherSublassType_constraint; +ber_type_decoder_f OtherSublassType_decode_ber; +der_type_encoder_f OtherSublassType_encode_der; +xer_type_decoder_f OtherSublassType_decode_xer; +xer_type_encoder_f OtherSublassType_encode_xer; +oer_type_decoder_f OtherSublassType_decode_oer; +oer_type_encoder_f OtherSublassType_encode_oer; +per_type_decoder_f OtherSublassType_decode_uper; +per_type_encoder_f OtherSublassType_encode_uper; +per_type_decoder_f OtherSublassType_decode_aper; +per_type_encoder_f OtherSublassType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OtherSublassType_H_ */ +#include diff --git a/vcits/cpm/OverlayLaneList.h b/vcits/cpm/OverlayLaneList.h new file mode 100644 index 0000000..f5d2e9c --- /dev/null +++ b/vcits/cpm/OverlayLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _OverlayLaneList_H_ +#define _OverlayLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OverlayLaneList */ +typedef struct OverlayLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} OverlayLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OverlayLaneList; +extern asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_OverlayLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _OverlayLaneList_H_ */ +#include diff --git a/vcits/cpm/PathDeltaTime.h b/vcits/cpm/PathDeltaTime.h new file mode 100644 index 0000000..fdf6f39 --- /dev/null +++ b/vcits/cpm/PathDeltaTime.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PathDeltaTime_H_ +#define _PathDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PathDeltaTime { + PathDeltaTime_tenMilliSecondsInPast = 1 +} e_PathDeltaTime; + +/* PathDeltaTime */ +typedef long PathDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PathDeltaTime; +asn_struct_free_f PathDeltaTime_free; +asn_struct_print_f PathDeltaTime_print; +asn_constr_check_f PathDeltaTime_constraint; +ber_type_decoder_f PathDeltaTime_decode_ber; +der_type_encoder_f PathDeltaTime_encode_der; +xer_type_decoder_f PathDeltaTime_decode_xer; +xer_type_encoder_f PathDeltaTime_encode_xer; +oer_type_decoder_f PathDeltaTime_decode_oer; +oer_type_encoder_f PathDeltaTime_encode_oer; +per_type_decoder_f PathDeltaTime_decode_uper; +per_type_encoder_f PathDeltaTime_encode_uper; +per_type_decoder_f PathDeltaTime_decode_aper; +per_type_encoder_f PathDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathDeltaTime_H_ */ +#include diff --git a/vcits/cpm/PathHistory.h b/vcits/cpm/PathHistory.h new file mode 100644 index 0000000..78f9a4a --- /dev/null +++ b/vcits/cpm/PathHistory.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PathHistory_H_ +#define _PathHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathPoint; + +/* PathHistory */ +typedef struct PathHistory { + A_SEQUENCE_OF(struct PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathHistory; +extern asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_PathHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_PathHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathHistory_H_ */ +#include diff --git a/vcits/cpm/PathPoint.h b/vcits/cpm/PathPoint.h new file mode 100644 index 0000000..a808d49 --- /dev/null +++ b/vcits/cpm/PathPoint.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PathPoint_H_ +#define _PathPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PathPoint */ +typedef struct PathPoint { + DeltaReferencePosition_t pathPosition; + PathDeltaTime_t *pathDeltaTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_PathPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathPoint_H_ */ +#include diff --git a/vcits/cpm/PedestrianBicycleDetect.h b/vcits/cpm/PedestrianBicycleDetect.h new file mode 100644 index 0000000..dfe215f --- /dev/null +++ b/vcits/cpm/PedestrianBicycleDetect.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PedestrianBicycleDetect_H_ +#define _PedestrianBicycleDetect_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PedestrianBicycleDetect */ +typedef BOOLEAN_t PedestrianBicycleDetect_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect; +asn_struct_free_f PedestrianBicycleDetect_free; +asn_struct_print_f PedestrianBicycleDetect_print; +asn_constr_check_f PedestrianBicycleDetect_constraint; +ber_type_decoder_f PedestrianBicycleDetect_decode_ber; +der_type_encoder_f PedestrianBicycleDetect_encode_der; +xer_type_decoder_f PedestrianBicycleDetect_decode_xer; +xer_type_encoder_f PedestrianBicycleDetect_encode_xer; +oer_type_decoder_f PedestrianBicycleDetect_decode_oer; +oer_type_encoder_f PedestrianBicycleDetect_encode_oer; +per_type_decoder_f PedestrianBicycleDetect_decode_uper; +per_type_encoder_f PedestrianBicycleDetect_encode_uper; +per_type_decoder_f PedestrianBicycleDetect_decode_aper; +per_type_encoder_f PedestrianBicycleDetect_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PedestrianBicycleDetect_H_ */ +#include diff --git a/vcits/cpm/PerceivedObject.h b/vcits/cpm/PerceivedObject.h new file mode 100644 index 0000000..e62c8c6 --- /dev/null +++ b/vcits/cpm/PerceivedObject.h @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PerceivedObject_H_ +#define _PerceivedObject_H_ + + +#include + +/* Including external dependencies */ +#include "Identifier.h" +#include "TimeOfMeasurement.h" +#include "ObjectAge.h" +#include "ObjectConfidence.h" +#include "ObjectDistanceWithConfidence.h" +#include "SpeedExtended.h" +#include "ObjectRefPoint.h" +#include "DynamicStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SensorIdList; +struct ObjectDistanceWithConfidence; +struct SpeedExtended; +struct LongitudinalAcceleration; +struct LateralAcceleration; +struct VerticalAcceleration; +struct CartesianAngle; +struct ObjectDimension; +struct ObjectClassDescription; +struct MatchedPosition; + +/* PerceivedObject */ +typedef struct PerceivedObject { + Identifier_t objectID; + struct SensorIdList *sensorIDList; /* OPTIONAL */ + TimeOfMeasurement_t timeOfMeasurement; + ObjectAge_t *objectAge; /* OPTIONAL */ + ObjectConfidence_t objectConfidence; /* DEFAULT 0 */ + ObjectDistanceWithConfidence_t xDistance; + ObjectDistanceWithConfidence_t yDistance; + struct ObjectDistanceWithConfidence *zDistance; /* OPTIONAL */ + SpeedExtended_t xSpeed; + SpeedExtended_t ySpeed; + struct SpeedExtended *zSpeed; /* OPTIONAL */ + struct LongitudinalAcceleration *xAcceleration; /* OPTIONAL */ + struct LateralAcceleration *yAcceleration; /* OPTIONAL */ + struct VerticalAcceleration *zAcceleration; /* OPTIONAL */ + struct CartesianAngle *yawAngle; /* OPTIONAL */ + struct ObjectDimension *planarObjectDimension1; /* OPTIONAL */ + struct ObjectDimension *planarObjectDimension2; /* OPTIONAL */ + struct ObjectDimension *verticalObjectDimension; /* OPTIONAL */ + ObjectRefPoint_t objectRefPoint; /* DEFAULT 0 */ + DynamicStatus_t *dynamicStatus; /* OPTIONAL */ + struct ObjectClassDescription *classification; /* OPTIONAL */ + struct MatchedPosition *matchedPosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PerceivedObject_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PerceivedObject; +extern asn_SEQUENCE_specifics_t asn_SPC_PerceivedObject_specs_1; +extern asn_TYPE_member_t asn_MBR_PerceivedObject_1[22]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PerceivedObject_H_ */ +#include diff --git a/vcits/cpm/PerceivedObjectContainer.h b/vcits/cpm/PerceivedObjectContainer.h new file mode 100644 index 0000000..b4f7689 --- /dev/null +++ b/vcits/cpm/PerceivedObjectContainer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PerceivedObjectContainer_H_ +#define _PerceivedObjectContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PerceivedObject; + +/* PerceivedObjectContainer */ +typedef struct PerceivedObjectContainer { + A_SEQUENCE_OF(struct PerceivedObject) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PerceivedObjectContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PerceivedObjectContainer; +extern asn_SET_OF_specifics_t asn_SPC_PerceivedObjectContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_PerceivedObjectContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_PerceivedObjectContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PerceivedObjectContainer_H_ */ +#include diff --git a/vcits/cpm/PerceivedObjectContainerSegmentInfo.h b/vcits/cpm/PerceivedObjectContainerSegmentInfo.h new file mode 100644 index 0000000..955488e --- /dev/null +++ b/vcits/cpm/PerceivedObjectContainerSegmentInfo.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PerceivedObjectContainerSegmentInfo_H_ +#define _PerceivedObjectContainerSegmentInfo_H_ + + +#include + +/* Including external dependencies */ +#include "SegmentCount.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PerceivedObjectContainerSegmentInfo */ +typedef struct PerceivedObjectContainerSegmentInfo { + SegmentCount_t totalMsgSegments; + SegmentCount_t thisSegmentNum; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PerceivedObjectContainerSegmentInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PerceivedObjectContainerSegmentInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_PerceivedObjectContainerSegmentInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_PerceivedObjectContainerSegmentInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PerceivedObjectContainerSegmentInfo_H_ */ +#include diff --git a/vcits/cpm/PerformanceClass.h b/vcits/cpm/PerformanceClass.h new file mode 100644 index 0000000..db131ac --- /dev/null +++ b/vcits/cpm/PerformanceClass.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PerformanceClass_H_ +#define _PerformanceClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PerformanceClass { + PerformanceClass_unavailable = 0, + PerformanceClass_performanceClassA = 1, + PerformanceClass_performanceClassB = 2 +} e_PerformanceClass; + +/* PerformanceClass */ +typedef long PerformanceClass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PerformanceClass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PerformanceClass; +asn_struct_free_f PerformanceClass_free; +asn_struct_print_f PerformanceClass_print; +asn_constr_check_f PerformanceClass_constraint; +ber_type_decoder_f PerformanceClass_decode_ber; +der_type_encoder_f PerformanceClass_encode_der; +xer_type_decoder_f PerformanceClass_decode_xer; +xer_type_encoder_f PerformanceClass_encode_xer; +oer_type_decoder_f PerformanceClass_decode_oer; +oer_type_encoder_f PerformanceClass_encode_oer; +per_type_decoder_f PerformanceClass_decode_uper; +per_type_encoder_f PerformanceClass_encode_uper; +per_type_decoder_f PerformanceClass_decode_aper; +per_type_encoder_f PerformanceClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PerformanceClass_H_ */ +#include diff --git a/vcits/cpm/PersonSubclass.h b/vcits/cpm/PersonSubclass.h new file mode 100644 index 0000000..d9d8de8 --- /dev/null +++ b/vcits/cpm/PersonSubclass.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PersonSubclass_H_ +#define _PersonSubclass_H_ + + +#include + +/* Including external dependencies */ +#include "PersonSubclassType.h" +#include "ClassConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PersonSubclass */ +typedef struct PersonSubclass { + PersonSubclassType_t type; /* DEFAULT 0 */ + ClassConfidence_t confidence; /* DEFAULT 0 */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PersonSubclass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PersonSubclass; +extern asn_SEQUENCE_specifics_t asn_SPC_PersonSubclass_specs_1; +extern asn_TYPE_member_t asn_MBR_PersonSubclass_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PersonSubclass_H_ */ +#include diff --git a/vcits/cpm/PersonSubclassType.h b/vcits/cpm/PersonSubclassType.h new file mode 100644 index 0000000..622b200 --- /dev/null +++ b/vcits/cpm/PersonSubclassType.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PersonSubclassType_H_ +#define _PersonSubclassType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PersonSubclassType { + PersonSubclassType_unknown = 0, + PersonSubclassType_pedestrian = 1, + PersonSubclassType_personInWheelchair = 2, + PersonSubclassType_cyclist = 3, + PersonSubclassType_personWithStroller = 4, + PersonSubclassType_personOnSkates = 5, + PersonSubclassType_personGroup = 6 +} e_PersonSubclassType; + +/* PersonSubclassType */ +typedef long PersonSubclassType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PersonSubclassType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PersonSubclassType; +asn_struct_free_f PersonSubclassType_free; +asn_struct_print_f PersonSubclassType_print; +asn_constr_check_f PersonSubclassType_constraint; +ber_type_decoder_f PersonSubclassType_decode_ber; +der_type_encoder_f PersonSubclassType_encode_der; +xer_type_decoder_f PersonSubclassType_decode_xer; +xer_type_encoder_f PersonSubclassType_encode_xer; +oer_type_decoder_f PersonSubclassType_decode_oer; +oer_type_encoder_f PersonSubclassType_encode_oer; +per_type_decoder_f PersonSubclassType_decode_uper; +per_type_encoder_f PersonSubclassType_encode_uper; +per_type_decoder_f PersonSubclassType_decode_aper; +per_type_encoder_f PersonSubclassType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PersonSubclassType_H_ */ +#include diff --git a/vcits/cpm/PhoneNumber.h b/vcits/cpm/PhoneNumber.h new file mode 100644 index 0000000..de85ec8 --- /dev/null +++ b/vcits/cpm/PhoneNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PhoneNumber_H_ +#define _PhoneNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PhoneNumber */ +typedef NumericString_t PhoneNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PhoneNumber; +asn_struct_free_f PhoneNumber_free; +asn_struct_print_f PhoneNumber_print; +asn_constr_check_f PhoneNumber_constraint; +ber_type_decoder_f PhoneNumber_decode_ber; +der_type_encoder_f PhoneNumber_encode_der; +xer_type_decoder_f PhoneNumber_decode_xer; +xer_type_encoder_f PhoneNumber_encode_xer; +oer_type_decoder_f PhoneNumber_decode_oer; +oer_type_encoder_f PhoneNumber_encode_oer; +per_type_decoder_f PhoneNumber_decode_uper; +per_type_encoder_f PhoneNumber_encode_uper; +per_type_decoder_f PhoneNumber_decode_aper; +per_type_encoder_f PhoneNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PhoneNumber_H_ */ +#include diff --git a/vcits/cpm/PolyPointList.h b/vcits/cpm/PolyPointList.h new file mode 100644 index 0000000..11748af --- /dev/null +++ b/vcits/cpm/PolyPointList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PolyPointList_H_ +#define _PolyPointList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct OffsetPoint; + +/* PolyPointList */ +typedef struct PolyPointList { + A_SEQUENCE_OF(struct OffsetPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PolyPointList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PolyPointList; +extern asn_SET_OF_specifics_t asn_SPC_PolyPointList_specs_1; +extern asn_TYPE_member_t asn_MBR_PolyPointList_1[1]; +extern asn_per_constraints_t asn_PER_type_PolyPointList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PolyPointList_H_ */ +#include diff --git a/vcits/cpm/PosCentMass.h b/vcits/cpm/PosCentMass.h new file mode 100644 index 0000000..0550325 --- /dev/null +++ b/vcits/cpm/PosCentMass.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PosCentMass_H_ +#define _PosCentMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosCentMass { + PosCentMass_tenCentimeters = 1, + PosCentMass_unavailable = 63 +} e_PosCentMass; + +/* PosCentMass */ +typedef long PosCentMass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosCentMass; +asn_struct_free_f PosCentMass_free; +asn_struct_print_f PosCentMass_print; +asn_constr_check_f PosCentMass_constraint; +ber_type_decoder_f PosCentMass_decode_ber; +der_type_encoder_f PosCentMass_encode_der; +xer_type_decoder_f PosCentMass_decode_xer; +xer_type_encoder_f PosCentMass_encode_xer; +oer_type_decoder_f PosCentMass_decode_oer; +oer_type_encoder_f PosCentMass_encode_oer; +per_type_decoder_f PosCentMass_decode_uper; +per_type_encoder_f PosCentMass_encode_uper; +per_type_decoder_f PosCentMass_decode_aper; +per_type_encoder_f PosCentMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosCentMass_H_ */ +#include diff --git a/vcits/cpm/PosConfidenceEllipse.h b/vcits/cpm/PosConfidenceEllipse.h new file mode 100644 index 0000000..772a0a3 --- /dev/null +++ b/vcits/cpm/PosConfidenceEllipse.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PosConfidenceEllipse_H_ +#define _PosConfidenceEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "SemiAxisLength.h" +#include "HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PosConfidenceEllipse */ +typedef struct PosConfidenceEllipse { + SemiAxisLength_t semiMajorConfidence; + SemiAxisLength_t semiMinorConfidence; + HeadingValue_t semiMajorOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PosConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosConfidenceEllipse_H_ */ +#include diff --git a/vcits/cpm/PosFrontAx.h b/vcits/cpm/PosFrontAx.h new file mode 100644 index 0000000..272732c --- /dev/null +++ b/vcits/cpm/PosFrontAx.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PosFrontAx_H_ +#define _PosFrontAx_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosFrontAx { + PosFrontAx_tenCentimeters = 1, + PosFrontAx_unavailable = 20 +} e_PosFrontAx; + +/* PosFrontAx */ +typedef long PosFrontAx_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosFrontAx; +asn_struct_free_f PosFrontAx_free; +asn_struct_print_f PosFrontAx_print; +asn_constr_check_f PosFrontAx_constraint; +ber_type_decoder_f PosFrontAx_decode_ber; +der_type_encoder_f PosFrontAx_encode_der; +xer_type_decoder_f PosFrontAx_decode_xer; +xer_type_encoder_f PosFrontAx_encode_xer; +oer_type_decoder_f PosFrontAx_decode_oer; +oer_type_encoder_f PosFrontAx_encode_oer; +per_type_decoder_f PosFrontAx_decode_uper; +per_type_encoder_f PosFrontAx_encode_uper; +per_type_decoder_f PosFrontAx_decode_aper; +per_type_encoder_f PosFrontAx_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosFrontAx_H_ */ +#include diff --git a/vcits/cpm/PosLonCarr.h b/vcits/cpm/PosLonCarr.h new file mode 100644 index 0000000..b7f59dd --- /dev/null +++ b/vcits/cpm/PosLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PosLonCarr_H_ +#define _PosLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosLonCarr { + PosLonCarr_oneCentimeter = 1, + PosLonCarr_unavailable = 127 +} e_PosLonCarr; + +/* PosLonCarr */ +typedef long PosLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosLonCarr; +asn_struct_free_f PosLonCarr_free; +asn_struct_print_f PosLonCarr_print; +asn_constr_check_f PosLonCarr_constraint; +ber_type_decoder_f PosLonCarr_decode_ber; +der_type_encoder_f PosLonCarr_encode_der; +xer_type_decoder_f PosLonCarr_decode_xer; +xer_type_encoder_f PosLonCarr_encode_xer; +oer_type_decoder_f PosLonCarr_decode_oer; +oer_type_encoder_f PosLonCarr_encode_oer; +per_type_decoder_f PosLonCarr_decode_uper; +per_type_encoder_f PosLonCarr_encode_uper; +per_type_decoder_f PosLonCarr_decode_aper; +per_type_encoder_f PosLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosLonCarr_H_ */ +#include diff --git a/vcits/cpm/PosPillar.h b/vcits/cpm/PosPillar.h new file mode 100644 index 0000000..d457384 --- /dev/null +++ b/vcits/cpm/PosPillar.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PosPillar_H_ +#define _PosPillar_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosPillar { + PosPillar_tenCentimeters = 1, + PosPillar_unavailable = 30 +} e_PosPillar; + +/* PosPillar */ +typedef long PosPillar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PosPillar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PosPillar; +asn_struct_free_f PosPillar_free; +asn_struct_print_f PosPillar_print; +asn_constr_check_f PosPillar_constraint; +ber_type_decoder_f PosPillar_decode_ber; +der_type_encoder_f PosPillar_encode_der; +xer_type_decoder_f PosPillar_decode_xer; +xer_type_encoder_f PosPillar_encode_xer; +oer_type_decoder_f PosPillar_decode_oer; +oer_type_encoder_f PosPillar_encode_oer; +per_type_decoder_f PosPillar_decode_uper; +per_type_encoder_f PosPillar_encode_uper; +per_type_decoder_f PosPillar_decode_aper; +per_type_encoder_f PosPillar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosPillar_H_ */ +#include diff --git a/vcits/cpm/Position3D-addGrpC.h b/vcits/cpm/Position3D-addGrpC.h new file mode 100644 index 0000000..f1b2159 --- /dev/null +++ b/vcits/cpm/Position3D-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Position3D_addGrpC_H_ +#define _Position3D_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Position3D-addGrpC */ +typedef struct Position3D_addGrpC { + Altitude_t altitude; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_addGrpC_H_ */ +#include diff --git a/vcits/cpm/Position3D.h b/vcits/cpm/Position3D.h new file mode 100644 index 0000000..bb9c1b4 --- /dev/null +++ b/vcits/cpm/Position3D.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Position3D_H_ +#define _Position3D_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "Elevation.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_Position3D; + +/* Position3D */ +typedef struct Position3D { + Latitude_t lat; + Longitude_t Long; + Elevation_t *elevation; /* OPTIONAL */ + struct Position3D__regional { + A_SEQUENCE_OF(struct Reg_Position3D) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_H_ */ +#include diff --git a/vcits/cpm/PositionConfidence.h b/vcits/cpm/PositionConfidence.h new file mode 100644 index 0000000..2a7cfe3 --- /dev/null +++ b/vcits/cpm/PositionConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PositionConfidence_H_ +#define _PositionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionConfidence { + PositionConfidence_unavailable = 0, + PositionConfidence_a500m = 1, + PositionConfidence_a200m = 2, + PositionConfidence_a100m = 3, + PositionConfidence_a50m = 4, + PositionConfidence_a20m = 5, + PositionConfidence_a10m = 6, + PositionConfidence_a5m = 7, + PositionConfidence_a2m = 8, + PositionConfidence_a1m = 9, + PositionConfidence_a50cm = 10, + PositionConfidence_a20cm = 11, + PositionConfidence_a10cm = 12, + PositionConfidence_a5cm = 13, + PositionConfidence_a2cm = 14, + PositionConfidence_a1cm = 15 +} e_PositionConfidence; + +/* PositionConfidence */ +typedef long PositionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1; +asn_struct_free_f PositionConfidence_free; +asn_struct_print_f PositionConfidence_print; +asn_constr_check_f PositionConfidence_constraint; +ber_type_decoder_f PositionConfidence_decode_ber; +der_type_encoder_f PositionConfidence_encode_der; +xer_type_decoder_f PositionConfidence_decode_xer; +xer_type_encoder_f PositionConfidence_encode_xer; +oer_type_decoder_f PositionConfidence_decode_oer; +oer_type_encoder_f PositionConfidence_encode_oer; +per_type_decoder_f PositionConfidence_decode_uper; +per_type_encoder_f PositionConfidence_encode_uper; +per_type_decoder_f PositionConfidence_decode_aper; +per_type_encoder_f PositionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidence_H_ */ +#include diff --git a/vcits/cpm/PositionConfidenceSet.h b/vcits/cpm/PositionConfidenceSet.h new file mode 100644 index 0000000..83162a3 --- /dev/null +++ b/vcits/cpm/PositionConfidenceSet.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PositionConfidenceSet_H_ +#define _PositionConfidenceSet_H_ + + +#include + +/* Including external dependencies */ +#include "PositionConfidence.h" +#include "ElevationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionConfidenceSet */ +typedef struct PositionConfidenceSet { + PositionConfidence_t pos; + ElevationConfidence_t elevation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionConfidenceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidenceSet_H_ */ +#include diff --git a/vcits/cpm/PositionOfOccupants.h b/vcits/cpm/PositionOfOccupants.h new file mode 100644 index 0000000..6867279 --- /dev/null +++ b/vcits/cpm/PositionOfOccupants.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PositionOfOccupants_H_ +#define _PositionOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionOfOccupants { + PositionOfOccupants_row1LeftOccupied = 0, + PositionOfOccupants_row1RightOccupied = 1, + PositionOfOccupants_row1MidOccupied = 2, + PositionOfOccupants_row1NotDetectable = 3, + PositionOfOccupants_row1NotPresent = 4, + PositionOfOccupants_row2LeftOccupied = 5, + PositionOfOccupants_row2RightOccupied = 6, + PositionOfOccupants_row2MidOccupied = 7, + PositionOfOccupants_row2NotDetectable = 8, + PositionOfOccupants_row2NotPresent = 9, + PositionOfOccupants_row3LeftOccupied = 10, + PositionOfOccupants_row3RightOccupied = 11, + PositionOfOccupants_row3MidOccupied = 12, + PositionOfOccupants_row3NotDetectable = 13, + PositionOfOccupants_row3NotPresent = 14, + PositionOfOccupants_row4LeftOccupied = 15, + PositionOfOccupants_row4RightOccupied = 16, + PositionOfOccupants_row4MidOccupied = 17, + PositionOfOccupants_row4NotDetectable = 18, + PositionOfOccupants_row4NotPresent = 19 +} e_PositionOfOccupants; + +/* PositionOfOccupants */ +typedef BIT_STRING_t PositionOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants; +asn_struct_free_f PositionOfOccupants_free; +asn_struct_print_f PositionOfOccupants_print; +asn_constr_check_f PositionOfOccupants_constraint; +ber_type_decoder_f PositionOfOccupants_decode_ber; +der_type_encoder_f PositionOfOccupants_encode_der; +xer_type_decoder_f PositionOfOccupants_decode_xer; +xer_type_encoder_f PositionOfOccupants_encode_xer; +oer_type_decoder_f PositionOfOccupants_decode_oer; +oer_type_encoder_f PositionOfOccupants_encode_oer; +per_type_decoder_f PositionOfOccupants_decode_uper; +per_type_encoder_f PositionOfOccupants_encode_uper; +per_type_decoder_f PositionOfOccupants_decode_aper; +per_type_encoder_f PositionOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfOccupants_H_ */ +#include diff --git a/vcits/cpm/PositionOfPillars.h b/vcits/cpm/PositionOfPillars.h new file mode 100644 index 0000000..fa6e3a9 --- /dev/null +++ b/vcits/cpm/PositionOfPillars.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PositionOfPillars_H_ +#define _PositionOfPillars_H_ + + +#include + +/* Including external dependencies */ +#include "PosPillar.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionOfPillars */ +typedef struct PositionOfPillars { + A_SEQUENCE_OF(PosPillar_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionOfPillars_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfPillars; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfPillars_H_ */ +#include diff --git a/vcits/cpm/PositionalAccuracy.h b/vcits/cpm/PositionalAccuracy.h new file mode 100644 index 0000000..a046eac --- /dev/null +++ b/vcits/cpm/PositionalAccuracy.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PositionalAccuracy_H_ +#define _PositionalAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include "SemiMajorAxisAccuracy.h" +#include "SemiMinorAxisAccuracy.h" +#include "SemiMajorAxisOrientation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionalAccuracy */ +typedef struct PositionalAccuracy { + SemiMajorAxisAccuracy_t semiMajor; + SemiMinorAxisAccuracy_t semiMinor; + SemiMajorAxisOrientation_t orientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionalAccuracy_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionalAccuracy_H_ */ +#include diff --git a/vcits/cpm/PositioningSolutionType.h b/vcits/cpm/PositioningSolutionType.h new file mode 100644 index 0000000..d89f018 --- /dev/null +++ b/vcits/cpm/PositioningSolutionType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PositioningSolutionType_H_ +#define _PositioningSolutionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositioningSolutionType { + PositioningSolutionType_noPositioningSolution = 0, + PositioningSolutionType_sGNSS = 1, + PositioningSolutionType_dGNSS = 2, + PositioningSolutionType_sGNSSplusDR = 3, + PositioningSolutionType_dGNSSplusDR = 4, + PositioningSolutionType_dR = 5 + /* + * Enumeration is extensible + */ +} e_PositioningSolutionType; + +/* PositioningSolutionType */ +typedef long PositioningSolutionType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType; +asn_struct_free_f PositioningSolutionType_free; +asn_struct_print_f PositioningSolutionType_print; +asn_constr_check_f PositioningSolutionType_constraint; +ber_type_decoder_f PositioningSolutionType_decode_ber; +der_type_encoder_f PositioningSolutionType_encode_der; +xer_type_decoder_f PositioningSolutionType_decode_xer; +xer_type_encoder_f PositioningSolutionType_encode_xer; +oer_type_decoder_f PositioningSolutionType_decode_oer; +oer_type_encoder_f PositioningSolutionType_encode_oer; +per_type_decoder_f PositioningSolutionType_decode_uper; +per_type_encoder_f PositioningSolutionType_encode_uper; +per_type_decoder_f PositioningSolutionType_decode_aper; +per_type_encoder_f PositioningSolutionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositioningSolutionType_H_ */ +#include diff --git a/vcits/cpm/PostCrashSubCauseCode.h b/vcits/cpm/PostCrashSubCauseCode.h new file mode 100644 index 0000000..16536b6 --- /dev/null +++ b/vcits/cpm/PostCrashSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PostCrashSubCauseCode_H_ +#define _PostCrashSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PostCrashSubCauseCode { + PostCrashSubCauseCode_unavailable = 0, + PostCrashSubCauseCode_accidentWithoutECallTriggered = 1, + PostCrashSubCauseCode_accidentWithECallManuallyTriggered = 2, + PostCrashSubCauseCode_accidentWithECallAutomaticallyTriggered = 3, + PostCrashSubCauseCode_accidentWithECallTriggeredWithoutAccessToCellularNetwork = 4 +} e_PostCrashSubCauseCode; + +/* PostCrashSubCauseCode */ +typedef long PostCrashSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode; +asn_struct_free_f PostCrashSubCauseCode_free; +asn_struct_print_f PostCrashSubCauseCode_print; +asn_constr_check_f PostCrashSubCauseCode_constraint; +ber_type_decoder_f PostCrashSubCauseCode_decode_ber; +der_type_encoder_f PostCrashSubCauseCode_encode_der; +xer_type_decoder_f PostCrashSubCauseCode_decode_xer; +xer_type_encoder_f PostCrashSubCauseCode_encode_xer; +oer_type_decoder_f PostCrashSubCauseCode_decode_oer; +oer_type_encoder_f PostCrashSubCauseCode_encode_oer; +per_type_decoder_f PostCrashSubCauseCode_decode_uper; +per_type_encoder_f PostCrashSubCauseCode_encode_uper; +per_type_decoder_f PostCrashSubCauseCode_decode_aper; +per_type_encoder_f PostCrashSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PostCrashSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/PreemptPriorityList.h b/vcits/cpm/PreemptPriorityList.h new file mode 100644 index 0000000..d88e5a5 --- /dev/null +++ b/vcits/cpm/PreemptPriorityList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PreemptPriorityList_H_ +#define _PreemptPriorityList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalControlZone; + +/* PreemptPriorityList */ +typedef struct PreemptPriorityList { + A_SEQUENCE_OF(struct SignalControlZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PreemptPriorityList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList; +extern asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1; +extern asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[1]; +extern asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PreemptPriorityList_H_ */ +#include diff --git a/vcits/cpm/PrioritizationResponse.h b/vcits/cpm/PrioritizationResponse.h new file mode 100644 index 0000000..385b4a5 --- /dev/null +++ b/vcits/cpm/PrioritizationResponse.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PrioritizationResponse_H_ +#define _PrioritizationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "PrioritizationResponseStatus.h" +#include "SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PrioritizationResponse */ +typedef struct PrioritizationResponse { + StationID_t stationID; + PrioritizationResponseStatus_t priorState; + SignalGroupID_t signalGroup; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponse_H_ */ +#include diff --git a/vcits/cpm/PrioritizationResponseList.h b/vcits/cpm/PrioritizationResponseList.h new file mode 100644 index 0000000..ddba4e4 --- /dev/null +++ b/vcits/cpm/PrioritizationResponseList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PrioritizationResponseList_H_ +#define _PrioritizationResponseList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponse; + +/* PrioritizationResponseList */ +typedef struct PrioritizationResponseList { + A_SEQUENCE_OF(struct PrioritizationResponse) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList; +extern asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[1]; +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseList_H_ */ +#include diff --git a/vcits/cpm/PrioritizationResponseStatus.h b/vcits/cpm/PrioritizationResponseStatus.h new file mode 100644 index 0000000..b24124b --- /dev/null +++ b/vcits/cpm/PrioritizationResponseStatus.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PrioritizationResponseStatus_H_ +#define _PrioritizationResponseStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PrioritizationResponseStatus { + PrioritizationResponseStatus_unknown = 0, + PrioritizationResponseStatus_requested = 1, + PrioritizationResponseStatus_processing = 2, + PrioritizationResponseStatus_watchOtherTraffic = 3, + PrioritizationResponseStatus_granted = 4, + PrioritizationResponseStatus_rejected = 5, + PrioritizationResponseStatus_maxPresence = 6, + PrioritizationResponseStatus_reserviceLocked = 7 + /* + * Enumeration is extensible + */ +} e_PrioritizationResponseStatus; + +/* PrioritizationResponseStatus */ +typedef long PrioritizationResponseStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus; +extern const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1; +asn_struct_free_f PrioritizationResponseStatus_free; +asn_struct_print_f PrioritizationResponseStatus_print; +asn_constr_check_f PrioritizationResponseStatus_constraint; +ber_type_decoder_f PrioritizationResponseStatus_decode_ber; +der_type_encoder_f PrioritizationResponseStatus_encode_der; +xer_type_decoder_f PrioritizationResponseStatus_decode_xer; +xer_type_encoder_f PrioritizationResponseStatus_encode_xer; +oer_type_decoder_f PrioritizationResponseStatus_decode_oer; +oer_type_encoder_f PrioritizationResponseStatus_encode_oer; +per_type_decoder_f PrioritizationResponseStatus_decode_uper; +per_type_encoder_f PrioritizationResponseStatus_encode_uper; +per_type_decoder_f PrioritizationResponseStatus_decode_aper; +per_type_encoder_f PrioritizationResponseStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseStatus_H_ */ +#include diff --git a/vcits/cpm/PriorityRequestType.h b/vcits/cpm/PriorityRequestType.h new file mode 100644 index 0000000..6c717cf --- /dev/null +++ b/vcits/cpm/PriorityRequestType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PriorityRequestType_H_ +#define _PriorityRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PriorityRequestType { + PriorityRequestType_priorityRequestTypeReserved = 0, + PriorityRequestType_priorityRequest = 1, + PriorityRequestType_priorityRequestUpdate = 2, + PriorityRequestType_priorityCancellation = 3 + /* + * Enumeration is extensible + */ +} e_PriorityRequestType; + +/* PriorityRequestType */ +typedef long PriorityRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PriorityRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1; +asn_struct_free_f PriorityRequestType_free; +asn_struct_print_f PriorityRequestType_print; +asn_constr_check_f PriorityRequestType_constraint; +ber_type_decoder_f PriorityRequestType_decode_ber; +der_type_encoder_f PriorityRequestType_encode_der; +xer_type_decoder_f PriorityRequestType_decode_xer; +xer_type_encoder_f PriorityRequestType_encode_xer; +oer_type_decoder_f PriorityRequestType_decode_oer; +oer_type_encoder_f PriorityRequestType_encode_oer; +per_type_decoder_f PriorityRequestType_decode_uper; +per_type_encoder_f PriorityRequestType_encode_uper; +per_type_decoder_f PriorityRequestType_decode_aper; +per_type_encoder_f PriorityRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PriorityRequestType_H_ */ +#include diff --git a/vcits/cpm/ProtectedCommunicationZone.h b/vcits/cpm/ProtectedCommunicationZone.h new file mode 100644 index 0000000..fdb11c4 --- /dev/null +++ b/vcits/cpm/ProtectedCommunicationZone.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ProtectedCommunicationZone_H_ +#define _ProtectedCommunicationZone_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneType.h" +#include "TimestampIts.h" +#include "Latitude.h" +#include "Longitude.h" +#include "ProtectedZoneRadius.h" +#include "ProtectedZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedCommunicationZone */ +typedef struct ProtectedCommunicationZone { + ProtectedZoneType_t protectedZoneType; + TimestampIts_t *expiryTime; /* OPTIONAL */ + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + ProtectedZoneRadius_t *protectedZoneRadius; /* OPTIONAL */ + ProtectedZoneID_t *protectedZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone; +extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZone_H_ */ +#include diff --git a/vcits/cpm/ProtectedCommunicationZonesRSU.h b/vcits/cpm/ProtectedCommunicationZonesRSU.h new file mode 100644 index 0000000..4592359 --- /dev/null +++ b/vcits/cpm/ProtectedCommunicationZonesRSU.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ProtectedCommunicationZonesRSU_H_ +#define _ProtectedCommunicationZonesRSU_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtectedCommunicationZone; + +/* ProtectedCommunicationZonesRSU */ +typedef struct ProtectedCommunicationZonesRSU { + A_SEQUENCE_OF(struct ProtectedCommunicationZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZonesRSU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU; +extern asn_SET_OF_specifics_t asn_SPC_ProtectedCommunicationZonesRSU_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtectedCommunicationZonesRSU_1[1]; +extern asn_per_constraints_t asn_PER_type_ProtectedCommunicationZonesRSU_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZonesRSU_H_ */ +#include diff --git a/vcits/cpm/ProtectedZoneID.h b/vcits/cpm/ProtectedZoneID.h new file mode 100644 index 0000000..d83f21f --- /dev/null +++ b/vcits/cpm/ProtectedZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ProtectedZoneID_H_ +#define _ProtectedZoneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedZoneID */ +typedef long ProtectedZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID; +asn_struct_free_f ProtectedZoneID_free; +asn_struct_print_f ProtectedZoneID_print; +asn_constr_check_f ProtectedZoneID_constraint; +ber_type_decoder_f ProtectedZoneID_decode_ber; +der_type_encoder_f ProtectedZoneID_encode_der; +xer_type_decoder_f ProtectedZoneID_decode_xer; +xer_type_encoder_f ProtectedZoneID_encode_xer; +oer_type_decoder_f ProtectedZoneID_decode_oer; +oer_type_encoder_f ProtectedZoneID_encode_oer; +per_type_decoder_f ProtectedZoneID_decode_uper; +per_type_encoder_f ProtectedZoneID_encode_uper; +per_type_decoder_f ProtectedZoneID_decode_aper; +per_type_encoder_f ProtectedZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneID_H_ */ +#include diff --git a/vcits/cpm/ProtectedZoneRadius.h b/vcits/cpm/ProtectedZoneRadius.h new file mode 100644 index 0000000..6f06b92 --- /dev/null +++ b/vcits/cpm/ProtectedZoneRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ProtectedZoneRadius_H_ +#define _ProtectedZoneRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneRadius { + ProtectedZoneRadius_oneMeter = 1 +} e_ProtectedZoneRadius; + +/* ProtectedZoneRadius */ +typedef long ProtectedZoneRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius; +asn_struct_free_f ProtectedZoneRadius_free; +asn_struct_print_f ProtectedZoneRadius_print; +asn_constr_check_f ProtectedZoneRadius_constraint; +ber_type_decoder_f ProtectedZoneRadius_decode_ber; +der_type_encoder_f ProtectedZoneRadius_encode_der; +xer_type_decoder_f ProtectedZoneRadius_decode_xer; +xer_type_encoder_f ProtectedZoneRadius_encode_xer; +oer_type_decoder_f ProtectedZoneRadius_decode_oer; +oer_type_encoder_f ProtectedZoneRadius_encode_oer; +per_type_decoder_f ProtectedZoneRadius_decode_uper; +per_type_encoder_f ProtectedZoneRadius_encode_uper; +per_type_decoder_f ProtectedZoneRadius_decode_aper; +per_type_encoder_f ProtectedZoneRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneRadius_H_ */ +#include diff --git a/vcits/cpm/ProtectedZoneType.h b/vcits/cpm/ProtectedZoneType.h new file mode 100644 index 0000000..97b640e --- /dev/null +++ b/vcits/cpm/ProtectedZoneType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ProtectedZoneType_H_ +#define _ProtectedZoneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneType { + ProtectedZoneType_permanentCenDsrcTolling = 0, + /* + * Enumeration is extensible + */ + ProtectedZoneType_temporaryCenDsrcTolling = 1 +} e_ProtectedZoneType; + +/* ProtectedZoneType */ +typedef long ProtectedZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1; +asn_struct_free_f ProtectedZoneType_free; +asn_struct_print_f ProtectedZoneType_print; +asn_constr_check_f ProtectedZoneType_constraint; +ber_type_decoder_f ProtectedZoneType_decode_ber; +der_type_encoder_f ProtectedZoneType_encode_der; +xer_type_decoder_f ProtectedZoneType_decode_xer; +xer_type_encoder_f ProtectedZoneType_encode_xer; +oer_type_decoder_f ProtectedZoneType_decode_oer; +oer_type_encoder_f ProtectedZoneType_encode_oer; +per_type_decoder_f ProtectedZoneType_decode_uper; +per_type_encoder_f ProtectedZoneType_encode_uper; +per_type_decoder_f ProtectedZoneType_decode_aper; +per_type_encoder_f ProtectedZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneType_H_ */ +#include diff --git a/vcits/cpm/PtActivation.h b/vcits/cpm/PtActivation.h new file mode 100644 index 0000000..be0e7c7 --- /dev/null +++ b/vcits/cpm/PtActivation.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PtActivation_H_ +#define _PtActivation_H_ + + +#include + +/* Including external dependencies */ +#include "PtActivationType.h" +#include "PtActivationData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivation */ +typedef struct PtActivation { + PtActivationType_t ptActivationType; + PtActivationData_t ptActivationData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PtActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PtActivation; +extern asn_SEQUENCE_specifics_t asn_SPC_PtActivation_specs_1; +extern asn_TYPE_member_t asn_MBR_PtActivation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivation_H_ */ +#include diff --git a/vcits/cpm/PtActivationData.h b/vcits/cpm/PtActivationData.h new file mode 100644 index 0000000..9ef5a0d --- /dev/null +++ b/vcits/cpm/PtActivationData.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PtActivationData_H_ +#define _PtActivationData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivationData */ +typedef OCTET_STRING_t PtActivationData_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationData_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationData; +asn_struct_free_f PtActivationData_free; +asn_struct_print_f PtActivationData_print; +asn_constr_check_f PtActivationData_constraint; +ber_type_decoder_f PtActivationData_decode_ber; +der_type_encoder_f PtActivationData_encode_der; +xer_type_decoder_f PtActivationData_decode_xer; +xer_type_encoder_f PtActivationData_encode_xer; +oer_type_decoder_f PtActivationData_decode_oer; +oer_type_encoder_f PtActivationData_encode_oer; +per_type_decoder_f PtActivationData_decode_uper; +per_type_encoder_f PtActivationData_encode_uper; +per_type_decoder_f PtActivationData_decode_aper; +per_type_encoder_f PtActivationData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationData_H_ */ +#include diff --git a/vcits/cpm/PtActivationType.h b/vcits/cpm/PtActivationType.h new file mode 100644 index 0000000..523a9e9 --- /dev/null +++ b/vcits/cpm/PtActivationType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PtActivationType_H_ +#define _PtActivationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtActivationType { + PtActivationType_undefinedCodingType = 0, + PtActivationType_r09_16CodingType = 1, + PtActivationType_vdv_50149CodingType = 2 +} e_PtActivationType; + +/* PtActivationType */ +typedef long PtActivationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationType; +asn_struct_free_f PtActivationType_free; +asn_struct_print_f PtActivationType_print; +asn_constr_check_f PtActivationType_constraint; +ber_type_decoder_f PtActivationType_decode_ber; +der_type_encoder_f PtActivationType_encode_der; +xer_type_decoder_f PtActivationType_decode_xer; +xer_type_encoder_f PtActivationType_encode_xer; +oer_type_decoder_f PtActivationType_decode_oer; +oer_type_encoder_f PtActivationType_encode_oer; +per_type_decoder_f PtActivationType_decode_uper; +per_type_encoder_f PtActivationType_encode_uper; +per_type_decoder_f PtActivationType_decode_aper; +per_type_encoder_f PtActivationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationType_H_ */ +#include diff --git a/vcits/cpm/PtvRequestType.h b/vcits/cpm/PtvRequestType.h new file mode 100644 index 0000000..129861a --- /dev/null +++ b/vcits/cpm/PtvRequestType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PtvRequestType_H_ +#define _PtvRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtvRequestType { + PtvRequestType_preRequest = 0, + PtvRequestType_mainRequest = 1, + PtvRequestType_doorCloseRequest = 2, + PtvRequestType_cancelRequest = 3, + PtvRequestType_emergencyRequest = 4 + /* + * Enumeration is extensible + */ +} e_PtvRequestType; + +/* PtvRequestType */ +typedef long PtvRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtvRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtvRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PtvRequestType_specs_1; +asn_struct_free_f PtvRequestType_free; +asn_struct_print_f PtvRequestType_print; +asn_constr_check_f PtvRequestType_constraint; +ber_type_decoder_f PtvRequestType_decode_ber; +der_type_encoder_f PtvRequestType_encode_der; +xer_type_decoder_f PtvRequestType_decode_xer; +xer_type_encoder_f PtvRequestType_encode_xer; +oer_type_decoder_f PtvRequestType_decode_oer; +oer_type_encoder_f PtvRequestType_encode_oer; +per_type_decoder_f PtvRequestType_decode_uper; +per_type_encoder_f PtvRequestType_encode_uper; +per_type_decoder_f PtvRequestType_decode_aper; +per_type_encoder_f PtvRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtvRequestType_H_ */ +#include diff --git a/vcits/cpm/PublicTransportContainer.h b/vcits/cpm/PublicTransportContainer.h new file mode 100644 index 0000000..bf17607 --- /dev/null +++ b/vcits/cpm/PublicTransportContainer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _PublicTransportContainer_H_ +#define _PublicTransportContainer_H_ + + +#include + +/* Including external dependencies */ +#include "EmbarkationStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PtActivation; + +/* PublicTransportContainer */ +typedef struct PublicTransportContainer { + EmbarkationStatus_t embarkationStatus; + struct PtActivation *ptActivation; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PublicTransportContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PublicTransportContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_PublicTransportContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_PublicTransportContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PublicTransportContainer_H_ */ +#include diff --git a/vcits/cpm/RSUContainerHighFrequency.h b/vcits/cpm/RSUContainerHighFrequency.h new file mode 100644 index 0000000..caede86 --- /dev/null +++ b/vcits/cpm/RSUContainerHighFrequency.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RSUContainerHighFrequency_H_ +#define _RSUContainerHighFrequency_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtectedCommunicationZonesRSU; + +/* RSUContainerHighFrequency */ +typedef struct RSUContainerHighFrequency { + struct ProtectedCommunicationZonesRSU *protectedCommunicationZonesRSU; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RSUContainerHighFrequency_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RSUContainerHighFrequency; +extern asn_SEQUENCE_specifics_t asn_SPC_RSUContainerHighFrequency_specs_1; +extern asn_TYPE_member_t asn_MBR_RSUContainerHighFrequency_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RSUContainerHighFrequency_H_ */ +#include diff --git a/vcits/cpm/RTCM-Revision.h b/vcits/cpm/RTCM-Revision.h new file mode 100644 index 0000000..d035543 --- /dev/null +++ b/vcits/cpm/RTCM-Revision.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RTCM_Revision_H_ +#define _RTCM_Revision_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RTCM_Revision { + RTCM_Revision_unknown = 0, + RTCM_Revision_rtcmRev2 = 1, + RTCM_Revision_rtcmRev3 = 2, + RTCM_Revision_reserved = 3 + /* + * Enumeration is extensible + */ +} e_RTCM_Revision; + +/* RTCM-Revision */ +typedef long RTCM_Revision_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCM_Revision; +extern const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1; +asn_struct_free_f RTCM_Revision_free; +asn_struct_print_f RTCM_Revision_print; +asn_constr_check_f RTCM_Revision_constraint; +ber_type_decoder_f RTCM_Revision_decode_ber; +der_type_encoder_f RTCM_Revision_encode_der; +xer_type_decoder_f RTCM_Revision_decode_xer; +xer_type_encoder_f RTCM_Revision_encode_xer; +oer_type_decoder_f RTCM_Revision_decode_oer; +oer_type_encoder_f RTCM_Revision_encode_oer; +per_type_decoder_f RTCM_Revision_decode_uper; +per_type_encoder_f RTCM_Revision_encode_uper; +per_type_decoder_f RTCM_Revision_decode_aper; +per_type_encoder_f RTCM_Revision_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCM_Revision_H_ */ +#include diff --git a/vcits/cpm/RTCMcorrections.h b/vcits/cpm/RTCMcorrections.h new file mode 100644 index 0000000..0ec071e --- /dev/null +++ b/vcits/cpm/RTCMcorrections.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RTCMcorrections_H_ +#define _RTCMcorrections_H_ + + +#include + +/* Including external dependencies */ +#include "MsgCount.h" +#include "RTCM-Revision.h" +#include "MinuteOfTheYear.h" +#include "RTCMmessageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FullPositionVector; +struct RTCMheader; +struct Reg_RTCMcorrections; + +/* RTCMcorrections */ +typedef struct RTCMcorrections { + MsgCount_t msgCnt; + RTCM_Revision_t rev; + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + struct FullPositionVector *anchorPoint; /* OPTIONAL */ + struct RTCMheader *rtcmHeader; /* OPTIONAL */ + RTCMmessageList_t msgs; + struct RTCMcorrections__regional { + A_SEQUENCE_OF(struct Reg_RTCMcorrections) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMcorrections_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMcorrections; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMcorrections_H_ */ +#include diff --git a/vcits/cpm/RTCMheader.h b/vcits/cpm/RTCMheader.h new file mode 100644 index 0000000..7f8a670 --- /dev/null +++ b/vcits/cpm/RTCMheader.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RTCMheader_H_ +#define _RTCMheader_H_ + + +#include + +/* Including external dependencies */ +#include "GNSSstatus.h" +#include "AntennaOffsetSet.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMheader */ +typedef struct RTCMheader { + GNSSstatus_t status; + AntennaOffsetSet_t offsetSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMheader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMheader; +extern asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMheader_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMheader_H_ */ +#include diff --git a/vcits/cpm/RTCMmessage.h b/vcits/cpm/RTCMmessage.h new file mode 100644 index 0000000..3ad3f88 --- /dev/null +++ b/vcits/cpm/RTCMmessage.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RTCMmessage_H_ +#define _RTCMmessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessage */ +typedef OCTET_STRING_t RTCMmessage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessage; +asn_struct_free_f RTCMmessage_free; +asn_struct_print_f RTCMmessage_print; +asn_constr_check_f RTCMmessage_constraint; +ber_type_decoder_f RTCMmessage_decode_ber; +der_type_encoder_f RTCMmessage_encode_der; +xer_type_decoder_f RTCMmessage_decode_xer; +xer_type_encoder_f RTCMmessage_encode_xer; +oer_type_decoder_f RTCMmessage_decode_oer; +oer_type_encoder_f RTCMmessage_encode_oer; +per_type_decoder_f RTCMmessage_decode_uper; +per_type_encoder_f RTCMmessage_encode_uper; +per_type_decoder_f RTCMmessage_decode_aper; +per_type_encoder_f RTCMmessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessage_H_ */ +#include diff --git a/vcits/cpm/RTCMmessageList.h b/vcits/cpm/RTCMmessageList.h new file mode 100644 index 0000000..e0215bc --- /dev/null +++ b/vcits/cpm/RTCMmessageList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RTCMmessageList_H_ +#define _RTCMmessageList_H_ + + +#include + +/* Including external dependencies */ +#include "RTCMmessage.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessageList */ +typedef struct RTCMmessageList { + A_SEQUENCE_OF(RTCMmessage_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMmessageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessageList; +extern asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMmessageList_1[1]; +extern asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessageList_H_ */ +#include diff --git a/vcits/cpm/Radius.h b/vcits/cpm/Radius.h new file mode 100644 index 0000000..218ba6f --- /dev/null +++ b/vcits/cpm/Radius.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Radius_H_ +#define _Radius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Radius { + Radius_zeroPointOneMeter = 1, + Radius_oneMeter = 10 +} e_Radius; + +/* Radius */ +typedef long Radius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Radius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Radius; +asn_struct_free_f Radius_free; +asn_struct_print_f Radius_print; +asn_constr_check_f Radius_constraint; +ber_type_decoder_f Radius_decode_ber; +der_type_encoder_f Radius_encode_der; +xer_type_decoder_f Radius_decode_xer; +xer_type_encoder_f Radius_encode_xer; +oer_type_decoder_f Radius_decode_oer; +oer_type_encoder_f Radius_encode_oer; +per_type_decoder_f Radius_decode_uper; +per_type_encoder_f Radius_encode_uper; +per_type_decoder_f Radius_decode_aper; +per_type_encoder_f Radius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Radius_H_ */ +#include diff --git a/vcits/cpm/Range.h b/vcits/cpm/Range.h new file mode 100644 index 0000000..e945e6c --- /dev/null +++ b/vcits/cpm/Range.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Range_H_ +#define _Range_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Range { + Range_zeroPointOneMeter = 1, + Range_oneMeter = 10 +} e_Range; + +/* Range */ +typedef long Range_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Range_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Range; +asn_struct_free_f Range_free; +asn_struct_print_f Range_print; +asn_constr_check_f Range_constraint; +ber_type_decoder_f Range_decode_ber; +der_type_encoder_f Range_encode_der; +xer_type_decoder_f Range_decode_xer; +xer_type_encoder_f Range_encode_xer; +oer_type_decoder_f Range_decode_oer; +oer_type_encoder_f Range_encode_oer; +per_type_decoder_f Range_decode_uper; +per_type_encoder_f Range_encode_uper; +per_type_decoder_f Range_decode_aper; +per_type_encoder_f Range_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Range_H_ */ +#include diff --git a/vcits/cpm/RearOverhang.h b/vcits/cpm/RearOverhang.h new file mode 100644 index 0000000..1ee4e93 --- /dev/null +++ b/vcits/cpm/RearOverhang.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RearOverhang_H_ +#define _RearOverhang_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RearOverhang { + RearOverhang_zeroPointOneMeter = 1, + RearOverhang_oneMeter = 10 +} e_RearOverhang; + +/* RearOverhang */ +typedef long RearOverhang_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RearOverhang_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RearOverhang; +asn_struct_free_f RearOverhang_free; +asn_struct_print_f RearOverhang_print; +asn_constr_check_f RearOverhang_constraint; +ber_type_decoder_f RearOverhang_decode_ber; +der_type_encoder_f RearOverhang_encode_der; +xer_type_decoder_f RearOverhang_decode_xer; +xer_type_encoder_f RearOverhang_encode_xer; +oer_type_decoder_f RearOverhang_decode_oer; +oer_type_encoder_f RearOverhang_encode_oer; +per_type_decoder_f RearOverhang_decode_uper; +per_type_encoder_f RearOverhang_encode_uper; +per_type_decoder_f RearOverhang_decode_aper; +per_type_encoder_f RearOverhang_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RearOverhang_H_ */ +#include diff --git a/vcits/cpm/RefPointId.h b/vcits/cpm/RefPointId.h new file mode 100644 index 0000000..3d751a4 --- /dev/null +++ b/vcits/cpm/RefPointId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RefPointId_H_ +#define _RefPointId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RefPointId */ +typedef long RefPointId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RefPointId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RefPointId; +asn_struct_free_f RefPointId_free; +asn_struct_print_f RefPointId_print; +asn_constr_check_f RefPointId_constraint; +ber_type_decoder_f RefPointId_decode_ber; +der_type_encoder_f RefPointId_encode_der; +xer_type_decoder_f RefPointId_decode_xer; +xer_type_encoder_f RefPointId_encode_xer; +oer_type_decoder_f RefPointId_decode_oer; +oer_type_encoder_f RefPointId_encode_oer; +per_type_decoder_f RefPointId_decode_uper; +per_type_encoder_f RefPointId_encode_uper; +per_type_decoder_f RefPointId_decode_aper; +per_type_encoder_f RefPointId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RefPointId_H_ */ +#include diff --git a/vcits/cpm/ReferencePosition.h b/vcits/cpm/ReferencePosition.h new file mode 100644 index 0000000..9189d82 --- /dev/null +++ b/vcits/cpm/ReferencePosition.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ReferencePosition_H_ +#define _ReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "PosConfidenceEllipse.h" +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReferencePosition */ +typedef struct ReferencePosition { + Latitude_t latitude; + Longitude_t longitude; + PosConfidenceEllipse_t positionConfidenceEllipse; + Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ReferencePosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReferencePosition_H_ */ +#include diff --git a/vcits/cpm/RegionId.h b/vcits/cpm/RegionId.h new file mode 100644 index 0000000..27ba025 --- /dev/null +++ b/vcits/cpm/RegionId.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RegionId_H_ +#define _RegionId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegionId */ +typedef long RegionId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RegionId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RegionId; +asn_struct_free_f RegionId_free; +asn_struct_print_f RegionId_print; +asn_constr_check_f RegionId_constraint; +ber_type_decoder_f RegionId_decode_ber; +der_type_encoder_f RegionId_encode_der; +xer_type_decoder_f RegionId_decode_xer; +xer_type_encoder_f RegionId_encode_xer; +oer_type_decoder_f RegionId_decode_oer; +oer_type_encoder_f RegionId_encode_oer; +per_type_decoder_f RegionId_decode_uper; +per_type_encoder_f RegionId_encode_uper; +per_type_decoder_f RegionId_decode_aper; +per_type_encoder_f RegionId_encode_aper; +#define RegionId_noRegion ((RegionId_t)0) +#define RegionId_addGrpA ((RegionId_t)1) +#define RegionId_addGrpB ((RegionId_t)2) +#define RegionId_addGrpC ((RegionId_t)3) + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionId_H_ */ +#include diff --git a/vcits/cpm/RegionalExtension.h b/vcits/cpm/RegionalExtension.h new file mode 100644 index 0000000..f2a3a33 --- /dev/null +++ b/vcits/cpm/RegionalExtension.h @@ -0,0 +1,626 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RegionalExtension_H_ +#define _RegionalExtension_H_ + + +#include + +/* Including external dependencies */ +#include "RegionId.h" +#include +#include +#include "MapData-addGrpC.h" +#include +#include +#include +#include "ConnectionManeuverAssist-addGrpC.h" +#include "ConnectionTrajectory-addGrpC.h" +#include "IntersectionState-addGrpC.h" +#include "LaneAttributes-addGrpC.h" +#include "MovementEvent-addGrpC.h" +#include "NodeAttributeSet-addGrpC.h" +#include "Position3D-addGrpC.h" +#include "RequestorDescription-addGrpC.h" +#include "RestrictionUserType-addGrpC.h" +#include "SignalStatusPackage-addGrpC.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Reg_MapData__regExtValue_PR { + Reg_MapData__regExtValue_PR_NOTHING, /* No components present */ + Reg_MapData__regExtValue_PR_MapData_addGrpC +} Reg_MapData__regExtValue_PR; +typedef enum Reg_RTCMcorrections__regExtValue_PR { + Reg_RTCMcorrections__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RTCMcorrections__regExtValue_PR; +typedef enum Reg_SPAT__regExtValue_PR { + Reg_SPAT__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SPAT__regExtValue_PR; +typedef enum Reg_SignalRequestMessage__regExtValue_PR { + Reg_SignalRequestMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestMessage__regExtValue_PR; +typedef enum Reg_SignalStatusMessage__regExtValue_PR { + Reg_SignalStatusMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatusMessage__regExtValue_PR; +typedef enum Reg_AdvisorySpeed__regExtValue_PR { + Reg_AdvisorySpeed__regExtValue_PR_NOTHING /* No components present */ + +} Reg_AdvisorySpeed__regExtValue_PR; +typedef enum Reg_ComputedLane__regExtValue_PR { + Reg_ComputedLane__regExtValue_PR_NOTHING /* No components present */ + +} Reg_ComputedLane__regExtValue_PR; +typedef enum Reg_ConnectionManeuverAssist__regExtValue_PR { + Reg_ConnectionManeuverAssist__regExtValue_PR_NOTHING, /* No components present */ + Reg_ConnectionManeuverAssist__regExtValue_PR_ConnectionManeuverAssist_addGrpC +} Reg_ConnectionManeuverAssist__regExtValue_PR; +typedef enum Reg_GenericLane__regExtValue_PR { + Reg_GenericLane__regExtValue_PR_NOTHING, /* No components present */ + Reg_GenericLane__regExtValue_PR_ConnectionTrajectory_addGrpC +} Reg_GenericLane__regExtValue_PR; +typedef enum Reg_IntersectionGeometry__regExtValue_PR { + Reg_IntersectionGeometry__regExtValue_PR_NOTHING /* No components present */ + +} Reg_IntersectionGeometry__regExtValue_PR; +typedef enum Reg_IntersectionState__regExtValue_PR { + Reg_IntersectionState__regExtValue_PR_NOTHING, /* No components present */ + Reg_IntersectionState__regExtValue_PR_IntersectionState_addGrpC +} Reg_IntersectionState__regExtValue_PR; +typedef enum Reg_LaneAttributes__regExtValue_PR { + Reg_LaneAttributes__regExtValue_PR_NOTHING, /* No components present */ + Reg_LaneAttributes__regExtValue_PR_LaneAttributes_addGrpC +} Reg_LaneAttributes__regExtValue_PR; +typedef enum Reg_LaneDataAttribute__regExtValue_PR { + Reg_LaneDataAttribute__regExtValue_PR_NOTHING /* No components present */ + +} Reg_LaneDataAttribute__regExtValue_PR; +typedef enum Reg_MovementEvent__regExtValue_PR { + Reg_MovementEvent__regExtValue_PR_NOTHING, /* No components present */ + Reg_MovementEvent__regExtValue_PR_MovementEvent_addGrpC +} Reg_MovementEvent__regExtValue_PR; +typedef enum Reg_MovementState__regExtValue_PR { + Reg_MovementState__regExtValue_PR_NOTHING /* No components present */ + +} Reg_MovementState__regExtValue_PR; +typedef enum Reg_NodeAttributeSetXY__regExtValue_PR { + Reg_NodeAttributeSetXY__regExtValue_PR_NOTHING, /* No components present */ + Reg_NodeAttributeSetXY__regExtValue_PR_NodeAttributeSet_addGrpC +} Reg_NodeAttributeSetXY__regExtValue_PR; +typedef enum Reg_NodeOffsetPointXY__regExtValue_PR { + Reg_NodeOffsetPointXY__regExtValue_PR_NOTHING /* No components present */ + +} Reg_NodeOffsetPointXY__regExtValue_PR; +typedef enum Reg_Position3D__regExtValue_PR { + Reg_Position3D__regExtValue_PR_NOTHING, /* No components present */ + Reg_Position3D__regExtValue_PR_Position3D_addGrpC +} Reg_Position3D__regExtValue_PR; +typedef enum Reg_RequestorDescription__regExtValue_PR { + Reg_RequestorDescription__regExtValue_PR_NOTHING, /* No components present */ + Reg_RequestorDescription__regExtValue_PR_RequestorDescription_addGrpC +} Reg_RequestorDescription__regExtValue_PR; +typedef enum Reg_RequestorType__regExtValue_PR { + Reg_RequestorType__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RequestorType__regExtValue_PR; +typedef enum Reg_RestrictionUserType__regExtValue_PR { + Reg_RestrictionUserType__regExtValue_PR_NOTHING, /* No components present */ + Reg_RestrictionUserType__regExtValue_PR_RestrictionUserType_addGrpC +} Reg_RestrictionUserType__regExtValue_PR; +typedef enum Reg_RoadSegment__regExtValue_PR { + Reg_RoadSegment__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RoadSegment__regExtValue_PR; +typedef enum Reg_SignalControlZone__regExtValue_PR { + Reg_SignalControlZone__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalControlZone__regExtValue_PR; +typedef enum Reg_SignalRequest__regExtValue_PR { + Reg_SignalRequest__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequest__regExtValue_PR; +typedef enum Reg_SignalRequestPackage__regExtValue_PR { + Reg_SignalRequestPackage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestPackage__regExtValue_PR; +typedef enum Reg_SignalStatus__regExtValue_PR { + Reg_SignalStatus__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatus__regExtValue_PR; +typedef enum Reg_SignalStatusPackage__regExtValue_PR { + Reg_SignalStatusPackage__regExtValue_PR_NOTHING, /* No components present */ + Reg_SignalStatusPackage__regExtValue_PR_SignalStatusPackage_addGrpC +} Reg_SignalStatusPackage__regExtValue_PR; + +/* RegionalExtension */ +typedef struct Reg_MapData { + RegionId_t regionId; + struct Reg_MapData__regExtValue { + Reg_MapData__regExtValue_PR present; + union Reg_MapData__regExtValue_u { + MapData_addGrpC_t MapData_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MapData_t; +typedef struct Reg_RTCMcorrections { + RegionId_t regionId; + struct Reg_RTCMcorrections__regExtValue { + Reg_RTCMcorrections__regExtValue_PR present; + union Reg_RTCMcorrections__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RTCMcorrections_t; +typedef struct Reg_SPAT { + RegionId_t regionId; + struct Reg_SPAT__regExtValue { + Reg_SPAT__regExtValue_PR present; + union Reg_SPAT__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SPAT_t; +typedef struct Reg_SignalRequestMessage { + RegionId_t regionId; + struct Reg_SignalRequestMessage__regExtValue { + Reg_SignalRequestMessage__regExtValue_PR present; + union Reg_SignalRequestMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestMessage_t; +typedef struct Reg_SignalStatusMessage { + RegionId_t regionId; + struct Reg_SignalStatusMessage__regExtValue { + Reg_SignalStatusMessage__regExtValue_PR present; + union Reg_SignalStatusMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusMessage_t; +typedef struct Reg_AdvisorySpeed { + RegionId_t regionId; + struct Reg_AdvisorySpeed__regExtValue { + Reg_AdvisorySpeed__regExtValue_PR present; + union Reg_AdvisorySpeed__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_AdvisorySpeed_t; +typedef struct Reg_ComputedLane { + RegionId_t regionId; + struct Reg_ComputedLane__regExtValue { + Reg_ComputedLane__regExtValue_PR present; + union Reg_ComputedLane__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ComputedLane_t; +typedef struct Reg_ConnectionManeuverAssist { + RegionId_t regionId; + struct Reg_ConnectionManeuverAssist__regExtValue { + Reg_ConnectionManeuverAssist__regExtValue_PR present; + union Reg_ConnectionManeuverAssist__regExtValue_u { + ConnectionManeuverAssist_addGrpC_t ConnectionManeuverAssist_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ConnectionManeuverAssist_t; +typedef struct Reg_GenericLane { + RegionId_t regionId; + struct Reg_GenericLane__regExtValue { + Reg_GenericLane__regExtValue_PR present; + union Reg_GenericLane__regExtValue_u { + ConnectionTrajectory_addGrpC_t ConnectionTrajectory_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_GenericLane_t; +typedef struct Reg_IntersectionGeometry { + RegionId_t regionId; + struct Reg_IntersectionGeometry__regExtValue { + Reg_IntersectionGeometry__regExtValue_PR present; + union Reg_IntersectionGeometry__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionGeometry_t; +typedef struct Reg_IntersectionState { + RegionId_t regionId; + struct Reg_IntersectionState__regExtValue { + Reg_IntersectionState__regExtValue_PR present; + union Reg_IntersectionState__regExtValue_u { + IntersectionState_addGrpC_t IntersectionState_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionState_t; +typedef struct Reg_LaneAttributes { + RegionId_t regionId; + struct Reg_LaneAttributes__regExtValue { + Reg_LaneAttributes__regExtValue_PR present; + union Reg_LaneAttributes__regExtValue_u { + LaneAttributes_addGrpC_t LaneAttributes_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneAttributes_t; +typedef struct Reg_LaneDataAttribute { + RegionId_t regionId; + struct Reg_LaneDataAttribute__regExtValue { + Reg_LaneDataAttribute__regExtValue_PR present; + union Reg_LaneDataAttribute__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneDataAttribute_t; +typedef struct Reg_MovementEvent { + RegionId_t regionId; + struct Reg_MovementEvent__regExtValue { + Reg_MovementEvent__regExtValue_PR present; + union Reg_MovementEvent__regExtValue_u { + MovementEvent_addGrpC_t MovementEvent_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementEvent_t; +typedef struct Reg_MovementState { + RegionId_t regionId; + struct Reg_MovementState__regExtValue { + Reg_MovementState__regExtValue_PR present; + union Reg_MovementState__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementState_t; +typedef struct Reg_NodeAttributeSetXY { + RegionId_t regionId; + struct Reg_NodeAttributeSetXY__regExtValue { + Reg_NodeAttributeSetXY__regExtValue_PR present; + union Reg_NodeAttributeSetXY__regExtValue_u { + NodeAttributeSet_addGrpC_t NodeAttributeSet_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeAttributeSetXY_t; +typedef struct Reg_NodeOffsetPointXY { + RegionId_t regionId; + struct Reg_NodeOffsetPointXY__regExtValue { + Reg_NodeOffsetPointXY__regExtValue_PR present; + union Reg_NodeOffsetPointXY__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeOffsetPointXY_t; +typedef struct Reg_Position3D { + RegionId_t regionId; + struct Reg_Position3D__regExtValue { + Reg_Position3D__regExtValue_PR present; + union Reg_Position3D__regExtValue_u { + Position3D_addGrpC_t Position3D_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_Position3D_t; +typedef struct Reg_RequestorDescription { + RegionId_t regionId; + struct Reg_RequestorDescription__regExtValue { + Reg_RequestorDescription__regExtValue_PR present; + union Reg_RequestorDescription__regExtValue_u { + RequestorDescription_addGrpC_t RequestorDescription_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorDescription_t; +typedef struct Reg_RequestorType { + RegionId_t regionId; + struct Reg_RequestorType__regExtValue { + Reg_RequestorType__regExtValue_PR present; + union Reg_RequestorType__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorType_t; +typedef struct Reg_RestrictionUserType { + RegionId_t regionId; + struct Reg_RestrictionUserType__regExtValue { + Reg_RestrictionUserType__regExtValue_PR present; + union Reg_RestrictionUserType__regExtValue_u { + RestrictionUserType_addGrpC_t RestrictionUserType_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RestrictionUserType_t; +typedef struct Reg_RoadSegment { + RegionId_t regionId; + struct Reg_RoadSegment__regExtValue { + Reg_RoadSegment__regExtValue_PR present; + union Reg_RoadSegment__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RoadSegment_t; +typedef struct Reg_SignalControlZone { + RegionId_t regionId; + struct Reg_SignalControlZone__regExtValue { + Reg_SignalControlZone__regExtValue_PR present; + union Reg_SignalControlZone__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalControlZone_t; +typedef struct Reg_SignalRequest { + RegionId_t regionId; + struct Reg_SignalRequest__regExtValue { + Reg_SignalRequest__regExtValue_PR present; + union Reg_SignalRequest__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequest_t; +typedef struct Reg_SignalRequestPackage { + RegionId_t regionId; + struct Reg_SignalRequestPackage__regExtValue { + Reg_SignalRequestPackage__regExtValue_PR present; + union Reg_SignalRequestPackage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestPackage_t; +typedef struct Reg_SignalStatus { + RegionId_t regionId; + struct Reg_SignalStatus__regExtValue { + Reg_SignalStatus__regExtValue_PR present; + union Reg_SignalStatus__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatus_t; +typedef struct Reg_SignalStatusPackage { + RegionId_t regionId; + struct Reg_SignalStatusPackage__regExtValue { + Reg_SignalStatusPackage__regExtValue_PR present; + union Reg_SignalStatusPackage__regExtValue_u { + SignalStatusPackage_addGrpC_t SignalStatusPackage_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Reg_MapData; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_1; +extern asn_TYPE_member_t asn_MBR_Reg_MapData_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_4; +extern asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_4[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SPAT; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_7; +extern asn_TYPE_member_t asn_MBR_Reg_SPAT_7[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_10; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_10[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_13; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_13[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_16; +extern asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_16[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_19; +extern asn_TYPE_member_t asn_MBR_Reg_ComputedLane_19[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_22; +extern asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_22[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_25; +extern asn_TYPE_member_t asn_MBR_Reg_GenericLane_25[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_28; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_28[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_31; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionState_31[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_34; +extern asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_34[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_37; +extern asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_37[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_40; +extern asn_TYPE_member_t asn_MBR_Reg_MovementEvent_40[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_43; +extern asn_TYPE_member_t asn_MBR_Reg_MovementState_43[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_46; +extern asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_46[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_49; +extern asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_49[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_52; +extern asn_TYPE_member_t asn_MBR_Reg_Position3D_52[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_55; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_55[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_58; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorType_58[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_61; +extern asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_61[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_64; +extern asn_TYPE_member_t asn_MBR_Reg_RoadSegment_64[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_67; +extern asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_67[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_70; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequest_70[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_73; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_73[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_76; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatus_76[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_79; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_79[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionalExtension_H_ */ +#include diff --git a/vcits/cpm/RegulatorySpeedLimit.h b/vcits/cpm/RegulatorySpeedLimit.h new file mode 100644 index 0000000..80d6c61 --- /dev/null +++ b/vcits/cpm/RegulatorySpeedLimit.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RegulatorySpeedLimit_H_ +#define _RegulatorySpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedLimitType.h" +#include "Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegulatorySpeedLimit */ +typedef struct RegulatorySpeedLimit { + SpeedLimitType_t type; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RegulatorySpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit; +extern asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1; +extern asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegulatorySpeedLimit_H_ */ +#include diff --git a/vcits/cpm/RejectedReason.h b/vcits/cpm/RejectedReason.h new file mode 100644 index 0000000..ea9d634 --- /dev/null +++ b/vcits/cpm/RejectedReason.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RejectedReason_H_ +#define _RejectedReason_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RejectedReason { + RejectedReason_unknown = 0, + RejectedReason_exceptionalCondition = 1, + RejectedReason_maxWaitingTimeExceeded = 2, + RejectedReason_ptPriorityDisabled = 3, + RejectedReason_higherPTPriorityGranted = 4, + RejectedReason_vehicleTrackingUnknown = 5 + /* + * Enumeration is extensible + */ +} e_RejectedReason; + +/* RejectedReason */ +typedef long RejectedReason_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RejectedReason_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RejectedReason; +extern const asn_INTEGER_specifics_t asn_SPC_RejectedReason_specs_1; +asn_struct_free_f RejectedReason_free; +asn_struct_print_f RejectedReason_print; +asn_constr_check_f RejectedReason_constraint; +ber_type_decoder_f RejectedReason_decode_ber; +der_type_encoder_f RejectedReason_encode_der; +xer_type_decoder_f RejectedReason_decode_xer; +xer_type_encoder_f RejectedReason_encode_xer; +oer_type_decoder_f RejectedReason_decode_oer; +oer_type_encoder_f RejectedReason_encode_oer; +per_type_decoder_f RejectedReason_decode_uper; +per_type_encoder_f RejectedReason_encode_uper; +per_type_decoder_f RejectedReason_decode_aper; +per_type_encoder_f RejectedReason_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RejectedReason_H_ */ +#include diff --git a/vcits/cpm/RelevanceDistance.h b/vcits/cpm/RelevanceDistance.h new file mode 100644 index 0000000..6776914 --- /dev/null +++ b/vcits/cpm/RelevanceDistance.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RelevanceDistance_H_ +#define _RelevanceDistance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceDistance { + RelevanceDistance_lessThan50m = 0, + RelevanceDistance_lessThan100m = 1, + RelevanceDistance_lessThan200m = 2, + RelevanceDistance_lessThan500m = 3, + RelevanceDistance_lessThan1000m = 4, + RelevanceDistance_lessThan5km = 5, + RelevanceDistance_lessThan10km = 6, + RelevanceDistance_over10km = 7 +} e_RelevanceDistance; + +/* RelevanceDistance */ +typedef long RelevanceDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceDistance; +asn_struct_free_f RelevanceDistance_free; +asn_struct_print_f RelevanceDistance_print; +asn_constr_check_f RelevanceDistance_constraint; +ber_type_decoder_f RelevanceDistance_decode_ber; +der_type_encoder_f RelevanceDistance_encode_der; +xer_type_decoder_f RelevanceDistance_decode_xer; +xer_type_encoder_f RelevanceDistance_encode_xer; +oer_type_decoder_f RelevanceDistance_decode_oer; +oer_type_encoder_f RelevanceDistance_encode_oer; +per_type_decoder_f RelevanceDistance_decode_uper; +per_type_encoder_f RelevanceDistance_encode_uper; +per_type_decoder_f RelevanceDistance_decode_aper; +per_type_encoder_f RelevanceDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceDistance_H_ */ +#include diff --git a/vcits/cpm/RelevanceTrafficDirection.h b/vcits/cpm/RelevanceTrafficDirection.h new file mode 100644 index 0000000..b4c5aa5 --- /dev/null +++ b/vcits/cpm/RelevanceTrafficDirection.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RelevanceTrafficDirection_H_ +#define _RelevanceTrafficDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceTrafficDirection { + RelevanceTrafficDirection_allTrafficDirections = 0, + RelevanceTrafficDirection_upstreamTraffic = 1, + RelevanceTrafficDirection_downstreamTraffic = 2, + RelevanceTrafficDirection_oppositeTraffic = 3 +} e_RelevanceTrafficDirection; + +/* RelevanceTrafficDirection */ +typedef long RelevanceTrafficDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection; +asn_struct_free_f RelevanceTrafficDirection_free; +asn_struct_print_f RelevanceTrafficDirection_print; +asn_constr_check_f RelevanceTrafficDirection_constraint; +ber_type_decoder_f RelevanceTrafficDirection_decode_ber; +der_type_encoder_f RelevanceTrafficDirection_encode_der; +xer_type_decoder_f RelevanceTrafficDirection_decode_xer; +xer_type_encoder_f RelevanceTrafficDirection_encode_xer; +oer_type_decoder_f RelevanceTrafficDirection_decode_oer; +oer_type_encoder_f RelevanceTrafficDirection_encode_oer; +per_type_decoder_f RelevanceTrafficDirection_decode_uper; +per_type_encoder_f RelevanceTrafficDirection_encode_uper; +per_type_decoder_f RelevanceTrafficDirection_decode_aper; +per_type_encoder_f RelevanceTrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceTrafficDirection_H_ */ +#include diff --git a/vcits/cpm/RequestID.h b/vcits/cpm/RequestID.h new file mode 100644 index 0000000..84ef8a0 --- /dev/null +++ b/vcits/cpm/RequestID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RequestID_H_ +#define _RequestID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestID */ +typedef long RequestID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestID; +asn_struct_free_f RequestID_free; +asn_struct_print_f RequestID_print; +asn_constr_check_f RequestID_constraint; +ber_type_decoder_f RequestID_decode_ber; +der_type_encoder_f RequestID_encode_der; +xer_type_decoder_f RequestID_decode_xer; +xer_type_encoder_f RequestID_encode_xer; +oer_type_decoder_f RequestID_decode_oer; +oer_type_encoder_f RequestID_encode_oer; +per_type_decoder_f RequestID_decode_uper; +per_type_encoder_f RequestID_encode_uper; +per_type_decoder_f RequestID_decode_aper; +per_type_encoder_f RequestID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestID_H_ */ +#include diff --git a/vcits/cpm/RequestImportanceLevel.h b/vcits/cpm/RequestImportanceLevel.h new file mode 100644 index 0000000..dc4bdfe --- /dev/null +++ b/vcits/cpm/RequestImportanceLevel.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RequestImportanceLevel_H_ +#define _RequestImportanceLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestImportanceLevel { + RequestImportanceLevel_requestImportanceLevelUnKnown = 0, + RequestImportanceLevel_requestImportanceLevel1 = 1, + RequestImportanceLevel_requestImportanceLevel2 = 2, + RequestImportanceLevel_requestImportanceLevel3 = 3, + RequestImportanceLevel_requestImportanceLevel4 = 4, + RequestImportanceLevel_requestImportanceLevel5 = 5, + RequestImportanceLevel_requestImportanceLevel6 = 6, + RequestImportanceLevel_requestImportanceLevel7 = 7, + RequestImportanceLevel_requestImportanceLevel8 = 8, + RequestImportanceLevel_requestImportanceLevel9 = 9, + RequestImportanceLevel_requestImportanceLevel10 = 10, + RequestImportanceLevel_requestImportanceLevel11 = 11, + RequestImportanceLevel_requestImportanceLevel12 = 12, + RequestImportanceLevel_requestImportanceLevel13 = 13, + RequestImportanceLevel_requestImportanceLevel14 = 14, + RequestImportanceLevel_requestImportanceReserved = 15 +} e_RequestImportanceLevel; + +/* RequestImportanceLevel */ +typedef long RequestImportanceLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel; +extern const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1; +asn_struct_free_f RequestImportanceLevel_free; +asn_struct_print_f RequestImportanceLevel_print; +asn_constr_check_f RequestImportanceLevel_constraint; +ber_type_decoder_f RequestImportanceLevel_decode_ber; +der_type_encoder_f RequestImportanceLevel_encode_der; +xer_type_decoder_f RequestImportanceLevel_decode_xer; +xer_type_encoder_f RequestImportanceLevel_encode_xer; +oer_type_decoder_f RequestImportanceLevel_decode_oer; +oer_type_encoder_f RequestImportanceLevel_encode_oer; +per_type_decoder_f RequestImportanceLevel_decode_uper; +per_type_encoder_f RequestImportanceLevel_encode_uper; +per_type_decoder_f RequestImportanceLevel_decode_aper; +per_type_encoder_f RequestImportanceLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestImportanceLevel_H_ */ +#include diff --git a/vcits/cpm/RequestResponseIndication.h b/vcits/cpm/RequestResponseIndication.h new file mode 100644 index 0000000..7c6385c --- /dev/null +++ b/vcits/cpm/RequestResponseIndication.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RequestResponseIndication_H_ +#define _RequestResponseIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestResponseIndication { + RequestResponseIndication_request = 0, + RequestResponseIndication_response = 1 +} e_RequestResponseIndication; + +/* RequestResponseIndication */ +typedef long RequestResponseIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication; +asn_struct_free_f RequestResponseIndication_free; +asn_struct_print_f RequestResponseIndication_print; +asn_constr_check_f RequestResponseIndication_constraint; +ber_type_decoder_f RequestResponseIndication_decode_ber; +der_type_encoder_f RequestResponseIndication_encode_der; +xer_type_decoder_f RequestResponseIndication_decode_xer; +xer_type_encoder_f RequestResponseIndication_encode_xer; +oer_type_decoder_f RequestResponseIndication_decode_oer; +oer_type_encoder_f RequestResponseIndication_encode_oer; +per_type_decoder_f RequestResponseIndication_decode_uper; +per_type_encoder_f RequestResponseIndication_encode_uper; +per_type_decoder_f RequestResponseIndication_decode_aper; +per_type_encoder_f RequestResponseIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestResponseIndication_H_ */ +#include diff --git a/vcits/cpm/RequestSubRole.h b/vcits/cpm/RequestSubRole.h new file mode 100644 index 0000000..1a0ca10 --- /dev/null +++ b/vcits/cpm/RequestSubRole.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RequestSubRole_H_ +#define _RequestSubRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestSubRole { + RequestSubRole_requestSubRoleUnKnown = 0, + RequestSubRole_requestSubRole1 = 1, + RequestSubRole_requestSubRole2 = 2, + RequestSubRole_requestSubRole3 = 3, + RequestSubRole_requestSubRole4 = 4, + RequestSubRole_requestSubRole5 = 5, + RequestSubRole_requestSubRole6 = 6, + RequestSubRole_requestSubRole7 = 7, + RequestSubRole_requestSubRole8 = 8, + RequestSubRole_requestSubRole9 = 9, + RequestSubRole_requestSubRole10 = 10, + RequestSubRole_requestSubRole11 = 11, + RequestSubRole_requestSubRole12 = 12, + RequestSubRole_requestSubRole13 = 13, + RequestSubRole_requestSubRole14 = 14, + RequestSubRole_requestSubRoleReserved = 15 +} e_RequestSubRole; + +/* RequestSubRole */ +typedef long RequestSubRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestSubRole; +extern const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1; +asn_struct_free_f RequestSubRole_free; +asn_struct_print_f RequestSubRole_print; +asn_constr_check_f RequestSubRole_constraint; +ber_type_decoder_f RequestSubRole_decode_ber; +der_type_encoder_f RequestSubRole_encode_der; +xer_type_decoder_f RequestSubRole_decode_xer; +xer_type_encoder_f RequestSubRole_encode_xer; +oer_type_decoder_f RequestSubRole_decode_oer; +oer_type_encoder_f RequestSubRole_encode_oer; +per_type_decoder_f RequestSubRole_decode_uper; +per_type_encoder_f RequestSubRole_encode_uper; +per_type_decoder_f RequestSubRole_decode_aper; +per_type_encoder_f RequestSubRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestSubRole_H_ */ +#include diff --git a/vcits/cpm/RequestorDescription-addGrpC.h b/vcits/cpm/RequestorDescription-addGrpC.h new file mode 100644 index 0000000..a5dd56a --- /dev/null +++ b/vcits/cpm/RequestorDescription-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RequestorDescription_addGrpC_H_ +#define _RequestorDescription_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "FuelType.h" +#include "BatteryStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestorDescription-addGrpC */ +typedef struct RequestorDescription_addGrpC { + FuelType_t *fuel; /* OPTIONAL */ + BatteryStatus_t *batteryStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_addGrpC_H_ */ +#include diff --git a/vcits/cpm/RequestorDescription.h b/vcits/cpm/RequestorDescription.h new file mode 100644 index 0000000..4bfc5c2 --- /dev/null +++ b/vcits/cpm/RequestorDescription.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RequestorDescription_H_ +#define _RequestorDescription_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleID.h" +#include "DescriptiveName.h" +#include "TransitVehicleStatus.h" +#include "TransitVehicleOccupancy.h" +#include "DeltaTime.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; +struct RequestorPositionVector; +struct Reg_RequestorDescription; + +/* RequestorDescription */ +typedef struct RequestorDescription { + VehicleID_t id; + struct RequestorType *type; /* OPTIONAL */ + struct RequestorPositionVector *position; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + DescriptiveName_t *routeName; /* OPTIONAL */ + TransitVehicleStatus_t *transitStatus; /* OPTIONAL */ + TransitVehicleOccupancy_t *transitOccupancy; /* OPTIONAL */ + DeltaTime_t *transitSchedule; /* OPTIONAL */ + struct RequestorDescription__regional { + A_SEQUENCE_OF(struct Reg_RequestorDescription) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_H_ */ +#include diff --git a/vcits/cpm/RequestorPositionVector.h b/vcits/cpm/RequestorPositionVector.h new file mode 100644 index 0000000..7bd8162 --- /dev/null +++ b/vcits/cpm/RequestorPositionVector.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RequestorPositionVector_H_ +#define _RequestorPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "Position3D.h" +#include "Angle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TransmissionAndSpeed; + +/* RequestorPositionVector */ +typedef struct RequestorPositionVector { + Position3D_t position; + Angle_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorPositionVector_H_ */ +#include diff --git a/vcits/cpm/RequestorType.h b/vcits/cpm/RequestorType.h new file mode 100644 index 0000000..0fc47da --- /dev/null +++ b/vcits/cpm/RequestorType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RequestorType_H_ +#define _RequestorType_H_ + + +#include + +/* Including external dependencies */ +#include "BasicVehicleRole.h" +#include "RequestSubRole.h" +#include "RequestImportanceLevel.h" +#include "Iso3833VehicleType.h" +#include "VehicleType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_RequestorType; + +/* RequestorType */ +typedef struct RequestorType { + BasicVehicleRole_t role; + RequestSubRole_t *subrole; /* OPTIONAL */ + RequestImportanceLevel_t *request; /* OPTIONAL */ + Iso3833VehicleType_t *iso3883; /* OPTIONAL */ + VehicleType_t *hpmsType; /* OPTIONAL */ + struct Reg_RequestorType *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorType_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorType_H_ */ +#include diff --git a/vcits/cpm/RescueAndRecoveryWorkInProgressSubCauseCode.h b/vcits/cpm/RescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 0000000..946d9d7 --- /dev/null +++ b/vcits/cpm/RescueAndRecoveryWorkInProgressSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RescueAndRecoveryWorkInProgressSubCauseCode_H_ +#define _RescueAndRecoveryWorkInProgressSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RescueAndRecoveryWorkInProgressSubCauseCode { + RescueAndRecoveryWorkInProgressSubCauseCode_unavailable = 0, + RescueAndRecoveryWorkInProgressSubCauseCode_emergencyVehicles = 1, + RescueAndRecoveryWorkInProgressSubCauseCode_rescueHelicopterLanding = 2, + RescueAndRecoveryWorkInProgressSubCauseCode_policeActivityOngoing = 3, + RescueAndRecoveryWorkInProgressSubCauseCode_medicalEmergencyOngoing = 4, + RescueAndRecoveryWorkInProgressSubCauseCode_childAbductionInProgress = 5 +} e_RescueAndRecoveryWorkInProgressSubCauseCode; + +/* RescueAndRecoveryWorkInProgressSubCauseCode */ +typedef long RescueAndRecoveryWorkInProgressSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode; +asn_struct_free_f RescueAndRecoveryWorkInProgressSubCauseCode_free; +asn_struct_print_f RescueAndRecoveryWorkInProgressSubCauseCode_print; +asn_constr_check_f RescueAndRecoveryWorkInProgressSubCauseCode_constraint; +ber_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_ber; +der_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_der; +xer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_xer; +xer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_xer; +oer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_oer; +oer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_oer; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_uper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_uper; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_aper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RescueAndRecoveryWorkInProgressSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/RescueContainer.h b/vcits/cpm/RescueContainer.h new file mode 100644 index 0000000..40b07b8 --- /dev/null +++ b/vcits/cpm/RescueContainer.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RescueContainer_H_ +#define _RescueContainer_H_ + + +#include + +/* Including external dependencies */ +#include "LightBarSirenInUse.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RescueContainer */ +typedef struct RescueContainer { + LightBarSirenInUse_t lightBarSirenInUse; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RescueContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RescueContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_RescueContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_RescueContainer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RescueContainer_H_ */ +#include diff --git a/vcits/cpm/RestrictedTypes.h b/vcits/cpm/RestrictedTypes.h new file mode 100644 index 0000000..78ce049 --- /dev/null +++ b/vcits/cpm/RestrictedTypes.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RestrictedTypes_H_ +#define _RestrictedTypes_H_ + + +#include + +/* Including external dependencies */ +#include "StationType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictedTypes */ +typedef struct RestrictedTypes { + A_SEQUENCE_OF(StationType_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictedTypes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictedTypes; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictedTypes_H_ */ +#include diff --git a/vcits/cpm/RestrictionAppliesTo.h b/vcits/cpm/RestrictionAppliesTo.h new file mode 100644 index 0000000..b6170dc --- /dev/null +++ b/vcits/cpm/RestrictionAppliesTo.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RestrictionAppliesTo_H_ +#define _RestrictionAppliesTo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionAppliesTo { + RestrictionAppliesTo_none = 0, + RestrictionAppliesTo_equippedTransit = 1, + RestrictionAppliesTo_equippedTaxis = 2, + RestrictionAppliesTo_equippedOther = 3, + RestrictionAppliesTo_emissionCompliant = 4, + RestrictionAppliesTo_equippedBicycle = 5, + RestrictionAppliesTo_weightCompliant = 6, + RestrictionAppliesTo_heightCompliant = 7, + RestrictionAppliesTo_pedestrians = 8, + RestrictionAppliesTo_slowMovingPersons = 9, + RestrictionAppliesTo_wheelchairUsers = 10, + RestrictionAppliesTo_visualDisabilities = 11, + RestrictionAppliesTo_audioDisabilities = 12, + RestrictionAppliesTo_otherUnknownDisabilities = 13 + /* + * Enumeration is extensible + */ +} e_RestrictionAppliesTo; + +/* RestrictionAppliesTo */ +typedef long RestrictionAppliesTo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo; +extern const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1; +asn_struct_free_f RestrictionAppliesTo_free; +asn_struct_print_f RestrictionAppliesTo_print; +asn_constr_check_f RestrictionAppliesTo_constraint; +ber_type_decoder_f RestrictionAppliesTo_decode_ber; +der_type_encoder_f RestrictionAppliesTo_encode_der; +xer_type_decoder_f RestrictionAppliesTo_decode_xer; +xer_type_encoder_f RestrictionAppliesTo_encode_xer; +oer_type_decoder_f RestrictionAppliesTo_decode_oer; +oer_type_encoder_f RestrictionAppliesTo_encode_oer; +per_type_decoder_f RestrictionAppliesTo_decode_uper; +per_type_encoder_f RestrictionAppliesTo_encode_uper; +per_type_decoder_f RestrictionAppliesTo_decode_aper; +per_type_encoder_f RestrictionAppliesTo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionAppliesTo_H_ */ +#include diff --git a/vcits/cpm/RestrictionClassAssignment.h b/vcits/cpm/RestrictionClassAssignment.h new file mode 100644 index 0000000..ad6508c --- /dev/null +++ b/vcits/cpm/RestrictionClassAssignment.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RestrictionClassAssignment_H_ +#define _RestrictionClassAssignment_H_ + + +#include + +/* Including external dependencies */ +#include "RestrictionClassID.h" +#include "RestrictionUserTypeList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassAssignment */ +typedef struct RestrictionClassAssignment { + RestrictionClassID_t id; + RestrictionUserTypeList_t users; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassAssignment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassAssignment_H_ */ +#include diff --git a/vcits/cpm/RestrictionClassID.h b/vcits/cpm/RestrictionClassID.h new file mode 100644 index 0000000..fc57b97 --- /dev/null +++ b/vcits/cpm/RestrictionClassID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RestrictionClassID_H_ +#define _RestrictionClassID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassID */ +typedef long RestrictionClassID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassID; +asn_struct_free_f RestrictionClassID_free; +asn_struct_print_f RestrictionClassID_print; +asn_constr_check_f RestrictionClassID_constraint; +ber_type_decoder_f RestrictionClassID_decode_ber; +der_type_encoder_f RestrictionClassID_encode_der; +xer_type_decoder_f RestrictionClassID_decode_xer; +xer_type_encoder_f RestrictionClassID_encode_xer; +oer_type_decoder_f RestrictionClassID_decode_oer; +oer_type_encoder_f RestrictionClassID_encode_oer; +per_type_decoder_f RestrictionClassID_decode_uper; +per_type_encoder_f RestrictionClassID_encode_uper; +per_type_decoder_f RestrictionClassID_decode_aper; +per_type_encoder_f RestrictionClassID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassID_H_ */ +#include diff --git a/vcits/cpm/RestrictionClassList.h b/vcits/cpm/RestrictionClassList.h new file mode 100644 index 0000000..9d00b23 --- /dev/null +++ b/vcits/cpm/RestrictionClassList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RestrictionClassList_H_ +#define _RestrictionClassList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionClassAssignment; + +/* RestrictionClassList */ +typedef struct RestrictionClassList { + A_SEQUENCE_OF(struct RestrictionClassAssignment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassList_H_ */ +#include diff --git a/vcits/cpm/RestrictionUserType-addGrpC.h b/vcits/cpm/RestrictionUserType-addGrpC.h new file mode 100644 index 0000000..7903181 --- /dev/null +++ b/vcits/cpm/RestrictionUserType-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RestrictionUserType_addGrpC_H_ +#define _RestrictionUserType_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "EmissionType.h" +#include "FuelType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionUserType-addGrpC */ +typedef struct RestrictionUserType_addGrpC { + EmissionType_t *emission; /* OPTIONAL */ + FuelType_t *fuel; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_addGrpC_H_ */ +#include diff --git a/vcits/cpm/RestrictionUserType.h b/vcits/cpm/RestrictionUserType.h new file mode 100644 index 0000000..cc5b955 --- /dev/null +++ b/vcits/cpm/RestrictionUserType.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RestrictionUserType_H_ +#define _RestrictionUserType_H_ + + +#include + +/* Including external dependencies */ +#include "RestrictionAppliesTo.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionUserType_PR { + RestrictionUserType_PR_NOTHING, /* No components present */ + RestrictionUserType_PR_basicType, + RestrictionUserType_PR_regional + /* Extensions may appear below */ + +} RestrictionUserType_PR; + +/* Forward declarations */ +struct Reg_RestrictionUserType; + +/* RestrictionUserType */ +typedef struct RestrictionUserType { + RestrictionUserType_PR present; + union RestrictionUserType_u { + RestrictionAppliesTo_t basicType; + struct RestrictionUserType__regional { + A_SEQUENCE_OF(struct Reg_RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType; +extern asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_1[2]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_H_ */ +#include diff --git a/vcits/cpm/RestrictionUserTypeList.h b/vcits/cpm/RestrictionUserTypeList.h new file mode 100644 index 0000000..7cb23ab --- /dev/null +++ b/vcits/cpm/RestrictionUserTypeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RestrictionUserTypeList_H_ +#define _RestrictionUserTypeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionUserType; + +/* RestrictionUserTypeList */ +typedef struct RestrictionUserTypeList { + A_SEQUENCE_OF(struct RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserTypeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserTypeList_H_ */ +#include diff --git a/vcits/cpm/RoadLaneSetList.h b/vcits/cpm/RoadLaneSetList.h new file mode 100644 index 0000000..8c664c1 --- /dev/null +++ b/vcits/cpm/RoadLaneSetList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RoadLaneSetList_H_ +#define _RoadLaneSetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* RoadLaneSetList */ +typedef struct RoadLaneSetList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadLaneSetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList; +extern asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadLaneSetList_H_ */ +#include diff --git a/vcits/cpm/RoadRegulatorID.h b/vcits/cpm/RoadRegulatorID.h new file mode 100644 index 0000000..d38fbc8 --- /dev/null +++ b/vcits/cpm/RoadRegulatorID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RoadRegulatorID_H_ +#define _RoadRegulatorID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadRegulatorID */ +typedef long RoadRegulatorID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID; +asn_struct_free_f RoadRegulatorID_free; +asn_struct_print_f RoadRegulatorID_print; +asn_constr_check_f RoadRegulatorID_constraint; +ber_type_decoder_f RoadRegulatorID_decode_ber; +der_type_encoder_f RoadRegulatorID_encode_der; +xer_type_decoder_f RoadRegulatorID_decode_xer; +xer_type_encoder_f RoadRegulatorID_encode_xer; +oer_type_decoder_f RoadRegulatorID_decode_oer; +oer_type_encoder_f RoadRegulatorID_encode_oer; +per_type_decoder_f RoadRegulatorID_decode_uper; +per_type_encoder_f RoadRegulatorID_encode_uper; +per_type_decoder_f RoadRegulatorID_decode_aper; +per_type_encoder_f RoadRegulatorID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadRegulatorID_H_ */ +#include diff --git a/vcits/cpm/RoadSegment.h b/vcits/cpm/RoadSegment.h new file mode 100644 index 0000000..c9adc09 --- /dev/null +++ b/vcits/cpm/RoadSegment.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RoadSegment_H_ +#define _RoadSegment_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "RoadSegmentReferenceID.h" +#include "MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "RoadLaneSetList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct Reg_RoadSegment; + +/* RoadSegment */ +typedef struct RoadSegment { + DescriptiveName_t *name; /* OPTIONAL */ + RoadSegmentReferenceID_t id; + MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + RoadLaneSetList_t roadLaneSet; + struct RoadSegment__regional { + A_SEQUENCE_OF(struct Reg_RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegment_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegment_H_ */ +#include diff --git a/vcits/cpm/RoadSegmentID.h b/vcits/cpm/RoadSegmentID.h new file mode 100644 index 0000000..fff2b14 --- /dev/null +++ b/vcits/cpm/RoadSegmentID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RoadSegmentID_H_ +#define _RoadSegmentID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentID */ +typedef long RoadSegmentID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentID; +asn_struct_free_f RoadSegmentID_free; +asn_struct_print_f RoadSegmentID_print; +asn_constr_check_f RoadSegmentID_constraint; +ber_type_decoder_f RoadSegmentID_decode_ber; +der_type_encoder_f RoadSegmentID_encode_der; +xer_type_decoder_f RoadSegmentID_decode_xer; +xer_type_encoder_f RoadSegmentID_encode_xer; +oer_type_decoder_f RoadSegmentID_decode_oer; +oer_type_encoder_f RoadSegmentID_encode_oer; +per_type_decoder_f RoadSegmentID_decode_uper; +per_type_encoder_f RoadSegmentID_encode_uper; +per_type_decoder_f RoadSegmentID_decode_aper; +per_type_encoder_f RoadSegmentID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentID_H_ */ +#include diff --git a/vcits/cpm/RoadSegmentList.h b/vcits/cpm/RoadSegmentList.h new file mode 100644 index 0000000..ebdd3af --- /dev/null +++ b/vcits/cpm/RoadSegmentList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RoadSegmentList_H_ +#define _RoadSegmentList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RoadSegment; + +/* RoadSegmentList */ +typedef struct RoadSegmentList { + A_SEQUENCE_OF(struct RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentList; +extern asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentList_H_ */ +#include diff --git a/vcits/cpm/RoadSegmentReferenceID.h b/vcits/cpm/RoadSegmentReferenceID.h new file mode 100644 index 0000000..987d3a3 --- /dev/null +++ b/vcits/cpm/RoadSegmentReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RoadSegmentReferenceID_H_ +#define _RoadSegmentReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "RoadSegmentID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentReferenceID */ +typedef struct RoadSegmentReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + RoadSegmentID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentReferenceID_H_ */ +#include diff --git a/vcits/cpm/RoadType.h b/vcits/cpm/RoadType.h new file mode 100644 index 0000000..7cbd586 --- /dev/null +++ b/vcits/cpm/RoadType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RoadType_H_ +#define _RoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadType { + RoadType_urban_NoStructuralSeparationToOppositeLanes = 0, + RoadType_urban_WithStructuralSeparationToOppositeLanes = 1, + RoadType_nonUrban_NoStructuralSeparationToOppositeLanes = 2, + RoadType_nonUrban_WithStructuralSeparationToOppositeLanes = 3 +} e_RoadType; + +/* RoadType */ +typedef long RoadType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadType; +asn_struct_free_f RoadType_free; +asn_struct_print_f RoadType_print; +asn_constr_check_f RoadType_constraint; +ber_type_decoder_f RoadType_decode_ber; +der_type_encoder_f RoadType_encode_der; +xer_type_decoder_f RoadType_decode_xer; +xer_type_encoder_f RoadType_encode_xer; +oer_type_decoder_f RoadType_decode_oer; +oer_type_encoder_f RoadType_encode_oer; +per_type_decoder_f RoadType_decode_uper; +per_type_encoder_f RoadType_encode_uper; +per_type_decoder_f RoadType_decode_aper; +per_type_encoder_f RoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadType_H_ */ +#include diff --git a/vcits/cpm/RoadWorksContainerBasic.h b/vcits/cpm/RoadWorksContainerBasic.h new file mode 100644 index 0000000..bf1bc1c --- /dev/null +++ b/vcits/cpm/RoadWorksContainerBasic.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RoadWorksContainerBasic_H_ +#define _RoadWorksContainerBasic_H_ + + +#include + +/* Including external dependencies */ +#include "RoadworksSubCauseCode.h" +#include "LightBarSirenInUse.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ClosedLanes; + +/* RoadWorksContainerBasic */ +typedef struct RoadWorksContainerBasic { + RoadworksSubCauseCode_t *roadworksSubCauseCode; /* OPTIONAL */ + LightBarSirenInUse_t lightBarSirenInUse; + struct ClosedLanes *closedLanes; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadWorksContainerBasic_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadWorksContainerBasic; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadWorksContainerBasic_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadWorksContainerBasic_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadWorksContainerBasic_H_ */ +#include diff --git a/vcits/cpm/RoadwayCrownAngle.h b/vcits/cpm/RoadwayCrownAngle.h new file mode 100644 index 0000000..a97f148 --- /dev/null +++ b/vcits/cpm/RoadwayCrownAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RoadwayCrownAngle_H_ +#define _RoadwayCrownAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadwayCrownAngle */ +typedef long RoadwayCrownAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle; +asn_struct_free_f RoadwayCrownAngle_free; +asn_struct_print_f RoadwayCrownAngle_print; +asn_constr_check_f RoadwayCrownAngle_constraint; +ber_type_decoder_f RoadwayCrownAngle_decode_ber; +der_type_encoder_f RoadwayCrownAngle_encode_der; +xer_type_decoder_f RoadwayCrownAngle_decode_xer; +xer_type_encoder_f RoadwayCrownAngle_encode_xer; +oer_type_decoder_f RoadwayCrownAngle_decode_oer; +oer_type_encoder_f RoadwayCrownAngle_encode_oer; +per_type_decoder_f RoadwayCrownAngle_decode_uper; +per_type_encoder_f RoadwayCrownAngle_encode_uper; +per_type_decoder_f RoadwayCrownAngle_decode_aper; +per_type_encoder_f RoadwayCrownAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadwayCrownAngle_H_ */ +#include diff --git a/vcits/cpm/RoadworksSubCauseCode.h b/vcits/cpm/RoadworksSubCauseCode.h new file mode 100644 index 0000000..dc4e470 --- /dev/null +++ b/vcits/cpm/RoadworksSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _RoadworksSubCauseCode_H_ +#define _RoadworksSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadworksSubCauseCode { + RoadworksSubCauseCode_unavailable = 0, + RoadworksSubCauseCode_majorRoadworks = 1, + RoadworksSubCauseCode_roadMarkingWork = 2, + RoadworksSubCauseCode_slowMovingRoadMaintenance = 3, + RoadworksSubCauseCode_shortTermStationaryRoadworks = 4, + RoadworksSubCauseCode_streetCleaning = 5, + RoadworksSubCauseCode_winterService = 6 +} e_RoadworksSubCauseCode; + +/* RoadworksSubCauseCode */ +typedef long RoadworksSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadworksSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode; +asn_struct_free_f RoadworksSubCauseCode_free; +asn_struct_print_f RoadworksSubCauseCode_print; +asn_constr_check_f RoadworksSubCauseCode_constraint; +ber_type_decoder_f RoadworksSubCauseCode_decode_ber; +der_type_encoder_f RoadworksSubCauseCode_encode_der; +xer_type_decoder_f RoadworksSubCauseCode_decode_xer; +xer_type_encoder_f RoadworksSubCauseCode_encode_xer; +oer_type_decoder_f RoadworksSubCauseCode_decode_oer; +oer_type_encoder_f RoadworksSubCauseCode_encode_oer; +per_type_decoder_f RoadworksSubCauseCode_decode_uper; +per_type_encoder_f RoadworksSubCauseCode_encode_uper; +per_type_decoder_f RoadworksSubCauseCode_decode_aper; +per_type_encoder_f RoadworksSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadworksSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/SPAT.h b/vcits/cpm/SPAT.h new file mode 100644 index 0000000..f487636 --- /dev/null +++ b/vcits/cpm/SPAT.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SPAT_H_ +#define _SPAT_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DescriptiveName.h" +#include "IntersectionStateList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SPAT; + +/* SPAT */ +typedef struct SPAT { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionStateList_t intersections; + struct SPAT__regional { + A_SEQUENCE_OF(struct Reg_SPAT) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SPAT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SPAT; + +#ifdef __cplusplus +} +#endif + +#endif /* _SPAT_H_ */ +#include diff --git a/vcits/cpm/SafetyCarContainer.h b/vcits/cpm/SafetyCarContainer.h new file mode 100644 index 0000000..153b88a --- /dev/null +++ b/vcits/cpm/SafetyCarContainer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SafetyCarContainer_H_ +#define _SafetyCarContainer_H_ + + +#include + +/* Including external dependencies */ +#include "LightBarSirenInUse.h" +#include "TrafficRule.h" +#include "SpeedLimit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CauseCode; + +/* SafetyCarContainer */ +typedef struct SafetyCarContainer { + LightBarSirenInUse_t lightBarSirenInUse; + struct CauseCode *incidentIndication; /* OPTIONAL */ + TrafficRule_t *trafficRule; /* OPTIONAL */ + SpeedLimit_t *speedLimit; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SafetyCarContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SafetyCarContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_SafetyCarContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_SafetyCarContainer_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SafetyCarContainer_H_ */ +#include diff --git a/vcits/cpm/Scale-B12.h b/vcits/cpm/Scale-B12.h new file mode 100644 index 0000000..79b5383 --- /dev/null +++ b/vcits/cpm/Scale-B12.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Scale_B12_H_ +#define _Scale_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Scale-B12 */ +typedef long Scale_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Scale_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Scale_B12; +asn_struct_free_f Scale_B12_free; +asn_struct_print_f Scale_B12_print; +asn_constr_check_f Scale_B12_constraint; +ber_type_decoder_f Scale_B12_decode_ber; +der_type_encoder_f Scale_B12_encode_der; +xer_type_decoder_f Scale_B12_decode_xer; +xer_type_encoder_f Scale_B12_encode_xer; +oer_type_decoder_f Scale_B12_decode_oer; +oer_type_encoder_f Scale_B12_encode_oer; +per_type_decoder_f Scale_B12_decode_uper; +per_type_encoder_f Scale_B12_encode_uper; +per_type_decoder_f Scale_B12_decode_aper; +per_type_encoder_f Scale_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Scale_B12_H_ */ +#include diff --git a/vcits/cpm/SegmentAttributeXY.h b/vcits/cpm/SegmentAttributeXY.h new file mode 100644 index 0000000..edf315b --- /dev/null +++ b/vcits/cpm/SegmentAttributeXY.h @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SegmentAttributeXY_H_ +#define _SegmentAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SegmentAttributeXY { + SegmentAttributeXY_reserved = 0, + SegmentAttributeXY_doNotBlock = 1, + SegmentAttributeXY_whiteLine = 2, + SegmentAttributeXY_mergingLaneLeft = 3, + SegmentAttributeXY_mergingLaneRight = 4, + SegmentAttributeXY_curbOnLeft = 5, + SegmentAttributeXY_curbOnRight = 6, + SegmentAttributeXY_loadingzoneOnLeft = 7, + SegmentAttributeXY_loadingzoneOnRight = 8, + SegmentAttributeXY_turnOutPointOnLeft = 9, + SegmentAttributeXY_turnOutPointOnRight = 10, + SegmentAttributeXY_adjacentParkingOnLeft = 11, + SegmentAttributeXY_adjacentParkingOnRight = 12, + SegmentAttributeXY_adjacentBikeLaneOnLeft = 13, + SegmentAttributeXY_adjacentBikeLaneOnRight = 14, + SegmentAttributeXY_sharedBikeLane = 15, + SegmentAttributeXY_bikeBoxInFront = 16, + SegmentAttributeXY_transitStopOnLeft = 17, + SegmentAttributeXY_transitStopOnRight = 18, + SegmentAttributeXY_transitStopInLane = 19, + SegmentAttributeXY_sharedWithTrackedVehicle = 20, + SegmentAttributeXY_safeIsland = 21, + SegmentAttributeXY_lowCurbsPresent = 22, + SegmentAttributeXY_rumbleStripPresent = 23, + SegmentAttributeXY_audibleSignalingPresent = 24, + SegmentAttributeXY_adaptiveTimingPresent = 25, + SegmentAttributeXY_rfSignalRequestPresent = 26, + SegmentAttributeXY_partialCurbIntrusion = 27, + SegmentAttributeXY_taperToLeft = 28, + SegmentAttributeXY_taperToRight = 29, + SegmentAttributeXY_taperToCenterLine = 30, + SegmentAttributeXY_parallelParking = 31, + SegmentAttributeXY_headInParking = 32, + SegmentAttributeXY_freeParking = 33, + SegmentAttributeXY_timeRestrictionsOnParking = 34, + SegmentAttributeXY_costToPark = 35, + SegmentAttributeXY_midBlockCurbPresent = 36, + SegmentAttributeXY_unEvenPavementPresent = 37 + /* + * Enumeration is extensible + */ +} e_SegmentAttributeXY; + +/* SegmentAttributeXY */ +typedef long SegmentAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1; +asn_struct_free_f SegmentAttributeXY_free; +asn_struct_print_f SegmentAttributeXY_print; +asn_constr_check_f SegmentAttributeXY_constraint; +ber_type_decoder_f SegmentAttributeXY_decode_ber; +der_type_encoder_f SegmentAttributeXY_encode_der; +xer_type_decoder_f SegmentAttributeXY_decode_xer; +xer_type_encoder_f SegmentAttributeXY_encode_xer; +oer_type_decoder_f SegmentAttributeXY_decode_oer; +oer_type_encoder_f SegmentAttributeXY_encode_oer; +per_type_decoder_f SegmentAttributeXY_decode_uper; +per_type_encoder_f SegmentAttributeXY_encode_uper; +per_type_decoder_f SegmentAttributeXY_decode_aper; +per_type_encoder_f SegmentAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXY_H_ */ +#include diff --git a/vcits/cpm/SegmentAttributeXYList.h b/vcits/cpm/SegmentAttributeXYList.h new file mode 100644 index 0000000..6f9a9f5 --- /dev/null +++ b/vcits/cpm/SegmentAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SegmentAttributeXYList_H_ +#define _SegmentAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "SegmentAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SegmentAttributeXYList */ +typedef struct SegmentAttributeXYList { + A_SEQUENCE_OF(SegmentAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SegmentAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXYList_H_ */ +#include diff --git a/vcits/cpm/SegmentCount.h b/vcits/cpm/SegmentCount.h new file mode 100644 index 0000000..3dc2fa7 --- /dev/null +++ b/vcits/cpm/SegmentCount.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SegmentCount_H_ +#define _SegmentCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SegmentCount */ +typedef long SegmentCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SegmentCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SegmentCount; +asn_struct_free_f SegmentCount_free; +asn_struct_print_f SegmentCount_print; +asn_constr_check_f SegmentCount_constraint; +ber_type_decoder_f SegmentCount_decode_ber; +der_type_encoder_f SegmentCount_encode_der; +xer_type_decoder_f SegmentCount_decode_xer; +xer_type_encoder_f SegmentCount_encode_xer; +oer_type_decoder_f SegmentCount_decode_oer; +oer_type_encoder_f SegmentCount_encode_oer; +per_type_decoder_f SegmentCount_decode_uper; +per_type_encoder_f SegmentCount_encode_uper; +per_type_decoder_f SegmentCount_decode_aper; +per_type_encoder_f SegmentCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentCount_H_ */ +#include diff --git a/vcits/cpm/SemiAxisLength.h b/vcits/cpm/SemiAxisLength.h new file mode 100644 index 0000000..2f43bd8 --- /dev/null +++ b/vcits/cpm/SemiAxisLength.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SemiAxisLength_H_ +#define _SemiAxisLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SemiAxisLength { + SemiAxisLength_oneCentimeter = 1, + SemiAxisLength_outOfRange = 4094, + SemiAxisLength_unavailable = 4095 +} e_SemiAxisLength; + +/* SemiAxisLength */ +typedef long SemiAxisLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiAxisLength; +asn_struct_free_f SemiAxisLength_free; +asn_struct_print_f SemiAxisLength_print; +asn_constr_check_f SemiAxisLength_constraint; +ber_type_decoder_f SemiAxisLength_decode_ber; +der_type_encoder_f SemiAxisLength_encode_der; +xer_type_decoder_f SemiAxisLength_decode_xer; +xer_type_encoder_f SemiAxisLength_encode_xer; +oer_type_decoder_f SemiAxisLength_decode_oer; +oer_type_encoder_f SemiAxisLength_encode_oer; +per_type_decoder_f SemiAxisLength_decode_uper; +per_type_encoder_f SemiAxisLength_encode_uper; +per_type_decoder_f SemiAxisLength_decode_aper; +per_type_encoder_f SemiAxisLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiAxisLength_H_ */ +#include diff --git a/vcits/cpm/SemiMajorAxisAccuracy.h b/vcits/cpm/SemiMajorAxisAccuracy.h new file mode 100644 index 0000000..df4dad2 --- /dev/null +++ b/vcits/cpm/SemiMajorAxisAccuracy.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SemiMajorAxisAccuracy_H_ +#define _SemiMajorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisAccuracy */ +typedef long SemiMajorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy; +asn_struct_free_f SemiMajorAxisAccuracy_free; +asn_struct_print_f SemiMajorAxisAccuracy_print; +asn_constr_check_f SemiMajorAxisAccuracy_constraint; +ber_type_decoder_f SemiMajorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMajorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMajorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMajorAxisAccuracy_encode_xer; +oer_type_decoder_f SemiMajorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMajorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMajorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMajorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisAccuracy_H_ */ +#include diff --git a/vcits/cpm/SemiMajorAxisOrientation.h b/vcits/cpm/SemiMajorAxisOrientation.h new file mode 100644 index 0000000..9b0d8c8 --- /dev/null +++ b/vcits/cpm/SemiMajorAxisOrientation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SemiMajorAxisOrientation_H_ +#define _SemiMajorAxisOrientation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisOrientation */ +typedef long SemiMajorAxisOrientation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation; +asn_struct_free_f SemiMajorAxisOrientation_free; +asn_struct_print_f SemiMajorAxisOrientation_print; +asn_constr_check_f SemiMajorAxisOrientation_constraint; +ber_type_decoder_f SemiMajorAxisOrientation_decode_ber; +der_type_encoder_f SemiMajorAxisOrientation_encode_der; +xer_type_decoder_f SemiMajorAxisOrientation_decode_xer; +xer_type_encoder_f SemiMajorAxisOrientation_encode_xer; +oer_type_decoder_f SemiMajorAxisOrientation_decode_oer; +oer_type_encoder_f SemiMajorAxisOrientation_encode_oer; +per_type_decoder_f SemiMajorAxisOrientation_decode_uper; +per_type_encoder_f SemiMajorAxisOrientation_encode_uper; +per_type_decoder_f SemiMajorAxisOrientation_decode_aper; +per_type_encoder_f SemiMajorAxisOrientation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisOrientation_H_ */ +#include diff --git a/vcits/cpm/SemiMinorAxisAccuracy.h b/vcits/cpm/SemiMinorAxisAccuracy.h new file mode 100644 index 0000000..9597c46 --- /dev/null +++ b/vcits/cpm/SemiMinorAxisAccuracy.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SemiMinorAxisAccuracy_H_ +#define _SemiMinorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMinorAxisAccuracy */ +typedef long SemiMinorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy; +asn_struct_free_f SemiMinorAxisAccuracy_free; +asn_struct_print_f SemiMinorAxisAccuracy_print; +asn_constr_check_f SemiMinorAxisAccuracy_constraint; +ber_type_decoder_f SemiMinorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMinorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMinorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMinorAxisAccuracy_encode_xer; +oer_type_decoder_f SemiMinorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMinorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMinorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMinorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMinorAxisAccuracy_H_ */ +#include diff --git a/vcits/cpm/SemiRangeLength.h b/vcits/cpm/SemiRangeLength.h new file mode 100644 index 0000000..bdb8191 --- /dev/null +++ b/vcits/cpm/SemiRangeLength.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SemiRangeLength_H_ +#define _SemiRangeLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SemiRangeLength { + SemiRangeLength_zeroPointOneMeter = 1, + SemiRangeLength_oneMeter = 10 +} e_SemiRangeLength; + +/* SemiRangeLength */ +typedef long SemiRangeLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiRangeLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiRangeLength; +asn_struct_free_f SemiRangeLength_free; +asn_struct_print_f SemiRangeLength_print; +asn_constr_check_f SemiRangeLength_constraint; +ber_type_decoder_f SemiRangeLength_decode_ber; +der_type_encoder_f SemiRangeLength_encode_der; +xer_type_decoder_f SemiRangeLength_decode_xer; +xer_type_encoder_f SemiRangeLength_encode_xer; +oer_type_decoder_f SemiRangeLength_decode_oer; +oer_type_encoder_f SemiRangeLength_encode_oer; +per_type_decoder_f SemiRangeLength_decode_uper; +per_type_encoder_f SemiRangeLength_encode_uper; +per_type_decoder_f SemiRangeLength_decode_aper; +per_type_encoder_f SemiRangeLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiRangeLength_H_ */ +#include diff --git a/vcits/cpm/SensorHeight.h b/vcits/cpm/SensorHeight.h new file mode 100644 index 0000000..66546b5 --- /dev/null +++ b/vcits/cpm/SensorHeight.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SensorHeight_H_ +#define _SensorHeight_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SensorHeight { + SensorHeight_zeroPointZeroOneMeter = 1 +} e_SensorHeight; + +/* SensorHeight */ +typedef long SensorHeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SensorHeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SensorHeight; +asn_struct_free_f SensorHeight_free; +asn_struct_print_f SensorHeight_print; +asn_constr_check_f SensorHeight_constraint; +ber_type_decoder_f SensorHeight_decode_ber; +der_type_encoder_f SensorHeight_encode_der; +xer_type_decoder_f SensorHeight_decode_xer; +xer_type_encoder_f SensorHeight_encode_xer; +oer_type_decoder_f SensorHeight_decode_oer; +oer_type_encoder_f SensorHeight_encode_oer; +per_type_decoder_f SensorHeight_decode_uper; +per_type_encoder_f SensorHeight_encode_uper; +per_type_decoder_f SensorHeight_decode_aper; +per_type_encoder_f SensorHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SensorHeight_H_ */ +#include diff --git a/vcits/cpm/SensorIdList.h b/vcits/cpm/SensorIdList.h new file mode 100644 index 0000000..35d545d --- /dev/null +++ b/vcits/cpm/SensorIdList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SensorIdList_H_ +#define _SensorIdList_H_ + + +#include + +/* Including external dependencies */ +#include "Identifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SensorIdList */ +typedef struct SensorIdList { + A_SEQUENCE_OF(Identifier_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SensorIdList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SensorIdList; +extern asn_SET_OF_specifics_t asn_SPC_SensorIdList_specs_1; +extern asn_TYPE_member_t asn_MBR_SensorIdList_1[1]; +extern asn_per_constraints_t asn_PER_type_SensorIdList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SensorIdList_H_ */ +#include diff --git a/vcits/cpm/SensorInformation.h b/vcits/cpm/SensorInformation.h new file mode 100644 index 0000000..6f8e07f --- /dev/null +++ b/vcits/cpm/SensorInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SensorInformation_H_ +#define _SensorInformation_H_ + + +#include + +/* Including external dependencies */ +#include "Identifier.h" +#include "SensorType.h" +#include "DetectionArea.h" +#include "FreeSpaceConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SensorInformation */ +typedef struct SensorInformation { + Identifier_t sensorID; + SensorType_t type; + DetectionArea_t detectionArea; + FreeSpaceConfidence_t *freeSpaceConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SensorInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SensorInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_SensorInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_SensorInformation_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SensorInformation_H_ */ +#include diff --git a/vcits/cpm/SensorInformationContainer.h b/vcits/cpm/SensorInformationContainer.h new file mode 100644 index 0000000..c660cd9 --- /dev/null +++ b/vcits/cpm/SensorInformationContainer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SensorInformationContainer_H_ +#define _SensorInformationContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SensorInformation; + +/* SensorInformationContainer */ +typedef struct SensorInformationContainer { + A_SEQUENCE_OF(struct SensorInformation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SensorInformationContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SensorInformationContainer; +extern asn_SET_OF_specifics_t asn_SPC_SensorInformationContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_SensorInformationContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_SensorInformationContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SensorInformationContainer_H_ */ +#include diff --git a/vcits/cpm/SensorType.h b/vcits/cpm/SensorType.h new file mode 100644 index 0000000..1837a06 --- /dev/null +++ b/vcits/cpm/SensorType.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SensorType_H_ +#define _SensorType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SensorType { + SensorType_undefined = 0, + SensorType_radar = 1, + SensorType_lidar = 2, + SensorType_monovideo = 3, + SensorType_stereovision = 4, + SensorType_nightvision = 5, + SensorType_ultrasonic = 6, + SensorType_pmd = 7, + SensorType_fusion = 8, + SensorType_inductionloop = 9, + SensorType_sphericalCamera = 10, + SensorType_itssaggregation = 11 +} e_SensorType; + +/* SensorType */ +typedef long SensorType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SensorType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SensorType; +asn_struct_free_f SensorType_free; +asn_struct_print_f SensorType_print; +asn_constr_check_f SensorType_constraint; +ber_type_decoder_f SensorType_decode_ber; +der_type_encoder_f SensorType_encode_der; +xer_type_decoder_f SensorType_decode_xer; +xer_type_encoder_f SensorType_encode_xer; +oer_type_decoder_f SensorType_decode_oer; +oer_type_encoder_f SensorType_encode_oer; +per_type_decoder_f SensorType_decode_uper; +per_type_encoder_f SensorType_encode_uper; +per_type_decoder_f SensorType_decode_aper; +per_type_encoder_f SensorType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SensorType_H_ */ +#include diff --git a/vcits/cpm/SequenceNumber.h b/vcits/cpm/SequenceNumber.h new file mode 100644 index 0000000..46d4362 --- /dev/null +++ b/vcits/cpm/SequenceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SequenceNumber_H_ +#define _SequenceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SequenceNumber */ +typedef long SequenceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SequenceNumber; +asn_struct_free_f SequenceNumber_free; +asn_struct_print_f SequenceNumber_print; +asn_constr_check_f SequenceNumber_constraint; +ber_type_decoder_f SequenceNumber_decode_ber; +der_type_encoder_f SequenceNumber_encode_der; +xer_type_decoder_f SequenceNumber_decode_xer; +xer_type_encoder_f SequenceNumber_encode_xer; +oer_type_decoder_f SequenceNumber_decode_oer; +oer_type_encoder_f SequenceNumber_encode_oer; +per_type_decoder_f SequenceNumber_decode_uper; +per_type_encoder_f SequenceNumber_encode_uper; +per_type_decoder_f SequenceNumber_decode_aper; +per_type_encoder_f SequenceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SequenceNumber_H_ */ +#include diff --git a/vcits/cpm/ShadowingApplies.h b/vcits/cpm/ShadowingApplies.h new file mode 100644 index 0000000..e3ff025 --- /dev/null +++ b/vcits/cpm/ShadowingApplies.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ShadowingApplies_H_ +#define _ShadowingApplies_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ShadowingApplies */ +typedef BOOLEAN_t ShadowingApplies_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ShadowingApplies; +asn_struct_free_f ShadowingApplies_free; +asn_struct_print_f ShadowingApplies_print; +asn_constr_check_f ShadowingApplies_constraint; +ber_type_decoder_f ShadowingApplies_decode_ber; +der_type_encoder_f ShadowingApplies_encode_der; +xer_type_decoder_f ShadowingApplies_decode_xer; +xer_type_encoder_f ShadowingApplies_encode_xer; +oer_type_decoder_f ShadowingApplies_decode_oer; +oer_type_encoder_f ShadowingApplies_encode_oer; +per_type_decoder_f ShadowingApplies_decode_uper; +per_type_encoder_f ShadowingApplies_encode_uper; +per_type_decoder_f ShadowingApplies_decode_aper; +per_type_encoder_f ShadowingApplies_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ShadowingApplies_H_ */ +#include diff --git a/vcits/cpm/SignalControlZone.h b/vcits/cpm/SignalControlZone.h new file mode 100644 index 0000000..a458bc6 --- /dev/null +++ b/vcits/cpm/SignalControlZone.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalControlZone_H_ +#define _SignalControlZone_H_ + + +#include + +/* Including external dependencies */ +#include "RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalControlZone */ +typedef struct SignalControlZone { + Reg_SignalControlZone_t zone; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalControlZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalControlZone_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalControlZone_H_ */ +#include diff --git a/vcits/cpm/SignalGroupID.h b/vcits/cpm/SignalGroupID.h new file mode 100644 index 0000000..4f6fac4 --- /dev/null +++ b/vcits/cpm/SignalGroupID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalGroupID_H_ +#define _SignalGroupID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalGroupID */ +typedef long SignalGroupID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SignalGroupID; +asn_struct_free_f SignalGroupID_free; +asn_struct_print_f SignalGroupID_print; +asn_constr_check_f SignalGroupID_constraint; +ber_type_decoder_f SignalGroupID_decode_ber; +der_type_encoder_f SignalGroupID_encode_der; +xer_type_decoder_f SignalGroupID_decode_xer; +xer_type_encoder_f SignalGroupID_encode_xer; +oer_type_decoder_f SignalGroupID_decode_oer; +oer_type_encoder_f SignalGroupID_encode_oer; +per_type_decoder_f SignalGroupID_decode_uper; +per_type_encoder_f SignalGroupID_encode_uper; +per_type_decoder_f SignalGroupID_decode_aper; +per_type_encoder_f SignalGroupID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalGroupID_H_ */ +#include diff --git a/vcits/cpm/SignalHeadLocation.h b/vcits/cpm/SignalHeadLocation.h new file mode 100644 index 0000000..6974f62 --- /dev/null +++ b/vcits/cpm/SignalHeadLocation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalHeadLocation_H_ +#define _SignalHeadLocation_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include "DeltaAltitude.h" +#include "SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalHeadLocation */ +typedef struct SignalHeadLocation { + NodeOffsetPointXY_t nodeXY; + DeltaAltitude_t nodeZ; + SignalGroupID_t signalGroupID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocation_H_ */ +#include diff --git a/vcits/cpm/SignalHeadLocationList.h b/vcits/cpm/SignalHeadLocationList.h new file mode 100644 index 0000000..1736bdc --- /dev/null +++ b/vcits/cpm/SignalHeadLocationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalHeadLocationList_H_ +#define _SignalHeadLocationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocation; + +/* SignalHeadLocationList */ +typedef struct SignalHeadLocationList { + A_SEQUENCE_OF(struct SignalHeadLocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList; +extern asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocationList_H_ */ +#include diff --git a/vcits/cpm/SignalRequest.h b/vcits/cpm/SignalRequest.h new file mode 100644 index 0000000..927d198 --- /dev/null +++ b/vcits/cpm/SignalRequest.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalRequest_H_ +#define _SignalRequest_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionReferenceID.h" +#include "RequestID.h" +#include "PriorityRequestType.h" +#include "IntersectionAccessPoint.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionAccessPoint; +struct Reg_SignalRequest; + +/* SignalRequest */ +typedef struct SignalRequest { + IntersectionReferenceID_t id; + RequestID_t requestID; + PriorityRequestType_t requestType; + IntersectionAccessPoint_t inBoundLane; + struct IntersectionAccessPoint *outBoundLane; /* OPTIONAL */ + struct SignalRequest__regional { + A_SEQUENCE_OF(struct Reg_SignalRequest) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequest_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequest_H_ */ +#include diff --git a/vcits/cpm/SignalRequestList.h b/vcits/cpm/SignalRequestList.h new file mode 100644 index 0000000..37d11b0 --- /dev/null +++ b/vcits/cpm/SignalRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalRequestList_H_ +#define _SignalRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestPackage; + +/* SignalRequestList */ +typedef struct SignalRequestList { + A_SEQUENCE_OF(struct SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestList; +extern asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestList_H_ */ +#include diff --git a/vcits/cpm/SignalRequestMessage.h b/vcits/cpm/SignalRequestMessage.h new file mode 100644 index 0000000..212d9b1 --- /dev/null +++ b/vcits/cpm/SignalRequestMessage.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalRequestMessage_H_ +#define _SignalRequestMessage_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MsgCount.h" +#include "RequestorDescription.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestList; +struct Reg_SignalRequestMessage; + +/* SignalRequestMessage */ +typedef struct SignalRequestMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + MsgCount_t *sequenceNumber; /* OPTIONAL */ + struct SignalRequestList *requests; /* OPTIONAL */ + RequestorDescription_t requestor; + struct SignalRequestMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestMessage_H_ */ +#include diff --git a/vcits/cpm/SignalRequestPackage.h b/vcits/cpm/SignalRequestPackage.h new file mode 100644 index 0000000..230c062 --- /dev/null +++ b/vcits/cpm/SignalRequestPackage.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalRequestPackage_H_ +#define _SignalRequestPackage_H_ + + +#include + +/* Including external dependencies */ +#include "SignalRequest.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalRequestPackage; + +/* SignalRequestPackage */ +typedef struct SignalRequestPackage { + SignalRequest_t request; + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + struct SignalRequestPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestPackage_H_ */ +#include diff --git a/vcits/cpm/SignalRequesterInfo.h b/vcits/cpm/SignalRequesterInfo.h new file mode 100644 index 0000000..0a38b9a --- /dev/null +++ b/vcits/cpm/SignalRequesterInfo.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalRequesterInfo_H_ +#define _SignalRequesterInfo_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleID.h" +#include "RequestID.h" +#include "MsgCount.h" +#include "BasicVehicleRole.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; + +/* SignalRequesterInfo */ +typedef struct SignalRequesterInfo { + VehicleID_t id; + RequestID_t request; + MsgCount_t sequenceNumber; + BasicVehicleRole_t *role; /* OPTIONAL */ + struct RequestorType *typeData; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequesterInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequesterInfo_H_ */ +#include diff --git a/vcits/cpm/SignalStatus.h b/vcits/cpm/SignalStatus.h new file mode 100644 index 0000000..0af2eab --- /dev/null +++ b/vcits/cpm/SignalStatus.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalStatus_H_ +#define _SignalStatus_H_ + + +#include + +/* Including external dependencies */ +#include "MsgCount.h" +#include "IntersectionReferenceID.h" +#include "SignalStatusPackageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatus; + +/* SignalStatus */ +typedef struct SignalStatus { + MsgCount_t sequenceNumber; + IntersectionReferenceID_t id; + SignalStatusPackageList_t sigStatus; + struct SignalStatus__regional { + A_SEQUENCE_OF(struct Reg_SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatus_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatus_H_ */ +#include diff --git a/vcits/cpm/SignalStatusList.h b/vcits/cpm/SignalStatusList.h new file mode 100644 index 0000000..06bd58d --- /dev/null +++ b/vcits/cpm/SignalStatusList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalStatusList_H_ +#define _SignalStatusList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatus; + +/* SignalStatusList */ +typedef struct SignalStatusList { + A_SEQUENCE_OF(struct SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusList_H_ */ +#include diff --git a/vcits/cpm/SignalStatusMessage.h b/vcits/cpm/SignalStatusMessage.h new file mode 100644 index 0000000..641696e --- /dev/null +++ b/vcits/cpm/SignalStatusMessage.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalStatusMessage_H_ +#define _SignalStatusMessage_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MsgCount.h" +#include "SignalStatusList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatusMessage; + +/* SignalStatusMessage */ +typedef struct SignalStatusMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + MsgCount_t *sequenceNumber; /* OPTIONAL */ + SignalStatusList_t status; + struct SignalStatusMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusMessage_H_ */ +#include diff --git a/vcits/cpm/SignalStatusPackage-addGrpC.h b/vcits/cpm/SignalStatusPackage-addGrpC.h new file mode 100644 index 0000000..b84f7d4 --- /dev/null +++ b/vcits/cpm/SignalStatusPackage-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalStatusPackage_addGrpC_H_ +#define _SignalStatusPackage_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaTime.h" +#include "RejectedReason.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalStatusPackage-addGrpC */ +typedef struct SignalStatusPackage_addGrpC { + DeltaTime_t *synchToSchedule; /* OPTIONAL */ + RejectedReason_t *rejectedReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_addGrpC_H_ */ +#include diff --git a/vcits/cpm/SignalStatusPackage.h b/vcits/cpm/SignalStatusPackage.h new file mode 100644 index 0000000..4c1a392 --- /dev/null +++ b/vcits/cpm/SignalStatusPackage.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalStatusPackage_H_ +#define _SignalStatusPackage_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionAccessPoint.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "PrioritizationResponseStatus.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequesterInfo; +struct IntersectionAccessPoint; +struct Reg_SignalStatusPackage; + +/* SignalStatusPackage */ +typedef struct SignalStatusPackage { + struct SignalRequesterInfo *requester; /* OPTIONAL */ + IntersectionAccessPoint_t inboundOn; + struct IntersectionAccessPoint *outboundOn; /* OPTIONAL */ + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + PrioritizationResponseStatus_t status; + struct SignalStatusPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_H_ */ +#include diff --git a/vcits/cpm/SignalStatusPackageList.h b/vcits/cpm/SignalStatusPackageList.h new file mode 100644 index 0000000..2f8d230 --- /dev/null +++ b/vcits/cpm/SignalStatusPackageList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalStatusPackageList_H_ +#define _SignalStatusPackageList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatusPackage; + +/* SignalStatusPackageList */ +typedef struct SignalStatusPackageList { + A_SEQUENCE_OF(struct SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackageList_H_ */ +#include diff --git a/vcits/cpm/SignalViolationSubCauseCode.h b/vcits/cpm/SignalViolationSubCauseCode.h new file mode 100644 index 0000000..a63cd98 --- /dev/null +++ b/vcits/cpm/SignalViolationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SignalViolationSubCauseCode_H_ +#define _SignalViolationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SignalViolationSubCauseCode { + SignalViolationSubCauseCode_unavailable = 0, + SignalViolationSubCauseCode_stopSignViolation = 1, + SignalViolationSubCauseCode_trafficLightViolation = 2, + SignalViolationSubCauseCode_turningRegulationViolation = 3 +} e_SignalViolationSubCauseCode; + +/* SignalViolationSubCauseCode */ +typedef long SignalViolationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode; +asn_struct_free_f SignalViolationSubCauseCode_free; +asn_struct_print_f SignalViolationSubCauseCode_print; +asn_constr_check_f SignalViolationSubCauseCode_constraint; +ber_type_decoder_f SignalViolationSubCauseCode_decode_ber; +der_type_encoder_f SignalViolationSubCauseCode_encode_der; +xer_type_decoder_f SignalViolationSubCauseCode_decode_xer; +xer_type_encoder_f SignalViolationSubCauseCode_encode_xer; +oer_type_decoder_f SignalViolationSubCauseCode_decode_oer; +oer_type_encoder_f SignalViolationSubCauseCode_encode_oer; +per_type_decoder_f SignalViolationSubCauseCode_decode_uper; +per_type_encoder_f SignalViolationSubCauseCode_encode_uper; +per_type_decoder_f SignalViolationSubCauseCode_decode_aper; +per_type_encoder_f SignalViolationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalViolationSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/SlowVehicleSubCauseCode.h b/vcits/cpm/SlowVehicleSubCauseCode.h new file mode 100644 index 0000000..d8974eb --- /dev/null +++ b/vcits/cpm/SlowVehicleSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SlowVehicleSubCauseCode_H_ +#define _SlowVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SlowVehicleSubCauseCode { + SlowVehicleSubCauseCode_unavailable = 0, + SlowVehicleSubCauseCode_maintenanceVehicle = 1, + SlowVehicleSubCauseCode_vehiclesSlowingToLookAtAccident = 2, + SlowVehicleSubCauseCode_abnormalLoad = 3, + SlowVehicleSubCauseCode_abnormalWideLoad = 4, + SlowVehicleSubCauseCode_convoy = 5, + SlowVehicleSubCauseCode_snowplough = 6, + SlowVehicleSubCauseCode_deicing = 7, + SlowVehicleSubCauseCode_saltingVehicles = 8 +} e_SlowVehicleSubCauseCode; + +/* SlowVehicleSubCauseCode */ +typedef long SlowVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode; +asn_struct_free_f SlowVehicleSubCauseCode_free; +asn_struct_print_f SlowVehicleSubCauseCode_print; +asn_constr_check_f SlowVehicleSubCauseCode_constraint; +ber_type_decoder_f SlowVehicleSubCauseCode_decode_ber; +der_type_encoder_f SlowVehicleSubCauseCode_encode_der; +xer_type_decoder_f SlowVehicleSubCauseCode_decode_xer; +xer_type_encoder_f SlowVehicleSubCauseCode_encode_xer; +oer_type_decoder_f SlowVehicleSubCauseCode_decode_oer; +oer_type_encoder_f SlowVehicleSubCauseCode_encode_oer; +per_type_decoder_f SlowVehicleSubCauseCode_decode_uper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_uper; +per_type_decoder_f SlowVehicleSubCauseCode_decode_aper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SlowVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/SpecialTransportContainer.h b/vcits/cpm/SpecialTransportContainer.h new file mode 100644 index 0000000..cf9085f --- /dev/null +++ b/vcits/cpm/SpecialTransportContainer.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SpecialTransportContainer_H_ +#define _SpecialTransportContainer_H_ + + +#include + +/* Including external dependencies */ +#include "SpecialTransportType.h" +#include "LightBarSirenInUse.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpecialTransportContainer */ +typedef struct SpecialTransportContainer { + SpecialTransportType_t specialTransportType; + LightBarSirenInUse_t lightBarSirenInUse; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpecialTransportContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpecialTransportContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_SpecialTransportContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_SpecialTransportContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpecialTransportContainer_H_ */ +#include diff --git a/vcits/cpm/SpecialTransportType.h b/vcits/cpm/SpecialTransportType.h new file mode 100644 index 0000000..bdb6d14 --- /dev/null +++ b/vcits/cpm/SpecialTransportType.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SpecialTransportType_H_ +#define _SpecialTransportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpecialTransportType { + SpecialTransportType_heavyLoad = 0, + SpecialTransportType_excessWidth = 1, + SpecialTransportType_excessLength = 2, + SpecialTransportType_excessHeight = 3 +} e_SpecialTransportType; + +/* SpecialTransportType */ +typedef BIT_STRING_t SpecialTransportType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpecialTransportType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpecialTransportType; +asn_struct_free_f SpecialTransportType_free; +asn_struct_print_f SpecialTransportType_print; +asn_constr_check_f SpecialTransportType_constraint; +ber_type_decoder_f SpecialTransportType_decode_ber; +der_type_encoder_f SpecialTransportType_encode_der; +xer_type_decoder_f SpecialTransportType_decode_xer; +xer_type_encoder_f SpecialTransportType_encode_xer; +oer_type_decoder_f SpecialTransportType_decode_oer; +oer_type_encoder_f SpecialTransportType_encode_oer; +per_type_decoder_f SpecialTransportType_decode_uper; +per_type_encoder_f SpecialTransportType_encode_uper; +per_type_decoder_f SpecialTransportType_decode_aper; +per_type_encoder_f SpecialTransportType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpecialTransportType_H_ */ +#include diff --git a/vcits/cpm/SpecialVehicleContainer.h b/vcits/cpm/SpecialVehicleContainer.h new file mode 100644 index 0000000..cef1dcd --- /dev/null +++ b/vcits/cpm/SpecialVehicleContainer.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SpecialVehicleContainer_H_ +#define _SpecialVehicleContainer_H_ + + +#include + +/* Including external dependencies */ +#include "PublicTransportContainer.h" +#include "SpecialTransportContainer.h" +#include "DangerousGoodsContainer.h" +#include "RoadWorksContainerBasic.h" +#include "RescueContainer.h" +#include "EmergencyContainer.h" +#include "SafetyCarContainer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpecialVehicleContainer_PR { + SpecialVehicleContainer_PR_NOTHING, /* No components present */ + SpecialVehicleContainer_PR_publicTransportContainer, + SpecialVehicleContainer_PR_specialTransportContainer, + SpecialVehicleContainer_PR_dangerousGoodsContainer, + SpecialVehicleContainer_PR_roadWorksContainerBasic, + SpecialVehicleContainer_PR_rescueContainer, + SpecialVehicleContainer_PR_emergencyContainer, + SpecialVehicleContainer_PR_safetyCarContainer + /* Extensions may appear below */ + +} SpecialVehicleContainer_PR; + +/* SpecialVehicleContainer */ +typedef struct SpecialVehicleContainer { + SpecialVehicleContainer_PR present; + union SpecialVehicleContainer_u { + PublicTransportContainer_t publicTransportContainer; + SpecialTransportContainer_t specialTransportContainer; + DangerousGoodsContainer_t dangerousGoodsContainer; + RoadWorksContainerBasic_t roadWorksContainerBasic; + RescueContainer_t rescueContainer; + EmergencyContainer_t emergencyContainer; + SafetyCarContainer_t safetyCarContainer; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpecialVehicleContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpecialVehicleContainer; +extern asn_CHOICE_specifics_t asn_SPC_SpecialVehicleContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_SpecialVehicleContainer_1[7]; +extern asn_per_constraints_t asn_PER_type_SpecialVehicleContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpecialVehicleContainer_H_ */ +#include diff --git a/vcits/cpm/Speed.h b/vcits/cpm/Speed.h new file mode 100644 index 0000000..3461cf7 --- /dev/null +++ b/vcits/cpm/Speed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Speed_H_ +#define _Speed_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedValue.h" +#include "SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Speed */ +typedef struct Speed { + SpeedValue_t speedValue; + SpeedConfidence_t speedConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Speed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Speed; +extern asn_SEQUENCE_specifics_t asn_SPC_Speed_specs_1; +extern asn_TYPE_member_t asn_MBR_Speed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Speed_H_ */ +#include diff --git a/vcits/cpm/SpeedAdvice.h b/vcits/cpm/SpeedAdvice.h new file mode 100644 index 0000000..47ca741 --- /dev/null +++ b/vcits/cpm/SpeedAdvice.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SpeedAdvice_H_ +#define _SpeedAdvice_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedAdvice */ +typedef long SpeedAdvice_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedAdvice; +asn_struct_free_f SpeedAdvice_free; +asn_struct_print_f SpeedAdvice_print; +asn_constr_check_f SpeedAdvice_constraint; +ber_type_decoder_f SpeedAdvice_decode_ber; +der_type_encoder_f SpeedAdvice_encode_der; +xer_type_decoder_f SpeedAdvice_decode_xer; +xer_type_encoder_f SpeedAdvice_encode_xer; +oer_type_decoder_f SpeedAdvice_decode_oer; +oer_type_encoder_f SpeedAdvice_encode_oer; +per_type_decoder_f SpeedAdvice_decode_uper; +per_type_encoder_f SpeedAdvice_encode_uper; +per_type_decoder_f SpeedAdvice_decode_aper; +per_type_encoder_f SpeedAdvice_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedAdvice_H_ */ +#include diff --git a/vcits/cpm/SpeedConfidence.h b/vcits/cpm/SpeedConfidence.h new file mode 100644 index 0000000..40bb093 --- /dev/null +++ b/vcits/cpm/SpeedConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SpeedConfidence_H_ +#define _SpeedConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidence { + SpeedConfidence_equalOrWithinOneCentimeterPerSec = 1, + SpeedConfidence_equalOrWithinOneMeterPerSec = 100, + SpeedConfidence_outOfRange = 126, + SpeedConfidence_unavailable = 127 +} e_SpeedConfidence; + +/* SpeedConfidence */ +typedef long SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidence; +asn_struct_free_f SpeedConfidence_free; +asn_struct_print_f SpeedConfidence_print; +asn_constr_check_f SpeedConfidence_constraint; +ber_type_decoder_f SpeedConfidence_decode_ber; +der_type_encoder_f SpeedConfidence_encode_der; +xer_type_decoder_f SpeedConfidence_decode_xer; +xer_type_encoder_f SpeedConfidence_encode_xer; +oer_type_decoder_f SpeedConfidence_decode_oer; +oer_type_encoder_f SpeedConfidence_encode_oer; +per_type_decoder_f SpeedConfidence_decode_uper; +per_type_encoder_f SpeedConfidence_encode_uper; +per_type_decoder_f SpeedConfidence_decode_aper; +per_type_encoder_f SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidence_H_ */ +#include diff --git a/vcits/cpm/SpeedConfidenceDSRC.h b/vcits/cpm/SpeedConfidenceDSRC.h new file mode 100644 index 0000000..3a730a4 --- /dev/null +++ b/vcits/cpm/SpeedConfidenceDSRC.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SpeedConfidenceDSRC_H_ +#define _SpeedConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidenceDSRC { + SpeedConfidenceDSRC_unavailable = 0, + SpeedConfidenceDSRC_prec100ms = 1, + SpeedConfidenceDSRC_prec10ms = 2, + SpeedConfidenceDSRC_prec5ms = 3, + SpeedConfidenceDSRC_prec1ms = 4, + SpeedConfidenceDSRC_prec0_1ms = 5, + SpeedConfidenceDSRC_prec0_05ms = 6, + SpeedConfidenceDSRC_prec0_01ms = 7 +} e_SpeedConfidenceDSRC; + +/* SpeedConfidenceDSRC */ +typedef long SpeedConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedConfidenceDSRC_specs_1; +asn_struct_free_f SpeedConfidenceDSRC_free; +asn_struct_print_f SpeedConfidenceDSRC_print; +asn_constr_check_f SpeedConfidenceDSRC_constraint; +ber_type_decoder_f SpeedConfidenceDSRC_decode_ber; +der_type_encoder_f SpeedConfidenceDSRC_encode_der; +xer_type_decoder_f SpeedConfidenceDSRC_decode_xer; +xer_type_encoder_f SpeedConfidenceDSRC_encode_xer; +oer_type_decoder_f SpeedConfidenceDSRC_decode_oer; +oer_type_encoder_f SpeedConfidenceDSRC_encode_oer; +per_type_decoder_f SpeedConfidenceDSRC_decode_uper; +per_type_encoder_f SpeedConfidenceDSRC_encode_uper; +per_type_decoder_f SpeedConfidenceDSRC_decode_aper; +per_type_encoder_f SpeedConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidenceDSRC_H_ */ +#include diff --git a/vcits/cpm/SpeedExtended.h b/vcits/cpm/SpeedExtended.h new file mode 100644 index 0000000..f37f0a6 --- /dev/null +++ b/vcits/cpm/SpeedExtended.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SpeedExtended_H_ +#define _SpeedExtended_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedValueExtended.h" +#include "SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedExtended */ +typedef struct SpeedExtended { + SpeedValueExtended_t value; + SpeedConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedExtended; +extern asn_SEQUENCE_specifics_t asn_SPC_SpeedExtended_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedExtended_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedExtended_H_ */ +#include diff --git a/vcits/cpm/SpeedLimit.h b/vcits/cpm/SpeedLimit.h new file mode 100644 index 0000000..25aac25 --- /dev/null +++ b/vcits/cpm/SpeedLimit.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SpeedLimit_H_ +#define _SpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimit { + SpeedLimit_oneKmPerHour = 1 +} e_SpeedLimit; + +/* SpeedLimit */ +typedef long SpeedLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimit; +asn_struct_free_f SpeedLimit_free; +asn_struct_print_f SpeedLimit_print; +asn_constr_check_f SpeedLimit_constraint; +ber_type_decoder_f SpeedLimit_decode_ber; +der_type_encoder_f SpeedLimit_encode_der; +xer_type_decoder_f SpeedLimit_decode_xer; +xer_type_encoder_f SpeedLimit_encode_xer; +oer_type_decoder_f SpeedLimit_decode_oer; +oer_type_encoder_f SpeedLimit_encode_oer; +per_type_decoder_f SpeedLimit_decode_uper; +per_type_encoder_f SpeedLimit_encode_uper; +per_type_decoder_f SpeedLimit_decode_aper; +per_type_encoder_f SpeedLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimit_H_ */ +#include diff --git a/vcits/cpm/SpeedLimitList.h b/vcits/cpm/SpeedLimitList.h new file mode 100644 index 0000000..a5ebd48 --- /dev/null +++ b/vcits/cpm/SpeedLimitList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SpeedLimitList_H_ +#define _SpeedLimitList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RegulatorySpeedLimit; + +/* SpeedLimitList */ +typedef struct SpeedLimitList { + A_SEQUENCE_OF(struct RegulatorySpeedLimit) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedLimitList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitList; +extern asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedLimitList_1[1]; +extern asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitList_H_ */ +#include diff --git a/vcits/cpm/SpeedLimitType.h b/vcits/cpm/SpeedLimitType.h new file mode 100644 index 0000000..019f2c1 --- /dev/null +++ b/vcits/cpm/SpeedLimitType.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SpeedLimitType_H_ +#define _SpeedLimitType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimitType { + SpeedLimitType_unknown = 0, + SpeedLimitType_maxSpeedInSchoolZone = 1, + SpeedLimitType_maxSpeedInSchoolZoneWhenChildrenArePresent = 2, + SpeedLimitType_maxSpeedInConstructionZone = 3, + SpeedLimitType_vehicleMinSpeed = 4, + SpeedLimitType_vehicleMaxSpeed = 5, + SpeedLimitType_vehicleNightMaxSpeed = 6, + SpeedLimitType_truckMinSpeed = 7, + SpeedLimitType_truckMaxSpeed = 8, + SpeedLimitType_truckNightMaxSpeed = 9, + SpeedLimitType_vehiclesWithTrailersMinSpeed = 10, + SpeedLimitType_vehiclesWithTrailersMaxSpeed = 11, + SpeedLimitType_vehiclesWithTrailersNightMaxSpeed = 12 + /* + * Enumeration is extensible + */ +} e_SpeedLimitType; + +/* SpeedLimitType */ +typedef long SpeedLimitType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitType; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1; +asn_struct_free_f SpeedLimitType_free; +asn_struct_print_f SpeedLimitType_print; +asn_constr_check_f SpeedLimitType_constraint; +ber_type_decoder_f SpeedLimitType_decode_ber; +der_type_encoder_f SpeedLimitType_encode_der; +xer_type_decoder_f SpeedLimitType_decode_xer; +xer_type_encoder_f SpeedLimitType_encode_xer; +oer_type_decoder_f SpeedLimitType_decode_oer; +oer_type_encoder_f SpeedLimitType_encode_oer; +per_type_decoder_f SpeedLimitType_decode_uper; +per_type_encoder_f SpeedLimitType_encode_uper; +per_type_decoder_f SpeedLimitType_decode_aper; +per_type_encoder_f SpeedLimitType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitType_H_ */ +#include diff --git a/vcits/cpm/SpeedValue.h b/vcits/cpm/SpeedValue.h new file mode 100644 index 0000000..0994444 --- /dev/null +++ b/vcits/cpm/SpeedValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SpeedValue_H_ +#define _SpeedValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedValue { + SpeedValue_standstill = 0, + SpeedValue_oneCentimeterPerSec = 1, + SpeedValue_unavailable = 16383 +} e_SpeedValue; + +/* SpeedValue */ +typedef long SpeedValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedValue; +asn_struct_free_f SpeedValue_free; +asn_struct_print_f SpeedValue_print; +asn_constr_check_f SpeedValue_constraint; +ber_type_decoder_f SpeedValue_decode_ber; +der_type_encoder_f SpeedValue_encode_der; +xer_type_decoder_f SpeedValue_decode_xer; +xer_type_encoder_f SpeedValue_encode_xer; +oer_type_decoder_f SpeedValue_decode_oer; +oer_type_encoder_f SpeedValue_encode_oer; +per_type_decoder_f SpeedValue_decode_uper; +per_type_encoder_f SpeedValue_encode_uper; +per_type_decoder_f SpeedValue_decode_aper; +per_type_encoder_f SpeedValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedValue_H_ */ +#include diff --git a/vcits/cpm/SpeedValueExtended.h b/vcits/cpm/SpeedValueExtended.h new file mode 100644 index 0000000..15d6ca8 --- /dev/null +++ b/vcits/cpm/SpeedValueExtended.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SpeedValueExtended_H_ +#define _SpeedValueExtended_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedValueExtended { + SpeedValueExtended_standstill = 0, + SpeedValueExtended_oneCentimeterPerSec = 1, + SpeedValueExtended_unavailable = 16383 +} e_SpeedValueExtended; + +/* SpeedValueExtended */ +typedef long SpeedValueExtended_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedValueExtended_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedValueExtended; +asn_struct_free_f SpeedValueExtended_free; +asn_struct_print_f SpeedValueExtended_print; +asn_constr_check_f SpeedValueExtended_constraint; +ber_type_decoder_f SpeedValueExtended_decode_ber; +der_type_encoder_f SpeedValueExtended_encode_der; +xer_type_decoder_f SpeedValueExtended_decode_xer; +xer_type_encoder_f SpeedValueExtended_encode_xer; +oer_type_decoder_f SpeedValueExtended_decode_oer; +oer_type_encoder_f SpeedValueExtended_encode_oer; +per_type_decoder_f SpeedValueExtended_decode_uper; +per_type_encoder_f SpeedValueExtended_encode_uper; +per_type_decoder_f SpeedValueExtended_decode_aper; +per_type_encoder_f SpeedValueExtended_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedValueExtended_H_ */ +#include diff --git a/vcits/cpm/SpeedandHeadingandThrottleConfidence.h b/vcits/cpm/SpeedandHeadingandThrottleConfidence.h new file mode 100644 index 0000000..31cf325 --- /dev/null +++ b/vcits/cpm/SpeedandHeadingandThrottleConfidence.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SpeedandHeadingandThrottleConfidence_H_ +#define _SpeedandHeadingandThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingConfidenceDSRC.h" +#include "SpeedConfidenceDSRC.h" +#include "ThrottleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedandHeadingandThrottleConfidence */ +typedef struct SpeedandHeadingandThrottleConfidence { + HeadingConfidenceDSRC_t heading; + SpeedConfidenceDSRC_t speed; + ThrottleConfidence_t throttle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedandHeadingandThrottleConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedandHeadingandThrottleConfidence_H_ */ +#include diff --git a/vcits/cpm/StationDataContainer.h b/vcits/cpm/StationDataContainer.h new file mode 100644 index 0000000..e8fa86f --- /dev/null +++ b/vcits/cpm/StationDataContainer.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _StationDataContainer_H_ +#define _StationDataContainer_H_ + + +#include + +/* Including external dependencies */ +#include "OriginatingVehicleContainer.h" +#include "OriginatingRSUContainer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationDataContainer_PR { + StationDataContainer_PR_NOTHING, /* No components present */ + StationDataContainer_PR_originatingVehicleContainer, + StationDataContainer_PR_originatingRSUContainer + /* Extensions may appear below */ + +} StationDataContainer_PR; + +/* StationDataContainer */ +typedef struct StationDataContainer { + StationDataContainer_PR present; + union StationDataContainer_u { + OriginatingVehicleContainer_t originatingVehicleContainer; + OriginatingRSUContainer_t originatingRSUContainer; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} StationDataContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationDataContainer; +extern asn_CHOICE_specifics_t asn_SPC_StationDataContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_StationDataContainer_1[2]; +extern asn_per_constraints_t asn_PER_type_StationDataContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationDataContainer_H_ */ +#include diff --git a/vcits/cpm/StationID.h b/vcits/cpm/StationID.h new file mode 100644 index 0000000..228ee52 --- /dev/null +++ b/vcits/cpm/StationID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _StationID_H_ +#define _StationID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* StationID */ +typedef unsigned long StationID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationID; +extern const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1; +asn_struct_free_f StationID_free; +asn_struct_print_f StationID_print; +asn_constr_check_f StationID_constraint; +ber_type_decoder_f StationID_decode_ber; +der_type_encoder_f StationID_encode_der; +xer_type_decoder_f StationID_decode_xer; +xer_type_encoder_f StationID_encode_xer; +oer_type_decoder_f StationID_decode_oer; +oer_type_encoder_f StationID_encode_oer; +per_type_decoder_f StationID_decode_uper; +per_type_encoder_f StationID_encode_uper; +per_type_decoder_f StationID_decode_aper; +per_type_encoder_f StationID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationID_H_ */ +#include diff --git a/vcits/cpm/StationType.h b/vcits/cpm/StationType.h new file mode 100644 index 0000000..903a1bc --- /dev/null +++ b/vcits/cpm/StationType.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _StationType_H_ +#define _StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationType { + StationType_unknown = 0, + StationType_pedestrian = 1, + StationType_cyclist = 2, + StationType_moped = 3, + StationType_motorcycle = 4, + StationType_passengerCar = 5, + StationType_bus = 6, + StationType_lightTruck = 7, + StationType_heavyTruck = 8, + StationType_trailer = 9, + StationType_specialVehicles = 10, + StationType_tram = 11, + StationType_roadSideUnit = 15 +} e_StationType; + +/* StationType */ +typedef long StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationType; +asn_struct_free_f StationType_free; +asn_struct_print_f StationType_print; +asn_constr_check_f StationType_constraint; +ber_type_decoder_f StationType_decode_ber; +der_type_encoder_f StationType_encode_der; +xer_type_decoder_f StationType_decode_xer; +xer_type_encoder_f StationType_encode_xer; +oer_type_decoder_f StationType_decode_oer; +oer_type_encoder_f StationType_encode_oer; +per_type_decoder_f StationType_decode_uper; +per_type_encoder_f StationType_encode_uper; +per_type_decoder_f StationType_decode_aper; +per_type_encoder_f StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationType_H_ */ +#include diff --git a/vcits/cpm/StationarySince.h b/vcits/cpm/StationarySince.h new file mode 100644 index 0000000..16b30bd --- /dev/null +++ b/vcits/cpm/StationarySince.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _StationarySince_H_ +#define _StationarySince_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationarySince { + StationarySince_lessThan1Minute = 0, + StationarySince_lessThan2Minutes = 1, + StationarySince_lessThan15Minutes = 2, + StationarySince_equalOrGreater15Minutes = 3 +} e_StationarySince; + +/* StationarySince */ +typedef long StationarySince_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationarySince; +asn_struct_free_f StationarySince_free; +asn_struct_print_f StationarySince_print; +asn_constr_check_f StationarySince_constraint; +ber_type_decoder_f StationarySince_decode_ber; +der_type_encoder_f StationarySince_encode_der; +xer_type_decoder_f StationarySince_decode_xer; +xer_type_encoder_f StationarySince_encode_xer; +oer_type_decoder_f StationarySince_decode_oer; +oer_type_encoder_f StationarySince_encode_oer; +per_type_decoder_f StationarySince_decode_uper; +per_type_encoder_f StationarySince_encode_uper; +per_type_decoder_f StationarySince_decode_aper; +per_type_encoder_f StationarySince_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationarySince_H_ */ +#include diff --git a/vcits/cpm/StationaryVehicleSubCauseCode.h b/vcits/cpm/StationaryVehicleSubCauseCode.h new file mode 100644 index 0000000..fc56ffd --- /dev/null +++ b/vcits/cpm/StationaryVehicleSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _StationaryVehicleSubCauseCode_H_ +#define _StationaryVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationaryVehicleSubCauseCode { + StationaryVehicleSubCauseCode_unavailable = 0, + StationaryVehicleSubCauseCode_humanProblem = 1, + StationaryVehicleSubCauseCode_vehicleBreakdown = 2, + StationaryVehicleSubCauseCode_postCrash = 3, + StationaryVehicleSubCauseCode_publicTransportStop = 4, + StationaryVehicleSubCauseCode_carryingDangerousGoods = 5 +} e_StationaryVehicleSubCauseCode; + +/* StationaryVehicleSubCauseCode */ +typedef long StationaryVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode; +asn_struct_free_f StationaryVehicleSubCauseCode_free; +asn_struct_print_f StationaryVehicleSubCauseCode_print; +asn_constr_check_f StationaryVehicleSubCauseCode_constraint; +ber_type_decoder_f StationaryVehicleSubCauseCode_decode_ber; +der_type_encoder_f StationaryVehicleSubCauseCode_encode_der; +xer_type_decoder_f StationaryVehicleSubCauseCode_decode_xer; +xer_type_encoder_f StationaryVehicleSubCauseCode_encode_xer; +oer_type_decoder_f StationaryVehicleSubCauseCode_decode_oer; +oer_type_encoder_f StationaryVehicleSubCauseCode_encode_oer; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_uper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_uper; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_aper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationaryVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/SteeringWheelAngle.h b/vcits/cpm/SteeringWheelAngle.h new file mode 100644 index 0000000..cc96322 --- /dev/null +++ b/vcits/cpm/SteeringWheelAngle.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SteeringWheelAngle_H_ +#define _SteeringWheelAngle_H_ + + +#include + +/* Including external dependencies */ +#include "SteeringWheelAngleValue.h" +#include "SteeringWheelAngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SteeringWheelAngle */ +typedef struct SteeringWheelAngle { + SteeringWheelAngleValue_t steeringWheelAngleValue; + SteeringWheelAngleConfidence_t steeringWheelAngleConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SteeringWheelAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle; +extern asn_SEQUENCE_specifics_t asn_SPC_SteeringWheelAngle_specs_1; +extern asn_TYPE_member_t asn_MBR_SteeringWheelAngle_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngle_H_ */ +#include diff --git a/vcits/cpm/SteeringWheelAngleConfidence.h b/vcits/cpm/SteeringWheelAngleConfidence.h new file mode 100644 index 0000000..6aa8cf4 --- /dev/null +++ b/vcits/cpm/SteeringWheelAngleConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SteeringWheelAngleConfidence_H_ +#define _SteeringWheelAngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleConfidence { + SteeringWheelAngleConfidence_equalOrWithinOnePointFiveDegree = 1, + SteeringWheelAngleConfidence_outOfRange = 126, + SteeringWheelAngleConfidence_unavailable = 127 +} e_SteeringWheelAngleConfidence; + +/* SteeringWheelAngleConfidence */ +typedef long SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence; +asn_struct_free_f SteeringWheelAngleConfidence_free; +asn_struct_print_f SteeringWheelAngleConfidence_print; +asn_constr_check_f SteeringWheelAngleConfidence_constraint; +ber_type_decoder_f SteeringWheelAngleConfidence_decode_ber; +der_type_encoder_f SteeringWheelAngleConfidence_encode_der; +xer_type_decoder_f SteeringWheelAngleConfidence_decode_xer; +xer_type_encoder_f SteeringWheelAngleConfidence_encode_xer; +oer_type_decoder_f SteeringWheelAngleConfidence_decode_oer; +oer_type_encoder_f SteeringWheelAngleConfidence_encode_oer; +per_type_decoder_f SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleConfidence_H_ */ +#include diff --git a/vcits/cpm/SteeringWheelAngleValue.h b/vcits/cpm/SteeringWheelAngleValue.h new file mode 100644 index 0000000..bb3f095 --- /dev/null +++ b/vcits/cpm/SteeringWheelAngleValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SteeringWheelAngleValue_H_ +#define _SteeringWheelAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleValue { + SteeringWheelAngleValue_straight = 0, + SteeringWheelAngleValue_onePointFiveDegreesToRight = -1, + SteeringWheelAngleValue_onePointFiveDegreesToLeft = 1, + SteeringWheelAngleValue_unavailable = 512 +} e_SteeringWheelAngleValue; + +/* SteeringWheelAngleValue */ +typedef long SteeringWheelAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue; +asn_struct_free_f SteeringWheelAngleValue_free; +asn_struct_print_f SteeringWheelAngleValue_print; +asn_constr_check_f SteeringWheelAngleValue_constraint; +ber_type_decoder_f SteeringWheelAngleValue_decode_ber; +der_type_encoder_f SteeringWheelAngleValue_encode_der; +xer_type_decoder_f SteeringWheelAngleValue_decode_xer; +xer_type_encoder_f SteeringWheelAngleValue_encode_xer; +oer_type_decoder_f SteeringWheelAngleValue_decode_oer; +oer_type_encoder_f SteeringWheelAngleValue_encode_oer; +per_type_decoder_f SteeringWheelAngleValue_decode_uper; +per_type_encoder_f SteeringWheelAngleValue_encode_uper; +per_type_decoder_f SteeringWheelAngleValue_decode_aper; +per_type_encoder_f SteeringWheelAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleValue_H_ */ +#include diff --git a/vcits/cpm/SubCauseCodeType.h b/vcits/cpm/SubCauseCodeType.h new file mode 100644 index 0000000..f587a3a --- /dev/null +++ b/vcits/cpm/SubCauseCodeType.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _SubCauseCodeType_H_ +#define _SubCauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SubCauseCodeType */ +typedef long SubCauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType; +asn_struct_free_f SubCauseCodeType_free; +asn_struct_print_f SubCauseCodeType_print; +asn_constr_check_f SubCauseCodeType_constraint; +ber_type_decoder_f SubCauseCodeType_decode_ber; +der_type_encoder_f SubCauseCodeType_encode_der; +xer_type_decoder_f SubCauseCodeType_decode_xer; +xer_type_encoder_f SubCauseCodeType_encode_xer; +oer_type_decoder_f SubCauseCodeType_decode_oer; +oer_type_encoder_f SubCauseCodeType_encode_oer; +per_type_decoder_f SubCauseCodeType_decode_uper; +per_type_encoder_f SubCauseCodeType_encode_uper; +per_type_decoder_f SubCauseCodeType_decode_aper; +per_type_encoder_f SubCauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SubCauseCodeType_H_ */ +#include diff --git a/vcits/cpm/Temperature.h b/vcits/cpm/Temperature.h new file mode 100644 index 0000000..17c086d --- /dev/null +++ b/vcits/cpm/Temperature.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Temperature_H_ +#define _Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Temperature { + Temperature_equalOrSmallerThanMinus60Deg = -60, + Temperature_oneDegreeCelsius = 1, + Temperature_equalOrGreaterThan67Deg = 67 +} e_Temperature; + +/* Temperature */ +typedef long Temperature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Temperature; +asn_struct_free_f Temperature_free; +asn_struct_print_f Temperature_print; +asn_constr_check_f Temperature_constraint; +ber_type_decoder_f Temperature_decode_ber; +der_type_encoder_f Temperature_encode_der; +xer_type_decoder_f Temperature_decode_xer; +xer_type_encoder_f Temperature_encode_xer; +oer_type_decoder_f Temperature_decode_oer; +oer_type_encoder_f Temperature_encode_oer; +per_type_decoder_f Temperature_decode_uper; +per_type_encoder_f Temperature_encode_uper; +per_type_decoder_f Temperature_decode_aper; +per_type_encoder_f Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Temperature_H_ */ +#include diff --git a/vcits/cpm/TemporaryID.h b/vcits/cpm/TemporaryID.h new file mode 100644 index 0000000..ddfb929 --- /dev/null +++ b/vcits/cpm/TemporaryID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TemporaryID_H_ +#define _TemporaryID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TemporaryID */ +typedef OCTET_STRING_t TemporaryID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TemporaryID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TemporaryID; +asn_struct_free_f TemporaryID_free; +asn_struct_print_f TemporaryID_print; +asn_constr_check_f TemporaryID_constraint; +ber_type_decoder_f TemporaryID_decode_ber; +der_type_encoder_f TemporaryID_encode_der; +xer_type_decoder_f TemporaryID_decode_xer; +xer_type_encoder_f TemporaryID_encode_xer; +oer_type_decoder_f TemporaryID_decode_oer; +oer_type_encoder_f TemporaryID_encode_oer; +per_type_decoder_f TemporaryID_decode_uper; +per_type_encoder_f TemporaryID_encode_uper; +per_type_decoder_f TemporaryID_decode_aper; +per_type_encoder_f TemporaryID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TemporaryID_H_ */ +#include diff --git a/vcits/cpm/ThrottleConfidence.h b/vcits/cpm/ThrottleConfidence.h new file mode 100644 index 0000000..9ad93a5 --- /dev/null +++ b/vcits/cpm/ThrottleConfidence.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ThrottleConfidence_H_ +#define _ThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ThrottleConfidence { + ThrottleConfidence_unavailable = 0, + ThrottleConfidence_prec10percent = 1, + ThrottleConfidence_prec1percent = 2, + ThrottleConfidence_prec0_5percent = 3 +} e_ThrottleConfidence; + +/* ThrottleConfidence */ +typedef long ThrottleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1; +asn_struct_free_f ThrottleConfidence_free; +asn_struct_print_f ThrottleConfidence_print; +asn_constr_check_f ThrottleConfidence_constraint; +ber_type_decoder_f ThrottleConfidence_decode_ber; +der_type_encoder_f ThrottleConfidence_encode_der; +xer_type_decoder_f ThrottleConfidence_decode_xer; +xer_type_encoder_f ThrottleConfidence_encode_xer; +oer_type_decoder_f ThrottleConfidence_decode_oer; +oer_type_encoder_f ThrottleConfidence_encode_oer; +per_type_decoder_f ThrottleConfidence_decode_uper; +per_type_encoder_f ThrottleConfidence_encode_uper; +per_type_decoder_f ThrottleConfidence_decode_aper; +per_type_encoder_f ThrottleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ThrottleConfidence_H_ */ +#include diff --git a/vcits/cpm/TimeChangeDetails.h b/vcits/cpm/TimeChangeDetails.h new file mode 100644 index 0000000..4a94936 --- /dev/null +++ b/vcits/cpm/TimeChangeDetails.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TimeChangeDetails_H_ +#define _TimeChangeDetails_H_ + + +#include + +/* Including external dependencies */ +#include "TimeMark.h" +#include "TimeIntervalConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeChangeDetails */ +typedef struct TimeChangeDetails { + TimeMark_t *startTime; /* OPTIONAL */ + TimeMark_t minEndTime; + TimeMark_t *maxEndTime; /* OPTIONAL */ + TimeMark_t *likelyTime; /* OPTIONAL */ + TimeIntervalConfidence_t *confidence; /* OPTIONAL */ + TimeMark_t *nextTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TimeChangeDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeChangeDetails_H_ */ +#include diff --git a/vcits/cpm/TimeConfidence.h b/vcits/cpm/TimeConfidence.h new file mode 100644 index 0000000..eaccba4 --- /dev/null +++ b/vcits/cpm/TimeConfidence.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TimeConfidence_H_ +#define _TimeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeConfidence { + TimeConfidence_unavailable = 0, + TimeConfidence_time_100_000 = 1, + TimeConfidence_time_050_000 = 2, + TimeConfidence_time_020_000 = 3, + TimeConfidence_time_010_000 = 4, + TimeConfidence_time_002_000 = 5, + TimeConfidence_time_001_000 = 6, + TimeConfidence_time_000_500 = 7, + TimeConfidence_time_000_200 = 8, + TimeConfidence_time_000_100 = 9, + TimeConfidence_time_000_050 = 10, + TimeConfidence_time_000_020 = 11, + TimeConfidence_time_000_010 = 12, + TimeConfidence_time_000_005 = 13, + TimeConfidence_time_000_002 = 14, + TimeConfidence_time_000_001 = 15, + TimeConfidence_time_000_000_5 = 16, + TimeConfidence_time_000_000_2 = 17, + TimeConfidence_time_000_000_1 = 18, + TimeConfidence_time_000_000_05 = 19, + TimeConfidence_time_000_000_02 = 20, + TimeConfidence_time_000_000_01 = 21, + TimeConfidence_time_000_000_005 = 22, + TimeConfidence_time_000_000_002 = 23, + TimeConfidence_time_000_000_001 = 24, + TimeConfidence_time_000_000_000_5 = 25, + TimeConfidence_time_000_000_000_2 = 26, + TimeConfidence_time_000_000_000_1 = 27, + TimeConfidence_time_000_000_000_05 = 28, + TimeConfidence_time_000_000_000_02 = 29, + TimeConfidence_time_000_000_000_01 = 30, + TimeConfidence_time_000_000_000_005 = 31, + TimeConfidence_time_000_000_000_002 = 32, + TimeConfidence_time_000_000_000_001 = 33, + TimeConfidence_time_000_000_000_000_5 = 34, + TimeConfidence_time_000_000_000_000_2 = 35, + TimeConfidence_time_000_000_000_000_1 = 36, + TimeConfidence_time_000_000_000_000_05 = 37, + TimeConfidence_time_000_000_000_000_02 = 38, + TimeConfidence_time_000_000_000_000_01 = 39 +} e_TimeConfidence; + +/* TimeConfidence */ +typedef long TimeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1; +asn_struct_free_f TimeConfidence_free; +asn_struct_print_f TimeConfidence_print; +asn_constr_check_f TimeConfidence_constraint; +ber_type_decoder_f TimeConfidence_decode_ber; +der_type_encoder_f TimeConfidence_encode_der; +xer_type_decoder_f TimeConfidence_decode_xer; +xer_type_encoder_f TimeConfidence_encode_xer; +oer_type_decoder_f TimeConfidence_decode_oer; +oer_type_encoder_f TimeConfidence_encode_oer; +per_type_decoder_f TimeConfidence_decode_uper; +per_type_encoder_f TimeConfidence_encode_uper; +per_type_decoder_f TimeConfidence_decode_aper; +per_type_encoder_f TimeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeConfidence_H_ */ +#include diff --git a/vcits/cpm/TimeIntervalConfidence.h b/vcits/cpm/TimeIntervalConfidence.h new file mode 100644 index 0000000..ad43521 --- /dev/null +++ b/vcits/cpm/TimeIntervalConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TimeIntervalConfidence_H_ +#define _TimeIntervalConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeIntervalConfidence */ +typedef long TimeIntervalConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence; +asn_struct_free_f TimeIntervalConfidence_free; +asn_struct_print_f TimeIntervalConfidence_print; +asn_constr_check_f TimeIntervalConfidence_constraint; +ber_type_decoder_f TimeIntervalConfidence_decode_ber; +der_type_encoder_f TimeIntervalConfidence_encode_der; +xer_type_decoder_f TimeIntervalConfidence_decode_xer; +xer_type_encoder_f TimeIntervalConfidence_encode_xer; +oer_type_decoder_f TimeIntervalConfidence_decode_oer; +oer_type_encoder_f TimeIntervalConfidence_encode_oer; +per_type_decoder_f TimeIntervalConfidence_decode_uper; +per_type_encoder_f TimeIntervalConfidence_encode_uper; +per_type_decoder_f TimeIntervalConfidence_decode_aper; +per_type_encoder_f TimeIntervalConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeIntervalConfidence_H_ */ +#include diff --git a/vcits/cpm/TimeMark.h b/vcits/cpm/TimeMark.h new file mode 100644 index 0000000..0fdd796 --- /dev/null +++ b/vcits/cpm/TimeMark.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TimeMark_H_ +#define _TimeMark_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeMark */ +typedef long TimeMark_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeMark_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeMark; +asn_struct_free_f TimeMark_free; +asn_struct_print_f TimeMark_print; +asn_constr_check_f TimeMark_constraint; +ber_type_decoder_f TimeMark_decode_ber; +der_type_encoder_f TimeMark_encode_der; +xer_type_decoder_f TimeMark_decode_xer; +xer_type_encoder_f TimeMark_encode_xer; +oer_type_decoder_f TimeMark_decode_oer; +oer_type_encoder_f TimeMark_encode_oer; +per_type_decoder_f TimeMark_decode_uper; +per_type_encoder_f TimeMark_encode_uper; +per_type_decoder_f TimeMark_decode_aper; +per_type_encoder_f TimeMark_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeMark_H_ */ +#include diff --git a/vcits/cpm/TimeOfMeasurement.h b/vcits/cpm/TimeOfMeasurement.h new file mode 100644 index 0000000..a4e82eb --- /dev/null +++ b/vcits/cpm/TimeOfMeasurement.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TimeOfMeasurement_H_ +#define _TimeOfMeasurement_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeOfMeasurement { + TimeOfMeasurement_oneMilliSecond = 1 +} e_TimeOfMeasurement; + +/* TimeOfMeasurement */ +typedef long TimeOfMeasurement_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeOfMeasurement_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeOfMeasurement; +asn_struct_free_f TimeOfMeasurement_free; +asn_struct_print_f TimeOfMeasurement_print; +asn_constr_check_f TimeOfMeasurement_constraint; +ber_type_decoder_f TimeOfMeasurement_decode_ber; +der_type_encoder_f TimeOfMeasurement_encode_der; +xer_type_decoder_f TimeOfMeasurement_decode_xer; +xer_type_encoder_f TimeOfMeasurement_encode_xer; +oer_type_decoder_f TimeOfMeasurement_decode_oer; +oer_type_encoder_f TimeOfMeasurement_encode_oer; +per_type_decoder_f TimeOfMeasurement_decode_uper; +per_type_encoder_f TimeOfMeasurement_encode_uper; +per_type_decoder_f TimeOfMeasurement_decode_aper; +per_type_encoder_f TimeOfMeasurement_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeOfMeasurement_H_ */ +#include diff --git a/vcits/cpm/TimeReference.h b/vcits/cpm/TimeReference.h new file mode 100644 index 0000000..8eee277 --- /dev/null +++ b/vcits/cpm/TimeReference.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TimeReference_H_ +#define _TimeReference_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeReference { + TimeReference_oneMilliSec = 1 +} e_TimeReference; + +/* TimeReference */ +typedef long TimeReference_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeReference_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeReference; +asn_struct_free_f TimeReference_free; +asn_struct_print_f TimeReference_print; +asn_constr_check_f TimeReference_constraint; +ber_type_decoder_f TimeReference_decode_ber; +der_type_encoder_f TimeReference_encode_der; +xer_type_decoder_f TimeReference_decode_xer; +xer_type_encoder_f TimeReference_encode_xer; +oer_type_decoder_f TimeReference_decode_oer; +oer_type_encoder_f TimeReference_encode_oer; +per_type_decoder_f TimeReference_decode_uper; +per_type_encoder_f TimeReference_encode_uper; +per_type_decoder_f TimeReference_decode_aper; +per_type_encoder_f TimeReference_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeReference_H_ */ +#include diff --git a/vcits/cpm/TimestampIts.h b/vcits/cpm/TimestampIts.h new file mode 100644 index 0000000..076595e --- /dev/null +++ b/vcits/cpm/TimestampIts.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TimestampIts_H_ +#define _TimestampIts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimestampIts { + TimestampIts_utcStartOf2004 = 0, + TimestampIts_oneMillisecAfterUTCStartOf2004 = 1 +} e_TimestampIts; + +/* TimestampIts */ +typedef INTEGER_t TimestampIts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimestampIts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimestampIts; +asn_struct_free_f TimestampIts_free; +asn_struct_print_f TimestampIts_print; +asn_constr_check_f TimestampIts_constraint; +ber_type_decoder_f TimestampIts_decode_ber; +der_type_encoder_f TimestampIts_encode_der; +xer_type_decoder_f TimestampIts_decode_xer; +xer_type_encoder_f TimestampIts_encode_xer; +oer_type_decoder_f TimestampIts_decode_oer; +oer_type_encoder_f TimestampIts_encode_oer; +per_type_decoder_f TimestampIts_decode_uper; +per_type_encoder_f TimestampIts_encode_uper; +per_type_decoder_f TimestampIts_decode_aper; +per_type_encoder_f TimestampIts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimestampIts_H_ */ +#include diff --git a/vcits/cpm/Traces.h b/vcits/cpm/Traces.h new file mode 100644 index 0000000..9764a72 --- /dev/null +++ b/vcits/cpm/Traces.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Traces_H_ +#define _Traces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathHistory; + +/* Traces */ +typedef struct Traces { + A_SEQUENCE_OF(struct PathHistory) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Traces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Traces; + +#ifdef __cplusplus +} +#endif + +#endif /* _Traces_H_ */ +#include diff --git a/vcits/cpm/TrafficConditionSubCauseCode.h b/vcits/cpm/TrafficConditionSubCauseCode.h new file mode 100644 index 0000000..2be18e3 --- /dev/null +++ b/vcits/cpm/TrafficConditionSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TrafficConditionSubCauseCode_H_ +#define _TrafficConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficConditionSubCauseCode { + TrafficConditionSubCauseCode_unavailable = 0, + TrafficConditionSubCauseCode_increasedVolumeOfTraffic = 1, + TrafficConditionSubCauseCode_trafficJamSlowlyIncreasing = 2, + TrafficConditionSubCauseCode_trafficJamIncreasing = 3, + TrafficConditionSubCauseCode_trafficJamStronglyIncreasing = 4, + TrafficConditionSubCauseCode_trafficStationary = 5, + TrafficConditionSubCauseCode_trafficJamSlightlyDecreasing = 6, + TrafficConditionSubCauseCode_trafficJamDecreasing = 7, + TrafficConditionSubCauseCode_trafficJamStronglyDecreasing = 8 +} e_TrafficConditionSubCauseCode; + +/* TrafficConditionSubCauseCode */ +typedef long TrafficConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode; +asn_struct_free_f TrafficConditionSubCauseCode_free; +asn_struct_print_f TrafficConditionSubCauseCode_print; +asn_constr_check_f TrafficConditionSubCauseCode_constraint; +ber_type_decoder_f TrafficConditionSubCauseCode_decode_ber; +der_type_encoder_f TrafficConditionSubCauseCode_encode_der; +xer_type_decoder_f TrafficConditionSubCauseCode_decode_xer; +xer_type_encoder_f TrafficConditionSubCauseCode_encode_xer; +oer_type_decoder_f TrafficConditionSubCauseCode_decode_oer; +oer_type_encoder_f TrafficConditionSubCauseCode_encode_oer; +per_type_decoder_f TrafficConditionSubCauseCode_decode_uper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_uper; +per_type_decoder_f TrafficConditionSubCauseCode_decode_aper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficConditionSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/TrafficRule.h b/vcits/cpm/TrafficRule.h new file mode 100644 index 0000000..5b3885b --- /dev/null +++ b/vcits/cpm/TrafficRule.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TrafficRule_H_ +#define _TrafficRule_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficRule { + TrafficRule_noPassing = 0, + TrafficRule_noPassingForTrucks = 1, + TrafficRule_passToRight = 2, + TrafficRule_passToLeft = 3 + /* + * Enumeration is extensible + */ +} e_TrafficRule; + +/* TrafficRule */ +typedef long TrafficRule_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TrafficRule_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TrafficRule; +extern const asn_INTEGER_specifics_t asn_SPC_TrafficRule_specs_1; +asn_struct_free_f TrafficRule_free; +asn_struct_print_f TrafficRule_print; +asn_constr_check_f TrafficRule_constraint; +ber_type_decoder_f TrafficRule_decode_ber; +der_type_encoder_f TrafficRule_encode_der; +xer_type_decoder_f TrafficRule_decode_xer; +xer_type_encoder_f TrafficRule_encode_xer; +oer_type_decoder_f TrafficRule_decode_oer; +oer_type_encoder_f TrafficRule_encode_oer; +per_type_decoder_f TrafficRule_decode_uper; +per_type_encoder_f TrafficRule_encode_uper; +per_type_decoder_f TrafficRule_decode_aper; +per_type_encoder_f TrafficRule_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficRule_H_ */ +#include diff --git a/vcits/cpm/TrailerData.h b/vcits/cpm/TrailerData.h new file mode 100644 index 0000000..b7f18f7 --- /dev/null +++ b/vcits/cpm/TrailerData.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TrailerData_H_ +#define _TrailerData_H_ + + +#include + +/* Including external dependencies */ +#include "RefPointId.h" +#include "HitchPointOffset.h" +#include "FrontOverhang.h" +#include "RearOverhang.h" +#include "VehicleWidth.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CartesianAngle; + +/* TrailerData */ +typedef struct TrailerData { + RefPointId_t refPointId; + HitchPointOffset_t hitchPointOffset; + FrontOverhang_t frontOverhang; + RearOverhang_t rearOverhang; + VehicleWidth_t *trailerWidth; /* OPTIONAL */ + struct CartesianAngle *hitchAngle; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TrailerData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrailerData; +extern asn_SEQUENCE_specifics_t asn_SPC_TrailerData_specs_1; +extern asn_TYPE_member_t asn_MBR_TrailerData_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerData_H_ */ +#include diff --git a/vcits/cpm/TrailerDataContainer.h b/vcits/cpm/TrailerDataContainer.h new file mode 100644 index 0000000..acb075f --- /dev/null +++ b/vcits/cpm/TrailerDataContainer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TrailerDataContainer_H_ +#define _TrailerDataContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TrailerData; + +/* TrailerDataContainer */ +typedef struct TrailerDataContainer { + A_SEQUENCE_OF(struct TrailerData) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TrailerDataContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrailerDataContainer; +extern asn_SET_OF_specifics_t asn_SPC_TrailerDataContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_TrailerDataContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_TrailerDataContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerDataContainer_H_ */ +#include diff --git a/vcits/cpm/TransitVehicleOccupancy.h b/vcits/cpm/TransitVehicleOccupancy.h new file mode 100644 index 0000000..ef4258a --- /dev/null +++ b/vcits/cpm/TransitVehicleOccupancy.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TransitVehicleOccupancy_H_ +#define _TransitVehicleOccupancy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleOccupancy { + TransitVehicleOccupancy_occupancyUnknown = 0, + TransitVehicleOccupancy_occupancyEmpty = 1, + TransitVehicleOccupancy_occupancyVeryLow = 2, + TransitVehicleOccupancy_occupancyLow = 3, + TransitVehicleOccupancy_occupancyMed = 4, + TransitVehicleOccupancy_occupancyHigh = 5, + TransitVehicleOccupancy_occupancyNearlyFull = 6, + TransitVehicleOccupancy_occupancyFull = 7 +} e_TransitVehicleOccupancy; + +/* TransitVehicleOccupancy */ +typedef long TransitVehicleOccupancy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy; +extern const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1; +asn_struct_free_f TransitVehicleOccupancy_free; +asn_struct_print_f TransitVehicleOccupancy_print; +asn_constr_check_f TransitVehicleOccupancy_constraint; +ber_type_decoder_f TransitVehicleOccupancy_decode_ber; +der_type_encoder_f TransitVehicleOccupancy_encode_der; +xer_type_decoder_f TransitVehicleOccupancy_decode_xer; +xer_type_encoder_f TransitVehicleOccupancy_encode_xer; +oer_type_decoder_f TransitVehicleOccupancy_decode_oer; +oer_type_encoder_f TransitVehicleOccupancy_encode_oer; +per_type_decoder_f TransitVehicleOccupancy_decode_uper; +per_type_encoder_f TransitVehicleOccupancy_encode_uper; +per_type_decoder_f TransitVehicleOccupancy_decode_aper; +per_type_encoder_f TransitVehicleOccupancy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleOccupancy_H_ */ +#include diff --git a/vcits/cpm/TransitVehicleStatus.h b/vcits/cpm/TransitVehicleStatus.h new file mode 100644 index 0000000..c94a2fa --- /dev/null +++ b/vcits/cpm/TransitVehicleStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TransitVehicleStatus_H_ +#define _TransitVehicleStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleStatus { + TransitVehicleStatus_loading = 0, + TransitVehicleStatus_anADAuse = 1, + TransitVehicleStatus_aBikeLoad = 2, + TransitVehicleStatus_doorOpen = 3, + TransitVehicleStatus_charging = 4, + TransitVehicleStatus_atStopLine = 5 +} e_TransitVehicleStatus; + +/* TransitVehicleStatus */ +typedef BIT_STRING_t TransitVehicleStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus; +asn_struct_free_f TransitVehicleStatus_free; +asn_struct_print_f TransitVehicleStatus_print; +asn_constr_check_f TransitVehicleStatus_constraint; +ber_type_decoder_f TransitVehicleStatus_decode_ber; +der_type_encoder_f TransitVehicleStatus_encode_der; +xer_type_decoder_f TransitVehicleStatus_decode_xer; +xer_type_encoder_f TransitVehicleStatus_encode_xer; +oer_type_decoder_f TransitVehicleStatus_decode_oer; +oer_type_encoder_f TransitVehicleStatus_encode_oer; +per_type_decoder_f TransitVehicleStatus_decode_uper; +per_type_encoder_f TransitVehicleStatus_encode_uper; +per_type_decoder_f TransitVehicleStatus_decode_aper; +per_type_encoder_f TransitVehicleStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleStatus_H_ */ +#include diff --git a/vcits/cpm/TransmissionAndSpeed.h b/vcits/cpm/TransmissionAndSpeed.h new file mode 100644 index 0000000..f0990aa --- /dev/null +++ b/vcits/cpm/TransmissionAndSpeed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TransmissionAndSpeed_H_ +#define _TransmissionAndSpeed_H_ + + +#include + +/* Including external dependencies */ +#include "TransmissionState.h" +#include "Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TransmissionAndSpeed */ +typedef struct TransmissionAndSpeed { + TransmissionState_t transmisson; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TransmissionAndSpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionAndSpeed_H_ */ +#include diff --git a/vcits/cpm/TransmissionInterval.h b/vcits/cpm/TransmissionInterval.h new file mode 100644 index 0000000..827e858 --- /dev/null +++ b/vcits/cpm/TransmissionInterval.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TransmissionInterval_H_ +#define _TransmissionInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionInterval { + TransmissionInterval_oneMilliSecond = 1, + TransmissionInterval_tenSeconds = 10000 +} e_TransmissionInterval; + +/* TransmissionInterval */ +typedef long TransmissionInterval_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionInterval; +asn_struct_free_f TransmissionInterval_free; +asn_struct_print_f TransmissionInterval_print; +asn_constr_check_f TransmissionInterval_constraint; +ber_type_decoder_f TransmissionInterval_decode_ber; +der_type_encoder_f TransmissionInterval_encode_der; +xer_type_decoder_f TransmissionInterval_decode_xer; +xer_type_encoder_f TransmissionInterval_encode_xer; +oer_type_decoder_f TransmissionInterval_decode_oer; +oer_type_encoder_f TransmissionInterval_encode_oer; +per_type_decoder_f TransmissionInterval_decode_uper; +per_type_encoder_f TransmissionInterval_encode_uper; +per_type_decoder_f TransmissionInterval_decode_aper; +per_type_encoder_f TransmissionInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionInterval_H_ */ +#include diff --git a/vcits/cpm/TransmissionState.h b/vcits/cpm/TransmissionState.h new file mode 100644 index 0000000..05771a3 --- /dev/null +++ b/vcits/cpm/TransmissionState.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TransmissionState_H_ +#define _TransmissionState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionState { + TransmissionState_neutral = 0, + TransmissionState_park = 1, + TransmissionState_forwardGears = 2, + TransmissionState_reverseGears = 3, + TransmissionState_reserved1 = 4, + TransmissionState_reserved2 = 5, + TransmissionState_reserved3 = 6, + TransmissionState_unavailable = 7 +} e_TransmissionState; + +/* TransmissionState */ +typedef long TransmissionState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransmissionState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransmissionState; +extern const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1; +asn_struct_free_f TransmissionState_free; +asn_struct_print_f TransmissionState_print; +asn_constr_check_f TransmissionState_constraint; +ber_type_decoder_f TransmissionState_decode_ber; +der_type_encoder_f TransmissionState_encode_der; +xer_type_decoder_f TransmissionState_decode_xer; +xer_type_encoder_f TransmissionState_encode_xer; +oer_type_decoder_f TransmissionState_decode_oer; +oer_type_encoder_f TransmissionState_encode_oer; +per_type_decoder_f TransmissionState_decode_uper; +per_type_encoder_f TransmissionState_encode_uper; +per_type_decoder_f TransmissionState_decode_aper; +per_type_encoder_f TransmissionState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionState_H_ */ +#include diff --git a/vcits/cpm/TurningRadius.h b/vcits/cpm/TurningRadius.h new file mode 100644 index 0000000..4c5baf4 --- /dev/null +++ b/vcits/cpm/TurningRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _TurningRadius_H_ +#define _TurningRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TurningRadius { + TurningRadius_point4Meters = 1, + TurningRadius_unavailable = 255 +} e_TurningRadius; + +/* TurningRadius */ +typedef long TurningRadius_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TurningRadius; +asn_struct_free_f TurningRadius_free; +asn_struct_print_f TurningRadius_print; +asn_constr_check_f TurningRadius_constraint; +ber_type_decoder_f TurningRadius_decode_ber; +der_type_encoder_f TurningRadius_encode_der; +xer_type_decoder_f TurningRadius_decode_xer; +xer_type_encoder_f TurningRadius_encode_xer; +oer_type_decoder_f TurningRadius_decode_oer; +oer_type_encoder_f TurningRadius_encode_oer; +per_type_decoder_f TurningRadius_decode_uper; +per_type_encoder_f TurningRadius_encode_uper; +per_type_decoder_f TurningRadius_decode_aper; +per_type_encoder_f TurningRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TurningRadius_H_ */ +#include diff --git a/vcits/cpm/VDS.h b/vcits/cpm/VDS.h new file mode 100644 index 0000000..232e4d2 --- /dev/null +++ b/vcits/cpm/VDS.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VDS_H_ +#define _VDS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VDS */ +typedef IA5String_t VDS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VDS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VDS; +asn_struct_free_f VDS_free; +asn_struct_print_f VDS_print; +asn_constr_check_f VDS_constraint; +ber_type_decoder_f VDS_decode_ber; +der_type_encoder_f VDS_encode_der; +xer_type_decoder_f VDS_decode_xer; +xer_type_encoder_f VDS_encode_xer; +oer_type_decoder_f VDS_decode_oer; +oer_type_encoder_f VDS_encode_oer; +per_type_decoder_f VDS_decode_uper; +per_type_encoder_f VDS_encode_uper; +per_type_decoder_f VDS_decode_aper; +per_type_encoder_f VDS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VDS_H_ */ +#include diff --git a/vcits/cpm/ValidityDuration.h b/vcits/cpm/ValidityDuration.h new file mode 100644 index 0000000..34c2cd2 --- /dev/null +++ b/vcits/cpm/ValidityDuration.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ValidityDuration_H_ +#define _ValidityDuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ValidityDuration { + ValidityDuration_timeOfDetection = 0, + ValidityDuration_oneSecondAfterDetection = 1 +} e_ValidityDuration; + +/* ValidityDuration */ +typedef long ValidityDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ValidityDuration; +asn_struct_free_f ValidityDuration_free; +asn_struct_print_f ValidityDuration_print; +asn_constr_check_f ValidityDuration_constraint; +ber_type_decoder_f ValidityDuration_decode_ber; +der_type_encoder_f ValidityDuration_encode_der; +xer_type_decoder_f ValidityDuration_decode_xer; +xer_type_encoder_f ValidityDuration_encode_xer; +oer_type_decoder_f ValidityDuration_decode_oer; +oer_type_encoder_f ValidityDuration_encode_oer; +per_type_decoder_f ValidityDuration_decode_uper; +per_type_encoder_f ValidityDuration_encode_uper; +per_type_decoder_f ValidityDuration_decode_aper; +per_type_encoder_f ValidityDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ValidityDuration_H_ */ +#include diff --git a/vcits/cpm/VehicleBreakdownSubCauseCode.h b/vcits/cpm/VehicleBreakdownSubCauseCode.h new file mode 100644 index 0000000..a2179f1 --- /dev/null +++ b/vcits/cpm/VehicleBreakdownSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleBreakdownSubCauseCode_H_ +#define _VehicleBreakdownSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleBreakdownSubCauseCode { + VehicleBreakdownSubCauseCode_unavailable = 0, + VehicleBreakdownSubCauseCode_lackOfFuel = 1, + VehicleBreakdownSubCauseCode_lackOfBatteryPower = 2, + VehicleBreakdownSubCauseCode_engineProblem = 3, + VehicleBreakdownSubCauseCode_transmissionProblem = 4, + VehicleBreakdownSubCauseCode_engineCoolingProblem = 5, + VehicleBreakdownSubCauseCode_brakingSystemProblem = 6, + VehicleBreakdownSubCauseCode_steeringProblem = 7, + VehicleBreakdownSubCauseCode_tyrePuncture = 8, + VehicleBreakdownSubCauseCode_tyrePressureProblem = 9 +} e_VehicleBreakdownSubCauseCode; + +/* VehicleBreakdownSubCauseCode */ +typedef long VehicleBreakdownSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode; +asn_struct_free_f VehicleBreakdownSubCauseCode_free; +asn_struct_print_f VehicleBreakdownSubCauseCode_print; +asn_constr_check_f VehicleBreakdownSubCauseCode_constraint; +ber_type_decoder_f VehicleBreakdownSubCauseCode_decode_ber; +der_type_encoder_f VehicleBreakdownSubCauseCode_encode_der; +xer_type_decoder_f VehicleBreakdownSubCauseCode_decode_xer; +xer_type_encoder_f VehicleBreakdownSubCauseCode_encode_xer; +oer_type_decoder_f VehicleBreakdownSubCauseCode_decode_oer; +oer_type_encoder_f VehicleBreakdownSubCauseCode_encode_oer; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_uper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_uper; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_aper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleBreakdownSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/VehicleHeight.h b/vcits/cpm/VehicleHeight.h new file mode 100644 index 0000000..444c548 --- /dev/null +++ b/vcits/cpm/VehicleHeight.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleHeight_H_ +#define _VehicleHeight_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleHeight */ +typedef long VehicleHeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleHeight; +asn_struct_free_f VehicleHeight_free; +asn_struct_print_f VehicleHeight_print; +asn_constr_check_f VehicleHeight_constraint; +ber_type_decoder_f VehicleHeight_decode_ber; +der_type_encoder_f VehicleHeight_encode_der; +xer_type_decoder_f VehicleHeight_decode_xer; +xer_type_encoder_f VehicleHeight_encode_xer; +oer_type_decoder_f VehicleHeight_decode_oer; +oer_type_encoder_f VehicleHeight_encode_oer; +per_type_decoder_f VehicleHeight_decode_uper; +per_type_encoder_f VehicleHeight_encode_uper; +per_type_decoder_f VehicleHeight_decode_aper; +per_type_encoder_f VehicleHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleHeight_H_ */ +#include diff --git a/vcits/cpm/VehicleID.h b/vcits/cpm/VehicleID.h new file mode 100644 index 0000000..4e75ba9 --- /dev/null +++ b/vcits/cpm/VehicleID.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleID_H_ +#define _VehicleID_H_ + + +#include + +/* Including external dependencies */ +#include "TemporaryID.h" +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleID_PR { + VehicleID_PR_NOTHING, /* No components present */ + VehicleID_PR_entityID, + VehicleID_PR_stationID +} VehicleID_PR; + +/* VehicleID */ +typedef struct VehicleID { + VehicleID_PR present; + union VehicleID_u { + TemporaryID_t entityID; + StationID_t stationID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleID; +extern asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleID_1[2]; +extern asn_per_constraints_t asn_PER_type_VehicleID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleID_H_ */ +#include diff --git a/vcits/cpm/VehicleIdentification.h b/vcits/cpm/VehicleIdentification.h new file mode 100644 index 0000000..db432b8 --- /dev/null +++ b/vcits/cpm/VehicleIdentification.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleIdentification_H_ +#define _VehicleIdentification_H_ + + +#include + +/* Including external dependencies */ +#include "WMInumber.h" +#include "VDS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleIdentification */ +typedef struct VehicleIdentification { + WMInumber_t *wMInumber; /* OPTIONAL */ + VDS_t *vDS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleIdentification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleIdentification; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleIdentification_H_ */ +#include diff --git a/vcits/cpm/VehicleLength.h b/vcits/cpm/VehicleLength.h new file mode 100644 index 0000000..c6381a5 --- /dev/null +++ b/vcits/cpm/VehicleLength.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleLength_H_ +#define _VehicleLength_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleLengthValue.h" +#include "VehicleLengthConfidenceIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleLength */ +typedef struct VehicleLength { + VehicleLengthValue_t vehicleLengthValue; + VehicleLengthConfidenceIndication_t vehicleLengthConfidenceIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleLength; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleLength_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleLength_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLength_H_ */ +#include diff --git a/vcits/cpm/VehicleLengthConfidenceIndication.h b/vcits/cpm/VehicleLengthConfidenceIndication.h new file mode 100644 index 0000000..019fcc8 --- /dev/null +++ b/vcits/cpm/VehicleLengthConfidenceIndication.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleLengthConfidenceIndication_H_ +#define _VehicleLengthConfidenceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthConfidenceIndication { + VehicleLengthConfidenceIndication_noTrailerPresent = 0, + VehicleLengthConfidenceIndication_trailerPresentWithKnownLength = 1, + VehicleLengthConfidenceIndication_trailerPresentWithUnknownLength = 2, + VehicleLengthConfidenceIndication_trailerPresenceIsUnknown = 3, + VehicleLengthConfidenceIndication_unavailable = 4 +} e_VehicleLengthConfidenceIndication; + +/* VehicleLengthConfidenceIndication */ +typedef long VehicleLengthConfidenceIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1; +asn_struct_free_f VehicleLengthConfidenceIndication_free; +asn_struct_print_f VehicleLengthConfidenceIndication_print; +asn_constr_check_f VehicleLengthConfidenceIndication_constraint; +ber_type_decoder_f VehicleLengthConfidenceIndication_decode_ber; +der_type_encoder_f VehicleLengthConfidenceIndication_encode_der; +xer_type_decoder_f VehicleLengthConfidenceIndication_decode_xer; +xer_type_encoder_f VehicleLengthConfidenceIndication_encode_xer; +oer_type_decoder_f VehicleLengthConfidenceIndication_decode_oer; +oer_type_encoder_f VehicleLengthConfidenceIndication_encode_oer; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_uper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_uper; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_aper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthConfidenceIndication_H_ */ +#include diff --git a/vcits/cpm/VehicleLengthValue.h b/vcits/cpm/VehicleLengthValue.h new file mode 100644 index 0000000..24c69fa --- /dev/null +++ b/vcits/cpm/VehicleLengthValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleLengthValue_H_ +#define _VehicleLengthValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthValue { + VehicleLengthValue_tenCentimeters = 1, + VehicleLengthValue_outOfRange = 1022, + VehicleLengthValue_unavailable = 1023 +} e_VehicleLengthValue; + +/* VehicleLengthValue */ +typedef long VehicleLengthValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue; +asn_struct_free_f VehicleLengthValue_free; +asn_struct_print_f VehicleLengthValue_print; +asn_constr_check_f VehicleLengthValue_constraint; +ber_type_decoder_f VehicleLengthValue_decode_ber; +der_type_encoder_f VehicleLengthValue_encode_der; +xer_type_decoder_f VehicleLengthValue_decode_xer; +xer_type_encoder_f VehicleLengthValue_encode_xer; +oer_type_decoder_f VehicleLengthValue_decode_oer; +oer_type_encoder_f VehicleLengthValue_encode_oer; +per_type_decoder_f VehicleLengthValue_decode_uper; +per_type_encoder_f VehicleLengthValue_encode_uper; +per_type_decoder_f VehicleLengthValue_decode_aper; +per_type_encoder_f VehicleLengthValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthValue_H_ */ +#include diff --git a/vcits/cpm/VehicleMass.h b/vcits/cpm/VehicleMass.h new file mode 100644 index 0000000..668fae8 --- /dev/null +++ b/vcits/cpm/VehicleMass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleMass_H_ +#define _VehicleMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleMass { + VehicleMass_hundredKg = 1, + VehicleMass_unavailable = 1024 +} e_VehicleMass; + +/* VehicleMass */ +typedef long VehicleMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleMass; +asn_struct_free_f VehicleMass_free; +asn_struct_print_f VehicleMass_print; +asn_constr_check_f VehicleMass_constraint; +ber_type_decoder_f VehicleMass_decode_ber; +der_type_encoder_f VehicleMass_encode_der; +xer_type_decoder_f VehicleMass_decode_xer; +xer_type_encoder_f VehicleMass_encode_xer; +oer_type_decoder_f VehicleMass_decode_oer; +oer_type_encoder_f VehicleMass_encode_oer; +per_type_decoder_f VehicleMass_decode_uper; +per_type_encoder_f VehicleMass_encode_uper; +per_type_decoder_f VehicleMass_decode_aper; +per_type_encoder_f VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleMass_H_ */ +#include diff --git a/vcits/cpm/VehicleRole.h b/vcits/cpm/VehicleRole.h new file mode 100644 index 0000000..fe20c99 --- /dev/null +++ b/vcits/cpm/VehicleRole.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleRole_H_ +#define _VehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleRole { + VehicleRole_default = 0, + VehicleRole_publicTransport = 1, + VehicleRole_specialTransport = 2, + VehicleRole_dangerousGoods = 3, + VehicleRole_roadWork = 4, + VehicleRole_rescue = 5, + VehicleRole_emergency = 6, + VehicleRole_safetyCar = 7, + VehicleRole_agriculture = 8, + VehicleRole_commercial = 9, + VehicleRole_military = 10, + VehicleRole_roadOperator = 11, + VehicleRole_taxi = 12, + VehicleRole_reserved1 = 13, + VehicleRole_reserved2 = 14, + VehicleRole_reserved3 = 15 +} e_VehicleRole; + +/* VehicleRole */ +typedef long VehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleRole_specs_1; +asn_struct_free_f VehicleRole_free; +asn_struct_print_f VehicleRole_print; +asn_constr_check_f VehicleRole_constraint; +ber_type_decoder_f VehicleRole_decode_ber; +der_type_encoder_f VehicleRole_encode_der; +xer_type_decoder_f VehicleRole_decode_xer; +xer_type_encoder_f VehicleRole_encode_xer; +oer_type_decoder_f VehicleRole_decode_oer; +oer_type_encoder_f VehicleRole_encode_oer; +per_type_decoder_f VehicleRole_decode_uper; +per_type_encoder_f VehicleRole_encode_uper; +per_type_decoder_f VehicleRole_decode_aper; +per_type_encoder_f VehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleRole_H_ */ +#include diff --git a/vcits/cpm/VehicleSensor.h b/vcits/cpm/VehicleSensor.h new file mode 100644 index 0000000..b03eb92 --- /dev/null +++ b/vcits/cpm/VehicleSensor.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleSensor_H_ +#define _VehicleSensor_H_ + + +#include + +/* Including external dependencies */ +#include "RefPointId.h" +#include "XSensorOffset.h" +#include "YSensorOffset.h" +#include "ZSensorOffset.h" +#include "VehicleSensorPropertyList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleSensor */ +typedef struct VehicleSensor { + RefPointId_t refPointId; /* DEFAULT 0 */ + XSensorOffset_t xSensorOffset; + YSensorOffset_t ySensorOffset; + ZSensorOffset_t *zSensorOffset; /* OPTIONAL */ + VehicleSensorPropertyList_t vehicleSensorPropertyList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleSensor_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleSensor; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleSensor_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleSensor_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleSensor_H_ */ +#include diff --git a/vcits/cpm/VehicleSensorProperties.h b/vcits/cpm/VehicleSensorProperties.h new file mode 100644 index 0000000..fc4df2d --- /dev/null +++ b/vcits/cpm/VehicleSensorProperties.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleSensorProperties_H_ +#define _VehicleSensorProperties_H_ + + +#include + +/* Including external dependencies */ +#include "Range.h" +#include "CartesianAngleValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleSensorProperties */ +typedef struct VehicleSensorProperties { + Range_t range; + CartesianAngleValue_t horizontalOpeningAngleStart; + CartesianAngleValue_t horizontalOpeningAngleEnd; + CartesianAngleValue_t *verticalOpeningAngleStart; /* OPTIONAL */ + CartesianAngleValue_t *verticalOpeningAngleEnd; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleSensorProperties_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleSensorProperties; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleSensorProperties_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleSensorProperties_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleSensorProperties_H_ */ +#include diff --git a/vcits/cpm/VehicleSensorPropertyList.h b/vcits/cpm/VehicleSensorPropertyList.h new file mode 100644 index 0000000..e905a11 --- /dev/null +++ b/vcits/cpm/VehicleSensorPropertyList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleSensorPropertyList_H_ +#define _VehicleSensorPropertyList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct VehicleSensorProperties; + +/* VehicleSensorPropertyList */ +typedef struct VehicleSensorPropertyList { + A_SEQUENCE_OF(struct VehicleSensorProperties) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleSensorPropertyList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleSensorPropertyList; +extern asn_SET_OF_specifics_t asn_SPC_VehicleSensorPropertyList_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleSensorPropertyList_1[1]; +extern asn_per_constraints_t asn_PER_type_VehicleSensorPropertyList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleSensorPropertyList_H_ */ +#include diff --git a/vcits/cpm/VehicleSubclass.h b/vcits/cpm/VehicleSubclass.h new file mode 100644 index 0000000..5a031a6 --- /dev/null +++ b/vcits/cpm/VehicleSubclass.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleSubclass_H_ +#define _VehicleSubclass_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleSubclassType.h" +#include "ClassConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleSubclass */ +typedef struct VehicleSubclass { + VehicleSubclassType_t type; /* DEFAULT 0 */ + ClassConfidence_t confidence; /* DEFAULT 0 */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleSubclass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleSubclass; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleSubclass_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleSubclass_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleSubclass_H_ */ +#include diff --git a/vcits/cpm/VehicleSubclassType.h b/vcits/cpm/VehicleSubclassType.h new file mode 100644 index 0000000..51243f3 --- /dev/null +++ b/vcits/cpm/VehicleSubclassType.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleSubclassType_H_ +#define _VehicleSubclassType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleSubclassType { + VehicleSubclassType_unknown = 0, + VehicleSubclassType_moped = 1, + VehicleSubclassType_motorcycle = 2, + VehicleSubclassType_passengerCar = 3, + VehicleSubclassType_bus = 4, + VehicleSubclassType_lightTruck = 5, + VehicleSubclassType_heavyTruck = 6, + VehicleSubclassType_trailer = 7, + VehicleSubclassType_specialVehicles = 8, + VehicleSubclassType_tram = 9, + VehicleSubclassType_emergencyVehicle = 10, + VehicleSubclassType_agricultural = 11 +} e_VehicleSubclassType; + +/* VehicleSubclassType */ +typedef long VehicleSubclassType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleSubclassType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleSubclassType; +asn_struct_free_f VehicleSubclassType_free; +asn_struct_print_f VehicleSubclassType_print; +asn_constr_check_f VehicleSubclassType_constraint; +ber_type_decoder_f VehicleSubclassType_decode_ber; +der_type_encoder_f VehicleSubclassType_encode_der; +xer_type_decoder_f VehicleSubclassType_decode_xer; +xer_type_encoder_f VehicleSubclassType_encode_xer; +oer_type_decoder_f VehicleSubclassType_decode_oer; +oer_type_encoder_f VehicleSubclassType_encode_oer; +per_type_decoder_f VehicleSubclassType_decode_uper; +per_type_encoder_f VehicleSubclassType_encode_uper; +per_type_decoder_f VehicleSubclassType_decode_aper; +per_type_encoder_f VehicleSubclassType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleSubclassType_H_ */ +#include diff --git a/vcits/cpm/VehicleType.h b/vcits/cpm/VehicleType.h new file mode 100644 index 0000000..3cc1482 --- /dev/null +++ b/vcits/cpm/VehicleType.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleType_H_ +#define _VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleType { + VehicleType_none = 0, + VehicleType_unknown = 1, + VehicleType_special = 2, + VehicleType_moto = 3, + VehicleType_car = 4, + VehicleType_carOther = 5, + VehicleType_bus = 6, + VehicleType_axleCnt2 = 7, + VehicleType_axleCnt3 = 8, + VehicleType_axleCnt4 = 9, + VehicleType_axleCnt4Trailer = 10, + VehicleType_axleCnt5Trailer = 11, + VehicleType_axleCnt6Trailer = 12, + VehicleType_axleCnt5MultiTrailer = 13, + VehicleType_axleCnt6MultiTrailer = 14, + VehicleType_axleCnt7MultiTrailer = 15 + /* + * Enumeration is extensible + */ +} e_VehicleType; + +/* VehicleType */ +typedef long VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleType; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1; +asn_struct_free_f VehicleType_free; +asn_struct_print_f VehicleType_print; +asn_constr_check_f VehicleType_constraint; +ber_type_decoder_f VehicleType_decode_ber; +der_type_encoder_f VehicleType_encode_der; +xer_type_decoder_f VehicleType_decode_xer; +xer_type_encoder_f VehicleType_encode_xer; +oer_type_decoder_f VehicleType_decode_oer; +oer_type_encoder_f VehicleType_encode_oer; +per_type_decoder_f VehicleType_decode_uper; +per_type_encoder_f VehicleType_encode_uper; +per_type_decoder_f VehicleType_decode_aper; +per_type_encoder_f VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleType_H_ */ +#include diff --git a/vcits/cpm/VehicleWidth.h b/vcits/cpm/VehicleWidth.h new file mode 100644 index 0000000..3f5eb7e --- /dev/null +++ b/vcits/cpm/VehicleWidth.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VehicleWidth_H_ +#define _VehicleWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleWidth { + VehicleWidth_tenCentimeters = 1, + VehicleWidth_outOfRange = 61, + VehicleWidth_unavailable = 62 +} e_VehicleWidth; + +/* VehicleWidth */ +typedef long VehicleWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleWidth; +asn_struct_free_f VehicleWidth_free; +asn_struct_print_f VehicleWidth_print; +asn_constr_check_f VehicleWidth_constraint; +ber_type_decoder_f VehicleWidth_decode_ber; +der_type_encoder_f VehicleWidth_encode_der; +xer_type_decoder_f VehicleWidth_decode_xer; +xer_type_encoder_f VehicleWidth_encode_xer; +oer_type_decoder_f VehicleWidth_decode_oer; +oer_type_encoder_f VehicleWidth_encode_oer; +per_type_decoder_f VehicleWidth_decode_uper; +per_type_encoder_f VehicleWidth_encode_uper; +per_type_decoder_f VehicleWidth_decode_aper; +per_type_encoder_f VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleWidth_H_ */ +#include diff --git a/vcits/cpm/Velocity.h b/vcits/cpm/Velocity.h new file mode 100644 index 0000000..d5acc70 --- /dev/null +++ b/vcits/cpm/Velocity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _Velocity_H_ +#define _Velocity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Velocity */ +typedef long Velocity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Velocity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Velocity; +asn_struct_free_f Velocity_free; +asn_struct_print_f Velocity_print; +asn_constr_check_f Velocity_constraint; +ber_type_decoder_f Velocity_decode_ber; +der_type_encoder_f Velocity_encode_der; +xer_type_decoder_f Velocity_decode_xer; +xer_type_encoder_f Velocity_encode_xer; +oer_type_decoder_f Velocity_decode_oer; +oer_type_encoder_f Velocity_encode_oer; +per_type_decoder_f Velocity_decode_uper; +per_type_encoder_f Velocity_encode_uper; +per_type_decoder_f Velocity_decode_aper; +per_type_encoder_f Velocity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Velocity_H_ */ +#include diff --git a/vcits/cpm/VerticalAcceleration.h b/vcits/cpm/VerticalAcceleration.h new file mode 100644 index 0000000..10305d2 --- /dev/null +++ b/vcits/cpm/VerticalAcceleration.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VerticalAcceleration_H_ +#define _VerticalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "VerticalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VerticalAcceleration */ +typedef struct VerticalAcceleration { + VerticalAccelerationValue_t verticalAccelerationValue; + AccelerationConfidence_t verticalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VerticalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration; +extern asn_SEQUENCE_specifics_t asn_SPC_VerticalAcceleration_specs_1; +extern asn_TYPE_member_t asn_MBR_VerticalAcceleration_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAcceleration_H_ */ +#include diff --git a/vcits/cpm/VerticalAccelerationValue.h b/vcits/cpm/VerticalAccelerationValue.h new file mode 100644 index 0000000..a4f5d5d --- /dev/null +++ b/vcits/cpm/VerticalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _VerticalAccelerationValue_H_ +#define _VerticalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VerticalAccelerationValue { + VerticalAccelerationValue_pointOneMeterPerSecSquaredUp = 1, + VerticalAccelerationValue_pointOneMeterPerSecSquaredDown = -1, + VerticalAccelerationValue_unavailable = 161 +} e_VerticalAccelerationValue; + +/* VerticalAccelerationValue */ +typedef long VerticalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue; +asn_struct_free_f VerticalAccelerationValue_free; +asn_struct_print_f VerticalAccelerationValue_print; +asn_constr_check_f VerticalAccelerationValue_constraint; +ber_type_decoder_f VerticalAccelerationValue_decode_ber; +der_type_encoder_f VerticalAccelerationValue_encode_der; +xer_type_decoder_f VerticalAccelerationValue_decode_xer; +xer_type_encoder_f VerticalAccelerationValue_encode_xer; +oer_type_decoder_f VerticalAccelerationValue_decode_oer; +oer_type_encoder_f VerticalAccelerationValue_encode_oer; +per_type_decoder_f VerticalAccelerationValue_decode_uper; +per_type_encoder_f VerticalAccelerationValue_encode_uper; +per_type_decoder_f VerticalAccelerationValue_decode_aper; +per_type_encoder_f VerticalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAccelerationValue_H_ */ +#include diff --git a/vcits/cpm/WGS84Angle.h b/vcits/cpm/WGS84Angle.h new file mode 100644 index 0000000..82b5e91 --- /dev/null +++ b/vcits/cpm/WGS84Angle.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _WGS84Angle_H_ +#define _WGS84Angle_H_ + + +#include + +/* Including external dependencies */ +#include "WGS84AngleValue.h" +#include "AngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WGS84Angle */ +typedef struct WGS84Angle { + WGS84AngleValue_t value; + AngleConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} WGS84Angle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WGS84Angle; +extern asn_SEQUENCE_specifics_t asn_SPC_WGS84Angle_specs_1; +extern asn_TYPE_member_t asn_MBR_WGS84Angle_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _WGS84Angle_H_ */ +#include diff --git a/vcits/cpm/WGS84AngleValue.h b/vcits/cpm/WGS84AngleValue.h new file mode 100644 index 0000000..ae34805 --- /dev/null +++ b/vcits/cpm/WGS84AngleValue.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _WGS84AngleValue_H_ +#define _WGS84AngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WGS84AngleValue { + WGS84AngleValue_wgs84North = 0, + WGS84AngleValue_wgs84East = 900, + WGS84AngleValue_wgs84South = 1800, + WGS84AngleValue_wgs84West = 2700, + WGS84AngleValue_unavailable = 3601 +} e_WGS84AngleValue; + +/* WGS84AngleValue */ +typedef long WGS84AngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WGS84AngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WGS84AngleValue; +asn_struct_free_f WGS84AngleValue_free; +asn_struct_print_f WGS84AngleValue_print; +asn_constr_check_f WGS84AngleValue_constraint; +ber_type_decoder_f WGS84AngleValue_decode_ber; +der_type_encoder_f WGS84AngleValue_encode_der; +xer_type_decoder_f WGS84AngleValue_decode_xer; +xer_type_encoder_f WGS84AngleValue_encode_xer; +oer_type_decoder_f WGS84AngleValue_decode_oer; +oer_type_encoder_f WGS84AngleValue_encode_oer; +per_type_decoder_f WGS84AngleValue_decode_uper; +per_type_encoder_f WGS84AngleValue_encode_uper; +per_type_decoder_f WGS84AngleValue_decode_aper; +per_type_encoder_f WGS84AngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WGS84AngleValue_H_ */ +#include diff --git a/vcits/cpm/WMInumber.h b/vcits/cpm/WMInumber.h new file mode 100644 index 0000000..cafa464 --- /dev/null +++ b/vcits/cpm/WMInumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _WMInumber_H_ +#define _WMInumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WMInumber */ +typedef IA5String_t WMInumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WMInumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WMInumber; +asn_struct_free_f WMInumber_free; +asn_struct_print_f WMInumber_print; +asn_constr_check_f WMInumber_constraint; +ber_type_decoder_f WMInumber_decode_ber; +der_type_encoder_f WMInumber_encode_der; +xer_type_decoder_f WMInumber_decode_xer; +xer_type_encoder_f WMInumber_encode_xer; +oer_type_decoder_f WMInumber_decode_oer; +oer_type_encoder_f WMInumber_encode_oer; +per_type_decoder_f WMInumber_decode_uper; +per_type_encoder_f WMInumber_encode_uper; +per_type_decoder_f WMInumber_decode_aper; +per_type_encoder_f WMInumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WMInumber_H_ */ +#include diff --git a/vcits/cpm/WaitOnStopline.h b/vcits/cpm/WaitOnStopline.h new file mode 100644 index 0000000..257c869 --- /dev/null +++ b/vcits/cpm/WaitOnStopline.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _WaitOnStopline_H_ +#define _WaitOnStopline_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WaitOnStopline */ +typedef BOOLEAN_t WaitOnStopline_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WaitOnStopline; +asn_struct_free_f WaitOnStopline_free; +asn_struct_print_f WaitOnStopline_print; +asn_constr_check_f WaitOnStopline_constraint; +ber_type_decoder_f WaitOnStopline_decode_ber; +der_type_encoder_f WaitOnStopline_encode_der; +xer_type_decoder_f WaitOnStopline_decode_xer; +xer_type_encoder_f WaitOnStopline_encode_xer; +oer_type_decoder_f WaitOnStopline_decode_oer; +oer_type_encoder_f WaitOnStopline_encode_oer; +per_type_decoder_f WaitOnStopline_decode_uper; +per_type_encoder_f WaitOnStopline_encode_uper; +per_type_decoder_f WaitOnStopline_decode_aper; +per_type_encoder_f WaitOnStopline_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WaitOnStopline_H_ */ +#include diff --git a/vcits/cpm/WheelBaseVehicle.h b/vcits/cpm/WheelBaseVehicle.h new file mode 100644 index 0000000..8b5981d --- /dev/null +++ b/vcits/cpm/WheelBaseVehicle.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _WheelBaseVehicle_H_ +#define _WheelBaseVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WheelBaseVehicle { + WheelBaseVehicle_tenCentimeters = 1, + WheelBaseVehicle_unavailable = 127 +} e_WheelBaseVehicle; + +/* WheelBaseVehicle */ +typedef long WheelBaseVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle; +asn_struct_free_f WheelBaseVehicle_free; +asn_struct_print_f WheelBaseVehicle_print; +asn_constr_check_f WheelBaseVehicle_constraint; +ber_type_decoder_f WheelBaseVehicle_decode_ber; +der_type_encoder_f WheelBaseVehicle_encode_der; +xer_type_decoder_f WheelBaseVehicle_decode_xer; +xer_type_encoder_f WheelBaseVehicle_encode_xer; +oer_type_decoder_f WheelBaseVehicle_decode_oer; +oer_type_encoder_f WheelBaseVehicle_encode_oer; +per_type_decoder_f WheelBaseVehicle_decode_uper; +per_type_encoder_f WheelBaseVehicle_encode_uper; +per_type_decoder_f WheelBaseVehicle_decode_aper; +per_type_encoder_f WheelBaseVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WheelBaseVehicle_H_ */ +#include diff --git a/vcits/cpm/WrongWayDrivingSubCauseCode.h b/vcits/cpm/WrongWayDrivingSubCauseCode.h new file mode 100644 index 0000000..8cf80cc --- /dev/null +++ b/vcits/cpm/WrongWayDrivingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _WrongWayDrivingSubCauseCode_H_ +#define _WrongWayDrivingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WrongWayDrivingSubCauseCode { + WrongWayDrivingSubCauseCode_unavailable = 0, + WrongWayDrivingSubCauseCode_wrongLane = 1, + WrongWayDrivingSubCauseCode_wrongDirection = 2 +} e_WrongWayDrivingSubCauseCode; + +/* WrongWayDrivingSubCauseCode */ +typedef long WrongWayDrivingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode; +asn_struct_free_f WrongWayDrivingSubCauseCode_free; +asn_struct_print_f WrongWayDrivingSubCauseCode_print; +asn_constr_check_f WrongWayDrivingSubCauseCode_constraint; +ber_type_decoder_f WrongWayDrivingSubCauseCode_decode_ber; +der_type_encoder_f WrongWayDrivingSubCauseCode_encode_der; +xer_type_decoder_f WrongWayDrivingSubCauseCode_decode_xer; +xer_type_encoder_f WrongWayDrivingSubCauseCode_encode_xer; +oer_type_decoder_f WrongWayDrivingSubCauseCode_decode_oer; +oer_type_encoder_f WrongWayDrivingSubCauseCode_encode_oer; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_uper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_uper; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_aper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WrongWayDrivingSubCauseCode_H_ */ +#include diff --git a/vcits/cpm/XSensorOffset.h b/vcits/cpm/XSensorOffset.h new file mode 100644 index 0000000..2685503 --- /dev/null +++ b/vcits/cpm/XSensorOffset.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _XSensorOffset_H_ +#define _XSensorOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum XSensorOffset { + XSensorOffset_negativeZeroPointZeroOneMeter = -1, + XSensorOffset_negativeOneMeter = -100 +} e_XSensorOffset; + +/* XSensorOffset */ +typedef long XSensorOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_XSensorOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_XSensorOffset; +asn_struct_free_f XSensorOffset_free; +asn_struct_print_f XSensorOffset_print; +asn_constr_check_f XSensorOffset_constraint; +ber_type_decoder_f XSensorOffset_decode_ber; +der_type_encoder_f XSensorOffset_encode_der; +xer_type_decoder_f XSensorOffset_decode_xer; +xer_type_encoder_f XSensorOffset_encode_xer; +oer_type_decoder_f XSensorOffset_decode_oer; +oer_type_encoder_f XSensorOffset_encode_oer; +per_type_decoder_f XSensorOffset_decode_uper; +per_type_encoder_f XSensorOffset_encode_uper; +per_type_decoder_f XSensorOffset_decode_aper; +per_type_encoder_f XSensorOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _XSensorOffset_H_ */ +#include diff --git a/vcits/cpm/YSensorOffset.h b/vcits/cpm/YSensorOffset.h new file mode 100644 index 0000000..d9a8c53 --- /dev/null +++ b/vcits/cpm/YSensorOffset.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _YSensorOffset_H_ +#define _YSensorOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YSensorOffset { + YSensorOffset_zeroPointZeroOneMeter = 1, + YSensorOffset_oneMeter = 100 +} e_YSensorOffset; + +/* YSensorOffset */ +typedef long YSensorOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YSensorOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YSensorOffset; +asn_struct_free_f YSensorOffset_free; +asn_struct_print_f YSensorOffset_print; +asn_constr_check_f YSensorOffset_constraint; +ber_type_decoder_f YSensorOffset_decode_ber; +der_type_encoder_f YSensorOffset_encode_der; +xer_type_decoder_f YSensorOffset_decode_xer; +xer_type_encoder_f YSensorOffset_encode_xer; +oer_type_decoder_f YSensorOffset_decode_oer; +oer_type_encoder_f YSensorOffset_encode_oer; +per_type_decoder_f YSensorOffset_decode_uper; +per_type_encoder_f YSensorOffset_encode_uper; +per_type_decoder_f YSensorOffset_decode_aper; +per_type_encoder_f YSensorOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YSensorOffset_H_ */ +#include diff --git a/vcits/cpm/YawRate.h b/vcits/cpm/YawRate.h new file mode 100644 index 0000000..e4e206e --- /dev/null +++ b/vcits/cpm/YawRate.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _YawRate_H_ +#define _YawRate_H_ + + +#include + +/* Including external dependencies */ +#include "YawRateValue.h" +#include "YawRateConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* YawRate */ +typedef struct YawRate { + YawRateValue_t yawRateValue; + YawRateConfidence_t yawRateConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} YawRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_YawRate; +extern asn_SEQUENCE_specifics_t asn_SPC_YawRate_specs_1; +extern asn_TYPE_member_t asn_MBR_YawRate_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRate_H_ */ +#include diff --git a/vcits/cpm/YawRateConfidence.h b/vcits/cpm/YawRateConfidence.h new file mode 100644 index 0000000..a87a311 --- /dev/null +++ b/vcits/cpm/YawRateConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _YawRateConfidence_H_ +#define _YawRateConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateConfidence { + YawRateConfidence_degSec_000_01 = 0, + YawRateConfidence_degSec_000_05 = 1, + YawRateConfidence_degSec_000_10 = 2, + YawRateConfidence_degSec_001_00 = 3, + YawRateConfidence_degSec_005_00 = 4, + YawRateConfidence_degSec_010_00 = 5, + YawRateConfidence_degSec_100_00 = 6, + YawRateConfidence_outOfRange = 7, + YawRateConfidence_unavailable = 8 +} e_YawRateConfidence; + +/* YawRateConfidence */ +typedef long YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1; +asn_struct_free_f YawRateConfidence_free; +asn_struct_print_f YawRateConfidence_print; +asn_constr_check_f YawRateConfidence_constraint; +ber_type_decoder_f YawRateConfidence_decode_ber; +der_type_encoder_f YawRateConfidence_encode_der; +xer_type_decoder_f YawRateConfidence_decode_xer; +xer_type_encoder_f YawRateConfidence_encode_xer; +oer_type_decoder_f YawRateConfidence_decode_oer; +oer_type_encoder_f YawRateConfidence_encode_oer; +per_type_decoder_f YawRateConfidence_decode_uper; +per_type_encoder_f YawRateConfidence_encode_uper; +per_type_decoder_f YawRateConfidence_decode_aper; +per_type_encoder_f YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateConfidence_H_ */ +#include diff --git a/vcits/cpm/YawRateValue.h b/vcits/cpm/YawRateValue.h new file mode 100644 index 0000000..d8a4ce0 --- /dev/null +++ b/vcits/cpm/YawRateValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _YawRateValue_H_ +#define _YawRateValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateValue { + YawRateValue_straight = 0, + YawRateValue_degSec_000_01ToRight = -1, + YawRateValue_degSec_000_01ToLeft = 1, + YawRateValue_unavailable = 32767 +} e_YawRateValue; + +/* YawRateValue */ +typedef long YawRateValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateValue; +asn_struct_free_f YawRateValue_free; +asn_struct_print_f YawRateValue_print; +asn_constr_check_f YawRateValue_constraint; +ber_type_decoder_f YawRateValue_decode_ber; +der_type_encoder_f YawRateValue_encode_der; +xer_type_decoder_f YawRateValue_decode_xer; +xer_type_encoder_f YawRateValue_encode_xer; +oer_type_decoder_f YawRateValue_decode_oer; +oer_type_encoder_f YawRateValue_encode_oer; +per_type_decoder_f YawRateValue_decode_uper; +per_type_encoder_f YawRateValue_encode_uper; +per_type_decoder_f YawRateValue_decode_aper; +per_type_encoder_f YawRateValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateValue_H_ */ +#include diff --git a/vcits/cpm/ZSensorOffset.h b/vcits/cpm/ZSensorOffset.h new file mode 100644 index 0000000..040b320 --- /dev/null +++ b/vcits/cpm/ZSensorOffset.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ZSensorOffset_H_ +#define _ZSensorOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ZSensorOffset { + ZSensorOffset_zeroPointZeroOneMeter = 1, + ZSensorOffset_oneMeter = 100 +} e_ZSensorOffset; + +/* ZSensorOffset */ +typedef long ZSensorOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ZSensorOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ZSensorOffset; +asn_struct_free_f ZSensorOffset_free; +asn_struct_print_f ZSensorOffset_print; +asn_constr_check_f ZSensorOffset_constraint; +ber_type_decoder_f ZSensorOffset_decode_ber; +der_type_encoder_f ZSensorOffset_encode_der; +xer_type_decoder_f ZSensorOffset_decode_xer; +xer_type_encoder_f ZSensorOffset_encode_xer; +oer_type_decoder_f ZSensorOffset_decode_oer; +oer_type_encoder_f ZSensorOffset_encode_oer; +per_type_decoder_f ZSensorOffset_decode_uper; +per_type_encoder_f ZSensorOffset_encode_uper; +per_type_decoder_f ZSensorOffset_decode_aper; +per_type_encoder_f ZSensorOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ZSensorOffset_H_ */ +#include diff --git a/vcits/cpm/ZoneLength.h b/vcits/cpm/ZoneLength.h new file mode 100644 index 0000000..55057d6 --- /dev/null +++ b/vcits/cpm/ZoneLength.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#ifndef _ZoneLength_H_ +#define _ZoneLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ZoneLength */ +typedef long ZoneLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ZoneLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ZoneLength; +asn_struct_free_f ZoneLength_free; +asn_struct_print_f ZoneLength_print; +asn_constr_check_f ZoneLength_constraint; +ber_type_decoder_f ZoneLength_decode_ber; +der_type_encoder_f ZoneLength_encode_der; +xer_type_decoder_f ZoneLength_decode_xer; +xer_type_encoder_f ZoneLength_encode_xer; +oer_type_decoder_f ZoneLength_decode_oer; +oer_type_encoder_f ZoneLength_encode_oer; +per_type_decoder_f ZoneLength_decode_uper; +per_type_encoder_f ZoneLength_encode_uper; +per_type_decoder_f ZoneLength_decode_aper; +per_type_encoder_f ZoneLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ZoneLength_H_ */ +#include diff --git a/vcits/cpm/asn_constant.h b/vcits/cpm/asn_constant.h new file mode 100644 index 0000000..a437d8a --- /dev/null +++ b/vcits/cpm/asn_constant.h @@ -0,0 +1,332 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_AnimalSubclassType (0) +#define max_val_AnimalSubclassType (255) +#define min_val_ClassConfidence (0) +#define max_val_ClassConfidence (101) +#define min_val_WGS84AngleValue (0) +#define max_val_WGS84AngleValue (3601) +#define min_val_CartesianAngleValue (0) +#define max_val_CartesianAngleValue (3601) +#define min_val_AngleConfidence (1) +#define max_val_AngleConfidence (127) +#define min_val_SemiRangeLength (0) +#define max_val_SemiRangeLength (10000) +#define min_val_DistanceValue (-132768) +#define max_val_DistanceValue (132767) +#define min_val_DistanceConfidence (0) +#define max_val_DistanceConfidence (102) +#define min_val_DynamicStatus (0) +#define max_val_DynamicStatus (2) +#define min_val_HitchPointOffset (0) +#define max_val_HitchPointOffset (100) +#define min_val_FrontOverhang (0) +#define max_val_FrontOverhang (50) +#define min_val_FreeSpaceConfidence (0) +#define max_val_FreeSpaceConfidence (101) +#define min_val_LongitudinalLanePositionValue (0) +#define max_val_LongitudinalLanePositionValue (32767) +#define min_val_LongitudinalLanePositionConfidence (0) +#define max_val_LongitudinalLanePositionConfidence (102) +#define min_val_ObjectAge (0) +#define max_val_ObjectAge (1500) +#define min_val_ObjectConfidence (0) +#define max_val_ObjectConfidence (101) +#define min_val_ObjectDimensionValue (0) +#define max_val_ObjectDimensionValue (1023) +#define min_val_ObjectDimensionConfidence (0) +#define max_val_ObjectDimensionConfidence (102) +#define min_val_ObjectRefPoint (0) +#define max_val_ObjectRefPoint (8) +#define min_val_OtherSublassType (0) +#define max_val_OtherSublassType (255) +#define min_val_PersonSubclassType (0) +#define max_val_PersonSubclassType (255) +#define min_val_Radius (0) +#define max_val_Radius (10000) +#define min_val_Range (0) +#define max_val_Range (10000) +#define min_val_RearOverhang (0) +#define max_val_RearOverhang (150) +#define min_val_RefPointId (0) +#define max_val_RefPointId (255) +#define min_val_SensorHeight (-5000) +#define max_val_SensorHeight (5000) +#define min_val_Identifier (0) +#define max_val_Identifier (255) +#define min_val_NumberOfPerceivedObjects (0) +#define max_val_NumberOfPerceivedObjects (255) +#define min_val_SensorType (0) +#define max_val_SensorType (15) +#define min_val_SegmentCount (1) +#define max_val_SegmentCount (127) +#define min_val_SpeedValueExtended (-16383) +#define max_val_SpeedValueExtended (16383) +#define min_val_TimeOfMeasurement (-1500) +#define max_val_TimeOfMeasurement (1500) +#define min_val_VehicleSubclassType (0) +#define max_val_VehicleSubclassType (255) +#define min_val_XSensorOffset (-5000) +#define max_val_XSensorOffset (0) +#define min_val_YSensorOffset (-1000) +#define max_val_YSensorOffset (1000) +#define min_val_ZSensorOffset (0) +#define max_val_ZSensorOffset (1000) +#define min_val_GenerationDeltaTime (0) +#define max_val_GenerationDeltaTime (65535) +#define min_val_StationID (0) +#define max_val_StationID (4294967295) +#define min_val_Longitude (-1800000000) +#define max_val_Longitude (1800000001) +#define min_val_Latitude (-900000000) +#define max_val_Latitude (900000001) +#define min_val_AltitudeValue (-100000) +#define max_val_AltitudeValue (800001) +#define min_val_DeltaLongitude (-131071) +#define max_val_DeltaLongitude (131072) +#define min_val_DeltaLatitude (-131071) +#define max_val_DeltaLatitude (131072) +#define min_val_DeltaAltitude (-12700) +#define max_val_DeltaAltitude (12800) +#define min_val_PtActivationType (0) +#define max_val_PtActivationType (255) +#define min_val_SemiAxisLength (0) +#define max_val_SemiAxisLength (4095) +#define min_val_CauseCodeType (0) +#define max_val_CauseCodeType (255) +#define min_val_SubCauseCodeType (0) +#define max_val_SubCauseCodeType (255) +#define min_val_TrafficConditionSubCauseCode (0) +#define max_val_TrafficConditionSubCauseCode (255) +#define min_val_AccidentSubCauseCode (0) +#define max_val_AccidentSubCauseCode (255) +#define min_val_RoadworksSubCauseCode (0) +#define max_val_RoadworksSubCauseCode (255) +#define min_val_HumanPresenceOnTheRoadSubCauseCode (0) +#define max_val_HumanPresenceOnTheRoadSubCauseCode (255) +#define min_val_WrongWayDrivingSubCauseCode (0) +#define max_val_WrongWayDrivingSubCauseCode (255) +#define min_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_AdhesionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_AdhesionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_VisibilitySubCauseCode (0) +#define max_val_AdverseWeatherCondition_VisibilitySubCauseCode (255) +#define min_val_AdverseWeatherCondition_PrecipitationSubCauseCode (0) +#define max_val_AdverseWeatherCondition_PrecipitationSubCauseCode (255) +#define min_val_SlowVehicleSubCauseCode (0) +#define max_val_SlowVehicleSubCauseCode (255) +#define min_val_StationaryVehicleSubCauseCode (0) +#define max_val_StationaryVehicleSubCauseCode (255) +#define min_val_HumanProblemSubCauseCode (0) +#define max_val_HumanProblemSubCauseCode (255) +#define min_val_EmergencyVehicleApproachingSubCauseCode (0) +#define max_val_EmergencyVehicleApproachingSubCauseCode (255) +#define min_val_HazardousLocation_DangerousCurveSubCauseCode (0) +#define max_val_HazardousLocation_DangerousCurveSubCauseCode (255) +#define min_val_HazardousLocation_SurfaceConditionSubCauseCode (0) +#define max_val_HazardousLocation_SurfaceConditionSubCauseCode (255) +#define min_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (255) +#define min_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (255) +#define min_val_CollisionRiskSubCauseCode (0) +#define max_val_CollisionRiskSubCauseCode (255) +#define min_val_SignalViolationSubCauseCode (0) +#define max_val_SignalViolationSubCauseCode (255) +#define min_val_RescueAndRecoveryWorkInProgressSubCauseCode (0) +#define max_val_RescueAndRecoveryWorkInProgressSubCauseCode (255) +#define min_val_DangerousEndOfQueueSubCauseCode (0) +#define max_val_DangerousEndOfQueueSubCauseCode (255) +#define min_val_DangerousSituationSubCauseCode (0) +#define max_val_DangerousSituationSubCauseCode (255) +#define min_val_VehicleBreakdownSubCauseCode (0) +#define max_val_VehicleBreakdownSubCauseCode (255) +#define min_val_PostCrashSubCauseCode (0) +#define max_val_PostCrashSubCauseCode (255) +#define min_val_CurvatureValue (-1023) +#define max_val_CurvatureValue (1023) +#define min_val_HeadingValue (0) +#define max_val_HeadingValue (3601) +#define min_val_HeadingConfidence (1) +#define max_val_HeadingConfidence (127) +#define min_val_LanePosition (-1) +#define max_val_LanePosition (14) +#define min_val_PerformanceClass (0) +#define max_val_PerformanceClass (7) +#define min_val_SpeedValue (0) +#define max_val_SpeedValue (16383) +#define min_val_SpeedConfidence (1) +#define max_val_SpeedConfidence (127) +#define min_val_VehicleMass (1) +#define max_val_VehicleMass (1024) +#define min_val_LongitudinalAccelerationValue (-160) +#define max_val_LongitudinalAccelerationValue (161) +#define min_val_AccelerationConfidence (0) +#define max_val_AccelerationConfidence (102) +#define min_val_LateralAccelerationValue (-160) +#define max_val_LateralAccelerationValue (161) +#define min_val_VerticalAccelerationValue (-160) +#define max_val_VerticalAccelerationValue (161) +#define min_val_StationType (0) +#define max_val_StationType (255) +#define min_val_HeightLonCarr (1) +#define max_val_HeightLonCarr (100) +#define min_val_PosLonCarr (1) +#define max_val_PosLonCarr (127) +#define min_val_PosPillar (1) +#define max_val_PosPillar (30) +#define min_val_PosCentMass (1) +#define max_val_PosCentMass (63) +#define min_val_SpeedLimit (1) +#define max_val_SpeedLimit (255) +#define min_val_Temperature (-60) +#define max_val_Temperature (67) +#define min_val_WheelBaseVehicle (1) +#define max_val_WheelBaseVehicle (127) +#define min_val_TurningRadius (1) +#define max_val_TurningRadius (255) +#define min_val_PosFrontAx (1) +#define max_val_PosFrontAx (20) +#define min_val_VehicleLengthValue (1) +#define max_val_VehicleLengthValue (1023) +#define min_val_VehicleWidth (1) +#define max_val_VehicleWidth (62) +#define min_val_InformationQuality (0) +#define max_val_InformationQuality (7) +#define min_val_SteeringWheelAngleValue (-511) +#define max_val_SteeringWheelAngleValue (512) +#define min_val_SteeringWheelAngleConfidence (1) +#define max_val_SteeringWheelAngleConfidence (127) +#define min_val_TimestampIts (0) +#define max_val_TimestampIts (4398046511103) +#define min_val_YawRateValue (-32766) +#define max_val_YawRateValue (32767) +#define min_val_TransmissionInterval (1) +#define max_val_TransmissionInterval (10000) +#define min_val_ValidityDuration (0) +#define max_val_ValidityDuration (86400) +#define min_val_NumberOfOccupants (0) +#define max_val_NumberOfOccupants (127) +#define min_val_SequenceNumber (0) +#define max_val_SequenceNumber (65535) +#define min_val_ProtectedZoneID (0) +#define max_val_ProtectedZoneID (134217727) +#define min_val_Iso3833VehicleType (0) +#define max_val_Iso3833VehicleType (255) +#define min_val_TimeReference (0) +#define max_val_TimeReference (60000) +#define min_val_TimeMark (0) +#define max_val_TimeMark (36001) +#define min_val_Angle (0) +#define max_val_Angle (28800) +#define min_val_ApproachID (0) +#define max_val_ApproachID (15) +#define min_val_DDay (0) +#define max_val_DDay (31) +#define min_val_DeltaAngle (-150) +#define max_val_DeltaAngle (150) +#define min_val_DeltaTime (-122) +#define max_val_DeltaTime (121) +#define min_val_DHour (0) +#define max_val_DHour (31) +#define min_val_DMinute (0) +#define max_val_DMinute (60) +#define min_val_DMonth (0) +#define max_val_DMonth (12) +#define min_val_DOffset (-840) +#define max_val_DOffset (840) +#define min_val_DrivenLineOffsetLg (-32767) +#define max_val_DrivenLineOffsetLg (32767) +#define min_val_DrivenLineOffsetSm (-2047) +#define max_val_DrivenLineOffsetSm (2047) +#define min_val_DSecond (0) +#define max_val_DSecond (65535) +#define min_val_DSRCmsgID (0) +#define max_val_DSRCmsgID (32767) +#define min_val_DYear (0) +#define max_val_DYear (4095) +#define min_val_Elevation (-4096) +#define max_val_Elevation (61439) +#define min_val_FuelType (0) +#define max_val_FuelType (15) +#define min_val_HeadingDSRC (0) +#define max_val_HeadingDSRC (28800) +#define min_val_IntersectionID (0) +#define max_val_IntersectionID (65535) +#define min_val_LaneConnectionID (0) +#define max_val_LaneConnectionID (255) +#define min_val_LaneID (0) +#define max_val_LaneID (255) +#define min_val_LayerID (0) +#define max_val_LayerID (100) +#define min_val_LaneWidth (0) +#define max_val_LaneWidth (32767) +#define min_val_MergeDivergeNodeAngle (-180) +#define max_val_MergeDivergeNodeAngle (180) +#define min_val_MinuteOfTheYear (0) +#define max_val_MinuteOfTheYear (527040) +#define min_val_MsgCount (0) +#define max_val_MsgCount (127) +#define min_val_Offset_B09 (-256) +#define max_val_Offset_B09 (255) +#define min_val_Offset_B10 (-512) +#define max_val_Offset_B10 (511) +#define min_val_Offset_B11 (-1024) +#define max_val_Offset_B11 (1023) +#define min_val_Offset_B12 (-2048) +#define max_val_Offset_B12 (2047) +#define min_val_Offset_B13 (-4096) +#define max_val_Offset_B13 (4095) +#define min_val_Offset_B14 (-8192) +#define max_val_Offset_B14 (8191) +#define min_val_Offset_B16 (-32768) +#define max_val_Offset_B16 (32767) +#define min_val_RegionId (0) +#define max_val_RegionId (255) +#define min_val_RequestID (0) +#define max_val_RequestID (255) +#define min_val_RestrictionClassID (0) +#define max_val_RestrictionClassID (255) +#define min_val_RoadRegulatorID (0) +#define max_val_RoadRegulatorID (65535) +#define min_val_RoadSegmentID (0) +#define max_val_RoadSegmentID (65535) +#define min_val_RoadwayCrownAngle (-128) +#define max_val_RoadwayCrownAngle (127) +#define min_val_Scale_B12 (-2048) +#define max_val_Scale_B12 (2047) +#define min_val_SignalGroupID (0) +#define max_val_SignalGroupID (255) +#define min_val_SemiMajorAxisAccuracy (0) +#define max_val_SemiMajorAxisAccuracy (255) +#define min_val_SemiMajorAxisOrientation (0) +#define max_val_SemiMajorAxisOrientation (65535) +#define min_val_SemiMinorAxisAccuracy (0) +#define max_val_SemiMinorAxisAccuracy (255) +#define min_val_SpeedAdvice (0) +#define max_val_SpeedAdvice (500) +#define min_val_TimeIntervalConfidence (0) +#define max_val_TimeIntervalConfidence (15) +#define min_val_VehicleHeight (0) +#define max_val_VehicleHeight (127) +#define min_val_Velocity (0) +#define max_val_Velocity (8191) +#define min_val_ZoneLength (0) +#define max_val_ZoneLength (10000) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/vcits/cpm/src/AccelerationConfidence.c b/vcits/cpm/src/AccelerationConfidence.c new file mode 100644 index 0000000..5b53746 --- /dev/null +++ b/vcits/cpm/src/AccelerationConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AccelerationConfidence.h" + +int +AccelerationConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 102)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..102) */, + -1}; +asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 102 } /* (0..102) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeInteger, + asn_DEF_AccelerationConfidence_tags_1, + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationConfidence_constr_1, &asn_PER_type_AccelerationConfidence_constr_1, AccelerationConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/AccelerationControl.c b/vcits/cpm/src/AccelerationControl.c new file mode 100644 index 0000000..71a851b --- /dev/null +++ b/vcits/cpm/src/AccelerationControl.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AccelerationControl.h" + +int +AccelerationControl_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +asn_per_constraints_t asn_PER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationControl = { + "AccelerationControl", + "AccelerationControl", + &asn_OP_BIT_STRING, + asn_DEF_AccelerationControl_tags_1, + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + asn_DEF_AccelerationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationControl_constr_1, &asn_PER_type_AccelerationControl_constr_1, AccelerationControl_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/AccidentSubCauseCode.c b/vcits/cpm/src/AccidentSubCauseCode.c new file mode 100644 index 0000000..e8fde1e --- /dev/null +++ b/vcits/cpm/src/AccidentSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AccidentSubCauseCode.h" + +int +AccidentSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccidentSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode = { + "AccidentSubCauseCode", + "AccidentSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AccidentSubCauseCode_tags_1, + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AccidentSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AccidentSubCauseCode_constr_1, &asn_PER_type_AccidentSubCauseCode_constr_1, AccidentSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ActionID.c b/vcits/cpm/src/ActionID.c new file mode 100644 index 0000000..f774261 --- /dev/null +++ b/vcits/cpm/src/ActionID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ActionID.h" + +static asn_TYPE_member_t asn_MBR_ActionID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ActionID, originatingStationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "originatingStationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ActionID, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SequenceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ActionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ActionID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingStationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sequenceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ActionID_specs_1 = { + sizeof(struct ActionID), + offsetof(struct ActionID, _asn_ctx), + asn_MAP_ActionID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ActionID = { + "ActionID", + "ActionID", + &asn_OP_SEQUENCE, + asn_DEF_ActionID_tags_1, + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + asn_DEF_ActionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ActionID_1, + 2, /* Elements count */ + &asn_SPC_ActionID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/AdverseWeatherCondition-AdhesionSubCauseCode.c b/vcits/cpm/src/AdverseWeatherCondition-AdhesionSubCauseCode.c new file mode 100644 index 0000000..4b54b64 --- /dev/null +++ b/vcits/cpm/src/AdverseWeatherCondition-AdhesionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AdverseWeatherCondition-AdhesionSubCauseCode.h" + +int +AdverseWeatherCondition_AdhesionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode = { + "AdverseWeatherCondition-AdhesionSubCauseCode", + "AdverseWeatherCondition-AdhesionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, AdverseWeatherCondition_AdhesionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c b/vcits/cpm/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c new file mode 100644 index 0000000..833cdd5 --- /dev/null +++ b/vcits/cpm/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" + +int +AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = { + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c b/vcits/cpm/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c new file mode 100644 index 0000000..054c9ce --- /dev/null +++ b/vcits/cpm/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AdverseWeatherCondition-PrecipitationSubCauseCode.h" + +int +AdverseWeatherCondition_PrecipitationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode = { + "AdverseWeatherCondition-PrecipitationSubCauseCode", + "AdverseWeatherCondition-PrecipitationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, AdverseWeatherCondition_PrecipitationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/AdverseWeatherCondition-VisibilitySubCauseCode.c b/vcits/cpm/src/AdverseWeatherCondition-VisibilitySubCauseCode.c new file mode 100644 index 0000000..9587b59 --- /dev/null +++ b/vcits/cpm/src/AdverseWeatherCondition-VisibilitySubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AdverseWeatherCondition-VisibilitySubCauseCode.h" + +int +AdverseWeatherCondition_VisibilitySubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode = { + "AdverseWeatherCondition-VisibilitySubCauseCode", + "AdverseWeatherCondition-VisibilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, AdverseWeatherCondition_VisibilitySubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/AdvisorySpeed.c b/vcits/cpm/src/AdvisorySpeed.c new file mode 100644 index 0000000..8998317 --- /dev/null +++ b/vcits/cpm/src/AdvisorySpeed.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AdvisorySpeed.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_AdvisorySpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct AdvisorySpeed__regional), + offsetof(struct AdvisorySpeed__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AdvisorySpeed, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 5, offsetof(struct AdvisorySpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedAdvice, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct AdvisorySpeed, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 3, offsetof(struct AdvisorySpeed, distance), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "distance" + }, + { ATF_POINTER, 2, offsetof(struct AdvisorySpeed, Class), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "class" + }, + { ATF_POINTER, 1, offsetof(struct AdvisorySpeed, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_AdvisorySpeed_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AdvisorySpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* distance */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* class */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1 = { + sizeof(struct AdvisorySpeed), + offsetof(struct AdvisorySpeed, _asn_ctx), + asn_MAP_AdvisorySpeed_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_AdvisorySpeed_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed = { + "AdvisorySpeed", + "AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_AdvisorySpeed_tags_1, + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AdvisorySpeed_1, + 6, /* Elements count */ + &asn_SPC_AdvisorySpeed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/AdvisorySpeedList.c b/vcits/cpm/src/AdvisorySpeedList.c new file mode 100644 index 0000000..94b78e7 --- /dev/null +++ b/vcits/cpm/src/AdvisorySpeedList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AdvisorySpeedList.h" + +#include "AdvisorySpeed.h" +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AdvisorySpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1 = { + sizeof(struct AdvisorySpeedList), + offsetof(struct AdvisorySpeedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList = { + "AdvisorySpeedList", + "AdvisorySpeedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_AdvisorySpeedList_tags_1, + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedList_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + { &asn_OER_type_AdvisorySpeedList_constr_1, &asn_PER_type_AdvisorySpeedList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AdvisorySpeedList_1, + 1, /* Single element */ + &asn_SPC_AdvisorySpeedList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/AdvisorySpeedType.c b/vcits/cpm/src/AdvisorySpeedType.c new file mode 100644 index 0000000..c95338e --- /dev/null +++ b/vcits/cpm/src/AdvisorySpeedType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AdvisorySpeedType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AdvisorySpeedType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 9, "greenwave" }, + { 2, 8, "ecoDrive" }, + { 3, 7, "transit" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_AdvisorySpeedType_enum2value_1[] = { + 2, /* ecoDrive(2) */ + 1, /* greenwave(1) */ + 0, /* none(0) */ + 3 /* transit(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1 = { + asn_MAP_AdvisorySpeedType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AdvisorySpeedType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType = { + "AdvisorySpeedType", + "AdvisorySpeedType", + &asn_OP_NativeEnumerated, + asn_DEF_AdvisorySpeedType_tags_1, + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedType_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + { &asn_OER_type_AdvisorySpeedType_constr_1, &asn_PER_type_AdvisorySpeedType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AdvisorySpeedType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/AllowedManeuvers.c b/vcits/cpm/src/AllowedManeuvers.c new file mode 100644 index 0000000..bfb7fd9 --- /dev/null +++ b/vcits/cpm/src/AllowedManeuvers.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AllowedManeuvers.h" + +int +AllowedManeuvers_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { 0, 0 }, + 12 /* (SIZE(12..12)) */}; +asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 12, 12 } /* (SIZE(12..12)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AllowedManeuvers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers = { + "AllowedManeuvers", + "AllowedManeuvers", + &asn_OP_BIT_STRING, + asn_DEF_AllowedManeuvers_tags_1, + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + asn_DEF_AllowedManeuvers_tags_1, /* Same as above */ + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + { &asn_OER_type_AllowedManeuvers_constr_1, &asn_PER_type_AllowedManeuvers_constr_1, AllowedManeuvers_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Altitude.c b/vcits/cpm/src/Altitude.c new file mode 100644 index 0000000..bf2c897 --- /dev/null +++ b/vcits/cpm/src/Altitude.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Altitude.h" + +asn_TYPE_member_t asn_MBR_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Altitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altitudeValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altitudeConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1 = { + sizeof(struct Altitude), + offsetof(struct Altitude, _asn_ctx), + asn_MAP_Altitude_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_Altitude_tags_1, + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + asn_DEF_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Altitude_1, + 2, /* Elements count */ + &asn_SPC_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/AltitudeConfidence.c b/vcits/cpm/src/AltitudeConfidence.c new file mode 100644 index 0000000..137c6ea --- /dev/null +++ b/vcits/cpm/src/AltitudeConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AltitudeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AltitudeConfidence_value2enum_1[] = { + { 0, 10, "alt-000-01" }, + { 1, 10, "alt-000-02" }, + { 2, 10, "alt-000-05" }, + { 3, 10, "alt-000-10" }, + { 4, 10, "alt-000-20" }, + { 5, 10, "alt-000-50" }, + { 6, 10, "alt-001-00" }, + { 7, 10, "alt-002-00" }, + { 8, 10, "alt-005-00" }, + { 9, 10, "alt-010-00" }, + { 10, 10, "alt-020-00" }, + { 11, 10, "alt-050-00" }, + { 12, 10, "alt-100-00" }, + { 13, 10, "alt-200-00" }, + { 14, 10, "outOfRange" }, + { 15, 11, "unavailable" } +}; +static const unsigned int asn_MAP_AltitudeConfidence_enum2value_1[] = { + 0, /* alt-000-01(0) */ + 1, /* alt-000-02(1) */ + 2, /* alt-000-05(2) */ + 3, /* alt-000-10(3) */ + 4, /* alt-000-20(4) */ + 5, /* alt-000-50(5) */ + 6, /* alt-001-00(6) */ + 7, /* alt-002-00(7) */ + 8, /* alt-005-00(8) */ + 9, /* alt-010-00(9) */ + 10, /* alt-020-00(10) */ + 11, /* alt-050-00(11) */ + 12, /* alt-100-00(12) */ + 13, /* alt-200-00(13) */ + 14, /* outOfRange(14) */ + 15 /* unavailable(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1 = { + asn_MAP_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AltitudeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_AltitudeConfidence_tags_1, + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeConfidence_constr_1, &asn_PER_type_AltitudeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/AltitudeValue.c b/vcits/cpm/src/AltitudeValue.c new file mode 100644 index 0000000..2f00db3 --- /dev/null +++ b/vcits/cpm/src/AltitudeValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AltitudeValue.h" + +int +AltitudeValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -100000 && value <= 800001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-100000..800001) */, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, -100000, 800001 } /* (-100000..800001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_AltitudeValue_tags_1, + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeValue_constr_1, &asn_PER_type_AltitudeValue_constr_1, AltitudeValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Angle.c b/vcits/cpm/src/Angle.c new file mode 100644 index 0000000..2754df0 --- /dev/null +++ b/vcits/cpm/src/Angle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Angle.h" + +int +Angle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 28800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Angle_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +asn_per_constraints_t asn_PER_type_Angle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Angle = { + "Angle", + "Angle", + &asn_OP_NativeInteger, + asn_DEF_Angle_tags_1, + sizeof(asn_DEF_Angle_tags_1) + /sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */ + asn_DEF_Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_Angle_tags_1) + /sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */ + { &asn_OER_type_Angle_constr_1, &asn_PER_type_Angle_constr_1, Angle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/AngleConfidence.c b/vcits/cpm/src/AngleConfidence.c new file mode 100644 index 0000000..20637b3 --- /dev/null +++ b/vcits/cpm/src/AngleConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AngleConfidence.h" + +int +AngleConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AngleConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_AngleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AngleConfidence = { + "AngleConfidence", + "AngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_AngleConfidence_tags_1, + sizeof(asn_DEF_AngleConfidence_tags_1) + /sizeof(asn_DEF_AngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_AngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AngleConfidence_tags_1) + /sizeof(asn_DEF_AngleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AngleConfidence_constr_1, &asn_PER_type_AngleConfidence_constr_1, AngleConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/AnimalSubclass.c b/vcits/cpm/src/AnimalSubclass.c new file mode 100644 index 0000000..f050099 --- /dev/null +++ b/vcits/cpm/src/AnimalSubclass.c @@ -0,0 +1,108 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AnimalSubclass.h" + +static int asn_DFL_2_cmp_0(const void *sptr) { + const AnimalSubclassType_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_2_set_0(void **sptr) { + AnimalSubclassType_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +static int asn_DFL_3_cmp_0(const void *sptr) { + const ClassConfidence_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_3_set_0(void **sptr) { + ClassConfidence_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +asn_TYPE_member_t asn_MBR_AnimalSubclass_1[] = { + { ATF_NOFLAGS, 2, offsetof(struct AnimalSubclass, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AnimalSubclassType, + 0, + { 0, 0, 0 }, + &asn_DFL_2_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_2_set_0, /* Set DEFAULT 0 */ + "type" + }, + { ATF_NOFLAGS, 1, offsetof(struct AnimalSubclass, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ClassConfidence, + 0, + { 0, 0, 0 }, + &asn_DFL_3_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_3_set_0, /* Set DEFAULT 0 */ + "confidence" + }, +}; +static const int asn_MAP_AnimalSubclass_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_AnimalSubclass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AnimalSubclass_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AnimalSubclass_specs_1 = { + sizeof(struct AnimalSubclass), + offsetof(struct AnimalSubclass, _asn_ctx), + asn_MAP_AnimalSubclass_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_AnimalSubclass_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AnimalSubclass = { + "AnimalSubclass", + "AnimalSubclass", + &asn_OP_SEQUENCE, + asn_DEF_AnimalSubclass_tags_1, + sizeof(asn_DEF_AnimalSubclass_tags_1) + /sizeof(asn_DEF_AnimalSubclass_tags_1[0]), /* 1 */ + asn_DEF_AnimalSubclass_tags_1, /* Same as above */ + sizeof(asn_DEF_AnimalSubclass_tags_1) + /sizeof(asn_DEF_AnimalSubclass_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AnimalSubclass_1, + 2, /* Elements count */ + &asn_SPC_AnimalSubclass_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/AnimalSubclassType.c b/vcits/cpm/src/AnimalSubclassType.c new file mode 100644 index 0000000..8dbf120 --- /dev/null +++ b/vcits/cpm/src/AnimalSubclassType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AnimalSubclassType.h" + +int +AnimalSubclassType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AnimalSubclassType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_AnimalSubclassType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AnimalSubclassType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AnimalSubclassType = { + "AnimalSubclassType", + "AnimalSubclassType", + &asn_OP_NativeInteger, + asn_DEF_AnimalSubclassType_tags_1, + sizeof(asn_DEF_AnimalSubclassType_tags_1) + /sizeof(asn_DEF_AnimalSubclassType_tags_1[0]), /* 1 */ + asn_DEF_AnimalSubclassType_tags_1, /* Same as above */ + sizeof(asn_DEF_AnimalSubclassType_tags_1) + /sizeof(asn_DEF_AnimalSubclassType_tags_1[0]), /* 1 */ + { &asn_OER_type_AnimalSubclassType_constr_1, &asn_PER_type_AnimalSubclassType_constr_1, AnimalSubclassType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/AntennaOffsetSet.c b/vcits/cpm/src/AntennaOffsetSet.c new file mode 100644 index 0000000..7b86363 --- /dev/null +++ b/vcits/cpm/src/AntennaOffsetSet.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AntennaOffsetSet.h" + +asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetX), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetX" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetY), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B09, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetY" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetZ), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetZ" + }, +}; +static const ber_tlv_tag_t asn_DEF_AntennaOffsetSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AntennaOffsetSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* antOffsetX */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* antOffsetY */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* antOffsetZ */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1 = { + sizeof(struct AntennaOffsetSet), + offsetof(struct AntennaOffsetSet, _asn_ctx), + asn_MAP_AntennaOffsetSet_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet = { + "AntennaOffsetSet", + "AntennaOffsetSet", + &asn_OP_SEQUENCE, + asn_DEF_AntennaOffsetSet_tags_1, + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + asn_DEF_AntennaOffsetSet_tags_1, /* Same as above */ + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AntennaOffsetSet_1, + 3, /* Elements count */ + &asn_SPC_AntennaOffsetSet_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ApproachID.c b/vcits/cpm/src/ApproachID.c new file mode 100644 index 0000000..583bde6 --- /dev/null +++ b/vcits/cpm/src/ApproachID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ApproachID.h" + +int +ApproachID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ApproachID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_ApproachID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ApproachID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ApproachID = { + "ApproachID", + "ApproachID", + &asn_OP_NativeInteger, + asn_DEF_ApproachID_tags_1, + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + asn_DEF_ApproachID_tags_1, /* Same as above */ + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + { &asn_OER_type_ApproachID_constr_1, &asn_PER_type_ApproachID_constr_1, ApproachID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/AreaCircular.c b/vcits/cpm/src/AreaCircular.c new file mode 100644 index 0000000..5f37018 --- /dev/null +++ b/vcits/cpm/src/AreaCircular.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AreaCircular.h" + +#include "OffsetPoint.h" +asn_TYPE_member_t asn_MBR_AreaCircular_1[] = { + { ATF_POINTER, 1, offsetof(struct AreaCircular, nodeCenterPoint), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeCenterPoint" + }, + { ATF_NOFLAGS, 0, offsetof(struct AreaCircular, radius), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Radius, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radius" + }, +}; +static const int asn_MAP_AreaCircular_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_AreaCircular_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AreaCircular_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodeCenterPoint */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* radius */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AreaCircular_specs_1 = { + sizeof(struct AreaCircular), + offsetof(struct AreaCircular, _asn_ctx), + asn_MAP_AreaCircular_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_AreaCircular_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AreaCircular = { + "AreaCircular", + "AreaCircular", + &asn_OP_SEQUENCE, + asn_DEF_AreaCircular_tags_1, + sizeof(asn_DEF_AreaCircular_tags_1) + /sizeof(asn_DEF_AreaCircular_tags_1[0]), /* 1 */ + asn_DEF_AreaCircular_tags_1, /* Same as above */ + sizeof(asn_DEF_AreaCircular_tags_1) + /sizeof(asn_DEF_AreaCircular_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AreaCircular_1, + 2, /* Elements count */ + &asn_SPC_AreaCircular_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/AreaEllipse.c b/vcits/cpm/src/AreaEllipse.c new file mode 100644 index 0000000..0be1061 --- /dev/null +++ b/vcits/cpm/src/AreaEllipse.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AreaEllipse.h" + +#include "OffsetPoint.h" +asn_TYPE_member_t asn_MBR_AreaEllipse_1[] = { + { ATF_POINTER, 1, offsetof(struct AreaEllipse, nodeCenterPoint), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeCenterPoint" + }, + { ATF_NOFLAGS, 0, offsetof(struct AreaEllipse, semiMinorRangeLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiRangeLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinorRangeLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct AreaEllipse, semiMajorRangeLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiRangeLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorRangeLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct AreaEllipse, semiMajorRangeOrientation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WGS84AngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorRangeOrientation" + }, + { ATF_POINTER, 1, offsetof(struct AreaEllipse, semiHeight), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiRangeLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiHeight" + }, +}; +static const int asn_MAP_AreaEllipse_oms_1[] = { 0, 4 }; +static const ber_tlv_tag_t asn_DEF_AreaEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AreaEllipse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodeCenterPoint */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorRangeLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* semiMajorRangeLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* semiMajorRangeOrientation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* semiHeight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AreaEllipse_specs_1 = { + sizeof(struct AreaEllipse), + offsetof(struct AreaEllipse, _asn_ctx), + asn_MAP_AreaEllipse_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_AreaEllipse_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AreaEllipse = { + "AreaEllipse", + "AreaEllipse", + &asn_OP_SEQUENCE, + asn_DEF_AreaEllipse_tags_1, + sizeof(asn_DEF_AreaEllipse_tags_1) + /sizeof(asn_DEF_AreaEllipse_tags_1[0]), /* 1 */ + asn_DEF_AreaEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_AreaEllipse_tags_1) + /sizeof(asn_DEF_AreaEllipse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AreaEllipse_1, + 5, /* Elements count */ + &asn_SPC_AreaEllipse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/AreaPolygon.c b/vcits/cpm/src/AreaPolygon.c new file mode 100644 index 0000000..9d7e966 --- /dev/null +++ b/vcits/cpm/src/AreaPolygon.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AreaPolygon.h" + +asn_TYPE_member_t asn_MBR_AreaPolygon_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AreaPolygon, polyPointList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PolyPointList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "polyPointList" + }, +}; +static const ber_tlv_tag_t asn_DEF_AreaPolygon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AreaPolygon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* polyPointList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AreaPolygon_specs_1 = { + sizeof(struct AreaPolygon), + offsetof(struct AreaPolygon, _asn_ctx), + asn_MAP_AreaPolygon_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AreaPolygon = { + "AreaPolygon", + "AreaPolygon", + &asn_OP_SEQUENCE, + asn_DEF_AreaPolygon_tags_1, + sizeof(asn_DEF_AreaPolygon_tags_1) + /sizeof(asn_DEF_AreaPolygon_tags_1[0]), /* 1 */ + asn_DEF_AreaPolygon_tags_1, /* Same as above */ + sizeof(asn_DEF_AreaPolygon_tags_1) + /sizeof(asn_DEF_AreaPolygon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AreaPolygon_1, + 1, /* Elements count */ + &asn_SPC_AreaPolygon_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/AreaRadial.c b/vcits/cpm/src/AreaRadial.c new file mode 100644 index 0000000..d736c04 --- /dev/null +++ b/vcits/cpm/src/AreaRadial.c @@ -0,0 +1,113 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AreaRadial.h" + +#include "OffsetPoint.h" +asn_TYPE_member_t asn_MBR_AreaRadial_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AreaRadial, range), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "range" + }, + { ATF_NOFLAGS, 0, offsetof(struct AreaRadial, stationaryHorizontalOpeningAngleStart), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WGS84AngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationaryHorizontalOpeningAngleStart" + }, + { ATF_NOFLAGS, 0, offsetof(struct AreaRadial, stationaryHorizontalOpeningAngleEnd), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WGS84AngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationaryHorizontalOpeningAngleEnd" + }, + { ATF_POINTER, 4, offsetof(struct AreaRadial, verticalOpeningAngleStart), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CartesianAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalOpeningAngleStart" + }, + { ATF_POINTER, 3, offsetof(struct AreaRadial, verticalOpeningAngleEnd), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CartesianAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalOpeningAngleEnd" + }, + { ATF_POINTER, 2, offsetof(struct AreaRadial, sensorPositionOffset), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sensorPositionOffset" + }, + { ATF_POINTER, 1, offsetof(struct AreaRadial, sensorHeight), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SensorHeight, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sensorHeight" + }, +}; +static const int asn_MAP_AreaRadial_oms_1[] = { 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_AreaRadial_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AreaRadial_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* range */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* stationaryHorizontalOpeningAngleStart */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* stationaryHorizontalOpeningAngleEnd */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* verticalOpeningAngleStart */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* verticalOpeningAngleEnd */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* sensorPositionOffset */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* sensorHeight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AreaRadial_specs_1 = { + sizeof(struct AreaRadial), + offsetof(struct AreaRadial, _asn_ctx), + asn_MAP_AreaRadial_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_AreaRadial_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AreaRadial = { + "AreaRadial", + "AreaRadial", + &asn_OP_SEQUENCE, + asn_DEF_AreaRadial_tags_1, + sizeof(asn_DEF_AreaRadial_tags_1) + /sizeof(asn_DEF_AreaRadial_tags_1[0]), /* 1 */ + asn_DEF_AreaRadial_tags_1, /* Same as above */ + sizeof(asn_DEF_AreaRadial_tags_1) + /sizeof(asn_DEF_AreaRadial_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AreaRadial_1, + 7, /* Elements count */ + &asn_SPC_AreaRadial_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/AreaRectangle.c b/vcits/cpm/src/AreaRectangle.c new file mode 100644 index 0000000..60141f2 --- /dev/null +++ b/vcits/cpm/src/AreaRectangle.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "AreaRectangle.h" + +#include "OffsetPoint.h" +asn_TYPE_member_t asn_MBR_AreaRectangle_1[] = { + { ATF_POINTER, 1, offsetof(struct AreaRectangle, nodeCenterPoint), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeCenterPoint" + }, + { ATF_NOFLAGS, 0, offsetof(struct AreaRectangle, semiMajorRangeLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiRangeLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorRangeLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct AreaRectangle, semiMinorRangeLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiRangeLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinorRangeLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct AreaRectangle, semiMajorRangeOrientation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WGS84AngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorRangeOrientation" + }, + { ATF_POINTER, 1, offsetof(struct AreaRectangle, semiHeight), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiRangeLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiHeight" + }, +}; +static const int asn_MAP_AreaRectangle_oms_1[] = { 0, 4 }; +static const ber_tlv_tag_t asn_DEF_AreaRectangle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AreaRectangle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodeCenterPoint */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMajorRangeLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* semiMinorRangeLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* semiMajorRangeOrientation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* semiHeight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AreaRectangle_specs_1 = { + sizeof(struct AreaRectangle), + offsetof(struct AreaRectangle, _asn_ctx), + asn_MAP_AreaRectangle_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_AreaRectangle_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AreaRectangle = { + "AreaRectangle", + "AreaRectangle", + &asn_OP_SEQUENCE, + asn_DEF_AreaRectangle_tags_1, + sizeof(asn_DEF_AreaRectangle_tags_1) + /sizeof(asn_DEF_AreaRectangle_tags_1[0]), /* 1 */ + asn_DEF_AreaRectangle_tags_1, /* Same as above */ + sizeof(asn_DEF_AreaRectangle_tags_1) + /sizeof(asn_DEF_AreaRectangle_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AreaRectangle_1, + 5, /* Elements count */ + &asn_SPC_AreaRectangle_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/BasicContainer.c b/vcits/cpm/src/BasicContainer.c new file mode 100644 index 0000000..dda49fc --- /dev/null +++ b/vcits/cpm/src/BasicContainer.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "BasicContainer.h" + +asn_TYPE_member_t asn_MBR_BasicContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BasicContainer, stationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicContainer, referencePosition), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referencePosition" + }, +}; +static const ber_tlv_tag_t asn_DEF_BasicContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BasicContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* referencePosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BasicContainer_specs_1 = { + sizeof(struct BasicContainer), + offsetof(struct BasicContainer, _asn_ctx), + asn_MAP_BasicContainer_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BasicContainer = { + "BasicContainer", + "BasicContainer", + &asn_OP_SEQUENCE, + asn_DEF_BasicContainer_tags_1, + sizeof(asn_DEF_BasicContainer_tags_1) + /sizeof(asn_DEF_BasicContainer_tags_1[0]), /* 1 */ + asn_DEF_BasicContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicContainer_tags_1) + /sizeof(asn_DEF_BasicContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BasicContainer_1, + 2, /* Elements count */ + &asn_SPC_BasicContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/BasicVehicleContainerHighFrequency.c b/vcits/cpm/src/BasicVehicleContainerHighFrequency.c new file mode 100644 index 0000000..121ddcb --- /dev/null +++ b/vcits/cpm/src/BasicVehicleContainerHighFrequency.c @@ -0,0 +1,206 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "BasicVehicleContainerHighFrequency.h" + +#include "SteeringWheelAngle.h" +#include "LateralAcceleration.h" +#include "VerticalAcceleration.h" +#include "CenDsrcTollingZone.h" +asn_TYPE_member_t asn_MBR_BasicVehicleContainerHighFrequency_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Heading, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Speed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, driveDirection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DriveDirection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "driveDirection" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, vehicleLength), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, vehicleWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleWidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, longitudinalAcceleration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalAcceleration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAcceleration" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, curvature), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Curvature, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvature" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, curvatureCalculationMode), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureCalculationMode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureCalculationMode" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerHighFrequency, yawRate), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRate" + }, + { ATF_POINTER, 7, offsetof(struct BasicVehicleContainerHighFrequency, accelerationControl), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationControl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "accelerationControl" + }, + { ATF_POINTER, 6, offsetof(struct BasicVehicleContainerHighFrequency, lanePosition), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LanePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lanePosition" + }, + { ATF_POINTER, 5, offsetof(struct BasicVehicleContainerHighFrequency, steeringWheelAngle), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngle" + }, + { ATF_POINTER, 4, offsetof(struct BasicVehicleContainerHighFrequency, lateralAcceleration), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LateralAcceleration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAcceleration" + }, + { ATF_POINTER, 3, offsetof(struct BasicVehicleContainerHighFrequency, verticalAcceleration), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAcceleration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAcceleration" + }, + { ATF_POINTER, 2, offsetof(struct BasicVehicleContainerHighFrequency, performanceClass), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PerformanceClass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "performanceClass" + }, + { ATF_POINTER, 1, offsetof(struct BasicVehicleContainerHighFrequency, cenDsrcTollingZone), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CenDsrcTollingZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cenDsrcTollingZone" + }, +}; +static const int asn_MAP_BasicVehicleContainerHighFrequency_oms_1[] = { 9, 10, 11, 12, 13, 14, 15 }; +static const ber_tlv_tag_t asn_DEF_BasicVehicleContainerHighFrequency_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BasicVehicleContainerHighFrequency_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* driveDirection */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* vehicleLength */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* vehicleWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* longitudinalAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* curvature */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* curvatureCalculationMode */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* yawRate */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* accelerationControl */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* lanePosition */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* steeringWheelAngle */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* lateralAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* verticalAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* performanceClass */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 } /* cenDsrcTollingZone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BasicVehicleContainerHighFrequency_specs_1 = { + sizeof(struct BasicVehicleContainerHighFrequency), + offsetof(struct BasicVehicleContainerHighFrequency, _asn_ctx), + asn_MAP_BasicVehicleContainerHighFrequency_tag2el_1, + 16, /* Count of tags in the map */ + asn_MAP_BasicVehicleContainerHighFrequency_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BasicVehicleContainerHighFrequency = { + "BasicVehicleContainerHighFrequency", + "BasicVehicleContainerHighFrequency", + &asn_OP_SEQUENCE, + asn_DEF_BasicVehicleContainerHighFrequency_tags_1, + sizeof(asn_DEF_BasicVehicleContainerHighFrequency_tags_1) + /sizeof(asn_DEF_BasicVehicleContainerHighFrequency_tags_1[0]), /* 1 */ + asn_DEF_BasicVehicleContainerHighFrequency_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicVehicleContainerHighFrequency_tags_1) + /sizeof(asn_DEF_BasicVehicleContainerHighFrequency_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BasicVehicleContainerHighFrequency_1, + 16, /* Elements count */ + &asn_SPC_BasicVehicleContainerHighFrequency_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/BasicVehicleContainerLowFrequency.c b/vcits/cpm/src/BasicVehicleContainerLowFrequency.c new file mode 100644 index 0000000..75108e2 --- /dev/null +++ b/vcits/cpm/src/BasicVehicleContainerLowFrequency.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "BasicVehicleContainerLowFrequency.h" + +asn_TYPE_member_t asn_MBR_BasicVehicleContainerLowFrequency_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerLowFrequency, vehicleRole), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleRole" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerLowFrequency, exteriorLights), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExteriorLights, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "exteriorLights" + }, + { ATF_NOFLAGS, 0, offsetof(struct BasicVehicleContainerLowFrequency, pathHistory), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathHistory, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathHistory" + }, +}; +static const ber_tlv_tag_t asn_DEF_BasicVehicleContainerLowFrequency_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BasicVehicleContainerLowFrequency_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleRole */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* exteriorLights */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pathHistory */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BasicVehicleContainerLowFrequency_specs_1 = { + sizeof(struct BasicVehicleContainerLowFrequency), + offsetof(struct BasicVehicleContainerLowFrequency, _asn_ctx), + asn_MAP_BasicVehicleContainerLowFrequency_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BasicVehicleContainerLowFrequency = { + "BasicVehicleContainerLowFrequency", + "BasicVehicleContainerLowFrequency", + &asn_OP_SEQUENCE, + asn_DEF_BasicVehicleContainerLowFrequency_tags_1, + sizeof(asn_DEF_BasicVehicleContainerLowFrequency_tags_1) + /sizeof(asn_DEF_BasicVehicleContainerLowFrequency_tags_1[0]), /* 1 */ + asn_DEF_BasicVehicleContainerLowFrequency_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicVehicleContainerLowFrequency_tags_1) + /sizeof(asn_DEF_BasicVehicleContainerLowFrequency_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BasicVehicleContainerLowFrequency_1, + 3, /* Elements count */ + &asn_SPC_BasicVehicleContainerLowFrequency_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/BasicVehicleRole.c b/vcits/cpm/src/BasicVehicleRole.c new file mode 100644 index 0000000..c1fa810 --- /dev/null +++ b/vcits/cpm/src/BasicVehicleRole.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "BasicVehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 22 } /* (0..22,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BasicVehicleRole_value2enum_1[] = { + { 0, 12, "basicVehicle" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 10, "roadRescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 12, "none-unknown" }, + { 9, 5, "truck" }, + { 10, 10, "motorcycle" }, + { 11, 14, "roadSideSource" }, + { 12, 6, "police" }, + { 13, 4, "fire" }, + { 14, 9, "ambulance" }, + { 15, 3, "dot" }, + { 16, 7, "transit" }, + { 17, 10, "slowMoving" }, + { 18, 7, "stopNgo" }, + { 19, 7, "cyclist" }, + { 20, 10, "pedestrian" }, + { 21, 12, "nonMotorized" }, + { 22, 8, "military" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BasicVehicleRole_enum2value_1[] = { + 14, /* ambulance(14) */ + 0, /* basicVehicle(0) */ + 19, /* cyclist(19) */ + 3, /* dangerousGoods(3) */ + 15, /* dot(15) */ + 6, /* emergency(6) */ + 13, /* fire(13) */ + 22, /* military(22) */ + 10, /* motorcycle(10) */ + 21, /* nonMotorized(21) */ + 8, /* none-unknown(8) */ + 20, /* pedestrian(20) */ + 12, /* police(12) */ + 1, /* publicTransport(1) */ + 5, /* roadRescue(5) */ + 11, /* roadSideSource(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 17, /* slowMoving(17) */ + 2, /* specialTransport(2) */ + 18, /* stopNgo(18) */ + 16, /* transit(16) */ + 9 /* truck(9) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1 = { + asn_MAP_BasicVehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BasicVehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 23, /* Number of elements in the maps */ + 24, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BasicVehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole = { + "BasicVehicleRole", + "BasicVehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_BasicVehicleRole_tags_1, + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + asn_DEF_BasicVehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_BasicVehicleRole_constr_1, &asn_PER_type_BasicVehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BasicVehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/BatteryStatus.c b/vcits/cpm/src/BatteryStatus.c new file mode 100644 index 0000000..ff61fe7 --- /dev/null +++ b/vcits/cpm/src/BatteryStatus.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "BatteryStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BatteryStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BatteryStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BatteryStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "critical" }, + { 2, 3, "low" }, + { 3, 4, "good" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BatteryStatus_enum2value_1[] = { + 1, /* critical(1) */ + 3, /* good(3) */ + 2, /* low(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BatteryStatus_specs_1 = { + asn_MAP_BatteryStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BatteryStatus_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BatteryStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BatteryStatus = { + "BatteryStatus", + "BatteryStatus", + &asn_OP_NativeEnumerated, + asn_DEF_BatteryStatus_tags_1, + sizeof(asn_DEF_BatteryStatus_tags_1) + /sizeof(asn_DEF_BatteryStatus_tags_1[0]), /* 1 */ + asn_DEF_BatteryStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_BatteryStatus_tags_1) + /sizeof(asn_DEF_BatteryStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_BatteryStatus_constr_1, &asn_PER_type_BatteryStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BatteryStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CAM.c b/vcits/cpm/src/CAM.c new file mode 100644 index 0000000..d987b42 --- /dev/null +++ b/vcits/cpm/src/CAM.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CAM.h" + +static asn_TYPE_member_t asn_MBR_CAM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CAM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsPduHeader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct CAM, cam), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CoopAwareness, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cam" + }, +}; +static const ber_tlv_tag_t asn_DEF_CAM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CAM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cam */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CAM_specs_1 = { + sizeof(struct CAM), + offsetof(struct CAM, _asn_ctx), + asn_MAP_CAM_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CAM = { + "CAM", + "CAM", + &asn_OP_SEQUENCE, + asn_DEF_CAM_tags_1, + sizeof(asn_DEF_CAM_tags_1) + /sizeof(asn_DEF_CAM_tags_1[0]), /* 1 */ + asn_DEF_CAM_tags_1, /* Same as above */ + sizeof(asn_DEF_CAM_tags_1) + /sizeof(asn_DEF_CAM_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CAM_1, + 2, /* Elements count */ + &asn_SPC_CAM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CPM.c b/vcits/cpm/src/CPM.c new file mode 100644 index 0000000..b262e37 --- /dev/null +++ b/vcits/cpm/src/CPM.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CPM.h" + +static asn_TYPE_member_t asn_MBR_CPM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CPM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsPduHeader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct CPM, cpm), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CollectivePerceptionMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cpm" + }, +}; +static const ber_tlv_tag_t asn_DEF_CPM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CPM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cpm */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CPM_specs_1 = { + sizeof(struct CPM), + offsetof(struct CPM, _asn_ctx), + asn_MAP_CPM_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CPM = { + "CPM", + "CPM", + &asn_OP_SEQUENCE, + asn_DEF_CPM_tags_1, + sizeof(asn_DEF_CPM_tags_1) + /sizeof(asn_DEF_CPM_tags_1[0]), /* 1 */ + asn_DEF_CPM_tags_1, /* Same as above */ + sizeof(asn_DEF_CPM_tags_1) + /sizeof(asn_DEF_CPM_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CPM_1, + 2, /* Elements count */ + &asn_SPC_CPM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CamParameters.c b/vcits/cpm/src/CamParameters.c new file mode 100644 index 0000000..cf64bae --- /dev/null +++ b/vcits/cpm/src/CamParameters.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CamParameters.h" + +#include "LowFrequencyContainer.h" +#include "SpecialVehicleContainer.h" +asn_TYPE_member_t asn_MBR_CamParameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CamParameters, basicContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "basicContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct CamParameters, highFrequencyContainer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_HighFrequencyContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "highFrequencyContainer" + }, + { ATF_POINTER, 2, offsetof(struct CamParameters, lowFrequencyContainer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_LowFrequencyContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lowFrequencyContainer" + }, + { ATF_POINTER, 1, offsetof(struct CamParameters, specialVehicleContainer), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_SpecialVehicleContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "specialVehicleContainer" + }, +}; +static const int asn_MAP_CamParameters_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_CamParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CamParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* highFrequencyContainer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lowFrequencyContainer */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* specialVehicleContainer */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CamParameters_specs_1 = { + sizeof(struct CamParameters), + offsetof(struct CamParameters, _asn_ctx), + asn_MAP_CamParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_CamParameters_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CamParameters = { + "CamParameters", + "CamParameters", + &asn_OP_SEQUENCE, + asn_DEF_CamParameters_tags_1, + sizeof(asn_DEF_CamParameters_tags_1) + /sizeof(asn_DEF_CamParameters_tags_1[0]), /* 1 */ + asn_DEF_CamParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_CamParameters_tags_1) + /sizeof(asn_DEF_CamParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CamParameters_1, + 4, /* Elements count */ + &asn_SPC_CamParameters_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CartesianAngle.c b/vcits/cpm/src/CartesianAngle.c new file mode 100644 index 0000000..05f4e3f --- /dev/null +++ b/vcits/cpm/src/CartesianAngle.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CartesianAngle.h" + +asn_TYPE_member_t asn_MBR_CartesianAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CartesianAngle, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CartesianAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct CartesianAngle, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AngleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_CartesianAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CartesianAngle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CartesianAngle_specs_1 = { + sizeof(struct CartesianAngle), + offsetof(struct CartesianAngle, _asn_ctx), + asn_MAP_CartesianAngle_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CartesianAngle = { + "CartesianAngle", + "CartesianAngle", + &asn_OP_SEQUENCE, + asn_DEF_CartesianAngle_tags_1, + sizeof(asn_DEF_CartesianAngle_tags_1) + /sizeof(asn_DEF_CartesianAngle_tags_1[0]), /* 1 */ + asn_DEF_CartesianAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_CartesianAngle_tags_1) + /sizeof(asn_DEF_CartesianAngle_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CartesianAngle_1, + 2, /* Elements count */ + &asn_SPC_CartesianAngle_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CartesianAngleValue.c b/vcits/cpm/src/CartesianAngleValue.c new file mode 100644 index 0000000..cecd7d8 --- /dev/null +++ b/vcits/cpm/src/CartesianAngleValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CartesianAngleValue.h" + +int +CartesianAngleValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3601)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CartesianAngleValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3601) */, + -1}; +asn_per_constraints_t asn_PER_type_CartesianAngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CartesianAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CartesianAngleValue = { + "CartesianAngleValue", + "CartesianAngleValue", + &asn_OP_NativeInteger, + asn_DEF_CartesianAngleValue_tags_1, + sizeof(asn_DEF_CartesianAngleValue_tags_1) + /sizeof(asn_DEF_CartesianAngleValue_tags_1[0]), /* 1 */ + asn_DEF_CartesianAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_CartesianAngleValue_tags_1) + /sizeof(asn_DEF_CartesianAngleValue_tags_1[0]), /* 1 */ + { &asn_OER_type_CartesianAngleValue_constr_1, &asn_PER_type_CartesianAngleValue_constr_1, CartesianAngleValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/CauseCode.c b/vcits/cpm/src/CauseCode.c new file mode 100644 index 0000000..01d2a86 --- /dev/null +++ b/vcits/cpm/src/CauseCode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CauseCode.h" + +asn_TYPE_member_t asn_MBR_CauseCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, causeCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "causeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, subCauseCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubCauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subCauseCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CauseCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* causeCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* subCauseCode */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CauseCode_specs_1 = { + sizeof(struct CauseCode), + offsetof(struct CauseCode, _asn_ctx), + asn_MAP_CauseCode_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CauseCode = { + "CauseCode", + "CauseCode", + &asn_OP_SEQUENCE, + asn_DEF_CauseCode_tags_1, + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + asn_DEF_CauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CauseCode_1, + 2, /* Elements count */ + &asn_SPC_CauseCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CauseCodeType.c b/vcits/cpm/src/CauseCodeType.c new file mode 100644 index 0000000..55dc35a --- /dev/null +++ b/vcits/cpm/src/CauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CauseCodeType.h" + +int +CauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseCodeType = { + "CauseCodeType", + "CauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_CauseCodeType_tags_1, + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_CauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseCodeType_constr_1, &asn_PER_type_CauseCodeType_constr_1, CauseCodeType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/CenDsrcTollingZone.c b/vcits/cpm/src/CenDsrcTollingZone.c new file mode 100644 index 0000000..20fcb59 --- /dev/null +++ b/vcits/cpm/src/CenDsrcTollingZone.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CenDsrcTollingZone.h" + +asn_TYPE_member_t asn_MBR_CenDsrcTollingZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 1, offsetof(struct CenDsrcTollingZone, cenDsrcTollingZoneID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CenDsrcTollingZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cenDsrcTollingZoneID" + }, +}; +static const int asn_MAP_CenDsrcTollingZone_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CenDsrcTollingZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cenDsrcTollingZoneID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CenDsrcTollingZone_specs_1 = { + sizeof(struct CenDsrcTollingZone), + offsetof(struct CenDsrcTollingZone, _asn_ctx), + asn_MAP_CenDsrcTollingZone_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CenDsrcTollingZone_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone = { + "CenDsrcTollingZone", + "CenDsrcTollingZone", + &asn_OP_SEQUENCE, + asn_DEF_CenDsrcTollingZone_tags_1, + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZone_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CenDsrcTollingZone_1, + 3, /* Elements count */ + &asn_SPC_CenDsrcTollingZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CenDsrcTollingZoneID.c b/vcits/cpm/src/CenDsrcTollingZoneID.c new file mode 100644 index 0000000..36f525d --- /dev/null +++ b/vcits/cpm/src/CenDsrcTollingZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CenDsrcTollingZoneID.h" + +int +CenDsrcTollingZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using ProtectedZoneID, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID = { + "CenDsrcTollingZoneID", + "CenDsrcTollingZoneID", + &asn_OP_NativeInteger, + asn_DEF_CenDsrcTollingZoneID_tags_1, + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_CenDsrcTollingZoneID_constr_1, &asn_PER_type_CenDsrcTollingZoneID_constr_1, CenDsrcTollingZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ClassConfidence.c b/vcits/cpm/src/ClassConfidence.c new file mode 100644 index 0000000..8414892 --- /dev/null +++ b/vcits/cpm/src/ClassConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ClassConfidence.h" + +int +ClassConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 101)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ClassConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..101) */, + -1}; +asn_per_constraints_t asn_PER_type_ClassConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 101 } /* (0..101) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ClassConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ClassConfidence = { + "ClassConfidence", + "ClassConfidence", + &asn_OP_NativeInteger, + asn_DEF_ClassConfidence_tags_1, + sizeof(asn_DEF_ClassConfidence_tags_1) + /sizeof(asn_DEF_ClassConfidence_tags_1[0]), /* 1 */ + asn_DEF_ClassConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ClassConfidence_tags_1) + /sizeof(asn_DEF_ClassConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ClassConfidence_constr_1, &asn_PER_type_ClassConfidence_constr_1, ClassConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ClosedLanes.c b/vcits/cpm/src/ClosedLanes.c new file mode 100644 index 0000000..7a3c381 --- /dev/null +++ b/vcits/cpm/src/ClosedLanes.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ClosedLanes.h" + +asn_TYPE_member_t asn_MBR_ClosedLanes_1[] = { + { ATF_POINTER, 3, offsetof(struct ClosedLanes, innerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "innerhardShoulderStatus" + }, + { ATF_POINTER, 2, offsetof(struct ClosedLanes, outerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outerhardShoulderStatus" + }, + { ATF_POINTER, 1, offsetof(struct ClosedLanes, drivingLaneStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivingLaneStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drivingLaneStatus" + }, +}; +static const int asn_MAP_ClosedLanes_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ClosedLanes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ClosedLanes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* innerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* outerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* drivingLaneStatus */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ClosedLanes_specs_1 = { + sizeof(struct ClosedLanes), + offsetof(struct ClosedLanes, _asn_ctx), + asn_MAP_ClosedLanes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ClosedLanes_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ClosedLanes = { + "ClosedLanes", + "ClosedLanes", + &asn_OP_SEQUENCE, + asn_DEF_ClosedLanes_tags_1, + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + asn_DEF_ClosedLanes_tags_1, /* Same as above */ + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ClosedLanes_1, + 3, /* Elements count */ + &asn_SPC_ClosedLanes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CollectivePerceptionMessage.c b/vcits/cpm/src/CollectivePerceptionMessage.c new file mode 100644 index 0000000..ea0b7ce --- /dev/null +++ b/vcits/cpm/src/CollectivePerceptionMessage.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CollectivePerceptionMessage.h" + +asn_TYPE_member_t asn_MBR_CollectivePerceptionMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CollectivePerceptionMessage, generationDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GenerationDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "generationDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CollectivePerceptionMessage, cpmParameters), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CpmParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cpmParameters" + }, +}; +static const ber_tlv_tag_t asn_DEF_CollectivePerceptionMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CollectivePerceptionMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* generationDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cpmParameters */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CollectivePerceptionMessage_specs_1 = { + sizeof(struct CollectivePerceptionMessage), + offsetof(struct CollectivePerceptionMessage, _asn_ctx), + asn_MAP_CollectivePerceptionMessage_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CollectivePerceptionMessage = { + "CollectivePerceptionMessage", + "CollectivePerceptionMessage", + &asn_OP_SEQUENCE, + asn_DEF_CollectivePerceptionMessage_tags_1, + sizeof(asn_DEF_CollectivePerceptionMessage_tags_1) + /sizeof(asn_DEF_CollectivePerceptionMessage_tags_1[0]), /* 1 */ + asn_DEF_CollectivePerceptionMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_CollectivePerceptionMessage_tags_1) + /sizeof(asn_DEF_CollectivePerceptionMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CollectivePerceptionMessage_1, + 2, /* Elements count */ + &asn_SPC_CollectivePerceptionMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CollisionRiskSubCauseCode.c b/vcits/cpm/src/CollisionRiskSubCauseCode.c new file mode 100644 index 0000000..29ec418 --- /dev/null +++ b/vcits/cpm/src/CollisionRiskSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CollisionRiskSubCauseCode.h" + +int +CollisionRiskSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CollisionRiskSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode = { + "CollisionRiskSubCauseCode", + "CollisionRiskSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_CollisionRiskSubCauseCode_tags_1, + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_CollisionRiskSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CollisionRiskSubCauseCode_constr_1, &asn_PER_type_CollisionRiskSubCauseCode_constr_1, CollisionRiskSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ComputedLane.c b/vcits/cpm/src/ComputedLane.c new file mode 100644 index 0000000..02b319f --- /dev/null +++ b/vcits/cpm/src/ComputedLane.c @@ -0,0 +1,306 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ComputedLane.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_offsetXaxis_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetXaxis_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetXaxis_specs_3 = { + sizeof(struct ComputedLane__offsetXaxis), + offsetof(struct ComputedLane__offsetXaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetXaxis, present), + sizeof(((struct ComputedLane__offsetXaxis *)0)->present), + asn_MAP_offsetXaxis_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetXaxis_3 = { + "offsetXaxis", + "offsetXaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_offsetXaxis_constr_3, &asn_PER_type_offsetXaxis_constr_3, CHOICE_constraint }, + asn_MBR_offsetXaxis_3, + 2, /* Elements count */ + &asn_SPC_offsetXaxis_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_offsetYaxis_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetYaxis_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetYaxis_specs_6 = { + sizeof(struct ComputedLane__offsetYaxis), + offsetof(struct ComputedLane__offsetYaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetYaxis, present), + sizeof(((struct ComputedLane__offsetYaxis *)0)->present), + asn_MAP_offsetYaxis_tag2el_6, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetYaxis_6 = { + "offsetYaxis", + "offsetYaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_offsetYaxis_constr_6, &asn_PER_type_offsetYaxis_constr_6, CHOICE_constraint }, + asn_MBR_offsetYaxis_6, + 2, /* Elements count */ + &asn_SPC_offsetYaxis_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regional_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ComputedLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_12 = { + sizeof(struct ComputedLane__regional), + offsetof(struct ComputedLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_12 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_12, + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]) - 1, /* 1 */ + asn_DEF_regional_tags_12, /* Same as above */ + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]), /* 2 */ + { &asn_OER_type_regional_constr_12, &asn_PER_type_regional_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_regional_12, + 1, /* Single element */ + &asn_SPC_regional_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ComputedLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, referenceLaneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceLaneId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetXaxis), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetXaxis_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetXaxis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetYaxis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetYaxis_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetYaxis" + }, + { ATF_POINTER, 4, offsetof(struct ComputedLane, rotateXY), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rotateXY" + }, + { ATF_POINTER, 3, offsetof(struct ComputedLane, scaleXaxis), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaleXaxis" + }, + { ATF_POINTER, 2, offsetof(struct ComputedLane, scaleYaxis), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaleYaxis" + }, + { ATF_POINTER, 1, offsetof(struct ComputedLane, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_12, + 0, + { &asn_OER_memb_regional_constr_12, &asn_PER_memb_regional_constr_12, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ComputedLane_oms_1[] = { 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ComputedLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ComputedLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceLaneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* offsetXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* offsetYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rotateXY */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* scaleXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* scaleYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1 = { + sizeof(struct ComputedLane), + offsetof(struct ComputedLane, _asn_ctx), + asn_MAP_ComputedLane_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ComputedLane_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ComputedLane = { + "ComputedLane", + "ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_ComputedLane_tags_1, + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + asn_DEF_ComputedLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ComputedLane_1, + 7, /* Elements count */ + &asn_SPC_ComputedLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ConnectingLane.c b/vcits/cpm/src/ConnectingLane.c new file mode 100644 index 0000000..a0af28a --- /dev/null +++ b/vcits/cpm/src/ConnectingLane.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ConnectingLane.h" + +asn_TYPE_member_t asn_MBR_ConnectingLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectingLane, lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 1, offsetof(struct ConnectingLane, maneuver), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuver" + }, +}; +static const int asn_MAP_ConnectingLane_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ConnectingLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectingLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maneuver */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1 = { + sizeof(struct ConnectingLane), + offsetof(struct ConnectingLane, _asn_ctx), + asn_MAP_ConnectingLane_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ConnectingLane_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectingLane = { + "ConnectingLane", + "ConnectingLane", + &asn_OP_SEQUENCE, + asn_DEF_ConnectingLane_tags_1, + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + asn_DEF_ConnectingLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectingLane_1, + 2, /* Elements count */ + &asn_SPC_ConnectingLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Connection.c b/vcits/cpm/src/Connection.c new file mode 100644 index 0000000..6451589 --- /dev/null +++ b/vcits/cpm/src/Connection.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Connection.h" + +#include "IntersectionReferenceID.h" +asn_TYPE_member_t asn_MBR_Connection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Connection, connectingLane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectingLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectingLane" + }, + { ATF_POINTER, 4, offsetof(struct Connection, remoteIntersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "remoteIntersection" + }, + { ATF_POINTER, 3, offsetof(struct Connection, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_POINTER, 2, offsetof(struct Connection, userClass), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "userClass" + }, + { ATF_POINTER, 1, offsetof(struct Connection, connectionID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const int asn_MAP_Connection_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Connection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Connection_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectingLane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* remoteIntersection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* userClass */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1 = { + sizeof(struct Connection), + offsetof(struct Connection, _asn_ctx), + asn_MAP_Connection_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Connection_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Connection = { + "Connection", + "Connection", + &asn_OP_SEQUENCE, + asn_DEF_Connection_tags_1, + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + asn_DEF_Connection_tags_1, /* Same as above */ + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Connection_1, + 5, /* Elements count */ + &asn_SPC_Connection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ConnectionManeuverAssist-addGrpC.c b/vcits/cpm/src/ConnectionManeuverAssist-addGrpC.c new file mode 100644 index 0000000..63b54c6 --- /dev/null +++ b/vcits/cpm/src/ConnectionManeuverAssist-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ConnectionManeuverAssist-addGrpC.h" + +#include "ItsStationPositionList.h" +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist_addGrpC, itsStationPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsStationPositionList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "itsStationPosition" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* itsStationPosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 = { + sizeof(struct ConnectionManeuverAssist_addGrpC), + offsetof(struct ConnectionManeuverAssist_addGrpC, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC = { + "ConnectionManeuverAssist-addGrpC", + "ConnectionManeuverAssist-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionManeuverAssist_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ConnectionManeuverAssist.c b/vcits/cpm/src/ConnectionManeuverAssist.c new file mode 100644 index 0000000..76c0ba2 --- /dev/null +++ b/vcits/cpm/src/ConnectionManeuverAssist.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ConnectionManeuverAssist.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ConnectionManeuverAssist, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct ConnectionManeuverAssist__regional), + offsetof(struct ConnectionManeuverAssist__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionManeuverAssist, connectionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 5, offsetof(struct ConnectionManeuverAssist, queueLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "queueLength" + }, + { ATF_POINTER, 4, offsetof(struct ConnectionManeuverAssist, availableStorageLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "availableStorageLength" + }, + { ATF_POINTER, 3, offsetof(struct ConnectionManeuverAssist, waitOnStop), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WaitOnStopline, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "waitOnStop" + }, + { ATF_POINTER, 2, offsetof(struct ConnectionManeuverAssist, pedBicycleDetect), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PedestrianBicycleDetect, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pedBicycleDetect" + }, + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* queueLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* availableStorageLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* waitOnStop */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pedBicycleDetect */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1 = { + sizeof(struct ConnectionManeuverAssist), + offsetof(struct ConnectionManeuverAssist, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist = { + "ConnectionManeuverAssist", + "ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionManeuverAssist_1, + 6, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ConnectionTrajectory-addGrpC.c b/vcits/cpm/src/ConnectionTrajectory-addGrpC.c new file mode 100644 index 0000000..cccb22e --- /dev/null +++ b/vcits/cpm/src/ConnectionTrajectory-addGrpC.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ConnectionTrajectory-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ConnectionTrajectory_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionTrajectory_addGrpC, nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConnectionTrajectory_addGrpC, connectionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectionTrajectory_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionTrajectory_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionTrajectory_addGrpC_specs_1 = { + sizeof(struct ConnectionTrajectory_addGrpC), + offsetof(struct ConnectionTrajectory_addGrpC, _asn_ctx), + asn_MAP_ConnectionTrajectory_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionTrajectory_addGrpC = { + "ConnectionTrajectory-addGrpC", + "ConnectionTrajectory-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionTrajectory_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionTrajectory_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionTrajectory_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_ConnectionTrajectory_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ConnectsToList.c b/vcits/cpm/src/ConnectsToList.c new file mode 100644 index 0000000..1f0a721 --- /dev/null +++ b/vcits/cpm/src/ConnectsToList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ConnectsToList.h" + +#include "Connection.h" +static asn_oer_constraints_t asn_OER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ConnectsToList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Connection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectsToList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1 = { + sizeof(struct ConnectsToList), + offsetof(struct ConnectsToList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectsToList = { + "ConnectsToList", + "ConnectsToList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ConnectsToList_tags_1, + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + asn_DEF_ConnectsToList_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + { &asn_OER_type_ConnectsToList_constr_1, &asn_PER_type_ConnectsToList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ConnectsToList_1, + 1, /* Single element */ + &asn_SPC_ConnectsToList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CoopAwareness.c b/vcits/cpm/src/CoopAwareness.c new file mode 100644 index 0000000..82bac08 --- /dev/null +++ b/vcits/cpm/src/CoopAwareness.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CoopAwareness.h" + +asn_TYPE_member_t asn_MBR_CoopAwareness_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CoopAwareness, generationDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GenerationDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "generationDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CoopAwareness, camParameters), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CamParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "camParameters" + }, +}; +static const ber_tlv_tag_t asn_DEF_CoopAwareness_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CoopAwareness_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* generationDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* camParameters */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CoopAwareness_specs_1 = { + sizeof(struct CoopAwareness), + offsetof(struct CoopAwareness, _asn_ctx), + asn_MAP_CoopAwareness_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CoopAwareness = { + "CoopAwareness", + "CoopAwareness", + &asn_OP_SEQUENCE, + asn_DEF_CoopAwareness_tags_1, + sizeof(asn_DEF_CoopAwareness_tags_1) + /sizeof(asn_DEF_CoopAwareness_tags_1[0]), /* 1 */ + asn_DEF_CoopAwareness_tags_1, /* Same as above */ + sizeof(asn_DEF_CoopAwareness_tags_1) + /sizeof(asn_DEF_CoopAwareness_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CoopAwareness_1, + 2, /* Elements count */ + &asn_SPC_CoopAwareness_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CpmManagementContainer.c b/vcits/cpm/src/CpmManagementContainer.c new file mode 100644 index 0000000..33821bf --- /dev/null +++ b/vcits/cpm/src/CpmManagementContainer.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CpmManagementContainer.h" + +#include "PerceivedObjectContainerSegmentInfo.h" +asn_TYPE_member_t asn_MBR_CpmManagementContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CpmManagementContainer, stationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationType" + }, + { ATF_POINTER, 1, offsetof(struct CpmManagementContainer, perceivedObjectContainerSegmentInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PerceivedObjectContainerSegmentInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "perceivedObjectContainerSegmentInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct CpmManagementContainer, referencePosition), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referencePosition" + }, +}; +static const int asn_MAP_CpmManagementContainer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_CpmManagementContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CpmManagementContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* perceivedObjectContainerSegmentInfo */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* referencePosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CpmManagementContainer_specs_1 = { + sizeof(struct CpmManagementContainer), + offsetof(struct CpmManagementContainer, _asn_ctx), + asn_MAP_CpmManagementContainer_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CpmManagementContainer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CpmManagementContainer = { + "CpmManagementContainer", + "CpmManagementContainer", + &asn_OP_SEQUENCE, + asn_DEF_CpmManagementContainer_tags_1, + sizeof(asn_DEF_CpmManagementContainer_tags_1) + /sizeof(asn_DEF_CpmManagementContainer_tags_1[0]), /* 1 */ + asn_DEF_CpmManagementContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_CpmManagementContainer_tags_1) + /sizeof(asn_DEF_CpmManagementContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CpmManagementContainer_1, + 3, /* Elements count */ + &asn_SPC_CpmManagementContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CpmParameters.c b/vcits/cpm/src/CpmParameters.c new file mode 100644 index 0000000..a7d5446 --- /dev/null +++ b/vcits/cpm/src/CpmParameters.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CpmParameters.h" + +#include "StationDataContainer.h" +#include "SensorInformationContainer.h" +#include "PerceivedObjectContainer.h" +#include "FreeSpaceAddendumContainer.h" +asn_TYPE_member_t asn_MBR_CpmParameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CpmParameters, managementContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CpmManagementContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "managementContainer" + }, + { ATF_POINTER, 4, offsetof(struct CpmParameters, stationDataContainer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_StationDataContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationDataContainer" + }, + { ATF_POINTER, 3, offsetof(struct CpmParameters, sensorInformationContainer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SensorInformationContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sensorInformationContainer" + }, + { ATF_POINTER, 2, offsetof(struct CpmParameters, perceivedObjectContainer), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PerceivedObjectContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "perceivedObjectContainer" + }, + { ATF_POINTER, 1, offsetof(struct CpmParameters, freeSpaceAddendumContainer), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreeSpaceAddendumContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freeSpaceAddendumContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct CpmParameters, numberOfPerceivedObjects), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NumberOfPerceivedObjects, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfPerceivedObjects" + }, +}; +static const int asn_MAP_CpmParameters_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_CpmParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CpmParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* managementContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* stationDataContainer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sensorInformationContainer */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* perceivedObjectContainer */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* freeSpaceAddendumContainer */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* numberOfPerceivedObjects */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CpmParameters_specs_1 = { + sizeof(struct CpmParameters), + offsetof(struct CpmParameters, _asn_ctx), + asn_MAP_CpmParameters_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_CpmParameters_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CpmParameters = { + "CpmParameters", + "CpmParameters", + &asn_OP_SEQUENCE, + asn_DEF_CpmParameters_tags_1, + sizeof(asn_DEF_CpmParameters_tags_1) + /sizeof(asn_DEF_CpmParameters_tags_1[0]), /* 1 */ + asn_DEF_CpmParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_CpmParameters_tags_1) + /sizeof(asn_DEF_CpmParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CpmParameters_1, + 6, /* Elements count */ + &asn_SPC_CpmParameters_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Curvature.c b/vcits/cpm/src/Curvature.c new file mode 100644 index 0000000..5e50f0c --- /dev/null +++ b/vcits/cpm/src/Curvature.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Curvature.h" + +asn_TYPE_member_t asn_MBR_Curvature_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Curvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Curvature_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* curvatureValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* curvatureConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Curvature_specs_1 = { + sizeof(struct Curvature), + offsetof(struct Curvature, _asn_ctx), + asn_MAP_Curvature_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Curvature = { + "Curvature", + "Curvature", + &asn_OP_SEQUENCE, + asn_DEF_Curvature_tags_1, + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + asn_DEF_Curvature_tags_1, /* Same as above */ + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Curvature_1, + 2, /* Elements count */ + &asn_SPC_Curvature_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CurvatureCalculationMode.c b/vcits/cpm/src/CurvatureCalculationMode.c new file mode 100644 index 0000000..a79cd7b --- /dev/null +++ b/vcits/cpm/src/CurvatureCalculationMode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CurvatureCalculationMode.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureCalculationMode_value2enum_1[] = { + { 0, 11, "yawRateUsed" }, + { 1, 14, "yawRateNotUsed" }, + { 2, 11, "unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CurvatureCalculationMode_enum2value_1[] = { + 2, /* unavailable(2) */ + 1, /* yawRateNotUsed(1) */ + 0 /* yawRateUsed(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CurvatureCalculationMode_specs_1 = { + asn_MAP_CurvatureCalculationMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureCalculationMode_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureCalculationMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode = { + "CurvatureCalculationMode", + "CurvatureCalculationMode", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureCalculationMode_tags_1, + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + asn_DEF_CurvatureCalculationMode_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureCalculationMode_constr_1, &asn_PER_type_CurvatureCalculationMode_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureCalculationMode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CurvatureConfidence.c b/vcits/cpm/src/CurvatureConfidence.c new file mode 100644 index 0000000..a219264 --- /dev/null +++ b/vcits/cpm/src/CurvatureConfidence.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CurvatureConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureConfidence_value2enum_1[] = { + { 0, 19, "onePerMeter-0-00002" }, + { 1, 18, "onePerMeter-0-0001" }, + { 2, 18, "onePerMeter-0-0005" }, + { 3, 17, "onePerMeter-0-002" }, + { 4, 16, "onePerMeter-0-01" }, + { 5, 15, "onePerMeter-0-1" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_CurvatureConfidence_enum2value_1[] = { + 0, /* onePerMeter-0-00002(0) */ + 1, /* onePerMeter-0-0001(1) */ + 2, /* onePerMeter-0-0005(2) */ + 3, /* onePerMeter-0-002(3) */ + 4, /* onePerMeter-0-01(4) */ + 5, /* onePerMeter-0-1(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1 = { + asn_MAP_CurvatureConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence = { + "CurvatureConfidence", + "CurvatureConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureConfidence_tags_1, + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + asn_DEF_CurvatureConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureConfidence_constr_1, &asn_PER_type_CurvatureConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/CurvatureValue.c b/vcits/cpm/src/CurvatureValue.c new file mode 100644 index 0000000..e0b877f --- /dev/null +++ b/vcits/cpm/src/CurvatureValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "CurvatureValue.h" + +int +CurvatureValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1023 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1023..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1023, 1023 } /* (-1023..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CurvatureValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureValue = { + "CurvatureValue", + "CurvatureValue", + &asn_OP_NativeInteger, + asn_DEF_CurvatureValue_tags_1, + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + asn_DEF_CurvatureValue_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureValue_constr_1, &asn_PER_type_CurvatureValue_constr_1, CurvatureValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DDateTime.c b/vcits/cpm/src/DDateTime.c new file mode 100644 index 0000000..86f4eed --- /dev/null +++ b/vcits/cpm/src/DDateTime.c @@ -0,0 +1,112 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DDateTime.h" + +asn_TYPE_member_t asn_MBR_DDateTime_1[] = { + { ATF_POINTER, 7, offsetof(struct DDateTime, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "year" + }, + { ATF_POINTER, 6, offsetof(struct DDateTime, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMonth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "month" + }, + { ATF_POINTER, 5, offsetof(struct DDateTime, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDay, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "day" + }, + { ATF_POINTER, 4, offsetof(struct DDateTime, hour), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DHour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hour" + }, + { ATF_POINTER, 3, offsetof(struct DDateTime, minute), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMinute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct DDateTime, second), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct DDateTime, offset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offset" + }, +}; +static const int asn_MAP_DDateTime_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_DDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DDateTime_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* day */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hour */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* offset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1 = { + sizeof(struct DDateTime), + offsetof(struct DDateTime, _asn_ctx), + asn_MAP_DDateTime_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_DDateTime_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DDateTime = { + "DDateTime", + "DDateTime", + &asn_OP_SEQUENCE, + asn_DEF_DDateTime_tags_1, + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + asn_DEF_DDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DDateTime_1, + 7, /* Elements count */ + &asn_SPC_DDateTime_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/DDay.c b/vcits/cpm/src/DDay.c new file mode 100644 index 0000000..5fdde33 --- /dev/null +++ b/vcits/cpm/src/DDay.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DDay.h" + +int +DDay_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DDay_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_DDay_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DDay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DDay = { + "DDay", + "DDay", + &asn_OP_NativeInteger, + asn_DEF_DDay_tags_1, + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + asn_DEF_DDay_tags_1, /* Same as above */ + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + { &asn_OER_type_DDay_constr_1, &asn_PER_type_DDay_constr_1, DDay_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DHour.c b/vcits/cpm/src/DHour.c new file mode 100644 index 0000000..7fabcbe --- /dev/null +++ b/vcits/cpm/src/DHour.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DHour.h" + +int +DHour_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DHour_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_DHour_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DHour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DHour = { + "DHour", + "DHour", + &asn_OP_NativeInteger, + asn_DEF_DHour_tags_1, + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + asn_DEF_DHour_tags_1, /* Same as above */ + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + { &asn_OER_type_DHour_constr_1, &asn_PER_type_DHour_constr_1, DHour_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DMinute.c b/vcits/cpm/src/DMinute.c new file mode 100644 index 0000000..95b55b3 --- /dev/null +++ b/vcits/cpm/src/DMinute.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DMinute.h" + +int +DMinute_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 60)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DMinute_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..60) */, + -1}; +asn_per_constraints_t asn_PER_type_DMinute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 60 } /* (0..60) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DMinute_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMinute = { + "DMinute", + "DMinute", + &asn_OP_NativeInteger, + asn_DEF_DMinute_tags_1, + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + asn_DEF_DMinute_tags_1, /* Same as above */ + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + { &asn_OER_type_DMinute_constr_1, &asn_PER_type_DMinute_constr_1, DMinute_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DMonth.c b/vcits/cpm/src/DMonth.c new file mode 100644 index 0000000..b11a3f9 --- /dev/null +++ b/vcits/cpm/src/DMonth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DMonth.h" + +int +DMonth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DMonth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..12) */, + -1}; +asn_per_constraints_t asn_PER_type_DMonth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DMonth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMonth = { + "DMonth", + "DMonth", + &asn_OP_NativeInteger, + asn_DEF_DMonth_tags_1, + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + asn_DEF_DMonth_tags_1, /* Same as above */ + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + { &asn_OER_type_DMonth_constr_1, &asn_PER_type_DMonth_constr_1, DMonth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DOffset.c b/vcits/cpm/src/DOffset.c new file mode 100644 index 0000000..2a6d7c2 --- /dev/null +++ b/vcits/cpm/src/DOffset.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DOffset.h" + +int +DOffset_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -840 && value <= 840)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DOffset_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-840..840) */, + -1}; +asn_per_constraints_t asn_PER_type_DOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -840, 840 } /* (-840..840) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DOffset = { + "DOffset", + "DOffset", + &asn_OP_NativeInteger, + asn_DEF_DOffset_tags_1, + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + asn_DEF_DOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + { &asn_OER_type_DOffset_constr_1, &asn_PER_type_DOffset_constr_1, DOffset_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DSRCmsgID.c b/vcits/cpm/src/DSRCmsgID.c new file mode 100644 index 0000000..c3cb60c --- /dev/null +++ b/vcits/cpm/src/DSRCmsgID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DSRCmsgID.h" + +int +DSRCmsgID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DSRCmsgID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSRCmsgID = { + "DSRCmsgID", + "DSRCmsgID", + &asn_OP_NativeInteger, + asn_DEF_DSRCmsgID_tags_1, + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + asn_DEF_DSRCmsgID_tags_1, /* Same as above */ + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + { &asn_OER_type_DSRCmsgID_constr_1, &asn_PER_type_DSRCmsgID_constr_1, DSRCmsgID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DSecond.c b/vcits/cpm/src/DSecond.c new file mode 100644 index 0000000..35afcb4 --- /dev/null +++ b/vcits/cpm/src/DSecond.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DSecond.h" + +int +DSecond_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DSecond_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_DSecond_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSecond = { + "DSecond", + "DSecond", + &asn_OP_NativeInteger, + asn_DEF_DSecond_tags_1, + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + asn_DEF_DSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + { &asn_OER_type_DSecond_constr_1, &asn_PER_type_DSecond_constr_1, DSecond_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DYear.c b/vcits/cpm/src/DYear.c new file mode 100644 index 0000000..7142343 --- /dev/null +++ b/vcits/cpm/src/DYear.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DYear.h" + +int +DYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DYear_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_DYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DYear = { + "DYear", + "DYear", + &asn_OP_NativeInteger, + asn_DEF_DYear_tags_1, + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + asn_DEF_DYear_tags_1, /* Same as above */ + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + { &asn_OER_type_DYear_constr_1, &asn_PER_type_DYear_constr_1, DYear_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DangerousEndOfQueueSubCauseCode.c b/vcits/cpm/src/DangerousEndOfQueueSubCauseCode.c new file mode 100644 index 0000000..6d3635c --- /dev/null +++ b/vcits/cpm/src/DangerousEndOfQueueSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DangerousEndOfQueueSubCauseCode.h" + +int +DangerousEndOfQueueSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode = { + "DangerousEndOfQueueSubCauseCode", + "DangerousEndOfQueueSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1, &asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1, DangerousEndOfQueueSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DangerousGoodsBasic.c b/vcits/cpm/src/DangerousGoodsBasic.c new file mode 100644 index 0000000..c439d52 --- /dev/null +++ b/vcits/cpm/src/DangerousGoodsBasic.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DangerousGoodsBasic.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DangerousGoodsBasic_value2enum_1[] = { + { 0, 11, "explosives1" }, + { 1, 11, "explosives2" }, + { 2, 11, "explosives3" }, + { 3, 11, "explosives4" }, + { 4, 11, "explosives5" }, + { 5, 11, "explosives6" }, + { 6, 14, "flammableGases" }, + { 7, 17, "nonFlammableGases" }, + { 8, 10, "toxicGases" }, + { 9, 16, "flammableLiquids" }, + { 10, 15, "flammableSolids" }, + { 11, 39, "substancesLiableToSpontaneousCombustion" }, + { 12, 52, "substancesEmittingFlammableGasesUponContactWithWater" }, + { 13, 19, "oxidizingSubstances" }, + { 14, 16, "organicPeroxides" }, + { 15, 15, "toxicSubstances" }, + { 16, 20, "infectiousSubstances" }, + { 17, 19, "radioactiveMaterial" }, + { 18, 19, "corrosiveSubstances" }, + { 19, 32, "miscellaneousDangerousSubstances" } +}; +static const unsigned int asn_MAP_DangerousGoodsBasic_enum2value_1[] = { + 18, /* corrosiveSubstances(18) */ + 0, /* explosives1(0) */ + 1, /* explosives2(1) */ + 2, /* explosives3(2) */ + 3, /* explosives4(3) */ + 4, /* explosives5(4) */ + 5, /* explosives6(5) */ + 6, /* flammableGases(6) */ + 9, /* flammableLiquids(9) */ + 10, /* flammableSolids(10) */ + 16, /* infectiousSubstances(16) */ + 19, /* miscellaneousDangerousSubstances(19) */ + 7, /* nonFlammableGases(7) */ + 14, /* organicPeroxides(14) */ + 13, /* oxidizingSubstances(13) */ + 17, /* radioactiveMaterial(17) */ + 12, /* substancesEmittingFlammableGasesUponContactWithWater(12) */ + 11, /* substancesLiableToSpontaneousCombustion(11) */ + 8, /* toxicGases(8) */ + 15 /* toxicSubstances(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1 = { + asn_MAP_DangerousGoodsBasic_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DangerousGoodsBasic_enum2value_1, /* N => "tag"; sorted by N */ + 20, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic = { + "DangerousGoodsBasic", + "DangerousGoodsBasic", + &asn_OP_NativeEnumerated, + asn_DEF_DangerousGoodsBasic_tags_1, + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousGoodsBasic_constr_1, &asn_PER_type_DangerousGoodsBasic_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DangerousGoodsBasic_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/DangerousGoodsContainer.c b/vcits/cpm/src/DangerousGoodsContainer.c new file mode 100644 index 0000000..225bb36 --- /dev/null +++ b/vcits/cpm/src/DangerousGoodsContainer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DangerousGoodsContainer.h" + +asn_TYPE_member_t asn_MBR_DangerousGoodsContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsContainer, dangerousGoodsBasic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsBasic, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dangerousGoodsBasic" + }, +}; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DangerousGoodsContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dangerousGoodsBasic */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DangerousGoodsContainer_specs_1 = { + sizeof(struct DangerousGoodsContainer), + offsetof(struct DangerousGoodsContainer, _asn_ctx), + asn_MAP_DangerousGoodsContainer_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsContainer = { + "DangerousGoodsContainer", + "DangerousGoodsContainer", + &asn_OP_SEQUENCE, + asn_DEF_DangerousGoodsContainer_tags_1, + sizeof(asn_DEF_DangerousGoodsContainer_tags_1) + /sizeof(asn_DEF_DangerousGoodsContainer_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsContainer_tags_1) + /sizeof(asn_DEF_DangerousGoodsContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DangerousGoodsContainer_1, + 1, /* Elements count */ + &asn_SPC_DangerousGoodsContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/DangerousGoodsExtended.c b/vcits/cpm/src/DangerousGoodsExtended.c new file mode 100644 index 0000000..b149395 --- /dev/null +++ b/vcits/cpm/src/DangerousGoodsExtended.c @@ -0,0 +1,243 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DangerousGoodsExtended.h" + +static int check_permitted_alphabet_7(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_unNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 9999)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_emergencyActionCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 24) + && !check_permitted_alphabet_7(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_companyName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const UTF8String_t *st = (const UTF8String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = UTF8String_length(st); + if((ssize_t)size < 0) { + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((size >= 1 && size <= 24)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_unNumber_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..9999) */, + -1}; +static asn_per_constraints_t asn_PER_memb_unNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 9999 } /* (0..9999) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..24)) */}; +static asn_per_constraints_t asn_PER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 5, 5, 1, 24 } /* (SIZE(1..24)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_companyName_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_companyName_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DangerousGoodsExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsBasic, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dangerousGoodsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, unNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_unNumber_constr_3, &asn_PER_memb_unNumber_constr_3, memb_unNumber_constraint_1 }, + 0, 0, /* No default value */ + "unNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, elevatedTemperature), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevatedTemperature" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, tunnelsRestricted), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tunnelsRestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, limitedQuantity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "limitedQuantity" + }, + { ATF_POINTER, 3, offsetof(struct DangerousGoodsExtended, emergencyActionCode), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_emergencyActionCode_constr_7, &asn_PER_memb_emergencyActionCode_constr_7, memb_emergencyActionCode_constraint_1 }, + 0, 0, /* No default value */ + "emergencyActionCode" + }, + { ATF_POINTER, 2, offsetof(struct DangerousGoodsExtended, phoneNumber), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhoneNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phoneNumber" + }, + { ATF_POINTER, 1, offsetof(struct DangerousGoodsExtended, companyName), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { &asn_OER_memb_companyName_constr_9, &asn_PER_memb_companyName_constr_9, memb_companyName_constraint_1 }, + 0, 0, /* No default value */ + "companyName" + }, +}; +static const int asn_MAP_DangerousGoodsExtended_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DangerousGoodsExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dangerousGoodsType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* unNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevatedTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tunnelsRestricted */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* limitedQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyActionCode */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* phoneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* companyName */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DangerousGoodsExtended_specs_1 = { + sizeof(struct DangerousGoodsExtended), + offsetof(struct DangerousGoodsExtended, _asn_ctx), + asn_MAP_DangerousGoodsExtended_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_DangerousGoodsExtended_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended = { + "DangerousGoodsExtended", + "DangerousGoodsExtended", + &asn_OP_SEQUENCE, + asn_DEF_DangerousGoodsExtended_tags_1, + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DangerousGoodsExtended_1, + 8, /* Elements count */ + &asn_SPC_DangerousGoodsExtended_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/DangerousSituationSubCauseCode.c b/vcits/cpm/src/DangerousSituationSubCauseCode.c new file mode 100644 index 0000000..6524c30 --- /dev/null +++ b/vcits/cpm/src/DangerousSituationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DangerousSituationSubCauseCode.h" + +int +DangerousSituationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousSituationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode = { + "DangerousSituationSubCauseCode", + "DangerousSituationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousSituationSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousSituationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousSituationSubCauseCode_constr_1, &asn_PER_type_DangerousSituationSubCauseCode_constr_1, DangerousSituationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DataParameters.c b/vcits/cpm/src/DataParameters.c new file mode 100644 index 0000000..08f11e1 --- /dev/null +++ b/vcits/cpm/src/DataParameters.c @@ -0,0 +1,274 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DataParameters.h" + +static int check_permitted_alphabet_2(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_3(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_4(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_5(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_processMethod_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_2(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_processAgency_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_3(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_lastCheckedDate_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_4(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_geoidUsed_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_5(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_processMethod_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_processMethod_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_processAgency_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_processAgency_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +asn_TYPE_member_t asn_MBR_DataParameters_1[] = { + { ATF_POINTER, 4, offsetof(struct DataParameters, processMethod), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_processMethod_constr_2, &asn_PER_memb_processMethod_constr_2, memb_processMethod_constraint_1 }, + 0, 0, /* No default value */ + "processMethod" + }, + { ATF_POINTER, 3, offsetof(struct DataParameters, processAgency), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_processAgency_constr_3, &asn_PER_memb_processAgency_constr_3, memb_processAgency_constraint_1 }, + 0, 0, /* No default value */ + "processAgency" + }, + { ATF_POINTER, 2, offsetof(struct DataParameters, lastCheckedDate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_lastCheckedDate_constr_4, &asn_PER_memb_lastCheckedDate_constr_4, memb_lastCheckedDate_constraint_1 }, + 0, 0, /* No default value */ + "lastCheckedDate" + }, + { ATF_POINTER, 1, offsetof(struct DataParameters, geoidUsed), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_geoidUsed_constr_5, &asn_PER_memb_geoidUsed_constr_5, memb_geoidUsed_constraint_1 }, + 0, 0, /* No default value */ + "geoidUsed" + }, +}; +static const int asn_MAP_DataParameters_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_DataParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DataParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* processMethod */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* processAgency */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lastCheckedDate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* geoidUsed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1 = { + sizeof(struct DataParameters), + offsetof(struct DataParameters, _asn_ctx), + asn_MAP_DataParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DataParameters_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DataParameters = { + "DataParameters", + "DataParameters", + &asn_OP_SEQUENCE, + asn_DEF_DataParameters_tags_1, + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + asn_DEF_DataParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DataParameters_1, + 4, /* Elements count */ + &asn_SPC_DataParameters_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/DeltaAltitude.c b/vcits/cpm/src/DeltaAltitude.c new file mode 100644 index 0000000..95cffc3 --- /dev/null +++ b/vcits/cpm/src/DeltaAltitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DeltaAltitude.h" + +int +DeltaAltitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -12700 && value <= 12800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-12700..12800) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, -12700, 12800 } /* (-12700..12800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAltitude = { + "DeltaAltitude", + "DeltaAltitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaAltitude_tags_1, + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAltitude_constr_1, &asn_PER_type_DeltaAltitude_constr_1, DeltaAltitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DeltaAngle.c b/vcits/cpm/src/DeltaAngle.c new file mode 100644 index 0000000..99c3702 --- /dev/null +++ b/vcits/cpm/src/DeltaAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DeltaAngle.h" + +int +DeltaAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -150 && value <= 150)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-150..150) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -150, 150 } /* (-150..150) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAngle = { + "DeltaAngle", + "DeltaAngle", + &asn_OP_NativeInteger, + asn_DEF_DeltaAngle_tags_1, + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + asn_DEF_DeltaAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAngle_constr_1, &asn_PER_type_DeltaAngle_constr_1, DeltaAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DeltaLatitude.c b/vcits/cpm/src/DeltaLatitude.c new file mode 100644 index 0000000..fda9505 --- /dev/null +++ b/vcits/cpm/src/DeltaLatitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DeltaLatitude.h" + +int +DeltaLatitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLatitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLatitude = { + "DeltaLatitude", + "DeltaLatitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLatitude_tags_1, + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLatitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLatitude_constr_1, &asn_PER_type_DeltaLatitude_constr_1, DeltaLatitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DeltaLongitude.c b/vcits/cpm/src/DeltaLongitude.c new file mode 100644 index 0000000..0f6ee04 --- /dev/null +++ b/vcits/cpm/src/DeltaLongitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DeltaLongitude.h" + +int +DeltaLongitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLongitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLongitude = { + "DeltaLongitude", + "DeltaLongitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLongitude_tags_1, + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLongitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLongitude_constr_1, &asn_PER_type_DeltaLongitude_constr_1, DeltaLongitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DeltaReferencePosition.c b/vcits/cpm/src/DeltaReferencePosition.c new file mode 100644 index 0000000..c80613c --- /dev/null +++ b/vcits/cpm/src/DeltaReferencePosition.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DeltaReferencePosition.h" + +asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLatitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLongitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLongitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaAltitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_DeltaReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DeltaReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* deltaAltitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1 = { + sizeof(struct DeltaReferencePosition), + offsetof(struct DeltaReferencePosition, _asn_ctx), + asn_MAP_DeltaReferencePosition_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition = { + "DeltaReferencePosition", + "DeltaReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_DeltaReferencePosition_tags_1, + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_DeltaReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DeltaReferencePosition_1, + 3, /* Elements count */ + &asn_SPC_DeltaReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/DeltaTime.c b/vcits/cpm/src/DeltaTime.c new file mode 100644 index 0000000..5a2ce23 --- /dev/null +++ b/vcits/cpm/src/DeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DeltaTime.h" + +int +DeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -122 && value <= 121)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaTime_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-122..121) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -122, 121 } /* (-122..121) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaTime = { + "DeltaTime", + "DeltaTime", + &asn_OP_NativeInteger, + asn_DEF_DeltaTime_tags_1, + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + asn_DEF_DeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaTime_constr_1, &asn_PER_type_DeltaTime_constr_1, DeltaTime_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DescriptiveName.c b/vcits/cpm/src/DescriptiveName.c new file mode 100644 index 0000000..59a89e7 --- /dev/null +++ b/vcits/cpm/src/DescriptiveName.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DescriptiveName.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +DescriptiveName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 63) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_DescriptiveName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DescriptiveName = { + "DescriptiveName", + "DescriptiveName", + &asn_OP_IA5String, + asn_DEF_DescriptiveName_tags_1, + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + asn_DEF_DescriptiveName_tags_1, /* Same as above */ + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + { &asn_OER_type_DescriptiveName_constr_1, &asn_PER_type_DescriptiveName_constr_1, DescriptiveName_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DetectionArea.c b/vcits/cpm/src/DetectionArea.c new file mode 100644 index 0000000..c849a62 --- /dev/null +++ b/vcits/cpm/src/DetectionArea.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DetectionArea.h" + +static asn_oer_constraints_t asn_OER_type_DetectionArea_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DetectionArea_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_DetectionArea_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DetectionArea, choice.vehicleSensor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleSensor, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleSensor" + }, + { ATF_NOFLAGS, 0, offsetof(struct DetectionArea, choice.stationarySensorRadial), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AreaRadial, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationarySensorRadial" + }, + { ATF_NOFLAGS, 0, offsetof(struct DetectionArea, choice.stationarySensorPolygon), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AreaPolygon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationarySensorPolygon" + }, + { ATF_NOFLAGS, 0, offsetof(struct DetectionArea, choice.stationarySensorCircular), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AreaCircular, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationarySensorCircular" + }, + { ATF_NOFLAGS, 0, offsetof(struct DetectionArea, choice.stationarySensorEllipse), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AreaEllipse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationarySensorEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct DetectionArea, choice.stationarySensorRectangle), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AreaRectangle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationarySensorRectangle" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_DetectionArea_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleSensor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* stationarySensorRadial */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* stationarySensorPolygon */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* stationarySensorCircular */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* stationarySensorEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* stationarySensorRectangle */ +}; +asn_CHOICE_specifics_t asn_SPC_DetectionArea_specs_1 = { + sizeof(struct DetectionArea), + offsetof(struct DetectionArea, _asn_ctx), + offsetof(struct DetectionArea, present), + sizeof(((struct DetectionArea *)0)->present), + asn_MAP_DetectionArea_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + 6 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_DetectionArea = { + "DetectionArea", + "DetectionArea", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_DetectionArea_constr_1, &asn_PER_type_DetectionArea_constr_1, CHOICE_constraint }, + asn_MBR_DetectionArea_1, + 6, /* Elements count */ + &asn_SPC_DetectionArea_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/DigitalMap.c b/vcits/cpm/src/DigitalMap.c new file mode 100644 index 0000000..145c048 --- /dev/null +++ b/vcits/cpm/src/DigitalMap.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DigitalMap.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_DigitalMap_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_DigitalMap_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DigitalMap_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DigitalMap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DigitalMap_specs_1 = { + sizeof(struct DigitalMap), + offsetof(struct DigitalMap, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DigitalMap = { + "DigitalMap", + "DigitalMap", + &asn_OP_SEQUENCE_OF, + asn_DEF_DigitalMap_tags_1, + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + asn_DEF_DigitalMap_tags_1, /* Same as above */ + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + { &asn_OER_type_DigitalMap_constr_1, &asn_PER_type_DigitalMap_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DigitalMap_1, + 1, /* Single element */ + &asn_SPC_DigitalMap_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/DistanceConfidence.c b/vcits/cpm/src/DistanceConfidence.c new file mode 100644 index 0000000..941b942 --- /dev/null +++ b/vcits/cpm/src/DistanceConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DistanceConfidence.h" + +int +DistanceConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 102)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DistanceConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..102) */, + -1}; +asn_per_constraints_t asn_PER_type_DistanceConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 102 } /* (0..102) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DistanceConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DistanceConfidence = { + "DistanceConfidence", + "DistanceConfidence", + &asn_OP_NativeInteger, + asn_DEF_DistanceConfidence_tags_1, + sizeof(asn_DEF_DistanceConfidence_tags_1) + /sizeof(asn_DEF_DistanceConfidence_tags_1[0]), /* 1 */ + asn_DEF_DistanceConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_DistanceConfidence_tags_1) + /sizeof(asn_DEF_DistanceConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_DistanceConfidence_constr_1, &asn_PER_type_DistanceConfidence_constr_1, DistanceConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DistanceValue.c b/vcits/cpm/src/DistanceValue.c new file mode 100644 index 0000000..08254f5 --- /dev/null +++ b/vcits/cpm/src/DistanceValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DistanceValue.h" + +int +DistanceValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -132768 && value <= 132767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DistanceValue_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-132768..132767) */, + -1}; +asn_per_constraints_t asn_PER_type_DistanceValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 19, -1, -132768, 132767 } /* (-132768..132767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DistanceValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DistanceValue = { + "DistanceValue", + "DistanceValue", + &asn_OP_NativeInteger, + asn_DEF_DistanceValue_tags_1, + sizeof(asn_DEF_DistanceValue_tags_1) + /sizeof(asn_DEF_DistanceValue_tags_1[0]), /* 1 */ + asn_DEF_DistanceValue_tags_1, /* Same as above */ + sizeof(asn_DEF_DistanceValue_tags_1) + /sizeof(asn_DEF_DistanceValue_tags_1[0]), /* 1 */ + { &asn_OER_type_DistanceValue_constr_1, &asn_PER_type_DistanceValue_constr_1, DistanceValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DriveDirection.c b/vcits/cpm/src/DriveDirection.c new file mode 100644 index 0000000..eabd559 --- /dev/null +++ b/vcits/cpm/src/DriveDirection.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DriveDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DriveDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DriveDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DriveDirection_value2enum_1[] = { + { 0, 7, "forward" }, + { 1, 8, "backward" }, + { 2, 11, "unavailable" } +}; +static const unsigned int asn_MAP_DriveDirection_enum2value_1[] = { + 1, /* backward(1) */ + 0, /* forward(0) */ + 2 /* unavailable(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DriveDirection_specs_1 = { + asn_MAP_DriveDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DriveDirection_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DriveDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DriveDirection = { + "DriveDirection", + "DriveDirection", + &asn_OP_NativeEnumerated, + asn_DEF_DriveDirection_tags_1, + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + asn_DEF_DriveDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_DriveDirection_constr_1, &asn_PER_type_DriveDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DriveDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/DrivenLineOffsetLg.c b/vcits/cpm/src/DrivenLineOffsetLg.c new file mode 100644 index 0000000..9357059 --- /dev/null +++ b/vcits/cpm/src/DrivenLineOffsetLg.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DrivenLineOffsetLg.h" + +int +DrivenLineOffsetLg_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32767 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32767..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32767, 32767 } /* (-32767..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetLg_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg = { + "DrivenLineOffsetLg", + "DrivenLineOffsetLg", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetLg_tags_1, + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetLg_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivenLineOffsetLg_constr_1, &asn_PER_type_DrivenLineOffsetLg_constr_1, DrivenLineOffsetLg_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DrivenLineOffsetSm.c b/vcits/cpm/src/DrivenLineOffsetSm.c new file mode 100644 index 0000000..6bc1cdf --- /dev/null +++ b/vcits/cpm/src/DrivenLineOffsetSm.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DrivenLineOffsetSm.h" + +int +DrivenLineOffsetSm_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2047 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2047..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2047, 2047 } /* (-2047..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetSm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm = { + "DrivenLineOffsetSm", + "DrivenLineOffsetSm", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetSm_tags_1, + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetSm_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivenLineOffsetSm_constr_1, &asn_PER_type_DrivenLineOffsetSm_constr_1, DrivenLineOffsetSm_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/DrivingLaneStatus.c b/vcits/cpm/src/DrivingLaneStatus.c new file mode 100644 index 0000000..4c412d3 --- /dev/null +++ b/vcits/cpm/src/DrivingLaneStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DrivingLaneStatus.h" + +int +DrivingLaneStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size >= 1 && size <= 13)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..13)) */}; +asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 13 } /* (SIZE(1..13)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivingLaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus = { + "DrivingLaneStatus", + "DrivingLaneStatus", + &asn_OP_BIT_STRING, + asn_DEF_DrivingLaneStatus_tags_1, + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + asn_DEF_DrivingLaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivingLaneStatus_constr_1, &asn_PER_type_DrivingLaneStatus_constr_1, DrivingLaneStatus_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/DynamicStatus.c b/vcits/cpm/src/DynamicStatus.c new file mode 100644 index 0000000..f94916a --- /dev/null +++ b/vcits/cpm/src/DynamicStatus.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "DynamicStatus.h" + +int +DynamicStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DynamicStatus_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..2) */, + -1}; +asn_per_constraints_t asn_PER_type_DynamicStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DynamicStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DynamicStatus = { + "DynamicStatus", + "DynamicStatus", + &asn_OP_NativeInteger, + asn_DEF_DynamicStatus_tags_1, + sizeof(asn_DEF_DynamicStatus_tags_1) + /sizeof(asn_DEF_DynamicStatus_tags_1[0]), /* 1 */ + asn_DEF_DynamicStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_DynamicStatus_tags_1) + /sizeof(asn_DEF_DynamicStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_DynamicStatus_constr_1, &asn_PER_type_DynamicStatus_constr_1, DynamicStatus_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Elevation.c b/vcits/cpm/src/Elevation.c new file mode 100644 index 0000000..334cf62 --- /dev/null +++ b/vcits/cpm/src/Elevation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Elevation.h" + +int +Elevation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096 && value <= 61439)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Elevation_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-4096..61439) */, + -1}; +asn_per_constraints_t asn_PER_type_Elevation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -4096, 61439 } /* (-4096..61439) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Elevation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Elevation = { + "Elevation", + "Elevation", + &asn_OP_NativeInteger, + asn_DEF_Elevation_tags_1, + sizeof(asn_DEF_Elevation_tags_1) + /sizeof(asn_DEF_Elevation_tags_1[0]), /* 1 */ + asn_DEF_Elevation_tags_1, /* Same as above */ + sizeof(asn_DEF_Elevation_tags_1) + /sizeof(asn_DEF_Elevation_tags_1[0]), /* 1 */ + { &asn_OER_type_Elevation_constr_1, &asn_PER_type_Elevation_constr_1, Elevation_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ElevationConfidence.c b/vcits/cpm/src/ElevationConfidence.c new file mode 100644 index 0000000..08243b2 --- /dev/null +++ b/vcits/cpm/src/ElevationConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ElevationConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ElevationConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 11, "elev-500-00" }, + { 2, 11, "elev-200-00" }, + { 3, 11, "elev-100-00" }, + { 4, 11, "elev-050-00" }, + { 5, 11, "elev-020-00" }, + { 6, 11, "elev-010-00" }, + { 7, 11, "elev-005-00" }, + { 8, 11, "elev-002-00" }, + { 9, 11, "elev-001-00" }, + { 10, 11, "elev-000-50" }, + { 11, 11, "elev-000-20" }, + { 12, 11, "elev-000-10" }, + { 13, 11, "elev-000-05" }, + { 14, 11, "elev-000-02" }, + { 15, 11, "elev-000-01" } +}; +static const unsigned int asn_MAP_ElevationConfidence_enum2value_1[] = { + 15, /* elev-000-01(15) */ + 14, /* elev-000-02(14) */ + 13, /* elev-000-05(13) */ + 12, /* elev-000-10(12) */ + 11, /* elev-000-20(11) */ + 10, /* elev-000-50(10) */ + 9, /* elev-001-00(9) */ + 8, /* elev-002-00(8) */ + 7, /* elev-005-00(7) */ + 6, /* elev-010-00(6) */ + 5, /* elev-020-00(5) */ + 4, /* elev-050-00(4) */ + 3, /* elev-100-00(3) */ + 2, /* elev-200-00(2) */ + 1, /* elev-500-00(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1 = { + asn_MAP_ElevationConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ElevationConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ElevationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ElevationConfidence = { + "ElevationConfidence", + "ElevationConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ElevationConfidence_tags_1, + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + asn_DEF_ElevationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ElevationConfidence_constr_1, &asn_PER_type_ElevationConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ElevationConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/EmbarkationStatus.c b/vcits/cpm/src/EmbarkationStatus.c new file mode 100644 index 0000000..c438b76 --- /dev/null +++ b/vcits/cpm/src/EmbarkationStatus.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "EmbarkationStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_EmbarkationStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus = { + "EmbarkationStatus", + "EmbarkationStatus", + &asn_OP_BOOLEAN, + asn_DEF_EmbarkationStatus_tags_1, + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + asn_DEF_EmbarkationStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/EmergencyContainer.c b/vcits/cpm/src/EmergencyContainer.c new file mode 100644 index 0000000..9a302af --- /dev/null +++ b/vcits/cpm/src/EmergencyContainer.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "EmergencyContainer.h" + +#include "CauseCode.h" +asn_TYPE_member_t asn_MBR_EmergencyContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EmergencyContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LightBarSirenInUse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, + { ATF_POINTER, 2, offsetof(struct EmergencyContainer, incidentIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "incidentIndication" + }, + { ATF_POINTER, 1, offsetof(struct EmergencyContainer, emergencyPriority), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmergencyPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyPriority" + }, +}; +static const int asn_MAP_EmergencyContainer_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_EmergencyContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EmergencyContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lightBarSirenInUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* incidentIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* emergencyPriority */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EmergencyContainer_specs_1 = { + sizeof(struct EmergencyContainer), + offsetof(struct EmergencyContainer, _asn_ctx), + asn_MAP_EmergencyContainer_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_EmergencyContainer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyContainer = { + "EmergencyContainer", + "EmergencyContainer", + &asn_OP_SEQUENCE, + asn_DEF_EmergencyContainer_tags_1, + sizeof(asn_DEF_EmergencyContainer_tags_1) + /sizeof(asn_DEF_EmergencyContainer_tags_1[0]), /* 1 */ + asn_DEF_EmergencyContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyContainer_tags_1) + /sizeof(asn_DEF_EmergencyContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EmergencyContainer_1, + 3, /* Elements count */ + &asn_SPC_EmergencyContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/EmergencyPriority.c b/vcits/cpm/src/EmergencyPriority.c new file mode 100644 index 0000000..d3391ff --- /dev/null +++ b/vcits/cpm/src/EmergencyPriority.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "EmergencyPriority.h" + +int +EmergencyPriority_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +asn_per_constraints_t asn_PER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyPriority = { + "EmergencyPriority", + "EmergencyPriority", + &asn_OP_BIT_STRING, + asn_DEF_EmergencyPriority_tags_1, + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + asn_DEF_EmergencyPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyPriority_constr_1, &asn_PER_type_EmergencyPriority_constr_1, EmergencyPriority_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/EmergencyVehicleApproachingSubCauseCode.c b/vcits/cpm/src/EmergencyVehicleApproachingSubCauseCode.c new file mode 100644 index 0000000..8083197 --- /dev/null +++ b/vcits/cpm/src/EmergencyVehicleApproachingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "EmergencyVehicleApproachingSubCauseCode.h" + +int +EmergencyVehicleApproachingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode = { + "EmergencyVehicleApproachingSubCauseCode", + "EmergencyVehicleApproachingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, &asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, EmergencyVehicleApproachingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/EmissionType.c b/vcits/cpm/src/EmissionType.c new file mode 100644 index 0000000..0915d8c --- /dev/null +++ b/vcits/cpm/src/EmissionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "EmissionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmissionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EmissionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EmissionType_value2enum_1[] = { + { 0, 5, "euro1" }, + { 1, 5, "euro2" }, + { 2, 5, "euro3" }, + { 3, 5, "euro4" }, + { 4, 5, "euro5" }, + { 5, 5, "euro6" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_EmissionType_enum2value_1[] = { + 0, /* euro1(0) */ + 1, /* euro2(1) */ + 2, /* euro3(2) */ + 3, /* euro4(3) */ + 4, /* euro5(4) */ + 5 /* euro6(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1 = { + asn_MAP_EmissionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EmissionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EmissionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmissionType = { + "EmissionType", + "EmissionType", + &asn_OP_NativeEnumerated, + asn_DEF_EmissionType_tags_1, + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + asn_DEF_EmissionType_tags_1, /* Same as above */ + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + { &asn_OER_type_EmissionType_constr_1, &asn_PER_type_EmissionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EmissionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/EnabledLaneList.c b/vcits/cpm/src/EnabledLaneList.c new file mode 100644 index 0000000..26a8b51 --- /dev/null +++ b/vcits/cpm/src/EnabledLaneList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "EnabledLaneList.h" + +static asn_oer_constraints_t asn_OER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_EnabledLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EnabledLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1 = { + sizeof(struct EnabledLaneList), + offsetof(struct EnabledLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EnabledLaneList = { + "EnabledLaneList", + "EnabledLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EnabledLaneList_tags_1, + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + asn_DEF_EnabledLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_EnabledLaneList_constr_1, &asn_PER_type_EnabledLaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EnabledLaneList_1, + 1, /* Single element */ + &asn_SPC_EnabledLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/EnergyStorageType.c b/vcits/cpm/src/EnergyStorageType.c new file mode 100644 index 0000000..ebb7d54 --- /dev/null +++ b/vcits/cpm/src/EnergyStorageType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "EnergyStorageType.h" + +int +EnergyStorageType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EnergyStorageType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EnergyStorageType = { + "EnergyStorageType", + "EnergyStorageType", + &asn_OP_BIT_STRING, + asn_DEF_EnergyStorageType_tags_1, + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + asn_DEF_EnergyStorageType_tags_1, /* Same as above */ + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + { &asn_OER_type_EnergyStorageType_constr_1, &asn_PER_type_EnergyStorageType_constr_1, EnergyStorageType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/EuVehicleCategoryCode.c b/vcits/cpm/src/EuVehicleCategoryCode.c new file mode 100644 index 0000000..d8dd3eb --- /dev/null +++ b/vcits/cpm/src/EuVehicleCategoryCode.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "EuVehicleCategoryCode.h" + +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EuVehicleCategoryCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryL" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryM" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryN" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryO" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehilcleCategoryT), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehilcleCategoryT" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehilcleCategoryG), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehilcleCategoryG" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_EuVehicleCategoryCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* euVehicleCategoryL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* euVehicleCategoryM */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* euVehicleCategoryN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* euVehicleCategoryO */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* euVehilcleCategoryT */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* euVehilcleCategoryG */ +}; +static asn_CHOICE_specifics_t asn_SPC_EuVehicleCategoryCode_specs_1 = { + sizeof(struct EuVehicleCategoryCode), + offsetof(struct EuVehicleCategoryCode, _asn_ctx), + offsetof(struct EuVehicleCategoryCode, present), + sizeof(((struct EuVehicleCategoryCode *)0)->present), + asn_MAP_EuVehicleCategoryCode_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryCode = { + "EuVehicleCategoryCode", + "EuVehicleCategoryCode", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_EuVehicleCategoryCode_constr_1, &asn_PER_type_EuVehicleCategoryCode_constr_1, CHOICE_constraint }, + asn_MBR_EuVehicleCategoryCode_1, + 6, /* Elements count */ + &asn_SPC_EuVehicleCategoryCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/EuVehicleCategoryL.c b/vcits/cpm/src/EuVehicleCategoryL.c new file mode 100644 index 0000000..1843069 --- /dev/null +++ b/vcits/cpm/src/EuVehicleCategoryL.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "EuVehicleCategoryL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryL_value2enum_1[] = { + { 0, 2, "l1" }, + { 1, 2, "l2" }, + { 2, 2, "l3" }, + { 3, 2, "l4" }, + { 4, 2, "l5" }, + { 5, 2, "l6" }, + { 6, 2, "l7" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryL_enum2value_1[] = { + 0, /* l1(0) */ + 1, /* l2(1) */ + 2, /* l3(2) */ + 3, /* l4(3) */ + 4, /* l5(4) */ + 5, /* l6(5) */ + 6 /* l7(6) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryL_specs_1 = { + asn_MAP_EuVehicleCategoryL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryL_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryL = { + "EuVehicleCategoryL", + "EuVehicleCategoryL", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryL_tags_1, + sizeof(asn_DEF_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryL_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryL_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryL_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryL_constr_1, &asn_PER_type_EuVehicleCategoryL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryL_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/EuVehicleCategoryM.c b/vcits/cpm/src/EuVehicleCategoryM.c new file mode 100644 index 0000000..1f15309 --- /dev/null +++ b/vcits/cpm/src/EuVehicleCategoryM.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "EuVehicleCategoryM.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryM_value2enum_1[] = { + { 0, 2, "m1" }, + { 1, 2, "m2" }, + { 2, 2, "m3" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryM_enum2value_1[] = { + 0, /* m1(0) */ + 1, /* m2(1) */ + 2 /* m3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryM_specs_1 = { + asn_MAP_EuVehicleCategoryM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryM_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryM = { + "EuVehicleCategoryM", + "EuVehicleCategoryM", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryM_tags_1, + sizeof(asn_DEF_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryM_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryM_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryM_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryM_constr_1, &asn_PER_type_EuVehicleCategoryM_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/EuVehicleCategoryN.c b/vcits/cpm/src/EuVehicleCategoryN.c new file mode 100644 index 0000000..deb32c7 --- /dev/null +++ b/vcits/cpm/src/EuVehicleCategoryN.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "EuVehicleCategoryN.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryN_value2enum_1[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryN_enum2value_1[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryN_specs_1 = { + asn_MAP_EuVehicleCategoryN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryN_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryN = { + "EuVehicleCategoryN", + "EuVehicleCategoryN", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryN_tags_1, + sizeof(asn_DEF_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryN_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryN_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryN_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryN_constr_1, &asn_PER_type_EuVehicleCategoryN_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryN_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/EuVehicleCategoryO.c b/vcits/cpm/src/EuVehicleCategoryO.c new file mode 100644 index 0000000..a24a45d --- /dev/null +++ b/vcits/cpm/src/EuVehicleCategoryO.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "EuVehicleCategoryO.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryO_value2enum_1[] = { + { 0, 2, "o1" }, + { 1, 2, "o2" }, + { 2, 2, "o3" }, + { 3, 2, "o4" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryO_enum2value_1[] = { + 0, /* o1(0) */ + 1, /* o2(1) */ + 2, /* o3(2) */ + 3 /* o4(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryO_specs_1 = { + asn_MAP_EuVehicleCategoryO_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryO_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryO = { + "EuVehicleCategoryO", + "EuVehicleCategoryO", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryO_tags_1, + sizeof(asn_DEF_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryO_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryO_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryO_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryO_constr_1, &asn_PER_type_EuVehicleCategoryO_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryO_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/EventHistory.c b/vcits/cpm/src/EventHistory.c new file mode 100644 index 0000000..407ccc7 --- /dev/null +++ b/vcits/cpm/src/EventHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "EventHistory.h" + +#include "EventPoint.h" +static asn_oer_constraints_t asn_OER_type_EventHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..23)) */}; +static asn_per_constraints_t asn_PER_type_EventHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (SIZE(1..23)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EventHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EventPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EventHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_EventHistory_specs_1 = { + sizeof(struct EventHistory), + offsetof(struct EventHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EventHistory = { + "EventHistory", + "EventHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_EventHistory_tags_1, + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + asn_DEF_EventHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_EventHistory_constr_1, &asn_PER_type_EventHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EventHistory_1, + 1, /* Single element */ + &asn_SPC_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/EventPoint.c b/vcits/cpm/src/EventPoint.c new file mode 100644 index 0000000..c1aed72 --- /dev/null +++ b/vcits/cpm/src/EventPoint.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "EventPoint.h" + +asn_TYPE_member_t asn_MBR_EventPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventPosition" + }, + { ATF_POINTER, 1, offsetof(struct EventPoint, eventDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InformationQuality, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "informationQuality" + }, +}; +static const int asn_MAP_EventPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_EventPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EventPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* informationQuality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1 = { + sizeof(struct EventPoint), + offsetof(struct EventPoint, _asn_ctx), + asn_MAP_EventPoint_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_EventPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EventPoint = { + "EventPoint", + "EventPoint", + &asn_OP_SEQUENCE, + asn_DEF_EventPoint_tags_1, + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + asn_DEF_EventPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EventPoint_1, + 3, /* Elements count */ + &asn_SPC_EventPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ExceptionalCondition.c b/vcits/cpm/src/ExceptionalCondition.c new file mode 100644 index 0000000..77a6208 --- /dev/null +++ b/vcits/cpm/src/ExceptionalCondition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ExceptionalCondition.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExceptionalCondition_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ExceptionalCondition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ExceptionalCondition_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 23, "publicTransportPriority" }, + { 2, 24, "emergencyVehiclePriority" }, + { 3, 13, "trainPriority" }, + { 4, 10, "bridgeOpen" }, + { 5, 13, "vehicleHeight" }, + { 6, 7, "weather" }, + { 7, 10, "trafficJam" }, + { 8, 13, "tunnelClosure" }, + { 9, 14, "meteringActive" }, + { 10, 13, "truckPriority" }, + { 11, 22, "bicyclePlatoonPriority" }, + { 12, 22, "vehiclePlatoonPriority" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ExceptionalCondition_enum2value_1[] = { + 11, /* bicyclePlatoonPriority(11) */ + 4, /* bridgeOpen(4) */ + 2, /* emergencyVehiclePriority(2) */ + 9, /* meteringActive(9) */ + 1, /* publicTransportPriority(1) */ + 7, /* trafficJam(7) */ + 3, /* trainPriority(3) */ + 10, /* truckPriority(10) */ + 8, /* tunnelClosure(8) */ + 0, /* unknown(0) */ + 5, /* vehicleHeight(5) */ + 12, /* vehiclePlatoonPriority(12) */ + 6 /* weather(6) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ExceptionalCondition_specs_1 = { + asn_MAP_ExceptionalCondition_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ExceptionalCondition_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ExceptionalCondition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExceptionalCondition = { + "ExceptionalCondition", + "ExceptionalCondition", + &asn_OP_NativeEnumerated, + asn_DEF_ExceptionalCondition_tags_1, + sizeof(asn_DEF_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ExceptionalCondition_tags_1[0]), /* 1 */ + asn_DEF_ExceptionalCondition_tags_1, /* Same as above */ + sizeof(asn_DEF_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ExceptionalCondition_tags_1[0]), /* 1 */ + { &asn_OER_type_ExceptionalCondition_constr_1, &asn_PER_type_ExceptionalCondition_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ExceptionalCondition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ExteriorLights.c b/vcits/cpm/src/ExteriorLights.c new file mode 100644 index 0000000..4dcedc1 --- /dev/null +++ b/vcits/cpm/src/ExteriorLights.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ExteriorLights.h" + +int +ExteriorLights_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_ExteriorLights_tags_1, + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + { &asn_OER_type_ExteriorLights_constr_1, &asn_PER_type_ExteriorLights_constr_1, ExteriorLights_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/FreeSpaceAddendum.c b/vcits/cpm/src/FreeSpaceAddendum.c new file mode 100644 index 0000000..6039773 --- /dev/null +++ b/vcits/cpm/src/FreeSpaceAddendum.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "FreeSpaceAddendum.h" + +#include "SensorIdList.h" +static int asn_DFL_5_cmp_1(const void *sptr) { + const ShadowingApplies_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 1 */ + return (*st != 1); +} +static int asn_DFL_5_set_1(void **sptr) { + ShadowingApplies_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 1 */ + *st = 1; + return 0; +} +asn_TYPE_member_t asn_MBR_FreeSpaceAddendum_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreeSpaceAddendum, freeSpaceConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreeSpaceConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freeSpaceConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreeSpaceAddendum, freeSpaceArea), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_FreeSpaceArea, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freeSpaceArea" + }, + { ATF_POINTER, 2, offsetof(struct FreeSpaceAddendum, sensorIDList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SensorIdList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sensorIDList" + }, + { ATF_POINTER, 1, offsetof(struct FreeSpaceAddendum, shadowingApplies), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ShadowingApplies, + 0, + { 0, 0, 0 }, + &asn_DFL_5_cmp_1, /* Compare DEFAULT 1 */ + &asn_DFL_5_set_1, /* Set DEFAULT 1 */ + "shadowingApplies" + }, +}; +static const int asn_MAP_FreeSpaceAddendum_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_FreeSpaceAddendum_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FreeSpaceAddendum_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freeSpaceConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* freeSpaceArea */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sensorIDList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* shadowingApplies */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FreeSpaceAddendum_specs_1 = { + sizeof(struct FreeSpaceAddendum), + offsetof(struct FreeSpaceAddendum, _asn_ctx), + asn_MAP_FreeSpaceAddendum_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_FreeSpaceAddendum_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FreeSpaceAddendum = { + "FreeSpaceAddendum", + "FreeSpaceAddendum", + &asn_OP_SEQUENCE, + asn_DEF_FreeSpaceAddendum_tags_1, + sizeof(asn_DEF_FreeSpaceAddendum_tags_1) + /sizeof(asn_DEF_FreeSpaceAddendum_tags_1[0]), /* 1 */ + asn_DEF_FreeSpaceAddendum_tags_1, /* Same as above */ + sizeof(asn_DEF_FreeSpaceAddendum_tags_1) + /sizeof(asn_DEF_FreeSpaceAddendum_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreeSpaceAddendum_1, + 4, /* Elements count */ + &asn_SPC_FreeSpaceAddendum_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/FreeSpaceAddendumContainer.c b/vcits/cpm/src/FreeSpaceAddendumContainer.c new file mode 100644 index 0000000..327ffb4 --- /dev/null +++ b/vcits/cpm/src/FreeSpaceAddendumContainer.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "FreeSpaceAddendumContainer.h" + +#include "FreeSpaceAddendum.h" +static asn_oer_constraints_t asn_OER_type_FreeSpaceAddendumContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +asn_per_constraints_t asn_PER_type_FreeSpaceAddendumContainer_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 128 } /* (SIZE(1..128)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_FreeSpaceAddendumContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_FreeSpaceAddendum, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_FreeSpaceAddendumContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_FreeSpaceAddendumContainer_specs_1 = { + sizeof(struct FreeSpaceAddendumContainer), + offsetof(struct FreeSpaceAddendumContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_FreeSpaceAddendumContainer = { + "FreeSpaceAddendumContainer", + "FreeSpaceAddendumContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_FreeSpaceAddendumContainer_tags_1, + sizeof(asn_DEF_FreeSpaceAddendumContainer_tags_1) + /sizeof(asn_DEF_FreeSpaceAddendumContainer_tags_1[0]), /* 1 */ + asn_DEF_FreeSpaceAddendumContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_FreeSpaceAddendumContainer_tags_1) + /sizeof(asn_DEF_FreeSpaceAddendumContainer_tags_1[0]), /* 1 */ + { &asn_OER_type_FreeSpaceAddendumContainer_constr_1, &asn_PER_type_FreeSpaceAddendumContainer_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_FreeSpaceAddendumContainer_1, + 1, /* Single element */ + &asn_SPC_FreeSpaceAddendumContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/FreeSpaceArea.c b/vcits/cpm/src/FreeSpaceArea.c new file mode 100644 index 0000000..6eaa380 --- /dev/null +++ b/vcits/cpm/src/FreeSpaceArea.c @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "FreeSpaceArea.h" + +static asn_oer_constraints_t asn_OER_type_FreeSpaceArea_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_FreeSpaceArea_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_FreeSpaceArea_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreeSpaceArea, choice.freeSpacePolygon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AreaPolygon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freeSpacePolygon" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreeSpaceArea, choice.freeSpaceCircular), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AreaCircular, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freeSpaceCircular" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreeSpaceArea, choice.freeSpaceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AreaEllipse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freeSpaceEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreeSpaceArea, choice.freeSpaceRectangle), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AreaRectangle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freeSpaceRectangle" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_FreeSpaceArea_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freeSpacePolygon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* freeSpaceCircular */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* freeSpaceEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* freeSpaceRectangle */ +}; +asn_CHOICE_specifics_t asn_SPC_FreeSpaceArea_specs_1 = { + sizeof(struct FreeSpaceArea), + offsetof(struct FreeSpaceArea, _asn_ctx), + offsetof(struct FreeSpaceArea, present), + sizeof(((struct FreeSpaceArea *)0)->present), + asn_MAP_FreeSpaceArea_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + 4 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_FreeSpaceArea = { + "FreeSpaceArea", + "FreeSpaceArea", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_FreeSpaceArea_constr_1, &asn_PER_type_FreeSpaceArea_constr_1, CHOICE_constraint }, + asn_MBR_FreeSpaceArea_1, + 4, /* Elements count */ + &asn_SPC_FreeSpaceArea_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/FreeSpaceConfidence.c b/vcits/cpm/src/FreeSpaceConfidence.c new file mode 100644 index 0000000..b8748cd --- /dev/null +++ b/vcits/cpm/src/FreeSpaceConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "FreeSpaceConfidence.h" + +int +FreeSpaceConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 101)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FreeSpaceConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..101) */, + -1}; +asn_per_constraints_t asn_PER_type_FreeSpaceConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 101 } /* (0..101) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_FreeSpaceConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FreeSpaceConfidence = { + "FreeSpaceConfidence", + "FreeSpaceConfidence", + &asn_OP_NativeInteger, + asn_DEF_FreeSpaceConfidence_tags_1, + sizeof(asn_DEF_FreeSpaceConfidence_tags_1) + /sizeof(asn_DEF_FreeSpaceConfidence_tags_1[0]), /* 1 */ + asn_DEF_FreeSpaceConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_FreeSpaceConfidence_tags_1) + /sizeof(asn_DEF_FreeSpaceConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_FreeSpaceConfidence_constr_1, &asn_PER_type_FreeSpaceConfidence_constr_1, FreeSpaceConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/FrontOverhang.c b/vcits/cpm/src/FrontOverhang.c new file mode 100644 index 0000000..abd0750 --- /dev/null +++ b/vcits/cpm/src/FrontOverhang.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "FrontOverhang.h" + +int +FrontOverhang_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 50)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FrontOverhang_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..50) */, + -1}; +asn_per_constraints_t asn_PER_type_FrontOverhang_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 50 } /* (0..50) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_FrontOverhang_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FrontOverhang = { + "FrontOverhang", + "FrontOverhang", + &asn_OP_NativeInteger, + asn_DEF_FrontOverhang_tags_1, + sizeof(asn_DEF_FrontOverhang_tags_1) + /sizeof(asn_DEF_FrontOverhang_tags_1[0]), /* 1 */ + asn_DEF_FrontOverhang_tags_1, /* Same as above */ + sizeof(asn_DEF_FrontOverhang_tags_1) + /sizeof(asn_DEF_FrontOverhang_tags_1[0]), /* 1 */ + { &asn_OER_type_FrontOverhang_constr_1, &asn_PER_type_FrontOverhang_constr_1, FrontOverhang_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/FuelType.c b/vcits/cpm/src/FuelType.c new file mode 100644 index 0000000..4855062 --- /dev/null +++ b/vcits/cpm/src/FuelType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "FuelType.h" + +int +FuelType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FuelType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_FuelType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_FuelType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FuelType = { + "FuelType", + "FuelType", + &asn_OP_NativeInteger, + asn_DEF_FuelType_tags_1, + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + asn_DEF_FuelType_tags_1, /* Same as above */ + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + { &asn_OER_type_FuelType_constr_1, &asn_PER_type_FuelType_constr_1, FuelType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/FullPositionVector.c b/vcits/cpm/src/FullPositionVector.c new file mode 100644 index 0000000..ab8205f --- /dev/null +++ b/vcits/cpm/src/FullPositionVector.c @@ -0,0 +1,147 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "FullPositionVector.h" + +#include "DDateTime.h" +#include "TransmissionAndSpeed.h" +#include "PositionalAccuracy.h" +#include "PositionConfidenceSet.h" +#include "SpeedandHeadingandThrottleConfidence.h" +asn_TYPE_member_t asn_MBR_FullPositionVector_1[] = { + { ATF_POINTER, 1, offsetof(struct FullPositionVector, utcTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDateTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "utcTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "long" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, lat), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_POINTER, 7, offsetof(struct FullPositionVector, elevation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Elevation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 6, offsetof(struct FullPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 5, offsetof(struct FullPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct FullPositionVector, posAccuracy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionalAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posAccuracy" + }, + { ATF_POINTER, 3, offsetof(struct FullPositionVector, timeConfidence), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeConfidence" + }, + { ATF_POINTER, 2, offsetof(struct FullPositionVector, posConfidence), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidenceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posConfidence" + }, + { ATF_POINTER, 1, offsetof(struct FullPositionVector, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedandHeadingandThrottleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const int asn_MAP_FullPositionVector_oms_1[] = { 0, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_FullPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FullPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* utcTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* posAccuracy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* timeConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* posConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1 = { + sizeof(struct FullPositionVector), + offsetof(struct FullPositionVector, _asn_ctx), + asn_MAP_FullPositionVector_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_FullPositionVector_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FullPositionVector = { + "FullPositionVector", + "FullPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_FullPositionVector_tags_1, + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + asn_DEF_FullPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FullPositionVector_1, + 10, /* Elements count */ + &asn_SPC_FullPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/GNSSstatus.c b/vcits/cpm/src/GNSSstatus.c new file mode 100644 index 0000000..fc7e33e --- /dev/null +++ b/vcits/cpm/src/GNSSstatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "GNSSstatus.h" + +int +GNSSstatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GNSSstatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNSSstatus = { + "GNSSstatus", + "GNSSstatus", + &asn_OP_BIT_STRING, + asn_DEF_GNSSstatus_tags_1, + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + asn_DEF_GNSSstatus_tags_1, /* Same as above */ + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + { &asn_OER_type_GNSSstatus_constr_1, &asn_PER_type_GNSSstatus_constr_1, GNSSstatus_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/GenerationDeltaTime.c b/vcits/cpm/src/GenerationDeltaTime.c new file mode 100644 index 0000000..e30be11 --- /dev/null +++ b/vcits/cpm/src/GenerationDeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "GenerationDeltaTime.h" + +int +GenerationDeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GenerationDeltaTime_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_GenerationDeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GenerationDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GenerationDeltaTime = { + "GenerationDeltaTime", + "GenerationDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_GenerationDeltaTime_tags_1, + sizeof(asn_DEF_GenerationDeltaTime_tags_1) + /sizeof(asn_DEF_GenerationDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_GenerationDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_GenerationDeltaTime_tags_1) + /sizeof(asn_DEF_GenerationDeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_GenerationDeltaTime_constr_1, &asn_PER_type_GenerationDeltaTime_constr_1, GenerationDeltaTime_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/GenericLane.c b/vcits/cpm/src/GenericLane.c new file mode 100644 index 0000000..6f1938f --- /dev/null +++ b/vcits/cpm/src/GenericLane.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "GenericLane.h" + +#include "ConnectsToList.h" +#include "OverlayLaneList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct GenericLane__regional), + offsetof(struct GenericLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { &asn_OER_type_regional_constr_11, &asn_PER_type_regional_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GenericLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, ingressApproach), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ingressApproach" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, egressApproach), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "egressApproach" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneAttributes), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneAttributes" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, maneuvers), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuvers" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, nodeList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeListXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeList" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, connectsTo), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectsToList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectsTo" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, overlays), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OverlayLaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "overlays" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { &asn_OER_memb_regional_constr_11, &asn_PER_memb_regional_constr_11, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_GenericLane_oms_1[] = { 1, 2, 3, 5, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_GenericLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GenericLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ingressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* egressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAttributes */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maneuvers */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* nodeList */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* connectsTo */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* overlays */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1 = { + sizeof(struct GenericLane), + offsetof(struct GenericLane, _asn_ctx), + asn_MAP_GenericLane_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_GenericLane_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GenericLane = { + "GenericLane", + "GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_GenericLane_tags_1, + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + asn_DEF_GenericLane_tags_1, /* Same as above */ + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GenericLane_1, + 10, /* Elements count */ + &asn_SPC_GenericLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/HardShoulderStatus.c b/vcits/cpm/src/HardShoulderStatus.c new file mode 100644 index 0000000..f92e5e8 --- /dev/null +++ b/vcits/cpm/src/HardShoulderStatus.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "HardShoulderStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HardShoulderStatus_value2enum_1[] = { + { 0, 20, "availableForStopping" }, + { 1, 6, "closed" }, + { 2, 19, "availableForDriving" } +}; +static const unsigned int asn_MAP_HardShoulderStatus_enum2value_1[] = { + 2, /* availableForDriving(2) */ + 0, /* availableForStopping(0) */ + 1 /* closed(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1 = { + asn_MAP_HardShoulderStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HardShoulderStatus_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HardShoulderStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus = { + "HardShoulderStatus", + "HardShoulderStatus", + &asn_OP_NativeEnumerated, + asn_DEF_HardShoulderStatus_tags_1, + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + asn_DEF_HardShoulderStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_HardShoulderStatus_constr_1, &asn_PER_type_HardShoulderStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HardShoulderStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c b/vcits/cpm/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..109f8dc --- /dev/null +++ b/vcits/cpm/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "HazardousLocation-AnimalOnTheRoadSubCauseCode.h" + +int +HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode = { + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/HazardousLocation-DangerousCurveSubCauseCode.c b/vcits/cpm/src/HazardousLocation-DangerousCurveSubCauseCode.c new file mode 100644 index 0000000..6933862 --- /dev/null +++ b/vcits/cpm/src/HazardousLocation-DangerousCurveSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "HazardousLocation-DangerousCurveSubCauseCode.h" + +int +HazardousLocation_DangerousCurveSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode = { + "HazardousLocation-DangerousCurveSubCauseCode", + "HazardousLocation-DangerousCurveSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, HazardousLocation_DangerousCurveSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c b/vcits/cpm/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..39bb4e1 --- /dev/null +++ b/vcits/cpm/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" + +int +HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode = { + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/HazardousLocation-SurfaceConditionSubCauseCode.c b/vcits/cpm/src/HazardousLocation-SurfaceConditionSubCauseCode.c new file mode 100644 index 0000000..3387e26 --- /dev/null +++ b/vcits/cpm/src/HazardousLocation-SurfaceConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "HazardousLocation-SurfaceConditionSubCauseCode.h" + +int +HazardousLocation_SurfaceConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode = { + "HazardousLocation-SurfaceConditionSubCauseCode", + "HazardousLocation-SurfaceConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, HazardousLocation_SurfaceConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Heading.c b/vcits/cpm/src/Heading.c new file mode 100644 index 0000000..4468259 --- /dev/null +++ b/vcits/cpm/src/Heading.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Heading.h" + +asn_TYPE_member_t asn_MBR_Heading_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Heading_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* headingValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* headingConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Heading_specs_1 = { + sizeof(struct Heading), + offsetof(struct Heading, _asn_ctx), + asn_MAP_Heading_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Heading = { + "Heading", + "Heading", + &asn_OP_SEQUENCE, + asn_DEF_Heading_tags_1, + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + asn_DEF_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Heading_1, + 2, /* Elements count */ + &asn_SPC_Heading_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/HeadingConfidence.c b/vcits/cpm/src/HeadingConfidence.c new file mode 100644 index 0000000..e2855e4 --- /dev/null +++ b/vcits/cpm/src/HeadingConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "HeadingConfidence.h" + +int +HeadingConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeInteger, + asn_DEF_HeadingConfidence_tags_1, + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidence_constr_1, &asn_PER_type_HeadingConfidence_constr_1, HeadingConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/HeadingConfidenceDSRC.c b/vcits/cpm/src/HeadingConfidenceDSRC.c new file mode 100644 index 0000000..4f2a974 --- /dev/null +++ b/vcits/cpm/src/HeadingConfidenceDSRC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "HeadingConfidenceDSRC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidenceDSRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidenceDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HeadingConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec10deg" }, + { 2, 9, "prec05deg" }, + { 3, 9, "prec01deg" }, + { 4, 10, "prec0-1deg" }, + { 5, 11, "prec0-05deg" }, + { 6, 11, "prec0-01deg" }, + { 7, 13, "prec0-0125deg" } +}; +static const unsigned int asn_MAP_HeadingConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-0125deg(7) */ + 6, /* prec0-01deg(6) */ + 5, /* prec0-05deg(5) */ + 4, /* prec0-1deg(4) */ + 3, /* prec01deg(3) */ + 2, /* prec05deg(2) */ + 1, /* prec10deg(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HeadingConfidenceDSRC_specs_1 = { + asn_MAP_HeadingConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HeadingConfidenceDSRC_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidenceDSRC = { + "HeadingConfidenceDSRC", + "HeadingConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_HeadingConfidenceDSRC_tags_1, + sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidenceDSRC_constr_1, &asn_PER_type_HeadingConfidenceDSRC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HeadingConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/HeadingDSRC.c b/vcits/cpm/src/HeadingDSRC.c new file mode 100644 index 0000000..75c046d --- /dev/null +++ b/vcits/cpm/src/HeadingDSRC.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "HeadingDSRC.h" + +int +HeadingDSRC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 28800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingDSRC_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingDSRC = { + "HeadingDSRC", + "HeadingDSRC", + &asn_OP_NativeInteger, + asn_DEF_HeadingDSRC_tags_1, + sizeof(asn_DEF_HeadingDSRC_tags_1) + /sizeof(asn_DEF_HeadingDSRC_tags_1[0]), /* 1 */ + asn_DEF_HeadingDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingDSRC_tags_1) + /sizeof(asn_DEF_HeadingDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingDSRC_constr_1, &asn_PER_type_HeadingDSRC_constr_1, HeadingDSRC_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/HeadingValue.c b/vcits/cpm/src/HeadingValue.c new file mode 100644 index 0000000..e6d74a2 --- /dev/null +++ b/vcits/cpm/src/HeadingValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "HeadingValue.h" + +int +HeadingValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3601)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3601) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingValue = { + "HeadingValue", + "HeadingValue", + &asn_OP_NativeInteger, + asn_DEF_HeadingValue_tags_1, + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + asn_DEF_HeadingValue_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingValue_constr_1, &asn_PER_type_HeadingValue_constr_1, HeadingValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/HeightLonCarr.c b/vcits/cpm/src/HeightLonCarr.c new file mode 100644 index 0000000..3778d75 --- /dev/null +++ b/vcits/cpm/src/HeightLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "HeightLonCarr.h" + +int +HeightLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..100) */, + -1}; +static asn_per_constraints_t asn_PER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 100 } /* (1..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeightLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeightLonCarr = { + "HeightLonCarr", + "HeightLonCarr", + &asn_OP_NativeInteger, + asn_DEF_HeightLonCarr_tags_1, + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + asn_DEF_HeightLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_HeightLonCarr_constr_1, &asn_PER_type_HeightLonCarr_constr_1, HeightLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/HighFrequencyContainer.c b/vcits/cpm/src/HighFrequencyContainer.c new file mode 100644 index 0000000..76ce34d --- /dev/null +++ b/vcits/cpm/src/HighFrequencyContainer.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "HighFrequencyContainer.h" + +static asn_oer_constraints_t asn_OER_type_HighFrequencyContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HighFrequencyContainer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_HighFrequencyContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct HighFrequencyContainer, choice.basicVehicleContainerHighFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleContainerHighFrequency, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "basicVehicleContainerHighFrequency" + }, + { ATF_NOFLAGS, 0, offsetof(struct HighFrequencyContainer, choice.rsuContainerHighFrequency), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSUContainerHighFrequency, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsuContainerHighFrequency" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_HighFrequencyContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicVehicleContainerHighFrequency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rsuContainerHighFrequency */ +}; +asn_CHOICE_specifics_t asn_SPC_HighFrequencyContainer_specs_1 = { + sizeof(struct HighFrequencyContainer), + offsetof(struct HighFrequencyContainer, _asn_ctx), + offsetof(struct HighFrequencyContainer, present), + sizeof(((struct HighFrequencyContainer *)0)->present), + asn_MAP_HighFrequencyContainer_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_HighFrequencyContainer = { + "HighFrequencyContainer", + "HighFrequencyContainer", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_HighFrequencyContainer_constr_1, &asn_PER_type_HighFrequencyContainer_constr_1, CHOICE_constraint }, + asn_MBR_HighFrequencyContainer_1, + 2, /* Elements count */ + &asn_SPC_HighFrequencyContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/HitchPointOffset.c b/vcits/cpm/src/HitchPointOffset.c new file mode 100644 index 0000000..d7a2f7a --- /dev/null +++ b/vcits/cpm/src/HitchPointOffset.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "HitchPointOffset.h" + +int +HitchPointOffset_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HitchPointOffset_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..100) */, + -1}; +asn_per_constraints_t asn_PER_type_HitchPointOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HitchPointOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HitchPointOffset = { + "HitchPointOffset", + "HitchPointOffset", + &asn_OP_NativeInteger, + asn_DEF_HitchPointOffset_tags_1, + sizeof(asn_DEF_HitchPointOffset_tags_1) + /sizeof(asn_DEF_HitchPointOffset_tags_1[0]), /* 1 */ + asn_DEF_HitchPointOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_HitchPointOffset_tags_1) + /sizeof(asn_DEF_HitchPointOffset_tags_1[0]), /* 1 */ + { &asn_OER_type_HitchPointOffset_constr_1, &asn_PER_type_HitchPointOffset_constr_1, HitchPointOffset_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/HumanPresenceOnTheRoadSubCauseCode.c b/vcits/cpm/src/HumanPresenceOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..8358a8a --- /dev/null +++ b/vcits/cpm/src/HumanPresenceOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "HumanPresenceOnTheRoadSubCauseCode.h" + +int +HumanPresenceOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode = { + "HumanPresenceOnTheRoadSubCauseCode", + "HumanPresenceOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, HumanPresenceOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/HumanProblemSubCauseCode.c b/vcits/cpm/src/HumanProblemSubCauseCode.c new file mode 100644 index 0000000..0b62fab --- /dev/null +++ b/vcits/cpm/src/HumanProblemSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "HumanProblemSubCauseCode.h" + +int +HumanProblemSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanProblemSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode = { + "HumanProblemSubCauseCode", + "HumanProblemSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanProblemSubCauseCode_tags_1, + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanProblemSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanProblemSubCauseCode_constr_1, &asn_PER_type_HumanProblemSubCauseCode_constr_1, HumanProblemSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Identifier.c b/vcits/cpm/src/Identifier.c new file mode 100644 index 0000000..7fa3b22 --- /dev/null +++ b/vcits/cpm/src/Identifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Identifier.h" + +int +Identifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Identifier_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Identifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Identifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Identifier = { + "Identifier", + "Identifier", + &asn_OP_NativeInteger, + asn_DEF_Identifier_tags_1, + sizeof(asn_DEF_Identifier_tags_1) + /sizeof(asn_DEF_Identifier_tags_1[0]), /* 1 */ + asn_DEF_Identifier_tags_1, /* Same as above */ + sizeof(asn_DEF_Identifier_tags_1) + /sizeof(asn_DEF_Identifier_tags_1[0]), /* 1 */ + { &asn_OER_type_Identifier_constr_1, &asn_PER_type_Identifier_constr_1, Identifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/InformationQuality.c b/vcits/cpm/src/InformationQuality.c new file mode 100644 index 0000000..74e1b84 --- /dev/null +++ b/vcits/cpm/src/InformationQuality.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "InformationQuality.h" + +int +InformationQuality_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_InformationQuality_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_InformationQuality_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_InformationQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InformationQuality = { + "InformationQuality", + "InformationQuality", + &asn_OP_NativeInteger, + asn_DEF_InformationQuality_tags_1, + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + asn_DEF_InformationQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + { &asn_OER_type_InformationQuality_constr_1, &asn_PER_type_InformationQuality_constr_1, InformationQuality_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/IntersectionAccessPoint.c b/vcits/cpm/src/IntersectionAccessPoint.c new file mode 100644 index 0000000..71d2abc --- /dev/null +++ b/vcits/cpm/src/IntersectionAccessPoint.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "IntersectionAccessPoint.h" + +static asn_oer_constraints_t asn_OER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.approach), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "approach" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.connection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionAccessPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* approach */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* connection */ +}; +asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1 = { + sizeof(struct IntersectionAccessPoint), + offsetof(struct IntersectionAccessPoint, _asn_ctx), + offsetof(struct IntersectionAccessPoint, present), + sizeof(((struct IntersectionAccessPoint *)0)->present), + asn_MAP_IntersectionAccessPoint_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint = { + "IntersectionAccessPoint", + "IntersectionAccessPoint", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_IntersectionAccessPoint_constr_1, &asn_PER_type_IntersectionAccessPoint_constr_1, CHOICE_constraint }, + asn_MBR_IntersectionAccessPoint_1, + 3, /* Elements count */ + &asn_SPC_IntersectionAccessPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/IntersectionGeometry.c b/vcits/cpm/src/IntersectionGeometry.c new file mode 100644 index 0000000..4aa9de5 --- /dev/null +++ b/vcits/cpm/src/IntersectionGeometry.c @@ -0,0 +1,214 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "IntersectionGeometry.h" + +#include "SpeedLimitList.h" +#include "PreemptPriorityList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionGeometry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct IntersectionGeometry__regional), + offsetof(struct IntersectionGeometry__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, laneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneSet" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, preemptPriorityData), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PreemptPriorityList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "preemptPriorityData" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionGeometry_oms_1[] = { 0, 4, 5, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionGeometry_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* laneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* preemptPriorityData */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1 = { + sizeof(struct IntersectionGeometry), + offsetof(struct IntersectionGeometry, _asn_ctx), + asn_MAP_IntersectionGeometry_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_IntersectionGeometry_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry = { + "IntersectionGeometry", + "IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionGeometry_tags_1, + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometry_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionGeometry_1, + 9, /* Elements count */ + &asn_SPC_IntersectionGeometry_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/IntersectionGeometryList.c b/vcits/cpm/src/IntersectionGeometryList.c new file mode 100644 index 0000000..e2987fb --- /dev/null +++ b/vcits/cpm/src/IntersectionGeometryList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "IntersectionGeometryList.h" + +#include "IntersectionGeometry.h" +static asn_oer_constraints_t asn_OER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionGeometry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometryList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1 = { + sizeof(struct IntersectionGeometryList), + offsetof(struct IntersectionGeometryList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList = { + "IntersectionGeometryList", + "IntersectionGeometryList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionGeometryList_tags_1, + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometryList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionGeometryList_constr_1, &asn_PER_type_IntersectionGeometryList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntersectionGeometryList_1, + 1, /* Single element */ + &asn_SPC_IntersectionGeometryList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/IntersectionID.c b/vcits/cpm/src/IntersectionID.c new file mode 100644 index 0000000..664f649 --- /dev/null +++ b/vcits/cpm/src/IntersectionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "IntersectionID.h" + +int +IntersectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntersectionID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_IntersectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IntersectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionID = { + "IntersectionID", + "IntersectionID", + &asn_OP_NativeInteger, + asn_DEF_IntersectionID_tags_1, + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionID_constr_1, &asn_PER_type_IntersectionID_constr_1, IntersectionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/IntersectionReferenceID.c b/vcits/cpm/src/IntersectionReferenceID.c new file mode 100644 index 0000000..d90406a --- /dev/null +++ b/vcits/cpm/src/IntersectionReferenceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "IntersectionReferenceID.h" + +asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_IntersectionReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1 = { + sizeof(struct IntersectionReferenceID), + offsetof(struct IntersectionReferenceID, _asn_ctx), + asn_MAP_IntersectionReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_IntersectionReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID = { + "IntersectionReferenceID", + "IntersectionReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionReferenceID_tags_1, + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionReferenceID_1, + 2, /* Elements count */ + &asn_SPC_IntersectionReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/IntersectionState-addGrpC.c b/vcits/cpm/src/IntersectionState-addGrpC.c new file mode 100644 index 0000000..9a01f85 --- /dev/null +++ b/vcits/cpm/src/IntersectionState-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "IntersectionState-addGrpC.h" + +#include "PrioritizationResponseList.h" +asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState_addGrpC, activePrioritizations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "activePrioritizations" + }, +}; +static const int asn_MAP_IntersectionState_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* activePrioritizations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1 = { + sizeof(struct IntersectionState_addGrpC), + offsetof(struct IntersectionState_addGrpC, _asn_ctx), + asn_MAP_IntersectionState_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_IntersectionState_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC = { + "IntersectionState-addGrpC", + "IntersectionState-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_addGrpC_tags_1, + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionState_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_IntersectionState_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/IntersectionState.c b/vcits/cpm/src/IntersectionState.c new file mode 100644 index 0000000..8fb30b1 --- /dev/null +++ b/vcits/cpm/src/IntersectionState.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "IntersectionState.h" + +#include "EnabledLaneList.h" +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct IntersectionState__regional), + offsetof(struct IntersectionState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { &asn_OER_type_regional_constr_11, &asn_PER_type_regional_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionState_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStatusObject, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 3, offsetof(struct IntersectionState, moy), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "moy" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, enabledLanes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EnabledLaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabledLanes" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, states), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "states" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { &asn_OER_memb_regional_constr_11, &asn_PER_memb_regional_constr_11, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionState_oms_1[] = { 0, 4, 5, 6, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* moy */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* enabledLanes */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* states */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1 = { + sizeof(struct IntersectionState), + offsetof(struct IntersectionState, _asn_ctx), + asn_MAP_IntersectionState_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_IntersectionState_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState = { + "IntersectionState", + "IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_tags_1, + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionState_1, + 10, /* Elements count */ + &asn_SPC_IntersectionState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/IntersectionStateList.c b/vcits/cpm/src/IntersectionStateList.c new file mode 100644 index 0000000..69d05ad --- /dev/null +++ b/vcits/cpm/src/IntersectionStateList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "IntersectionStateList.h" + +#include "IntersectionState.h" +static asn_oer_constraints_t asn_OER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1 = { + sizeof(struct IntersectionStateList), + offsetof(struct IntersectionStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStateList = { + "IntersectionStateList", + "IntersectionStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionStateList_tags_1, + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionStateList_constr_1, &asn_PER_type_IntersectionStateList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntersectionStateList_1, + 1, /* Single element */ + &asn_SPC_IntersectionStateList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/IntersectionStatusObject.c b/vcits/cpm/src/IntersectionStatusObject.c new file mode 100644 index 0000000..c7ad246 --- /dev/null +++ b/vcits/cpm/src/IntersectionStatusObject.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "IntersectionStatusObject.h" + +int +IntersectionStatusObject_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStatusObject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject = { + "IntersectionStatusObject", + "IntersectionStatusObject", + &asn_OP_BIT_STRING, + asn_DEF_IntersectionStatusObject_tags_1, + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStatusObject_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionStatusObject_constr_1, &asn_PER_type_IntersectionStatusObject_constr_1, IntersectionStatusObject_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Iso3833VehicleType.c b/vcits/cpm/src/Iso3833VehicleType.c new file mode 100644 index 0000000..ea47373 --- /dev/null +++ b/vcits/cpm/src/Iso3833VehicleType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Iso3833VehicleType.h" + +int +Iso3833VehicleType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Iso3833VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType = { + "Iso3833VehicleType", + "Iso3833VehicleType", + &asn_OP_NativeInteger, + asn_DEF_Iso3833VehicleType_tags_1, + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + asn_DEF_Iso3833VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + { &asn_OER_type_Iso3833VehicleType_constr_1, &asn_PER_type_Iso3833VehicleType_constr_1, Iso3833VehicleType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ItineraryPath.c b/vcits/cpm/src/ItineraryPath.c new file mode 100644 index 0000000..801edca --- /dev/null +++ b/vcits/cpm/src/ItineraryPath.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ItineraryPath.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..40)) */}; +static asn_per_constraints_t asn_PER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 40 } /* (SIZE(1..40)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ItineraryPath_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItineraryPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ItineraryPath_specs_1 = { + sizeof(struct ItineraryPath), + offsetof(struct ItineraryPath, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItineraryPath = { + "ItineraryPath", + "ItineraryPath", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItineraryPath_tags_1, + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + asn_DEF_ItineraryPath_tags_1, /* Same as above */ + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + { &asn_OER_type_ItineraryPath_constr_1, &asn_PER_type_ItineraryPath_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItineraryPath_1, + 1, /* Single element */ + &asn_SPC_ItineraryPath_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ItsPduHeader.c b/vcits/cpm/src/ItsPduHeader.c new file mode 100644 index 0000000..2c7140c --- /dev/null +++ b/vcits/cpm/src/ItsPduHeader.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ItsPduHeader.h" + +static int +memb_protocolVersion_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_messageID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_messageID_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_messageID_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsPduHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, protocolVersion), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_protocolVersion_constr_2, &asn_PER_memb_protocolVersion_constr_2, memb_protocolVersion_constraint_1 }, + 0, 0, /* No default value */ + "protocolVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, messageID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_messageID_constr_3, &asn_PER_memb_messageID_constr_3, memb_messageID_constraint_1 }, + 0, 0, /* No default value */ + "messageID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, stationID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsPduHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsPduHeader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolVersion */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* messageID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* stationID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1 = { + sizeof(struct ItsPduHeader), + offsetof(struct ItsPduHeader, _asn_ctx), + asn_MAP_ItsPduHeader_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsPduHeader = { + "ItsPduHeader", + "ItsPduHeader", + &asn_OP_SEQUENCE, + asn_DEF_ItsPduHeader_tags_1, + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + asn_DEF_ItsPduHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsPduHeader_1, + 3, /* Elements count */ + &asn_SPC_ItsPduHeader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ItsStationPosition.c b/vcits/cpm/src/ItsStationPosition.c new file mode 100644 index 0000000..2c23a81 --- /dev/null +++ b/vcits/cpm/src/ItsStationPosition.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ItsStationPosition.h" + +#include "NodeOffsetPointXY.h" +asn_TYPE_member_t asn_MBR_ItsStationPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsStationPosition, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_POINTER, 3, offsetof(struct ItsStationPosition, laneID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 2, offsetof(struct ItsStationPosition, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_POINTER, 1, offsetof(struct ItsStationPosition, timeReference), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeReference, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeReference" + }, +}; +static const int asn_MAP_ItsStationPosition_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ItsStationPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsStationPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* timeReference */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsStationPosition_specs_1 = { + sizeof(struct ItsStationPosition), + offsetof(struct ItsStationPosition, _asn_ctx), + asn_MAP_ItsStationPosition_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ItsStationPosition_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsStationPosition = { + "ItsStationPosition", + "ItsStationPosition", + &asn_OP_SEQUENCE, + asn_DEF_ItsStationPosition_tags_1, + sizeof(asn_DEF_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ItsStationPosition_tags_1[0]), /* 1 */ + asn_DEF_ItsStationPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ItsStationPosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsStationPosition_1, + 4, /* Elements count */ + &asn_SPC_ItsStationPosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ItsStationPositionList.c b/vcits/cpm/src/ItsStationPositionList.c new file mode 100644 index 0000000..100a297 --- /dev/null +++ b/vcits/cpm/src/ItsStationPositionList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ItsStationPositionList.h" + +#include "ItsStationPosition.h" +static asn_oer_constraints_t asn_OER_type_ItsStationPositionList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_ItsStationPositionList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsStationPositionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ItsStationPosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsStationPositionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ItsStationPositionList_specs_1 = { + sizeof(struct ItsStationPositionList), + offsetof(struct ItsStationPositionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsStationPositionList = { + "ItsStationPositionList", + "ItsStationPositionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItsStationPositionList_tags_1, + sizeof(asn_DEF_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ItsStationPositionList_tags_1[0]), /* 1 */ + asn_DEF_ItsStationPositionList_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ItsStationPositionList_tags_1[0]), /* 1 */ + { &asn_OER_type_ItsStationPositionList_constr_1, &asn_PER_type_ItsStationPositionList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItsStationPositionList_1, + 1, /* Single element */ + &asn_SPC_ItsStationPositionList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneAttributes-Barrier.c b/vcits/cpm/src/LaneAttributes-Barrier.c new file mode 100644 index 0000000..7083be2 --- /dev/null +++ b/vcits/cpm/src/LaneAttributes-Barrier.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneAttributes-Barrier.h" + +int +LaneAttributes_Barrier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Barrier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier = { + "LaneAttributes-Barrier", + "LaneAttributes-Barrier", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Barrier_tags_1, + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Barrier_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Barrier_constr_1, &asn_PER_type_LaneAttributes_Barrier_constr_1, LaneAttributes_Barrier_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneAttributes-Bike.c b/vcits/cpm/src/LaneAttributes-Bike.c new file mode 100644 index 0000000..bbb706b --- /dev/null +++ b/vcits/cpm/src/LaneAttributes-Bike.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneAttributes-Bike.h" + +int +LaneAttributes_Bike_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Bike_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike = { + "LaneAttributes-Bike", + "LaneAttributes-Bike", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Bike_tags_1, + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Bike_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Bike_constr_1, &asn_PER_type_LaneAttributes_Bike_constr_1, LaneAttributes_Bike_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneAttributes-Crosswalk.c b/vcits/cpm/src/LaneAttributes-Crosswalk.c new file mode 100644 index 0000000..6aa31cc --- /dev/null +++ b/vcits/cpm/src/LaneAttributes-Crosswalk.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneAttributes-Crosswalk.h" + +int +LaneAttributes_Crosswalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Crosswalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk = { + "LaneAttributes-Crosswalk", + "LaneAttributes-Crosswalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Crosswalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Crosswalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Crosswalk_constr_1, &asn_PER_type_LaneAttributes_Crosswalk_constr_1, LaneAttributes_Crosswalk_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneAttributes-Parking.c b/vcits/cpm/src/LaneAttributes-Parking.c new file mode 100644 index 0000000..0468965 --- /dev/null +++ b/vcits/cpm/src/LaneAttributes-Parking.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneAttributes-Parking.h" + +int +LaneAttributes_Parking_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Parking_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking = { + "LaneAttributes-Parking", + "LaneAttributes-Parking", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Parking_tags_1, + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Parking_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Parking_constr_1, &asn_PER_type_LaneAttributes_Parking_constr_1, LaneAttributes_Parking_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneAttributes-Sidewalk.c b/vcits/cpm/src/LaneAttributes-Sidewalk.c new file mode 100644 index 0000000..9916390 --- /dev/null +++ b/vcits/cpm/src/LaneAttributes-Sidewalk.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneAttributes-Sidewalk.h" + +int +LaneAttributes_Sidewalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Sidewalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk = { + "LaneAttributes-Sidewalk", + "LaneAttributes-Sidewalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Sidewalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Sidewalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Sidewalk_constr_1, &asn_PER_type_LaneAttributes_Sidewalk_constr_1, LaneAttributes_Sidewalk_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneAttributes-Striping.c b/vcits/cpm/src/LaneAttributes-Striping.c new file mode 100644 index 0000000..232e7d8 --- /dev/null +++ b/vcits/cpm/src/LaneAttributes-Striping.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneAttributes-Striping.h" + +int +LaneAttributes_Striping_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Striping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping = { + "LaneAttributes-Striping", + "LaneAttributes-Striping", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Striping_tags_1, + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Striping_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Striping_constr_1, &asn_PER_type_LaneAttributes_Striping_constr_1, LaneAttributes_Striping_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneAttributes-TrackedVehicle.c b/vcits/cpm/src/LaneAttributes-TrackedVehicle.c new file mode 100644 index 0000000..7fed5bb --- /dev/null +++ b/vcits/cpm/src/LaneAttributes-TrackedVehicle.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneAttributes-TrackedVehicle.h" + +int +LaneAttributes_TrackedVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_TrackedVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle = { + "LaneAttributes-TrackedVehicle", + "LaneAttributes-TrackedVehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_TrackedVehicle_constr_1, &asn_PER_type_LaneAttributes_TrackedVehicle_constr_1, LaneAttributes_TrackedVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneAttributes-Vehicle.c b/vcits/cpm/src/LaneAttributes-Vehicle.c new file mode 100644 index 0000000..938b2bc --- /dev/null +++ b/vcits/cpm/src/LaneAttributes-Vehicle.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneAttributes-Vehicle.h" + +int +LaneAttributes_Vehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 8, 8 } /* (SIZE(8..8,...)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Vehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle = { + "LaneAttributes-Vehicle", + "LaneAttributes-Vehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Vehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Vehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Vehicle_constr_1, &asn_PER_type_LaneAttributes_Vehicle_constr_1, LaneAttributes_Vehicle_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneAttributes-addGrpC.c b/vcits/cpm/src/LaneAttributes-addGrpC.c new file mode 100644 index 0000000..c897c97 --- /dev/null +++ b/vcits/cpm/src/LaneAttributes-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneAttributes-addGrpC.h" + +asn_TYPE_member_t asn_MBR_LaneAttributes_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct LaneAttributes_addGrpC, maxVehicleHeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleHeight, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxVehicleHeight" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes_addGrpC, maxVehicleWeight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleMass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxVehicleWeight" + }, +}; +static const int asn_MAP_LaneAttributes_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxVehicleHeight */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maxVehicleWeight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_addGrpC_specs_1 = { + sizeof(struct LaneAttributes_addGrpC), + offsetof(struct LaneAttributes_addGrpC, _asn_ctx), + asn_MAP_LaneAttributes_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_LaneAttributes_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_addGrpC = { + "LaneAttributes-addGrpC", + "LaneAttributes-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_addGrpC_tags_1, + sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneAttributes_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_LaneAttributes_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneAttributes.c b/vcits/cpm/src/LaneAttributes.c new file mode 100644 index 0000000..187f9d1 --- /dev/null +++ b/vcits/cpm/src/LaneAttributes.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneAttributes.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_LaneAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, directionalUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDirection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "directionalUse" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, sharedWith), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneSharing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sharedWith" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, laneType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_LaneTypeAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneType" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_LaneAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_LaneAttributes_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* directionalUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sharedWith */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1 = { + sizeof(struct LaneAttributes), + offsetof(struct LaneAttributes, _asn_ctx), + asn_MAP_LaneAttributes_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_LaneAttributes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes = { + "LaneAttributes", + "LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_tags_1, + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneAttributes_1, + 4, /* Elements count */ + &asn_SPC_LaneAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneConnectionID.c b/vcits/cpm/src/LaneConnectionID.c new file mode 100644 index 0000000..a425d4a --- /dev/null +++ b/vcits/cpm/src/LaneConnectionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneConnectionID.h" + +int +LaneConnectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneConnectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneConnectionID = { + "LaneConnectionID", + "LaneConnectionID", + &asn_OP_NativeInteger, + asn_DEF_LaneConnectionID_tags_1, + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + asn_DEF_LaneConnectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneConnectionID_constr_1, &asn_PER_type_LaneConnectionID_constr_1, LaneConnectionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/LaneDataAttribute.c b/vcits/cpm/src/LaneDataAttribute.c new file mode 100644 index 0000000..6903e3b --- /dev/null +++ b/vcits/cpm/src/LaneDataAttribute.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneDataAttribute.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_LaneDataAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct LaneDataAttribute__regional), + offsetof(struct LaneDataAttribute__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.pathEndPointAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathEndPointAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointCenter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointCenter" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointLeft), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointRight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneAngle), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MergeDivergeNodeAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneDataAttribute_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathEndPointAngle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneCrownPointCenter */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneCrownPointLeft */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneCrownPointRight */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAngle */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1 = { + sizeof(struct LaneDataAttribute), + offsetof(struct LaneDataAttribute, _asn_ctx), + offsetof(struct LaneDataAttribute, present), + sizeof(((struct LaneDataAttribute *)0)->present), + asn_MAP_LaneDataAttribute_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute = { + "LaneDataAttribute", + "LaneDataAttribute", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LaneDataAttribute_constr_1, &asn_PER_type_LaneDataAttribute_constr_1, CHOICE_constraint }, + asn_MBR_LaneDataAttribute_1, + 7, /* Elements count */ + &asn_SPC_LaneDataAttribute_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneDataAttributeList.c b/vcits/cpm/src/LaneDataAttributeList.c new file mode 100644 index 0000000..368ab9a --- /dev/null +++ b/vcits/cpm/src/LaneDataAttributeList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneDataAttributeList.h" + +#include "LaneDataAttribute.h" +static asn_oer_constraints_t asn_OER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_LaneDataAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneDataAttributeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1 = { + sizeof(struct LaneDataAttributeList), + offsetof(struct LaneDataAttributeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList = { + "LaneDataAttributeList", + "LaneDataAttributeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneDataAttributeList_tags_1, + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + asn_DEF_LaneDataAttributeList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDataAttributeList_constr_1, &asn_PER_type_LaneDataAttributeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneDataAttributeList_1, + 1, /* Single element */ + &asn_SPC_LaneDataAttributeList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneDirection.c b/vcits/cpm/src/LaneDirection.c new file mode 100644 index 0000000..565643c --- /dev/null +++ b/vcits/cpm/src/LaneDirection.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneDirection.h" + +int +LaneDirection_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +asn_per_constraints_t asn_PER_type_LaneDirection_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneDirection = { + "LaneDirection", + "LaneDirection", + &asn_OP_BIT_STRING, + asn_DEF_LaneDirection_tags_1, + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + asn_DEF_LaneDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDirection_constr_1, &asn_PER_type_LaneDirection_constr_1, LaneDirection_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneID.c b/vcits/cpm/src/LaneID.c new file mode 100644 index 0000000..c571d0a --- /dev/null +++ b/vcits/cpm/src/LaneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneID.h" + +int +LaneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneID = { + "LaneID", + "LaneID", + &asn_OP_NativeInteger, + asn_DEF_LaneID_tags_1, + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + asn_DEF_LaneID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneID_constr_1, &asn_PER_type_LaneID_constr_1, LaneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/LaneList.c b/vcits/cpm/src/LaneList.c new file mode 100644 index 0000000..dae1282 --- /dev/null +++ b/vcits/cpm/src/LaneList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneList.h" + +#include "GenericLane.h" +static asn_oer_constraints_t asn_OER_type_LaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_LaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1 = { + sizeof(struct LaneList), + offsetof(struct LaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneList = { + "LaneList", + "LaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneList_tags_1, + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + asn_DEF_LaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneList_constr_1, &asn_PER_type_LaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneList_1, + 1, /* Single element */ + &asn_SPC_LaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LanePosition.c b/vcits/cpm/src/LanePosition.c new file mode 100644 index 0000000..e1f3815 --- /dev/null +++ b/vcits/cpm/src/LanePosition.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LanePosition.h" + +int +LanePosition_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1 && value <= 14)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LanePosition_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-1..14) */, + -1}; +asn_per_constraints_t asn_PER_type_LanePosition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, -1, 14 } /* (-1..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LanePosition = { + "LanePosition", + "LanePosition", + &asn_OP_NativeInteger, + asn_DEF_LanePosition_tags_1, + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + asn_DEF_LanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + { &asn_OER_type_LanePosition_constr_1, &asn_PER_type_LanePosition_constr_1, LanePosition_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/LaneSharing.c b/vcits/cpm/src/LaneSharing.c new file mode 100644 index 0000000..9828420 --- /dev/null +++ b/vcits/cpm/src/LaneSharing.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneSharing.h" + +int +LaneSharing_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneSharing_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_LaneSharing_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneSharing_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneSharing = { + "LaneSharing", + "LaneSharing", + &asn_OP_BIT_STRING, + asn_DEF_LaneSharing_tags_1, + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + asn_DEF_LaneSharing_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneSharing_constr_1, &asn_PER_type_LaneSharing_constr_1, LaneSharing_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneTypeAttributes.c b/vcits/cpm/src/LaneTypeAttributes.c new file mode 100644 index 0000000..b05a073 --- /dev/null +++ b/vcits/cpm/src/LaneTypeAttributes.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneTypeAttributes.h" + +static asn_oer_constraints_t asn_OER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.vehicle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Vehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.crosswalk), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Crosswalk, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crosswalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.bikeLane), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Bike, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bikeLane" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.sidewalk), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Sidewalk, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sidewalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.median), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Barrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "median" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.striping), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Striping, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "striping" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.trackedVehicle), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_TrackedVehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trackedVehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.parking), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Parking, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "parking" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneTypeAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* crosswalk */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bikeLane */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sidewalk */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* median */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* striping */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* trackedVehicle */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* parking */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1 = { + sizeof(struct LaneTypeAttributes), + offsetof(struct LaneTypeAttributes, _asn_ctx), + offsetof(struct LaneTypeAttributes, present), + sizeof(((struct LaneTypeAttributes *)0)->present), + asn_MAP_LaneTypeAttributes_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + 8 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes = { + "LaneTypeAttributes", + "LaneTypeAttributes", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LaneTypeAttributes_constr_1, &asn_PER_type_LaneTypeAttributes_constr_1, CHOICE_constraint }, + asn_MBR_LaneTypeAttributes_1, + 8, /* Elements count */ + &asn_SPC_LaneTypeAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LaneWidth.c b/vcits/cpm/src/LaneWidth.c new file mode 100644 index 0000000..26ffdda --- /dev/null +++ b/vcits/cpm/src/LaneWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LaneWidth.h" + +int +LaneWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneWidth_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneWidth = { + "LaneWidth", + "LaneWidth", + &asn_OP_NativeInteger, + asn_DEF_LaneWidth_tags_1, + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + asn_DEF_LaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneWidth_constr_1, &asn_PER_type_LaneWidth_constr_1, LaneWidth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/LateralAcceleration.c b/vcits/cpm/src/LateralAcceleration.c new file mode 100644 index 0000000..179294b --- /dev/null +++ b/vcits/cpm/src/LateralAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LateralAcceleration.h" + +asn_TYPE_member_t asn_MBR_LateralAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LateralAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LateralAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LateralAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateralAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lateralAccelerationConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LateralAcceleration_specs_1 = { + sizeof(struct LateralAcceleration), + offsetof(struct LateralAcceleration, _asn_ctx), + asn_MAP_LateralAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LateralAcceleration = { + "LateralAcceleration", + "LateralAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LateralAcceleration_tags_1, + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LateralAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LateralAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LateralAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LateralAccelerationValue.c b/vcits/cpm/src/LateralAccelerationValue.c new file mode 100644 index 0000000..4ebd515 --- /dev/null +++ b/vcits/cpm/src/LateralAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LateralAccelerationValue.h" + +int +LateralAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LateralAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue = { + "LateralAccelerationValue", + "LateralAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LateralAccelerationValue_tags_1, + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LateralAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LateralAccelerationValue_constr_1, &asn_PER_type_LateralAccelerationValue_constr_1, LateralAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Latitude.c b/vcits/cpm/src/Latitude.c new file mode 100644 index 0000000..5948e01 --- /dev/null +++ b/vcits/cpm/src/Latitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Latitude.h" + +int +Latitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -900000000 && value <= 900000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Latitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-900000000..900000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Latitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 31, -1, -900000000, 900000001 } /* (-900000000..900000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_Latitude_tags_1, + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + asn_DEF_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Latitude_constr_1, &asn_PER_type_Latitude_constr_1, Latitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/LayerID.c b/vcits/cpm/src/LayerID.c new file mode 100644 index 0000000..e269c48 --- /dev/null +++ b/vcits/cpm/src/LayerID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LayerID.h" + +int +LayerID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LayerID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..100) */, + -1}; +asn_per_constraints_t asn_PER_type_LayerID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LayerID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerID = { + "LayerID", + "LayerID", + &asn_OP_NativeInteger, + asn_DEF_LayerID_tags_1, + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + asn_DEF_LayerID_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + { &asn_OER_type_LayerID_constr_1, &asn_PER_type_LayerID_constr_1, LayerID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/LayerType.c b/vcits/cpm/src/LayerType.c new file mode 100644 index 0000000..138959b --- /dev/null +++ b/vcits/cpm/src/LayerType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LayerType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LayerType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LayerType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_LayerType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 12, "mixedContent" }, + { 2, 14, "generalMapData" }, + { 3, 16, "intersectionData" }, + { 4, 9, "curveData" }, + { 5, 18, "roadwaySectionData" }, + { 6, 15, "parkingAreaData" }, + { 7, 14, "sharedLaneData" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_LayerType_enum2value_1[] = { + 4, /* curveData(4) */ + 2, /* generalMapData(2) */ + 3, /* intersectionData(3) */ + 1, /* mixedContent(1) */ + 0, /* none(0) */ + 6, /* parkingAreaData(6) */ + 5, /* roadwaySectionData(5) */ + 7 /* sharedLaneData(7) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1 = { + asn_MAP_LayerType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_LayerType_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_LayerType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerType = { + "LayerType", + "LayerType", + &asn_OP_NativeEnumerated, + asn_DEF_LayerType_tags_1, + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + asn_DEF_LayerType_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + { &asn_OER_type_LayerType_constr_1, &asn_PER_type_LayerType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_LayerType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LightBarSirenInUse.c b/vcits/cpm/src/LightBarSirenInUse.c new file mode 100644 index 0000000..2f8d7e1 --- /dev/null +++ b/vcits/cpm/src/LightBarSirenInUse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LightBarSirenInUse.h" + +int +LightBarSirenInUse_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +asn_per_constraints_t asn_PER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LightBarSirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse = { + "LightBarSirenInUse", + "LightBarSirenInUse", + &asn_OP_BIT_STRING, + asn_DEF_LightBarSirenInUse_tags_1, + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + asn_DEF_LightBarSirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + { &asn_OER_type_LightBarSirenInUse_constr_1, &asn_PER_type_LightBarSirenInUse_constr_1, LightBarSirenInUse_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Longitude.c b/vcits/cpm/src/Longitude.c new file mode 100644 index 0000000..866db7d --- /dev/null +++ b/vcits/cpm/src/Longitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Longitude.h" + +int +Longitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1800000000 && value <= 1800000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Longitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-1800000000..1800000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Longitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, -1800000000, 1800000001 } /* (-1800000000..1800000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_Longitude_tags_1, + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + asn_DEF_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Longitude_constr_1, &asn_PER_type_Longitude_constr_1, Longitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/LongitudinalAcceleration.c b/vcits/cpm/src/LongitudinalAcceleration.c new file mode 100644 index 0000000..e8d6429 --- /dev/null +++ b/vcits/cpm/src/LongitudinalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LongitudinalAcceleration.h" + +asn_TYPE_member_t asn_MBR_LongitudinalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LongitudinalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longitudinalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalAccelerationConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LongitudinalAcceleration_specs_1 = { + sizeof(struct LongitudinalAcceleration), + offsetof(struct LongitudinalAcceleration, _asn_ctx), + asn_MAP_LongitudinalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration = { + "LongitudinalAcceleration", + "LongitudinalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LongitudinalAcceleration_tags_1, + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LongitudinalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LongitudinalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LongitudinalAccelerationValue.c b/vcits/cpm/src/LongitudinalAccelerationValue.c new file mode 100644 index 0000000..1bdbb61 --- /dev/null +++ b/vcits/cpm/src/LongitudinalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LongitudinalAccelerationValue.h" + +int +LongitudinalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue = { + "LongitudinalAccelerationValue", + "LongitudinalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LongitudinalAccelerationValue_tags_1, + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LongitudinalAccelerationValue_constr_1, &asn_PER_type_LongitudinalAccelerationValue_constr_1, LongitudinalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/LongitudinalLanePosition.c b/vcits/cpm/src/LongitudinalLanePosition.c new file mode 100644 index 0000000..5cfe5c4 --- /dev/null +++ b/vcits/cpm/src/LongitudinalLanePosition.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LongitudinalLanePosition.h" + +asn_TYPE_member_t asn_MBR_LongitudinalLanePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalLanePosition, longitudinalLanePositionValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalLanePositionValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalLanePositionValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalLanePosition, longitudinalLanePositionConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalLanePositionConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalLanePositionConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalLanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LongitudinalLanePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longitudinalLanePositionValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalLanePositionConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LongitudinalLanePosition_specs_1 = { + sizeof(struct LongitudinalLanePosition), + offsetof(struct LongitudinalLanePosition, _asn_ctx), + asn_MAP_LongitudinalLanePosition_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalLanePosition = { + "LongitudinalLanePosition", + "LongitudinalLanePosition", + &asn_OP_SEQUENCE, + asn_DEF_LongitudinalLanePosition_tags_1, + sizeof(asn_DEF_LongitudinalLanePosition_tags_1) + /sizeof(asn_DEF_LongitudinalLanePosition_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalLanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalLanePosition_tags_1) + /sizeof(asn_DEF_LongitudinalLanePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LongitudinalLanePosition_1, + 2, /* Elements count */ + &asn_SPC_LongitudinalLanePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/LongitudinalLanePositionConfidence.c b/vcits/cpm/src/LongitudinalLanePositionConfidence.c new file mode 100644 index 0000000..9c88b77 --- /dev/null +++ b/vcits/cpm/src/LongitudinalLanePositionConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LongitudinalLanePositionConfidence.h" + +int +LongitudinalLanePositionConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 102)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LongitudinalLanePositionConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..102) */, + -1}; +asn_per_constraints_t asn_PER_type_LongitudinalLanePositionConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 102 } /* (0..102) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalLanePositionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalLanePositionConfidence = { + "LongitudinalLanePositionConfidence", + "LongitudinalLanePositionConfidence", + &asn_OP_NativeInteger, + asn_DEF_LongitudinalLanePositionConfidence_tags_1, + sizeof(asn_DEF_LongitudinalLanePositionConfidence_tags_1) + /sizeof(asn_DEF_LongitudinalLanePositionConfidence_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalLanePositionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalLanePositionConfidence_tags_1) + /sizeof(asn_DEF_LongitudinalLanePositionConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_LongitudinalLanePositionConfidence_constr_1, &asn_PER_type_LongitudinalLanePositionConfidence_constr_1, LongitudinalLanePositionConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/LongitudinalLanePositionValue.c b/vcits/cpm/src/LongitudinalLanePositionValue.c new file mode 100644 index 0000000..ed77e1a --- /dev/null +++ b/vcits/cpm/src/LongitudinalLanePositionValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LongitudinalLanePositionValue.h" + +int +LongitudinalLanePositionValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LongitudinalLanePositionValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_LongitudinalLanePositionValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalLanePositionValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalLanePositionValue = { + "LongitudinalLanePositionValue", + "LongitudinalLanePositionValue", + &asn_OP_NativeInteger, + asn_DEF_LongitudinalLanePositionValue_tags_1, + sizeof(asn_DEF_LongitudinalLanePositionValue_tags_1) + /sizeof(asn_DEF_LongitudinalLanePositionValue_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalLanePositionValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalLanePositionValue_tags_1) + /sizeof(asn_DEF_LongitudinalLanePositionValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LongitudinalLanePositionValue_constr_1, &asn_PER_type_LongitudinalLanePositionValue_constr_1, LongitudinalLanePositionValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/LowFrequencyContainer.c b/vcits/cpm/src/LowFrequencyContainer.c new file mode 100644 index 0000000..0c1359c --- /dev/null +++ b/vcits/cpm/src/LowFrequencyContainer.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "LowFrequencyContainer.h" + +static asn_oer_constraints_t asn_OER_type_LowFrequencyContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LowFrequencyContainer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LowFrequencyContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LowFrequencyContainer, choice.basicVehicleContainerLowFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleContainerLowFrequency, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "basicVehicleContainerLowFrequency" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LowFrequencyContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* basicVehicleContainerLowFrequency */ +}; +asn_CHOICE_specifics_t asn_SPC_LowFrequencyContainer_specs_1 = { + sizeof(struct LowFrequencyContainer), + offsetof(struct LowFrequencyContainer, _asn_ctx), + offsetof(struct LowFrequencyContainer, present), + sizeof(((struct LowFrequencyContainer *)0)->present), + asn_MAP_LowFrequencyContainer_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LowFrequencyContainer = { + "LowFrequencyContainer", + "LowFrequencyContainer", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LowFrequencyContainer_constr_1, &asn_PER_type_LowFrequencyContainer_constr_1, CHOICE_constraint }, + asn_MBR_LowFrequencyContainer_1, + 1, /* Elements count */ + &asn_SPC_LowFrequencyContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ManeuverAssistList.c b/vcits/cpm/src/ManeuverAssistList.c new file mode 100644 index 0000000..c8e8fd4 --- /dev/null +++ b/vcits/cpm/src/ManeuverAssistList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ManeuverAssistList.h" + +#include "ConnectionManeuverAssist.h" +static asn_oer_constraints_t asn_OER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ManeuverAssistList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1 = { + sizeof(struct ManeuverAssistList), + offsetof(struct ManeuverAssistList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList = { + "ManeuverAssistList", + "ManeuverAssistList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ManeuverAssistList_tags_1, + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + asn_DEF_ManeuverAssistList_tags_1, /* Same as above */ + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + { &asn_OER_type_ManeuverAssistList_constr_1, &asn_PER_type_ManeuverAssistList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ManeuverAssistList_1, + 1, /* Single element */ + &asn_SPC_ManeuverAssistList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/MapData-addGrpC.c b/vcits/cpm/src/MapData-addGrpC.c new file mode 100644 index 0000000..ae9fa2a --- /dev/null +++ b/vcits/cpm/src/MapData-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "MapData-addGrpC.h" + +#include "SignalHeadLocationList.h" +asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData_addGrpC, signalHeadLocations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalHeadLocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalHeadLocations" + }, +}; +static const int asn_MAP_MapData_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MapData_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* signalHeadLocations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1 = { + sizeof(struct MapData_addGrpC), + offsetof(struct MapData_addGrpC, _asn_ctx), + asn_MAP_MapData_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MapData_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC = { + "MapData-addGrpC", + "MapData-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MapData_addGrpC_tags_1, + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MapData_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapData_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MapData_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/MapData.c b/vcits/cpm/src/MapData.c new file mode 100644 index 0000000..407e8da --- /dev/null +++ b/vcits/cpm/src/MapData.c @@ -0,0 +1,216 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "MapData.h" + +#include "IntersectionGeometryList.h" +#include "RoadSegmentList.h" +#include "DataParameters.h" +#include "RestrictionClassList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MapData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct MapData__regional), + offsetof(struct MapData__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_MapData_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct MapData, msgIssueRevision), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgIssueRevision" + }, + { ATF_POINTER, 7, offsetof(struct MapData, layerType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layerType" + }, + { ATF_POINTER, 6, offsetof(struct MapData, layerID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layerID" + }, + { ATF_POINTER, 5, offsetof(struct MapData, intersections), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionGeometryList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 4, offsetof(struct MapData, roadSegments), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadSegments" + }, + { ATF_POINTER, 3, offsetof(struct MapData, dataParameters), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DataParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dataParameters" + }, + { ATF_POINTER, 2, offsetof(struct MapData, restrictionList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "restrictionList" + }, + { ATF_POINTER, 1, offsetof(struct MapData, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MapData_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* msgIssueRevision */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* layerType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* layerID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* roadSegments */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dataParameters */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* restrictionList */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_MapData_specs_1 = { + sizeof(struct MapData), + offsetof(struct MapData, _asn_ctx), + asn_MAP_MapData_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_MapData_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData = { + "MapData", + "MapData", + &asn_OP_SEQUENCE, + asn_DEF_MapData_tags_1, + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + asn_DEF_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapData_1, + 9, /* Elements count */ + &asn_SPC_MapData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/MatchedPosition.c b/vcits/cpm/src/MatchedPosition.c new file mode 100644 index 0000000..de95652 --- /dev/null +++ b/vcits/cpm/src/MatchedPosition.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "MatchedPosition.h" + +#include "LongitudinalLanePosition.h" +asn_TYPE_member_t asn_MBR_MatchedPosition_1[] = { + { ATF_POINTER, 2, offsetof(struct MatchedPosition, laneID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 1, offsetof(struct MatchedPosition, longitudinalLanePosition), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalLanePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalLanePosition" + }, +}; +static const int asn_MAP_MatchedPosition_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_MatchedPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MatchedPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalLanePosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MatchedPosition_specs_1 = { + sizeof(struct MatchedPosition), + offsetof(struct MatchedPosition, _asn_ctx), + asn_MAP_MatchedPosition_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_MatchedPosition_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MatchedPosition = { + "MatchedPosition", + "MatchedPosition", + &asn_OP_SEQUENCE, + asn_DEF_MatchedPosition_tags_1, + sizeof(asn_DEF_MatchedPosition_tags_1) + /sizeof(asn_DEF_MatchedPosition_tags_1[0]), /* 1 */ + asn_DEF_MatchedPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_MatchedPosition_tags_1) + /sizeof(asn_DEF_MatchedPosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MatchedPosition_1, + 2, /* Elements count */ + &asn_SPC_MatchedPosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/MergeDivergeNodeAngle.c b/vcits/cpm/src/MergeDivergeNodeAngle.c new file mode 100644 index 0000000..360f0f1 --- /dev/null +++ b/vcits/cpm/src/MergeDivergeNodeAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "MergeDivergeNodeAngle.h" + +int +MergeDivergeNodeAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -180 && value <= 180)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-180..180) */, + -1}; +asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -180, 180 } /* (-180..180) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MergeDivergeNodeAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle = { + "MergeDivergeNodeAngle", + "MergeDivergeNodeAngle", + &asn_OP_NativeInteger, + asn_DEF_MergeDivergeNodeAngle_tags_1, + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + asn_DEF_MergeDivergeNodeAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_MergeDivergeNodeAngle_constr_1, &asn_PER_type_MergeDivergeNodeAngle_constr_1, MergeDivergeNodeAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/MinuteOfTheYear.c b/vcits/cpm/src/MinuteOfTheYear.c new file mode 100644 index 0000000..eebb205 --- /dev/null +++ b/vcits/cpm/src/MinuteOfTheYear.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "MinuteOfTheYear.h" + +int +MinuteOfTheYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 527040)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..527040) */, + -1}; +asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 527040 } /* (0..527040) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MinuteOfTheYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear = { + "MinuteOfTheYear", + "MinuteOfTheYear", + &asn_OP_NativeInteger, + asn_DEF_MinuteOfTheYear_tags_1, + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + asn_DEF_MinuteOfTheYear_tags_1, /* Same as above */ + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + { &asn_OER_type_MinuteOfTheYear_constr_1, &asn_PER_type_MinuteOfTheYear_constr_1, MinuteOfTheYear_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/MovementEvent-addGrpC.c b/vcits/cpm/src/MovementEvent-addGrpC.c new file mode 100644 index 0000000..aefbf13 --- /dev/null +++ b/vcits/cpm/src/MovementEvent-addGrpC.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "MovementEvent-addGrpC.h" + +asn_TYPE_member_t asn_MBR_MovementEvent_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementEvent_addGrpC, stateChangeReason), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExceptionalCondition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stateChangeReason" + }, +}; +static const int asn_MAP_MovementEvent_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* stateChangeReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpC_specs_1 = { + sizeof(struct MovementEvent_addGrpC), + offsetof(struct MovementEvent_addGrpC, _asn_ctx), + asn_MAP_MovementEvent_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MovementEvent_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpC = { + "MovementEvent-addGrpC", + "MovementEvent-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_addGrpC_tags_1, + sizeof(asn_DEF_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementEvent_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MovementEvent_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/MovementEvent.c b/vcits/cpm/src/MovementEvent.c new file mode 100644 index 0000000..b6cf920 --- /dev/null +++ b/vcits/cpm/src/MovementEvent.c @@ -0,0 +1,164 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "MovementEvent.h" + +#include "TimeChangeDetails.h" +#include "AdvisorySpeedList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct MovementEvent__regional), + offsetof(struct MovementEvent__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementEvent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MovementEvent, eventState), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementPhaseState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventState" + }, + { ATF_POINTER, 3, offsetof(struct MovementEvent, timing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeChangeDetails, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timing" + }, + { ATF_POINTER, 2, offsetof(struct MovementEvent, speeds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speeds" + }, + { ATF_POINTER, 1, offsetof(struct MovementEvent, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementEvent_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventState */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* speeds */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1 = { + sizeof(struct MovementEvent), + offsetof(struct MovementEvent, _asn_ctx), + asn_MAP_MovementEvent_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_MovementEvent_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent = { + "MovementEvent", + "MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_tags_1, + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementEvent_1, + 4, /* Elements count */ + &asn_SPC_MovementEvent_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/MovementEventList.c b/vcits/cpm/src/MovementEventList.c new file mode 100644 index 0000000..8f6e1b4 --- /dev/null +++ b/vcits/cpm/src/MovementEventList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "MovementEventList.h" + +#include "MovementEvent.h" +static asn_oer_constraints_t asn_OER_type_MovementEventList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_MovementEventList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MovementEventList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementEventList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1 = { + sizeof(struct MovementEventList), + offsetof(struct MovementEventList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEventList = { + "MovementEventList", + "MovementEventList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementEventList_tags_1, + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + asn_DEF_MovementEventList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementEventList_constr_1, &asn_PER_type_MovementEventList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MovementEventList_1, + 1, /* Single element */ + &asn_SPC_MovementEventList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/MovementList.c b/vcits/cpm/src/MovementList.c new file mode 100644 index 0000000..beaa227 --- /dev/null +++ b/vcits/cpm/src/MovementList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "MovementList.h" + +#include "MovementState.h" +static asn_oer_constraints_t asn_OER_type_MovementList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_MovementList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MovementList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1 = { + sizeof(struct MovementList), + offsetof(struct MovementList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementList = { + "MovementList", + "MovementList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementList_tags_1, + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + asn_DEF_MovementList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementList_constr_1, &asn_PER_type_MovementList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MovementList_1, + 1, /* Single element */ + &asn_SPC_MovementList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/MovementPhaseState.c b/vcits/cpm/src/MovementPhaseState.c new file mode 100644 index 0000000..d1a9e2e --- /dev/null +++ b/vcits/cpm/src/MovementPhaseState.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "MovementPhaseState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_MovementPhaseState_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 4, "dark" }, + { 2, 17, "stop-Then-Proceed" }, + { 3, 15, "stop-And-Remain" }, + { 4, 12, "pre-Movement" }, + { 5, 27, "permissive-Movement-Allowed" }, + { 6, 26, "protected-Movement-Allowed" }, + { 7, 20, "permissive-clearance" }, + { 8, 19, "protected-clearance" }, + { 9, 27, "caution-Conflicting-Traffic" } +}; +static const unsigned int asn_MAP_MovementPhaseState_enum2value_1[] = { + 9, /* caution-Conflicting-Traffic(9) */ + 1, /* dark(1) */ + 5, /* permissive-Movement-Allowed(5) */ + 7, /* permissive-clearance(7) */ + 4, /* pre-Movement(4) */ + 6, /* protected-Movement-Allowed(6) */ + 8, /* protected-clearance(8) */ + 3, /* stop-And-Remain(3) */ + 2, /* stop-Then-Proceed(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1 = { + asn_MAP_MovementPhaseState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_MovementPhaseState_enum2value_1, /* N => "tag"; sorted by N */ + 10, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_MovementPhaseState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MovementPhaseState = { + "MovementPhaseState", + "MovementPhaseState", + &asn_OP_NativeEnumerated, + asn_DEF_MovementPhaseState_tags_1, + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + asn_DEF_MovementPhaseState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementPhaseState_constr_1, &asn_PER_type_MovementPhaseState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MovementPhaseState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/MovementState.c b/vcits/cpm/src/MovementState.c new file mode 100644 index 0000000..6c68965 --- /dev/null +++ b/vcits/cpm/src/MovementState.c @@ -0,0 +1,173 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "MovementState.h" + +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct MovementState__regional), + offsetof(struct MovementState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementState_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementState, movementName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "movementName" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, state_time_speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementEventList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "state-time-speed" + }, + { ATF_POINTER, 2, offsetof(struct MovementState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct MovementState, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementState_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_MovementState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* movementName */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* state-time-speed */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1 = { + sizeof(struct MovementState), + offsetof(struct MovementState, _asn_ctx), + asn_MAP_MovementState_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_MovementState_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementState = { + "MovementState", + "MovementState", + &asn_OP_SEQUENCE, + asn_DEF_MovementState_tags_1, + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + asn_DEF_MovementState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementState_1, + 5, /* Elements count */ + &asn_SPC_MovementState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/MsgCount.c b/vcits/cpm/src/MsgCount.c new file mode 100644 index 0000000..1d0c49f --- /dev/null +++ b/vcits/cpm/src/MsgCount.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "MsgCount.h" + +int +MsgCount_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MsgCount_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_MsgCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MsgCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MsgCount = { + "MsgCount", + "MsgCount", + &asn_OP_NativeInteger, + asn_DEF_MsgCount_tags_1, + sizeof(asn_DEF_MsgCount_tags_1) + /sizeof(asn_DEF_MsgCount_tags_1[0]), /* 1 */ + asn_DEF_MsgCount_tags_1, /* Same as above */ + sizeof(asn_DEF_MsgCount_tags_1) + /sizeof(asn_DEF_MsgCount_tags_1[0]), /* 1 */ + { &asn_OER_type_MsgCount_constr_1, &asn_PER_type_MsgCount_constr_1, MsgCount_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Node-LLmD-64b.c b/vcits/cpm/src/Node-LLmD-64b.c new file mode 100644 index 0000000..e23294d --- /dev/null +++ b/vcits/cpm/src/Node-LLmD-64b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Node-LLmD-64b.h" + +asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LLmD_64b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LLmD_64b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1 = { + sizeof(struct Node_LLmD_64b), + offsetof(struct Node_LLmD_64b, _asn_ctx), + asn_MAP_Node_LLmD_64b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b = { + "Node-LLmD-64b", + "Node-LLmD-64b", + &asn_OP_SEQUENCE, + asn_DEF_Node_LLmD_64b_tags_1, + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + asn_DEF_Node_LLmD_64b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_LLmD_64b_1, + 2, /* Elements count */ + &asn_SPC_Node_LLmD_64b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Node-XY-20b.c b/vcits/cpm/src/Node-XY-20b.c new file mode 100644 index 0000000..d902477 --- /dev/null +++ b/vcits/cpm/src/Node-XY-20b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Node-XY-20b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_20b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_20b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_20b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1 = { + sizeof(struct Node_XY_20b), + offsetof(struct Node_XY_20b, _asn_ctx), + asn_MAP_Node_XY_20b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_20b = { + "Node-XY-20b", + "Node-XY-20b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_20b_tags_1, + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_20b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_20b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_20b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Node-XY-22b.c b/vcits/cpm/src/Node-XY-22b.c new file mode 100644 index 0000000..ce0cdf4 --- /dev/null +++ b/vcits/cpm/src/Node-XY-22b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Node-XY-22b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_22b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_22b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_22b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1 = { + sizeof(struct Node_XY_22b), + offsetof(struct Node_XY_22b, _asn_ctx), + asn_MAP_Node_XY_22b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_22b = { + "Node-XY-22b", + "Node-XY-22b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_22b_tags_1, + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_22b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_22b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_22b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Node-XY-24b.c b/vcits/cpm/src/Node-XY-24b.c new file mode 100644 index 0000000..83310ee --- /dev/null +++ b/vcits/cpm/src/Node-XY-24b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Node-XY-24b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_24b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_24b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_24b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1 = { + sizeof(struct Node_XY_24b), + offsetof(struct Node_XY_24b, _asn_ctx), + asn_MAP_Node_XY_24b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_24b = { + "Node-XY-24b", + "Node-XY-24b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_24b_tags_1, + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_24b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_24b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_24b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Node-XY-26b.c b/vcits/cpm/src/Node-XY-26b.c new file mode 100644 index 0000000..e21c8e8 --- /dev/null +++ b/vcits/cpm/src/Node-XY-26b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Node-XY-26b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_26b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_26b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_26b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1 = { + sizeof(struct Node_XY_26b), + offsetof(struct Node_XY_26b, _asn_ctx), + asn_MAP_Node_XY_26b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_26b = { + "Node-XY-26b", + "Node-XY-26b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_26b_tags_1, + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_26b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_26b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_26b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Node-XY-28b.c b/vcits/cpm/src/Node-XY-28b.c new file mode 100644 index 0000000..44773f9 --- /dev/null +++ b/vcits/cpm/src/Node-XY-28b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Node-XY-28b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_28b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_28b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_28b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1 = { + sizeof(struct Node_XY_28b), + offsetof(struct Node_XY_28b, _asn_ctx), + asn_MAP_Node_XY_28b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_28b = { + "Node-XY-28b", + "Node-XY-28b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_28b_tags_1, + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_28b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_28b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_28b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Node-XY-32b.c b/vcits/cpm/src/Node-XY-32b.c new file mode 100644 index 0000000..b6bf648 --- /dev/null +++ b/vcits/cpm/src/Node-XY-32b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Node-XY-32b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_32b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_32b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_32b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1 = { + sizeof(struct Node_XY_32b), + offsetof(struct Node_XY_32b, _asn_ctx), + asn_MAP_Node_XY_32b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_32b = { + "Node-XY-32b", + "Node-XY-32b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_32b_tags_1, + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_32b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_32b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_32b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Node.c b/vcits/cpm/src/Node.c new file mode 100644 index 0000000..5ec1ff5 --- /dev/null +++ b/vcits/cpm/src/Node.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Node.h" + +asn_TYPE_member_t asn_MBR_Node_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 3, offsetof(struct Node, lane), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 2, offsetof(struct Node, connectionID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 1, offsetof(struct Node, intersectionID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersectionID" + }, +}; +static const int asn_MAP_Node_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Node_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* intersectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_specs_1 = { + sizeof(struct Node), + offsetof(struct Node, _asn_ctx), + asn_MAP_Node_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Node_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node = { + "Node", + "Node", + &asn_OP_SEQUENCE, + asn_DEF_Node_tags_1, + sizeof(asn_DEF_Node_tags_1) + /sizeof(asn_DEF_Node_tags_1[0]), /* 1 */ + asn_DEF_Node_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_tags_1) + /sizeof(asn_DEF_Node_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_1, + 4, /* Elements count */ + &asn_SPC_Node_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/NodeAttributeSet-addGrpC.c b/vcits/cpm/src/NodeAttributeSet-addGrpC.c new file mode 100644 index 0000000..d13047c --- /dev/null +++ b/vcits/cpm/src/NodeAttributeSet-addGrpC.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "NodeAttributeSet-addGrpC.h" + +#include "NodeLink.h" +#include "Node.h" +asn_TYPE_member_t asn_MBR_NodeAttributeSet_addGrpC_1[] = { + { ATF_POINTER, 3, offsetof(struct NodeAttributeSet_addGrpC, ptvRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtvRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptvRequest" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSet_addGrpC, nodeLink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeLink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeLink" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSet_addGrpC, node), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node" + }, +}; +static const int asn_MAP_NodeAttributeSet_addGrpC_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSet_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSet_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptvRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeLink */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* node */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSet_addGrpC_specs_1 = { + sizeof(struct NodeAttributeSet_addGrpC), + offsetof(struct NodeAttributeSet_addGrpC, _asn_ctx), + asn_MAP_NodeAttributeSet_addGrpC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_NodeAttributeSet_addGrpC_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSet_addGrpC = { + "NodeAttributeSet-addGrpC", + "NodeAttributeSet-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSet_addGrpC_tags_1, + sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSet_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeAttributeSet_addGrpC_1, + 3, /* Elements count */ + &asn_SPC_NodeAttributeSet_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/NodeAttributeSetXY.c b/vcits/cpm/src/NodeAttributeSetXY.c new file mode 100644 index 0000000..4d3ae95 --- /dev/null +++ b/vcits/cpm/src/NodeAttributeSetXY.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "NodeAttributeSetXY.h" + +#include "NodeAttributeXYList.h" +#include "SegmentAttributeXYList.h" +#include "LaneDataAttributeList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_NodeAttributeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct NodeAttributeSetXY__regional), + offsetof(struct NodeAttributeSetXY__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[] = { + { ATF_POINTER, 7, offsetof(struct NodeAttributeSetXY, localNode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "localNode" + }, + { ATF_POINTER, 6, offsetof(struct NodeAttributeSetXY, disabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "disabled" + }, + { ATF_POINTER, 5, offsetof(struct NodeAttributeSetXY, enabled), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabled" + }, + { ATF_POINTER, 4, offsetof(struct NodeAttributeSetXY, data), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDataAttributeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "data" + }, + { ATF_POINTER, 3, offsetof(struct NodeAttributeSetXY, dWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dWidth" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSetXY, dElevation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dElevation" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSetXY, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_NodeAttributeSetXY_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSetXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* localNode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* disabled */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* enabled */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* data */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dElevation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1 = { + sizeof(struct NodeAttributeSetXY), + offsetof(struct NodeAttributeSetXY, _asn_ctx), + asn_MAP_NodeAttributeSetXY_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_NodeAttributeSetXY_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY = { + "NodeAttributeSetXY", + "NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSetXY_tags_1, + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeAttributeSetXY_1, + 7, /* Elements count */ + &asn_SPC_NodeAttributeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/NodeAttributeXY.c b/vcits/cpm/src/NodeAttributeXY.c new file mode 100644 index 0000000..480eb97 --- /dev/null +++ b/vcits/cpm/src/NodeAttributeXY.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "NodeAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 11 } /* (0..11,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_NodeAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 8, "stopLine" }, + { 2, 16, "roundedCapStyleA" }, + { 3, 16, "roundedCapStyleB" }, + { 4, 10, "mergePoint" }, + { 5, 12, "divergePoint" }, + { 6, 18, "downstreamStopLine" }, + { 7, 19, "downstreamStartNode" }, + { 8, 15, "closedToTraffic" }, + { 9, 10, "safeIsland" }, + { 10, 20, "curbPresentAtStepOff" }, + { 11, 14, "hydrantPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NodeAttributeXY_enum2value_1[] = { + 8, /* closedToTraffic(8) */ + 10, /* curbPresentAtStepOff(10) */ + 5, /* divergePoint(5) */ + 7, /* downstreamStartNode(7) */ + 6, /* downstreamStopLine(6) */ + 11, /* hydrantPresent(11) */ + 4, /* mergePoint(4) */ + 0, /* reserved(0) */ + 2, /* roundedCapStyleA(2) */ + 3, /* roundedCapStyleB(3) */ + 9, /* safeIsland(9) */ + 1 /* stopLine(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1 = { + asn_MAP_NodeAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NodeAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 12, /* Number of elements in the maps */ + 13, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY = { + "NodeAttributeXY", + "NodeAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_NodeAttributeXY_tags_1, + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeAttributeXY_constr_1, &asn_PER_type_NodeAttributeXY_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NodeAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/NodeAttributeXYList.c b/vcits/cpm/src/NodeAttributeXYList.c new file mode 100644 index 0000000..467f104 --- /dev/null +++ b/vcits/cpm/src/NodeAttributeXYList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "NodeAttributeXYList.h" + +static asn_oer_constraints_t asn_OER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_NodeAttributeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1 = { + sizeof(struct NodeAttributeXYList), + offsetof(struct NodeAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList = { + "NodeAttributeXYList", + "NodeAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeAttributeXYList_tags_1, + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeAttributeXYList_constr_1, &asn_PER_type_NodeAttributeXYList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_NodeAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/NodeLink.c b/vcits/cpm/src/NodeLink.c new file mode 100644 index 0000000..e2e1afc --- /dev/null +++ b/vcits/cpm/src/NodeLink.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "NodeLink.h" + +#include "Node.h" +static asn_oer_constraints_t asn_OER_type_NodeLink_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_NodeLink_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeLink_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeLink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeLink_specs_1 = { + sizeof(struct NodeLink), + offsetof(struct NodeLink, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeLink = { + "NodeLink", + "NodeLink", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeLink_tags_1, + sizeof(asn_DEF_NodeLink_tags_1) + /sizeof(asn_DEF_NodeLink_tags_1[0]), /* 1 */ + asn_DEF_NodeLink_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeLink_tags_1) + /sizeof(asn_DEF_NodeLink_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeLink_constr_1, &asn_PER_type_NodeLink_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeLink_1, + 1, /* Single element */ + &asn_SPC_NodeLink_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/NodeListXY.c b/vcits/cpm/src/NodeListXY.c new file mode 100644 index 0000000..b92dff8 --- /dev/null +++ b/vcits/cpm/src/NodeListXY.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "NodeListXY.h" + +static asn_oer_constraints_t asn_OER_type_NodeListXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeListXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeListXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.computed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ComputedLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "computed" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeListXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* computed */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1 = { + sizeof(struct NodeListXY), + offsetof(struct NodeListXY, _asn_ctx), + offsetof(struct NodeListXY, present), + sizeof(((struct NodeListXY *)0)->present), + asn_MAP_NodeListXY_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeListXY = { + "NodeListXY", + "NodeListXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeListXY_constr_1, &asn_PER_type_NodeListXY_constr_1, CHOICE_constraint }, + asn_MBR_NodeListXY_1, + 2, /* Elements count */ + &asn_SPC_NodeListXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/NodeOffsetPointXY.c b/vcits/cpm/src/NodeOffsetPointXY.c new file mode 100644 index 0000000..7e1fb8e --- /dev/null +++ b/vcits/cpm/src/NodeOffsetPointXY.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "NodeOffsetPointXY.h" + +static asn_oer_constraints_t asn_OER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_20b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY1" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_22b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY2" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_24b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY3" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_26b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY4" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_28b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY5" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_32b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY6" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_LatLon), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LLmD_64b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-LatLon" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeOffsetPointXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* node-XY1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* node-XY2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* node-XY3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* node-XY4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* node-XY5 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* node-XY6 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* node-LatLon */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1 = { + sizeof(struct NodeOffsetPointXY), + offsetof(struct NodeOffsetPointXY, _asn_ctx), + offsetof(struct NodeOffsetPointXY, present), + sizeof(((struct NodeOffsetPointXY *)0)->present), + asn_MAP_NodeOffsetPointXY_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY = { + "NodeOffsetPointXY", + "NodeOffsetPointXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeOffsetPointXY_constr_1, &asn_PER_type_NodeOffsetPointXY_constr_1, CHOICE_constraint }, + asn_MBR_NodeOffsetPointXY_1, + 8, /* Elements count */ + &asn_SPC_NodeOffsetPointXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/NodeOffsetPointZ.c b/vcits/cpm/src/NodeOffsetPointZ.c new file mode 100644 index 0000000..48d505a --- /dev/null +++ b/vcits/cpm/src/NodeOffsetPointZ.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "NodeOffsetPointZ.h" + +static asn_oer_constraints_t asn_OER_type_NodeOffsetPointZ_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeOffsetPointZ_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeOffsetPointZ_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointZ, choice.node_Z1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-Z1" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointZ, choice.node_Z2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-Z2" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointZ, choice.node_Z3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-Z3" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointZ, choice.node_Z4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-Z4" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointZ, choice.node_Z5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-Z5" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointZ, choice.node_Z6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-Z6" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeOffsetPointZ_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* node-Z1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* node-Z2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* node-Z3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* node-Z4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* node-Z5 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* node-Z6 */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointZ_specs_1 = { + sizeof(struct NodeOffsetPointZ), + offsetof(struct NodeOffsetPointZ, _asn_ctx), + offsetof(struct NodeOffsetPointZ, present), + sizeof(((struct NodeOffsetPointZ *)0)->present), + asn_MAP_NodeOffsetPointZ_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointZ = { + "NodeOffsetPointZ", + "NodeOffsetPointZ", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeOffsetPointZ_constr_1, &asn_PER_type_NodeOffsetPointZ_constr_1, CHOICE_constraint }, + asn_MBR_NodeOffsetPointZ_1, + 6, /* Elements count */ + &asn_SPC_NodeOffsetPointZ_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/NodeSetXY.c b/vcits/cpm/src/NodeSetXY.c new file mode 100644 index 0000000..d954721 --- /dev/null +++ b/vcits/cpm/src/NodeSetXY.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "NodeSetXY.h" + +#include "NodeXY.h" +static asn_oer_constraints_t asn_OER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(2..63)) */}; +asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 2, 63 } /* (SIZE(2..63)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeSetXY_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1 = { + sizeof(struct NodeSetXY), + offsetof(struct NodeSetXY, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeSetXY = { + "NodeSetXY", + "NodeSetXY", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeSetXY_tags_1, + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeSetXY_constr_1, &asn_PER_type_NodeSetXY_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeSetXY_1, + 1, /* Single element */ + &asn_SPC_NodeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/NodeXY.c b/vcits/cpm/src/NodeXY.c new file mode 100644 index 0000000..509137e --- /dev/null +++ b/vcits/cpm/src/NodeXY.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "NodeXY.h" + +#include "NodeAttributeSetXY.h" +asn_TYPE_member_t asn_MBR_NodeXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeXY, delta), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delta" + }, + { ATF_POINTER, 1, offsetof(struct NodeXY, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_NodeXY_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_NodeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* delta */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1 = { + sizeof(struct NodeXY), + offsetof(struct NodeXY, _asn_ctx), + asn_MAP_NodeXY_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_NodeXY_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeXY = { + "NodeXY", + "NodeXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeXY_tags_1, + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeXY_1, + 2, /* Elements count */ + &asn_SPC_NodeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/NumberOfOccupants.c b/vcits/cpm/src/NumberOfOccupants.c new file mode 100644 index 0000000..fed66dd --- /dev/null +++ b/vcits/cpm/src/NumberOfOccupants.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "NumberOfOccupants.h" + +int +NumberOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_NumberOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants = { + "NumberOfOccupants", + "NumberOfOccupants", + &asn_OP_NativeInteger, + asn_DEF_NumberOfOccupants_tags_1, + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_NumberOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_NumberOfOccupants_constr_1, &asn_PER_type_NumberOfOccupants_constr_1, NumberOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/NumberOfPerceivedObjects.c b/vcits/cpm/src/NumberOfPerceivedObjects.c new file mode 100644 index 0000000..242524e --- /dev/null +++ b/vcits/cpm/src/NumberOfPerceivedObjects.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "NumberOfPerceivedObjects.h" + +int +NumberOfPerceivedObjects_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NumberOfPerceivedObjects_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_NumberOfPerceivedObjects_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_NumberOfPerceivedObjects_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NumberOfPerceivedObjects = { + "NumberOfPerceivedObjects", + "NumberOfPerceivedObjects", + &asn_OP_NativeInteger, + asn_DEF_NumberOfPerceivedObjects_tags_1, + sizeof(asn_DEF_NumberOfPerceivedObjects_tags_1) + /sizeof(asn_DEF_NumberOfPerceivedObjects_tags_1[0]), /* 1 */ + asn_DEF_NumberOfPerceivedObjects_tags_1, /* Same as above */ + sizeof(asn_DEF_NumberOfPerceivedObjects_tags_1) + /sizeof(asn_DEF_NumberOfPerceivedObjects_tags_1[0]), /* 1 */ + { &asn_OER_type_NumberOfPerceivedObjects_constr_1, &asn_PER_type_NumberOfPerceivedObjects_constr_1, NumberOfPerceivedObjects_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ObjectAge.c b/vcits/cpm/src/ObjectAge.c new file mode 100644 index 0000000..a19b52f --- /dev/null +++ b/vcits/cpm/src/ObjectAge.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ObjectAge.h" + +int +ObjectAge_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ObjectAge_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1500) */, + -1}; +asn_per_constraints_t asn_PER_type_ObjectAge_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 1500 } /* (0..1500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ObjectAge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ObjectAge = { + "ObjectAge", + "ObjectAge", + &asn_OP_NativeInteger, + asn_DEF_ObjectAge_tags_1, + sizeof(asn_DEF_ObjectAge_tags_1) + /sizeof(asn_DEF_ObjectAge_tags_1[0]), /* 1 */ + asn_DEF_ObjectAge_tags_1, /* Same as above */ + sizeof(asn_DEF_ObjectAge_tags_1) + /sizeof(asn_DEF_ObjectAge_tags_1[0]), /* 1 */ + { &asn_OER_type_ObjectAge_constr_1, &asn_PER_type_ObjectAge_constr_1, ObjectAge_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ObjectClass.c b/vcits/cpm/src/ObjectClass.c new file mode 100644 index 0000000..c156c96 --- /dev/null +++ b/vcits/cpm/src/ObjectClass.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ObjectClass.h" + +static asn_oer_constraints_t asn_OER_type_class_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_class_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_class_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ObjectClass__class, choice.vehicle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleSubclass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct ObjectClass__class, choice.person), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PersonSubclass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "person" + }, + { ATF_NOFLAGS, 0, offsetof(struct ObjectClass__class, choice.animal), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AnimalSubclass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "animal" + }, + { ATF_NOFLAGS, 0, offsetof(struct ObjectClass__class, choice.other), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OtherSubclass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "other" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_class_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* person */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* animal */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* other */ +}; +static asn_CHOICE_specifics_t asn_SPC_class_specs_3 = { + sizeof(struct ObjectClass__class), + offsetof(struct ObjectClass__class, _asn_ctx), + offsetof(struct ObjectClass__class, present), + sizeof(((struct ObjectClass__class *)0)->present), + asn_MAP_class_tag2el_3, + 4, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_class_3 = { + "class", + "class", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_class_constr_3, &asn_PER_type_class_constr_3, CHOICE_constraint }, + asn_MBR_class_3, + 4, /* Elements count */ + &asn_SPC_class_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ObjectClass_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ObjectClass, confidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ClassConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct ObjectClass, Class), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_class_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "class" + }, +}; +static const ber_tlv_tag_t asn_DEF_ObjectClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ObjectClass_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* class */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ObjectClass_specs_1 = { + sizeof(struct ObjectClass), + offsetof(struct ObjectClass, _asn_ctx), + asn_MAP_ObjectClass_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ObjectClass = { + "ObjectClass", + "ObjectClass", + &asn_OP_SEQUENCE, + asn_DEF_ObjectClass_tags_1, + sizeof(asn_DEF_ObjectClass_tags_1) + /sizeof(asn_DEF_ObjectClass_tags_1[0]), /* 1 */ + asn_DEF_ObjectClass_tags_1, /* Same as above */ + sizeof(asn_DEF_ObjectClass_tags_1) + /sizeof(asn_DEF_ObjectClass_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ObjectClass_1, + 2, /* Elements count */ + &asn_SPC_ObjectClass_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ObjectClassDescription.c b/vcits/cpm/src/ObjectClassDescription.c new file mode 100644 index 0000000..6f37ec3 --- /dev/null +++ b/vcits/cpm/src/ObjectClassDescription.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ObjectClassDescription.h" + +#include "ObjectClass.h" +static asn_oer_constraints_t asn_OER_type_ObjectClassDescription_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_ObjectClassDescription_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ObjectClassDescription_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ObjectClass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ObjectClassDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ObjectClassDescription_specs_1 = { + sizeof(struct ObjectClassDescription), + offsetof(struct ObjectClassDescription, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ObjectClassDescription = { + "ObjectClassDescription", + "ObjectClassDescription", + &asn_OP_SEQUENCE_OF, + asn_DEF_ObjectClassDescription_tags_1, + sizeof(asn_DEF_ObjectClassDescription_tags_1) + /sizeof(asn_DEF_ObjectClassDescription_tags_1[0]), /* 1 */ + asn_DEF_ObjectClassDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_ObjectClassDescription_tags_1) + /sizeof(asn_DEF_ObjectClassDescription_tags_1[0]), /* 1 */ + { &asn_OER_type_ObjectClassDescription_constr_1, &asn_PER_type_ObjectClassDescription_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ObjectClassDescription_1, + 1, /* Single element */ + &asn_SPC_ObjectClassDescription_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ObjectConfidence.c b/vcits/cpm/src/ObjectConfidence.c new file mode 100644 index 0000000..5c951ef --- /dev/null +++ b/vcits/cpm/src/ObjectConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ObjectConfidence.h" + +int +ObjectConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 101)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ObjectConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..101) */, + -1}; +asn_per_constraints_t asn_PER_type_ObjectConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 101 } /* (0..101) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ObjectConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ObjectConfidence = { + "ObjectConfidence", + "ObjectConfidence", + &asn_OP_NativeInteger, + asn_DEF_ObjectConfidence_tags_1, + sizeof(asn_DEF_ObjectConfidence_tags_1) + /sizeof(asn_DEF_ObjectConfidence_tags_1[0]), /* 1 */ + asn_DEF_ObjectConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ObjectConfidence_tags_1) + /sizeof(asn_DEF_ObjectConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ObjectConfidence_constr_1, &asn_PER_type_ObjectConfidence_constr_1, ObjectConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ObjectDimension.c b/vcits/cpm/src/ObjectDimension.c new file mode 100644 index 0000000..bf9fc08 --- /dev/null +++ b/vcits/cpm/src/ObjectDimension.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ObjectDimension.h" + +asn_TYPE_member_t asn_MBR_ObjectDimension_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ObjectDimension, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObjectDimensionValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct ObjectDimension, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObjectDimensionConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_ObjectDimension_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ObjectDimension_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ObjectDimension_specs_1 = { + sizeof(struct ObjectDimension), + offsetof(struct ObjectDimension, _asn_ctx), + asn_MAP_ObjectDimension_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ObjectDimension = { + "ObjectDimension", + "ObjectDimension", + &asn_OP_SEQUENCE, + asn_DEF_ObjectDimension_tags_1, + sizeof(asn_DEF_ObjectDimension_tags_1) + /sizeof(asn_DEF_ObjectDimension_tags_1[0]), /* 1 */ + asn_DEF_ObjectDimension_tags_1, /* Same as above */ + sizeof(asn_DEF_ObjectDimension_tags_1) + /sizeof(asn_DEF_ObjectDimension_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ObjectDimension_1, + 2, /* Elements count */ + &asn_SPC_ObjectDimension_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ObjectDimensionConfidence.c b/vcits/cpm/src/ObjectDimensionConfidence.c new file mode 100644 index 0000000..0bf58c4 --- /dev/null +++ b/vcits/cpm/src/ObjectDimensionConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ObjectDimensionConfidence.h" + +int +ObjectDimensionConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 102)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ObjectDimensionConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..102) */, + -1}; +asn_per_constraints_t asn_PER_type_ObjectDimensionConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 102 } /* (0..102) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ObjectDimensionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ObjectDimensionConfidence = { + "ObjectDimensionConfidence", + "ObjectDimensionConfidence", + &asn_OP_NativeInteger, + asn_DEF_ObjectDimensionConfidence_tags_1, + sizeof(asn_DEF_ObjectDimensionConfidence_tags_1) + /sizeof(asn_DEF_ObjectDimensionConfidence_tags_1[0]), /* 1 */ + asn_DEF_ObjectDimensionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ObjectDimensionConfidence_tags_1) + /sizeof(asn_DEF_ObjectDimensionConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ObjectDimensionConfidence_constr_1, &asn_PER_type_ObjectDimensionConfidence_constr_1, ObjectDimensionConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ObjectDimensionValue.c b/vcits/cpm/src/ObjectDimensionValue.c new file mode 100644 index 0000000..7996412 --- /dev/null +++ b/vcits/cpm/src/ObjectDimensionValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ObjectDimensionValue.h" + +int +ObjectDimensionValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ObjectDimensionValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_ObjectDimensionValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1023 } /* (0..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ObjectDimensionValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ObjectDimensionValue = { + "ObjectDimensionValue", + "ObjectDimensionValue", + &asn_OP_NativeInteger, + asn_DEF_ObjectDimensionValue_tags_1, + sizeof(asn_DEF_ObjectDimensionValue_tags_1) + /sizeof(asn_DEF_ObjectDimensionValue_tags_1[0]), /* 1 */ + asn_DEF_ObjectDimensionValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ObjectDimensionValue_tags_1) + /sizeof(asn_DEF_ObjectDimensionValue_tags_1[0]), /* 1 */ + { &asn_OER_type_ObjectDimensionValue_constr_1, &asn_PER_type_ObjectDimensionValue_constr_1, ObjectDimensionValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ObjectDistanceWithConfidence.c b/vcits/cpm/src/ObjectDistanceWithConfidence.c new file mode 100644 index 0000000..ab5061a --- /dev/null +++ b/vcits/cpm/src/ObjectDistanceWithConfidence.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ObjectDistanceWithConfidence.h" + +asn_TYPE_member_t asn_MBR_ObjectDistanceWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ObjectDistanceWithConfidence, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DistanceValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct ObjectDistanceWithConfidence, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DistanceConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_ObjectDistanceWithConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ObjectDistanceWithConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ObjectDistanceWithConfidence_specs_1 = { + sizeof(struct ObjectDistanceWithConfidence), + offsetof(struct ObjectDistanceWithConfidence, _asn_ctx), + asn_MAP_ObjectDistanceWithConfidence_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ObjectDistanceWithConfidence = { + "ObjectDistanceWithConfidence", + "ObjectDistanceWithConfidence", + &asn_OP_SEQUENCE, + asn_DEF_ObjectDistanceWithConfidence_tags_1, + sizeof(asn_DEF_ObjectDistanceWithConfidence_tags_1) + /sizeof(asn_DEF_ObjectDistanceWithConfidence_tags_1[0]), /* 1 */ + asn_DEF_ObjectDistanceWithConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ObjectDistanceWithConfidence_tags_1) + /sizeof(asn_DEF_ObjectDistanceWithConfidence_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ObjectDistanceWithConfidence_1, + 2, /* Elements count */ + &asn_SPC_ObjectDistanceWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ObjectRefPoint.c b/vcits/cpm/src/ObjectRefPoint.c new file mode 100644 index 0000000..0d374a7 --- /dev/null +++ b/vcits/cpm/src/ObjectRefPoint.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ObjectRefPoint.h" + +int +ObjectRefPoint_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ObjectRefPoint_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..8) */, + -1}; +asn_per_constraints_t asn_PER_type_ObjectRefPoint_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ObjectRefPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ObjectRefPoint = { + "ObjectRefPoint", + "ObjectRefPoint", + &asn_OP_NativeInteger, + asn_DEF_ObjectRefPoint_tags_1, + sizeof(asn_DEF_ObjectRefPoint_tags_1) + /sizeof(asn_DEF_ObjectRefPoint_tags_1[0]), /* 1 */ + asn_DEF_ObjectRefPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_ObjectRefPoint_tags_1) + /sizeof(asn_DEF_ObjectRefPoint_tags_1[0]), /* 1 */ + { &asn_OER_type_ObjectRefPoint_constr_1, &asn_PER_type_ObjectRefPoint_constr_1, ObjectRefPoint_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Offset-B09.c b/vcits/cpm/src/Offset-B09.c new file mode 100644 index 0000000..78c8622 --- /dev/null +++ b/vcits/cpm/src/Offset-B09.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Offset-B09.h" + +int +Offset_B09_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -256 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B09_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-256..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B09_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -256, 255 } /* (-256..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B09_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B09 = { + "Offset-B09", + "Offset-B09", + &asn_OP_NativeInteger, + asn_DEF_Offset_B09_tags_1, + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + asn_DEF_Offset_B09_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B09_constr_1, &asn_PER_type_Offset_B09_constr_1, Offset_B09_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Offset-B10.c b/vcits/cpm/src/Offset-B10.c new file mode 100644 index 0000000..72ce896 --- /dev/null +++ b/vcits/cpm/src/Offset-B10.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Offset-B10.h" + +int +Offset_B10_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -512 && value <= 511)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B10_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-512..511) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B10_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -512, 511 } /* (-512..511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B10_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B10 = { + "Offset-B10", + "Offset-B10", + &asn_OP_NativeInteger, + asn_DEF_Offset_B10_tags_1, + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + asn_DEF_Offset_B10_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B10_constr_1, &asn_PER_type_Offset_B10_constr_1, Offset_B10_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Offset-B11.c b/vcits/cpm/src/Offset-B11.c new file mode 100644 index 0000000..c859446 --- /dev/null +++ b/vcits/cpm/src/Offset-B11.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Offset-B11.h" + +int +Offset_B11_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1024 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B11_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1024..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B11_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B11_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B11 = { + "Offset-B11", + "Offset-B11", + &asn_OP_NativeInteger, + asn_DEF_Offset_B11_tags_1, + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + asn_DEF_Offset_B11_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B11_constr_1, &asn_PER_type_Offset_B11_constr_1, Offset_B11_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Offset-B12.c b/vcits/cpm/src/Offset-B12.c new file mode 100644 index 0000000..46fdb4f --- /dev/null +++ b/vcits/cpm/src/Offset-B12.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Offset-B12.h" + +int +Offset_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B12 = { + "Offset-B12", + "Offset-B12", + &asn_OP_NativeInteger, + asn_DEF_Offset_B12_tags_1, + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + asn_DEF_Offset_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B12_constr_1, &asn_PER_type_Offset_B12_constr_1, Offset_B12_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Offset-B13.c b/vcits/cpm/src/Offset-B13.c new file mode 100644 index 0000000..c972850 --- /dev/null +++ b/vcits/cpm/src/Offset-B13.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Offset-B13.h" + +int +Offset_B13_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B13_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-4096..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B13_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, -4096, 4095 } /* (-4096..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B13_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B13 = { + "Offset-B13", + "Offset-B13", + &asn_OP_NativeInteger, + asn_DEF_Offset_B13_tags_1, + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + asn_DEF_Offset_B13_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B13_constr_1, &asn_PER_type_Offset_B13_constr_1, Offset_B13_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Offset-B14.c b/vcits/cpm/src/Offset-B14.c new file mode 100644 index 0000000..111aee2 --- /dev/null +++ b/vcits/cpm/src/Offset-B14.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Offset-B14.h" + +int +Offset_B14_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -8192 && value <= 8191)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B14_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-8192..8191) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B14_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, -8192, 8191 } /* (-8192..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B14_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B14 = { + "Offset-B14", + "Offset-B14", + &asn_OP_NativeInteger, + asn_DEF_Offset_B14_tags_1, + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + asn_DEF_Offset_B14_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B14_constr_1, &asn_PER_type_Offset_B14_constr_1, Offset_B14_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Offset-B16.c b/vcits/cpm/src/Offset-B16.c new file mode 100644 index 0000000..50cd24a --- /dev/null +++ b/vcits/cpm/src/Offset-B16.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Offset-B16.h" + +int +Offset_B16_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32768 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B16_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32768..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B16_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B16_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B16 = { + "Offset-B16", + "Offset-B16", + &asn_OP_NativeInteger, + asn_DEF_Offset_B16_tags_1, + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + asn_DEF_Offset_B16_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B16_constr_1, &asn_PER_type_Offset_B16_constr_1, Offset_B16_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/OffsetPoint.c b/vcits/cpm/src/OffsetPoint.c new file mode 100644 index 0000000..e9908c3 --- /dev/null +++ b/vcits/cpm/src/OffsetPoint.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "OffsetPoint.h" + +#include "NodeOffsetPointZ.h" +static int +memb_nodeOffsetPointxy_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_nodeOffsetPointxy_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_nodeOffsetPointxy_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_OffsetPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct OffsetPoint, nodeOffsetPointxy), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { &asn_OER_memb_nodeOffsetPointxy_constr_2, &asn_PER_memb_nodeOffsetPointxy_constr_2, memb_nodeOffsetPointxy_constraint_1 }, + 0, 0, /* No default value */ + "nodeOffsetPointxy" + }, + { ATF_POINTER, 1, offsetof(struct OffsetPoint, nodeOffsetPointZ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointZ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeOffsetPointZ" + }, +}; +static const int asn_MAP_OffsetPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_OffsetPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_OffsetPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodeOffsetPointxy */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nodeOffsetPointZ */ +}; +asn_SEQUENCE_specifics_t asn_SPC_OffsetPoint_specs_1 = { + sizeof(struct OffsetPoint), + offsetof(struct OffsetPoint, _asn_ctx), + asn_MAP_OffsetPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_OffsetPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_OffsetPoint = { + "OffsetPoint", + "OffsetPoint", + &asn_OP_SEQUENCE, + asn_DEF_OffsetPoint_tags_1, + sizeof(asn_DEF_OffsetPoint_tags_1) + /sizeof(asn_DEF_OffsetPoint_tags_1[0]), /* 1 */ + asn_DEF_OffsetPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_OffsetPoint_tags_1) + /sizeof(asn_DEF_OffsetPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_OffsetPoint_1, + 2, /* Elements count */ + &asn_SPC_OffsetPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/OpeningDaysHours.c b/vcits/cpm/src/OpeningDaysHours.c new file mode 100644 index 0000000..09b4afa --- /dev/null +++ b/vcits/cpm/src/OpeningDaysHours.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "OpeningDaysHours.h" + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_OpeningDaysHours_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours = { + "OpeningDaysHours", + "OpeningDaysHours", + &asn_OP_UTF8String, + asn_DEF_OpeningDaysHours_tags_1, + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + asn_DEF_OpeningDaysHours_tags_1, /* Same as above */ + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + { 0, 0, UTF8String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/OriginatingRSUContainer.c b/vcits/cpm/src/OriginatingRSUContainer.c new file mode 100644 index 0000000..911b8a6 --- /dev/null +++ b/vcits/cpm/src/OriginatingRSUContainer.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "OriginatingRSUContainer.h" + +static asn_oer_constraints_t asn_OER_type_OriginatingRSUContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_OriginatingRSUContainer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_OriginatingRSUContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct OriginatingRSUContainer, choice.intersectionReferenceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersectionReferenceId" + }, + { ATF_NOFLAGS, 0, offsetof(struct OriginatingRSUContainer, choice.roadSegmentReferenceId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadSegmentReferenceId" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_OriginatingRSUContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* intersectionReferenceId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* roadSegmentReferenceId */ +}; +asn_CHOICE_specifics_t asn_SPC_OriginatingRSUContainer_specs_1 = { + sizeof(struct OriginatingRSUContainer), + offsetof(struct OriginatingRSUContainer, _asn_ctx), + offsetof(struct OriginatingRSUContainer, present), + sizeof(((struct OriginatingRSUContainer *)0)->present), + asn_MAP_OriginatingRSUContainer_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_OriginatingRSUContainer = { + "OriginatingRSUContainer", + "OriginatingRSUContainer", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_OriginatingRSUContainer_constr_1, &asn_PER_type_OriginatingRSUContainer_constr_1, CHOICE_constraint }, + asn_MBR_OriginatingRSUContainer_1, + 2, /* Elements count */ + &asn_SPC_OriginatingRSUContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/OriginatingVehicleContainer.c b/vcits/cpm/src/OriginatingVehicleContainer.c new file mode 100644 index 0000000..919afca --- /dev/null +++ b/vcits/cpm/src/OriginatingVehicleContainer.c @@ -0,0 +1,213 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "OriginatingVehicleContainer.h" + +#include "WGS84Angle.h" +#include "LongitudinalAcceleration.h" +#include "LateralAcceleration.h" +#include "VerticalAcceleration.h" +#include "YawRate.h" +#include "CartesianAngle.h" +#include "VehicleLength.h" +#include "TrailerDataContainer.h" +static int asn_DFL_5_cmp_0(const void *sptr) { + const DriveDirection_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_5_set_0(void **sptr) { + DriveDirection_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +asn_TYPE_member_t asn_MBR_OriginatingVehicleContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct OriginatingVehicleContainer, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Heading, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_NOFLAGS, 0, offsetof(struct OriginatingVehicleContainer, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Speed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 12, offsetof(struct OriginatingVehicleContainer, vehicleOrientationAngle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WGS84Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleOrientationAngle" + }, + { ATF_NOFLAGS, 11, offsetof(struct OriginatingVehicleContainer, driveDirection), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DriveDirection, + 0, + { 0, 0, 0 }, + &asn_DFL_5_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_5_set_0, /* Set DEFAULT 0 */ + "driveDirection" + }, + { ATF_POINTER, 10, offsetof(struct OriginatingVehicleContainer, longitudinalAcceleration), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalAcceleration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAcceleration" + }, + { ATF_POINTER, 9, offsetof(struct OriginatingVehicleContainer, lateralAcceleration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LateralAcceleration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAcceleration" + }, + { ATF_POINTER, 8, offsetof(struct OriginatingVehicleContainer, verticalAcceleration), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAcceleration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAcceleration" + }, + { ATF_POINTER, 7, offsetof(struct OriginatingVehicleContainer, yawRate), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRate" + }, + { ATF_POINTER, 6, offsetof(struct OriginatingVehicleContainer, pitchAngle), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CartesianAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pitchAngle" + }, + { ATF_POINTER, 5, offsetof(struct OriginatingVehicleContainer, rollAngle), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CartesianAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rollAngle" + }, + { ATF_POINTER, 4, offsetof(struct OriginatingVehicleContainer, vehicleLength), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLength" + }, + { ATF_POINTER, 3, offsetof(struct OriginatingVehicleContainer, vehicleWidth), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleWidth" + }, + { ATF_POINTER, 2, offsetof(struct OriginatingVehicleContainer, vehicleHeight), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleHeight, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleHeight" + }, + { ATF_POINTER, 1, offsetof(struct OriginatingVehicleContainer, trailerDataContainer), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerDataContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trailerDataContainer" + }, +}; +static const int asn_MAP_OriginatingVehicleContainer_oms_1[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; +static const ber_tlv_tag_t asn_DEF_OriginatingVehicleContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_OriginatingVehicleContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* vehicleOrientationAngle */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* driveDirection */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* longitudinalAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* lateralAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* verticalAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* yawRate */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* pitchAngle */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* rollAngle */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* vehicleLength */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* vehicleWidth */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* vehicleHeight */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 } /* trailerDataContainer */ +}; +asn_SEQUENCE_specifics_t asn_SPC_OriginatingVehicleContainer_specs_1 = { + sizeof(struct OriginatingVehicleContainer), + offsetof(struct OriginatingVehicleContainer, _asn_ctx), + asn_MAP_OriginatingVehicleContainer_tag2el_1, + 14, /* Count of tags in the map */ + asn_MAP_OriginatingVehicleContainer_oms_1, /* Optional members */ + 12, 0, /* Root/Additions */ + 14, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_OriginatingVehicleContainer = { + "OriginatingVehicleContainer", + "OriginatingVehicleContainer", + &asn_OP_SEQUENCE, + asn_DEF_OriginatingVehicleContainer_tags_1, + sizeof(asn_DEF_OriginatingVehicleContainer_tags_1) + /sizeof(asn_DEF_OriginatingVehicleContainer_tags_1[0]), /* 1 */ + asn_DEF_OriginatingVehicleContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_OriginatingVehicleContainer_tags_1) + /sizeof(asn_DEF_OriginatingVehicleContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_OriginatingVehicleContainer_1, + 14, /* Elements count */ + &asn_SPC_OriginatingVehicleContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/OtherSubclass.c b/vcits/cpm/src/OtherSubclass.c new file mode 100644 index 0000000..24e2469 --- /dev/null +++ b/vcits/cpm/src/OtherSubclass.c @@ -0,0 +1,108 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "OtherSubclass.h" + +static int asn_DFL_2_cmp_0(const void *sptr) { + const OtherSublassType_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_2_set_0(void **sptr) { + OtherSublassType_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +static int asn_DFL_3_cmp_0(const void *sptr) { + const ClassConfidence_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_3_set_0(void **sptr) { + ClassConfidence_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +asn_TYPE_member_t asn_MBR_OtherSubclass_1[] = { + { ATF_NOFLAGS, 2, offsetof(struct OtherSubclass, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OtherSublassType, + 0, + { 0, 0, 0 }, + &asn_DFL_2_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_2_set_0, /* Set DEFAULT 0 */ + "type" + }, + { ATF_NOFLAGS, 1, offsetof(struct OtherSubclass, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ClassConfidence, + 0, + { 0, 0, 0 }, + &asn_DFL_3_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_3_set_0, /* Set DEFAULT 0 */ + "confidence" + }, +}; +static const int asn_MAP_OtherSubclass_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_OtherSubclass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_OtherSubclass_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_OtherSubclass_specs_1 = { + sizeof(struct OtherSubclass), + offsetof(struct OtherSubclass, _asn_ctx), + asn_MAP_OtherSubclass_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_OtherSubclass_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_OtherSubclass = { + "OtherSubclass", + "OtherSubclass", + &asn_OP_SEQUENCE, + asn_DEF_OtherSubclass_tags_1, + sizeof(asn_DEF_OtherSubclass_tags_1) + /sizeof(asn_DEF_OtherSubclass_tags_1[0]), /* 1 */ + asn_DEF_OtherSubclass_tags_1, /* Same as above */ + sizeof(asn_DEF_OtherSubclass_tags_1) + /sizeof(asn_DEF_OtherSubclass_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_OtherSubclass_1, + 2, /* Elements count */ + &asn_SPC_OtherSubclass_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/OtherSublassType.c b/vcits/cpm/src/OtherSublassType.c new file mode 100644 index 0000000..78c791e --- /dev/null +++ b/vcits/cpm/src/OtherSublassType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "OtherSublassType.h" + +int +OtherSublassType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_OtherSublassType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_OtherSublassType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_OtherSublassType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OtherSublassType = { + "OtherSublassType", + "OtherSublassType", + &asn_OP_NativeInteger, + asn_DEF_OtherSublassType_tags_1, + sizeof(asn_DEF_OtherSublassType_tags_1) + /sizeof(asn_DEF_OtherSublassType_tags_1[0]), /* 1 */ + asn_DEF_OtherSublassType_tags_1, /* Same as above */ + sizeof(asn_DEF_OtherSublassType_tags_1) + /sizeof(asn_DEF_OtherSublassType_tags_1[0]), /* 1 */ + { &asn_OER_type_OtherSublassType_constr_1, &asn_PER_type_OtherSublassType_constr_1, OtherSublassType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/OverlayLaneList.c b/vcits/cpm/src/OverlayLaneList.c new file mode 100644 index 0000000..af0cc3a --- /dev/null +++ b/vcits/cpm/src/OverlayLaneList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "OverlayLaneList.h" + +static asn_oer_constraints_t asn_OER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_OverlayLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_OverlayLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1 = { + sizeof(struct OverlayLaneList), + offsetof(struct OverlayLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_OverlayLaneList = { + "OverlayLaneList", + "OverlayLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_OverlayLaneList_tags_1, + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + asn_DEF_OverlayLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_OverlayLaneList_constr_1, &asn_PER_type_OverlayLaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_OverlayLaneList_1, + 1, /* Single element */ + &asn_SPC_OverlayLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PathDeltaTime.c b/vcits/cpm/src/PathDeltaTime.c new file mode 100644 index 0000000..c2650b5 --- /dev/null +++ b/vcits/cpm/src/PathDeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PathDeltaTime.h" + +int +PathDeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PathDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PathDeltaTime = { + "PathDeltaTime", + "PathDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_PathDeltaTime_tags_1, + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_PathDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_PathDeltaTime_constr_1, &asn_PER_type_PathDeltaTime_constr_1, PathDeltaTime_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/PathHistory.c b/vcits/cpm/src/PathHistory.c new file mode 100644 index 0000000..657eba7 --- /dev/null +++ b/vcits/cpm/src/PathHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PathHistory.h" + +#include "PathPoint.h" +static asn_oer_constraints_t asn_OER_type_PathHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..40)) */}; +asn_per_constraints_t asn_PER_type_PathHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 40 } /* (SIZE(0..40)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PathHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1 = { + sizeof(struct PathHistory), + offsetof(struct PathHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_PathHistory_tags_1, + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_PathHistory_constr_1, &asn_PER_type_PathHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PathHistory_1, + 1, /* Single element */ + &asn_SPC_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PathPoint.c b/vcits/cpm/src/PathPoint.c new file mode 100644 index 0000000..51e5334 --- /dev/null +++ b/vcits/cpm/src/PathPoint.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PathPoint.h" + +asn_TYPE_member_t asn_MBR_PathPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PathPoint, pathPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathPosition" + }, + { ATF_POINTER, 1, offsetof(struct PathPoint, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathDeltaTime" + }, +}; +static const int asn_MAP_PathPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PathPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PathPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pathDeltaTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1 = { + sizeof(struct PathPoint), + offsetof(struct PathPoint, _asn_ctx), + asn_MAP_PathPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PathPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PathPoint = { + "PathPoint", + "PathPoint", + &asn_OP_SEQUENCE, + asn_DEF_PathPoint_tags_1, + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + asn_DEF_PathPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PathPoint_1, + 2, /* Elements count */ + &asn_SPC_PathPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PedestrianBicycleDetect.c b/vcits/cpm/src/PedestrianBicycleDetect.c new file mode 100644 index 0000000..0e30d94 --- /dev/null +++ b/vcits/cpm/src/PedestrianBicycleDetect.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PedestrianBicycleDetect.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_PedestrianBicycleDetect_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect = { + "PedestrianBicycleDetect", + "PedestrianBicycleDetect", + &asn_OP_BOOLEAN, + asn_DEF_PedestrianBicycleDetect_tags_1, + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + asn_DEF_PedestrianBicycleDetect_tags_1, /* Same as above */ + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/PerceivedObject.c b/vcits/cpm/src/PerceivedObject.c new file mode 100644 index 0000000..baa88a7 --- /dev/null +++ b/vcits/cpm/src/PerceivedObject.c @@ -0,0 +1,318 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PerceivedObject.h" + +#include "SensorIdList.h" +#include "ObjectDistanceWithConfidence.h" +#include "SpeedExtended.h" +#include "LongitudinalAcceleration.h" +#include "LateralAcceleration.h" +#include "VerticalAcceleration.h" +#include "CartesianAngle.h" +#include "ObjectDimension.h" +#include "ObjectClassDescription.h" +#include "MatchedPosition.h" +static int asn_DFL_6_cmp_0(const void *sptr) { + const ObjectConfidence_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_6_set_0(void **sptr) { + ObjectConfidence_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +static int asn_DFL_20_cmp_0(const void *sptr) { + const ObjectRefPoint_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_20_set_0(void **sptr) { + ObjectRefPoint_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +asn_TYPE_member_t asn_MBR_PerceivedObject_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PerceivedObject, objectID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Identifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "objectID" + }, + { ATF_POINTER, 1, offsetof(struct PerceivedObject, sensorIDList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SensorIdList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sensorIDList" + }, + { ATF_NOFLAGS, 0, offsetof(struct PerceivedObject, timeOfMeasurement), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeOfMeasurement, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeOfMeasurement" + }, + { ATF_POINTER, 2, offsetof(struct PerceivedObject, objectAge), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObjectAge, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "objectAge" + }, + { ATF_NOFLAGS, 1, offsetof(struct PerceivedObject, objectConfidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObjectConfidence, + 0, + { 0, 0, 0 }, + &asn_DFL_6_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_6_set_0, /* Set DEFAULT 0 */ + "objectConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PerceivedObject, xDistance), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObjectDistanceWithConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "xDistance" + }, + { ATF_NOFLAGS, 0, offsetof(struct PerceivedObject, yDistance), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObjectDistanceWithConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yDistance" + }, + { ATF_POINTER, 1, offsetof(struct PerceivedObject, zDistance), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObjectDistanceWithConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zDistance" + }, + { ATF_NOFLAGS, 0, offsetof(struct PerceivedObject, xSpeed), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedExtended, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "xSpeed" + }, + { ATF_NOFLAGS, 0, offsetof(struct PerceivedObject, ySpeed), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedExtended, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ySpeed" + }, + { ATF_POINTER, 12, offsetof(struct PerceivedObject, zSpeed), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedExtended, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zSpeed" + }, + { ATF_POINTER, 11, offsetof(struct PerceivedObject, xAcceleration), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalAcceleration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "xAcceleration" + }, + { ATF_POINTER, 10, offsetof(struct PerceivedObject, yAcceleration), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LateralAcceleration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yAcceleration" + }, + { ATF_POINTER, 9, offsetof(struct PerceivedObject, zAcceleration), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAcceleration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zAcceleration" + }, + { ATF_POINTER, 8, offsetof(struct PerceivedObject, yawAngle), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CartesianAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawAngle" + }, + { ATF_POINTER, 7, offsetof(struct PerceivedObject, planarObjectDimension1), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObjectDimension, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "planarObjectDimension1" + }, + { ATF_POINTER, 6, offsetof(struct PerceivedObject, planarObjectDimension2), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObjectDimension, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "planarObjectDimension2" + }, + { ATF_POINTER, 5, offsetof(struct PerceivedObject, verticalObjectDimension), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObjectDimension, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalObjectDimension" + }, + { ATF_NOFLAGS, 4, offsetof(struct PerceivedObject, objectRefPoint), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObjectRefPoint, + 0, + { 0, 0, 0 }, + &asn_DFL_20_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_20_set_0, /* Set DEFAULT 0 */ + "objectRefPoint" + }, + { ATF_POINTER, 3, offsetof(struct PerceivedObject, dynamicStatus), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DynamicStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicStatus" + }, + { ATF_POINTER, 2, offsetof(struct PerceivedObject, classification), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObjectClassDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "classification" + }, + { ATF_POINTER, 1, offsetof(struct PerceivedObject, matchedPosition), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MatchedPosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "matchedPosition" + }, +}; +static const int asn_MAP_PerceivedObject_oms_1[] = { 1, 3, 4, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 }; +static const ber_tlv_tag_t asn_DEF_PerceivedObject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PerceivedObject_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* objectID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sensorIDList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeOfMeasurement */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* objectAge */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* objectConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* xDistance */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* yDistance */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* zDistance */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* xSpeed */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* ySpeed */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* zSpeed */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* xAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* yAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* zAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* yawAngle */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* planarObjectDimension1 */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* planarObjectDimension2 */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* verticalObjectDimension */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* objectRefPoint */ + { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* dynamicStatus */ + { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* classification */ + { (ASN_TAG_CLASS_CONTEXT | (21 << 2)), 21, 0, 0 } /* matchedPosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PerceivedObject_specs_1 = { + sizeof(struct PerceivedObject), + offsetof(struct PerceivedObject, _asn_ctx), + asn_MAP_PerceivedObject_tag2el_1, + 22, /* Count of tags in the map */ + asn_MAP_PerceivedObject_oms_1, /* Optional members */ + 16, 0, /* Root/Additions */ + 22, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PerceivedObject = { + "PerceivedObject", + "PerceivedObject", + &asn_OP_SEQUENCE, + asn_DEF_PerceivedObject_tags_1, + sizeof(asn_DEF_PerceivedObject_tags_1) + /sizeof(asn_DEF_PerceivedObject_tags_1[0]), /* 1 */ + asn_DEF_PerceivedObject_tags_1, /* Same as above */ + sizeof(asn_DEF_PerceivedObject_tags_1) + /sizeof(asn_DEF_PerceivedObject_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PerceivedObject_1, + 22, /* Elements count */ + &asn_SPC_PerceivedObject_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PerceivedObjectContainer.c b/vcits/cpm/src/PerceivedObjectContainer.c new file mode 100644 index 0000000..7a196ac --- /dev/null +++ b/vcits/cpm/src/PerceivedObjectContainer.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PerceivedObjectContainer.h" + +#include "PerceivedObject.h" +static asn_oer_constraints_t asn_OER_type_PerceivedObjectContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +asn_per_constraints_t asn_PER_type_PerceivedObjectContainer_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 128 } /* (SIZE(1..128)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PerceivedObjectContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PerceivedObject, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PerceivedObjectContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PerceivedObjectContainer_specs_1 = { + sizeof(struct PerceivedObjectContainer), + offsetof(struct PerceivedObjectContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PerceivedObjectContainer = { + "PerceivedObjectContainer", + "PerceivedObjectContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_PerceivedObjectContainer_tags_1, + sizeof(asn_DEF_PerceivedObjectContainer_tags_1) + /sizeof(asn_DEF_PerceivedObjectContainer_tags_1[0]), /* 1 */ + asn_DEF_PerceivedObjectContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_PerceivedObjectContainer_tags_1) + /sizeof(asn_DEF_PerceivedObjectContainer_tags_1[0]), /* 1 */ + { &asn_OER_type_PerceivedObjectContainer_constr_1, &asn_PER_type_PerceivedObjectContainer_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PerceivedObjectContainer_1, + 1, /* Single element */ + &asn_SPC_PerceivedObjectContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PerceivedObjectContainerSegmentInfo.c b/vcits/cpm/src/PerceivedObjectContainerSegmentInfo.c new file mode 100644 index 0000000..c5f8f94 --- /dev/null +++ b/vcits/cpm/src/PerceivedObjectContainerSegmentInfo.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PerceivedObjectContainerSegmentInfo.h" + +asn_TYPE_member_t asn_MBR_PerceivedObjectContainerSegmentInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PerceivedObjectContainerSegmentInfo, totalMsgSegments), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "totalMsgSegments" + }, + { ATF_NOFLAGS, 0, offsetof(struct PerceivedObjectContainerSegmentInfo, thisSegmentNum), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "thisSegmentNum" + }, +}; +static const ber_tlv_tag_t asn_DEF_PerceivedObjectContainerSegmentInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PerceivedObjectContainerSegmentInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* totalMsgSegments */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* thisSegmentNum */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PerceivedObjectContainerSegmentInfo_specs_1 = { + sizeof(struct PerceivedObjectContainerSegmentInfo), + offsetof(struct PerceivedObjectContainerSegmentInfo, _asn_ctx), + asn_MAP_PerceivedObjectContainerSegmentInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PerceivedObjectContainerSegmentInfo = { + "PerceivedObjectContainerSegmentInfo", + "PerceivedObjectContainerSegmentInfo", + &asn_OP_SEQUENCE, + asn_DEF_PerceivedObjectContainerSegmentInfo_tags_1, + sizeof(asn_DEF_PerceivedObjectContainerSegmentInfo_tags_1) + /sizeof(asn_DEF_PerceivedObjectContainerSegmentInfo_tags_1[0]), /* 1 */ + asn_DEF_PerceivedObjectContainerSegmentInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_PerceivedObjectContainerSegmentInfo_tags_1) + /sizeof(asn_DEF_PerceivedObjectContainerSegmentInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PerceivedObjectContainerSegmentInfo_1, + 2, /* Elements count */ + &asn_SPC_PerceivedObjectContainerSegmentInfo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PerformanceClass.c b/vcits/cpm/src/PerformanceClass.c new file mode 100644 index 0000000..703d368 --- /dev/null +++ b/vcits/cpm/src/PerformanceClass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PerformanceClass.h" + +int +PerformanceClass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PerformanceClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PerformanceClass = { + "PerformanceClass", + "PerformanceClass", + &asn_OP_NativeInteger, + asn_DEF_PerformanceClass_tags_1, + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + asn_DEF_PerformanceClass_tags_1, /* Same as above */ + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + { &asn_OER_type_PerformanceClass_constr_1, &asn_PER_type_PerformanceClass_constr_1, PerformanceClass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/PersonSubclass.c b/vcits/cpm/src/PersonSubclass.c new file mode 100644 index 0000000..e3a6063 --- /dev/null +++ b/vcits/cpm/src/PersonSubclass.c @@ -0,0 +1,108 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PersonSubclass.h" + +static int asn_DFL_2_cmp_0(const void *sptr) { + const PersonSubclassType_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_2_set_0(void **sptr) { + PersonSubclassType_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +static int asn_DFL_3_cmp_0(const void *sptr) { + const ClassConfidence_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_3_set_0(void **sptr) { + ClassConfidence_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +asn_TYPE_member_t asn_MBR_PersonSubclass_1[] = { + { ATF_NOFLAGS, 2, offsetof(struct PersonSubclass, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PersonSubclassType, + 0, + { 0, 0, 0 }, + &asn_DFL_2_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_2_set_0, /* Set DEFAULT 0 */ + "type" + }, + { ATF_NOFLAGS, 1, offsetof(struct PersonSubclass, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ClassConfidence, + 0, + { 0, 0, 0 }, + &asn_DFL_3_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_3_set_0, /* Set DEFAULT 0 */ + "confidence" + }, +}; +static const int asn_MAP_PersonSubclass_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_PersonSubclass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PersonSubclass_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PersonSubclass_specs_1 = { + sizeof(struct PersonSubclass), + offsetof(struct PersonSubclass, _asn_ctx), + asn_MAP_PersonSubclass_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PersonSubclass_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PersonSubclass = { + "PersonSubclass", + "PersonSubclass", + &asn_OP_SEQUENCE, + asn_DEF_PersonSubclass_tags_1, + sizeof(asn_DEF_PersonSubclass_tags_1) + /sizeof(asn_DEF_PersonSubclass_tags_1[0]), /* 1 */ + asn_DEF_PersonSubclass_tags_1, /* Same as above */ + sizeof(asn_DEF_PersonSubclass_tags_1) + /sizeof(asn_DEF_PersonSubclass_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PersonSubclass_1, + 2, /* Elements count */ + &asn_SPC_PersonSubclass_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PersonSubclassType.c b/vcits/cpm/src/PersonSubclassType.c new file mode 100644 index 0000000..cffcacb --- /dev/null +++ b/vcits/cpm/src/PersonSubclassType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PersonSubclassType.h" + +int +PersonSubclassType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PersonSubclassType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_PersonSubclassType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PersonSubclassType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PersonSubclassType = { + "PersonSubclassType", + "PersonSubclassType", + &asn_OP_NativeInteger, + asn_DEF_PersonSubclassType_tags_1, + sizeof(asn_DEF_PersonSubclassType_tags_1) + /sizeof(asn_DEF_PersonSubclassType_tags_1[0]), /* 1 */ + asn_DEF_PersonSubclassType_tags_1, /* Same as above */ + sizeof(asn_DEF_PersonSubclassType_tags_1) + /sizeof(asn_DEF_PersonSubclassType_tags_1[0]), /* 1 */ + { &asn_OER_type_PersonSubclassType_constr_1, &asn_PER_type_PersonSubclassType_constr_1, PersonSubclassType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/PhoneNumber.c b/vcits/cpm/src/PhoneNumber.c new file mode 100644 index 0000000..3b2d4be --- /dev/null +++ b/vcits/cpm/src/PhoneNumber.c @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PhoneNumber.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* . */ + 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */ +}; +static const int permitted_alphabet_code2value_1[11] = { +32,48,49,50,51,52,53,54,55,56,57,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is NumericString */ + const NumericString_t *st = (const NumericString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +PhoneNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const NumericString_t *st = (const NumericString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 16) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_PhoneNumber_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_PhoneNumber_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using NumericString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 32, 57 } /* (32..57) */, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + asn_PER_MAP_PhoneNumber_1_v2c, /* Value to PER code map */ + asn_PER_MAP_PhoneNumber_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_PhoneNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PhoneNumber = { + "PhoneNumber", + "PhoneNumber", + &asn_OP_NumericString, + asn_DEF_PhoneNumber_tags_1, + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + asn_DEF_PhoneNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_PhoneNumber_constr_1, &asn_PER_type_PhoneNumber_constr_1, PhoneNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/PolyPointList.c b/vcits/cpm/src/PolyPointList.c new file mode 100644 index 0000000..2cfc1a6 --- /dev/null +++ b/vcits/cpm/src/PolyPointList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PolyPointList.h" + +#include "OffsetPoint.h" +static asn_oer_constraints_t asn_OER_type_PolyPointList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_PolyPointList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 3, 16 } /* (SIZE(3..16,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PolyPointList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_OffsetPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PolyPointList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PolyPointList_specs_1 = { + sizeof(struct PolyPointList), + offsetof(struct PolyPointList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PolyPointList = { + "PolyPointList", + "PolyPointList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PolyPointList_tags_1, + sizeof(asn_DEF_PolyPointList_tags_1) + /sizeof(asn_DEF_PolyPointList_tags_1[0]), /* 1 */ + asn_DEF_PolyPointList_tags_1, /* Same as above */ + sizeof(asn_DEF_PolyPointList_tags_1) + /sizeof(asn_DEF_PolyPointList_tags_1[0]), /* 1 */ + { &asn_OER_type_PolyPointList_constr_1, &asn_PER_type_PolyPointList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PolyPointList_1, + 1, /* Single element */ + &asn_SPC_PolyPointList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PosCentMass.c b/vcits/cpm/src/PosCentMass.c new file mode 100644 index 0000000..e619f80 --- /dev/null +++ b/vcits/cpm/src/PosCentMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PosCentMass.h" + +int +PosCentMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosCentMass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..63) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosCentMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosCentMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosCentMass = { + "PosCentMass", + "PosCentMass", + &asn_OP_NativeInteger, + asn_DEF_PosCentMass_tags_1, + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + asn_DEF_PosCentMass_tags_1, /* Same as above */ + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + { &asn_OER_type_PosCentMass_constr_1, &asn_PER_type_PosCentMass_constr_1, PosCentMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/PosConfidenceEllipse.c b/vcits/cpm/src/PosConfidenceEllipse.c new file mode 100644 index 0000000..90139cd --- /dev/null +++ b/vcits/cpm/src/PosConfidenceEllipse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PosConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMinorConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorOrientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PosConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PosConfidenceEllipse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* semiMajorOrientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1 = { + sizeof(struct PosConfidenceEllipse), + offsetof(struct PosConfidenceEllipse, _asn_ctx), + asn_MAP_PosConfidenceEllipse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse = { + "PosConfidenceEllipse", + "PosConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_PosConfidenceEllipse_tags_1, + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_PosConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PosConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_PosConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PosFrontAx.c b/vcits/cpm/src/PosFrontAx.c new file mode 100644 index 0000000..8d2662f --- /dev/null +++ b/vcits/cpm/src/PosFrontAx.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PosFrontAx.h" + +int +PosFrontAx_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..20) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (1..20) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosFrontAx_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosFrontAx = { + "PosFrontAx", + "PosFrontAx", + &asn_OP_NativeInteger, + asn_DEF_PosFrontAx_tags_1, + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + asn_DEF_PosFrontAx_tags_1, /* Same as above */ + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + { &asn_OER_type_PosFrontAx_constr_1, &asn_PER_type_PosFrontAx_constr_1, PosFrontAx_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/PosLonCarr.c b/vcits/cpm/src/PosLonCarr.c new file mode 100644 index 0000000..9e3ede1 --- /dev/null +++ b/vcits/cpm/src/PosLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PosLonCarr.h" + +int +PosLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosLonCarr = { + "PosLonCarr", + "PosLonCarr", + &asn_OP_NativeInteger, + asn_DEF_PosLonCarr_tags_1, + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + asn_DEF_PosLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_PosLonCarr_constr_1, &asn_PER_type_PosLonCarr_constr_1, PosLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/PosPillar.c b/vcits/cpm/src/PosPillar.c new file mode 100644 index 0000000..acb8e28 --- /dev/null +++ b/vcits/cpm/src/PosPillar.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PosPillar.h" + +int +PosPillar_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 30)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosPillar_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..30) */, + -1}; +asn_per_constraints_t asn_PER_type_PosPillar_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 30 } /* (1..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosPillar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosPillar = { + "PosPillar", + "PosPillar", + &asn_OP_NativeInteger, + asn_DEF_PosPillar_tags_1, + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + asn_DEF_PosPillar_tags_1, /* Same as above */ + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + { &asn_OER_type_PosPillar_constr_1, &asn_PER_type_PosPillar_constr_1, PosPillar_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Position3D-addGrpC.c b/vcits/cpm/src/Position3D-addGrpC.c new file mode 100644 index 0000000..083963d --- /dev/null +++ b/vcits/cpm/src/Position3D-addGrpC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Position3D-addGrpC.h" + +asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D_addGrpC, altitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_Position3D_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1 = { + sizeof(struct Position3D_addGrpC), + offsetof(struct Position3D_addGrpC, _asn_ctx), + asn_MAP_Position3D_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC = { + "Position3D-addGrpC", + "Position3D-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_addGrpC_tags_1, + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_Position3D_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Position3D_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_Position3D_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Position3D.c b/vcits/cpm/src/Position3D.c new file mode 100644 index 0000000..221a6b6 --- /dev/null +++ b/vcits/cpm/src/Position3D.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Position3D.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct Position3D__regional), + offsetof(struct Position3D__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Position3D_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D, lat), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_NOFLAGS, 0, offsetof(struct Position3D, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "long" + }, + { ATF_POINTER, 2, offsetof(struct Position3D, elevation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Elevation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 1, offsetof(struct Position3D, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_Position3D_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Position3D_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1 = { + sizeof(struct Position3D), + offsetof(struct Position3D, _asn_ctx), + asn_MAP_Position3D_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Position3D_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D = { + "Position3D", + "Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_tags_1, + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + asn_DEF_Position3D_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Position3D_1, + 4, /* Elements count */ + &asn_SPC_Position3D_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PositionConfidence.c b/vcits/cpm/src/PositionConfidence.c new file mode 100644 index 0000000..c2b7429 --- /dev/null +++ b/vcits/cpm/src/PositionConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PositionConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositionConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 5, "a500m" }, + { 2, 5, "a200m" }, + { 3, 5, "a100m" }, + { 4, 4, "a50m" }, + { 5, 4, "a20m" }, + { 6, 4, "a10m" }, + { 7, 3, "a5m" }, + { 8, 3, "a2m" }, + { 9, 3, "a1m" }, + { 10, 5, "a50cm" }, + { 11, 5, "a20cm" }, + { 12, 5, "a10cm" }, + { 13, 4, "a5cm" }, + { 14, 4, "a2cm" }, + { 15, 4, "a1cm" } +}; +static const unsigned int asn_MAP_PositionConfidence_enum2value_1[] = { + 3, /* a100m(3) */ + 12, /* a10cm(12) */ + 6, /* a10m(6) */ + 15, /* a1cm(15) */ + 9, /* a1m(9) */ + 2, /* a200m(2) */ + 11, /* a20cm(11) */ + 5, /* a20m(5) */ + 14, /* a2cm(14) */ + 8, /* a2m(8) */ + 1, /* a500m(1) */ + 10, /* a50cm(10) */ + 4, /* a50m(4) */ + 13, /* a5cm(13) */ + 7, /* a5m(7) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1 = { + asn_MAP_PositionConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositionConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidence = { + "PositionConfidence", + "PositionConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_PositionConfidence_tags_1, + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionConfidence_constr_1, &asn_PER_type_PositionConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositionConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PositionConfidenceSet.c b/vcits/cpm/src/PositionConfidenceSet.c new file mode 100644 index 0000000..0dbbc58 --- /dev/null +++ b/vcits/cpm/src/PositionConfidenceSet.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PositionConfidenceSet.h" + +asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, pos), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pos" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, elevation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ElevationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidenceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionConfidenceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pos */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* elevation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1 = { + sizeof(struct PositionConfidenceSet), + offsetof(struct PositionConfidenceSet, _asn_ctx), + asn_MAP_PositionConfidenceSet_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet = { + "PositionConfidenceSet", + "PositionConfidenceSet", + &asn_OP_SEQUENCE, + asn_DEF_PositionConfidenceSet_tags_1, + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidenceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionConfidenceSet_1, + 2, /* Elements count */ + &asn_SPC_PositionConfidenceSet_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PositionOfOccupants.c b/vcits/cpm/src/PositionOfOccupants.c new file mode 100644 index 0000000..efc32e1 --- /dev/null +++ b/vcits/cpm/src/PositionOfOccupants.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PositionOfOccupants.h" + +int +PositionOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { 0, 0 }, + 20 /* (SIZE(20..20)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PositionOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants = { + "PositionOfOccupants", + "PositionOfOccupants", + &asn_OP_BIT_STRING, + asn_DEF_PositionOfOccupants_tags_1, + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_PositionOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfOccupants_constr_1, &asn_PER_type_PositionOfOccupants_constr_1, PositionOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PositionOfPillars.c b/vcits/cpm/src/PositionOfPillars.c new file mode 100644 index 0000000..2488643 --- /dev/null +++ b/vcits/cpm/src/PositionOfPillars.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PositionOfPillars.h" + +static asn_oer_constraints_t asn_OER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_PositionOfPillars_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PosPillar, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionOfPillars_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_PositionOfPillars_specs_1 = { + sizeof(struct PositionOfPillars), + offsetof(struct PositionOfPillars, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfPillars = { + "PositionOfPillars", + "PositionOfPillars", + &asn_OP_SEQUENCE_OF, + asn_DEF_PositionOfPillars_tags_1, + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + asn_DEF_PositionOfPillars_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfPillars_constr_1, &asn_PER_type_PositionOfPillars_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PositionOfPillars_1, + 1, /* Single element */ + &asn_SPC_PositionOfPillars_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PositionalAccuracy.c b/vcits/cpm/src/PositionalAccuracy.c new file mode 100644 index 0000000..d00406e --- /dev/null +++ b/vcits/cpm/src/PositionalAccuracy.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PositionalAccuracy.h" + +asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMajor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMinor), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMinorAxisAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, orientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisOrientation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "orientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionalAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionalAccuracy_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinor */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* orientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1 = { + sizeof(struct PositionalAccuracy), + offsetof(struct PositionalAccuracy, _asn_ctx), + asn_MAP_PositionalAccuracy_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy = { + "PositionalAccuracy", + "PositionalAccuracy", + &asn_OP_SEQUENCE, + asn_DEF_PositionalAccuracy_tags_1, + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + asn_DEF_PositionalAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionalAccuracy_1, + 3, /* Elements count */ + &asn_SPC_PositionalAccuracy_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PositioningSolutionType.c b/vcits/cpm/src/PositioningSolutionType.c new file mode 100644 index 0000000..3f8cd8a --- /dev/null +++ b/vcits/cpm/src/PositioningSolutionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PositioningSolutionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositioningSolutionType_value2enum_1[] = { + { 0, 21, "noPositioningSolution" }, + { 1, 5, "sGNSS" }, + { 2, 5, "dGNSS" }, + { 3, 11, "sGNSSplusDR" }, + { 4, 11, "dGNSSplusDR" }, + { 5, 2, "dR" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PositioningSolutionType_enum2value_1[] = { + 2, /* dGNSS(2) */ + 4, /* dGNSSplusDR(4) */ + 5, /* dR(5) */ + 0, /* noPositioningSolution(0) */ + 1, /* sGNSS(1) */ + 3 /* sGNSSplusDR(3) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_PositioningSolutionType_specs_1 = { + asn_MAP_PositioningSolutionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositioningSolutionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositioningSolutionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType = { + "PositioningSolutionType", + "PositioningSolutionType", + &asn_OP_NativeEnumerated, + asn_DEF_PositioningSolutionType_tags_1, + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + asn_DEF_PositioningSolutionType_tags_1, /* Same as above */ + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + { &asn_OER_type_PositioningSolutionType_constr_1, &asn_PER_type_PositioningSolutionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositioningSolutionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PostCrashSubCauseCode.c b/vcits/cpm/src/PostCrashSubCauseCode.c new file mode 100644 index 0000000..d4a541d --- /dev/null +++ b/vcits/cpm/src/PostCrashSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PostCrashSubCauseCode.h" + +int +PostCrashSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PostCrashSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode = { + "PostCrashSubCauseCode", + "PostCrashSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_PostCrashSubCauseCode_tags_1, + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_PostCrashSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_PostCrashSubCauseCode_constr_1, &asn_PER_type_PostCrashSubCauseCode_constr_1, PostCrashSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/PreemptPriorityList.c b/vcits/cpm/src/PreemptPriorityList.c new file mode 100644 index 0000000..ec02dda --- /dev/null +++ b/vcits/cpm/src/PreemptPriorityList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PreemptPriorityList.h" + +#include "SignalControlZone.h" +static asn_oer_constraints_t asn_OER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalControlZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PreemptPriorityList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1 = { + sizeof(struct PreemptPriorityList), + offsetof(struct PreemptPriorityList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList = { + "PreemptPriorityList", + "PreemptPriorityList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PreemptPriorityList_tags_1, + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + asn_DEF_PreemptPriorityList_tags_1, /* Same as above */ + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + { &asn_OER_type_PreemptPriorityList_constr_1, &asn_PER_type_PreemptPriorityList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PreemptPriorityList_1, + 1, /* Single element */ + &asn_SPC_PreemptPriorityList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PrioritizationResponse.c b/vcits/cpm/src/PrioritizationResponse.c new file mode 100644 index 0000000..32f0345 --- /dev/null +++ b/vcits/cpm/src/PrioritizationResponse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PrioritizationResponse.h" + +asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, priorState), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "priorState" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PrioritizationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* priorState */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroup */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1 = { + sizeof(struct PrioritizationResponse), + offsetof(struct PrioritizationResponse, _asn_ctx), + asn_MAP_PrioritizationResponse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse = { + "PrioritizationResponse", + "PrioritizationResponse", + &asn_OP_SEQUENCE, + asn_DEF_PrioritizationResponse_tags_1, + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PrioritizationResponse_1, + 3, /* Elements count */ + &asn_SPC_PrioritizationResponse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PrioritizationResponseList.c b/vcits/cpm/src/PrioritizationResponseList.c new file mode 100644 index 0000000..999a245 --- /dev/null +++ b/vcits/cpm/src/PrioritizationResponseList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PrioritizationResponseList.h" + +#include "PrioritizationResponse.h" +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PrioritizationResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1 = { + sizeof(struct PrioritizationResponseList), + offsetof(struct PrioritizationResponseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList = { + "PrioritizationResponseList", + "PrioritizationResponseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PrioritizationResponseList_tags_1, + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseList_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + { &asn_OER_type_PrioritizationResponseList_constr_1, &asn_PER_type_PrioritizationResponseList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PrioritizationResponseList_1, + 1, /* Single element */ + &asn_SPC_PrioritizationResponseList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PrioritizationResponseStatus.c b/vcits/cpm/src/PrioritizationResponseStatus.c new file mode 100644 index 0000000..3ce0778 --- /dev/null +++ b/vcits/cpm/src/PrioritizationResponseStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PrioritizationResponseStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PrioritizationResponseStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 9, "requested" }, + { 2, 10, "processing" }, + { 3, 17, "watchOtherTraffic" }, + { 4, 7, "granted" }, + { 5, 8, "rejected" }, + { 6, 11, "maxPresence" }, + { 7, 15, "reserviceLocked" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PrioritizationResponseStatus_enum2value_1[] = { + 4, /* granted(4) */ + 6, /* maxPresence(6) */ + 2, /* processing(2) */ + 5, /* rejected(5) */ + 1, /* requested(1) */ + 7, /* reserviceLocked(7) */ + 0, /* unknown(0) */ + 3 /* watchOtherTraffic(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1 = { + asn_MAP_PrioritizationResponseStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PrioritizationResponseStatus_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus = { + "PrioritizationResponseStatus", + "PrioritizationResponseStatus", + &asn_OP_NativeEnumerated, + asn_DEF_PrioritizationResponseStatus_tags_1, + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_PrioritizationResponseStatus_constr_1, &asn_PER_type_PrioritizationResponseStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PrioritizationResponseStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PriorityRequestType.c b/vcits/cpm/src/PriorityRequestType.c new file mode 100644 index 0000000..2288bb0 --- /dev/null +++ b/vcits/cpm/src/PriorityRequestType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PriorityRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PriorityRequestType_value2enum_1[] = { + { 0, 27, "priorityRequestTypeReserved" }, + { 1, 15, "priorityRequest" }, + { 2, 21, "priorityRequestUpdate" }, + { 3, 20, "priorityCancellation" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PriorityRequestType_enum2value_1[] = { + 3, /* priorityCancellation(3) */ + 1, /* priorityRequest(1) */ + 0, /* priorityRequestTypeReserved(0) */ + 2 /* priorityRequestUpdate(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1 = { + asn_MAP_PriorityRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PriorityRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PriorityRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PriorityRequestType = { + "PriorityRequestType", + "PriorityRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PriorityRequestType_tags_1, + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + asn_DEF_PriorityRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_PriorityRequestType_constr_1, &asn_PER_type_PriorityRequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PriorityRequestType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ProtectedCommunicationZone.c b/vcits/cpm/src/ProtectedCommunicationZone.c new file mode 100644 index 0000000..13e752d --- /dev/null +++ b/vcits/cpm/src/ProtectedCommunicationZone.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ProtectedCommunicationZone.h" + +asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneType" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expiryTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 2, offsetof(struct ProtectedCommunicationZone, protectedZoneRadius), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneRadius, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneRadius" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, protectedZoneID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneID" + }, +}; +static const int asn_MAP_ProtectedCommunicationZone_oms_1[] = { 1, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ProtectedCommunicationZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expiryTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protectedZoneRadius */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* protectedZoneID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1 = { + sizeof(struct ProtectedCommunicationZone), + offsetof(struct ProtectedCommunicationZone, _asn_ctx), + asn_MAP_ProtectedCommunicationZone_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ProtectedCommunicationZone_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone = { + "ProtectedCommunicationZone", + "ProtectedCommunicationZone", + &asn_OP_SEQUENCE, + asn_DEF_ProtectedCommunicationZone_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZone_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ProtectedCommunicationZone_1, + 6, /* Elements count */ + &asn_SPC_ProtectedCommunicationZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ProtectedCommunicationZonesRSU.c b/vcits/cpm/src/ProtectedCommunicationZonesRSU.c new file mode 100644 index 0000000..f53d196 --- /dev/null +++ b/vcits/cpm/src/ProtectedCommunicationZonesRSU.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ProtectedCommunicationZonesRSU.h" + +#include "ProtectedCommunicationZone.h" +static asn_oer_constraints_t asn_OER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ProtectedCommunicationZonesRSU_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtectedCommunicationZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZonesRSU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtectedCommunicationZonesRSU_specs_1 = { + sizeof(struct ProtectedCommunicationZonesRSU), + offsetof(struct ProtectedCommunicationZonesRSU, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU = { + "ProtectedCommunicationZonesRSU", + "ProtectedCommunicationZonesRSU", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedCommunicationZonesRSU_constr_1, &asn_PER_type_ProtectedCommunicationZonesRSU_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtectedCommunicationZonesRSU_1, + 1, /* Single element */ + &asn_SPC_ProtectedCommunicationZonesRSU_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ProtectedZoneID.c b/vcits/cpm/src/ProtectedZoneID.c new file mode 100644 index 0000000..3bb3bc6 --- /dev/null +++ b/vcits/cpm/src/ProtectedZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ProtectedZoneID.h" + +int +ProtectedZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID = { + "ProtectedZoneID", + "ProtectedZoneID", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneID_tags_1, + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneID_constr_1, &asn_PER_type_ProtectedZoneID_constr_1, ProtectedZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ProtectedZoneRadius.c b/vcits/cpm/src/ProtectedZoneRadius.c new file mode 100644 index 0000000..9629496 --- /dev/null +++ b/vcits/cpm/src/ProtectedZoneRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ProtectedZoneRadius.h" + +int +ProtectedZoneRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 255 } /* (1..255,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius = { + "ProtectedZoneRadius", + "ProtectedZoneRadius", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneRadius_tags_1, + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneRadius_constr_1, &asn_PER_type_ProtectedZoneRadius_constr_1, ProtectedZoneRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ProtectedZoneType.c b/vcits/cpm/src/ProtectedZoneType.c new file mode 100644 index 0000000..adb434c --- /dev/null +++ b/vcits/cpm/src/ProtectedZoneType.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ProtectedZoneType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ProtectedZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ProtectedZoneType_enum2value_1[] = { + 0, /* permanentCenDsrcTolling(0) */ + 1 /* temporaryCenDsrcTolling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1 = { + asn_MAP_ProtectedZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ProtectedZoneType_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType = { + "ProtectedZoneType", + "ProtectedZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_ProtectedZoneType_tags_1, + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneType_constr_1, &asn_PER_type_ProtectedZoneType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ProtectedZoneType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PtActivation.c b/vcits/cpm/src/PtActivation.c new file mode 100644 index 0000000..e091e07 --- /dev/null +++ b/vcits/cpm/src/PtActivation.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PtActivation.h" + +asn_TYPE_member_t asn_MBR_PtActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationData" + }, +}; +static const ber_tlv_tag_t asn_DEF_PtActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PtActivation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptActivationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivationData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PtActivation_specs_1 = { + sizeof(struct PtActivation), + offsetof(struct PtActivation, _asn_ctx), + asn_MAP_PtActivation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PtActivation = { + "PtActivation", + "PtActivation", + &asn_OP_SEQUENCE, + asn_DEF_PtActivation_tags_1, + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + asn_DEF_PtActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PtActivation_1, + 2, /* Elements count */ + &asn_SPC_PtActivation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PtActivationData.c b/vcits/cpm/src/PtActivationData.c new file mode 100644 index 0000000..d60c9e5 --- /dev/null +++ b/vcits/cpm/src/PtActivationData.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PtActivationData.h" + +int +PtActivationData_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationData_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..20)) */}; +asn_per_constraints_t asn_PER_type_PtActivationData_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (SIZE(1..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationData = { + "PtActivationData", + "PtActivationData", + &asn_OP_OCTET_STRING, + asn_DEF_PtActivationData_tags_1, + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + asn_DEF_PtActivationData_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationData_constr_1, &asn_PER_type_PtActivationData_constr_1, PtActivationData_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PtActivationType.c b/vcits/cpm/src/PtActivationType.c new file mode 100644 index 0000000..d9eaaeb --- /dev/null +++ b/vcits/cpm/src/PtActivationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PtActivationType.h" + +int +PtActivationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_PtActivationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationType = { + "PtActivationType", + "PtActivationType", + &asn_OP_NativeInteger, + asn_DEF_PtActivationType_tags_1, + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + asn_DEF_PtActivationType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationType_constr_1, &asn_PER_type_PtActivationType_constr_1, PtActivationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/PtvRequestType.c b/vcits/cpm/src/PtvRequestType.c new file mode 100644 index 0000000..86b23d7 --- /dev/null +++ b/vcits/cpm/src/PtvRequestType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PtvRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtvRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PtvRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PtvRequestType_value2enum_1[] = { + { 0, 10, "preRequest" }, + { 1, 11, "mainRequest" }, + { 2, 16, "doorCloseRequest" }, + { 3, 13, "cancelRequest" }, + { 4, 16, "emergencyRequest" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PtvRequestType_enum2value_1[] = { + 3, /* cancelRequest(3) */ + 2, /* doorCloseRequest(2) */ + 4, /* emergencyRequest(4) */ + 1, /* mainRequest(1) */ + 0 /* preRequest(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PtvRequestType_specs_1 = { + asn_MAP_PtvRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PtvRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 6, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PtvRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtvRequestType = { + "PtvRequestType", + "PtvRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PtvRequestType_tags_1, + sizeof(asn_DEF_PtvRequestType_tags_1) + /sizeof(asn_DEF_PtvRequestType_tags_1[0]), /* 1 */ + asn_DEF_PtvRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtvRequestType_tags_1) + /sizeof(asn_DEF_PtvRequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtvRequestType_constr_1, &asn_PER_type_PtvRequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PtvRequestType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/PublicTransportContainer.c b/vcits/cpm/src/PublicTransportContainer.c new file mode 100644 index 0000000..1a92ee8 --- /dev/null +++ b/vcits/cpm/src/PublicTransportContainer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "PublicTransportContainer.h" + +#include "PtActivation.h" +asn_TYPE_member_t asn_MBR_PublicTransportContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PublicTransportContainer, embarkationStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmbarkationStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "embarkationStatus" + }, + { ATF_POINTER, 1, offsetof(struct PublicTransportContainer, ptActivation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivation" + }, +}; +static const int asn_MAP_PublicTransportContainer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PublicTransportContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PublicTransportContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* embarkationStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PublicTransportContainer_specs_1 = { + sizeof(struct PublicTransportContainer), + offsetof(struct PublicTransportContainer, _asn_ctx), + asn_MAP_PublicTransportContainer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PublicTransportContainer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PublicTransportContainer = { + "PublicTransportContainer", + "PublicTransportContainer", + &asn_OP_SEQUENCE, + asn_DEF_PublicTransportContainer_tags_1, + sizeof(asn_DEF_PublicTransportContainer_tags_1) + /sizeof(asn_DEF_PublicTransportContainer_tags_1[0]), /* 1 */ + asn_DEF_PublicTransportContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_PublicTransportContainer_tags_1) + /sizeof(asn_DEF_PublicTransportContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PublicTransportContainer_1, + 2, /* Elements count */ + &asn_SPC_PublicTransportContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RSUContainerHighFrequency.c b/vcits/cpm/src/RSUContainerHighFrequency.c new file mode 100644 index 0000000..ab96de4 --- /dev/null +++ b/vcits/cpm/src/RSUContainerHighFrequency.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RSUContainerHighFrequency.h" + +#include "ProtectedCommunicationZonesRSU.h" +asn_TYPE_member_t asn_MBR_RSUContainerHighFrequency_1[] = { + { ATF_POINTER, 1, offsetof(struct RSUContainerHighFrequency, protectedCommunicationZonesRSU), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedCommunicationZonesRSU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedCommunicationZonesRSU" + }, +}; +static const int asn_MAP_RSUContainerHighFrequency_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_RSUContainerHighFrequency_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RSUContainerHighFrequency_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protectedCommunicationZonesRSU */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RSUContainerHighFrequency_specs_1 = { + sizeof(struct RSUContainerHighFrequency), + offsetof(struct RSUContainerHighFrequency, _asn_ctx), + asn_MAP_RSUContainerHighFrequency_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_RSUContainerHighFrequency_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RSUContainerHighFrequency = { + "RSUContainerHighFrequency", + "RSUContainerHighFrequency", + &asn_OP_SEQUENCE, + asn_DEF_RSUContainerHighFrequency_tags_1, + sizeof(asn_DEF_RSUContainerHighFrequency_tags_1) + /sizeof(asn_DEF_RSUContainerHighFrequency_tags_1[0]), /* 1 */ + asn_DEF_RSUContainerHighFrequency_tags_1, /* Same as above */ + sizeof(asn_DEF_RSUContainerHighFrequency_tags_1) + /sizeof(asn_DEF_RSUContainerHighFrequency_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RSUContainerHighFrequency_1, + 1, /* Elements count */ + &asn_SPC_RSUContainerHighFrequency_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RTCM-Revision.c b/vcits/cpm/src/RTCM-Revision.c new file mode 100644 index 0000000..747c55e --- /dev/null +++ b/vcits/cpm/src/RTCM-Revision.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RTCM-Revision.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RTCM_Revision_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "rtcmRev2" }, + { 2, 8, "rtcmRev3" }, + { 3, 8, "reserved" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RTCM_Revision_enum2value_1[] = { + 3, /* reserved(3) */ + 1, /* rtcmRev2(1) */ + 2, /* rtcmRev3(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1 = { + asn_MAP_RTCM_Revision_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RTCM_Revision_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RTCM_Revision_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCM_Revision = { + "RTCM-Revision", + "RTCM-Revision", + &asn_OP_NativeEnumerated, + asn_DEF_RTCM_Revision_tags_1, + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + asn_DEF_RTCM_Revision_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCM_Revision_constr_1, &asn_PER_type_RTCM_Revision_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RTCM_Revision_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RTCMcorrections.c b/vcits/cpm/src/RTCMcorrections.c new file mode 100644 index 0000000..caa5533 --- /dev/null +++ b/vcits/cpm/src/RTCMcorrections.c @@ -0,0 +1,194 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RTCMcorrections.h" + +#include "FullPositionVector.h" +#include "RTCMheader.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RTCMcorrections, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct RTCMcorrections__regional), + offsetof(struct RTCMcorrections__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RTCMcorrections_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, rev), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCM_Revision, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rev" + }, + { ATF_POINTER, 3, offsetof(struct RTCMcorrections, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 2, offsetof(struct RTCMcorrections, anchorPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FullPositionVector, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "anchorPoint" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, rtcmHeader), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMheader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rtcmHeader" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgs), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMmessageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgs" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RTCMcorrections_oms_1[] = { 2, 3, 4, 6 }; +static const ber_tlv_tag_t asn_DEF_RTCMcorrections_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMcorrections_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rev */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* anchorPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rtcmHeader */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* msgs */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RTCMcorrections_specs_1 = { + sizeof(struct RTCMcorrections), + offsetof(struct RTCMcorrections, _asn_ctx), + asn_MAP_RTCMcorrections_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_RTCMcorrections_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMcorrections = { + "RTCMcorrections", + "RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_RTCMcorrections_tags_1, + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + asn_DEF_RTCMcorrections_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMcorrections_1, + 7, /* Elements count */ + &asn_SPC_RTCMcorrections_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RTCMheader.c b/vcits/cpm/src/RTCMheader.c new file mode 100644 index 0000000..dbe443c --- /dev/null +++ b/vcits/cpm/src/RTCMheader.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RTCMheader.h" + +asn_TYPE_member_t asn_MBR_RTCMheader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, status), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNSSstatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, offsetSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AntennaOffsetSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMheader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMheader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* offsetSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1 = { + sizeof(struct RTCMheader), + offsetof(struct RTCMheader, _asn_ctx), + asn_MAP_RTCMheader_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMheader = { + "RTCMheader", + "RTCMheader", + &asn_OP_SEQUENCE, + asn_DEF_RTCMheader_tags_1, + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + asn_DEF_RTCMheader_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMheader_1, + 2, /* Elements count */ + &asn_SPC_RTCMheader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RTCMmessage.c b/vcits/cpm/src/RTCMmessage.c new file mode 100644 index 0000000..d59c9ff --- /dev/null +++ b/vcits/cpm/src/RTCMmessage.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RTCMmessage.h" + +int +RTCMmessage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1023)) */}; +asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (SIZE(1..1023)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessage = { + "RTCMmessage", + "RTCMmessage", + &asn_OP_OCTET_STRING, + asn_DEF_RTCMmessage_tags_1, + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCMmessage_constr_1, &asn_PER_type_RTCMmessage_constr_1, RTCMmessage_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RTCMmessageList.c b/vcits/cpm/src/RTCMmessageList.c new file mode 100644 index 0000000..53a301d --- /dev/null +++ b/vcits/cpm/src/RTCMmessageList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RTCMmessageList.h" + +static asn_oer_constraints_t asn_OER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RTCMmessageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RTCMmessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1 = { + sizeof(struct RTCMmessageList), + offsetof(struct RTCMmessageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessageList = { + "RTCMmessageList", + "RTCMmessageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RTCMmessageList_tags_1, + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessageList_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCMmessageList_constr_1, &asn_PER_type_RTCMmessageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RTCMmessageList_1, + 1, /* Single element */ + &asn_SPC_RTCMmessageList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Radius.c b/vcits/cpm/src/Radius.c new file mode 100644 index 0000000..bde9ccb --- /dev/null +++ b/vcits/cpm/src/Radius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Radius.h" + +int +Radius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Radius_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..10000) */, + -1}; +asn_per_constraints_t asn_PER_type_Radius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10000 } /* (0..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Radius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Radius = { + "Radius", + "Radius", + &asn_OP_NativeInteger, + asn_DEF_Radius_tags_1, + sizeof(asn_DEF_Radius_tags_1) + /sizeof(asn_DEF_Radius_tags_1[0]), /* 1 */ + asn_DEF_Radius_tags_1, /* Same as above */ + sizeof(asn_DEF_Radius_tags_1) + /sizeof(asn_DEF_Radius_tags_1[0]), /* 1 */ + { &asn_OER_type_Radius_constr_1, &asn_PER_type_Radius_constr_1, Radius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Range.c b/vcits/cpm/src/Range.c new file mode 100644 index 0000000..78714b0 --- /dev/null +++ b/vcits/cpm/src/Range.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Range.h" + +int +Range_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Range_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..10000) */, + -1}; +asn_per_constraints_t asn_PER_type_Range_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10000 } /* (0..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Range_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Range = { + "Range", + "Range", + &asn_OP_NativeInteger, + asn_DEF_Range_tags_1, + sizeof(asn_DEF_Range_tags_1) + /sizeof(asn_DEF_Range_tags_1[0]), /* 1 */ + asn_DEF_Range_tags_1, /* Same as above */ + sizeof(asn_DEF_Range_tags_1) + /sizeof(asn_DEF_Range_tags_1[0]), /* 1 */ + { &asn_OER_type_Range_constr_1, &asn_PER_type_Range_constr_1, Range_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/RearOverhang.c b/vcits/cpm/src/RearOverhang.c new file mode 100644 index 0000000..9ccb1f6 --- /dev/null +++ b/vcits/cpm/src/RearOverhang.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RearOverhang.h" + +int +RearOverhang_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 150)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RearOverhang_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..150) */, + -1}; +asn_per_constraints_t asn_PER_type_RearOverhang_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 150 } /* (0..150) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RearOverhang_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RearOverhang = { + "RearOverhang", + "RearOverhang", + &asn_OP_NativeInteger, + asn_DEF_RearOverhang_tags_1, + sizeof(asn_DEF_RearOverhang_tags_1) + /sizeof(asn_DEF_RearOverhang_tags_1[0]), /* 1 */ + asn_DEF_RearOverhang_tags_1, /* Same as above */ + sizeof(asn_DEF_RearOverhang_tags_1) + /sizeof(asn_DEF_RearOverhang_tags_1[0]), /* 1 */ + { &asn_OER_type_RearOverhang_constr_1, &asn_PER_type_RearOverhang_constr_1, RearOverhang_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/RefPointId.c b/vcits/cpm/src/RefPointId.c new file mode 100644 index 0000000..698cd42 --- /dev/null +++ b/vcits/cpm/src/RefPointId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RefPointId.h" + +int +RefPointId_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RefPointId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RefPointId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RefPointId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RefPointId = { + "RefPointId", + "RefPointId", + &asn_OP_NativeInteger, + asn_DEF_RefPointId_tags_1, + sizeof(asn_DEF_RefPointId_tags_1) + /sizeof(asn_DEF_RefPointId_tags_1[0]), /* 1 */ + asn_DEF_RefPointId_tags_1, /* Same as above */ + sizeof(asn_DEF_RefPointId_tags_1) + /sizeof(asn_DEF_RefPointId_tags_1[0]), /* 1 */ + { &asn_OER_type_RefPointId_constr_1, &asn_PER_type_RefPointId_constr_1, RefPointId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ReferencePosition.c b/vcits/cpm/src/ReferencePosition.c new file mode 100644 index 0000000..3508afb --- /dev/null +++ b/vcits/cpm/src/ReferencePosition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ReferencePosition.h" + +asn_TYPE_member_t asn_MBR_ReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PosConfidenceEllipse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionConfidenceEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* longitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* positionConfidenceEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1 = { + sizeof(struct ReferencePosition), + offsetof(struct ReferencePosition, _asn_ctx), + asn_MAP_ReferencePosition_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReferencePosition = { + "ReferencePosition", + "ReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_ReferencePosition_tags_1, + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_ReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReferencePosition_1, + 4, /* Elements count */ + &asn_SPC_ReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RegionId.c b/vcits/cpm/src/RegionId.c new file mode 100644 index 0000000..a4f01ea --- /dev/null +++ b/vcits/cpm/src/RegionId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RegionId.h" + +int +RegionId_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RegionId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RegionId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RegionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RegionId = { + "RegionId", + "RegionId", + &asn_OP_NativeInteger, + asn_DEF_RegionId_tags_1, + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + asn_DEF_RegionId_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + { &asn_OER_type_RegionId_constr_1, &asn_PER_type_RegionId_constr_1, RegionId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/RegionalExtension.c b/vcits/cpm/src/RegionalExtension.c new file mode 100644 index 0000000..f25468a --- /dev/null +++ b/vcits/cpm/src/RegionalExtension.c @@ -0,0 +1,4204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RegionalExtension.h" + +static const long asn_VAL_5_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MapData_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_5_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MapData_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MapData_1[] = { + { 1, 2, asn_IOS_Reg_MapData_1_rows } +}; +static const long asn_VAL_1_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_ConnectionManeuverAssist_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_1_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionManeuverAssist_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_ConnectionManeuverAssist_1[] = { + { 1, 2, asn_IOS_Reg_ConnectionManeuverAssist_1_rows } +}; +static const long asn_VAL_2_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_GenericLane_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_2_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionTrajectory_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_GenericLane_1[] = { + { 1, 2, asn_IOS_Reg_GenericLane_1_rows } +}; +static const long asn_VAL_3_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_IntersectionState_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_3_addGrpC }, + { "&Type", aioc__type, &asn_DEF_IntersectionState_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_IntersectionState_1[] = { + { 1, 2, asn_IOS_Reg_IntersectionState_1_rows } +}; +static const long asn_VAL_4_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_LaneAttributes_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_4_addGrpC }, + { "&Type", aioc__type, &asn_DEF_LaneAttributes_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_LaneAttributes_1[] = { + { 1, 2, asn_IOS_Reg_LaneAttributes_1_rows } +}; +static const long asn_VAL_6_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MovementEvent_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_6_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MovementEvent_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MovementEvent_1[] = { + { 1, 2, asn_IOS_Reg_MovementEvent_1_rows } +}; +static const long asn_VAL_7_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_NodeAttributeSetXY_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_7_addGrpC }, + { "&Type", aioc__type, &asn_DEF_NodeAttributeSet_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_NodeAttributeSetXY_1[] = { + { 1, 2, asn_IOS_Reg_NodeAttributeSetXY_1_rows } +}; +static const long asn_VAL_8_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_Position3D_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_8_addGrpC }, + { "&Type", aioc__type, &asn_DEF_Position3D_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_Position3D_1[] = { + { 1, 2, asn_IOS_Reg_Position3D_1_rows } +}; +static const long asn_VAL_9_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RequestorDescription_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_9_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RequestorDescription_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RequestorDescription_1[] = { + { 1, 2, asn_IOS_Reg_RequestorDescription_1_rows } +}; +static const long asn_VAL_10_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RestrictionUserType_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_10_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RestrictionUserType_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RestrictionUserType_1[] = { + { 1, 2, asn_IOS_Reg_RestrictionUserType_1_rows } +}; +static const long asn_VAL_11_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_SignalStatusPackage_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_11_addGrpC }, + { "&Type", aioc__type, &asn_DEF_SignalStatusPackage_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_SignalStatusPackage_1[] = { + { 1, 2, asn_IOS_Reg_SignalStatusPackage_1_rows } +}; +static int +memb_regionId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MapData_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MapData_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MapData, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_ConnectionManeuverAssist_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_ConnectionManeuverAssist_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_ConnectionManeuverAssist, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_GenericLane_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_GenericLane_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_GenericLane, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_IntersectionState_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_IntersectionState_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_IntersectionState, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_LaneAttributes_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_LaneAttributes_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_LaneAttributes, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MovementEvent_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MovementEvent_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MovementEvent, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_NodeAttributeSetXY_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_NodeAttributeSetXY_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_NodeAttributeSetXY, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_Position3D_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_Position3D_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_Position3D, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RequestorDescription_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RequestorDescription_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RequestorDescription, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RestrictionUserType_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RestrictionUserType_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RestrictionUserType, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_SignalStatusPackage_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_SignalStatusPackage_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_SignalStatusPackage, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_regionId_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_11 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_14 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_15 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_17 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_18 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_20 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_21 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_23 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_26 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_27 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_29 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_30 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_30 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_32 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_33 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_35 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_36 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_38 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_39 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_41 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_42 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_42 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_44 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_44 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_45 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_47 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_47 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_48 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_50 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_51 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_53 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_53 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_54 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_54 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_56 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_56 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_57 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_57 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_59 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_60 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_62 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_63 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_63 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_65 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_65 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_66 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_66 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_68 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_68 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_69 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_69 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_71 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_71 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_72 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_74 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_74 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_75 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_75 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_77 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_77 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_78 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_78 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_80 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_80 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_81 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_81 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regExtValue_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData__regExtValue, choice.MapData_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MapData_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MapData-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_3[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MapData-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_3 = { + sizeof(struct Reg_MapData__regExtValue), + offsetof(struct Reg_MapData__regExtValue, _asn_ctx), + offsetof(struct Reg_MapData__regExtValue, present), + sizeof(((struct Reg_MapData__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_3, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_3 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_3, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MapData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_2, &asn_PER_memb_regionId_constr_2, memb_regionId_constraint_1 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_3, + select_Reg_MapData_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_3, &asn_PER_memb_regExtValue_constr_3, memb_regExtValue_constraint_1 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_1 = { + sizeof(struct Reg_MapData), + offsetof(struct Reg_MapData, _asn_ctx), + asn_MAP_Reg_MapData_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MapData = { + "Reg-MapData", + "Reg-MapData", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MapData_tags_1, + sizeof(asn_DEF_Reg_MapData_tags_1) + /sizeof(asn_DEF_Reg_MapData_tags_1[0]), /* 1 */ + asn_DEF_Reg_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_Reg_MapData_tags_1) + /sizeof(asn_DEF_Reg_MapData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MapData_1, + 2, /* Elements count */ + &asn_SPC_Reg_MapData_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_6 = { + sizeof(struct Reg_RTCMcorrections__regExtValue), + offsetof(struct Reg_RTCMcorrections__regExtValue, _asn_ctx), + offsetof(struct Reg_RTCMcorrections__regExtValue, present), + sizeof(((struct Reg_RTCMcorrections__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_6 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_5, &asn_PER_memb_regionId_constr_5, memb_regionId_constraint_4 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_6, + 0, + { &asn_OER_memb_regExtValue_constr_6, &asn_PER_memb_regExtValue_constr_6, memb_regExtValue_constraint_4 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RTCMcorrections_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RTCMcorrections_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_4 = { + sizeof(struct Reg_RTCMcorrections), + offsetof(struct Reg_RTCMcorrections, _asn_ctx), + asn_MAP_Reg_RTCMcorrections_tag2el_4, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections = { + "Reg-RTCMcorrections", + "Reg-RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RTCMcorrections_tags_4, + sizeof(asn_DEF_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + asn_DEF_Reg_RTCMcorrections_tags_4, /* Same as above */ + sizeof(asn_DEF_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RTCMcorrections_4, + 2, /* Elements count */ + &asn_SPC_Reg_RTCMcorrections_specs_4 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_9 = { + sizeof(struct Reg_SPAT__regExtValue), + offsetof(struct Reg_SPAT__regExtValue, _asn_ctx), + offsetof(struct Reg_SPAT__regExtValue, present), + sizeof(((struct Reg_SPAT__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_9 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SPAT_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_8, &asn_PER_memb_regionId_constr_8, memb_regionId_constraint_7 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_9, + 0, + { &asn_OER_memb_regExtValue_constr_9, &asn_PER_memb_regExtValue_constr_9, memb_regExtValue_constraint_7 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SPAT_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SPAT_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_7 = { + sizeof(struct Reg_SPAT), + offsetof(struct Reg_SPAT, _asn_ctx), + asn_MAP_Reg_SPAT_tag2el_7, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SPAT = { + "Reg-SPAT", + "Reg-SPAT", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SPAT_tags_7, + sizeof(asn_DEF_Reg_SPAT_tags_7) + /sizeof(asn_DEF_Reg_SPAT_tags_7[0]), /* 1 */ + asn_DEF_Reg_SPAT_tags_7, /* Same as above */ + sizeof(asn_DEF_Reg_SPAT_tags_7) + /sizeof(asn_DEF_Reg_SPAT_tags_7[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SPAT_7, + 2, /* Elements count */ + &asn_SPC_Reg_SPAT_specs_7 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_12 = { + sizeof(struct Reg_SignalRequestMessage__regExtValue), + offsetof(struct Reg_SignalRequestMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestMessage__regExtValue, present), + sizeof(((struct Reg_SignalRequestMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_12 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_11, &asn_PER_memb_regionId_constr_11, memb_regionId_constraint_10 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_12, + 0, + { &asn_OER_memb_regExtValue_constr_12, &asn_PER_memb_regExtValue_constr_12, memb_regExtValue_constraint_10 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestMessage_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestMessage_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_10 = { + sizeof(struct Reg_SignalRequestMessage), + offsetof(struct Reg_SignalRequestMessage, _asn_ctx), + asn_MAP_Reg_SignalRequestMessage_tag2el_10, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage = { + "Reg-SignalRequestMessage", + "Reg-SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestMessage_tags_10, + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + asn_DEF_Reg_SignalRequestMessage_tags_10, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequestMessage_10, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestMessage_specs_10 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_15 = { + sizeof(struct Reg_SignalStatusMessage__regExtValue), + offsetof(struct Reg_SignalStatusMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusMessage__regExtValue, present), + sizeof(((struct Reg_SignalStatusMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_15 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_14, &asn_PER_memb_regionId_constr_14, memb_regionId_constraint_13 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_15, + 0, + { &asn_OER_memb_regExtValue_constr_15, &asn_PER_memb_regExtValue_constr_15, memb_regExtValue_constraint_13 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusMessage_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusMessage_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_13 = { + sizeof(struct Reg_SignalStatusMessage), + offsetof(struct Reg_SignalStatusMessage, _asn_ctx), + asn_MAP_Reg_SignalStatusMessage_tag2el_13, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage = { + "Reg-SignalStatusMessage", + "Reg-SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusMessage_tags_13, + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + asn_DEF_Reg_SignalStatusMessage_tags_13, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatusMessage_13, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusMessage_specs_13 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_18 = { + sizeof(struct Reg_AdvisorySpeed__regExtValue), + offsetof(struct Reg_AdvisorySpeed__regExtValue, _asn_ctx), + offsetof(struct Reg_AdvisorySpeed__regExtValue, present), + sizeof(((struct Reg_AdvisorySpeed__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_18 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_17, &asn_PER_memb_regionId_constr_17, memb_regionId_constraint_16 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_18, + 0, + { &asn_OER_memb_regExtValue_constr_18, &asn_PER_memb_regExtValue_constr_18, memb_regExtValue_constraint_16 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_AdvisorySpeed_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_AdvisorySpeed_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_16 = { + sizeof(struct Reg_AdvisorySpeed), + offsetof(struct Reg_AdvisorySpeed, _asn_ctx), + asn_MAP_Reg_AdvisorySpeed_tag2el_16, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed = { + "Reg-AdvisorySpeed", + "Reg-AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_Reg_AdvisorySpeed_tags_16, + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + asn_DEF_Reg_AdvisorySpeed_tags_16, /* Same as above */ + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_AdvisorySpeed_16, + 2, /* Elements count */ + &asn_SPC_Reg_AdvisorySpeed_specs_16 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_21 = { + sizeof(struct Reg_ComputedLane__regExtValue), + offsetof(struct Reg_ComputedLane__regExtValue, _asn_ctx), + offsetof(struct Reg_ComputedLane__regExtValue, present), + sizeof(((struct Reg_ComputedLane__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_21 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ComputedLane_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_20, &asn_PER_memb_regionId_constr_20, memb_regionId_constraint_19 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_21, + 0, + { &asn_OER_memb_regExtValue_constr_21, &asn_PER_memb_regExtValue_constr_21, memb_regExtValue_constraint_19 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ComputedLane_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ComputedLane_tag2el_19[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_19 = { + sizeof(struct Reg_ComputedLane), + offsetof(struct Reg_ComputedLane, _asn_ctx), + asn_MAP_Reg_ComputedLane_tag2el_19, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane = { + "Reg-ComputedLane", + "Reg-ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ComputedLane_tags_19, + sizeof(asn_DEF_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_Reg_ComputedLane_tags_19[0]), /* 1 */ + asn_DEF_Reg_ComputedLane_tags_19, /* Same as above */ + sizeof(asn_DEF_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_Reg_ComputedLane_tags_19[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_ComputedLane_19, + 2, /* Elements count */ + &asn_SPC_Reg_ComputedLane_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, choice.ConnectionManeuverAssist_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionManeuverAssist-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionManeuverAssist-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_24 = { + sizeof(struct Reg_ConnectionManeuverAssist__regExtValue), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, _asn_ctx), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, present), + sizeof(((struct Reg_ConnectionManeuverAssist__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_24, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_24 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_24, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_23, &asn_PER_memb_regionId_constr_23, memb_regionId_constraint_22 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_24, + select_Reg_ConnectionManeuverAssist_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_24, &asn_PER_memb_regExtValue_constr_24, memb_regExtValue_constraint_22 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ConnectionManeuverAssist_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ConnectionManeuverAssist_tag2el_22[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_22 = { + sizeof(struct Reg_ConnectionManeuverAssist), + offsetof(struct Reg_ConnectionManeuverAssist, _asn_ctx), + asn_MAP_Reg_ConnectionManeuverAssist_tag2el_22, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist = { + "Reg-ConnectionManeuverAssist", + "Reg-ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ConnectionManeuverAssist_tags_22, + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + asn_DEF_Reg_ConnectionManeuverAssist_tags_22, /* Same as above */ + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_ConnectionManeuverAssist_22, + 2, /* Elements count */ + &asn_SPC_Reg_ConnectionManeuverAssist_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_27[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane__regExtValue, choice.ConnectionTrajectory_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionTrajectory_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionTrajectory-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_27[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionTrajectory-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_27 = { + sizeof(struct Reg_GenericLane__regExtValue), + offsetof(struct Reg_GenericLane__regExtValue, _asn_ctx), + offsetof(struct Reg_GenericLane__regExtValue, present), + sizeof(((struct Reg_GenericLane__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_27, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_27 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_27, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_GenericLane_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_26, &asn_PER_memb_regionId_constr_26, memb_regionId_constraint_25 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_27, + select_Reg_GenericLane_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_27, &asn_PER_memb_regExtValue_constr_27, memb_regExtValue_constraint_25 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_GenericLane_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_GenericLane_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_25 = { + sizeof(struct Reg_GenericLane), + offsetof(struct Reg_GenericLane, _asn_ctx), + asn_MAP_Reg_GenericLane_tag2el_25, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane = { + "Reg-GenericLane", + "Reg-GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_GenericLane_tags_25, + sizeof(asn_DEF_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_Reg_GenericLane_tags_25[0]), /* 1 */ + asn_DEF_Reg_GenericLane_tags_25, /* Same as above */ + sizeof(asn_DEF_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_Reg_GenericLane_tags_25[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_GenericLane_25, + 2, /* Elements count */ + &asn_SPC_Reg_GenericLane_specs_25 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_30 = { + sizeof(struct Reg_IntersectionGeometry__regExtValue), + offsetof(struct Reg_IntersectionGeometry__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionGeometry__regExtValue, present), + sizeof(((struct Reg_IntersectionGeometry__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_30 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_30 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_29, &asn_PER_memb_regionId_constr_29, memb_regionId_constraint_28 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_30, + 0, + { &asn_OER_memb_regExtValue_constr_30, &asn_PER_memb_regExtValue_constr_30, memb_regExtValue_constraint_28 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionGeometry_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionGeometry_tag2el_28[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_28 = { + sizeof(struct Reg_IntersectionGeometry), + offsetof(struct Reg_IntersectionGeometry, _asn_ctx), + asn_MAP_Reg_IntersectionGeometry_tag2el_28, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry = { + "Reg-IntersectionGeometry", + "Reg-IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionGeometry_tags_28, + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + asn_DEF_Reg_IntersectionGeometry_tags_28, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_IntersectionGeometry_28, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionGeometry_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState__regExtValue, choice.IntersectionState_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IntersectionState-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_33[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* IntersectionState-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_33 = { + sizeof(struct Reg_IntersectionState__regExtValue), + offsetof(struct Reg_IntersectionState__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionState__regExtValue, present), + sizeof(((struct Reg_IntersectionState__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_33, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_33 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_33, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionState_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_32, &asn_PER_memb_regionId_constr_32, memb_regionId_constraint_31 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_33, + select_Reg_IntersectionState_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_33, &asn_PER_memb_regExtValue_constr_33, memb_regExtValue_constraint_31 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionState_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionState_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_31 = { + sizeof(struct Reg_IntersectionState), + offsetof(struct Reg_IntersectionState, _asn_ctx), + asn_MAP_Reg_IntersectionState_tag2el_31, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState = { + "Reg-IntersectionState", + "Reg-IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionState_tags_31, + sizeof(asn_DEF_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_Reg_IntersectionState_tags_31[0]), /* 1 */ + asn_DEF_Reg_IntersectionState_tags_31, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_Reg_IntersectionState_tags_31[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_IntersectionState_31, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionState_specs_31 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes__regExtValue, choice.LaneAttributes_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_LaneAttributes_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LaneAttributes-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* LaneAttributes-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_36 = { + sizeof(struct Reg_LaneAttributes__regExtValue), + offsetof(struct Reg_LaneAttributes__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneAttributes__regExtValue, present), + sizeof(((struct Reg_LaneAttributes__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_36, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_36 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_36, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_34[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_35, &asn_PER_memb_regionId_constr_35, memb_regionId_constraint_34 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_36, + select_Reg_LaneAttributes_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_36, &asn_PER_memb_regExtValue_constr_36, memb_regExtValue_constraint_34 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneAttributes_tags_34[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneAttributes_tag2el_34[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_34 = { + sizeof(struct Reg_LaneAttributes), + offsetof(struct Reg_LaneAttributes, _asn_ctx), + asn_MAP_Reg_LaneAttributes_tag2el_34, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes = { + "Reg-LaneAttributes", + "Reg-LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneAttributes_tags_34, + sizeof(asn_DEF_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_34[0]), /* 1 */ + asn_DEF_Reg_LaneAttributes_tags_34, /* Same as above */ + sizeof(asn_DEF_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_34[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_LaneAttributes_34, + 2, /* Elements count */ + &asn_SPC_Reg_LaneAttributes_specs_34 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_39 = { + sizeof(struct Reg_LaneDataAttribute__regExtValue), + offsetof(struct Reg_LaneDataAttribute__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneDataAttribute__regExtValue, present), + sizeof(((struct Reg_LaneDataAttribute__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_39 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_38, &asn_PER_memb_regionId_constr_38, memb_regionId_constraint_37 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_39, + 0, + { &asn_OER_memb_regExtValue_constr_39, &asn_PER_memb_regExtValue_constr_39, memb_regExtValue_constraint_37 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneDataAttribute_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneDataAttribute_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_37 = { + sizeof(struct Reg_LaneDataAttribute), + offsetof(struct Reg_LaneDataAttribute, _asn_ctx), + asn_MAP_Reg_LaneDataAttribute_tag2el_37, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute = { + "Reg-LaneDataAttribute", + "Reg-LaneDataAttribute", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneDataAttribute_tags_37, + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + asn_DEF_Reg_LaneDataAttribute_tags_37, /* Same as above */ + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_LaneDataAttribute_37, + 2, /* Elements count */ + &asn_SPC_Reg_LaneDataAttribute_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_42[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent__regExtValue, choice.MovementEvent_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MovementEvent-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_42[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MovementEvent-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_42 = { + sizeof(struct Reg_MovementEvent__regExtValue), + offsetof(struct Reg_MovementEvent__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementEvent__regExtValue, present), + sizeof(((struct Reg_MovementEvent__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_42, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_42 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_42, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_42 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementEvent_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_41, &asn_PER_memb_regionId_constr_41, memb_regionId_constraint_40 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_42, + select_Reg_MovementEvent_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_42, &asn_PER_memb_regExtValue_constr_42, memb_regExtValue_constraint_40 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementEvent_tags_40[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementEvent_tag2el_40[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_40 = { + sizeof(struct Reg_MovementEvent), + offsetof(struct Reg_MovementEvent, _asn_ctx), + asn_MAP_Reg_MovementEvent_tag2el_40, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent = { + "Reg-MovementEvent", + "Reg-MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementEvent_tags_40, + sizeof(asn_DEF_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_Reg_MovementEvent_tags_40[0]), /* 1 */ + asn_DEF_Reg_MovementEvent_tags_40, /* Same as above */ + sizeof(asn_DEF_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_Reg_MovementEvent_tags_40[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MovementEvent_40, + 2, /* Elements count */ + &asn_SPC_Reg_MovementEvent_specs_40 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_45 = { + sizeof(struct Reg_MovementState__regExtValue), + offsetof(struct Reg_MovementState__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementState__regExtValue, present), + sizeof(((struct Reg_MovementState__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_45 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementState_43[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_44, &asn_PER_memb_regionId_constr_44, memb_regionId_constraint_43 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_45, + 0, + { &asn_OER_memb_regExtValue_constr_45, &asn_PER_memb_regExtValue_constr_45, memb_regExtValue_constraint_43 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementState_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementState_tag2el_43[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_43 = { + sizeof(struct Reg_MovementState), + offsetof(struct Reg_MovementState, _asn_ctx), + asn_MAP_Reg_MovementState_tag2el_43, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementState = { + "Reg-MovementState", + "Reg-MovementState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementState_tags_43, + sizeof(asn_DEF_Reg_MovementState_tags_43) + /sizeof(asn_DEF_Reg_MovementState_tags_43[0]), /* 1 */ + asn_DEF_Reg_MovementState_tags_43, /* Same as above */ + sizeof(asn_DEF_Reg_MovementState_tags_43) + /sizeof(asn_DEF_Reg_MovementState_tags_43[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MovementState_43, + 2, /* Elements count */ + &asn_SPC_Reg_MovementState_specs_43 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY__regExtValue, choice.NodeAttributeSet_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeAttributeSet_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NodeAttributeSet-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NodeAttributeSet-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_48 = { + sizeof(struct Reg_NodeAttributeSetXY__regExtValue), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, present), + sizeof(((struct Reg_NodeAttributeSetXY__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_48, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_48 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_48, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_46[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_47, &asn_PER_memb_regionId_constr_47, memb_regionId_constraint_46 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_48, + select_Reg_NodeAttributeSetXY_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_48, &asn_PER_memb_regExtValue_constr_48, memb_regExtValue_constraint_46 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeAttributeSetXY_tags_46[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeAttributeSetXY_tag2el_46[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_46 = { + sizeof(struct Reg_NodeAttributeSetXY), + offsetof(struct Reg_NodeAttributeSetXY, _asn_ctx), + asn_MAP_Reg_NodeAttributeSetXY_tag2el_46, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY = { + "Reg-NodeAttributeSetXY", + "Reg-NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeAttributeSetXY_tags_46, + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + asn_DEF_Reg_NodeAttributeSetXY_tags_46, /* Same as above */ + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_NodeAttributeSetXY_46, + 2, /* Elements count */ + &asn_SPC_Reg_NodeAttributeSetXY_specs_46 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_51 = { + sizeof(struct Reg_NodeOffsetPointXY__regExtValue), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, present), + sizeof(((struct Reg_NodeOffsetPointXY__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_51 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_50, &asn_PER_memb_regionId_constr_50, memb_regionId_constraint_49 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_51, + 0, + { &asn_OER_memb_regExtValue_constr_51, &asn_PER_memb_regExtValue_constr_51, memb_regExtValue_constraint_49 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeOffsetPointXY_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeOffsetPointXY_tag2el_49[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_49 = { + sizeof(struct Reg_NodeOffsetPointXY), + offsetof(struct Reg_NodeOffsetPointXY, _asn_ctx), + asn_MAP_Reg_NodeOffsetPointXY_tag2el_49, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY = { + "Reg-NodeOffsetPointXY", + "Reg-NodeOffsetPointXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeOffsetPointXY_tags_49, + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + asn_DEF_Reg_NodeOffsetPointXY_tags_49, /* Same as above */ + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_NodeOffsetPointXY_49, + 2, /* Elements count */ + &asn_SPC_Reg_NodeOffsetPointXY_specs_49 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_54[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D__regExtValue, choice.Position3D_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Position3D_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Position3D-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_54[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Position3D-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_54 = { + sizeof(struct Reg_Position3D__regExtValue), + offsetof(struct Reg_Position3D__regExtValue, _asn_ctx), + offsetof(struct Reg_Position3D__regExtValue, present), + sizeof(((struct Reg_Position3D__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_54, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_54 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_54, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_54 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_Position3D_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_53, &asn_PER_memb_regionId_constr_53, memb_regionId_constraint_52 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_54, + select_Reg_Position3D_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_54, &asn_PER_memb_regExtValue_constr_54, memb_regExtValue_constraint_52 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_Position3D_tags_52[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_Position3D_tag2el_52[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_52 = { + sizeof(struct Reg_Position3D), + offsetof(struct Reg_Position3D, _asn_ctx), + asn_MAP_Reg_Position3D_tag2el_52, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_Position3D = { + "Reg-Position3D", + "Reg-Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Reg_Position3D_tags_52, + sizeof(asn_DEF_Reg_Position3D_tags_52) + /sizeof(asn_DEF_Reg_Position3D_tags_52[0]), /* 1 */ + asn_DEF_Reg_Position3D_tags_52, /* Same as above */ + sizeof(asn_DEF_Reg_Position3D_tags_52) + /sizeof(asn_DEF_Reg_Position3D_tags_52[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_Position3D_52, + 2, /* Elements count */ + &asn_SPC_Reg_Position3D_specs_52 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription__regExtValue, choice.RequestorDescription_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RequestorDescription_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RequestorDescription-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_57[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RequestorDescription-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_57 = { + sizeof(struct Reg_RequestorDescription__regExtValue), + offsetof(struct Reg_RequestorDescription__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorDescription__regExtValue, present), + sizeof(((struct Reg_RequestorDescription__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_57, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_57 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_57, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_55[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_56, &asn_PER_memb_regionId_constr_56, memb_regionId_constraint_55 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_57, + select_Reg_RequestorDescription_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_57, &asn_PER_memb_regExtValue_constr_57, memb_regExtValue_constraint_55 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorDescription_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorDescription_tag2el_55[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_55 = { + sizeof(struct Reg_RequestorDescription), + offsetof(struct Reg_RequestorDescription, _asn_ctx), + asn_MAP_Reg_RequestorDescription_tag2el_55, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription = { + "Reg-RequestorDescription", + "Reg-RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorDescription_tags_55, + sizeof(asn_DEF_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_55[0]), /* 1 */ + asn_DEF_Reg_RequestorDescription_tags_55, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_55[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RequestorDescription_55, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorDescription_specs_55 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_60 = { + sizeof(struct Reg_RequestorType__regExtValue), + offsetof(struct Reg_RequestorType__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorType__regExtValue, present), + sizeof(((struct Reg_RequestorType__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_60 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorType_58[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_59, &asn_PER_memb_regionId_constr_59, memb_regionId_constraint_58 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_60, + 0, + { &asn_OER_memb_regExtValue_constr_60, &asn_PER_memb_regExtValue_constr_60, memb_regExtValue_constraint_58 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorType_tags_58[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorType_tag2el_58[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_58 = { + sizeof(struct Reg_RequestorType), + offsetof(struct Reg_RequestorType, _asn_ctx), + asn_MAP_Reg_RequestorType_tag2el_58, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType = { + "Reg-RequestorType", + "Reg-RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorType_tags_58, + sizeof(asn_DEF_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_Reg_RequestorType_tags_58[0]), /* 1 */ + asn_DEF_Reg_RequestorType_tags_58, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_Reg_RequestorType_tags_58[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RequestorType_58, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorType_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_63[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType__regExtValue, choice.RestrictionUserType_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionUserType_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RestrictionUserType-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_63[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RestrictionUserType-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_63 = { + sizeof(struct Reg_RestrictionUserType__regExtValue), + offsetof(struct Reg_RestrictionUserType__regExtValue, _asn_ctx), + offsetof(struct Reg_RestrictionUserType__regExtValue, present), + sizeof(((struct Reg_RestrictionUserType__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_63, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_63 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_63, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_62, &asn_PER_memb_regionId_constr_62, memb_regionId_constraint_61 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_63, + select_Reg_RestrictionUserType_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_63, &asn_PER_memb_regExtValue_constr_63, memb_regExtValue_constraint_61 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RestrictionUserType_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RestrictionUserType_tag2el_61[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_61 = { + sizeof(struct Reg_RestrictionUserType), + offsetof(struct Reg_RestrictionUserType, _asn_ctx), + asn_MAP_Reg_RestrictionUserType_tag2el_61, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType = { + "Reg-RestrictionUserType", + "Reg-RestrictionUserType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RestrictionUserType_tags_61, + sizeof(asn_DEF_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + asn_DEF_Reg_RestrictionUserType_tags_61, /* Same as above */ + sizeof(asn_DEF_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RestrictionUserType_61, + 2, /* Elements count */ + &asn_SPC_Reg_RestrictionUserType_specs_61 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_66 = { + sizeof(struct Reg_RoadSegment__regExtValue), + offsetof(struct Reg_RoadSegment__regExtValue, _asn_ctx), + offsetof(struct Reg_RoadSegment__regExtValue, present), + sizeof(((struct Reg_RoadSegment__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_66 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_66 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RoadSegment_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_65, &asn_PER_memb_regionId_constr_65, memb_regionId_constraint_64 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_66, + 0, + { &asn_OER_memb_regExtValue_constr_66, &asn_PER_memb_regExtValue_constr_66, memb_regExtValue_constraint_64 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RoadSegment_tags_64[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RoadSegment_tag2el_64[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_64 = { + sizeof(struct Reg_RoadSegment), + offsetof(struct Reg_RoadSegment, _asn_ctx), + asn_MAP_Reg_RoadSegment_tag2el_64, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment = { + "Reg-RoadSegment", + "Reg-RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RoadSegment_tags_64, + sizeof(asn_DEF_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_Reg_RoadSegment_tags_64[0]), /* 1 */ + asn_DEF_Reg_RoadSegment_tags_64, /* Same as above */ + sizeof(asn_DEF_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_Reg_RoadSegment_tags_64[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RoadSegment_64, + 2, /* Elements count */ + &asn_SPC_Reg_RoadSegment_specs_64 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_69 = { + sizeof(struct Reg_SignalControlZone__regExtValue), + offsetof(struct Reg_SignalControlZone__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalControlZone__regExtValue, present), + sizeof(((struct Reg_SignalControlZone__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_69 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_67[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_68, &asn_PER_memb_regionId_constr_68, memb_regionId_constraint_67 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_69, + 0, + { &asn_OER_memb_regExtValue_constr_69, &asn_PER_memb_regExtValue_constr_69, memb_regExtValue_constraint_67 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalControlZone_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalControlZone_tag2el_67[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_67 = { + sizeof(struct Reg_SignalControlZone), + offsetof(struct Reg_SignalControlZone, _asn_ctx), + asn_MAP_Reg_SignalControlZone_tag2el_67, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone = { + "Reg-SignalControlZone", + "Reg-SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalControlZone_tags_67, + sizeof(asn_DEF_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_67[0]), /* 1 */ + asn_DEF_Reg_SignalControlZone_tags_67, /* Same as above */ + sizeof(asn_DEF_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_67[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalControlZone_67, + 2, /* Elements count */ + &asn_SPC_Reg_SignalControlZone_specs_67 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_72 = { + sizeof(struct Reg_SignalRequest__regExtValue), + offsetof(struct Reg_SignalRequest__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequest__regExtValue, present), + sizeof(((struct Reg_SignalRequest__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_72 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequest_70[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_71, &asn_PER_memb_regionId_constr_71, memb_regionId_constraint_70 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_72, + 0, + { &asn_OER_memb_regExtValue_constr_72, &asn_PER_memb_regExtValue_constr_72, memb_regExtValue_constraint_70 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequest_tags_70[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequest_tag2el_70[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_70 = { + sizeof(struct Reg_SignalRequest), + offsetof(struct Reg_SignalRequest, _asn_ctx), + asn_MAP_Reg_SignalRequest_tag2el_70, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest = { + "Reg-SignalRequest", + "Reg-SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequest_tags_70, + sizeof(asn_DEF_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_Reg_SignalRequest_tags_70[0]), /* 1 */ + asn_DEF_Reg_SignalRequest_tags_70, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_Reg_SignalRequest_tags_70[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequest_70, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequest_specs_70 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_75 = { + sizeof(struct Reg_SignalRequestPackage__regExtValue), + offsetof(struct Reg_SignalRequestPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestPackage__regExtValue, present), + sizeof(((struct Reg_SignalRequestPackage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_75 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_74, &asn_PER_memb_regionId_constr_74, memb_regionId_constraint_73 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_75, + 0, + { &asn_OER_memb_regExtValue_constr_75, &asn_PER_memb_regExtValue_constr_75, memb_regExtValue_constraint_73 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestPackage_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestPackage_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_73 = { + sizeof(struct Reg_SignalRequestPackage), + offsetof(struct Reg_SignalRequestPackage, _asn_ctx), + asn_MAP_Reg_SignalRequestPackage_tag2el_73, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage = { + "Reg-SignalRequestPackage", + "Reg-SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestPackage_tags_73, + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + asn_DEF_Reg_SignalRequestPackage_tags_73, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequestPackage_73, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestPackage_specs_73 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_78 = { + sizeof(struct Reg_SignalStatus__regExtValue), + offsetof(struct Reg_SignalStatus__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatus__regExtValue, present), + sizeof(((struct Reg_SignalStatus__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_78 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_78 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatus_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_77, &asn_PER_memb_regionId_constr_77, memb_regionId_constraint_76 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_78, + 0, + { &asn_OER_memb_regExtValue_constr_78, &asn_PER_memb_regExtValue_constr_78, memb_regExtValue_constraint_76 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatus_tags_76[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatus_tag2el_76[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_76 = { + sizeof(struct Reg_SignalStatus), + offsetof(struct Reg_SignalStatus, _asn_ctx), + asn_MAP_Reg_SignalStatus_tag2el_76, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus = { + "Reg-SignalStatus", + "Reg-SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatus_tags_76, + sizeof(asn_DEF_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_Reg_SignalStatus_tags_76[0]), /* 1 */ + asn_DEF_Reg_SignalStatus_tags_76, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_Reg_SignalStatus_tags_76[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatus_76, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatus_specs_76 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage__regExtValue, choice.SignalStatusPackage_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SignalStatusPackage-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_81[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SignalStatusPackage-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_81 = { + sizeof(struct Reg_SignalStatusPackage__regExtValue), + offsetof(struct Reg_SignalStatusPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusPackage__regExtValue, present), + sizeof(((struct Reg_SignalStatusPackage__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_81, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_81 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_81, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_79[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_80, &asn_PER_memb_regionId_constr_80, memb_regionId_constraint_79 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_81, + select_Reg_SignalStatusPackage_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_81, &asn_PER_memb_regExtValue_constr_81, memb_regExtValue_constraint_79 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusPackage_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusPackage_tag2el_79[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_79 = { + sizeof(struct Reg_SignalStatusPackage), + offsetof(struct Reg_SignalStatusPackage, _asn_ctx), + asn_MAP_Reg_SignalStatusPackage_tag2el_79, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage = { + "Reg-SignalStatusPackage", + "Reg-SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusPackage_tags_79, + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + asn_DEF_Reg_SignalStatusPackage_tags_79, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatusPackage_79, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusPackage_specs_79 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RegulatorySpeedLimit.c b/vcits/cpm/src/RegulatorySpeedLimit.c new file mode 100644 index 0000000..c5836a2 --- /dev/null +++ b/vcits/cpm/src/RegulatorySpeedLimit.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RegulatorySpeedLimit.h" + +asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_RegulatorySpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RegulatorySpeedLimit_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1 = { + sizeof(struct RegulatorySpeedLimit), + offsetof(struct RegulatorySpeedLimit, _asn_ctx), + asn_MAP_RegulatorySpeedLimit_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit = { + "RegulatorySpeedLimit", + "RegulatorySpeedLimit", + &asn_OP_SEQUENCE, + asn_DEF_RegulatorySpeedLimit_tags_1, + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_RegulatorySpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RegulatorySpeedLimit_1, + 2, /* Elements count */ + &asn_SPC_RegulatorySpeedLimit_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RejectedReason.c b/vcits/cpm/src/RejectedReason.c new file mode 100644 index 0000000..fb6426c --- /dev/null +++ b/vcits/cpm/src/RejectedReason.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RejectedReason.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RejectedReason_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RejectedReason_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RejectedReason_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "exceptionalCondition" }, + { 2, 22, "maxWaitingTimeExceeded" }, + { 3, 18, "ptPriorityDisabled" }, + { 4, 23, "higherPTPriorityGranted" }, + { 5, 22, "vehicleTrackingUnknown" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RejectedReason_enum2value_1[] = { + 1, /* exceptionalCondition(1) */ + 4, /* higherPTPriorityGranted(4) */ + 2, /* maxWaitingTimeExceeded(2) */ + 3, /* ptPriorityDisabled(3) */ + 0, /* unknown(0) */ + 5 /* vehicleTrackingUnknown(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RejectedReason_specs_1 = { + asn_MAP_RejectedReason_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RejectedReason_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RejectedReason_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RejectedReason = { + "RejectedReason", + "RejectedReason", + &asn_OP_NativeEnumerated, + asn_DEF_RejectedReason_tags_1, + sizeof(asn_DEF_RejectedReason_tags_1) + /sizeof(asn_DEF_RejectedReason_tags_1[0]), /* 1 */ + asn_DEF_RejectedReason_tags_1, /* Same as above */ + sizeof(asn_DEF_RejectedReason_tags_1) + /sizeof(asn_DEF_RejectedReason_tags_1[0]), /* 1 */ + { &asn_OER_type_RejectedReason_constr_1, &asn_PER_type_RejectedReason_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RejectedReason_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RelevanceDistance.c b/vcits/cpm/src/RelevanceDistance.c new file mode 100644 index 0000000..10d9c3d --- /dev/null +++ b/vcits/cpm/src/RelevanceDistance.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RelevanceDistance.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceDistance_value2enum_1[] = { + { 0, 11, "lessThan50m" }, + { 1, 12, "lessThan100m" }, + { 2, 12, "lessThan200m" }, + { 3, 12, "lessThan500m" }, + { 4, 13, "lessThan1000m" }, + { 5, 11, "lessThan5km" }, + { 6, 12, "lessThan10km" }, + { 7, 8, "over10km" } +}; +static const unsigned int asn_MAP_RelevanceDistance_enum2value_1[] = { + 4, /* lessThan1000m(4) */ + 1, /* lessThan100m(1) */ + 6, /* lessThan10km(6) */ + 2, /* lessThan200m(2) */ + 3, /* lessThan500m(3) */ + 0, /* lessThan50m(0) */ + 5, /* lessThan5km(5) */ + 7 /* over10km(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceDistance_specs_1 = { + asn_MAP_RelevanceDistance_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceDistance_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceDistance = { + "RelevanceDistance", + "RelevanceDistance", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceDistance_tags_1, + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + asn_DEF_RelevanceDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceDistance_constr_1, &asn_PER_type_RelevanceDistance_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceDistance_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RelevanceTrafficDirection.c b/vcits/cpm/src/RelevanceTrafficDirection.c new file mode 100644 index 0000000..46143c6 --- /dev/null +++ b/vcits/cpm/src/RelevanceTrafficDirection.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RelevanceTrafficDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceTrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 15, "upstreamTraffic" }, + { 2, 17, "downstreamTraffic" }, + { 3, 15, "oppositeTraffic" } +}; +static const unsigned int asn_MAP_RelevanceTrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 2, /* downstreamTraffic(2) */ + 3, /* oppositeTraffic(3) */ + 1 /* upstreamTraffic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceTrafficDirection_specs_1 = { + asn_MAP_RelevanceTrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceTrafficDirection_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceTrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection = { + "RelevanceTrafficDirection", + "RelevanceTrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceTrafficDirection_tags_1, + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_RelevanceTrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceTrafficDirection_constr_1, &asn_PER_type_RelevanceTrafficDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceTrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RequestID.c b/vcits/cpm/src/RequestID.c new file mode 100644 index 0000000..558162b --- /dev/null +++ b/vcits/cpm/src/RequestID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RequestID.h" + +int +RequestID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RequestID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RequestID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestID = { + "RequestID", + "RequestID", + &asn_OP_NativeInteger, + asn_DEF_RequestID_tags_1, + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + asn_DEF_RequestID_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestID_constr_1, &asn_PER_type_RequestID_constr_1, RequestID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/RequestImportanceLevel.c b/vcits/cpm/src/RequestImportanceLevel.c new file mode 100644 index 0000000..5aa7bb1 --- /dev/null +++ b/vcits/cpm/src/RequestImportanceLevel.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RequestImportanceLevel.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestImportanceLevel_value2enum_1[] = { + { 0, 29, "requestImportanceLevelUnKnown" }, + { 1, 23, "requestImportanceLevel1" }, + { 2, 23, "requestImportanceLevel2" }, + { 3, 23, "requestImportanceLevel3" }, + { 4, 23, "requestImportanceLevel4" }, + { 5, 23, "requestImportanceLevel5" }, + { 6, 23, "requestImportanceLevel6" }, + { 7, 23, "requestImportanceLevel7" }, + { 8, 23, "requestImportanceLevel8" }, + { 9, 23, "requestImportanceLevel9" }, + { 10, 24, "requestImportanceLevel10" }, + { 11, 24, "requestImportanceLevel11" }, + { 12, 24, "requestImportanceLevel12" }, + { 13, 24, "requestImportanceLevel13" }, + { 14, 24, "requestImportanceLevel14" }, + { 15, 25, "requestImportanceReserved" } +}; +static const unsigned int asn_MAP_RequestImportanceLevel_enum2value_1[] = { + 1, /* requestImportanceLevel1(1) */ + 10, /* requestImportanceLevel10(10) */ + 11, /* requestImportanceLevel11(11) */ + 12, /* requestImportanceLevel12(12) */ + 13, /* requestImportanceLevel13(13) */ + 14, /* requestImportanceLevel14(14) */ + 2, /* requestImportanceLevel2(2) */ + 3, /* requestImportanceLevel3(3) */ + 4, /* requestImportanceLevel4(4) */ + 5, /* requestImportanceLevel5(5) */ + 6, /* requestImportanceLevel6(6) */ + 7, /* requestImportanceLevel7(7) */ + 8, /* requestImportanceLevel8(8) */ + 9, /* requestImportanceLevel9(9) */ + 0, /* requestImportanceLevelUnKnown(0) */ + 15 /* requestImportanceReserved(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1 = { + asn_MAP_RequestImportanceLevel_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestImportanceLevel_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestImportanceLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel = { + "RequestImportanceLevel", + "RequestImportanceLevel", + &asn_OP_NativeEnumerated, + asn_DEF_RequestImportanceLevel_tags_1, + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + asn_DEF_RequestImportanceLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestImportanceLevel_constr_1, &asn_PER_type_RequestImportanceLevel_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestImportanceLevel_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RequestResponseIndication.c b/vcits/cpm/src/RequestResponseIndication.c new file mode 100644 index 0000000..7af0a44 --- /dev/null +++ b/vcits/cpm/src/RequestResponseIndication.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RequestResponseIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestResponseIndication_value2enum_1[] = { + { 0, 7, "request" }, + { 1, 8, "response" } +}; +static const unsigned int asn_MAP_RequestResponseIndication_enum2value_1[] = { + 0, /* request(0) */ + 1 /* response(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RequestResponseIndication_specs_1 = { + asn_MAP_RequestResponseIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestResponseIndication_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestResponseIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication = { + "RequestResponseIndication", + "RequestResponseIndication", + &asn_OP_NativeEnumerated, + asn_DEF_RequestResponseIndication_tags_1, + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + asn_DEF_RequestResponseIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestResponseIndication_constr_1, &asn_PER_type_RequestResponseIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestResponseIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RequestSubRole.c b/vcits/cpm/src/RequestSubRole.c new file mode 100644 index 0000000..901a393 --- /dev/null +++ b/vcits/cpm/src/RequestSubRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RequestSubRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestSubRole_value2enum_1[] = { + { 0, 21, "requestSubRoleUnKnown" }, + { 1, 15, "requestSubRole1" }, + { 2, 15, "requestSubRole2" }, + { 3, 15, "requestSubRole3" }, + { 4, 15, "requestSubRole4" }, + { 5, 15, "requestSubRole5" }, + { 6, 15, "requestSubRole6" }, + { 7, 15, "requestSubRole7" }, + { 8, 15, "requestSubRole8" }, + { 9, 15, "requestSubRole9" }, + { 10, 16, "requestSubRole10" }, + { 11, 16, "requestSubRole11" }, + { 12, 16, "requestSubRole12" }, + { 13, 16, "requestSubRole13" }, + { 14, 16, "requestSubRole14" }, + { 15, 22, "requestSubRoleReserved" } +}; +static const unsigned int asn_MAP_RequestSubRole_enum2value_1[] = { + 1, /* requestSubRole1(1) */ + 10, /* requestSubRole10(10) */ + 11, /* requestSubRole11(11) */ + 12, /* requestSubRole12(12) */ + 13, /* requestSubRole13(13) */ + 14, /* requestSubRole14(14) */ + 2, /* requestSubRole2(2) */ + 3, /* requestSubRole3(3) */ + 4, /* requestSubRole4(4) */ + 5, /* requestSubRole5(5) */ + 6, /* requestSubRole6(6) */ + 7, /* requestSubRole7(7) */ + 8, /* requestSubRole8(8) */ + 9, /* requestSubRole9(9) */ + 15, /* requestSubRoleReserved(15) */ + 0 /* requestSubRoleUnKnown(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1 = { + asn_MAP_RequestSubRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestSubRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestSubRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestSubRole = { + "RequestSubRole", + "RequestSubRole", + &asn_OP_NativeEnumerated, + asn_DEF_RequestSubRole_tags_1, + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + asn_DEF_RequestSubRole_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestSubRole_constr_1, &asn_PER_type_RequestSubRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestSubRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RequestorDescription-addGrpC.c b/vcits/cpm/src/RequestorDescription-addGrpC.c new file mode 100644 index 0000000..f95ea38 --- /dev/null +++ b/vcits/cpm/src/RequestorDescription-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RequestorDescription-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RequestorDescription_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct RequestorDescription_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fuel" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription_addGrpC, batteryStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BatteryStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "batteryStatus" + }, +}; +static const int asn_MAP_RequestorDescription_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fuel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* batteryStatus */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_addGrpC_specs_1 = { + sizeof(struct RequestorDescription_addGrpC), + offsetof(struct RequestorDescription_addGrpC, _asn_ctx), + asn_MAP_RequestorDescription_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RequestorDescription_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription_addGrpC = { + "RequestorDescription-addGrpC", + "RequestorDescription-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_addGrpC_tags_1, + sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorDescription_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_RequestorDescription_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RequestorDescription.c b/vcits/cpm/src/RequestorDescription.c new file mode 100644 index 0000000..0fe3560 --- /dev/null +++ b/vcits/cpm/src/RequestorDescription.c @@ -0,0 +1,214 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RequestorDescription.h" + +#include "RequestorType.h" +#include "RequestorPositionVector.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RequestorDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct RequestorDescription__regional), + offsetof(struct RequestorDescription__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RequestorDescription_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorDescription, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 8, offsetof(struct RequestorDescription, type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 7, offsetof(struct RequestorDescription, position), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorPositionVector, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 6, offsetof(struct RequestorDescription, name), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 5, offsetof(struct RequestorDescription, routeName), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "routeName" + }, + { ATF_POINTER, 4, offsetof(struct RequestorDescription, transitStatus), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitStatus" + }, + { ATF_POINTER, 3, offsetof(struct RequestorDescription, transitOccupancy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleOccupancy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitOccupancy" + }, + { ATF_POINTER, 2, offsetof(struct RequestorDescription, transitSchedule), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitSchedule" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorDescription_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* routeName */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* transitStatus */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* transitOccupancy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* transitSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1 = { + sizeof(struct RequestorDescription), + offsetof(struct RequestorDescription, _asn_ctx), + asn_MAP_RequestorDescription_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_RequestorDescription_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription = { + "RequestorDescription", + "RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_tags_1, + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorDescription_1, + 9, /* Elements count */ + &asn_SPC_RequestorDescription_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RequestorPositionVector.c b/vcits/cpm/src/RequestorPositionVector.c new file mode 100644 index 0000000..9715016 --- /dev/null +++ b/vcits/cpm/src/RequestorPositionVector.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RequestorPositionVector.h" + +#include "TransmissionAndSpeed.h" +asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorPositionVector, position), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 2, offsetof(struct RequestorPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 1, offsetof(struct RequestorPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const int asn_MAP_RequestorPositionVector_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_RequestorPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1 = { + sizeof(struct RequestorPositionVector), + offsetof(struct RequestorPositionVector, _asn_ctx), + asn_MAP_RequestorPositionVector_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RequestorPositionVector_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector = { + "RequestorPositionVector", + "RequestorPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_RequestorPositionVector_tags_1, + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + asn_DEF_RequestorPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorPositionVector_1, + 3, /* Elements count */ + &asn_SPC_RequestorPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RequestorType.c b/vcits/cpm/src/RequestorType.c new file mode 100644 index 0000000..27aa772 --- /dev/null +++ b/vcits/cpm/src/RequestorType.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RequestorType.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_RequestorType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorType, role), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 5, offsetof(struct RequestorType, subrole), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestSubRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subrole" + }, + { ATF_POINTER, 4, offsetof(struct RequestorType, request), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestImportanceLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 3, offsetof(struct RequestorType, iso3883), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Iso3833VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iso3883" + }, + { ATF_POINTER, 2, offsetof(struct RequestorType, hpmsType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hpmsType" + }, + { ATF_POINTER, 1, offsetof(struct RequestorType, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorType_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_RequestorType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subrole */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* iso3883 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* hpmsType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1 = { + sizeof(struct RequestorType), + offsetof(struct RequestorType, _asn_ctx), + asn_MAP_RequestorType_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_RequestorType_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorType = { + "RequestorType", + "RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_RequestorType_tags_1, + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + asn_DEF_RequestorType_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorType_1, + 6, /* Elements count */ + &asn_SPC_RequestorType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RescueAndRecoveryWorkInProgressSubCauseCode.c b/vcits/cpm/src/RescueAndRecoveryWorkInProgressSubCauseCode.c new file mode 100644 index 0000000..5c869f1 --- /dev/null +++ b/vcits/cpm/src/RescueAndRecoveryWorkInProgressSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RescueAndRecoveryWorkInProgressSubCauseCode.h" + +int +RescueAndRecoveryWorkInProgressSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode = { + "RescueAndRecoveryWorkInProgressSubCauseCode", + "RescueAndRecoveryWorkInProgressSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, &asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, RescueAndRecoveryWorkInProgressSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/RescueContainer.c b/vcits/cpm/src/RescueContainer.c new file mode 100644 index 0000000..3ef2243 --- /dev/null +++ b/vcits/cpm/src/RescueContainer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RescueContainer.h" + +asn_TYPE_member_t asn_MBR_RescueContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RescueContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LightBarSirenInUse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, +}; +static const ber_tlv_tag_t asn_DEF_RescueContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RescueContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* lightBarSirenInUse */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RescueContainer_specs_1 = { + sizeof(struct RescueContainer), + offsetof(struct RescueContainer, _asn_ctx), + asn_MAP_RescueContainer_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RescueContainer = { + "RescueContainer", + "RescueContainer", + &asn_OP_SEQUENCE, + asn_DEF_RescueContainer_tags_1, + sizeof(asn_DEF_RescueContainer_tags_1) + /sizeof(asn_DEF_RescueContainer_tags_1[0]), /* 1 */ + asn_DEF_RescueContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_RescueContainer_tags_1) + /sizeof(asn_DEF_RescueContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RescueContainer_1, + 1, /* Elements count */ + &asn_SPC_RescueContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RestrictedTypes.c b/vcits/cpm/src/RestrictedTypes.c new file mode 100644 index 0000000..7c85ccb --- /dev/null +++ b/vcits/cpm/src/RestrictedTypes.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RestrictedTypes.h" + +static asn_oer_constraints_t asn_OER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RestrictedTypes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictedTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_RestrictedTypes_specs_1 = { + sizeof(struct RestrictedTypes), + offsetof(struct RestrictedTypes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictedTypes = { + "RestrictedTypes", + "RestrictedTypes", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictedTypes_tags_1, + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + asn_DEF_RestrictedTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictedTypes_constr_1, &asn_PER_type_RestrictedTypes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictedTypes_1, + 1, /* Single element */ + &asn_SPC_RestrictedTypes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RestrictionAppliesTo.c b/vcits/cpm/src/RestrictionAppliesTo.c new file mode 100644 index 0000000..eaf7f5d --- /dev/null +++ b/vcits/cpm/src/RestrictionAppliesTo.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RestrictionAppliesTo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RestrictionAppliesTo_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 15, "equippedTransit" }, + { 2, 13, "equippedTaxis" }, + { 3, 13, "equippedOther" }, + { 4, 17, "emissionCompliant" }, + { 5, 15, "equippedBicycle" }, + { 6, 15, "weightCompliant" }, + { 7, 15, "heightCompliant" }, + { 8, 11, "pedestrians" }, + { 9, 17, "slowMovingPersons" }, + { 10, 15, "wheelchairUsers" }, + { 11, 18, "visualDisabilities" }, + { 12, 17, "audioDisabilities" }, + { 13, 24, "otherUnknownDisabilities" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RestrictionAppliesTo_enum2value_1[] = { + 12, /* audioDisabilities(12) */ + 4, /* emissionCompliant(4) */ + 5, /* equippedBicycle(5) */ + 3, /* equippedOther(3) */ + 2, /* equippedTaxis(2) */ + 1, /* equippedTransit(1) */ + 7, /* heightCompliant(7) */ + 0, /* none(0) */ + 13, /* otherUnknownDisabilities(13) */ + 8, /* pedestrians(8) */ + 9, /* slowMovingPersons(9) */ + 11, /* visualDisabilities(11) */ + 6, /* weightCompliant(6) */ + 10 /* wheelchairUsers(10) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1 = { + asn_MAP_RestrictionAppliesTo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RestrictionAppliesTo_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RestrictionAppliesTo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo = { + "RestrictionAppliesTo", + "RestrictionAppliesTo", + &asn_OP_NativeEnumerated, + asn_DEF_RestrictionAppliesTo_tags_1, + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + asn_DEF_RestrictionAppliesTo_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionAppliesTo_constr_1, &asn_PER_type_RestrictionAppliesTo_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RestrictionAppliesTo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RestrictionClassAssignment.c b/vcits/cpm/src/RestrictionClassAssignment.c new file mode 100644 index 0000000..8fbbe95 --- /dev/null +++ b/vcits/cpm/src/RestrictionClassAssignment.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RestrictionClassAssignment.h" + +asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, users), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionUserTypeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "users" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassAssignment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionClassAssignment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* users */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1 = { + sizeof(struct RestrictionClassAssignment), + offsetof(struct RestrictionClassAssignment, _asn_ctx), + asn_MAP_RestrictionClassAssignment_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment = { + "RestrictionClassAssignment", + "RestrictionClassAssignment", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionClassAssignment_tags_1, + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassAssignment_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RestrictionClassAssignment_1, + 2, /* Elements count */ + &asn_SPC_RestrictionClassAssignment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RestrictionClassID.c b/vcits/cpm/src/RestrictionClassID.c new file mode 100644 index 0000000..574920d --- /dev/null +++ b/vcits/cpm/src/RestrictionClassID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RestrictionClassID.h" + +int +RestrictionClassID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassID = { + "RestrictionClassID", + "RestrictionClassID", + &asn_OP_NativeInteger, + asn_DEF_RestrictionClassID_tags_1, + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassID_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionClassID_constr_1, &asn_PER_type_RestrictionClassID_constr_1, RestrictionClassID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/RestrictionClassList.c b/vcits/cpm/src/RestrictionClassList.c new file mode 100644 index 0000000..c4cd3e9 --- /dev/null +++ b/vcits/cpm/src/RestrictionClassList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RestrictionClassList.h" + +#include "RestrictionClassAssignment.h" +static asn_oer_constraints_t asn_OER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..254)) */}; +asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 254 } /* (SIZE(1..254)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictionClassList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionClassAssignment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1 = { + sizeof(struct RestrictionClassList), + offsetof(struct RestrictionClassList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassList = { + "RestrictionClassList", + "RestrictionClassList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionClassList_tags_1, + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionClassList_constr_1, &asn_PER_type_RestrictionClassList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictionClassList_1, + 1, /* Single element */ + &asn_SPC_RestrictionClassList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RestrictionUserType-addGrpC.c b/vcits/cpm/src/RestrictionUserType-addGrpC.c new file mode 100644 index 0000000..94af52c --- /dev/null +++ b/vcits/cpm/src/RestrictionUserType-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RestrictionUserType-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct RestrictionUserType_addGrpC, emission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmissionType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emission" + }, + { ATF_POINTER, 1, offsetof(struct RestrictionUserType_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fuel" + }, +}; +static const int asn_MAP_RestrictionUserType_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RestrictionUserType_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* emission */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fuel */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1 = { + sizeof(struct RestrictionUserType_addGrpC), + offsetof(struct RestrictionUserType_addGrpC, _asn_ctx), + asn_MAP_RestrictionUserType_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RestrictionUserType_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC = { + "RestrictionUserType-addGrpC", + "RestrictionUserType-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionUserType_addGrpC_tags_1, + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserType_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RestrictionUserType_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RestrictionUserType.c b/vcits/cpm/src/RestrictionUserType.c new file mode 100644 index 0000000..3dcece4 --- /dev/null +++ b/vcits/cpm/src/RestrictionUserType.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RestrictionUserType.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RestrictionUserType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_3 = { + sizeof(struct RestrictionUserType__regional), + offsetof(struct RestrictionUserType__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_3 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_3, + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]) - 1, /* 1 */ + asn_DEF_regional_tags_3, /* Same as above */ + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]), /* 2 */ + { &asn_OER_type_regional_constr_3, &asn_PER_type_regional_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_regional_3, + 1, /* Single element */ + &asn_SPC_regional_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RestrictionUserType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.basicType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionAppliesTo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "basicType" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_regional_3, + 0, + { &asn_OER_memb_regional_constr_3, &asn_PER_memb_regional_constr_3, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1 = { + sizeof(struct RestrictionUserType), + offsetof(struct RestrictionUserType, _asn_ctx), + offsetof(struct RestrictionUserType, present), + sizeof(((struct RestrictionUserType *)0)->present), + asn_MAP_RestrictionUserType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType = { + "RestrictionUserType", + "RestrictionUserType", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_RestrictionUserType_constr_1, &asn_PER_type_RestrictionUserType_constr_1, CHOICE_constraint }, + asn_MBR_RestrictionUserType_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RestrictionUserTypeList.c b/vcits/cpm/src/RestrictionUserTypeList.c new file mode 100644 index 0000000..d876224 --- /dev/null +++ b/vcits/cpm/src/RestrictionUserTypeList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RestrictionUserTypeList.h" + +#include "RestrictionUserType.h" +static asn_oer_constraints_t asn_OER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RestrictionUserType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionUserTypeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1 = { + sizeof(struct RestrictionUserTypeList), + offsetof(struct RestrictionUserTypeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList = { + "RestrictionUserTypeList", + "RestrictionUserTypeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionUserTypeList_tags_1, + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserTypeList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionUserTypeList_constr_1, &asn_PER_type_RestrictionUserTypeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictionUserTypeList_1, + 1, /* Single element */ + &asn_SPC_RestrictionUserTypeList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RoadLaneSetList.c b/vcits/cpm/src/RoadLaneSetList.c new file mode 100644 index 0000000..3ae44a0 --- /dev/null +++ b/vcits/cpm/src/RoadLaneSetList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RoadLaneSetList.h" + +#include "GenericLane.h" +static asn_oer_constraints_t asn_OER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadLaneSetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1 = { + sizeof(struct RoadLaneSetList), + offsetof(struct RoadLaneSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList = { + "RoadLaneSetList", + "RoadLaneSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadLaneSetList_tags_1, + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + asn_DEF_RoadLaneSetList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadLaneSetList_constr_1, &asn_PER_type_RoadLaneSetList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadLaneSetList_1, + 1, /* Single element */ + &asn_SPC_RoadLaneSetList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RoadRegulatorID.c b/vcits/cpm/src/RoadRegulatorID.c new file mode 100644 index 0000000..b8b97a3 --- /dev/null +++ b/vcits/cpm/src/RoadRegulatorID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RoadRegulatorID.h" + +int +RoadRegulatorID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadRegulatorID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID = { + "RoadRegulatorID", + "RoadRegulatorID", + &asn_OP_NativeInteger, + asn_DEF_RoadRegulatorID_tags_1, + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + asn_DEF_RoadRegulatorID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadRegulatorID_constr_1, &asn_PER_type_RoadRegulatorID_constr_1, RoadRegulatorID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/RoadSegment.c b/vcits/cpm/src/RoadSegment.c new file mode 100644 index 0000000..7b85689 --- /dev/null +++ b/vcits/cpm/src/RoadSegment.c @@ -0,0 +1,203 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RoadSegment.h" + +#include "SpeedLimitList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RoadSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct RoadSegment__regional), + offsetof(struct RoadSegment__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { &asn_OER_type_regional_constr_9, &asn_PER_type_regional_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RoadSegment_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegment, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct RoadSegment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, roadLaneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadLaneSetList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadLaneSet" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { &asn_OER_memb_regional_constr_9, &asn_PER_memb_regional_constr_9, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RoadSegment_oms_1[] = { 0, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_RoadSegment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* roadLaneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1 = { + sizeof(struct RoadSegment), + offsetof(struct RoadSegment, _asn_ctx), + asn_MAP_RoadSegment_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_RoadSegment_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegment = { + "RoadSegment", + "RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegment_tags_1, + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + asn_DEF_RoadSegment_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSegment_1, + 8, /* Elements count */ + &asn_SPC_RoadSegment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RoadSegmentID.c b/vcits/cpm/src/RoadSegmentID.c new file mode 100644 index 0000000..2a1faeb --- /dev/null +++ b/vcits/cpm/src/RoadSegmentID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RoadSegmentID.h" + +int +RoadSegmentID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentID = { + "RoadSegmentID", + "RoadSegmentID", + &asn_OP_NativeInteger, + asn_DEF_RoadSegmentID_tags_1, + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSegmentID_constr_1, &asn_PER_type_RoadSegmentID_constr_1, RoadSegmentID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/RoadSegmentList.c b/vcits/cpm/src/RoadSegmentList.c new file mode 100644 index 0000000..14509f0 --- /dev/null +++ b/vcits/cpm/src/RoadSegmentList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RoadSegmentList.h" + +#include "RoadSegment.h" +static asn_oer_constraints_t asn_OER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadSegmentList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RoadSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1 = { + sizeof(struct RoadSegmentList), + offsetof(struct RoadSegmentList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentList = { + "RoadSegmentList", + "RoadSegmentList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadSegmentList_tags_1, + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSegmentList_constr_1, &asn_PER_type_RoadSegmentList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadSegmentList_1, + 1, /* Single element */ + &asn_SPC_RoadSegmentList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RoadSegmentReferenceID.c b/vcits/cpm/src/RoadSegmentReferenceID.c new file mode 100644 index 0000000..4c50092 --- /dev/null +++ b/vcits/cpm/src/RoadSegmentReferenceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RoadSegmentReferenceID.h" + +asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegmentReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegmentReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_RoadSegmentReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_RoadSegmentReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegmentReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1 = { + sizeof(struct RoadSegmentReferenceID), + offsetof(struct RoadSegmentReferenceID, _asn_ctx), + asn_MAP_RoadSegmentReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RoadSegmentReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID = { + "RoadSegmentReferenceID", + "RoadSegmentReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegmentReferenceID_tags_1, + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSegmentReferenceID_1, + 2, /* Elements count */ + &asn_SPC_RoadSegmentReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RoadType.c b/vcits/cpm/src/RoadType.c new file mode 100644 index 0000000..0bde848 --- /dev/null +++ b/vcits/cpm/src/RoadType.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RoadType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RoadType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RoadType_value2enum_1[] = { + { 0, 43, "urban-NoStructuralSeparationToOppositeLanes" }, + { 1, 45, "urban-WithStructuralSeparationToOppositeLanes" }, + { 2, 46, "nonUrban-NoStructuralSeparationToOppositeLanes" }, + { 3, 48, "nonUrban-WithStructuralSeparationToOppositeLanes" } +}; +static const unsigned int asn_MAP_RoadType_enum2value_1[] = { + 2, /* nonUrban-NoStructuralSeparationToOppositeLanes(2) */ + 3, /* nonUrban-WithStructuralSeparationToOppositeLanes(3) */ + 0, /* urban-NoStructuralSeparationToOppositeLanes(0) */ + 1 /* urban-WithStructuralSeparationToOppositeLanes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RoadType_specs_1 = { + asn_MAP_RoadType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RoadType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadType = { + "RoadType", + "RoadType", + &asn_OP_NativeEnumerated, + asn_DEF_RoadType_tags_1, + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + asn_DEF_RoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadType_constr_1, &asn_PER_type_RoadType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RoadType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RoadWorksContainerBasic.c b/vcits/cpm/src/RoadWorksContainerBasic.c new file mode 100644 index 0000000..a15d28d --- /dev/null +++ b/vcits/cpm/src/RoadWorksContainerBasic.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RoadWorksContainerBasic.h" + +#include "ClosedLanes.h" +asn_TYPE_member_t asn_MBR_RoadWorksContainerBasic_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadWorksContainerBasic, roadworksSubCauseCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadworksSubCauseCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadworksSubCauseCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadWorksContainerBasic, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LightBarSirenInUse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, + { ATF_POINTER, 1, offsetof(struct RoadWorksContainerBasic, closedLanes), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ClosedLanes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "closedLanes" + }, +}; +static const int asn_MAP_RoadWorksContainerBasic_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_RoadWorksContainerBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadWorksContainerBasic_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roadworksSubCauseCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lightBarSirenInUse */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* closedLanes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadWorksContainerBasic_specs_1 = { + sizeof(struct RoadWorksContainerBasic), + offsetof(struct RoadWorksContainerBasic, _asn_ctx), + asn_MAP_RoadWorksContainerBasic_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RoadWorksContainerBasic_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadWorksContainerBasic = { + "RoadWorksContainerBasic", + "RoadWorksContainerBasic", + &asn_OP_SEQUENCE, + asn_DEF_RoadWorksContainerBasic_tags_1, + sizeof(asn_DEF_RoadWorksContainerBasic_tags_1) + /sizeof(asn_DEF_RoadWorksContainerBasic_tags_1[0]), /* 1 */ + asn_DEF_RoadWorksContainerBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadWorksContainerBasic_tags_1) + /sizeof(asn_DEF_RoadWorksContainerBasic_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadWorksContainerBasic_1, + 3, /* Elements count */ + &asn_SPC_RoadWorksContainerBasic_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/RoadwayCrownAngle.c b/vcits/cpm/src/RoadwayCrownAngle.c new file mode 100644 index 0000000..6080814 --- /dev/null +++ b/vcits/cpm/src/RoadwayCrownAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RoadwayCrownAngle.h" + +int +RoadwayCrownAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -128 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-128..127) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -128, 127 } /* (-128..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadwayCrownAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle = { + "RoadwayCrownAngle", + "RoadwayCrownAngle", + &asn_OP_NativeInteger, + asn_DEF_RoadwayCrownAngle_tags_1, + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + asn_DEF_RoadwayCrownAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadwayCrownAngle_constr_1, &asn_PER_type_RoadwayCrownAngle_constr_1, RoadwayCrownAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/RoadworksSubCauseCode.c b/vcits/cpm/src/RoadworksSubCauseCode.c new file mode 100644 index 0000000..366c78b --- /dev/null +++ b/vcits/cpm/src/RoadworksSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "RoadworksSubCauseCode.h" + +int +RoadworksSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadworksSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode = { + "RoadworksSubCauseCode", + "RoadworksSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RoadworksSubCauseCode_tags_1, + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RoadworksSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadworksSubCauseCode_constr_1, &asn_PER_type_RoadworksSubCauseCode_constr_1, RoadworksSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SPAT.c b/vcits/cpm/src/SPAT.c new file mode 100644 index 0000000..6b7b503 --- /dev/null +++ b/vcits/cpm/src/SPAT.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SPAT.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SPAT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SPAT__regional), + offsetof(struct SPAT__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SPAT_1[] = { + { ATF_POINTER, 2, offsetof(struct SPAT, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct SPAT, intersections), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SPAT_oms_1[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_SPAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SPAT_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SPAT_specs_1 = { + sizeof(struct SPAT), + offsetof(struct SPAT, _asn_ctx), + asn_MAP_SPAT_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SPAT_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SPAT = { + "SPAT", + "SPAT", + &asn_OP_SEQUENCE, + asn_DEF_SPAT_tags_1, + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + asn_DEF_SPAT_tags_1, /* Same as above */ + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SPAT_1, + 4, /* Elements count */ + &asn_SPC_SPAT_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SafetyCarContainer.c b/vcits/cpm/src/SafetyCarContainer.c new file mode 100644 index 0000000..436cb94 --- /dev/null +++ b/vcits/cpm/src/SafetyCarContainer.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SafetyCarContainer.h" + +#include "CauseCode.h" +asn_TYPE_member_t asn_MBR_SafetyCarContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SafetyCarContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LightBarSirenInUse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, + { ATF_POINTER, 3, offsetof(struct SafetyCarContainer, incidentIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "incidentIndication" + }, + { ATF_POINTER, 2, offsetof(struct SafetyCarContainer, trafficRule), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrafficRule, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trafficRule" + }, + { ATF_POINTER, 1, offsetof(struct SafetyCarContainer, speedLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimit" + }, +}; +static const int asn_MAP_SafetyCarContainer_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_SafetyCarContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SafetyCarContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lightBarSirenInUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* incidentIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* trafficRule */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* speedLimit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SafetyCarContainer_specs_1 = { + sizeof(struct SafetyCarContainer), + offsetof(struct SafetyCarContainer, _asn_ctx), + asn_MAP_SafetyCarContainer_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SafetyCarContainer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SafetyCarContainer = { + "SafetyCarContainer", + "SafetyCarContainer", + &asn_OP_SEQUENCE, + asn_DEF_SafetyCarContainer_tags_1, + sizeof(asn_DEF_SafetyCarContainer_tags_1) + /sizeof(asn_DEF_SafetyCarContainer_tags_1[0]), /* 1 */ + asn_DEF_SafetyCarContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_SafetyCarContainer_tags_1) + /sizeof(asn_DEF_SafetyCarContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SafetyCarContainer_1, + 4, /* Elements count */ + &asn_SPC_SafetyCarContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Scale-B12.c b/vcits/cpm/src/Scale-B12.c new file mode 100644 index 0000000..4135410 --- /dev/null +++ b/vcits/cpm/src/Scale-B12.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Scale-B12.h" + +int +Scale_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Scale_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_Scale_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Scale_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Scale_B12 = { + "Scale-B12", + "Scale-B12", + &asn_OP_NativeInteger, + asn_DEF_Scale_B12_tags_1, + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + asn_DEF_Scale_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + { &asn_OER_type_Scale_B12_constr_1, &asn_PER_type_Scale_B12_constr_1, Scale_B12_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SegmentAttributeXY.c b/vcits/cpm/src/SegmentAttributeXY.c new file mode 100644 index 0000000..887a1cf --- /dev/null +++ b/vcits/cpm/src/SegmentAttributeXY.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SegmentAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 37 } /* (0..37,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SegmentAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 10, "doNotBlock" }, + { 2, 9, "whiteLine" }, + { 3, 15, "mergingLaneLeft" }, + { 4, 16, "mergingLaneRight" }, + { 5, 10, "curbOnLeft" }, + { 6, 11, "curbOnRight" }, + { 7, 17, "loadingzoneOnLeft" }, + { 8, 18, "loadingzoneOnRight" }, + { 9, 18, "turnOutPointOnLeft" }, + { 10, 19, "turnOutPointOnRight" }, + { 11, 21, "adjacentParkingOnLeft" }, + { 12, 22, "adjacentParkingOnRight" }, + { 13, 22, "adjacentBikeLaneOnLeft" }, + { 14, 23, "adjacentBikeLaneOnRight" }, + { 15, 14, "sharedBikeLane" }, + { 16, 14, "bikeBoxInFront" }, + { 17, 17, "transitStopOnLeft" }, + { 18, 18, "transitStopOnRight" }, + { 19, 17, "transitStopInLane" }, + { 20, 24, "sharedWithTrackedVehicle" }, + { 21, 10, "safeIsland" }, + { 22, 15, "lowCurbsPresent" }, + { 23, 18, "rumbleStripPresent" }, + { 24, 23, "audibleSignalingPresent" }, + { 25, 21, "adaptiveTimingPresent" }, + { 26, 22, "rfSignalRequestPresent" }, + { 27, 20, "partialCurbIntrusion" }, + { 28, 11, "taperToLeft" }, + { 29, 12, "taperToRight" }, + { 30, 17, "taperToCenterLine" }, + { 31, 15, "parallelParking" }, + { 32, 13, "headInParking" }, + { 33, 11, "freeParking" }, + { 34, 25, "timeRestrictionsOnParking" }, + { 35, 10, "costToPark" }, + { 36, 19, "midBlockCurbPresent" }, + { 37, 21, "unEvenPavementPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SegmentAttributeXY_enum2value_1[] = { + 25, /* adaptiveTimingPresent(25) */ + 13, /* adjacentBikeLaneOnLeft(13) */ + 14, /* adjacentBikeLaneOnRight(14) */ + 11, /* adjacentParkingOnLeft(11) */ + 12, /* adjacentParkingOnRight(12) */ + 24, /* audibleSignalingPresent(24) */ + 16, /* bikeBoxInFront(16) */ + 35, /* costToPark(35) */ + 5, /* curbOnLeft(5) */ + 6, /* curbOnRight(6) */ + 1, /* doNotBlock(1) */ + 33, /* freeParking(33) */ + 32, /* headInParking(32) */ + 7, /* loadingzoneOnLeft(7) */ + 8, /* loadingzoneOnRight(8) */ + 22, /* lowCurbsPresent(22) */ + 3, /* mergingLaneLeft(3) */ + 4, /* mergingLaneRight(4) */ + 36, /* midBlockCurbPresent(36) */ + 31, /* parallelParking(31) */ + 27, /* partialCurbIntrusion(27) */ + 0, /* reserved(0) */ + 26, /* rfSignalRequestPresent(26) */ + 23, /* rumbleStripPresent(23) */ + 21, /* safeIsland(21) */ + 15, /* sharedBikeLane(15) */ + 20, /* sharedWithTrackedVehicle(20) */ + 30, /* taperToCenterLine(30) */ + 28, /* taperToLeft(28) */ + 29, /* taperToRight(29) */ + 34, /* timeRestrictionsOnParking(34) */ + 19, /* transitStopInLane(19) */ + 17, /* transitStopOnLeft(17) */ + 18, /* transitStopOnRight(18) */ + 9, /* turnOutPointOnLeft(9) */ + 10, /* turnOutPointOnRight(10) */ + 37, /* unEvenPavementPresent(37) */ + 2 /* whiteLine(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1 = { + asn_MAP_SegmentAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SegmentAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 38, /* Number of elements in the maps */ + 39, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY = { + "SegmentAttributeXY", + "SegmentAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_SegmentAttributeXY_tags_1, + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentAttributeXY_constr_1, &asn_PER_type_SegmentAttributeXY_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SegmentAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SegmentAttributeXYList.c b/vcits/cpm/src/SegmentAttributeXYList.c new file mode 100644 index 0000000..936f53c --- /dev/null +++ b/vcits/cpm/src/SegmentAttributeXYList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SegmentAttributeXYList.h" + +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_SegmentAttributeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1 = { + sizeof(struct SegmentAttributeXYList), + offsetof(struct SegmentAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList = { + "SegmentAttributeXYList", + "SegmentAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SegmentAttributeXYList_tags_1, + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentAttributeXYList_constr_1, &asn_PER_type_SegmentAttributeXYList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SegmentAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_SegmentAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SegmentCount.c b/vcits/cpm/src/SegmentCount.c new file mode 100644 index 0000000..147dd55 --- /dev/null +++ b/vcits/cpm/src/SegmentCount.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SegmentCount.h" + +int +SegmentCount_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SegmentCount_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SegmentCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SegmentCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SegmentCount = { + "SegmentCount", + "SegmentCount", + &asn_OP_NativeInteger, + asn_DEF_SegmentCount_tags_1, + sizeof(asn_DEF_SegmentCount_tags_1) + /sizeof(asn_DEF_SegmentCount_tags_1[0]), /* 1 */ + asn_DEF_SegmentCount_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentCount_tags_1) + /sizeof(asn_DEF_SegmentCount_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentCount_constr_1, &asn_PER_type_SegmentCount_constr_1, SegmentCount_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SemiAxisLength.c b/vcits/cpm/src/SemiAxisLength.c new file mode 100644 index 0000000..5ca34eb --- /dev/null +++ b/vcits/cpm/src/SemiAxisLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SemiAxisLength.h" + +int +SemiAxisLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiAxisLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiAxisLength = { + "SemiAxisLength", + "SemiAxisLength", + &asn_OP_NativeInteger, + asn_DEF_SemiAxisLength_tags_1, + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + asn_DEF_SemiAxisLength_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiAxisLength_constr_1, &asn_PER_type_SemiAxisLength_constr_1, SemiAxisLength_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SemiMajorAxisAccuracy.c b/vcits/cpm/src/SemiMajorAxisAccuracy.c new file mode 100644 index 0000000..2f4e663 --- /dev/null +++ b/vcits/cpm/src/SemiMajorAxisAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SemiMajorAxisAccuracy.h" + +int +SemiMajorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy = { + "SemiMajorAxisAccuracy", + "SemiMajorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMajorAxisAccuracy_constr_1, &asn_PER_type_SemiMajorAxisAccuracy_constr_1, SemiMajorAxisAccuracy_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SemiMajorAxisOrientation.c b/vcits/cpm/src/SemiMajorAxisOrientation.c new file mode 100644 index 0000000..76f147e --- /dev/null +++ b/vcits/cpm/src/SemiMajorAxisOrientation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SemiMajorAxisOrientation.h" + +int +SemiMajorAxisOrientation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisOrientation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation = { + "SemiMajorAxisOrientation", + "SemiMajorAxisOrientation", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisOrientation_tags_1, + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisOrientation_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMajorAxisOrientation_constr_1, &asn_PER_type_SemiMajorAxisOrientation_constr_1, SemiMajorAxisOrientation_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SemiMinorAxisAccuracy.c b/vcits/cpm/src/SemiMinorAxisAccuracy.c new file mode 100644 index 0000000..abc58d0 --- /dev/null +++ b/vcits/cpm/src/SemiMinorAxisAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SemiMinorAxisAccuracy.h" + +int +SemiMinorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMinorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy = { + "SemiMinorAxisAccuracy", + "SemiMinorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMinorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMinorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMinorAxisAccuracy_constr_1, &asn_PER_type_SemiMinorAxisAccuracy_constr_1, SemiMinorAxisAccuracy_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SemiRangeLength.c b/vcits/cpm/src/SemiRangeLength.c new file mode 100644 index 0000000..8cfa314 --- /dev/null +++ b/vcits/cpm/src/SemiRangeLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SemiRangeLength.h" + +int +SemiRangeLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiRangeLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..10000) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiRangeLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10000 } /* (0..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiRangeLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiRangeLength = { + "SemiRangeLength", + "SemiRangeLength", + &asn_OP_NativeInteger, + asn_DEF_SemiRangeLength_tags_1, + sizeof(asn_DEF_SemiRangeLength_tags_1) + /sizeof(asn_DEF_SemiRangeLength_tags_1[0]), /* 1 */ + asn_DEF_SemiRangeLength_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiRangeLength_tags_1) + /sizeof(asn_DEF_SemiRangeLength_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiRangeLength_constr_1, &asn_PER_type_SemiRangeLength_constr_1, SemiRangeLength_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SensorHeight.c b/vcits/cpm/src/SensorHeight.c new file mode 100644 index 0000000..487b9ef --- /dev/null +++ b/vcits/cpm/src/SensorHeight.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SensorHeight.h" + +int +SensorHeight_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -5000 && value <= 5000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SensorHeight_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-5000..5000) */, + -1}; +asn_per_constraints_t asn_PER_type_SensorHeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, -5000, 5000 } /* (-5000..5000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SensorHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SensorHeight = { + "SensorHeight", + "SensorHeight", + &asn_OP_NativeInteger, + asn_DEF_SensorHeight_tags_1, + sizeof(asn_DEF_SensorHeight_tags_1) + /sizeof(asn_DEF_SensorHeight_tags_1[0]), /* 1 */ + asn_DEF_SensorHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_SensorHeight_tags_1) + /sizeof(asn_DEF_SensorHeight_tags_1[0]), /* 1 */ + { &asn_OER_type_SensorHeight_constr_1, &asn_PER_type_SensorHeight_constr_1, SensorHeight_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SensorIdList.c b/vcits/cpm/src/SensorIdList.c new file mode 100644 index 0000000..a6a1bca --- /dev/null +++ b/vcits/cpm/src/SensorIdList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SensorIdList.h" + +static asn_oer_constraints_t asn_OER_type_SensorIdList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +asn_per_constraints_t asn_PER_type_SensorIdList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 128 } /* (SIZE(1..128)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SensorIdList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_Identifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SensorIdList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SensorIdList_specs_1 = { + sizeof(struct SensorIdList), + offsetof(struct SensorIdList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SensorIdList = { + "SensorIdList", + "SensorIdList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SensorIdList_tags_1, + sizeof(asn_DEF_SensorIdList_tags_1) + /sizeof(asn_DEF_SensorIdList_tags_1[0]), /* 1 */ + asn_DEF_SensorIdList_tags_1, /* Same as above */ + sizeof(asn_DEF_SensorIdList_tags_1) + /sizeof(asn_DEF_SensorIdList_tags_1[0]), /* 1 */ + { &asn_OER_type_SensorIdList_constr_1, &asn_PER_type_SensorIdList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SensorIdList_1, + 1, /* Single element */ + &asn_SPC_SensorIdList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SensorInformation.c b/vcits/cpm/src/SensorInformation.c new file mode 100644 index 0000000..8a7abbb --- /dev/null +++ b/vcits/cpm/src/SensorInformation.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SensorInformation.h" + +asn_TYPE_member_t asn_MBR_SensorInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SensorInformation, sensorID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Identifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sensorID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SensorInformation, type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SensorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_NOFLAGS, 0, offsetof(struct SensorInformation, detectionArea), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_DetectionArea, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "detectionArea" + }, + { ATF_POINTER, 1, offsetof(struct SensorInformation, freeSpaceConfidence), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreeSpaceConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freeSpaceConfidence" + }, +}; +static const int asn_MAP_SensorInformation_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_SensorInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SensorInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sensorID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* detectionArea */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* freeSpaceConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SensorInformation_specs_1 = { + sizeof(struct SensorInformation), + offsetof(struct SensorInformation, _asn_ctx), + asn_MAP_SensorInformation_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SensorInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SensorInformation = { + "SensorInformation", + "SensorInformation", + &asn_OP_SEQUENCE, + asn_DEF_SensorInformation_tags_1, + sizeof(asn_DEF_SensorInformation_tags_1) + /sizeof(asn_DEF_SensorInformation_tags_1[0]), /* 1 */ + asn_DEF_SensorInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_SensorInformation_tags_1) + /sizeof(asn_DEF_SensorInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SensorInformation_1, + 4, /* Elements count */ + &asn_SPC_SensorInformation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SensorInformationContainer.c b/vcits/cpm/src/SensorInformationContainer.c new file mode 100644 index 0000000..4668aba --- /dev/null +++ b/vcits/cpm/src/SensorInformationContainer.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SensorInformationContainer.h" + +#include "SensorInformation.h" +static asn_oer_constraints_t asn_OER_type_SensorInformationContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +asn_per_constraints_t asn_PER_type_SensorInformationContainer_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 128 } /* (SIZE(1..128)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SensorInformationContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SensorInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SensorInformationContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SensorInformationContainer_specs_1 = { + sizeof(struct SensorInformationContainer), + offsetof(struct SensorInformationContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SensorInformationContainer = { + "SensorInformationContainer", + "SensorInformationContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_SensorInformationContainer_tags_1, + sizeof(asn_DEF_SensorInformationContainer_tags_1) + /sizeof(asn_DEF_SensorInformationContainer_tags_1[0]), /* 1 */ + asn_DEF_SensorInformationContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_SensorInformationContainer_tags_1) + /sizeof(asn_DEF_SensorInformationContainer_tags_1[0]), /* 1 */ + { &asn_OER_type_SensorInformationContainer_constr_1, &asn_PER_type_SensorInformationContainer_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SensorInformationContainer_1, + 1, /* Single element */ + &asn_SPC_SensorInformationContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SensorType.c b/vcits/cpm/src/SensorType.c new file mode 100644 index 0000000..69e7f93 --- /dev/null +++ b/vcits/cpm/src/SensorType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SensorType.h" + +int +SensorType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SensorType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_SensorType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SensorType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SensorType = { + "SensorType", + "SensorType", + &asn_OP_NativeInteger, + asn_DEF_SensorType_tags_1, + sizeof(asn_DEF_SensorType_tags_1) + /sizeof(asn_DEF_SensorType_tags_1[0]), /* 1 */ + asn_DEF_SensorType_tags_1, /* Same as above */ + sizeof(asn_DEF_SensorType_tags_1) + /sizeof(asn_DEF_SensorType_tags_1[0]), /* 1 */ + { &asn_OER_type_SensorType_constr_1, &asn_PER_type_SensorType_constr_1, SensorType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SequenceNumber.c b/vcits/cpm/src/SequenceNumber.c new file mode 100644 index 0000000..3b8b3c3 --- /dev/null +++ b/vcits/cpm/src/SequenceNumber.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SequenceNumber.h" + +int +SequenceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SequenceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SequenceNumber = { + "SequenceNumber", + "SequenceNumber", + &asn_OP_NativeInteger, + asn_DEF_SequenceNumber_tags_1, + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + asn_DEF_SequenceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_SequenceNumber_constr_1, &asn_PER_type_SequenceNumber_constr_1, SequenceNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ShadowingApplies.c b/vcits/cpm/src/ShadowingApplies.c new file mode 100644 index 0000000..94a8a30 --- /dev/null +++ b/vcits/cpm/src/ShadowingApplies.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ShadowingApplies.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ShadowingApplies_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ShadowingApplies = { + "ShadowingApplies", + "ShadowingApplies", + &asn_OP_BOOLEAN, + asn_DEF_ShadowingApplies_tags_1, + sizeof(asn_DEF_ShadowingApplies_tags_1) + /sizeof(asn_DEF_ShadowingApplies_tags_1[0]), /* 1 */ + asn_DEF_ShadowingApplies_tags_1, /* Same as above */ + sizeof(asn_DEF_ShadowingApplies_tags_1) + /sizeof(asn_DEF_ShadowingApplies_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SignalControlZone.c b/vcits/cpm/src/SignalControlZone.c new file mode 100644 index 0000000..9e27d34 --- /dev/null +++ b/vcits/cpm/src/SignalControlZone.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalControlZone.h" + +asn_TYPE_member_t asn_MBR_SignalControlZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalControlZone, zone), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_SignalControlZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zone" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalControlZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalControlZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* zone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1 = { + sizeof(struct SignalControlZone), + offsetof(struct SignalControlZone, _asn_ctx), + asn_MAP_SignalControlZone_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalControlZone = { + "SignalControlZone", + "SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_SignalControlZone_tags_1, + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + asn_DEF_SignalControlZone_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalControlZone_1, + 1, /* Elements count */ + &asn_SPC_SignalControlZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SignalGroupID.c b/vcits/cpm/src/SignalGroupID.c new file mode 100644 index 0000000..014f723 --- /dev/null +++ b/vcits/cpm/src/SignalGroupID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalGroupID.h" + +int +SignalGroupID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalGroupID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalGroupID = { + "SignalGroupID", + "SignalGroupID", + &asn_OP_NativeInteger, + asn_DEF_SignalGroupID_tags_1, + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + asn_DEF_SignalGroupID_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalGroupID_constr_1, &asn_PER_type_SignalGroupID_constr_1, SignalGroupID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SignalHeadLocation.c b/vcits/cpm/src/SignalHeadLocation.c new file mode 100644 index 0000000..e0dd701 --- /dev/null +++ b/vcits/cpm/src/SignalHeadLocation.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalHeadLocation.h" + +asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, nodeZ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeZ" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, signalGroupID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroupID" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalHeadLocation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeZ */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroupID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1 = { + sizeof(struct SignalHeadLocation), + offsetof(struct SignalHeadLocation, _asn_ctx), + asn_MAP_SignalHeadLocation_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation = { + "SignalHeadLocation", + "SignalHeadLocation", + &asn_OP_SEQUENCE, + asn_DEF_SignalHeadLocation_tags_1, + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalHeadLocation_1, + 3, /* Elements count */ + &asn_SPC_SignalHeadLocation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SignalHeadLocationList.c b/vcits/cpm/src/SignalHeadLocationList.c new file mode 100644 index 0000000..1a52f3b --- /dev/null +++ b/vcits/cpm/src/SignalHeadLocationList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalHeadLocationList.h" + +#include "SignalHeadLocation.h" +static asn_oer_constraints_t asn_OER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalHeadLocation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1 = { + sizeof(struct SignalHeadLocationList), + offsetof(struct SignalHeadLocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList = { + "SignalHeadLocationList", + "SignalHeadLocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalHeadLocationList_tags_1, + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalHeadLocationList_constr_1, &asn_PER_type_SignalHeadLocationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalHeadLocationList_1, + 1, /* Single element */ + &asn_SPC_SignalHeadLocationList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SignalRequest.c b/vcits/cpm/src/SignalRequest.c new file mode 100644 index 0000000..e978e67 --- /dev/null +++ b/vcits/cpm/src/SignalRequest.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalRequest.h" + +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequest__regional), + offsetof(struct SignalRequest__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PriorityRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestType" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, inBoundLane), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inBoundLane" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequest, outBoundLane), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outBoundLane" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequest, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequest_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* requestID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* requestType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* inBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* outBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1 = { + sizeof(struct SignalRequest), + offsetof(struct SignalRequest, _asn_ctx), + asn_MAP_SignalRequest_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequest_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequest = { + "SignalRequest", + "SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequest_tags_1, + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + asn_DEF_SignalRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequest_1, + 6, /* Elements count */ + &asn_SPC_SignalRequest_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SignalRequestList.c b/vcits/cpm/src/SignalRequestList.c new file mode 100644 index 0000000..45c3436 --- /dev/null +++ b/vcits/cpm/src/SignalRequestList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalRequestList.h" + +#include "SignalRequestPackage.h" +static asn_oer_constraints_t asn_OER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalRequestPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1 = { + sizeof(struct SignalRequestList), + offsetof(struct SignalRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestList = { + "SignalRequestList", + "SignalRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalRequestList_tags_1, + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalRequestList_constr_1, &asn_PER_type_SignalRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalRequestList_1, + 1, /* Single element */ + &asn_SPC_SignalRequestList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SignalRequestMessage.c b/vcits/cpm/src/SignalRequestMessage.c new file mode 100644 index 0000000..8cc5ef5 --- /dev/null +++ b/vcits/cpm/src/SignalRequestMessage.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalRequestMessage.h" + +#include "SignalRequestList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequestMessage__regional), + offsetof(struct SignalRequestMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SignalRequestMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, requests), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requests" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, requestor), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestor" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestMessage_oms_1[] = { 0, 2, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* requests */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* requestor */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SignalRequestMessage_specs_1 = { + sizeof(struct SignalRequestMessage), + offsetof(struct SignalRequestMessage, _asn_ctx), + asn_MAP_SignalRequestMessage_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequestMessage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage = { + "SignalRequestMessage", + "SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestMessage_tags_1, + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequestMessage_1, + 6, /* Elements count */ + &asn_SPC_SignalRequestMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SignalRequestPackage.c b/vcits/cpm/src/SignalRequestPackage.c new file mode 100644 index 0000000..c2b0c03 --- /dev/null +++ b/vcits/cpm/src/SignalRequestPackage.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalRequestPackage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalRequestPackage__regional), + offsetof(struct SignalRequestPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestPackage, request), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 4, offsetof(struct SignalRequestPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 3, offsetof(struct SignalRequestPackage, second), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestPackage_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1 = { + sizeof(struct SignalRequestPackage), + offsetof(struct SignalRequestPackage, _asn_ctx), + asn_MAP_SignalRequestPackage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequestPackage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage = { + "SignalRequestPackage", + "SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestPackage_tags_1, + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequestPackage_1, + 5, /* Elements count */ + &asn_SPC_SignalRequestPackage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SignalRequesterInfo.c b/vcits/cpm/src/SignalRequesterInfo.c new file mode 100644 index 0000000..3fa2aa1 --- /dev/null +++ b/vcits/cpm/src/SignalRequesterInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalRequesterInfo.h" + +#include "RequestorType.h" +asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, request), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequesterInfo, role), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequesterInfo, typeData), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeData" + }, +}; +static const int asn_MAP_SignalRequesterInfo_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequesterInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequesterInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* typeData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1 = { + sizeof(struct SignalRequesterInfo), + offsetof(struct SignalRequesterInfo, _asn_ctx), + asn_MAP_SignalRequesterInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequesterInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo = { + "SignalRequesterInfo", + "SignalRequesterInfo", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequesterInfo_tags_1, + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + asn_DEF_SignalRequesterInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequesterInfo_1, + 5, /* Elements count */ + &asn_SPC_SignalRequesterInfo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SignalStatus.c b/vcits/cpm/src/SignalStatus.c new file mode 100644 index 0000000..6187d99 --- /dev/null +++ b/vcits/cpm/src/SignalStatus.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalStatus.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SignalStatus__regional), + offsetof(struct SignalStatus__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sigStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusPackageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sigStatus" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatus, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatus_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_SignalStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatus_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sigStatus */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1 = { + sizeof(struct SignalStatus), + offsetof(struct SignalStatus, _asn_ctx), + asn_MAP_SignalStatus_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SignalStatus_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatus = { + "SignalStatus", + "SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatus_tags_1, + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + asn_DEF_SignalStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatus_1, + 4, /* Elements count */ + &asn_SPC_SignalStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SignalStatusList.c b/vcits/cpm/src/SignalStatusList.c new file mode 100644 index 0000000..15f44e4 --- /dev/null +++ b/vcits/cpm/src/SignalStatusList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalStatusList.h" + +#include "SignalStatus.h" +static asn_oer_constraints_t asn_OER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalStatusList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1 = { + sizeof(struct SignalStatusList), + offsetof(struct SignalStatusList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusList = { + "SignalStatusList", + "SignalStatusList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusList_tags_1, + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalStatusList_constr_1, &asn_PER_type_SignalStatusList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalStatusList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SignalStatusMessage.c b/vcits/cpm/src/SignalStatusMessage.c new file mode 100644 index 0000000..0ab60da --- /dev/null +++ b/vcits/cpm/src/SignalStatusMessage.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalStatusMessage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalStatusMessage__regional), + offsetof(struct SignalStatusMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SignalStatusMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusMessage_oms_1[] = { 0, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SignalStatusMessage_specs_1 = { + sizeof(struct SignalStatusMessage), + offsetof(struct SignalStatusMessage, _asn_ctx), + asn_MAP_SignalStatusMessage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalStatusMessage_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage = { + "SignalStatusMessage", + "SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusMessage_tags_1, + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusMessage_1, + 5, /* Elements count */ + &asn_SPC_SignalStatusMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SignalStatusPackage-addGrpC.c b/vcits/cpm/src/SignalStatusPackage-addGrpC.c new file mode 100644 index 0000000..392f319 --- /dev/null +++ b/vcits/cpm/src/SignalStatusPackage-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalStatusPackage-addGrpC.h" + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage_addGrpC, synchToSchedule), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "synchToSchedule" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage_addGrpC, rejectedReason), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RejectedReason, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rejectedReason" + }, +}; +static const int asn_MAP_SignalStatusPackage_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* synchToSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rejectedReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_addGrpC_specs_1 = { + sizeof(struct SignalStatusPackage_addGrpC), + offsetof(struct SignalStatusPackage_addGrpC, _asn_ctx), + asn_MAP_SignalStatusPackage_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage_addGrpC = { + "SignalStatusPackage-addGrpC", + "SignalStatusPackage-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_addGrpC_tags_1, + sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusPackage_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_SignalStatusPackage_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SignalStatusPackage.c b/vcits/cpm/src/SignalStatusPackage.c new file mode 100644 index 0000000..81076f1 --- /dev/null +++ b/vcits/cpm/src/SignalStatusPackage.c @@ -0,0 +1,204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalStatusPackage.h" + +#include "SignalRequesterInfo.h" +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct SignalStatusPackage__regional), + offsetof(struct SignalStatusPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { &asn_OER_type_regional_constr_9, &asn_PER_type_regional_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, requester), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequesterInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requester" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, inboundOn), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inboundOn" + }, + { ATF_POINTER, 4, offsetof(struct SignalStatusPackage, outboundOn), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outboundOn" + }, + { ATF_POINTER, 3, offsetof(struct SignalStatusPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage, second), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, status), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { &asn_OER_memb_regional_constr_9, &asn_PER_memb_regional_constr_9, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusPackage_oms_1[] = { 0, 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requester */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* inboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* outboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1 = { + sizeof(struct SignalStatusPackage), + offsetof(struct SignalStatusPackage, _asn_ctx), + asn_MAP_SignalStatusPackage_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage = { + "SignalStatusPackage", + "SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_tags_1, + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusPackage_1, + 8, /* Elements count */ + &asn_SPC_SignalStatusPackage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SignalStatusPackageList.c b/vcits/cpm/src/SignalStatusPackageList.c new file mode 100644 index 0000000..de926f2 --- /dev/null +++ b/vcits/cpm/src/SignalStatusPackageList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalStatusPackageList.h" + +#include "SignalStatusPackage.h" +static asn_oer_constraints_t asn_OER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1 = { + sizeof(struct SignalStatusPackageList), + offsetof(struct SignalStatusPackageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList = { + "SignalStatusPackageList", + "SignalStatusPackageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusPackageList_tags_1, + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackageList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalStatusPackageList_constr_1, &asn_PER_type_SignalStatusPackageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalStatusPackageList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusPackageList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SignalViolationSubCauseCode.c b/vcits/cpm/src/SignalViolationSubCauseCode.c new file mode 100644 index 0000000..a8aa1b9 --- /dev/null +++ b/vcits/cpm/src/SignalViolationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SignalViolationSubCauseCode.h" + +int +SignalViolationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalViolationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode = { + "SignalViolationSubCauseCode", + "SignalViolationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SignalViolationSubCauseCode_tags_1, + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SignalViolationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalViolationSubCauseCode_constr_1, &asn_PER_type_SignalViolationSubCauseCode_constr_1, SignalViolationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SlowVehicleSubCauseCode.c b/vcits/cpm/src/SlowVehicleSubCauseCode.c new file mode 100644 index 0000000..aa8a673 --- /dev/null +++ b/vcits/cpm/src/SlowVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SlowVehicleSubCauseCode.h" + +int +SlowVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SlowVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode = { + "SlowVehicleSubCauseCode", + "SlowVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SlowVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SlowVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SlowVehicleSubCauseCode_constr_1, &asn_PER_type_SlowVehicleSubCauseCode_constr_1, SlowVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SpecialTransportContainer.c b/vcits/cpm/src/SpecialTransportContainer.c new file mode 100644 index 0000000..6913e98 --- /dev/null +++ b/vcits/cpm/src/SpecialTransportContainer.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SpecialTransportContainer.h" + +asn_TYPE_member_t asn_MBR_SpecialTransportContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpecialTransportContainer, specialTransportType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpecialTransportType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "specialTransportType" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpecialTransportContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LightBarSirenInUse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpecialTransportContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SpecialTransportContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* specialTransportType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lightBarSirenInUse */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SpecialTransportContainer_specs_1 = { + sizeof(struct SpecialTransportContainer), + offsetof(struct SpecialTransportContainer, _asn_ctx), + asn_MAP_SpecialTransportContainer_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SpecialTransportContainer = { + "SpecialTransportContainer", + "SpecialTransportContainer", + &asn_OP_SEQUENCE, + asn_DEF_SpecialTransportContainer_tags_1, + sizeof(asn_DEF_SpecialTransportContainer_tags_1) + /sizeof(asn_DEF_SpecialTransportContainer_tags_1[0]), /* 1 */ + asn_DEF_SpecialTransportContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_SpecialTransportContainer_tags_1) + /sizeof(asn_DEF_SpecialTransportContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SpecialTransportContainer_1, + 2, /* Elements count */ + &asn_SPC_SpecialTransportContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SpecialTransportType.c b/vcits/cpm/src/SpecialTransportType.c new file mode 100644 index 0000000..f19cd8c --- /dev/null +++ b/vcits/cpm/src/SpecialTransportType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SpecialTransportType.h" + +int +SpecialTransportType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +asn_per_constraints_t asn_PER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpecialTransportType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpecialTransportType = { + "SpecialTransportType", + "SpecialTransportType", + &asn_OP_BIT_STRING, + asn_DEF_SpecialTransportType_tags_1, + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + asn_DEF_SpecialTransportType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpecialTransportType_constr_1, &asn_PER_type_SpecialTransportType_constr_1, SpecialTransportType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SpecialVehicleContainer.c b/vcits/cpm/src/SpecialVehicleContainer.c new file mode 100644 index 0000000..d2fa234 --- /dev/null +++ b/vcits/cpm/src/SpecialVehicleContainer.c @@ -0,0 +1,115 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cam_en302637_2/CAM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SpecialVehicleContainer.h" + +static asn_oer_constraints_t asn_OER_type_SpecialVehicleContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpecialVehicleContainer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SpecialVehicleContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpecialVehicleContainer, choice.publicTransportContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PublicTransportContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "publicTransportContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpecialVehicleContainer, choice.specialTransportContainer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpecialTransportContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "specialTransportContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpecialVehicleContainer, choice.dangerousGoodsContainer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dangerousGoodsContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpecialVehicleContainer, choice.roadWorksContainerBasic), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadWorksContainerBasic, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadWorksContainerBasic" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpecialVehicleContainer, choice.rescueContainer), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RescueContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rescueContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpecialVehicleContainer, choice.emergencyContainer), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmergencyContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpecialVehicleContainer, choice.safetyCarContainer), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SafetyCarContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "safetyCarContainer" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_SpecialVehicleContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* publicTransportContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* specialTransportContainer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dangerousGoodsContainer */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roadWorksContainerBasic */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rescueContainer */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyContainer */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* safetyCarContainer */ +}; +asn_CHOICE_specifics_t asn_SPC_SpecialVehicleContainer_specs_1 = { + sizeof(struct SpecialVehicleContainer), + offsetof(struct SpecialVehicleContainer, _asn_ctx), + offsetof(struct SpecialVehicleContainer, present), + sizeof(((struct SpecialVehicleContainer *)0)->present), + asn_MAP_SpecialVehicleContainer_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_SpecialVehicleContainer = { + "SpecialVehicleContainer", + "SpecialVehicleContainer", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_SpecialVehicleContainer_constr_1, &asn_PER_type_SpecialVehicleContainer_constr_1, CHOICE_constraint }, + asn_MBR_SpecialVehicleContainer_1, + 7, /* Elements count */ + &asn_SPC_SpecialVehicleContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/Speed.c b/vcits/cpm/src/Speed.c new file mode 100644 index 0000000..ca7d82c --- /dev/null +++ b/vcits/cpm/src/Speed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Speed.h" + +asn_TYPE_member_t asn_MBR_Speed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Speed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Speed_specs_1 = { + sizeof(struct Speed), + offsetof(struct Speed, _asn_ctx), + asn_MAP_Speed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Speed = { + "Speed", + "Speed", + &asn_OP_SEQUENCE, + asn_DEF_Speed_tags_1, + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + asn_DEF_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Speed_1, + 2, /* Elements count */ + &asn_SPC_Speed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SpeedAdvice.c b/vcits/cpm/src/SpeedAdvice.c new file mode 100644 index 0000000..8e8924e --- /dev/null +++ b/vcits/cpm/src/SpeedAdvice.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SpeedAdvice.h" + +int +SpeedAdvice_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..500) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 500 } /* (0..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedAdvice_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedAdvice = { + "SpeedAdvice", + "SpeedAdvice", + &asn_OP_NativeInteger, + asn_DEF_SpeedAdvice_tags_1, + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + asn_DEF_SpeedAdvice_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedAdvice_constr_1, &asn_PER_type_SpeedAdvice_constr_1, SpeedAdvice_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SpeedConfidence.c b/vcits/cpm/src/SpeedConfidence.c new file mode 100644 index 0000000..7258337 --- /dev/null +++ b/vcits/cpm/src/SpeedConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SpeedConfidence.h" + +int +SpeedConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeInteger, + asn_DEF_SpeedConfidence_tags_1, + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidence_constr_1, &asn_PER_type_SpeedConfidence_constr_1, SpeedConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SpeedConfidenceDSRC.c b/vcits/cpm/src/SpeedConfidenceDSRC.c new file mode 100644 index 0000000..1d63627 --- /dev/null +++ b/vcits/cpm/src/SpeedConfidenceDSRC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SpeedConfidenceDSRC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidenceDSRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidenceDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SpeedConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec100ms" }, + { 2, 8, "prec10ms" }, + { 3, 7, "prec5ms" }, + { 4, 7, "prec1ms" }, + { 5, 9, "prec0-1ms" }, + { 6, 10, "prec0-05ms" }, + { 7, 10, "prec0-01ms" } +}; +static const unsigned int asn_MAP_SpeedConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-01ms(7) */ + 6, /* prec0-05ms(6) */ + 5, /* prec0-1ms(5) */ + 1, /* prec100ms(1) */ + 2, /* prec10ms(2) */ + 4, /* prec1ms(4) */ + 3, /* prec5ms(3) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedConfidenceDSRC_specs_1 = { + asn_MAP_SpeedConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedConfidenceDSRC_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidenceDSRC = { + "SpeedConfidenceDSRC", + "SpeedConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedConfidenceDSRC_tags_1, + sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidenceDSRC_constr_1, &asn_PER_type_SpeedConfidenceDSRC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SpeedExtended.c b/vcits/cpm/src/SpeedExtended.c new file mode 100644 index 0000000..007feba --- /dev/null +++ b/vcits/cpm/src/SpeedExtended.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SpeedExtended.h" + +asn_TYPE_member_t asn_MBR_SpeedExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpeedExtended, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValueExtended, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedExtended, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SpeedExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SpeedExtended_specs_1 = { + sizeof(struct SpeedExtended), + offsetof(struct SpeedExtended, _asn_ctx), + asn_MAP_SpeedExtended_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedExtended = { + "SpeedExtended", + "SpeedExtended", + &asn_OP_SEQUENCE, + asn_DEF_SpeedExtended_tags_1, + sizeof(asn_DEF_SpeedExtended_tags_1) + /sizeof(asn_DEF_SpeedExtended_tags_1[0]), /* 1 */ + asn_DEF_SpeedExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedExtended_tags_1) + /sizeof(asn_DEF_SpeedExtended_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SpeedExtended_1, + 2, /* Elements count */ + &asn_SPC_SpeedExtended_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SpeedLimit.c b/vcits/cpm/src/SpeedLimit.c new file mode 100644 index 0000000..7f92e13 --- /dev/null +++ b/vcits/cpm/src/SpeedLimit.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SpeedLimit.h" + +int +SpeedLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_NativeInteger, + asn_DEF_SpeedLimit_tags_1, + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimit_constr_1, &asn_PER_type_SpeedLimit_constr_1, SpeedLimit_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SpeedLimitList.c b/vcits/cpm/src/SpeedLimitList.c new file mode 100644 index 0000000..2f39ad2 --- /dev/null +++ b/vcits/cpm/src/SpeedLimitList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SpeedLimitList.h" + +#include "RegulatorySpeedLimit.h" +static asn_oer_constraints_t asn_OER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..9)) */}; +asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 9 } /* (SIZE(1..9)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SpeedLimitList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RegulatorySpeedLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1 = { + sizeof(struct SpeedLimitList), + offsetof(struct SpeedLimitList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitList = { + "SpeedLimitList", + "SpeedLimitList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SpeedLimitList_tags_1, + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitList_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimitList_constr_1, &asn_PER_type_SpeedLimitList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SpeedLimitList_1, + 1, /* Single element */ + &asn_SPC_SpeedLimitList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SpeedLimitType.c b/vcits/cpm/src/SpeedLimitType.c new file mode 100644 index 0000000..40da603 --- /dev/null +++ b/vcits/cpm/src/SpeedLimitType.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SpeedLimitType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SpeedLimitType_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "maxSpeedInSchoolZone" }, + { 2, 42, "maxSpeedInSchoolZoneWhenChildrenArePresent" }, + { 3, 26, "maxSpeedInConstructionZone" }, + { 4, 15, "vehicleMinSpeed" }, + { 5, 15, "vehicleMaxSpeed" }, + { 6, 20, "vehicleNightMaxSpeed" }, + { 7, 13, "truckMinSpeed" }, + { 8, 13, "truckMaxSpeed" }, + { 9, 18, "truckNightMaxSpeed" }, + { 10, 28, "vehiclesWithTrailersMinSpeed" }, + { 11, 28, "vehiclesWithTrailersMaxSpeed" }, + { 12, 33, "vehiclesWithTrailersNightMaxSpeed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SpeedLimitType_enum2value_1[] = { + 3, /* maxSpeedInConstructionZone(3) */ + 1, /* maxSpeedInSchoolZone(1) */ + 2, /* maxSpeedInSchoolZoneWhenChildrenArePresent(2) */ + 8, /* truckMaxSpeed(8) */ + 7, /* truckMinSpeed(7) */ + 9, /* truckNightMaxSpeed(9) */ + 0, /* unknown(0) */ + 5, /* vehicleMaxSpeed(5) */ + 4, /* vehicleMinSpeed(4) */ + 6, /* vehicleNightMaxSpeed(6) */ + 11, /* vehiclesWithTrailersMaxSpeed(11) */ + 10, /* vehiclesWithTrailersMinSpeed(10) */ + 12 /* vehiclesWithTrailersNightMaxSpeed(12) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1 = { + asn_MAP_SpeedLimitType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedLimitType_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitType = { + "SpeedLimitType", + "SpeedLimitType", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedLimitType_tags_1, + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimitType_constr_1, &asn_PER_type_SpeedLimitType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedLimitType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SpeedValue.c b/vcits/cpm/src/SpeedValue.c new file mode 100644 index 0000000..ec7cbc0 --- /dev/null +++ b/vcits/cpm/src/SpeedValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SpeedValue.h" + +int +SpeedValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedValue = { + "SpeedValue", + "SpeedValue", + &asn_OP_NativeInteger, + asn_DEF_SpeedValue_tags_1, + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + asn_DEF_SpeedValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedValue_constr_1, &asn_PER_type_SpeedValue_constr_1, SpeedValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SpeedValueExtended.c b/vcits/cpm/src/SpeedValueExtended.c new file mode 100644 index 0000000..6ee0fe0 --- /dev/null +++ b/vcits/cpm/src/SpeedValueExtended.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SpeedValueExtended.h" + +int +SpeedValueExtended_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -16383 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedValueExtended_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-16383..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedValueExtended_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, -16383, 16383 } /* (-16383..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedValueExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedValueExtended = { + "SpeedValueExtended", + "SpeedValueExtended", + &asn_OP_NativeInteger, + asn_DEF_SpeedValueExtended_tags_1, + sizeof(asn_DEF_SpeedValueExtended_tags_1) + /sizeof(asn_DEF_SpeedValueExtended_tags_1[0]), /* 1 */ + asn_DEF_SpeedValueExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedValueExtended_tags_1) + /sizeof(asn_DEF_SpeedValueExtended_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedValueExtended_constr_1, &asn_PER_type_SpeedValueExtended_constr_1, SpeedValueExtended_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SpeedandHeadingandThrottleConfidence.c b/vcits/cpm/src/SpeedandHeadingandThrottleConfidence.c new file mode 100644 index 0000000..ef0bde5 --- /dev/null +++ b/vcits/cpm/src/SpeedandHeadingandThrottleConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SpeedandHeadingandThrottleConfidence.h" + +asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, throttle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ThrottleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "throttle" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* throttle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 = { + sizeof(struct SpeedandHeadingandThrottleConfidence), + offsetof(struct SpeedandHeadingandThrottleConfidence, _asn_ctx), + asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence = { + "SpeedandHeadingandThrottleConfidence", + "SpeedandHeadingandThrottleConfidence", + &asn_OP_SEQUENCE, + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SpeedandHeadingandThrottleConfidence_1, + 3, /* Elements count */ + &asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/StationDataContainer.c b/vcits/cpm/src/StationDataContainer.c new file mode 100644 index 0000000..1dc5719 --- /dev/null +++ b/vcits/cpm/src/StationDataContainer.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "StationDataContainer.h" + +static asn_oer_constraints_t asn_OER_type_StationDataContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_StationDataContainer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_StationDataContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct StationDataContainer, choice.originatingVehicleContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OriginatingVehicleContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "originatingVehicleContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct StationDataContainer, choice.originatingRSUContainer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_OriginatingRSUContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "originatingRSUContainer" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_StationDataContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingVehicleContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* originatingRSUContainer */ +}; +asn_CHOICE_specifics_t asn_SPC_StationDataContainer_specs_1 = { + sizeof(struct StationDataContainer), + offsetof(struct StationDataContainer, _asn_ctx), + offsetof(struct StationDataContainer, present), + sizeof(((struct StationDataContainer *)0)->present), + asn_MAP_StationDataContainer_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_StationDataContainer = { + "StationDataContainer", + "StationDataContainer", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_StationDataContainer_constr_1, &asn_PER_type_StationDataContainer_constr_1, CHOICE_constraint }, + asn_MBR_StationDataContainer_1, + 2, /* Elements count */ + &asn_SPC_StationDataContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/StationID.c b/vcits/cpm/src/StationID.c new file mode 100644 index 0000000..5e2c453 --- /dev/null +++ b/vcits/cpm/src/StationID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "StationID.h" + +int +StationID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +asn_per_constraints_t asn_PER_type_StationID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_StationID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationID = { + "StationID", + "StationID", + &asn_OP_NativeInteger, + asn_DEF_StationID_tags_1, + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + asn_DEF_StationID_tags_1, /* Same as above */ + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + { &asn_OER_type_StationID_constr_1, &asn_PER_type_StationID_constr_1, StationID_constraint }, + 0, 0, /* No members */ + &asn_SPC_StationID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/StationType.c b/vcits/cpm/src/StationType.c new file mode 100644 index 0000000..02495eb --- /dev/null +++ b/vcits/cpm/src/StationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "StationType.h" + +int +StationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_StationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationType = { + "StationType", + "StationType", + &asn_OP_NativeInteger, + asn_DEF_StationType_tags_1, + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + asn_DEF_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + { &asn_OER_type_StationType_constr_1, &asn_PER_type_StationType_constr_1, StationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/StationarySince.c b/vcits/cpm/src/StationarySince.c new file mode 100644 index 0000000..05742c9 --- /dev/null +++ b/vcits/cpm/src/StationarySince.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "StationarySince.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationarySince_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_StationarySince_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_StationarySince_value2enum_1[] = { + { 0, 15, "lessThan1Minute" }, + { 1, 16, "lessThan2Minutes" }, + { 2, 17, "lessThan15Minutes" }, + { 3, 23, "equalOrGreater15Minutes" } +}; +static const unsigned int asn_MAP_StationarySince_enum2value_1[] = { + 3, /* equalOrGreater15Minutes(3) */ + 2, /* lessThan15Minutes(2) */ + 0, /* lessThan1Minute(0) */ + 1 /* lessThan2Minutes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_StationarySince_specs_1 = { + asn_MAP_StationarySince_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_StationarySince_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_StationarySince_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationarySince = { + "StationarySince", + "StationarySince", + &asn_OP_NativeEnumerated, + asn_DEF_StationarySince_tags_1, + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + asn_DEF_StationarySince_tags_1, /* Same as above */ + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + { &asn_OER_type_StationarySince_constr_1, &asn_PER_type_StationarySince_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_StationarySince_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/StationaryVehicleSubCauseCode.c b/vcits/cpm/src/StationaryVehicleSubCauseCode.c new file mode 100644 index 0000000..3c38be1 --- /dev/null +++ b/vcits/cpm/src/StationaryVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "StationaryVehicleSubCauseCode.h" + +int +StationaryVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationaryVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode = { + "StationaryVehicleSubCauseCode", + "StationaryVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_StationaryVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_StationaryVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_StationaryVehicleSubCauseCode_constr_1, &asn_PER_type_StationaryVehicleSubCauseCode_constr_1, StationaryVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SteeringWheelAngle.c b/vcits/cpm/src/SteeringWheelAngle.c new file mode 100644 index 0000000..d51b5e2 --- /dev/null +++ b/vcits/cpm/src/SteeringWheelAngle.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SteeringWheelAngle.h" + +asn_TYPE_member_t asn_MBR_SteeringWheelAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SteeringWheelAngle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* steeringWheelAngleValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* steeringWheelAngleConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SteeringWheelAngle_specs_1 = { + sizeof(struct SteeringWheelAngle), + offsetof(struct SteeringWheelAngle, _asn_ctx), + asn_MAP_SteeringWheelAngle_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_SEQUENCE, + asn_DEF_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SteeringWheelAngle_1, + 2, /* Elements count */ + &asn_SPC_SteeringWheelAngle_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/SteeringWheelAngleConfidence.c b/vcits/cpm/src/SteeringWheelAngleConfidence.c new file mode 100644 index 0000000..c1ac773 --- /dev/null +++ b/vcits/cpm/src/SteeringWheelAngleConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SteeringWheelAngleConfidence.h" + +int +SteeringWheelAngleConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleConfidence_constr_1, &asn_PER_type_SteeringWheelAngleConfidence_constr_1, SteeringWheelAngleConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SteeringWheelAngleValue.c b/vcits/cpm/src/SteeringWheelAngleValue.c new file mode 100644 index 0000000..49982cf --- /dev/null +++ b/vcits/cpm/src/SteeringWheelAngleValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SteeringWheelAngleValue.h" + +int +SteeringWheelAngleValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -511 && value <= 512)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-511..512) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -511, 512 } /* (-511..512) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue = { + "SteeringWheelAngleValue", + "SteeringWheelAngleValue", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleValue_tags_1, + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleValue_constr_1, &asn_PER_type_SteeringWheelAngleValue_constr_1, SteeringWheelAngleValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/SubCauseCodeType.c b/vcits/cpm/src/SubCauseCodeType.c new file mode 100644 index 0000000..b6afa5c --- /dev/null +++ b/vcits/cpm/src/SubCauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "SubCauseCodeType.h" + +int +SubCauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SubCauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType = { + "SubCauseCodeType", + "SubCauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_SubCauseCodeType_tags_1, + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_SubCauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_SubCauseCodeType_constr_1, &asn_PER_type_SubCauseCodeType_constr_1, SubCauseCodeType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Temperature.c b/vcits/cpm/src/Temperature.c new file mode 100644 index 0000000..78f1d82 --- /dev/null +++ b/vcits/cpm/src/Temperature.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Temperature.h" + +int +Temperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -60 && value <= 67)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Temperature_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-60..67) */, + -1}; +static asn_per_constraints_t asn_PER_type_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 67 } /* (-60..67) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_Temperature_tags_1, + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + asn_DEF_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + { &asn_OER_type_Temperature_constr_1, &asn_PER_type_Temperature_constr_1, Temperature_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/TemporaryID.c b/vcits/cpm/src/TemporaryID.c new file mode 100644 index 0000000..85d931c --- /dev/null +++ b/vcits/cpm/src/TemporaryID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TemporaryID.h" + +int +TemporaryID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TemporaryID_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +asn_per_constraints_t asn_PER_type_TemporaryID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TemporaryID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TemporaryID = { + "TemporaryID", + "TemporaryID", + &asn_OP_OCTET_STRING, + asn_DEF_TemporaryID_tags_1, + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + asn_DEF_TemporaryID_tags_1, /* Same as above */ + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + { &asn_OER_type_TemporaryID_constr_1, &asn_PER_type_TemporaryID_constr_1, TemporaryID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/ThrottleConfidence.c b/vcits/cpm/src/ThrottleConfidence.c new file mode 100644 index 0000000..37b0c03 --- /dev/null +++ b/vcits/cpm/src/ThrottleConfidence.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ThrottleConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ThrottleConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 13, "prec10percent" }, + { 2, 12, "prec1percent" }, + { 3, 14, "prec0-5percent" } +}; +static const unsigned int asn_MAP_ThrottleConfidence_enum2value_1[] = { + 3, /* prec0-5percent(3) */ + 1, /* prec10percent(1) */ + 2, /* prec1percent(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1 = { + asn_MAP_ThrottleConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ThrottleConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence = { + "ThrottleConfidence", + "ThrottleConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ThrottleConfidence_tags_1, + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_ThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ThrottleConfidence_constr_1, &asn_PER_type_ThrottleConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/TimeChangeDetails.c b/vcits/cpm/src/TimeChangeDetails.c new file mode 100644 index 0000000..1922895 --- /dev/null +++ b/vcits/cpm/src/TimeChangeDetails.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TimeChangeDetails.h" + +asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[] = { + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct TimeChangeDetails, minEndTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minEndTime" + }, + { ATF_POINTER, 4, offsetof(struct TimeChangeDetails, maxEndTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxEndTime" + }, + { ATF_POINTER, 3, offsetof(struct TimeChangeDetails, likelyTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "likelyTime" + }, + { ATF_POINTER, 2, offsetof(struct TimeChangeDetails, confidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeIntervalConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, nextTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextTime" + }, +}; +static const int asn_MAP_TimeChangeDetails_oms_1[] = { 0, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_TimeChangeDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TimeChangeDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* likelyTime */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* nextTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1 = { + sizeof(struct TimeChangeDetails), + offsetof(struct TimeChangeDetails, _asn_ctx), + asn_MAP_TimeChangeDetails_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_TimeChangeDetails_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails = { + "TimeChangeDetails", + "TimeChangeDetails", + &asn_OP_SEQUENCE, + asn_DEF_TimeChangeDetails_tags_1, + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + asn_DEF_TimeChangeDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TimeChangeDetails_1, + 6, /* Elements count */ + &asn_SPC_TimeChangeDetails_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/TimeConfidence.c b/vcits/cpm/src/TimeConfidence.c new file mode 100644 index 0000000..d8dcd8e --- /dev/null +++ b/vcits/cpm/src/TimeConfidence.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TimeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TimeConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 12, "time-100-000" }, + { 2, 12, "time-050-000" }, + { 3, 12, "time-020-000" }, + { 4, 12, "time-010-000" }, + { 5, 12, "time-002-000" }, + { 6, 12, "time-001-000" }, + { 7, 12, "time-000-500" }, + { 8, 12, "time-000-200" }, + { 9, 12, "time-000-100" }, + { 10, 12, "time-000-050" }, + { 11, 12, "time-000-020" }, + { 12, 12, "time-000-010" }, + { 13, 12, "time-000-005" }, + { 14, 12, "time-000-002" }, + { 15, 12, "time-000-001" }, + { 16, 14, "time-000-000-5" }, + { 17, 14, "time-000-000-2" }, + { 18, 14, "time-000-000-1" }, + { 19, 15, "time-000-000-05" }, + { 20, 15, "time-000-000-02" }, + { 21, 15, "time-000-000-01" }, + { 22, 16, "time-000-000-005" }, + { 23, 16, "time-000-000-002" }, + { 24, 16, "time-000-000-001" }, + { 25, 18, "time-000-000-000-5" }, + { 26, 18, "time-000-000-000-2" }, + { 27, 18, "time-000-000-000-1" }, + { 28, 19, "time-000-000-000-05" }, + { 29, 19, "time-000-000-000-02" }, + { 30, 19, "time-000-000-000-01" }, + { 31, 20, "time-000-000-000-005" }, + { 32, 20, "time-000-000-000-002" }, + { 33, 20, "time-000-000-000-001" }, + { 34, 22, "time-000-000-000-000-5" }, + { 35, 22, "time-000-000-000-000-2" }, + { 36, 22, "time-000-000-000-000-1" }, + { 37, 23, "time-000-000-000-000-05" }, + { 38, 23, "time-000-000-000-000-02" }, + { 39, 23, "time-000-000-000-000-01" } +}; +static const unsigned int asn_MAP_TimeConfidence_enum2value_1[] = { + 39, /* time-000-000-000-000-01(39) */ + 38, /* time-000-000-000-000-02(38) */ + 37, /* time-000-000-000-000-05(37) */ + 36, /* time-000-000-000-000-1(36) */ + 35, /* time-000-000-000-000-2(35) */ + 34, /* time-000-000-000-000-5(34) */ + 33, /* time-000-000-000-001(33) */ + 32, /* time-000-000-000-002(32) */ + 31, /* time-000-000-000-005(31) */ + 30, /* time-000-000-000-01(30) */ + 29, /* time-000-000-000-02(29) */ + 28, /* time-000-000-000-05(28) */ + 27, /* time-000-000-000-1(27) */ + 26, /* time-000-000-000-2(26) */ + 25, /* time-000-000-000-5(25) */ + 24, /* time-000-000-001(24) */ + 23, /* time-000-000-002(23) */ + 22, /* time-000-000-005(22) */ + 21, /* time-000-000-01(21) */ + 20, /* time-000-000-02(20) */ + 19, /* time-000-000-05(19) */ + 18, /* time-000-000-1(18) */ + 17, /* time-000-000-2(17) */ + 16, /* time-000-000-5(16) */ + 15, /* time-000-001(15) */ + 14, /* time-000-002(14) */ + 13, /* time-000-005(13) */ + 12, /* time-000-010(12) */ + 11, /* time-000-020(11) */ + 10, /* time-000-050(10) */ + 9, /* time-000-100(9) */ + 8, /* time-000-200(8) */ + 7, /* time-000-500(7) */ + 6, /* time-001-000(6) */ + 5, /* time-002-000(5) */ + 4, /* time-010-000(4) */ + 3, /* time-020-000(3) */ + 2, /* time-050-000(2) */ + 1, /* time-100-000(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1 = { + asn_MAP_TimeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TimeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 40, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TimeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeConfidence = { + "TimeConfidence", + "TimeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_TimeConfidence_tags_1, + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeConfidence_constr_1, &asn_PER_type_TimeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TimeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/TimeIntervalConfidence.c b/vcits/cpm/src/TimeIntervalConfidence.c new file mode 100644 index 0000000..0952d0f --- /dev/null +++ b/vcits/cpm/src/TimeIntervalConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TimeIntervalConfidence.h" + +int +TimeIntervalConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeIntervalConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence = { + "TimeIntervalConfidence", + "TimeIntervalConfidence", + &asn_OP_NativeInteger, + asn_DEF_TimeIntervalConfidence_tags_1, + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeIntervalConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeIntervalConfidence_constr_1, &asn_PER_type_TimeIntervalConfidence_constr_1, TimeIntervalConfidence_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/TimeMark.c b/vcits/cpm/src/TimeMark.c new file mode 100644 index 0000000..1133607 --- /dev/null +++ b/vcits/cpm/src/TimeMark.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TimeMark.h" + +int +TimeMark_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 36001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeMark_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..36001) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeMark_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 36001 } /* (0..36001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeMark_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeMark = { + "TimeMark", + "TimeMark", + &asn_OP_NativeInteger, + asn_DEF_TimeMark_tags_1, + sizeof(asn_DEF_TimeMark_tags_1) + /sizeof(asn_DEF_TimeMark_tags_1[0]), /* 1 */ + asn_DEF_TimeMark_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeMark_tags_1) + /sizeof(asn_DEF_TimeMark_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeMark_constr_1, &asn_PER_type_TimeMark_constr_1, TimeMark_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/TimeOfMeasurement.c b/vcits/cpm/src/TimeOfMeasurement.c new file mode 100644 index 0000000..8716607 --- /dev/null +++ b/vcits/cpm/src/TimeOfMeasurement.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TimeOfMeasurement.h" + +int +TimeOfMeasurement_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1500 && value <= 1500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeOfMeasurement_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1500..1500) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeOfMeasurement_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -1500, 1500 } /* (-1500..1500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeOfMeasurement_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeOfMeasurement = { + "TimeOfMeasurement", + "TimeOfMeasurement", + &asn_OP_NativeInteger, + asn_DEF_TimeOfMeasurement_tags_1, + sizeof(asn_DEF_TimeOfMeasurement_tags_1) + /sizeof(asn_DEF_TimeOfMeasurement_tags_1[0]), /* 1 */ + asn_DEF_TimeOfMeasurement_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeOfMeasurement_tags_1) + /sizeof(asn_DEF_TimeOfMeasurement_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeOfMeasurement_constr_1, &asn_PER_type_TimeOfMeasurement_constr_1, TimeOfMeasurement_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/TimeReference.c b/vcits/cpm/src/TimeReference.c new file mode 100644 index 0000000..6af5d08 --- /dev/null +++ b/vcits/cpm/src/TimeReference.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TimeReference.h" + +int +TimeReference_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 60000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeReference_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..60000) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeReference_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 60000 } /* (0..60000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeReference = { + "TimeReference", + "TimeReference", + &asn_OP_NativeInteger, + asn_DEF_TimeReference_tags_1, + sizeof(asn_DEF_TimeReference_tags_1) + /sizeof(asn_DEF_TimeReference_tags_1[0]), /* 1 */ + asn_DEF_TimeReference_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeReference_tags_1) + /sizeof(asn_DEF_TimeReference_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeReference_constr_1, &asn_PER_type_TimeReference_constr_1, TimeReference_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/TimestampIts.c b/vcits/cpm/src/TimestampIts.c new file mode 100644 index 0000000..29431e3 --- /dev/null +++ b/vcits/cpm/src/TimestampIts.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TimestampIts.h" + +int +TimestampIts_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0 && value <= 4398046511103)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimestampIts_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..4398046511103) */, + -1}; +asn_per_constraints_t asn_PER_type_TimestampIts_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 42, -1, 0, 4398046511103 } /* (0..4398046511103) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimestampIts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimestampIts = { + "TimestampIts", + "TimestampIts", + &asn_OP_INTEGER, + asn_DEF_TimestampIts_tags_1, + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + asn_DEF_TimestampIts_tags_1, /* Same as above */ + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + { &asn_OER_type_TimestampIts_constr_1, &asn_PER_type_TimestampIts_constr_1, TimestampIts_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Traces.c b/vcits/cpm/src/Traces.c new file mode 100644 index 0000000..f7a3929 --- /dev/null +++ b/vcits/cpm/src/Traces.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Traces.h" + +#include "PathHistory.h" +static asn_oer_constraints_t asn_OER_type_Traces_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..7)) */}; +static asn_per_constraints_t asn_PER_type_Traces_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_Traces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathHistory, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Traces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Traces_specs_1 = { + sizeof(struct Traces), + offsetof(struct Traces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Traces = { + "Traces", + "Traces", + &asn_OP_SEQUENCE_OF, + asn_DEF_Traces_tags_1, + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + asn_DEF_Traces_tags_1, /* Same as above */ + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + { &asn_OER_type_Traces_constr_1, &asn_PER_type_Traces_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Traces_1, + 1, /* Single element */ + &asn_SPC_Traces_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/TrafficConditionSubCauseCode.c b/vcits/cpm/src/TrafficConditionSubCauseCode.c new file mode 100644 index 0000000..2f40b9b --- /dev/null +++ b/vcits/cpm/src/TrafficConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TrafficConditionSubCauseCode.h" + +int +TrafficConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TrafficConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode = { + "TrafficConditionSubCauseCode", + "TrafficConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_TrafficConditionSubCauseCode_tags_1, + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_TrafficConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficConditionSubCauseCode_constr_1, &asn_PER_type_TrafficConditionSubCauseCode_constr_1, TrafficConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/TrafficRule.c b/vcits/cpm/src/TrafficRule.c new file mode 100644 index 0000000..e212167 --- /dev/null +++ b/vcits/cpm/src/TrafficRule.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TrafficRule.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficRule_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TrafficRule_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TrafficRule_value2enum_1[] = { + { 0, 9, "noPassing" }, + { 1, 18, "noPassingForTrucks" }, + { 2, 11, "passToRight" }, + { 3, 10, "passToLeft" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TrafficRule_enum2value_1[] = { + 0, /* noPassing(0) */ + 1, /* noPassingForTrucks(1) */ + 3, /* passToLeft(3) */ + 2 /* passToRight(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_TrafficRule_specs_1 = { + asn_MAP_TrafficRule_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TrafficRule_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TrafficRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficRule = { + "TrafficRule", + "TrafficRule", + &asn_OP_NativeEnumerated, + asn_DEF_TrafficRule_tags_1, + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + asn_DEF_TrafficRule_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficRule_constr_1, &asn_PER_type_TrafficRule_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TrafficRule_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/TrailerData.c b/vcits/cpm/src/TrailerData.c new file mode 100644 index 0000000..b3ef753 --- /dev/null +++ b/vcits/cpm/src/TrailerData.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TrailerData.h" + +#include "CartesianAngle.h" +asn_TYPE_member_t asn_MBR_TrailerData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TrailerData, refPointId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RefPointId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPointId" + }, + { ATF_NOFLAGS, 0, offsetof(struct TrailerData, hitchPointOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HitchPointOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hitchPointOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct TrailerData, frontOverhang), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FrontOverhang, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frontOverhang" + }, + { ATF_NOFLAGS, 0, offsetof(struct TrailerData, rearOverhang), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RearOverhang, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rearOverhang" + }, + { ATF_POINTER, 2, offsetof(struct TrailerData, trailerWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trailerWidth" + }, + { ATF_POINTER, 1, offsetof(struct TrailerData, hitchAngle), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CartesianAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hitchAngle" + }, +}; +static const int asn_MAP_TrailerData_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_TrailerData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TrailerData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* refPointId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hitchPointOffset */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* frontOverhang */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rearOverhang */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* trailerWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* hitchAngle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TrailerData_specs_1 = { + sizeof(struct TrailerData), + offsetof(struct TrailerData, _asn_ctx), + asn_MAP_TrailerData_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_TrailerData_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TrailerData = { + "TrailerData", + "TrailerData", + &asn_OP_SEQUENCE, + asn_DEF_TrailerData_tags_1, + sizeof(asn_DEF_TrailerData_tags_1) + /sizeof(asn_DEF_TrailerData_tags_1[0]), /* 1 */ + asn_DEF_TrailerData_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerData_tags_1) + /sizeof(asn_DEF_TrailerData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TrailerData_1, + 6, /* Elements count */ + &asn_SPC_TrailerData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/TrailerDataContainer.c b/vcits/cpm/src/TrailerDataContainer.c new file mode 100644 index 0000000..4c3dfd8 --- /dev/null +++ b/vcits/cpm/src/TrailerDataContainer.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TrailerDataContainer.h" + +#include "TrailerData.h" +static asn_oer_constraints_t asn_OER_type_TrailerDataContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2)) */}; +asn_per_constraints_t asn_PER_type_TrailerDataContainer_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 1, 1, 1, 2 } /* (SIZE(1..2)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_TrailerDataContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TrailerData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_TrailerDataContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_TrailerDataContainer_specs_1 = { + sizeof(struct TrailerDataContainer), + offsetof(struct TrailerDataContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_TrailerDataContainer = { + "TrailerDataContainer", + "TrailerDataContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_TrailerDataContainer_tags_1, + sizeof(asn_DEF_TrailerDataContainer_tags_1) + /sizeof(asn_DEF_TrailerDataContainer_tags_1[0]), /* 1 */ + asn_DEF_TrailerDataContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerDataContainer_tags_1) + /sizeof(asn_DEF_TrailerDataContainer_tags_1[0]), /* 1 */ + { &asn_OER_type_TrailerDataContainer_constr_1, &asn_PER_type_TrailerDataContainer_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_TrailerDataContainer_1, + 1, /* Single element */ + &asn_SPC_TrailerDataContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/TransitVehicleOccupancy.c b/vcits/cpm/src/TransitVehicleOccupancy.c new file mode 100644 index 0000000..6f65f03 --- /dev/null +++ b/vcits/cpm/src/TransitVehicleOccupancy.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TransitVehicleOccupancy.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransitVehicleOccupancy_value2enum_1[] = { + { 0, 16, "occupancyUnknown" }, + { 1, 14, "occupancyEmpty" }, + { 2, 16, "occupancyVeryLow" }, + { 3, 12, "occupancyLow" }, + { 4, 12, "occupancyMed" }, + { 5, 13, "occupancyHigh" }, + { 6, 19, "occupancyNearlyFull" }, + { 7, 13, "occupancyFull" } +}; +static const unsigned int asn_MAP_TransitVehicleOccupancy_enum2value_1[] = { + 1, /* occupancyEmpty(1) */ + 7, /* occupancyFull(7) */ + 5, /* occupancyHigh(5) */ + 3, /* occupancyLow(3) */ + 4, /* occupancyMed(4) */ + 6, /* occupancyNearlyFull(6) */ + 0, /* occupancyUnknown(0) */ + 2 /* occupancyVeryLow(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1 = { + asn_MAP_TransitVehicleOccupancy_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransitVehicleOccupancy_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleOccupancy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy = { + "TransitVehicleOccupancy", + "TransitVehicleOccupancy", + &asn_OP_NativeEnumerated, + asn_DEF_TransitVehicleOccupancy_tags_1, + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleOccupancy_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + { &asn_OER_type_TransitVehicleOccupancy_constr_1, &asn_PER_type_TransitVehicleOccupancy_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransitVehicleOccupancy_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/TransitVehicleStatus.c b/vcits/cpm/src/TransitVehicleStatus.c new file mode 100644 index 0000000..ef7f0f3 --- /dev/null +++ b/vcits/cpm/src/TransitVehicleStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TransitVehicleStatus.h" + +int +TransitVehicleStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus = { + "TransitVehicleStatus", + "TransitVehicleStatus", + &asn_OP_BIT_STRING, + asn_DEF_TransitVehicleStatus_tags_1, + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_TransitVehicleStatus_constr_1, &asn_PER_type_TransitVehicleStatus_constr_1, TransitVehicleStatus_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/cpm/src/TransmissionAndSpeed.c b/vcits/cpm/src/TransmissionAndSpeed.c new file mode 100644 index 0000000..e8824f7 --- /dev/null +++ b/vcits/cpm/src/TransmissionAndSpeed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TransmissionAndSpeed.h" + +asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, transmisson), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transmisson" + }, + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_TransmissionAndSpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TransmissionAndSpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transmisson */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1 = { + sizeof(struct TransmissionAndSpeed), + offsetof(struct TransmissionAndSpeed, _asn_ctx), + asn_MAP_TransmissionAndSpeed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed = { + "TransmissionAndSpeed", + "TransmissionAndSpeed", + &asn_OP_SEQUENCE, + asn_DEF_TransmissionAndSpeed_tags_1, + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + asn_DEF_TransmissionAndSpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TransmissionAndSpeed_1, + 2, /* Elements count */ + &asn_SPC_TransmissionAndSpeed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/TransmissionInterval.c b/vcits/cpm/src/TransmissionInterval.c new file mode 100644 index 0000000..630be29 --- /dev/null +++ b/vcits/cpm/src/TransmissionInterval.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TransmissionInterval.h" + +int +TransmissionInterval_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..10000) */, + -1}; +static asn_per_constraints_t asn_PER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 10000 } /* (1..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransmissionInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionInterval = { + "TransmissionInterval", + "TransmissionInterval", + &asn_OP_NativeInteger, + asn_DEF_TransmissionInterval_tags_1, + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + asn_DEF_TransmissionInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionInterval_constr_1, &asn_PER_type_TransmissionInterval_constr_1, TransmissionInterval_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/TransmissionState.c b/vcits/cpm/src/TransmissionState.c new file mode 100644 index 0000000..196fd46 --- /dev/null +++ b/vcits/cpm/src/TransmissionState.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TransmissionState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransmissionState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransmissionState_value2enum_1[] = { + { 0, 7, "neutral" }, + { 1, 4, "park" }, + { 2, 12, "forwardGears" }, + { 3, 12, "reverseGears" }, + { 4, 9, "reserved1" }, + { 5, 9, "reserved2" }, + { 6, 9, "reserved3" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_TransmissionState_enum2value_1[] = { + 2, /* forwardGears(2) */ + 0, /* neutral(0) */ + 1, /* park(1) */ + 4, /* reserved1(4) */ + 5, /* reserved2(5) */ + 6, /* reserved3(6) */ + 3, /* reverseGears(3) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1 = { + asn_MAP_TransmissionState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransmissionState_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransmissionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionState = { + "TransmissionState", + "TransmissionState", + &asn_OP_NativeEnumerated, + asn_DEF_TransmissionState_tags_1, + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + asn_DEF_TransmissionState_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionState_constr_1, &asn_PER_type_TransmissionState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransmissionState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/TurningRadius.c b/vcits/cpm/src/TurningRadius.c new file mode 100644 index 0000000..f63d377 --- /dev/null +++ b/vcits/cpm/src/TurningRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "TurningRadius.h" + +int +TurningRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TurningRadius_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TurningRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TurningRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TurningRadius = { + "TurningRadius", + "TurningRadius", + &asn_OP_NativeInteger, + asn_DEF_TurningRadius_tags_1, + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + asn_DEF_TurningRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_TurningRadius_constr_1, &asn_PER_type_TurningRadius_constr_1, TurningRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/VDS.c b/vcits/cpm/src/VDS.c new file mode 100644 index 0000000..6cca868 --- /dev/null +++ b/vcits/cpm/src/VDS.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VDS.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +VDS_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 6) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VDS_constr_1 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +asn_per_constraints_t asn_PER_type_VDS_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_VDS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VDS = { + "VDS", + "VDS", + &asn_OP_IA5String, + asn_DEF_VDS_tags_1, + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + asn_DEF_VDS_tags_1, /* Same as above */ + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + { &asn_OER_type_VDS_constr_1, &asn_PER_type_VDS_constr_1, VDS_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ValidityDuration.c b/vcits/cpm/src/ValidityDuration.c new file mode 100644 index 0000000..e6b0e86 --- /dev/null +++ b/vcits/cpm/src/ValidityDuration.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ValidityDuration.h" + +int +ValidityDuration_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 86400)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..86400) */, + -1}; +static asn_per_constraints_t asn_PER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 0, 86400 } /* (0..86400) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ValidityDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ValidityDuration = { + "ValidityDuration", + "ValidityDuration", + &asn_OP_NativeInteger, + asn_DEF_ValidityDuration_tags_1, + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + asn_DEF_ValidityDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + { &asn_OER_type_ValidityDuration_constr_1, &asn_PER_type_ValidityDuration_constr_1, ValidityDuration_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/VehicleBreakdownSubCauseCode.c b/vcits/cpm/src/VehicleBreakdownSubCauseCode.c new file mode 100644 index 0000000..bb55c94 --- /dev/null +++ b/vcits/cpm/src/VehicleBreakdownSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleBreakdownSubCauseCode.h" + +int +VehicleBreakdownSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleBreakdownSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode = { + "VehicleBreakdownSubCauseCode", + "VehicleBreakdownSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleBreakdownSubCauseCode_constr_1, &asn_PER_type_VehicleBreakdownSubCauseCode_constr_1, VehicleBreakdownSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/VehicleHeight.c b/vcits/cpm/src/VehicleHeight.c new file mode 100644 index 0000000..11bc695 --- /dev/null +++ b/vcits/cpm/src/VehicleHeight.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleHeight.h" + +int +VehicleHeight_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleHeight = { + "VehicleHeight", + "VehicleHeight", + &asn_OP_NativeInteger, + asn_DEF_VehicleHeight_tags_1, + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + asn_DEF_VehicleHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleHeight_constr_1, &asn_PER_type_VehicleHeight_constr_1, VehicleHeight_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/VehicleID.c b/vcits/cpm/src/VehicleID.c new file mode 100644 index 0000000..4865b32 --- /dev/null +++ b/vcits/cpm/src/VehicleID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleID.h" + +static asn_oer_constraints_t asn_OER_type_VehicleID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_VehicleID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.entityID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TemporaryID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "entityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.stationID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* entityID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* stationID */ +}; +asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1 = { + sizeof(struct VehicleID), + offsetof(struct VehicleID, _asn_ctx), + offsetof(struct VehicleID, present), + sizeof(((struct VehicleID *)0)->present), + asn_MAP_VehicleID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleID = { + "VehicleID", + "VehicleID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_VehicleID_constr_1, &asn_PER_type_VehicleID_constr_1, CHOICE_constraint }, + asn_MBR_VehicleID_1, + 2, /* Elements count */ + &asn_SPC_VehicleID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/VehicleIdentification.c b/vcits/cpm/src/VehicleIdentification.c new file mode 100644 index 0000000..b35c739 --- /dev/null +++ b/vcits/cpm/src/VehicleIdentification.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleIdentification.h" + +static asn_TYPE_member_t asn_MBR_VehicleIdentification_1[] = { + { ATF_POINTER, 2, offsetof(struct VehicleIdentification, wMInumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WMInumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wMInumber" + }, + { ATF_POINTER, 1, offsetof(struct VehicleIdentification, vDS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VDS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vDS" + }, +}; +static const int asn_MAP_VehicleIdentification_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_VehicleIdentification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleIdentification_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wMInumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vDS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleIdentification_specs_1 = { + sizeof(struct VehicleIdentification), + offsetof(struct VehicleIdentification, _asn_ctx), + asn_MAP_VehicleIdentification_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_VehicleIdentification_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleIdentification = { + "VehicleIdentification", + "VehicleIdentification", + &asn_OP_SEQUENCE, + asn_DEF_VehicleIdentification_tags_1, + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + asn_DEF_VehicleIdentification_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleIdentification_1, + 2, /* Elements count */ + &asn_SPC_VehicleIdentification_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/VehicleLength.c b/vcits/cpm/src/VehicleLength.c new file mode 100644 index 0000000..fb9ba11 --- /dev/null +++ b/vcits/cpm/src/VehicleLength.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleLength.h" + +asn_TYPE_member_t asn_MBR_VehicleLength_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthConfidenceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthConfidenceIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthConfidenceIndication" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleLength_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vehicleLengthConfidenceIndication */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleLength_specs_1 = { + sizeof(struct VehicleLength), + offsetof(struct VehicleLength, _asn_ctx), + asn_MAP_VehicleLength_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_SEQUENCE, + asn_DEF_VehicleLength_tags_1, + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleLength_1, + 2, /* Elements count */ + &asn_SPC_VehicleLength_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/VehicleLengthConfidenceIndication.c b/vcits/cpm/src/VehicleLengthConfidenceIndication.c new file mode 100644 index 0000000..63f4d8c --- /dev/null +++ b/vcits/cpm/src/VehicleLengthConfidenceIndication.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleLengthConfidenceIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleLengthConfidenceIndication_value2enum_1[] = { + { 0, 16, "noTrailerPresent" }, + { 1, 29, "trailerPresentWithKnownLength" }, + { 2, 31, "trailerPresentWithUnknownLength" }, + { 3, 24, "trailerPresenceIsUnknown" }, + { 4, 11, "unavailable" } +}; +static const unsigned int asn_MAP_VehicleLengthConfidenceIndication_enum2value_1[] = { + 0, /* noTrailerPresent(0) */ + 3, /* trailerPresenceIsUnknown(3) */ + 1, /* trailerPresentWithKnownLength(1) */ + 2, /* trailerPresentWithUnknownLength(2) */ + 4 /* unavailable(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1 = { + asn_MAP_VehicleLengthConfidenceIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleLengthConfidenceIndication_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthConfidenceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication = { + "VehicleLengthConfidenceIndication", + "VehicleLengthConfidenceIndication", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleLengthConfidenceIndication_tags_1, + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthConfidenceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthConfidenceIndication_constr_1, &asn_PER_type_VehicleLengthConfidenceIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleLengthConfidenceIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/VehicleLengthValue.c b/vcits/cpm/src/VehicleLengthValue.c new file mode 100644 index 0000000..1e9a24c --- /dev/null +++ b/vcits/cpm/src/VehicleLengthValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleLengthValue.h" + +int +VehicleLengthValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (1..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue = { + "VehicleLengthValue", + "VehicleLengthValue", + &asn_OP_NativeInteger, + asn_DEF_VehicleLengthValue_tags_1, + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthValue_constr_1, &asn_PER_type_VehicleLengthValue_constr_1, VehicleLengthValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/VehicleMass.c b/vcits/cpm/src/VehicleMass.c new file mode 100644 index 0000000..8dbb870 --- /dev/null +++ b/vcits/cpm/src/VehicleMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleMass.h" + +int +VehicleMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1024)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleMass_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1024) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_VehicleMass_tags_1, + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleMass_constr_1, &asn_PER_type_VehicleMass_constr_1, VehicleMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/VehicleRole.c b/vcits/cpm/src/VehicleRole.c new file mode 100644 index 0000000..07906f1 --- /dev/null +++ b/vcits/cpm/src/VehicleRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleRole_value2enum_1[] = { + { 0, 7, "default" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 6, "rescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 11, "agriculture" }, + { 9, 10, "commercial" }, + { 10, 8, "military" }, + { 11, 12, "roadOperator" }, + { 12, 4, "taxi" }, + { 13, 9, "reserved1" }, + { 14, 9, "reserved2" }, + { 15, 9, "reserved3" } +}; +static const unsigned int asn_MAP_VehicleRole_enum2value_1[] = { + 8, /* agriculture(8) */ + 9, /* commercial(9) */ + 3, /* dangerousGoods(3) */ + 0, /* default(0) */ + 6, /* emergency(6) */ + 10, /* military(10) */ + 1, /* publicTransport(1) */ + 5, /* rescue(5) */ + 13, /* reserved1(13) */ + 14, /* reserved2(14) */ + 15, /* reserved3(15) */ + 11, /* roadOperator(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 2, /* specialTransport(2) */ + 12 /* taxi(12) */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleRole_specs_1 = { + asn_MAP_VehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleRole = { + "VehicleRole", + "VehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleRole_tags_1, + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + asn_DEF_VehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleRole_constr_1, &asn_PER_type_VehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/VehicleSensor.c b/vcits/cpm/src/VehicleSensor.c new file mode 100644 index 0000000..24c95f0 --- /dev/null +++ b/vcits/cpm/src/VehicleSensor.c @@ -0,0 +1,115 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleSensor.h" + +static int asn_DFL_2_cmp_0(const void *sptr) { + const RefPointId_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_2_set_0(void **sptr) { + RefPointId_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +asn_TYPE_member_t asn_MBR_VehicleSensor_1[] = { + { ATF_NOFLAGS, 1, offsetof(struct VehicleSensor, refPointId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RefPointId, + 0, + { 0, 0, 0 }, + &asn_DFL_2_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_2_set_0, /* Set DEFAULT 0 */ + "refPointId" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleSensor, xSensorOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_XSensorOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "xSensorOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleSensor, ySensorOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YSensorOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ySensorOffset" + }, + { ATF_POINTER, 1, offsetof(struct VehicleSensor, zSensorOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZSensorOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zSensorOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleSensor, vehicleSensorPropertyList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleSensorPropertyList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleSensorPropertyList" + }, +}; +static const int asn_MAP_VehicleSensor_oms_1[] = { 0, 3 }; +static const ber_tlv_tag_t asn_DEF_VehicleSensor_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleSensor_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* refPointId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* xSensorOffset */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ySensorOffset */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* zSensorOffset */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* vehicleSensorPropertyList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleSensor_specs_1 = { + sizeof(struct VehicleSensor), + offsetof(struct VehicleSensor, _asn_ctx), + asn_MAP_VehicleSensor_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_VehicleSensor_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleSensor = { + "VehicleSensor", + "VehicleSensor", + &asn_OP_SEQUENCE, + asn_DEF_VehicleSensor_tags_1, + sizeof(asn_DEF_VehicleSensor_tags_1) + /sizeof(asn_DEF_VehicleSensor_tags_1[0]), /* 1 */ + asn_DEF_VehicleSensor_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleSensor_tags_1) + /sizeof(asn_DEF_VehicleSensor_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleSensor_1, + 5, /* Elements count */ + &asn_SPC_VehicleSensor_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/VehicleSensorProperties.c b/vcits/cpm/src/VehicleSensorProperties.c new file mode 100644 index 0000000..05470ad --- /dev/null +++ b/vcits/cpm/src/VehicleSensorProperties.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleSensorProperties.h" + +asn_TYPE_member_t asn_MBR_VehicleSensorProperties_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleSensorProperties, range), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "range" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleSensorProperties, horizontalOpeningAngleStart), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CartesianAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "horizontalOpeningAngleStart" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleSensorProperties, horizontalOpeningAngleEnd), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CartesianAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "horizontalOpeningAngleEnd" + }, + { ATF_POINTER, 2, offsetof(struct VehicleSensorProperties, verticalOpeningAngleStart), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CartesianAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalOpeningAngleStart" + }, + { ATF_POINTER, 1, offsetof(struct VehicleSensorProperties, verticalOpeningAngleEnd), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CartesianAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalOpeningAngleEnd" + }, +}; +static const int asn_MAP_VehicleSensorProperties_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_VehicleSensorProperties_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleSensorProperties_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* range */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* horizontalOpeningAngleStart */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* horizontalOpeningAngleEnd */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* verticalOpeningAngleStart */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* verticalOpeningAngleEnd */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleSensorProperties_specs_1 = { + sizeof(struct VehicleSensorProperties), + offsetof(struct VehicleSensorProperties, _asn_ctx), + asn_MAP_VehicleSensorProperties_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_VehicleSensorProperties_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleSensorProperties = { + "VehicleSensorProperties", + "VehicleSensorProperties", + &asn_OP_SEQUENCE, + asn_DEF_VehicleSensorProperties_tags_1, + sizeof(asn_DEF_VehicleSensorProperties_tags_1) + /sizeof(asn_DEF_VehicleSensorProperties_tags_1[0]), /* 1 */ + asn_DEF_VehicleSensorProperties_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleSensorProperties_tags_1) + /sizeof(asn_DEF_VehicleSensorProperties_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleSensorProperties_1, + 5, /* Elements count */ + &asn_SPC_VehicleSensorProperties_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/VehicleSensorPropertyList.c b/vcits/cpm/src/VehicleSensorPropertyList.c new file mode 100644 index 0000000..eea92e1 --- /dev/null +++ b/vcits/cpm/src/VehicleSensorPropertyList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleSensorPropertyList.h" + +#include "VehicleSensorProperties.h" +static asn_oer_constraints_t asn_OER_type_VehicleSensorPropertyList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +asn_per_constraints_t asn_PER_type_VehicleSensorPropertyList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_VehicleSensorPropertyList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_VehicleSensorProperties, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleSensorPropertyList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_VehicleSensorPropertyList_specs_1 = { + sizeof(struct VehicleSensorPropertyList), + offsetof(struct VehicleSensorPropertyList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleSensorPropertyList = { + "VehicleSensorPropertyList", + "VehicleSensorPropertyList", + &asn_OP_SEQUENCE_OF, + asn_DEF_VehicleSensorPropertyList_tags_1, + sizeof(asn_DEF_VehicleSensorPropertyList_tags_1) + /sizeof(asn_DEF_VehicleSensorPropertyList_tags_1[0]), /* 1 */ + asn_DEF_VehicleSensorPropertyList_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleSensorPropertyList_tags_1) + /sizeof(asn_DEF_VehicleSensorPropertyList_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleSensorPropertyList_constr_1, &asn_PER_type_VehicleSensorPropertyList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_VehicleSensorPropertyList_1, + 1, /* Single element */ + &asn_SPC_VehicleSensorPropertyList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/VehicleSubclass.c b/vcits/cpm/src/VehicleSubclass.c new file mode 100644 index 0000000..d506f7c --- /dev/null +++ b/vcits/cpm/src/VehicleSubclass.c @@ -0,0 +1,108 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleSubclass.h" + +static int asn_DFL_2_cmp_0(const void *sptr) { + const VehicleSubclassType_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_2_set_0(void **sptr) { + VehicleSubclassType_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +static int asn_DFL_3_cmp_0(const void *sptr) { + const ClassConfidence_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_3_set_0(void **sptr) { + ClassConfidence_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +asn_TYPE_member_t asn_MBR_VehicleSubclass_1[] = { + { ATF_NOFLAGS, 2, offsetof(struct VehicleSubclass, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleSubclassType, + 0, + { 0, 0, 0 }, + &asn_DFL_2_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_2_set_0, /* Set DEFAULT 0 */ + "type" + }, + { ATF_NOFLAGS, 1, offsetof(struct VehicleSubclass, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ClassConfidence, + 0, + { 0, 0, 0 }, + &asn_DFL_3_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_3_set_0, /* Set DEFAULT 0 */ + "confidence" + }, +}; +static const int asn_MAP_VehicleSubclass_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_VehicleSubclass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleSubclass_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleSubclass_specs_1 = { + sizeof(struct VehicleSubclass), + offsetof(struct VehicleSubclass, _asn_ctx), + asn_MAP_VehicleSubclass_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_VehicleSubclass_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleSubclass = { + "VehicleSubclass", + "VehicleSubclass", + &asn_OP_SEQUENCE, + asn_DEF_VehicleSubclass_tags_1, + sizeof(asn_DEF_VehicleSubclass_tags_1) + /sizeof(asn_DEF_VehicleSubclass_tags_1[0]), /* 1 */ + asn_DEF_VehicleSubclass_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleSubclass_tags_1) + /sizeof(asn_DEF_VehicleSubclass_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleSubclass_1, + 2, /* Elements count */ + &asn_SPC_VehicleSubclass_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/VehicleSubclassType.c b/vcits/cpm/src/VehicleSubclassType.c new file mode 100644 index 0000000..f41c82b --- /dev/null +++ b/vcits/cpm/src/VehicleSubclassType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleSubclassType.h" + +int +VehicleSubclassType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleSubclassType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleSubclassType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleSubclassType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleSubclassType = { + "VehicleSubclassType", + "VehicleSubclassType", + &asn_OP_NativeInteger, + asn_DEF_VehicleSubclassType_tags_1, + sizeof(asn_DEF_VehicleSubclassType_tags_1) + /sizeof(asn_DEF_VehicleSubclassType_tags_1[0]), /* 1 */ + asn_DEF_VehicleSubclassType_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleSubclassType_tags_1) + /sizeof(asn_DEF_VehicleSubclassType_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleSubclassType_constr_1, &asn_PER_type_VehicleSubclassType_constr_1, VehicleSubclassType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/VehicleType.c b/vcits/cpm/src/VehicleType.c new file mode 100644 index 0000000..4d0c676 --- /dev/null +++ b/vcits/cpm/src/VehicleType.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 7, "unknown" }, + { 2, 7, "special" }, + { 3, 4, "moto" }, + { 4, 3, "car" }, + { 5, 8, "carOther" }, + { 6, 3, "bus" }, + { 7, 8, "axleCnt2" }, + { 8, 8, "axleCnt3" }, + { 9, 8, "axleCnt4" }, + { 10, 15, "axleCnt4Trailer" }, + { 11, 15, "axleCnt5Trailer" }, + { 12, 15, "axleCnt6Trailer" }, + { 13, 20, "axleCnt5MultiTrailer" }, + { 14, 20, "axleCnt6MultiTrailer" }, + { 15, 20, "axleCnt7MultiTrailer" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_VehicleType_enum2value_1[] = { + 7, /* axleCnt2(7) */ + 8, /* axleCnt3(8) */ + 9, /* axleCnt4(9) */ + 10, /* axleCnt4Trailer(10) */ + 13, /* axleCnt5MultiTrailer(13) */ + 11, /* axleCnt5Trailer(11) */ + 14, /* axleCnt6MultiTrailer(14) */ + 12, /* axleCnt6Trailer(12) */ + 15, /* axleCnt7MultiTrailer(15) */ + 6, /* bus(6) */ + 4, /* car(4) */ + 5, /* carOther(5) */ + 3, /* moto(3) */ + 0, /* none(0) */ + 2, /* special(2) */ + 1 /* unknown(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1 = { + asn_MAP_VehicleType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleType_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 17, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleType = { + "VehicleType", + "VehicleType", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleType_tags_1, + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + asn_DEF_VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleType_constr_1, &asn_PER_type_VehicleType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/VehicleWidth.c b/vcits/cpm/src/VehicleWidth.c new file mode 100644 index 0000000..bd72f5f --- /dev/null +++ b/vcits/cpm/src/VehicleWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VehicleWidth.h" + +int +VehicleWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 62)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..62) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 62 } /* (1..62) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_VehicleWidth_tags_1, + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleWidth_constr_1, &asn_PER_type_VehicleWidth_constr_1, VehicleWidth_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/Velocity.c b/vcits/cpm/src/Velocity.c new file mode 100644 index 0000000..f3d2fe5 --- /dev/null +++ b/vcits/cpm/src/Velocity.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "Velocity.h" + +int +Velocity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 8191)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Velocity_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..8191) */, + -1}; +asn_per_constraints_t asn_PER_type_Velocity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 8191 } /* (0..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Velocity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Velocity = { + "Velocity", + "Velocity", + &asn_OP_NativeInteger, + asn_DEF_Velocity_tags_1, + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + asn_DEF_Velocity_tags_1, /* Same as above */ + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + { &asn_OER_type_Velocity_constr_1, &asn_PER_type_Velocity_constr_1, Velocity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/VerticalAcceleration.c b/vcits/cpm/src/VerticalAcceleration.c new file mode 100644 index 0000000..7a19eb4 --- /dev/null +++ b/vcits/cpm/src/VerticalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VerticalAcceleration.h" + +asn_TYPE_member_t asn_MBR_VerticalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VerticalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* verticalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* verticalAccelerationConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VerticalAcceleration_specs_1 = { + sizeof(struct VerticalAcceleration), + offsetof(struct VerticalAcceleration, _asn_ctx), + asn_MAP_VerticalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_VerticalAcceleration_tags_1, + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VerticalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_VerticalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/VerticalAccelerationValue.c b/vcits/cpm/src/VerticalAccelerationValue.c new file mode 100644 index 0000000..01d7bec --- /dev/null +++ b/vcits/cpm/src/VerticalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "VerticalAccelerationValue.h" + +int +VerticalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VerticalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue = { + "VerticalAccelerationValue", + "VerticalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_VerticalAccelerationValue_tags_1, + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_VerticalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VerticalAccelerationValue_constr_1, &asn_PER_type_VerticalAccelerationValue_constr_1, VerticalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/WGS84Angle.c b/vcits/cpm/src/WGS84Angle.c new file mode 100644 index 0000000..424b432 --- /dev/null +++ b/vcits/cpm/src/WGS84Angle.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "WGS84Angle.h" + +asn_TYPE_member_t asn_MBR_WGS84Angle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct WGS84Angle, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WGS84AngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct WGS84Angle, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AngleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_WGS84Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_WGS84Angle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_WGS84Angle_specs_1 = { + sizeof(struct WGS84Angle), + offsetof(struct WGS84Angle, _asn_ctx), + asn_MAP_WGS84Angle_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_WGS84Angle = { + "WGS84Angle", + "WGS84Angle", + &asn_OP_SEQUENCE, + asn_DEF_WGS84Angle_tags_1, + sizeof(asn_DEF_WGS84Angle_tags_1) + /sizeof(asn_DEF_WGS84Angle_tags_1[0]), /* 1 */ + asn_DEF_WGS84Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_WGS84Angle_tags_1) + /sizeof(asn_DEF_WGS84Angle_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_WGS84Angle_1, + 2, /* Elements count */ + &asn_SPC_WGS84Angle_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/WGS84AngleValue.c b/vcits/cpm/src/WGS84AngleValue.c new file mode 100644 index 0000000..97e399f --- /dev/null +++ b/vcits/cpm/src/WGS84AngleValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "WGS84AngleValue.h" + +int +WGS84AngleValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3601)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WGS84AngleValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3601) */, + -1}; +asn_per_constraints_t asn_PER_type_WGS84AngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WGS84AngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WGS84AngleValue = { + "WGS84AngleValue", + "WGS84AngleValue", + &asn_OP_NativeInteger, + asn_DEF_WGS84AngleValue_tags_1, + sizeof(asn_DEF_WGS84AngleValue_tags_1) + /sizeof(asn_DEF_WGS84AngleValue_tags_1[0]), /* 1 */ + asn_DEF_WGS84AngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_WGS84AngleValue_tags_1) + /sizeof(asn_DEF_WGS84AngleValue_tags_1[0]), /* 1 */ + { &asn_OER_type_WGS84AngleValue_constr_1, &asn_PER_type_WGS84AngleValue_constr_1, WGS84AngleValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/WMInumber.c b/vcits/cpm/src/WMInumber.c new file mode 100644 index 0000000..3396777 --- /dev/null +++ b/vcits/cpm/src/WMInumber.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "WMInumber.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +WMInumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 3) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WMInumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +asn_per_constraints_t asn_PER_type_WMInumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_WMInumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WMInumber = { + "WMInumber", + "WMInumber", + &asn_OP_IA5String, + asn_DEF_WMInumber_tags_1, + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + asn_DEF_WMInumber_tags_1, /* Same as above */ + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + { &asn_OER_type_WMInumber_constr_1, &asn_PER_type_WMInumber_constr_1, WMInumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/WaitOnStopline.c b/vcits/cpm/src/WaitOnStopline.c new file mode 100644 index 0000000..17a3203 --- /dev/null +++ b/vcits/cpm/src/WaitOnStopline.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "WaitOnStopline.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_WaitOnStopline_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WaitOnStopline = { + "WaitOnStopline", + "WaitOnStopline", + &asn_OP_BOOLEAN, + asn_DEF_WaitOnStopline_tags_1, + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + asn_DEF_WaitOnStopline_tags_1, /* Same as above */ + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/WheelBaseVehicle.c b/vcits/cpm/src/WheelBaseVehicle.c new file mode 100644 index 0000000..83f3970 --- /dev/null +++ b/vcits/cpm/src/WheelBaseVehicle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "WheelBaseVehicle.h" + +int +WheelBaseVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WheelBaseVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle = { + "WheelBaseVehicle", + "WheelBaseVehicle", + &asn_OP_NativeInteger, + asn_DEF_WheelBaseVehicle_tags_1, + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + asn_DEF_WheelBaseVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_WheelBaseVehicle_constr_1, &asn_PER_type_WheelBaseVehicle_constr_1, WheelBaseVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/WrongWayDrivingSubCauseCode.c b/vcits/cpm/src/WrongWayDrivingSubCauseCode.c new file mode 100644 index 0000000..d6013d4 --- /dev/null +++ b/vcits/cpm/src/WrongWayDrivingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "WrongWayDrivingSubCauseCode.h" + +int +WrongWayDrivingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WrongWayDrivingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode = { + "WrongWayDrivingSubCauseCode", + "WrongWayDrivingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_WrongWayDrivingSubCauseCode_constr_1, &asn_PER_type_WrongWayDrivingSubCauseCode_constr_1, WrongWayDrivingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/XSensorOffset.c b/vcits/cpm/src/XSensorOffset.c new file mode 100644 index 0000000..cd026d7 --- /dev/null +++ b/vcits/cpm/src/XSensorOffset.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "XSensorOffset.h" + +int +XSensorOffset_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -5000 && value <= 0)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_XSensorOffset_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-5000..0) */, + -1}; +asn_per_constraints_t asn_PER_type_XSensorOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, -5000, 0 } /* (-5000..0) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_XSensorOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_XSensorOffset = { + "XSensorOffset", + "XSensorOffset", + &asn_OP_NativeInteger, + asn_DEF_XSensorOffset_tags_1, + sizeof(asn_DEF_XSensorOffset_tags_1) + /sizeof(asn_DEF_XSensorOffset_tags_1[0]), /* 1 */ + asn_DEF_XSensorOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_XSensorOffset_tags_1) + /sizeof(asn_DEF_XSensorOffset_tags_1[0]), /* 1 */ + { &asn_OER_type_XSensorOffset_constr_1, &asn_PER_type_XSensorOffset_constr_1, XSensorOffset_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/YSensorOffset.c b/vcits/cpm/src/YSensorOffset.c new file mode 100644 index 0000000..17f6792 --- /dev/null +++ b/vcits/cpm/src/YSensorOffset.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "YSensorOffset.h" + +int +YSensorOffset_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1000 && value <= 1000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YSensorOffset_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1000..1000) */, + -1}; +asn_per_constraints_t asn_PER_type_YSensorOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1000, 1000 } /* (-1000..1000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_YSensorOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YSensorOffset = { + "YSensorOffset", + "YSensorOffset", + &asn_OP_NativeInteger, + asn_DEF_YSensorOffset_tags_1, + sizeof(asn_DEF_YSensorOffset_tags_1) + /sizeof(asn_DEF_YSensorOffset_tags_1[0]), /* 1 */ + asn_DEF_YSensorOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_YSensorOffset_tags_1) + /sizeof(asn_DEF_YSensorOffset_tags_1[0]), /* 1 */ + { &asn_OER_type_YSensorOffset_constr_1, &asn_PER_type_YSensorOffset_constr_1, YSensorOffset_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/YawRate.c b/vcits/cpm/src/YawRate.c new file mode 100644 index 0000000..c599d83 --- /dev/null +++ b/vcits/cpm/src/YawRate.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "YawRate.h" + +asn_TYPE_member_t asn_MBR_YawRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_YawRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yawRateValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* yawRateConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_YawRate_specs_1 = { + sizeof(struct YawRate), + offsetof(struct YawRate, _asn_ctx), + asn_MAP_YawRate_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_YawRate = { + "YawRate", + "YawRate", + &asn_OP_SEQUENCE, + asn_DEF_YawRate_tags_1, + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + asn_DEF_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_YawRate_1, + 2, /* Elements count */ + &asn_SPC_YawRate_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/YawRateConfidence.c b/vcits/cpm/src/YawRateConfidence.c new file mode 100644 index 0000000..07a68d7 --- /dev/null +++ b/vcits/cpm/src/YawRateConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "YawRateConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_YawRateConfidence_value2enum_1[] = { + { 0, 13, "degSec-000-01" }, + { 1, 13, "degSec-000-05" }, + { 2, 13, "degSec-000-10" }, + { 3, 13, "degSec-001-00" }, + { 4, 13, "degSec-005-00" }, + { 5, 13, "degSec-010-00" }, + { 6, 13, "degSec-100-00" }, + { 7, 10, "outOfRange" }, + { 8, 11, "unavailable" } +}; +static const unsigned int asn_MAP_YawRateConfidence_enum2value_1[] = { + 0, /* degSec-000-01(0) */ + 1, /* degSec-000-05(1) */ + 2, /* degSec-000-10(2) */ + 3, /* degSec-001-00(3) */ + 4, /* degSec-005-00(4) */ + 5, /* degSec-010-00(5) */ + 6, /* degSec-100-00(6) */ + 7, /* outOfRange(7) */ + 8 /* unavailable(8) */ +}; +const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1 = { + asn_MAP_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_YawRateConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 9, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_YawRateConfidence_tags_1, + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateConfidence_constr_1, &asn_PER_type_YawRateConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/cpm/src/YawRateValue.c b/vcits/cpm/src/YawRateValue.c new file mode 100644 index 0000000..a9051af --- /dev/null +++ b/vcits/cpm/src/YawRateValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "YawRateValue.h" + +int +YawRateValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32766 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32766..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_YawRateValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32766, 32767 } /* (-32766..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_YawRateValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateValue = { + "YawRateValue", + "YawRateValue", + &asn_OP_NativeInteger, + asn_DEF_YawRateValue_tags_1, + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + asn_DEF_YawRateValue_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateValue_constr_1, &asn_PER_type_YawRateValue_constr_1, YawRateValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ZSensorOffset.c b/vcits/cpm/src/ZSensorOffset.c new file mode 100644 index 0000000..01a1836 --- /dev/null +++ b/vcits/cpm/src/ZSensorOffset.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/experimental/CPM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ZSensorOffset.h" + +int +ZSensorOffset_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ZSensorOffset_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1000) */, + -1}; +asn_per_constraints_t asn_PER_type_ZSensorOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1000 } /* (0..1000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ZSensorOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ZSensorOffset = { + "ZSensorOffset", + "ZSensorOffset", + &asn_OP_NativeInteger, + asn_DEF_ZSensorOffset_tags_1, + sizeof(asn_DEF_ZSensorOffset_tags_1) + /sizeof(asn_DEF_ZSensorOffset_tags_1[0]), /* 1 */ + asn_DEF_ZSensorOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_ZSensorOffset_tags_1) + /sizeof(asn_DEF_ZSensorOffset_tags_1[0]), /* 1 */ + { &asn_OER_type_ZSensorOffset_constr_1, &asn_PER_type_ZSensorOffset_constr_1, ZSensorOffset_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/cpm/src/ZoneLength.c b/vcits/cpm/src/ZoneLength.c new file mode 100644 index 0000000..ac3e06a --- /dev/null +++ b/vcits/cpm/src/ZoneLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/cpm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=CPM` + */ + +#include "ZoneLength.h" + +int +ZoneLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ZoneLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..10000) */, + -1}; +asn_per_constraints_t asn_PER_type_ZoneLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10000 } /* (0..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ZoneLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ZoneLength = { + "ZoneLength", + "ZoneLength", + &asn_OP_NativeInteger, + asn_DEF_ZoneLength_tags_1, + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + asn_DEF_ZoneLength_tags_1, /* Same as above */ + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + { &asn_OER_type_ZoneLength_constr_1, &asn_PER_type_ZoneLength_constr_1, ZoneLength_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/AccelerationConfidence.h b/vcits/denm/AccelerationConfidence.h new file mode 100644 index 0000000..c5c4b6d --- /dev/null +++ b/vcits/denm/AccelerationConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _AccelerationConfidence_H_ +#define _AccelerationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationConfidence { + AccelerationConfidence_pointOneMeterPerSecSquared = 1, + AccelerationConfidence_outOfRange = 101, + AccelerationConfidence_unavailable = 102 +} e_AccelerationConfidence; + +/* AccelerationConfidence */ +typedef long AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence; +asn_struct_free_f AccelerationConfidence_free; +asn_struct_print_f AccelerationConfidence_print; +asn_constr_check_f AccelerationConfidence_constraint; +ber_type_decoder_f AccelerationConfidence_decode_ber; +der_type_encoder_f AccelerationConfidence_encode_der; +xer_type_decoder_f AccelerationConfidence_decode_xer; +xer_type_encoder_f AccelerationConfidence_encode_xer; +oer_type_decoder_f AccelerationConfidence_decode_oer; +oer_type_encoder_f AccelerationConfidence_encode_oer; +per_type_decoder_f AccelerationConfidence_decode_uper; +per_type_encoder_f AccelerationConfidence_encode_uper; +per_type_decoder_f AccelerationConfidence_decode_aper; +per_type_encoder_f AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationConfidence_H_ */ +#include diff --git a/vcits/denm/AccelerationControl.h b/vcits/denm/AccelerationControl.h new file mode 100644 index 0000000..173c336 --- /dev/null +++ b/vcits/denm/AccelerationControl.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _AccelerationControl_H_ +#define _AccelerationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationControl { + AccelerationControl_brakePedalEngaged = 0, + AccelerationControl_gasPedalEngaged = 1, + AccelerationControl_emergencyBrakeEngaged = 2, + AccelerationControl_collisionWarningEngaged = 3, + AccelerationControl_accEngaged = 4, + AccelerationControl_cruiseControlEngaged = 5, + AccelerationControl_speedLimiterEngaged = 6 +} e_AccelerationControl; + +/* AccelerationControl */ +typedef BIT_STRING_t AccelerationControl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccelerationControl; +asn_struct_free_f AccelerationControl_free; +asn_struct_print_f AccelerationControl_print; +asn_constr_check_f AccelerationControl_constraint; +ber_type_decoder_f AccelerationControl_decode_ber; +der_type_encoder_f AccelerationControl_encode_der; +xer_type_decoder_f AccelerationControl_decode_xer; +xer_type_encoder_f AccelerationControl_encode_xer; +oer_type_decoder_f AccelerationControl_decode_oer; +oer_type_encoder_f AccelerationControl_encode_oer; +per_type_decoder_f AccelerationControl_decode_uper; +per_type_encoder_f AccelerationControl_encode_uper; +per_type_decoder_f AccelerationControl_decode_aper; +per_type_encoder_f AccelerationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationControl_H_ */ +#include diff --git a/vcits/denm/AccidentSubCauseCode.h b/vcits/denm/AccidentSubCauseCode.h new file mode 100644 index 0000000..167e54c --- /dev/null +++ b/vcits/denm/AccidentSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _AccidentSubCauseCode_H_ +#define _AccidentSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccidentSubCauseCode { + AccidentSubCauseCode_unavailable = 0, + AccidentSubCauseCode_multiVehicleAccident = 1, + AccidentSubCauseCode_heavyAccident = 2, + AccidentSubCauseCode_accidentInvolvingLorry = 3, + AccidentSubCauseCode_accidentInvolvingBus = 4, + AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5, + AccidentSubCauseCode_accidentOnOppositeLane = 6, + AccidentSubCauseCode_unsecuredAccident = 7, + AccidentSubCauseCode_assistanceRequested = 8 +} e_AccidentSubCauseCode; + +/* AccidentSubCauseCode */ +typedef long AccidentSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode; +asn_struct_free_f AccidentSubCauseCode_free; +asn_struct_print_f AccidentSubCauseCode_print; +asn_constr_check_f AccidentSubCauseCode_constraint; +ber_type_decoder_f AccidentSubCauseCode_decode_ber; +der_type_encoder_f AccidentSubCauseCode_encode_der; +xer_type_decoder_f AccidentSubCauseCode_decode_xer; +xer_type_encoder_f AccidentSubCauseCode_encode_xer; +oer_type_decoder_f AccidentSubCauseCode_decode_oer; +oer_type_encoder_f AccidentSubCauseCode_encode_oer; +per_type_decoder_f AccidentSubCauseCode_decode_uper; +per_type_encoder_f AccidentSubCauseCode_encode_uper; +per_type_decoder_f AccidentSubCauseCode_decode_aper; +per_type_encoder_f AccidentSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccidentSubCauseCode_H_ */ +#include diff --git a/vcits/denm/ActionID.h b/vcits/denm/ActionID.h new file mode 100644 index 0000000..0913c13 --- /dev/null +++ b/vcits/denm/ActionID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ActionID_H_ +#define _ActionID_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "SequenceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ActionID */ +typedef struct ActionID { + StationID_t originatingStationID; + SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ActionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ActionID; +extern asn_SEQUENCE_specifics_t asn_SPC_ActionID_specs_1; +extern asn_TYPE_member_t asn_MBR_ActionID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ActionID_H_ */ +#include diff --git a/vcits/denm/AdverseWeatherCondition-AdhesionSubCauseCode.h b/vcits/denm/AdverseWeatherCondition-AdhesionSubCauseCode.h new file mode 100644 index 0000000..f5e23b1 --- /dev/null +++ b/vcits/denm/AdverseWeatherCondition-AdhesionSubCauseCode.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _AdverseWeatherCondition_AdhesionSubCauseCode_H_ +#define _AdverseWeatherCondition_AdhesionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_AdhesionSubCauseCode { + AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1, + AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2, + AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3, + AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4, + AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5, + AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6, + AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7, + AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8, + AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9, + AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10 +} e_AdverseWeatherCondition_AdhesionSubCauseCode; + +/* AdverseWeatherCondition-AdhesionSubCauseCode */ +typedef long AdverseWeatherCondition_AdhesionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_AdhesionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_AdhesionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_AdhesionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_AdhesionSubCauseCode_H_ */ +#include diff --git a/vcits/denm/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h b/vcits/denm/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 0000000..e8323d3 --- /dev/null +++ b/vcits/denm/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ +#define _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode { + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6 +} e_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; + +/* AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */ +typedef long AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */ +#include diff --git a/vcits/denm/AdverseWeatherCondition-PrecipitationSubCauseCode.h b/vcits/denm/AdverseWeatherCondition-PrecipitationSubCauseCode.h new file mode 100644 index 0000000..431dc21 --- /dev/null +++ b/vcits/denm/AdverseWeatherCondition-PrecipitationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ +#define _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_PrecipitationSubCauseCode { + AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2, + AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3 +} e_AdverseWeatherCondition_PrecipitationSubCauseCode; + +/* AdverseWeatherCondition-PrecipitationSubCauseCode */ +typedef long AdverseWeatherCondition_PrecipitationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_PrecipitationSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_PrecipitationSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_PrecipitationSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */ +#include diff --git a/vcits/denm/AdverseWeatherCondition-VisibilitySubCauseCode.h b/vcits/denm/AdverseWeatherCondition-VisibilitySubCauseCode.h new file mode 100644 index 0000000..57f8fdc --- /dev/null +++ b/vcits/denm/AdverseWeatherCondition-VisibilitySubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _AdverseWeatherCondition_VisibilitySubCauseCode_H_ +#define _AdverseWeatherCondition_VisibilitySubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_VisibilitySubCauseCode { + AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0, + AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1, + AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2, + AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5, + AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6, + AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7, + AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8 +} e_AdverseWeatherCondition_VisibilitySubCauseCode; + +/* AdverseWeatherCondition-VisibilitySubCauseCode */ +typedef long AdverseWeatherCondition_VisibilitySubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode; +asn_struct_free_f AdverseWeatherCondition_VisibilitySubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_VisibilitySubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_VisibilitySubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_VisibilitySubCauseCode_H_ */ +#include diff --git a/vcits/denm/AlacarteContainer.h b/vcits/denm/AlacarteContainer.h new file mode 100644 index 0000000..8be086a --- /dev/null +++ b/vcits/denm/AlacarteContainer.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _AlacarteContainer_H_ +#define _AlacarteContainer_H_ + + +#include + +/* Including external dependencies */ +#include "LanePosition.h" +#include "Temperature.h" +#include "PositioningSolutionType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ImpactReductionContainer; +struct RoadWorksContainerExtended; +struct StationaryVehicleContainer; + +/* AlacarteContainer */ +typedef struct AlacarteContainer { + LanePosition_t *lanePosition; /* OPTIONAL */ + struct ImpactReductionContainer *impactReduction; /* OPTIONAL */ + Temperature_t *externalTemperature; /* OPTIONAL */ + struct RoadWorksContainerExtended *roadWorks; /* OPTIONAL */ + PositioningSolutionType_t *positioningSolution; /* OPTIONAL */ + struct StationaryVehicleContainer *stationaryVehicle; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AlacarteContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AlacarteContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_AlacarteContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_AlacarteContainer_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AlacarteContainer_H_ */ +#include diff --git a/vcits/denm/Altitude.h b/vcits/denm/Altitude.h new file mode 100644 index 0000000..25b811b --- /dev/null +++ b/vcits/denm/Altitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _Altitude_H_ +#define _Altitude_H_ + + +#include + +/* Including external dependencies */ +#include "AltitudeValue.h" +#include "AltitudeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Altitude */ +typedef struct Altitude { + AltitudeValue_t altitudeValue; + AltitudeConfidence_t altitudeConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Altitude_H_ */ +#include diff --git a/vcits/denm/AltitudeConfidence.h b/vcits/denm/AltitudeConfidence.h new file mode 100644 index 0000000..690d144 --- /dev/null +++ b/vcits/denm/AltitudeConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _AltitudeConfidence_H_ +#define _AltitudeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeConfidence { + AltitudeConfidence_alt_000_01 = 0, + AltitudeConfidence_alt_000_02 = 1, + AltitudeConfidence_alt_000_05 = 2, + AltitudeConfidence_alt_000_10 = 3, + AltitudeConfidence_alt_000_20 = 4, + AltitudeConfidence_alt_000_50 = 5, + AltitudeConfidence_alt_001_00 = 6, + AltitudeConfidence_alt_002_00 = 7, + AltitudeConfidence_alt_005_00 = 8, + AltitudeConfidence_alt_010_00 = 9, + AltitudeConfidence_alt_020_00 = 10, + AltitudeConfidence_alt_050_00 = 11, + AltitudeConfidence_alt_100_00 = 12, + AltitudeConfidence_alt_200_00 = 13, + AltitudeConfidence_outOfRange = 14, + AltitudeConfidence_unavailable = 15 +} e_AltitudeConfidence; + +/* AltitudeConfidence */ +typedef long AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1; +asn_struct_free_f AltitudeConfidence_free; +asn_struct_print_f AltitudeConfidence_print; +asn_constr_check_f AltitudeConfidence_constraint; +ber_type_decoder_f AltitudeConfidence_decode_ber; +der_type_encoder_f AltitudeConfidence_encode_der; +xer_type_decoder_f AltitudeConfidence_decode_xer; +xer_type_encoder_f AltitudeConfidence_encode_xer; +oer_type_decoder_f AltitudeConfidence_decode_oer; +oer_type_encoder_f AltitudeConfidence_encode_oer; +per_type_decoder_f AltitudeConfidence_decode_uper; +per_type_encoder_f AltitudeConfidence_encode_uper; +per_type_decoder_f AltitudeConfidence_decode_aper; +per_type_encoder_f AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeConfidence_H_ */ +#include diff --git a/vcits/denm/AltitudeValue.h b/vcits/denm/AltitudeValue.h new file mode 100644 index 0000000..9c25e3a --- /dev/null +++ b/vcits/denm/AltitudeValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _AltitudeValue_H_ +#define _AltitudeValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeValue { + AltitudeValue_referenceEllipsoidSurface = 0, + AltitudeValue_oneCentimeter = 1, + AltitudeValue_unavailable = 800001 +} e_AltitudeValue; + +/* AltitudeValue */ +typedef long AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeValue; +asn_struct_free_f AltitudeValue_free; +asn_struct_print_f AltitudeValue_print; +asn_constr_check_f AltitudeValue_constraint; +ber_type_decoder_f AltitudeValue_decode_ber; +der_type_encoder_f AltitudeValue_encode_der; +xer_type_decoder_f AltitudeValue_decode_xer; +xer_type_encoder_f AltitudeValue_encode_xer; +oer_type_decoder_f AltitudeValue_decode_oer; +oer_type_encoder_f AltitudeValue_encode_oer; +per_type_decoder_f AltitudeValue_decode_uper; +per_type_encoder_f AltitudeValue_encode_uper; +per_type_decoder_f AltitudeValue_decode_aper; +per_type_encoder_f AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeValue_H_ */ +#include diff --git a/vcits/denm/CMakeLists.txt b/vcits/denm/CMakeLists.txt new file mode 100644 index 0000000..460bda9 --- /dev/null +++ b/vcits/denm/CMakeLists.txt @@ -0,0 +1,167 @@ +# This file is auto-generated by command-cxx.sh +cmake_minimum_required(VERSION 3.9) + +message(STATUS "--> Configure build of |-vcits-denm") + +project(vcits-denm VERSION 0.2 DESCRIPTION "denm part of vcits") + +add_library(vcits-denm STATIC +src/AccelerationConfidence.c +src/AccelerationControl.c +src/AccidentSubCauseCode.c +src/ActionID.c +src/AdverseWeatherCondition-AdhesionSubCauseCode.c +src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c +src/AdverseWeatherCondition-PrecipitationSubCauseCode.c +src/AdverseWeatherCondition-VisibilitySubCauseCode.c +src/AlacarteContainer.c +src/Altitude.c +src/AltitudeConfidence.c +src/AltitudeValue.c +src/CauseCode.c +src/CauseCodeType.c +src/CenDsrcTollingZone.c +src/CenDsrcTollingZoneID.c +src/ClosedLanes.c +src/CollisionRiskSubCauseCode.c +src/Curvature.c +src/CurvatureCalculationMode.c +src/CurvatureConfidence.c +src/CurvatureValue.c +src/DENM.c +src/DangerousEndOfQueueSubCauseCode.c +src/DangerousGoodsBasic.c +src/DangerousGoodsExtended.c +src/DangerousSituationSubCauseCode.c +src/DecentralizedEnvironmentalNotificationMessage.c +src/DeltaAltitude.c +src/DeltaLatitude.c +src/DeltaLongitude.c +src/DeltaReferencePosition.c +src/DigitalMap.c +src/DriveDirection.c +src/DrivingLaneStatus.c +src/EmbarkationStatus.c +src/EmergencyPriority.c +src/EmergencyVehicleApproachingSubCauseCode.c +src/EnergyStorageType.c +src/EventHistory.c +src/EventPoint.c +src/ExteriorLights.c +src/HardShoulderStatus.c +src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c +src/HazardousLocation-DangerousCurveSubCauseCode.c +src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c +src/HazardousLocation-SurfaceConditionSubCauseCode.c +src/Heading.c +src/HeadingConfidence.c +src/HeadingValue.c +src/HeightLonCarr.c +src/HumanPresenceOnTheRoadSubCauseCode.c +src/HumanProblemSubCauseCode.c +src/ImpactReductionContainer.c +src/InformationQuality.c +src/ItineraryPath.c +src/ItsPduHeader.c +src/LanePosition.c +src/LateralAcceleration.c +src/LateralAccelerationValue.c +src/Latitude.c +src/LightBarSirenInUse.c +src/LocationContainer.c +src/Longitude.c +src/LongitudinalAcceleration.c +src/LongitudinalAccelerationValue.c +src/ManagementContainer.c +src/NumberOfOccupants.c +src/OpeningDaysHours.c +src/PathDeltaTime.c +src/PathHistory.c +src/PathPoint.c +src/PerformanceClass.c +src/PhoneNumber.c +src/PosCentMass.c +src/PosConfidenceEllipse.c +src/PosFrontAx.c +src/PosLonCarr.c +src/PosPillar.c +src/PositionOfOccupants.c +src/PositionOfPillars.c +src/PositioningSolutionType.c +src/PostCrashSubCauseCode.c +src/ProtectedCommunicationZone.c +src/ProtectedCommunicationZonesRSU.c +src/ProtectedZoneID.c +src/ProtectedZoneRadius.c +src/ProtectedZoneType.c +src/PtActivation.c +src/PtActivationData.c +src/PtActivationType.c +src/ReferenceDenms.c +src/ReferencePosition.c +src/RelevanceDistance.c +src/RelevanceTrafficDirection.c +src/RequestResponseIndication.c +src/RescueAndRecoveryWorkInProgressSubCauseCode.c +src/RestrictedTypes.c +src/RoadType.c +src/RoadWorksContainerExtended.c +src/RoadworksSubCauseCode.c +src/SemiAxisLength.c +src/SequenceNumber.c +src/SignalViolationSubCauseCode.c +src/SituationContainer.c +src/SlowVehicleSubCauseCode.c +src/SpecialTransportType.c +src/Speed.c +src/SpeedConfidence.c +src/SpeedLimit.c +src/SpeedValue.c +src/StationID.c +src/StationType.c +src/StationarySince.c +src/StationaryVehicleContainer.c +src/StationaryVehicleSubCauseCode.c +src/SteeringWheelAngle.c +src/SteeringWheelAngleConfidence.c +src/SteeringWheelAngleValue.c +src/SubCauseCodeType.c +src/Temperature.c +src/Termination.c +src/TimestampIts.c +src/Traces.c +src/TrafficConditionSubCauseCode.c +src/TrafficRule.c +src/TransmissionInterval.c +src/TurningRadius.c +src/VDS.c +src/ValidityDuration.c +src/VehicleBreakdownSubCauseCode.c +src/VehicleIdentification.c +src/VehicleLength.c +src/VehicleLengthConfidenceIndication.c +src/VehicleLengthValue.c +src/VehicleMass.c +src/VehicleRole.c +src/VehicleWidth.c +src/VerticalAcceleration.c +src/VerticalAccelerationValue.c +src/WMInumber.c +src/WheelBaseVehicle.c +src/WrongWayDrivingSubCauseCode.c +src/YawRate.c +src/YawRateConfidence.c +src/YawRateValue.c +) + +set_target_properties(vcits-denm PROPERTIES VERSION ${PROJECT_VERSION}) + +target_include_directories(vcits-denm PRIVATE .) +target_include_directories(vcits-denm PRIVATE ../asn1c) + +target_link_libraries(vcits-denm PUBLIC +vcits-asn1c +) + +message(STATUS "--> Configure build of |-vcits-denm - done") + diff --git a/vcits/denm/CauseCode.h b/vcits/denm/CauseCode.h new file mode 100644 index 0000000..1aedc7d --- /dev/null +++ b/vcits/denm/CauseCode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _CauseCode_H_ +#define _CauseCode_H_ + + +#include + +/* Including external dependencies */ +#include "CauseCodeType.h" +#include "SubCauseCodeType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CauseCode */ +typedef struct CauseCode { + CauseCodeType_t causeCode; + SubCauseCodeType_t subCauseCode; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CauseCode; +extern asn_SEQUENCE_specifics_t asn_SPC_CauseCode_specs_1; +extern asn_TYPE_member_t asn_MBR_CauseCode_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCode_H_ */ +#include diff --git a/vcits/denm/CauseCodeType.h b/vcits/denm/CauseCodeType.h new file mode 100644 index 0000000..867dbae --- /dev/null +++ b/vcits/denm/CauseCodeType.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _CauseCodeType_H_ +#define _CauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseCodeType { + CauseCodeType_reserved = 0, + CauseCodeType_trafficCondition = 1, + CauseCodeType_accident = 2, + CauseCodeType_roadworks = 3, + CauseCodeType_impassability = 5, + CauseCodeType_adverseWeatherCondition_Adhesion = 6, + CauseCodeType_aquaplannning = 7, + CauseCodeType_hazardousLocation_SurfaceCondition = 9, + CauseCodeType_hazardousLocation_ObstacleOnTheRoad = 10, + CauseCodeType_hazardousLocation_AnimalOnTheRoad = 11, + CauseCodeType_humanPresenceOnTheRoad = 12, + CauseCodeType_wrongWayDriving = 14, + CauseCodeType_rescueAndRecoveryWorkInProgress = 15, + CauseCodeType_adverseWeatherCondition_ExtremeWeatherCondition = 17, + CauseCodeType_adverseWeatherCondition_Visibility = 18, + CauseCodeType_adverseWeatherCondition_Precipitation = 19, + CauseCodeType_slowVehicle = 26, + CauseCodeType_dangerousEndOfQueue = 27, + CauseCodeType_vehicleBreakdown = 91, + CauseCodeType_postCrash = 92, + CauseCodeType_humanProblem = 93, + CauseCodeType_stationaryVehicle = 94, + CauseCodeType_emergencyVehicleApproaching = 95, + CauseCodeType_hazardousLocation_DangerousCurve = 96, + CauseCodeType_collisionRisk = 97, + CauseCodeType_signalViolation = 98, + CauseCodeType_dangerousSituation = 99 +} e_CauseCodeType; + +/* CauseCodeType */ +typedef long CauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseCodeType; +asn_struct_free_f CauseCodeType_free; +asn_struct_print_f CauseCodeType_print; +asn_constr_check_f CauseCodeType_constraint; +ber_type_decoder_f CauseCodeType_decode_ber; +der_type_encoder_f CauseCodeType_encode_der; +xer_type_decoder_f CauseCodeType_decode_xer; +xer_type_encoder_f CauseCodeType_encode_xer; +oer_type_decoder_f CauseCodeType_decode_oer; +oer_type_encoder_f CauseCodeType_encode_oer; +per_type_decoder_f CauseCodeType_decode_uper; +per_type_encoder_f CauseCodeType_encode_uper; +per_type_decoder_f CauseCodeType_decode_aper; +per_type_encoder_f CauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCodeType_H_ */ +#include diff --git a/vcits/denm/CenDsrcTollingZone.h b/vcits/denm/CenDsrcTollingZone.h new file mode 100644 index 0000000..6b1a52e --- /dev/null +++ b/vcits/denm/CenDsrcTollingZone.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _CenDsrcTollingZone_H_ +#define _CenDsrcTollingZone_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "CenDsrcTollingZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZone */ +typedef struct CenDsrcTollingZone { + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + CenDsrcTollingZoneID_t *cenDsrcTollingZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CenDsrcTollingZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZone_H_ */ +#include diff --git a/vcits/denm/CenDsrcTollingZoneID.h b/vcits/denm/CenDsrcTollingZoneID.h new file mode 100644 index 0000000..11aeae8 --- /dev/null +++ b/vcits/denm/CenDsrcTollingZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _CenDsrcTollingZoneID_H_ +#define _CenDsrcTollingZoneID_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneID.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZoneID */ +typedef ProtectedZoneID_t CenDsrcTollingZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID; +asn_struct_free_f CenDsrcTollingZoneID_free; +asn_struct_print_f CenDsrcTollingZoneID_print; +asn_constr_check_f CenDsrcTollingZoneID_constraint; +ber_type_decoder_f CenDsrcTollingZoneID_decode_ber; +der_type_encoder_f CenDsrcTollingZoneID_encode_der; +xer_type_decoder_f CenDsrcTollingZoneID_decode_xer; +xer_type_encoder_f CenDsrcTollingZoneID_encode_xer; +oer_type_decoder_f CenDsrcTollingZoneID_decode_oer; +oer_type_encoder_f CenDsrcTollingZoneID_encode_oer; +per_type_decoder_f CenDsrcTollingZoneID_decode_uper; +per_type_encoder_f CenDsrcTollingZoneID_encode_uper; +per_type_decoder_f CenDsrcTollingZoneID_decode_aper; +per_type_encoder_f CenDsrcTollingZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZoneID_H_ */ +#include diff --git a/vcits/denm/ClosedLanes.h b/vcits/denm/ClosedLanes.h new file mode 100644 index 0000000..f717bf1 --- /dev/null +++ b/vcits/denm/ClosedLanes.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ClosedLanes_H_ +#define _ClosedLanes_H_ + + +#include + +/* Including external dependencies */ +#include "HardShoulderStatus.h" +#include "DrivingLaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ClosedLanes */ +typedef struct ClosedLanes { + HardShoulderStatus_t *innerhardShoulderStatus; /* OPTIONAL */ + HardShoulderStatus_t *outerhardShoulderStatus; /* OPTIONAL */ + DrivingLaneStatus_t *drivingLaneStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ClosedLanes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ClosedLanes; +extern asn_SEQUENCE_specifics_t asn_SPC_ClosedLanes_specs_1; +extern asn_TYPE_member_t asn_MBR_ClosedLanes_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ClosedLanes_H_ */ +#include diff --git a/vcits/denm/CollisionRiskSubCauseCode.h b/vcits/denm/CollisionRiskSubCauseCode.h new file mode 100644 index 0000000..7a7f5c0 --- /dev/null +++ b/vcits/denm/CollisionRiskSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _CollisionRiskSubCauseCode_H_ +#define _CollisionRiskSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CollisionRiskSubCauseCode { + CollisionRiskSubCauseCode_unavailable = 0, + CollisionRiskSubCauseCode_longitudinalCollisionRisk = 1, + CollisionRiskSubCauseCode_crossingCollisionRisk = 2, + CollisionRiskSubCauseCode_lateralCollisionRisk = 3, + CollisionRiskSubCauseCode_vulnerableRoadUser = 4 +} e_CollisionRiskSubCauseCode; + +/* CollisionRiskSubCauseCode */ +typedef long CollisionRiskSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode; +asn_struct_free_f CollisionRiskSubCauseCode_free; +asn_struct_print_f CollisionRiskSubCauseCode_print; +asn_constr_check_f CollisionRiskSubCauseCode_constraint; +ber_type_decoder_f CollisionRiskSubCauseCode_decode_ber; +der_type_encoder_f CollisionRiskSubCauseCode_encode_der; +xer_type_decoder_f CollisionRiskSubCauseCode_decode_xer; +xer_type_encoder_f CollisionRiskSubCauseCode_encode_xer; +oer_type_decoder_f CollisionRiskSubCauseCode_decode_oer; +oer_type_encoder_f CollisionRiskSubCauseCode_encode_oer; +per_type_decoder_f CollisionRiskSubCauseCode_decode_uper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_uper; +per_type_decoder_f CollisionRiskSubCauseCode_decode_aper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CollisionRiskSubCauseCode_H_ */ +#include diff --git a/vcits/denm/Curvature.h b/vcits/denm/Curvature.h new file mode 100644 index 0000000..ba4b1d9 --- /dev/null +++ b/vcits/denm/Curvature.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _Curvature_H_ +#define _Curvature_H_ + + +#include + +/* Including external dependencies */ +#include "CurvatureValue.h" +#include "CurvatureConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Curvature */ +typedef struct Curvature { + CurvatureValue_t curvatureValue; + CurvatureConfidence_t curvatureConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Curvature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Curvature; + +#ifdef __cplusplus +} +#endif + +#endif /* _Curvature_H_ */ +#include diff --git a/vcits/denm/CurvatureCalculationMode.h b/vcits/denm/CurvatureCalculationMode.h new file mode 100644 index 0000000..59563b8 --- /dev/null +++ b/vcits/denm/CurvatureCalculationMode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _CurvatureCalculationMode_H_ +#define _CurvatureCalculationMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureCalculationMode { + CurvatureCalculationMode_yawRateUsed = 0, + CurvatureCalculationMode_yawRateNotUsed = 1, + CurvatureCalculationMode_unavailable = 2 + /* + * Enumeration is extensible + */ +} e_CurvatureCalculationMode; + +/* CurvatureCalculationMode */ +typedef long CurvatureCalculationMode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode; +asn_struct_free_f CurvatureCalculationMode_free; +asn_struct_print_f CurvatureCalculationMode_print; +asn_constr_check_f CurvatureCalculationMode_constraint; +ber_type_decoder_f CurvatureCalculationMode_decode_ber; +der_type_encoder_f CurvatureCalculationMode_encode_der; +xer_type_decoder_f CurvatureCalculationMode_decode_xer; +xer_type_encoder_f CurvatureCalculationMode_encode_xer; +oer_type_decoder_f CurvatureCalculationMode_decode_oer; +oer_type_encoder_f CurvatureCalculationMode_encode_oer; +per_type_decoder_f CurvatureCalculationMode_decode_uper; +per_type_encoder_f CurvatureCalculationMode_encode_uper; +per_type_decoder_f CurvatureCalculationMode_decode_aper; +per_type_encoder_f CurvatureCalculationMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureCalculationMode_H_ */ +#include diff --git a/vcits/denm/CurvatureConfidence.h b/vcits/denm/CurvatureConfidence.h new file mode 100644 index 0000000..d00bbda --- /dev/null +++ b/vcits/denm/CurvatureConfidence.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _CurvatureConfidence_H_ +#define _CurvatureConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureConfidence { + CurvatureConfidence_onePerMeter_0_00002 = 0, + CurvatureConfidence_onePerMeter_0_0001 = 1, + CurvatureConfidence_onePerMeter_0_0005 = 2, + CurvatureConfidence_onePerMeter_0_002 = 3, + CurvatureConfidence_onePerMeter_0_01 = 4, + CurvatureConfidence_onePerMeter_0_1 = 5, + CurvatureConfidence_outOfRange = 6, + CurvatureConfidence_unavailable = 7 +} e_CurvatureConfidence; + +/* CurvatureConfidence */ +typedef long CurvatureConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1; +asn_struct_free_f CurvatureConfidence_free; +asn_struct_print_f CurvatureConfidence_print; +asn_constr_check_f CurvatureConfidence_constraint; +ber_type_decoder_f CurvatureConfidence_decode_ber; +der_type_encoder_f CurvatureConfidence_encode_der; +xer_type_decoder_f CurvatureConfidence_decode_xer; +xer_type_encoder_f CurvatureConfidence_encode_xer; +oer_type_decoder_f CurvatureConfidence_decode_oer; +oer_type_encoder_f CurvatureConfidence_encode_oer; +per_type_decoder_f CurvatureConfidence_decode_uper; +per_type_encoder_f CurvatureConfidence_encode_uper; +per_type_decoder_f CurvatureConfidence_decode_aper; +per_type_encoder_f CurvatureConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureConfidence_H_ */ +#include diff --git a/vcits/denm/CurvatureValue.h b/vcits/denm/CurvatureValue.h new file mode 100644 index 0000000..1f6b157 --- /dev/null +++ b/vcits/denm/CurvatureValue.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _CurvatureValue_H_ +#define _CurvatureValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureValue { + CurvatureValue_straight = 0, + CurvatureValue_unavailable = 1023 +} e_CurvatureValue; + +/* CurvatureValue */ +typedef long CurvatureValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureValue; +asn_struct_free_f CurvatureValue_free; +asn_struct_print_f CurvatureValue_print; +asn_constr_check_f CurvatureValue_constraint; +ber_type_decoder_f CurvatureValue_decode_ber; +der_type_encoder_f CurvatureValue_encode_der; +xer_type_decoder_f CurvatureValue_decode_xer; +xer_type_encoder_f CurvatureValue_encode_xer; +oer_type_decoder_f CurvatureValue_decode_oer; +oer_type_encoder_f CurvatureValue_encode_oer; +per_type_decoder_f CurvatureValue_decode_uper; +per_type_encoder_f CurvatureValue_encode_uper; +per_type_decoder_f CurvatureValue_decode_aper; +per_type_encoder_f CurvatureValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureValue_H_ */ +#include diff --git a/vcits/denm/DENM.h b/vcits/denm/DENM.h new file mode 100644 index 0000000..b6ae3bc --- /dev/null +++ b/vcits/denm/DENM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _DENM_H_ +#define _DENM_H_ + + +#include + +/* Including external dependencies */ +#include "ItsPduHeader.h" +#include "DecentralizedEnvironmentalNotificationMessage.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DENM */ +typedef struct DENM { + ItsPduHeader_t header; + DecentralizedEnvironmentalNotificationMessage_t denm; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DENM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DENM; + +#ifdef __cplusplus +} +#endif + +#endif /* _DENM_H_ */ +#include diff --git a/vcits/denm/DangerousEndOfQueueSubCauseCode.h b/vcits/denm/DangerousEndOfQueueSubCauseCode.h new file mode 100644 index 0000000..e40c071 --- /dev/null +++ b/vcits/denm/DangerousEndOfQueueSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _DangerousEndOfQueueSubCauseCode_H_ +#define _DangerousEndOfQueueSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousEndOfQueueSubCauseCode { + DangerousEndOfQueueSubCauseCode_unavailable = 0, + DangerousEndOfQueueSubCauseCode_suddenEndOfQueue = 1, + DangerousEndOfQueueSubCauseCode_queueOverHill = 2, + DangerousEndOfQueueSubCauseCode_queueAroundBend = 3, + DangerousEndOfQueueSubCauseCode_queueInTunnel = 4 +} e_DangerousEndOfQueueSubCauseCode; + +/* DangerousEndOfQueueSubCauseCode */ +typedef long DangerousEndOfQueueSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode; +asn_struct_free_f DangerousEndOfQueueSubCauseCode_free; +asn_struct_print_f DangerousEndOfQueueSubCauseCode_print; +asn_constr_check_f DangerousEndOfQueueSubCauseCode_constraint; +ber_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_ber; +der_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_der; +xer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_xer; +xer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_xer; +oer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_oer; +oer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_oer; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_uper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_uper; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_aper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousEndOfQueueSubCauseCode_H_ */ +#include diff --git a/vcits/denm/DangerousGoodsBasic.h b/vcits/denm/DangerousGoodsBasic.h new file mode 100644 index 0000000..8812263 --- /dev/null +++ b/vcits/denm/DangerousGoodsBasic.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _DangerousGoodsBasic_H_ +#define _DangerousGoodsBasic_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousGoodsBasic { + DangerousGoodsBasic_explosives1 = 0, + DangerousGoodsBasic_explosives2 = 1, + DangerousGoodsBasic_explosives3 = 2, + DangerousGoodsBasic_explosives4 = 3, + DangerousGoodsBasic_explosives5 = 4, + DangerousGoodsBasic_explosives6 = 5, + DangerousGoodsBasic_flammableGases = 6, + DangerousGoodsBasic_nonFlammableGases = 7, + DangerousGoodsBasic_toxicGases = 8, + DangerousGoodsBasic_flammableLiquids = 9, + DangerousGoodsBasic_flammableSolids = 10, + DangerousGoodsBasic_substancesLiableToSpontaneousCombustion = 11, + DangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater = 12, + DangerousGoodsBasic_oxidizingSubstances = 13, + DangerousGoodsBasic_organicPeroxides = 14, + DangerousGoodsBasic_toxicSubstances = 15, + DangerousGoodsBasic_infectiousSubstances = 16, + DangerousGoodsBasic_radioactiveMaterial = 17, + DangerousGoodsBasic_corrosiveSubstances = 18, + DangerousGoodsBasic_miscellaneousDangerousSubstances = 19 +} e_DangerousGoodsBasic; + +/* DangerousGoodsBasic */ +typedef long DangerousGoodsBasic_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic; +extern const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1; +asn_struct_free_f DangerousGoodsBasic_free; +asn_struct_print_f DangerousGoodsBasic_print; +asn_constr_check_f DangerousGoodsBasic_constraint; +ber_type_decoder_f DangerousGoodsBasic_decode_ber; +der_type_encoder_f DangerousGoodsBasic_encode_der; +xer_type_decoder_f DangerousGoodsBasic_decode_xer; +xer_type_encoder_f DangerousGoodsBasic_encode_xer; +oer_type_decoder_f DangerousGoodsBasic_decode_oer; +oer_type_encoder_f DangerousGoodsBasic_encode_oer; +per_type_decoder_f DangerousGoodsBasic_decode_uper; +per_type_encoder_f DangerousGoodsBasic_encode_uper; +per_type_decoder_f DangerousGoodsBasic_decode_aper; +per_type_encoder_f DangerousGoodsBasic_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsBasic_H_ */ +#include diff --git a/vcits/denm/DangerousGoodsExtended.h b/vcits/denm/DangerousGoodsExtended.h new file mode 100644 index 0000000..b7fc47e --- /dev/null +++ b/vcits/denm/DangerousGoodsExtended.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _DangerousGoodsExtended_H_ +#define _DangerousGoodsExtended_H_ + + +#include + +/* Including external dependencies */ +#include "DangerousGoodsBasic.h" +#include +#include +#include +#include "PhoneNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DangerousGoodsExtended */ +typedef struct DangerousGoodsExtended { + DangerousGoodsBasic_t dangerousGoodsType; + long unNumber; + BOOLEAN_t elevatedTemperature; + BOOLEAN_t tunnelsRestricted; + BOOLEAN_t limitedQuantity; + IA5String_t *emergencyActionCode; /* OPTIONAL */ + PhoneNumber_t *phoneNumber; /* OPTIONAL */ + UTF8String_t *companyName; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DangerousGoodsExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended; +extern asn_SEQUENCE_specifics_t asn_SPC_DangerousGoodsExtended_specs_1; +extern asn_TYPE_member_t asn_MBR_DangerousGoodsExtended_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsExtended_H_ */ +#include diff --git a/vcits/denm/DangerousSituationSubCauseCode.h b/vcits/denm/DangerousSituationSubCauseCode.h new file mode 100644 index 0000000..a87d37f --- /dev/null +++ b/vcits/denm/DangerousSituationSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _DangerousSituationSubCauseCode_H_ +#define _DangerousSituationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousSituationSubCauseCode { + DangerousSituationSubCauseCode_unavailable = 0, + DangerousSituationSubCauseCode_emergencyElectronicBrakeEngaged = 1, + DangerousSituationSubCauseCode_preCrashSystemEngaged = 2, + DangerousSituationSubCauseCode_espEngaged = 3, + DangerousSituationSubCauseCode_absEngaged = 4, + DangerousSituationSubCauseCode_aebEngaged = 5, + DangerousSituationSubCauseCode_brakeWarningEngaged = 6, + DangerousSituationSubCauseCode_collisionRiskWarningEngaged = 7 +} e_DangerousSituationSubCauseCode; + +/* DangerousSituationSubCauseCode */ +typedef long DangerousSituationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode; +asn_struct_free_f DangerousSituationSubCauseCode_free; +asn_struct_print_f DangerousSituationSubCauseCode_print; +asn_constr_check_f DangerousSituationSubCauseCode_constraint; +ber_type_decoder_f DangerousSituationSubCauseCode_decode_ber; +der_type_encoder_f DangerousSituationSubCauseCode_encode_der; +xer_type_decoder_f DangerousSituationSubCauseCode_decode_xer; +xer_type_encoder_f DangerousSituationSubCauseCode_encode_xer; +oer_type_decoder_f DangerousSituationSubCauseCode_decode_oer; +oer_type_encoder_f DangerousSituationSubCauseCode_encode_oer; +per_type_decoder_f DangerousSituationSubCauseCode_decode_uper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_uper; +per_type_decoder_f DangerousSituationSubCauseCode_decode_aper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousSituationSubCauseCode_H_ */ +#include diff --git a/vcits/denm/DecentralizedEnvironmentalNotificationMessage.h b/vcits/denm/DecentralizedEnvironmentalNotificationMessage.h new file mode 100644 index 0000000..fd70aef --- /dev/null +++ b/vcits/denm/DecentralizedEnvironmentalNotificationMessage.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _DecentralizedEnvironmentalNotificationMessage_H_ +#define _DecentralizedEnvironmentalNotificationMessage_H_ + + +#include + +/* Including external dependencies */ +#include "ManagementContainer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SituationContainer; +struct LocationContainer; +struct AlacarteContainer; + +/* DecentralizedEnvironmentalNotificationMessage */ +typedef struct DecentralizedEnvironmentalNotificationMessage { + ManagementContainer_t management; + struct SituationContainer *situation; /* OPTIONAL */ + struct LocationContainer *location; /* OPTIONAL */ + struct AlacarteContainer *alacarte; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DecentralizedEnvironmentalNotificationMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DecentralizedEnvironmentalNotificationMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_DecentralizedEnvironmentalNotificationMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_DecentralizedEnvironmentalNotificationMessage_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DecentralizedEnvironmentalNotificationMessage_H_ */ +#include diff --git a/vcits/denm/DeltaAltitude.h b/vcits/denm/DeltaAltitude.h new file mode 100644 index 0000000..f21e557 --- /dev/null +++ b/vcits/denm/DeltaAltitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _DeltaAltitude_H_ +#define _DeltaAltitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaAltitude { + DeltaAltitude_oneCentimeterUp = 1, + DeltaAltitude_oneCentimeterDown = -1, + DeltaAltitude_unavailable = 12800 +} e_DeltaAltitude; + +/* DeltaAltitude */ +typedef long DeltaAltitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAltitude; +asn_struct_free_f DeltaAltitude_free; +asn_struct_print_f DeltaAltitude_print; +asn_constr_check_f DeltaAltitude_constraint; +ber_type_decoder_f DeltaAltitude_decode_ber; +der_type_encoder_f DeltaAltitude_encode_der; +xer_type_decoder_f DeltaAltitude_decode_xer; +xer_type_encoder_f DeltaAltitude_encode_xer; +oer_type_decoder_f DeltaAltitude_decode_oer; +oer_type_encoder_f DeltaAltitude_encode_oer; +per_type_decoder_f DeltaAltitude_decode_uper; +per_type_encoder_f DeltaAltitude_encode_uper; +per_type_decoder_f DeltaAltitude_decode_aper; +per_type_encoder_f DeltaAltitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAltitude_H_ */ +#include diff --git a/vcits/denm/DeltaLatitude.h b/vcits/denm/DeltaLatitude.h new file mode 100644 index 0000000..8025eda --- /dev/null +++ b/vcits/denm/DeltaLatitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _DeltaLatitude_H_ +#define _DeltaLatitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLatitude { + DeltaLatitude_oneMicrodegreeNorth = 10, + DeltaLatitude_oneMicrodegreeSouth = -10, + DeltaLatitude_unavailable = 131072 +} e_DeltaLatitude; + +/* DeltaLatitude */ +typedef long DeltaLatitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLatitude; +asn_struct_free_f DeltaLatitude_free; +asn_struct_print_f DeltaLatitude_print; +asn_constr_check_f DeltaLatitude_constraint; +ber_type_decoder_f DeltaLatitude_decode_ber; +der_type_encoder_f DeltaLatitude_encode_der; +xer_type_decoder_f DeltaLatitude_decode_xer; +xer_type_encoder_f DeltaLatitude_encode_xer; +oer_type_decoder_f DeltaLatitude_decode_oer; +oer_type_encoder_f DeltaLatitude_encode_oer; +per_type_decoder_f DeltaLatitude_decode_uper; +per_type_encoder_f DeltaLatitude_encode_uper; +per_type_decoder_f DeltaLatitude_decode_aper; +per_type_encoder_f DeltaLatitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLatitude_H_ */ +#include diff --git a/vcits/denm/DeltaLongitude.h b/vcits/denm/DeltaLongitude.h new file mode 100644 index 0000000..006211e --- /dev/null +++ b/vcits/denm/DeltaLongitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _DeltaLongitude_H_ +#define _DeltaLongitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLongitude { + DeltaLongitude_oneMicrodegreeEast = 10, + DeltaLongitude_oneMicrodegreeWest = -10, + DeltaLongitude_unavailable = 131072 +} e_DeltaLongitude; + +/* DeltaLongitude */ +typedef long DeltaLongitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLongitude; +asn_struct_free_f DeltaLongitude_free; +asn_struct_print_f DeltaLongitude_print; +asn_constr_check_f DeltaLongitude_constraint; +ber_type_decoder_f DeltaLongitude_decode_ber; +der_type_encoder_f DeltaLongitude_encode_der; +xer_type_decoder_f DeltaLongitude_decode_xer; +xer_type_encoder_f DeltaLongitude_encode_xer; +oer_type_decoder_f DeltaLongitude_decode_oer; +oer_type_encoder_f DeltaLongitude_encode_oer; +per_type_decoder_f DeltaLongitude_decode_uper; +per_type_encoder_f DeltaLongitude_encode_uper; +per_type_decoder_f DeltaLongitude_decode_aper; +per_type_encoder_f DeltaLongitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLongitude_H_ */ +#include diff --git a/vcits/denm/DeltaReferencePosition.h b/vcits/denm/DeltaReferencePosition.h new file mode 100644 index 0000000..76e9243 --- /dev/null +++ b/vcits/denm/DeltaReferencePosition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _DeltaReferencePosition_H_ +#define _DeltaReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaLatitude.h" +#include "DeltaLongitude.h" +#include "DeltaAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaReferencePosition */ +typedef struct DeltaReferencePosition { + DeltaLatitude_t deltaLatitude; + DeltaLongitude_t deltaLongitude; + DeltaAltitude_t deltaAltitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DeltaReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaReferencePosition_H_ */ +#include diff --git a/vcits/denm/DigitalMap.h b/vcits/denm/DigitalMap.h new file mode 100644 index 0000000..ec00fe3 --- /dev/null +++ b/vcits/denm/DigitalMap.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _DigitalMap_H_ +#define _DigitalMap_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* DigitalMap */ +typedef struct DigitalMap { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DigitalMap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DigitalMap; + +#ifdef __cplusplus +} +#endif + +#endif /* _DigitalMap_H_ */ +#include diff --git a/vcits/denm/DriveDirection.h b/vcits/denm/DriveDirection.h new file mode 100644 index 0000000..2fa3507 --- /dev/null +++ b/vcits/denm/DriveDirection.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _DriveDirection_H_ +#define _DriveDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DriveDirection { + DriveDirection_forward = 0, + DriveDirection_backward = 1, + DriveDirection_unavailable = 2 +} e_DriveDirection; + +/* DriveDirection */ +typedef long DriveDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DriveDirection; +asn_struct_free_f DriveDirection_free; +asn_struct_print_f DriveDirection_print; +asn_constr_check_f DriveDirection_constraint; +ber_type_decoder_f DriveDirection_decode_ber; +der_type_encoder_f DriveDirection_encode_der; +xer_type_decoder_f DriveDirection_decode_xer; +xer_type_encoder_f DriveDirection_encode_xer; +oer_type_decoder_f DriveDirection_decode_oer; +oer_type_encoder_f DriveDirection_encode_oer; +per_type_decoder_f DriveDirection_decode_uper; +per_type_encoder_f DriveDirection_encode_uper; +per_type_decoder_f DriveDirection_decode_aper; +per_type_encoder_f DriveDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DriveDirection_H_ */ +#include diff --git a/vcits/denm/DrivingLaneStatus.h b/vcits/denm/DrivingLaneStatus.h new file mode 100644 index 0000000..dba625e --- /dev/null +++ b/vcits/denm/DrivingLaneStatus.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _DrivingLaneStatus_H_ +#define _DrivingLaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivingLaneStatus */ +typedef BIT_STRING_t DrivingLaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus; +asn_struct_free_f DrivingLaneStatus_free; +asn_struct_print_f DrivingLaneStatus_print; +asn_constr_check_f DrivingLaneStatus_constraint; +ber_type_decoder_f DrivingLaneStatus_decode_ber; +der_type_encoder_f DrivingLaneStatus_encode_der; +xer_type_decoder_f DrivingLaneStatus_decode_xer; +xer_type_encoder_f DrivingLaneStatus_encode_xer; +oer_type_decoder_f DrivingLaneStatus_decode_oer; +oer_type_encoder_f DrivingLaneStatus_encode_oer; +per_type_decoder_f DrivingLaneStatus_decode_uper; +per_type_encoder_f DrivingLaneStatus_encode_uper; +per_type_decoder_f DrivingLaneStatus_decode_aper; +per_type_encoder_f DrivingLaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivingLaneStatus_H_ */ +#include diff --git a/vcits/denm/EmbarkationStatus.h b/vcits/denm/EmbarkationStatus.h new file mode 100644 index 0000000..258a0f7 --- /dev/null +++ b/vcits/denm/EmbarkationStatus.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _EmbarkationStatus_H_ +#define _EmbarkationStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EmbarkationStatus */ +typedef BOOLEAN_t EmbarkationStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus; +asn_struct_free_f EmbarkationStatus_free; +asn_struct_print_f EmbarkationStatus_print; +asn_constr_check_f EmbarkationStatus_constraint; +ber_type_decoder_f EmbarkationStatus_decode_ber; +der_type_encoder_f EmbarkationStatus_encode_der; +xer_type_decoder_f EmbarkationStatus_decode_xer; +xer_type_encoder_f EmbarkationStatus_encode_xer; +oer_type_decoder_f EmbarkationStatus_decode_oer; +oer_type_encoder_f EmbarkationStatus_encode_oer; +per_type_decoder_f EmbarkationStatus_decode_uper; +per_type_encoder_f EmbarkationStatus_encode_uper; +per_type_decoder_f EmbarkationStatus_decode_aper; +per_type_encoder_f EmbarkationStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmbarkationStatus_H_ */ +#include diff --git a/vcits/denm/EmergencyPriority.h b/vcits/denm/EmergencyPriority.h new file mode 100644 index 0000000..1e3cd60 --- /dev/null +++ b/vcits/denm/EmergencyPriority.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _EmergencyPriority_H_ +#define _EmergencyPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyPriority { + EmergencyPriority_requestForRightOfWay = 0, + EmergencyPriority_requestForFreeCrossingAtATrafficLight = 1 +} e_EmergencyPriority; + +/* EmergencyPriority */ +typedef BIT_STRING_t EmergencyPriority_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyPriority; +asn_struct_free_f EmergencyPriority_free; +asn_struct_print_f EmergencyPriority_print; +asn_constr_check_f EmergencyPriority_constraint; +ber_type_decoder_f EmergencyPriority_decode_ber; +der_type_encoder_f EmergencyPriority_encode_der; +xer_type_decoder_f EmergencyPriority_decode_xer; +xer_type_encoder_f EmergencyPriority_encode_xer; +oer_type_decoder_f EmergencyPriority_decode_oer; +oer_type_encoder_f EmergencyPriority_encode_oer; +per_type_decoder_f EmergencyPriority_decode_uper; +per_type_encoder_f EmergencyPriority_encode_uper; +per_type_decoder_f EmergencyPriority_decode_aper; +per_type_encoder_f EmergencyPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyPriority_H_ */ +#include diff --git a/vcits/denm/EmergencyVehicleApproachingSubCauseCode.h b/vcits/denm/EmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 0000000..0855a18 --- /dev/null +++ b/vcits/denm/EmergencyVehicleApproachingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _EmergencyVehicleApproachingSubCauseCode_H_ +#define _EmergencyVehicleApproachingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyVehicleApproachingSubCauseCode { + EmergencyVehicleApproachingSubCauseCode_unavailable = 0, + EmergencyVehicleApproachingSubCauseCode_emergencyVehicleApproaching = 1, + EmergencyVehicleApproachingSubCauseCode_prioritizedVehicleApproaching = 2 +} e_EmergencyVehicleApproachingSubCauseCode; + +/* EmergencyVehicleApproachingSubCauseCode */ +typedef long EmergencyVehicleApproachingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode; +asn_struct_free_f EmergencyVehicleApproachingSubCauseCode_free; +asn_struct_print_f EmergencyVehicleApproachingSubCauseCode_print; +asn_constr_check_f EmergencyVehicleApproachingSubCauseCode_constraint; +ber_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_ber; +der_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_der; +xer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_xer; +xer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_xer; +oer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_oer; +oer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_oer; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_uper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_uper; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_aper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyVehicleApproachingSubCauseCode_H_ */ +#include diff --git a/vcits/denm/EnergyStorageType.h b/vcits/denm/EnergyStorageType.h new file mode 100644 index 0000000..af23f50 --- /dev/null +++ b/vcits/denm/EnergyStorageType.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _EnergyStorageType_H_ +#define _EnergyStorageType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EnergyStorageType { + EnergyStorageType_hydrogenStorage = 0, + EnergyStorageType_electricEnergyStorage = 1, + EnergyStorageType_liquidPropaneGas = 2, + EnergyStorageType_compressedNaturalGas = 3, + EnergyStorageType_diesel = 4, + EnergyStorageType_gasoline = 5, + EnergyStorageType_ammonia = 6 +} e_EnergyStorageType; + +/* EnergyStorageType */ +typedef BIT_STRING_t EnergyStorageType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EnergyStorageType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EnergyStorageType; +asn_struct_free_f EnergyStorageType_free; +asn_struct_print_f EnergyStorageType_print; +asn_constr_check_f EnergyStorageType_constraint; +ber_type_decoder_f EnergyStorageType_decode_ber; +der_type_encoder_f EnergyStorageType_encode_der; +xer_type_decoder_f EnergyStorageType_decode_xer; +xer_type_encoder_f EnergyStorageType_encode_xer; +oer_type_decoder_f EnergyStorageType_decode_oer; +oer_type_encoder_f EnergyStorageType_encode_oer; +per_type_decoder_f EnergyStorageType_decode_uper; +per_type_encoder_f EnergyStorageType_encode_uper; +per_type_decoder_f EnergyStorageType_decode_aper; +per_type_encoder_f EnergyStorageType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnergyStorageType_H_ */ +#include diff --git a/vcits/denm/EventHistory.h b/vcits/denm/EventHistory.h new file mode 100644 index 0000000..b8c74e8 --- /dev/null +++ b/vcits/denm/EventHistory.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _EventHistory_H_ +#define _EventHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EventPoint; + +/* EventHistory */ +typedef struct EventHistory { + A_SEQUENCE_OF(struct EventPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventHistory; +extern asn_SET_OF_specifics_t asn_SPC_EventHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_EventHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_EventHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventHistory_H_ */ +#include diff --git a/vcits/denm/EventPoint.h b/vcits/denm/EventPoint.h new file mode 100644 index 0000000..e4339bf --- /dev/null +++ b/vcits/denm/EventPoint.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _EventPoint_H_ +#define _EventPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include "InformationQuality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EventPoint */ +typedef struct EventPoint { + DeltaReferencePosition_t eventPosition; + PathDeltaTime_t *eventDeltaTime; /* OPTIONAL */ + InformationQuality_t informationQuality; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_EventPoint_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventPoint_H_ */ +#include diff --git a/vcits/denm/ExteriorLights.h b/vcits/denm/ExteriorLights.h new file mode 100644 index 0000000..0e14af4 --- /dev/null +++ b/vcits/denm/ExteriorLights.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ExteriorLights_H_ +#define _ExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExteriorLights { + ExteriorLights_lowBeamHeadlightsOn = 0, + ExteriorLights_highBeamHeadlightsOn = 1, + ExteriorLights_leftTurnSignalOn = 2, + ExteriorLights_rightTurnSignalOn = 3, + ExteriorLights_daytimeRunningLightsOn = 4, + ExteriorLights_reverseLightOn = 5, + ExteriorLights_fogLightOn = 6, + ExteriorLights_parkingLightsOn = 7 +} e_ExteriorLights; + +/* ExteriorLights */ +typedef BIT_STRING_t ExteriorLights_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ExteriorLights; +asn_struct_free_f ExteriorLights_free; +asn_struct_print_f ExteriorLights_print; +asn_constr_check_f ExteriorLights_constraint; +ber_type_decoder_f ExteriorLights_decode_ber; +der_type_encoder_f ExteriorLights_encode_der; +xer_type_decoder_f ExteriorLights_decode_xer; +xer_type_encoder_f ExteriorLights_encode_xer; +oer_type_decoder_f ExteriorLights_decode_oer; +oer_type_encoder_f ExteriorLights_encode_oer; +per_type_decoder_f ExteriorLights_decode_uper; +per_type_encoder_f ExteriorLights_encode_uper; +per_type_decoder_f ExteriorLights_decode_aper; +per_type_encoder_f ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExteriorLights_H_ */ +#include diff --git a/vcits/denm/HardShoulderStatus.h b/vcits/denm/HardShoulderStatus.h new file mode 100644 index 0000000..d7fe1d0 --- /dev/null +++ b/vcits/denm/HardShoulderStatus.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _HardShoulderStatus_H_ +#define _HardShoulderStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HardShoulderStatus { + HardShoulderStatus_availableForStopping = 0, + HardShoulderStatus_closed = 1, + HardShoulderStatus_availableForDriving = 2 +} e_HardShoulderStatus; + +/* HardShoulderStatus */ +typedef long HardShoulderStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus; +extern const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1; +asn_struct_free_f HardShoulderStatus_free; +asn_struct_print_f HardShoulderStatus_print; +asn_constr_check_f HardShoulderStatus_constraint; +ber_type_decoder_f HardShoulderStatus_decode_ber; +der_type_encoder_f HardShoulderStatus_encode_der; +xer_type_decoder_f HardShoulderStatus_decode_xer; +xer_type_encoder_f HardShoulderStatus_encode_xer; +oer_type_decoder_f HardShoulderStatus_decode_oer; +oer_type_encoder_f HardShoulderStatus_encode_oer; +per_type_decoder_f HardShoulderStatus_decode_uper; +per_type_encoder_f HardShoulderStatus_encode_uper; +per_type_decoder_f HardShoulderStatus_decode_aper; +per_type_encoder_f HardShoulderStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HardShoulderStatus_H_ */ +#include diff --git a/vcits/denm/HazardousLocation-AnimalOnTheRoadSubCauseCode.h b/vcits/denm/HazardousLocation-AnimalOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..0802bf5 --- /dev/null +++ b/vcits/denm/HazardousLocation-AnimalOnTheRoadSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_AnimalOnTheRoadSubCauseCode { + HazardousLocation_AnimalOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimals = 1, + HazardousLocation_AnimalOnTheRoadSubCauseCode_herdOfAnimals = 2, + HazardousLocation_AnimalOnTheRoadSubCauseCode_smallAnimals = 3, + HazardousLocation_AnimalOnTheRoadSubCauseCode_largeAnimals = 4 +} e_HazardousLocation_AnimalOnTheRoadSubCauseCode; + +/* HazardousLocation-AnimalOnTheRoadSubCauseCode */ +typedef long HazardousLocation_AnimalOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_AnimalOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_AnimalOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/denm/HazardousLocation-DangerousCurveSubCauseCode.h b/vcits/denm/HazardousLocation-DangerousCurveSubCauseCode.h new file mode 100644 index 0000000..4cf5611 --- /dev/null +++ b/vcits/denm/HazardousLocation-DangerousCurveSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _HazardousLocation_DangerousCurveSubCauseCode_H_ +#define _HazardousLocation_DangerousCurveSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_DangerousCurveSubCauseCode { + HazardousLocation_DangerousCurveSubCauseCode_unavailable = 0, + HazardousLocation_DangerousCurveSubCauseCode_dangerousLeftTurnCurve = 1, + HazardousLocation_DangerousCurveSubCauseCode_dangerousRightTurnCurve = 2, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithUnknownTurningDirection = 3, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithLeftTurn = 4, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithRightTurn = 5 +} e_HazardousLocation_DangerousCurveSubCauseCode; + +/* HazardousLocation-DangerousCurveSubCauseCode */ +typedef long HazardousLocation_DangerousCurveSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode; +asn_struct_free_f HazardousLocation_DangerousCurveSubCauseCode_free; +asn_struct_print_f HazardousLocation_DangerousCurveSubCauseCode_print; +asn_constr_check_f HazardousLocation_DangerousCurveSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_DangerousCurveSubCauseCode_H_ */ +#include diff --git a/vcits/denm/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h b/vcits/denm/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..bdce003 --- /dev/null +++ b/vcits/denm/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_ObstacleOnTheRoadSubCauseCode { + HazardousLocation_ObstacleOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_shedLoad = 1, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfVehicles = 2, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfTyres = 3, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_bigObjects = 4, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_fallenTrees = 5, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_hubCaps = 6, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_waitingVehicles = 7 +} e_HazardousLocation_ObstacleOnTheRoadSubCauseCode; + +/* HazardousLocation-ObstacleOnTheRoadSubCauseCode */ +typedef long HazardousLocation_ObstacleOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/denm/HazardousLocation-SurfaceConditionSubCauseCode.h b/vcits/denm/HazardousLocation-SurfaceConditionSubCauseCode.h new file mode 100644 index 0000000..5bc3d6c --- /dev/null +++ b/vcits/denm/HazardousLocation-SurfaceConditionSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _HazardousLocation_SurfaceConditionSubCauseCode_H_ +#define _HazardousLocation_SurfaceConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_SurfaceConditionSubCauseCode { + HazardousLocation_SurfaceConditionSubCauseCode_unavailable = 0, + HazardousLocation_SurfaceConditionSubCauseCode_rockfalls = 1, + HazardousLocation_SurfaceConditionSubCauseCode_earthquakeDamage = 2, + HazardousLocation_SurfaceConditionSubCauseCode_sewerCollapse = 3, + HazardousLocation_SurfaceConditionSubCauseCode_subsidence = 4, + HazardousLocation_SurfaceConditionSubCauseCode_snowDrifts = 5, + HazardousLocation_SurfaceConditionSubCauseCode_stormDamage = 6, + HazardousLocation_SurfaceConditionSubCauseCode_burstPipe = 7, + HazardousLocation_SurfaceConditionSubCauseCode_volcanoEruption = 8, + HazardousLocation_SurfaceConditionSubCauseCode_fallingIce = 9 +} e_HazardousLocation_SurfaceConditionSubCauseCode; + +/* HazardousLocation-SurfaceConditionSubCauseCode */ +typedef long HazardousLocation_SurfaceConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode; +asn_struct_free_f HazardousLocation_SurfaceConditionSubCauseCode_free; +asn_struct_print_f HazardousLocation_SurfaceConditionSubCauseCode_print; +asn_constr_check_f HazardousLocation_SurfaceConditionSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_SurfaceConditionSubCauseCode_H_ */ +#include diff --git a/vcits/denm/Heading.h b/vcits/denm/Heading.h new file mode 100644 index 0000000..986a8e2 --- /dev/null +++ b/vcits/denm/Heading.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _Heading_H_ +#define _Heading_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingValue.h" +#include "HeadingConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Heading */ +typedef struct Heading { + HeadingValue_t headingValue; + HeadingConfidence_t headingConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Heading_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Heading; +extern asn_SEQUENCE_specifics_t asn_SPC_Heading_specs_1; +extern asn_TYPE_member_t asn_MBR_Heading_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Heading_H_ */ +#include diff --git a/vcits/denm/HeadingConfidence.h b/vcits/denm/HeadingConfidence.h new file mode 100644 index 0000000..47e8371 --- /dev/null +++ b/vcits/denm/HeadingConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _HeadingConfidence_H_ +#define _HeadingConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidence { + HeadingConfidence_equalOrWithinZeroPointOneDegree = 1, + HeadingConfidence_equalOrWithinOneDegree = 10, + HeadingConfidence_outOfRange = 126, + HeadingConfidence_unavailable = 127 +} e_HeadingConfidence; + +/* HeadingConfidence */ +typedef long HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidence; +asn_struct_free_f HeadingConfidence_free; +asn_struct_print_f HeadingConfidence_print; +asn_constr_check_f HeadingConfidence_constraint; +ber_type_decoder_f HeadingConfidence_decode_ber; +der_type_encoder_f HeadingConfidence_encode_der; +xer_type_decoder_f HeadingConfidence_decode_xer; +xer_type_encoder_f HeadingConfidence_encode_xer; +oer_type_decoder_f HeadingConfidence_decode_oer; +oer_type_encoder_f HeadingConfidence_encode_oer; +per_type_decoder_f HeadingConfidence_decode_uper; +per_type_encoder_f HeadingConfidence_encode_uper; +per_type_decoder_f HeadingConfidence_decode_aper; +per_type_encoder_f HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidence_H_ */ +#include diff --git a/vcits/denm/HeadingValue.h b/vcits/denm/HeadingValue.h new file mode 100644 index 0000000..5cb3231 --- /dev/null +++ b/vcits/denm/HeadingValue.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _HeadingValue_H_ +#define _HeadingValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingValue { + HeadingValue_wgs84North = 0, + HeadingValue_wgs84East = 900, + HeadingValue_wgs84South = 1800, + HeadingValue_wgs84West = 2700, + HeadingValue_unavailable = 3601 +} e_HeadingValue; + +/* HeadingValue */ +typedef long HeadingValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingValue; +asn_struct_free_f HeadingValue_free; +asn_struct_print_f HeadingValue_print; +asn_constr_check_f HeadingValue_constraint; +ber_type_decoder_f HeadingValue_decode_ber; +der_type_encoder_f HeadingValue_encode_der; +xer_type_decoder_f HeadingValue_decode_xer; +xer_type_encoder_f HeadingValue_encode_xer; +oer_type_decoder_f HeadingValue_decode_oer; +oer_type_encoder_f HeadingValue_encode_oer; +per_type_decoder_f HeadingValue_decode_uper; +per_type_encoder_f HeadingValue_encode_uper; +per_type_decoder_f HeadingValue_decode_aper; +per_type_encoder_f HeadingValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingValue_H_ */ +#include diff --git a/vcits/denm/HeightLonCarr.h b/vcits/denm/HeightLonCarr.h new file mode 100644 index 0000000..db81912 --- /dev/null +++ b/vcits/denm/HeightLonCarr.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _HeightLonCarr_H_ +#define _HeightLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeightLonCarr { + HeightLonCarr_oneCentimeter = 1, + HeightLonCarr_unavailable = 100 +} e_HeightLonCarr; + +/* HeightLonCarr */ +typedef long HeightLonCarr_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeightLonCarr_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeightLonCarr; +asn_struct_free_f HeightLonCarr_free; +asn_struct_print_f HeightLonCarr_print; +asn_constr_check_f HeightLonCarr_constraint; +ber_type_decoder_f HeightLonCarr_decode_ber; +der_type_encoder_f HeightLonCarr_encode_der; +xer_type_decoder_f HeightLonCarr_decode_xer; +xer_type_encoder_f HeightLonCarr_encode_xer; +oer_type_decoder_f HeightLonCarr_decode_oer; +oer_type_encoder_f HeightLonCarr_encode_oer; +per_type_decoder_f HeightLonCarr_decode_uper; +per_type_encoder_f HeightLonCarr_encode_uper; +per_type_decoder_f HeightLonCarr_decode_aper; +per_type_encoder_f HeightLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeightLonCarr_H_ */ +#include diff --git a/vcits/denm/HumanPresenceOnTheRoadSubCauseCode.h b/vcits/denm/HumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..dccf366 --- /dev/null +++ b/vcits/denm/HumanPresenceOnTheRoadSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _HumanPresenceOnTheRoadSubCauseCode_H_ +#define _HumanPresenceOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanPresenceOnTheRoadSubCauseCode { + HumanPresenceOnTheRoadSubCauseCode_unavailable = 0, + HumanPresenceOnTheRoadSubCauseCode_childrenOnRoadway = 1, + HumanPresenceOnTheRoadSubCauseCode_cyclistOnRoadway = 2, + HumanPresenceOnTheRoadSubCauseCode_motorcyclistOnRoadway = 3 +} e_HumanPresenceOnTheRoadSubCauseCode; + +/* HumanPresenceOnTheRoadSubCauseCode */ +typedef long HumanPresenceOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode; +asn_struct_free_f HumanPresenceOnTheRoadSubCauseCode_free; +asn_struct_print_f HumanPresenceOnTheRoadSubCauseCode_print; +asn_constr_check_f HumanPresenceOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanPresenceOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/denm/HumanProblemSubCauseCode.h b/vcits/denm/HumanProblemSubCauseCode.h new file mode 100644 index 0000000..06eeaca --- /dev/null +++ b/vcits/denm/HumanProblemSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _HumanProblemSubCauseCode_H_ +#define _HumanProblemSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanProblemSubCauseCode { + HumanProblemSubCauseCode_unavailable = 0, + HumanProblemSubCauseCode_glycemiaProblem = 1, + HumanProblemSubCauseCode_heartProblem = 2 +} e_HumanProblemSubCauseCode; + +/* HumanProblemSubCauseCode */ +typedef long HumanProblemSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode; +asn_struct_free_f HumanProblemSubCauseCode_free; +asn_struct_print_f HumanProblemSubCauseCode_print; +asn_constr_check_f HumanProblemSubCauseCode_constraint; +ber_type_decoder_f HumanProblemSubCauseCode_decode_ber; +der_type_encoder_f HumanProblemSubCauseCode_encode_der; +xer_type_decoder_f HumanProblemSubCauseCode_decode_xer; +xer_type_encoder_f HumanProblemSubCauseCode_encode_xer; +oer_type_decoder_f HumanProblemSubCauseCode_decode_oer; +oer_type_encoder_f HumanProblemSubCauseCode_encode_oer; +per_type_decoder_f HumanProblemSubCauseCode_decode_uper; +per_type_encoder_f HumanProblemSubCauseCode_encode_uper; +per_type_decoder_f HumanProblemSubCauseCode_decode_aper; +per_type_encoder_f HumanProblemSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanProblemSubCauseCode_H_ */ +#include diff --git a/vcits/denm/ImpactReductionContainer.h b/vcits/denm/ImpactReductionContainer.h new file mode 100644 index 0000000..cefb717 --- /dev/null +++ b/vcits/denm/ImpactReductionContainer.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ImpactReductionContainer_H_ +#define _ImpactReductionContainer_H_ + + +#include + +/* Including external dependencies */ +#include "HeightLonCarr.h" +#include "PosLonCarr.h" +#include "PositionOfPillars.h" +#include "PosCentMass.h" +#include "WheelBaseVehicle.h" +#include "TurningRadius.h" +#include "PosFrontAx.h" +#include "PositionOfOccupants.h" +#include "VehicleMass.h" +#include "RequestResponseIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ImpactReductionContainer */ +typedef struct ImpactReductionContainer { + HeightLonCarr_t heightLonCarrLeft; + HeightLonCarr_t heightLonCarrRight; + PosLonCarr_t posLonCarrLeft; + PosLonCarr_t posLonCarrRight; + PositionOfPillars_t positionOfPillars; + PosCentMass_t posCentMass; + WheelBaseVehicle_t wheelBaseVehicle; + TurningRadius_t turningRadius; + PosFrontAx_t posFrontAx; + PositionOfOccupants_t positionOfOccupants; + VehicleMass_t vehicleMass; + RequestResponseIndication_t requestResponseIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ImpactReductionContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ImpactReductionContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_ImpactReductionContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ImpactReductionContainer_1[12]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ImpactReductionContainer_H_ */ +#include diff --git a/vcits/denm/InformationQuality.h b/vcits/denm/InformationQuality.h new file mode 100644 index 0000000..51f7fc9 --- /dev/null +++ b/vcits/denm/InformationQuality.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _InformationQuality_H_ +#define _InformationQuality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InformationQuality { + InformationQuality_unavailable = 0, + InformationQuality_lowest = 1, + InformationQuality_highest = 7 +} e_InformationQuality; + +/* InformationQuality */ +typedef long InformationQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_InformationQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_InformationQuality; +asn_struct_free_f InformationQuality_free; +asn_struct_print_f InformationQuality_print; +asn_constr_check_f InformationQuality_constraint; +ber_type_decoder_f InformationQuality_decode_ber; +der_type_encoder_f InformationQuality_encode_der; +xer_type_decoder_f InformationQuality_decode_xer; +xer_type_encoder_f InformationQuality_encode_xer; +oer_type_decoder_f InformationQuality_decode_oer; +oer_type_encoder_f InformationQuality_encode_oer; +per_type_decoder_f InformationQuality_decode_uper; +per_type_encoder_f InformationQuality_encode_uper; +per_type_decoder_f InformationQuality_decode_aper; +per_type_encoder_f InformationQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InformationQuality_H_ */ +#include diff --git a/vcits/denm/ItineraryPath.h b/vcits/denm/ItineraryPath.h new file mode 100644 index 0000000..5aa472c --- /dev/null +++ b/vcits/denm/ItineraryPath.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ItineraryPath_H_ +#define _ItineraryPath_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* ItineraryPath */ +typedef struct ItineraryPath { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItineraryPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItineraryPath; +extern asn_SET_OF_specifics_t asn_SPC_ItineraryPath_specs_1; +extern asn_TYPE_member_t asn_MBR_ItineraryPath_1[1]; +extern asn_per_constraints_t asn_PER_type_ItineraryPath_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItineraryPath_H_ */ +#include diff --git a/vcits/denm/ItsPduHeader.h b/vcits/denm/ItsPduHeader.h new file mode 100644 index 0000000..45d1e9c --- /dev/null +++ b/vcits/denm/ItsPduHeader.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ItsPduHeader_H_ +#define _ItsPduHeader_H_ + + +#include + +/* Including external dependencies */ +#include +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ItsPduHeader__messageID { + ItsPduHeader__messageID_denm = 1, + ItsPduHeader__messageID_cam = 2, + ItsPduHeader__messageID_poi = 3, + ItsPduHeader__messageID_spatem = 4, + ItsPduHeader__messageID_mapem = 5, + ItsPduHeader__messageID_ivim = 6, + ItsPduHeader__messageID_ev_rsr = 7, + ItsPduHeader__messageID_tistpgtransaction = 8, + ItsPduHeader__messageID_srem = 9, + ItsPduHeader__messageID_ssem = 10, + ItsPduHeader__messageID_evcsn = 11, + ItsPduHeader__messageID_saem = 12, + ItsPduHeader__messageID_rtcmem = 13 +} e_ItsPduHeader__messageID; + +/* ItsPduHeader */ +typedef struct ItsPduHeader { + long protocolVersion; + long messageID; + StationID_t stationID; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsPduHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsPduHeader; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsPduHeader_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsPduHeader_H_ */ +#include diff --git a/vcits/denm/LanePosition.h b/vcits/denm/LanePosition.h new file mode 100644 index 0000000..4ded016 --- /dev/null +++ b/vcits/denm/LanePosition.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _LanePosition_H_ +#define _LanePosition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LanePosition { + LanePosition_offTheRoad = -1, + LanePosition_innerHardShoulder = 0, + LanePosition_innermostDrivingLane = 1, + LanePosition_secondLaneFromInside = 2, + LanePosition_outerHardShoulder = 14 +} e_LanePosition; + +/* LanePosition */ +typedef long LanePosition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LanePosition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LanePosition; +asn_struct_free_f LanePosition_free; +asn_struct_print_f LanePosition_print; +asn_constr_check_f LanePosition_constraint; +ber_type_decoder_f LanePosition_decode_ber; +der_type_encoder_f LanePosition_encode_der; +xer_type_decoder_f LanePosition_decode_xer; +xer_type_encoder_f LanePosition_encode_xer; +oer_type_decoder_f LanePosition_decode_oer; +oer_type_encoder_f LanePosition_encode_oer; +per_type_decoder_f LanePosition_decode_uper; +per_type_encoder_f LanePosition_encode_uper; +per_type_decoder_f LanePosition_decode_aper; +per_type_encoder_f LanePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LanePosition_H_ */ +#include diff --git a/vcits/denm/LateralAcceleration.h b/vcits/denm/LateralAcceleration.h new file mode 100644 index 0000000..f6f1182 --- /dev/null +++ b/vcits/denm/LateralAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _LateralAcceleration_H_ +#define _LateralAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LateralAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LateralAcceleration */ +typedef struct LateralAcceleration { + LateralAccelerationValue_t lateralAccelerationValue; + AccelerationConfidence_t lateralAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LateralAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LateralAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAcceleration_H_ */ +#include diff --git a/vcits/denm/LateralAccelerationValue.h b/vcits/denm/LateralAccelerationValue.h new file mode 100644 index 0000000..6911a75 --- /dev/null +++ b/vcits/denm/LateralAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _LateralAccelerationValue_H_ +#define _LateralAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LateralAccelerationValue { + LateralAccelerationValue_pointOneMeterPerSecSquaredToRight = -1, + LateralAccelerationValue_pointOneMeterPerSecSquaredToLeft = 1, + LateralAccelerationValue_unavailable = 161 +} e_LateralAccelerationValue; + +/* LateralAccelerationValue */ +typedef long LateralAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue; +asn_struct_free_f LateralAccelerationValue_free; +asn_struct_print_f LateralAccelerationValue_print; +asn_constr_check_f LateralAccelerationValue_constraint; +ber_type_decoder_f LateralAccelerationValue_decode_ber; +der_type_encoder_f LateralAccelerationValue_encode_der; +xer_type_decoder_f LateralAccelerationValue_decode_xer; +xer_type_encoder_f LateralAccelerationValue_encode_xer; +oer_type_decoder_f LateralAccelerationValue_decode_oer; +oer_type_encoder_f LateralAccelerationValue_encode_oer; +per_type_decoder_f LateralAccelerationValue_decode_uper; +per_type_encoder_f LateralAccelerationValue_encode_uper; +per_type_decoder_f LateralAccelerationValue_decode_aper; +per_type_encoder_f LateralAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAccelerationValue_H_ */ +#include diff --git a/vcits/denm/Latitude.h b/vcits/denm/Latitude.h new file mode 100644 index 0000000..58b0b85 --- /dev/null +++ b/vcits/denm/Latitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _Latitude_H_ +#define _Latitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Latitude { + Latitude_oneMicrodegreeNorth = 10, + Latitude_oneMicrodegreeSouth = -10, + Latitude_unavailable = 900000001 +} e_Latitude; + +/* Latitude */ +typedef long Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Latitude; +asn_struct_free_f Latitude_free; +asn_struct_print_f Latitude_print; +asn_constr_check_f Latitude_constraint; +ber_type_decoder_f Latitude_decode_ber; +der_type_encoder_f Latitude_encode_der; +xer_type_decoder_f Latitude_decode_xer; +xer_type_encoder_f Latitude_encode_xer; +oer_type_decoder_f Latitude_decode_oer; +oer_type_encoder_f Latitude_encode_oer; +per_type_decoder_f Latitude_decode_uper; +per_type_encoder_f Latitude_encode_uper; +per_type_decoder_f Latitude_decode_aper; +per_type_encoder_f Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Latitude_H_ */ +#include diff --git a/vcits/denm/LightBarSirenInUse.h b/vcits/denm/LightBarSirenInUse.h new file mode 100644 index 0000000..62c4f3f --- /dev/null +++ b/vcits/denm/LightBarSirenInUse.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _LightBarSirenInUse_H_ +#define _LightBarSirenInUse_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LightBarSirenInUse { + LightBarSirenInUse_lightBarActivated = 0, + LightBarSirenInUse_sirenActivated = 1 +} e_LightBarSirenInUse; + +/* LightBarSirenInUse */ +typedef BIT_STRING_t LightBarSirenInUse_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LightBarSirenInUse_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse; +asn_struct_free_f LightBarSirenInUse_free; +asn_struct_print_f LightBarSirenInUse_print; +asn_constr_check_f LightBarSirenInUse_constraint; +ber_type_decoder_f LightBarSirenInUse_decode_ber; +der_type_encoder_f LightBarSirenInUse_encode_der; +xer_type_decoder_f LightBarSirenInUse_decode_xer; +xer_type_encoder_f LightBarSirenInUse_encode_xer; +oer_type_decoder_f LightBarSirenInUse_decode_oer; +oer_type_encoder_f LightBarSirenInUse_encode_oer; +per_type_decoder_f LightBarSirenInUse_decode_uper; +per_type_encoder_f LightBarSirenInUse_encode_uper; +per_type_decoder_f LightBarSirenInUse_decode_aper; +per_type_encoder_f LightBarSirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LightBarSirenInUse_H_ */ +#include diff --git a/vcits/denm/LocationContainer.h b/vcits/denm/LocationContainer.h new file mode 100644 index 0000000..244980e --- /dev/null +++ b/vcits/denm/LocationContainer.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _LocationContainer_H_ +#define _LocationContainer_H_ + + +#include + +/* Including external dependencies */ +#include "Traces.h" +#include "RoadType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Speed; +struct Heading; + +/* LocationContainer */ +typedef struct LocationContainer { + struct Speed *eventSpeed; /* OPTIONAL */ + struct Heading *eventPositionHeading; /* OPTIONAL */ + Traces_t traces; + RoadType_t *roadType; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LocationContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LocationContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_LocationContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_LocationContainer_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LocationContainer_H_ */ +#include diff --git a/vcits/denm/Longitude.h b/vcits/denm/Longitude.h new file mode 100644 index 0000000..1eae9d5 --- /dev/null +++ b/vcits/denm/Longitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _Longitude_H_ +#define _Longitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Longitude { + Longitude_oneMicrodegreeEast = 10, + Longitude_oneMicrodegreeWest = -10, + Longitude_unavailable = 1800000001 +} e_Longitude; + +/* Longitude */ +typedef long Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Longitude; +asn_struct_free_f Longitude_free; +asn_struct_print_f Longitude_print; +asn_constr_check_f Longitude_constraint; +ber_type_decoder_f Longitude_decode_ber; +der_type_encoder_f Longitude_encode_der; +xer_type_decoder_f Longitude_decode_xer; +xer_type_encoder_f Longitude_encode_xer; +oer_type_decoder_f Longitude_decode_oer; +oer_type_encoder_f Longitude_encode_oer; +per_type_decoder_f Longitude_decode_uper; +per_type_encoder_f Longitude_encode_uper; +per_type_decoder_f Longitude_decode_aper; +per_type_encoder_f Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Longitude_H_ */ +#include diff --git a/vcits/denm/LongitudinalAcceleration.h b/vcits/denm/LongitudinalAcceleration.h new file mode 100644 index 0000000..da37887 --- /dev/null +++ b/vcits/denm/LongitudinalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _LongitudinalAcceleration_H_ +#define _LongitudinalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LongitudinalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LongitudinalAcceleration */ +typedef struct LongitudinalAcceleration { + LongitudinalAccelerationValue_t longitudinalAccelerationValue; + AccelerationConfidence_t longitudinalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LongitudinalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAcceleration_H_ */ +#include diff --git a/vcits/denm/LongitudinalAccelerationValue.h b/vcits/denm/LongitudinalAccelerationValue.h new file mode 100644 index 0000000..0a40197 --- /dev/null +++ b/vcits/denm/LongitudinalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _LongitudinalAccelerationValue_H_ +#define _LongitudinalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LongitudinalAccelerationValue { + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredForward = 1, + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredBackward = -1, + LongitudinalAccelerationValue_unavailable = 161 +} e_LongitudinalAccelerationValue; + +/* LongitudinalAccelerationValue */ +typedef long LongitudinalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue; +asn_struct_free_f LongitudinalAccelerationValue_free; +asn_struct_print_f LongitudinalAccelerationValue_print; +asn_constr_check_f LongitudinalAccelerationValue_constraint; +ber_type_decoder_f LongitudinalAccelerationValue_decode_ber; +der_type_encoder_f LongitudinalAccelerationValue_encode_der; +xer_type_decoder_f LongitudinalAccelerationValue_decode_xer; +xer_type_encoder_f LongitudinalAccelerationValue_encode_xer; +oer_type_decoder_f LongitudinalAccelerationValue_decode_oer; +oer_type_encoder_f LongitudinalAccelerationValue_encode_oer; +per_type_decoder_f LongitudinalAccelerationValue_decode_uper; +per_type_encoder_f LongitudinalAccelerationValue_encode_uper; +per_type_decoder_f LongitudinalAccelerationValue_decode_aper; +per_type_encoder_f LongitudinalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAccelerationValue_H_ */ +#include diff --git a/vcits/denm/ManagementContainer.h b/vcits/denm/ManagementContainer.h new file mode 100644 index 0000000..259d948 --- /dev/null +++ b/vcits/denm/ManagementContainer.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ManagementContainer_H_ +#define _ManagementContainer_H_ + + +#include + +/* Including external dependencies */ +#include "ActionID.h" +#include "TimestampIts.h" +#include "Termination.h" +#include "ReferencePosition.h" +#include "RelevanceDistance.h" +#include "RelevanceTrafficDirection.h" +#include "ValidityDuration.h" +#include "TransmissionInterval.h" +#include "StationType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ManagementContainer */ +typedef struct ManagementContainer { + ActionID_t actionID; + TimestampIts_t detectionTime; + TimestampIts_t referenceTime; + Termination_t *termination; /* OPTIONAL */ + ReferencePosition_t eventPosition; + RelevanceDistance_t *relevanceDistance; /* OPTIONAL */ + RelevanceTrafficDirection_t *relevanceTrafficDirection; /* OPTIONAL */ + ValidityDuration_t *validityDuration; /* DEFAULT 600 */ + TransmissionInterval_t *transmissionInterval; /* OPTIONAL */ + StationType_t stationType; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ManagementContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ManagementContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_ManagementContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ManagementContainer_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManagementContainer_H_ */ +#include diff --git a/vcits/denm/NumberOfOccupants.h b/vcits/denm/NumberOfOccupants.h new file mode 100644 index 0000000..d602294 --- /dev/null +++ b/vcits/denm/NumberOfOccupants.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _NumberOfOccupants_H_ +#define _NumberOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NumberOfOccupants { + NumberOfOccupants_oneOccupant = 1, + NumberOfOccupants_unavailable = 127 +} e_NumberOfOccupants; + +/* NumberOfOccupants */ +typedef long NumberOfOccupants_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NumberOfOccupants_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants; +asn_struct_free_f NumberOfOccupants_free; +asn_struct_print_f NumberOfOccupants_print; +asn_constr_check_f NumberOfOccupants_constraint; +ber_type_decoder_f NumberOfOccupants_decode_ber; +der_type_encoder_f NumberOfOccupants_encode_der; +xer_type_decoder_f NumberOfOccupants_decode_xer; +xer_type_encoder_f NumberOfOccupants_encode_xer; +oer_type_decoder_f NumberOfOccupants_decode_oer; +oer_type_encoder_f NumberOfOccupants_encode_oer; +per_type_decoder_f NumberOfOccupants_decode_uper; +per_type_encoder_f NumberOfOccupants_encode_uper; +per_type_decoder_f NumberOfOccupants_decode_aper; +per_type_encoder_f NumberOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NumberOfOccupants_H_ */ +#include diff --git a/vcits/denm/OpeningDaysHours.h b/vcits/denm/OpeningDaysHours.h new file mode 100644 index 0000000..5176dd8 --- /dev/null +++ b/vcits/denm/OpeningDaysHours.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _OpeningDaysHours_H_ +#define _OpeningDaysHours_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OpeningDaysHours */ +typedef UTF8String_t OpeningDaysHours_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours; +asn_struct_free_f OpeningDaysHours_free; +asn_struct_print_f OpeningDaysHours_print; +asn_constr_check_f OpeningDaysHours_constraint; +ber_type_decoder_f OpeningDaysHours_decode_ber; +der_type_encoder_f OpeningDaysHours_encode_der; +xer_type_decoder_f OpeningDaysHours_decode_xer; +xer_type_encoder_f OpeningDaysHours_encode_xer; +oer_type_decoder_f OpeningDaysHours_decode_oer; +oer_type_encoder_f OpeningDaysHours_encode_oer; +per_type_decoder_f OpeningDaysHours_decode_uper; +per_type_encoder_f OpeningDaysHours_encode_uper; +per_type_decoder_f OpeningDaysHours_decode_aper; +per_type_encoder_f OpeningDaysHours_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OpeningDaysHours_H_ */ +#include diff --git a/vcits/denm/PathDeltaTime.h b/vcits/denm/PathDeltaTime.h new file mode 100644 index 0000000..edd01a9 --- /dev/null +++ b/vcits/denm/PathDeltaTime.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PathDeltaTime_H_ +#define _PathDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PathDeltaTime { + PathDeltaTime_tenMilliSecondsInPast = 1 +} e_PathDeltaTime; + +/* PathDeltaTime */ +typedef long PathDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PathDeltaTime; +asn_struct_free_f PathDeltaTime_free; +asn_struct_print_f PathDeltaTime_print; +asn_constr_check_f PathDeltaTime_constraint; +ber_type_decoder_f PathDeltaTime_decode_ber; +der_type_encoder_f PathDeltaTime_encode_der; +xer_type_decoder_f PathDeltaTime_decode_xer; +xer_type_encoder_f PathDeltaTime_encode_xer; +oer_type_decoder_f PathDeltaTime_decode_oer; +oer_type_encoder_f PathDeltaTime_encode_oer; +per_type_decoder_f PathDeltaTime_decode_uper; +per_type_encoder_f PathDeltaTime_encode_uper; +per_type_decoder_f PathDeltaTime_decode_aper; +per_type_encoder_f PathDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathDeltaTime_H_ */ +#include diff --git a/vcits/denm/PathHistory.h b/vcits/denm/PathHistory.h new file mode 100644 index 0000000..ae6415b --- /dev/null +++ b/vcits/denm/PathHistory.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PathHistory_H_ +#define _PathHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathPoint; + +/* PathHistory */ +typedef struct PathHistory { + A_SEQUENCE_OF(struct PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathHistory; +extern asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_PathHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_PathHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathHistory_H_ */ +#include diff --git a/vcits/denm/PathPoint.h b/vcits/denm/PathPoint.h new file mode 100644 index 0000000..db26d9d --- /dev/null +++ b/vcits/denm/PathPoint.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PathPoint_H_ +#define _PathPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PathPoint */ +typedef struct PathPoint { + DeltaReferencePosition_t pathPosition; + PathDeltaTime_t *pathDeltaTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_PathPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathPoint_H_ */ +#include diff --git a/vcits/denm/PerformanceClass.h b/vcits/denm/PerformanceClass.h new file mode 100644 index 0000000..395ee79 --- /dev/null +++ b/vcits/denm/PerformanceClass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PerformanceClass_H_ +#define _PerformanceClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PerformanceClass { + PerformanceClass_unavailable = 0, + PerformanceClass_performanceClassA = 1, + PerformanceClass_performanceClassB = 2 +} e_PerformanceClass; + +/* PerformanceClass */ +typedef long PerformanceClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PerformanceClass; +asn_struct_free_f PerformanceClass_free; +asn_struct_print_f PerformanceClass_print; +asn_constr_check_f PerformanceClass_constraint; +ber_type_decoder_f PerformanceClass_decode_ber; +der_type_encoder_f PerformanceClass_encode_der; +xer_type_decoder_f PerformanceClass_decode_xer; +xer_type_encoder_f PerformanceClass_encode_xer; +oer_type_decoder_f PerformanceClass_decode_oer; +oer_type_encoder_f PerformanceClass_encode_oer; +per_type_decoder_f PerformanceClass_decode_uper; +per_type_encoder_f PerformanceClass_encode_uper; +per_type_decoder_f PerformanceClass_decode_aper; +per_type_encoder_f PerformanceClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PerformanceClass_H_ */ +#include diff --git a/vcits/denm/PhoneNumber.h b/vcits/denm/PhoneNumber.h new file mode 100644 index 0000000..c8358de --- /dev/null +++ b/vcits/denm/PhoneNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PhoneNumber_H_ +#define _PhoneNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PhoneNumber */ +typedef NumericString_t PhoneNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PhoneNumber; +asn_struct_free_f PhoneNumber_free; +asn_struct_print_f PhoneNumber_print; +asn_constr_check_f PhoneNumber_constraint; +ber_type_decoder_f PhoneNumber_decode_ber; +der_type_encoder_f PhoneNumber_encode_der; +xer_type_decoder_f PhoneNumber_decode_xer; +xer_type_encoder_f PhoneNumber_encode_xer; +oer_type_decoder_f PhoneNumber_decode_oer; +oer_type_encoder_f PhoneNumber_encode_oer; +per_type_decoder_f PhoneNumber_decode_uper; +per_type_encoder_f PhoneNumber_encode_uper; +per_type_decoder_f PhoneNumber_decode_aper; +per_type_encoder_f PhoneNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PhoneNumber_H_ */ +#include diff --git a/vcits/denm/PosCentMass.h b/vcits/denm/PosCentMass.h new file mode 100644 index 0000000..0b2767d --- /dev/null +++ b/vcits/denm/PosCentMass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PosCentMass_H_ +#define _PosCentMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosCentMass { + PosCentMass_tenCentimeters = 1, + PosCentMass_unavailable = 63 +} e_PosCentMass; + +/* PosCentMass */ +typedef long PosCentMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PosCentMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PosCentMass; +asn_struct_free_f PosCentMass_free; +asn_struct_print_f PosCentMass_print; +asn_constr_check_f PosCentMass_constraint; +ber_type_decoder_f PosCentMass_decode_ber; +der_type_encoder_f PosCentMass_encode_der; +xer_type_decoder_f PosCentMass_decode_xer; +xer_type_encoder_f PosCentMass_encode_xer; +oer_type_decoder_f PosCentMass_decode_oer; +oer_type_encoder_f PosCentMass_encode_oer; +per_type_decoder_f PosCentMass_decode_uper; +per_type_encoder_f PosCentMass_encode_uper; +per_type_decoder_f PosCentMass_decode_aper; +per_type_encoder_f PosCentMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosCentMass_H_ */ +#include diff --git a/vcits/denm/PosConfidenceEllipse.h b/vcits/denm/PosConfidenceEllipse.h new file mode 100644 index 0000000..f74e7a2 --- /dev/null +++ b/vcits/denm/PosConfidenceEllipse.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PosConfidenceEllipse_H_ +#define _PosConfidenceEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "SemiAxisLength.h" +#include "HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PosConfidenceEllipse */ +typedef struct PosConfidenceEllipse { + SemiAxisLength_t semiMajorConfidence; + SemiAxisLength_t semiMinorConfidence; + HeadingValue_t semiMajorOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PosConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosConfidenceEllipse_H_ */ +#include diff --git a/vcits/denm/PosFrontAx.h b/vcits/denm/PosFrontAx.h new file mode 100644 index 0000000..0ee9339 --- /dev/null +++ b/vcits/denm/PosFrontAx.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PosFrontAx_H_ +#define _PosFrontAx_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosFrontAx { + PosFrontAx_tenCentimeters = 1, + PosFrontAx_unavailable = 20 +} e_PosFrontAx; + +/* PosFrontAx */ +typedef long PosFrontAx_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PosFrontAx_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PosFrontAx; +asn_struct_free_f PosFrontAx_free; +asn_struct_print_f PosFrontAx_print; +asn_constr_check_f PosFrontAx_constraint; +ber_type_decoder_f PosFrontAx_decode_ber; +der_type_encoder_f PosFrontAx_encode_der; +xer_type_decoder_f PosFrontAx_decode_xer; +xer_type_encoder_f PosFrontAx_encode_xer; +oer_type_decoder_f PosFrontAx_decode_oer; +oer_type_encoder_f PosFrontAx_encode_oer; +per_type_decoder_f PosFrontAx_decode_uper; +per_type_encoder_f PosFrontAx_encode_uper; +per_type_decoder_f PosFrontAx_decode_aper; +per_type_encoder_f PosFrontAx_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosFrontAx_H_ */ +#include diff --git a/vcits/denm/PosLonCarr.h b/vcits/denm/PosLonCarr.h new file mode 100644 index 0000000..b16cd38 --- /dev/null +++ b/vcits/denm/PosLonCarr.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PosLonCarr_H_ +#define _PosLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosLonCarr { + PosLonCarr_oneCentimeter = 1, + PosLonCarr_unavailable = 127 +} e_PosLonCarr; + +/* PosLonCarr */ +typedef long PosLonCarr_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PosLonCarr_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PosLonCarr; +asn_struct_free_f PosLonCarr_free; +asn_struct_print_f PosLonCarr_print; +asn_constr_check_f PosLonCarr_constraint; +ber_type_decoder_f PosLonCarr_decode_ber; +der_type_encoder_f PosLonCarr_encode_der; +xer_type_decoder_f PosLonCarr_decode_xer; +xer_type_encoder_f PosLonCarr_encode_xer; +oer_type_decoder_f PosLonCarr_decode_oer; +oer_type_encoder_f PosLonCarr_encode_oer; +per_type_decoder_f PosLonCarr_decode_uper; +per_type_encoder_f PosLonCarr_encode_uper; +per_type_decoder_f PosLonCarr_decode_aper; +per_type_encoder_f PosLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosLonCarr_H_ */ +#include diff --git a/vcits/denm/PosPillar.h b/vcits/denm/PosPillar.h new file mode 100644 index 0000000..97a2a6f --- /dev/null +++ b/vcits/denm/PosPillar.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PosPillar_H_ +#define _PosPillar_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosPillar { + PosPillar_tenCentimeters = 1, + PosPillar_unavailable = 30 +} e_PosPillar; + +/* PosPillar */ +typedef long PosPillar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PosPillar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PosPillar; +asn_struct_free_f PosPillar_free; +asn_struct_print_f PosPillar_print; +asn_constr_check_f PosPillar_constraint; +ber_type_decoder_f PosPillar_decode_ber; +der_type_encoder_f PosPillar_encode_der; +xer_type_decoder_f PosPillar_decode_xer; +xer_type_encoder_f PosPillar_encode_xer; +oer_type_decoder_f PosPillar_decode_oer; +oer_type_encoder_f PosPillar_encode_oer; +per_type_decoder_f PosPillar_decode_uper; +per_type_encoder_f PosPillar_encode_uper; +per_type_decoder_f PosPillar_decode_aper; +per_type_encoder_f PosPillar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosPillar_H_ */ +#include diff --git a/vcits/denm/PositionOfOccupants.h b/vcits/denm/PositionOfOccupants.h new file mode 100644 index 0000000..a92254e --- /dev/null +++ b/vcits/denm/PositionOfOccupants.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PositionOfOccupants_H_ +#define _PositionOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionOfOccupants { + PositionOfOccupants_row1LeftOccupied = 0, + PositionOfOccupants_row1RightOccupied = 1, + PositionOfOccupants_row1MidOccupied = 2, + PositionOfOccupants_row1NotDetectable = 3, + PositionOfOccupants_row1NotPresent = 4, + PositionOfOccupants_row2LeftOccupied = 5, + PositionOfOccupants_row2RightOccupied = 6, + PositionOfOccupants_row2MidOccupied = 7, + PositionOfOccupants_row2NotDetectable = 8, + PositionOfOccupants_row2NotPresent = 9, + PositionOfOccupants_row3LeftOccupied = 10, + PositionOfOccupants_row3RightOccupied = 11, + PositionOfOccupants_row3MidOccupied = 12, + PositionOfOccupants_row3NotDetectable = 13, + PositionOfOccupants_row3NotPresent = 14, + PositionOfOccupants_row4LeftOccupied = 15, + PositionOfOccupants_row4RightOccupied = 16, + PositionOfOccupants_row4MidOccupied = 17, + PositionOfOccupants_row4NotDetectable = 18, + PositionOfOccupants_row4NotPresent = 19 +} e_PositionOfOccupants; + +/* PositionOfOccupants */ +typedef BIT_STRING_t PositionOfOccupants_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PositionOfOccupants_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants; +asn_struct_free_f PositionOfOccupants_free; +asn_struct_print_f PositionOfOccupants_print; +asn_constr_check_f PositionOfOccupants_constraint; +ber_type_decoder_f PositionOfOccupants_decode_ber; +der_type_encoder_f PositionOfOccupants_encode_der; +xer_type_decoder_f PositionOfOccupants_decode_xer; +xer_type_encoder_f PositionOfOccupants_encode_xer; +oer_type_decoder_f PositionOfOccupants_decode_oer; +oer_type_encoder_f PositionOfOccupants_encode_oer; +per_type_decoder_f PositionOfOccupants_decode_uper; +per_type_encoder_f PositionOfOccupants_encode_uper; +per_type_decoder_f PositionOfOccupants_decode_aper; +per_type_encoder_f PositionOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfOccupants_H_ */ +#include diff --git a/vcits/denm/PositionOfPillars.h b/vcits/denm/PositionOfPillars.h new file mode 100644 index 0000000..fa882f2 --- /dev/null +++ b/vcits/denm/PositionOfPillars.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PositionOfPillars_H_ +#define _PositionOfPillars_H_ + + +#include + +/* Including external dependencies */ +#include "PosPillar.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionOfPillars */ +typedef struct PositionOfPillars { + A_SEQUENCE_OF(PosPillar_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionOfPillars_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfPillars; +extern asn_SET_OF_specifics_t asn_SPC_PositionOfPillars_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionOfPillars_1[1]; +extern asn_per_constraints_t asn_PER_type_PositionOfPillars_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfPillars_H_ */ +#include diff --git a/vcits/denm/PositioningSolutionType.h b/vcits/denm/PositioningSolutionType.h new file mode 100644 index 0000000..fdf1d16 --- /dev/null +++ b/vcits/denm/PositioningSolutionType.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PositioningSolutionType_H_ +#define _PositioningSolutionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositioningSolutionType { + PositioningSolutionType_noPositioningSolution = 0, + PositioningSolutionType_sGNSS = 1, + PositioningSolutionType_dGNSS = 2, + PositioningSolutionType_sGNSSplusDR = 3, + PositioningSolutionType_dGNSSplusDR = 4, + PositioningSolutionType_dR = 5 + /* + * Enumeration is extensible + */ +} e_PositioningSolutionType; + +/* PositioningSolutionType */ +typedef long PositioningSolutionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PositioningSolutionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType; +extern const asn_INTEGER_specifics_t asn_SPC_PositioningSolutionType_specs_1; +asn_struct_free_f PositioningSolutionType_free; +asn_struct_print_f PositioningSolutionType_print; +asn_constr_check_f PositioningSolutionType_constraint; +ber_type_decoder_f PositioningSolutionType_decode_ber; +der_type_encoder_f PositioningSolutionType_encode_der; +xer_type_decoder_f PositioningSolutionType_decode_xer; +xer_type_encoder_f PositioningSolutionType_encode_xer; +oer_type_decoder_f PositioningSolutionType_decode_oer; +oer_type_encoder_f PositioningSolutionType_encode_oer; +per_type_decoder_f PositioningSolutionType_decode_uper; +per_type_encoder_f PositioningSolutionType_encode_uper; +per_type_decoder_f PositioningSolutionType_decode_aper; +per_type_encoder_f PositioningSolutionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositioningSolutionType_H_ */ +#include diff --git a/vcits/denm/PostCrashSubCauseCode.h b/vcits/denm/PostCrashSubCauseCode.h new file mode 100644 index 0000000..f238ffd --- /dev/null +++ b/vcits/denm/PostCrashSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PostCrashSubCauseCode_H_ +#define _PostCrashSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PostCrashSubCauseCode { + PostCrashSubCauseCode_unavailable = 0, + PostCrashSubCauseCode_accidentWithoutECallTriggered = 1, + PostCrashSubCauseCode_accidentWithECallManuallyTriggered = 2, + PostCrashSubCauseCode_accidentWithECallAutomaticallyTriggered = 3, + PostCrashSubCauseCode_accidentWithECallTriggeredWithoutAccessToCellularNetwork = 4 +} e_PostCrashSubCauseCode; + +/* PostCrashSubCauseCode */ +typedef long PostCrashSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode; +asn_struct_free_f PostCrashSubCauseCode_free; +asn_struct_print_f PostCrashSubCauseCode_print; +asn_constr_check_f PostCrashSubCauseCode_constraint; +ber_type_decoder_f PostCrashSubCauseCode_decode_ber; +der_type_encoder_f PostCrashSubCauseCode_encode_der; +xer_type_decoder_f PostCrashSubCauseCode_decode_xer; +xer_type_encoder_f PostCrashSubCauseCode_encode_xer; +oer_type_decoder_f PostCrashSubCauseCode_decode_oer; +oer_type_encoder_f PostCrashSubCauseCode_encode_oer; +per_type_decoder_f PostCrashSubCauseCode_decode_uper; +per_type_encoder_f PostCrashSubCauseCode_encode_uper; +per_type_decoder_f PostCrashSubCauseCode_decode_aper; +per_type_encoder_f PostCrashSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PostCrashSubCauseCode_H_ */ +#include diff --git a/vcits/denm/ProtectedCommunicationZone.h b/vcits/denm/ProtectedCommunicationZone.h new file mode 100644 index 0000000..18a46b9 --- /dev/null +++ b/vcits/denm/ProtectedCommunicationZone.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ProtectedCommunicationZone_H_ +#define _ProtectedCommunicationZone_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneType.h" +#include "TimestampIts.h" +#include "Latitude.h" +#include "Longitude.h" +#include "ProtectedZoneRadius.h" +#include "ProtectedZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedCommunicationZone */ +typedef struct ProtectedCommunicationZone { + ProtectedZoneType_t protectedZoneType; + TimestampIts_t *expiryTime; /* OPTIONAL */ + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + ProtectedZoneRadius_t *protectedZoneRadius; /* OPTIONAL */ + ProtectedZoneID_t *protectedZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone; +extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZone_H_ */ +#include diff --git a/vcits/denm/ProtectedCommunicationZonesRSU.h b/vcits/denm/ProtectedCommunicationZonesRSU.h new file mode 100644 index 0000000..d099e22 --- /dev/null +++ b/vcits/denm/ProtectedCommunicationZonesRSU.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ProtectedCommunicationZonesRSU_H_ +#define _ProtectedCommunicationZonesRSU_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtectedCommunicationZone; + +/* ProtectedCommunicationZonesRSU */ +typedef struct ProtectedCommunicationZonesRSU { + A_SEQUENCE_OF(struct ProtectedCommunicationZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZonesRSU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZonesRSU_H_ */ +#include diff --git a/vcits/denm/ProtectedZoneID.h b/vcits/denm/ProtectedZoneID.h new file mode 100644 index 0000000..d3885f5 --- /dev/null +++ b/vcits/denm/ProtectedZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ProtectedZoneID_H_ +#define _ProtectedZoneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedZoneID */ +typedef long ProtectedZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID; +asn_struct_free_f ProtectedZoneID_free; +asn_struct_print_f ProtectedZoneID_print; +asn_constr_check_f ProtectedZoneID_constraint; +ber_type_decoder_f ProtectedZoneID_decode_ber; +der_type_encoder_f ProtectedZoneID_encode_der; +xer_type_decoder_f ProtectedZoneID_decode_xer; +xer_type_encoder_f ProtectedZoneID_encode_xer; +oer_type_decoder_f ProtectedZoneID_decode_oer; +oer_type_encoder_f ProtectedZoneID_encode_oer; +per_type_decoder_f ProtectedZoneID_decode_uper; +per_type_encoder_f ProtectedZoneID_encode_uper; +per_type_decoder_f ProtectedZoneID_decode_aper; +per_type_encoder_f ProtectedZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneID_H_ */ +#include diff --git a/vcits/denm/ProtectedZoneRadius.h b/vcits/denm/ProtectedZoneRadius.h new file mode 100644 index 0000000..dc2257c --- /dev/null +++ b/vcits/denm/ProtectedZoneRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ProtectedZoneRadius_H_ +#define _ProtectedZoneRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneRadius { + ProtectedZoneRadius_oneMeter = 1 +} e_ProtectedZoneRadius; + +/* ProtectedZoneRadius */ +typedef long ProtectedZoneRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius; +asn_struct_free_f ProtectedZoneRadius_free; +asn_struct_print_f ProtectedZoneRadius_print; +asn_constr_check_f ProtectedZoneRadius_constraint; +ber_type_decoder_f ProtectedZoneRadius_decode_ber; +der_type_encoder_f ProtectedZoneRadius_encode_der; +xer_type_decoder_f ProtectedZoneRadius_decode_xer; +xer_type_encoder_f ProtectedZoneRadius_encode_xer; +oer_type_decoder_f ProtectedZoneRadius_decode_oer; +oer_type_encoder_f ProtectedZoneRadius_encode_oer; +per_type_decoder_f ProtectedZoneRadius_decode_uper; +per_type_encoder_f ProtectedZoneRadius_encode_uper; +per_type_decoder_f ProtectedZoneRadius_decode_aper; +per_type_encoder_f ProtectedZoneRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneRadius_H_ */ +#include diff --git a/vcits/denm/ProtectedZoneType.h b/vcits/denm/ProtectedZoneType.h new file mode 100644 index 0000000..91a89de --- /dev/null +++ b/vcits/denm/ProtectedZoneType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ProtectedZoneType_H_ +#define _ProtectedZoneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneType { + ProtectedZoneType_permanentCenDsrcTolling = 0, + /* + * Enumeration is extensible + */ + ProtectedZoneType_temporaryCenDsrcTolling = 1 +} e_ProtectedZoneType; + +/* ProtectedZoneType */ +typedef long ProtectedZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1; +asn_struct_free_f ProtectedZoneType_free; +asn_struct_print_f ProtectedZoneType_print; +asn_constr_check_f ProtectedZoneType_constraint; +ber_type_decoder_f ProtectedZoneType_decode_ber; +der_type_encoder_f ProtectedZoneType_encode_der; +xer_type_decoder_f ProtectedZoneType_decode_xer; +xer_type_encoder_f ProtectedZoneType_encode_xer; +oer_type_decoder_f ProtectedZoneType_decode_oer; +oer_type_encoder_f ProtectedZoneType_encode_oer; +per_type_decoder_f ProtectedZoneType_decode_uper; +per_type_encoder_f ProtectedZoneType_encode_uper; +per_type_decoder_f ProtectedZoneType_decode_aper; +per_type_encoder_f ProtectedZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneType_H_ */ +#include diff --git a/vcits/denm/PtActivation.h b/vcits/denm/PtActivation.h new file mode 100644 index 0000000..4afcb13 --- /dev/null +++ b/vcits/denm/PtActivation.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PtActivation_H_ +#define _PtActivation_H_ + + +#include + +/* Including external dependencies */ +#include "PtActivationType.h" +#include "PtActivationData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivation */ +typedef struct PtActivation { + PtActivationType_t ptActivationType; + PtActivationData_t ptActivationData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PtActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PtActivation; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivation_H_ */ +#include diff --git a/vcits/denm/PtActivationData.h b/vcits/denm/PtActivationData.h new file mode 100644 index 0000000..1076e4b --- /dev/null +++ b/vcits/denm/PtActivationData.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PtActivationData_H_ +#define _PtActivationData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivationData */ +typedef OCTET_STRING_t PtActivationData_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationData_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationData; +asn_struct_free_f PtActivationData_free; +asn_struct_print_f PtActivationData_print; +asn_constr_check_f PtActivationData_constraint; +ber_type_decoder_f PtActivationData_decode_ber; +der_type_encoder_f PtActivationData_encode_der; +xer_type_decoder_f PtActivationData_decode_xer; +xer_type_encoder_f PtActivationData_encode_xer; +oer_type_decoder_f PtActivationData_decode_oer; +oer_type_encoder_f PtActivationData_encode_oer; +per_type_decoder_f PtActivationData_decode_uper; +per_type_encoder_f PtActivationData_encode_uper; +per_type_decoder_f PtActivationData_decode_aper; +per_type_encoder_f PtActivationData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationData_H_ */ +#include diff --git a/vcits/denm/PtActivationType.h b/vcits/denm/PtActivationType.h new file mode 100644 index 0000000..75e7785 --- /dev/null +++ b/vcits/denm/PtActivationType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _PtActivationType_H_ +#define _PtActivationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtActivationType { + PtActivationType_undefinedCodingType = 0, + PtActivationType_r09_16CodingType = 1, + PtActivationType_vdv_50149CodingType = 2 +} e_PtActivationType; + +/* PtActivationType */ +typedef long PtActivationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationType; +asn_struct_free_f PtActivationType_free; +asn_struct_print_f PtActivationType_print; +asn_constr_check_f PtActivationType_constraint; +ber_type_decoder_f PtActivationType_decode_ber; +der_type_encoder_f PtActivationType_encode_der; +xer_type_decoder_f PtActivationType_decode_xer; +xer_type_encoder_f PtActivationType_encode_xer; +oer_type_decoder_f PtActivationType_decode_oer; +oer_type_encoder_f PtActivationType_encode_oer; +per_type_decoder_f PtActivationType_decode_uper; +per_type_encoder_f PtActivationType_encode_uper; +per_type_decoder_f PtActivationType_decode_aper; +per_type_encoder_f PtActivationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationType_H_ */ +#include diff --git a/vcits/denm/ReferenceDenms.h b/vcits/denm/ReferenceDenms.h new file mode 100644 index 0000000..17c79d2 --- /dev/null +++ b/vcits/denm/ReferenceDenms.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ReferenceDenms_H_ +#define _ReferenceDenms_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ActionID; + +/* ReferenceDenms */ +typedef struct ReferenceDenms { + A_SEQUENCE_OF(struct ActionID) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReferenceDenms_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReferenceDenms; +extern asn_SET_OF_specifics_t asn_SPC_ReferenceDenms_specs_1; +extern asn_TYPE_member_t asn_MBR_ReferenceDenms_1[1]; +extern asn_per_constraints_t asn_PER_type_ReferenceDenms_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReferenceDenms_H_ */ +#include diff --git a/vcits/denm/ReferencePosition.h b/vcits/denm/ReferencePosition.h new file mode 100644 index 0000000..037eeaf --- /dev/null +++ b/vcits/denm/ReferencePosition.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ReferencePosition_H_ +#define _ReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "PosConfidenceEllipse.h" +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReferencePosition */ +typedef struct ReferencePosition { + Latitude_t latitude; + Longitude_t longitude; + PosConfidenceEllipse_t positionConfidenceEllipse; + Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ReferencePosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReferencePosition_H_ */ +#include diff --git a/vcits/denm/RelevanceDistance.h b/vcits/denm/RelevanceDistance.h new file mode 100644 index 0000000..508ae66 --- /dev/null +++ b/vcits/denm/RelevanceDistance.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _RelevanceDistance_H_ +#define _RelevanceDistance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceDistance { + RelevanceDistance_lessThan50m = 0, + RelevanceDistance_lessThan100m = 1, + RelevanceDistance_lessThan200m = 2, + RelevanceDistance_lessThan500m = 3, + RelevanceDistance_lessThan1000m = 4, + RelevanceDistance_lessThan5km = 5, + RelevanceDistance_lessThan10km = 6, + RelevanceDistance_over10km = 7 +} e_RelevanceDistance; + +/* RelevanceDistance */ +typedef long RelevanceDistance_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RelevanceDistance_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RelevanceDistance; +extern const asn_INTEGER_specifics_t asn_SPC_RelevanceDistance_specs_1; +asn_struct_free_f RelevanceDistance_free; +asn_struct_print_f RelevanceDistance_print; +asn_constr_check_f RelevanceDistance_constraint; +ber_type_decoder_f RelevanceDistance_decode_ber; +der_type_encoder_f RelevanceDistance_encode_der; +xer_type_decoder_f RelevanceDistance_decode_xer; +xer_type_encoder_f RelevanceDistance_encode_xer; +oer_type_decoder_f RelevanceDistance_decode_oer; +oer_type_encoder_f RelevanceDistance_encode_oer; +per_type_decoder_f RelevanceDistance_decode_uper; +per_type_encoder_f RelevanceDistance_encode_uper; +per_type_decoder_f RelevanceDistance_decode_aper; +per_type_encoder_f RelevanceDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceDistance_H_ */ +#include diff --git a/vcits/denm/RelevanceTrafficDirection.h b/vcits/denm/RelevanceTrafficDirection.h new file mode 100644 index 0000000..025da21 --- /dev/null +++ b/vcits/denm/RelevanceTrafficDirection.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _RelevanceTrafficDirection_H_ +#define _RelevanceTrafficDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceTrafficDirection { + RelevanceTrafficDirection_allTrafficDirections = 0, + RelevanceTrafficDirection_upstreamTraffic = 1, + RelevanceTrafficDirection_downstreamTraffic = 2, + RelevanceTrafficDirection_oppositeTraffic = 3 +} e_RelevanceTrafficDirection; + +/* RelevanceTrafficDirection */ +typedef long RelevanceTrafficDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RelevanceTrafficDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection; +extern const asn_INTEGER_specifics_t asn_SPC_RelevanceTrafficDirection_specs_1; +asn_struct_free_f RelevanceTrafficDirection_free; +asn_struct_print_f RelevanceTrafficDirection_print; +asn_constr_check_f RelevanceTrafficDirection_constraint; +ber_type_decoder_f RelevanceTrafficDirection_decode_ber; +der_type_encoder_f RelevanceTrafficDirection_encode_der; +xer_type_decoder_f RelevanceTrafficDirection_decode_xer; +xer_type_encoder_f RelevanceTrafficDirection_encode_xer; +oer_type_decoder_f RelevanceTrafficDirection_decode_oer; +oer_type_encoder_f RelevanceTrafficDirection_encode_oer; +per_type_decoder_f RelevanceTrafficDirection_decode_uper; +per_type_encoder_f RelevanceTrafficDirection_encode_uper; +per_type_decoder_f RelevanceTrafficDirection_decode_aper; +per_type_encoder_f RelevanceTrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceTrafficDirection_H_ */ +#include diff --git a/vcits/denm/RequestResponseIndication.h b/vcits/denm/RequestResponseIndication.h new file mode 100644 index 0000000..a7ce74b --- /dev/null +++ b/vcits/denm/RequestResponseIndication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _RequestResponseIndication_H_ +#define _RequestResponseIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestResponseIndication { + RequestResponseIndication_request = 0, + RequestResponseIndication_response = 1 +} e_RequestResponseIndication; + +/* RequestResponseIndication */ +typedef long RequestResponseIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestResponseIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication; +extern const asn_INTEGER_specifics_t asn_SPC_RequestResponseIndication_specs_1; +asn_struct_free_f RequestResponseIndication_free; +asn_struct_print_f RequestResponseIndication_print; +asn_constr_check_f RequestResponseIndication_constraint; +ber_type_decoder_f RequestResponseIndication_decode_ber; +der_type_encoder_f RequestResponseIndication_encode_der; +xer_type_decoder_f RequestResponseIndication_decode_xer; +xer_type_encoder_f RequestResponseIndication_encode_xer; +oer_type_decoder_f RequestResponseIndication_decode_oer; +oer_type_encoder_f RequestResponseIndication_encode_oer; +per_type_decoder_f RequestResponseIndication_decode_uper; +per_type_encoder_f RequestResponseIndication_encode_uper; +per_type_decoder_f RequestResponseIndication_decode_aper; +per_type_encoder_f RequestResponseIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestResponseIndication_H_ */ +#include diff --git a/vcits/denm/RescueAndRecoveryWorkInProgressSubCauseCode.h b/vcits/denm/RescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 0000000..e480691 --- /dev/null +++ b/vcits/denm/RescueAndRecoveryWorkInProgressSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _RescueAndRecoveryWorkInProgressSubCauseCode_H_ +#define _RescueAndRecoveryWorkInProgressSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RescueAndRecoveryWorkInProgressSubCauseCode { + RescueAndRecoveryWorkInProgressSubCauseCode_unavailable = 0, + RescueAndRecoveryWorkInProgressSubCauseCode_emergencyVehicles = 1, + RescueAndRecoveryWorkInProgressSubCauseCode_rescueHelicopterLanding = 2, + RescueAndRecoveryWorkInProgressSubCauseCode_policeActivityOngoing = 3, + RescueAndRecoveryWorkInProgressSubCauseCode_medicalEmergencyOngoing = 4, + RescueAndRecoveryWorkInProgressSubCauseCode_childAbductionInProgress = 5 +} e_RescueAndRecoveryWorkInProgressSubCauseCode; + +/* RescueAndRecoveryWorkInProgressSubCauseCode */ +typedef long RescueAndRecoveryWorkInProgressSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode; +asn_struct_free_f RescueAndRecoveryWorkInProgressSubCauseCode_free; +asn_struct_print_f RescueAndRecoveryWorkInProgressSubCauseCode_print; +asn_constr_check_f RescueAndRecoveryWorkInProgressSubCauseCode_constraint; +ber_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_ber; +der_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_der; +xer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_xer; +xer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_xer; +oer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_oer; +oer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_oer; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_uper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_uper; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_aper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RescueAndRecoveryWorkInProgressSubCauseCode_H_ */ +#include diff --git a/vcits/denm/RestrictedTypes.h b/vcits/denm/RestrictedTypes.h new file mode 100644 index 0000000..c12e401 --- /dev/null +++ b/vcits/denm/RestrictedTypes.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _RestrictedTypes_H_ +#define _RestrictedTypes_H_ + + +#include + +/* Including external dependencies */ +#include "StationType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictedTypes */ +typedef struct RestrictedTypes { + A_SEQUENCE_OF(StationType_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictedTypes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictedTypes; +extern asn_SET_OF_specifics_t asn_SPC_RestrictedTypes_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictedTypes_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictedTypes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictedTypes_H_ */ +#include diff --git a/vcits/denm/RoadType.h b/vcits/denm/RoadType.h new file mode 100644 index 0000000..77fe6f4 --- /dev/null +++ b/vcits/denm/RoadType.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _RoadType_H_ +#define _RoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadType { + RoadType_urban_NoStructuralSeparationToOppositeLanes = 0, + RoadType_urban_WithStructuralSeparationToOppositeLanes = 1, + RoadType_nonUrban_NoStructuralSeparationToOppositeLanes = 2, + RoadType_nonUrban_WithStructuralSeparationToOppositeLanes = 3 +} e_RoadType; + +/* RoadType */ +typedef long RoadType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadType; +extern const asn_INTEGER_specifics_t asn_SPC_RoadType_specs_1; +asn_struct_free_f RoadType_free; +asn_struct_print_f RoadType_print; +asn_constr_check_f RoadType_constraint; +ber_type_decoder_f RoadType_decode_ber; +der_type_encoder_f RoadType_encode_der; +xer_type_decoder_f RoadType_decode_xer; +xer_type_encoder_f RoadType_encode_xer; +oer_type_decoder_f RoadType_decode_oer; +oer_type_encoder_f RoadType_encode_oer; +per_type_decoder_f RoadType_decode_uper; +per_type_encoder_f RoadType_encode_uper; +per_type_decoder_f RoadType_decode_aper; +per_type_encoder_f RoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadType_H_ */ +#include diff --git a/vcits/denm/RoadWorksContainerExtended.h b/vcits/denm/RoadWorksContainerExtended.h new file mode 100644 index 0000000..dc615ad --- /dev/null +++ b/vcits/denm/RoadWorksContainerExtended.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _RoadWorksContainerExtended_H_ +#define _RoadWorksContainerExtended_H_ + + +#include + +/* Including external dependencies */ +#include "LightBarSirenInUse.h" +#include "SpeedLimit.h" +#include "TrafficRule.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ClosedLanes; +struct RestrictedTypes; +struct CauseCode; +struct ItineraryPath; +struct DeltaReferencePosition; +struct ReferenceDenms; + +/* RoadWorksContainerExtended */ +typedef struct RoadWorksContainerExtended { + LightBarSirenInUse_t *lightBarSirenInUse; /* OPTIONAL */ + struct ClosedLanes *closedLanes; /* OPTIONAL */ + struct RestrictedTypes *restriction; /* OPTIONAL */ + SpeedLimit_t *speedLimit; /* OPTIONAL */ + struct CauseCode *incidentIndication; /* OPTIONAL */ + struct ItineraryPath *recommendedPath; /* OPTIONAL */ + struct DeltaReferencePosition *startingPointSpeedLimit; /* OPTIONAL */ + TrafficRule_t *trafficFlowRule; /* OPTIONAL */ + struct ReferenceDenms *referenceDenms; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadWorksContainerExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadWorksContainerExtended; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadWorksContainerExtended_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadWorksContainerExtended_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadWorksContainerExtended_H_ */ +#include diff --git a/vcits/denm/RoadworksSubCauseCode.h b/vcits/denm/RoadworksSubCauseCode.h new file mode 100644 index 0000000..1ae188a --- /dev/null +++ b/vcits/denm/RoadworksSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _RoadworksSubCauseCode_H_ +#define _RoadworksSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadworksSubCauseCode { + RoadworksSubCauseCode_unavailable = 0, + RoadworksSubCauseCode_majorRoadworks = 1, + RoadworksSubCauseCode_roadMarkingWork = 2, + RoadworksSubCauseCode_slowMovingRoadMaintenance = 3, + RoadworksSubCauseCode_shortTermStationaryRoadworks = 4, + RoadworksSubCauseCode_streetCleaning = 5, + RoadworksSubCauseCode_winterService = 6 +} e_RoadworksSubCauseCode; + +/* RoadworksSubCauseCode */ +typedef long RoadworksSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode; +asn_struct_free_f RoadworksSubCauseCode_free; +asn_struct_print_f RoadworksSubCauseCode_print; +asn_constr_check_f RoadworksSubCauseCode_constraint; +ber_type_decoder_f RoadworksSubCauseCode_decode_ber; +der_type_encoder_f RoadworksSubCauseCode_encode_der; +xer_type_decoder_f RoadworksSubCauseCode_decode_xer; +xer_type_encoder_f RoadworksSubCauseCode_encode_xer; +oer_type_decoder_f RoadworksSubCauseCode_decode_oer; +oer_type_encoder_f RoadworksSubCauseCode_encode_oer; +per_type_decoder_f RoadworksSubCauseCode_decode_uper; +per_type_encoder_f RoadworksSubCauseCode_encode_uper; +per_type_decoder_f RoadworksSubCauseCode_decode_aper; +per_type_encoder_f RoadworksSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadworksSubCauseCode_H_ */ +#include diff --git a/vcits/denm/SemiAxisLength.h b/vcits/denm/SemiAxisLength.h new file mode 100644 index 0000000..213c909 --- /dev/null +++ b/vcits/denm/SemiAxisLength.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _SemiAxisLength_H_ +#define _SemiAxisLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SemiAxisLength { + SemiAxisLength_oneCentimeter = 1, + SemiAxisLength_outOfRange = 4094, + SemiAxisLength_unavailable = 4095 +} e_SemiAxisLength; + +/* SemiAxisLength */ +typedef long SemiAxisLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiAxisLength; +asn_struct_free_f SemiAxisLength_free; +asn_struct_print_f SemiAxisLength_print; +asn_constr_check_f SemiAxisLength_constraint; +ber_type_decoder_f SemiAxisLength_decode_ber; +der_type_encoder_f SemiAxisLength_encode_der; +xer_type_decoder_f SemiAxisLength_decode_xer; +xer_type_encoder_f SemiAxisLength_encode_xer; +oer_type_decoder_f SemiAxisLength_decode_oer; +oer_type_encoder_f SemiAxisLength_encode_oer; +per_type_decoder_f SemiAxisLength_decode_uper; +per_type_encoder_f SemiAxisLength_encode_uper; +per_type_decoder_f SemiAxisLength_decode_aper; +per_type_encoder_f SemiAxisLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiAxisLength_H_ */ +#include diff --git a/vcits/denm/SequenceNumber.h b/vcits/denm/SequenceNumber.h new file mode 100644 index 0000000..efc8955 --- /dev/null +++ b/vcits/denm/SequenceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _SequenceNumber_H_ +#define _SequenceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SequenceNumber */ +typedef long SequenceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SequenceNumber; +asn_struct_free_f SequenceNumber_free; +asn_struct_print_f SequenceNumber_print; +asn_constr_check_f SequenceNumber_constraint; +ber_type_decoder_f SequenceNumber_decode_ber; +der_type_encoder_f SequenceNumber_encode_der; +xer_type_decoder_f SequenceNumber_decode_xer; +xer_type_encoder_f SequenceNumber_encode_xer; +oer_type_decoder_f SequenceNumber_decode_oer; +oer_type_encoder_f SequenceNumber_encode_oer; +per_type_decoder_f SequenceNumber_decode_uper; +per_type_encoder_f SequenceNumber_encode_uper; +per_type_decoder_f SequenceNumber_decode_aper; +per_type_encoder_f SequenceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SequenceNumber_H_ */ +#include diff --git a/vcits/denm/SignalViolationSubCauseCode.h b/vcits/denm/SignalViolationSubCauseCode.h new file mode 100644 index 0000000..03276a3 --- /dev/null +++ b/vcits/denm/SignalViolationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _SignalViolationSubCauseCode_H_ +#define _SignalViolationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SignalViolationSubCauseCode { + SignalViolationSubCauseCode_unavailable = 0, + SignalViolationSubCauseCode_stopSignViolation = 1, + SignalViolationSubCauseCode_trafficLightViolation = 2, + SignalViolationSubCauseCode_turningRegulationViolation = 3 +} e_SignalViolationSubCauseCode; + +/* SignalViolationSubCauseCode */ +typedef long SignalViolationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode; +asn_struct_free_f SignalViolationSubCauseCode_free; +asn_struct_print_f SignalViolationSubCauseCode_print; +asn_constr_check_f SignalViolationSubCauseCode_constraint; +ber_type_decoder_f SignalViolationSubCauseCode_decode_ber; +der_type_encoder_f SignalViolationSubCauseCode_encode_der; +xer_type_decoder_f SignalViolationSubCauseCode_decode_xer; +xer_type_encoder_f SignalViolationSubCauseCode_encode_xer; +oer_type_decoder_f SignalViolationSubCauseCode_decode_oer; +oer_type_encoder_f SignalViolationSubCauseCode_encode_oer; +per_type_decoder_f SignalViolationSubCauseCode_decode_uper; +per_type_encoder_f SignalViolationSubCauseCode_encode_uper; +per_type_decoder_f SignalViolationSubCauseCode_decode_aper; +per_type_encoder_f SignalViolationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalViolationSubCauseCode_H_ */ +#include diff --git a/vcits/denm/SituationContainer.h b/vcits/denm/SituationContainer.h new file mode 100644 index 0000000..b042b09 --- /dev/null +++ b/vcits/denm/SituationContainer.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _SituationContainer_H_ +#define _SituationContainer_H_ + + +#include + +/* Including external dependencies */ +#include "InformationQuality.h" +#include "CauseCode.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CauseCode; +struct EventHistory; + +/* SituationContainer */ +typedef struct SituationContainer { + InformationQuality_t informationQuality; + CauseCode_t eventType; + struct CauseCode *linkedCause; /* OPTIONAL */ + struct EventHistory *eventHistory; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SituationContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SituationContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_SituationContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_SituationContainer_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SituationContainer_H_ */ +#include diff --git a/vcits/denm/SlowVehicleSubCauseCode.h b/vcits/denm/SlowVehicleSubCauseCode.h new file mode 100644 index 0000000..987de8f --- /dev/null +++ b/vcits/denm/SlowVehicleSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _SlowVehicleSubCauseCode_H_ +#define _SlowVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SlowVehicleSubCauseCode { + SlowVehicleSubCauseCode_unavailable = 0, + SlowVehicleSubCauseCode_maintenanceVehicle = 1, + SlowVehicleSubCauseCode_vehiclesSlowingToLookAtAccident = 2, + SlowVehicleSubCauseCode_abnormalLoad = 3, + SlowVehicleSubCauseCode_abnormalWideLoad = 4, + SlowVehicleSubCauseCode_convoy = 5, + SlowVehicleSubCauseCode_snowplough = 6, + SlowVehicleSubCauseCode_deicing = 7, + SlowVehicleSubCauseCode_saltingVehicles = 8 +} e_SlowVehicleSubCauseCode; + +/* SlowVehicleSubCauseCode */ +typedef long SlowVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode; +asn_struct_free_f SlowVehicleSubCauseCode_free; +asn_struct_print_f SlowVehicleSubCauseCode_print; +asn_constr_check_f SlowVehicleSubCauseCode_constraint; +ber_type_decoder_f SlowVehicleSubCauseCode_decode_ber; +der_type_encoder_f SlowVehicleSubCauseCode_encode_der; +xer_type_decoder_f SlowVehicleSubCauseCode_decode_xer; +xer_type_encoder_f SlowVehicleSubCauseCode_encode_xer; +oer_type_decoder_f SlowVehicleSubCauseCode_decode_oer; +oer_type_encoder_f SlowVehicleSubCauseCode_encode_oer; +per_type_decoder_f SlowVehicleSubCauseCode_decode_uper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_uper; +per_type_decoder_f SlowVehicleSubCauseCode_decode_aper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SlowVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/denm/SpecialTransportType.h b/vcits/denm/SpecialTransportType.h new file mode 100644 index 0000000..f2bf7c0 --- /dev/null +++ b/vcits/denm/SpecialTransportType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _SpecialTransportType_H_ +#define _SpecialTransportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpecialTransportType { + SpecialTransportType_heavyLoad = 0, + SpecialTransportType_excessWidth = 1, + SpecialTransportType_excessLength = 2, + SpecialTransportType_excessHeight = 3 +} e_SpecialTransportType; + +/* SpecialTransportType */ +typedef BIT_STRING_t SpecialTransportType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpecialTransportType; +asn_struct_free_f SpecialTransportType_free; +asn_struct_print_f SpecialTransportType_print; +asn_constr_check_f SpecialTransportType_constraint; +ber_type_decoder_f SpecialTransportType_decode_ber; +der_type_encoder_f SpecialTransportType_encode_der; +xer_type_decoder_f SpecialTransportType_decode_xer; +xer_type_encoder_f SpecialTransportType_encode_xer; +oer_type_decoder_f SpecialTransportType_decode_oer; +oer_type_encoder_f SpecialTransportType_encode_oer; +per_type_decoder_f SpecialTransportType_decode_uper; +per_type_encoder_f SpecialTransportType_encode_uper; +per_type_decoder_f SpecialTransportType_decode_aper; +per_type_encoder_f SpecialTransportType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpecialTransportType_H_ */ +#include diff --git a/vcits/denm/Speed.h b/vcits/denm/Speed.h new file mode 100644 index 0000000..76ce74a --- /dev/null +++ b/vcits/denm/Speed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _Speed_H_ +#define _Speed_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedValue.h" +#include "SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Speed */ +typedef struct Speed { + SpeedValue_t speedValue; + SpeedConfidence_t speedConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Speed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Speed; +extern asn_SEQUENCE_specifics_t asn_SPC_Speed_specs_1; +extern asn_TYPE_member_t asn_MBR_Speed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Speed_H_ */ +#include diff --git a/vcits/denm/SpeedConfidence.h b/vcits/denm/SpeedConfidence.h new file mode 100644 index 0000000..fd53268 --- /dev/null +++ b/vcits/denm/SpeedConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _SpeedConfidence_H_ +#define _SpeedConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidence { + SpeedConfidence_equalOrWithinOneCentimeterPerSec = 1, + SpeedConfidence_equalOrWithinOneMeterPerSec = 100, + SpeedConfidence_outOfRange = 126, + SpeedConfidence_unavailable = 127 +} e_SpeedConfidence; + +/* SpeedConfidence */ +typedef long SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidence; +asn_struct_free_f SpeedConfidence_free; +asn_struct_print_f SpeedConfidence_print; +asn_constr_check_f SpeedConfidence_constraint; +ber_type_decoder_f SpeedConfidence_decode_ber; +der_type_encoder_f SpeedConfidence_encode_der; +xer_type_decoder_f SpeedConfidence_decode_xer; +xer_type_encoder_f SpeedConfidence_encode_xer; +oer_type_decoder_f SpeedConfidence_decode_oer; +oer_type_encoder_f SpeedConfidence_encode_oer; +per_type_decoder_f SpeedConfidence_decode_uper; +per_type_encoder_f SpeedConfidence_encode_uper; +per_type_decoder_f SpeedConfidence_decode_aper; +per_type_encoder_f SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidence_H_ */ +#include diff --git a/vcits/denm/SpeedLimit.h b/vcits/denm/SpeedLimit.h new file mode 100644 index 0000000..6241756 --- /dev/null +++ b/vcits/denm/SpeedLimit.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _SpeedLimit_H_ +#define _SpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimit { + SpeedLimit_oneKmPerHour = 1 +} e_SpeedLimit; + +/* SpeedLimit */ +typedef long SpeedLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimit; +asn_struct_free_f SpeedLimit_free; +asn_struct_print_f SpeedLimit_print; +asn_constr_check_f SpeedLimit_constraint; +ber_type_decoder_f SpeedLimit_decode_ber; +der_type_encoder_f SpeedLimit_encode_der; +xer_type_decoder_f SpeedLimit_decode_xer; +xer_type_encoder_f SpeedLimit_encode_xer; +oer_type_decoder_f SpeedLimit_decode_oer; +oer_type_encoder_f SpeedLimit_encode_oer; +per_type_decoder_f SpeedLimit_decode_uper; +per_type_encoder_f SpeedLimit_encode_uper; +per_type_decoder_f SpeedLimit_decode_aper; +per_type_encoder_f SpeedLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimit_H_ */ +#include diff --git a/vcits/denm/SpeedValue.h b/vcits/denm/SpeedValue.h new file mode 100644 index 0000000..16e8274 --- /dev/null +++ b/vcits/denm/SpeedValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _SpeedValue_H_ +#define _SpeedValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedValue { + SpeedValue_standstill = 0, + SpeedValue_oneCentimeterPerSec = 1, + SpeedValue_unavailable = 16383 +} e_SpeedValue; + +/* SpeedValue */ +typedef long SpeedValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedValue; +asn_struct_free_f SpeedValue_free; +asn_struct_print_f SpeedValue_print; +asn_constr_check_f SpeedValue_constraint; +ber_type_decoder_f SpeedValue_decode_ber; +der_type_encoder_f SpeedValue_encode_der; +xer_type_decoder_f SpeedValue_decode_xer; +xer_type_encoder_f SpeedValue_encode_xer; +oer_type_decoder_f SpeedValue_decode_oer; +oer_type_encoder_f SpeedValue_encode_oer; +per_type_decoder_f SpeedValue_decode_uper; +per_type_encoder_f SpeedValue_encode_uper; +per_type_decoder_f SpeedValue_decode_aper; +per_type_encoder_f SpeedValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedValue_H_ */ +#include diff --git a/vcits/denm/StationID.h b/vcits/denm/StationID.h new file mode 100644 index 0000000..b31c7c5 --- /dev/null +++ b/vcits/denm/StationID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _StationID_H_ +#define _StationID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* StationID */ +typedef unsigned long StationID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationID; +extern const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1; +asn_struct_free_f StationID_free; +asn_struct_print_f StationID_print; +asn_constr_check_f StationID_constraint; +ber_type_decoder_f StationID_decode_ber; +der_type_encoder_f StationID_encode_der; +xer_type_decoder_f StationID_decode_xer; +xer_type_encoder_f StationID_encode_xer; +oer_type_decoder_f StationID_decode_oer; +oer_type_encoder_f StationID_encode_oer; +per_type_decoder_f StationID_decode_uper; +per_type_encoder_f StationID_encode_uper; +per_type_decoder_f StationID_decode_aper; +per_type_encoder_f StationID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationID_H_ */ +#include diff --git a/vcits/denm/StationType.h b/vcits/denm/StationType.h new file mode 100644 index 0000000..b633199 --- /dev/null +++ b/vcits/denm/StationType.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _StationType_H_ +#define _StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationType { + StationType_unknown = 0, + StationType_pedestrian = 1, + StationType_cyclist = 2, + StationType_moped = 3, + StationType_motorcycle = 4, + StationType_passengerCar = 5, + StationType_bus = 6, + StationType_lightTruck = 7, + StationType_heavyTruck = 8, + StationType_trailer = 9, + StationType_specialVehicles = 10, + StationType_tram = 11, + StationType_roadSideUnit = 15 +} e_StationType; + +/* StationType */ +typedef long StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationType; +asn_struct_free_f StationType_free; +asn_struct_print_f StationType_print; +asn_constr_check_f StationType_constraint; +ber_type_decoder_f StationType_decode_ber; +der_type_encoder_f StationType_encode_der; +xer_type_decoder_f StationType_decode_xer; +xer_type_encoder_f StationType_encode_xer; +oer_type_decoder_f StationType_decode_oer; +oer_type_encoder_f StationType_encode_oer; +per_type_decoder_f StationType_decode_uper; +per_type_encoder_f StationType_encode_uper; +per_type_decoder_f StationType_decode_aper; +per_type_encoder_f StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationType_H_ */ +#include diff --git a/vcits/denm/StationarySince.h b/vcits/denm/StationarySince.h new file mode 100644 index 0000000..5fcd512 --- /dev/null +++ b/vcits/denm/StationarySince.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _StationarySince_H_ +#define _StationarySince_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationarySince { + StationarySince_lessThan1Minute = 0, + StationarySince_lessThan2Minutes = 1, + StationarySince_lessThan15Minutes = 2, + StationarySince_equalOrGreater15Minutes = 3 +} e_StationarySince; + +/* StationarySince */ +typedef long StationarySince_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationarySince_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationarySince; +extern const asn_INTEGER_specifics_t asn_SPC_StationarySince_specs_1; +asn_struct_free_f StationarySince_free; +asn_struct_print_f StationarySince_print; +asn_constr_check_f StationarySince_constraint; +ber_type_decoder_f StationarySince_decode_ber; +der_type_encoder_f StationarySince_encode_der; +xer_type_decoder_f StationarySince_decode_xer; +xer_type_encoder_f StationarySince_encode_xer; +oer_type_decoder_f StationarySince_decode_oer; +oer_type_encoder_f StationarySince_encode_oer; +per_type_decoder_f StationarySince_decode_uper; +per_type_encoder_f StationarySince_encode_uper; +per_type_decoder_f StationarySince_decode_aper; +per_type_encoder_f StationarySince_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationarySince_H_ */ +#include diff --git a/vcits/denm/StationaryVehicleContainer.h b/vcits/denm/StationaryVehicleContainer.h new file mode 100644 index 0000000..4fb32d4 --- /dev/null +++ b/vcits/denm/StationaryVehicleContainer.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _StationaryVehicleContainer_H_ +#define _StationaryVehicleContainer_H_ + + +#include + +/* Including external dependencies */ +#include "StationarySince.h" +#include "NumberOfOccupants.h" +#include "EnergyStorageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CauseCode; +struct DangerousGoodsExtended; +struct VehicleIdentification; + +/* StationaryVehicleContainer */ +typedef struct StationaryVehicleContainer { + StationarySince_t *stationarySince; /* OPTIONAL */ + struct CauseCode *stationaryCause; /* OPTIONAL */ + struct DangerousGoodsExtended *carryingDangerousGoods; /* OPTIONAL */ + NumberOfOccupants_t *numberOfOccupants; /* OPTIONAL */ + struct VehicleIdentification *vehicleIdentification; /* OPTIONAL */ + EnergyStorageType_t *energyStorageType; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} StationaryVehicleContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationaryVehicleContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_StationaryVehicleContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_StationaryVehicleContainer_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationaryVehicleContainer_H_ */ +#include diff --git a/vcits/denm/StationaryVehicleSubCauseCode.h b/vcits/denm/StationaryVehicleSubCauseCode.h new file mode 100644 index 0000000..54fae5e --- /dev/null +++ b/vcits/denm/StationaryVehicleSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _StationaryVehicleSubCauseCode_H_ +#define _StationaryVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationaryVehicleSubCauseCode { + StationaryVehicleSubCauseCode_unavailable = 0, + StationaryVehicleSubCauseCode_humanProblem = 1, + StationaryVehicleSubCauseCode_vehicleBreakdown = 2, + StationaryVehicleSubCauseCode_postCrash = 3, + StationaryVehicleSubCauseCode_publicTransportStop = 4, + StationaryVehicleSubCauseCode_carryingDangerousGoods = 5 +} e_StationaryVehicleSubCauseCode; + +/* StationaryVehicleSubCauseCode */ +typedef long StationaryVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode; +asn_struct_free_f StationaryVehicleSubCauseCode_free; +asn_struct_print_f StationaryVehicleSubCauseCode_print; +asn_constr_check_f StationaryVehicleSubCauseCode_constraint; +ber_type_decoder_f StationaryVehicleSubCauseCode_decode_ber; +der_type_encoder_f StationaryVehicleSubCauseCode_encode_der; +xer_type_decoder_f StationaryVehicleSubCauseCode_decode_xer; +xer_type_encoder_f StationaryVehicleSubCauseCode_encode_xer; +oer_type_decoder_f StationaryVehicleSubCauseCode_decode_oer; +oer_type_encoder_f StationaryVehicleSubCauseCode_encode_oer; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_uper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_uper; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_aper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationaryVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/denm/SteeringWheelAngle.h b/vcits/denm/SteeringWheelAngle.h new file mode 100644 index 0000000..85edcfc --- /dev/null +++ b/vcits/denm/SteeringWheelAngle.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _SteeringWheelAngle_H_ +#define _SteeringWheelAngle_H_ + + +#include + +/* Including external dependencies */ +#include "SteeringWheelAngleValue.h" +#include "SteeringWheelAngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SteeringWheelAngle */ +typedef struct SteeringWheelAngle { + SteeringWheelAngleValue_t steeringWheelAngleValue; + SteeringWheelAngleConfidence_t steeringWheelAngleConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SteeringWheelAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngle_H_ */ +#include diff --git a/vcits/denm/SteeringWheelAngleConfidence.h b/vcits/denm/SteeringWheelAngleConfidence.h new file mode 100644 index 0000000..9ce2b1b --- /dev/null +++ b/vcits/denm/SteeringWheelAngleConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _SteeringWheelAngleConfidence_H_ +#define _SteeringWheelAngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleConfidence { + SteeringWheelAngleConfidence_equalOrWithinOnePointFiveDegree = 1, + SteeringWheelAngleConfidence_outOfRange = 126, + SteeringWheelAngleConfidence_unavailable = 127 +} e_SteeringWheelAngleConfidence; + +/* SteeringWheelAngleConfidence */ +typedef long SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence; +asn_struct_free_f SteeringWheelAngleConfidence_free; +asn_struct_print_f SteeringWheelAngleConfidence_print; +asn_constr_check_f SteeringWheelAngleConfidence_constraint; +ber_type_decoder_f SteeringWheelAngleConfidence_decode_ber; +der_type_encoder_f SteeringWheelAngleConfidence_encode_der; +xer_type_decoder_f SteeringWheelAngleConfidence_decode_xer; +xer_type_encoder_f SteeringWheelAngleConfidence_encode_xer; +oer_type_decoder_f SteeringWheelAngleConfidence_decode_oer; +oer_type_encoder_f SteeringWheelAngleConfidence_encode_oer; +per_type_decoder_f SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleConfidence_H_ */ +#include diff --git a/vcits/denm/SteeringWheelAngleValue.h b/vcits/denm/SteeringWheelAngleValue.h new file mode 100644 index 0000000..829c197 --- /dev/null +++ b/vcits/denm/SteeringWheelAngleValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _SteeringWheelAngleValue_H_ +#define _SteeringWheelAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleValue { + SteeringWheelAngleValue_straight = 0, + SteeringWheelAngleValue_onePointFiveDegreesToRight = -1, + SteeringWheelAngleValue_onePointFiveDegreesToLeft = 1, + SteeringWheelAngleValue_unavailable = 512 +} e_SteeringWheelAngleValue; + +/* SteeringWheelAngleValue */ +typedef long SteeringWheelAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue; +asn_struct_free_f SteeringWheelAngleValue_free; +asn_struct_print_f SteeringWheelAngleValue_print; +asn_constr_check_f SteeringWheelAngleValue_constraint; +ber_type_decoder_f SteeringWheelAngleValue_decode_ber; +der_type_encoder_f SteeringWheelAngleValue_encode_der; +xer_type_decoder_f SteeringWheelAngleValue_decode_xer; +xer_type_encoder_f SteeringWheelAngleValue_encode_xer; +oer_type_decoder_f SteeringWheelAngleValue_decode_oer; +oer_type_encoder_f SteeringWheelAngleValue_encode_oer; +per_type_decoder_f SteeringWheelAngleValue_decode_uper; +per_type_encoder_f SteeringWheelAngleValue_encode_uper; +per_type_decoder_f SteeringWheelAngleValue_decode_aper; +per_type_encoder_f SteeringWheelAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleValue_H_ */ +#include diff --git a/vcits/denm/SubCauseCodeType.h b/vcits/denm/SubCauseCodeType.h new file mode 100644 index 0000000..f01bb6d --- /dev/null +++ b/vcits/denm/SubCauseCodeType.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _SubCauseCodeType_H_ +#define _SubCauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SubCauseCodeType */ +typedef long SubCauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType; +asn_struct_free_f SubCauseCodeType_free; +asn_struct_print_f SubCauseCodeType_print; +asn_constr_check_f SubCauseCodeType_constraint; +ber_type_decoder_f SubCauseCodeType_decode_ber; +der_type_encoder_f SubCauseCodeType_encode_der; +xer_type_decoder_f SubCauseCodeType_decode_xer; +xer_type_encoder_f SubCauseCodeType_encode_xer; +oer_type_decoder_f SubCauseCodeType_decode_oer; +oer_type_encoder_f SubCauseCodeType_encode_oer; +per_type_decoder_f SubCauseCodeType_decode_uper; +per_type_encoder_f SubCauseCodeType_encode_uper; +per_type_decoder_f SubCauseCodeType_decode_aper; +per_type_encoder_f SubCauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SubCauseCodeType_H_ */ +#include diff --git a/vcits/denm/Temperature.h b/vcits/denm/Temperature.h new file mode 100644 index 0000000..370ca34 --- /dev/null +++ b/vcits/denm/Temperature.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _Temperature_H_ +#define _Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Temperature { + Temperature_equalOrSmallerThanMinus60Deg = -60, + Temperature_oneDegreeCelsius = 1, + Temperature_equalOrGreaterThan67Deg = 67 +} e_Temperature; + +/* Temperature */ +typedef long Temperature_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Temperature_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Temperature; +asn_struct_free_f Temperature_free; +asn_struct_print_f Temperature_print; +asn_constr_check_f Temperature_constraint; +ber_type_decoder_f Temperature_decode_ber; +der_type_encoder_f Temperature_encode_der; +xer_type_decoder_f Temperature_decode_xer; +xer_type_encoder_f Temperature_encode_xer; +oer_type_decoder_f Temperature_decode_oer; +oer_type_encoder_f Temperature_encode_oer; +per_type_decoder_f Temperature_decode_uper; +per_type_encoder_f Temperature_encode_uper; +per_type_decoder_f Temperature_decode_aper; +per_type_encoder_f Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Temperature_H_ */ +#include diff --git a/vcits/denm/Termination.h b/vcits/denm/Termination.h new file mode 100644 index 0000000..a3509a5 --- /dev/null +++ b/vcits/denm/Termination.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _Termination_H_ +#define _Termination_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Termination { + Termination_isCancellation = 0, + Termination_isNegation = 1 +} e_Termination; + +/* Termination */ +typedef long Termination_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Termination_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Termination; +extern const asn_INTEGER_specifics_t asn_SPC_Termination_specs_1; +asn_struct_free_f Termination_free; +asn_struct_print_f Termination_print; +asn_constr_check_f Termination_constraint; +ber_type_decoder_f Termination_decode_ber; +der_type_encoder_f Termination_encode_der; +xer_type_decoder_f Termination_decode_xer; +xer_type_encoder_f Termination_encode_xer; +oer_type_decoder_f Termination_decode_oer; +oer_type_encoder_f Termination_encode_oer; +per_type_decoder_f Termination_decode_uper; +per_type_encoder_f Termination_encode_uper; +per_type_decoder_f Termination_decode_aper; +per_type_encoder_f Termination_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Termination_H_ */ +#include diff --git a/vcits/denm/TimestampIts.h b/vcits/denm/TimestampIts.h new file mode 100644 index 0000000..d7143ef --- /dev/null +++ b/vcits/denm/TimestampIts.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _TimestampIts_H_ +#define _TimestampIts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimestampIts { + TimestampIts_utcStartOf2004 = 0, + TimestampIts_oneMillisecAfterUTCStartOf2004 = 1 +} e_TimestampIts; + +/* TimestampIts */ +typedef INTEGER_t TimestampIts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimestampIts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimestampIts; +asn_struct_free_f TimestampIts_free; +asn_struct_print_f TimestampIts_print; +asn_constr_check_f TimestampIts_constraint; +ber_type_decoder_f TimestampIts_decode_ber; +der_type_encoder_f TimestampIts_encode_der; +xer_type_decoder_f TimestampIts_decode_xer; +xer_type_encoder_f TimestampIts_encode_xer; +oer_type_decoder_f TimestampIts_decode_oer; +oer_type_encoder_f TimestampIts_encode_oer; +per_type_decoder_f TimestampIts_decode_uper; +per_type_encoder_f TimestampIts_encode_uper; +per_type_decoder_f TimestampIts_decode_aper; +per_type_encoder_f TimestampIts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimestampIts_H_ */ +#include diff --git a/vcits/denm/Traces.h b/vcits/denm/Traces.h new file mode 100644 index 0000000..e3adaea --- /dev/null +++ b/vcits/denm/Traces.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _Traces_H_ +#define _Traces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathHistory; + +/* Traces */ +typedef struct Traces { + A_SEQUENCE_OF(struct PathHistory) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Traces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Traces; +extern asn_SET_OF_specifics_t asn_SPC_Traces_specs_1; +extern asn_TYPE_member_t asn_MBR_Traces_1[1]; +extern asn_per_constraints_t asn_PER_type_Traces_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Traces_H_ */ +#include diff --git a/vcits/denm/TrafficConditionSubCauseCode.h b/vcits/denm/TrafficConditionSubCauseCode.h new file mode 100644 index 0000000..2f9ed0c --- /dev/null +++ b/vcits/denm/TrafficConditionSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _TrafficConditionSubCauseCode_H_ +#define _TrafficConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficConditionSubCauseCode { + TrafficConditionSubCauseCode_unavailable = 0, + TrafficConditionSubCauseCode_increasedVolumeOfTraffic = 1, + TrafficConditionSubCauseCode_trafficJamSlowlyIncreasing = 2, + TrafficConditionSubCauseCode_trafficJamIncreasing = 3, + TrafficConditionSubCauseCode_trafficJamStronglyIncreasing = 4, + TrafficConditionSubCauseCode_trafficStationary = 5, + TrafficConditionSubCauseCode_trafficJamSlightlyDecreasing = 6, + TrafficConditionSubCauseCode_trafficJamDecreasing = 7, + TrafficConditionSubCauseCode_trafficJamStronglyDecreasing = 8 +} e_TrafficConditionSubCauseCode; + +/* TrafficConditionSubCauseCode */ +typedef long TrafficConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode; +asn_struct_free_f TrafficConditionSubCauseCode_free; +asn_struct_print_f TrafficConditionSubCauseCode_print; +asn_constr_check_f TrafficConditionSubCauseCode_constraint; +ber_type_decoder_f TrafficConditionSubCauseCode_decode_ber; +der_type_encoder_f TrafficConditionSubCauseCode_encode_der; +xer_type_decoder_f TrafficConditionSubCauseCode_decode_xer; +xer_type_encoder_f TrafficConditionSubCauseCode_encode_xer; +oer_type_decoder_f TrafficConditionSubCauseCode_decode_oer; +oer_type_encoder_f TrafficConditionSubCauseCode_encode_oer; +per_type_decoder_f TrafficConditionSubCauseCode_decode_uper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_uper; +per_type_decoder_f TrafficConditionSubCauseCode_decode_aper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficConditionSubCauseCode_H_ */ +#include diff --git a/vcits/denm/TrafficRule.h b/vcits/denm/TrafficRule.h new file mode 100644 index 0000000..6527228 --- /dev/null +++ b/vcits/denm/TrafficRule.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _TrafficRule_H_ +#define _TrafficRule_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficRule { + TrafficRule_noPassing = 0, + TrafficRule_noPassingForTrucks = 1, + TrafficRule_passToRight = 2, + TrafficRule_passToLeft = 3 + /* + * Enumeration is extensible + */ +} e_TrafficRule; + +/* TrafficRule */ +typedef long TrafficRule_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TrafficRule_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TrafficRule; +extern const asn_INTEGER_specifics_t asn_SPC_TrafficRule_specs_1; +asn_struct_free_f TrafficRule_free; +asn_struct_print_f TrafficRule_print; +asn_constr_check_f TrafficRule_constraint; +ber_type_decoder_f TrafficRule_decode_ber; +der_type_encoder_f TrafficRule_encode_der; +xer_type_decoder_f TrafficRule_decode_xer; +xer_type_encoder_f TrafficRule_encode_xer; +oer_type_decoder_f TrafficRule_decode_oer; +oer_type_encoder_f TrafficRule_encode_oer; +per_type_decoder_f TrafficRule_decode_uper; +per_type_encoder_f TrafficRule_encode_uper; +per_type_decoder_f TrafficRule_decode_aper; +per_type_encoder_f TrafficRule_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficRule_H_ */ +#include diff --git a/vcits/denm/TransmissionInterval.h b/vcits/denm/TransmissionInterval.h new file mode 100644 index 0000000..5d6b655 --- /dev/null +++ b/vcits/denm/TransmissionInterval.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _TransmissionInterval_H_ +#define _TransmissionInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionInterval { + TransmissionInterval_oneMilliSecond = 1, + TransmissionInterval_tenSeconds = 10000 +} e_TransmissionInterval; + +/* TransmissionInterval */ +typedef long TransmissionInterval_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransmissionInterval_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransmissionInterval; +asn_struct_free_f TransmissionInterval_free; +asn_struct_print_f TransmissionInterval_print; +asn_constr_check_f TransmissionInterval_constraint; +ber_type_decoder_f TransmissionInterval_decode_ber; +der_type_encoder_f TransmissionInterval_encode_der; +xer_type_decoder_f TransmissionInterval_decode_xer; +xer_type_encoder_f TransmissionInterval_encode_xer; +oer_type_decoder_f TransmissionInterval_decode_oer; +oer_type_encoder_f TransmissionInterval_encode_oer; +per_type_decoder_f TransmissionInterval_decode_uper; +per_type_encoder_f TransmissionInterval_encode_uper; +per_type_decoder_f TransmissionInterval_decode_aper; +per_type_encoder_f TransmissionInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionInterval_H_ */ +#include diff --git a/vcits/denm/TurningRadius.h b/vcits/denm/TurningRadius.h new file mode 100644 index 0000000..2e9bc55 --- /dev/null +++ b/vcits/denm/TurningRadius.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _TurningRadius_H_ +#define _TurningRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TurningRadius { + TurningRadius_point4Meters = 1, + TurningRadius_unavailable = 255 +} e_TurningRadius; + +/* TurningRadius */ +typedef long TurningRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TurningRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TurningRadius; +asn_struct_free_f TurningRadius_free; +asn_struct_print_f TurningRadius_print; +asn_constr_check_f TurningRadius_constraint; +ber_type_decoder_f TurningRadius_decode_ber; +der_type_encoder_f TurningRadius_encode_der; +xer_type_decoder_f TurningRadius_decode_xer; +xer_type_encoder_f TurningRadius_encode_xer; +oer_type_decoder_f TurningRadius_decode_oer; +oer_type_encoder_f TurningRadius_encode_oer; +per_type_decoder_f TurningRadius_decode_uper; +per_type_encoder_f TurningRadius_encode_uper; +per_type_decoder_f TurningRadius_decode_aper; +per_type_encoder_f TurningRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TurningRadius_H_ */ +#include diff --git a/vcits/denm/VDS.h b/vcits/denm/VDS.h new file mode 100644 index 0000000..ce8a91b --- /dev/null +++ b/vcits/denm/VDS.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _VDS_H_ +#define _VDS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VDS */ +typedef IA5String_t VDS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VDS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VDS; +asn_struct_free_f VDS_free; +asn_struct_print_f VDS_print; +asn_constr_check_f VDS_constraint; +ber_type_decoder_f VDS_decode_ber; +der_type_encoder_f VDS_encode_der; +xer_type_decoder_f VDS_decode_xer; +xer_type_encoder_f VDS_encode_xer; +oer_type_decoder_f VDS_decode_oer; +oer_type_encoder_f VDS_encode_oer; +per_type_decoder_f VDS_decode_uper; +per_type_encoder_f VDS_encode_uper; +per_type_decoder_f VDS_decode_aper; +per_type_encoder_f VDS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VDS_H_ */ +#include diff --git a/vcits/denm/ValidityDuration.h b/vcits/denm/ValidityDuration.h new file mode 100644 index 0000000..aab969f --- /dev/null +++ b/vcits/denm/ValidityDuration.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _ValidityDuration_H_ +#define _ValidityDuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ValidityDuration { + ValidityDuration_timeOfDetection = 0, + ValidityDuration_oneSecondAfterDetection = 1 +} e_ValidityDuration; + +/* ValidityDuration */ +typedef long ValidityDuration_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ValidityDuration_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ValidityDuration; +asn_struct_free_f ValidityDuration_free; +asn_struct_print_f ValidityDuration_print; +asn_constr_check_f ValidityDuration_constraint; +ber_type_decoder_f ValidityDuration_decode_ber; +der_type_encoder_f ValidityDuration_encode_der; +xer_type_decoder_f ValidityDuration_decode_xer; +xer_type_encoder_f ValidityDuration_encode_xer; +oer_type_decoder_f ValidityDuration_decode_oer; +oer_type_encoder_f ValidityDuration_encode_oer; +per_type_decoder_f ValidityDuration_decode_uper; +per_type_encoder_f ValidityDuration_encode_uper; +per_type_decoder_f ValidityDuration_decode_aper; +per_type_encoder_f ValidityDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ValidityDuration_H_ */ +#include diff --git a/vcits/denm/VehicleBreakdownSubCauseCode.h b/vcits/denm/VehicleBreakdownSubCauseCode.h new file mode 100644 index 0000000..e7817f3 --- /dev/null +++ b/vcits/denm/VehicleBreakdownSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _VehicleBreakdownSubCauseCode_H_ +#define _VehicleBreakdownSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleBreakdownSubCauseCode { + VehicleBreakdownSubCauseCode_unavailable = 0, + VehicleBreakdownSubCauseCode_lackOfFuel = 1, + VehicleBreakdownSubCauseCode_lackOfBatteryPower = 2, + VehicleBreakdownSubCauseCode_engineProblem = 3, + VehicleBreakdownSubCauseCode_transmissionProblem = 4, + VehicleBreakdownSubCauseCode_engineCoolingProblem = 5, + VehicleBreakdownSubCauseCode_brakingSystemProblem = 6, + VehicleBreakdownSubCauseCode_steeringProblem = 7, + VehicleBreakdownSubCauseCode_tyrePuncture = 8, + VehicleBreakdownSubCauseCode_tyrePressureProblem = 9 +} e_VehicleBreakdownSubCauseCode; + +/* VehicleBreakdownSubCauseCode */ +typedef long VehicleBreakdownSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode; +asn_struct_free_f VehicleBreakdownSubCauseCode_free; +asn_struct_print_f VehicleBreakdownSubCauseCode_print; +asn_constr_check_f VehicleBreakdownSubCauseCode_constraint; +ber_type_decoder_f VehicleBreakdownSubCauseCode_decode_ber; +der_type_encoder_f VehicleBreakdownSubCauseCode_encode_der; +xer_type_decoder_f VehicleBreakdownSubCauseCode_decode_xer; +xer_type_encoder_f VehicleBreakdownSubCauseCode_encode_xer; +oer_type_decoder_f VehicleBreakdownSubCauseCode_decode_oer; +oer_type_encoder_f VehicleBreakdownSubCauseCode_encode_oer; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_uper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_uper; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_aper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleBreakdownSubCauseCode_H_ */ +#include diff --git a/vcits/denm/VehicleIdentification.h b/vcits/denm/VehicleIdentification.h new file mode 100644 index 0000000..55e5284 --- /dev/null +++ b/vcits/denm/VehicleIdentification.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _VehicleIdentification_H_ +#define _VehicleIdentification_H_ + + +#include + +/* Including external dependencies */ +#include "WMInumber.h" +#include "VDS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleIdentification */ +typedef struct VehicleIdentification { + WMInumber_t *wMInumber; /* OPTIONAL */ + VDS_t *vDS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleIdentification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleIdentification; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleIdentification_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleIdentification_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleIdentification_H_ */ +#include diff --git a/vcits/denm/VehicleLength.h b/vcits/denm/VehicleLength.h new file mode 100644 index 0000000..9f7e4fd --- /dev/null +++ b/vcits/denm/VehicleLength.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _VehicleLength_H_ +#define _VehicleLength_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleLengthValue.h" +#include "VehicleLengthConfidenceIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleLength */ +typedef struct VehicleLength { + VehicleLengthValue_t vehicleLengthValue; + VehicleLengthConfidenceIndication_t vehicleLengthConfidenceIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleLength; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLength_H_ */ +#include diff --git a/vcits/denm/VehicleLengthConfidenceIndication.h b/vcits/denm/VehicleLengthConfidenceIndication.h new file mode 100644 index 0000000..5373376 --- /dev/null +++ b/vcits/denm/VehicleLengthConfidenceIndication.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _VehicleLengthConfidenceIndication_H_ +#define _VehicleLengthConfidenceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthConfidenceIndication { + VehicleLengthConfidenceIndication_noTrailerPresent = 0, + VehicleLengthConfidenceIndication_trailerPresentWithKnownLength = 1, + VehicleLengthConfidenceIndication_trailerPresentWithUnknownLength = 2, + VehicleLengthConfidenceIndication_trailerPresenceIsUnknown = 3, + VehicleLengthConfidenceIndication_unavailable = 4 +} e_VehicleLengthConfidenceIndication; + +/* VehicleLengthConfidenceIndication */ +typedef long VehicleLengthConfidenceIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1; +asn_struct_free_f VehicleLengthConfidenceIndication_free; +asn_struct_print_f VehicleLengthConfidenceIndication_print; +asn_constr_check_f VehicleLengthConfidenceIndication_constraint; +ber_type_decoder_f VehicleLengthConfidenceIndication_decode_ber; +der_type_encoder_f VehicleLengthConfidenceIndication_encode_der; +xer_type_decoder_f VehicleLengthConfidenceIndication_decode_xer; +xer_type_encoder_f VehicleLengthConfidenceIndication_encode_xer; +oer_type_decoder_f VehicleLengthConfidenceIndication_decode_oer; +oer_type_encoder_f VehicleLengthConfidenceIndication_encode_oer; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_uper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_uper; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_aper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthConfidenceIndication_H_ */ +#include diff --git a/vcits/denm/VehicleLengthValue.h b/vcits/denm/VehicleLengthValue.h new file mode 100644 index 0000000..4dec8f4 --- /dev/null +++ b/vcits/denm/VehicleLengthValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _VehicleLengthValue_H_ +#define _VehicleLengthValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthValue { + VehicleLengthValue_tenCentimeters = 1, + VehicleLengthValue_outOfRange = 1022, + VehicleLengthValue_unavailable = 1023 +} e_VehicleLengthValue; + +/* VehicleLengthValue */ +typedef long VehicleLengthValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue; +asn_struct_free_f VehicleLengthValue_free; +asn_struct_print_f VehicleLengthValue_print; +asn_constr_check_f VehicleLengthValue_constraint; +ber_type_decoder_f VehicleLengthValue_decode_ber; +der_type_encoder_f VehicleLengthValue_encode_der; +xer_type_decoder_f VehicleLengthValue_decode_xer; +xer_type_encoder_f VehicleLengthValue_encode_xer; +oer_type_decoder_f VehicleLengthValue_decode_oer; +oer_type_encoder_f VehicleLengthValue_encode_oer; +per_type_decoder_f VehicleLengthValue_decode_uper; +per_type_encoder_f VehicleLengthValue_encode_uper; +per_type_decoder_f VehicleLengthValue_decode_aper; +per_type_encoder_f VehicleLengthValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthValue_H_ */ +#include diff --git a/vcits/denm/VehicleMass.h b/vcits/denm/VehicleMass.h new file mode 100644 index 0000000..b642fd2 --- /dev/null +++ b/vcits/denm/VehicleMass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _VehicleMass_H_ +#define _VehicleMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleMass { + VehicleMass_hundredKg = 1, + VehicleMass_unavailable = 1024 +} e_VehicleMass; + +/* VehicleMass */ +typedef long VehicleMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleMass; +asn_struct_free_f VehicleMass_free; +asn_struct_print_f VehicleMass_print; +asn_constr_check_f VehicleMass_constraint; +ber_type_decoder_f VehicleMass_decode_ber; +der_type_encoder_f VehicleMass_encode_der; +xer_type_decoder_f VehicleMass_decode_xer; +xer_type_encoder_f VehicleMass_encode_xer; +oer_type_decoder_f VehicleMass_decode_oer; +oer_type_encoder_f VehicleMass_encode_oer; +per_type_decoder_f VehicleMass_decode_uper; +per_type_encoder_f VehicleMass_encode_uper; +per_type_decoder_f VehicleMass_decode_aper; +per_type_encoder_f VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleMass_H_ */ +#include diff --git a/vcits/denm/VehicleRole.h b/vcits/denm/VehicleRole.h new file mode 100644 index 0000000..6d9fb89 --- /dev/null +++ b/vcits/denm/VehicleRole.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _VehicleRole_H_ +#define _VehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleRole { + VehicleRole_default = 0, + VehicleRole_publicTransport = 1, + VehicleRole_specialTransport = 2, + VehicleRole_dangerousGoods = 3, + VehicleRole_roadWork = 4, + VehicleRole_rescue = 5, + VehicleRole_emergency = 6, + VehicleRole_safetyCar = 7, + VehicleRole_agriculture = 8, + VehicleRole_commercial = 9, + VehicleRole_military = 10, + VehicleRole_roadOperator = 11, + VehicleRole_taxi = 12, + VehicleRole_reserved1 = 13, + VehicleRole_reserved2 = 14, + VehicleRole_reserved3 = 15 +} e_VehicleRole; + +/* VehicleRole */ +typedef long VehicleRole_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleRole; +asn_struct_free_f VehicleRole_free; +asn_struct_print_f VehicleRole_print; +asn_constr_check_f VehicleRole_constraint; +ber_type_decoder_f VehicleRole_decode_ber; +der_type_encoder_f VehicleRole_encode_der; +xer_type_decoder_f VehicleRole_decode_xer; +xer_type_encoder_f VehicleRole_encode_xer; +oer_type_decoder_f VehicleRole_decode_oer; +oer_type_encoder_f VehicleRole_encode_oer; +per_type_decoder_f VehicleRole_decode_uper; +per_type_encoder_f VehicleRole_encode_uper; +per_type_decoder_f VehicleRole_decode_aper; +per_type_encoder_f VehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleRole_H_ */ +#include diff --git a/vcits/denm/VehicleWidth.h b/vcits/denm/VehicleWidth.h new file mode 100644 index 0000000..dc167b1 --- /dev/null +++ b/vcits/denm/VehicleWidth.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _VehicleWidth_H_ +#define _VehicleWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleWidth { + VehicleWidth_tenCentimeters = 1, + VehicleWidth_outOfRange = 61, + VehicleWidth_unavailable = 62 +} e_VehicleWidth; + +/* VehicleWidth */ +typedef long VehicleWidth_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleWidth; +asn_struct_free_f VehicleWidth_free; +asn_struct_print_f VehicleWidth_print; +asn_constr_check_f VehicleWidth_constraint; +ber_type_decoder_f VehicleWidth_decode_ber; +der_type_encoder_f VehicleWidth_encode_der; +xer_type_decoder_f VehicleWidth_decode_xer; +xer_type_encoder_f VehicleWidth_encode_xer; +oer_type_decoder_f VehicleWidth_decode_oer; +oer_type_encoder_f VehicleWidth_encode_oer; +per_type_decoder_f VehicleWidth_decode_uper; +per_type_encoder_f VehicleWidth_encode_uper; +per_type_decoder_f VehicleWidth_decode_aper; +per_type_encoder_f VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleWidth_H_ */ +#include diff --git a/vcits/denm/VerticalAcceleration.h b/vcits/denm/VerticalAcceleration.h new file mode 100644 index 0000000..543e7b5 --- /dev/null +++ b/vcits/denm/VerticalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _VerticalAcceleration_H_ +#define _VerticalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "VerticalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VerticalAcceleration */ +typedef struct VerticalAcceleration { + VerticalAccelerationValue_t verticalAccelerationValue; + AccelerationConfidence_t verticalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VerticalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAcceleration_H_ */ +#include diff --git a/vcits/denm/VerticalAccelerationValue.h b/vcits/denm/VerticalAccelerationValue.h new file mode 100644 index 0000000..094773f --- /dev/null +++ b/vcits/denm/VerticalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _VerticalAccelerationValue_H_ +#define _VerticalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VerticalAccelerationValue { + VerticalAccelerationValue_pointOneMeterPerSecSquaredUp = 1, + VerticalAccelerationValue_pointOneMeterPerSecSquaredDown = -1, + VerticalAccelerationValue_unavailable = 161 +} e_VerticalAccelerationValue; + +/* VerticalAccelerationValue */ +typedef long VerticalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue; +asn_struct_free_f VerticalAccelerationValue_free; +asn_struct_print_f VerticalAccelerationValue_print; +asn_constr_check_f VerticalAccelerationValue_constraint; +ber_type_decoder_f VerticalAccelerationValue_decode_ber; +der_type_encoder_f VerticalAccelerationValue_encode_der; +xer_type_decoder_f VerticalAccelerationValue_decode_xer; +xer_type_encoder_f VerticalAccelerationValue_encode_xer; +oer_type_decoder_f VerticalAccelerationValue_decode_oer; +oer_type_encoder_f VerticalAccelerationValue_encode_oer; +per_type_decoder_f VerticalAccelerationValue_decode_uper; +per_type_encoder_f VerticalAccelerationValue_encode_uper; +per_type_decoder_f VerticalAccelerationValue_decode_aper; +per_type_encoder_f VerticalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAccelerationValue_H_ */ +#include diff --git a/vcits/denm/WMInumber.h b/vcits/denm/WMInumber.h new file mode 100644 index 0000000..ad8775a --- /dev/null +++ b/vcits/denm/WMInumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _WMInumber_H_ +#define _WMInumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WMInumber */ +typedef IA5String_t WMInumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WMInumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WMInumber; +asn_struct_free_f WMInumber_free; +asn_struct_print_f WMInumber_print; +asn_constr_check_f WMInumber_constraint; +ber_type_decoder_f WMInumber_decode_ber; +der_type_encoder_f WMInumber_encode_der; +xer_type_decoder_f WMInumber_decode_xer; +xer_type_encoder_f WMInumber_encode_xer; +oer_type_decoder_f WMInumber_decode_oer; +oer_type_encoder_f WMInumber_encode_oer; +per_type_decoder_f WMInumber_decode_uper; +per_type_encoder_f WMInumber_encode_uper; +per_type_decoder_f WMInumber_decode_aper; +per_type_encoder_f WMInumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WMInumber_H_ */ +#include diff --git a/vcits/denm/WheelBaseVehicle.h b/vcits/denm/WheelBaseVehicle.h new file mode 100644 index 0000000..468b1b7 --- /dev/null +++ b/vcits/denm/WheelBaseVehicle.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _WheelBaseVehicle_H_ +#define _WheelBaseVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WheelBaseVehicle { + WheelBaseVehicle_tenCentimeters = 1, + WheelBaseVehicle_unavailable = 127 +} e_WheelBaseVehicle; + +/* WheelBaseVehicle */ +typedef long WheelBaseVehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WheelBaseVehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle; +asn_struct_free_f WheelBaseVehicle_free; +asn_struct_print_f WheelBaseVehicle_print; +asn_constr_check_f WheelBaseVehicle_constraint; +ber_type_decoder_f WheelBaseVehicle_decode_ber; +der_type_encoder_f WheelBaseVehicle_encode_der; +xer_type_decoder_f WheelBaseVehicle_decode_xer; +xer_type_encoder_f WheelBaseVehicle_encode_xer; +oer_type_decoder_f WheelBaseVehicle_decode_oer; +oer_type_encoder_f WheelBaseVehicle_encode_oer; +per_type_decoder_f WheelBaseVehicle_decode_uper; +per_type_encoder_f WheelBaseVehicle_encode_uper; +per_type_decoder_f WheelBaseVehicle_decode_aper; +per_type_encoder_f WheelBaseVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WheelBaseVehicle_H_ */ +#include diff --git a/vcits/denm/WrongWayDrivingSubCauseCode.h b/vcits/denm/WrongWayDrivingSubCauseCode.h new file mode 100644 index 0000000..f35a0dd --- /dev/null +++ b/vcits/denm/WrongWayDrivingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _WrongWayDrivingSubCauseCode_H_ +#define _WrongWayDrivingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WrongWayDrivingSubCauseCode { + WrongWayDrivingSubCauseCode_unavailable = 0, + WrongWayDrivingSubCauseCode_wrongLane = 1, + WrongWayDrivingSubCauseCode_wrongDirection = 2 +} e_WrongWayDrivingSubCauseCode; + +/* WrongWayDrivingSubCauseCode */ +typedef long WrongWayDrivingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode; +asn_struct_free_f WrongWayDrivingSubCauseCode_free; +asn_struct_print_f WrongWayDrivingSubCauseCode_print; +asn_constr_check_f WrongWayDrivingSubCauseCode_constraint; +ber_type_decoder_f WrongWayDrivingSubCauseCode_decode_ber; +der_type_encoder_f WrongWayDrivingSubCauseCode_encode_der; +xer_type_decoder_f WrongWayDrivingSubCauseCode_decode_xer; +xer_type_encoder_f WrongWayDrivingSubCauseCode_encode_xer; +oer_type_decoder_f WrongWayDrivingSubCauseCode_decode_oer; +oer_type_encoder_f WrongWayDrivingSubCauseCode_encode_oer; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_uper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_uper; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_aper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WrongWayDrivingSubCauseCode_H_ */ +#include diff --git a/vcits/denm/YawRate.h b/vcits/denm/YawRate.h new file mode 100644 index 0000000..157125f --- /dev/null +++ b/vcits/denm/YawRate.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _YawRate_H_ +#define _YawRate_H_ + + +#include + +/* Including external dependencies */ +#include "YawRateValue.h" +#include "YawRateConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* YawRate */ +typedef struct YawRate { + YawRateValue_t yawRateValue; + YawRateConfidence_t yawRateConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} YawRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_YawRate; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRate_H_ */ +#include diff --git a/vcits/denm/YawRateConfidence.h b/vcits/denm/YawRateConfidence.h new file mode 100644 index 0000000..ba2d651 --- /dev/null +++ b/vcits/denm/YawRateConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _YawRateConfidence_H_ +#define _YawRateConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateConfidence { + YawRateConfidence_degSec_000_01 = 0, + YawRateConfidence_degSec_000_05 = 1, + YawRateConfidence_degSec_000_10 = 2, + YawRateConfidence_degSec_001_00 = 3, + YawRateConfidence_degSec_005_00 = 4, + YawRateConfidence_degSec_010_00 = 5, + YawRateConfidence_degSec_100_00 = 6, + YawRateConfidence_outOfRange = 7, + YawRateConfidence_unavailable = 8 +} e_YawRateConfidence; + +/* YawRateConfidence */ +typedef long YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1; +asn_struct_free_f YawRateConfidence_free; +asn_struct_print_f YawRateConfidence_print; +asn_constr_check_f YawRateConfidence_constraint; +ber_type_decoder_f YawRateConfidence_decode_ber; +der_type_encoder_f YawRateConfidence_encode_der; +xer_type_decoder_f YawRateConfidence_decode_xer; +xer_type_encoder_f YawRateConfidence_encode_xer; +oer_type_decoder_f YawRateConfidence_decode_oer; +oer_type_encoder_f YawRateConfidence_encode_oer; +per_type_decoder_f YawRateConfidence_decode_uper; +per_type_encoder_f YawRateConfidence_encode_uper; +per_type_decoder_f YawRateConfidence_decode_aper; +per_type_encoder_f YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateConfidence_H_ */ +#include diff --git a/vcits/denm/YawRateValue.h b/vcits/denm/YawRateValue.h new file mode 100644 index 0000000..4339428 --- /dev/null +++ b/vcits/denm/YawRateValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#ifndef _YawRateValue_H_ +#define _YawRateValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateValue { + YawRateValue_straight = 0, + YawRateValue_degSec_000_01ToRight = -1, + YawRateValue_degSec_000_01ToLeft = 1, + YawRateValue_unavailable = 32767 +} e_YawRateValue; + +/* YawRateValue */ +typedef long YawRateValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateValue; +asn_struct_free_f YawRateValue_free; +asn_struct_print_f YawRateValue_print; +asn_constr_check_f YawRateValue_constraint; +ber_type_decoder_f YawRateValue_decode_ber; +der_type_encoder_f YawRateValue_encode_der; +xer_type_decoder_f YawRateValue_decode_xer; +xer_type_encoder_f YawRateValue_encode_xer; +oer_type_decoder_f YawRateValue_decode_oer; +oer_type_encoder_f YawRateValue_encode_oer; +per_type_decoder_f YawRateValue_decode_uper; +per_type_encoder_f YawRateValue_encode_uper; +per_type_decoder_f YawRateValue_decode_aper; +per_type_encoder_f YawRateValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateValue_H_ */ +#include diff --git a/vcits/denm/asn_constant.h b/vcits/denm/asn_constant.h new file mode 100644 index 0000000..90835b6 --- /dev/null +++ b/vcits/denm/asn_constant.h @@ -0,0 +1,157 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define defaultValidity (600) +#define min_val_StationID (0) +#define max_val_StationID (4294967295) +#define min_val_Longitude (-1800000000) +#define max_val_Longitude (1800000001) +#define min_val_Latitude (-900000000) +#define max_val_Latitude (900000001) +#define min_val_AltitudeValue (-100000) +#define max_val_AltitudeValue (800001) +#define min_val_DeltaLongitude (-131071) +#define max_val_DeltaLongitude (131072) +#define min_val_DeltaLatitude (-131071) +#define max_val_DeltaLatitude (131072) +#define min_val_DeltaAltitude (-12700) +#define max_val_DeltaAltitude (12800) +#define min_val_PtActivationType (0) +#define max_val_PtActivationType (255) +#define min_val_SemiAxisLength (0) +#define max_val_SemiAxisLength (4095) +#define min_val_CauseCodeType (0) +#define max_val_CauseCodeType (255) +#define min_val_SubCauseCodeType (0) +#define max_val_SubCauseCodeType (255) +#define min_val_TrafficConditionSubCauseCode (0) +#define max_val_TrafficConditionSubCauseCode (255) +#define min_val_AccidentSubCauseCode (0) +#define max_val_AccidentSubCauseCode (255) +#define min_val_RoadworksSubCauseCode (0) +#define max_val_RoadworksSubCauseCode (255) +#define min_val_HumanPresenceOnTheRoadSubCauseCode (0) +#define max_val_HumanPresenceOnTheRoadSubCauseCode (255) +#define min_val_WrongWayDrivingSubCauseCode (0) +#define max_val_WrongWayDrivingSubCauseCode (255) +#define min_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_AdhesionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_AdhesionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_VisibilitySubCauseCode (0) +#define max_val_AdverseWeatherCondition_VisibilitySubCauseCode (255) +#define min_val_AdverseWeatherCondition_PrecipitationSubCauseCode (0) +#define max_val_AdverseWeatherCondition_PrecipitationSubCauseCode (255) +#define min_val_SlowVehicleSubCauseCode (0) +#define max_val_SlowVehicleSubCauseCode (255) +#define min_val_StationaryVehicleSubCauseCode (0) +#define max_val_StationaryVehicleSubCauseCode (255) +#define min_val_HumanProblemSubCauseCode (0) +#define max_val_HumanProblemSubCauseCode (255) +#define min_val_EmergencyVehicleApproachingSubCauseCode (0) +#define max_val_EmergencyVehicleApproachingSubCauseCode (255) +#define min_val_HazardousLocation_DangerousCurveSubCauseCode (0) +#define max_val_HazardousLocation_DangerousCurveSubCauseCode (255) +#define min_val_HazardousLocation_SurfaceConditionSubCauseCode (0) +#define max_val_HazardousLocation_SurfaceConditionSubCauseCode (255) +#define min_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (255) +#define min_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (255) +#define min_val_CollisionRiskSubCauseCode (0) +#define max_val_CollisionRiskSubCauseCode (255) +#define min_val_SignalViolationSubCauseCode (0) +#define max_val_SignalViolationSubCauseCode (255) +#define min_val_RescueAndRecoveryWorkInProgressSubCauseCode (0) +#define max_val_RescueAndRecoveryWorkInProgressSubCauseCode (255) +#define min_val_DangerousEndOfQueueSubCauseCode (0) +#define max_val_DangerousEndOfQueueSubCauseCode (255) +#define min_val_DangerousSituationSubCauseCode (0) +#define max_val_DangerousSituationSubCauseCode (255) +#define min_val_VehicleBreakdownSubCauseCode (0) +#define max_val_VehicleBreakdownSubCauseCode (255) +#define min_val_PostCrashSubCauseCode (0) +#define max_val_PostCrashSubCauseCode (255) +#define min_val_CurvatureValue (-1023) +#define max_val_CurvatureValue (1023) +#define min_val_HeadingValue (0) +#define max_val_HeadingValue (3601) +#define min_val_HeadingConfidence (1) +#define max_val_HeadingConfidence (127) +#define min_val_LanePosition (-1) +#define max_val_LanePosition (14) +#define min_val_PerformanceClass (0) +#define max_val_PerformanceClass (7) +#define min_val_SpeedValue (0) +#define max_val_SpeedValue (16383) +#define min_val_SpeedConfidence (1) +#define max_val_SpeedConfidence (127) +#define min_val_VehicleMass (1) +#define max_val_VehicleMass (1024) +#define min_val_LongitudinalAccelerationValue (-160) +#define max_val_LongitudinalAccelerationValue (161) +#define min_val_AccelerationConfidence (0) +#define max_val_AccelerationConfidence (102) +#define min_val_LateralAccelerationValue (-160) +#define max_val_LateralAccelerationValue (161) +#define min_val_VerticalAccelerationValue (-160) +#define max_val_VerticalAccelerationValue (161) +#define min_val_StationType (0) +#define max_val_StationType (255) +#define min_val_HeightLonCarr (1) +#define max_val_HeightLonCarr (100) +#define min_val_PosLonCarr (1) +#define max_val_PosLonCarr (127) +#define min_val_PosPillar (1) +#define max_val_PosPillar (30) +#define min_val_PosCentMass (1) +#define max_val_PosCentMass (63) +#define min_val_SpeedLimit (1) +#define max_val_SpeedLimit (255) +#define min_val_Temperature (-60) +#define max_val_Temperature (67) +#define min_val_WheelBaseVehicle (1) +#define max_val_WheelBaseVehicle (127) +#define min_val_TurningRadius (1) +#define max_val_TurningRadius (255) +#define min_val_PosFrontAx (1) +#define max_val_PosFrontAx (20) +#define min_val_VehicleLengthValue (1) +#define max_val_VehicleLengthValue (1023) +#define min_val_VehicleWidth (1) +#define max_val_VehicleWidth (62) +#define min_val_InformationQuality (0) +#define max_val_InformationQuality (7) +#define min_val_SteeringWheelAngleValue (-511) +#define max_val_SteeringWheelAngleValue (512) +#define min_val_SteeringWheelAngleConfidence (1) +#define max_val_SteeringWheelAngleConfidence (127) +#define min_val_TimestampIts (0) +#define max_val_TimestampIts (4398046511103) +#define min_val_YawRateValue (-32766) +#define max_val_YawRateValue (32767) +#define min_val_TransmissionInterval (1) +#define max_val_TransmissionInterval (10000) +#define min_val_ValidityDuration (0) +#define max_val_ValidityDuration (86400) +#define min_val_NumberOfOccupants (0) +#define max_val_NumberOfOccupants (127) +#define min_val_SequenceNumber (0) +#define max_val_SequenceNumber (65535) +#define min_val_ProtectedZoneID (0) +#define max_val_ProtectedZoneID (134217727) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/vcits/denm/src/AccelerationConfidence.c b/vcits/denm/src/AccelerationConfidence.c new file mode 100644 index 0000000..112d996 --- /dev/null +++ b/vcits/denm/src/AccelerationConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "AccelerationConfidence.h" + +int +AccelerationConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 102)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..102) */, + -1}; +asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 102 } /* (0..102) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeInteger, + asn_DEF_AccelerationConfidence_tags_1, + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationConfidence_constr_1, &asn_PER_type_AccelerationConfidence_constr_1, AccelerationConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/AccelerationControl.c b/vcits/denm/src/AccelerationControl.c new file mode 100644 index 0000000..812e452 --- /dev/null +++ b/vcits/denm/src/AccelerationControl.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "AccelerationControl.h" + +int +AccelerationControl_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationControl = { + "AccelerationControl", + "AccelerationControl", + &asn_OP_BIT_STRING, + asn_DEF_AccelerationControl_tags_1, + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + asn_DEF_AccelerationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationControl_constr_1, &asn_PER_type_AccelerationControl_constr_1, AccelerationControl_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/denm/src/AccidentSubCauseCode.c b/vcits/denm/src/AccidentSubCauseCode.c new file mode 100644 index 0000000..029848c --- /dev/null +++ b/vcits/denm/src/AccidentSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "AccidentSubCauseCode.h" + +int +AccidentSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccidentSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode = { + "AccidentSubCauseCode", + "AccidentSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AccidentSubCauseCode_tags_1, + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AccidentSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AccidentSubCauseCode_constr_1, &asn_PER_type_AccidentSubCauseCode_constr_1, AccidentSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/ActionID.c b/vcits/denm/src/ActionID.c new file mode 100644 index 0000000..57bfd79 --- /dev/null +++ b/vcits/denm/src/ActionID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ActionID.h" + +asn_TYPE_member_t asn_MBR_ActionID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ActionID, originatingStationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "originatingStationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ActionID, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SequenceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ActionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ActionID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingStationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sequenceNumber */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ActionID_specs_1 = { + sizeof(struct ActionID), + offsetof(struct ActionID, _asn_ctx), + asn_MAP_ActionID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ActionID = { + "ActionID", + "ActionID", + &asn_OP_SEQUENCE, + asn_DEF_ActionID_tags_1, + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + asn_DEF_ActionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ActionID_1, + 2, /* Elements count */ + &asn_SPC_ActionID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/AdverseWeatherCondition-AdhesionSubCauseCode.c b/vcits/denm/src/AdverseWeatherCondition-AdhesionSubCauseCode.c new file mode 100644 index 0000000..f7308c8 --- /dev/null +++ b/vcits/denm/src/AdverseWeatherCondition-AdhesionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "AdverseWeatherCondition-AdhesionSubCauseCode.h" + +int +AdverseWeatherCondition_AdhesionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode = { + "AdverseWeatherCondition-AdhesionSubCauseCode", + "AdverseWeatherCondition-AdhesionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, AdverseWeatherCondition_AdhesionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c b/vcits/denm/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c new file mode 100644 index 0000000..77aa4d3 --- /dev/null +++ b/vcits/denm/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" + +int +AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = { + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c b/vcits/denm/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c new file mode 100644 index 0000000..a1541ec --- /dev/null +++ b/vcits/denm/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "AdverseWeatherCondition-PrecipitationSubCauseCode.h" + +int +AdverseWeatherCondition_PrecipitationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode = { + "AdverseWeatherCondition-PrecipitationSubCauseCode", + "AdverseWeatherCondition-PrecipitationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, AdverseWeatherCondition_PrecipitationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/AdverseWeatherCondition-VisibilitySubCauseCode.c b/vcits/denm/src/AdverseWeatherCondition-VisibilitySubCauseCode.c new file mode 100644 index 0000000..12e8a83 --- /dev/null +++ b/vcits/denm/src/AdverseWeatherCondition-VisibilitySubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "AdverseWeatherCondition-VisibilitySubCauseCode.h" + +int +AdverseWeatherCondition_VisibilitySubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode = { + "AdverseWeatherCondition-VisibilitySubCauseCode", + "AdverseWeatherCondition-VisibilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, AdverseWeatherCondition_VisibilitySubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/AlacarteContainer.c b/vcits/denm/src/AlacarteContainer.c new file mode 100644 index 0000000..700c3ae --- /dev/null +++ b/vcits/denm/src/AlacarteContainer.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "AlacarteContainer.h" + +#include "ImpactReductionContainer.h" +#include "RoadWorksContainerExtended.h" +#include "StationaryVehicleContainer.h" +asn_TYPE_member_t asn_MBR_AlacarteContainer_1[] = { + { ATF_POINTER, 6, offsetof(struct AlacarteContainer, lanePosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LanePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lanePosition" + }, + { ATF_POINTER, 5, offsetof(struct AlacarteContainer, impactReduction), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ImpactReductionContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "impactReduction" + }, + { ATF_POINTER, 4, offsetof(struct AlacarteContainer, externalTemperature), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Temperature, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "externalTemperature" + }, + { ATF_POINTER, 3, offsetof(struct AlacarteContainer, roadWorks), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadWorksContainerExtended, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadWorks" + }, + { ATF_POINTER, 2, offsetof(struct AlacarteContainer, positioningSolution), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositioningSolutionType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positioningSolution" + }, + { ATF_POINTER, 1, offsetof(struct AlacarteContainer, stationaryVehicle), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationaryVehicleContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationaryVehicle" + }, +}; +static const int asn_MAP_AlacarteContainer_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_AlacarteContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AlacarteContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lanePosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* impactReduction */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* externalTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roadWorks */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* positioningSolution */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* stationaryVehicle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AlacarteContainer_specs_1 = { + sizeof(struct AlacarteContainer), + offsetof(struct AlacarteContainer, _asn_ctx), + asn_MAP_AlacarteContainer_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_AlacarteContainer_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AlacarteContainer = { + "AlacarteContainer", + "AlacarteContainer", + &asn_OP_SEQUENCE, + asn_DEF_AlacarteContainer_tags_1, + sizeof(asn_DEF_AlacarteContainer_tags_1) + /sizeof(asn_DEF_AlacarteContainer_tags_1[0]), /* 1 */ + asn_DEF_AlacarteContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_AlacarteContainer_tags_1) + /sizeof(asn_DEF_AlacarteContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AlacarteContainer_1, + 6, /* Elements count */ + &asn_SPC_AlacarteContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/Altitude.c b/vcits/denm/src/Altitude.c new file mode 100644 index 0000000..3be2bc3 --- /dev/null +++ b/vcits/denm/src/Altitude.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "Altitude.h" + +asn_TYPE_member_t asn_MBR_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Altitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altitudeValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altitudeConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1 = { + sizeof(struct Altitude), + offsetof(struct Altitude, _asn_ctx), + asn_MAP_Altitude_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_Altitude_tags_1, + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + asn_DEF_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Altitude_1, + 2, /* Elements count */ + &asn_SPC_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/AltitudeConfidence.c b/vcits/denm/src/AltitudeConfidence.c new file mode 100644 index 0000000..48e391e --- /dev/null +++ b/vcits/denm/src/AltitudeConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "AltitudeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AltitudeConfidence_value2enum_1[] = { + { 0, 10, "alt-000-01" }, + { 1, 10, "alt-000-02" }, + { 2, 10, "alt-000-05" }, + { 3, 10, "alt-000-10" }, + { 4, 10, "alt-000-20" }, + { 5, 10, "alt-000-50" }, + { 6, 10, "alt-001-00" }, + { 7, 10, "alt-002-00" }, + { 8, 10, "alt-005-00" }, + { 9, 10, "alt-010-00" }, + { 10, 10, "alt-020-00" }, + { 11, 10, "alt-050-00" }, + { 12, 10, "alt-100-00" }, + { 13, 10, "alt-200-00" }, + { 14, 10, "outOfRange" }, + { 15, 11, "unavailable" } +}; +static const unsigned int asn_MAP_AltitudeConfidence_enum2value_1[] = { + 0, /* alt-000-01(0) */ + 1, /* alt-000-02(1) */ + 2, /* alt-000-05(2) */ + 3, /* alt-000-10(3) */ + 4, /* alt-000-20(4) */ + 5, /* alt-000-50(5) */ + 6, /* alt-001-00(6) */ + 7, /* alt-002-00(7) */ + 8, /* alt-005-00(8) */ + 9, /* alt-010-00(9) */ + 10, /* alt-020-00(10) */ + 11, /* alt-050-00(11) */ + 12, /* alt-100-00(12) */ + 13, /* alt-200-00(13) */ + 14, /* outOfRange(14) */ + 15 /* unavailable(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1 = { + asn_MAP_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AltitudeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_AltitudeConfidence_tags_1, + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeConfidence_constr_1, &asn_PER_type_AltitudeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/AltitudeValue.c b/vcits/denm/src/AltitudeValue.c new file mode 100644 index 0000000..07f4ab6 --- /dev/null +++ b/vcits/denm/src/AltitudeValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "AltitudeValue.h" + +int +AltitudeValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -100000 && value <= 800001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-100000..800001) */, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, -100000, 800001 } /* (-100000..800001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_AltitudeValue_tags_1, + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeValue_constr_1, &asn_PER_type_AltitudeValue_constr_1, AltitudeValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/CauseCode.c b/vcits/denm/src/CauseCode.c new file mode 100644 index 0000000..2462d9b --- /dev/null +++ b/vcits/denm/src/CauseCode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "CauseCode.h" + +asn_TYPE_member_t asn_MBR_CauseCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, causeCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "causeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, subCauseCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubCauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subCauseCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CauseCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* causeCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* subCauseCode */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CauseCode_specs_1 = { + sizeof(struct CauseCode), + offsetof(struct CauseCode, _asn_ctx), + asn_MAP_CauseCode_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CauseCode = { + "CauseCode", + "CauseCode", + &asn_OP_SEQUENCE, + asn_DEF_CauseCode_tags_1, + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + asn_DEF_CauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CauseCode_1, + 2, /* Elements count */ + &asn_SPC_CauseCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/CauseCodeType.c b/vcits/denm/src/CauseCodeType.c new file mode 100644 index 0000000..5d82343 --- /dev/null +++ b/vcits/denm/src/CauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "CauseCodeType.h" + +int +CauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseCodeType = { + "CauseCodeType", + "CauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_CauseCodeType_tags_1, + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_CauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseCodeType_constr_1, &asn_PER_type_CauseCodeType_constr_1, CauseCodeType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/CenDsrcTollingZone.c b/vcits/denm/src/CenDsrcTollingZone.c new file mode 100644 index 0000000..92e9a2e --- /dev/null +++ b/vcits/denm/src/CenDsrcTollingZone.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "CenDsrcTollingZone.h" + +static asn_TYPE_member_t asn_MBR_CenDsrcTollingZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 1, offsetof(struct CenDsrcTollingZone, cenDsrcTollingZoneID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CenDsrcTollingZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cenDsrcTollingZoneID" + }, +}; +static const int asn_MAP_CenDsrcTollingZone_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CenDsrcTollingZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cenDsrcTollingZoneID */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CenDsrcTollingZone_specs_1 = { + sizeof(struct CenDsrcTollingZone), + offsetof(struct CenDsrcTollingZone, _asn_ctx), + asn_MAP_CenDsrcTollingZone_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CenDsrcTollingZone_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone = { + "CenDsrcTollingZone", + "CenDsrcTollingZone", + &asn_OP_SEQUENCE, + asn_DEF_CenDsrcTollingZone_tags_1, + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZone_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CenDsrcTollingZone_1, + 3, /* Elements count */ + &asn_SPC_CenDsrcTollingZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/CenDsrcTollingZoneID.c b/vcits/denm/src/CenDsrcTollingZoneID.c new file mode 100644 index 0000000..6261b1c --- /dev/null +++ b/vcits/denm/src/CenDsrcTollingZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "CenDsrcTollingZoneID.h" + +int +CenDsrcTollingZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using ProtectedZoneID, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID = { + "CenDsrcTollingZoneID", + "CenDsrcTollingZoneID", + &asn_OP_NativeInteger, + asn_DEF_CenDsrcTollingZoneID_tags_1, + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_CenDsrcTollingZoneID_constr_1, &asn_PER_type_CenDsrcTollingZoneID_constr_1, CenDsrcTollingZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/ClosedLanes.c b/vcits/denm/src/ClosedLanes.c new file mode 100644 index 0000000..c69747d --- /dev/null +++ b/vcits/denm/src/ClosedLanes.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ClosedLanes.h" + +asn_TYPE_member_t asn_MBR_ClosedLanes_1[] = { + { ATF_POINTER, 3, offsetof(struct ClosedLanes, innerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "innerhardShoulderStatus" + }, + { ATF_POINTER, 2, offsetof(struct ClosedLanes, outerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outerhardShoulderStatus" + }, + { ATF_POINTER, 1, offsetof(struct ClosedLanes, drivingLaneStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivingLaneStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drivingLaneStatus" + }, +}; +static const int asn_MAP_ClosedLanes_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ClosedLanes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ClosedLanes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* innerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* outerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* drivingLaneStatus */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ClosedLanes_specs_1 = { + sizeof(struct ClosedLanes), + offsetof(struct ClosedLanes, _asn_ctx), + asn_MAP_ClosedLanes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ClosedLanes_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ClosedLanes = { + "ClosedLanes", + "ClosedLanes", + &asn_OP_SEQUENCE, + asn_DEF_ClosedLanes_tags_1, + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + asn_DEF_ClosedLanes_tags_1, /* Same as above */ + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ClosedLanes_1, + 3, /* Elements count */ + &asn_SPC_ClosedLanes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/CollisionRiskSubCauseCode.c b/vcits/denm/src/CollisionRiskSubCauseCode.c new file mode 100644 index 0000000..cc052ab --- /dev/null +++ b/vcits/denm/src/CollisionRiskSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "CollisionRiskSubCauseCode.h" + +int +CollisionRiskSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CollisionRiskSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode = { + "CollisionRiskSubCauseCode", + "CollisionRiskSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_CollisionRiskSubCauseCode_tags_1, + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_CollisionRiskSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CollisionRiskSubCauseCode_constr_1, &asn_PER_type_CollisionRiskSubCauseCode_constr_1, CollisionRiskSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/Curvature.c b/vcits/denm/src/Curvature.c new file mode 100644 index 0000000..f95edb4 --- /dev/null +++ b/vcits/denm/src/Curvature.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "Curvature.h" + +static asn_TYPE_member_t asn_MBR_Curvature_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Curvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Curvature_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* curvatureValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* curvatureConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Curvature_specs_1 = { + sizeof(struct Curvature), + offsetof(struct Curvature, _asn_ctx), + asn_MAP_Curvature_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Curvature = { + "Curvature", + "Curvature", + &asn_OP_SEQUENCE, + asn_DEF_Curvature_tags_1, + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + asn_DEF_Curvature_tags_1, /* Same as above */ + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Curvature_1, + 2, /* Elements count */ + &asn_SPC_Curvature_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/CurvatureCalculationMode.c b/vcits/denm/src/CurvatureCalculationMode.c new file mode 100644 index 0000000..72e890f --- /dev/null +++ b/vcits/denm/src/CurvatureCalculationMode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "CurvatureCalculationMode.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureCalculationMode_value2enum_1[] = { + { 0, 11, "yawRateUsed" }, + { 1, 14, "yawRateNotUsed" }, + { 2, 11, "unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CurvatureCalculationMode_enum2value_1[] = { + 2, /* unavailable(2) */ + 1, /* yawRateNotUsed(1) */ + 0 /* yawRateUsed(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_CurvatureCalculationMode_specs_1 = { + asn_MAP_CurvatureCalculationMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureCalculationMode_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureCalculationMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode = { + "CurvatureCalculationMode", + "CurvatureCalculationMode", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureCalculationMode_tags_1, + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + asn_DEF_CurvatureCalculationMode_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureCalculationMode_constr_1, &asn_PER_type_CurvatureCalculationMode_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureCalculationMode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/CurvatureConfidence.c b/vcits/denm/src/CurvatureConfidence.c new file mode 100644 index 0000000..3bc183d --- /dev/null +++ b/vcits/denm/src/CurvatureConfidence.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "CurvatureConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureConfidence_value2enum_1[] = { + { 0, 19, "onePerMeter-0-00002" }, + { 1, 18, "onePerMeter-0-0001" }, + { 2, 18, "onePerMeter-0-0005" }, + { 3, 17, "onePerMeter-0-002" }, + { 4, 16, "onePerMeter-0-01" }, + { 5, 15, "onePerMeter-0-1" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_CurvatureConfidence_enum2value_1[] = { + 0, /* onePerMeter-0-00002(0) */ + 1, /* onePerMeter-0-0001(1) */ + 2, /* onePerMeter-0-0005(2) */ + 3, /* onePerMeter-0-002(3) */ + 4, /* onePerMeter-0-01(4) */ + 5, /* onePerMeter-0-1(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1 = { + asn_MAP_CurvatureConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence = { + "CurvatureConfidence", + "CurvatureConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureConfidence_tags_1, + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + asn_DEF_CurvatureConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureConfidence_constr_1, &asn_PER_type_CurvatureConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/CurvatureValue.c b/vcits/denm/src/CurvatureValue.c new file mode 100644 index 0000000..747370b --- /dev/null +++ b/vcits/denm/src/CurvatureValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "CurvatureValue.h" + +int +CurvatureValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1023 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1023..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1023, 1023 } /* (-1023..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CurvatureValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureValue = { + "CurvatureValue", + "CurvatureValue", + &asn_OP_NativeInteger, + asn_DEF_CurvatureValue_tags_1, + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + asn_DEF_CurvatureValue_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureValue_constr_1, &asn_PER_type_CurvatureValue_constr_1, CurvatureValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/DENM.c b/vcits/denm/src/DENM.c new file mode 100644 index 0000000..87b414e --- /dev/null +++ b/vcits/denm/src/DENM.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "DENM.h" + +static asn_TYPE_member_t asn_MBR_DENM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DENM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsPduHeader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct DENM, denm), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DecentralizedEnvironmentalNotificationMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "denm" + }, +}; +static const ber_tlv_tag_t asn_DEF_DENM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DENM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* denm */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DENM_specs_1 = { + sizeof(struct DENM), + offsetof(struct DENM, _asn_ctx), + asn_MAP_DENM_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DENM = { + "DENM", + "DENM", + &asn_OP_SEQUENCE, + asn_DEF_DENM_tags_1, + sizeof(asn_DEF_DENM_tags_1) + /sizeof(asn_DEF_DENM_tags_1[0]), /* 1 */ + asn_DEF_DENM_tags_1, /* Same as above */ + sizeof(asn_DEF_DENM_tags_1) + /sizeof(asn_DEF_DENM_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DENM_1, + 2, /* Elements count */ + &asn_SPC_DENM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/DangerousEndOfQueueSubCauseCode.c b/vcits/denm/src/DangerousEndOfQueueSubCauseCode.c new file mode 100644 index 0000000..1bf89d4 --- /dev/null +++ b/vcits/denm/src/DangerousEndOfQueueSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "DangerousEndOfQueueSubCauseCode.h" + +int +DangerousEndOfQueueSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode = { + "DangerousEndOfQueueSubCauseCode", + "DangerousEndOfQueueSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1, &asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1, DangerousEndOfQueueSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/DangerousGoodsBasic.c b/vcits/denm/src/DangerousGoodsBasic.c new file mode 100644 index 0000000..2f2414e --- /dev/null +++ b/vcits/denm/src/DangerousGoodsBasic.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "DangerousGoodsBasic.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DangerousGoodsBasic_value2enum_1[] = { + { 0, 11, "explosives1" }, + { 1, 11, "explosives2" }, + { 2, 11, "explosives3" }, + { 3, 11, "explosives4" }, + { 4, 11, "explosives5" }, + { 5, 11, "explosives6" }, + { 6, 14, "flammableGases" }, + { 7, 17, "nonFlammableGases" }, + { 8, 10, "toxicGases" }, + { 9, 16, "flammableLiquids" }, + { 10, 15, "flammableSolids" }, + { 11, 39, "substancesLiableToSpontaneousCombustion" }, + { 12, 52, "substancesEmittingFlammableGasesUponContactWithWater" }, + { 13, 19, "oxidizingSubstances" }, + { 14, 16, "organicPeroxides" }, + { 15, 15, "toxicSubstances" }, + { 16, 20, "infectiousSubstances" }, + { 17, 19, "radioactiveMaterial" }, + { 18, 19, "corrosiveSubstances" }, + { 19, 32, "miscellaneousDangerousSubstances" } +}; +static const unsigned int asn_MAP_DangerousGoodsBasic_enum2value_1[] = { + 18, /* corrosiveSubstances(18) */ + 0, /* explosives1(0) */ + 1, /* explosives2(1) */ + 2, /* explosives3(2) */ + 3, /* explosives4(3) */ + 4, /* explosives5(4) */ + 5, /* explosives6(5) */ + 6, /* flammableGases(6) */ + 9, /* flammableLiquids(9) */ + 10, /* flammableSolids(10) */ + 16, /* infectiousSubstances(16) */ + 19, /* miscellaneousDangerousSubstances(19) */ + 7, /* nonFlammableGases(7) */ + 14, /* organicPeroxides(14) */ + 13, /* oxidizingSubstances(13) */ + 17, /* radioactiveMaterial(17) */ + 12, /* substancesEmittingFlammableGasesUponContactWithWater(12) */ + 11, /* substancesLiableToSpontaneousCombustion(11) */ + 8, /* toxicGases(8) */ + 15 /* toxicSubstances(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1 = { + asn_MAP_DangerousGoodsBasic_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DangerousGoodsBasic_enum2value_1, /* N => "tag"; sorted by N */ + 20, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic = { + "DangerousGoodsBasic", + "DangerousGoodsBasic", + &asn_OP_NativeEnumerated, + asn_DEF_DangerousGoodsBasic_tags_1, + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousGoodsBasic_constr_1, &asn_PER_type_DangerousGoodsBasic_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DangerousGoodsBasic_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/DangerousGoodsExtended.c b/vcits/denm/src/DangerousGoodsExtended.c new file mode 100644 index 0000000..44dbedc --- /dev/null +++ b/vcits/denm/src/DangerousGoodsExtended.c @@ -0,0 +1,243 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "DangerousGoodsExtended.h" + +static int check_permitted_alphabet_7(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_unNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 9999)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_emergencyActionCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 24) + && !check_permitted_alphabet_7(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_companyName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const UTF8String_t *st = (const UTF8String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = UTF8String_length(st); + if((ssize_t)size < 0) { + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((size >= 1 && size <= 24)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_unNumber_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..9999) */, + -1}; +static asn_per_constraints_t asn_PER_memb_unNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 9999 } /* (0..9999) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..24)) */}; +static asn_per_constraints_t asn_PER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 5, 5, 1, 24 } /* (SIZE(1..24)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_companyName_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_companyName_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_DangerousGoodsExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsBasic, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dangerousGoodsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, unNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_unNumber_constr_3, &asn_PER_memb_unNumber_constr_3, memb_unNumber_constraint_1 }, + 0, 0, /* No default value */ + "unNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, elevatedTemperature), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevatedTemperature" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, tunnelsRestricted), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tunnelsRestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, limitedQuantity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "limitedQuantity" + }, + { ATF_POINTER, 3, offsetof(struct DangerousGoodsExtended, emergencyActionCode), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_emergencyActionCode_constr_7, &asn_PER_memb_emergencyActionCode_constr_7, memb_emergencyActionCode_constraint_1 }, + 0, 0, /* No default value */ + "emergencyActionCode" + }, + { ATF_POINTER, 2, offsetof(struct DangerousGoodsExtended, phoneNumber), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhoneNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phoneNumber" + }, + { ATF_POINTER, 1, offsetof(struct DangerousGoodsExtended, companyName), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { &asn_OER_memb_companyName_constr_9, &asn_PER_memb_companyName_constr_9, memb_companyName_constraint_1 }, + 0, 0, /* No default value */ + "companyName" + }, +}; +static const int asn_MAP_DangerousGoodsExtended_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DangerousGoodsExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dangerousGoodsType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* unNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevatedTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tunnelsRestricted */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* limitedQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyActionCode */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* phoneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* companyName */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DangerousGoodsExtended_specs_1 = { + sizeof(struct DangerousGoodsExtended), + offsetof(struct DangerousGoodsExtended, _asn_ctx), + asn_MAP_DangerousGoodsExtended_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_DangerousGoodsExtended_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended = { + "DangerousGoodsExtended", + "DangerousGoodsExtended", + &asn_OP_SEQUENCE, + asn_DEF_DangerousGoodsExtended_tags_1, + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DangerousGoodsExtended_1, + 8, /* Elements count */ + &asn_SPC_DangerousGoodsExtended_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/DangerousSituationSubCauseCode.c b/vcits/denm/src/DangerousSituationSubCauseCode.c new file mode 100644 index 0000000..6132ed8 --- /dev/null +++ b/vcits/denm/src/DangerousSituationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "DangerousSituationSubCauseCode.h" + +int +DangerousSituationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousSituationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode = { + "DangerousSituationSubCauseCode", + "DangerousSituationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousSituationSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousSituationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousSituationSubCauseCode_constr_1, &asn_PER_type_DangerousSituationSubCauseCode_constr_1, DangerousSituationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/DecentralizedEnvironmentalNotificationMessage.c b/vcits/denm/src/DecentralizedEnvironmentalNotificationMessage.c new file mode 100644 index 0000000..e6e7ab0 --- /dev/null +++ b/vcits/denm/src/DecentralizedEnvironmentalNotificationMessage.c @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "DecentralizedEnvironmentalNotificationMessage.h" + +#include "SituationContainer.h" +#include "LocationContainer.h" +#include "AlacarteContainer.h" +asn_TYPE_member_t asn_MBR_DecentralizedEnvironmentalNotificationMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DecentralizedEnvironmentalNotificationMessage, management), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManagementContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "management" + }, + { ATF_POINTER, 3, offsetof(struct DecentralizedEnvironmentalNotificationMessage, situation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SituationContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "situation" + }, + { ATF_POINTER, 2, offsetof(struct DecentralizedEnvironmentalNotificationMessage, location), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LocationContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "location" + }, + { ATF_POINTER, 1, offsetof(struct DecentralizedEnvironmentalNotificationMessage, alacarte), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AlacarteContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "alacarte" + }, +}; +static const int asn_MAP_DecentralizedEnvironmentalNotificationMessage_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_DecentralizedEnvironmentalNotificationMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DecentralizedEnvironmentalNotificationMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* management */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* situation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* location */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* alacarte */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DecentralizedEnvironmentalNotificationMessage_specs_1 = { + sizeof(struct DecentralizedEnvironmentalNotificationMessage), + offsetof(struct DecentralizedEnvironmentalNotificationMessage, _asn_ctx), + asn_MAP_DecentralizedEnvironmentalNotificationMessage_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DecentralizedEnvironmentalNotificationMessage_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DecentralizedEnvironmentalNotificationMessage = { + "DecentralizedEnvironmentalNotificationMessage", + "DecentralizedEnvironmentalNotificationMessage", + &asn_OP_SEQUENCE, + asn_DEF_DecentralizedEnvironmentalNotificationMessage_tags_1, + sizeof(asn_DEF_DecentralizedEnvironmentalNotificationMessage_tags_1) + /sizeof(asn_DEF_DecentralizedEnvironmentalNotificationMessage_tags_1[0]), /* 1 */ + asn_DEF_DecentralizedEnvironmentalNotificationMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_DecentralizedEnvironmentalNotificationMessage_tags_1) + /sizeof(asn_DEF_DecentralizedEnvironmentalNotificationMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DecentralizedEnvironmentalNotificationMessage_1, + 4, /* Elements count */ + &asn_SPC_DecentralizedEnvironmentalNotificationMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/DeltaAltitude.c b/vcits/denm/src/DeltaAltitude.c new file mode 100644 index 0000000..840f9cf --- /dev/null +++ b/vcits/denm/src/DeltaAltitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "DeltaAltitude.h" + +int +DeltaAltitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -12700 && value <= 12800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-12700..12800) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, -12700, 12800 } /* (-12700..12800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAltitude = { + "DeltaAltitude", + "DeltaAltitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaAltitude_tags_1, + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAltitude_constr_1, &asn_PER_type_DeltaAltitude_constr_1, DeltaAltitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/DeltaLatitude.c b/vcits/denm/src/DeltaLatitude.c new file mode 100644 index 0000000..0ec411b --- /dev/null +++ b/vcits/denm/src/DeltaLatitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "DeltaLatitude.h" + +int +DeltaLatitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLatitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLatitude = { + "DeltaLatitude", + "DeltaLatitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLatitude_tags_1, + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLatitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLatitude_constr_1, &asn_PER_type_DeltaLatitude_constr_1, DeltaLatitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/DeltaLongitude.c b/vcits/denm/src/DeltaLongitude.c new file mode 100644 index 0000000..b0ae56b --- /dev/null +++ b/vcits/denm/src/DeltaLongitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "DeltaLongitude.h" + +int +DeltaLongitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLongitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLongitude = { + "DeltaLongitude", + "DeltaLongitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLongitude_tags_1, + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLongitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLongitude_constr_1, &asn_PER_type_DeltaLongitude_constr_1, DeltaLongitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/DeltaReferencePosition.c b/vcits/denm/src/DeltaReferencePosition.c new file mode 100644 index 0000000..8f59dd6 --- /dev/null +++ b/vcits/denm/src/DeltaReferencePosition.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "DeltaReferencePosition.h" + +asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLatitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLongitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLongitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaAltitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_DeltaReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DeltaReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* deltaAltitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1 = { + sizeof(struct DeltaReferencePosition), + offsetof(struct DeltaReferencePosition, _asn_ctx), + asn_MAP_DeltaReferencePosition_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition = { + "DeltaReferencePosition", + "DeltaReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_DeltaReferencePosition_tags_1, + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_DeltaReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DeltaReferencePosition_1, + 3, /* Elements count */ + &asn_SPC_DeltaReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/DigitalMap.c b/vcits/denm/src/DigitalMap.c new file mode 100644 index 0000000..287d431 --- /dev/null +++ b/vcits/denm/src/DigitalMap.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "DigitalMap.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_DigitalMap_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_DigitalMap_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DigitalMap_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DigitalMap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DigitalMap_specs_1 = { + sizeof(struct DigitalMap), + offsetof(struct DigitalMap, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DigitalMap = { + "DigitalMap", + "DigitalMap", + &asn_OP_SEQUENCE_OF, + asn_DEF_DigitalMap_tags_1, + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + asn_DEF_DigitalMap_tags_1, /* Same as above */ + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + { &asn_OER_type_DigitalMap_constr_1, &asn_PER_type_DigitalMap_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DigitalMap_1, + 1, /* Single element */ + &asn_SPC_DigitalMap_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/DriveDirection.c b/vcits/denm/src/DriveDirection.c new file mode 100644 index 0000000..01f1163 --- /dev/null +++ b/vcits/denm/src/DriveDirection.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "DriveDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DriveDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_DriveDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DriveDirection_value2enum_1[] = { + { 0, 7, "forward" }, + { 1, 8, "backward" }, + { 2, 11, "unavailable" } +}; +static const unsigned int asn_MAP_DriveDirection_enum2value_1[] = { + 1, /* backward(1) */ + 0, /* forward(0) */ + 2 /* unavailable(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_DriveDirection_specs_1 = { + asn_MAP_DriveDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DriveDirection_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DriveDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DriveDirection = { + "DriveDirection", + "DriveDirection", + &asn_OP_NativeEnumerated, + asn_DEF_DriveDirection_tags_1, + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + asn_DEF_DriveDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_DriveDirection_constr_1, &asn_PER_type_DriveDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DriveDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/DrivingLaneStatus.c b/vcits/denm/src/DrivingLaneStatus.c new file mode 100644 index 0000000..7e924d1 --- /dev/null +++ b/vcits/denm/src/DrivingLaneStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "DrivingLaneStatus.h" + +int +DrivingLaneStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size >= 1 && size <= 13)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..13)) */}; +asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 13 } /* (SIZE(1..13)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivingLaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus = { + "DrivingLaneStatus", + "DrivingLaneStatus", + &asn_OP_BIT_STRING, + asn_DEF_DrivingLaneStatus_tags_1, + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + asn_DEF_DrivingLaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivingLaneStatus_constr_1, &asn_PER_type_DrivingLaneStatus_constr_1, DrivingLaneStatus_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/denm/src/EmbarkationStatus.c b/vcits/denm/src/EmbarkationStatus.c new file mode 100644 index 0000000..0e9bf2d --- /dev/null +++ b/vcits/denm/src/EmbarkationStatus.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "EmbarkationStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_EmbarkationStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus = { + "EmbarkationStatus", + "EmbarkationStatus", + &asn_OP_BOOLEAN, + asn_DEF_EmbarkationStatus_tags_1, + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + asn_DEF_EmbarkationStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/EmergencyPriority.c b/vcits/denm/src/EmergencyPriority.c new file mode 100644 index 0000000..20c24dc --- /dev/null +++ b/vcits/denm/src/EmergencyPriority.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "EmergencyPriority.h" + +int +EmergencyPriority_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyPriority = { + "EmergencyPriority", + "EmergencyPriority", + &asn_OP_BIT_STRING, + asn_DEF_EmergencyPriority_tags_1, + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + asn_DEF_EmergencyPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyPriority_constr_1, &asn_PER_type_EmergencyPriority_constr_1, EmergencyPriority_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/denm/src/EmergencyVehicleApproachingSubCauseCode.c b/vcits/denm/src/EmergencyVehicleApproachingSubCauseCode.c new file mode 100644 index 0000000..71e405a --- /dev/null +++ b/vcits/denm/src/EmergencyVehicleApproachingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "EmergencyVehicleApproachingSubCauseCode.h" + +int +EmergencyVehicleApproachingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode = { + "EmergencyVehicleApproachingSubCauseCode", + "EmergencyVehicleApproachingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, &asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, EmergencyVehicleApproachingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/EnergyStorageType.c b/vcits/denm/src/EnergyStorageType.c new file mode 100644 index 0000000..4e17123 --- /dev/null +++ b/vcits/denm/src/EnergyStorageType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "EnergyStorageType.h" + +int +EnergyStorageType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +asn_per_constraints_t asn_PER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EnergyStorageType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EnergyStorageType = { + "EnergyStorageType", + "EnergyStorageType", + &asn_OP_BIT_STRING, + asn_DEF_EnergyStorageType_tags_1, + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + asn_DEF_EnergyStorageType_tags_1, /* Same as above */ + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + { &asn_OER_type_EnergyStorageType_constr_1, &asn_PER_type_EnergyStorageType_constr_1, EnergyStorageType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/denm/src/EventHistory.c b/vcits/denm/src/EventHistory.c new file mode 100644 index 0000000..7bdd44a --- /dev/null +++ b/vcits/denm/src/EventHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "EventHistory.h" + +#include "EventPoint.h" +static asn_oer_constraints_t asn_OER_type_EventHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..23)) */}; +asn_per_constraints_t asn_PER_type_EventHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (SIZE(1..23)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_EventHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EventPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EventHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EventHistory_specs_1 = { + sizeof(struct EventHistory), + offsetof(struct EventHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EventHistory = { + "EventHistory", + "EventHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_EventHistory_tags_1, + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + asn_DEF_EventHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_EventHistory_constr_1, &asn_PER_type_EventHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EventHistory_1, + 1, /* Single element */ + &asn_SPC_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/EventPoint.c b/vcits/denm/src/EventPoint.c new file mode 100644 index 0000000..6cc585c --- /dev/null +++ b/vcits/denm/src/EventPoint.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "EventPoint.h" + +asn_TYPE_member_t asn_MBR_EventPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventPosition" + }, + { ATF_POINTER, 1, offsetof(struct EventPoint, eventDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InformationQuality, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "informationQuality" + }, +}; +static const int asn_MAP_EventPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_EventPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EventPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* informationQuality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1 = { + sizeof(struct EventPoint), + offsetof(struct EventPoint, _asn_ctx), + asn_MAP_EventPoint_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_EventPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EventPoint = { + "EventPoint", + "EventPoint", + &asn_OP_SEQUENCE, + asn_DEF_EventPoint_tags_1, + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + asn_DEF_EventPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EventPoint_1, + 3, /* Elements count */ + &asn_SPC_EventPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/ExteriorLights.c b/vcits/denm/src/ExteriorLights.c new file mode 100644 index 0000000..7b21647 --- /dev/null +++ b/vcits/denm/src/ExteriorLights.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ExteriorLights.h" + +int +ExteriorLights_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_ExteriorLights_tags_1, + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + { &asn_OER_type_ExteriorLights_constr_1, &asn_PER_type_ExteriorLights_constr_1, ExteriorLights_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/denm/src/HardShoulderStatus.c b/vcits/denm/src/HardShoulderStatus.c new file mode 100644 index 0000000..6e9a6f0 --- /dev/null +++ b/vcits/denm/src/HardShoulderStatus.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "HardShoulderStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HardShoulderStatus_value2enum_1[] = { + { 0, 20, "availableForStopping" }, + { 1, 6, "closed" }, + { 2, 19, "availableForDriving" } +}; +static const unsigned int asn_MAP_HardShoulderStatus_enum2value_1[] = { + 2, /* availableForDriving(2) */ + 0, /* availableForStopping(0) */ + 1 /* closed(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1 = { + asn_MAP_HardShoulderStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HardShoulderStatus_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HardShoulderStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus = { + "HardShoulderStatus", + "HardShoulderStatus", + &asn_OP_NativeEnumerated, + asn_DEF_HardShoulderStatus_tags_1, + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + asn_DEF_HardShoulderStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_HardShoulderStatus_constr_1, &asn_PER_type_HardShoulderStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HardShoulderStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c b/vcits/denm/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..aaad93c --- /dev/null +++ b/vcits/denm/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "HazardousLocation-AnimalOnTheRoadSubCauseCode.h" + +int +HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode = { + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/HazardousLocation-DangerousCurveSubCauseCode.c b/vcits/denm/src/HazardousLocation-DangerousCurveSubCauseCode.c new file mode 100644 index 0000000..1ee1db4 --- /dev/null +++ b/vcits/denm/src/HazardousLocation-DangerousCurveSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "HazardousLocation-DangerousCurveSubCauseCode.h" + +int +HazardousLocation_DangerousCurveSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode = { + "HazardousLocation-DangerousCurveSubCauseCode", + "HazardousLocation-DangerousCurveSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, HazardousLocation_DangerousCurveSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c b/vcits/denm/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..618f87b --- /dev/null +++ b/vcits/denm/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" + +int +HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode = { + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/HazardousLocation-SurfaceConditionSubCauseCode.c b/vcits/denm/src/HazardousLocation-SurfaceConditionSubCauseCode.c new file mode 100644 index 0000000..2725194 --- /dev/null +++ b/vcits/denm/src/HazardousLocation-SurfaceConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "HazardousLocation-SurfaceConditionSubCauseCode.h" + +int +HazardousLocation_SurfaceConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode = { + "HazardousLocation-SurfaceConditionSubCauseCode", + "HazardousLocation-SurfaceConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, HazardousLocation_SurfaceConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/Heading.c b/vcits/denm/src/Heading.c new file mode 100644 index 0000000..70f9b44 --- /dev/null +++ b/vcits/denm/src/Heading.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "Heading.h" + +asn_TYPE_member_t asn_MBR_Heading_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Heading_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* headingValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* headingConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Heading_specs_1 = { + sizeof(struct Heading), + offsetof(struct Heading, _asn_ctx), + asn_MAP_Heading_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Heading = { + "Heading", + "Heading", + &asn_OP_SEQUENCE, + asn_DEF_Heading_tags_1, + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + asn_DEF_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Heading_1, + 2, /* Elements count */ + &asn_SPC_Heading_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/HeadingConfidence.c b/vcits/denm/src/HeadingConfidence.c new file mode 100644 index 0000000..906659c --- /dev/null +++ b/vcits/denm/src/HeadingConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "HeadingConfidence.h" + +int +HeadingConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeInteger, + asn_DEF_HeadingConfidence_tags_1, + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidence_constr_1, &asn_PER_type_HeadingConfidence_constr_1, HeadingConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/HeadingValue.c b/vcits/denm/src/HeadingValue.c new file mode 100644 index 0000000..93ae5d3 --- /dev/null +++ b/vcits/denm/src/HeadingValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "HeadingValue.h" + +int +HeadingValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3601)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3601) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingValue = { + "HeadingValue", + "HeadingValue", + &asn_OP_NativeInteger, + asn_DEF_HeadingValue_tags_1, + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + asn_DEF_HeadingValue_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingValue_constr_1, &asn_PER_type_HeadingValue_constr_1, HeadingValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/HeightLonCarr.c b/vcits/denm/src/HeightLonCarr.c new file mode 100644 index 0000000..02160b9 --- /dev/null +++ b/vcits/denm/src/HeightLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "HeightLonCarr.h" + +int +HeightLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..100) */, + -1}; +asn_per_constraints_t asn_PER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 100 } /* (1..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeightLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeightLonCarr = { + "HeightLonCarr", + "HeightLonCarr", + &asn_OP_NativeInteger, + asn_DEF_HeightLonCarr_tags_1, + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + asn_DEF_HeightLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_HeightLonCarr_constr_1, &asn_PER_type_HeightLonCarr_constr_1, HeightLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/HumanPresenceOnTheRoadSubCauseCode.c b/vcits/denm/src/HumanPresenceOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..08772c1 --- /dev/null +++ b/vcits/denm/src/HumanPresenceOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "HumanPresenceOnTheRoadSubCauseCode.h" + +int +HumanPresenceOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode = { + "HumanPresenceOnTheRoadSubCauseCode", + "HumanPresenceOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, HumanPresenceOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/HumanProblemSubCauseCode.c b/vcits/denm/src/HumanProblemSubCauseCode.c new file mode 100644 index 0000000..32961c5 --- /dev/null +++ b/vcits/denm/src/HumanProblemSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "HumanProblemSubCauseCode.h" + +int +HumanProblemSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanProblemSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode = { + "HumanProblemSubCauseCode", + "HumanProblemSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanProblemSubCauseCode_tags_1, + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanProblemSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanProblemSubCauseCode_constr_1, &asn_PER_type_HumanProblemSubCauseCode_constr_1, HumanProblemSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/ImpactReductionContainer.c b/vcits/denm/src/ImpactReductionContainer.c new file mode 100644 index 0000000..47a0884 --- /dev/null +++ b/vcits/denm/src/ImpactReductionContainer.c @@ -0,0 +1,160 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ImpactReductionContainer.h" + +asn_TYPE_member_t asn_MBR_ImpactReductionContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ImpactReductionContainer, heightLonCarrLeft), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeightLonCarr, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heightLonCarrLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct ImpactReductionContainer, heightLonCarrRight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeightLonCarr, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heightLonCarrRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct ImpactReductionContainer, posLonCarrLeft), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PosLonCarr, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posLonCarrLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct ImpactReductionContainer, posLonCarrRight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PosLonCarr, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posLonCarrRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct ImpactReductionContainer, positionOfPillars), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionOfPillars, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionOfPillars" + }, + { ATF_NOFLAGS, 0, offsetof(struct ImpactReductionContainer, posCentMass), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PosCentMass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posCentMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct ImpactReductionContainer, wheelBaseVehicle), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WheelBaseVehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wheelBaseVehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct ImpactReductionContainer, turningRadius), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TurningRadius, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "turningRadius" + }, + { ATF_NOFLAGS, 0, offsetof(struct ImpactReductionContainer, posFrontAx), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PosFrontAx, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posFrontAx" + }, + { ATF_NOFLAGS, 0, offsetof(struct ImpactReductionContainer, positionOfOccupants), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionOfOccupants, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionOfOccupants" + }, + { ATF_NOFLAGS, 0, offsetof(struct ImpactReductionContainer, vehicleMass), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleMass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct ImpactReductionContainer, requestResponseIndication), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestResponseIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestResponseIndication" + }, +}; +static const ber_tlv_tag_t asn_DEF_ImpactReductionContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ImpactReductionContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* heightLonCarrLeft */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* heightLonCarrRight */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* posLonCarrLeft */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* posLonCarrRight */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* positionOfPillars */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* posCentMass */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* wheelBaseVehicle */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* turningRadius */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* posFrontAx */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* positionOfOccupants */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* vehicleMass */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* requestResponseIndication */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ImpactReductionContainer_specs_1 = { + sizeof(struct ImpactReductionContainer), + offsetof(struct ImpactReductionContainer, _asn_ctx), + asn_MAP_ImpactReductionContainer_tag2el_1, + 12, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ImpactReductionContainer = { + "ImpactReductionContainer", + "ImpactReductionContainer", + &asn_OP_SEQUENCE, + asn_DEF_ImpactReductionContainer_tags_1, + sizeof(asn_DEF_ImpactReductionContainer_tags_1) + /sizeof(asn_DEF_ImpactReductionContainer_tags_1[0]), /* 1 */ + asn_DEF_ImpactReductionContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ImpactReductionContainer_tags_1) + /sizeof(asn_DEF_ImpactReductionContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ImpactReductionContainer_1, + 12, /* Elements count */ + &asn_SPC_ImpactReductionContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/InformationQuality.c b/vcits/denm/src/InformationQuality.c new file mode 100644 index 0000000..ce03402 --- /dev/null +++ b/vcits/denm/src/InformationQuality.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "InformationQuality.h" + +int +InformationQuality_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_InformationQuality_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_InformationQuality_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_InformationQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InformationQuality = { + "InformationQuality", + "InformationQuality", + &asn_OP_NativeInteger, + asn_DEF_InformationQuality_tags_1, + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + asn_DEF_InformationQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + { &asn_OER_type_InformationQuality_constr_1, &asn_PER_type_InformationQuality_constr_1, InformationQuality_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/ItineraryPath.c b/vcits/denm/src/ItineraryPath.c new file mode 100644 index 0000000..8023667 --- /dev/null +++ b/vcits/denm/src/ItineraryPath.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ItineraryPath.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..40)) */}; +asn_per_constraints_t asn_PER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 40 } /* (SIZE(1..40)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItineraryPath_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItineraryPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ItineraryPath_specs_1 = { + sizeof(struct ItineraryPath), + offsetof(struct ItineraryPath, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItineraryPath = { + "ItineraryPath", + "ItineraryPath", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItineraryPath_tags_1, + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + asn_DEF_ItineraryPath_tags_1, /* Same as above */ + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + { &asn_OER_type_ItineraryPath_constr_1, &asn_PER_type_ItineraryPath_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItineraryPath_1, + 1, /* Single element */ + &asn_SPC_ItineraryPath_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/ItsPduHeader.c b/vcits/denm/src/ItsPduHeader.c new file mode 100644 index 0000000..d9eec95 --- /dev/null +++ b/vcits/denm/src/ItsPduHeader.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ItsPduHeader.h" + +static int +memb_protocolVersion_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_messageID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_messageID_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_messageID_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsPduHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, protocolVersion), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_protocolVersion_constr_2, &asn_PER_memb_protocolVersion_constr_2, memb_protocolVersion_constraint_1 }, + 0, 0, /* No default value */ + "protocolVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, messageID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_messageID_constr_3, &asn_PER_memb_messageID_constr_3, memb_messageID_constraint_1 }, + 0, 0, /* No default value */ + "messageID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, stationID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsPduHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsPduHeader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolVersion */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* messageID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* stationID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1 = { + sizeof(struct ItsPduHeader), + offsetof(struct ItsPduHeader, _asn_ctx), + asn_MAP_ItsPduHeader_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsPduHeader = { + "ItsPduHeader", + "ItsPduHeader", + &asn_OP_SEQUENCE, + asn_DEF_ItsPduHeader_tags_1, + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + asn_DEF_ItsPduHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsPduHeader_1, + 3, /* Elements count */ + &asn_SPC_ItsPduHeader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/LanePosition.c b/vcits/denm/src/LanePosition.c new file mode 100644 index 0000000..cd2573d --- /dev/null +++ b/vcits/denm/src/LanePosition.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "LanePosition.h" + +int +LanePosition_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1 && value <= 14)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LanePosition_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-1..14) */, + -1}; +asn_per_constraints_t asn_PER_type_LanePosition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, -1, 14 } /* (-1..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LanePosition = { + "LanePosition", + "LanePosition", + &asn_OP_NativeInteger, + asn_DEF_LanePosition_tags_1, + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + asn_DEF_LanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + { &asn_OER_type_LanePosition_constr_1, &asn_PER_type_LanePosition_constr_1, LanePosition_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/LateralAcceleration.c b/vcits/denm/src/LateralAcceleration.c new file mode 100644 index 0000000..1134f2d --- /dev/null +++ b/vcits/denm/src/LateralAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "LateralAcceleration.h" + +static asn_TYPE_member_t asn_MBR_LateralAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LateralAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LateralAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LateralAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateralAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lateralAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_LateralAcceleration_specs_1 = { + sizeof(struct LateralAcceleration), + offsetof(struct LateralAcceleration, _asn_ctx), + asn_MAP_LateralAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LateralAcceleration = { + "LateralAcceleration", + "LateralAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LateralAcceleration_tags_1, + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LateralAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LateralAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LateralAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/LateralAccelerationValue.c b/vcits/denm/src/LateralAccelerationValue.c new file mode 100644 index 0000000..3bcb1aa --- /dev/null +++ b/vcits/denm/src/LateralAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "LateralAccelerationValue.h" + +int +LateralAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LateralAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue = { + "LateralAccelerationValue", + "LateralAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LateralAccelerationValue_tags_1, + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LateralAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LateralAccelerationValue_constr_1, &asn_PER_type_LateralAccelerationValue_constr_1, LateralAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/Latitude.c b/vcits/denm/src/Latitude.c new file mode 100644 index 0000000..a7316cc --- /dev/null +++ b/vcits/denm/src/Latitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "Latitude.h" + +int +Latitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -900000000 && value <= 900000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Latitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-900000000..900000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Latitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 31, -1, -900000000, 900000001 } /* (-900000000..900000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_Latitude_tags_1, + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + asn_DEF_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Latitude_constr_1, &asn_PER_type_Latitude_constr_1, Latitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/LightBarSirenInUse.c b/vcits/denm/src/LightBarSirenInUse.c new file mode 100644 index 0000000..581dcd0 --- /dev/null +++ b/vcits/denm/src/LightBarSirenInUse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "LightBarSirenInUse.h" + +int +LightBarSirenInUse_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +asn_per_constraints_t asn_PER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LightBarSirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse = { + "LightBarSirenInUse", + "LightBarSirenInUse", + &asn_OP_BIT_STRING, + asn_DEF_LightBarSirenInUse_tags_1, + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + asn_DEF_LightBarSirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + { &asn_OER_type_LightBarSirenInUse_constr_1, &asn_PER_type_LightBarSirenInUse_constr_1, LightBarSirenInUse_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/denm/src/LocationContainer.c b/vcits/denm/src/LocationContainer.c new file mode 100644 index 0000000..e5de148 --- /dev/null +++ b/vcits/denm/src/LocationContainer.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "LocationContainer.h" + +#include "Speed.h" +#include "Heading.h" +asn_TYPE_member_t asn_MBR_LocationContainer_1[] = { + { ATF_POINTER, 2, offsetof(struct LocationContainer, eventSpeed), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Speed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventSpeed" + }, + { ATF_POINTER, 1, offsetof(struct LocationContainer, eventPositionHeading), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Heading, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventPositionHeading" + }, + { ATF_NOFLAGS, 0, offsetof(struct LocationContainer, traces), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Traces, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "traces" + }, + { ATF_POINTER, 1, offsetof(struct LocationContainer, roadType), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadType" + }, +}; +static const int asn_MAP_LocationContainer_oms_1[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_LocationContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LocationContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventSpeed */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventPositionHeading */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* traces */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* roadType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LocationContainer_specs_1 = { + sizeof(struct LocationContainer), + offsetof(struct LocationContainer, _asn_ctx), + asn_MAP_LocationContainer_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_LocationContainer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LocationContainer = { + "LocationContainer", + "LocationContainer", + &asn_OP_SEQUENCE, + asn_DEF_LocationContainer_tags_1, + sizeof(asn_DEF_LocationContainer_tags_1) + /sizeof(asn_DEF_LocationContainer_tags_1[0]), /* 1 */ + asn_DEF_LocationContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_LocationContainer_tags_1) + /sizeof(asn_DEF_LocationContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LocationContainer_1, + 4, /* Elements count */ + &asn_SPC_LocationContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/Longitude.c b/vcits/denm/src/Longitude.c new file mode 100644 index 0000000..361bf3e --- /dev/null +++ b/vcits/denm/src/Longitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "Longitude.h" + +int +Longitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1800000000 && value <= 1800000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Longitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-1800000000..1800000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Longitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, -1800000000, 1800000001 } /* (-1800000000..1800000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_Longitude_tags_1, + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + asn_DEF_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Longitude_constr_1, &asn_PER_type_Longitude_constr_1, Longitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/LongitudinalAcceleration.c b/vcits/denm/src/LongitudinalAcceleration.c new file mode 100644 index 0000000..dd5403e --- /dev/null +++ b/vcits/denm/src/LongitudinalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "LongitudinalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_LongitudinalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LongitudinalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longitudinalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_LongitudinalAcceleration_specs_1 = { + sizeof(struct LongitudinalAcceleration), + offsetof(struct LongitudinalAcceleration, _asn_ctx), + asn_MAP_LongitudinalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration = { + "LongitudinalAcceleration", + "LongitudinalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LongitudinalAcceleration_tags_1, + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LongitudinalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LongitudinalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/LongitudinalAccelerationValue.c b/vcits/denm/src/LongitudinalAccelerationValue.c new file mode 100644 index 0000000..55e986f --- /dev/null +++ b/vcits/denm/src/LongitudinalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "LongitudinalAccelerationValue.h" + +int +LongitudinalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue = { + "LongitudinalAccelerationValue", + "LongitudinalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LongitudinalAccelerationValue_tags_1, + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LongitudinalAccelerationValue_constr_1, &asn_PER_type_LongitudinalAccelerationValue_constr_1, LongitudinalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/ManagementContainer.c b/vcits/denm/src/ManagementContainer.c new file mode 100644 index 0000000..7a29c00 --- /dev/null +++ b/vcits/denm/src/ManagementContainer.c @@ -0,0 +1,165 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ManagementContainer.h" + +static int asn_DFL_9_cmp_600(const void *sptr) { + const ValidityDuration_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 600 */ + return (*st != 600); +} +static int asn_DFL_9_set_600(void **sptr) { + ValidityDuration_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 600 */ + *st = 600; + return 0; +} +asn_TYPE_member_t asn_MBR_ManagementContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ManagementContainer, actionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ActionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "actionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ManagementContainer, detectionTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "detectionTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ManagementContainer, referenceTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceTime" + }, + { ATF_POINTER, 1, offsetof(struct ManagementContainer, termination), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Termination, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "termination" + }, + { ATF_NOFLAGS, 0, offsetof(struct ManagementContainer, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventPosition" + }, + { ATF_POINTER, 4, offsetof(struct ManagementContainer, relevanceDistance), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RelevanceDistance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "relevanceDistance" + }, + { ATF_POINTER, 3, offsetof(struct ManagementContainer, relevanceTrafficDirection), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RelevanceTrafficDirection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "relevanceTrafficDirection" + }, + { ATF_POINTER, 2, offsetof(struct ManagementContainer, validityDuration), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ValidityDuration, + 0, + { 0, 0, 0 }, + &asn_DFL_9_cmp_600, /* Compare DEFAULT 600 */ + &asn_DFL_9_set_600, /* Set DEFAULT 600 */ + "validityDuration" + }, + { ATF_POINTER, 1, offsetof(struct ManagementContainer, transmissionInterval), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionInterval, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transmissionInterval" + }, + { ATF_NOFLAGS, 0, offsetof(struct ManagementContainer, stationType), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationType" + }, +}; +static const int asn_MAP_ManagementContainer_oms_1[] = { 3, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_ManagementContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ManagementContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* actionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* detectionTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* referenceTime */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* termination */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* eventPosition */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* relevanceDistance */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* relevanceTrafficDirection */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* validityDuration */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* transmissionInterval */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* stationType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ManagementContainer_specs_1 = { + sizeof(struct ManagementContainer), + offsetof(struct ManagementContainer, _asn_ctx), + asn_MAP_ManagementContainer_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_ManagementContainer_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ManagementContainer = { + "ManagementContainer", + "ManagementContainer", + &asn_OP_SEQUENCE, + asn_DEF_ManagementContainer_tags_1, + sizeof(asn_DEF_ManagementContainer_tags_1) + /sizeof(asn_DEF_ManagementContainer_tags_1[0]), /* 1 */ + asn_DEF_ManagementContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ManagementContainer_tags_1) + /sizeof(asn_DEF_ManagementContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ManagementContainer_1, + 10, /* Elements count */ + &asn_SPC_ManagementContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/NumberOfOccupants.c b/vcits/denm/src/NumberOfOccupants.c new file mode 100644 index 0000000..80eb446 --- /dev/null +++ b/vcits/denm/src/NumberOfOccupants.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "NumberOfOccupants.h" + +int +NumberOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_NumberOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants = { + "NumberOfOccupants", + "NumberOfOccupants", + &asn_OP_NativeInteger, + asn_DEF_NumberOfOccupants_tags_1, + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_NumberOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_NumberOfOccupants_constr_1, &asn_PER_type_NumberOfOccupants_constr_1, NumberOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/OpeningDaysHours.c b/vcits/denm/src/OpeningDaysHours.c new file mode 100644 index 0000000..7945d4f --- /dev/null +++ b/vcits/denm/src/OpeningDaysHours.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "OpeningDaysHours.h" + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_OpeningDaysHours_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours = { + "OpeningDaysHours", + "OpeningDaysHours", + &asn_OP_UTF8String, + asn_DEF_OpeningDaysHours_tags_1, + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + asn_DEF_OpeningDaysHours_tags_1, /* Same as above */ + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + { 0, 0, UTF8String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/PathDeltaTime.c b/vcits/denm/src/PathDeltaTime.c new file mode 100644 index 0000000..0779ba7 --- /dev/null +++ b/vcits/denm/src/PathDeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PathDeltaTime.h" + +int +PathDeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PathDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PathDeltaTime = { + "PathDeltaTime", + "PathDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_PathDeltaTime_tags_1, + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_PathDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_PathDeltaTime_constr_1, &asn_PER_type_PathDeltaTime_constr_1, PathDeltaTime_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/PathHistory.c b/vcits/denm/src/PathHistory.c new file mode 100644 index 0000000..2eb44ee --- /dev/null +++ b/vcits/denm/src/PathHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PathHistory.h" + +#include "PathPoint.h" +static asn_oer_constraints_t asn_OER_type_PathHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..40)) */}; +asn_per_constraints_t asn_PER_type_PathHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 40 } /* (SIZE(0..40)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PathHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1 = { + sizeof(struct PathHistory), + offsetof(struct PathHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_PathHistory_tags_1, + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_PathHistory_constr_1, &asn_PER_type_PathHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PathHistory_1, + 1, /* Single element */ + &asn_SPC_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/PathPoint.c b/vcits/denm/src/PathPoint.c new file mode 100644 index 0000000..73669a8 --- /dev/null +++ b/vcits/denm/src/PathPoint.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PathPoint.h" + +asn_TYPE_member_t asn_MBR_PathPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PathPoint, pathPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathPosition" + }, + { ATF_POINTER, 1, offsetof(struct PathPoint, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathDeltaTime" + }, +}; +static const int asn_MAP_PathPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PathPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PathPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pathDeltaTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1 = { + sizeof(struct PathPoint), + offsetof(struct PathPoint, _asn_ctx), + asn_MAP_PathPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PathPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PathPoint = { + "PathPoint", + "PathPoint", + &asn_OP_SEQUENCE, + asn_DEF_PathPoint_tags_1, + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + asn_DEF_PathPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PathPoint_1, + 2, /* Elements count */ + &asn_SPC_PathPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/PerformanceClass.c b/vcits/denm/src/PerformanceClass.c new file mode 100644 index 0000000..54aeaf2 --- /dev/null +++ b/vcits/denm/src/PerformanceClass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PerformanceClass.h" + +int +PerformanceClass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PerformanceClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PerformanceClass = { + "PerformanceClass", + "PerformanceClass", + &asn_OP_NativeInteger, + asn_DEF_PerformanceClass_tags_1, + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + asn_DEF_PerformanceClass_tags_1, /* Same as above */ + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + { &asn_OER_type_PerformanceClass_constr_1, &asn_PER_type_PerformanceClass_constr_1, PerformanceClass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/PhoneNumber.c b/vcits/denm/src/PhoneNumber.c new file mode 100644 index 0000000..2cc4b34 --- /dev/null +++ b/vcits/denm/src/PhoneNumber.c @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PhoneNumber.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* . */ + 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */ +}; +static const int permitted_alphabet_code2value_1[11] = { +32,48,49,50,51,52,53,54,55,56,57,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is NumericString */ + const NumericString_t *st = (const NumericString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +PhoneNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const NumericString_t *st = (const NumericString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 16) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_PhoneNumber_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_PhoneNumber_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using NumericString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 32, 57 } /* (32..57) */, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + asn_PER_MAP_PhoneNumber_1_v2c, /* Value to PER code map */ + asn_PER_MAP_PhoneNumber_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_PhoneNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PhoneNumber = { + "PhoneNumber", + "PhoneNumber", + &asn_OP_NumericString, + asn_DEF_PhoneNumber_tags_1, + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + asn_DEF_PhoneNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_PhoneNumber_constr_1, &asn_PER_type_PhoneNumber_constr_1, PhoneNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/PosCentMass.c b/vcits/denm/src/PosCentMass.c new file mode 100644 index 0000000..ff2f312 --- /dev/null +++ b/vcits/denm/src/PosCentMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PosCentMass.h" + +int +PosCentMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosCentMass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..63) */, + -1}; +asn_per_constraints_t asn_PER_type_PosCentMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosCentMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosCentMass = { + "PosCentMass", + "PosCentMass", + &asn_OP_NativeInteger, + asn_DEF_PosCentMass_tags_1, + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + asn_DEF_PosCentMass_tags_1, /* Same as above */ + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + { &asn_OER_type_PosCentMass_constr_1, &asn_PER_type_PosCentMass_constr_1, PosCentMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/PosConfidenceEllipse.c b/vcits/denm/src/PosConfidenceEllipse.c new file mode 100644 index 0000000..a606c41 --- /dev/null +++ b/vcits/denm/src/PosConfidenceEllipse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PosConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMinorConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorOrientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PosConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PosConfidenceEllipse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* semiMajorOrientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1 = { + sizeof(struct PosConfidenceEllipse), + offsetof(struct PosConfidenceEllipse, _asn_ctx), + asn_MAP_PosConfidenceEllipse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse = { + "PosConfidenceEllipse", + "PosConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_PosConfidenceEllipse_tags_1, + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_PosConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PosConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_PosConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/PosFrontAx.c b/vcits/denm/src/PosFrontAx.c new file mode 100644 index 0000000..63a3378 --- /dev/null +++ b/vcits/denm/src/PosFrontAx.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PosFrontAx.h" + +int +PosFrontAx_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..20) */, + -1}; +asn_per_constraints_t asn_PER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (1..20) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosFrontAx_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosFrontAx = { + "PosFrontAx", + "PosFrontAx", + &asn_OP_NativeInteger, + asn_DEF_PosFrontAx_tags_1, + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + asn_DEF_PosFrontAx_tags_1, /* Same as above */ + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + { &asn_OER_type_PosFrontAx_constr_1, &asn_PER_type_PosFrontAx_constr_1, PosFrontAx_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/PosLonCarr.c b/vcits/denm/src/PosLonCarr.c new file mode 100644 index 0000000..a4c73b0 --- /dev/null +++ b/vcits/denm/src/PosLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PosLonCarr.h" + +int +PosLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosLonCarr = { + "PosLonCarr", + "PosLonCarr", + &asn_OP_NativeInteger, + asn_DEF_PosLonCarr_tags_1, + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + asn_DEF_PosLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_PosLonCarr_constr_1, &asn_PER_type_PosLonCarr_constr_1, PosLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/PosPillar.c b/vcits/denm/src/PosPillar.c new file mode 100644 index 0000000..2262475 --- /dev/null +++ b/vcits/denm/src/PosPillar.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PosPillar.h" + +int +PosPillar_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 30)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosPillar_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..30) */, + -1}; +asn_per_constraints_t asn_PER_type_PosPillar_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 30 } /* (1..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosPillar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosPillar = { + "PosPillar", + "PosPillar", + &asn_OP_NativeInteger, + asn_DEF_PosPillar_tags_1, + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + asn_DEF_PosPillar_tags_1, /* Same as above */ + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + { &asn_OER_type_PosPillar_constr_1, &asn_PER_type_PosPillar_constr_1, PosPillar_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/PositionOfOccupants.c b/vcits/denm/src/PositionOfOccupants.c new file mode 100644 index 0000000..1f10c02 --- /dev/null +++ b/vcits/denm/src/PositionOfOccupants.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PositionOfOccupants.h" + +int +PositionOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { 0, 0 }, + 20 /* (SIZE(20..20)) */}; +asn_per_constraints_t asn_PER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PositionOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants = { + "PositionOfOccupants", + "PositionOfOccupants", + &asn_OP_BIT_STRING, + asn_DEF_PositionOfOccupants_tags_1, + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_PositionOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfOccupants_constr_1, &asn_PER_type_PositionOfOccupants_constr_1, PositionOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/denm/src/PositionOfPillars.c b/vcits/denm/src/PositionOfPillars.c new file mode 100644 index 0000000..5be7990 --- /dev/null +++ b/vcits/denm/src/PositionOfPillars.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PositionOfPillars.h" + +static asn_oer_constraints_t asn_OER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PositionOfPillars_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PosPillar, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionOfPillars_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PositionOfPillars_specs_1 = { + sizeof(struct PositionOfPillars), + offsetof(struct PositionOfPillars, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfPillars = { + "PositionOfPillars", + "PositionOfPillars", + &asn_OP_SEQUENCE_OF, + asn_DEF_PositionOfPillars_tags_1, + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + asn_DEF_PositionOfPillars_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfPillars_constr_1, &asn_PER_type_PositionOfPillars_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PositionOfPillars_1, + 1, /* Single element */ + &asn_SPC_PositionOfPillars_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/PositioningSolutionType.c b/vcits/denm/src/PositioningSolutionType.c new file mode 100644 index 0000000..4ff4ff9 --- /dev/null +++ b/vcits/denm/src/PositioningSolutionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PositioningSolutionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositioningSolutionType_value2enum_1[] = { + { 0, 21, "noPositioningSolution" }, + { 1, 5, "sGNSS" }, + { 2, 5, "dGNSS" }, + { 3, 11, "sGNSSplusDR" }, + { 4, 11, "dGNSSplusDR" }, + { 5, 2, "dR" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PositioningSolutionType_enum2value_1[] = { + 2, /* dGNSS(2) */ + 4, /* dGNSSplusDR(4) */ + 5, /* dR(5) */ + 0, /* noPositioningSolution(0) */ + 1, /* sGNSS(1) */ + 3 /* sGNSSplusDR(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PositioningSolutionType_specs_1 = { + asn_MAP_PositioningSolutionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositioningSolutionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositioningSolutionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType = { + "PositioningSolutionType", + "PositioningSolutionType", + &asn_OP_NativeEnumerated, + asn_DEF_PositioningSolutionType_tags_1, + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + asn_DEF_PositioningSolutionType_tags_1, /* Same as above */ + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + { &asn_OER_type_PositioningSolutionType_constr_1, &asn_PER_type_PositioningSolutionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositioningSolutionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/PostCrashSubCauseCode.c b/vcits/denm/src/PostCrashSubCauseCode.c new file mode 100644 index 0000000..efd38bf --- /dev/null +++ b/vcits/denm/src/PostCrashSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PostCrashSubCauseCode.h" + +int +PostCrashSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PostCrashSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode = { + "PostCrashSubCauseCode", + "PostCrashSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_PostCrashSubCauseCode_tags_1, + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_PostCrashSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_PostCrashSubCauseCode_constr_1, &asn_PER_type_PostCrashSubCauseCode_constr_1, PostCrashSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/ProtectedCommunicationZone.c b/vcits/denm/src/ProtectedCommunicationZone.c new file mode 100644 index 0000000..7785017 --- /dev/null +++ b/vcits/denm/src/ProtectedCommunicationZone.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ProtectedCommunicationZone.h" + +asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneType" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expiryTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 2, offsetof(struct ProtectedCommunicationZone, protectedZoneRadius), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneRadius, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneRadius" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, protectedZoneID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneID" + }, +}; +static const int asn_MAP_ProtectedCommunicationZone_oms_1[] = { 1, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ProtectedCommunicationZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expiryTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protectedZoneRadius */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* protectedZoneID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1 = { + sizeof(struct ProtectedCommunicationZone), + offsetof(struct ProtectedCommunicationZone, _asn_ctx), + asn_MAP_ProtectedCommunicationZone_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ProtectedCommunicationZone_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone = { + "ProtectedCommunicationZone", + "ProtectedCommunicationZone", + &asn_OP_SEQUENCE, + asn_DEF_ProtectedCommunicationZone_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZone_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ProtectedCommunicationZone_1, + 6, /* Elements count */ + &asn_SPC_ProtectedCommunicationZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/ProtectedCommunicationZonesRSU.c b/vcits/denm/src/ProtectedCommunicationZonesRSU.c new file mode 100644 index 0000000..6f3230f --- /dev/null +++ b/vcits/denm/src/ProtectedCommunicationZonesRSU.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ProtectedCommunicationZonesRSU.h" + +#include "ProtectedCommunicationZone.h" +static asn_oer_constraints_t asn_OER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ProtectedCommunicationZonesRSU_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtectedCommunicationZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZonesRSU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ProtectedCommunicationZonesRSU_specs_1 = { + sizeof(struct ProtectedCommunicationZonesRSU), + offsetof(struct ProtectedCommunicationZonesRSU, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU = { + "ProtectedCommunicationZonesRSU", + "ProtectedCommunicationZonesRSU", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedCommunicationZonesRSU_constr_1, &asn_PER_type_ProtectedCommunicationZonesRSU_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtectedCommunicationZonesRSU_1, + 1, /* Single element */ + &asn_SPC_ProtectedCommunicationZonesRSU_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/ProtectedZoneID.c b/vcits/denm/src/ProtectedZoneID.c new file mode 100644 index 0000000..efabc97 --- /dev/null +++ b/vcits/denm/src/ProtectedZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ProtectedZoneID.h" + +int +ProtectedZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID = { + "ProtectedZoneID", + "ProtectedZoneID", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneID_tags_1, + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneID_constr_1, &asn_PER_type_ProtectedZoneID_constr_1, ProtectedZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/ProtectedZoneRadius.c b/vcits/denm/src/ProtectedZoneRadius.c new file mode 100644 index 0000000..099e243 --- /dev/null +++ b/vcits/denm/src/ProtectedZoneRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ProtectedZoneRadius.h" + +int +ProtectedZoneRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 255 } /* (1..255,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius = { + "ProtectedZoneRadius", + "ProtectedZoneRadius", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneRadius_tags_1, + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneRadius_constr_1, &asn_PER_type_ProtectedZoneRadius_constr_1, ProtectedZoneRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/ProtectedZoneType.c b/vcits/denm/src/ProtectedZoneType.c new file mode 100644 index 0000000..fd34772 --- /dev/null +++ b/vcits/denm/src/ProtectedZoneType.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ProtectedZoneType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ProtectedZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ProtectedZoneType_enum2value_1[] = { + 0, /* permanentCenDsrcTolling(0) */ + 1 /* temporaryCenDsrcTolling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1 = { + asn_MAP_ProtectedZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ProtectedZoneType_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType = { + "ProtectedZoneType", + "ProtectedZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_ProtectedZoneType_tags_1, + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneType_constr_1, &asn_PER_type_ProtectedZoneType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ProtectedZoneType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/PtActivation.c b/vcits/denm/src/PtActivation.c new file mode 100644 index 0000000..23368fc --- /dev/null +++ b/vcits/denm/src/PtActivation.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PtActivation.h" + +static asn_TYPE_member_t asn_MBR_PtActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationData" + }, +}; +static const ber_tlv_tag_t asn_DEF_PtActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PtActivation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptActivationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivationData */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_PtActivation_specs_1 = { + sizeof(struct PtActivation), + offsetof(struct PtActivation, _asn_ctx), + asn_MAP_PtActivation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PtActivation = { + "PtActivation", + "PtActivation", + &asn_OP_SEQUENCE, + asn_DEF_PtActivation_tags_1, + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + asn_DEF_PtActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PtActivation_1, + 2, /* Elements count */ + &asn_SPC_PtActivation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/PtActivationData.c b/vcits/denm/src/PtActivationData.c new file mode 100644 index 0000000..ab9b96b --- /dev/null +++ b/vcits/denm/src/PtActivationData.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PtActivationData.h" + +int +PtActivationData_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationData_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..20)) */}; +asn_per_constraints_t asn_PER_type_PtActivationData_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (SIZE(1..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationData = { + "PtActivationData", + "PtActivationData", + &asn_OP_OCTET_STRING, + asn_DEF_PtActivationData_tags_1, + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + asn_DEF_PtActivationData_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationData_constr_1, &asn_PER_type_PtActivationData_constr_1, PtActivationData_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/denm/src/PtActivationType.c b/vcits/denm/src/PtActivationType.c new file mode 100644 index 0000000..cf8c434 --- /dev/null +++ b/vcits/denm/src/PtActivationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "PtActivationType.h" + +int +PtActivationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_PtActivationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationType = { + "PtActivationType", + "PtActivationType", + &asn_OP_NativeInteger, + asn_DEF_PtActivationType_tags_1, + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + asn_DEF_PtActivationType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationType_constr_1, &asn_PER_type_PtActivationType_constr_1, PtActivationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/ReferenceDenms.c b/vcits/denm/src/ReferenceDenms.c new file mode 100644 index 0000000..b307c84 --- /dev/null +++ b/vcits/denm/src/ReferenceDenms.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ReferenceDenms.h" + +#include "ActionID.h" +static asn_oer_constraints_t asn_OER_type_ReferenceDenms_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_ReferenceDenms_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ReferenceDenms_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ActionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReferenceDenms_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ReferenceDenms_specs_1 = { + sizeof(struct ReferenceDenms), + offsetof(struct ReferenceDenms, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ReferenceDenms = { + "ReferenceDenms", + "ReferenceDenms", + &asn_OP_SEQUENCE_OF, + asn_DEF_ReferenceDenms_tags_1, + sizeof(asn_DEF_ReferenceDenms_tags_1) + /sizeof(asn_DEF_ReferenceDenms_tags_1[0]), /* 1 */ + asn_DEF_ReferenceDenms_tags_1, /* Same as above */ + sizeof(asn_DEF_ReferenceDenms_tags_1) + /sizeof(asn_DEF_ReferenceDenms_tags_1[0]), /* 1 */ + { &asn_OER_type_ReferenceDenms_constr_1, &asn_PER_type_ReferenceDenms_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ReferenceDenms_1, + 1, /* Single element */ + &asn_SPC_ReferenceDenms_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/ReferencePosition.c b/vcits/denm/src/ReferencePosition.c new file mode 100644 index 0000000..bcf45ce --- /dev/null +++ b/vcits/denm/src/ReferencePosition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ReferencePosition.h" + +asn_TYPE_member_t asn_MBR_ReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PosConfidenceEllipse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionConfidenceEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* longitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* positionConfidenceEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1 = { + sizeof(struct ReferencePosition), + offsetof(struct ReferencePosition, _asn_ctx), + asn_MAP_ReferencePosition_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReferencePosition = { + "ReferencePosition", + "ReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_ReferencePosition_tags_1, + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_ReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReferencePosition_1, + 4, /* Elements count */ + &asn_SPC_ReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/RelevanceDistance.c b/vcits/denm/src/RelevanceDistance.c new file mode 100644 index 0000000..554dadd --- /dev/null +++ b/vcits/denm/src/RelevanceDistance.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "RelevanceDistance.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceDistance_value2enum_1[] = { + { 0, 11, "lessThan50m" }, + { 1, 12, "lessThan100m" }, + { 2, 12, "lessThan200m" }, + { 3, 12, "lessThan500m" }, + { 4, 13, "lessThan1000m" }, + { 5, 11, "lessThan5km" }, + { 6, 12, "lessThan10km" }, + { 7, 8, "over10km" } +}; +static const unsigned int asn_MAP_RelevanceDistance_enum2value_1[] = { + 4, /* lessThan1000m(4) */ + 1, /* lessThan100m(1) */ + 6, /* lessThan10km(6) */ + 2, /* lessThan200m(2) */ + 3, /* lessThan500m(3) */ + 0, /* lessThan50m(0) */ + 5, /* lessThan5km(5) */ + 7 /* over10km(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RelevanceDistance_specs_1 = { + asn_MAP_RelevanceDistance_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceDistance_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceDistance = { + "RelevanceDistance", + "RelevanceDistance", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceDistance_tags_1, + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + asn_DEF_RelevanceDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceDistance_constr_1, &asn_PER_type_RelevanceDistance_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceDistance_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/RelevanceTrafficDirection.c b/vcits/denm/src/RelevanceTrafficDirection.c new file mode 100644 index 0000000..00151d1 --- /dev/null +++ b/vcits/denm/src/RelevanceTrafficDirection.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "RelevanceTrafficDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceTrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 15, "upstreamTraffic" }, + { 2, 17, "downstreamTraffic" }, + { 3, 15, "oppositeTraffic" } +}; +static const unsigned int asn_MAP_RelevanceTrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 2, /* downstreamTraffic(2) */ + 3, /* oppositeTraffic(3) */ + 1 /* upstreamTraffic(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RelevanceTrafficDirection_specs_1 = { + asn_MAP_RelevanceTrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceTrafficDirection_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceTrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection = { + "RelevanceTrafficDirection", + "RelevanceTrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceTrafficDirection_tags_1, + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_RelevanceTrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceTrafficDirection_constr_1, &asn_PER_type_RelevanceTrafficDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceTrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/RequestResponseIndication.c b/vcits/denm/src/RequestResponseIndication.c new file mode 100644 index 0000000..8c147c3 --- /dev/null +++ b/vcits/denm/src/RequestResponseIndication.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "RequestResponseIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestResponseIndication_value2enum_1[] = { + { 0, 7, "request" }, + { 1, 8, "response" } +}; +static const unsigned int asn_MAP_RequestResponseIndication_enum2value_1[] = { + 0, /* request(0) */ + 1 /* response(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestResponseIndication_specs_1 = { + asn_MAP_RequestResponseIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestResponseIndication_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestResponseIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication = { + "RequestResponseIndication", + "RequestResponseIndication", + &asn_OP_NativeEnumerated, + asn_DEF_RequestResponseIndication_tags_1, + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + asn_DEF_RequestResponseIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestResponseIndication_constr_1, &asn_PER_type_RequestResponseIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestResponseIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/RescueAndRecoveryWorkInProgressSubCauseCode.c b/vcits/denm/src/RescueAndRecoveryWorkInProgressSubCauseCode.c new file mode 100644 index 0000000..13fb687 --- /dev/null +++ b/vcits/denm/src/RescueAndRecoveryWorkInProgressSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "RescueAndRecoveryWorkInProgressSubCauseCode.h" + +int +RescueAndRecoveryWorkInProgressSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode = { + "RescueAndRecoveryWorkInProgressSubCauseCode", + "RescueAndRecoveryWorkInProgressSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, &asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, RescueAndRecoveryWorkInProgressSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/RestrictedTypes.c b/vcits/denm/src/RestrictedTypes.c new file mode 100644 index 0000000..25ad0b5 --- /dev/null +++ b/vcits/denm/src/RestrictedTypes.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "RestrictedTypes.h" + +static asn_oer_constraints_t asn_OER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictedTypes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictedTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictedTypes_specs_1 = { + sizeof(struct RestrictedTypes), + offsetof(struct RestrictedTypes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictedTypes = { + "RestrictedTypes", + "RestrictedTypes", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictedTypes_tags_1, + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + asn_DEF_RestrictedTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictedTypes_constr_1, &asn_PER_type_RestrictedTypes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictedTypes_1, + 1, /* Single element */ + &asn_SPC_RestrictedTypes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/RoadType.c b/vcits/denm/src/RoadType.c new file mode 100644 index 0000000..81ce62e --- /dev/null +++ b/vcits/denm/src/RoadType.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "RoadType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RoadType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RoadType_value2enum_1[] = { + { 0, 43, "urban-NoStructuralSeparationToOppositeLanes" }, + { 1, 45, "urban-WithStructuralSeparationToOppositeLanes" }, + { 2, 46, "nonUrban-NoStructuralSeparationToOppositeLanes" }, + { 3, 48, "nonUrban-WithStructuralSeparationToOppositeLanes" } +}; +static const unsigned int asn_MAP_RoadType_enum2value_1[] = { + 2, /* nonUrban-NoStructuralSeparationToOppositeLanes(2) */ + 3, /* nonUrban-WithStructuralSeparationToOppositeLanes(3) */ + 0, /* urban-NoStructuralSeparationToOppositeLanes(0) */ + 1 /* urban-WithStructuralSeparationToOppositeLanes(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RoadType_specs_1 = { + asn_MAP_RoadType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RoadType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadType = { + "RoadType", + "RoadType", + &asn_OP_NativeEnumerated, + asn_DEF_RoadType_tags_1, + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + asn_DEF_RoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadType_constr_1, &asn_PER_type_RoadType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RoadType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/RoadWorksContainerExtended.c b/vcits/denm/src/RoadWorksContainerExtended.c new file mode 100644 index 0000000..e0aeb9a --- /dev/null +++ b/vcits/denm/src/RoadWorksContainerExtended.c @@ -0,0 +1,138 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "RoadWorksContainerExtended.h" + +#include "ClosedLanes.h" +#include "RestrictedTypes.h" +#include "CauseCode.h" +#include "ItineraryPath.h" +#include "DeltaReferencePosition.h" +#include "ReferenceDenms.h" +asn_TYPE_member_t asn_MBR_RoadWorksContainerExtended_1[] = { + { ATF_POINTER, 9, offsetof(struct RoadWorksContainerExtended, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LightBarSirenInUse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, + { ATF_POINTER, 8, offsetof(struct RoadWorksContainerExtended, closedLanes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ClosedLanes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "closedLanes" + }, + { ATF_POINTER, 7, offsetof(struct RoadWorksContainerExtended, restriction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictedTypes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "restriction" + }, + { ATF_POINTER, 6, offsetof(struct RoadWorksContainerExtended, speedLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimit" + }, + { ATF_POINTER, 5, offsetof(struct RoadWorksContainerExtended, incidentIndication), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "incidentIndication" + }, + { ATF_POINTER, 4, offsetof(struct RoadWorksContainerExtended, recommendedPath), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItineraryPath, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recommendedPath" + }, + { ATF_POINTER, 3, offsetof(struct RoadWorksContainerExtended, startingPointSpeedLimit), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startingPointSpeedLimit" + }, + { ATF_POINTER, 2, offsetof(struct RoadWorksContainerExtended, trafficFlowRule), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrafficRule, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trafficFlowRule" + }, + { ATF_POINTER, 1, offsetof(struct RoadWorksContainerExtended, referenceDenms), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReferenceDenms, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceDenms" + }, +}; +static const int asn_MAP_RoadWorksContainerExtended_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_RoadWorksContainerExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadWorksContainerExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lightBarSirenInUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* closedLanes */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* restriction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* speedLimit */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* incidentIndication */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* recommendedPath */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* startingPointSpeedLimit */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* trafficFlowRule */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* referenceDenms */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadWorksContainerExtended_specs_1 = { + sizeof(struct RoadWorksContainerExtended), + offsetof(struct RoadWorksContainerExtended, _asn_ctx), + asn_MAP_RoadWorksContainerExtended_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_RoadWorksContainerExtended_oms_1, /* Optional members */ + 9, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadWorksContainerExtended = { + "RoadWorksContainerExtended", + "RoadWorksContainerExtended", + &asn_OP_SEQUENCE, + asn_DEF_RoadWorksContainerExtended_tags_1, + sizeof(asn_DEF_RoadWorksContainerExtended_tags_1) + /sizeof(asn_DEF_RoadWorksContainerExtended_tags_1[0]), /* 1 */ + asn_DEF_RoadWorksContainerExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadWorksContainerExtended_tags_1) + /sizeof(asn_DEF_RoadWorksContainerExtended_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadWorksContainerExtended_1, + 9, /* Elements count */ + &asn_SPC_RoadWorksContainerExtended_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/RoadworksSubCauseCode.c b/vcits/denm/src/RoadworksSubCauseCode.c new file mode 100644 index 0000000..811365f --- /dev/null +++ b/vcits/denm/src/RoadworksSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "RoadworksSubCauseCode.h" + +int +RoadworksSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadworksSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode = { + "RoadworksSubCauseCode", + "RoadworksSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RoadworksSubCauseCode_tags_1, + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RoadworksSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadworksSubCauseCode_constr_1, &asn_PER_type_RoadworksSubCauseCode_constr_1, RoadworksSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/SemiAxisLength.c b/vcits/denm/src/SemiAxisLength.c new file mode 100644 index 0000000..af20e82 --- /dev/null +++ b/vcits/denm/src/SemiAxisLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "SemiAxisLength.h" + +int +SemiAxisLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiAxisLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiAxisLength = { + "SemiAxisLength", + "SemiAxisLength", + &asn_OP_NativeInteger, + asn_DEF_SemiAxisLength_tags_1, + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + asn_DEF_SemiAxisLength_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiAxisLength_constr_1, &asn_PER_type_SemiAxisLength_constr_1, SemiAxisLength_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/SequenceNumber.c b/vcits/denm/src/SequenceNumber.c new file mode 100644 index 0000000..c9e11ce --- /dev/null +++ b/vcits/denm/src/SequenceNumber.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "SequenceNumber.h" + +int +SequenceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SequenceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SequenceNumber = { + "SequenceNumber", + "SequenceNumber", + &asn_OP_NativeInteger, + asn_DEF_SequenceNumber_tags_1, + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + asn_DEF_SequenceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_SequenceNumber_constr_1, &asn_PER_type_SequenceNumber_constr_1, SequenceNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/SignalViolationSubCauseCode.c b/vcits/denm/src/SignalViolationSubCauseCode.c new file mode 100644 index 0000000..136b436 --- /dev/null +++ b/vcits/denm/src/SignalViolationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "SignalViolationSubCauseCode.h" + +int +SignalViolationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalViolationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode = { + "SignalViolationSubCauseCode", + "SignalViolationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SignalViolationSubCauseCode_tags_1, + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SignalViolationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalViolationSubCauseCode_constr_1, &asn_PER_type_SignalViolationSubCauseCode_constr_1, SignalViolationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/SituationContainer.c b/vcits/denm/src/SituationContainer.c new file mode 100644 index 0000000..f7cc777 --- /dev/null +++ b/vcits/denm/src/SituationContainer.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "SituationContainer.h" + +#include "CauseCode.h" +#include "EventHistory.h" +asn_TYPE_member_t asn_MBR_SituationContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SituationContainer, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InformationQuality, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "informationQuality" + }, + { ATF_NOFLAGS, 0, offsetof(struct SituationContainer, eventType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventType" + }, + { ATF_POINTER, 2, offsetof(struct SituationContainer, linkedCause), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "linkedCause" + }, + { ATF_POINTER, 1, offsetof(struct SituationContainer, eventHistory), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EventHistory, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventHistory" + }, +}; +static const int asn_MAP_SituationContainer_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_SituationContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SituationContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* informationQuality */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* linkedCause */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eventHistory */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SituationContainer_specs_1 = { + sizeof(struct SituationContainer), + offsetof(struct SituationContainer, _asn_ctx), + asn_MAP_SituationContainer_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SituationContainer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SituationContainer = { + "SituationContainer", + "SituationContainer", + &asn_OP_SEQUENCE, + asn_DEF_SituationContainer_tags_1, + sizeof(asn_DEF_SituationContainer_tags_1) + /sizeof(asn_DEF_SituationContainer_tags_1[0]), /* 1 */ + asn_DEF_SituationContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_SituationContainer_tags_1) + /sizeof(asn_DEF_SituationContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SituationContainer_1, + 4, /* Elements count */ + &asn_SPC_SituationContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/SlowVehicleSubCauseCode.c b/vcits/denm/src/SlowVehicleSubCauseCode.c new file mode 100644 index 0000000..7b9e6ec --- /dev/null +++ b/vcits/denm/src/SlowVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "SlowVehicleSubCauseCode.h" + +int +SlowVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SlowVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode = { + "SlowVehicleSubCauseCode", + "SlowVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SlowVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SlowVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SlowVehicleSubCauseCode_constr_1, &asn_PER_type_SlowVehicleSubCauseCode_constr_1, SlowVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/SpecialTransportType.c b/vcits/denm/src/SpecialTransportType.c new file mode 100644 index 0000000..d245071 --- /dev/null +++ b/vcits/denm/src/SpecialTransportType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "SpecialTransportType.h" + +int +SpecialTransportType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpecialTransportType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpecialTransportType = { + "SpecialTransportType", + "SpecialTransportType", + &asn_OP_BIT_STRING, + asn_DEF_SpecialTransportType_tags_1, + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + asn_DEF_SpecialTransportType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpecialTransportType_constr_1, &asn_PER_type_SpecialTransportType_constr_1, SpecialTransportType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/denm/src/Speed.c b/vcits/denm/src/Speed.c new file mode 100644 index 0000000..d9944ca --- /dev/null +++ b/vcits/denm/src/Speed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "Speed.h" + +asn_TYPE_member_t asn_MBR_Speed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Speed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Speed_specs_1 = { + sizeof(struct Speed), + offsetof(struct Speed, _asn_ctx), + asn_MAP_Speed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Speed = { + "Speed", + "Speed", + &asn_OP_SEQUENCE, + asn_DEF_Speed_tags_1, + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + asn_DEF_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Speed_1, + 2, /* Elements count */ + &asn_SPC_Speed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/SpeedConfidence.c b/vcits/denm/src/SpeedConfidence.c new file mode 100644 index 0000000..6f5cc14 --- /dev/null +++ b/vcits/denm/src/SpeedConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "SpeedConfidence.h" + +int +SpeedConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeInteger, + asn_DEF_SpeedConfidence_tags_1, + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidence_constr_1, &asn_PER_type_SpeedConfidence_constr_1, SpeedConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/SpeedLimit.c b/vcits/denm/src/SpeedLimit.c new file mode 100644 index 0000000..7b56e1f --- /dev/null +++ b/vcits/denm/src/SpeedLimit.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "SpeedLimit.h" + +int +SpeedLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_NativeInteger, + asn_DEF_SpeedLimit_tags_1, + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimit_constr_1, &asn_PER_type_SpeedLimit_constr_1, SpeedLimit_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/SpeedValue.c b/vcits/denm/src/SpeedValue.c new file mode 100644 index 0000000..5975b91 --- /dev/null +++ b/vcits/denm/src/SpeedValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "SpeedValue.h" + +int +SpeedValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedValue = { + "SpeedValue", + "SpeedValue", + &asn_OP_NativeInteger, + asn_DEF_SpeedValue_tags_1, + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + asn_DEF_SpeedValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedValue_constr_1, &asn_PER_type_SpeedValue_constr_1, SpeedValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/StationID.c b/vcits/denm/src/StationID.c new file mode 100644 index 0000000..b5469de --- /dev/null +++ b/vcits/denm/src/StationID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "StationID.h" + +int +StationID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +asn_per_constraints_t asn_PER_type_StationID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_StationID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationID = { + "StationID", + "StationID", + &asn_OP_NativeInteger, + asn_DEF_StationID_tags_1, + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + asn_DEF_StationID_tags_1, /* Same as above */ + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + { &asn_OER_type_StationID_constr_1, &asn_PER_type_StationID_constr_1, StationID_constraint }, + 0, 0, /* No members */ + &asn_SPC_StationID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/StationType.c b/vcits/denm/src/StationType.c new file mode 100644 index 0000000..c5c93d4 --- /dev/null +++ b/vcits/denm/src/StationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "StationType.h" + +int +StationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_StationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationType = { + "StationType", + "StationType", + &asn_OP_NativeInteger, + asn_DEF_StationType_tags_1, + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + asn_DEF_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + { &asn_OER_type_StationType_constr_1, &asn_PER_type_StationType_constr_1, StationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/StationarySince.c b/vcits/denm/src/StationarySince.c new file mode 100644 index 0000000..26d33f0 --- /dev/null +++ b/vcits/denm/src/StationarySince.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "StationarySince.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationarySince_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_StationarySince_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_StationarySince_value2enum_1[] = { + { 0, 15, "lessThan1Minute" }, + { 1, 16, "lessThan2Minutes" }, + { 2, 17, "lessThan15Minutes" }, + { 3, 23, "equalOrGreater15Minutes" } +}; +static const unsigned int asn_MAP_StationarySince_enum2value_1[] = { + 3, /* equalOrGreater15Minutes(3) */ + 2, /* lessThan15Minutes(2) */ + 0, /* lessThan1Minute(0) */ + 1 /* lessThan2Minutes(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_StationarySince_specs_1 = { + asn_MAP_StationarySince_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_StationarySince_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_StationarySince_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationarySince = { + "StationarySince", + "StationarySince", + &asn_OP_NativeEnumerated, + asn_DEF_StationarySince_tags_1, + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + asn_DEF_StationarySince_tags_1, /* Same as above */ + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + { &asn_OER_type_StationarySince_constr_1, &asn_PER_type_StationarySince_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_StationarySince_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/StationaryVehicleContainer.c b/vcits/denm/src/StationaryVehicleContainer.c new file mode 100644 index 0000000..840b758 --- /dev/null +++ b/vcits/denm/src/StationaryVehicleContainer.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "StationaryVehicleContainer.h" + +#include "CauseCode.h" +#include "DangerousGoodsExtended.h" +#include "VehicleIdentification.h" +asn_TYPE_member_t asn_MBR_StationaryVehicleContainer_1[] = { + { ATF_POINTER, 6, offsetof(struct StationaryVehicleContainer, stationarySince), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationarySince, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationarySince" + }, + { ATF_POINTER, 5, offsetof(struct StationaryVehicleContainer, stationaryCause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationaryCause" + }, + { ATF_POINTER, 4, offsetof(struct StationaryVehicleContainer, carryingDangerousGoods), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsExtended, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carryingDangerousGoods" + }, + { ATF_POINTER, 3, offsetof(struct StationaryVehicleContainer, numberOfOccupants), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NumberOfOccupants, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfOccupants" + }, + { ATF_POINTER, 2, offsetof(struct StationaryVehicleContainer, vehicleIdentification), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleIdentification, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleIdentification" + }, + { ATF_POINTER, 1, offsetof(struct StationaryVehicleContainer, energyStorageType), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EnergyStorageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "energyStorageType" + }, +}; +static const int asn_MAP_StationaryVehicleContainer_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_StationaryVehicleContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_StationaryVehicleContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationarySince */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* stationaryCause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* carryingDangerousGoods */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* numberOfOccupants */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* vehicleIdentification */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* energyStorageType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_StationaryVehicleContainer_specs_1 = { + sizeof(struct StationaryVehicleContainer), + offsetof(struct StationaryVehicleContainer, _asn_ctx), + asn_MAP_StationaryVehicleContainer_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_StationaryVehicleContainer_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_StationaryVehicleContainer = { + "StationaryVehicleContainer", + "StationaryVehicleContainer", + &asn_OP_SEQUENCE, + asn_DEF_StationaryVehicleContainer_tags_1, + sizeof(asn_DEF_StationaryVehicleContainer_tags_1) + /sizeof(asn_DEF_StationaryVehicleContainer_tags_1[0]), /* 1 */ + asn_DEF_StationaryVehicleContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_StationaryVehicleContainer_tags_1) + /sizeof(asn_DEF_StationaryVehicleContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_StationaryVehicleContainer_1, + 6, /* Elements count */ + &asn_SPC_StationaryVehicleContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/StationaryVehicleSubCauseCode.c b/vcits/denm/src/StationaryVehicleSubCauseCode.c new file mode 100644 index 0000000..dbe2fde --- /dev/null +++ b/vcits/denm/src/StationaryVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "StationaryVehicleSubCauseCode.h" + +int +StationaryVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationaryVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode = { + "StationaryVehicleSubCauseCode", + "StationaryVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_StationaryVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_StationaryVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_StationaryVehicleSubCauseCode_constr_1, &asn_PER_type_StationaryVehicleSubCauseCode_constr_1, StationaryVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/SteeringWheelAngle.c b/vcits/denm/src/SteeringWheelAngle.c new file mode 100644 index 0000000..7dd30c7 --- /dev/null +++ b/vcits/denm/src/SteeringWheelAngle.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "SteeringWheelAngle.h" + +static asn_TYPE_member_t asn_MBR_SteeringWheelAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SteeringWheelAngle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* steeringWheelAngleValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* steeringWheelAngleConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SteeringWheelAngle_specs_1 = { + sizeof(struct SteeringWheelAngle), + offsetof(struct SteeringWheelAngle, _asn_ctx), + asn_MAP_SteeringWheelAngle_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_SEQUENCE, + asn_DEF_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SteeringWheelAngle_1, + 2, /* Elements count */ + &asn_SPC_SteeringWheelAngle_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/SteeringWheelAngleConfidence.c b/vcits/denm/src/SteeringWheelAngleConfidence.c new file mode 100644 index 0000000..dc49dca --- /dev/null +++ b/vcits/denm/src/SteeringWheelAngleConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "SteeringWheelAngleConfidence.h" + +int +SteeringWheelAngleConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleConfidence_constr_1, &asn_PER_type_SteeringWheelAngleConfidence_constr_1, SteeringWheelAngleConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/SteeringWheelAngleValue.c b/vcits/denm/src/SteeringWheelAngleValue.c new file mode 100644 index 0000000..c0fb403 --- /dev/null +++ b/vcits/denm/src/SteeringWheelAngleValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "SteeringWheelAngleValue.h" + +int +SteeringWheelAngleValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -511 && value <= 512)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-511..512) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -511, 512 } /* (-511..512) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue = { + "SteeringWheelAngleValue", + "SteeringWheelAngleValue", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleValue_tags_1, + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleValue_constr_1, &asn_PER_type_SteeringWheelAngleValue_constr_1, SteeringWheelAngleValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/SubCauseCodeType.c b/vcits/denm/src/SubCauseCodeType.c new file mode 100644 index 0000000..c78f928 --- /dev/null +++ b/vcits/denm/src/SubCauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "SubCauseCodeType.h" + +int +SubCauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SubCauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType = { + "SubCauseCodeType", + "SubCauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_SubCauseCodeType_tags_1, + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_SubCauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_SubCauseCodeType_constr_1, &asn_PER_type_SubCauseCodeType_constr_1, SubCauseCodeType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/Temperature.c b/vcits/denm/src/Temperature.c new file mode 100644 index 0000000..a1a0081 --- /dev/null +++ b/vcits/denm/src/Temperature.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "Temperature.h" + +int +Temperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -60 && value <= 67)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Temperature_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-60..67) */, + -1}; +asn_per_constraints_t asn_PER_type_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 67 } /* (-60..67) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_Temperature_tags_1, + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + asn_DEF_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + { &asn_OER_type_Temperature_constr_1, &asn_PER_type_Temperature_constr_1, Temperature_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/Termination.c b/vcits/denm/src/Termination.c new file mode 100644 index 0000000..0d28194 --- /dev/null +++ b/vcits/denm/src/Termination.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/denm_en302637_3/DENM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "Termination.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Termination_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_Termination_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_Termination_value2enum_1[] = { + { 0, 14, "isCancellation" }, + { 1, 10, "isNegation" } +}; +static const unsigned int asn_MAP_Termination_enum2value_1[] = { + 0, /* isCancellation(0) */ + 1 /* isNegation(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Termination_specs_1 = { + asn_MAP_Termination_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Termination_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Termination_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Termination = { + "Termination", + "Termination", + &asn_OP_NativeEnumerated, + asn_DEF_Termination_tags_1, + sizeof(asn_DEF_Termination_tags_1) + /sizeof(asn_DEF_Termination_tags_1[0]), /* 1 */ + asn_DEF_Termination_tags_1, /* Same as above */ + sizeof(asn_DEF_Termination_tags_1) + /sizeof(asn_DEF_Termination_tags_1[0]), /* 1 */ + { &asn_OER_type_Termination_constr_1, &asn_PER_type_Termination_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Termination_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/TimestampIts.c b/vcits/denm/src/TimestampIts.c new file mode 100644 index 0000000..2dd0b1b --- /dev/null +++ b/vcits/denm/src/TimestampIts.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "TimestampIts.h" + +int +TimestampIts_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0 && value <= 4398046511103)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimestampIts_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..4398046511103) */, + -1}; +asn_per_constraints_t asn_PER_type_TimestampIts_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 42, -1, 0, 4398046511103 } /* (0..4398046511103) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimestampIts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimestampIts = { + "TimestampIts", + "TimestampIts", + &asn_OP_INTEGER, + asn_DEF_TimestampIts_tags_1, + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + asn_DEF_TimestampIts_tags_1, /* Same as above */ + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + { &asn_OER_type_TimestampIts_constr_1, &asn_PER_type_TimestampIts_constr_1, TimestampIts_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/Traces.c b/vcits/denm/src/Traces.c new file mode 100644 index 0000000..e37e5e1 --- /dev/null +++ b/vcits/denm/src/Traces.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "Traces.h" + +#include "PathHistory.h" +static asn_oer_constraints_t asn_OER_type_Traces_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..7)) */}; +asn_per_constraints_t asn_PER_type_Traces_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_Traces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathHistory, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Traces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Traces_specs_1 = { + sizeof(struct Traces), + offsetof(struct Traces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Traces = { + "Traces", + "Traces", + &asn_OP_SEQUENCE_OF, + asn_DEF_Traces_tags_1, + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + asn_DEF_Traces_tags_1, /* Same as above */ + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + { &asn_OER_type_Traces_constr_1, &asn_PER_type_Traces_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Traces_1, + 1, /* Single element */ + &asn_SPC_Traces_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/TrafficConditionSubCauseCode.c b/vcits/denm/src/TrafficConditionSubCauseCode.c new file mode 100644 index 0000000..c70e2f0 --- /dev/null +++ b/vcits/denm/src/TrafficConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "TrafficConditionSubCauseCode.h" + +int +TrafficConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TrafficConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode = { + "TrafficConditionSubCauseCode", + "TrafficConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_TrafficConditionSubCauseCode_tags_1, + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_TrafficConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficConditionSubCauseCode_constr_1, &asn_PER_type_TrafficConditionSubCauseCode_constr_1, TrafficConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/TrafficRule.c b/vcits/denm/src/TrafficRule.c new file mode 100644 index 0000000..59a5f65 --- /dev/null +++ b/vcits/denm/src/TrafficRule.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "TrafficRule.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficRule_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TrafficRule_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TrafficRule_value2enum_1[] = { + { 0, 9, "noPassing" }, + { 1, 18, "noPassingForTrucks" }, + { 2, 11, "passToRight" }, + { 3, 10, "passToLeft" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TrafficRule_enum2value_1[] = { + 0, /* noPassing(0) */ + 1, /* noPassingForTrucks(1) */ + 3, /* passToLeft(3) */ + 2 /* passToRight(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_TrafficRule_specs_1 = { + asn_MAP_TrafficRule_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TrafficRule_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TrafficRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficRule = { + "TrafficRule", + "TrafficRule", + &asn_OP_NativeEnumerated, + asn_DEF_TrafficRule_tags_1, + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + asn_DEF_TrafficRule_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficRule_constr_1, &asn_PER_type_TrafficRule_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TrafficRule_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/TransmissionInterval.c b/vcits/denm/src/TransmissionInterval.c new file mode 100644 index 0000000..193e1a4 --- /dev/null +++ b/vcits/denm/src/TransmissionInterval.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "TransmissionInterval.h" + +int +TransmissionInterval_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..10000) */, + -1}; +asn_per_constraints_t asn_PER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 10000 } /* (1..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransmissionInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionInterval = { + "TransmissionInterval", + "TransmissionInterval", + &asn_OP_NativeInteger, + asn_DEF_TransmissionInterval_tags_1, + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + asn_DEF_TransmissionInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionInterval_constr_1, &asn_PER_type_TransmissionInterval_constr_1, TransmissionInterval_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/TurningRadius.c b/vcits/denm/src/TurningRadius.c new file mode 100644 index 0000000..7c4d2c0 --- /dev/null +++ b/vcits/denm/src/TurningRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "TurningRadius.h" + +int +TurningRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TurningRadius_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +asn_per_constraints_t asn_PER_type_TurningRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TurningRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TurningRadius = { + "TurningRadius", + "TurningRadius", + &asn_OP_NativeInteger, + asn_DEF_TurningRadius_tags_1, + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + asn_DEF_TurningRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_TurningRadius_constr_1, &asn_PER_type_TurningRadius_constr_1, TurningRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/VDS.c b/vcits/denm/src/VDS.c new file mode 100644 index 0000000..c4e70a3 --- /dev/null +++ b/vcits/denm/src/VDS.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "VDS.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +VDS_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 6) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VDS_constr_1 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +asn_per_constraints_t asn_PER_type_VDS_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_VDS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VDS = { + "VDS", + "VDS", + &asn_OP_IA5String, + asn_DEF_VDS_tags_1, + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + asn_DEF_VDS_tags_1, /* Same as above */ + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + { &asn_OER_type_VDS_constr_1, &asn_PER_type_VDS_constr_1, VDS_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/ValidityDuration.c b/vcits/denm/src/ValidityDuration.c new file mode 100644 index 0000000..fba7a96 --- /dev/null +++ b/vcits/denm/src/ValidityDuration.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "ValidityDuration.h" + +int +ValidityDuration_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 86400)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..86400) */, + -1}; +asn_per_constraints_t asn_PER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 0, 86400 } /* (0..86400) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ValidityDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ValidityDuration = { + "ValidityDuration", + "ValidityDuration", + &asn_OP_NativeInteger, + asn_DEF_ValidityDuration_tags_1, + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + asn_DEF_ValidityDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + { &asn_OER_type_ValidityDuration_constr_1, &asn_PER_type_ValidityDuration_constr_1, ValidityDuration_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/VehicleBreakdownSubCauseCode.c b/vcits/denm/src/VehicleBreakdownSubCauseCode.c new file mode 100644 index 0000000..8650744 --- /dev/null +++ b/vcits/denm/src/VehicleBreakdownSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "VehicleBreakdownSubCauseCode.h" + +int +VehicleBreakdownSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleBreakdownSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode = { + "VehicleBreakdownSubCauseCode", + "VehicleBreakdownSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleBreakdownSubCauseCode_constr_1, &asn_PER_type_VehicleBreakdownSubCauseCode_constr_1, VehicleBreakdownSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/VehicleIdentification.c b/vcits/denm/src/VehicleIdentification.c new file mode 100644 index 0000000..0853f58 --- /dev/null +++ b/vcits/denm/src/VehicleIdentification.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "VehicleIdentification.h" + +asn_TYPE_member_t asn_MBR_VehicleIdentification_1[] = { + { ATF_POINTER, 2, offsetof(struct VehicleIdentification, wMInumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WMInumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wMInumber" + }, + { ATF_POINTER, 1, offsetof(struct VehicleIdentification, vDS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VDS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vDS" + }, +}; +static const int asn_MAP_VehicleIdentification_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_VehicleIdentification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleIdentification_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wMInumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vDS */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleIdentification_specs_1 = { + sizeof(struct VehicleIdentification), + offsetof(struct VehicleIdentification, _asn_ctx), + asn_MAP_VehicleIdentification_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_VehicleIdentification_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleIdentification = { + "VehicleIdentification", + "VehicleIdentification", + &asn_OP_SEQUENCE, + asn_DEF_VehicleIdentification_tags_1, + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + asn_DEF_VehicleIdentification_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleIdentification_1, + 2, /* Elements count */ + &asn_SPC_VehicleIdentification_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/VehicleLength.c b/vcits/denm/src/VehicleLength.c new file mode 100644 index 0000000..ea60c14 --- /dev/null +++ b/vcits/denm/src/VehicleLength.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "VehicleLength.h" + +static asn_TYPE_member_t asn_MBR_VehicleLength_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthConfidenceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthConfidenceIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthConfidenceIndication" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleLength_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vehicleLengthConfidenceIndication */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleLength_specs_1 = { + sizeof(struct VehicleLength), + offsetof(struct VehicleLength, _asn_ctx), + asn_MAP_VehicleLength_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_SEQUENCE, + asn_DEF_VehicleLength_tags_1, + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleLength_1, + 2, /* Elements count */ + &asn_SPC_VehicleLength_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/VehicleLengthConfidenceIndication.c b/vcits/denm/src/VehicleLengthConfidenceIndication.c new file mode 100644 index 0000000..811cf0e --- /dev/null +++ b/vcits/denm/src/VehicleLengthConfidenceIndication.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "VehicleLengthConfidenceIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleLengthConfidenceIndication_value2enum_1[] = { + { 0, 16, "noTrailerPresent" }, + { 1, 29, "trailerPresentWithKnownLength" }, + { 2, 31, "trailerPresentWithUnknownLength" }, + { 3, 24, "trailerPresenceIsUnknown" }, + { 4, 11, "unavailable" } +}; +static const unsigned int asn_MAP_VehicleLengthConfidenceIndication_enum2value_1[] = { + 0, /* noTrailerPresent(0) */ + 3, /* trailerPresenceIsUnknown(3) */ + 1, /* trailerPresentWithKnownLength(1) */ + 2, /* trailerPresentWithUnknownLength(2) */ + 4 /* unavailable(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1 = { + asn_MAP_VehicleLengthConfidenceIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleLengthConfidenceIndication_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthConfidenceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication = { + "VehicleLengthConfidenceIndication", + "VehicleLengthConfidenceIndication", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleLengthConfidenceIndication_tags_1, + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthConfidenceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthConfidenceIndication_constr_1, &asn_PER_type_VehicleLengthConfidenceIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleLengthConfidenceIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/VehicleLengthValue.c b/vcits/denm/src/VehicleLengthValue.c new file mode 100644 index 0000000..3233eb7 --- /dev/null +++ b/vcits/denm/src/VehicleLengthValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "VehicleLengthValue.h" + +int +VehicleLengthValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (1..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue = { + "VehicleLengthValue", + "VehicleLengthValue", + &asn_OP_NativeInteger, + asn_DEF_VehicleLengthValue_tags_1, + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthValue_constr_1, &asn_PER_type_VehicleLengthValue_constr_1, VehicleLengthValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/VehicleMass.c b/vcits/denm/src/VehicleMass.c new file mode 100644 index 0000000..0de0cf7 --- /dev/null +++ b/vcits/denm/src/VehicleMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "VehicleMass.h" + +int +VehicleMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1024)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleMass_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1024) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_VehicleMass_tags_1, + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleMass_constr_1, &asn_PER_type_VehicleMass_constr_1, VehicleMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/VehicleRole.c b/vcits/denm/src/VehicleRole.c new file mode 100644 index 0000000..ce64d75 --- /dev/null +++ b/vcits/denm/src/VehicleRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "VehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleRole_value2enum_1[] = { + { 0, 7, "default" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 6, "rescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 11, "agriculture" }, + { 9, 10, "commercial" }, + { 10, 8, "military" }, + { 11, 12, "roadOperator" }, + { 12, 4, "taxi" }, + { 13, 9, "reserved1" }, + { 14, 9, "reserved2" }, + { 15, 9, "reserved3" } +}; +static const unsigned int asn_MAP_VehicleRole_enum2value_1[] = { + 8, /* agriculture(8) */ + 9, /* commercial(9) */ + 3, /* dangerousGoods(3) */ + 0, /* default(0) */ + 6, /* emergency(6) */ + 10, /* military(10) */ + 1, /* publicTransport(1) */ + 5, /* rescue(5) */ + 13, /* reserved1(13) */ + 14, /* reserved2(14) */ + 15, /* reserved3(15) */ + 11, /* roadOperator(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 2, /* specialTransport(2) */ + 12 /* taxi(12) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_VehicleRole_specs_1 = { + asn_MAP_VehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleRole = { + "VehicleRole", + "VehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleRole_tags_1, + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + asn_DEF_VehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleRole_constr_1, &asn_PER_type_VehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/VehicleWidth.c b/vcits/denm/src/VehicleWidth.c new file mode 100644 index 0000000..d4843c2 --- /dev/null +++ b/vcits/denm/src/VehicleWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "VehicleWidth.h" + +int +VehicleWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 62)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..62) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 62 } /* (1..62) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_VehicleWidth_tags_1, + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleWidth_constr_1, &asn_PER_type_VehicleWidth_constr_1, VehicleWidth_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/VerticalAcceleration.c b/vcits/denm/src/VerticalAcceleration.c new file mode 100644 index 0000000..7183b3e --- /dev/null +++ b/vcits/denm/src/VerticalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "VerticalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_VerticalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VerticalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* verticalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* verticalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VerticalAcceleration_specs_1 = { + sizeof(struct VerticalAcceleration), + offsetof(struct VerticalAcceleration, _asn_ctx), + asn_MAP_VerticalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_VerticalAcceleration_tags_1, + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VerticalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_VerticalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/VerticalAccelerationValue.c b/vcits/denm/src/VerticalAccelerationValue.c new file mode 100644 index 0000000..e29c1c2 --- /dev/null +++ b/vcits/denm/src/VerticalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "VerticalAccelerationValue.h" + +int +VerticalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VerticalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue = { + "VerticalAccelerationValue", + "VerticalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_VerticalAccelerationValue_tags_1, + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_VerticalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VerticalAccelerationValue_constr_1, &asn_PER_type_VerticalAccelerationValue_constr_1, VerticalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/WMInumber.c b/vcits/denm/src/WMInumber.c new file mode 100644 index 0000000..e80844d --- /dev/null +++ b/vcits/denm/src/WMInumber.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "WMInumber.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +WMInumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 3) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WMInumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +asn_per_constraints_t asn_PER_type_WMInumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_WMInumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WMInumber = { + "WMInumber", + "WMInumber", + &asn_OP_IA5String, + asn_DEF_WMInumber_tags_1, + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + asn_DEF_WMInumber_tags_1, /* Same as above */ + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + { &asn_OER_type_WMInumber_constr_1, &asn_PER_type_WMInumber_constr_1, WMInumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/WheelBaseVehicle.c b/vcits/denm/src/WheelBaseVehicle.c new file mode 100644 index 0000000..34bfdab --- /dev/null +++ b/vcits/denm/src/WheelBaseVehicle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "WheelBaseVehicle.h" + +int +WheelBaseVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WheelBaseVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle = { + "WheelBaseVehicle", + "WheelBaseVehicle", + &asn_OP_NativeInteger, + asn_DEF_WheelBaseVehicle_tags_1, + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + asn_DEF_WheelBaseVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_WheelBaseVehicle_constr_1, &asn_PER_type_WheelBaseVehicle_constr_1, WheelBaseVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/WrongWayDrivingSubCauseCode.c b/vcits/denm/src/WrongWayDrivingSubCauseCode.c new file mode 100644 index 0000000..6b2d896 --- /dev/null +++ b/vcits/denm/src/WrongWayDrivingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "WrongWayDrivingSubCauseCode.h" + +int +WrongWayDrivingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WrongWayDrivingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode = { + "WrongWayDrivingSubCauseCode", + "WrongWayDrivingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_WrongWayDrivingSubCauseCode_constr_1, &asn_PER_type_WrongWayDrivingSubCauseCode_constr_1, WrongWayDrivingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/denm/src/YawRate.c b/vcits/denm/src/YawRate.c new file mode 100644 index 0000000..e596dc5 --- /dev/null +++ b/vcits/denm/src/YawRate.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "YawRate.h" + +static asn_TYPE_member_t asn_MBR_YawRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_YawRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yawRateValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* yawRateConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_YawRate_specs_1 = { + sizeof(struct YawRate), + offsetof(struct YawRate, _asn_ctx), + asn_MAP_YawRate_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_YawRate = { + "YawRate", + "YawRate", + &asn_OP_SEQUENCE, + asn_DEF_YawRate_tags_1, + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + asn_DEF_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_YawRate_1, + 2, /* Elements count */ + &asn_SPC_YawRate_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/YawRateConfidence.c b/vcits/denm/src/YawRateConfidence.c new file mode 100644 index 0000000..6dbc580 --- /dev/null +++ b/vcits/denm/src/YawRateConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "YawRateConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_YawRateConfidence_value2enum_1[] = { + { 0, 13, "degSec-000-01" }, + { 1, 13, "degSec-000-05" }, + { 2, 13, "degSec-000-10" }, + { 3, 13, "degSec-001-00" }, + { 4, 13, "degSec-005-00" }, + { 5, 13, "degSec-010-00" }, + { 6, 13, "degSec-100-00" }, + { 7, 10, "outOfRange" }, + { 8, 11, "unavailable" } +}; +static const unsigned int asn_MAP_YawRateConfidence_enum2value_1[] = { + 0, /* degSec-000-01(0) */ + 1, /* degSec-000-05(1) */ + 2, /* degSec-000-10(2) */ + 3, /* degSec-001-00(3) */ + 4, /* degSec-005-00(4) */ + 5, /* degSec-010-00(5) */ + 6, /* degSec-100-00(6) */ + 7, /* outOfRange(7) */ + 8 /* unavailable(8) */ +}; +const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1 = { + asn_MAP_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_YawRateConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 9, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_YawRateConfidence_tags_1, + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateConfidence_constr_1, &asn_PER_type_YawRateConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/denm/src/YawRateValue.c b/vcits/denm/src/YawRateValue.c new file mode 100644 index 0000000..c7dcd8f --- /dev/null +++ b/vcits/denm/src/YawRateValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/denm -R -no-gen-example -fcompound-names -fno-include-deps -pdu=DENM` + */ + +#include "YawRateValue.h" + +int +YawRateValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32766 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32766..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_YawRateValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32766, 32767 } /* (-32766..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_YawRateValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateValue = { + "YawRateValue", + "YawRateValue", + &asn_OP_NativeInteger, + asn_DEF_YawRateValue_tags_1, + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + asn_DEF_YawRateValue_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateValue_constr_1, &asn_PER_type_YawRateValue_constr_1, YawRateValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/exceptions/CMakeLists.txt b/vcits/exceptions/CMakeLists.txt new file mode 100644 index 0000000..9e0dd97 --- /dev/null +++ b/vcits/exceptions/CMakeLists.txt @@ -0,0 +1,28 @@ +# This file is auto-generated by command-cxx.sh +cmake_minimum_required(VERSION 3.9) + +message(STATUS "--> Configure build of |-vcits-exceptions") + + +project(vcits-exceptions VERSION 0.2 DESCRIPTION "Exceptions of vc ITS Library") + +add_library(vcits-exceptions INTERFACE) +# old CMake versions +#add_library(vcits-exceptions SHARED "") + +# not supported for INTERFACE +#set_target_properties(vcits-exceptions PROPERTIES +#LINKER_LANGUAGE CXX +#COMPILE_FLAGS "-Wall -Wextra" +#LINK_FLAGS "-Wall -Wextra" +#) + +# not supported for INTERFACE +#set_target_properties(vcits-exceptions PROPERTIES VERSION ${PROJECT_VERSION}) + +target_include_directories(vcits-exceptions INTERFACE .) +# old CMake versions +#target_include_directories(vcits-exceptions PRIVATE .) + +message(STATUS "--> Configure build of |-vcits-exceptions - done") + diff --git a/vcits/exceptions/DecodingException.h b/vcits/exceptions/DecodingException.h new file mode 100644 index 0000000..247703b --- /dev/null +++ b/vcits/exceptions/DecodingException.h @@ -0,0 +1,33 @@ +// +// Created by Christoph Pilz on 14.10.2021. +// +// Description: +// Exception, if something is not yet implemented +// +// Author(s): "Christoph Pilz" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Thispointer.com"] +// License: "BSD 3-Clause" +// Version: "1.0" +// Maintainer: "Christoph Pilz" +// E-Mail: "christoph.pilz@v2c2.at" +// Status = "Production" +// +// Possible Improvements: +// - [ ] +// + +#ifndef VC_ITS_DECODINGEXCEPTION_H +#define VC_ITS_DECODINGEXCEPTION_H + +#pragma once + +#include + +class DecodingException : public std::runtime_error +{ +public: + DecodingException(size_t consumed) : std::runtime_error(std::string("Broken encoding at byte: " + std::to_string(consumed))) { }; +}; + +#endif //VC_ITS_DECODINGEXCEPTION_H diff --git a/vcits/exceptions/EncodingException.h b/vcits/exceptions/EncodingException.h new file mode 100644 index 0000000..cfc55e6 --- /dev/null +++ b/vcits/exceptions/EncodingException.h @@ -0,0 +1,33 @@ +// +// Created by Christoph Pilz on 14.10.2021. +// +// Description: +// Exception, if something is not yet implemented +// +// Author(s): "Christoph Pilz" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Thispointer.com"] +// License: "BSD 3-Clause" +// Version: "1.0" +// Maintainer: "Christoph Pilz" +// E-Mail: "christoph.pilz@v2c2.at" +// Status = "Production" +// +// Possible Improvements: +// - [ ] +// + +#ifndef VC_ITS_ENCODINGEXCEPTION_H +#define VC_ITS_ENCODINGEXCEPTION_H + +#pragma once + +#include + +class EncodingException : public std::runtime_error +{ +public: + EncodingException() : std::runtime_error("Encoding failed: values may be out of range") { }; +}; + +#endif //VC_ITS_ENCODINGEXCEPTION_H diff --git a/vcits/exceptions/V2XLibExceptions.h b/vcits/exceptions/V2XLibExceptions.h new file mode 100644 index 0000000..c1c6b51 --- /dev/null +++ b/vcits/exceptions/V2XLibExceptions.h @@ -0,0 +1,29 @@ +// +// Created by Christoph Pilz on 14.10.2021. +// +// Description: +// Single header, to include all V2X library exceptions +// +// Author(s): "Christoph Pilz" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Thispointer.com"] +// License: "BSD 3-Clause" +// Version: "1.0" +// Maintainer: "Christoph Pilz" +// E-Mail: "christoph.pilz@v2c2.at" +// Status = "Production" +// +// Possible Improvements: +// - [ ] +// + +#ifndef VC_ITS_V2XLIBEXCEPTIONS_H +#define VC_ITS_V2XLIBEXCEPTIONS_H + +#pragma once + +#include "DecodingException.h" +#include "EncodingException.h" +#include "ValidateConstraintsException.h" + +#endif //VC_ITS_V2XLIBEXCEPTIONS_H diff --git a/vcits/exceptions/ValidateConstraintsException.h b/vcits/exceptions/ValidateConstraintsException.h new file mode 100644 index 0000000..099878b --- /dev/null +++ b/vcits/exceptions/ValidateConstraintsException.h @@ -0,0 +1,33 @@ +// +// Created by Christoph Pilz on 14.10.2021. +// +// Description: +// Exception, if something is not yet implemented +// +// Author(s): "Christoph Pilz" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Thispointer.com"] +// License: "BSD 3-Clause" +// Version: "1.0" +// Maintainer: "Christoph Pilz" +// E-Mail: "christoph.pilz@v2c2.at" +// Status = "Production" +// +// Possible Improvements: +// - [ ] +// + +#ifndef VC_ITS_VALIDATECONSTRAINTSEXCEPTION_H +#define VC_ITS_VALIDATECONSTRAINTSEXCEPTION_H + +#pragma once + +#include + +class ValidateConstraintsException : public std::logic_error +{ +public: + ValidateConstraintsException() : std::logic_error("Validation failed: parameters may be defined wrong") { }; +}; + +#endif //VC_ITS_VALIDATECONSTRAINTSEXCEPTION_H diff --git a/vcits/ivim/AbsolutePosition.h b/vcits/ivim/AbsolutePosition.h new file mode 100644 index 0000000..d6dd2a1 --- /dev/null +++ b/vcits/ivim/AbsolutePosition.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AbsolutePosition_H_ +#define _AbsolutePosition_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AbsolutePosition */ +typedef struct AbsolutePosition { + Latitude_t latitude; + Longitude_t longitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AbsolutePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AbsolutePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_AbsolutePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_AbsolutePosition_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AbsolutePosition_H_ */ +#include diff --git a/vcits/ivim/AbsolutePositionWAltitude.h b/vcits/ivim/AbsolutePositionWAltitude.h new file mode 100644 index 0000000..4273688 --- /dev/null +++ b/vcits/ivim/AbsolutePositionWAltitude.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AbsolutePositionWAltitude_H_ +#define _AbsolutePositionWAltitude_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AbsolutePositionWAltitude */ +typedef struct AbsolutePositionWAltitude { + Latitude_t latitude; + Longitude_t longitude; + Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AbsolutePositionWAltitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AbsolutePositionWAltitude; +extern asn_SEQUENCE_specifics_t asn_SPC_AbsolutePositionWAltitude_specs_1; +extern asn_TYPE_member_t asn_MBR_AbsolutePositionWAltitude_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AbsolutePositionWAltitude_H_ */ +#include diff --git a/vcits/ivim/AbsolutePositions.h b/vcits/ivim/AbsolutePositions.h new file mode 100644 index 0000000..ca709d4 --- /dev/null +++ b/vcits/ivim/AbsolutePositions.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AbsolutePositions_H_ +#define _AbsolutePositions_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AbsolutePosition; + +/* AbsolutePositions */ +typedef struct AbsolutePositions { + A_SEQUENCE_OF(struct AbsolutePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AbsolutePositions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AbsolutePositions; +extern asn_SET_OF_specifics_t asn_SPC_AbsolutePositions_specs_1; +extern asn_TYPE_member_t asn_MBR_AbsolutePositions_1[1]; +extern asn_per_constraints_t asn_PER_type_AbsolutePositions_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AbsolutePositions_H_ */ +#include diff --git a/vcits/ivim/AbsolutePositionsWAltitude.h b/vcits/ivim/AbsolutePositionsWAltitude.h new file mode 100644 index 0000000..4e0213c --- /dev/null +++ b/vcits/ivim/AbsolutePositionsWAltitude.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AbsolutePositionsWAltitude_H_ +#define _AbsolutePositionsWAltitude_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AbsolutePositionWAltitude; + +/* AbsolutePositionsWAltitude */ +typedef struct AbsolutePositionsWAltitude { + A_SEQUENCE_OF(struct AbsolutePositionWAltitude) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AbsolutePositionsWAltitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AbsolutePositionsWAltitude; +extern asn_SET_OF_specifics_t asn_SPC_AbsolutePositionsWAltitude_specs_1; +extern asn_TYPE_member_t asn_MBR_AbsolutePositionsWAltitude_1[1]; +extern asn_per_constraints_t asn_PER_type_AbsolutePositionsWAltitude_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AbsolutePositionsWAltitude_H_ */ +#include diff --git a/vcits/ivim/AccelerationConfidence.h b/vcits/ivim/AccelerationConfidence.h new file mode 100644 index 0000000..b820397 --- /dev/null +++ b/vcits/ivim/AccelerationConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AccelerationConfidence_H_ +#define _AccelerationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationConfidence { + AccelerationConfidence_pointOneMeterPerSecSquared = 1, + AccelerationConfidence_outOfRange = 101, + AccelerationConfidence_unavailable = 102 +} e_AccelerationConfidence; + +/* AccelerationConfidence */ +typedef long AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence; +asn_struct_free_f AccelerationConfidence_free; +asn_struct_print_f AccelerationConfidence_print; +asn_constr_check_f AccelerationConfidence_constraint; +ber_type_decoder_f AccelerationConfidence_decode_ber; +der_type_encoder_f AccelerationConfidence_encode_der; +xer_type_decoder_f AccelerationConfidence_decode_xer; +xer_type_encoder_f AccelerationConfidence_encode_xer; +oer_type_decoder_f AccelerationConfidence_decode_oer; +oer_type_encoder_f AccelerationConfidence_encode_oer; +per_type_decoder_f AccelerationConfidence_decode_uper; +per_type_encoder_f AccelerationConfidence_encode_uper; +per_type_decoder_f AccelerationConfidence_decode_aper; +per_type_encoder_f AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationConfidence_H_ */ +#include diff --git a/vcits/ivim/AccelerationControl.h b/vcits/ivim/AccelerationControl.h new file mode 100644 index 0000000..f2d869c --- /dev/null +++ b/vcits/ivim/AccelerationControl.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AccelerationControl_H_ +#define _AccelerationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationControl { + AccelerationControl_brakePedalEngaged = 0, + AccelerationControl_gasPedalEngaged = 1, + AccelerationControl_emergencyBrakeEngaged = 2, + AccelerationControl_collisionWarningEngaged = 3, + AccelerationControl_accEngaged = 4, + AccelerationControl_cruiseControlEngaged = 5, + AccelerationControl_speedLimiterEngaged = 6 +} e_AccelerationControl; + +/* AccelerationControl */ +typedef BIT_STRING_t AccelerationControl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccelerationControl; +asn_struct_free_f AccelerationControl_free; +asn_struct_print_f AccelerationControl_print; +asn_constr_check_f AccelerationControl_constraint; +ber_type_decoder_f AccelerationControl_decode_ber; +der_type_encoder_f AccelerationControl_encode_der; +xer_type_decoder_f AccelerationControl_decode_xer; +xer_type_encoder_f AccelerationControl_encode_xer; +oer_type_decoder_f AccelerationControl_decode_oer; +oer_type_encoder_f AccelerationControl_encode_oer; +per_type_decoder_f AccelerationControl_decode_uper; +per_type_encoder_f AccelerationControl_encode_uper; +per_type_decoder_f AccelerationControl_decode_aper; +per_type_encoder_f AccelerationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationControl_H_ */ +#include diff --git a/vcits/ivim/AccidentSubCauseCode.h b/vcits/ivim/AccidentSubCauseCode.h new file mode 100644 index 0000000..415e566 --- /dev/null +++ b/vcits/ivim/AccidentSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AccidentSubCauseCode_H_ +#define _AccidentSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccidentSubCauseCode { + AccidentSubCauseCode_unavailable = 0, + AccidentSubCauseCode_multiVehicleAccident = 1, + AccidentSubCauseCode_heavyAccident = 2, + AccidentSubCauseCode_accidentInvolvingLorry = 3, + AccidentSubCauseCode_accidentInvolvingBus = 4, + AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5, + AccidentSubCauseCode_accidentOnOppositeLane = 6, + AccidentSubCauseCode_unsecuredAccident = 7, + AccidentSubCauseCode_assistanceRequested = 8 +} e_AccidentSubCauseCode; + +/* AccidentSubCauseCode */ +typedef long AccidentSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode; +asn_struct_free_f AccidentSubCauseCode_free; +asn_struct_print_f AccidentSubCauseCode_print; +asn_constr_check_f AccidentSubCauseCode_constraint; +ber_type_decoder_f AccidentSubCauseCode_decode_ber; +der_type_encoder_f AccidentSubCauseCode_encode_der; +xer_type_decoder_f AccidentSubCauseCode_decode_xer; +xer_type_encoder_f AccidentSubCauseCode_encode_xer; +oer_type_decoder_f AccidentSubCauseCode_decode_oer; +oer_type_encoder_f AccidentSubCauseCode_encode_oer; +per_type_decoder_f AccidentSubCauseCode_decode_uper; +per_type_encoder_f AccidentSubCauseCode_encode_uper; +per_type_decoder_f AccidentSubCauseCode_decode_aper; +per_type_encoder_f AccidentSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccidentSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/ActionID.h b/vcits/ivim/ActionID.h new file mode 100644 index 0000000..88e8f7c --- /dev/null +++ b/vcits/ivim/ActionID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ActionID_H_ +#define _ActionID_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "SequenceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ActionID */ +typedef struct ActionID { + StationID_t originatingStationID; + SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ActionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ActionID; +extern asn_SEQUENCE_specifics_t asn_SPC_ActionID_specs_1; +extern asn_TYPE_member_t asn_MBR_ActionID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ActionID_H_ */ +#include diff --git a/vcits/ivim/ActualNumberOfPassengers.h b/vcits/ivim/ActualNumberOfPassengers.h new file mode 100644 index 0000000..3f298dc --- /dev/null +++ b/vcits/ivim/ActualNumberOfPassengers.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ActualNumberOfPassengers_H_ +#define _ActualNumberOfPassengers_H_ + + +#include + +/* Including external dependencies */ +#include "Int1.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ActualNumberOfPassengers */ +typedef Int1_t ActualNumberOfPassengers_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ActualNumberOfPassengers; +asn_struct_free_f ActualNumberOfPassengers_free; +asn_struct_print_f ActualNumberOfPassengers_print; +asn_constr_check_f ActualNumberOfPassengers_constraint; +ber_type_decoder_f ActualNumberOfPassengers_decode_ber; +der_type_encoder_f ActualNumberOfPassengers_encode_der; +xer_type_decoder_f ActualNumberOfPassengers_decode_xer; +xer_type_encoder_f ActualNumberOfPassengers_encode_xer; +oer_type_decoder_f ActualNumberOfPassengers_decode_oer; +oer_type_encoder_f ActualNumberOfPassengers_encode_oer; +per_type_decoder_f ActualNumberOfPassengers_decode_uper; +per_type_encoder_f ActualNumberOfPassengers_encode_uper; +per_type_decoder_f ActualNumberOfPassengers_decode_aper; +per_type_encoder_f ActualNumberOfPassengers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ActualNumberOfPassengers_H_ */ +#include diff --git a/vcits/ivim/AddRq.h b/vcits/ivim/AddRq.h new file mode 100644 index 0000000..6d4ae64 --- /dev/null +++ b/vcits/ivim/AddRq.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AddRq_H_ +#define _AddRq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AddRq */ +typedef struct AddRq { + long attributeId; + long value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AddRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AddRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _AddRq_H_ */ +#include diff --git a/vcits/ivim/AdverseWeatherCondition-AdhesionSubCauseCode.h b/vcits/ivim/AdverseWeatherCondition-AdhesionSubCauseCode.h new file mode 100644 index 0000000..bb0043d --- /dev/null +++ b/vcits/ivim/AdverseWeatherCondition-AdhesionSubCauseCode.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AdverseWeatherCondition_AdhesionSubCauseCode_H_ +#define _AdverseWeatherCondition_AdhesionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_AdhesionSubCauseCode { + AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1, + AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2, + AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3, + AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4, + AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5, + AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6, + AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7, + AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8, + AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9, + AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10 +} e_AdverseWeatherCondition_AdhesionSubCauseCode; + +/* AdverseWeatherCondition-AdhesionSubCauseCode */ +typedef long AdverseWeatherCondition_AdhesionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_AdhesionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_AdhesionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_AdhesionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_AdhesionSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h b/vcits/ivim/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 0000000..a259cf4 --- /dev/null +++ b/vcits/ivim/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ +#define _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode { + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6 +} e_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; + +/* AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */ +typedef long AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/AdverseWeatherCondition-PrecipitationSubCauseCode.h b/vcits/ivim/AdverseWeatherCondition-PrecipitationSubCauseCode.h new file mode 100644 index 0000000..efa9b54 --- /dev/null +++ b/vcits/ivim/AdverseWeatherCondition-PrecipitationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ +#define _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_PrecipitationSubCauseCode { + AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2, + AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3 +} e_AdverseWeatherCondition_PrecipitationSubCauseCode; + +/* AdverseWeatherCondition-PrecipitationSubCauseCode */ +typedef long AdverseWeatherCondition_PrecipitationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_PrecipitationSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_PrecipitationSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_PrecipitationSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/AdverseWeatherCondition-VisibilitySubCauseCode.h b/vcits/ivim/AdverseWeatherCondition-VisibilitySubCauseCode.h new file mode 100644 index 0000000..8c17e43 --- /dev/null +++ b/vcits/ivim/AdverseWeatherCondition-VisibilitySubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AdverseWeatherCondition_VisibilitySubCauseCode_H_ +#define _AdverseWeatherCondition_VisibilitySubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_VisibilitySubCauseCode { + AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0, + AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1, + AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2, + AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5, + AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6, + AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7, + AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8 +} e_AdverseWeatherCondition_VisibilitySubCauseCode; + +/* AdverseWeatherCondition-VisibilitySubCauseCode */ +typedef long AdverseWeatherCondition_VisibilitySubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode; +asn_struct_free_f AdverseWeatherCondition_VisibilitySubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_VisibilitySubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_VisibilitySubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_VisibilitySubCauseCode_H_ */ +#include diff --git a/vcits/ivim/AdvisorySpeed.h b/vcits/ivim/AdvisorySpeed.h new file mode 100644 index 0000000..9cb5349 --- /dev/null +++ b/vcits/ivim/AdvisorySpeed.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AdvisorySpeed_H_ +#define _AdvisorySpeed_H_ + + +#include + +/* Including external dependencies */ +#include "AdvisorySpeedType.h" +#include "SpeedAdvice.h" +#include "SpeedConfidenceDSRC.h" +#include "ZoneLength.h" +#include "RestrictionClassID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_AdvisorySpeed; + +/* AdvisorySpeed */ +typedef struct AdvisorySpeed { + AdvisorySpeedType_t type; + SpeedAdvice_t *speed; /* OPTIONAL */ + SpeedConfidenceDSRC_t *confidence; /* OPTIONAL */ + ZoneLength_t *distance; /* OPTIONAL */ + RestrictionClassID_t *Class; /* OPTIONAL */ + struct AdvisorySpeed__regional { + A_SEQUENCE_OF(struct Reg_AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeed_H_ */ +#include diff --git a/vcits/ivim/AdvisorySpeedList.h b/vcits/ivim/AdvisorySpeedList.h new file mode 100644 index 0000000..70d7568 --- /dev/null +++ b/vcits/ivim/AdvisorySpeedList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AdvisorySpeedList_H_ +#define _AdvisorySpeedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AdvisorySpeed; + +/* AdvisorySpeedList */ +typedef struct AdvisorySpeedList { + A_SEQUENCE_OF(struct AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList; +extern asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[1]; +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedList_H_ */ +#include diff --git a/vcits/ivim/AdvisorySpeedType.h b/vcits/ivim/AdvisorySpeedType.h new file mode 100644 index 0000000..777ebbe --- /dev/null +++ b/vcits/ivim/AdvisorySpeedType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AdvisorySpeedType_H_ +#define _AdvisorySpeedType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdvisorySpeedType { + AdvisorySpeedType_none = 0, + AdvisorySpeedType_greenwave = 1, + AdvisorySpeedType_ecoDrive = 2, + AdvisorySpeedType_transit = 3 + /* + * Enumeration is extensible + */ +} e_AdvisorySpeedType; + +/* AdvisorySpeedType */ +typedef long AdvisorySpeedType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType; +extern const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1; +asn_struct_free_f AdvisorySpeedType_free; +asn_struct_print_f AdvisorySpeedType_print; +asn_constr_check_f AdvisorySpeedType_constraint; +ber_type_decoder_f AdvisorySpeedType_decode_ber; +der_type_encoder_f AdvisorySpeedType_encode_der; +xer_type_decoder_f AdvisorySpeedType_decode_xer; +xer_type_encoder_f AdvisorySpeedType_encode_xer; +oer_type_decoder_f AdvisorySpeedType_decode_oer; +oer_type_encoder_f AdvisorySpeedType_encode_oer; +per_type_decoder_f AdvisorySpeedType_decode_uper; +per_type_encoder_f AdvisorySpeedType_encode_uper; +per_type_decoder_f AdvisorySpeedType_decode_aper; +per_type_encoder_f AdvisorySpeedType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedType_H_ */ +#include diff --git a/vcits/ivim/AllowedManeuvers.h b/vcits/ivim/AllowedManeuvers.h new file mode 100644 index 0000000..4e71d47 --- /dev/null +++ b/vcits/ivim/AllowedManeuvers.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AllowedManeuvers_H_ +#define _AllowedManeuvers_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AllowedManeuvers { + AllowedManeuvers_maneuverStraightAllowed = 0, + AllowedManeuvers_maneuverLeftAllowed = 1, + AllowedManeuvers_maneuverRightAllowed = 2, + AllowedManeuvers_maneuverUTurnAllowed = 3, + AllowedManeuvers_maneuverLeftTurnOnRedAllowed = 4, + AllowedManeuvers_maneuverRightTurnOnRedAllowed = 5, + AllowedManeuvers_maneuverLaneChangeAllowed = 6, + AllowedManeuvers_maneuverNoStoppingAllowed = 7, + AllowedManeuvers_yieldAllwaysRequired = 8, + AllowedManeuvers_goWithHalt = 9, + AllowedManeuvers_caution = 10, + AllowedManeuvers_reserved1 = 11 +} e_AllowedManeuvers; + +/* AllowedManeuvers */ +typedef BIT_STRING_t AllowedManeuvers_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers; +asn_struct_free_f AllowedManeuvers_free; +asn_struct_print_f AllowedManeuvers_print; +asn_constr_check_f AllowedManeuvers_constraint; +ber_type_decoder_f AllowedManeuvers_decode_ber; +der_type_encoder_f AllowedManeuvers_encode_der; +xer_type_decoder_f AllowedManeuvers_decode_xer; +xer_type_encoder_f AllowedManeuvers_encode_xer; +oer_type_decoder_f AllowedManeuvers_decode_oer; +oer_type_encoder_f AllowedManeuvers_encode_oer; +per_type_decoder_f AllowedManeuvers_decode_uper; +per_type_encoder_f AllowedManeuvers_encode_uper; +per_type_decoder_f AllowedManeuvers_decode_aper; +per_type_encoder_f AllowedManeuvers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AllowedManeuvers_H_ */ +#include diff --git a/vcits/ivim/AlphabetIndicator.h b/vcits/ivim/AlphabetIndicator.h new file mode 100644 index 0000000..3e80937 --- /dev/null +++ b/vcits/ivim/AlphabetIndicator.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AlphabetIndicator_H_ +#define _AlphabetIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AlphabetIndicator { + AlphabetIndicator_latinAlphabetNo1 = 0, + AlphabetIndicator_latinAlphabetNo2 = 1, + AlphabetIndicator_latinAlphabetNo3 = 2, + AlphabetIndicator_latinAlphabetNo4 = 3, + AlphabetIndicator_latinCyrillicAlphabet = 4, + AlphabetIndicator_latinArabicAlphabet = 5, + AlphabetIndicator_latinGreekAlphabet = 6, + AlphabetIndicator_latinHebrewAlphabet = 7, + AlphabetIndicator_latinAlphabetNo5 = 8, + AlphabetIndicator_latinAlphabetNo6 = 9, + AlphabetIndicator_twoOctetBMP = 10, + AlphabetIndicator_fourOctetCanonical = 11 +} e_AlphabetIndicator; + +/* AlphabetIndicator */ +typedef long AlphabetIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AlphabetIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AlphabetIndicator; +asn_struct_free_f AlphabetIndicator_free; +asn_struct_print_f AlphabetIndicator_print; +asn_constr_check_f AlphabetIndicator_constraint; +ber_type_decoder_f AlphabetIndicator_decode_ber; +der_type_encoder_f AlphabetIndicator_encode_der; +xer_type_decoder_f AlphabetIndicator_decode_xer; +xer_type_encoder_f AlphabetIndicator_encode_xer; +oer_type_decoder_f AlphabetIndicator_decode_oer; +oer_type_encoder_f AlphabetIndicator_encode_oer; +per_type_decoder_f AlphabetIndicator_decode_uper; +per_type_encoder_f AlphabetIndicator_encode_uper; +per_type_decoder_f AlphabetIndicator_decode_aper; +per_type_encoder_f AlphabetIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AlphabetIndicator_H_ */ +#include diff --git a/vcits/ivim/Altitude.h b/vcits/ivim/Altitude.h new file mode 100644 index 0000000..b7c0a5f --- /dev/null +++ b/vcits/ivim/Altitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Altitude_H_ +#define _Altitude_H_ + + +#include + +/* Including external dependencies */ +#include "AltitudeValue.h" +#include "AltitudeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Altitude */ +typedef struct Altitude { + AltitudeValue_t altitudeValue; + AltitudeConfidence_t altitudeConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Altitude_H_ */ +#include diff --git a/vcits/ivim/AltitudeConfidence.h b/vcits/ivim/AltitudeConfidence.h new file mode 100644 index 0000000..3d24f93 --- /dev/null +++ b/vcits/ivim/AltitudeConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AltitudeConfidence_H_ +#define _AltitudeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeConfidence { + AltitudeConfidence_alt_000_01 = 0, + AltitudeConfidence_alt_000_02 = 1, + AltitudeConfidence_alt_000_05 = 2, + AltitudeConfidence_alt_000_10 = 3, + AltitudeConfidence_alt_000_20 = 4, + AltitudeConfidence_alt_000_50 = 5, + AltitudeConfidence_alt_001_00 = 6, + AltitudeConfidence_alt_002_00 = 7, + AltitudeConfidence_alt_005_00 = 8, + AltitudeConfidence_alt_010_00 = 9, + AltitudeConfidence_alt_020_00 = 10, + AltitudeConfidence_alt_050_00 = 11, + AltitudeConfidence_alt_100_00 = 12, + AltitudeConfidence_alt_200_00 = 13, + AltitudeConfidence_outOfRange = 14, + AltitudeConfidence_unavailable = 15 +} e_AltitudeConfidence; + +/* AltitudeConfidence */ +typedef long AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1; +asn_struct_free_f AltitudeConfidence_free; +asn_struct_print_f AltitudeConfidence_print; +asn_constr_check_f AltitudeConfidence_constraint; +ber_type_decoder_f AltitudeConfidence_decode_ber; +der_type_encoder_f AltitudeConfidence_encode_der; +xer_type_decoder_f AltitudeConfidence_decode_xer; +xer_type_encoder_f AltitudeConfidence_encode_xer; +oer_type_decoder_f AltitudeConfidence_decode_oer; +oer_type_encoder_f AltitudeConfidence_encode_oer; +per_type_decoder_f AltitudeConfidence_decode_uper; +per_type_encoder_f AltitudeConfidence_encode_uper; +per_type_decoder_f AltitudeConfidence_decode_aper; +per_type_encoder_f AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeConfidence_H_ */ +#include diff --git a/vcits/ivim/AltitudeValue.h b/vcits/ivim/AltitudeValue.h new file mode 100644 index 0000000..40d73ee --- /dev/null +++ b/vcits/ivim/AltitudeValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AltitudeValue_H_ +#define _AltitudeValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeValue { + AltitudeValue_referenceEllipsoidSurface = 0, + AltitudeValue_oneCentimeter = 1, + AltitudeValue_unavailable = 800001 +} e_AltitudeValue; + +/* AltitudeValue */ +typedef long AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeValue; +asn_struct_free_f AltitudeValue_free; +asn_struct_print_f AltitudeValue_print; +asn_constr_check_f AltitudeValue_constraint; +ber_type_decoder_f AltitudeValue_decode_ber; +der_type_encoder_f AltitudeValue_encode_der; +xer_type_decoder_f AltitudeValue_decode_xer; +xer_type_encoder_f AltitudeValue_encode_xer; +oer_type_decoder_f AltitudeValue_decode_oer; +oer_type_encoder_f AltitudeValue_encode_oer; +per_type_decoder_f AltitudeValue_decode_uper; +per_type_encoder_f AltitudeValue_encode_uper; +per_type_decoder_f AltitudeValue_decode_aper; +per_type_encoder_f AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeValue_H_ */ +#include diff --git a/vcits/ivim/Angle.h b/vcits/ivim/Angle.h new file mode 100644 index 0000000..ec2c71e --- /dev/null +++ b/vcits/ivim/Angle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Angle_H_ +#define _Angle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Angle */ +typedef long Angle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Angle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Angle; +asn_struct_free_f Angle_free; +asn_struct_print_f Angle_print; +asn_constr_check_f Angle_constraint; +ber_type_decoder_f Angle_decode_ber; +der_type_encoder_f Angle_encode_der; +xer_type_decoder_f Angle_decode_xer; +xer_type_encoder_f Angle_encode_xer; +oer_type_decoder_f Angle_decode_oer; +oer_type_encoder_f Angle_encode_oer; +per_type_decoder_f Angle_decode_uper; +per_type_encoder_f Angle_encode_uper; +per_type_decoder_f Angle_decode_aper; +per_type_encoder_f Angle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Angle_H_ */ +#include diff --git a/vcits/ivim/AntennaOffsetSet.h b/vcits/ivim/AntennaOffsetSet.h new file mode 100644 index 0000000..cf8ec94 --- /dev/null +++ b/vcits/ivim/AntennaOffsetSet.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AntennaOffsetSet_H_ +#define _AntennaOffsetSet_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B12.h" +#include "Offset-B09.h" +#include "Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AntennaOffsetSet */ +typedef struct AntennaOffsetSet { + Offset_B12_t antOffsetX; + Offset_B09_t antOffsetY; + Offset_B10_t antOffsetZ; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AntennaOffsetSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet; +extern asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1; +extern asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AntennaOffsetSet_H_ */ +#include diff --git a/vcits/ivim/AnyCatalogue.h b/vcits/ivim/AnyCatalogue.h new file mode 100644 index 0000000..9abd9b2 --- /dev/null +++ b/vcits/ivim/AnyCatalogue.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AnyCatalogue_H_ +#define _AnyCatalogue_H_ + + +#include + +/* Including external dependencies */ +#include "Provider.h" +#include +#include "RSCUnit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ISO14823Attributes; + +/* AnyCatalogue */ +typedef struct AnyCatalogue { + Provider_t owner; + long version; + long pictogramCode; + long *value; /* OPTIONAL */ + RSCUnit_t *unit; /* OPTIONAL */ + struct ISO14823Attributes *attributes; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AnyCatalogue_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AnyCatalogue; +extern asn_SEQUENCE_specifics_t asn_SPC_AnyCatalogue_specs_1; +extern asn_TYPE_member_t asn_MBR_AnyCatalogue_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AnyCatalogue_H_ */ +#include diff --git a/vcits/ivim/ApproachID.h b/vcits/ivim/ApproachID.h new file mode 100644 index 0000000..47a8209 --- /dev/null +++ b/vcits/ivim/ApproachID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ApproachID_H_ +#define _ApproachID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ApproachID */ +typedef long ApproachID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ApproachID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ApproachID; +asn_struct_free_f ApproachID_free; +asn_struct_print_f ApproachID_print; +asn_constr_check_f ApproachID_constraint; +ber_type_decoder_f ApproachID_decode_ber; +der_type_encoder_f ApproachID_encode_der; +xer_type_decoder_f ApproachID_decode_xer; +xer_type_encoder_f ApproachID_encode_xer; +oer_type_decoder_f ApproachID_decode_oer; +oer_type_encoder_f ApproachID_encode_oer; +per_type_decoder_f ApproachID_decode_uper; +per_type_encoder_f ApproachID_encode_uper; +per_type_decoder_f ApproachID_decode_aper; +per_type_encoder_f ApproachID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ApproachID_H_ */ +#include diff --git a/vcits/ivim/AttributeIdList.h b/vcits/ivim/AttributeIdList.h new file mode 100644 index 0000000..912f7bd --- /dev/null +++ b/vcits/ivim/AttributeIdList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcGeneric" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcGenericv7-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AttributeIdList_H_ +#define _AttributeIdList_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AttributeIdList */ +typedef struct AttributeIdList { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AttributeIdList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AttributeIdList; +extern asn_SET_OF_specifics_t asn_SPC_AttributeIdList_specs_1; +extern asn_TYPE_member_t asn_MBR_AttributeIdList_1[1]; +extern asn_per_constraints_t asn_PER_type_AttributeIdList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AttributeIdList_H_ */ +#include diff --git a/vcits/ivim/AttributeList.h b/vcits/ivim/AttributeList.h new file mode 100644 index 0000000..6f23729 --- /dev/null +++ b/vcits/ivim/AttributeList.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcGeneric" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcGenericv7-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AttributeList_H_ +#define _AttributeList_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _AttributeList_H_ */ +#include diff --git a/vcits/ivim/Attributes.h b/vcits/ivim/Attributes.h new file mode 100644 index 0000000..f15438e --- /dev/null +++ b/vcits/ivim/Attributes.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcGeneric" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcGenericv7-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Attributes_H_ +#define _Attributes_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _Attributes_H_ */ +#include diff --git a/vcits/ivim/AutomatedVehicleContainer.h b/vcits/ivim/AutomatedVehicleContainer.h new file mode 100644 index 0000000..a7ea5af --- /dev/null +++ b/vcits/ivim/AutomatedVehicleContainer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AutomatedVehicleContainer_H_ +#define _AutomatedVehicleContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AvcPart; + +/* AutomatedVehicleContainer */ +typedef struct AutomatedVehicleContainer { + A_SEQUENCE_OF(struct AvcPart) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AutomatedVehicleContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AutomatedVehicleContainer; +extern asn_SET_OF_specifics_t asn_SPC_AutomatedVehicleContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_AutomatedVehicleContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_AutomatedVehicleContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AutomatedVehicleContainer_H_ */ +#include diff --git a/vcits/ivim/AutomatedVehicleRule.h b/vcits/ivim/AutomatedVehicleRule.h new file mode 100644 index 0000000..1846516 --- /dev/null +++ b/vcits/ivim/AutomatedVehicleRule.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AutomatedVehicleRule_H_ +#define _AutomatedVehicleRule_H_ + + +#include + +/* Including external dependencies */ +#include "PriorityLevel.h" +#include "SaeAutomationLevels.h" +#include "GapBetweenVehicles.h" +#include "SpeedValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RoadSignCodes; +struct ConstraintTextLines2; + +/* AutomatedVehicleRule */ +typedef struct AutomatedVehicleRule { + PriorityLevel_t priority; + SaeAutomationLevels_t allowedSaeAutomationLevels; + GapBetweenVehicles_t *minGapBetweenVehicles; /* OPTIONAL */ + GapBetweenVehicles_t *recGapBetweenVehicles; /* OPTIONAL */ + SpeedValue_t *automatedVehicleMaxSpeedLimit; /* OPTIONAL */ + SpeedValue_t *automatedVehicleMinSpeedLimit; /* OPTIONAL */ + SpeedValue_t *automatedVehicleSpeedRecommendation; /* OPTIONAL */ + struct RoadSignCodes *roadSignCodes; /* OPTIONAL */ + struct ConstraintTextLines2 *extraText; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AutomatedVehicleRule_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AutomatedVehicleRule; +extern asn_SEQUENCE_specifics_t asn_SPC_AutomatedVehicleRule_specs_1; +extern asn_TYPE_member_t asn_MBR_AutomatedVehicleRule_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AutomatedVehicleRule_H_ */ +#include diff --git a/vcits/ivim/AutomatedVehicleRules.h b/vcits/ivim/AutomatedVehicleRules.h new file mode 100644 index 0000000..de34245 --- /dev/null +++ b/vcits/ivim/AutomatedVehicleRules.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AutomatedVehicleRules_H_ +#define _AutomatedVehicleRules_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AutomatedVehicleRule; + +/* AutomatedVehicleRules */ +typedef struct AutomatedVehicleRules { + A_SEQUENCE_OF(struct AutomatedVehicleRule) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AutomatedVehicleRules_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AutomatedVehicleRules; +extern asn_SET_OF_specifics_t asn_SPC_AutomatedVehicleRules_specs_1; +extern asn_TYPE_member_t asn_MBR_AutomatedVehicleRules_1[1]; +extern asn_per_constraints_t asn_PER_type_AutomatedVehicleRules_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AutomatedVehicleRules_H_ */ +#include diff --git a/vcits/ivim/AvcPart.h b/vcits/ivim/AvcPart.h new file mode 100644 index 0000000..576ab42 --- /dev/null +++ b/vcits/ivim/AvcPart.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AvcPart_H_ +#define _AvcPart_H_ + + +#include + +/* Including external dependencies */ +#include "ZoneIds.h" +#include "Direction.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ZoneIds; +struct LanePositions; +struct VehicleCharacteristicsList; +struct AutomatedVehicleRules; +struct PlatooningRules; + +/* AvcPart */ +typedef struct AvcPart { + struct ZoneIds *detectionZoneIds; /* OPTIONAL */ + ZoneIds_t relevanceZoneIds; + Direction_t *direction; /* OPTIONAL */ + struct LanePositions *applicableLanes; /* OPTIONAL */ + struct VehicleCharacteristicsList *vehicleCharacteristics; /* OPTIONAL */ + struct AutomatedVehicleRules *automatedVehicleRules; /* OPTIONAL */ + struct PlatooningRules *platooningRules; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AvcPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AvcPart; +extern asn_SEQUENCE_specifics_t asn_SPC_AvcPart_specs_1; +extern asn_TYPE_member_t asn_MBR_AvcPart_1[7]; +extern asn_per_constraints_t asn_PER_type_AvcPart_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AvcPart_H_ */ +#include diff --git a/vcits/ivim/AviEriDateTime.h b/vcits/ivim/AviEriDateTime.h new file mode 100644 index 0000000..547cdca --- /dev/null +++ b/vcits/ivim/AviEriDateTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AviEriDateTime_H_ +#define _AviEriDateTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AviEriDateTime */ +typedef OCTET_STRING_t AviEriDateTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AviEriDateTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AviEriDateTime; +asn_struct_free_f AviEriDateTime_free; +asn_struct_print_f AviEriDateTime_print; +asn_constr_check_f AviEriDateTime_constraint; +ber_type_decoder_f AviEriDateTime_decode_ber; +der_type_encoder_f AviEriDateTime_encode_der; +xer_type_decoder_f AviEriDateTime_decode_xer; +xer_type_encoder_f AviEriDateTime_encode_xer; +oer_type_decoder_f AviEriDateTime_decode_oer; +oer_type_encoder_f AviEriDateTime_encode_oer; +per_type_decoder_f AviEriDateTime_decode_uper; +per_type_encoder_f AviEriDateTime_encode_uper; +per_type_decoder_f AviEriDateTime_decode_aper; +per_type_encoder_f AviEriDateTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AviEriDateTime_H_ */ +#include diff --git a/vcits/ivim/AxleWeightLimits.h b/vcits/ivim/AxleWeightLimits.h new file mode 100644 index 0000000..8a7989e --- /dev/null +++ b/vcits/ivim/AxleWeightLimits.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _AxleWeightLimits_H_ +#define _AxleWeightLimits_H_ + + +#include + +/* Including external dependencies */ +#include "Int2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AxleWeightLimits */ +typedef struct AxleWeightLimits { + Int2_t maxLadenweightOnAxle1; + Int2_t maxLadenweightOnAxle2; + Int2_t maxLadenweightOnAxle3; + Int2_t maxLadenweightOnAxle4; + Int2_t maxLadenweightOnAxle5; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AxleWeightLimits_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AxleWeightLimits; +extern asn_SEQUENCE_specifics_t asn_SPC_AxleWeightLimits_specs_1; +extern asn_TYPE_member_t asn_MBR_AxleWeightLimits_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AxleWeightLimits_H_ */ +#include diff --git a/vcits/ivim/BankingAngle.h b/vcits/ivim/BankingAngle.h new file mode 100644 index 0000000..3feb5b0 --- /dev/null +++ b/vcits/ivim/BankingAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _BankingAngle_H_ +#define _BankingAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BankingAngle */ +typedef long BankingAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BankingAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BankingAngle; +asn_struct_free_f BankingAngle_free; +asn_struct_print_f BankingAngle_print; +asn_constr_check_f BankingAngle_constraint; +ber_type_decoder_f BankingAngle_decode_ber; +der_type_encoder_f BankingAngle_encode_der; +xer_type_decoder_f BankingAngle_decode_xer; +xer_type_encoder_f BankingAngle_encode_xer; +oer_type_decoder_f BankingAngle_decode_oer; +oer_type_encoder_f BankingAngle_encode_oer; +per_type_decoder_f BankingAngle_decode_uper; +per_type_encoder_f BankingAngle_encode_uper; +per_type_decoder_f BankingAngle_decode_aper; +per_type_encoder_f BankingAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BankingAngle_H_ */ +#include diff --git a/vcits/ivim/BasicVehicleRole.h b/vcits/ivim/BasicVehicleRole.h new file mode 100644 index 0000000..b0a1079 --- /dev/null +++ b/vcits/ivim/BasicVehicleRole.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _BasicVehicleRole_H_ +#define _BasicVehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BasicVehicleRole { + BasicVehicleRole_basicVehicle = 0, + BasicVehicleRole_publicTransport = 1, + BasicVehicleRole_specialTransport = 2, + BasicVehicleRole_dangerousGoods = 3, + BasicVehicleRole_roadWork = 4, + BasicVehicleRole_roadRescue = 5, + BasicVehicleRole_emergency = 6, + BasicVehicleRole_safetyCar = 7, + BasicVehicleRole_none_unknown = 8, + BasicVehicleRole_truck = 9, + BasicVehicleRole_motorcycle = 10, + BasicVehicleRole_roadSideSource = 11, + BasicVehicleRole_police = 12, + BasicVehicleRole_fire = 13, + BasicVehicleRole_ambulance = 14, + BasicVehicleRole_dot = 15, + BasicVehicleRole_transit = 16, + BasicVehicleRole_slowMoving = 17, + BasicVehicleRole_stopNgo = 18, + BasicVehicleRole_cyclist = 19, + BasicVehicleRole_pedestrian = 20, + BasicVehicleRole_nonMotorized = 21, + BasicVehicleRole_military = 22 + /* + * Enumeration is extensible + */ +} e_BasicVehicleRole; + +/* BasicVehicleRole */ +typedef long BasicVehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1; +asn_struct_free_f BasicVehicleRole_free; +asn_struct_print_f BasicVehicleRole_print; +asn_constr_check_f BasicVehicleRole_constraint; +ber_type_decoder_f BasicVehicleRole_decode_ber; +der_type_encoder_f BasicVehicleRole_encode_der; +xer_type_decoder_f BasicVehicleRole_decode_xer; +xer_type_encoder_f BasicVehicleRole_encode_xer; +oer_type_decoder_f BasicVehicleRole_decode_oer; +oer_type_encoder_f BasicVehicleRole_encode_oer; +per_type_decoder_f BasicVehicleRole_decode_uper; +per_type_encoder_f BasicVehicleRole_encode_uper; +per_type_decoder_f BasicVehicleRole_decode_aper; +per_type_encoder_f BasicVehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicVehicleRole_H_ */ +#include diff --git a/vcits/ivim/BatteryStatus.h b/vcits/ivim/BatteryStatus.h new file mode 100644 index 0000000..edc870e --- /dev/null +++ b/vcits/ivim/BatteryStatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _BatteryStatus_H_ +#define _BatteryStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BatteryStatus { + BatteryStatus_unknown = 0, + BatteryStatus_critical = 1, + BatteryStatus_low = 2, + BatteryStatus_good = 3 + /* + * Enumeration is extensible + */ +} e_BatteryStatus; + +/* BatteryStatus */ +typedef long BatteryStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BatteryStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BatteryStatus; +extern const asn_INTEGER_specifics_t asn_SPC_BatteryStatus_specs_1; +asn_struct_free_f BatteryStatus_free; +asn_struct_print_f BatteryStatus_print; +asn_constr_check_f BatteryStatus_constraint; +ber_type_decoder_f BatteryStatus_decode_ber; +der_type_encoder_f BatteryStatus_encode_der; +xer_type_decoder_f BatteryStatus_decode_xer; +xer_type_encoder_f BatteryStatus_encode_xer; +oer_type_decoder_f BatteryStatus_decode_oer; +oer_type_encoder_f BatteryStatus_encode_oer; +per_type_decoder_f BatteryStatus_decode_uper; +per_type_encoder_f BatteryStatus_encode_uper; +per_type_decoder_f BatteryStatus_decode_aper; +per_type_encoder_f BatteryStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BatteryStatus_H_ */ +#include diff --git a/vcits/ivim/CMakeLists.txt b/vcits/ivim/CMakeLists.txt new file mode 100644 index 0000000..c2e1b15 --- /dev/null +++ b/vcits/ivim/CMakeLists.txt @@ -0,0 +1,616 @@ +# This file is auto-generated by command-cxx.sh +cmake_minimum_required(VERSION 3.9) + +message(STATUS "--> Configure build of |-vcits-ivim") + +project(vcits-ivim VERSION 0.2 DESCRIPTION "ivim part of vcits") + +add_library(vcits-ivim STATIC +src/AbsolutePosition.c +src/AbsolutePositionWAltitude.c +src/AbsolutePositions.c +src/AbsolutePositionsWAltitude.c +src/AccelerationConfidence.c +src/AccelerationControl.c +src/AccidentSubCauseCode.c +src/ActionID.c +src/ActualNumberOfPassengers.c +src/AddRq.c +src/AdverseWeatherCondition-AdhesionSubCauseCode.c +src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c +src/AdverseWeatherCondition-PrecipitationSubCauseCode.c +src/AdverseWeatherCondition-VisibilitySubCauseCode.c +src/AdvisorySpeed.c +src/AdvisorySpeedList.c +src/AdvisorySpeedType.c +src/AllowedManeuvers.c +src/AlphabetIndicator.c +src/Altitude.c +src/AltitudeConfidence.c +src/AltitudeValue.c +src/Angle.c +src/AntennaOffsetSet.c +src/AnyCatalogue.c +src/ApproachID.c +src/AttributeIdList.c +src/AttributeList.c +src/Attributes.c +src/AutomatedVehicleContainer.c +src/AutomatedVehicleRule.c +src/AutomatedVehicleRules.c +src/AvcPart.c +src/AviEriDateTime.c +src/AxleWeightLimits.c +src/BankingAngle.c +src/BasicVehicleRole.c +src/BatteryStatus.c +src/CO2EmissionValue.c +src/CS1.c +src/CS2.c +src/CS3.c +src/CS4.c +src/CS5.c +src/CS7.c +src/CS8.c +src/CauseCode.c +src/CauseCodeType.c +src/CenDsrcTollingZone.c +src/CenDsrcTollingZoneID.c +src/ChannelId.c +src/ChannelRq.c +src/ChannelRs.c +src/ClosedLanes.c +src/Code-Units.c +src/CollisionRiskSubCauseCode.c +src/ComparisonOperator.c +src/CompleteVehicleCharacteristics.c +src/ComputedLane.c +src/ComputedSegment.c +src/Condition.c +src/ConnectedDenms.c +src/ConnectingLane.c +src/Connection.c +src/ConnectionManeuverAssist-addGrpC.c +src/ConnectionManeuverAssist.c +src/ConnectionTrajectory-addGrpC.c +src/ConnectsToList.c +src/ConstraintTextLines1.c +src/ConstraintTextLines2.c +src/ContractAuthenticator.c +src/ContractSerialNumber.c +src/ContractValidity.c +src/ContractVehicle.c +src/CopValue.c +src/CopyRq.c +src/CountryCode.c +src/CreditRq.c +src/CreditRs.c +src/Curvature.c +src/CurvatureCalculationMode.c +src/CurvatureConfidence.c +src/CurvatureValue.c +src/DDD-IO-LIST.c +src/DDD-IO.c +src/DDateTime.c +src/DDay.c +src/DHour.c +src/DMinute.c +src/DMonth.c +src/DOffset.c +src/DSRCmsgID.c +src/DSecond.c +src/DYear.c +src/DangerousEndOfQueueSubCauseCode.c +src/DangerousGoodsBasic.c +src/DangerousGoodsExtended.c +src/DangerousSituationSubCauseCode.c +src/DataParameters.c +src/DateAndTime.c +src/DateCompact.c +src/DayOfWeek.c +src/DebitRq.c +src/DebitRs.c +src/DefinitionAccuracy.c +src/DeltaAltitude.c +src/DeltaAngle.c +src/DeltaLatitude.c +src/DeltaLongitude.c +src/DeltaPosition.c +src/DeltaPositions.c +src/DeltaReferencePosition.c +src/DeltaReferencePositions.c +src/DeltaTime.c +src/Depth.c +src/DescriptiveCharacteristics.c +src/DescriptiveName.c +src/DestinationPlace.c +src/DestinationPlaces.c +src/DestinationRoad.c +src/DestinationRoadType.c +src/DestinationRoads.c +src/DestinationType.c +src/DieselEmissionValues.c +src/DigitalMap.c +src/Direction.c +src/Distance.c +src/DistanceOrDuration.c +src/DriveDirection.c +src/DrivenLineOffsetLg.c +src/DrivenLineOffsetSm.c +src/DrivingLaneStatus.c +src/EFC-ContextMark.c +src/EfcDsrcApplication_DriverCharacteristics.c +src/EfcDsrcApplication_StationType.c +src/EfcDsrcApplication_TrailerCharacteristics.c +src/Elevation.c +src/ElevationConfidence.c +src/EmbarkationStatus.c +src/EmergencyPriority.c +src/EmergencyVehicleApproachingSubCauseCode.c +src/EmissionType.c +src/EnabledLaneList.c +src/EnergyStorageType.c +src/Engine.c +src/EngineCharacteristics.c +src/EnvironmentalCharacteristics.c +src/EquipmentOBUId.c +src/EquipmentStatus.c +src/EuVehicleCategoryCode.c +src/EuVehicleCategoryL.c +src/EuVehicleCategoryM.c +src/EuVehicleCategoryN.c +src/EuVehicleCategoryO.c +src/EuroValue.c +src/EventHistory.c +src/EventPoint.c +src/ExceptionalCondition.c +src/ExhaustEmissionValues.c +src/Ext1.c +src/Ext2.c +src/Ext3.c +src/ExteriorLights.c +src/FreightContainerData.c +src/FrictionCoefficient.c +src/FuelType.c +src/FullPositionVector.c +src/FutureCharacteristics.c +src/GNSSstatus.c +src/GapBetweenVehicles.c +src/GddAttribute.c +src/GddAttributes.c +src/GddStructure.c +src/GeneralIviContainer.c +src/GenericLane.c +src/GeoGraphicalLimit.c +src/GeographicLocationContainer.c +src/GetInstanceRq.c +src/GetInstanceRs.c +src/GetStampedRq.c +src/GetStampedRs.c +src/GicPart.c +src/GlcPart.c +src/GlcParts.c +src/GoodsType.c +src/HardShoulderStatus.c +src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c +src/HazardousLocation-DangerousCurveSubCauseCode.c +src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c +src/HazardousLocation-SurfaceConditionSubCauseCode.c +src/Heading.c +src/HeadingConfidence.c +src/HeadingConfidenceDSRC.c +src/HeadingDSRC.c +src/HeadingValue.c +src/HeightLonCarr.c +src/HoursMinutes.c +src/HumanPresenceOnTheRoadSubCauseCode.c +src/HumanProblemSubCauseCode.c +src/ICC-Id.c +src/ISO14823Attribute.c +src/ISO14823Attributes.c +src/ISO14823Code.c +src/ITS-Container_StationType.c +src/ITS-Container_Temperature.c +src/IVIM.c +src/IVI_DriverCharacteristics.c +src/IVI_Temperature.c +src/IVI_TrailerCharacteristics.c +src/InformationQuality.c +src/Int1.c +src/Int2.c +src/Int3.c +src/Int4.c +src/InternationalSign-applicablePeriod.c +src/InternationalSign-applicableVehicleDimensions.c +src/InternationalSign-destinationInformation.c +src/InternationalSign-directionalFlowOfLane.c +src/InternationalSign-distanceBetweenVehicles.c +src/InternationalSign-exemptedApplicablePeriod.c +src/InternationalSign-numberOfLane.c +src/InternationalSign-rateOfIncline.c +src/InternationalSign-section.c +src/InternationalSign-speedLimits.c +src/IntersectionAccessPoint.c +src/IntersectionGeometry.c +src/IntersectionGeometryList.c +src/IntersectionID.c +src/IntersectionReferenceID.c +src/IntersectionState-addGrpC.c +src/IntersectionState.c +src/IntersectionStateList.c +src/IntersectionStatusObject.c +src/Iso3833VehicleType.c +src/IssuerIdentifier.c +src/ItineraryPath.c +src/ItsPduHeader.c +src/ItsStationPosition.c +src/ItsStationPositionList.c +src/IviContainer.c +src/IviContainers.c +src/IviIdentificationNumber.c +src/IviIdentificationNumbers.c +src/IviLaneWidth.c +src/IviManagementContainer.c +src/IviPurpose.c +src/IviStatus.c +src/IviStructure.c +src/IviType.c +src/LPN.c +src/LaneAttributes-Barrier.c +src/LaneAttributes-Bike.c +src/LaneAttributes-Crosswalk.c +src/LaneAttributes-Parking.c +src/LaneAttributes-Sidewalk.c +src/LaneAttributes-Striping.c +src/LaneAttributes-TrackedVehicle.c +src/LaneAttributes-Vehicle.c +src/LaneAttributes-addGrpC.c +src/LaneAttributes.c +src/LaneCharacteristics.c +src/LaneConfiguration.c +src/LaneConnectionID.c +src/LaneDataAttribute.c +src/LaneDataAttributeList.c +src/LaneDelimitation.c +src/LaneDirection.c +src/LaneID.c +src/LaneIds.c +src/LaneInformation.c +src/LaneList.c +src/LaneMarkingStatus.c +src/LanePosition.c +src/LanePositions.c +src/LaneSharing.c +src/LaneStatus.c +src/LaneType.c +src/LaneTypeAttributes.c +src/LaneWidth.c +src/LateralAcceleration.c +src/LateralAccelerationValue.c +src/Latitude.c +src/LayerID.c +src/LayerType.c +src/LayoutComponent.c +src/LayoutComponents.c +src/LayoutContainer.c +src/LicPlateNumber.c +src/LightBarSirenInUse.c +src/LoadType.c +src/Longitude.c +src/LongitudinalAcceleration.c +src/LongitudinalAccelerationValue.c +src/ManeuverAssistList.c +src/ManufacturerIdentifier.c +src/MapData-addGrpC.c +src/MapData.c +src/MapLocationContainer.c +src/MapReference.c +src/MarkingColour.c +src/MaterialType.c +src/MaxLenghtOfPlatoon.c +src/MaxNoOfVehicles.c +src/MergeDivergeNodeAngle.c +src/MinuteOfTheYear.c +src/MlcPart.c +src/MlcParts.c +src/MonthDay.c +src/MovementEvent-addGrpC.c +src/MovementEvent.c +src/MovementEventList.c +src/MovementList.c +src/MovementPhaseState.c +src/MovementState.c +src/MsgCount.c +src/Node-LLmD-64b.c +src/Node-XY-20b.c +src/Node-XY-22b.c +src/Node-XY-24b.c +src/Node-XY-26b.c +src/Node-XY-28b.c +src/Node-XY-32b.c +src/Node.c +src/NodeAttributeSet-addGrpC.c +src/NodeAttributeSetXY.c +src/NodeAttributeXY.c +src/NodeAttributeXYList.c +src/NodeLink.c +src/NodeListXY.c +src/NodeOffsetPointXY.c +src/NodeSetXY.c +src/NodeXY.c +src/NumberOfOccupants.c +src/Offset-B09.c +src/Offset-B10.c +src/Offset-B11.c +src/Offset-B12.c +src/Offset-B13.c +src/Offset-B14.c +src/Offset-B16.c +src/OpeningDaysHours.c +src/OverlayLaneList.c +src/PassengerCapacity.c +src/PathDeltaTime.c +src/PathHistory.c +src/PathPoint.c +src/PayUnit.c +src/PaymentFee.c +src/PaymentMeans.c +src/PaymentMeansBalance.c +src/PaymentMeansUnit.c +src/PaymentSecurityData.c +src/PedestrianBicycleDetect.c +src/PerformanceClass.c +src/PersonalAccountNumber.c +src/PhoneNumber.c +src/PlatooningRule.c +src/PlatooningRules.c +src/PolygonalLine.c +src/PosCentMass.c +src/PosConfidenceEllipse.c +src/PosFrontAx.c +src/PosLonCarr.c +src/PosPillar.c +src/Position3D-addGrpC.c +src/Position3D.c +src/PositionConfidence.c +src/PositionConfidenceSet.c +src/PositionOfOccupants.c +src/PositionOfPillars.c +src/PositionalAccuracy.c +src/PositioningSolutionType.c +src/PostCrashSubCauseCode.c +src/PreemptPriorityList.c +src/PrioritizationResponse.c +src/PrioritizationResponseList.c +src/PrioritizationResponseStatus.c +src/PriorityLevel.c +src/PriorityRequestType.c +src/ProtectedCommunicationZone.c +src/ProtectedCommunicationZonesRSU.c +src/ProtectedZoneID.c +src/ProtectedZoneRadius.c +src/ProtectedZoneType.c +src/Provider.c +src/PtActivation.c +src/PtActivationData.c +src/PtActivationType.c +src/PtvRequestType.c +src/PurseBalance.c +src/RSCUnit.c +src/RSCode.c +src/RTCM-Revision.c +src/RTCMcorrections.c +src/RTCMheader.c +src/RTCMmessage.c +src/RTCMmessageList.c +src/RccPart.c +src/ReceiptAuthenticator.c +src/ReceiptContract.c +src/ReceiptData.c +src/ReceiptData1.c +src/ReceiptData2.c +src/ReceiptDistance.c +src/ReceiptFinancialPart.c +src/ReceiptICC-Id.c +src/ReceiptOBUId.c +src/ReceiptServicePart.c +src/ReceiptServiceSerialNumber.c +src/ReceiptText.c +src/ReferencePosition.c +src/RegionId.c +src/RegionalExtension.c +src/RegulatorySpeedLimit.c +src/RejectedReason.c +src/RelevanceDistance.c +src/RelevanceTrafficDirection.c +src/RepeatingPeriodDayTypes.c +src/RequestID.c +src/RequestImportanceLevel.c +src/RequestResponseIndication.c +src/RequestSubRole.c +src/RequestorDescription-addGrpC.c +src/RequestorDescription.c +src/RequestorPositionVector.c +src/RequestorType.c +src/RescueAndRecoveryWorkInProgressSubCauseCode.c +src/RestrictedTypes.c +src/RestrictionAppliesTo.c +src/RestrictionClassAssignment.c +src/RestrictionClassID.c +src/RestrictionClassList.c +src/RestrictionUserType-addGrpC.c +src/RestrictionUserType.c +src/RestrictionUserTypeList.c +src/ResultFin.c +src/ResultOp.c +src/RoadConfigurationContainer.c +src/RoadLaneSetList.c +src/RoadRegulatorID.c +src/RoadSegment.c +src/RoadSegmentID.c +src/RoadSegmentList.c +src/RoadSegmentReferenceID.c +src/RoadSignCodes.c +src/RoadSurfaceContainer.c +src/RoadSurfaceDynamicCharacteristics.c +src/RoadSurfaceStaticCharacteristics.c +src/RoadType.c +src/RoadwayCrownAngle.c +src/RoadworksSubCauseCode.c +src/RscPart.c +src/SPAT.c +src/SaeAutomationLevel.c +src/SaeAutomationLevels.c +src/Scale-B12.c +src/Segment.c +src/SegmentAttributeXY.c +src/SegmentAttributeXYList.c +src/SemiAxisLength.c +src/SemiMajorAxisAccuracy.c +src/SemiMajorAxisOrientation.c +src/SemiMinorAxisAccuracy.c +src/SequenceNumber.c +src/ServiceApplicationLimit.c +src/ServiceNumber.c +src/SessionClass.c +src/SessionLocation.c +src/SetInstanceRq.c +src/SetMMIRq.c +src/SetStampedRq.c +src/SignalControlZone.c +src/SignalGroupID.c +src/SignalHeadLocation.c +src/SignalHeadLocationList.c +src/SignalRequest.c +src/SignalRequestList.c +src/SignalRequestMessage.c +src/SignalRequestPackage.c +src/SignalRequesterInfo.c +src/SignalStatus.c +src/SignalStatusList.c +src/SignalStatusMessage.c +src/SignalStatusPackage-addGrpC.c +src/SignalStatusPackage.c +src/SignalStatusPackageList.c +src/SignalViolationSubCauseCode.c +src/SignedValue.c +src/SlowVehicleSubCauseCode.c +src/SoundLevel.c +src/SpecialTransportType.c +src/Speed.c +src/SpeedAdvice.c +src/SpeedConfidence.c +src/SpeedConfidenceDSRC.c +src/SpeedLimit.c +src/SpeedLimitList.c +src/SpeedLimitType.c +src/SpeedValue.c +src/SpeedandHeadingandThrottleConfidence.c +src/StartTime.c +src/StationID.c +src/StationarySince.c +src/StationaryVehicleSubCauseCode.c +src/SteeringWheelAngle.c +src/SteeringWheelAngleConfidence.c +src/SteeringWheelAngleValue.c +src/StopTime.c +src/SubCauseCodeType.c +src/SubRq.c +src/TaxCode.c +src/TcPart.c +src/TemporaryID.c +src/Text.c +src/TextContainer.c +src/TextLines.c +src/ThrottleConfidence.c +src/TimeChangeDetails.c +src/TimeConfidence.c +src/TimeIntervalConfidence.c +src/TimeMark.c +src/TimeReference.c +src/TimestampIts.c +src/Traces.c +src/TractorAxles.c +src/TractorCharacteristics.c +src/TrafficConditionSubCauseCode.c +src/TrafficRule.c +src/TrailerAxles.c +src/TrailerCharacteristicsFixValuesList.c +src/TrailerCharacteristicsList.c +src/TrailerCharacteristicsRangesList.c +src/TrailerDetails.c +src/TrailerLicencePlateNumber.c +src/TrainCharacteristics.c +src/TransitVehicleOccupancy.c +src/TransitVehicleStatus.c +src/TransmissionAndSpeed.c +src/TransmissionInterval.c +src/TransmissionState.c +src/TreatmentType.c +src/TurningRadius.c +src/UnitType.c +src/VDS.c +src/ValidityDuration.c +src/ValidityOfContract.c +src/ValidityPeriods.c +src/VarLengthNumber.c +src/VarLengthNumber2.c +src/VcClass.c +src/VcCode.c +src/VcOption.c +src/VehicleAuthenticator.c +src/VehicleAxles.c +src/VehicleBreakdownSubCauseCode.c +src/VehicleCharacteristicsFixValues.c +src/VehicleCharacteristicsFixValuesList.c +src/VehicleCharacteristicsList.c +src/VehicleCharacteristicsRanges.c +src/VehicleCharacteristicsRangesList.c +src/VehicleClass.c +src/VehicleCurrentMaxTrainWeight.c +src/VehicleDimensions.c +src/VehicleHeight.c +src/VehicleID.c +src/VehicleIdentification.c +src/VehicleIdentificationNumber.c +src/VehicleLength.c +src/VehicleLengthConfidenceIndication.c +src/VehicleLengthValue.c +src/VehicleLicencePlateNumber.c +src/VehicleMass.c +src/VehicleRole.c +src/VehicleSpecificCharacteristics.c +src/VehicleTotalDistance.c +src/VehicleType.c +src/VehicleWeightLaden.c +src/VehicleWeightLimits.c +src/VehicleWidth.c +src/Velocity.c +src/VerticalAcceleration.c +src/VerticalAccelerationValue.c +src/WMInumber.c +src/WaitOnStopline.c +src/WearLevel.c +src/Weight.c +src/WheelBaseVehicle.c +src/WrongWayDrivingSubCauseCode.c +src/YawRate.c +src/YawRateConfidence.c +src/YawRateValue.c +src/Zid.c +src/Zone.c +src/ZoneIds.c +src/ZoneLength.c +) + +set_target_properties(vcits-ivim PROPERTIES VERSION ${PROJECT_VERSION}) + +target_include_directories(vcits-ivim PRIVATE .) +target_include_directories(vcits-ivim PRIVATE ../asn1c) + +target_link_libraries(vcits-ivim PUBLIC +vcits-asn1c +) + +message(STATUS "--> Configure build of |-vcits-ivim - done") + diff --git a/vcits/ivim/CO2EmissionValue.h b/vcits/ivim/CO2EmissionValue.h new file mode 100644 index 0000000..2cea868 --- /dev/null +++ b/vcits/ivim/CO2EmissionValue.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CO2EmissionValue_H_ +#define _CO2EmissionValue_H_ + + +#include + +/* Including external dependencies */ +#include "Int2.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CO2EmissionValue */ +typedef Int2_t CO2EmissionValue_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CO2EmissionValue; +asn_struct_free_f CO2EmissionValue_free; +asn_struct_print_f CO2EmissionValue_print; +asn_constr_check_f CO2EmissionValue_constraint; +ber_type_decoder_f CO2EmissionValue_decode_ber; +der_type_encoder_f CO2EmissionValue_encode_der; +xer_type_decoder_f CO2EmissionValue_decode_xer; +xer_type_encoder_f CO2EmissionValue_encode_xer; +oer_type_decoder_f CO2EmissionValue_decode_oer; +oer_type_encoder_f CO2EmissionValue_encode_oer; +per_type_decoder_f CO2EmissionValue_decode_uper; +per_type_encoder_f CO2EmissionValue_encode_uper; +per_type_decoder_f CO2EmissionValue_decode_aper; +per_type_encoder_f CO2EmissionValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CO2EmissionValue_H_ */ +#include diff --git a/vcits/ivim/CS1.h b/vcits/ivim/CS1.h new file mode 100644 index 0000000..46a1e09 --- /dev/null +++ b/vcits/ivim/CS1.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CS1_H_ +#define _CS1_H_ + + +#include + +/* Including external dependencies */ +#include "CountryCode.h" +#include "IssuerIdentifier.h" +#include "ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS1 */ +typedef struct CS1 { + CountryCode_t countryCode; + IssuerIdentifier_t issuerIdentifier; + ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS1_H_ */ +#include diff --git a/vcits/ivim/CS2.h b/vcits/ivim/CS2.h new file mode 100644 index 0000000..ff31dfe --- /dev/null +++ b/vcits/ivim/CS2.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CS2_H_ +#define _CS2_H_ + + +#include + +/* Including external dependencies */ +#include "ManufacturerIdentifier.h" +#include "ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS2 */ +typedef struct CS2 { + ManufacturerIdentifier_t manufacturerIdentifier; + ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS2; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS2_H_ */ +#include diff --git a/vcits/ivim/CS3.h b/vcits/ivim/CS3.h new file mode 100644 index 0000000..9814338 --- /dev/null +++ b/vcits/ivim/CS3.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CS3_H_ +#define _CS3_H_ + + +#include + +/* Including external dependencies */ +#include "StartTime.h" +#include "StopTime.h" +#include "GeoGraphicalLimit.h" +#include "ServiceApplicationLimit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS3 */ +typedef struct CS3 { + StartTime_t startTime; + StopTime_t stopTime; + GeoGraphicalLimit_t geographLimit; + ServiceApplicationLimit_t serviceAppLimit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS3; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS3_H_ */ +#include diff --git a/vcits/ivim/CS4.h b/vcits/ivim/CS4.h new file mode 100644 index 0000000..639c854 --- /dev/null +++ b/vcits/ivim/CS4.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CS4_H_ +#define _CS4_H_ + + +#include + +/* Including external dependencies */ +#include "CountryCode.h" +#include "AlphabetIndicator.h" +#include "LicPlateNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS4 */ +typedef struct CS4 { + CountryCode_t countryCode; + AlphabetIndicator_t alphabetIndicator; + LicPlateNumber_t licPlateNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS4_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS4; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS4_H_ */ +#include diff --git a/vcits/ivim/CS5.h b/vcits/ivim/CS5.h new file mode 100644 index 0000000..0d2a0ba --- /dev/null +++ b/vcits/ivim/CS5.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CS5_H_ +#define _CS5_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS5 */ +typedef struct CS5 { + VisibleString_t vin; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS5_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS5; +extern asn_SEQUENCE_specifics_t asn_SPC_CS5_specs_1; +extern asn_TYPE_member_t asn_MBR_CS5_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS5_H_ */ +#include diff --git a/vcits/ivim/CS7.h b/vcits/ivim/CS7.h new file mode 100644 index 0000000..e94b017 --- /dev/null +++ b/vcits/ivim/CS7.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CS7_H_ +#define _CS7_H_ + + +#include + +/* Including external dependencies */ +#include "FreightContainerData.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS7 */ +typedef FreightContainerData_t CS7_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS7; +asn_struct_free_f CS7_free; +asn_struct_print_f CS7_print; +asn_constr_check_f CS7_constraint; +ber_type_decoder_f CS7_decode_ber; +der_type_encoder_f CS7_encode_der; +xer_type_decoder_f CS7_decode_xer; +xer_type_encoder_f CS7_encode_xer; +oer_type_decoder_f CS7_decode_oer; +oer_type_encoder_f CS7_encode_oer; +per_type_decoder_f CS7_decode_uper; +per_type_encoder_f CS7_encode_uper; +per_type_decoder_f CS7_decode_aper; +per_type_encoder_f CS7_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS7_H_ */ +#include diff --git a/vcits/ivim/CS8.h b/vcits/ivim/CS8.h new file mode 100644 index 0000000..0075426 --- /dev/null +++ b/vcits/ivim/CS8.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CS8_H_ +#define _CS8_H_ + + +#include + +/* Including external dependencies */ +#include +#include "CountryCode.h" +#include "TaxCode.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS8 */ +typedef struct CS8 { + BIT_STRING_t fill; + CountryCode_t countryCode; + TaxCode_t taxCode; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS8_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS8; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS8_H_ */ +#include diff --git a/vcits/ivim/CauseCode.h b/vcits/ivim/CauseCode.h new file mode 100644 index 0000000..f58b4a3 --- /dev/null +++ b/vcits/ivim/CauseCode.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CauseCode_H_ +#define _CauseCode_H_ + + +#include + +/* Including external dependencies */ +#include "CauseCodeType.h" +#include "SubCauseCodeType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CauseCode */ +typedef struct CauseCode { + CauseCodeType_t causeCode; + SubCauseCodeType_t subCauseCode; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CauseCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCode_H_ */ +#include diff --git a/vcits/ivim/CauseCodeType.h b/vcits/ivim/CauseCodeType.h new file mode 100644 index 0000000..559cf10 --- /dev/null +++ b/vcits/ivim/CauseCodeType.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CauseCodeType_H_ +#define _CauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseCodeType { + CauseCodeType_reserved = 0, + CauseCodeType_trafficCondition = 1, + CauseCodeType_accident = 2, + CauseCodeType_roadworks = 3, + CauseCodeType_impassability = 5, + CauseCodeType_adverseWeatherCondition_Adhesion = 6, + CauseCodeType_aquaplannning = 7, + CauseCodeType_hazardousLocation_SurfaceCondition = 9, + CauseCodeType_hazardousLocation_ObstacleOnTheRoad = 10, + CauseCodeType_hazardousLocation_AnimalOnTheRoad = 11, + CauseCodeType_humanPresenceOnTheRoad = 12, + CauseCodeType_wrongWayDriving = 14, + CauseCodeType_rescueAndRecoveryWorkInProgress = 15, + CauseCodeType_adverseWeatherCondition_ExtremeWeatherCondition = 17, + CauseCodeType_adverseWeatherCondition_Visibility = 18, + CauseCodeType_adverseWeatherCondition_Precipitation = 19, + CauseCodeType_slowVehicle = 26, + CauseCodeType_dangerousEndOfQueue = 27, + CauseCodeType_vehicleBreakdown = 91, + CauseCodeType_postCrash = 92, + CauseCodeType_humanProblem = 93, + CauseCodeType_stationaryVehicle = 94, + CauseCodeType_emergencyVehicleApproaching = 95, + CauseCodeType_hazardousLocation_DangerousCurve = 96, + CauseCodeType_collisionRisk = 97, + CauseCodeType_signalViolation = 98, + CauseCodeType_dangerousSituation = 99 +} e_CauseCodeType; + +/* CauseCodeType */ +typedef long CauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseCodeType; +asn_struct_free_f CauseCodeType_free; +asn_struct_print_f CauseCodeType_print; +asn_constr_check_f CauseCodeType_constraint; +ber_type_decoder_f CauseCodeType_decode_ber; +der_type_encoder_f CauseCodeType_encode_der; +xer_type_decoder_f CauseCodeType_decode_xer; +xer_type_encoder_f CauseCodeType_encode_xer; +oer_type_decoder_f CauseCodeType_decode_oer; +oer_type_encoder_f CauseCodeType_encode_oer; +per_type_decoder_f CauseCodeType_decode_uper; +per_type_encoder_f CauseCodeType_encode_uper; +per_type_decoder_f CauseCodeType_decode_aper; +per_type_encoder_f CauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCodeType_H_ */ +#include diff --git a/vcits/ivim/CenDsrcTollingZone.h b/vcits/ivim/CenDsrcTollingZone.h new file mode 100644 index 0000000..5f5d3fb --- /dev/null +++ b/vcits/ivim/CenDsrcTollingZone.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CenDsrcTollingZone_H_ +#define _CenDsrcTollingZone_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "CenDsrcTollingZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZone */ +typedef struct CenDsrcTollingZone { + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + CenDsrcTollingZoneID_t *cenDsrcTollingZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CenDsrcTollingZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZone_H_ */ +#include diff --git a/vcits/ivim/CenDsrcTollingZoneID.h b/vcits/ivim/CenDsrcTollingZoneID.h new file mode 100644 index 0000000..064179a --- /dev/null +++ b/vcits/ivim/CenDsrcTollingZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CenDsrcTollingZoneID_H_ +#define _CenDsrcTollingZoneID_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneID.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZoneID */ +typedef ProtectedZoneID_t CenDsrcTollingZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID; +asn_struct_free_f CenDsrcTollingZoneID_free; +asn_struct_print_f CenDsrcTollingZoneID_print; +asn_constr_check_f CenDsrcTollingZoneID_constraint; +ber_type_decoder_f CenDsrcTollingZoneID_decode_ber; +der_type_encoder_f CenDsrcTollingZoneID_encode_der; +xer_type_decoder_f CenDsrcTollingZoneID_decode_xer; +xer_type_encoder_f CenDsrcTollingZoneID_encode_xer; +oer_type_decoder_f CenDsrcTollingZoneID_decode_oer; +oer_type_encoder_f CenDsrcTollingZoneID_encode_oer; +per_type_decoder_f CenDsrcTollingZoneID_decode_uper; +per_type_encoder_f CenDsrcTollingZoneID_encode_uper; +per_type_decoder_f CenDsrcTollingZoneID_decode_aper; +per_type_encoder_f CenDsrcTollingZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZoneID_H_ */ +#include diff --git a/vcits/ivim/ChannelId.h b/vcits/ivim/ChannelId.h new file mode 100644 index 0000000..6de4fc8 --- /dev/null +++ b/vcits/ivim/ChannelId.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ChannelId_H_ +#define _ChannelId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ChannelId { + ChannelId_obu = 0, + ChannelId_sam1 = 1, + ChannelId_sam2 = 2, + ChannelId_icc = 3, + ChannelId_display = 4, + ChannelId_buzzer = 5, + ChannelId_printer = 6, + ChannelId_serialInterface = 7, + ChannelId_parallelInterface = 8, + ChannelId_gPS = 9, + ChannelId_tachograph = 10, + ChannelId_privateUse1 = 11, + ChannelId_privateUse2 = 12, + ChannelId_privateUse3 = 13, + ChannelId_privateUse4 = 14, + ChannelId_privateUse5 = 15, + ChannelId_bluetooth = 16 +} e_ChannelId; + +/* ChannelId */ +typedef long ChannelId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ChannelId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ChannelId; +asn_struct_free_f ChannelId_free; +asn_struct_print_f ChannelId_print; +asn_constr_check_f ChannelId_constraint; +ber_type_decoder_f ChannelId_decode_ber; +der_type_encoder_f ChannelId_encode_der; +xer_type_decoder_f ChannelId_decode_xer; +xer_type_encoder_f ChannelId_encode_xer; +oer_type_decoder_f ChannelId_decode_oer; +oer_type_encoder_f ChannelId_encode_oer; +per_type_decoder_f ChannelId_decode_uper; +per_type_encoder_f ChannelId_encode_uper; +per_type_decoder_f ChannelId_decode_aper; +per_type_encoder_f ChannelId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ChannelId_H_ */ +#include diff --git a/vcits/ivim/ChannelRq.h b/vcits/ivim/ChannelRq.h new file mode 100644 index 0000000..1a24bef --- /dev/null +++ b/vcits/ivim/ChannelRq.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ChannelRq_H_ +#define _ChannelRq_H_ + + +#include + +/* Including external dependencies */ +#include "ChannelId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ChannelRq */ +typedef struct ChannelRq { + ChannelId_t channelId; + OCTET_STRING_t apdu; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ChannelRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ChannelRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _ChannelRq_H_ */ +#include diff --git a/vcits/ivim/ChannelRs.h b/vcits/ivim/ChannelRs.h new file mode 100644 index 0000000..8d3ff9d --- /dev/null +++ b/vcits/ivim/ChannelRs.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ChannelRs_H_ +#define _ChannelRs_H_ + + +#include + +/* Including external dependencies */ +#include "ChannelId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ChannelRs */ +typedef struct ChannelRs { + ChannelId_t channelId; + OCTET_STRING_t apdu; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ChannelRs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ChannelRs; + +#ifdef __cplusplus +} +#endif + +#endif /* _ChannelRs_H_ */ +#include diff --git a/vcits/ivim/ClosedLanes.h b/vcits/ivim/ClosedLanes.h new file mode 100644 index 0000000..7ea76cd --- /dev/null +++ b/vcits/ivim/ClosedLanes.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ClosedLanes_H_ +#define _ClosedLanes_H_ + + +#include + +/* Including external dependencies */ +#include "HardShoulderStatus.h" +#include "DrivingLaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ClosedLanes */ +typedef struct ClosedLanes { + HardShoulderStatus_t *innerhardShoulderStatus; /* OPTIONAL */ + HardShoulderStatus_t *outerhardShoulderStatus; /* OPTIONAL */ + DrivingLaneStatus_t *drivingLaneStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ClosedLanes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ClosedLanes; + +#ifdef __cplusplus +} +#endif + +#endif /* _ClosedLanes_H_ */ +#include diff --git a/vcits/ivim/Code-Units.h b/vcits/ivim/Code-Units.h new file mode 100644 index 0000000..c850fc4 --- /dev/null +++ b/vcits/ivim/Code-Units.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Code_Units_H_ +#define _Code_Units_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Code_Units { + Code_Units_kmperh = 0, + Code_Units_milesperh = 1, + Code_Units_kilometre = 2, + Code_Units_metre = 3, + Code_Units_decimetre = 4, + Code_Units_centimetre = 5, + Code_Units_mile = 6, + Code_Units_yard = 7, + Code_Units_foot = 8, + Code_Units_minutesOfTime = 9, + Code_Units_tonnes = 10, + Code_Units_hundredkg = 11, + Code_Units_pound = 12, + Code_Units_rateOfIncline = 13, + Code_Units_durationinminutes = 14 +} e_Code_Units; + +/* Code-Units */ +typedef long Code_Units_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Code_Units_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Code_Units; +asn_struct_free_f Code_Units_free; +asn_struct_print_f Code_Units_print; +asn_constr_check_f Code_Units_constraint; +ber_type_decoder_f Code_Units_decode_ber; +der_type_encoder_f Code_Units_encode_der; +xer_type_decoder_f Code_Units_decode_xer; +xer_type_encoder_f Code_Units_encode_xer; +oer_type_decoder_f Code_Units_decode_oer; +oer_type_encoder_f Code_Units_encode_oer; +per_type_decoder_f Code_Units_decode_uper; +per_type_encoder_f Code_Units_encode_uper; +per_type_decoder_f Code_Units_decode_aper; +per_type_encoder_f Code_Units_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Code_Units_H_ */ +#include diff --git a/vcits/ivim/CollisionRiskSubCauseCode.h b/vcits/ivim/CollisionRiskSubCauseCode.h new file mode 100644 index 0000000..761e9cb --- /dev/null +++ b/vcits/ivim/CollisionRiskSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CollisionRiskSubCauseCode_H_ +#define _CollisionRiskSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CollisionRiskSubCauseCode { + CollisionRiskSubCauseCode_unavailable = 0, + CollisionRiskSubCauseCode_longitudinalCollisionRisk = 1, + CollisionRiskSubCauseCode_crossingCollisionRisk = 2, + CollisionRiskSubCauseCode_lateralCollisionRisk = 3, + CollisionRiskSubCauseCode_vulnerableRoadUser = 4 +} e_CollisionRiskSubCauseCode; + +/* CollisionRiskSubCauseCode */ +typedef long CollisionRiskSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode; +asn_struct_free_f CollisionRiskSubCauseCode_free; +asn_struct_print_f CollisionRiskSubCauseCode_print; +asn_constr_check_f CollisionRiskSubCauseCode_constraint; +ber_type_decoder_f CollisionRiskSubCauseCode_decode_ber; +der_type_encoder_f CollisionRiskSubCauseCode_encode_der; +xer_type_decoder_f CollisionRiskSubCauseCode_decode_xer; +xer_type_encoder_f CollisionRiskSubCauseCode_encode_xer; +oer_type_decoder_f CollisionRiskSubCauseCode_decode_oer; +oer_type_encoder_f CollisionRiskSubCauseCode_encode_oer; +per_type_decoder_f CollisionRiskSubCauseCode_decode_uper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_uper; +per_type_decoder_f CollisionRiskSubCauseCode_decode_aper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CollisionRiskSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/ComparisonOperator.h b/vcits/ivim/ComparisonOperator.h new file mode 100644 index 0000000..fa1ab86 --- /dev/null +++ b/vcits/ivim/ComparisonOperator.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ComparisonOperator_H_ +#define _ComparisonOperator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ComparisonOperator { + ComparisonOperator_greaterThan = 0, + ComparisonOperator_greaterThanOrEqualTo = 1, + ComparisonOperator_lessThan = 2, + ComparisonOperator_lessThanOrEqualTo = 3 +} e_ComparisonOperator; + +/* ComparisonOperator */ +typedef long ComparisonOperator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ComparisonOperator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ComparisonOperator; +asn_struct_free_f ComparisonOperator_free; +asn_struct_print_f ComparisonOperator_print; +asn_constr_check_f ComparisonOperator_constraint; +ber_type_decoder_f ComparisonOperator_decode_ber; +der_type_encoder_f ComparisonOperator_encode_der; +xer_type_decoder_f ComparisonOperator_decode_xer; +xer_type_encoder_f ComparisonOperator_encode_xer; +oer_type_decoder_f ComparisonOperator_decode_oer; +oer_type_encoder_f ComparisonOperator_encode_oer; +per_type_decoder_f ComparisonOperator_decode_uper; +per_type_encoder_f ComparisonOperator_encode_uper; +per_type_decoder_f ComparisonOperator_decode_aper; +per_type_encoder_f ComparisonOperator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ComparisonOperator_H_ */ +#include diff --git a/vcits/ivim/CompleteVehicleCharacteristics.h b/vcits/ivim/CompleteVehicleCharacteristics.h new file mode 100644 index 0000000..c940628 --- /dev/null +++ b/vcits/ivim/CompleteVehicleCharacteristics.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CompleteVehicleCharacteristics_H_ +#define _CompleteVehicleCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TractorCharacteristics; +struct TrailerCharacteristicsList; +struct TrainCharacteristics; + +/* CompleteVehicleCharacteristics */ +typedef struct CompleteVehicleCharacteristics { + struct TractorCharacteristics *tractor; /* OPTIONAL */ + struct TrailerCharacteristicsList *trailer; /* OPTIONAL */ + struct TrainCharacteristics *train; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CompleteVehicleCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CompleteVehicleCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_CompleteVehicleCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_CompleteVehicleCharacteristics_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CompleteVehicleCharacteristics_H_ */ +#include diff --git a/vcits/ivim/ComputedLane.h b/vcits/ivim/ComputedLane.h new file mode 100644 index 0000000..ecd337b --- /dev/null +++ b/vcits/ivim/ComputedLane.h @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ComputedLane_H_ +#define _ComputedLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "Angle.h" +#include "Scale-B12.h" +#include "DrivenLineOffsetSm.h" +#include "DrivenLineOffsetLg.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ComputedLane__offsetXaxis_PR { + ComputedLane__offsetXaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetXaxis_PR_small, + ComputedLane__offsetXaxis_PR_large +} ComputedLane__offsetXaxis_PR; +typedef enum ComputedLane__offsetYaxis_PR { + ComputedLane__offsetYaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetYaxis_PR_small, + ComputedLane__offsetYaxis_PR_large +} ComputedLane__offsetYaxis_PR; + +/* Forward declarations */ +struct Reg_ComputedLane; + +/* ComputedLane */ +typedef struct ComputedLane { + LaneID_t referenceLaneId; + struct ComputedLane__offsetXaxis { + ComputedLane__offsetXaxis_PR present; + union ComputedLane__offsetXaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetXaxis; + struct ComputedLane__offsetYaxis { + ComputedLane__offsetYaxis_PR present; + union ComputedLane__offsetYaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetYaxis; + Angle_t *rotateXY; /* OPTIONAL */ + Scale_B12_t *scaleXaxis; /* OPTIONAL */ + Scale_B12_t *scaleYaxis; /* OPTIONAL */ + struct ComputedLane__regional { + A_SEQUENCE_OF(struct Reg_ComputedLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ComputedLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ComputedLane_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ComputedLane_H_ */ +#include diff --git a/vcits/ivim/ComputedSegment.h b/vcits/ivim/ComputedSegment.h new file mode 100644 index 0000000..66bc282 --- /dev/null +++ b/vcits/ivim/ComputedSegment.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ComputedSegment_H_ +#define _ComputedSegment_H_ + + +#include + +/* Including external dependencies */ +#include "Zid.h" +#include "LanePosition.h" +#include "IviLaneWidth.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DeltaReferencePosition; + +/* ComputedSegment */ +typedef struct ComputedSegment { + Zid_t zoneId; + LanePosition_t laneNumber; + IviLaneWidth_t laneWidth; + long *offsetDistance; /* OPTIONAL */ + struct DeltaReferencePosition *offsetPosition; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ComputedSegment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ComputedSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_ComputedSegment_specs_1; +extern asn_TYPE_member_t asn_MBR_ComputedSegment_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ComputedSegment_H_ */ +#include diff --git a/vcits/ivim/Condition.h b/vcits/ivim/Condition.h new file mode 100644 index 0000000..23eda3f --- /dev/null +++ b/vcits/ivim/Condition.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Condition_H_ +#define _Condition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Condition { + Condition_dry = 0, + Condition_moist = 1, + Condition_wet = 2, + Condition_standingWater = 3, + Condition_frost = 4, + Condition_ice = 5, + Condition_snow = 6, + Condition_slush = 7, + Condition_unvailable = 8 +} e_Condition; + +/* Condition */ +typedef long Condition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Condition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Condition; +asn_struct_free_f Condition_free; +asn_struct_print_f Condition_print; +asn_constr_check_f Condition_constraint; +ber_type_decoder_f Condition_decode_ber; +der_type_encoder_f Condition_encode_der; +xer_type_decoder_f Condition_decode_xer; +xer_type_encoder_f Condition_encode_xer; +oer_type_decoder_f Condition_decode_oer; +oer_type_encoder_f Condition_encode_oer; +per_type_decoder_f Condition_decode_uper; +per_type_encoder_f Condition_encode_uper; +per_type_decoder_f Condition_decode_aper; +per_type_encoder_f Condition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Condition_H_ */ +#include diff --git a/vcits/ivim/ConnectedDenms.h b/vcits/ivim/ConnectedDenms.h new file mode 100644 index 0000000..f7a9c27 --- /dev/null +++ b/vcits/ivim/ConnectedDenms.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ConnectedDenms_H_ +#define _ConnectedDenms_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ActionID; + +/* ConnectedDenms */ +typedef struct ConnectedDenms { + A_SEQUENCE_OF(struct ActionID) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectedDenms_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectedDenms; +extern asn_SET_OF_specifics_t asn_SPC_ConnectedDenms_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectedDenms_1[1]; +extern asn_per_constraints_t asn_PER_type_ConnectedDenms_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectedDenms_H_ */ +#include diff --git a/vcits/ivim/ConnectingLane.h b/vcits/ivim/ConnectingLane.h new file mode 100644 index 0000000..67eeb57 --- /dev/null +++ b/vcits/ivim/ConnectingLane.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ConnectingLane_H_ +#define _ConnectingLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "AllowedManeuvers.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectingLane */ +typedef struct ConnectingLane { + LaneID_t lane; + AllowedManeuvers_t *maneuver; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectingLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectingLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectingLane_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectingLane_H_ */ +#include diff --git a/vcits/ivim/Connection.h b/vcits/ivim/Connection.h new file mode 100644 index 0000000..1cdc3b7 --- /dev/null +++ b/vcits/ivim/Connection.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Connection_H_ +#define _Connection_H_ + + +#include + +/* Including external dependencies */ +#include "ConnectingLane.h" +#include "SignalGroupID.h" +#include "RestrictionClassID.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionReferenceID; + +/* Connection */ +typedef struct Connection { + ConnectingLane_t connectingLane; + struct IntersectionReferenceID *remoteIntersection; /* OPTIONAL */ + SignalGroupID_t *signalGroup; /* OPTIONAL */ + RestrictionClassID_t *userClass; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Connection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Connection; +extern asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1; +extern asn_TYPE_member_t asn_MBR_Connection_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Connection_H_ */ +#include diff --git a/vcits/ivim/ConnectionManeuverAssist-addGrpC.h b/vcits/ivim/ConnectionManeuverAssist-addGrpC.h new file mode 100644 index 0000000..0d0a563 --- /dev/null +++ b/vcits/ivim/ConnectionManeuverAssist-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ConnectionManeuverAssist_addGrpC_H_ +#define _ConnectionManeuverAssist_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ItsStationPositionList; + +/* ConnectionManeuverAssist-addGrpC */ +typedef struct ConnectionManeuverAssist_addGrpC { + struct ItsStationPositionList *itsStationPosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_addGrpC_H_ */ +#include diff --git a/vcits/ivim/ConnectionManeuverAssist.h b/vcits/ivim/ConnectionManeuverAssist.h new file mode 100644 index 0000000..fc51524 --- /dev/null +++ b/vcits/ivim/ConnectionManeuverAssist.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ConnectionManeuverAssist_H_ +#define _ConnectionManeuverAssist_H_ + + +#include + +/* Including external dependencies */ +#include "LaneConnectionID.h" +#include "ZoneLength.h" +#include "WaitOnStopline.h" +#include "PedestrianBicycleDetect.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_ConnectionManeuverAssist; + +/* ConnectionManeuverAssist */ +typedef struct ConnectionManeuverAssist { + LaneConnectionID_t connectionID; + ZoneLength_t *queueLength; /* OPTIONAL */ + ZoneLength_t *availableStorageLength; /* OPTIONAL */ + WaitOnStopline_t *waitOnStop; /* OPTIONAL */ + PedestrianBicycleDetect_t *pedBicycleDetect; /* OPTIONAL */ + struct ConnectionManeuverAssist__regional { + A_SEQUENCE_OF(struct Reg_ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_H_ */ +#include diff --git a/vcits/ivim/ConnectionTrajectory-addGrpC.h b/vcits/ivim/ConnectionTrajectory-addGrpC.h new file mode 100644 index 0000000..51f063b --- /dev/null +++ b/vcits/ivim/ConnectionTrajectory-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ConnectionTrajectory_addGrpC_H_ +#define _ConnectionTrajectory_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectionTrajectory-addGrpC */ +typedef struct ConnectionTrajectory_addGrpC { + NodeSetXY_t nodes; + LaneConnectionID_t connectionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionTrajectory_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionTrajectory_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionTrajectory_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionTrajectory_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionTrajectory_addGrpC_H_ */ +#include diff --git a/vcits/ivim/ConnectsToList.h b/vcits/ivim/ConnectsToList.h new file mode 100644 index 0000000..e8daaea --- /dev/null +++ b/vcits/ivim/ConnectsToList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ConnectsToList_H_ +#define _ConnectsToList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Connection; + +/* ConnectsToList */ +typedef struct ConnectsToList { + A_SEQUENCE_OF(struct Connection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectsToList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectsToList; +extern asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectsToList_1[1]; +extern asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectsToList_H_ */ +#include diff --git a/vcits/ivim/ConstraintTextLines1.h b/vcits/ivim/ConstraintTextLines1.h new file mode 100644 index 0000000..27b050e --- /dev/null +++ b/vcits/ivim/ConstraintTextLines1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ConstraintTextLines1_H_ +#define _ConstraintTextLines1_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Text; + +/* ConstraintTextLines1 */ +typedef struct ConstraintTextLines1 { + A_SEQUENCE_OF(struct Text) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConstraintTextLines1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConstraintTextLines1; +extern asn_SET_OF_specifics_t asn_SPC_ConstraintTextLines1_specs_1; +extern asn_TYPE_member_t asn_MBR_ConstraintTextLines1_1[1]; +extern asn_per_constraints_t asn_PER_type_ConstraintTextLines1_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConstraintTextLines1_H_ */ +#include diff --git a/vcits/ivim/ConstraintTextLines2.h b/vcits/ivim/ConstraintTextLines2.h new file mode 100644 index 0000000..b378edc --- /dev/null +++ b/vcits/ivim/ConstraintTextLines2.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ConstraintTextLines2_H_ +#define _ConstraintTextLines2_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Text; + +/* ConstraintTextLines2 */ +typedef struct ConstraintTextLines2 { + A_SEQUENCE_OF(struct Text) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConstraintTextLines2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConstraintTextLines2; +extern asn_SET_OF_specifics_t asn_SPC_ConstraintTextLines2_specs_1; +extern asn_TYPE_member_t asn_MBR_ConstraintTextLines2_1[1]; +extern asn_per_constraints_t asn_PER_type_ConstraintTextLines2_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConstraintTextLines2_H_ */ +#include diff --git a/vcits/ivim/ContractAuthenticator.h b/vcits/ivim/ContractAuthenticator.h new file mode 100644 index 0000000..7a2fc29 --- /dev/null +++ b/vcits/ivim/ContractAuthenticator.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ContractAuthenticator_H_ +#define _ContractAuthenticator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ContractAuthenticator */ +typedef OCTET_STRING_t ContractAuthenticator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ContractAuthenticator; +asn_struct_free_f ContractAuthenticator_free; +asn_struct_print_f ContractAuthenticator_print; +asn_constr_check_f ContractAuthenticator_constraint; +ber_type_decoder_f ContractAuthenticator_decode_ber; +der_type_encoder_f ContractAuthenticator_encode_der; +xer_type_decoder_f ContractAuthenticator_decode_xer; +xer_type_encoder_f ContractAuthenticator_encode_xer; +oer_type_decoder_f ContractAuthenticator_decode_oer; +oer_type_encoder_f ContractAuthenticator_encode_oer; +per_type_decoder_f ContractAuthenticator_decode_uper; +per_type_encoder_f ContractAuthenticator_encode_uper; +per_type_decoder_f ContractAuthenticator_decode_aper; +per_type_encoder_f ContractAuthenticator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ContractAuthenticator_H_ */ +#include diff --git a/vcits/ivim/ContractSerialNumber.h b/vcits/ivim/ContractSerialNumber.h new file mode 100644 index 0000000..063ac13 --- /dev/null +++ b/vcits/ivim/ContractSerialNumber.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ContractSerialNumber_H_ +#define _ContractSerialNumber_H_ + + +#include + +/* Including external dependencies */ +#include "Int4.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ContractSerialNumber */ +typedef Int4_t ContractSerialNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ContractSerialNumber; +asn_struct_free_f ContractSerialNumber_free; +asn_struct_print_f ContractSerialNumber_print; +asn_constr_check_f ContractSerialNumber_constraint; +ber_type_decoder_f ContractSerialNumber_decode_ber; +der_type_encoder_f ContractSerialNumber_encode_der; +xer_type_decoder_f ContractSerialNumber_decode_xer; +xer_type_encoder_f ContractSerialNumber_encode_xer; +oer_type_decoder_f ContractSerialNumber_decode_oer; +oer_type_encoder_f ContractSerialNumber_encode_oer; +per_type_decoder_f ContractSerialNumber_decode_uper; +per_type_encoder_f ContractSerialNumber_encode_uper; +per_type_decoder_f ContractSerialNumber_decode_aper; +per_type_encoder_f ContractSerialNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ContractSerialNumber_H_ */ +#include diff --git a/vcits/ivim/ContractValidity.h b/vcits/ivim/ContractValidity.h new file mode 100644 index 0000000..cf16aa4 --- /dev/null +++ b/vcits/ivim/ContractValidity.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ContractValidity_H_ +#define _ContractValidity_H_ + + +#include + +/* Including external dependencies */ +#include +#include "DateCompact.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ContractValidity */ +typedef struct ContractValidity { + OCTET_STRING_t contractRestrictions; + DateCompact_t contractExpiryDate; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ContractValidity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ContractValidity; + +#ifdef __cplusplus +} +#endif + +#endif /* _ContractValidity_H_ */ +#include diff --git a/vcits/ivim/ContractVehicle.h b/vcits/ivim/ContractVehicle.h new file mode 100644 index 0000000..38dd58c --- /dev/null +++ b/vcits/ivim/ContractVehicle.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ContractVehicle_H_ +#define _ContractVehicle_H_ + + +#include + +/* Including external dependencies */ +#include "LPN.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ContractVehicle */ +typedef LPN_t ContractVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ContractVehicle; +asn_struct_free_f ContractVehicle_free; +asn_struct_print_f ContractVehicle_print; +asn_constr_check_f ContractVehicle_constraint; +ber_type_decoder_f ContractVehicle_decode_ber; +der_type_encoder_f ContractVehicle_encode_der; +xer_type_decoder_f ContractVehicle_decode_xer; +xer_type_encoder_f ContractVehicle_encode_xer; +oer_type_decoder_f ContractVehicle_decode_oer; +oer_type_encoder_f ContractVehicle_encode_oer; +per_type_decoder_f ContractVehicle_decode_uper; +per_type_encoder_f ContractVehicle_encode_uper; +per_type_decoder_f ContractVehicle_decode_aper; +per_type_encoder_f ContractVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ContractVehicle_H_ */ +#include diff --git a/vcits/ivim/CopValue.h b/vcits/ivim/CopValue.h new file mode 100644 index 0000000..949a9f1 --- /dev/null +++ b/vcits/ivim/CopValue.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CopValue_H_ +#define _CopValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CopValue { + CopValue_noEntry = 0, + CopValue_co2class1 = 1, + CopValue_co2class2 = 2, + CopValue_co2class3 = 3, + CopValue_co2class4 = 4, + CopValue_co2class5 = 5, + CopValue_co2class6 = 6, + CopValue_co2class7 = 7, + CopValue_reservedforUse = 8 +} e_CopValue; + +/* CopValue */ +typedef long CopValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CopValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CopValue; +extern const asn_INTEGER_specifics_t asn_SPC_CopValue_specs_1; +asn_struct_free_f CopValue_free; +asn_struct_print_f CopValue_print; +asn_constr_check_f CopValue_constraint; +ber_type_decoder_f CopValue_decode_ber; +der_type_encoder_f CopValue_encode_der; +xer_type_decoder_f CopValue_decode_xer; +xer_type_encoder_f CopValue_encode_xer; +oer_type_decoder_f CopValue_decode_oer; +oer_type_encoder_f CopValue_encode_oer; +per_type_decoder_f CopValue_decode_uper; +per_type_encoder_f CopValue_encode_uper; +per_type_decoder_f CopValue_decode_aper; +per_type_encoder_f CopValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CopValue_H_ */ +#include diff --git a/vcits/ivim/CopyRq.h b/vcits/ivim/CopyRq.h new file mode 100644 index 0000000..8ba8aa3 --- /dev/null +++ b/vcits/ivim/CopyRq.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CopyRq_H_ +#define _CopyRq_H_ + + +#include + +/* Including external dependencies */ +#include +#include "AttributeIdList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CopyRq */ +typedef struct CopyRq { + long destinationEID; + AttributeIdList_t attributeIdList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CopyRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CopyRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _CopyRq_H_ */ +#include diff --git a/vcits/ivim/CountryCode.h b/vcits/ivim/CountryCode.h new file mode 100644 index 0000000..6c227c6 --- /dev/null +++ b/vcits/ivim/CountryCode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CountryCode_H_ +#define _CountryCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CountryCode */ +typedef BIT_STRING_t CountryCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CountryCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CountryCode; +asn_struct_free_f CountryCode_free; +asn_struct_print_f CountryCode_print; +asn_constr_check_f CountryCode_constraint; +ber_type_decoder_f CountryCode_decode_ber; +der_type_encoder_f CountryCode_encode_der; +xer_type_decoder_f CountryCode_decode_xer; +xer_type_encoder_f CountryCode_encode_xer; +oer_type_decoder_f CountryCode_decode_oer; +oer_type_encoder_f CountryCode_encode_oer; +per_type_decoder_f CountryCode_decode_uper; +per_type_encoder_f CountryCode_encode_uper; +per_type_decoder_f CountryCode_decode_aper; +per_type_encoder_f CountryCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CountryCode_H_ */ +#include diff --git a/vcits/ivim/CreditRq.h b/vcits/ivim/CreditRq.h new file mode 100644 index 0000000..8cf8e6b --- /dev/null +++ b/vcits/ivim/CreditRq.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CreditRq_H_ +#define _CreditRq_H_ + + +#include + +/* Including external dependencies */ +#include "PaymentFee.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CreditRq */ +typedef struct CreditRq { + PaymentFee_t refund; + OCTET_STRING_t nonce; + long key; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CreditRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CreditRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _CreditRq_H_ */ +#include diff --git a/vcits/ivim/CreditRs.h b/vcits/ivim/CreditRs.h new file mode 100644 index 0000000..9d41211 --- /dev/null +++ b/vcits/ivim/CreditRs.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CreditRs_H_ +#define _CreditRs_H_ + + +#include + +/* Including external dependencies */ +#include "ResultFin.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CreditRs */ +typedef struct CreditRs { + ResultFin_t creditResult; + OCTET_STRING_t creditAuthenticator; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CreditRs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CreditRs; + +#ifdef __cplusplus +} +#endif + +#endif /* _CreditRs_H_ */ +#include diff --git a/vcits/ivim/Curvature.h b/vcits/ivim/Curvature.h new file mode 100644 index 0000000..64a5c97 --- /dev/null +++ b/vcits/ivim/Curvature.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Curvature_H_ +#define _Curvature_H_ + + +#include + +/* Including external dependencies */ +#include "CurvatureValue.h" +#include "CurvatureConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Curvature */ +typedef struct Curvature { + CurvatureValue_t curvatureValue; + CurvatureConfidence_t curvatureConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Curvature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Curvature; + +#ifdef __cplusplus +} +#endif + +#endif /* _Curvature_H_ */ +#include diff --git a/vcits/ivim/CurvatureCalculationMode.h b/vcits/ivim/CurvatureCalculationMode.h new file mode 100644 index 0000000..84f7f1f --- /dev/null +++ b/vcits/ivim/CurvatureCalculationMode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CurvatureCalculationMode_H_ +#define _CurvatureCalculationMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureCalculationMode { + CurvatureCalculationMode_yawRateUsed = 0, + CurvatureCalculationMode_yawRateNotUsed = 1, + CurvatureCalculationMode_unavailable = 2 + /* + * Enumeration is extensible + */ +} e_CurvatureCalculationMode; + +/* CurvatureCalculationMode */ +typedef long CurvatureCalculationMode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode; +asn_struct_free_f CurvatureCalculationMode_free; +asn_struct_print_f CurvatureCalculationMode_print; +asn_constr_check_f CurvatureCalculationMode_constraint; +ber_type_decoder_f CurvatureCalculationMode_decode_ber; +der_type_encoder_f CurvatureCalculationMode_encode_der; +xer_type_decoder_f CurvatureCalculationMode_decode_xer; +xer_type_encoder_f CurvatureCalculationMode_encode_xer; +oer_type_decoder_f CurvatureCalculationMode_decode_oer; +oer_type_encoder_f CurvatureCalculationMode_encode_oer; +per_type_decoder_f CurvatureCalculationMode_decode_uper; +per_type_encoder_f CurvatureCalculationMode_encode_uper; +per_type_decoder_f CurvatureCalculationMode_decode_aper; +per_type_encoder_f CurvatureCalculationMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureCalculationMode_H_ */ +#include diff --git a/vcits/ivim/CurvatureConfidence.h b/vcits/ivim/CurvatureConfidence.h new file mode 100644 index 0000000..8e304bc --- /dev/null +++ b/vcits/ivim/CurvatureConfidence.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CurvatureConfidence_H_ +#define _CurvatureConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureConfidence { + CurvatureConfidence_onePerMeter_0_00002 = 0, + CurvatureConfidence_onePerMeter_0_0001 = 1, + CurvatureConfidence_onePerMeter_0_0005 = 2, + CurvatureConfidence_onePerMeter_0_002 = 3, + CurvatureConfidence_onePerMeter_0_01 = 4, + CurvatureConfidence_onePerMeter_0_1 = 5, + CurvatureConfidence_outOfRange = 6, + CurvatureConfidence_unavailable = 7 +} e_CurvatureConfidence; + +/* CurvatureConfidence */ +typedef long CurvatureConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1; +asn_struct_free_f CurvatureConfidence_free; +asn_struct_print_f CurvatureConfidence_print; +asn_constr_check_f CurvatureConfidence_constraint; +ber_type_decoder_f CurvatureConfidence_decode_ber; +der_type_encoder_f CurvatureConfidence_encode_der; +xer_type_decoder_f CurvatureConfidence_decode_xer; +xer_type_encoder_f CurvatureConfidence_encode_xer; +oer_type_decoder_f CurvatureConfidence_decode_oer; +oer_type_encoder_f CurvatureConfidence_encode_oer; +per_type_decoder_f CurvatureConfidence_decode_uper; +per_type_encoder_f CurvatureConfidence_encode_uper; +per_type_decoder_f CurvatureConfidence_decode_aper; +per_type_encoder_f CurvatureConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureConfidence_H_ */ +#include diff --git a/vcits/ivim/CurvatureValue.h b/vcits/ivim/CurvatureValue.h new file mode 100644 index 0000000..7dab11f --- /dev/null +++ b/vcits/ivim/CurvatureValue.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _CurvatureValue_H_ +#define _CurvatureValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureValue { + CurvatureValue_straight = 0, + CurvatureValue_unavailable = 1023 +} e_CurvatureValue; + +/* CurvatureValue */ +typedef long CurvatureValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureValue; +asn_struct_free_f CurvatureValue_free; +asn_struct_print_f CurvatureValue_print; +asn_constr_check_f CurvatureValue_constraint; +ber_type_decoder_f CurvatureValue_decode_ber; +der_type_encoder_f CurvatureValue_encode_der; +xer_type_decoder_f CurvatureValue_decode_xer; +xer_type_encoder_f CurvatureValue_encode_xer; +oer_type_decoder_f CurvatureValue_decode_oer; +oer_type_encoder_f CurvatureValue_encode_oer; +per_type_decoder_f CurvatureValue_decode_uper; +per_type_encoder_f CurvatureValue_encode_uper; +per_type_decoder_f CurvatureValue_decode_aper; +per_type_encoder_f CurvatureValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureValue_H_ */ +#include diff --git a/vcits/ivim/DDD-IO-LIST.h b/vcits/ivim/DDD-IO-LIST.h new file mode 100644 index 0000000..8c97e90 --- /dev/null +++ b/vcits/ivim/DDD-IO-LIST.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DDD_IO_LIST_H_ +#define _DDD_IO_LIST_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DDD_IO; + +/* DDD-IO-LIST */ +typedef struct DDD_IO_LIST { + A_SEQUENCE_OF(struct DDD_IO) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DDD_IO_LIST_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DDD_IO_LIST; +extern asn_SET_OF_specifics_t asn_SPC_DDD_IO_LIST_specs_1; +extern asn_TYPE_member_t asn_MBR_DDD_IO_LIST_1[1]; +extern asn_per_constraints_t asn_PER_type_DDD_IO_LIST_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDD_IO_LIST_H_ */ +#include diff --git a/vcits/ivim/DDD-IO.h b/vcits/ivim/DDD-IO.h new file mode 100644 index 0000000..024d3ca --- /dev/null +++ b/vcits/ivim/DDD-IO.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DDD_IO_H_ +#define _DDD_IO_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DestinationPlaces; +struct DestinationRoads; +struct DistanceOrDuration; + +/* DDD-IO */ +typedef struct DDD_IO { + long arrowDirection; + struct DestinationPlaces *destPlace; /* OPTIONAL */ + struct DestinationRoads *destRoad; /* OPTIONAL */ + long *roadNumberIdentifier; /* OPTIONAL */ + long *streetName; /* OPTIONAL */ + UTF8String_t *streetNameText; /* OPTIONAL */ + struct DistanceOrDuration *distanceToDivergingPoint; /* OPTIONAL */ + struct DistanceOrDuration *distanceToDestinationPlace; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DDD_IO_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DDD_IO; +extern asn_SEQUENCE_specifics_t asn_SPC_DDD_IO_specs_1; +extern asn_TYPE_member_t asn_MBR_DDD_IO_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDD_IO_H_ */ +#include diff --git a/vcits/ivim/DDateTime.h b/vcits/ivim/DDateTime.h new file mode 100644 index 0000000..1de2187 --- /dev/null +++ b/vcits/ivim/DDateTime.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DDateTime_H_ +#define _DDateTime_H_ + + +#include + +/* Including external dependencies */ +#include "DYear.h" +#include "DMonth.h" +#include "DDay.h" +#include "DHour.h" +#include "DMinute.h" +#include "DSecond.h" +#include "DOffset.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDateTime */ +typedef struct DDateTime { + DYear_t *year; /* OPTIONAL */ + DMonth_t *month; /* OPTIONAL */ + DDay_t *day; /* OPTIONAL */ + DHour_t *hour; /* OPTIONAL */ + DMinute_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DOffset_t *offset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DDateTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DDateTime; +extern asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1; +extern asn_TYPE_member_t asn_MBR_DDateTime_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDateTime_H_ */ +#include diff --git a/vcits/ivim/DDay.h b/vcits/ivim/DDay.h new file mode 100644 index 0000000..e19129e --- /dev/null +++ b/vcits/ivim/DDay.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DDay_H_ +#define _DDay_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDay */ +typedef long DDay_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DDay_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DDay; +asn_struct_free_f DDay_free; +asn_struct_print_f DDay_print; +asn_constr_check_f DDay_constraint; +ber_type_decoder_f DDay_decode_ber; +der_type_encoder_f DDay_encode_der; +xer_type_decoder_f DDay_decode_xer; +xer_type_encoder_f DDay_encode_xer; +oer_type_decoder_f DDay_decode_oer; +oer_type_encoder_f DDay_encode_oer; +per_type_decoder_f DDay_decode_uper; +per_type_encoder_f DDay_encode_uper; +per_type_decoder_f DDay_decode_aper; +per_type_encoder_f DDay_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDay_H_ */ +#include diff --git a/vcits/ivim/DHour.h b/vcits/ivim/DHour.h new file mode 100644 index 0000000..f337b58 --- /dev/null +++ b/vcits/ivim/DHour.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DHour_H_ +#define _DHour_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DHour */ +typedef long DHour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DHour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DHour; +asn_struct_free_f DHour_free; +asn_struct_print_f DHour_print; +asn_constr_check_f DHour_constraint; +ber_type_decoder_f DHour_decode_ber; +der_type_encoder_f DHour_encode_der; +xer_type_decoder_f DHour_decode_xer; +xer_type_encoder_f DHour_encode_xer; +oer_type_decoder_f DHour_decode_oer; +oer_type_encoder_f DHour_encode_oer; +per_type_decoder_f DHour_decode_uper; +per_type_encoder_f DHour_encode_uper; +per_type_decoder_f DHour_decode_aper; +per_type_encoder_f DHour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DHour_H_ */ +#include diff --git a/vcits/ivim/DMinute.h b/vcits/ivim/DMinute.h new file mode 100644 index 0000000..e42220c --- /dev/null +++ b/vcits/ivim/DMinute.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DMinute_H_ +#define _DMinute_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMinute */ +typedef long DMinute_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMinute_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMinute; +asn_struct_free_f DMinute_free; +asn_struct_print_f DMinute_print; +asn_constr_check_f DMinute_constraint; +ber_type_decoder_f DMinute_decode_ber; +der_type_encoder_f DMinute_encode_der; +xer_type_decoder_f DMinute_decode_xer; +xer_type_encoder_f DMinute_encode_xer; +oer_type_decoder_f DMinute_decode_oer; +oer_type_encoder_f DMinute_encode_oer; +per_type_decoder_f DMinute_decode_uper; +per_type_encoder_f DMinute_encode_uper; +per_type_decoder_f DMinute_decode_aper; +per_type_encoder_f DMinute_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMinute_H_ */ +#include diff --git a/vcits/ivim/DMonth.h b/vcits/ivim/DMonth.h new file mode 100644 index 0000000..7000161 --- /dev/null +++ b/vcits/ivim/DMonth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DMonth_H_ +#define _DMonth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMonth */ +typedef long DMonth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMonth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMonth; +asn_struct_free_f DMonth_free; +asn_struct_print_f DMonth_print; +asn_constr_check_f DMonth_constraint; +ber_type_decoder_f DMonth_decode_ber; +der_type_encoder_f DMonth_encode_der; +xer_type_decoder_f DMonth_decode_xer; +xer_type_encoder_f DMonth_encode_xer; +oer_type_decoder_f DMonth_decode_oer; +oer_type_encoder_f DMonth_encode_oer; +per_type_decoder_f DMonth_decode_uper; +per_type_encoder_f DMonth_encode_uper; +per_type_decoder_f DMonth_decode_aper; +per_type_encoder_f DMonth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMonth_H_ */ +#include diff --git a/vcits/ivim/DOffset.h b/vcits/ivim/DOffset.h new file mode 100644 index 0000000..075f1c9 --- /dev/null +++ b/vcits/ivim/DOffset.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DOffset_H_ +#define _DOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DOffset */ +typedef long DOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DOffset; +asn_struct_free_f DOffset_free; +asn_struct_print_f DOffset_print; +asn_constr_check_f DOffset_constraint; +ber_type_decoder_f DOffset_decode_ber; +der_type_encoder_f DOffset_encode_der; +xer_type_decoder_f DOffset_decode_xer; +xer_type_encoder_f DOffset_encode_xer; +oer_type_decoder_f DOffset_decode_oer; +oer_type_encoder_f DOffset_encode_oer; +per_type_decoder_f DOffset_decode_uper; +per_type_encoder_f DOffset_encode_uper; +per_type_decoder_f DOffset_decode_aper; +per_type_encoder_f DOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DOffset_H_ */ +#include diff --git a/vcits/ivim/DSRCmsgID.h b/vcits/ivim/DSRCmsgID.h new file mode 100644 index 0000000..77a6504 --- /dev/null +++ b/vcits/ivim/DSRCmsgID.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DSRCmsgID_H_ +#define _DSRCmsgID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSRCmsgID */ +typedef long DSRCmsgID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSRCmsgID; +asn_struct_free_f DSRCmsgID_free; +asn_struct_print_f DSRCmsgID_print; +asn_constr_check_f DSRCmsgID_constraint; +ber_type_decoder_f DSRCmsgID_decode_ber; +der_type_encoder_f DSRCmsgID_encode_der; +xer_type_decoder_f DSRCmsgID_decode_xer; +xer_type_encoder_f DSRCmsgID_encode_xer; +oer_type_decoder_f DSRCmsgID_decode_oer; +oer_type_encoder_f DSRCmsgID_encode_oer; +per_type_decoder_f DSRCmsgID_decode_uper; +per_type_encoder_f DSRCmsgID_encode_uper; +per_type_decoder_f DSRCmsgID_decode_aper; +per_type_encoder_f DSRCmsgID_encode_aper; +#define DSRCmsgID_mapData ((DSRCmsgID_t)18) +#define DSRCmsgID_rtcmCorrections ((DSRCmsgID_t)28) +#define DSRCmsgID_signalPhaseAndTimingMessage ((DSRCmsgID_t)19) +#define DSRCmsgID_signalRequestMessage ((DSRCmsgID_t)29) +#define DSRCmsgID_signalStatusMessage ((DSRCmsgID_t)30) + +#ifdef __cplusplus +} +#endif + +#endif /* _DSRCmsgID_H_ */ +#include diff --git a/vcits/ivim/DSecond.h b/vcits/ivim/DSecond.h new file mode 100644 index 0000000..2da33cd --- /dev/null +++ b/vcits/ivim/DSecond.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DSecond_H_ +#define _DSecond_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSecond */ +typedef long DSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSecond; +asn_struct_free_f DSecond_free; +asn_struct_print_f DSecond_print; +asn_constr_check_f DSecond_constraint; +ber_type_decoder_f DSecond_decode_ber; +der_type_encoder_f DSecond_encode_der; +xer_type_decoder_f DSecond_decode_xer; +xer_type_encoder_f DSecond_encode_xer; +oer_type_decoder_f DSecond_decode_oer; +oer_type_encoder_f DSecond_encode_oer; +per_type_decoder_f DSecond_decode_uper; +per_type_encoder_f DSecond_encode_uper; +per_type_decoder_f DSecond_decode_aper; +per_type_encoder_f DSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DSecond_H_ */ +#include diff --git a/vcits/ivim/DYear.h b/vcits/ivim/DYear.h new file mode 100644 index 0000000..a1fa2a0 --- /dev/null +++ b/vcits/ivim/DYear.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DYear_H_ +#define _DYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DYear */ +typedef long DYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DYear; +asn_struct_free_f DYear_free; +asn_struct_print_f DYear_print; +asn_constr_check_f DYear_constraint; +ber_type_decoder_f DYear_decode_ber; +der_type_encoder_f DYear_encode_der; +xer_type_decoder_f DYear_decode_xer; +xer_type_encoder_f DYear_encode_xer; +oer_type_decoder_f DYear_decode_oer; +oer_type_encoder_f DYear_encode_oer; +per_type_decoder_f DYear_decode_uper; +per_type_encoder_f DYear_encode_uper; +per_type_decoder_f DYear_decode_aper; +per_type_encoder_f DYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DYear_H_ */ +#include diff --git a/vcits/ivim/DangerousEndOfQueueSubCauseCode.h b/vcits/ivim/DangerousEndOfQueueSubCauseCode.h new file mode 100644 index 0000000..b16651d --- /dev/null +++ b/vcits/ivim/DangerousEndOfQueueSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DangerousEndOfQueueSubCauseCode_H_ +#define _DangerousEndOfQueueSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousEndOfQueueSubCauseCode { + DangerousEndOfQueueSubCauseCode_unavailable = 0, + DangerousEndOfQueueSubCauseCode_suddenEndOfQueue = 1, + DangerousEndOfQueueSubCauseCode_queueOverHill = 2, + DangerousEndOfQueueSubCauseCode_queueAroundBend = 3, + DangerousEndOfQueueSubCauseCode_queueInTunnel = 4 +} e_DangerousEndOfQueueSubCauseCode; + +/* DangerousEndOfQueueSubCauseCode */ +typedef long DangerousEndOfQueueSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode; +asn_struct_free_f DangerousEndOfQueueSubCauseCode_free; +asn_struct_print_f DangerousEndOfQueueSubCauseCode_print; +asn_constr_check_f DangerousEndOfQueueSubCauseCode_constraint; +ber_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_ber; +der_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_der; +xer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_xer; +xer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_xer; +oer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_oer; +oer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_oer; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_uper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_uper; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_aper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousEndOfQueueSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/DangerousGoodsBasic.h b/vcits/ivim/DangerousGoodsBasic.h new file mode 100644 index 0000000..3f580cf --- /dev/null +++ b/vcits/ivim/DangerousGoodsBasic.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DangerousGoodsBasic_H_ +#define _DangerousGoodsBasic_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousGoodsBasic { + DangerousGoodsBasic_explosives1 = 0, + DangerousGoodsBasic_explosives2 = 1, + DangerousGoodsBasic_explosives3 = 2, + DangerousGoodsBasic_explosives4 = 3, + DangerousGoodsBasic_explosives5 = 4, + DangerousGoodsBasic_explosives6 = 5, + DangerousGoodsBasic_flammableGases = 6, + DangerousGoodsBasic_nonFlammableGases = 7, + DangerousGoodsBasic_toxicGases = 8, + DangerousGoodsBasic_flammableLiquids = 9, + DangerousGoodsBasic_flammableSolids = 10, + DangerousGoodsBasic_substancesLiableToSpontaneousCombustion = 11, + DangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater = 12, + DangerousGoodsBasic_oxidizingSubstances = 13, + DangerousGoodsBasic_organicPeroxides = 14, + DangerousGoodsBasic_toxicSubstances = 15, + DangerousGoodsBasic_infectiousSubstances = 16, + DangerousGoodsBasic_radioactiveMaterial = 17, + DangerousGoodsBasic_corrosiveSubstances = 18, + DangerousGoodsBasic_miscellaneousDangerousSubstances = 19 +} e_DangerousGoodsBasic; + +/* DangerousGoodsBasic */ +typedef long DangerousGoodsBasic_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic; +extern const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1; +asn_struct_free_f DangerousGoodsBasic_free; +asn_struct_print_f DangerousGoodsBasic_print; +asn_constr_check_f DangerousGoodsBasic_constraint; +ber_type_decoder_f DangerousGoodsBasic_decode_ber; +der_type_encoder_f DangerousGoodsBasic_encode_der; +xer_type_decoder_f DangerousGoodsBasic_decode_xer; +xer_type_encoder_f DangerousGoodsBasic_encode_xer; +oer_type_decoder_f DangerousGoodsBasic_decode_oer; +oer_type_encoder_f DangerousGoodsBasic_encode_oer; +per_type_decoder_f DangerousGoodsBasic_decode_uper; +per_type_encoder_f DangerousGoodsBasic_encode_uper; +per_type_decoder_f DangerousGoodsBasic_decode_aper; +per_type_encoder_f DangerousGoodsBasic_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsBasic_H_ */ +#include diff --git a/vcits/ivim/DangerousGoodsExtended.h b/vcits/ivim/DangerousGoodsExtended.h new file mode 100644 index 0000000..7442363 --- /dev/null +++ b/vcits/ivim/DangerousGoodsExtended.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DangerousGoodsExtended_H_ +#define _DangerousGoodsExtended_H_ + + +#include + +/* Including external dependencies */ +#include "DangerousGoodsBasic.h" +#include +#include +#include +#include "PhoneNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DangerousGoodsExtended */ +typedef struct DangerousGoodsExtended { + DangerousGoodsBasic_t dangerousGoodsType; + long unNumber; + BOOLEAN_t elevatedTemperature; + BOOLEAN_t tunnelsRestricted; + BOOLEAN_t limitedQuantity; + IA5String_t *emergencyActionCode; /* OPTIONAL */ + PhoneNumber_t *phoneNumber; /* OPTIONAL */ + UTF8String_t *companyName; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DangerousGoodsExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsExtended_H_ */ +#include diff --git a/vcits/ivim/DangerousSituationSubCauseCode.h b/vcits/ivim/DangerousSituationSubCauseCode.h new file mode 100644 index 0000000..dd01897 --- /dev/null +++ b/vcits/ivim/DangerousSituationSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DangerousSituationSubCauseCode_H_ +#define _DangerousSituationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousSituationSubCauseCode { + DangerousSituationSubCauseCode_unavailable = 0, + DangerousSituationSubCauseCode_emergencyElectronicBrakeEngaged = 1, + DangerousSituationSubCauseCode_preCrashSystemEngaged = 2, + DangerousSituationSubCauseCode_espEngaged = 3, + DangerousSituationSubCauseCode_absEngaged = 4, + DangerousSituationSubCauseCode_aebEngaged = 5, + DangerousSituationSubCauseCode_brakeWarningEngaged = 6, + DangerousSituationSubCauseCode_collisionRiskWarningEngaged = 7 +} e_DangerousSituationSubCauseCode; + +/* DangerousSituationSubCauseCode */ +typedef long DangerousSituationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode; +asn_struct_free_f DangerousSituationSubCauseCode_free; +asn_struct_print_f DangerousSituationSubCauseCode_print; +asn_constr_check_f DangerousSituationSubCauseCode_constraint; +ber_type_decoder_f DangerousSituationSubCauseCode_decode_ber; +der_type_encoder_f DangerousSituationSubCauseCode_encode_der; +xer_type_decoder_f DangerousSituationSubCauseCode_decode_xer; +xer_type_encoder_f DangerousSituationSubCauseCode_encode_xer; +oer_type_decoder_f DangerousSituationSubCauseCode_decode_oer; +oer_type_encoder_f DangerousSituationSubCauseCode_encode_oer; +per_type_decoder_f DangerousSituationSubCauseCode_decode_uper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_uper; +per_type_decoder_f DangerousSituationSubCauseCode_decode_aper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousSituationSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/DataParameters.h b/vcits/ivim/DataParameters.h new file mode 100644 index 0000000..1d529d2 --- /dev/null +++ b/vcits/ivim/DataParameters.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DataParameters_H_ +#define _DataParameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DataParameters */ +typedef struct DataParameters { + IA5String_t *processMethod; /* OPTIONAL */ + IA5String_t *processAgency; /* OPTIONAL */ + IA5String_t *lastCheckedDate; /* OPTIONAL */ + IA5String_t *geoidUsed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DataParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DataParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_DataParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DataParameters_H_ */ +#include diff --git a/vcits/ivim/DateAndTime.h b/vcits/ivim/DateAndTime.h new file mode 100644 index 0000000..86e66b8 --- /dev/null +++ b/vcits/ivim/DateAndTime.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DateAndTime_H_ +#define _DateAndTime_H_ + + +#include + +/* Including external dependencies */ +#include "DateCompact.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DateAndTime */ +typedef struct DateAndTime { + DateCompact_t timeDate; + struct DateAndTime__timeCompact { + long hours; + long mins; + long double_secs; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } timeCompact; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DateAndTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DateAndTime; +extern asn_SEQUENCE_specifics_t asn_SPC_DateAndTime_specs_1; +extern asn_TYPE_member_t asn_MBR_DateAndTime_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DateAndTime_H_ */ +#include diff --git a/vcits/ivim/DateCompact.h b/vcits/ivim/DateCompact.h new file mode 100644 index 0000000..aec522d --- /dev/null +++ b/vcits/ivim/DateCompact.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DateCompact_H_ +#define _DateCompact_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DateCompact */ +typedef struct DateCompact { + long year; + long month; + long day; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DateCompact_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DateCompact; +extern asn_SEQUENCE_specifics_t asn_SPC_DateCompact_specs_1; +extern asn_TYPE_member_t asn_MBR_DateCompact_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DateCompact_H_ */ +#include diff --git a/vcits/ivim/DayOfWeek.h b/vcits/ivim/DayOfWeek.h new file mode 100644 index 0000000..54fb0bb --- /dev/null +++ b/vcits/ivim/DayOfWeek.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DayOfWeek_H_ +#define _DayOfWeek_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DayOfWeek { + DayOfWeek_unused = 0, + DayOfWeek_monday = 1, + DayOfWeek_tuesday = 2, + DayOfWeek_wednesday = 3, + DayOfWeek_thursday = 4, + DayOfWeek_friday = 5, + DayOfWeek_saturday = 6, + DayOfWeek_sunday = 7 +} e_DayOfWeek; + +/* DayOfWeek */ +typedef BIT_STRING_t DayOfWeek_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DayOfWeek_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DayOfWeek; +asn_struct_free_f DayOfWeek_free; +asn_struct_print_f DayOfWeek_print; +asn_constr_check_f DayOfWeek_constraint; +ber_type_decoder_f DayOfWeek_decode_ber; +der_type_encoder_f DayOfWeek_encode_der; +xer_type_decoder_f DayOfWeek_decode_xer; +xer_type_encoder_f DayOfWeek_encode_xer; +oer_type_decoder_f DayOfWeek_decode_oer; +oer_type_encoder_f DayOfWeek_encode_oer; +per_type_decoder_f DayOfWeek_decode_uper; +per_type_encoder_f DayOfWeek_encode_uper; +per_type_decoder_f DayOfWeek_decode_aper; +per_type_encoder_f DayOfWeek_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DayOfWeek_H_ */ +#include diff --git a/vcits/ivim/DebitRq.h b/vcits/ivim/DebitRq.h new file mode 100644 index 0000000..be16671 --- /dev/null +++ b/vcits/ivim/DebitRq.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DebitRq_H_ +#define _DebitRq_H_ + + +#include + +/* Including external dependencies */ +#include "PaymentFee.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DebitRq */ +typedef struct DebitRq { + PaymentFee_t debitPaymentFee; + OCTET_STRING_t nonce; + long keyRef; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DebitRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DebitRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _DebitRq_H_ */ +#include diff --git a/vcits/ivim/DebitRs.h b/vcits/ivim/DebitRs.h new file mode 100644 index 0000000..68d1eb7 --- /dev/null +++ b/vcits/ivim/DebitRs.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DebitRs_H_ +#define _DebitRs_H_ + + +#include + +/* Including external dependencies */ +#include "ResultFin.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DebitRs */ +typedef struct DebitRs { + ResultFin_t debitResult; + OCTET_STRING_t debitAuthenticator; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DebitRs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DebitRs; + +#ifdef __cplusplus +} +#endif + +#endif /* _DebitRs_H_ */ +#include diff --git a/vcits/ivim/DefinitionAccuracy.h b/vcits/ivim/DefinitionAccuracy.h new file mode 100644 index 0000000..7ab709d --- /dev/null +++ b/vcits/ivim/DefinitionAccuracy.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DefinitionAccuracy_H_ +#define _DefinitionAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DefinitionAccuracy { + DefinitionAccuracy_oneCm = 0, + DefinitionAccuracy_twoCm = 1, + DefinitionAccuracy_fiveCm = 2, + DefinitionAccuracy_tenCm = 3, + DefinitionAccuracy_twentyCm = 4, + DefinitionAccuracy_fiftyCm = 5, + DefinitionAccuracy_oneMeter = 6, + DefinitionAccuracy_unavailable = 7 +} e_DefinitionAccuracy; + +/* DefinitionAccuracy */ +typedef long DefinitionAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DefinitionAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DefinitionAccuracy; +asn_struct_free_f DefinitionAccuracy_free; +asn_struct_print_f DefinitionAccuracy_print; +asn_constr_check_f DefinitionAccuracy_constraint; +ber_type_decoder_f DefinitionAccuracy_decode_ber; +der_type_encoder_f DefinitionAccuracy_encode_der; +xer_type_decoder_f DefinitionAccuracy_decode_xer; +xer_type_encoder_f DefinitionAccuracy_encode_xer; +oer_type_decoder_f DefinitionAccuracy_decode_oer; +oer_type_encoder_f DefinitionAccuracy_encode_oer; +per_type_decoder_f DefinitionAccuracy_decode_uper; +per_type_encoder_f DefinitionAccuracy_encode_uper; +per_type_decoder_f DefinitionAccuracy_decode_aper; +per_type_encoder_f DefinitionAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DefinitionAccuracy_H_ */ +#include diff --git a/vcits/ivim/DeltaAltitude.h b/vcits/ivim/DeltaAltitude.h new file mode 100644 index 0000000..085be70 --- /dev/null +++ b/vcits/ivim/DeltaAltitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DeltaAltitude_H_ +#define _DeltaAltitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaAltitude { + DeltaAltitude_oneCentimeterUp = 1, + DeltaAltitude_oneCentimeterDown = -1, + DeltaAltitude_unavailable = 12800 +} e_DeltaAltitude; + +/* DeltaAltitude */ +typedef long DeltaAltitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAltitude; +asn_struct_free_f DeltaAltitude_free; +asn_struct_print_f DeltaAltitude_print; +asn_constr_check_f DeltaAltitude_constraint; +ber_type_decoder_f DeltaAltitude_decode_ber; +der_type_encoder_f DeltaAltitude_encode_der; +xer_type_decoder_f DeltaAltitude_decode_xer; +xer_type_encoder_f DeltaAltitude_encode_xer; +oer_type_decoder_f DeltaAltitude_decode_oer; +oer_type_encoder_f DeltaAltitude_encode_oer; +per_type_decoder_f DeltaAltitude_decode_uper; +per_type_encoder_f DeltaAltitude_encode_uper; +per_type_decoder_f DeltaAltitude_decode_aper; +per_type_encoder_f DeltaAltitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAltitude_H_ */ +#include diff --git a/vcits/ivim/DeltaAngle.h b/vcits/ivim/DeltaAngle.h new file mode 100644 index 0000000..33a490a --- /dev/null +++ b/vcits/ivim/DeltaAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DeltaAngle_H_ +#define _DeltaAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaAngle */ +typedef long DeltaAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAngle; +asn_struct_free_f DeltaAngle_free; +asn_struct_print_f DeltaAngle_print; +asn_constr_check_f DeltaAngle_constraint; +ber_type_decoder_f DeltaAngle_decode_ber; +der_type_encoder_f DeltaAngle_encode_der; +xer_type_decoder_f DeltaAngle_decode_xer; +xer_type_encoder_f DeltaAngle_encode_xer; +oer_type_decoder_f DeltaAngle_decode_oer; +oer_type_encoder_f DeltaAngle_encode_oer; +per_type_decoder_f DeltaAngle_decode_uper; +per_type_encoder_f DeltaAngle_encode_uper; +per_type_decoder_f DeltaAngle_decode_aper; +per_type_encoder_f DeltaAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAngle_H_ */ +#include diff --git a/vcits/ivim/DeltaLatitude.h b/vcits/ivim/DeltaLatitude.h new file mode 100644 index 0000000..429f377 --- /dev/null +++ b/vcits/ivim/DeltaLatitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DeltaLatitude_H_ +#define _DeltaLatitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLatitude { + DeltaLatitude_oneMicrodegreeNorth = 10, + DeltaLatitude_oneMicrodegreeSouth = -10, + DeltaLatitude_unavailable = 131072 +} e_DeltaLatitude; + +/* DeltaLatitude */ +typedef long DeltaLatitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLatitude; +asn_struct_free_f DeltaLatitude_free; +asn_struct_print_f DeltaLatitude_print; +asn_constr_check_f DeltaLatitude_constraint; +ber_type_decoder_f DeltaLatitude_decode_ber; +der_type_encoder_f DeltaLatitude_encode_der; +xer_type_decoder_f DeltaLatitude_decode_xer; +xer_type_encoder_f DeltaLatitude_encode_xer; +oer_type_decoder_f DeltaLatitude_decode_oer; +oer_type_encoder_f DeltaLatitude_encode_oer; +per_type_decoder_f DeltaLatitude_decode_uper; +per_type_encoder_f DeltaLatitude_encode_uper; +per_type_decoder_f DeltaLatitude_decode_aper; +per_type_encoder_f DeltaLatitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLatitude_H_ */ +#include diff --git a/vcits/ivim/DeltaLongitude.h b/vcits/ivim/DeltaLongitude.h new file mode 100644 index 0000000..75b300d --- /dev/null +++ b/vcits/ivim/DeltaLongitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DeltaLongitude_H_ +#define _DeltaLongitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLongitude { + DeltaLongitude_oneMicrodegreeEast = 10, + DeltaLongitude_oneMicrodegreeWest = -10, + DeltaLongitude_unavailable = 131072 +} e_DeltaLongitude; + +/* DeltaLongitude */ +typedef long DeltaLongitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLongitude; +asn_struct_free_f DeltaLongitude_free; +asn_struct_print_f DeltaLongitude_print; +asn_constr_check_f DeltaLongitude_constraint; +ber_type_decoder_f DeltaLongitude_decode_ber; +der_type_encoder_f DeltaLongitude_encode_der; +xer_type_decoder_f DeltaLongitude_decode_xer; +xer_type_encoder_f DeltaLongitude_encode_xer; +oer_type_decoder_f DeltaLongitude_decode_oer; +oer_type_encoder_f DeltaLongitude_encode_oer; +per_type_decoder_f DeltaLongitude_decode_uper; +per_type_encoder_f DeltaLongitude_encode_uper; +per_type_decoder_f DeltaLongitude_decode_aper; +per_type_encoder_f DeltaLongitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLongitude_H_ */ +#include diff --git a/vcits/ivim/DeltaPosition.h b/vcits/ivim/DeltaPosition.h new file mode 100644 index 0000000..f1e6cd3 --- /dev/null +++ b/vcits/ivim/DeltaPosition.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DeltaPosition_H_ +#define _DeltaPosition_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaLatitude.h" +#include "DeltaLongitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaPosition */ +typedef struct DeltaPosition { + DeltaLatitude_t deltaLatitude; + DeltaLongitude_t deltaLongitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DeltaPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DeltaPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_DeltaPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_DeltaPosition_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaPosition_H_ */ +#include diff --git a/vcits/ivim/DeltaPositions.h b/vcits/ivim/DeltaPositions.h new file mode 100644 index 0000000..a2ee8f2 --- /dev/null +++ b/vcits/ivim/DeltaPositions.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DeltaPositions_H_ +#define _DeltaPositions_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DeltaPosition; + +/* DeltaPositions */ +typedef struct DeltaPositions { + A_SEQUENCE_OF(struct DeltaPosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DeltaPositions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DeltaPositions; +extern asn_SET_OF_specifics_t asn_SPC_DeltaPositions_specs_1; +extern asn_TYPE_member_t asn_MBR_DeltaPositions_1[1]; +extern asn_per_constraints_t asn_PER_type_DeltaPositions_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaPositions_H_ */ +#include diff --git a/vcits/ivim/DeltaReferencePosition.h b/vcits/ivim/DeltaReferencePosition.h new file mode 100644 index 0000000..93e6ca4 --- /dev/null +++ b/vcits/ivim/DeltaReferencePosition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DeltaReferencePosition_H_ +#define _DeltaReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaLatitude.h" +#include "DeltaLongitude.h" +#include "DeltaAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaReferencePosition */ +typedef struct DeltaReferencePosition { + DeltaLatitude_t deltaLatitude; + DeltaLongitude_t deltaLongitude; + DeltaAltitude_t deltaAltitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DeltaReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaReferencePosition_H_ */ +#include diff --git a/vcits/ivim/DeltaReferencePositions.h b/vcits/ivim/DeltaReferencePositions.h new file mode 100644 index 0000000..5cb6daf --- /dev/null +++ b/vcits/ivim/DeltaReferencePositions.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DeltaReferencePositions_H_ +#define _DeltaReferencePositions_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DeltaReferencePosition; + +/* DeltaReferencePositions */ +typedef struct DeltaReferencePositions { + A_SEQUENCE_OF(struct DeltaReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DeltaReferencePositions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DeltaReferencePositions; +extern asn_SET_OF_specifics_t asn_SPC_DeltaReferencePositions_specs_1; +extern asn_TYPE_member_t asn_MBR_DeltaReferencePositions_1[1]; +extern asn_per_constraints_t asn_PER_type_DeltaReferencePositions_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaReferencePositions_H_ */ +#include diff --git a/vcits/ivim/DeltaTime.h b/vcits/ivim/DeltaTime.h new file mode 100644 index 0000000..c847b89 --- /dev/null +++ b/vcits/ivim/DeltaTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DeltaTime_H_ +#define _DeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaTime */ +typedef long DeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaTime; +asn_struct_free_f DeltaTime_free; +asn_struct_print_f DeltaTime_print; +asn_constr_check_f DeltaTime_constraint; +ber_type_decoder_f DeltaTime_decode_ber; +der_type_encoder_f DeltaTime_encode_der; +xer_type_decoder_f DeltaTime_decode_xer; +xer_type_encoder_f DeltaTime_encode_xer; +oer_type_decoder_f DeltaTime_decode_oer; +oer_type_encoder_f DeltaTime_encode_oer; +per_type_decoder_f DeltaTime_decode_uper; +per_type_encoder_f DeltaTime_encode_uper; +per_type_decoder_f DeltaTime_decode_aper; +per_type_encoder_f DeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaTime_H_ */ +#include diff --git a/vcits/ivim/Depth.h b/vcits/ivim/Depth.h new file mode 100644 index 0000000..3cddf0e --- /dev/null +++ b/vcits/ivim/Depth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Depth_H_ +#define _Depth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Depth */ +typedef long Depth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Depth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Depth; +asn_struct_free_f Depth_free; +asn_struct_print_f Depth_print; +asn_constr_check_f Depth_constraint; +ber_type_decoder_f Depth_decode_ber; +der_type_encoder_f Depth_encode_der; +xer_type_decoder_f Depth_decode_xer; +xer_type_encoder_f Depth_encode_xer; +oer_type_decoder_f Depth_decode_oer; +oer_type_encoder_f Depth_encode_oer; +per_type_decoder_f Depth_decode_uper; +per_type_encoder_f Depth_encode_uper; +per_type_decoder_f Depth_decode_aper; +per_type_encoder_f Depth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Depth_H_ */ +#include diff --git a/vcits/ivim/DescriptiveCharacteristics.h b/vcits/ivim/DescriptiveCharacteristics.h new file mode 100644 index 0000000..b6796c3 --- /dev/null +++ b/vcits/ivim/DescriptiveCharacteristics.h @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DescriptiveCharacteristics_H_ +#define _DescriptiveCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DescriptiveCharacteristics { + DescriptiveCharacteristics_noEntry = 0, + DescriptiveCharacteristics_vehicleShape1 = 1, + DescriptiveCharacteristics_vehicleShape2 = 2, + DescriptiveCharacteristics_vehicleShape3 = 3, + DescriptiveCharacteristics_vehicleShape4 = 4, + DescriptiveCharacteristics_vehicleShape5 = 5, + DescriptiveCharacteristics_vehicleShape6 = 6, + DescriptiveCharacteristics_vehicleShape7 = 7, + DescriptiveCharacteristics_vehicleShape8 = 8, + DescriptiveCharacteristics_vehicleShape9 = 9, + DescriptiveCharacteristics_vehicleShape10 = 10, + DescriptiveCharacteristics_vehicleShape11 = 11, + DescriptiveCharacteristics_vehicleShape12 = 12, + DescriptiveCharacteristics_vehicleShape13 = 13, + DescriptiveCharacteristics_vehicleShape14 = 14, + DescriptiveCharacteristics_vehicleShape15 = 15, + DescriptiveCharacteristics_vehicleShape16 = 16, + DescriptiveCharacteristics_vehicleShape17 = 17, + DescriptiveCharacteristics_vehicleShape18 = 18, + DescriptiveCharacteristics_vehicleShape19 = 19, + DescriptiveCharacteristics_vehicleShape20 = 20, + DescriptiveCharacteristics_vehicleShape21 = 21, + DescriptiveCharacteristics_vehicleShape22 = 22, + DescriptiveCharacteristics_vehicleShape23 = 23, + DescriptiveCharacteristics_vehicleShape24 = 24, + DescriptiveCharacteristics_vehicleShape25 = 25, + DescriptiveCharacteristics_vehicleShape26 = 26, + DescriptiveCharacteristics_vehicleShape27 = 27, + DescriptiveCharacteristics_vehicleShape28 = 28, + DescriptiveCharacteristics_vehicleShape29 = 29, + DescriptiveCharacteristics_vehicleShape30 = 30, + DescriptiveCharacteristics_vehicleShape31 = 31, + DescriptiveCharacteristics_vehicleShape32 = 32, + DescriptiveCharacteristics_vehicleShape33 = 33, + DescriptiveCharacteristics_vehicleShape34 = 34, + DescriptiveCharacteristics_vehicleShape35 = 35, + DescriptiveCharacteristics_vehicleShape36 = 36, + DescriptiveCharacteristics_vehicleShape37 = 37, + DescriptiveCharacteristics_vehicleShape38 = 38, + DescriptiveCharacteristics_vehicleShape39 = 39, + DescriptiveCharacteristics_vehicleShape40 = 40, + DescriptiveCharacteristics_vehicleShape41 = 41, + DescriptiveCharacteristics_vehicleShape42 = 42, + DescriptiveCharacteristics_vehicleShape43 = 43, + DescriptiveCharacteristics_vehicleShape44 = 44, + DescriptiveCharacteristics_vehicleShape45 = 45, + DescriptiveCharacteristics_vehicleShape46 = 46, + DescriptiveCharacteristics_vehicleShape47 = 47, + DescriptiveCharacteristics_vehicleShape48 = 48, + DescriptiveCharacteristics_vehicleShape49 = 49, + DescriptiveCharacteristics_vehicleShape50 = 50 +} e_DescriptiveCharacteristics; + +/* DescriptiveCharacteristics */ +typedef long DescriptiveCharacteristics_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DescriptiveCharacteristics_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DescriptiveCharacteristics; +asn_struct_free_f DescriptiveCharacteristics_free; +asn_struct_print_f DescriptiveCharacteristics_print; +asn_constr_check_f DescriptiveCharacteristics_constraint; +ber_type_decoder_f DescriptiveCharacteristics_decode_ber; +der_type_encoder_f DescriptiveCharacteristics_encode_der; +xer_type_decoder_f DescriptiveCharacteristics_decode_xer; +xer_type_encoder_f DescriptiveCharacteristics_encode_xer; +oer_type_decoder_f DescriptiveCharacteristics_decode_oer; +oer_type_encoder_f DescriptiveCharacteristics_encode_oer; +per_type_decoder_f DescriptiveCharacteristics_decode_uper; +per_type_encoder_f DescriptiveCharacteristics_encode_uper; +per_type_decoder_f DescriptiveCharacteristics_decode_aper; +per_type_encoder_f DescriptiveCharacteristics_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DescriptiveCharacteristics_H_ */ +#include diff --git a/vcits/ivim/DescriptiveName.h b/vcits/ivim/DescriptiveName.h new file mode 100644 index 0000000..5ca157b --- /dev/null +++ b/vcits/ivim/DescriptiveName.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DescriptiveName_H_ +#define _DescriptiveName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DescriptiveName */ +typedef IA5String_t DescriptiveName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DescriptiveName; +asn_struct_free_f DescriptiveName_free; +asn_struct_print_f DescriptiveName_print; +asn_constr_check_f DescriptiveName_constraint; +ber_type_decoder_f DescriptiveName_decode_ber; +der_type_encoder_f DescriptiveName_encode_der; +xer_type_decoder_f DescriptiveName_decode_xer; +xer_type_encoder_f DescriptiveName_encode_xer; +oer_type_decoder_f DescriptiveName_decode_oer; +oer_type_encoder_f DescriptiveName_encode_oer; +per_type_decoder_f DescriptiveName_decode_uper; +per_type_encoder_f DescriptiveName_encode_uper; +per_type_decoder_f DescriptiveName_decode_aper; +per_type_encoder_f DescriptiveName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DescriptiveName_H_ */ +#include diff --git a/vcits/ivim/DestinationPlace.h b/vcits/ivim/DestinationPlace.h new file mode 100644 index 0000000..c55ed7e --- /dev/null +++ b/vcits/ivim/DestinationPlace.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DestinationPlace_H_ +#define _DestinationPlace_H_ + + +#include + +/* Including external dependencies */ +#include "DestinationType.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GddStructure; + +/* DestinationPlace */ +typedef struct DestinationPlace { + DestinationType_t destType; + struct GddStructure *destRSCode; /* OPTIONAL */ + OCTET_STRING_t *destBlob; /* OPTIONAL */ + long *placeNameIdentification; /* OPTIONAL */ + UTF8String_t *placeNameText; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DestinationPlace_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DestinationPlace; +extern asn_SEQUENCE_specifics_t asn_SPC_DestinationPlace_specs_1; +extern asn_TYPE_member_t asn_MBR_DestinationPlace_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DestinationPlace_H_ */ +#include diff --git a/vcits/ivim/DestinationPlaces.h b/vcits/ivim/DestinationPlaces.h new file mode 100644 index 0000000..873fc11 --- /dev/null +++ b/vcits/ivim/DestinationPlaces.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DestinationPlaces_H_ +#define _DestinationPlaces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DestinationPlace; + +/* DestinationPlaces */ +typedef struct DestinationPlaces { + A_SEQUENCE_OF(struct DestinationPlace) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DestinationPlaces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DestinationPlaces; +extern asn_SET_OF_specifics_t asn_SPC_DestinationPlaces_specs_1; +extern asn_TYPE_member_t asn_MBR_DestinationPlaces_1[1]; +extern asn_per_constraints_t asn_PER_type_DestinationPlaces_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DestinationPlaces_H_ */ +#include diff --git a/vcits/ivim/DestinationRoad.h b/vcits/ivim/DestinationRoad.h new file mode 100644 index 0000000..990951e --- /dev/null +++ b/vcits/ivim/DestinationRoad.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DestinationRoad_H_ +#define _DestinationRoad_H_ + + +#include + +/* Including external dependencies */ +#include "DestinationRoadType.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DestinationRoad */ +typedef struct DestinationRoad { + DestinationRoadType_t derType; + long *roadNumberIdentifier; /* OPTIONAL */ + UTF8String_t *roadNumberText; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DestinationRoad_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DestinationRoad; +extern asn_SEQUENCE_specifics_t asn_SPC_DestinationRoad_specs_1; +extern asn_TYPE_member_t asn_MBR_DestinationRoad_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DestinationRoad_H_ */ +#include diff --git a/vcits/ivim/DestinationRoadType.h b/vcits/ivim/DestinationRoadType.h new file mode 100644 index 0000000..36d176e --- /dev/null +++ b/vcits/ivim/DestinationRoadType.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DestinationRoadType_H_ +#define _DestinationRoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DestinationRoadType { + DestinationRoadType_none = 0, + DestinationRoadType_nationalHighway = 1, + DestinationRoadType_localHighway = 2, + DestinationRoadType_tollExpresswayMotorway = 3, + DestinationRoadType_internationalHighway = 4, + DestinationRoadType_highway = 5, + DestinationRoadType_expressway = 6, + DestinationRoadType_nationalRoad = 7, + DestinationRoadType_regionalProvincialRoad = 8, + DestinationRoadType_localRoad = 9, + DestinationRoadType_motorwayJunction = 10, + DestinationRoadType_diversion = 11, + DestinationRoadType_rfu1 = 12, + DestinationRoadType_rfu2 = 13, + DestinationRoadType_rfu3 = 14, + DestinationRoadType_rfu4 = 15 +} e_DestinationRoadType; + +/* DestinationRoadType */ +typedef long DestinationRoadType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DestinationRoadType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DestinationRoadType; +asn_struct_free_f DestinationRoadType_free; +asn_struct_print_f DestinationRoadType_print; +asn_constr_check_f DestinationRoadType_constraint; +ber_type_decoder_f DestinationRoadType_decode_ber; +der_type_encoder_f DestinationRoadType_encode_der; +xer_type_decoder_f DestinationRoadType_decode_xer; +xer_type_encoder_f DestinationRoadType_encode_xer; +oer_type_decoder_f DestinationRoadType_decode_oer; +oer_type_encoder_f DestinationRoadType_encode_oer; +per_type_decoder_f DestinationRoadType_decode_uper; +per_type_encoder_f DestinationRoadType_encode_uper; +per_type_decoder_f DestinationRoadType_decode_aper; +per_type_encoder_f DestinationRoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DestinationRoadType_H_ */ +#include diff --git a/vcits/ivim/DestinationRoads.h b/vcits/ivim/DestinationRoads.h new file mode 100644 index 0000000..0538203 --- /dev/null +++ b/vcits/ivim/DestinationRoads.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DestinationRoads_H_ +#define _DestinationRoads_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DestinationRoad; + +/* DestinationRoads */ +typedef struct DestinationRoads { + A_SEQUENCE_OF(struct DestinationRoad) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DestinationRoads_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DestinationRoads; +extern asn_SET_OF_specifics_t asn_SPC_DestinationRoads_specs_1; +extern asn_TYPE_member_t asn_MBR_DestinationRoads_1[1]; +extern asn_per_constraints_t asn_PER_type_DestinationRoads_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DestinationRoads_H_ */ +#include diff --git a/vcits/ivim/DestinationType.h b/vcits/ivim/DestinationType.h new file mode 100644 index 0000000..e6a1ff3 --- /dev/null +++ b/vcits/ivim/DestinationType.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DestinationType_H_ +#define _DestinationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DestinationType { + DestinationType_none = 0, + DestinationType_importantArea = 1, + DestinationType_principalArea = 2, + DestinationType_generalArea = 3, + DestinationType_wellKnownPoint = 4, + DestinationType_country = 5, + DestinationType_city = 6, + DestinationType_street = 7, + DestinationType_industrialArea = 8, + DestinationType_historicArea = 9, + DestinationType_touristicArea = 10, + DestinationType_culturalArea = 11, + DestinationType_touristicRoute = 12, + DestinationType_recommendedRoute = 13, + DestinationType_touristicAttraction = 14, + DestinationType_geographicArea = 15 +} e_DestinationType; + +/* DestinationType */ +typedef long DestinationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DestinationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DestinationType; +asn_struct_free_f DestinationType_free; +asn_struct_print_f DestinationType_print; +asn_constr_check_f DestinationType_constraint; +ber_type_decoder_f DestinationType_decode_ber; +der_type_encoder_f DestinationType_encode_der; +xer_type_decoder_f DestinationType_decode_xer; +xer_type_encoder_f DestinationType_encode_xer; +oer_type_decoder_f DestinationType_decode_oer; +oer_type_encoder_f DestinationType_encode_oer; +per_type_decoder_f DestinationType_decode_uper; +per_type_encoder_f DestinationType_encode_uper; +per_type_decoder_f DestinationType_decode_aper; +per_type_encoder_f DestinationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DestinationType_H_ */ +#include diff --git a/vcits/ivim/DieselEmissionValues.h b/vcits/ivim/DieselEmissionValues.h new file mode 100644 index 0000000..81ce564 --- /dev/null +++ b/vcits/ivim/DieselEmissionValues.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DieselEmissionValues_H_ +#define _DieselEmissionValues_H_ + + +#include + +/* Including external dependencies */ +#include "Int2.h" +#include "UnitType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DieselEmissionValues */ +typedef struct DieselEmissionValues { + struct DieselEmissionValues__particulate { + UnitType_t unitType; + long value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } particulate; + Int2_t absorptionCoeff; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DieselEmissionValues_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DieselEmissionValues; +extern asn_SEQUENCE_specifics_t asn_SPC_DieselEmissionValues_specs_1; +extern asn_TYPE_member_t asn_MBR_DieselEmissionValues_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DieselEmissionValues_H_ */ +#include diff --git a/vcits/ivim/DigitalMap.h b/vcits/ivim/DigitalMap.h new file mode 100644 index 0000000..e1cd164 --- /dev/null +++ b/vcits/ivim/DigitalMap.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DigitalMap_H_ +#define _DigitalMap_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* DigitalMap */ +typedef struct DigitalMap { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DigitalMap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DigitalMap; + +#ifdef __cplusplus +} +#endif + +#endif /* _DigitalMap_H_ */ +#include diff --git a/vcits/ivim/Direction.h b/vcits/ivim/Direction.h new file mode 100644 index 0000000..91cb413 --- /dev/null +++ b/vcits/ivim/Direction.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Direction_H_ +#define _Direction_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Direction { + Direction_sameDirection = 0, + Direction_oppositeDirection = 1, + Direction_bothDirections = 2, + Direction_valueNotUsed = 3 +} e_Direction; + +/* Direction */ +typedef long Direction_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Direction_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Direction; +asn_struct_free_f Direction_free; +asn_struct_print_f Direction_print; +asn_constr_check_f Direction_constraint; +ber_type_decoder_f Direction_decode_ber; +der_type_encoder_f Direction_encode_der; +xer_type_decoder_f Direction_decode_xer; +xer_type_encoder_f Direction_encode_xer; +oer_type_decoder_f Direction_decode_oer; +oer_type_encoder_f Direction_encode_oer; +per_type_decoder_f Direction_decode_uper; +per_type_encoder_f Direction_encode_uper; +per_type_decoder_f Direction_decode_aper; +per_type_encoder_f Direction_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Direction_H_ */ +#include diff --git a/vcits/ivim/Distance.h b/vcits/ivim/Distance.h new file mode 100644 index 0000000..0630172 --- /dev/null +++ b/vcits/ivim/Distance.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Distance_H_ +#define _Distance_H_ + + +#include + +/* Including external dependencies */ +#include +#include "Code-Units.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Distance */ +typedef struct Distance { + long value; + Code_Units_t unit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Distance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Distance; +extern asn_SEQUENCE_specifics_t asn_SPC_Distance_specs_1; +extern asn_TYPE_member_t asn_MBR_Distance_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Distance_H_ */ +#include diff --git a/vcits/ivim/DistanceOrDuration.h b/vcits/ivim/DistanceOrDuration.h new file mode 100644 index 0000000..2bb6963 --- /dev/null +++ b/vcits/ivim/DistanceOrDuration.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DistanceOrDuration_H_ +#define _DistanceOrDuration_H_ + + +#include + +/* Including external dependencies */ +#include +#include "Code-Units.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DistanceOrDuration */ +typedef struct DistanceOrDuration { + long value; + Code_Units_t unit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DistanceOrDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DistanceOrDuration; +extern asn_SEQUENCE_specifics_t asn_SPC_DistanceOrDuration_specs_1; +extern asn_TYPE_member_t asn_MBR_DistanceOrDuration_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DistanceOrDuration_H_ */ +#include diff --git a/vcits/ivim/DriveDirection.h b/vcits/ivim/DriveDirection.h new file mode 100644 index 0000000..1d458bd --- /dev/null +++ b/vcits/ivim/DriveDirection.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DriveDirection_H_ +#define _DriveDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DriveDirection { + DriveDirection_forward = 0, + DriveDirection_backward = 1, + DriveDirection_unavailable = 2 +} e_DriveDirection; + +/* DriveDirection */ +typedef long DriveDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DriveDirection; +asn_struct_free_f DriveDirection_free; +asn_struct_print_f DriveDirection_print; +asn_constr_check_f DriveDirection_constraint; +ber_type_decoder_f DriveDirection_decode_ber; +der_type_encoder_f DriveDirection_encode_der; +xer_type_decoder_f DriveDirection_decode_xer; +xer_type_encoder_f DriveDirection_encode_xer; +oer_type_decoder_f DriveDirection_decode_oer; +oer_type_encoder_f DriveDirection_encode_oer; +per_type_decoder_f DriveDirection_decode_uper; +per_type_encoder_f DriveDirection_encode_uper; +per_type_decoder_f DriveDirection_decode_aper; +per_type_encoder_f DriveDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DriveDirection_H_ */ +#include diff --git a/vcits/ivim/DrivenLineOffsetLg.h b/vcits/ivim/DrivenLineOffsetLg.h new file mode 100644 index 0000000..f2f34b9 --- /dev/null +++ b/vcits/ivim/DrivenLineOffsetLg.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DrivenLineOffsetLg_H_ +#define _DrivenLineOffsetLg_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetLg */ +typedef long DrivenLineOffsetLg_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg; +asn_struct_free_f DrivenLineOffsetLg_free; +asn_struct_print_f DrivenLineOffsetLg_print; +asn_constr_check_f DrivenLineOffsetLg_constraint; +ber_type_decoder_f DrivenLineOffsetLg_decode_ber; +der_type_encoder_f DrivenLineOffsetLg_encode_der; +xer_type_decoder_f DrivenLineOffsetLg_decode_xer; +xer_type_encoder_f DrivenLineOffsetLg_encode_xer; +oer_type_decoder_f DrivenLineOffsetLg_decode_oer; +oer_type_encoder_f DrivenLineOffsetLg_encode_oer; +per_type_decoder_f DrivenLineOffsetLg_decode_uper; +per_type_encoder_f DrivenLineOffsetLg_encode_uper; +per_type_decoder_f DrivenLineOffsetLg_decode_aper; +per_type_encoder_f DrivenLineOffsetLg_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetLg_H_ */ +#include diff --git a/vcits/ivim/DrivenLineOffsetSm.h b/vcits/ivim/DrivenLineOffsetSm.h new file mode 100644 index 0000000..03b682c --- /dev/null +++ b/vcits/ivim/DrivenLineOffsetSm.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DrivenLineOffsetSm_H_ +#define _DrivenLineOffsetSm_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetSm */ +typedef long DrivenLineOffsetSm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm; +asn_struct_free_f DrivenLineOffsetSm_free; +asn_struct_print_f DrivenLineOffsetSm_print; +asn_constr_check_f DrivenLineOffsetSm_constraint; +ber_type_decoder_f DrivenLineOffsetSm_decode_ber; +der_type_encoder_f DrivenLineOffsetSm_encode_der; +xer_type_decoder_f DrivenLineOffsetSm_decode_xer; +xer_type_encoder_f DrivenLineOffsetSm_encode_xer; +oer_type_decoder_f DrivenLineOffsetSm_decode_oer; +oer_type_encoder_f DrivenLineOffsetSm_encode_oer; +per_type_decoder_f DrivenLineOffsetSm_decode_uper; +per_type_encoder_f DrivenLineOffsetSm_encode_uper; +per_type_decoder_f DrivenLineOffsetSm_decode_aper; +per_type_encoder_f DrivenLineOffsetSm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetSm_H_ */ +#include diff --git a/vcits/ivim/DrivingLaneStatus.h b/vcits/ivim/DrivingLaneStatus.h new file mode 100644 index 0000000..84af8b1 --- /dev/null +++ b/vcits/ivim/DrivingLaneStatus.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _DrivingLaneStatus_H_ +#define _DrivingLaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivingLaneStatus */ +typedef BIT_STRING_t DrivingLaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus; +asn_struct_free_f DrivingLaneStatus_free; +asn_struct_print_f DrivingLaneStatus_print; +asn_constr_check_f DrivingLaneStatus_constraint; +ber_type_decoder_f DrivingLaneStatus_decode_ber; +der_type_encoder_f DrivingLaneStatus_encode_der; +xer_type_decoder_f DrivingLaneStatus_decode_xer; +xer_type_encoder_f DrivingLaneStatus_encode_xer; +oer_type_decoder_f DrivingLaneStatus_decode_oer; +oer_type_encoder_f DrivingLaneStatus_encode_oer; +per_type_decoder_f DrivingLaneStatus_decode_uper; +per_type_encoder_f DrivingLaneStatus_encode_uper; +per_type_decoder_f DrivingLaneStatus_decode_aper; +per_type_encoder_f DrivingLaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivingLaneStatus_H_ */ +#include diff --git a/vcits/ivim/EFC-ContextMark.h b/vcits/ivim/EFC-ContextMark.h new file mode 100644 index 0000000..9d477f9 --- /dev/null +++ b/vcits/ivim/EFC-ContextMark.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EFC_ContextMark_H_ +#define _EFC_ContextMark_H_ + + +#include + +/* Including external dependencies */ +#include "Provider.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EFC-ContextMark */ +typedef struct EFC_ContextMark { + Provider_t contractProvider; + OCTET_STRING_t typeOfContract; + long contextVersion; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EFC_ContextMark_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EFC_ContextMark; + +#ifdef __cplusplus +} +#endif + +#endif /* _EFC_ContextMark_H_ */ +#include diff --git a/vcits/ivim/EfcDsrcApplication_DriverCharacteristics.h b/vcits/ivim/EfcDsrcApplication_DriverCharacteristics.h new file mode 100644 index 0000000..8228060 --- /dev/null +++ b/vcits/ivim/EfcDsrcApplication_DriverCharacteristics.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EfcDsrcApplication_DriverCharacteristics_H_ +#define _EfcDsrcApplication_DriverCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "Int1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EfcDsrcApplication_DriverCharacteristics */ +typedef struct EfcDsrcApplication_DriverCharacteristics { + Int1_t driverClass; + Int1_t tripPurpose; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EfcDsrcApplication_DriverCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EfcDsrcApplication_DriverCharacteristics; + +#ifdef __cplusplus +} +#endif + +#endif /* _EfcDsrcApplication_DriverCharacteristics_H_ */ +#include diff --git a/vcits/ivim/EfcDsrcApplication_StationType.h b/vcits/ivim/EfcDsrcApplication_StationType.h new file mode 100644 index 0000000..339c801 --- /dev/null +++ b/vcits/ivim/EfcDsrcApplication_StationType.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EfcDsrcApplication_StationType_H_ +#define _EfcDsrcApplication_StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EfcDsrcApplication_StationType { + EfcDsrcApplication_StationType_unspecified = 0, + EfcDsrcApplication_StationType_closedEntryWithPayment = 1, + EfcDsrcApplication_StationType_closedEntryWithoutPayment = 2, + EfcDsrcApplication_StationType_closedTransit = 3, + EfcDsrcApplication_StationType_closedExit = 4, + EfcDsrcApplication_StationType_closedCredit = 5, + EfcDsrcApplication_StationType_mixed = 6, + EfcDsrcApplication_StationType_passage = 7, + EfcDsrcApplication_StationType_checkpoint = 8, + EfcDsrcApplication_StationType_reload = 9, + EfcDsrcApplication_StationType_reservedForFutureCENUse1 = 10, + EfcDsrcApplication_StationType_reservedForFutureCENUse2 = 11, + EfcDsrcApplication_StationType_reservedForFutureCENUse3 = 12, + EfcDsrcApplication_StationType_reservedForFutureCENUse4 = 13, + EfcDsrcApplication_StationType_privateUse5 = 14, + EfcDsrcApplication_StationType_privateUse6 = 15 +} e_EfcDsrcApplication_StationType; + +/* EfcDsrcApplication_StationType */ +typedef long EfcDsrcApplication_StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EfcDsrcApplication_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EfcDsrcApplication_StationType; +extern const asn_INTEGER_specifics_t asn_SPC_EfcDsrcApplication_StationType_specs_1; +asn_struct_free_f EfcDsrcApplication_StationType_free; +asn_struct_print_f EfcDsrcApplication_StationType_print; +asn_constr_check_f EfcDsrcApplication_StationType_constraint; +ber_type_decoder_f EfcDsrcApplication_StationType_decode_ber; +der_type_encoder_f EfcDsrcApplication_StationType_encode_der; +xer_type_decoder_f EfcDsrcApplication_StationType_decode_xer; +xer_type_encoder_f EfcDsrcApplication_StationType_encode_xer; +oer_type_decoder_f EfcDsrcApplication_StationType_decode_oer; +oer_type_encoder_f EfcDsrcApplication_StationType_encode_oer; +per_type_decoder_f EfcDsrcApplication_StationType_decode_uper; +per_type_encoder_f EfcDsrcApplication_StationType_encode_uper; +per_type_decoder_f EfcDsrcApplication_StationType_decode_aper; +per_type_encoder_f EfcDsrcApplication_StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EfcDsrcApplication_StationType_H_ */ +#include diff --git a/vcits/ivim/EfcDsrcApplication_TrailerCharacteristics.h b/vcits/ivim/EfcDsrcApplication_TrailerCharacteristics.h new file mode 100644 index 0000000..c6c715b --- /dev/null +++ b/vcits/ivim/EfcDsrcApplication_TrailerCharacteristics.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EfcDsrcApplication_TrailerCharacteristics_H_ +#define _EfcDsrcApplication_TrailerCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "TrailerDetails.h" +#include "Int2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EfcDsrcApplication_TrailerCharacteristics */ +typedef struct EfcDsrcApplication_TrailerCharacteristics { + TrailerDetails_t trailerDetails; + Int2_t trailerMaxLadenWeight; + Int2_t trailerWeightUnladen; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EfcDsrcApplication_TrailerCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EfcDsrcApplication_TrailerCharacteristics; + +#ifdef __cplusplus +} +#endif + +#endif /* _EfcDsrcApplication_TrailerCharacteristics_H_ */ +#include diff --git a/vcits/ivim/Elevation.h b/vcits/ivim/Elevation.h new file mode 100644 index 0000000..06c7405 --- /dev/null +++ b/vcits/ivim/Elevation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Elevation_H_ +#define _Elevation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Elevation */ +typedef long Elevation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Elevation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Elevation; +asn_struct_free_f Elevation_free; +asn_struct_print_f Elevation_print; +asn_constr_check_f Elevation_constraint; +ber_type_decoder_f Elevation_decode_ber; +der_type_encoder_f Elevation_encode_der; +xer_type_decoder_f Elevation_decode_xer; +xer_type_encoder_f Elevation_encode_xer; +oer_type_decoder_f Elevation_decode_oer; +oer_type_encoder_f Elevation_encode_oer; +per_type_decoder_f Elevation_decode_uper; +per_type_encoder_f Elevation_encode_uper; +per_type_decoder_f Elevation_decode_aper; +per_type_encoder_f Elevation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Elevation_H_ */ +#include diff --git a/vcits/ivim/ElevationConfidence.h b/vcits/ivim/ElevationConfidence.h new file mode 100644 index 0000000..5c837ac --- /dev/null +++ b/vcits/ivim/ElevationConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ElevationConfidence_H_ +#define _ElevationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ElevationConfidence { + ElevationConfidence_unavailable = 0, + ElevationConfidence_elev_500_00 = 1, + ElevationConfidence_elev_200_00 = 2, + ElevationConfidence_elev_100_00 = 3, + ElevationConfidence_elev_050_00 = 4, + ElevationConfidence_elev_020_00 = 5, + ElevationConfidence_elev_010_00 = 6, + ElevationConfidence_elev_005_00 = 7, + ElevationConfidence_elev_002_00 = 8, + ElevationConfidence_elev_001_00 = 9, + ElevationConfidence_elev_000_50 = 10, + ElevationConfidence_elev_000_20 = 11, + ElevationConfidence_elev_000_10 = 12, + ElevationConfidence_elev_000_05 = 13, + ElevationConfidence_elev_000_02 = 14, + ElevationConfidence_elev_000_01 = 15 +} e_ElevationConfidence; + +/* ElevationConfidence */ +typedef long ElevationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ElevationConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1; +asn_struct_free_f ElevationConfidence_free; +asn_struct_print_f ElevationConfidence_print; +asn_constr_check_f ElevationConfidence_constraint; +ber_type_decoder_f ElevationConfidence_decode_ber; +der_type_encoder_f ElevationConfidence_encode_der; +xer_type_decoder_f ElevationConfidence_decode_xer; +xer_type_encoder_f ElevationConfidence_encode_xer; +oer_type_decoder_f ElevationConfidence_decode_oer; +oer_type_encoder_f ElevationConfidence_encode_oer; +per_type_decoder_f ElevationConfidence_decode_uper; +per_type_encoder_f ElevationConfidence_encode_uper; +per_type_decoder_f ElevationConfidence_decode_aper; +per_type_encoder_f ElevationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ElevationConfidence_H_ */ +#include diff --git a/vcits/ivim/EmbarkationStatus.h b/vcits/ivim/EmbarkationStatus.h new file mode 100644 index 0000000..f5a3818 --- /dev/null +++ b/vcits/ivim/EmbarkationStatus.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EmbarkationStatus_H_ +#define _EmbarkationStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EmbarkationStatus */ +typedef BOOLEAN_t EmbarkationStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus; +asn_struct_free_f EmbarkationStatus_free; +asn_struct_print_f EmbarkationStatus_print; +asn_constr_check_f EmbarkationStatus_constraint; +ber_type_decoder_f EmbarkationStatus_decode_ber; +der_type_encoder_f EmbarkationStatus_encode_der; +xer_type_decoder_f EmbarkationStatus_decode_xer; +xer_type_encoder_f EmbarkationStatus_encode_xer; +oer_type_decoder_f EmbarkationStatus_decode_oer; +oer_type_encoder_f EmbarkationStatus_encode_oer; +per_type_decoder_f EmbarkationStatus_decode_uper; +per_type_encoder_f EmbarkationStatus_encode_uper; +per_type_decoder_f EmbarkationStatus_decode_aper; +per_type_encoder_f EmbarkationStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmbarkationStatus_H_ */ +#include diff --git a/vcits/ivim/EmergencyPriority.h b/vcits/ivim/EmergencyPriority.h new file mode 100644 index 0000000..6269d52 --- /dev/null +++ b/vcits/ivim/EmergencyPriority.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EmergencyPriority_H_ +#define _EmergencyPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyPriority { + EmergencyPriority_requestForRightOfWay = 0, + EmergencyPriority_requestForFreeCrossingAtATrafficLight = 1 +} e_EmergencyPriority; + +/* EmergencyPriority */ +typedef BIT_STRING_t EmergencyPriority_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyPriority; +asn_struct_free_f EmergencyPriority_free; +asn_struct_print_f EmergencyPriority_print; +asn_constr_check_f EmergencyPriority_constraint; +ber_type_decoder_f EmergencyPriority_decode_ber; +der_type_encoder_f EmergencyPriority_encode_der; +xer_type_decoder_f EmergencyPriority_decode_xer; +xer_type_encoder_f EmergencyPriority_encode_xer; +oer_type_decoder_f EmergencyPriority_decode_oer; +oer_type_encoder_f EmergencyPriority_encode_oer; +per_type_decoder_f EmergencyPriority_decode_uper; +per_type_encoder_f EmergencyPriority_encode_uper; +per_type_decoder_f EmergencyPriority_decode_aper; +per_type_encoder_f EmergencyPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyPriority_H_ */ +#include diff --git a/vcits/ivim/EmergencyVehicleApproachingSubCauseCode.h b/vcits/ivim/EmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 0000000..d9b50eb --- /dev/null +++ b/vcits/ivim/EmergencyVehicleApproachingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EmergencyVehicleApproachingSubCauseCode_H_ +#define _EmergencyVehicleApproachingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyVehicleApproachingSubCauseCode { + EmergencyVehicleApproachingSubCauseCode_unavailable = 0, + EmergencyVehicleApproachingSubCauseCode_emergencyVehicleApproaching = 1, + EmergencyVehicleApproachingSubCauseCode_prioritizedVehicleApproaching = 2 +} e_EmergencyVehicleApproachingSubCauseCode; + +/* EmergencyVehicleApproachingSubCauseCode */ +typedef long EmergencyVehicleApproachingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode; +asn_struct_free_f EmergencyVehicleApproachingSubCauseCode_free; +asn_struct_print_f EmergencyVehicleApproachingSubCauseCode_print; +asn_constr_check_f EmergencyVehicleApproachingSubCauseCode_constraint; +ber_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_ber; +der_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_der; +xer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_xer; +xer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_xer; +oer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_oer; +oer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_oer; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_uper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_uper; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_aper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyVehicleApproachingSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/EmissionType.h b/vcits/ivim/EmissionType.h new file mode 100644 index 0000000..0e2ab03 --- /dev/null +++ b/vcits/ivim/EmissionType.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EmissionType_H_ +#define _EmissionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmissionType { + EmissionType_euro1 = 0, + EmissionType_euro2 = 1, + EmissionType_euro3 = 2, + EmissionType_euro4 = 3, + EmissionType_euro5 = 4, + EmissionType_euro6 = 5 + /* + * Enumeration is extensible + */ +} e_EmissionType; + +/* EmissionType */ +typedef long EmissionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EmissionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EmissionType; +extern const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1; +asn_struct_free_f EmissionType_free; +asn_struct_print_f EmissionType_print; +asn_constr_check_f EmissionType_constraint; +ber_type_decoder_f EmissionType_decode_ber; +der_type_encoder_f EmissionType_encode_der; +xer_type_decoder_f EmissionType_decode_xer; +xer_type_encoder_f EmissionType_encode_xer; +oer_type_decoder_f EmissionType_decode_oer; +oer_type_encoder_f EmissionType_encode_oer; +per_type_decoder_f EmissionType_decode_uper; +per_type_encoder_f EmissionType_encode_uper; +per_type_decoder_f EmissionType_decode_aper; +per_type_encoder_f EmissionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmissionType_H_ */ +#include diff --git a/vcits/ivim/EnabledLaneList.h b/vcits/ivim/EnabledLaneList.h new file mode 100644 index 0000000..3e2a8e8 --- /dev/null +++ b/vcits/ivim/EnabledLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EnabledLaneList_H_ +#define _EnabledLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EnabledLaneList */ +typedef struct EnabledLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EnabledLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnabledLaneList; +extern asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_EnabledLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnabledLaneList_H_ */ +#include diff --git a/vcits/ivim/EnergyStorageType.h b/vcits/ivim/EnergyStorageType.h new file mode 100644 index 0000000..0a42db5 --- /dev/null +++ b/vcits/ivim/EnergyStorageType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EnergyStorageType_H_ +#define _EnergyStorageType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EnergyStorageType { + EnergyStorageType_hydrogenStorage = 0, + EnergyStorageType_electricEnergyStorage = 1, + EnergyStorageType_liquidPropaneGas = 2, + EnergyStorageType_compressedNaturalGas = 3, + EnergyStorageType_diesel = 4, + EnergyStorageType_gasoline = 5, + EnergyStorageType_ammonia = 6 +} e_EnergyStorageType; + +/* EnergyStorageType */ +typedef BIT_STRING_t EnergyStorageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnergyStorageType; +asn_struct_free_f EnergyStorageType_free; +asn_struct_print_f EnergyStorageType_print; +asn_constr_check_f EnergyStorageType_constraint; +ber_type_decoder_f EnergyStorageType_decode_ber; +der_type_encoder_f EnergyStorageType_encode_der; +xer_type_decoder_f EnergyStorageType_decode_xer; +xer_type_encoder_f EnergyStorageType_encode_xer; +oer_type_decoder_f EnergyStorageType_decode_oer; +oer_type_encoder_f EnergyStorageType_encode_oer; +per_type_decoder_f EnergyStorageType_decode_uper; +per_type_encoder_f EnergyStorageType_encode_uper; +per_type_decoder_f EnergyStorageType_decode_aper; +per_type_encoder_f EnergyStorageType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnergyStorageType_H_ */ +#include diff --git a/vcits/ivim/Engine.h b/vcits/ivim/Engine.h new file mode 100644 index 0000000..8e13514 --- /dev/null +++ b/vcits/ivim/Engine.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Engine_H_ +#define _Engine_H_ + + +#include + +/* Including external dependencies */ +#include "Int2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Engine */ +typedef struct Engine { + Int2_t engineCapacity; + Int2_t enginePower; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Engine_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Engine; + +#ifdef __cplusplus +} +#endif + +#endif /* _Engine_H_ */ +#include diff --git a/vcits/ivim/EngineCharacteristics.h b/vcits/ivim/EngineCharacteristics.h new file mode 100644 index 0000000..d714e6b --- /dev/null +++ b/vcits/ivim/EngineCharacteristics.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EngineCharacteristics_H_ +#define _EngineCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EngineCharacteristics { + EngineCharacteristics_noEntry = 0, + EngineCharacteristics_noEngine = 1, + EngineCharacteristics_petrolUnleaded = 2, + EngineCharacteristics_petrolLeaded = 3, + EngineCharacteristics_diesel = 4, + EngineCharacteristics_lPG = 5, + EngineCharacteristics_battery = 6, + EngineCharacteristics_solar = 7, + EngineCharacteristics_hybrid = 8, + EngineCharacteristics_hydrogen = 9 +} e_EngineCharacteristics; + +/* EngineCharacteristics */ +typedef long EngineCharacteristics_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EngineCharacteristics_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EngineCharacteristics; +asn_struct_free_f EngineCharacteristics_free; +asn_struct_print_f EngineCharacteristics_print; +asn_constr_check_f EngineCharacteristics_constraint; +ber_type_decoder_f EngineCharacteristics_decode_ber; +der_type_encoder_f EngineCharacteristics_encode_der; +xer_type_decoder_f EngineCharacteristics_decode_xer; +xer_type_encoder_f EngineCharacteristics_encode_xer; +oer_type_decoder_f EngineCharacteristics_decode_oer; +oer_type_encoder_f EngineCharacteristics_encode_oer; +per_type_decoder_f EngineCharacteristics_decode_uper; +per_type_encoder_f EngineCharacteristics_encode_uper; +per_type_decoder_f EngineCharacteristics_decode_aper; +per_type_encoder_f EngineCharacteristics_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EngineCharacteristics_H_ */ +#include diff --git a/vcits/ivim/EnvironmentalCharacteristics.h b/vcits/ivim/EnvironmentalCharacteristics.h new file mode 100644 index 0000000..e556d71 --- /dev/null +++ b/vcits/ivim/EnvironmentalCharacteristics.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EnvironmentalCharacteristics_H_ +#define _EnvironmentalCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "EuroValue.h" +#include "CopValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EnvironmentalCharacteristics */ +typedef struct EnvironmentalCharacteristics { + EuroValue_t euroValue; + CopValue_t copValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EnvironmentalCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnvironmentalCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_EnvironmentalCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_EnvironmentalCharacteristics_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnvironmentalCharacteristics_H_ */ +#include diff --git a/vcits/ivim/EquipmentOBUId.h b/vcits/ivim/EquipmentOBUId.h new file mode 100644 index 0000000..6d9e703 --- /dev/null +++ b/vcits/ivim/EquipmentOBUId.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EquipmentOBUId_H_ +#define _EquipmentOBUId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EquipmentOBUId */ +typedef OCTET_STRING_t EquipmentOBUId_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EquipmentOBUId; +asn_struct_free_f EquipmentOBUId_free; +asn_struct_print_f EquipmentOBUId_print; +asn_constr_check_f EquipmentOBUId_constraint; +ber_type_decoder_f EquipmentOBUId_decode_ber; +der_type_encoder_f EquipmentOBUId_encode_der; +xer_type_decoder_f EquipmentOBUId_decode_xer; +xer_type_encoder_f EquipmentOBUId_encode_xer; +oer_type_decoder_f EquipmentOBUId_decode_oer; +oer_type_encoder_f EquipmentOBUId_encode_oer; +per_type_decoder_f EquipmentOBUId_decode_uper; +per_type_encoder_f EquipmentOBUId_encode_uper; +per_type_decoder_f EquipmentOBUId_decode_aper; +per_type_encoder_f EquipmentOBUId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EquipmentOBUId_H_ */ +#include diff --git a/vcits/ivim/EquipmentStatus.h b/vcits/ivim/EquipmentStatus.h new file mode 100644 index 0000000..ef249a7 --- /dev/null +++ b/vcits/ivim/EquipmentStatus.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EquipmentStatus_H_ +#define _EquipmentStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EquipmentStatus */ +typedef BIT_STRING_t EquipmentStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EquipmentStatus; +asn_struct_free_f EquipmentStatus_free; +asn_struct_print_f EquipmentStatus_print; +asn_constr_check_f EquipmentStatus_constraint; +ber_type_decoder_f EquipmentStatus_decode_ber; +der_type_encoder_f EquipmentStatus_encode_der; +xer_type_decoder_f EquipmentStatus_decode_xer; +xer_type_encoder_f EquipmentStatus_encode_xer; +oer_type_decoder_f EquipmentStatus_decode_oer; +oer_type_encoder_f EquipmentStatus_encode_oer; +per_type_decoder_f EquipmentStatus_decode_uper; +per_type_encoder_f EquipmentStatus_encode_uper; +per_type_decoder_f EquipmentStatus_decode_aper; +per_type_encoder_f EquipmentStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EquipmentStatus_H_ */ +#include diff --git a/vcits/ivim/EuVehicleCategoryCode.h b/vcits/ivim/EuVehicleCategoryCode.h new file mode 100644 index 0000000..d09843f --- /dev/null +++ b/vcits/ivim/EuVehicleCategoryCode.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EuVehicleCategoryCode_H_ +#define _EuVehicleCategoryCode_H_ + + +#include + +/* Including external dependencies */ +#include "EuVehicleCategoryL.h" +#include "EuVehicleCategoryM.h" +#include "EuVehicleCategoryN.h" +#include "EuVehicleCategoryO.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryCode_PR { + EuVehicleCategoryCode_PR_NOTHING, /* No components present */ + EuVehicleCategoryCode_PR_euVehicleCategoryL, + EuVehicleCategoryCode_PR_euVehicleCategoryM, + EuVehicleCategoryCode_PR_euVehicleCategoryN, + EuVehicleCategoryCode_PR_euVehicleCategoryO, + EuVehicleCategoryCode_PR_euVehilcleCategoryT, + EuVehicleCategoryCode_PR_euVehilcleCategoryG +} EuVehicleCategoryCode_PR; + +/* EuVehicleCategoryCode */ +typedef struct EuVehicleCategoryCode { + EuVehicleCategoryCode_PR present; + union EuVehicleCategoryCode_u { + EuVehicleCategoryL_t euVehicleCategoryL; + EuVehicleCategoryM_t euVehicleCategoryM; + EuVehicleCategoryN_t euVehicleCategoryN; + EuVehicleCategoryO_t euVehicleCategoryO; + NULL_t euVehilcleCategoryT; + NULL_t euVehilcleCategoryG; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EuVehicleCategoryCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryCode; +extern asn_CHOICE_specifics_t asn_SPC_EuVehicleCategoryCode_specs_1; +extern asn_TYPE_member_t asn_MBR_EuVehicleCategoryCode_1[6]; +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryCode_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryCode_H_ */ +#include diff --git a/vcits/ivim/EuVehicleCategoryL.h b/vcits/ivim/EuVehicleCategoryL.h new file mode 100644 index 0000000..bf28ab3 --- /dev/null +++ b/vcits/ivim/EuVehicleCategoryL.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EuVehicleCategoryL_H_ +#define _EuVehicleCategoryL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryL { + EuVehicleCategoryL_l1 = 0, + EuVehicleCategoryL_l2 = 1, + EuVehicleCategoryL_l3 = 2, + EuVehicleCategoryL_l4 = 3, + EuVehicleCategoryL_l5 = 4, + EuVehicleCategoryL_l6 = 5, + EuVehicleCategoryL_l7 = 6 +} e_EuVehicleCategoryL; + +/* EuVehicleCategoryL */ +typedef long EuVehicleCategoryL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryL; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryL_specs_1; +asn_struct_free_f EuVehicleCategoryL_free; +asn_struct_print_f EuVehicleCategoryL_print; +asn_constr_check_f EuVehicleCategoryL_constraint; +ber_type_decoder_f EuVehicleCategoryL_decode_ber; +der_type_encoder_f EuVehicleCategoryL_encode_der; +xer_type_decoder_f EuVehicleCategoryL_decode_xer; +xer_type_encoder_f EuVehicleCategoryL_encode_xer; +oer_type_decoder_f EuVehicleCategoryL_decode_oer; +oer_type_encoder_f EuVehicleCategoryL_encode_oer; +per_type_decoder_f EuVehicleCategoryL_decode_uper; +per_type_encoder_f EuVehicleCategoryL_encode_uper; +per_type_decoder_f EuVehicleCategoryL_decode_aper; +per_type_encoder_f EuVehicleCategoryL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryL_H_ */ +#include diff --git a/vcits/ivim/EuVehicleCategoryM.h b/vcits/ivim/EuVehicleCategoryM.h new file mode 100644 index 0000000..d140c6e --- /dev/null +++ b/vcits/ivim/EuVehicleCategoryM.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EuVehicleCategoryM_H_ +#define _EuVehicleCategoryM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryM { + EuVehicleCategoryM_m1 = 0, + EuVehicleCategoryM_m2 = 1, + EuVehicleCategoryM_m3 = 2 +} e_EuVehicleCategoryM; + +/* EuVehicleCategoryM */ +typedef long EuVehicleCategoryM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryM; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryM_specs_1; +asn_struct_free_f EuVehicleCategoryM_free; +asn_struct_print_f EuVehicleCategoryM_print; +asn_constr_check_f EuVehicleCategoryM_constraint; +ber_type_decoder_f EuVehicleCategoryM_decode_ber; +der_type_encoder_f EuVehicleCategoryM_encode_der; +xer_type_decoder_f EuVehicleCategoryM_decode_xer; +xer_type_encoder_f EuVehicleCategoryM_encode_xer; +oer_type_decoder_f EuVehicleCategoryM_decode_oer; +oer_type_encoder_f EuVehicleCategoryM_encode_oer; +per_type_decoder_f EuVehicleCategoryM_decode_uper; +per_type_encoder_f EuVehicleCategoryM_encode_uper; +per_type_decoder_f EuVehicleCategoryM_decode_aper; +per_type_encoder_f EuVehicleCategoryM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryM_H_ */ +#include diff --git a/vcits/ivim/EuVehicleCategoryN.h b/vcits/ivim/EuVehicleCategoryN.h new file mode 100644 index 0000000..5762fb2 --- /dev/null +++ b/vcits/ivim/EuVehicleCategoryN.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EuVehicleCategoryN_H_ +#define _EuVehicleCategoryN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryN { + EuVehicleCategoryN_n1 = 0, + EuVehicleCategoryN_n2 = 1, + EuVehicleCategoryN_n3 = 2 +} e_EuVehicleCategoryN; + +/* EuVehicleCategoryN */ +typedef long EuVehicleCategoryN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryN; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryN_specs_1; +asn_struct_free_f EuVehicleCategoryN_free; +asn_struct_print_f EuVehicleCategoryN_print; +asn_constr_check_f EuVehicleCategoryN_constraint; +ber_type_decoder_f EuVehicleCategoryN_decode_ber; +der_type_encoder_f EuVehicleCategoryN_encode_der; +xer_type_decoder_f EuVehicleCategoryN_decode_xer; +xer_type_encoder_f EuVehicleCategoryN_encode_xer; +oer_type_decoder_f EuVehicleCategoryN_decode_oer; +oer_type_encoder_f EuVehicleCategoryN_encode_oer; +per_type_decoder_f EuVehicleCategoryN_decode_uper; +per_type_encoder_f EuVehicleCategoryN_encode_uper; +per_type_decoder_f EuVehicleCategoryN_decode_aper; +per_type_encoder_f EuVehicleCategoryN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryN_H_ */ +#include diff --git a/vcits/ivim/EuVehicleCategoryO.h b/vcits/ivim/EuVehicleCategoryO.h new file mode 100644 index 0000000..b9d5d8a --- /dev/null +++ b/vcits/ivim/EuVehicleCategoryO.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EuVehicleCategoryO_H_ +#define _EuVehicleCategoryO_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryO { + EuVehicleCategoryO_o1 = 0, + EuVehicleCategoryO_o2 = 1, + EuVehicleCategoryO_o3 = 2, + EuVehicleCategoryO_o4 = 3 +} e_EuVehicleCategoryO; + +/* EuVehicleCategoryO */ +typedef long EuVehicleCategoryO_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryO_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryO; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryO_specs_1; +asn_struct_free_f EuVehicleCategoryO_free; +asn_struct_print_f EuVehicleCategoryO_print; +asn_constr_check_f EuVehicleCategoryO_constraint; +ber_type_decoder_f EuVehicleCategoryO_decode_ber; +der_type_encoder_f EuVehicleCategoryO_encode_der; +xer_type_decoder_f EuVehicleCategoryO_decode_xer; +xer_type_encoder_f EuVehicleCategoryO_encode_xer; +oer_type_decoder_f EuVehicleCategoryO_decode_oer; +oer_type_encoder_f EuVehicleCategoryO_encode_oer; +per_type_decoder_f EuVehicleCategoryO_decode_uper; +per_type_encoder_f EuVehicleCategoryO_encode_uper; +per_type_decoder_f EuVehicleCategoryO_decode_aper; +per_type_encoder_f EuVehicleCategoryO_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryO_H_ */ +#include diff --git a/vcits/ivim/EuroValue.h b/vcits/ivim/EuroValue.h new file mode 100644 index 0000000..d97a80f --- /dev/null +++ b/vcits/ivim/EuroValue.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EuroValue_H_ +#define _EuroValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuroValue { + EuroValue_noEntry = 0, + EuroValue_euro_1 = 1, + EuroValue_euro_2 = 2, + EuroValue_euro_3 = 3, + EuroValue_euro_4 = 4, + EuroValue_euro_5 = 5, + EuroValue_euro_6 = 6, + EuroValue_reservedForUse1 = 7, + EuroValue_reservedForUse2 = 8, + EuroValue_reservedForUse3 = 9, + EuroValue_reservedForUse4 = 10, + EuroValue_reservedForUse5 = 11, + EuroValue_reservedForUse6 = 12, + EuroValue_reservedForUse7 = 13, + EuroValue_reservedForUse8 = 14, + EuroValue_eev = 15 +} e_EuroValue; + +/* EuroValue */ +typedef long EuroValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuroValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuroValue; +extern const asn_INTEGER_specifics_t asn_SPC_EuroValue_specs_1; +asn_struct_free_f EuroValue_free; +asn_struct_print_f EuroValue_print; +asn_constr_check_f EuroValue_constraint; +ber_type_decoder_f EuroValue_decode_ber; +der_type_encoder_f EuroValue_encode_der; +xer_type_decoder_f EuroValue_decode_xer; +xer_type_encoder_f EuroValue_encode_xer; +oer_type_decoder_f EuroValue_decode_oer; +oer_type_encoder_f EuroValue_encode_oer; +per_type_decoder_f EuroValue_decode_uper; +per_type_encoder_f EuroValue_encode_uper; +per_type_decoder_f EuroValue_decode_aper; +per_type_encoder_f EuroValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuroValue_H_ */ +#include diff --git a/vcits/ivim/EventHistory.h b/vcits/ivim/EventHistory.h new file mode 100644 index 0000000..921e419 --- /dev/null +++ b/vcits/ivim/EventHistory.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EventHistory_H_ +#define _EventHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EventPoint; + +/* EventHistory */ +typedef struct EventHistory { + A_SEQUENCE_OF(struct EventPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventHistory; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventHistory_H_ */ +#include diff --git a/vcits/ivim/EventPoint.h b/vcits/ivim/EventPoint.h new file mode 100644 index 0000000..6f55f9b --- /dev/null +++ b/vcits/ivim/EventPoint.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _EventPoint_H_ +#define _EventPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include "InformationQuality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EventPoint */ +typedef struct EventPoint { + DeltaReferencePosition_t eventPosition; + PathDeltaTime_t *eventDeltaTime; /* OPTIONAL */ + InformationQuality_t informationQuality; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_EventPoint_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventPoint_H_ */ +#include diff --git a/vcits/ivim/ExceptionalCondition.h b/vcits/ivim/ExceptionalCondition.h new file mode 100644 index 0000000..732281c --- /dev/null +++ b/vcits/ivim/ExceptionalCondition.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ExceptionalCondition_H_ +#define _ExceptionalCondition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExceptionalCondition { + ExceptionalCondition_unknown = 0, + ExceptionalCondition_publicTransportPriority = 1, + ExceptionalCondition_emergencyVehiclePriority = 2, + ExceptionalCondition_trainPriority = 3, + ExceptionalCondition_bridgeOpen = 4, + ExceptionalCondition_vehicleHeight = 5, + ExceptionalCondition_weather = 6, + ExceptionalCondition_trafficJam = 7, + ExceptionalCondition_tunnelClosure = 8, + ExceptionalCondition_meteringActive = 9, + ExceptionalCondition_truckPriority = 10, + ExceptionalCondition_bicyclePlatoonPriority = 11, + ExceptionalCondition_vehiclePlatoonPriority = 12 + /* + * Enumeration is extensible + */ +} e_ExceptionalCondition; + +/* ExceptionalCondition */ +typedef long ExceptionalCondition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ExceptionalCondition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ExceptionalCondition; +extern const asn_INTEGER_specifics_t asn_SPC_ExceptionalCondition_specs_1; +asn_struct_free_f ExceptionalCondition_free; +asn_struct_print_f ExceptionalCondition_print; +asn_constr_check_f ExceptionalCondition_constraint; +ber_type_decoder_f ExceptionalCondition_decode_ber; +der_type_encoder_f ExceptionalCondition_encode_der; +xer_type_decoder_f ExceptionalCondition_decode_xer; +xer_type_encoder_f ExceptionalCondition_encode_xer; +oer_type_decoder_f ExceptionalCondition_decode_oer; +oer_type_encoder_f ExceptionalCondition_encode_oer; +per_type_decoder_f ExceptionalCondition_decode_uper; +per_type_encoder_f ExceptionalCondition_encode_uper; +per_type_decoder_f ExceptionalCondition_decode_aper; +per_type_encoder_f ExceptionalCondition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExceptionalCondition_H_ */ +#include diff --git a/vcits/ivim/ExhaustEmissionValues.h b/vcits/ivim/ExhaustEmissionValues.h new file mode 100644 index 0000000..f29c7ac --- /dev/null +++ b/vcits/ivim/ExhaustEmissionValues.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ExhaustEmissionValues_H_ +#define _ExhaustEmissionValues_H_ + + +#include + +/* Including external dependencies */ +#include "UnitType.h" +#include +#include "Int2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ExhaustEmissionValues */ +typedef struct ExhaustEmissionValues { + UnitType_t unitType; + long emissionCO; + Int2_t emissionHC; + Int2_t emissionNOX; + Int2_t emissionHCNOX; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ExhaustEmissionValues_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ExhaustEmissionValues; +extern asn_SEQUENCE_specifics_t asn_SPC_ExhaustEmissionValues_specs_1; +extern asn_TYPE_member_t asn_MBR_ExhaustEmissionValues_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExhaustEmissionValues_H_ */ +#include diff --git a/vcits/ivim/Ext1.h b/vcits/ivim/Ext1.h new file mode 100644 index 0000000..a46cca5 --- /dev/null +++ b/vcits/ivim/Ext1.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/tmp/gen_env/build/asn1/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Ext1_H_ +#define _Ext1_H_ + + +#include + +/* Including external dependencies */ +#include +#include "Ext2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Ext1_PR { + Ext1_PR_NOTHING, /* No components present */ + Ext1_PR_content, + Ext1_PR_extension +} Ext1_PR; + +/* Ext1 */ +typedef struct Ext1 { + Ext1_PR present; + union Ext1_u { + long content; + Ext2_t extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Ext1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Ext1; +extern asn_CHOICE_specifics_t asn_SPC_Ext1_specs_1; +extern asn_TYPE_member_t asn_MBR_Ext1_1[2]; +extern asn_per_constraints_t asn_PER_type_Ext1_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Ext1_H_ */ +#include diff --git a/vcits/ivim/Ext2.h b/vcits/ivim/Ext2.h new file mode 100644 index 0000000..834d316 --- /dev/null +++ b/vcits/ivim/Ext2.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/tmp/gen_env/build/asn1/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Ext2_H_ +#define _Ext2_H_ + + +#include + +/* Including external dependencies */ +#include +#include "Ext3.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Ext2_PR { + Ext2_PR_NOTHING, /* No components present */ + Ext2_PR_content, + Ext2_PR_extension +} Ext2_PR; + +/* Ext2 */ +typedef struct Ext2 { + Ext2_PR present; + union Ext2_u { + long content; + Ext3_t extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Ext2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Ext2; +extern asn_CHOICE_specifics_t asn_SPC_Ext2_specs_1; +extern asn_TYPE_member_t asn_MBR_Ext2_1[2]; +extern asn_per_constraints_t asn_PER_type_Ext2_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Ext2_H_ */ +#include diff --git a/vcits/ivim/Ext3.h b/vcits/ivim/Ext3.h new file mode 100644 index 0000000..1528e6a --- /dev/null +++ b/vcits/ivim/Ext3.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/tmp/gen_env/build/asn1/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Ext3_H_ +#define _Ext3_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Ext3 */ +typedef long Ext3_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Ext3_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Ext3; +asn_struct_free_f Ext3_free; +asn_struct_print_f Ext3_print; +asn_constr_check_f Ext3_constraint; +ber_type_decoder_f Ext3_decode_ber; +der_type_encoder_f Ext3_encode_der; +xer_type_decoder_f Ext3_decode_xer; +xer_type_encoder_f Ext3_encode_xer; +oer_type_decoder_f Ext3_decode_oer; +oer_type_encoder_f Ext3_encode_oer; +per_type_decoder_f Ext3_decode_uper; +per_type_encoder_f Ext3_encode_uper; +per_type_decoder_f Ext3_decode_aper; +per_type_encoder_f Ext3_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Ext3_H_ */ +#include diff --git a/vcits/ivim/ExteriorLights.h b/vcits/ivim/ExteriorLights.h new file mode 100644 index 0000000..e041b17 --- /dev/null +++ b/vcits/ivim/ExteriorLights.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ExteriorLights_H_ +#define _ExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExteriorLights { + ExteriorLights_lowBeamHeadlightsOn = 0, + ExteriorLights_highBeamHeadlightsOn = 1, + ExteriorLights_leftTurnSignalOn = 2, + ExteriorLights_rightTurnSignalOn = 3, + ExteriorLights_daytimeRunningLightsOn = 4, + ExteriorLights_reverseLightOn = 5, + ExteriorLights_fogLightOn = 6, + ExteriorLights_parkingLightsOn = 7 +} e_ExteriorLights; + +/* ExteriorLights */ +typedef BIT_STRING_t ExteriorLights_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ExteriorLights; +asn_struct_free_f ExteriorLights_free; +asn_struct_print_f ExteriorLights_print; +asn_constr_check_f ExteriorLights_constraint; +ber_type_decoder_f ExteriorLights_decode_ber; +der_type_encoder_f ExteriorLights_encode_der; +xer_type_decoder_f ExteriorLights_decode_xer; +xer_type_encoder_f ExteriorLights_encode_xer; +oer_type_decoder_f ExteriorLights_decode_oer; +oer_type_encoder_f ExteriorLights_encode_oer; +per_type_decoder_f ExteriorLights_decode_uper; +per_type_encoder_f ExteriorLights_encode_uper; +per_type_decoder_f ExteriorLights_decode_aper; +per_type_encoder_f ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExteriorLights_H_ */ +#include diff --git a/vcits/ivim/FreightContainerData.h b/vcits/ivim/FreightContainerData.h new file mode 100644 index 0000000..4c6490b --- /dev/null +++ b/vcits/ivim/FreightContainerData.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _FreightContainerData_H_ +#define _FreightContainerData_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FreightContainerData */ +typedef struct FreightContainerData { + BIT_STRING_t ownerCode; + long serialNumber; + long checkDigit; + long length; + long height; + long width; + long containerTypeCode; + long maximumGrossMass; + long tareMass; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreightContainerData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreightContainerData; +extern asn_SEQUENCE_specifics_t asn_SPC_FreightContainerData_specs_1; +extern asn_TYPE_member_t asn_MBR_FreightContainerData_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreightContainerData_H_ */ +#include diff --git a/vcits/ivim/FrictionCoefficient.h b/vcits/ivim/FrictionCoefficient.h new file mode 100644 index 0000000..99645cb --- /dev/null +++ b/vcits/ivim/FrictionCoefficient.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _FrictionCoefficient_H_ +#define _FrictionCoefficient_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FrictionCoefficient */ +typedef long FrictionCoefficient_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FrictionCoefficient_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FrictionCoefficient; +asn_struct_free_f FrictionCoefficient_free; +asn_struct_print_f FrictionCoefficient_print; +asn_constr_check_f FrictionCoefficient_constraint; +ber_type_decoder_f FrictionCoefficient_decode_ber; +der_type_encoder_f FrictionCoefficient_encode_der; +xer_type_decoder_f FrictionCoefficient_decode_xer; +xer_type_encoder_f FrictionCoefficient_encode_xer; +oer_type_decoder_f FrictionCoefficient_decode_oer; +oer_type_encoder_f FrictionCoefficient_encode_oer; +per_type_decoder_f FrictionCoefficient_decode_uper; +per_type_encoder_f FrictionCoefficient_encode_uper; +per_type_decoder_f FrictionCoefficient_decode_aper; +per_type_encoder_f FrictionCoefficient_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FrictionCoefficient_H_ */ +#include diff --git a/vcits/ivim/FuelType.h b/vcits/ivim/FuelType.h new file mode 100644 index 0000000..1c6baf1 --- /dev/null +++ b/vcits/ivim/FuelType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _FuelType_H_ +#define _FuelType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FuelType */ +typedef long FuelType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FuelType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FuelType; +asn_struct_free_f FuelType_free; +asn_struct_print_f FuelType_print; +asn_constr_check_f FuelType_constraint; +ber_type_decoder_f FuelType_decode_ber; +der_type_encoder_f FuelType_encode_der; +xer_type_decoder_f FuelType_decode_xer; +xer_type_encoder_f FuelType_encode_xer; +oer_type_decoder_f FuelType_decode_oer; +oer_type_encoder_f FuelType_encode_oer; +per_type_decoder_f FuelType_decode_uper; +per_type_encoder_f FuelType_encode_uper; +per_type_decoder_f FuelType_decode_aper; +per_type_encoder_f FuelType_encode_aper; +#define FuelType_unknownFuel ((FuelType_t)0) +#define FuelType_gasoline ((FuelType_t)1) +#define FuelType_ethanol ((FuelType_t)2) +#define FuelType_diesel ((FuelType_t)3) +#define FuelType_electric ((FuelType_t)4) +#define FuelType_hybrid ((FuelType_t)5) +#define FuelType_hydrogen ((FuelType_t)6) +#define FuelType_natGasLiquid ((FuelType_t)7) +#define FuelType_natGasComp ((FuelType_t)8) +#define FuelType_propane ((FuelType_t)9) + +#ifdef __cplusplus +} +#endif + +#endif /* _FuelType_H_ */ +#include diff --git a/vcits/ivim/FullPositionVector.h b/vcits/ivim/FullPositionVector.h new file mode 100644 index 0000000..0b0d047 --- /dev/null +++ b/vcits/ivim/FullPositionVector.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _FullPositionVector_H_ +#define _FullPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include "Elevation.h" +#include "HeadingDSRC.h" +#include "TimeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DDateTime; +struct TransmissionAndSpeed; +struct PositionalAccuracy; +struct PositionConfidenceSet; +struct SpeedandHeadingandThrottleConfidence; + +/* FullPositionVector */ +typedef struct FullPositionVector { + struct DDateTime *utcTime; /* OPTIONAL */ + Longitude_t Long; + Latitude_t lat; + Elevation_t *elevation; /* OPTIONAL */ + HeadingDSRC_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + struct PositionalAccuracy *posAccuracy; /* OPTIONAL */ + TimeConfidence_t *timeConfidence; /* OPTIONAL */ + struct PositionConfidenceSet *posConfidence; /* OPTIONAL */ + struct SpeedandHeadingandThrottleConfidence *speedConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FullPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FullPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_FullPositionVector_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FullPositionVector_H_ */ +#include diff --git a/vcits/ivim/FutureCharacteristics.h b/vcits/ivim/FutureCharacteristics.h new file mode 100644 index 0000000..04de01b --- /dev/null +++ b/vcits/ivim/FutureCharacteristics.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _FutureCharacteristics_H_ +#define _FutureCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FutureCharacteristics { + FutureCharacteristics_noEntry = 0, + FutureCharacteristics_airSuspension = 1 +} e_FutureCharacteristics; + +/* FutureCharacteristics */ +typedef long FutureCharacteristics_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FutureCharacteristics_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FutureCharacteristics; +asn_struct_free_f FutureCharacteristics_free; +asn_struct_print_f FutureCharacteristics_print; +asn_constr_check_f FutureCharacteristics_constraint; +ber_type_decoder_f FutureCharacteristics_decode_ber; +der_type_encoder_f FutureCharacteristics_encode_der; +xer_type_decoder_f FutureCharacteristics_decode_xer; +xer_type_encoder_f FutureCharacteristics_encode_xer; +oer_type_decoder_f FutureCharacteristics_decode_oer; +oer_type_encoder_f FutureCharacteristics_encode_oer; +per_type_decoder_f FutureCharacteristics_decode_uper; +per_type_encoder_f FutureCharacteristics_encode_uper; +per_type_decoder_f FutureCharacteristics_decode_aper; +per_type_encoder_f FutureCharacteristics_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FutureCharacteristics_H_ */ +#include diff --git a/vcits/ivim/GNSSstatus.h b/vcits/ivim/GNSSstatus.h new file mode 100644 index 0000000..bcfdf01 --- /dev/null +++ b/vcits/ivim/GNSSstatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GNSSstatus_H_ +#define _GNSSstatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GNSSstatus { + GNSSstatus_unavailable = 0, + GNSSstatus_isHealthy = 1, + GNSSstatus_isMonitored = 2, + GNSSstatus_baseStationType = 3, + GNSSstatus_aPDOPofUnder5 = 4, + GNSSstatus_inViewOfUnder5 = 5, + GNSSstatus_localCorrectionsPresent = 6, + GNSSstatus_networkCorrectionsPresent = 7 +} e_GNSSstatus; + +/* GNSSstatus */ +typedef BIT_STRING_t GNSSstatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GNSSstatus; +asn_struct_free_f GNSSstatus_free; +asn_struct_print_f GNSSstatus_print; +asn_constr_check_f GNSSstatus_constraint; +ber_type_decoder_f GNSSstatus_decode_ber; +der_type_encoder_f GNSSstatus_encode_der; +xer_type_decoder_f GNSSstatus_decode_xer; +xer_type_encoder_f GNSSstatus_encode_xer; +oer_type_decoder_f GNSSstatus_decode_oer; +oer_type_encoder_f GNSSstatus_encode_oer; +per_type_decoder_f GNSSstatus_decode_uper; +per_type_encoder_f GNSSstatus_encode_uper; +per_type_decoder_f GNSSstatus_decode_aper; +per_type_encoder_f GNSSstatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNSSstatus_H_ */ +#include diff --git a/vcits/ivim/GapBetweenVehicles.h b/vcits/ivim/GapBetweenVehicles.h new file mode 100644 index 0000000..4ed10b4 --- /dev/null +++ b/vcits/ivim/GapBetweenVehicles.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GapBetweenVehicles_H_ +#define _GapBetweenVehicles_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GapBetweenVehicles */ +typedef long GapBetweenVehicles_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GapBetweenVehicles_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GapBetweenVehicles; +asn_struct_free_f GapBetweenVehicles_free; +asn_struct_print_f GapBetweenVehicles_print; +asn_constr_check_f GapBetweenVehicles_constraint; +ber_type_decoder_f GapBetweenVehicles_decode_ber; +der_type_encoder_f GapBetweenVehicles_encode_der; +xer_type_decoder_f GapBetweenVehicles_decode_xer; +xer_type_encoder_f GapBetweenVehicles_encode_xer; +oer_type_decoder_f GapBetweenVehicles_decode_oer; +oer_type_encoder_f GapBetweenVehicles_encode_oer; +per_type_decoder_f GapBetweenVehicles_decode_uper; +per_type_encoder_f GapBetweenVehicles_encode_uper; +per_type_decoder_f GapBetweenVehicles_decode_aper; +per_type_encoder_f GapBetweenVehicles_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GapBetweenVehicles_H_ */ +#include diff --git a/vcits/ivim/GddAttribute.h b/vcits/ivim/GddAttribute.h new file mode 100644 index 0000000..031ccee --- /dev/null +++ b/vcits/ivim/GddAttribute.h @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GddAttribute_H_ +#define _GddAttribute_H_ + + +#include + +/* Including external dependencies */ +#include "InternationalSign-applicablePeriod.h" +#include "InternationalSign-exemptedApplicablePeriod.h" +#include "InternationalSign-directionalFlowOfLane.h" +#include "InternationalSign-applicableVehicleDimensions.h" +#include "InternationalSign-speedLimits.h" +#include "InternationalSign-rateOfIncline.h" +#include "InternationalSign-distanceBetweenVehicles.h" +#include "InternationalSign-section.h" +#include "InternationalSign-numberOfLane.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GddAttribute_PR { + GddAttribute_PR_NOTHING, /* No components present */ + GddAttribute_PR_dtm, + GddAttribute_PR_edt, + GddAttribute_PR_dfl, + GddAttribute_PR_ved, + GddAttribute_PR_spe, + GddAttribute_PR_roi, + GddAttribute_PR_dbv, + GddAttribute_PR_ddd, + GddAttribute_PR_set, + GddAttribute_PR_nol +} GddAttribute_PR; + +/* Forward declarations */ +struct InternationalSign_destinationInformation; + +/* GddAttribute */ +typedef struct GddAttribute { + GddAttribute_PR present; + union GddAttribute_u { + InternationalSign_applicablePeriod_t dtm; + InternationalSign_exemptedApplicablePeriod_t edt; + InternationalSign_directionalFlowOfLane_t dfl; + InternationalSign_applicableVehicleDimensions_t ved; + InternationalSign_speedLimits_t spe; + InternationalSign_rateOfIncline_t roi; + InternationalSign_distanceBetweenVehicles_t dbv; + struct InternationalSign_destinationInformation *ddd; + InternationalSign_section_t set; + InternationalSign_numberOfLane_t nol; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GddAttribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GddAttribute; +extern asn_CHOICE_specifics_t asn_SPC_GddAttribute_specs_1; +extern asn_TYPE_member_t asn_MBR_GddAttribute_1[10]; +extern asn_per_constraints_t asn_PER_type_GddAttribute_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _GddAttribute_H_ */ +#include diff --git a/vcits/ivim/GddAttributes.h b/vcits/ivim/GddAttributes.h new file mode 100644 index 0000000..e2c4626 --- /dev/null +++ b/vcits/ivim/GddAttributes.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GddAttributes_H_ +#define _GddAttributes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GddAttribute; + +/* GddAttributes */ +typedef struct GddAttributes { + A_SEQUENCE_OF(struct GddAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GddAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GddAttributes; +extern asn_SET_OF_specifics_t asn_SPC_GddAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_GddAttributes_1[1]; +extern asn_per_constraints_t asn_PER_type_GddAttributes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _GddAttributes_H_ */ +#include diff --git a/vcits/ivim/GddStructure.h b/vcits/ivim/GddStructure.h new file mode 100644 index 0000000..4715ada --- /dev/null +++ b/vcits/ivim/GddStructure.h @@ -0,0 +1,108 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GddStructure_H_ +#define _GddStructure_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GddStructure__pictogramCode__serviceCategoryCode_PR { + GddStructure__pictogramCode__serviceCategoryCode_PR_NOTHING, /* No components present */ + GddStructure__pictogramCode__serviceCategoryCode_PR_trafficSignPictogram, + GddStructure__pictogramCode__serviceCategoryCode_PR_publicFacilitiesPictogram, + GddStructure__pictogramCode__serviceCategoryCode_PR_ambientOrRoadConditionPictogram + /* Extensions may appear below */ + +} GddStructure__pictogramCode__serviceCategoryCode_PR; +typedef enum GddStructure__pictogramCode__serviceCategoryCode__trafficSignPictogram { + GddStructure__pictogramCode__serviceCategoryCode__trafficSignPictogram_dangerWarning = 0, + GddStructure__pictogramCode__serviceCategoryCode__trafficSignPictogram_regulatory = 1, + GddStructure__pictogramCode__serviceCategoryCode__trafficSignPictogram_informative = 2 + /* + * Enumeration is extensible + */ +} e_GddStructure__pictogramCode__serviceCategoryCode__trafficSignPictogram; +typedef enum GddStructure__pictogramCode__serviceCategoryCode__publicFacilitiesPictogram { + GddStructure__pictogramCode__serviceCategoryCode__publicFacilitiesPictogram_publicFacilities = 0 + /* + * Enumeration is extensible + */ +} e_GddStructure__pictogramCode__serviceCategoryCode__publicFacilitiesPictogram; +typedef enum GddStructure__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram { + GddStructure__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram_ambientCondition = 0, + GddStructure__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram_roadCondition = 1 + /* + * Enumeration is extensible + */ +} e_GddStructure__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram; + +/* Forward declarations */ +struct GddAttributes; + +/* GddStructure */ +typedef struct GddStructure { + struct GddStructure__pictogramCode { + OCTET_STRING_t *countryCode; /* OPTIONAL */ + struct GddStructure__pictogramCode__serviceCategoryCode { + GddStructure__pictogramCode__serviceCategoryCode_PR present; + union GddStructure__pictogramCode__serviceCategoryCode_u { + long trafficSignPictogram; + long publicFacilitiesPictogram; + long ambientOrRoadConditionPictogram; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } serviceCategoryCode; + struct GddStructure__pictogramCode__pictogramCategoryCode { + long nature; + long serialNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } pictogramCategoryCode; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } pictogramCode; + struct GddAttributes *attributes; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GddStructure_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_trafficSignPictogram_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_publicFacilitiesPictogram_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ambientOrRoadConditionPictogram_13; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_GddStructure; +extern asn_SEQUENCE_specifics_t asn_SPC_GddStructure_specs_1; +extern asn_TYPE_member_t asn_MBR_GddStructure_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GddStructure_H_ */ +#include diff --git a/vcits/ivim/GeneralIviContainer.h b/vcits/ivim/GeneralIviContainer.h new file mode 100644 index 0000000..58540c3 --- /dev/null +++ b/vcits/ivim/GeneralIviContainer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GeneralIviContainer_H_ +#define _GeneralIviContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GicPart; + +/* GeneralIviContainer */ +typedef struct GeneralIviContainer { + A_SEQUENCE_OF(struct GicPart) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GeneralIviContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GeneralIviContainer; +extern asn_SET_OF_specifics_t asn_SPC_GeneralIviContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_GeneralIviContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_GeneralIviContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _GeneralIviContainer_H_ */ +#include diff --git a/vcits/ivim/GenericLane.h b/vcits/ivim/GenericLane.h new file mode 100644 index 0000000..250e963 --- /dev/null +++ b/vcits/ivim/GenericLane.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GenericLane_H_ +#define _GenericLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "DescriptiveName.h" +#include "ApproachID.h" +#include "LaneAttributes.h" +#include "AllowedManeuvers.h" +#include "NodeListXY.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectsToList; +struct OverlayLaneList; +struct Reg_GenericLane; + +/* GenericLane */ +typedef struct GenericLane { + LaneID_t laneID; + DescriptiveName_t *name; /* OPTIONAL */ + ApproachID_t *ingressApproach; /* OPTIONAL */ + ApproachID_t *egressApproach; /* OPTIONAL */ + LaneAttributes_t laneAttributes; + AllowedManeuvers_t *maneuvers; /* OPTIONAL */ + NodeListXY_t nodeList; + struct ConnectsToList *connectsTo; /* OPTIONAL */ + struct OverlayLaneList *overlays; /* OPTIONAL */ + struct GenericLane__regional { + A_SEQUENCE_OF(struct Reg_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GenericLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1; +extern asn_TYPE_member_t asn_MBR_GenericLane_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GenericLane_H_ */ +#include diff --git a/vcits/ivim/GeoGraphicalLimit.h b/vcits/ivim/GeoGraphicalLimit.h new file mode 100644 index 0000000..aabe603 --- /dev/null +++ b/vcits/ivim/GeoGraphicalLimit.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GeoGraphicalLimit_H_ +#define _GeoGraphicalLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GeoGraphicalLimit { + GeoGraphicalLimit_globalRestriction = 0, + GeoGraphicalLimit_regionalRestriction = 1, + GeoGraphicalLimit_nationalRestriction = 2, + GeoGraphicalLimit_district = 3, + GeoGraphicalLimit_issuerCoverageRestriction = 4, + GeoGraphicalLimit_reservedForCEN1 = 5, + GeoGraphicalLimit_reservedForCEN2 = 6, + GeoGraphicalLimit_issuerSpecificRestriction = 7 +} e_GeoGraphicalLimit; + +/* GeoGraphicalLimit */ +typedef BIT_STRING_t GeoGraphicalLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GeoGraphicalLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GeoGraphicalLimit; +asn_struct_free_f GeoGraphicalLimit_free; +asn_struct_print_f GeoGraphicalLimit_print; +asn_constr_check_f GeoGraphicalLimit_constraint; +ber_type_decoder_f GeoGraphicalLimit_decode_ber; +der_type_encoder_f GeoGraphicalLimit_encode_der; +xer_type_decoder_f GeoGraphicalLimit_decode_xer; +xer_type_encoder_f GeoGraphicalLimit_encode_xer; +oer_type_decoder_f GeoGraphicalLimit_decode_oer; +oer_type_encoder_f GeoGraphicalLimit_encode_oer; +per_type_decoder_f GeoGraphicalLimit_decode_uper; +per_type_encoder_f GeoGraphicalLimit_encode_uper; +per_type_decoder_f GeoGraphicalLimit_decode_aper; +per_type_encoder_f GeoGraphicalLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GeoGraphicalLimit_H_ */ +#include diff --git a/vcits/ivim/GeographicLocationContainer.h b/vcits/ivim/GeographicLocationContainer.h new file mode 100644 index 0000000..16c2f75 --- /dev/null +++ b/vcits/ivim/GeographicLocationContainer.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GeographicLocationContainer_H_ +#define _GeographicLocationContainer_H_ + + +#include + +/* Including external dependencies */ +#include "ReferencePosition.h" +#include "TimestampIts.h" +#include "GlcParts.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Heading; +struct Speed; + +/* GeographicLocationContainer */ +typedef struct GeographicLocationContainer { + ReferencePosition_t referencePosition; + TimestampIts_t *referencePositionTime; /* OPTIONAL */ + struct Heading *referencePositionHeading; /* OPTIONAL */ + struct Speed *referencePositionSpeed; /* OPTIONAL */ + GlcParts_t parts; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GeographicLocationContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GeographicLocationContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_GeographicLocationContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_GeographicLocationContainer_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GeographicLocationContainer_H_ */ +#include diff --git a/vcits/ivim/GetInstanceRq.h b/vcits/ivim/GetInstanceRq.h new file mode 100644 index 0000000..b1819eb --- /dev/null +++ b/vcits/ivim/GetInstanceRq.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GetInstanceRq_H_ +#define _GetInstanceRq_H_ + + +#include + +/* Including external dependencies */ +#include +#include "AttributeIdList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GetInstanceRq */ +typedef struct GetInstanceRq { + long posOfFirstInstance; + long posOfLastInstance; + AttributeIdList_t attributeIdList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GetInstanceRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GetInstanceRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _GetInstanceRq_H_ */ +#include diff --git a/vcits/ivim/GetInstanceRs.h b/vcits/ivim/GetInstanceRs.h new file mode 100644 index 0000000..066f450 --- /dev/null +++ b/vcits/ivim/GetInstanceRs.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GetInstanceRs_H_ +#define _GetInstanceRs_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _GetInstanceRs_H_ */ +#include diff --git a/vcits/ivim/GetStampedRq.h b/vcits/ivim/GetStampedRq.h new file mode 100644 index 0000000..06a9c93 --- /dev/null +++ b/vcits/ivim/GetStampedRq.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GetStampedRq_H_ +#define _GetStampedRq_H_ + + +#include + +/* Including external dependencies */ +#include "AttributeIdList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GetStampedRq */ +typedef struct GetStampedRq { + AttributeIdList_t attributeIdList; + OCTET_STRING_t nonce; + long keyRef; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GetStampedRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GetStampedRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _GetStampedRq_H_ */ +#include diff --git a/vcits/ivim/GetStampedRs.h b/vcits/ivim/GetStampedRs.h new file mode 100644 index 0000000..f34b2fa --- /dev/null +++ b/vcits/ivim/GetStampedRs.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GetStampedRs_H_ +#define _GetStampedRs_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _GetStampedRs_H_ */ +#include diff --git a/vcits/ivim/GicPart.h b/vcits/ivim/GicPart.h new file mode 100644 index 0000000..bc8b560 --- /dev/null +++ b/vcits/ivim/GicPart.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GicPart_H_ +#define _GicPart_H_ + + +#include + +/* Including external dependencies */ +#include "Direction.h" +#include +#include "IviType.h" +#include "IviPurpose.h" +#include "LaneStatus.h" +#include "IVI_DriverCharacteristics.h" +#include "RoadSignCodes.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ZoneIds; +struct VarLengthNumber; +struct LanePositions; +struct VehicleCharacteristicsList; +struct ConstraintTextLines1; + +/* GicPart */ +typedef struct GicPart { + struct ZoneIds *detectionZoneIds; /* OPTIONAL */ + struct VarLengthNumber *its_Rrid; /* OPTIONAL */ + struct ZoneIds *relevanceZoneIds; /* OPTIONAL */ + Direction_t *direction; /* OPTIONAL */ + struct ZoneIds *driverAwarenessZoneIds; /* OPTIONAL */ + long *minimumAwarenessTime; /* OPTIONAL */ + struct LanePositions *applicableLanes; /* OPTIONAL */ + IviType_t iviType; + IviPurpose_t *iviPurpose; /* OPTIONAL */ + LaneStatus_t *laneStatus; /* OPTIONAL */ + struct VehicleCharacteristicsList *vehicleCharacteristics; /* OPTIONAL */ + IVI_DriverCharacteristics_t *driverCharacteristics; /* OPTIONAL */ + long *layoutId; /* OPTIONAL */ + long *preStoredlayoutId; /* OPTIONAL */ + RoadSignCodes_t roadSignCodes; + struct ConstraintTextLines1 *extraText; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GicPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GicPart; +extern asn_SEQUENCE_specifics_t asn_SPC_GicPart_specs_1; +extern asn_TYPE_member_t asn_MBR_GicPart_1[16]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GicPart_H_ */ +#include diff --git a/vcits/ivim/GlcPart.h b/vcits/ivim/GlcPart.h new file mode 100644 index 0000000..455e2a4 --- /dev/null +++ b/vcits/ivim/GlcPart.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GlcPart_H_ +#define _GlcPart_H_ + + +#include + +/* Including external dependencies */ +#include "Zid.h" +#include "LanePosition.h" +#include +#include "HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Zone; + +/* GlcPart */ +typedef struct GlcPart { + Zid_t zoneId; + LanePosition_t *laneNumber; /* OPTIONAL */ + long *zoneExtension; /* OPTIONAL */ + HeadingValue_t *zoneHeading; /* OPTIONAL */ + struct Zone *zone; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlcPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GlcPart; +extern asn_SEQUENCE_specifics_t asn_SPC_GlcPart_specs_1; +extern asn_TYPE_member_t asn_MBR_GlcPart_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlcPart_H_ */ +#include diff --git a/vcits/ivim/GlcParts.h b/vcits/ivim/GlcParts.h new file mode 100644 index 0000000..3ef2f31 --- /dev/null +++ b/vcits/ivim/GlcParts.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GlcParts_H_ +#define _GlcParts_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GlcPart; + +/* GlcParts */ +typedef struct GlcParts { + A_SEQUENCE_OF(struct GlcPart) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlcParts_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GlcParts; +extern asn_SET_OF_specifics_t asn_SPC_GlcParts_specs_1; +extern asn_TYPE_member_t asn_MBR_GlcParts_1[1]; +extern asn_per_constraints_t asn_PER_type_GlcParts_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlcParts_H_ */ +#include diff --git a/vcits/ivim/GoodsType.h b/vcits/ivim/GoodsType.h new file mode 100644 index 0000000..f4a7df9 --- /dev/null +++ b/vcits/ivim/GoodsType.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _GoodsType_H_ +#define _GoodsType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GoodsType { + GoodsType_ammunition = 0, + GoodsType_chemicals = 1, + GoodsType_empty = 2, + GoodsType_fuel = 3, + GoodsType_glass = 4, + GoodsType_dangerous = 5, + GoodsType_liquid = 6, + GoodsType_liveStock = 7, + GoodsType_dangerousForPeople = 8, + GoodsType_dangerousForTheEnvironment = 9, + GoodsType_dangerousForWater = 10, + GoodsType_perishableProducts = 11, + GoodsType_pharmaceutical = 12, + GoodsType_vehicles = 13 +} e_GoodsType; + +/* GoodsType */ +typedef long GoodsType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GoodsType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GoodsType; +asn_struct_free_f GoodsType_free; +asn_struct_print_f GoodsType_print; +asn_constr_check_f GoodsType_constraint; +ber_type_decoder_f GoodsType_decode_ber; +der_type_encoder_f GoodsType_encode_der; +xer_type_decoder_f GoodsType_decode_xer; +xer_type_encoder_f GoodsType_encode_xer; +oer_type_decoder_f GoodsType_decode_oer; +oer_type_encoder_f GoodsType_encode_oer; +per_type_decoder_f GoodsType_decode_uper; +per_type_encoder_f GoodsType_encode_uper; +per_type_decoder_f GoodsType_decode_aper; +per_type_encoder_f GoodsType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GoodsType_H_ */ +#include diff --git a/vcits/ivim/HardShoulderStatus.h b/vcits/ivim/HardShoulderStatus.h new file mode 100644 index 0000000..67f6304 --- /dev/null +++ b/vcits/ivim/HardShoulderStatus.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _HardShoulderStatus_H_ +#define _HardShoulderStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HardShoulderStatus { + HardShoulderStatus_availableForStopping = 0, + HardShoulderStatus_closed = 1, + HardShoulderStatus_availableForDriving = 2 +} e_HardShoulderStatus; + +/* HardShoulderStatus */ +typedef long HardShoulderStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus; +extern const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1; +asn_struct_free_f HardShoulderStatus_free; +asn_struct_print_f HardShoulderStatus_print; +asn_constr_check_f HardShoulderStatus_constraint; +ber_type_decoder_f HardShoulderStatus_decode_ber; +der_type_encoder_f HardShoulderStatus_encode_der; +xer_type_decoder_f HardShoulderStatus_decode_xer; +xer_type_encoder_f HardShoulderStatus_encode_xer; +oer_type_decoder_f HardShoulderStatus_decode_oer; +oer_type_encoder_f HardShoulderStatus_encode_oer; +per_type_decoder_f HardShoulderStatus_decode_uper; +per_type_encoder_f HardShoulderStatus_encode_uper; +per_type_decoder_f HardShoulderStatus_decode_aper; +per_type_encoder_f HardShoulderStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HardShoulderStatus_H_ */ +#include diff --git a/vcits/ivim/HazardousLocation-AnimalOnTheRoadSubCauseCode.h b/vcits/ivim/HazardousLocation-AnimalOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..c54e093 --- /dev/null +++ b/vcits/ivim/HazardousLocation-AnimalOnTheRoadSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_AnimalOnTheRoadSubCauseCode { + HazardousLocation_AnimalOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimals = 1, + HazardousLocation_AnimalOnTheRoadSubCauseCode_herdOfAnimals = 2, + HazardousLocation_AnimalOnTheRoadSubCauseCode_smallAnimals = 3, + HazardousLocation_AnimalOnTheRoadSubCauseCode_largeAnimals = 4 +} e_HazardousLocation_AnimalOnTheRoadSubCauseCode; + +/* HazardousLocation-AnimalOnTheRoadSubCauseCode */ +typedef long HazardousLocation_AnimalOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_AnimalOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_AnimalOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/HazardousLocation-DangerousCurveSubCauseCode.h b/vcits/ivim/HazardousLocation-DangerousCurveSubCauseCode.h new file mode 100644 index 0000000..9c64790 --- /dev/null +++ b/vcits/ivim/HazardousLocation-DangerousCurveSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _HazardousLocation_DangerousCurveSubCauseCode_H_ +#define _HazardousLocation_DangerousCurveSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_DangerousCurveSubCauseCode { + HazardousLocation_DangerousCurveSubCauseCode_unavailable = 0, + HazardousLocation_DangerousCurveSubCauseCode_dangerousLeftTurnCurve = 1, + HazardousLocation_DangerousCurveSubCauseCode_dangerousRightTurnCurve = 2, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithUnknownTurningDirection = 3, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithLeftTurn = 4, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithRightTurn = 5 +} e_HazardousLocation_DangerousCurveSubCauseCode; + +/* HazardousLocation-DangerousCurveSubCauseCode */ +typedef long HazardousLocation_DangerousCurveSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode; +asn_struct_free_f HazardousLocation_DangerousCurveSubCauseCode_free; +asn_struct_print_f HazardousLocation_DangerousCurveSubCauseCode_print; +asn_constr_check_f HazardousLocation_DangerousCurveSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_DangerousCurveSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h b/vcits/ivim/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..dd4437c --- /dev/null +++ b/vcits/ivim/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_ObstacleOnTheRoadSubCauseCode { + HazardousLocation_ObstacleOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_shedLoad = 1, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfVehicles = 2, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfTyres = 3, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_bigObjects = 4, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_fallenTrees = 5, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_hubCaps = 6, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_waitingVehicles = 7 +} e_HazardousLocation_ObstacleOnTheRoadSubCauseCode; + +/* HazardousLocation-ObstacleOnTheRoadSubCauseCode */ +typedef long HazardousLocation_ObstacleOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/HazardousLocation-SurfaceConditionSubCauseCode.h b/vcits/ivim/HazardousLocation-SurfaceConditionSubCauseCode.h new file mode 100644 index 0000000..0c07df3 --- /dev/null +++ b/vcits/ivim/HazardousLocation-SurfaceConditionSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _HazardousLocation_SurfaceConditionSubCauseCode_H_ +#define _HazardousLocation_SurfaceConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_SurfaceConditionSubCauseCode { + HazardousLocation_SurfaceConditionSubCauseCode_unavailable = 0, + HazardousLocation_SurfaceConditionSubCauseCode_rockfalls = 1, + HazardousLocation_SurfaceConditionSubCauseCode_earthquakeDamage = 2, + HazardousLocation_SurfaceConditionSubCauseCode_sewerCollapse = 3, + HazardousLocation_SurfaceConditionSubCauseCode_subsidence = 4, + HazardousLocation_SurfaceConditionSubCauseCode_snowDrifts = 5, + HazardousLocation_SurfaceConditionSubCauseCode_stormDamage = 6, + HazardousLocation_SurfaceConditionSubCauseCode_burstPipe = 7, + HazardousLocation_SurfaceConditionSubCauseCode_volcanoEruption = 8, + HazardousLocation_SurfaceConditionSubCauseCode_fallingIce = 9 +} e_HazardousLocation_SurfaceConditionSubCauseCode; + +/* HazardousLocation-SurfaceConditionSubCauseCode */ +typedef long HazardousLocation_SurfaceConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode; +asn_struct_free_f HazardousLocation_SurfaceConditionSubCauseCode_free; +asn_struct_print_f HazardousLocation_SurfaceConditionSubCauseCode_print; +asn_constr_check_f HazardousLocation_SurfaceConditionSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_SurfaceConditionSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/Heading.h b/vcits/ivim/Heading.h new file mode 100644 index 0000000..89660da --- /dev/null +++ b/vcits/ivim/Heading.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Heading_H_ +#define _Heading_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingValue.h" +#include "HeadingConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Heading */ +typedef struct Heading { + HeadingValue_t headingValue; + HeadingConfidence_t headingConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Heading_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Heading; +extern asn_SEQUENCE_specifics_t asn_SPC_Heading_specs_1; +extern asn_TYPE_member_t asn_MBR_Heading_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Heading_H_ */ +#include diff --git a/vcits/ivim/HeadingConfidence.h b/vcits/ivim/HeadingConfidence.h new file mode 100644 index 0000000..05eb00e --- /dev/null +++ b/vcits/ivim/HeadingConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _HeadingConfidence_H_ +#define _HeadingConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidence { + HeadingConfidence_equalOrWithinZeroPointOneDegree = 1, + HeadingConfidence_equalOrWithinOneDegree = 10, + HeadingConfidence_outOfRange = 126, + HeadingConfidence_unavailable = 127 +} e_HeadingConfidence; + +/* HeadingConfidence */ +typedef long HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidence; +asn_struct_free_f HeadingConfidence_free; +asn_struct_print_f HeadingConfidence_print; +asn_constr_check_f HeadingConfidence_constraint; +ber_type_decoder_f HeadingConfidence_decode_ber; +der_type_encoder_f HeadingConfidence_encode_der; +xer_type_decoder_f HeadingConfidence_decode_xer; +xer_type_encoder_f HeadingConfidence_encode_xer; +oer_type_decoder_f HeadingConfidence_decode_oer; +oer_type_encoder_f HeadingConfidence_encode_oer; +per_type_decoder_f HeadingConfidence_decode_uper; +per_type_encoder_f HeadingConfidence_encode_uper; +per_type_decoder_f HeadingConfidence_decode_aper; +per_type_encoder_f HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidence_H_ */ +#include diff --git a/vcits/ivim/HeadingConfidenceDSRC.h b/vcits/ivim/HeadingConfidenceDSRC.h new file mode 100644 index 0000000..d028dea --- /dev/null +++ b/vcits/ivim/HeadingConfidenceDSRC.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _HeadingConfidenceDSRC_H_ +#define _HeadingConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidenceDSRC { + HeadingConfidenceDSRC_unavailable = 0, + HeadingConfidenceDSRC_prec10deg = 1, + HeadingConfidenceDSRC_prec05deg = 2, + HeadingConfidenceDSRC_prec01deg = 3, + HeadingConfidenceDSRC_prec0_1deg = 4, + HeadingConfidenceDSRC_prec0_05deg = 5, + HeadingConfidenceDSRC_prec0_01deg = 6, + HeadingConfidenceDSRC_prec0_0125deg = 7 +} e_HeadingConfidenceDSRC; + +/* HeadingConfidenceDSRC */ +typedef long HeadingConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_HeadingConfidenceDSRC_specs_1; +asn_struct_free_f HeadingConfidenceDSRC_free; +asn_struct_print_f HeadingConfidenceDSRC_print; +asn_constr_check_f HeadingConfidenceDSRC_constraint; +ber_type_decoder_f HeadingConfidenceDSRC_decode_ber; +der_type_encoder_f HeadingConfidenceDSRC_encode_der; +xer_type_decoder_f HeadingConfidenceDSRC_decode_xer; +xer_type_encoder_f HeadingConfidenceDSRC_encode_xer; +oer_type_decoder_f HeadingConfidenceDSRC_decode_oer; +oer_type_encoder_f HeadingConfidenceDSRC_encode_oer; +per_type_decoder_f HeadingConfidenceDSRC_decode_uper; +per_type_encoder_f HeadingConfidenceDSRC_encode_uper; +per_type_decoder_f HeadingConfidenceDSRC_decode_aper; +per_type_encoder_f HeadingConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidenceDSRC_H_ */ +#include diff --git a/vcits/ivim/HeadingDSRC.h b/vcits/ivim/HeadingDSRC.h new file mode 100644 index 0000000..5d572ab --- /dev/null +++ b/vcits/ivim/HeadingDSRC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _HeadingDSRC_H_ +#define _HeadingDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HeadingDSRC */ +typedef long HeadingDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingDSRC; +asn_struct_free_f HeadingDSRC_free; +asn_struct_print_f HeadingDSRC_print; +asn_constr_check_f HeadingDSRC_constraint; +ber_type_decoder_f HeadingDSRC_decode_ber; +der_type_encoder_f HeadingDSRC_encode_der; +xer_type_decoder_f HeadingDSRC_decode_xer; +xer_type_encoder_f HeadingDSRC_encode_xer; +oer_type_decoder_f HeadingDSRC_decode_oer; +oer_type_encoder_f HeadingDSRC_encode_oer; +per_type_decoder_f HeadingDSRC_decode_uper; +per_type_encoder_f HeadingDSRC_encode_uper; +per_type_decoder_f HeadingDSRC_decode_aper; +per_type_encoder_f HeadingDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingDSRC_H_ */ +#include diff --git a/vcits/ivim/HeadingValue.h b/vcits/ivim/HeadingValue.h new file mode 100644 index 0000000..e02f27e --- /dev/null +++ b/vcits/ivim/HeadingValue.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _HeadingValue_H_ +#define _HeadingValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingValue { + HeadingValue_wgs84North = 0, + HeadingValue_wgs84East = 900, + HeadingValue_wgs84South = 1800, + HeadingValue_wgs84West = 2700, + HeadingValue_unavailable = 3601 +} e_HeadingValue; + +/* HeadingValue */ +typedef long HeadingValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingValue; +asn_struct_free_f HeadingValue_free; +asn_struct_print_f HeadingValue_print; +asn_constr_check_f HeadingValue_constraint; +ber_type_decoder_f HeadingValue_decode_ber; +der_type_encoder_f HeadingValue_encode_der; +xer_type_decoder_f HeadingValue_decode_xer; +xer_type_encoder_f HeadingValue_encode_xer; +oer_type_decoder_f HeadingValue_decode_oer; +oer_type_encoder_f HeadingValue_encode_oer; +per_type_decoder_f HeadingValue_decode_uper; +per_type_encoder_f HeadingValue_encode_uper; +per_type_decoder_f HeadingValue_decode_aper; +per_type_encoder_f HeadingValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingValue_H_ */ +#include diff --git a/vcits/ivim/HeightLonCarr.h b/vcits/ivim/HeightLonCarr.h new file mode 100644 index 0000000..df30762 --- /dev/null +++ b/vcits/ivim/HeightLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _HeightLonCarr_H_ +#define _HeightLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeightLonCarr { + HeightLonCarr_oneCentimeter = 1, + HeightLonCarr_unavailable = 100 +} e_HeightLonCarr; + +/* HeightLonCarr */ +typedef long HeightLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HeightLonCarr; +asn_struct_free_f HeightLonCarr_free; +asn_struct_print_f HeightLonCarr_print; +asn_constr_check_f HeightLonCarr_constraint; +ber_type_decoder_f HeightLonCarr_decode_ber; +der_type_encoder_f HeightLonCarr_encode_der; +xer_type_decoder_f HeightLonCarr_decode_xer; +xer_type_encoder_f HeightLonCarr_encode_xer; +oer_type_decoder_f HeightLonCarr_decode_oer; +oer_type_encoder_f HeightLonCarr_encode_oer; +per_type_decoder_f HeightLonCarr_decode_uper; +per_type_encoder_f HeightLonCarr_encode_uper; +per_type_decoder_f HeightLonCarr_decode_aper; +per_type_encoder_f HeightLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeightLonCarr_H_ */ +#include diff --git a/vcits/ivim/HoursMinutes.h b/vcits/ivim/HoursMinutes.h new file mode 100644 index 0000000..20b6d27 --- /dev/null +++ b/vcits/ivim/HoursMinutes.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _HoursMinutes_H_ +#define _HoursMinutes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HoursMinutes */ +typedef struct HoursMinutes { + long hours; + long mins; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} HoursMinutes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HoursMinutes; +extern asn_SEQUENCE_specifics_t asn_SPC_HoursMinutes_specs_1; +extern asn_TYPE_member_t asn_MBR_HoursMinutes_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _HoursMinutes_H_ */ +#include diff --git a/vcits/ivim/HumanPresenceOnTheRoadSubCauseCode.h b/vcits/ivim/HumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..693121c --- /dev/null +++ b/vcits/ivim/HumanPresenceOnTheRoadSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _HumanPresenceOnTheRoadSubCauseCode_H_ +#define _HumanPresenceOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanPresenceOnTheRoadSubCauseCode { + HumanPresenceOnTheRoadSubCauseCode_unavailable = 0, + HumanPresenceOnTheRoadSubCauseCode_childrenOnRoadway = 1, + HumanPresenceOnTheRoadSubCauseCode_cyclistOnRoadway = 2, + HumanPresenceOnTheRoadSubCauseCode_motorcyclistOnRoadway = 3 +} e_HumanPresenceOnTheRoadSubCauseCode; + +/* HumanPresenceOnTheRoadSubCauseCode */ +typedef long HumanPresenceOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode; +asn_struct_free_f HumanPresenceOnTheRoadSubCauseCode_free; +asn_struct_print_f HumanPresenceOnTheRoadSubCauseCode_print; +asn_constr_check_f HumanPresenceOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanPresenceOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/HumanProblemSubCauseCode.h b/vcits/ivim/HumanProblemSubCauseCode.h new file mode 100644 index 0000000..2ddee19 --- /dev/null +++ b/vcits/ivim/HumanProblemSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _HumanProblemSubCauseCode_H_ +#define _HumanProblemSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanProblemSubCauseCode { + HumanProblemSubCauseCode_unavailable = 0, + HumanProblemSubCauseCode_glycemiaProblem = 1, + HumanProblemSubCauseCode_heartProblem = 2 +} e_HumanProblemSubCauseCode; + +/* HumanProblemSubCauseCode */ +typedef long HumanProblemSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode; +asn_struct_free_f HumanProblemSubCauseCode_free; +asn_struct_print_f HumanProblemSubCauseCode_print; +asn_constr_check_f HumanProblemSubCauseCode_constraint; +ber_type_decoder_f HumanProblemSubCauseCode_decode_ber; +der_type_encoder_f HumanProblemSubCauseCode_encode_der; +xer_type_decoder_f HumanProblemSubCauseCode_decode_xer; +xer_type_encoder_f HumanProblemSubCauseCode_encode_xer; +oer_type_decoder_f HumanProblemSubCauseCode_decode_oer; +oer_type_encoder_f HumanProblemSubCauseCode_encode_oer; +per_type_decoder_f HumanProblemSubCauseCode_decode_uper; +per_type_encoder_f HumanProblemSubCauseCode_encode_uper; +per_type_decoder_f HumanProblemSubCauseCode_decode_aper; +per_type_encoder_f HumanProblemSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanProblemSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/ICC-Id.h b/vcits/ivim/ICC-Id.h new file mode 100644 index 0000000..7cbc818 --- /dev/null +++ b/vcits/ivim/ICC-Id.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ICC_Id_H_ +#define _ICC_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ICC-Id */ +typedef OCTET_STRING_t ICC_Id_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ICC_Id; +asn_struct_free_f ICC_Id_free; +asn_struct_print_f ICC_Id_print; +asn_constr_check_f ICC_Id_constraint; +ber_type_decoder_f ICC_Id_decode_ber; +der_type_encoder_f ICC_Id_encode_der; +xer_type_decoder_f ICC_Id_decode_xer; +xer_type_encoder_f ICC_Id_encode_xer; +oer_type_decoder_f ICC_Id_decode_oer; +oer_type_encoder_f ICC_Id_encode_oer; +per_type_decoder_f ICC_Id_decode_uper; +per_type_encoder_f ICC_Id_encode_uper; +per_type_decoder_f ICC_Id_decode_aper; +per_type_encoder_f ICC_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ICC_Id_H_ */ +#include diff --git a/vcits/ivim/ISO14823Attribute.h b/vcits/ivim/ISO14823Attribute.h new file mode 100644 index 0000000..70577a3 --- /dev/null +++ b/vcits/ivim/ISO14823Attribute.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ISO14823Attribute_H_ +#define _ISO14823Attribute_H_ + + +#include + +/* Including external dependencies */ +#include "InternationalSign-applicablePeriod.h" +#include "InternationalSign-exemptedApplicablePeriod.h" +#include "InternationalSign-directionalFlowOfLane.h" +#include "InternationalSign-applicableVehicleDimensions.h" +#include "InternationalSign-speedLimits.h" +#include "InternationalSign-rateOfIncline.h" +#include "InternationalSign-distanceBetweenVehicles.h" +#include "InternationalSign-destinationInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ISO14823Attribute_PR { + ISO14823Attribute_PR_NOTHING, /* No components present */ + ISO14823Attribute_PR_dtm, + ISO14823Attribute_PR_edt, + ISO14823Attribute_PR_dfl, + ISO14823Attribute_PR_ved, + ISO14823Attribute_PR_spe, + ISO14823Attribute_PR_roi, + ISO14823Attribute_PR_dbv, + ISO14823Attribute_PR_ddd +} ISO14823Attribute_PR; + +/* ISO14823Attribute */ +typedef struct ISO14823Attribute { + ISO14823Attribute_PR present; + union ISO14823Attribute_u { + InternationalSign_applicablePeriod_t dtm; + InternationalSign_exemptedApplicablePeriod_t edt; + InternationalSign_directionalFlowOfLane_t dfl; + InternationalSign_applicableVehicleDimensions_t ved; + InternationalSign_speedLimits_t spe; + InternationalSign_rateOfIncline_t roi; + InternationalSign_distanceBetweenVehicles_t dbv; + InternationalSign_destinationInformation_t ddd; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ISO14823Attribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ISO14823Attribute; +extern asn_CHOICE_specifics_t asn_SPC_ISO14823Attribute_specs_1; +extern asn_TYPE_member_t asn_MBR_ISO14823Attribute_1[8]; +extern asn_per_constraints_t asn_PER_type_ISO14823Attribute_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ISO14823Attribute_H_ */ +#include diff --git a/vcits/ivim/ISO14823Attributes.h b/vcits/ivim/ISO14823Attributes.h new file mode 100644 index 0000000..305b876 --- /dev/null +++ b/vcits/ivim/ISO14823Attributes.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ISO14823Attributes_H_ +#define _ISO14823Attributes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ISO14823Attribute; + +/* ISO14823Attributes */ +typedef struct ISO14823Attributes { + A_SEQUENCE_OF(struct ISO14823Attribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ISO14823Attributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ISO14823Attributes; +extern asn_SET_OF_specifics_t asn_SPC_ISO14823Attributes_specs_1; +extern asn_TYPE_member_t asn_MBR_ISO14823Attributes_1[1]; +extern asn_per_constraints_t asn_PER_type_ISO14823Attributes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ISO14823Attributes_H_ */ +#include diff --git a/vcits/ivim/ISO14823Code.h b/vcits/ivim/ISO14823Code.h new file mode 100644 index 0000000..72688de --- /dev/null +++ b/vcits/ivim/ISO14823Code.h @@ -0,0 +1,108 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ISO14823Code_H_ +#define _ISO14823Code_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ISO14823Code__pictogramCode__serviceCategoryCode_PR { + ISO14823Code__pictogramCode__serviceCategoryCode_PR_NOTHING, /* No components present */ + ISO14823Code__pictogramCode__serviceCategoryCode_PR_trafficSignPictogram, + ISO14823Code__pictogramCode__serviceCategoryCode_PR_publicFacilitiesPictogram, + ISO14823Code__pictogramCode__serviceCategoryCode_PR_ambientOrRoadConditionPictogram + /* Extensions may appear below */ + +} ISO14823Code__pictogramCode__serviceCategoryCode_PR; +typedef enum ISO14823Code__pictogramCode__serviceCategoryCode__trafficSignPictogram { + ISO14823Code__pictogramCode__serviceCategoryCode__trafficSignPictogram_dangerWarning = 0, + ISO14823Code__pictogramCode__serviceCategoryCode__trafficSignPictogram_regulatory = 1, + ISO14823Code__pictogramCode__serviceCategoryCode__trafficSignPictogram_informative = 2 + /* + * Enumeration is extensible + */ +} e_ISO14823Code__pictogramCode__serviceCategoryCode__trafficSignPictogram; +typedef enum ISO14823Code__pictogramCode__serviceCategoryCode__publicFacilitiesPictogram { + ISO14823Code__pictogramCode__serviceCategoryCode__publicFacilitiesPictogram_publicFacilities = 0 + /* + * Enumeration is extensible + */ +} e_ISO14823Code__pictogramCode__serviceCategoryCode__publicFacilitiesPictogram; +typedef enum ISO14823Code__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram { + ISO14823Code__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram_ambientCondition = 0, + ISO14823Code__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram_roadCondition = 1 + /* + * Enumeration is extensible + */ +} e_ISO14823Code__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram; + +/* Forward declarations */ +struct ISO14823Attributes; + +/* ISO14823Code */ +typedef struct ISO14823Code { + struct ISO14823Code__pictogramCode { + OCTET_STRING_t *countryCode; /* OPTIONAL */ + struct ISO14823Code__pictogramCode__serviceCategoryCode { + ISO14823Code__pictogramCode__serviceCategoryCode_PR present; + union ISO14823Code__pictogramCode__serviceCategoryCode_u { + long trafficSignPictogram; + long publicFacilitiesPictogram; + long ambientOrRoadConditionPictogram; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } serviceCategoryCode; + struct ISO14823Code__pictogramCode__pictogramCategoryCode { + long nature; + long serialNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } pictogramCategoryCode; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } pictogramCode; + struct ISO14823Attributes *attributes; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ISO14823Code_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_trafficSignPictogram_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_publicFacilitiesPictogram_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ambientOrRoadConditionPictogram_13; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ISO14823Code; +extern asn_SEQUENCE_specifics_t asn_SPC_ISO14823Code_specs_1; +extern asn_TYPE_member_t asn_MBR_ISO14823Code_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ISO14823Code_H_ */ +#include diff --git a/vcits/ivim/ITS-Container_StationType.h b/vcits/ivim/ITS-Container_StationType.h new file mode 100644 index 0000000..1b8b094 --- /dev/null +++ b/vcits/ivim/ITS-Container_StationType.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ITS_Container_StationType_H_ +#define _ITS_Container_StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ITS_Container_StationType { + ITS_Container_StationType_unknown = 0, + ITS_Container_StationType_pedestrian = 1, + ITS_Container_StationType_cyclist = 2, + ITS_Container_StationType_moped = 3, + ITS_Container_StationType_motorcycle = 4, + ITS_Container_StationType_passengerCar = 5, + ITS_Container_StationType_bus = 6, + ITS_Container_StationType_lightTruck = 7, + ITS_Container_StationType_heavyTruck = 8, + ITS_Container_StationType_trailer = 9, + ITS_Container_StationType_specialVehicles = 10, + ITS_Container_StationType_tram = 11, + ITS_Container_StationType_roadSideUnit = 15 +} e_ITS_Container_StationType; + +/* ITS-Container_StationType */ +typedef long ITS_Container_StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ITS_Container_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ITS_Container_StationType; +asn_struct_free_f ITS_Container_StationType_free; +asn_struct_print_f ITS_Container_StationType_print; +asn_constr_check_f ITS_Container_StationType_constraint; +ber_type_decoder_f ITS_Container_StationType_decode_ber; +der_type_encoder_f ITS_Container_StationType_encode_der; +xer_type_decoder_f ITS_Container_StationType_decode_xer; +xer_type_encoder_f ITS_Container_StationType_encode_xer; +oer_type_decoder_f ITS_Container_StationType_decode_oer; +oer_type_encoder_f ITS_Container_StationType_encode_oer; +per_type_decoder_f ITS_Container_StationType_decode_uper; +per_type_encoder_f ITS_Container_StationType_encode_uper; +per_type_decoder_f ITS_Container_StationType_decode_aper; +per_type_encoder_f ITS_Container_StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ITS_Container_StationType_H_ */ +#include diff --git a/vcits/ivim/ITS-Container_Temperature.h b/vcits/ivim/ITS-Container_Temperature.h new file mode 100644 index 0000000..bc19e78 --- /dev/null +++ b/vcits/ivim/ITS-Container_Temperature.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ITS_Container_Temperature_H_ +#define _ITS_Container_Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ITS_Container_Temperature { + ITS_Container_Temperature_equalOrSmallerThanMinus60Deg = -60, + ITS_Container_Temperature_oneDegreeCelsius = 1, + ITS_Container_Temperature_equalOrGreaterThan67Deg = 67 +} e_ITS_Container_Temperature; + +/* ITS-Container_Temperature */ +typedef long ITS_Container_Temperature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ITS_Container_Temperature; +asn_struct_free_f ITS_Container_Temperature_free; +asn_struct_print_f ITS_Container_Temperature_print; +asn_constr_check_f ITS_Container_Temperature_constraint; +ber_type_decoder_f ITS_Container_Temperature_decode_ber; +der_type_encoder_f ITS_Container_Temperature_encode_der; +xer_type_decoder_f ITS_Container_Temperature_decode_xer; +xer_type_encoder_f ITS_Container_Temperature_encode_xer; +oer_type_decoder_f ITS_Container_Temperature_decode_oer; +oer_type_encoder_f ITS_Container_Temperature_encode_oer; +per_type_decoder_f ITS_Container_Temperature_decode_uper; +per_type_encoder_f ITS_Container_Temperature_encode_uper; +per_type_decoder_f ITS_Container_Temperature_decode_aper; +per_type_encoder_f ITS_Container_Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ITS_Container_Temperature_H_ */ +#include diff --git a/vcits/ivim/IVIM.h b/vcits/ivim/IVIM.h new file mode 100644 index 0000000..1c813f5 --- /dev/null +++ b/vcits/ivim/IVIM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVIM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/IVIM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IVIM_H_ +#define _IVIM_H_ + + +#include + +/* Including external dependencies */ +#include "ItsPduHeader.h" +#include "IviStructure.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IVIM */ +typedef struct IVIM { + ItsPduHeader_t header; + IviStructure_t ivi; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IVIM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IVIM; + +#ifdef __cplusplus +} +#endif + +#endif /* _IVIM_H_ */ +#include diff --git a/vcits/ivim/IVI_DriverCharacteristics.h b/vcits/ivim/IVI_DriverCharacteristics.h new file mode 100644 index 0000000..c2b6785 --- /dev/null +++ b/vcits/ivim/IVI_DriverCharacteristics.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IVI_DriverCharacteristics_H_ +#define _IVI_DriverCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IVI_DriverCharacteristics { + IVI_DriverCharacteristics_unexperiencedDrivers = 0, + IVI_DriverCharacteristics_experiencedDrivers = 1, + IVI_DriverCharacteristics_rfu1 = 2, + IVI_DriverCharacteristics_rfu2 = 3 +} e_IVI_DriverCharacteristics; + +/* IVI_DriverCharacteristics */ +typedef long IVI_DriverCharacteristics_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IVI_DriverCharacteristics_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IVI_DriverCharacteristics; +asn_struct_free_f IVI_DriverCharacteristics_free; +asn_struct_print_f IVI_DriverCharacteristics_print; +asn_constr_check_f IVI_DriverCharacteristics_constraint; +ber_type_decoder_f IVI_DriverCharacteristics_decode_ber; +der_type_encoder_f IVI_DriverCharacteristics_encode_der; +xer_type_decoder_f IVI_DriverCharacteristics_decode_xer; +xer_type_encoder_f IVI_DriverCharacteristics_encode_xer; +oer_type_decoder_f IVI_DriverCharacteristics_decode_oer; +oer_type_encoder_f IVI_DriverCharacteristics_encode_oer; +per_type_decoder_f IVI_DriverCharacteristics_decode_uper; +per_type_encoder_f IVI_DriverCharacteristics_encode_uper; +per_type_decoder_f IVI_DriverCharacteristics_decode_aper; +per_type_encoder_f IVI_DriverCharacteristics_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IVI_DriverCharacteristics_H_ */ +#include diff --git a/vcits/ivim/IVI_Temperature.h b/vcits/ivim/IVI_Temperature.h new file mode 100644 index 0000000..a2c71bf --- /dev/null +++ b/vcits/ivim/IVI_Temperature.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IVI_Temperature_H_ +#define _IVI_Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IVI_Temperature */ +typedef long IVI_Temperature_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IVI_Temperature_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IVI_Temperature; +asn_struct_free_f IVI_Temperature_free; +asn_struct_print_f IVI_Temperature_print; +asn_constr_check_f IVI_Temperature_constraint; +ber_type_decoder_f IVI_Temperature_decode_ber; +der_type_encoder_f IVI_Temperature_encode_der; +xer_type_decoder_f IVI_Temperature_decode_xer; +xer_type_encoder_f IVI_Temperature_encode_xer; +oer_type_decoder_f IVI_Temperature_decode_oer; +oer_type_encoder_f IVI_Temperature_encode_oer; +per_type_decoder_f IVI_Temperature_decode_uper; +per_type_encoder_f IVI_Temperature_encode_uper; +per_type_decoder_f IVI_Temperature_decode_aper; +per_type_encoder_f IVI_Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IVI_Temperature_H_ */ +#include diff --git a/vcits/ivim/IVI_TrailerCharacteristics.h b/vcits/ivim/IVI_TrailerCharacteristics.h new file mode 100644 index 0000000..0fa6524 --- /dev/null +++ b/vcits/ivim/IVI_TrailerCharacteristics.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IVI_TrailerCharacteristics_H_ +#define _IVI_TrailerCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TrailerCharacteristicsFixValuesList; +struct TrailerCharacteristicsRangesList; + +/* IVI_TrailerCharacteristics */ +typedef struct IVI_TrailerCharacteristics { + struct TrailerCharacteristicsFixValuesList *equalTo; /* OPTIONAL */ + struct TrailerCharacteristicsFixValuesList *notEqualTo; /* OPTIONAL */ + struct TrailerCharacteristicsRangesList *ranges; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IVI_TrailerCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IVI_TrailerCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_IVI_TrailerCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_IVI_TrailerCharacteristics_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IVI_TrailerCharacteristics_H_ */ +#include diff --git a/vcits/ivim/InformationQuality.h b/vcits/ivim/InformationQuality.h new file mode 100644 index 0000000..1769dee --- /dev/null +++ b/vcits/ivim/InformationQuality.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _InformationQuality_H_ +#define _InformationQuality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InformationQuality { + InformationQuality_unavailable = 0, + InformationQuality_lowest = 1, + InformationQuality_highest = 7 +} e_InformationQuality; + +/* InformationQuality */ +typedef long InformationQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_InformationQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_InformationQuality; +asn_struct_free_f InformationQuality_free; +asn_struct_print_f InformationQuality_print; +asn_constr_check_f InformationQuality_constraint; +ber_type_decoder_f InformationQuality_decode_ber; +der_type_encoder_f InformationQuality_encode_der; +xer_type_decoder_f InformationQuality_decode_xer; +xer_type_encoder_f InformationQuality_encode_xer; +oer_type_decoder_f InformationQuality_decode_oer; +oer_type_encoder_f InformationQuality_encode_oer; +per_type_decoder_f InformationQuality_decode_uper; +per_type_encoder_f InformationQuality_encode_uper; +per_type_decoder_f InformationQuality_decode_aper; +per_type_encoder_f InformationQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InformationQuality_H_ */ +#include diff --git a/vcits/ivim/Int1.h b/vcits/ivim/Int1.h new file mode 100644 index 0000000..4e1871a --- /dev/null +++ b/vcits/ivim/Int1.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Int1_H_ +#define _Int1_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Int1 */ +typedef long Int1_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Int1_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Int1; +asn_struct_free_f Int1_free; +asn_struct_print_f Int1_print; +asn_constr_check_f Int1_constraint; +ber_type_decoder_f Int1_decode_ber; +der_type_encoder_f Int1_encode_der; +xer_type_decoder_f Int1_decode_xer; +xer_type_encoder_f Int1_encode_xer; +oer_type_decoder_f Int1_decode_oer; +oer_type_encoder_f Int1_encode_oer; +per_type_decoder_f Int1_decode_uper; +per_type_encoder_f Int1_encode_uper; +per_type_decoder_f Int1_decode_aper; +per_type_encoder_f Int1_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Int1_H_ */ +#include diff --git a/vcits/ivim/Int2.h b/vcits/ivim/Int2.h new file mode 100644 index 0000000..c480cc4 --- /dev/null +++ b/vcits/ivim/Int2.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Int2_H_ +#define _Int2_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Int2 */ +typedef long Int2_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Int2_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Int2; +asn_struct_free_f Int2_free; +asn_struct_print_f Int2_print; +asn_constr_check_f Int2_constraint; +ber_type_decoder_f Int2_decode_ber; +der_type_encoder_f Int2_encode_der; +xer_type_decoder_f Int2_decode_xer; +xer_type_encoder_f Int2_encode_xer; +oer_type_decoder_f Int2_decode_oer; +oer_type_encoder_f Int2_encode_oer; +per_type_decoder_f Int2_decode_uper; +per_type_encoder_f Int2_encode_uper; +per_type_decoder_f Int2_decode_aper; +per_type_encoder_f Int2_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Int2_H_ */ +#include diff --git a/vcits/ivim/Int3.h b/vcits/ivim/Int3.h new file mode 100644 index 0000000..8ca3e7e --- /dev/null +++ b/vcits/ivim/Int3.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Int3_H_ +#define _Int3_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Int3 */ +typedef long Int3_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Int3_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Int3; +asn_struct_free_f Int3_free; +asn_struct_print_f Int3_print; +asn_constr_check_f Int3_constraint; +ber_type_decoder_f Int3_decode_ber; +der_type_encoder_f Int3_encode_der; +xer_type_decoder_f Int3_decode_xer; +xer_type_encoder_f Int3_encode_xer; +oer_type_decoder_f Int3_decode_oer; +oer_type_encoder_f Int3_encode_oer; +per_type_decoder_f Int3_decode_uper; +per_type_encoder_f Int3_encode_uper; +per_type_decoder_f Int3_decode_aper; +per_type_encoder_f Int3_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Int3_H_ */ +#include diff --git a/vcits/ivim/Int4.h b/vcits/ivim/Int4.h new file mode 100644 index 0000000..bad2a77 --- /dev/null +++ b/vcits/ivim/Int4.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Int4_H_ +#define _Int4_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Int4 */ +typedef unsigned long Int4_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Int4_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Int4; +extern const asn_INTEGER_specifics_t asn_SPC_Int4_specs_1; +asn_struct_free_f Int4_free; +asn_struct_print_f Int4_print; +asn_constr_check_f Int4_constraint; +ber_type_decoder_f Int4_decode_ber; +der_type_encoder_f Int4_encode_der; +xer_type_decoder_f Int4_decode_xer; +xer_type_encoder_f Int4_encode_xer; +oer_type_decoder_f Int4_decode_oer; +oer_type_encoder_f Int4_encode_oer; +per_type_decoder_f Int4_decode_uper; +per_type_encoder_f Int4_encode_uper; +per_type_decoder_f Int4_decode_aper; +per_type_encoder_f Int4_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Int4_H_ */ +#include diff --git a/vcits/ivim/InternationalSign-applicablePeriod.h b/vcits/ivim/InternationalSign-applicablePeriod.h new file mode 100644 index 0000000..68e9c52 --- /dev/null +++ b/vcits/ivim/InternationalSign-applicablePeriod.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _InternationalSign_applicablePeriod_H_ +#define _InternationalSign_applicablePeriod_H_ + + +#include + +/* Including external dependencies */ +#include "RepeatingPeriodDayTypes.h" +#include "DayOfWeek.h" +#include +#include +#include "MonthDay.h" +#include "HoursMinutes.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct HoursMinutes; + +/* InternationalSign-applicablePeriod */ +typedef struct InternationalSign_applicablePeriod { + struct InternationalSign_applicablePeriod__year { + long yearRangeStartYear; + long yearRangeEndYear; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *year; + struct InternationalSign_applicablePeriod__month_day { + MonthDay_t dateRangeStartMonthDay; + MonthDay_t dateRangeEndMonthDay; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *month_day; + RepeatingPeriodDayTypes_t *repeatingPeriodDayTypes; /* OPTIONAL */ + struct InternationalSign_applicablePeriod__hourMinutes { + HoursMinutes_t timeRangeStartTime; + HoursMinutes_t timeRangeEndTime; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *hourMinutes; + DayOfWeek_t *dateRangeOfWeek; /* OPTIONAL */ + struct HoursMinutes *durationHourMinute; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InternationalSign_applicablePeriod_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InternationalSign_applicablePeriod; +extern asn_SEQUENCE_specifics_t asn_SPC_InternationalSign_applicablePeriod_specs_1; +extern asn_TYPE_member_t asn_MBR_InternationalSign_applicablePeriod_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InternationalSign_applicablePeriod_H_ */ +#include diff --git a/vcits/ivim/InternationalSign-applicableVehicleDimensions.h b/vcits/ivim/InternationalSign-applicableVehicleDimensions.h new file mode 100644 index 0000000..ca733fd --- /dev/null +++ b/vcits/ivim/InternationalSign-applicableVehicleDimensions.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _InternationalSign_applicableVehicleDimensions_H_ +#define _InternationalSign_applicableVehicleDimensions_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Distance; +struct Weight; + +/* InternationalSign-applicableVehicleDimensions */ +typedef struct InternationalSign_applicableVehicleDimensions { + struct Distance *vehicleHeight; /* OPTIONAL */ + struct Distance *vehicleWidth; /* OPTIONAL */ + struct Distance *vehicleLength; /* OPTIONAL */ + struct Weight *vehicleWeight; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InternationalSign_applicableVehicleDimensions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InternationalSign_applicableVehicleDimensions; +extern asn_SEQUENCE_specifics_t asn_SPC_InternationalSign_applicableVehicleDimensions_specs_1; +extern asn_TYPE_member_t asn_MBR_InternationalSign_applicableVehicleDimensions_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InternationalSign_applicableVehicleDimensions_H_ */ +#include diff --git a/vcits/ivim/InternationalSign-destinationInformation.h b/vcits/ivim/InternationalSign-destinationInformation.h new file mode 100644 index 0000000..00529c0 --- /dev/null +++ b/vcits/ivim/InternationalSign-destinationInformation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _InternationalSign_destinationInformation_H_ +#define _InternationalSign_destinationInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DDD_IO_LIST; + +/* InternationalSign-destinationInformation */ +typedef struct InternationalSign_destinationInformation { + long *junctionDirection; /* OPTIONAL */ + long *roundaboutCwDirection; /* OPTIONAL */ + long *roundaboutCcwDirection; /* OPTIONAL */ + struct DDD_IO_LIST *ioList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InternationalSign_destinationInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InternationalSign_destinationInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_InternationalSign_destinationInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_InternationalSign_destinationInformation_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InternationalSign_destinationInformation_H_ */ +#include diff --git a/vcits/ivim/InternationalSign-directionalFlowOfLane.h b/vcits/ivim/InternationalSign-directionalFlowOfLane.h new file mode 100644 index 0000000..7cd6e2b --- /dev/null +++ b/vcits/ivim/InternationalSign-directionalFlowOfLane.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _InternationalSign_directionalFlowOfLane_H_ +#define _InternationalSign_directionalFlowOfLane_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InternationalSign_directionalFlowOfLane { + InternationalSign_directionalFlowOfLane_sDL = 1, + InternationalSign_directionalFlowOfLane_sLT = 2, + InternationalSign_directionalFlowOfLane_sRT = 3, + InternationalSign_directionalFlowOfLane_lTO = 4, + InternationalSign_directionalFlowOfLane_rTO = 5, + InternationalSign_directionalFlowOfLane_cLL = 6, + InternationalSign_directionalFlowOfLane_cRI = 7, + InternationalSign_directionalFlowOfLane_oVL = 8 +} e_InternationalSign_directionalFlowOfLane; + +/* InternationalSign-directionalFlowOfLane */ +typedef long InternationalSign_directionalFlowOfLane_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_InternationalSign_directionalFlowOfLane_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_InternationalSign_directionalFlowOfLane; +asn_struct_free_f InternationalSign_directionalFlowOfLane_free; +asn_struct_print_f InternationalSign_directionalFlowOfLane_print; +asn_constr_check_f InternationalSign_directionalFlowOfLane_constraint; +ber_type_decoder_f InternationalSign_directionalFlowOfLane_decode_ber; +der_type_encoder_f InternationalSign_directionalFlowOfLane_encode_der; +xer_type_decoder_f InternationalSign_directionalFlowOfLane_decode_xer; +xer_type_encoder_f InternationalSign_directionalFlowOfLane_encode_xer; +oer_type_decoder_f InternationalSign_directionalFlowOfLane_decode_oer; +oer_type_encoder_f InternationalSign_directionalFlowOfLane_encode_oer; +per_type_decoder_f InternationalSign_directionalFlowOfLane_decode_uper; +per_type_encoder_f InternationalSign_directionalFlowOfLane_encode_uper; +per_type_decoder_f InternationalSign_directionalFlowOfLane_decode_aper; +per_type_encoder_f InternationalSign_directionalFlowOfLane_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InternationalSign_directionalFlowOfLane_H_ */ +#include diff --git a/vcits/ivim/InternationalSign-distanceBetweenVehicles.h b/vcits/ivim/InternationalSign-distanceBetweenVehicles.h new file mode 100644 index 0000000..80e66fa --- /dev/null +++ b/vcits/ivim/InternationalSign-distanceBetweenVehicles.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _InternationalSign_distanceBetweenVehicles_H_ +#define _InternationalSign_distanceBetweenVehicles_H_ + + +#include + +/* Including external dependencies */ +#include "Distance.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* InternationalSign-distanceBetweenVehicles */ +typedef Distance_t InternationalSign_distanceBetweenVehicles_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InternationalSign_distanceBetweenVehicles; +asn_struct_free_f InternationalSign_distanceBetweenVehicles_free; +asn_struct_print_f InternationalSign_distanceBetweenVehicles_print; +asn_constr_check_f InternationalSign_distanceBetweenVehicles_constraint; +ber_type_decoder_f InternationalSign_distanceBetweenVehicles_decode_ber; +der_type_encoder_f InternationalSign_distanceBetweenVehicles_encode_der; +xer_type_decoder_f InternationalSign_distanceBetweenVehicles_decode_xer; +xer_type_encoder_f InternationalSign_distanceBetweenVehicles_encode_xer; +oer_type_decoder_f InternationalSign_distanceBetweenVehicles_decode_oer; +oer_type_encoder_f InternationalSign_distanceBetweenVehicles_encode_oer; +per_type_decoder_f InternationalSign_distanceBetweenVehicles_decode_uper; +per_type_encoder_f InternationalSign_distanceBetweenVehicles_encode_uper; +per_type_decoder_f InternationalSign_distanceBetweenVehicles_decode_aper; +per_type_encoder_f InternationalSign_distanceBetweenVehicles_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InternationalSign_distanceBetweenVehicles_H_ */ +#include diff --git a/vcits/ivim/InternationalSign-exemptedApplicablePeriod.h b/vcits/ivim/InternationalSign-exemptedApplicablePeriod.h new file mode 100644 index 0000000..7db1874 --- /dev/null +++ b/vcits/ivim/InternationalSign-exemptedApplicablePeriod.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _InternationalSign_exemptedApplicablePeriod_H_ +#define _InternationalSign_exemptedApplicablePeriod_H_ + + +#include + +/* Including external dependencies */ +#include "InternationalSign-applicablePeriod.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* InternationalSign-exemptedApplicablePeriod */ +typedef InternationalSign_applicablePeriod_t InternationalSign_exemptedApplicablePeriod_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InternationalSign_exemptedApplicablePeriod; +asn_struct_free_f InternationalSign_exemptedApplicablePeriod_free; +asn_struct_print_f InternationalSign_exemptedApplicablePeriod_print; +asn_constr_check_f InternationalSign_exemptedApplicablePeriod_constraint; +ber_type_decoder_f InternationalSign_exemptedApplicablePeriod_decode_ber; +der_type_encoder_f InternationalSign_exemptedApplicablePeriod_encode_der; +xer_type_decoder_f InternationalSign_exemptedApplicablePeriod_decode_xer; +xer_type_encoder_f InternationalSign_exemptedApplicablePeriod_encode_xer; +oer_type_decoder_f InternationalSign_exemptedApplicablePeriod_decode_oer; +oer_type_encoder_f InternationalSign_exemptedApplicablePeriod_encode_oer; +per_type_decoder_f InternationalSign_exemptedApplicablePeriod_decode_uper; +per_type_encoder_f InternationalSign_exemptedApplicablePeriod_encode_uper; +per_type_decoder_f InternationalSign_exemptedApplicablePeriod_decode_aper; +per_type_encoder_f InternationalSign_exemptedApplicablePeriod_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InternationalSign_exemptedApplicablePeriod_H_ */ +#include diff --git a/vcits/ivim/InternationalSign-numberOfLane.h b/vcits/ivim/InternationalSign-numberOfLane.h new file mode 100644 index 0000000..63871d1 --- /dev/null +++ b/vcits/ivim/InternationalSign-numberOfLane.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _InternationalSign_numberOfLane_H_ +#define _InternationalSign_numberOfLane_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* InternationalSign-numberOfLane */ +typedef long InternationalSign_numberOfLane_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_InternationalSign_numberOfLane_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_InternationalSign_numberOfLane; +asn_struct_free_f InternationalSign_numberOfLane_free; +asn_struct_print_f InternationalSign_numberOfLane_print; +asn_constr_check_f InternationalSign_numberOfLane_constraint; +ber_type_decoder_f InternationalSign_numberOfLane_decode_ber; +der_type_encoder_f InternationalSign_numberOfLane_encode_der; +xer_type_decoder_f InternationalSign_numberOfLane_decode_xer; +xer_type_encoder_f InternationalSign_numberOfLane_encode_xer; +oer_type_decoder_f InternationalSign_numberOfLane_decode_oer; +oer_type_encoder_f InternationalSign_numberOfLane_encode_oer; +per_type_decoder_f InternationalSign_numberOfLane_decode_uper; +per_type_encoder_f InternationalSign_numberOfLane_encode_uper; +per_type_decoder_f InternationalSign_numberOfLane_decode_aper; +per_type_encoder_f InternationalSign_numberOfLane_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InternationalSign_numberOfLane_H_ */ +#include diff --git a/vcits/ivim/InternationalSign-rateOfIncline.h b/vcits/ivim/InternationalSign-rateOfIncline.h new file mode 100644 index 0000000..0bab39b --- /dev/null +++ b/vcits/ivim/InternationalSign-rateOfIncline.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _InternationalSign_rateOfIncline_H_ +#define _InternationalSign_rateOfIncline_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* InternationalSign-rateOfIncline */ +typedef long InternationalSign_rateOfIncline_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_InternationalSign_rateOfIncline_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_InternationalSign_rateOfIncline; +asn_struct_free_f InternationalSign_rateOfIncline_free; +asn_struct_print_f InternationalSign_rateOfIncline_print; +asn_constr_check_f InternationalSign_rateOfIncline_constraint; +ber_type_decoder_f InternationalSign_rateOfIncline_decode_ber; +der_type_encoder_f InternationalSign_rateOfIncline_encode_der; +xer_type_decoder_f InternationalSign_rateOfIncline_decode_xer; +xer_type_encoder_f InternationalSign_rateOfIncline_encode_xer; +oer_type_decoder_f InternationalSign_rateOfIncline_decode_oer; +oer_type_encoder_f InternationalSign_rateOfIncline_encode_oer; +per_type_decoder_f InternationalSign_rateOfIncline_decode_uper; +per_type_encoder_f InternationalSign_rateOfIncline_encode_uper; +per_type_decoder_f InternationalSign_rateOfIncline_decode_aper; +per_type_encoder_f InternationalSign_rateOfIncline_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InternationalSign_rateOfIncline_H_ */ +#include diff --git a/vcits/ivim/InternationalSign-section.h b/vcits/ivim/InternationalSign-section.h new file mode 100644 index 0000000..f089db1 --- /dev/null +++ b/vcits/ivim/InternationalSign-section.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _InternationalSign_section_H_ +#define _InternationalSign_section_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Distance; + +/* InternationalSign-section */ +typedef struct InternationalSign_section { + struct Distance *startingPointLength; /* OPTIONAL */ + struct Distance *continuityLength; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InternationalSign_section_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InternationalSign_section; +extern asn_SEQUENCE_specifics_t asn_SPC_InternationalSign_section_specs_1; +extern asn_TYPE_member_t asn_MBR_InternationalSign_section_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InternationalSign_section_H_ */ +#include diff --git a/vcits/ivim/InternationalSign-speedLimits.h b/vcits/ivim/InternationalSign-speedLimits.h new file mode 100644 index 0000000..0e082ce --- /dev/null +++ b/vcits/ivim/InternationalSign-speedLimits.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _InternationalSign_speedLimits_H_ +#define _InternationalSign_speedLimits_H_ + + +#include + +/* Including external dependencies */ +#include +#include "Code-Units.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* InternationalSign-speedLimits */ +typedef struct InternationalSign_speedLimits { + long *speedLimitMax; /* OPTIONAL */ + long *speedLimitMin; /* OPTIONAL */ + Code_Units_t unit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InternationalSign_speedLimits_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InternationalSign_speedLimits; +extern asn_SEQUENCE_specifics_t asn_SPC_InternationalSign_speedLimits_specs_1; +extern asn_TYPE_member_t asn_MBR_InternationalSign_speedLimits_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InternationalSign_speedLimits_H_ */ +#include diff --git a/vcits/ivim/IntersectionAccessPoint.h b/vcits/ivim/IntersectionAccessPoint.h new file mode 100644 index 0000000..c035fa9 --- /dev/null +++ b/vcits/ivim/IntersectionAccessPoint.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IntersectionAccessPoint_H_ +#define _IntersectionAccessPoint_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "ApproachID.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionAccessPoint_PR { + IntersectionAccessPoint_PR_NOTHING, /* No components present */ + IntersectionAccessPoint_PR_lane, + IntersectionAccessPoint_PR_approach, + IntersectionAccessPoint_PR_connection + /* Extensions may appear below */ + +} IntersectionAccessPoint_PR; + +/* IntersectionAccessPoint */ +typedef struct IntersectionAccessPoint { + IntersectionAccessPoint_PR present; + union IntersectionAccessPoint_u { + LaneID_t lane; + ApproachID_t approach; + LaneConnectionID_t connection; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionAccessPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint; +extern asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[3]; +extern asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionAccessPoint_H_ */ +#include diff --git a/vcits/ivim/IntersectionGeometry.h b/vcits/ivim/IntersectionGeometry.h new file mode 100644 index 0000000..7c4f261 --- /dev/null +++ b/vcits/ivim/IntersectionGeometry.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IntersectionGeometry_H_ +#define _IntersectionGeometry_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "LaneList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct PreemptPriorityList; +struct Reg_IntersectionGeometry; + +/* IntersectionGeometry */ +typedef struct IntersectionGeometry { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + LaneList_t laneSet; + struct PreemptPriorityList *preemptPriorityData; /* OPTIONAL */ + struct IntersectionGeometry__regional { + A_SEQUENCE_OF(struct Reg_IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometry_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometry_H_ */ +#include diff --git a/vcits/ivim/IntersectionGeometryList.h b/vcits/ivim/IntersectionGeometryList.h new file mode 100644 index 0000000..f819036 --- /dev/null +++ b/vcits/ivim/IntersectionGeometryList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IntersectionGeometryList_H_ +#define _IntersectionGeometryList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometry; + +/* IntersectionGeometryList */ +typedef struct IntersectionGeometryList { + A_SEQUENCE_OF(struct IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometryList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometryList_H_ */ +#include diff --git a/vcits/ivim/IntersectionID.h b/vcits/ivim/IntersectionID.h new file mode 100644 index 0000000..892280f --- /dev/null +++ b/vcits/ivim/IntersectionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IntersectionID_H_ +#define _IntersectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionID */ +typedef long IntersectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionID; +asn_struct_free_f IntersectionID_free; +asn_struct_print_f IntersectionID_print; +asn_constr_check_f IntersectionID_constraint; +ber_type_decoder_f IntersectionID_decode_ber; +der_type_encoder_f IntersectionID_encode_der; +xer_type_decoder_f IntersectionID_decode_xer; +xer_type_encoder_f IntersectionID_encode_xer; +oer_type_decoder_f IntersectionID_decode_oer; +oer_type_encoder_f IntersectionID_encode_oer; +per_type_decoder_f IntersectionID_decode_uper; +per_type_encoder_f IntersectionID_encode_uper; +per_type_decoder_f IntersectionID_decode_aper; +per_type_encoder_f IntersectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionID_H_ */ +#include diff --git a/vcits/ivim/IntersectionReferenceID.h b/vcits/ivim/IntersectionReferenceID.h new file mode 100644 index 0000000..bfd5d21 --- /dev/null +++ b/vcits/ivim/IntersectionReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IntersectionReferenceID_H_ +#define _IntersectionReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionReferenceID */ +typedef struct IntersectionReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + IntersectionID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionReferenceID_H_ */ +#include diff --git a/vcits/ivim/IntersectionState-addGrpC.h b/vcits/ivim/IntersectionState-addGrpC.h new file mode 100644 index 0000000..66cff3b --- /dev/null +++ b/vcits/ivim/IntersectionState-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IntersectionState_addGrpC_H_ +#define _IntersectionState_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponseList; + +/* IntersectionState-addGrpC */ +typedef struct IntersectionState_addGrpC { + struct PrioritizationResponseList *activePrioritizations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_addGrpC_H_ */ +#include diff --git a/vcits/ivim/IntersectionState.h b/vcits/ivim/IntersectionState.h new file mode 100644 index 0000000..2182b08 --- /dev/null +++ b/vcits/ivim/IntersectionState.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IntersectionState_H_ +#define _IntersectionState_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "MsgCount.h" +#include "IntersectionStatusObject.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MovementList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EnabledLaneList; +struct ManeuverAssistList; +struct Reg_IntersectionState; + +/* IntersectionState */ +typedef struct IntersectionState { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + MsgCount_t revision; + IntersectionStatusObject_t status; + MinuteOfTheYear_t *moy; /* OPTIONAL */ + DSecond_t *timeStamp; /* OPTIONAL */ + struct EnabledLaneList *enabledLanes; /* OPTIONAL */ + MovementList_t states; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct IntersectionState__regional { + A_SEQUENCE_OF(struct Reg_IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_H_ */ +#include diff --git a/vcits/ivim/IntersectionStateList.h b/vcits/ivim/IntersectionStateList.h new file mode 100644 index 0000000..8122d1f --- /dev/null +++ b/vcits/ivim/IntersectionStateList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IntersectionStateList_H_ +#define _IntersectionStateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionState; + +/* IntersectionStateList */ +typedef struct IntersectionStateList { + A_SEQUENCE_OF(struct IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStateList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStateList_H_ */ +#include diff --git a/vcits/ivim/IntersectionStatusObject.h b/vcits/ivim/IntersectionStatusObject.h new file mode 100644 index 0000000..46dc3d0 --- /dev/null +++ b/vcits/ivim/IntersectionStatusObject.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IntersectionStatusObject_H_ +#define _IntersectionStatusObject_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionStatusObject { + IntersectionStatusObject_manualControlIsEnabled = 0, + IntersectionStatusObject_stopTimeIsActivated = 1, + IntersectionStatusObject_failureFlash = 2, + IntersectionStatusObject_preemptIsActive = 3, + IntersectionStatusObject_signalPriorityIsActive = 4, + IntersectionStatusObject_fixedTimeOperation = 5, + IntersectionStatusObject_trafficDependentOperation = 6, + IntersectionStatusObject_standbyOperation = 7, + IntersectionStatusObject_failureMode = 8, + IntersectionStatusObject_off = 9, + IntersectionStatusObject_recentMAPmessageUpdate = 10, + IntersectionStatusObject_recentChangeInMAPassignedLanesIDsUsed = 11, + IntersectionStatusObject_noValidMAPisAvailableAtThisTime = 12, + IntersectionStatusObject_noValidSPATisAvailableAtThisTime = 13 +} e_IntersectionStatusObject; + +/* IntersectionStatusObject */ +typedef BIT_STRING_t IntersectionStatusObject_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject; +asn_struct_free_f IntersectionStatusObject_free; +asn_struct_print_f IntersectionStatusObject_print; +asn_constr_check_f IntersectionStatusObject_constraint; +ber_type_decoder_f IntersectionStatusObject_decode_ber; +der_type_encoder_f IntersectionStatusObject_encode_der; +xer_type_decoder_f IntersectionStatusObject_decode_xer; +xer_type_encoder_f IntersectionStatusObject_encode_xer; +oer_type_decoder_f IntersectionStatusObject_decode_oer; +oer_type_encoder_f IntersectionStatusObject_encode_oer; +per_type_decoder_f IntersectionStatusObject_decode_uper; +per_type_encoder_f IntersectionStatusObject_encode_uper; +per_type_decoder_f IntersectionStatusObject_decode_aper; +per_type_encoder_f IntersectionStatusObject_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStatusObject_H_ */ +#include diff --git a/vcits/ivim/Iso3833VehicleType.h b/vcits/ivim/Iso3833VehicleType.h new file mode 100644 index 0000000..cb9d928 --- /dev/null +++ b/vcits/ivim/Iso3833VehicleType.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Iso3833VehicleType_H_ +#define _Iso3833VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Iso3833VehicleType { + Iso3833VehicleType_passengerCar = 0, + Iso3833VehicleType_saloon = 1, + Iso3833VehicleType_convertibleSaloon = 2, + Iso3833VehicleType_pullmanSaloon = 3, + Iso3833VehicleType_stationWagon = 4, + Iso3833VehicleType_truckStationWagon = 5, + Iso3833VehicleType_coupe = 6, + Iso3833VehicleType_convertible = 7, + Iso3833VehicleType_multipurposePassengerCar = 8, + Iso3833VehicleType_forwardControlPassengerCar = 9, + Iso3833VehicleType_specialPassengerCar = 10, + Iso3833VehicleType_bus = 11, + Iso3833VehicleType_minibus = 12, + Iso3833VehicleType_urbanBus = 13, + Iso3833VehicleType_interurbanCoach = 14, + Iso3833VehicleType_longDistanceCoach = 15, + Iso3833VehicleType_articulatedBus = 16, + Iso3833VehicleType_trolleyBus = 17, + Iso3833VehicleType_specialBus = 18, + Iso3833VehicleType_commercialVehicle = 19, + Iso3833VehicleType_specialCommercialVehicle = 20, + Iso3833VehicleType_specialVehicle = 21, + Iso3833VehicleType_trailingTowingVehicle = 22, + Iso3833VehicleType_semiTrailerTowingVehicle = 23, + Iso3833VehicleType_trailer = 24, + Iso3833VehicleType_busTrailer = 25, + Iso3833VehicleType_generalPurposeTrailer = 26, + Iso3833VehicleType_caravan = 27, + Iso3833VehicleType_specialTrailer = 28, + Iso3833VehicleType_semiTrailer = 29, + Iso3833VehicleType_busSemiTrailer = 30, + Iso3833VehicleType_generalPurposeSemiTrailer = 31, + Iso3833VehicleType_specialSemiTrailer = 32, + Iso3833VehicleType_roadTrain = 33, + Iso3833VehicleType_passengerRoadTrain = 34, + Iso3833VehicleType_articulatedRoadTrain = 35, + Iso3833VehicleType_doubleRoadTrain = 36, + Iso3833VehicleType_compositeRoadTrain = 37, + Iso3833VehicleType_specialRoadTrain = 38, + Iso3833VehicleType_moped = 39, + Iso3833VehicleType_motorCycle = 40 +} e_Iso3833VehicleType; + +/* Iso3833VehicleType */ +typedef long Iso3833VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType; +asn_struct_free_f Iso3833VehicleType_free; +asn_struct_print_f Iso3833VehicleType_print; +asn_constr_check_f Iso3833VehicleType_constraint; +ber_type_decoder_f Iso3833VehicleType_decode_ber; +der_type_encoder_f Iso3833VehicleType_encode_der; +xer_type_decoder_f Iso3833VehicleType_decode_xer; +xer_type_encoder_f Iso3833VehicleType_encode_xer; +oer_type_decoder_f Iso3833VehicleType_decode_oer; +oer_type_encoder_f Iso3833VehicleType_encode_oer; +per_type_decoder_f Iso3833VehicleType_decode_uper; +per_type_encoder_f Iso3833VehicleType_encode_uper; +per_type_decoder_f Iso3833VehicleType_decode_aper; +per_type_encoder_f Iso3833VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Iso3833VehicleType_H_ */ +#include diff --git a/vcits/ivim/IssuerIdentifier.h b/vcits/ivim/IssuerIdentifier.h new file mode 100644 index 0000000..e9cd39c --- /dev/null +++ b/vcits/ivim/IssuerIdentifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IssuerIdentifier_H_ +#define _IssuerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IssuerIdentifier */ +typedef long IssuerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IssuerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IssuerIdentifier; +asn_struct_free_f IssuerIdentifier_free; +asn_struct_print_f IssuerIdentifier_print; +asn_constr_check_f IssuerIdentifier_constraint; +ber_type_decoder_f IssuerIdentifier_decode_ber; +der_type_encoder_f IssuerIdentifier_encode_der; +xer_type_decoder_f IssuerIdentifier_decode_xer; +xer_type_encoder_f IssuerIdentifier_encode_xer; +oer_type_decoder_f IssuerIdentifier_decode_oer; +oer_type_encoder_f IssuerIdentifier_encode_oer; +per_type_decoder_f IssuerIdentifier_decode_uper; +per_type_encoder_f IssuerIdentifier_encode_uper; +per_type_decoder_f IssuerIdentifier_decode_aper; +per_type_encoder_f IssuerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IssuerIdentifier_H_ */ +#include diff --git a/vcits/ivim/ItineraryPath.h b/vcits/ivim/ItineraryPath.h new file mode 100644 index 0000000..beb7aec --- /dev/null +++ b/vcits/ivim/ItineraryPath.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ItineraryPath_H_ +#define _ItineraryPath_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* ItineraryPath */ +typedef struct ItineraryPath { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItineraryPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItineraryPath; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItineraryPath_H_ */ +#include diff --git a/vcits/ivim/ItsPduHeader.h b/vcits/ivim/ItsPduHeader.h new file mode 100644 index 0000000..ff39b12 --- /dev/null +++ b/vcits/ivim/ItsPduHeader.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ItsPduHeader_H_ +#define _ItsPduHeader_H_ + + +#include + +/* Including external dependencies */ +#include +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ItsPduHeader__messageID { + ItsPduHeader__messageID_denm = 1, + ItsPduHeader__messageID_cam = 2, + ItsPduHeader__messageID_poi = 3, + ItsPduHeader__messageID_spatem = 4, + ItsPduHeader__messageID_mapem = 5, + ItsPduHeader__messageID_ivim = 6, + ItsPduHeader__messageID_ev_rsr = 7, + ItsPduHeader__messageID_tistpgtransaction = 8, + ItsPduHeader__messageID_srem = 9, + ItsPduHeader__messageID_ssem = 10, + ItsPduHeader__messageID_evcsn = 11, + ItsPduHeader__messageID_saem = 12, + ItsPduHeader__messageID_rtcmem = 13 +} e_ItsPduHeader__messageID; + +/* ItsPduHeader */ +typedef struct ItsPduHeader { + long protocolVersion; + long messageID; + StationID_t stationID; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsPduHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsPduHeader; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsPduHeader_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsPduHeader_H_ */ +#include diff --git a/vcits/ivim/ItsStationPosition.h b/vcits/ivim/ItsStationPosition.h new file mode 100644 index 0000000..453cd80 --- /dev/null +++ b/vcits/ivim/ItsStationPosition.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ItsStationPosition_H_ +#define _ItsStationPosition_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "LaneID.h" +#include "TimeReference.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeOffsetPointXY; + +/* ItsStationPosition */ +typedef struct ItsStationPosition { + StationID_t stationID; + LaneID_t *laneID; /* OPTIONAL */ + struct NodeOffsetPointXY *nodeXY; /* OPTIONAL */ + TimeReference_t *timeReference; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsStationPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsStationPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsStationPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsStationPosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsStationPosition_H_ */ +#include diff --git a/vcits/ivim/ItsStationPositionList.h b/vcits/ivim/ItsStationPositionList.h new file mode 100644 index 0000000..3c06617 --- /dev/null +++ b/vcits/ivim/ItsStationPositionList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ItsStationPositionList_H_ +#define _ItsStationPositionList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ItsStationPosition; + +/* ItsStationPositionList */ +typedef struct ItsStationPositionList { + A_SEQUENCE_OF(struct ItsStationPosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsStationPositionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsStationPositionList; +extern asn_SET_OF_specifics_t asn_SPC_ItsStationPositionList_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsStationPositionList_1[1]; +extern asn_per_constraints_t asn_PER_type_ItsStationPositionList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsStationPositionList_H_ */ +#include diff --git a/vcits/ivim/IviContainer.h b/vcits/ivim/IviContainer.h new file mode 100644 index 0000000..20ae4ed --- /dev/null +++ b/vcits/ivim/IviContainer.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IviContainer_H_ +#define _IviContainer_H_ + + +#include + +/* Including external dependencies */ +#include "GeographicLocationContainer.h" +#include "GeneralIviContainer.h" +#include "RoadConfigurationContainer.h" +#include "TextContainer.h" +#include "LayoutContainer.h" +#include "AutomatedVehicleContainer.h" +#include "MapLocationContainer.h" +#include "RoadSurfaceContainer.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IviContainer_PR { + IviContainer_PR_NOTHING, /* No components present */ + IviContainer_PR_glc, + IviContainer_PR_giv, + IviContainer_PR_rcc, + IviContainer_PR_tc, + IviContainer_PR_lac, + /* Extensions may appear below */ + IviContainer_PR_ext1 +} IviContainer_PR; + +/* IviContainer */ +typedef struct IviContainer { + IviContainer_PR present; + union IviContainer_u { + GeographicLocationContainer_t glc; + GeneralIviContainer_t giv; + RoadConfigurationContainer_t rcc; + TextContainer_t tc; + LayoutContainer_t lac; + /* + * This type is extensible, + * possible extensions are below. + */ + struct IviContainer__ext1 { + AutomatedVehicleContainer_t avc; + MapLocationContainer_t mlc; + RoadSurfaceContainer_t rsc; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IviContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IviContainer; +extern asn_CHOICE_specifics_t asn_SPC_IviContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_IviContainer_1[6]; +extern asn_per_constraints_t asn_PER_type_IviContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IviContainer_H_ */ +#include diff --git a/vcits/ivim/IviContainers.h b/vcits/ivim/IviContainers.h new file mode 100644 index 0000000..2d2721c --- /dev/null +++ b/vcits/ivim/IviContainers.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IviContainers_H_ +#define _IviContainers_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IviContainer; + +/* IviContainers */ +typedef struct IviContainers { + A_SEQUENCE_OF(struct IviContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IviContainers_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IviContainers; +extern asn_SET_OF_specifics_t asn_SPC_IviContainers_specs_1; +extern asn_TYPE_member_t asn_MBR_IviContainers_1[1]; +extern asn_per_constraints_t asn_PER_type_IviContainers_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IviContainers_H_ */ +#include diff --git a/vcits/ivim/IviIdentificationNumber.h b/vcits/ivim/IviIdentificationNumber.h new file mode 100644 index 0000000..5ed9e84 --- /dev/null +++ b/vcits/ivim/IviIdentificationNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IviIdentificationNumber_H_ +#define _IviIdentificationNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IviIdentificationNumber */ +typedef long IviIdentificationNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IviIdentificationNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IviIdentificationNumber; +asn_struct_free_f IviIdentificationNumber_free; +asn_struct_print_f IviIdentificationNumber_print; +asn_constr_check_f IviIdentificationNumber_constraint; +ber_type_decoder_f IviIdentificationNumber_decode_ber; +der_type_encoder_f IviIdentificationNumber_encode_der; +xer_type_decoder_f IviIdentificationNumber_decode_xer; +xer_type_encoder_f IviIdentificationNumber_encode_xer; +oer_type_decoder_f IviIdentificationNumber_decode_oer; +oer_type_encoder_f IviIdentificationNumber_encode_oer; +per_type_decoder_f IviIdentificationNumber_decode_uper; +per_type_encoder_f IviIdentificationNumber_encode_uper; +per_type_decoder_f IviIdentificationNumber_decode_aper; +per_type_encoder_f IviIdentificationNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IviIdentificationNumber_H_ */ +#include diff --git a/vcits/ivim/IviIdentificationNumbers.h b/vcits/ivim/IviIdentificationNumbers.h new file mode 100644 index 0000000..8cdc76e --- /dev/null +++ b/vcits/ivim/IviIdentificationNumbers.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IviIdentificationNumbers_H_ +#define _IviIdentificationNumbers_H_ + + +#include + +/* Including external dependencies */ +#include "IviIdentificationNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IviIdentificationNumbers */ +typedef struct IviIdentificationNumbers { + A_SEQUENCE_OF(IviIdentificationNumber_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IviIdentificationNumbers_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IviIdentificationNumbers; +extern asn_SET_OF_specifics_t asn_SPC_IviIdentificationNumbers_specs_1; +extern asn_TYPE_member_t asn_MBR_IviIdentificationNumbers_1[1]; +extern asn_per_constraints_t asn_PER_type_IviIdentificationNumbers_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IviIdentificationNumbers_H_ */ +#include diff --git a/vcits/ivim/IviLaneWidth.h b/vcits/ivim/IviLaneWidth.h new file mode 100644 index 0000000..f7da49f --- /dev/null +++ b/vcits/ivim/IviLaneWidth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IviLaneWidth_H_ +#define _IviLaneWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IviLaneWidth */ +typedef long IviLaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IviLaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IviLaneWidth; +asn_struct_free_f IviLaneWidth_free; +asn_struct_print_f IviLaneWidth_print; +asn_constr_check_f IviLaneWidth_constraint; +ber_type_decoder_f IviLaneWidth_decode_ber; +der_type_encoder_f IviLaneWidth_encode_der; +xer_type_decoder_f IviLaneWidth_decode_xer; +xer_type_encoder_f IviLaneWidth_encode_xer; +oer_type_decoder_f IviLaneWidth_decode_oer; +oer_type_encoder_f IviLaneWidth_encode_oer; +per_type_decoder_f IviLaneWidth_decode_uper; +per_type_encoder_f IviLaneWidth_encode_uper; +per_type_decoder_f IviLaneWidth_decode_aper; +per_type_encoder_f IviLaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IviLaneWidth_H_ */ +#include diff --git a/vcits/ivim/IviManagementContainer.h b/vcits/ivim/IviManagementContainer.h new file mode 100644 index 0000000..2444496 --- /dev/null +++ b/vcits/ivim/IviManagementContainer.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IviManagementContainer_H_ +#define _IviManagementContainer_H_ + + +#include + +/* Including external dependencies */ +#include "Provider.h" +#include "IviIdentificationNumber.h" +#include "TimestampIts.h" +#include "IviStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IviIdentificationNumbers; +struct ConnectedDenms; + +/* IviManagementContainer */ +typedef struct IviManagementContainer { + Provider_t serviceProviderId; + IviIdentificationNumber_t iviIdentificationNumber; + TimestampIts_t *timeStamp; /* OPTIONAL */ + TimestampIts_t *validFrom; /* OPTIONAL */ + TimestampIts_t *validTo; /* OPTIONAL */ + struct IviIdentificationNumbers *connectedIviStructures; /* OPTIONAL */ + IviStatus_t iviStatus; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ConnectedDenms *connectedDenms; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IviManagementContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IviManagementContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_IviManagementContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_IviManagementContainer_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IviManagementContainer_H_ */ +#include diff --git a/vcits/ivim/IviPurpose.h b/vcits/ivim/IviPurpose.h new file mode 100644 index 0000000..9fbb710 --- /dev/null +++ b/vcits/ivim/IviPurpose.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IviPurpose_H_ +#define _IviPurpose_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IviPurpose { + IviPurpose_safety = 0, + IviPurpose_environmental = 1, + IviPurpose_trafficOptimisation = 2 +} e_IviPurpose; + +/* IviPurpose */ +typedef long IviPurpose_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IviPurpose_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IviPurpose; +asn_struct_free_f IviPurpose_free; +asn_struct_print_f IviPurpose_print; +asn_constr_check_f IviPurpose_constraint; +ber_type_decoder_f IviPurpose_decode_ber; +der_type_encoder_f IviPurpose_encode_der; +xer_type_decoder_f IviPurpose_decode_xer; +xer_type_encoder_f IviPurpose_encode_xer; +oer_type_decoder_f IviPurpose_decode_oer; +oer_type_encoder_f IviPurpose_encode_oer; +per_type_decoder_f IviPurpose_decode_uper; +per_type_encoder_f IviPurpose_encode_uper; +per_type_decoder_f IviPurpose_decode_aper; +per_type_encoder_f IviPurpose_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IviPurpose_H_ */ +#include diff --git a/vcits/ivim/IviStatus.h b/vcits/ivim/IviStatus.h new file mode 100644 index 0000000..e1418f4 --- /dev/null +++ b/vcits/ivim/IviStatus.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IviStatus_H_ +#define _IviStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IviStatus { + IviStatus_new = 0, + IviStatus_update = 1, + IviStatus_cancellation = 2, + IviStatus_negation = 3 +} e_IviStatus; + +/* IviStatus */ +typedef long IviStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IviStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IviStatus; +asn_struct_free_f IviStatus_free; +asn_struct_print_f IviStatus_print; +asn_constr_check_f IviStatus_constraint; +ber_type_decoder_f IviStatus_decode_ber; +der_type_encoder_f IviStatus_encode_der; +xer_type_decoder_f IviStatus_decode_xer; +xer_type_encoder_f IviStatus_encode_xer; +oer_type_decoder_f IviStatus_decode_oer; +oer_type_encoder_f IviStatus_encode_oer; +per_type_decoder_f IviStatus_decode_uper; +per_type_encoder_f IviStatus_encode_uper; +per_type_decoder_f IviStatus_decode_aper; +per_type_encoder_f IviStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IviStatus_H_ */ +#include diff --git a/vcits/ivim/IviStructure.h b/vcits/ivim/IviStructure.h new file mode 100644 index 0000000..b59020d --- /dev/null +++ b/vcits/ivim/IviStructure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IviStructure_H_ +#define _IviStructure_H_ + + +#include + +/* Including external dependencies */ +#include "IviManagementContainer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IviContainers; + +/* IviStructure */ +typedef struct IviStructure { + IviManagementContainer_t mandatory; + struct IviContainers *optional; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IviStructure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IviStructure; +extern asn_SEQUENCE_specifics_t asn_SPC_IviStructure_specs_1; +extern asn_TYPE_member_t asn_MBR_IviStructure_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IviStructure_H_ */ +#include diff --git a/vcits/ivim/IviType.h b/vcits/ivim/IviType.h new file mode 100644 index 0000000..8e1cadf --- /dev/null +++ b/vcits/ivim/IviType.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _IviType_H_ +#define _IviType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IviType { + IviType_immediateDangerWarningMessages = 0, + IviType_regulatoryMessages = 1, + IviType_trafficRelatedInformationMessages = 2, + IviType_pollutionMessages = 3, + IviType_notTrafficRelatedInformationMessages = 4 +} e_IviType; + +/* IviType */ +typedef long IviType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IviType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IviType; +asn_struct_free_f IviType_free; +asn_struct_print_f IviType_print; +asn_constr_check_f IviType_constraint; +ber_type_decoder_f IviType_decode_ber; +der_type_encoder_f IviType_encode_der; +xer_type_decoder_f IviType_decode_xer; +xer_type_encoder_f IviType_encode_xer; +oer_type_decoder_f IviType_decode_oer; +oer_type_encoder_f IviType_encode_oer; +per_type_decoder_f IviType_decode_uper; +per_type_encoder_f IviType_encode_uper; +per_type_decoder_f IviType_decode_aper; +per_type_encoder_f IviType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IviType_H_ */ +#include diff --git a/vcits/ivim/LPN.h b/vcits/ivim/LPN.h new file mode 100644 index 0000000..8a344b1 --- /dev/null +++ b/vcits/ivim/LPN.h @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LPN_H_ +#define _LPN_H_ + + +#include + +/* Including external dependencies */ +#include "CountryCode.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LPN__alphabetIndicator { + LPN__alphabetIndicator_latinAlphabetNo1 = 1, + LPN__alphabetIndicator_latinAlphabetNo2 = 2, + LPN__alphabetIndicator_latinAlphabetNo3 = 3, + LPN__alphabetIndicator_latinAlphabetNo4 = 4, + LPN__alphabetIndicator_latinCyrillicAlphabet = 5, + LPN__alphabetIndicator_latinArabicAlphabet = 6, + LPN__alphabetIndicator_latinGreekAlphabet = 7, + LPN__alphabetIndicator_latinHebrewAlphabet = 8, + LPN__alphabetIndicator_latinAlphabetNo5 = 9, + LPN__alphabetIndicator_latinAlphabetNo6 = 10, + LPN__alphabetIndicator_twoOctetBMP = 11, + LPN__alphabetIndicator_fourOctetCanonical = 12, + LPN__alphabetIndicator_reservedForUse1 = 13, + LPN__alphabetIndicator_reservedForUse2 = 14, + LPN__alphabetIndicator_reservedForUse3 = 15, + LPN__alphabetIndicator_reservedForUse4 = 16, + LPN__alphabetIndicator_reservedForUse5 = 17, + LPN__alphabetIndicator_reservedForUse6 = 18, + LPN__alphabetIndicator_reservedForUse7 = 19, + LPN__alphabetIndicator_reservedForUse8 = 20, + LPN__alphabetIndicator_reservedForUse9 = 21, + LPN__alphabetIndicator_reservedForUse10 = 22, + LPN__alphabetIndicator_reservedForUse11 = 23, + LPN__alphabetIndicator_reservedForUse12 = 24, + LPN__alphabetIndicator_reservedForUse13 = 25, + LPN__alphabetIndicator_reservedForUse14 = 26, + LPN__alphabetIndicator_reservedForUse15 = 27, + LPN__alphabetIndicator_reservedForUse16 = 28, + LPN__alphabetIndicator_reservedForUse17 = 29, + LPN__alphabetIndicator_reservedForUse18 = 30, + LPN__alphabetIndicator_reservedForUse19 = 31, + LPN__alphabetIndicator_reservedForUse20 = 32, + LPN__alphabetIndicator_reservedForUse21 = 33 +} e_LPN__alphabetIndicator; + +/* LPN */ +typedef struct LPN { + CountryCode_t countryCode; + long alphabetIndicator; + OCTET_STRING_t licencePlateNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LPN_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_alphabetIndicator_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_LPN; +extern asn_SEQUENCE_specifics_t asn_SPC_LPN_specs_1; +extern asn_TYPE_member_t asn_MBR_LPN_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LPN_H_ */ +#include diff --git a/vcits/ivim/LaneAttributes-Barrier.h b/vcits/ivim/LaneAttributes-Barrier.h new file mode 100644 index 0000000..d344bb4 --- /dev/null +++ b/vcits/ivim/LaneAttributes-Barrier.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneAttributes_Barrier_H_ +#define _LaneAttributes_Barrier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Barrier { + LaneAttributes_Barrier_median_RevocableLane = 0, + LaneAttributes_Barrier_median = 1, + LaneAttributes_Barrier_whiteLineHashing = 2, + LaneAttributes_Barrier_stripedLines = 3, + LaneAttributes_Barrier_doubleStripedLines = 4, + LaneAttributes_Barrier_trafficCones = 5, + LaneAttributes_Barrier_constructionBarrier = 6, + LaneAttributes_Barrier_trafficChannels = 7, + LaneAttributes_Barrier_lowCurbs = 8, + LaneAttributes_Barrier_highCurbs = 9 +} e_LaneAttributes_Barrier; + +/* LaneAttributes-Barrier */ +typedef BIT_STRING_t LaneAttributes_Barrier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier; +asn_struct_free_f LaneAttributes_Barrier_free; +asn_struct_print_f LaneAttributes_Barrier_print; +asn_constr_check_f LaneAttributes_Barrier_constraint; +ber_type_decoder_f LaneAttributes_Barrier_decode_ber; +der_type_encoder_f LaneAttributes_Barrier_encode_der; +xer_type_decoder_f LaneAttributes_Barrier_decode_xer; +xer_type_encoder_f LaneAttributes_Barrier_encode_xer; +oer_type_decoder_f LaneAttributes_Barrier_decode_oer; +oer_type_encoder_f LaneAttributes_Barrier_encode_oer; +per_type_decoder_f LaneAttributes_Barrier_decode_uper; +per_type_encoder_f LaneAttributes_Barrier_encode_uper; +per_type_decoder_f LaneAttributes_Barrier_decode_aper; +per_type_encoder_f LaneAttributes_Barrier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Barrier_H_ */ +#include diff --git a/vcits/ivim/LaneAttributes-Bike.h b/vcits/ivim/LaneAttributes-Bike.h new file mode 100644 index 0000000..b644f79 --- /dev/null +++ b/vcits/ivim/LaneAttributes-Bike.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneAttributes_Bike_H_ +#define _LaneAttributes_Bike_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Bike { + LaneAttributes_Bike_bikeRevocableLane = 0, + LaneAttributes_Bike_pedestrianUseAllowed = 1, + LaneAttributes_Bike_isBikeFlyOverLane = 2, + LaneAttributes_Bike_fixedCycleTime = 3, + LaneAttributes_Bike_biDirectionalCycleTimes = 4, + LaneAttributes_Bike_isolatedByBarrier = 5, + LaneAttributes_Bike_unsignalizedSegmentsPresent = 6 +} e_LaneAttributes_Bike; + +/* LaneAttributes-Bike */ +typedef BIT_STRING_t LaneAttributes_Bike_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike; +asn_struct_free_f LaneAttributes_Bike_free; +asn_struct_print_f LaneAttributes_Bike_print; +asn_constr_check_f LaneAttributes_Bike_constraint; +ber_type_decoder_f LaneAttributes_Bike_decode_ber; +der_type_encoder_f LaneAttributes_Bike_encode_der; +xer_type_decoder_f LaneAttributes_Bike_decode_xer; +xer_type_encoder_f LaneAttributes_Bike_encode_xer; +oer_type_decoder_f LaneAttributes_Bike_decode_oer; +oer_type_encoder_f LaneAttributes_Bike_encode_oer; +per_type_decoder_f LaneAttributes_Bike_decode_uper; +per_type_encoder_f LaneAttributes_Bike_encode_uper; +per_type_decoder_f LaneAttributes_Bike_decode_aper; +per_type_encoder_f LaneAttributes_Bike_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Bike_H_ */ +#include diff --git a/vcits/ivim/LaneAttributes-Crosswalk.h b/vcits/ivim/LaneAttributes-Crosswalk.h new file mode 100644 index 0000000..06de40c --- /dev/null +++ b/vcits/ivim/LaneAttributes-Crosswalk.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneAttributes_Crosswalk_H_ +#define _LaneAttributes_Crosswalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Crosswalk { + LaneAttributes_Crosswalk_crosswalkRevocableLane = 0, + LaneAttributes_Crosswalk_bicyleUseAllowed = 1, + LaneAttributes_Crosswalk_isXwalkFlyOverLane = 2, + LaneAttributes_Crosswalk_fixedCycleTime = 3, + LaneAttributes_Crosswalk_biDirectionalCycleTimes = 4, + LaneAttributes_Crosswalk_hasPushToWalkButton = 5, + LaneAttributes_Crosswalk_audioSupport = 6, + LaneAttributes_Crosswalk_rfSignalRequestPresent = 7, + LaneAttributes_Crosswalk_unsignalizedSegmentsPresent = 8 +} e_LaneAttributes_Crosswalk; + +/* LaneAttributes-Crosswalk */ +typedef BIT_STRING_t LaneAttributes_Crosswalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk; +asn_struct_free_f LaneAttributes_Crosswalk_free; +asn_struct_print_f LaneAttributes_Crosswalk_print; +asn_constr_check_f LaneAttributes_Crosswalk_constraint; +ber_type_decoder_f LaneAttributes_Crosswalk_decode_ber; +der_type_encoder_f LaneAttributes_Crosswalk_encode_der; +xer_type_decoder_f LaneAttributes_Crosswalk_decode_xer; +xer_type_encoder_f LaneAttributes_Crosswalk_encode_xer; +oer_type_decoder_f LaneAttributes_Crosswalk_decode_oer; +oer_type_encoder_f LaneAttributes_Crosswalk_encode_oer; +per_type_decoder_f LaneAttributes_Crosswalk_decode_uper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_uper; +per_type_decoder_f LaneAttributes_Crosswalk_decode_aper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Crosswalk_H_ */ +#include diff --git a/vcits/ivim/LaneAttributes-Parking.h b/vcits/ivim/LaneAttributes-Parking.h new file mode 100644 index 0000000..33f8e1b --- /dev/null +++ b/vcits/ivim/LaneAttributes-Parking.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneAttributes_Parking_H_ +#define _LaneAttributes_Parking_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Parking { + LaneAttributes_Parking_parkingRevocableLane = 0, + LaneAttributes_Parking_parallelParkingInUse = 1, + LaneAttributes_Parking_headInParkingInUse = 2, + LaneAttributes_Parking_doNotParkZone = 3, + LaneAttributes_Parking_parkingForBusUse = 4, + LaneAttributes_Parking_parkingForTaxiUse = 5, + LaneAttributes_Parking_noPublicParkingUse = 6 +} e_LaneAttributes_Parking; + +/* LaneAttributes-Parking */ +typedef BIT_STRING_t LaneAttributes_Parking_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking; +asn_struct_free_f LaneAttributes_Parking_free; +asn_struct_print_f LaneAttributes_Parking_print; +asn_constr_check_f LaneAttributes_Parking_constraint; +ber_type_decoder_f LaneAttributes_Parking_decode_ber; +der_type_encoder_f LaneAttributes_Parking_encode_der; +xer_type_decoder_f LaneAttributes_Parking_decode_xer; +xer_type_encoder_f LaneAttributes_Parking_encode_xer; +oer_type_decoder_f LaneAttributes_Parking_decode_oer; +oer_type_encoder_f LaneAttributes_Parking_encode_oer; +per_type_decoder_f LaneAttributes_Parking_decode_uper; +per_type_encoder_f LaneAttributes_Parking_encode_uper; +per_type_decoder_f LaneAttributes_Parking_decode_aper; +per_type_encoder_f LaneAttributes_Parking_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Parking_H_ */ +#include diff --git a/vcits/ivim/LaneAttributes-Sidewalk.h b/vcits/ivim/LaneAttributes-Sidewalk.h new file mode 100644 index 0000000..8f18fe6 --- /dev/null +++ b/vcits/ivim/LaneAttributes-Sidewalk.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneAttributes_Sidewalk_H_ +#define _LaneAttributes_Sidewalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Sidewalk { + LaneAttributes_Sidewalk_sidewalk_RevocableLane = 0, + LaneAttributes_Sidewalk_bicyleUseAllowed = 1, + LaneAttributes_Sidewalk_isSidewalkFlyOverLane = 2, + LaneAttributes_Sidewalk_walkBikes = 3 +} e_LaneAttributes_Sidewalk; + +/* LaneAttributes-Sidewalk */ +typedef BIT_STRING_t LaneAttributes_Sidewalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk; +asn_struct_free_f LaneAttributes_Sidewalk_free; +asn_struct_print_f LaneAttributes_Sidewalk_print; +asn_constr_check_f LaneAttributes_Sidewalk_constraint; +ber_type_decoder_f LaneAttributes_Sidewalk_decode_ber; +der_type_encoder_f LaneAttributes_Sidewalk_encode_der; +xer_type_decoder_f LaneAttributes_Sidewalk_decode_xer; +xer_type_encoder_f LaneAttributes_Sidewalk_encode_xer; +oer_type_decoder_f LaneAttributes_Sidewalk_decode_oer; +oer_type_encoder_f LaneAttributes_Sidewalk_encode_oer; +per_type_decoder_f LaneAttributes_Sidewalk_decode_uper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_uper; +per_type_decoder_f LaneAttributes_Sidewalk_decode_aper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Sidewalk_H_ */ +#include diff --git a/vcits/ivim/LaneAttributes-Striping.h b/vcits/ivim/LaneAttributes-Striping.h new file mode 100644 index 0000000..2e8092f --- /dev/null +++ b/vcits/ivim/LaneAttributes-Striping.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneAttributes_Striping_H_ +#define _LaneAttributes_Striping_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Striping { + LaneAttributes_Striping_stripeToConnectingLanesRevocableLane = 0, + LaneAttributes_Striping_stripeDrawOnLeft = 1, + LaneAttributes_Striping_stripeDrawOnRight = 2, + LaneAttributes_Striping_stripeToConnectingLanesLeft = 3, + LaneAttributes_Striping_stripeToConnectingLanesRight = 4, + LaneAttributes_Striping_stripeToConnectingLanesAhead = 5 +} e_LaneAttributes_Striping; + +/* LaneAttributes-Striping */ +typedef BIT_STRING_t LaneAttributes_Striping_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping; +asn_struct_free_f LaneAttributes_Striping_free; +asn_struct_print_f LaneAttributes_Striping_print; +asn_constr_check_f LaneAttributes_Striping_constraint; +ber_type_decoder_f LaneAttributes_Striping_decode_ber; +der_type_encoder_f LaneAttributes_Striping_encode_der; +xer_type_decoder_f LaneAttributes_Striping_decode_xer; +xer_type_encoder_f LaneAttributes_Striping_encode_xer; +oer_type_decoder_f LaneAttributes_Striping_decode_oer; +oer_type_encoder_f LaneAttributes_Striping_encode_oer; +per_type_decoder_f LaneAttributes_Striping_decode_uper; +per_type_encoder_f LaneAttributes_Striping_encode_uper; +per_type_decoder_f LaneAttributes_Striping_decode_aper; +per_type_encoder_f LaneAttributes_Striping_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Striping_H_ */ +#include diff --git a/vcits/ivim/LaneAttributes-TrackedVehicle.h b/vcits/ivim/LaneAttributes-TrackedVehicle.h new file mode 100644 index 0000000..7c3136c --- /dev/null +++ b/vcits/ivim/LaneAttributes-TrackedVehicle.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneAttributes_TrackedVehicle_H_ +#define _LaneAttributes_TrackedVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_TrackedVehicle { + LaneAttributes_TrackedVehicle_spec_RevocableLane = 0, + LaneAttributes_TrackedVehicle_spec_commuterRailRoadTrack = 1, + LaneAttributes_TrackedVehicle_spec_lightRailRoadTrack = 2, + LaneAttributes_TrackedVehicle_spec_heavyRailRoadTrack = 3, + LaneAttributes_TrackedVehicle_spec_otherRailType = 4 +} e_LaneAttributes_TrackedVehicle; + +/* LaneAttributes-TrackedVehicle */ +typedef BIT_STRING_t LaneAttributes_TrackedVehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle; +asn_struct_free_f LaneAttributes_TrackedVehicle_free; +asn_struct_print_f LaneAttributes_TrackedVehicle_print; +asn_constr_check_f LaneAttributes_TrackedVehicle_constraint; +ber_type_decoder_f LaneAttributes_TrackedVehicle_decode_ber; +der_type_encoder_f LaneAttributes_TrackedVehicle_encode_der; +xer_type_decoder_f LaneAttributes_TrackedVehicle_decode_xer; +xer_type_encoder_f LaneAttributes_TrackedVehicle_encode_xer; +oer_type_decoder_f LaneAttributes_TrackedVehicle_decode_oer; +oer_type_encoder_f LaneAttributes_TrackedVehicle_encode_oer; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_uper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_uper; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_aper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_TrackedVehicle_H_ */ +#include diff --git a/vcits/ivim/LaneAttributes-Vehicle.h b/vcits/ivim/LaneAttributes-Vehicle.h new file mode 100644 index 0000000..73ee2fc --- /dev/null +++ b/vcits/ivim/LaneAttributes-Vehicle.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneAttributes_Vehicle_H_ +#define _LaneAttributes_Vehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Vehicle { + LaneAttributes_Vehicle_isVehicleRevocableLane = 0, + LaneAttributes_Vehicle_isVehicleFlyOverLane = 1, + LaneAttributes_Vehicle_hovLaneUseOnly = 2, + LaneAttributes_Vehicle_restrictedToBusUse = 3, + LaneAttributes_Vehicle_restrictedToTaxiUse = 4, + LaneAttributes_Vehicle_restrictedFromPublicUse = 5, + LaneAttributes_Vehicle_hasIRbeaconCoverage = 6, + LaneAttributes_Vehicle_permissionOnRequest = 7 +} e_LaneAttributes_Vehicle; + +/* LaneAttributes-Vehicle */ +typedef BIT_STRING_t LaneAttributes_Vehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle; +asn_struct_free_f LaneAttributes_Vehicle_free; +asn_struct_print_f LaneAttributes_Vehicle_print; +asn_constr_check_f LaneAttributes_Vehicle_constraint; +ber_type_decoder_f LaneAttributes_Vehicle_decode_ber; +der_type_encoder_f LaneAttributes_Vehicle_encode_der; +xer_type_decoder_f LaneAttributes_Vehicle_decode_xer; +xer_type_encoder_f LaneAttributes_Vehicle_encode_xer; +oer_type_decoder_f LaneAttributes_Vehicle_decode_oer; +oer_type_encoder_f LaneAttributes_Vehicle_encode_oer; +per_type_decoder_f LaneAttributes_Vehicle_decode_uper; +per_type_encoder_f LaneAttributes_Vehicle_encode_uper; +per_type_decoder_f LaneAttributes_Vehicle_decode_aper; +per_type_encoder_f LaneAttributes_Vehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Vehicle_H_ */ +#include diff --git a/vcits/ivim/LaneAttributes-addGrpC.h b/vcits/ivim/LaneAttributes-addGrpC.h new file mode 100644 index 0000000..ef4aceb --- /dev/null +++ b/vcits/ivim/LaneAttributes-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneAttributes_addGrpC_H_ +#define _LaneAttributes_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleHeight.h" +#include "VehicleMass.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneAttributes-addGrpC */ +typedef struct LaneAttributes_addGrpC { + VehicleHeight_t *maxVehicleHeight; /* OPTIONAL */ + VehicleMass_t *maxVehicleWeight; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_addGrpC_H_ */ +#include diff --git a/vcits/ivim/LaneAttributes.h b/vcits/ivim/LaneAttributes.h new file mode 100644 index 0000000..c1f5332 --- /dev/null +++ b/vcits/ivim/LaneAttributes.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneAttributes_H_ +#define _LaneAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "LaneDirection.h" +#include "LaneSharing.h" +#include "LaneTypeAttributes.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_LaneAttributes; + +/* LaneAttributes */ +typedef struct LaneAttributes { + LaneDirection_t directionalUse; + LaneSharing_t sharedWith; + LaneTypeAttributes_t laneType; + struct Reg_LaneAttributes *regional; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_H_ */ +#include diff --git a/vcits/ivim/LaneCharacteristics.h b/vcits/ivim/LaneCharacteristics.h new file mode 100644 index 0000000..5926684 --- /dev/null +++ b/vcits/ivim/LaneCharacteristics.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneCharacteristics_H_ +#define _LaneCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "DefinitionAccuracy.h" +#include "LaneMarkingStatus.h" +#include "MarkingColour.h" +#include "LaneDelimitation.h" +#include "Zid.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneCharacteristics */ +typedef struct LaneCharacteristics { + DefinitionAccuracy_t zoneDefinitionAccuracy; + LaneMarkingStatus_t existinglaneMarkingStatus; + MarkingColour_t newlaneMarkingColour; + LaneDelimitation_t laneDelimitationLeft; + LaneDelimitation_t laneDelimitationRight; + Zid_t mergingWith; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneCharacteristics_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneCharacteristics_H_ */ +#include diff --git a/vcits/ivim/LaneConfiguration.h b/vcits/ivim/LaneConfiguration.h new file mode 100644 index 0000000..1b5ec8a --- /dev/null +++ b/vcits/ivim/LaneConfiguration.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneConfiguration_H_ +#define _LaneConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LaneInformation; + +/* LaneConfiguration */ +typedef struct LaneConfiguration { + A_SEQUENCE_OF(struct LaneInformation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneConfiguration; +extern asn_SET_OF_specifics_t asn_SPC_LaneConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneConfiguration_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneConfiguration_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneConfiguration_H_ */ +#include diff --git a/vcits/ivim/LaneConnectionID.h b/vcits/ivim/LaneConnectionID.h new file mode 100644 index 0000000..c5aa719 --- /dev/null +++ b/vcits/ivim/LaneConnectionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneConnectionID_H_ +#define _LaneConnectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneConnectionID */ +typedef long LaneConnectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneConnectionID; +asn_struct_free_f LaneConnectionID_free; +asn_struct_print_f LaneConnectionID_print; +asn_constr_check_f LaneConnectionID_constraint; +ber_type_decoder_f LaneConnectionID_decode_ber; +der_type_encoder_f LaneConnectionID_encode_der; +xer_type_decoder_f LaneConnectionID_decode_xer; +xer_type_encoder_f LaneConnectionID_encode_xer; +oer_type_decoder_f LaneConnectionID_decode_oer; +oer_type_encoder_f LaneConnectionID_encode_oer; +per_type_decoder_f LaneConnectionID_decode_uper; +per_type_encoder_f LaneConnectionID_encode_uper; +per_type_decoder_f LaneConnectionID_decode_aper; +per_type_encoder_f LaneConnectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneConnectionID_H_ */ +#include diff --git a/vcits/ivim/LaneDataAttribute.h b/vcits/ivim/LaneDataAttribute.h new file mode 100644 index 0000000..4f45829 --- /dev/null +++ b/vcits/ivim/LaneDataAttribute.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneDataAttribute_H_ +#define _LaneDataAttribute_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaAngle.h" +#include "RoadwayCrownAngle.h" +#include "MergeDivergeNodeAngle.h" +#include "SpeedLimitList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDataAttribute_PR { + LaneDataAttribute_PR_NOTHING, /* No components present */ + LaneDataAttribute_PR_pathEndPointAngle, + LaneDataAttribute_PR_laneCrownPointCenter, + LaneDataAttribute_PR_laneCrownPointLeft, + LaneDataAttribute_PR_laneCrownPointRight, + LaneDataAttribute_PR_laneAngle, + LaneDataAttribute_PR_speedLimits, + LaneDataAttribute_PR_regional + /* Extensions may appear below */ + +} LaneDataAttribute_PR; + +/* Forward declarations */ +struct Reg_LaneDataAttribute; + +/* LaneDataAttribute */ +typedef struct LaneDataAttribute { + LaneDataAttribute_PR present; + union LaneDataAttribute_u { + DeltaAngle_t pathEndPointAngle; + RoadwayCrownAngle_t laneCrownPointCenter; + RoadwayCrownAngle_t laneCrownPointLeft; + RoadwayCrownAngle_t laneCrownPointRight; + MergeDivergeNodeAngle_t laneAngle; + SpeedLimitList_t speedLimits; + struct LaneDataAttribute__regional { + A_SEQUENCE_OF(struct Reg_LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute; +extern asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[7]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttribute_H_ */ +#include diff --git a/vcits/ivim/LaneDataAttributeList.h b/vcits/ivim/LaneDataAttributeList.h new file mode 100644 index 0000000..03506d0 --- /dev/null +++ b/vcits/ivim/LaneDataAttributeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneDataAttributeList_H_ +#define _LaneDataAttributeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LaneDataAttribute; + +/* LaneDataAttributeList */ +typedef struct LaneDataAttributeList { + A_SEQUENCE_OF(struct LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttributeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList; +extern asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttributeList_H_ */ +#include diff --git a/vcits/ivim/LaneDelimitation.h b/vcits/ivim/LaneDelimitation.h new file mode 100644 index 0000000..00bfe42 --- /dev/null +++ b/vcits/ivim/LaneDelimitation.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneDelimitation_H_ +#define _LaneDelimitation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDelimitation { + LaneDelimitation_noDelimitation = 0, + LaneDelimitation_lowLaneSeparator = 1, + LaneDelimitation_highLaneSeparator = 2, + LaneDelimitation_wall = 3, + LaneDelimitation_curb = 4, + LaneDelimitation_unpaved = 5, + LaneDelimitation_guardrail = 6 +} e_LaneDelimitation; + +/* LaneDelimitation */ +typedef long LaneDelimitation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneDelimitation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneDelimitation; +asn_struct_free_f LaneDelimitation_free; +asn_struct_print_f LaneDelimitation_print; +asn_constr_check_f LaneDelimitation_constraint; +ber_type_decoder_f LaneDelimitation_decode_ber; +der_type_encoder_f LaneDelimitation_encode_der; +xer_type_decoder_f LaneDelimitation_decode_xer; +xer_type_encoder_f LaneDelimitation_encode_xer; +oer_type_decoder_f LaneDelimitation_decode_oer; +oer_type_encoder_f LaneDelimitation_encode_oer; +per_type_decoder_f LaneDelimitation_decode_uper; +per_type_encoder_f LaneDelimitation_encode_uper; +per_type_decoder_f LaneDelimitation_decode_aper; +per_type_encoder_f LaneDelimitation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDelimitation_H_ */ +#include diff --git a/vcits/ivim/LaneDirection.h b/vcits/ivim/LaneDirection.h new file mode 100644 index 0000000..3d09e4f --- /dev/null +++ b/vcits/ivim/LaneDirection.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneDirection_H_ +#define _LaneDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDirection { + LaneDirection_ingressPath = 0, + LaneDirection_egressPath = 1 +} e_LaneDirection; + +/* LaneDirection */ +typedef BIT_STRING_t LaneDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneDirection; +asn_struct_free_f LaneDirection_free; +asn_struct_print_f LaneDirection_print; +asn_constr_check_f LaneDirection_constraint; +ber_type_decoder_f LaneDirection_decode_ber; +der_type_encoder_f LaneDirection_encode_der; +xer_type_decoder_f LaneDirection_decode_xer; +xer_type_encoder_f LaneDirection_encode_xer; +oer_type_decoder_f LaneDirection_decode_oer; +oer_type_encoder_f LaneDirection_encode_oer; +per_type_decoder_f LaneDirection_decode_uper; +per_type_encoder_f LaneDirection_encode_uper; +per_type_decoder_f LaneDirection_decode_aper; +per_type_encoder_f LaneDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDirection_H_ */ +#include diff --git a/vcits/ivim/LaneID.h b/vcits/ivim/LaneID.h new file mode 100644 index 0000000..ae7eeaa --- /dev/null +++ b/vcits/ivim/LaneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneID_H_ +#define _LaneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneID */ +typedef long LaneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneID; +asn_struct_free_f LaneID_free; +asn_struct_print_f LaneID_print; +asn_constr_check_f LaneID_constraint; +ber_type_decoder_f LaneID_decode_ber; +der_type_encoder_f LaneID_encode_der; +xer_type_decoder_f LaneID_decode_xer; +xer_type_encoder_f LaneID_encode_xer; +oer_type_decoder_f LaneID_decode_oer; +oer_type_encoder_f LaneID_encode_oer; +per_type_decoder_f LaneID_decode_uper; +per_type_encoder_f LaneID_encode_uper; +per_type_decoder_f LaneID_decode_aper; +per_type_encoder_f LaneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneID_H_ */ +#include diff --git a/vcits/ivim/LaneIds.h b/vcits/ivim/LaneIds.h new file mode 100644 index 0000000..5f234d0 --- /dev/null +++ b/vcits/ivim/LaneIds.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneIds_H_ +#define _LaneIds_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneIds */ +typedef struct LaneIds { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneIds_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneIds; +extern asn_SET_OF_specifics_t asn_SPC_LaneIds_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneIds_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneIds_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneIds_H_ */ +#include diff --git a/vcits/ivim/LaneInformation.h b/vcits/ivim/LaneInformation.h new file mode 100644 index 0000000..862af2f --- /dev/null +++ b/vcits/ivim/LaneInformation.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneInformation_H_ +#define _LaneInformation_H_ + + +#include + +/* Including external dependencies */ +#include "LanePosition.h" +#include "Direction.h" +#include "LaneType.h" +#include "LaneStatus.h" +#include "IviLaneWidth.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct InternationalSign_applicablePeriod; +struct CompleteVehicleCharacteristics; +struct ZoneIds; +struct LaneCharacteristics; +struct RoadSurfaceStaticCharacteristics; +struct RoadSurfaceDynamicCharacteristics; + +/* LaneInformation */ +typedef struct LaneInformation { + LanePosition_t laneNumber; + Direction_t direction; + struct InternationalSign_applicablePeriod *validity; /* OPTIONAL */ + LaneType_t laneType; + struct CompleteVehicleCharacteristics *laneTypeQualifier; /* OPTIONAL */ + LaneStatus_t laneStatus; + IviLaneWidth_t *laneWidth; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct LaneInformation__ext1 { + struct ZoneIds *detectionZoneIds; /* OPTIONAL */ + struct ZoneIds *relevanceZoneIds; /* OPTIONAL */ + struct LaneCharacteristics *laneCharacteristics; /* OPTIONAL */ + struct RoadSurfaceStaticCharacteristics *laneSurfaceStaticCharacteristics; /* OPTIONAL */ + struct RoadSurfaceDynamicCharacteristics *laneSurfaceDynamicCharacteristics; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneInformation_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneInformation_H_ */ +#include diff --git a/vcits/ivim/LaneList.h b/vcits/ivim/LaneList.h new file mode 100644 index 0000000..e0a2069 --- /dev/null +++ b/vcits/ivim/LaneList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneList_H_ +#define _LaneList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* LaneList */ +typedef struct LaneList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneList; +extern asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneList_H_ */ +#include diff --git a/vcits/ivim/LaneMarkingStatus.h b/vcits/ivim/LaneMarkingStatus.h new file mode 100644 index 0000000..a6afb6e --- /dev/null +++ b/vcits/ivim/LaneMarkingStatus.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneMarkingStatus_H_ +#define _LaneMarkingStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneMarkingStatus */ +typedef BOOLEAN_t LaneMarkingStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneMarkingStatus; +asn_struct_free_f LaneMarkingStatus_free; +asn_struct_print_f LaneMarkingStatus_print; +asn_constr_check_f LaneMarkingStatus_constraint; +ber_type_decoder_f LaneMarkingStatus_decode_ber; +der_type_encoder_f LaneMarkingStatus_encode_der; +xer_type_decoder_f LaneMarkingStatus_decode_xer; +xer_type_encoder_f LaneMarkingStatus_encode_xer; +oer_type_decoder_f LaneMarkingStatus_decode_oer; +oer_type_encoder_f LaneMarkingStatus_encode_oer; +per_type_decoder_f LaneMarkingStatus_decode_uper; +per_type_encoder_f LaneMarkingStatus_encode_uper; +per_type_decoder_f LaneMarkingStatus_decode_aper; +per_type_encoder_f LaneMarkingStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneMarkingStatus_H_ */ +#include diff --git a/vcits/ivim/LanePosition.h b/vcits/ivim/LanePosition.h new file mode 100644 index 0000000..50e63e2 --- /dev/null +++ b/vcits/ivim/LanePosition.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LanePosition_H_ +#define _LanePosition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LanePosition { + LanePosition_offTheRoad = -1, + LanePosition_innerHardShoulder = 0, + LanePosition_innermostDrivingLane = 1, + LanePosition_secondLaneFromInside = 2, + LanePosition_outerHardShoulder = 14 +} e_LanePosition; + +/* LanePosition */ +typedef long LanePosition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LanePosition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LanePosition; +asn_struct_free_f LanePosition_free; +asn_struct_print_f LanePosition_print; +asn_constr_check_f LanePosition_constraint; +ber_type_decoder_f LanePosition_decode_ber; +der_type_encoder_f LanePosition_encode_der; +xer_type_decoder_f LanePosition_decode_xer; +xer_type_encoder_f LanePosition_encode_xer; +oer_type_decoder_f LanePosition_decode_oer; +oer_type_encoder_f LanePosition_encode_oer; +per_type_decoder_f LanePosition_decode_uper; +per_type_encoder_f LanePosition_encode_uper; +per_type_decoder_f LanePosition_decode_aper; +per_type_encoder_f LanePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LanePosition_H_ */ +#include diff --git a/vcits/ivim/LanePositions.h b/vcits/ivim/LanePositions.h new file mode 100644 index 0000000..964a6dc --- /dev/null +++ b/vcits/ivim/LanePositions.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LanePositions_H_ +#define _LanePositions_H_ + + +#include + +/* Including external dependencies */ +#include "LanePosition.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LanePositions */ +typedef struct LanePositions { + A_SEQUENCE_OF(LanePosition_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LanePositions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LanePositions; +extern asn_SET_OF_specifics_t asn_SPC_LanePositions_specs_1; +extern asn_TYPE_member_t asn_MBR_LanePositions_1[1]; +extern asn_per_constraints_t asn_PER_type_LanePositions_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LanePositions_H_ */ +#include diff --git a/vcits/ivim/LaneSharing.h b/vcits/ivim/LaneSharing.h new file mode 100644 index 0000000..79e590c --- /dev/null +++ b/vcits/ivim/LaneSharing.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneSharing_H_ +#define _LaneSharing_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneSharing { + LaneSharing_overlappingLaneDescriptionProvided = 0, + LaneSharing_multipleLanesTreatedAsOneLane = 1, + LaneSharing_otherNonMotorizedTrafficTypes = 2, + LaneSharing_individualMotorizedVehicleTraffic = 3, + LaneSharing_busVehicleTraffic = 4, + LaneSharing_taxiVehicleTraffic = 5, + LaneSharing_pedestriansTraffic = 6, + LaneSharing_cyclistVehicleTraffic = 7, + LaneSharing_trackedVehicleTraffic = 8, + LaneSharing_pedestrianTraffic = 9 +} e_LaneSharing; + +/* LaneSharing */ +typedef BIT_STRING_t LaneSharing_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneSharing_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneSharing; +asn_struct_free_f LaneSharing_free; +asn_struct_print_f LaneSharing_print; +asn_constr_check_f LaneSharing_constraint; +ber_type_decoder_f LaneSharing_decode_ber; +der_type_encoder_f LaneSharing_encode_der; +xer_type_decoder_f LaneSharing_decode_xer; +xer_type_encoder_f LaneSharing_encode_xer; +oer_type_decoder_f LaneSharing_decode_oer; +oer_type_encoder_f LaneSharing_encode_oer; +per_type_decoder_f LaneSharing_decode_uper; +per_type_encoder_f LaneSharing_encode_uper; +per_type_decoder_f LaneSharing_decode_aper; +per_type_encoder_f LaneSharing_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneSharing_H_ */ +#include diff --git a/vcits/ivim/LaneStatus.h b/vcits/ivim/LaneStatus.h new file mode 100644 index 0000000..67f5bdd --- /dev/null +++ b/vcits/ivim/LaneStatus.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneStatus_H_ +#define _LaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneStatus { + LaneStatus_open = 0, + LaneStatus_closed = 1, + LaneStatus_mergeR = 2, + LaneStatus_mergeL = 3, + LaneStatus_mergeLR = 4, + LaneStatus_provisionallyOpen = 5, + LaneStatus_diverging = 6 +} e_LaneStatus; + +/* LaneStatus */ +typedef long LaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneStatus; +asn_struct_free_f LaneStatus_free; +asn_struct_print_f LaneStatus_print; +asn_constr_check_f LaneStatus_constraint; +ber_type_decoder_f LaneStatus_decode_ber; +der_type_encoder_f LaneStatus_encode_der; +xer_type_decoder_f LaneStatus_decode_xer; +xer_type_encoder_f LaneStatus_encode_xer; +oer_type_decoder_f LaneStatus_decode_oer; +oer_type_encoder_f LaneStatus_encode_oer; +per_type_decoder_f LaneStatus_decode_uper; +per_type_encoder_f LaneStatus_encode_uper; +per_type_decoder_f LaneStatus_decode_aper; +per_type_encoder_f LaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneStatus_H_ */ +#include diff --git a/vcits/ivim/LaneType.h b/vcits/ivim/LaneType.h new file mode 100644 index 0000000..627d76d --- /dev/null +++ b/vcits/ivim/LaneType.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneType_H_ +#define _LaneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneType { + LaneType_traffic = 0, + LaneType_through = 1, + LaneType_reversible = 2, + LaneType_acceleration = 3, + LaneType_deceleration = 4, + LaneType_leftHandTurning = 5, + LaneType_rightHandTurning = 6, + LaneType_dedicatedVehicle = 7, + LaneType_bus = 8, + LaneType_taxi = 9, + LaneType_hov = 10, + LaneType_hot = 11, + LaneType_pedestrian = 12, + LaneType_bikeLane = 13, + LaneType_median = 14, + LaneType_striping = 15, + LaneType_trackedVehicle = 16, + LaneType_parking = 17, + LaneType_emergency = 18, + LaneType_verge = 19, + LaneType_minimumRiskManoeuvre = 20 +} e_LaneType; + +/* LaneType */ +typedef long LaneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneType; +asn_struct_free_f LaneType_free; +asn_struct_print_f LaneType_print; +asn_constr_check_f LaneType_constraint; +ber_type_decoder_f LaneType_decode_ber; +der_type_encoder_f LaneType_encode_der; +xer_type_decoder_f LaneType_decode_xer; +xer_type_encoder_f LaneType_encode_xer; +oer_type_decoder_f LaneType_decode_oer; +oer_type_encoder_f LaneType_encode_oer; +per_type_decoder_f LaneType_decode_uper; +per_type_encoder_f LaneType_encode_uper; +per_type_decoder_f LaneType_decode_aper; +per_type_encoder_f LaneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneType_H_ */ +#include diff --git a/vcits/ivim/LaneTypeAttributes.h b/vcits/ivim/LaneTypeAttributes.h new file mode 100644 index 0000000..3e9fc16 --- /dev/null +++ b/vcits/ivim/LaneTypeAttributes.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneTypeAttributes_H_ +#define _LaneTypeAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "LaneAttributes-Vehicle.h" +#include "LaneAttributes-Crosswalk.h" +#include "LaneAttributes-Bike.h" +#include "LaneAttributes-Sidewalk.h" +#include "LaneAttributes-Barrier.h" +#include "LaneAttributes-Striping.h" +#include "LaneAttributes-TrackedVehicle.h" +#include "LaneAttributes-Parking.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneTypeAttributes_PR { + LaneTypeAttributes_PR_NOTHING, /* No components present */ + LaneTypeAttributes_PR_vehicle, + LaneTypeAttributes_PR_crosswalk, + LaneTypeAttributes_PR_bikeLane, + LaneTypeAttributes_PR_sidewalk, + LaneTypeAttributes_PR_median, + LaneTypeAttributes_PR_striping, + LaneTypeAttributes_PR_trackedVehicle, + LaneTypeAttributes_PR_parking + /* Extensions may appear below */ + +} LaneTypeAttributes_PR; + +/* LaneTypeAttributes */ +typedef struct LaneTypeAttributes { + LaneTypeAttributes_PR present; + union LaneTypeAttributes_u { + LaneAttributes_Vehicle_t vehicle; + LaneAttributes_Crosswalk_t crosswalk; + LaneAttributes_Bike_t bikeLane; + LaneAttributes_Sidewalk_t sidewalk; + LaneAttributes_Barrier_t median; + LaneAttributes_Striping_t striping; + LaneAttributes_TrackedVehicle_t trackedVehicle; + LaneAttributes_Parking_t parking; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneTypeAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes; +extern asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[8]; +extern asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneTypeAttributes_H_ */ +#include diff --git a/vcits/ivim/LaneWidth.h b/vcits/ivim/LaneWidth.h new file mode 100644 index 0000000..9725633 --- /dev/null +++ b/vcits/ivim/LaneWidth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LaneWidth_H_ +#define _LaneWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneWidth */ +typedef long LaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneWidth; +asn_struct_free_f LaneWidth_free; +asn_struct_print_f LaneWidth_print; +asn_constr_check_f LaneWidth_constraint; +ber_type_decoder_f LaneWidth_decode_ber; +der_type_encoder_f LaneWidth_encode_der; +xer_type_decoder_f LaneWidth_decode_xer; +xer_type_encoder_f LaneWidth_encode_xer; +oer_type_decoder_f LaneWidth_decode_oer; +oer_type_encoder_f LaneWidth_encode_oer; +per_type_decoder_f LaneWidth_decode_uper; +per_type_encoder_f LaneWidth_encode_uper; +per_type_decoder_f LaneWidth_decode_aper; +per_type_encoder_f LaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneWidth_H_ */ +#include diff --git a/vcits/ivim/LateralAcceleration.h b/vcits/ivim/LateralAcceleration.h new file mode 100644 index 0000000..7417788 --- /dev/null +++ b/vcits/ivim/LateralAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LateralAcceleration_H_ +#define _LateralAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LateralAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LateralAcceleration */ +typedef struct LateralAcceleration { + LateralAccelerationValue_t lateralAccelerationValue; + AccelerationConfidence_t lateralAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LateralAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LateralAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAcceleration_H_ */ +#include diff --git a/vcits/ivim/LateralAccelerationValue.h b/vcits/ivim/LateralAccelerationValue.h new file mode 100644 index 0000000..121d2d8 --- /dev/null +++ b/vcits/ivim/LateralAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LateralAccelerationValue_H_ +#define _LateralAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LateralAccelerationValue { + LateralAccelerationValue_pointOneMeterPerSecSquaredToRight = -1, + LateralAccelerationValue_pointOneMeterPerSecSquaredToLeft = 1, + LateralAccelerationValue_unavailable = 161 +} e_LateralAccelerationValue; + +/* LateralAccelerationValue */ +typedef long LateralAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue; +asn_struct_free_f LateralAccelerationValue_free; +asn_struct_print_f LateralAccelerationValue_print; +asn_constr_check_f LateralAccelerationValue_constraint; +ber_type_decoder_f LateralAccelerationValue_decode_ber; +der_type_encoder_f LateralAccelerationValue_encode_der; +xer_type_decoder_f LateralAccelerationValue_decode_xer; +xer_type_encoder_f LateralAccelerationValue_encode_xer; +oer_type_decoder_f LateralAccelerationValue_decode_oer; +oer_type_encoder_f LateralAccelerationValue_encode_oer; +per_type_decoder_f LateralAccelerationValue_decode_uper; +per_type_encoder_f LateralAccelerationValue_encode_uper; +per_type_decoder_f LateralAccelerationValue_decode_aper; +per_type_encoder_f LateralAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAccelerationValue_H_ */ +#include diff --git a/vcits/ivim/Latitude.h b/vcits/ivim/Latitude.h new file mode 100644 index 0000000..2a20c5c --- /dev/null +++ b/vcits/ivim/Latitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Latitude_H_ +#define _Latitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Latitude { + Latitude_oneMicrodegreeNorth = 10, + Latitude_oneMicrodegreeSouth = -10, + Latitude_unavailable = 900000001 +} e_Latitude; + +/* Latitude */ +typedef long Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Latitude; +asn_struct_free_f Latitude_free; +asn_struct_print_f Latitude_print; +asn_constr_check_f Latitude_constraint; +ber_type_decoder_f Latitude_decode_ber; +der_type_encoder_f Latitude_encode_der; +xer_type_decoder_f Latitude_decode_xer; +xer_type_encoder_f Latitude_encode_xer; +oer_type_decoder_f Latitude_decode_oer; +oer_type_encoder_f Latitude_encode_oer; +per_type_decoder_f Latitude_decode_uper; +per_type_encoder_f Latitude_encode_uper; +per_type_decoder_f Latitude_decode_aper; +per_type_encoder_f Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Latitude_H_ */ +#include diff --git a/vcits/ivim/LayerID.h b/vcits/ivim/LayerID.h new file mode 100644 index 0000000..a55bb7a --- /dev/null +++ b/vcits/ivim/LayerID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LayerID_H_ +#define _LayerID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LayerID */ +typedef long LayerID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerID; +asn_struct_free_f LayerID_free; +asn_struct_print_f LayerID_print; +asn_constr_check_f LayerID_constraint; +ber_type_decoder_f LayerID_decode_ber; +der_type_encoder_f LayerID_encode_der; +xer_type_decoder_f LayerID_decode_xer; +xer_type_encoder_f LayerID_encode_xer; +oer_type_decoder_f LayerID_decode_oer; +oer_type_encoder_f LayerID_encode_oer; +per_type_decoder_f LayerID_decode_uper; +per_type_encoder_f LayerID_encode_uper; +per_type_decoder_f LayerID_decode_aper; +per_type_encoder_f LayerID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerID_H_ */ +#include diff --git a/vcits/ivim/LayerType.h b/vcits/ivim/LayerType.h new file mode 100644 index 0000000..41f3b88 --- /dev/null +++ b/vcits/ivim/LayerType.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LayerType_H_ +#define _LayerType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LayerType { + LayerType_none = 0, + LayerType_mixedContent = 1, + LayerType_generalMapData = 2, + LayerType_intersectionData = 3, + LayerType_curveData = 4, + LayerType_roadwaySectionData = 5, + LayerType_parkingAreaData = 6, + LayerType_sharedLaneData = 7 + /* + * Enumeration is extensible + */ +} e_LayerType; + +/* LayerType */ +typedef long LayerType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerType; +extern const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1; +asn_struct_free_f LayerType_free; +asn_struct_print_f LayerType_print; +asn_constr_check_f LayerType_constraint; +ber_type_decoder_f LayerType_decode_ber; +der_type_encoder_f LayerType_encode_der; +xer_type_decoder_f LayerType_decode_xer; +xer_type_encoder_f LayerType_encode_xer; +oer_type_decoder_f LayerType_decode_oer; +oer_type_encoder_f LayerType_encode_oer; +per_type_decoder_f LayerType_decode_uper; +per_type_encoder_f LayerType_encode_uper; +per_type_decoder_f LayerType_decode_aper; +per_type_encoder_f LayerType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerType_H_ */ +#include diff --git a/vcits/ivim/LayoutComponent.h b/vcits/ivim/LayoutComponent.h new file mode 100644 index 0000000..abb7dd8 --- /dev/null +++ b/vcits/ivim/LayoutComponent.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LayoutComponent_H_ +#define _LayoutComponent_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LayoutComponent__textScripting { + LayoutComponent__textScripting_horizontal = 0, + LayoutComponent__textScripting_vertical = 1 +} e_LayoutComponent__textScripting; + +/* LayoutComponent */ +typedef struct LayoutComponent { + long layoutComponentId; + long height; + long width; + long x; + long y; + long textScripting; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LayoutComponent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LayoutComponent; +extern asn_SEQUENCE_specifics_t asn_SPC_LayoutComponent_specs_1; +extern asn_TYPE_member_t asn_MBR_LayoutComponent_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayoutComponent_H_ */ +#include diff --git a/vcits/ivim/LayoutComponents.h b/vcits/ivim/LayoutComponents.h new file mode 100644 index 0000000..055121d --- /dev/null +++ b/vcits/ivim/LayoutComponents.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LayoutComponents_H_ +#define _LayoutComponents_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LayoutComponent; + +/* LayoutComponents */ +typedef struct LayoutComponents { + A_SEQUENCE_OF(struct LayoutComponent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LayoutComponents_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LayoutComponents; +extern asn_SET_OF_specifics_t asn_SPC_LayoutComponents_specs_1; +extern asn_TYPE_member_t asn_MBR_LayoutComponents_1[1]; +extern asn_per_constraints_t asn_PER_type_LayoutComponents_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayoutComponents_H_ */ +#include diff --git a/vcits/ivim/LayoutContainer.h b/vcits/ivim/LayoutContainer.h new file mode 100644 index 0000000..81e3278 --- /dev/null +++ b/vcits/ivim/LayoutContainer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LayoutContainer_H_ +#define _LayoutContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include "LayoutComponents.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LayoutContainer */ +typedef struct LayoutContainer { + long layoutId; + long *height; /* OPTIONAL */ + long *width; /* OPTIONAL */ + LayoutComponents_t layoutComponents; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LayoutContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LayoutContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_LayoutContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_LayoutContainer_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayoutContainer_H_ */ +#include diff --git a/vcits/ivim/LicPlateNumber.h b/vcits/ivim/LicPlateNumber.h new file mode 100644 index 0000000..9440684 --- /dev/null +++ b/vcits/ivim/LicPlateNumber.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LicPlateNumber_H_ +#define _LicPlateNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LicPlateNumber */ +typedef OCTET_STRING_t LicPlateNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LicPlateNumber; +asn_struct_free_f LicPlateNumber_free; +asn_struct_print_f LicPlateNumber_print; +asn_constr_check_f LicPlateNumber_constraint; +ber_type_decoder_f LicPlateNumber_decode_ber; +der_type_encoder_f LicPlateNumber_encode_der; +xer_type_decoder_f LicPlateNumber_decode_xer; +xer_type_encoder_f LicPlateNumber_encode_xer; +oer_type_decoder_f LicPlateNumber_decode_oer; +oer_type_encoder_f LicPlateNumber_encode_oer; +per_type_decoder_f LicPlateNumber_decode_uper; +per_type_encoder_f LicPlateNumber_encode_uper; +per_type_decoder_f LicPlateNumber_decode_aper; +per_type_encoder_f LicPlateNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LicPlateNumber_H_ */ +#include diff --git a/vcits/ivim/LightBarSirenInUse.h b/vcits/ivim/LightBarSirenInUse.h new file mode 100644 index 0000000..3b156df --- /dev/null +++ b/vcits/ivim/LightBarSirenInUse.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LightBarSirenInUse_H_ +#define _LightBarSirenInUse_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LightBarSirenInUse { + LightBarSirenInUse_lightBarActivated = 0, + LightBarSirenInUse_sirenActivated = 1 +} e_LightBarSirenInUse; + +/* LightBarSirenInUse */ +typedef BIT_STRING_t LightBarSirenInUse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse; +asn_struct_free_f LightBarSirenInUse_free; +asn_struct_print_f LightBarSirenInUse_print; +asn_constr_check_f LightBarSirenInUse_constraint; +ber_type_decoder_f LightBarSirenInUse_decode_ber; +der_type_encoder_f LightBarSirenInUse_encode_der; +xer_type_decoder_f LightBarSirenInUse_decode_xer; +xer_type_encoder_f LightBarSirenInUse_encode_xer; +oer_type_decoder_f LightBarSirenInUse_decode_oer; +oer_type_encoder_f LightBarSirenInUse_encode_oer; +per_type_decoder_f LightBarSirenInUse_decode_uper; +per_type_encoder_f LightBarSirenInUse_encode_uper; +per_type_decoder_f LightBarSirenInUse_decode_aper; +per_type_encoder_f LightBarSirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LightBarSirenInUse_H_ */ +#include diff --git a/vcits/ivim/LoadType.h b/vcits/ivim/LoadType.h new file mode 100644 index 0000000..a2203db --- /dev/null +++ b/vcits/ivim/LoadType.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LoadType_H_ +#define _LoadType_H_ + + +#include + +/* Including external dependencies */ +#include "GoodsType.h" +#include "DangerousGoodsBasic.h" +#include "SpecialTransportType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LoadType */ +typedef struct LoadType { + GoodsType_t goodsType; + DangerousGoodsBasic_t dangerousGoodsType; + SpecialTransportType_t specialTransportType; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LoadType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LoadType; +extern asn_SEQUENCE_specifics_t asn_SPC_LoadType_specs_1; +extern asn_TYPE_member_t asn_MBR_LoadType_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LoadType_H_ */ +#include diff --git a/vcits/ivim/Longitude.h b/vcits/ivim/Longitude.h new file mode 100644 index 0000000..a99e044 --- /dev/null +++ b/vcits/ivim/Longitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Longitude_H_ +#define _Longitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Longitude { + Longitude_oneMicrodegreeEast = 10, + Longitude_oneMicrodegreeWest = -10, + Longitude_unavailable = 1800000001 +} e_Longitude; + +/* Longitude */ +typedef long Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Longitude; +asn_struct_free_f Longitude_free; +asn_struct_print_f Longitude_print; +asn_constr_check_f Longitude_constraint; +ber_type_decoder_f Longitude_decode_ber; +der_type_encoder_f Longitude_encode_der; +xer_type_decoder_f Longitude_decode_xer; +xer_type_encoder_f Longitude_encode_xer; +oer_type_decoder_f Longitude_decode_oer; +oer_type_encoder_f Longitude_encode_oer; +per_type_decoder_f Longitude_decode_uper; +per_type_encoder_f Longitude_encode_uper; +per_type_decoder_f Longitude_decode_aper; +per_type_encoder_f Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Longitude_H_ */ +#include diff --git a/vcits/ivim/LongitudinalAcceleration.h b/vcits/ivim/LongitudinalAcceleration.h new file mode 100644 index 0000000..8ab07f7 --- /dev/null +++ b/vcits/ivim/LongitudinalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LongitudinalAcceleration_H_ +#define _LongitudinalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LongitudinalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LongitudinalAcceleration */ +typedef struct LongitudinalAcceleration { + LongitudinalAccelerationValue_t longitudinalAccelerationValue; + AccelerationConfidence_t longitudinalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LongitudinalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAcceleration_H_ */ +#include diff --git a/vcits/ivim/LongitudinalAccelerationValue.h b/vcits/ivim/LongitudinalAccelerationValue.h new file mode 100644 index 0000000..3f99338 --- /dev/null +++ b/vcits/ivim/LongitudinalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _LongitudinalAccelerationValue_H_ +#define _LongitudinalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LongitudinalAccelerationValue { + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredForward = 1, + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredBackward = -1, + LongitudinalAccelerationValue_unavailable = 161 +} e_LongitudinalAccelerationValue; + +/* LongitudinalAccelerationValue */ +typedef long LongitudinalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue; +asn_struct_free_f LongitudinalAccelerationValue_free; +asn_struct_print_f LongitudinalAccelerationValue_print; +asn_constr_check_f LongitudinalAccelerationValue_constraint; +ber_type_decoder_f LongitudinalAccelerationValue_decode_ber; +der_type_encoder_f LongitudinalAccelerationValue_encode_der; +xer_type_decoder_f LongitudinalAccelerationValue_decode_xer; +xer_type_encoder_f LongitudinalAccelerationValue_encode_xer; +oer_type_decoder_f LongitudinalAccelerationValue_decode_oer; +oer_type_encoder_f LongitudinalAccelerationValue_encode_oer; +per_type_decoder_f LongitudinalAccelerationValue_decode_uper; +per_type_encoder_f LongitudinalAccelerationValue_encode_uper; +per_type_decoder_f LongitudinalAccelerationValue_decode_aper; +per_type_encoder_f LongitudinalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAccelerationValue_H_ */ +#include diff --git a/vcits/ivim/ManeuverAssistList.h b/vcits/ivim/ManeuverAssistList.h new file mode 100644 index 0000000..66a106e --- /dev/null +++ b/vcits/ivim/ManeuverAssistList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ManeuverAssistList_H_ +#define _ManeuverAssistList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectionManeuverAssist; + +/* ManeuverAssistList */ +typedef struct ManeuverAssistList { + A_SEQUENCE_OF(struct ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ManeuverAssistList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList; +extern asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1; +extern asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[1]; +extern asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManeuverAssistList_H_ */ +#include diff --git a/vcits/ivim/ManufacturerIdentifier.h b/vcits/ivim/ManufacturerIdentifier.h new file mode 100644 index 0000000..8d5f881 --- /dev/null +++ b/vcits/ivim/ManufacturerIdentifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ManufacturerIdentifier_H_ +#define _ManufacturerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ManufacturerIdentifier */ +typedef long ManufacturerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ManufacturerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ManufacturerIdentifier; +asn_struct_free_f ManufacturerIdentifier_free; +asn_struct_print_f ManufacturerIdentifier_print; +asn_constr_check_f ManufacturerIdentifier_constraint; +ber_type_decoder_f ManufacturerIdentifier_decode_ber; +der_type_encoder_f ManufacturerIdentifier_encode_der; +xer_type_decoder_f ManufacturerIdentifier_decode_xer; +xer_type_encoder_f ManufacturerIdentifier_encode_xer; +oer_type_decoder_f ManufacturerIdentifier_decode_oer; +oer_type_encoder_f ManufacturerIdentifier_encode_oer; +per_type_decoder_f ManufacturerIdentifier_decode_uper; +per_type_encoder_f ManufacturerIdentifier_encode_uper; +per_type_decoder_f ManufacturerIdentifier_decode_aper; +per_type_encoder_f ManufacturerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManufacturerIdentifier_H_ */ +#include diff --git a/vcits/ivim/MapData-addGrpC.h b/vcits/ivim/MapData-addGrpC.h new file mode 100644 index 0000000..3a667c7 --- /dev/null +++ b/vcits/ivim/MapData-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MapData_addGrpC_H_ +#define _MapData_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocationList; + +/* MapData-addGrpC */ +typedef struct MapData_addGrpC { + struct SignalHeadLocationList *signalHeadLocations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_addGrpC_H_ */ +#include diff --git a/vcits/ivim/MapData.h b/vcits/ivim/MapData.h new file mode 100644 index 0000000..5b226aa --- /dev/null +++ b/vcits/ivim/MapData.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MapData_H_ +#define _MapData_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "MsgCount.h" +#include "LayerType.h" +#include "LayerID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometryList; +struct RoadSegmentList; +struct DataParameters; +struct RestrictionClassList; +struct Reg_MapData; + +/* MapData */ +typedef struct MapData { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + MsgCount_t msgIssueRevision; + LayerType_t *layerType; /* OPTIONAL */ + LayerID_t *layerID; /* OPTIONAL */ + struct IntersectionGeometryList *intersections; /* OPTIONAL */ + struct RoadSegmentList *roadSegments; /* OPTIONAL */ + struct DataParameters *dataParameters; /* OPTIONAL */ + struct RestrictionClassList *restrictionList; /* OPTIONAL */ + struct MapData__regional { + A_SEQUENCE_OF(struct Reg_MapData) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_H_ */ +#include diff --git a/vcits/ivim/MapLocationContainer.h b/vcits/ivim/MapLocationContainer.h new file mode 100644 index 0000000..ada9d76 --- /dev/null +++ b/vcits/ivim/MapLocationContainer.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MapLocationContainer_H_ +#define _MapLocationContainer_H_ + + +#include + +/* Including external dependencies */ +#include "MapReference.h" +#include "MlcParts.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MapLocationContainer */ +typedef struct MapLocationContainer { + MapReference_t reference; + MlcParts_t parts; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapLocationContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapLocationContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_MapLocationContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_MapLocationContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapLocationContainer_H_ */ +#include diff --git a/vcits/ivim/MapReference.h b/vcits/ivim/MapReference.h new file mode 100644 index 0000000..4ef4809 --- /dev/null +++ b/vcits/ivim/MapReference.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MapReference_H_ +#define _MapReference_H_ + + +#include + +/* Including external dependencies */ +#include "RoadSegmentReferenceID.h" +#include "IntersectionReferenceID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MapReference_PR { + MapReference_PR_NOTHING, /* No components present */ + MapReference_PR_roadsegment, + MapReference_PR_intersection +} MapReference_PR; + +/* MapReference */ +typedef struct MapReference { + MapReference_PR present; + union MapReference_u { + RoadSegmentReferenceID_t roadsegment; + IntersectionReferenceID_t intersection; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapReference_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapReference; +extern asn_CHOICE_specifics_t asn_SPC_MapReference_specs_1; +extern asn_TYPE_member_t asn_MBR_MapReference_1[2]; +extern asn_per_constraints_t asn_PER_type_MapReference_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapReference_H_ */ +#include diff --git a/vcits/ivim/MarkingColour.h b/vcits/ivim/MarkingColour.h new file mode 100644 index 0000000..b9b8c82 --- /dev/null +++ b/vcits/ivim/MarkingColour.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MarkingColour_H_ +#define _MarkingColour_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MarkingColour { + MarkingColour_white = 0, + MarkingColour_yellow = 1, + MarkingColour_orange = 2, + MarkingColour_red = 3, + MarkingColour_blue = 4, + MarkingColour_unavailable = 7 +} e_MarkingColour; + +/* MarkingColour */ +typedef long MarkingColour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MarkingColour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MarkingColour; +asn_struct_free_f MarkingColour_free; +asn_struct_print_f MarkingColour_print; +asn_constr_check_f MarkingColour_constraint; +ber_type_decoder_f MarkingColour_decode_ber; +der_type_encoder_f MarkingColour_encode_der; +xer_type_decoder_f MarkingColour_decode_xer; +xer_type_encoder_f MarkingColour_encode_xer; +oer_type_decoder_f MarkingColour_decode_oer; +oer_type_encoder_f MarkingColour_encode_oer; +per_type_decoder_f MarkingColour_decode_uper; +per_type_encoder_f MarkingColour_encode_uper; +per_type_decoder_f MarkingColour_decode_aper; +per_type_encoder_f MarkingColour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MarkingColour_H_ */ +#include diff --git a/vcits/ivim/MaterialType.h b/vcits/ivim/MaterialType.h new file mode 100644 index 0000000..c203bc8 --- /dev/null +++ b/vcits/ivim/MaterialType.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MaterialType_H_ +#define _MaterialType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MaterialType { + MaterialType_asphalt = 0, + MaterialType_concrete = 1, + MaterialType_cobblestone = 2, + MaterialType_gravel = 3, + MaterialType_unavailable = 7 +} e_MaterialType; + +/* MaterialType */ +typedef long MaterialType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MaterialType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MaterialType; +asn_struct_free_f MaterialType_free; +asn_struct_print_f MaterialType_print; +asn_constr_check_f MaterialType_constraint; +ber_type_decoder_f MaterialType_decode_ber; +der_type_encoder_f MaterialType_encode_der; +xer_type_decoder_f MaterialType_decode_xer; +xer_type_encoder_f MaterialType_encode_xer; +oer_type_decoder_f MaterialType_decode_oer; +oer_type_encoder_f MaterialType_encode_oer; +per_type_decoder_f MaterialType_decode_uper; +per_type_encoder_f MaterialType_encode_uper; +per_type_decoder_f MaterialType_decode_aper; +per_type_encoder_f MaterialType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MaterialType_H_ */ +#include diff --git a/vcits/ivim/MaxLenghtOfPlatoon.h b/vcits/ivim/MaxLenghtOfPlatoon.h new file mode 100644 index 0000000..651efbb --- /dev/null +++ b/vcits/ivim/MaxLenghtOfPlatoon.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MaxLenghtOfPlatoon_H_ +#define _MaxLenghtOfPlatoon_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MaxLenghtOfPlatoon */ +typedef long MaxLenghtOfPlatoon_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MaxLenghtOfPlatoon_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MaxLenghtOfPlatoon; +asn_struct_free_f MaxLenghtOfPlatoon_free; +asn_struct_print_f MaxLenghtOfPlatoon_print; +asn_constr_check_f MaxLenghtOfPlatoon_constraint; +ber_type_decoder_f MaxLenghtOfPlatoon_decode_ber; +der_type_encoder_f MaxLenghtOfPlatoon_encode_der; +xer_type_decoder_f MaxLenghtOfPlatoon_decode_xer; +xer_type_encoder_f MaxLenghtOfPlatoon_encode_xer; +oer_type_decoder_f MaxLenghtOfPlatoon_decode_oer; +oer_type_encoder_f MaxLenghtOfPlatoon_encode_oer; +per_type_decoder_f MaxLenghtOfPlatoon_decode_uper; +per_type_encoder_f MaxLenghtOfPlatoon_encode_uper; +per_type_decoder_f MaxLenghtOfPlatoon_decode_aper; +per_type_encoder_f MaxLenghtOfPlatoon_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MaxLenghtOfPlatoon_H_ */ +#include diff --git a/vcits/ivim/MaxNoOfVehicles.h b/vcits/ivim/MaxNoOfVehicles.h new file mode 100644 index 0000000..9095434 --- /dev/null +++ b/vcits/ivim/MaxNoOfVehicles.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MaxNoOfVehicles_H_ +#define _MaxNoOfVehicles_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MaxNoOfVehicles */ +typedef long MaxNoOfVehicles_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MaxNoOfVehicles_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MaxNoOfVehicles; +asn_struct_free_f MaxNoOfVehicles_free; +asn_struct_print_f MaxNoOfVehicles_print; +asn_constr_check_f MaxNoOfVehicles_constraint; +ber_type_decoder_f MaxNoOfVehicles_decode_ber; +der_type_encoder_f MaxNoOfVehicles_encode_der; +xer_type_decoder_f MaxNoOfVehicles_decode_xer; +xer_type_encoder_f MaxNoOfVehicles_encode_xer; +oer_type_decoder_f MaxNoOfVehicles_decode_oer; +oer_type_encoder_f MaxNoOfVehicles_encode_oer; +per_type_decoder_f MaxNoOfVehicles_decode_uper; +per_type_encoder_f MaxNoOfVehicles_encode_uper; +per_type_decoder_f MaxNoOfVehicles_decode_aper; +per_type_encoder_f MaxNoOfVehicles_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MaxNoOfVehicles_H_ */ +#include diff --git a/vcits/ivim/MergeDivergeNodeAngle.h b/vcits/ivim/MergeDivergeNodeAngle.h new file mode 100644 index 0000000..8ea5e0f --- /dev/null +++ b/vcits/ivim/MergeDivergeNodeAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MergeDivergeNodeAngle_H_ +#define _MergeDivergeNodeAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MergeDivergeNodeAngle */ +typedef long MergeDivergeNodeAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle; +asn_struct_free_f MergeDivergeNodeAngle_free; +asn_struct_print_f MergeDivergeNodeAngle_print; +asn_constr_check_f MergeDivergeNodeAngle_constraint; +ber_type_decoder_f MergeDivergeNodeAngle_decode_ber; +der_type_encoder_f MergeDivergeNodeAngle_encode_der; +xer_type_decoder_f MergeDivergeNodeAngle_decode_xer; +xer_type_encoder_f MergeDivergeNodeAngle_encode_xer; +oer_type_decoder_f MergeDivergeNodeAngle_decode_oer; +oer_type_encoder_f MergeDivergeNodeAngle_encode_oer; +per_type_decoder_f MergeDivergeNodeAngle_decode_uper; +per_type_encoder_f MergeDivergeNodeAngle_encode_uper; +per_type_decoder_f MergeDivergeNodeAngle_decode_aper; +per_type_encoder_f MergeDivergeNodeAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MergeDivergeNodeAngle_H_ */ +#include diff --git a/vcits/ivim/MinuteOfTheYear.h b/vcits/ivim/MinuteOfTheYear.h new file mode 100644 index 0000000..1e9fa46 --- /dev/null +++ b/vcits/ivim/MinuteOfTheYear.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MinuteOfTheYear_H_ +#define _MinuteOfTheYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MinuteOfTheYear */ +typedef long MinuteOfTheYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear; +asn_struct_free_f MinuteOfTheYear_free; +asn_struct_print_f MinuteOfTheYear_print; +asn_constr_check_f MinuteOfTheYear_constraint; +ber_type_decoder_f MinuteOfTheYear_decode_ber; +der_type_encoder_f MinuteOfTheYear_encode_der; +xer_type_decoder_f MinuteOfTheYear_decode_xer; +xer_type_encoder_f MinuteOfTheYear_encode_xer; +oer_type_decoder_f MinuteOfTheYear_decode_oer; +oer_type_encoder_f MinuteOfTheYear_encode_oer; +per_type_decoder_f MinuteOfTheYear_decode_uper; +per_type_encoder_f MinuteOfTheYear_encode_uper; +per_type_decoder_f MinuteOfTheYear_decode_aper; +per_type_encoder_f MinuteOfTheYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MinuteOfTheYear_H_ */ +#include diff --git a/vcits/ivim/MlcPart.h b/vcits/ivim/MlcPart.h new file mode 100644 index 0000000..af658d3 --- /dev/null +++ b/vcits/ivim/MlcPart.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MlcPart_H_ +#define _MlcPart_H_ + + +#include + +/* Including external dependencies */ +#include "Zid.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LaneIds; + +/* MlcPart */ +typedef struct MlcPart { + Zid_t zoneId; + struct LaneIds *laneIds; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MlcPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MlcPart; +extern asn_SEQUENCE_specifics_t asn_SPC_MlcPart_specs_1; +extern asn_TYPE_member_t asn_MBR_MlcPart_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MlcPart_H_ */ +#include diff --git a/vcits/ivim/MlcParts.h b/vcits/ivim/MlcParts.h new file mode 100644 index 0000000..74264a8 --- /dev/null +++ b/vcits/ivim/MlcParts.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MlcParts_H_ +#define _MlcParts_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MlcPart; + +/* MlcParts */ +typedef struct MlcParts { + A_SEQUENCE_OF(struct MlcPart) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MlcParts_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MlcParts; +extern asn_SET_OF_specifics_t asn_SPC_MlcParts_specs_1; +extern asn_TYPE_member_t asn_MBR_MlcParts_1[1]; +extern asn_per_constraints_t asn_PER_type_MlcParts_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MlcParts_H_ */ +#include diff --git a/vcits/ivim/MonthDay.h b/vcits/ivim/MonthDay.h new file mode 100644 index 0000000..44e0011 --- /dev/null +++ b/vcits/ivim/MonthDay.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MonthDay_H_ +#define _MonthDay_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MonthDay */ +typedef struct MonthDay { + long month; + long day; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MonthDay_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MonthDay; +extern asn_SEQUENCE_specifics_t asn_SPC_MonthDay_specs_1; +extern asn_TYPE_member_t asn_MBR_MonthDay_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MonthDay_H_ */ +#include diff --git a/vcits/ivim/MovementEvent-addGrpC.h b/vcits/ivim/MovementEvent-addGrpC.h new file mode 100644 index 0000000..81e70f4 --- /dev/null +++ b/vcits/ivim/MovementEvent-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MovementEvent_addGrpC_H_ +#define _MovementEvent_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "ExceptionalCondition.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MovementEvent-addGrpC */ +typedef struct MovementEvent_addGrpC { + ExceptionalCondition_t *stateChangeReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_addGrpC_H_ */ +#include diff --git a/vcits/ivim/MovementEvent.h b/vcits/ivim/MovementEvent.h new file mode 100644 index 0000000..2bbfc10 --- /dev/null +++ b/vcits/ivim/MovementEvent.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MovementEvent_H_ +#define _MovementEvent_H_ + + +#include + +/* Including external dependencies */ +#include "MovementPhaseState.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TimeChangeDetails; +struct AdvisorySpeedList; +struct Reg_MovementEvent; + +/* MovementEvent */ +typedef struct MovementEvent { + MovementPhaseState_t eventState; + struct TimeChangeDetails *timing; /* OPTIONAL */ + struct AdvisorySpeedList *speeds; /* OPTIONAL */ + struct MovementEvent__regional { + A_SEQUENCE_OF(struct Reg_MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_H_ */ +#include diff --git a/vcits/ivim/MovementEventList.h b/vcits/ivim/MovementEventList.h new file mode 100644 index 0000000..b0e0bb4 --- /dev/null +++ b/vcits/ivim/MovementEventList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MovementEventList_H_ +#define _MovementEventList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementEvent; + +/* MovementEventList */ +typedef struct MovementEventList { + A_SEQUENCE_OF(struct MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEventList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEventList; +extern asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEventList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementEventList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEventList_H_ */ +#include diff --git a/vcits/ivim/MovementList.h b/vcits/ivim/MovementList.h new file mode 100644 index 0000000..6171495 --- /dev/null +++ b/vcits/ivim/MovementList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MovementList_H_ +#define _MovementList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementState; + +/* MovementList */ +typedef struct MovementList { + A_SEQUENCE_OF(struct MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementList; +extern asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementList_H_ */ +#include diff --git a/vcits/ivim/MovementPhaseState.h b/vcits/ivim/MovementPhaseState.h new file mode 100644 index 0000000..87f46f3 --- /dev/null +++ b/vcits/ivim/MovementPhaseState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MovementPhaseState_H_ +#define _MovementPhaseState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MovementPhaseState { + MovementPhaseState_unavailable = 0, + MovementPhaseState_dark = 1, + MovementPhaseState_stop_Then_Proceed = 2, + MovementPhaseState_stop_And_Remain = 3, + MovementPhaseState_pre_Movement = 4, + MovementPhaseState_permissive_Movement_Allowed = 5, + MovementPhaseState_protected_Movement_Allowed = 6, + MovementPhaseState_permissive_clearance = 7, + MovementPhaseState_protected_clearance = 8, + MovementPhaseState_caution_Conflicting_Traffic = 9 +} e_MovementPhaseState; + +/* MovementPhaseState */ +typedef long MovementPhaseState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MovementPhaseState; +extern const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1; +asn_struct_free_f MovementPhaseState_free; +asn_struct_print_f MovementPhaseState_print; +asn_constr_check_f MovementPhaseState_constraint; +ber_type_decoder_f MovementPhaseState_decode_ber; +der_type_encoder_f MovementPhaseState_encode_der; +xer_type_decoder_f MovementPhaseState_decode_xer; +xer_type_encoder_f MovementPhaseState_encode_xer; +oer_type_decoder_f MovementPhaseState_decode_oer; +oer_type_encoder_f MovementPhaseState_encode_oer; +per_type_decoder_f MovementPhaseState_decode_uper; +per_type_encoder_f MovementPhaseState_encode_uper; +per_type_decoder_f MovementPhaseState_decode_aper; +per_type_encoder_f MovementPhaseState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementPhaseState_H_ */ +#include diff --git a/vcits/ivim/MovementState.h b/vcits/ivim/MovementState.h new file mode 100644 index 0000000..b0d7f10 --- /dev/null +++ b/vcits/ivim/MovementState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MovementState_H_ +#define _MovementState_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "SignalGroupID.h" +#include "MovementEventList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ManeuverAssistList; +struct Reg_MovementState; + +/* MovementState */ +typedef struct MovementState { + DescriptiveName_t *movementName; /* OPTIONAL */ + SignalGroupID_t signalGroup; + MovementEventList_t state_time_speed; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct MovementState__regional { + A_SEQUENCE_OF(struct Reg_MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementState_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementState_H_ */ +#include diff --git a/vcits/ivim/MsgCount.h b/vcits/ivim/MsgCount.h new file mode 100644 index 0000000..631855f --- /dev/null +++ b/vcits/ivim/MsgCount.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _MsgCount_H_ +#define _MsgCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MsgCount */ +typedef long MsgCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MsgCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MsgCount; +asn_struct_free_f MsgCount_free; +asn_struct_print_f MsgCount_print; +asn_constr_check_f MsgCount_constraint; +ber_type_decoder_f MsgCount_decode_ber; +der_type_encoder_f MsgCount_encode_der; +xer_type_decoder_f MsgCount_decode_xer; +xer_type_encoder_f MsgCount_encode_xer; +oer_type_decoder_f MsgCount_decode_oer; +oer_type_encoder_f MsgCount_encode_oer; +per_type_decoder_f MsgCount_decode_uper; +per_type_encoder_f MsgCount_encode_uper; +per_type_decoder_f MsgCount_decode_aper; +per_type_encoder_f MsgCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MsgCount_H_ */ +#include diff --git a/vcits/ivim/Node-LLmD-64b.h b/vcits/ivim/Node-LLmD-64b.h new file mode 100644 index 0000000..e0b2600 --- /dev/null +++ b/vcits/ivim/Node-LLmD-64b.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Node_LLmD_64b_H_ +#define _Node_LLmD_64b_H_ + + +#include + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LLmD-64b */ +typedef struct Node_LLmD_64b { + Longitude_t lon; + Latitude_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LLmD_64b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LLmD_64b_H_ */ +#include diff --git a/vcits/ivim/Node-XY-20b.h b/vcits/ivim/Node-XY-20b.h new file mode 100644 index 0000000..de1a394 --- /dev/null +++ b/vcits/ivim/Node-XY-20b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Node_XY_20b_H_ +#define _Node_XY_20b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-20b */ +typedef struct Node_XY_20b { + Offset_B10_t x; + Offset_B10_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_20b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_20b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_20b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_20b_H_ */ +#include diff --git a/vcits/ivim/Node-XY-22b.h b/vcits/ivim/Node-XY-22b.h new file mode 100644 index 0000000..94ef255 --- /dev/null +++ b/vcits/ivim/Node-XY-22b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Node_XY_22b_H_ +#define _Node_XY_22b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B11.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-22b */ +typedef struct Node_XY_22b { + Offset_B11_t x; + Offset_B11_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_22b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_22b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_22b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_22b_H_ */ +#include diff --git a/vcits/ivim/Node-XY-24b.h b/vcits/ivim/Node-XY-24b.h new file mode 100644 index 0000000..f6a7430 --- /dev/null +++ b/vcits/ivim/Node-XY-24b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Node_XY_24b_H_ +#define _Node_XY_24b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B12.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-24b */ +typedef struct Node_XY_24b { + Offset_B12_t x; + Offset_B12_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_24b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_24b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_24b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_24b_H_ */ +#include diff --git a/vcits/ivim/Node-XY-26b.h b/vcits/ivim/Node-XY-26b.h new file mode 100644 index 0000000..7f77589 --- /dev/null +++ b/vcits/ivim/Node-XY-26b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Node_XY_26b_H_ +#define _Node_XY_26b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B13.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-26b */ +typedef struct Node_XY_26b { + Offset_B13_t x; + Offset_B13_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_26b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_26b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_26b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_26b_H_ */ +#include diff --git a/vcits/ivim/Node-XY-28b.h b/vcits/ivim/Node-XY-28b.h new file mode 100644 index 0000000..51871d7 --- /dev/null +++ b/vcits/ivim/Node-XY-28b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Node_XY_28b_H_ +#define _Node_XY_28b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B14.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-28b */ +typedef struct Node_XY_28b { + Offset_B14_t x; + Offset_B14_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_28b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_28b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_28b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_28b_H_ */ +#include diff --git a/vcits/ivim/Node-XY-32b.h b/vcits/ivim/Node-XY-32b.h new file mode 100644 index 0000000..9c480ec --- /dev/null +++ b/vcits/ivim/Node-XY-32b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Node_XY_32b_H_ +#define _Node_XY_32b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B16.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-32b */ +typedef struct Node_XY_32b { + Offset_B16_t x; + Offset_B16_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_32b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_32b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_32b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_32b_H_ */ +#include diff --git a/vcits/ivim/Node.h b/vcits/ivim/Node.h new file mode 100644 index 0000000..2a72916 --- /dev/null +++ b/vcits/ivim/Node.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Node_H_ +#define _Node_H_ + + +#include + +/* Including external dependencies */ +#include +#include "LaneID.h" +#include "LaneConnectionID.h" +#include "IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node */ +typedef struct Node { + long id; + LaneID_t *lane; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + IntersectionID_t *intersectionID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_H_ */ +#include diff --git a/vcits/ivim/NodeAttributeSet-addGrpC.h b/vcits/ivim/NodeAttributeSet-addGrpC.h new file mode 100644 index 0000000..985530c --- /dev/null +++ b/vcits/ivim/NodeAttributeSet-addGrpC.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _NodeAttributeSet_addGrpC_H_ +#define _NodeAttributeSet_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "PtvRequestType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeLink; +struct Node; + +/* NodeAttributeSet-addGrpC */ +typedef struct NodeAttributeSet_addGrpC { + PtvRequestType_t *ptvRequest; /* OPTIONAL */ + struct NodeLink *nodeLink; /* OPTIONAL */ + struct Node *node; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSet_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSet_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSet_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSet_addGrpC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSet_addGrpC_H_ */ +#include diff --git a/vcits/ivim/NodeAttributeSetXY.h b/vcits/ivim/NodeAttributeSetXY.h new file mode 100644 index 0000000..08aef81 --- /dev/null +++ b/vcits/ivim/NodeAttributeSetXY.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _NodeAttributeSetXY_H_ +#define _NodeAttributeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeXYList; +struct SegmentAttributeXYList; +struct LaneDataAttributeList; +struct Reg_NodeAttributeSetXY; + +/* NodeAttributeSetXY */ +typedef struct NodeAttributeSetXY { + struct NodeAttributeXYList *localNode; /* OPTIONAL */ + struct SegmentAttributeXYList *disabled; /* OPTIONAL */ + struct SegmentAttributeXYList *enabled; /* OPTIONAL */ + struct LaneDataAttributeList *data; /* OPTIONAL */ + Offset_B10_t *dWidth; /* OPTIONAL */ + Offset_B10_t *dElevation; /* OPTIONAL */ + struct NodeAttributeSetXY__regional { + A_SEQUENCE_OF(struct Reg_NodeAttributeSetXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSetXY_H_ */ +#include diff --git a/vcits/ivim/NodeAttributeXY.h b/vcits/ivim/NodeAttributeXY.h new file mode 100644 index 0000000..3700bbd --- /dev/null +++ b/vcits/ivim/NodeAttributeXY.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _NodeAttributeXY_H_ +#define _NodeAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeAttributeXY { + NodeAttributeXY_reserved = 0, + NodeAttributeXY_stopLine = 1, + NodeAttributeXY_roundedCapStyleA = 2, + NodeAttributeXY_roundedCapStyleB = 3, + NodeAttributeXY_mergePoint = 4, + NodeAttributeXY_divergePoint = 5, + NodeAttributeXY_downstreamStopLine = 6, + NodeAttributeXY_downstreamStartNode = 7, + NodeAttributeXY_closedToTraffic = 8, + NodeAttributeXY_safeIsland = 9, + NodeAttributeXY_curbPresentAtStepOff = 10, + NodeAttributeXY_hydrantPresent = 11 + /* + * Enumeration is extensible + */ +} e_NodeAttributeXY; + +/* NodeAttributeXY */ +typedef long NodeAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1; +asn_struct_free_f NodeAttributeXY_free; +asn_struct_print_f NodeAttributeXY_print; +asn_constr_check_f NodeAttributeXY_constraint; +ber_type_decoder_f NodeAttributeXY_decode_ber; +der_type_encoder_f NodeAttributeXY_encode_der; +xer_type_decoder_f NodeAttributeXY_decode_xer; +xer_type_encoder_f NodeAttributeXY_encode_xer; +oer_type_decoder_f NodeAttributeXY_decode_oer; +oer_type_encoder_f NodeAttributeXY_encode_oer; +per_type_decoder_f NodeAttributeXY_decode_uper; +per_type_encoder_f NodeAttributeXY_encode_uper; +per_type_decoder_f NodeAttributeXY_decode_aper; +per_type_encoder_f NodeAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXY_H_ */ +#include diff --git a/vcits/ivim/NodeAttributeXYList.h b/vcits/ivim/NodeAttributeXYList.h new file mode 100644 index 0000000..9b5b7fe --- /dev/null +++ b/vcits/ivim/NodeAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _NodeAttributeXYList_H_ +#define _NodeAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "NodeAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NodeAttributeXYList */ +typedef struct NodeAttributeXYList { + A_SEQUENCE_OF(NodeAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXYList_H_ */ +#include diff --git a/vcits/ivim/NodeLink.h b/vcits/ivim/NodeLink.h new file mode 100644 index 0000000..95d1739 --- /dev/null +++ b/vcits/ivim/NodeLink.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _NodeLink_H_ +#define _NodeLink_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Node; + +/* NodeLink */ +typedef struct NodeLink { + A_SEQUENCE_OF(struct Node) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeLink_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeLink; +extern asn_SET_OF_specifics_t asn_SPC_NodeLink_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeLink_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeLink_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeLink_H_ */ +#include diff --git a/vcits/ivim/NodeListXY.h b/vcits/ivim/NodeListXY.h new file mode 100644 index 0000000..261959b --- /dev/null +++ b/vcits/ivim/NodeListXY.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _NodeListXY_H_ +#define _NodeListXY_H_ + + +#include + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "ComputedLane.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeListXY_PR { + NodeListXY_PR_NOTHING, /* No components present */ + NodeListXY_PR_nodes, + NodeListXY_PR_computed + /* Extensions may appear below */ + +} NodeListXY_PR; + +/* NodeListXY */ +typedef struct NodeListXY { + NodeListXY_PR present; + union NodeListXY_u { + NodeSetXY_t nodes; + ComputedLane_t computed; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeListXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeListXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeListXY_1[2]; +extern asn_per_constraints_t asn_PER_type_NodeListXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeListXY_H_ */ +#include diff --git a/vcits/ivim/NodeOffsetPointXY.h b/vcits/ivim/NodeOffsetPointXY.h new file mode 100644 index 0000000..a36764d --- /dev/null +++ b/vcits/ivim/NodeOffsetPointXY.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _NodeOffsetPointXY_H_ +#define _NodeOffsetPointXY_H_ + + +#include + +/* Including external dependencies */ +#include "Node-XY-20b.h" +#include "Node-XY-22b.h" +#include "Node-XY-24b.h" +#include "Node-XY-26b.h" +#include "Node-XY-28b.h" +#include "Node-XY-32b.h" +#include "Node-LLmD-64b.h" +#include "RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeOffsetPointXY_PR { + NodeOffsetPointXY_PR_NOTHING, /* No components present */ + NodeOffsetPointXY_PR_node_XY1, + NodeOffsetPointXY_PR_node_XY2, + NodeOffsetPointXY_PR_node_XY3, + NodeOffsetPointXY_PR_node_XY4, + NodeOffsetPointXY_PR_node_XY5, + NodeOffsetPointXY_PR_node_XY6, + NodeOffsetPointXY_PR_node_LatLon, + NodeOffsetPointXY_PR_regional +} NodeOffsetPointXY_PR; + +/* NodeOffsetPointXY */ +typedef struct NodeOffsetPointXY { + NodeOffsetPointXY_PR present; + union NodeOffsetPointXY_u { + Node_XY_20b_t node_XY1; + Node_XY_22b_t node_XY2; + Node_XY_24b_t node_XY3; + Node_XY_26b_t node_XY4; + Node_XY_28b_t node_XY5; + Node_XY_32b_t node_XY6; + Node_LLmD_64b_t node_LatLon; + Reg_NodeOffsetPointXY_t regional; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeOffsetPointXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[8]; +extern asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeOffsetPointXY_H_ */ +#include diff --git a/vcits/ivim/NodeSetXY.h b/vcits/ivim/NodeSetXY.h new file mode 100644 index 0000000..aa7259f --- /dev/null +++ b/vcits/ivim/NodeSetXY.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _NodeSetXY_H_ +#define _NodeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeXY; + +/* NodeSetXY */ +typedef struct NodeSetXY { + A_SEQUENCE_OF(struct NodeXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeSetXY; +extern asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeSetXY_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeSetXY_H_ */ +#include diff --git a/vcits/ivim/NodeXY.h b/vcits/ivim/NodeXY.h new file mode 100644 index 0000000..392cd65 --- /dev/null +++ b/vcits/ivim/NodeXY.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _NodeXY_H_ +#define _NodeXY_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeSetXY; + +/* NodeXY */ +typedef struct NodeXY { + NodeOffsetPointXY_t delta; + struct NodeAttributeSetXY *attributes; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeXY_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeXY_H_ */ +#include diff --git a/vcits/ivim/NumberOfOccupants.h b/vcits/ivim/NumberOfOccupants.h new file mode 100644 index 0000000..ba11af1 --- /dev/null +++ b/vcits/ivim/NumberOfOccupants.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _NumberOfOccupants_H_ +#define _NumberOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NumberOfOccupants { + NumberOfOccupants_oneOccupant = 1, + NumberOfOccupants_unavailable = 127 +} e_NumberOfOccupants; + +/* NumberOfOccupants */ +typedef long NumberOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants; +asn_struct_free_f NumberOfOccupants_free; +asn_struct_print_f NumberOfOccupants_print; +asn_constr_check_f NumberOfOccupants_constraint; +ber_type_decoder_f NumberOfOccupants_decode_ber; +der_type_encoder_f NumberOfOccupants_encode_der; +xer_type_decoder_f NumberOfOccupants_decode_xer; +xer_type_encoder_f NumberOfOccupants_encode_xer; +oer_type_decoder_f NumberOfOccupants_decode_oer; +oer_type_encoder_f NumberOfOccupants_encode_oer; +per_type_decoder_f NumberOfOccupants_decode_uper; +per_type_encoder_f NumberOfOccupants_encode_uper; +per_type_decoder_f NumberOfOccupants_decode_aper; +per_type_encoder_f NumberOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NumberOfOccupants_H_ */ +#include diff --git a/vcits/ivim/Offset-B09.h b/vcits/ivim/Offset-B09.h new file mode 100644 index 0000000..b03e8c6 --- /dev/null +++ b/vcits/ivim/Offset-B09.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Offset_B09_H_ +#define _Offset_B09_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B09 */ +typedef long Offset_B09_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B09_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B09; +asn_struct_free_f Offset_B09_free; +asn_struct_print_f Offset_B09_print; +asn_constr_check_f Offset_B09_constraint; +ber_type_decoder_f Offset_B09_decode_ber; +der_type_encoder_f Offset_B09_encode_der; +xer_type_decoder_f Offset_B09_decode_xer; +xer_type_encoder_f Offset_B09_encode_xer; +oer_type_decoder_f Offset_B09_decode_oer; +oer_type_encoder_f Offset_B09_encode_oer; +per_type_decoder_f Offset_B09_decode_uper; +per_type_encoder_f Offset_B09_encode_uper; +per_type_decoder_f Offset_B09_decode_aper; +per_type_encoder_f Offset_B09_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B09_H_ */ +#include diff --git a/vcits/ivim/Offset-B10.h b/vcits/ivim/Offset-B10.h new file mode 100644 index 0000000..908447a --- /dev/null +++ b/vcits/ivim/Offset-B10.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Offset_B10_H_ +#define _Offset_B10_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B10 */ +typedef long Offset_B10_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B10_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B10; +asn_struct_free_f Offset_B10_free; +asn_struct_print_f Offset_B10_print; +asn_constr_check_f Offset_B10_constraint; +ber_type_decoder_f Offset_B10_decode_ber; +der_type_encoder_f Offset_B10_encode_der; +xer_type_decoder_f Offset_B10_decode_xer; +xer_type_encoder_f Offset_B10_encode_xer; +oer_type_decoder_f Offset_B10_decode_oer; +oer_type_encoder_f Offset_B10_encode_oer; +per_type_decoder_f Offset_B10_decode_uper; +per_type_encoder_f Offset_B10_encode_uper; +per_type_decoder_f Offset_B10_decode_aper; +per_type_encoder_f Offset_B10_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B10_H_ */ +#include diff --git a/vcits/ivim/Offset-B11.h b/vcits/ivim/Offset-B11.h new file mode 100644 index 0000000..81dd53e --- /dev/null +++ b/vcits/ivim/Offset-B11.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Offset_B11_H_ +#define _Offset_B11_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B11 */ +typedef long Offset_B11_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B11_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B11; +asn_struct_free_f Offset_B11_free; +asn_struct_print_f Offset_B11_print; +asn_constr_check_f Offset_B11_constraint; +ber_type_decoder_f Offset_B11_decode_ber; +der_type_encoder_f Offset_B11_encode_der; +xer_type_decoder_f Offset_B11_decode_xer; +xer_type_encoder_f Offset_B11_encode_xer; +oer_type_decoder_f Offset_B11_decode_oer; +oer_type_encoder_f Offset_B11_encode_oer; +per_type_decoder_f Offset_B11_decode_uper; +per_type_encoder_f Offset_B11_encode_uper; +per_type_decoder_f Offset_B11_decode_aper; +per_type_encoder_f Offset_B11_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B11_H_ */ +#include diff --git a/vcits/ivim/Offset-B12.h b/vcits/ivim/Offset-B12.h new file mode 100644 index 0000000..feabf92 --- /dev/null +++ b/vcits/ivim/Offset-B12.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Offset_B12_H_ +#define _Offset_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B12 */ +typedef long Offset_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B12; +asn_struct_free_f Offset_B12_free; +asn_struct_print_f Offset_B12_print; +asn_constr_check_f Offset_B12_constraint; +ber_type_decoder_f Offset_B12_decode_ber; +der_type_encoder_f Offset_B12_encode_der; +xer_type_decoder_f Offset_B12_decode_xer; +xer_type_encoder_f Offset_B12_encode_xer; +oer_type_decoder_f Offset_B12_decode_oer; +oer_type_encoder_f Offset_B12_encode_oer; +per_type_decoder_f Offset_B12_decode_uper; +per_type_encoder_f Offset_B12_encode_uper; +per_type_decoder_f Offset_B12_decode_aper; +per_type_encoder_f Offset_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B12_H_ */ +#include diff --git a/vcits/ivim/Offset-B13.h b/vcits/ivim/Offset-B13.h new file mode 100644 index 0000000..e8e0c64 --- /dev/null +++ b/vcits/ivim/Offset-B13.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Offset_B13_H_ +#define _Offset_B13_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B13 */ +typedef long Offset_B13_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B13_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B13; +asn_struct_free_f Offset_B13_free; +asn_struct_print_f Offset_B13_print; +asn_constr_check_f Offset_B13_constraint; +ber_type_decoder_f Offset_B13_decode_ber; +der_type_encoder_f Offset_B13_encode_der; +xer_type_decoder_f Offset_B13_decode_xer; +xer_type_encoder_f Offset_B13_encode_xer; +oer_type_decoder_f Offset_B13_decode_oer; +oer_type_encoder_f Offset_B13_encode_oer; +per_type_decoder_f Offset_B13_decode_uper; +per_type_encoder_f Offset_B13_encode_uper; +per_type_decoder_f Offset_B13_decode_aper; +per_type_encoder_f Offset_B13_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B13_H_ */ +#include diff --git a/vcits/ivim/Offset-B14.h b/vcits/ivim/Offset-B14.h new file mode 100644 index 0000000..27dca2c --- /dev/null +++ b/vcits/ivim/Offset-B14.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Offset_B14_H_ +#define _Offset_B14_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B14 */ +typedef long Offset_B14_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B14_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B14; +asn_struct_free_f Offset_B14_free; +asn_struct_print_f Offset_B14_print; +asn_constr_check_f Offset_B14_constraint; +ber_type_decoder_f Offset_B14_decode_ber; +der_type_encoder_f Offset_B14_encode_der; +xer_type_decoder_f Offset_B14_decode_xer; +xer_type_encoder_f Offset_B14_encode_xer; +oer_type_decoder_f Offset_B14_decode_oer; +oer_type_encoder_f Offset_B14_encode_oer; +per_type_decoder_f Offset_B14_decode_uper; +per_type_encoder_f Offset_B14_encode_uper; +per_type_decoder_f Offset_B14_decode_aper; +per_type_encoder_f Offset_B14_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B14_H_ */ +#include diff --git a/vcits/ivim/Offset-B16.h b/vcits/ivim/Offset-B16.h new file mode 100644 index 0000000..fcca74c --- /dev/null +++ b/vcits/ivim/Offset-B16.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Offset_B16_H_ +#define _Offset_B16_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B16 */ +typedef long Offset_B16_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B16_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B16; +asn_struct_free_f Offset_B16_free; +asn_struct_print_f Offset_B16_print; +asn_constr_check_f Offset_B16_constraint; +ber_type_decoder_f Offset_B16_decode_ber; +der_type_encoder_f Offset_B16_encode_der; +xer_type_decoder_f Offset_B16_decode_xer; +xer_type_encoder_f Offset_B16_encode_xer; +oer_type_decoder_f Offset_B16_decode_oer; +oer_type_encoder_f Offset_B16_encode_oer; +per_type_decoder_f Offset_B16_decode_uper; +per_type_encoder_f Offset_B16_encode_uper; +per_type_decoder_f Offset_B16_decode_aper; +per_type_encoder_f Offset_B16_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B16_H_ */ +#include diff --git a/vcits/ivim/OpeningDaysHours.h b/vcits/ivim/OpeningDaysHours.h new file mode 100644 index 0000000..414ede1 --- /dev/null +++ b/vcits/ivim/OpeningDaysHours.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _OpeningDaysHours_H_ +#define _OpeningDaysHours_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OpeningDaysHours */ +typedef UTF8String_t OpeningDaysHours_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours; +asn_struct_free_f OpeningDaysHours_free; +asn_struct_print_f OpeningDaysHours_print; +asn_constr_check_f OpeningDaysHours_constraint; +ber_type_decoder_f OpeningDaysHours_decode_ber; +der_type_encoder_f OpeningDaysHours_encode_der; +xer_type_decoder_f OpeningDaysHours_decode_xer; +xer_type_encoder_f OpeningDaysHours_encode_xer; +oer_type_decoder_f OpeningDaysHours_decode_oer; +oer_type_encoder_f OpeningDaysHours_encode_oer; +per_type_decoder_f OpeningDaysHours_decode_uper; +per_type_encoder_f OpeningDaysHours_encode_uper; +per_type_decoder_f OpeningDaysHours_decode_aper; +per_type_encoder_f OpeningDaysHours_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OpeningDaysHours_H_ */ +#include diff --git a/vcits/ivim/OverlayLaneList.h b/vcits/ivim/OverlayLaneList.h new file mode 100644 index 0000000..4c58283 --- /dev/null +++ b/vcits/ivim/OverlayLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _OverlayLaneList_H_ +#define _OverlayLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OverlayLaneList */ +typedef struct OverlayLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} OverlayLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OverlayLaneList; +extern asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_OverlayLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _OverlayLaneList_H_ */ +#include diff --git a/vcits/ivim/PassengerCapacity.h b/vcits/ivim/PassengerCapacity.h new file mode 100644 index 0000000..f57c9db --- /dev/null +++ b/vcits/ivim/PassengerCapacity.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PassengerCapacity_H_ +#define _PassengerCapacity_H_ + + +#include + +/* Including external dependencies */ +#include "Int1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PassengerCapacity */ +typedef struct PassengerCapacity { + Int1_t numberOfSeats; + Int1_t numberOfStandingPlaces; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PassengerCapacity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PassengerCapacity; +extern asn_SEQUENCE_specifics_t asn_SPC_PassengerCapacity_specs_1; +extern asn_TYPE_member_t asn_MBR_PassengerCapacity_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PassengerCapacity_H_ */ +#include diff --git a/vcits/ivim/PathDeltaTime.h b/vcits/ivim/PathDeltaTime.h new file mode 100644 index 0000000..f9d51fa --- /dev/null +++ b/vcits/ivim/PathDeltaTime.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PathDeltaTime_H_ +#define _PathDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PathDeltaTime { + PathDeltaTime_tenMilliSecondsInPast = 1 +} e_PathDeltaTime; + +/* PathDeltaTime */ +typedef long PathDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PathDeltaTime; +asn_struct_free_f PathDeltaTime_free; +asn_struct_print_f PathDeltaTime_print; +asn_constr_check_f PathDeltaTime_constraint; +ber_type_decoder_f PathDeltaTime_decode_ber; +der_type_encoder_f PathDeltaTime_encode_der; +xer_type_decoder_f PathDeltaTime_decode_xer; +xer_type_encoder_f PathDeltaTime_encode_xer; +oer_type_decoder_f PathDeltaTime_decode_oer; +oer_type_encoder_f PathDeltaTime_encode_oer; +per_type_decoder_f PathDeltaTime_decode_uper; +per_type_encoder_f PathDeltaTime_encode_uper; +per_type_decoder_f PathDeltaTime_decode_aper; +per_type_encoder_f PathDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathDeltaTime_H_ */ +#include diff --git a/vcits/ivim/PathHistory.h b/vcits/ivim/PathHistory.h new file mode 100644 index 0000000..76922ec --- /dev/null +++ b/vcits/ivim/PathHistory.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PathHistory_H_ +#define _PathHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathPoint; + +/* PathHistory */ +typedef struct PathHistory { + A_SEQUENCE_OF(struct PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathHistory; +extern asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_PathHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_PathHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathHistory_H_ */ +#include diff --git a/vcits/ivim/PathPoint.h b/vcits/ivim/PathPoint.h new file mode 100644 index 0000000..6b29592 --- /dev/null +++ b/vcits/ivim/PathPoint.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PathPoint_H_ +#define _PathPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PathPoint */ +typedef struct PathPoint { + DeltaReferencePosition_t pathPosition; + PathDeltaTime_t *pathDeltaTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_PathPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathPoint_H_ */ +#include diff --git a/vcits/ivim/PayUnit.h b/vcits/ivim/PayUnit.h new file mode 100644 index 0000000..53dde2b --- /dev/null +++ b/vcits/ivim/PayUnit.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PayUnit_H_ +#define _PayUnit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PayUnit */ +typedef OCTET_STRING_t PayUnit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PayUnit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PayUnit; +asn_struct_free_f PayUnit_free; +asn_struct_print_f PayUnit_print; +asn_constr_check_f PayUnit_constraint; +ber_type_decoder_f PayUnit_decode_ber; +der_type_encoder_f PayUnit_encode_der; +xer_type_decoder_f PayUnit_decode_xer; +xer_type_encoder_f PayUnit_encode_xer; +oer_type_decoder_f PayUnit_decode_oer; +oer_type_encoder_f PayUnit_encode_oer; +per_type_decoder_f PayUnit_decode_uper; +per_type_encoder_f PayUnit_encode_uper; +per_type_decoder_f PayUnit_decode_aper; +per_type_encoder_f PayUnit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PayUnit_H_ */ +#include diff --git a/vcits/ivim/PaymentFee.h b/vcits/ivim/PaymentFee.h new file mode 100644 index 0000000..dbe8871 --- /dev/null +++ b/vcits/ivim/PaymentFee.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PaymentFee_H_ +#define _PaymentFee_H_ + + +#include + +/* Including external dependencies */ +#include "Int2.h" +#include "PayUnit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PaymentFee */ +typedef struct PaymentFee { + Int2_t paymentFeeAmount; + PayUnit_t paymentFeeUnit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PaymentFee_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PaymentFee; +extern asn_SEQUENCE_specifics_t asn_SPC_PaymentFee_specs_1; +extern asn_TYPE_member_t asn_MBR_PaymentFee_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PaymentFee_H_ */ +#include diff --git a/vcits/ivim/PaymentMeans.h b/vcits/ivim/PaymentMeans.h new file mode 100644 index 0000000..979ecce --- /dev/null +++ b/vcits/ivim/PaymentMeans.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PaymentMeans_H_ +#define _PaymentMeans_H_ + + +#include + +/* Including external dependencies */ +#include "PersonalAccountNumber.h" +#include "DateCompact.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PaymentMeans */ +typedef struct PaymentMeans { + PersonalAccountNumber_t personalAccountNumber; + DateCompact_t paymentMeansExpiryDate; + OCTET_STRING_t pamentMeansUsageControl; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PaymentMeans_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PaymentMeans; + +#ifdef __cplusplus +} +#endif + +#endif /* _PaymentMeans_H_ */ +#include diff --git a/vcits/ivim/PaymentMeansBalance.h b/vcits/ivim/PaymentMeansBalance.h new file mode 100644 index 0000000..86879da --- /dev/null +++ b/vcits/ivim/PaymentMeansBalance.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PaymentMeansBalance_H_ +#define _PaymentMeansBalance_H_ + + +#include + +/* Including external dependencies */ +#include "SignedValue.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PaymentMeansBalance */ +typedef SignedValue_t PaymentMeansBalance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PaymentMeansBalance; +asn_struct_free_f PaymentMeansBalance_free; +asn_struct_print_f PaymentMeansBalance_print; +asn_constr_check_f PaymentMeansBalance_constraint; +ber_type_decoder_f PaymentMeansBalance_decode_ber; +der_type_encoder_f PaymentMeansBalance_encode_der; +xer_type_decoder_f PaymentMeansBalance_decode_xer; +xer_type_encoder_f PaymentMeansBalance_encode_xer; +oer_type_decoder_f PaymentMeansBalance_decode_oer; +oer_type_encoder_f PaymentMeansBalance_encode_oer; +per_type_decoder_f PaymentMeansBalance_decode_uper; +per_type_encoder_f PaymentMeansBalance_encode_uper; +per_type_decoder_f PaymentMeansBalance_decode_aper; +per_type_encoder_f PaymentMeansBalance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PaymentMeansBalance_H_ */ +#include diff --git a/vcits/ivim/PaymentMeansUnit.h b/vcits/ivim/PaymentMeansUnit.h new file mode 100644 index 0000000..8570752 --- /dev/null +++ b/vcits/ivim/PaymentMeansUnit.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PaymentMeansUnit_H_ +#define _PaymentMeansUnit_H_ + + +#include + +/* Including external dependencies */ +#include "PayUnit.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PaymentMeansUnit */ +typedef PayUnit_t PaymentMeansUnit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PaymentMeansUnit; +asn_struct_free_f PaymentMeansUnit_free; +asn_struct_print_f PaymentMeansUnit_print; +asn_constr_check_f PaymentMeansUnit_constraint; +ber_type_decoder_f PaymentMeansUnit_decode_ber; +der_type_encoder_f PaymentMeansUnit_encode_der; +xer_type_decoder_f PaymentMeansUnit_decode_xer; +xer_type_encoder_f PaymentMeansUnit_encode_xer; +oer_type_decoder_f PaymentMeansUnit_decode_oer; +oer_type_encoder_f PaymentMeansUnit_encode_oer; +per_type_decoder_f PaymentMeansUnit_decode_uper; +per_type_encoder_f PaymentMeansUnit_encode_uper; +per_type_decoder_f PaymentMeansUnit_decode_aper; +per_type_encoder_f PaymentMeansUnit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PaymentMeansUnit_H_ */ +#include diff --git a/vcits/ivim/PaymentSecurityData.h b/vcits/ivim/PaymentSecurityData.h new file mode 100644 index 0000000..263c88b --- /dev/null +++ b/vcits/ivim/PaymentSecurityData.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PaymentSecurityData_H_ +#define _PaymentSecurityData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PaymentSecurityData */ +typedef OCTET_STRING_t PaymentSecurityData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PaymentSecurityData; +asn_struct_free_f PaymentSecurityData_free; +asn_struct_print_f PaymentSecurityData_print; +asn_constr_check_f PaymentSecurityData_constraint; +ber_type_decoder_f PaymentSecurityData_decode_ber; +der_type_encoder_f PaymentSecurityData_encode_der; +xer_type_decoder_f PaymentSecurityData_decode_xer; +xer_type_encoder_f PaymentSecurityData_encode_xer; +oer_type_decoder_f PaymentSecurityData_decode_oer; +oer_type_encoder_f PaymentSecurityData_encode_oer; +per_type_decoder_f PaymentSecurityData_decode_uper; +per_type_encoder_f PaymentSecurityData_encode_uper; +per_type_decoder_f PaymentSecurityData_decode_aper; +per_type_encoder_f PaymentSecurityData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PaymentSecurityData_H_ */ +#include diff --git a/vcits/ivim/PedestrianBicycleDetect.h b/vcits/ivim/PedestrianBicycleDetect.h new file mode 100644 index 0000000..c855f88 --- /dev/null +++ b/vcits/ivim/PedestrianBicycleDetect.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PedestrianBicycleDetect_H_ +#define _PedestrianBicycleDetect_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PedestrianBicycleDetect */ +typedef BOOLEAN_t PedestrianBicycleDetect_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect; +asn_struct_free_f PedestrianBicycleDetect_free; +asn_struct_print_f PedestrianBicycleDetect_print; +asn_constr_check_f PedestrianBicycleDetect_constraint; +ber_type_decoder_f PedestrianBicycleDetect_decode_ber; +der_type_encoder_f PedestrianBicycleDetect_encode_der; +xer_type_decoder_f PedestrianBicycleDetect_decode_xer; +xer_type_encoder_f PedestrianBicycleDetect_encode_xer; +oer_type_decoder_f PedestrianBicycleDetect_decode_oer; +oer_type_encoder_f PedestrianBicycleDetect_encode_oer; +per_type_decoder_f PedestrianBicycleDetect_decode_uper; +per_type_encoder_f PedestrianBicycleDetect_encode_uper; +per_type_decoder_f PedestrianBicycleDetect_decode_aper; +per_type_encoder_f PedestrianBicycleDetect_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PedestrianBicycleDetect_H_ */ +#include diff --git a/vcits/ivim/PerformanceClass.h b/vcits/ivim/PerformanceClass.h new file mode 100644 index 0000000..5e4e846 --- /dev/null +++ b/vcits/ivim/PerformanceClass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PerformanceClass_H_ +#define _PerformanceClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PerformanceClass { + PerformanceClass_unavailable = 0, + PerformanceClass_performanceClassA = 1, + PerformanceClass_performanceClassB = 2 +} e_PerformanceClass; + +/* PerformanceClass */ +typedef long PerformanceClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PerformanceClass; +asn_struct_free_f PerformanceClass_free; +asn_struct_print_f PerformanceClass_print; +asn_constr_check_f PerformanceClass_constraint; +ber_type_decoder_f PerformanceClass_decode_ber; +der_type_encoder_f PerformanceClass_encode_der; +xer_type_decoder_f PerformanceClass_decode_xer; +xer_type_encoder_f PerformanceClass_encode_xer; +oer_type_decoder_f PerformanceClass_decode_oer; +oer_type_encoder_f PerformanceClass_encode_oer; +per_type_decoder_f PerformanceClass_decode_uper; +per_type_encoder_f PerformanceClass_encode_uper; +per_type_decoder_f PerformanceClass_decode_aper; +per_type_encoder_f PerformanceClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PerformanceClass_H_ */ +#include diff --git a/vcits/ivim/PersonalAccountNumber.h b/vcits/ivim/PersonalAccountNumber.h new file mode 100644 index 0000000..c7e7e73 --- /dev/null +++ b/vcits/ivim/PersonalAccountNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PersonalAccountNumber_H_ +#define _PersonalAccountNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PersonalAccountNumber */ +typedef OCTET_STRING_t PersonalAccountNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PersonalAccountNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PersonalAccountNumber; +asn_struct_free_f PersonalAccountNumber_free; +asn_struct_print_f PersonalAccountNumber_print; +asn_constr_check_f PersonalAccountNumber_constraint; +ber_type_decoder_f PersonalAccountNumber_decode_ber; +der_type_encoder_f PersonalAccountNumber_encode_der; +xer_type_decoder_f PersonalAccountNumber_decode_xer; +xer_type_encoder_f PersonalAccountNumber_encode_xer; +oer_type_decoder_f PersonalAccountNumber_decode_oer; +oer_type_encoder_f PersonalAccountNumber_encode_oer; +per_type_decoder_f PersonalAccountNumber_decode_uper; +per_type_encoder_f PersonalAccountNumber_encode_uper; +per_type_decoder_f PersonalAccountNumber_decode_aper; +per_type_encoder_f PersonalAccountNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PersonalAccountNumber_H_ */ +#include diff --git a/vcits/ivim/PhoneNumber.h b/vcits/ivim/PhoneNumber.h new file mode 100644 index 0000000..e47a7fa --- /dev/null +++ b/vcits/ivim/PhoneNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PhoneNumber_H_ +#define _PhoneNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PhoneNumber */ +typedef NumericString_t PhoneNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PhoneNumber; +asn_struct_free_f PhoneNumber_free; +asn_struct_print_f PhoneNumber_print; +asn_constr_check_f PhoneNumber_constraint; +ber_type_decoder_f PhoneNumber_decode_ber; +der_type_encoder_f PhoneNumber_encode_der; +xer_type_decoder_f PhoneNumber_decode_xer; +xer_type_encoder_f PhoneNumber_encode_xer; +oer_type_decoder_f PhoneNumber_decode_oer; +oer_type_encoder_f PhoneNumber_encode_oer; +per_type_decoder_f PhoneNumber_decode_uper; +per_type_encoder_f PhoneNumber_encode_uper; +per_type_decoder_f PhoneNumber_decode_aper; +per_type_encoder_f PhoneNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PhoneNumber_H_ */ +#include diff --git a/vcits/ivim/PlatooningRule.h b/vcits/ivim/PlatooningRule.h new file mode 100644 index 0000000..99c1b79 --- /dev/null +++ b/vcits/ivim/PlatooningRule.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PlatooningRule_H_ +#define _PlatooningRule_H_ + + +#include + +/* Including external dependencies */ +#include "PriorityLevel.h" +#include "SaeAutomationLevels.h" +#include "MaxNoOfVehicles.h" +#include "MaxLenghtOfPlatoon.h" +#include "GapBetweenVehicles.h" +#include "SpeedValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RoadSignCodes; +struct ConstraintTextLines2; + +/* PlatooningRule */ +typedef struct PlatooningRule { + PriorityLevel_t priority; + SaeAutomationLevels_t allowedSaeAutomationLevels; + MaxNoOfVehicles_t *maxNoOfVehicles; /* OPTIONAL */ + MaxLenghtOfPlatoon_t *maxLenghtOfPlatoon; /* OPTIONAL */ + GapBetweenVehicles_t *minGapBetweenVehicles; /* OPTIONAL */ + SpeedValue_t *platoonMaxSpeedLimit; /* OPTIONAL */ + SpeedValue_t *platoonMinSpeedLimit; /* OPTIONAL */ + SpeedValue_t *platoonSpeedRecommendation; /* OPTIONAL */ + struct RoadSignCodes *roadSignCodes; /* OPTIONAL */ + struct ConstraintTextLines2 *extraText; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PlatooningRule_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PlatooningRule; +extern asn_SEQUENCE_specifics_t asn_SPC_PlatooningRule_specs_1; +extern asn_TYPE_member_t asn_MBR_PlatooningRule_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PlatooningRule_H_ */ +#include diff --git a/vcits/ivim/PlatooningRules.h b/vcits/ivim/PlatooningRules.h new file mode 100644 index 0000000..6eea941 --- /dev/null +++ b/vcits/ivim/PlatooningRules.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PlatooningRules_H_ +#define _PlatooningRules_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PlatooningRule; + +/* PlatooningRules */ +typedef struct PlatooningRules { + A_SEQUENCE_OF(struct PlatooningRule) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PlatooningRules_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PlatooningRules; +extern asn_SET_OF_specifics_t asn_SPC_PlatooningRules_specs_1; +extern asn_TYPE_member_t asn_MBR_PlatooningRules_1[1]; +extern asn_per_constraints_t asn_PER_type_PlatooningRules_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PlatooningRules_H_ */ +#include diff --git a/vcits/ivim/PolygonalLine.h b/vcits/ivim/PolygonalLine.h new file mode 100644 index 0000000..ac4c7c3 --- /dev/null +++ b/vcits/ivim/PolygonalLine.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PolygonalLine_H_ +#define _PolygonalLine_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaPositions.h" +#include "DeltaReferencePositions.h" +#include "AbsolutePositions.h" +#include "AbsolutePositionsWAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PolygonalLine_PR { + PolygonalLine_PR_NOTHING, /* No components present */ + PolygonalLine_PR_deltaPositions, + PolygonalLine_PR_deltaPositionsWithAltitude, + PolygonalLine_PR_absolutePositions, + PolygonalLine_PR_absolutePositionsWithAltitude + /* Extensions may appear below */ + +} PolygonalLine_PR; + +/* PolygonalLine */ +typedef struct PolygonalLine { + PolygonalLine_PR present; + union PolygonalLine_u { + DeltaPositions_t deltaPositions; + DeltaReferencePositions_t deltaPositionsWithAltitude; + AbsolutePositions_t absolutePositions; + AbsolutePositionsWAltitude_t absolutePositionsWithAltitude; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PolygonalLine_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PolygonalLine; +extern asn_CHOICE_specifics_t asn_SPC_PolygonalLine_specs_1; +extern asn_TYPE_member_t asn_MBR_PolygonalLine_1[4]; +extern asn_per_constraints_t asn_PER_type_PolygonalLine_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PolygonalLine_H_ */ +#include diff --git a/vcits/ivim/PosCentMass.h b/vcits/ivim/PosCentMass.h new file mode 100644 index 0000000..bdc7dff --- /dev/null +++ b/vcits/ivim/PosCentMass.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PosCentMass_H_ +#define _PosCentMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosCentMass { + PosCentMass_tenCentimeters = 1, + PosCentMass_unavailable = 63 +} e_PosCentMass; + +/* PosCentMass */ +typedef long PosCentMass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosCentMass; +asn_struct_free_f PosCentMass_free; +asn_struct_print_f PosCentMass_print; +asn_constr_check_f PosCentMass_constraint; +ber_type_decoder_f PosCentMass_decode_ber; +der_type_encoder_f PosCentMass_encode_der; +xer_type_decoder_f PosCentMass_decode_xer; +xer_type_encoder_f PosCentMass_encode_xer; +oer_type_decoder_f PosCentMass_decode_oer; +oer_type_encoder_f PosCentMass_encode_oer; +per_type_decoder_f PosCentMass_decode_uper; +per_type_encoder_f PosCentMass_encode_uper; +per_type_decoder_f PosCentMass_decode_aper; +per_type_encoder_f PosCentMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosCentMass_H_ */ +#include diff --git a/vcits/ivim/PosConfidenceEllipse.h b/vcits/ivim/PosConfidenceEllipse.h new file mode 100644 index 0000000..791eb4d --- /dev/null +++ b/vcits/ivim/PosConfidenceEllipse.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PosConfidenceEllipse_H_ +#define _PosConfidenceEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "SemiAxisLength.h" +#include "HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PosConfidenceEllipse */ +typedef struct PosConfidenceEllipse { + SemiAxisLength_t semiMajorConfidence; + SemiAxisLength_t semiMinorConfidence; + HeadingValue_t semiMajorOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PosConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosConfidenceEllipse_H_ */ +#include diff --git a/vcits/ivim/PosFrontAx.h b/vcits/ivim/PosFrontAx.h new file mode 100644 index 0000000..2cd7f9f --- /dev/null +++ b/vcits/ivim/PosFrontAx.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PosFrontAx_H_ +#define _PosFrontAx_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosFrontAx { + PosFrontAx_tenCentimeters = 1, + PosFrontAx_unavailable = 20 +} e_PosFrontAx; + +/* PosFrontAx */ +typedef long PosFrontAx_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosFrontAx; +asn_struct_free_f PosFrontAx_free; +asn_struct_print_f PosFrontAx_print; +asn_constr_check_f PosFrontAx_constraint; +ber_type_decoder_f PosFrontAx_decode_ber; +der_type_encoder_f PosFrontAx_encode_der; +xer_type_decoder_f PosFrontAx_decode_xer; +xer_type_encoder_f PosFrontAx_encode_xer; +oer_type_decoder_f PosFrontAx_decode_oer; +oer_type_encoder_f PosFrontAx_encode_oer; +per_type_decoder_f PosFrontAx_decode_uper; +per_type_encoder_f PosFrontAx_encode_uper; +per_type_decoder_f PosFrontAx_decode_aper; +per_type_encoder_f PosFrontAx_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosFrontAx_H_ */ +#include diff --git a/vcits/ivim/PosLonCarr.h b/vcits/ivim/PosLonCarr.h new file mode 100644 index 0000000..36d86c4 --- /dev/null +++ b/vcits/ivim/PosLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PosLonCarr_H_ +#define _PosLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosLonCarr { + PosLonCarr_oneCentimeter = 1, + PosLonCarr_unavailable = 127 +} e_PosLonCarr; + +/* PosLonCarr */ +typedef long PosLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosLonCarr; +asn_struct_free_f PosLonCarr_free; +asn_struct_print_f PosLonCarr_print; +asn_constr_check_f PosLonCarr_constraint; +ber_type_decoder_f PosLonCarr_decode_ber; +der_type_encoder_f PosLonCarr_encode_der; +xer_type_decoder_f PosLonCarr_decode_xer; +xer_type_encoder_f PosLonCarr_encode_xer; +oer_type_decoder_f PosLonCarr_decode_oer; +oer_type_encoder_f PosLonCarr_encode_oer; +per_type_decoder_f PosLonCarr_decode_uper; +per_type_encoder_f PosLonCarr_encode_uper; +per_type_decoder_f PosLonCarr_decode_aper; +per_type_encoder_f PosLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosLonCarr_H_ */ +#include diff --git a/vcits/ivim/PosPillar.h b/vcits/ivim/PosPillar.h new file mode 100644 index 0000000..a4197f9 --- /dev/null +++ b/vcits/ivim/PosPillar.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PosPillar_H_ +#define _PosPillar_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosPillar { + PosPillar_tenCentimeters = 1, + PosPillar_unavailable = 30 +} e_PosPillar; + +/* PosPillar */ +typedef long PosPillar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PosPillar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PosPillar; +asn_struct_free_f PosPillar_free; +asn_struct_print_f PosPillar_print; +asn_constr_check_f PosPillar_constraint; +ber_type_decoder_f PosPillar_decode_ber; +der_type_encoder_f PosPillar_encode_der; +xer_type_decoder_f PosPillar_decode_xer; +xer_type_encoder_f PosPillar_encode_xer; +oer_type_decoder_f PosPillar_decode_oer; +oer_type_encoder_f PosPillar_encode_oer; +per_type_decoder_f PosPillar_decode_uper; +per_type_encoder_f PosPillar_encode_uper; +per_type_decoder_f PosPillar_decode_aper; +per_type_encoder_f PosPillar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosPillar_H_ */ +#include diff --git a/vcits/ivim/Position3D-addGrpC.h b/vcits/ivim/Position3D-addGrpC.h new file mode 100644 index 0000000..bd85e45 --- /dev/null +++ b/vcits/ivim/Position3D-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Position3D_addGrpC_H_ +#define _Position3D_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Position3D-addGrpC */ +typedef struct Position3D_addGrpC { + Altitude_t altitude; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_addGrpC_H_ */ +#include diff --git a/vcits/ivim/Position3D.h b/vcits/ivim/Position3D.h new file mode 100644 index 0000000..ffa61b4 --- /dev/null +++ b/vcits/ivim/Position3D.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Position3D_H_ +#define _Position3D_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "Elevation.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_Position3D; + +/* Position3D */ +typedef struct Position3D { + Latitude_t lat; + Longitude_t Long; + Elevation_t *elevation; /* OPTIONAL */ + struct Position3D__regional { + A_SEQUENCE_OF(struct Reg_Position3D) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_H_ */ +#include diff --git a/vcits/ivim/PositionConfidence.h b/vcits/ivim/PositionConfidence.h new file mode 100644 index 0000000..e95c3a1 --- /dev/null +++ b/vcits/ivim/PositionConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PositionConfidence_H_ +#define _PositionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionConfidence { + PositionConfidence_unavailable = 0, + PositionConfidence_a500m = 1, + PositionConfidence_a200m = 2, + PositionConfidence_a100m = 3, + PositionConfidence_a50m = 4, + PositionConfidence_a20m = 5, + PositionConfidence_a10m = 6, + PositionConfidence_a5m = 7, + PositionConfidence_a2m = 8, + PositionConfidence_a1m = 9, + PositionConfidence_a50cm = 10, + PositionConfidence_a20cm = 11, + PositionConfidence_a10cm = 12, + PositionConfidence_a5cm = 13, + PositionConfidence_a2cm = 14, + PositionConfidence_a1cm = 15 +} e_PositionConfidence; + +/* PositionConfidence */ +typedef long PositionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1; +asn_struct_free_f PositionConfidence_free; +asn_struct_print_f PositionConfidence_print; +asn_constr_check_f PositionConfidence_constraint; +ber_type_decoder_f PositionConfidence_decode_ber; +der_type_encoder_f PositionConfidence_encode_der; +xer_type_decoder_f PositionConfidence_decode_xer; +xer_type_encoder_f PositionConfidence_encode_xer; +oer_type_decoder_f PositionConfidence_decode_oer; +oer_type_encoder_f PositionConfidence_encode_oer; +per_type_decoder_f PositionConfidence_decode_uper; +per_type_encoder_f PositionConfidence_encode_uper; +per_type_decoder_f PositionConfidence_decode_aper; +per_type_encoder_f PositionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidence_H_ */ +#include diff --git a/vcits/ivim/PositionConfidenceSet.h b/vcits/ivim/PositionConfidenceSet.h new file mode 100644 index 0000000..0791e9d --- /dev/null +++ b/vcits/ivim/PositionConfidenceSet.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PositionConfidenceSet_H_ +#define _PositionConfidenceSet_H_ + + +#include + +/* Including external dependencies */ +#include "PositionConfidence.h" +#include "ElevationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionConfidenceSet */ +typedef struct PositionConfidenceSet { + PositionConfidence_t pos; + ElevationConfidence_t elevation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionConfidenceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidenceSet_H_ */ +#include diff --git a/vcits/ivim/PositionOfOccupants.h b/vcits/ivim/PositionOfOccupants.h new file mode 100644 index 0000000..e656ec0 --- /dev/null +++ b/vcits/ivim/PositionOfOccupants.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PositionOfOccupants_H_ +#define _PositionOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionOfOccupants { + PositionOfOccupants_row1LeftOccupied = 0, + PositionOfOccupants_row1RightOccupied = 1, + PositionOfOccupants_row1MidOccupied = 2, + PositionOfOccupants_row1NotDetectable = 3, + PositionOfOccupants_row1NotPresent = 4, + PositionOfOccupants_row2LeftOccupied = 5, + PositionOfOccupants_row2RightOccupied = 6, + PositionOfOccupants_row2MidOccupied = 7, + PositionOfOccupants_row2NotDetectable = 8, + PositionOfOccupants_row2NotPresent = 9, + PositionOfOccupants_row3LeftOccupied = 10, + PositionOfOccupants_row3RightOccupied = 11, + PositionOfOccupants_row3MidOccupied = 12, + PositionOfOccupants_row3NotDetectable = 13, + PositionOfOccupants_row3NotPresent = 14, + PositionOfOccupants_row4LeftOccupied = 15, + PositionOfOccupants_row4RightOccupied = 16, + PositionOfOccupants_row4MidOccupied = 17, + PositionOfOccupants_row4NotDetectable = 18, + PositionOfOccupants_row4NotPresent = 19 +} e_PositionOfOccupants; + +/* PositionOfOccupants */ +typedef BIT_STRING_t PositionOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants; +asn_struct_free_f PositionOfOccupants_free; +asn_struct_print_f PositionOfOccupants_print; +asn_constr_check_f PositionOfOccupants_constraint; +ber_type_decoder_f PositionOfOccupants_decode_ber; +der_type_encoder_f PositionOfOccupants_encode_der; +xer_type_decoder_f PositionOfOccupants_decode_xer; +xer_type_encoder_f PositionOfOccupants_encode_xer; +oer_type_decoder_f PositionOfOccupants_decode_oer; +oer_type_encoder_f PositionOfOccupants_encode_oer; +per_type_decoder_f PositionOfOccupants_decode_uper; +per_type_encoder_f PositionOfOccupants_encode_uper; +per_type_decoder_f PositionOfOccupants_decode_aper; +per_type_encoder_f PositionOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfOccupants_H_ */ +#include diff --git a/vcits/ivim/PositionOfPillars.h b/vcits/ivim/PositionOfPillars.h new file mode 100644 index 0000000..f49ae61 --- /dev/null +++ b/vcits/ivim/PositionOfPillars.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PositionOfPillars_H_ +#define _PositionOfPillars_H_ + + +#include + +/* Including external dependencies */ +#include "PosPillar.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionOfPillars */ +typedef struct PositionOfPillars { + A_SEQUENCE_OF(PosPillar_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionOfPillars_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfPillars; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfPillars_H_ */ +#include diff --git a/vcits/ivim/PositionalAccuracy.h b/vcits/ivim/PositionalAccuracy.h new file mode 100644 index 0000000..cd07883 --- /dev/null +++ b/vcits/ivim/PositionalAccuracy.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PositionalAccuracy_H_ +#define _PositionalAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include "SemiMajorAxisAccuracy.h" +#include "SemiMinorAxisAccuracy.h" +#include "SemiMajorAxisOrientation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionalAccuracy */ +typedef struct PositionalAccuracy { + SemiMajorAxisAccuracy_t semiMajor; + SemiMinorAxisAccuracy_t semiMinor; + SemiMajorAxisOrientation_t orientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionalAccuracy_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionalAccuracy_H_ */ +#include diff --git a/vcits/ivim/PositioningSolutionType.h b/vcits/ivim/PositioningSolutionType.h new file mode 100644 index 0000000..c1ea95a --- /dev/null +++ b/vcits/ivim/PositioningSolutionType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PositioningSolutionType_H_ +#define _PositioningSolutionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositioningSolutionType { + PositioningSolutionType_noPositioningSolution = 0, + PositioningSolutionType_sGNSS = 1, + PositioningSolutionType_dGNSS = 2, + PositioningSolutionType_sGNSSplusDR = 3, + PositioningSolutionType_dGNSSplusDR = 4, + PositioningSolutionType_dR = 5 + /* + * Enumeration is extensible + */ +} e_PositioningSolutionType; + +/* PositioningSolutionType */ +typedef long PositioningSolutionType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType; +asn_struct_free_f PositioningSolutionType_free; +asn_struct_print_f PositioningSolutionType_print; +asn_constr_check_f PositioningSolutionType_constraint; +ber_type_decoder_f PositioningSolutionType_decode_ber; +der_type_encoder_f PositioningSolutionType_encode_der; +xer_type_decoder_f PositioningSolutionType_decode_xer; +xer_type_encoder_f PositioningSolutionType_encode_xer; +oer_type_decoder_f PositioningSolutionType_decode_oer; +oer_type_encoder_f PositioningSolutionType_encode_oer; +per_type_decoder_f PositioningSolutionType_decode_uper; +per_type_encoder_f PositioningSolutionType_encode_uper; +per_type_decoder_f PositioningSolutionType_decode_aper; +per_type_encoder_f PositioningSolutionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositioningSolutionType_H_ */ +#include diff --git a/vcits/ivim/PostCrashSubCauseCode.h b/vcits/ivim/PostCrashSubCauseCode.h new file mode 100644 index 0000000..d914903 --- /dev/null +++ b/vcits/ivim/PostCrashSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PostCrashSubCauseCode_H_ +#define _PostCrashSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PostCrashSubCauseCode { + PostCrashSubCauseCode_unavailable = 0, + PostCrashSubCauseCode_accidentWithoutECallTriggered = 1, + PostCrashSubCauseCode_accidentWithECallManuallyTriggered = 2, + PostCrashSubCauseCode_accidentWithECallAutomaticallyTriggered = 3, + PostCrashSubCauseCode_accidentWithECallTriggeredWithoutAccessToCellularNetwork = 4 +} e_PostCrashSubCauseCode; + +/* PostCrashSubCauseCode */ +typedef long PostCrashSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode; +asn_struct_free_f PostCrashSubCauseCode_free; +asn_struct_print_f PostCrashSubCauseCode_print; +asn_constr_check_f PostCrashSubCauseCode_constraint; +ber_type_decoder_f PostCrashSubCauseCode_decode_ber; +der_type_encoder_f PostCrashSubCauseCode_encode_der; +xer_type_decoder_f PostCrashSubCauseCode_decode_xer; +xer_type_encoder_f PostCrashSubCauseCode_encode_xer; +oer_type_decoder_f PostCrashSubCauseCode_decode_oer; +oer_type_encoder_f PostCrashSubCauseCode_encode_oer; +per_type_decoder_f PostCrashSubCauseCode_decode_uper; +per_type_encoder_f PostCrashSubCauseCode_encode_uper; +per_type_decoder_f PostCrashSubCauseCode_decode_aper; +per_type_encoder_f PostCrashSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PostCrashSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/PreemptPriorityList.h b/vcits/ivim/PreemptPriorityList.h new file mode 100644 index 0000000..09b9208 --- /dev/null +++ b/vcits/ivim/PreemptPriorityList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PreemptPriorityList_H_ +#define _PreemptPriorityList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalControlZone; + +/* PreemptPriorityList */ +typedef struct PreemptPriorityList { + A_SEQUENCE_OF(struct SignalControlZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PreemptPriorityList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList; +extern asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1; +extern asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[1]; +extern asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PreemptPriorityList_H_ */ +#include diff --git a/vcits/ivim/PrioritizationResponse.h b/vcits/ivim/PrioritizationResponse.h new file mode 100644 index 0000000..a5060fa --- /dev/null +++ b/vcits/ivim/PrioritizationResponse.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PrioritizationResponse_H_ +#define _PrioritizationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "PrioritizationResponseStatus.h" +#include "SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PrioritizationResponse */ +typedef struct PrioritizationResponse { + StationID_t stationID; + PrioritizationResponseStatus_t priorState; + SignalGroupID_t signalGroup; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponse_H_ */ +#include diff --git a/vcits/ivim/PrioritizationResponseList.h b/vcits/ivim/PrioritizationResponseList.h new file mode 100644 index 0000000..6220913 --- /dev/null +++ b/vcits/ivim/PrioritizationResponseList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PrioritizationResponseList_H_ +#define _PrioritizationResponseList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponse; + +/* PrioritizationResponseList */ +typedef struct PrioritizationResponseList { + A_SEQUENCE_OF(struct PrioritizationResponse) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList; +extern asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[1]; +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseList_H_ */ +#include diff --git a/vcits/ivim/PrioritizationResponseStatus.h b/vcits/ivim/PrioritizationResponseStatus.h new file mode 100644 index 0000000..b4309a7 --- /dev/null +++ b/vcits/ivim/PrioritizationResponseStatus.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PrioritizationResponseStatus_H_ +#define _PrioritizationResponseStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PrioritizationResponseStatus { + PrioritizationResponseStatus_unknown = 0, + PrioritizationResponseStatus_requested = 1, + PrioritizationResponseStatus_processing = 2, + PrioritizationResponseStatus_watchOtherTraffic = 3, + PrioritizationResponseStatus_granted = 4, + PrioritizationResponseStatus_rejected = 5, + PrioritizationResponseStatus_maxPresence = 6, + PrioritizationResponseStatus_reserviceLocked = 7 + /* + * Enumeration is extensible + */ +} e_PrioritizationResponseStatus; + +/* PrioritizationResponseStatus */ +typedef long PrioritizationResponseStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus; +extern const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1; +asn_struct_free_f PrioritizationResponseStatus_free; +asn_struct_print_f PrioritizationResponseStatus_print; +asn_constr_check_f PrioritizationResponseStatus_constraint; +ber_type_decoder_f PrioritizationResponseStatus_decode_ber; +der_type_encoder_f PrioritizationResponseStatus_encode_der; +xer_type_decoder_f PrioritizationResponseStatus_decode_xer; +xer_type_encoder_f PrioritizationResponseStatus_encode_xer; +oer_type_decoder_f PrioritizationResponseStatus_decode_oer; +oer_type_encoder_f PrioritizationResponseStatus_encode_oer; +per_type_decoder_f PrioritizationResponseStatus_decode_uper; +per_type_encoder_f PrioritizationResponseStatus_encode_uper; +per_type_decoder_f PrioritizationResponseStatus_decode_aper; +per_type_encoder_f PrioritizationResponseStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseStatus_H_ */ +#include diff --git a/vcits/ivim/PriorityLevel.h b/vcits/ivim/PriorityLevel.h new file mode 100644 index 0000000..ea88db4 --- /dev/null +++ b/vcits/ivim/PriorityLevel.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PriorityLevel_H_ +#define _PriorityLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PriorityLevel */ +typedef long PriorityLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PriorityLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PriorityLevel; +asn_struct_free_f PriorityLevel_free; +asn_struct_print_f PriorityLevel_print; +asn_constr_check_f PriorityLevel_constraint; +ber_type_decoder_f PriorityLevel_decode_ber; +der_type_encoder_f PriorityLevel_encode_der; +xer_type_decoder_f PriorityLevel_decode_xer; +xer_type_encoder_f PriorityLevel_encode_xer; +oer_type_decoder_f PriorityLevel_decode_oer; +oer_type_encoder_f PriorityLevel_encode_oer; +per_type_decoder_f PriorityLevel_decode_uper; +per_type_encoder_f PriorityLevel_encode_uper; +per_type_decoder_f PriorityLevel_decode_aper; +per_type_encoder_f PriorityLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PriorityLevel_H_ */ +#include diff --git a/vcits/ivim/PriorityRequestType.h b/vcits/ivim/PriorityRequestType.h new file mode 100644 index 0000000..827c29e --- /dev/null +++ b/vcits/ivim/PriorityRequestType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PriorityRequestType_H_ +#define _PriorityRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PriorityRequestType { + PriorityRequestType_priorityRequestTypeReserved = 0, + PriorityRequestType_priorityRequest = 1, + PriorityRequestType_priorityRequestUpdate = 2, + PriorityRequestType_priorityCancellation = 3 + /* + * Enumeration is extensible + */ +} e_PriorityRequestType; + +/* PriorityRequestType */ +typedef long PriorityRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PriorityRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1; +asn_struct_free_f PriorityRequestType_free; +asn_struct_print_f PriorityRequestType_print; +asn_constr_check_f PriorityRequestType_constraint; +ber_type_decoder_f PriorityRequestType_decode_ber; +der_type_encoder_f PriorityRequestType_encode_der; +xer_type_decoder_f PriorityRequestType_decode_xer; +xer_type_encoder_f PriorityRequestType_encode_xer; +oer_type_decoder_f PriorityRequestType_decode_oer; +oer_type_encoder_f PriorityRequestType_encode_oer; +per_type_decoder_f PriorityRequestType_decode_uper; +per_type_encoder_f PriorityRequestType_encode_uper; +per_type_decoder_f PriorityRequestType_decode_aper; +per_type_encoder_f PriorityRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PriorityRequestType_H_ */ +#include diff --git a/vcits/ivim/ProtectedCommunicationZone.h b/vcits/ivim/ProtectedCommunicationZone.h new file mode 100644 index 0000000..e623622 --- /dev/null +++ b/vcits/ivim/ProtectedCommunicationZone.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ProtectedCommunicationZone_H_ +#define _ProtectedCommunicationZone_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneType.h" +#include "TimestampIts.h" +#include "Latitude.h" +#include "Longitude.h" +#include "ProtectedZoneRadius.h" +#include "ProtectedZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedCommunicationZone */ +typedef struct ProtectedCommunicationZone { + ProtectedZoneType_t protectedZoneType; + TimestampIts_t *expiryTime; /* OPTIONAL */ + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + ProtectedZoneRadius_t *protectedZoneRadius; /* OPTIONAL */ + ProtectedZoneID_t *protectedZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone; +extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZone_H_ */ +#include diff --git a/vcits/ivim/ProtectedCommunicationZonesRSU.h b/vcits/ivim/ProtectedCommunicationZonesRSU.h new file mode 100644 index 0000000..39c1504 --- /dev/null +++ b/vcits/ivim/ProtectedCommunicationZonesRSU.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ProtectedCommunicationZonesRSU_H_ +#define _ProtectedCommunicationZonesRSU_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtectedCommunicationZone; + +/* ProtectedCommunicationZonesRSU */ +typedef struct ProtectedCommunicationZonesRSU { + A_SEQUENCE_OF(struct ProtectedCommunicationZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZonesRSU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZonesRSU_H_ */ +#include diff --git a/vcits/ivim/ProtectedZoneID.h b/vcits/ivim/ProtectedZoneID.h new file mode 100644 index 0000000..d9fa86d --- /dev/null +++ b/vcits/ivim/ProtectedZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ProtectedZoneID_H_ +#define _ProtectedZoneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedZoneID */ +typedef long ProtectedZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID; +asn_struct_free_f ProtectedZoneID_free; +asn_struct_print_f ProtectedZoneID_print; +asn_constr_check_f ProtectedZoneID_constraint; +ber_type_decoder_f ProtectedZoneID_decode_ber; +der_type_encoder_f ProtectedZoneID_encode_der; +xer_type_decoder_f ProtectedZoneID_decode_xer; +xer_type_encoder_f ProtectedZoneID_encode_xer; +oer_type_decoder_f ProtectedZoneID_decode_oer; +oer_type_encoder_f ProtectedZoneID_encode_oer; +per_type_decoder_f ProtectedZoneID_decode_uper; +per_type_encoder_f ProtectedZoneID_encode_uper; +per_type_decoder_f ProtectedZoneID_decode_aper; +per_type_encoder_f ProtectedZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneID_H_ */ +#include diff --git a/vcits/ivim/ProtectedZoneRadius.h b/vcits/ivim/ProtectedZoneRadius.h new file mode 100644 index 0000000..8361739 --- /dev/null +++ b/vcits/ivim/ProtectedZoneRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ProtectedZoneRadius_H_ +#define _ProtectedZoneRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneRadius { + ProtectedZoneRadius_oneMeter = 1 +} e_ProtectedZoneRadius; + +/* ProtectedZoneRadius */ +typedef long ProtectedZoneRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius; +asn_struct_free_f ProtectedZoneRadius_free; +asn_struct_print_f ProtectedZoneRadius_print; +asn_constr_check_f ProtectedZoneRadius_constraint; +ber_type_decoder_f ProtectedZoneRadius_decode_ber; +der_type_encoder_f ProtectedZoneRadius_encode_der; +xer_type_decoder_f ProtectedZoneRadius_decode_xer; +xer_type_encoder_f ProtectedZoneRadius_encode_xer; +oer_type_decoder_f ProtectedZoneRadius_decode_oer; +oer_type_encoder_f ProtectedZoneRadius_encode_oer; +per_type_decoder_f ProtectedZoneRadius_decode_uper; +per_type_encoder_f ProtectedZoneRadius_encode_uper; +per_type_decoder_f ProtectedZoneRadius_decode_aper; +per_type_encoder_f ProtectedZoneRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneRadius_H_ */ +#include diff --git a/vcits/ivim/ProtectedZoneType.h b/vcits/ivim/ProtectedZoneType.h new file mode 100644 index 0000000..59713b0 --- /dev/null +++ b/vcits/ivim/ProtectedZoneType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ProtectedZoneType_H_ +#define _ProtectedZoneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneType { + ProtectedZoneType_permanentCenDsrcTolling = 0, + /* + * Enumeration is extensible + */ + ProtectedZoneType_temporaryCenDsrcTolling = 1 +} e_ProtectedZoneType; + +/* ProtectedZoneType */ +typedef long ProtectedZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1; +asn_struct_free_f ProtectedZoneType_free; +asn_struct_print_f ProtectedZoneType_print; +asn_constr_check_f ProtectedZoneType_constraint; +ber_type_decoder_f ProtectedZoneType_decode_ber; +der_type_encoder_f ProtectedZoneType_encode_der; +xer_type_decoder_f ProtectedZoneType_decode_xer; +xer_type_encoder_f ProtectedZoneType_encode_xer; +oer_type_decoder_f ProtectedZoneType_decode_oer; +oer_type_encoder_f ProtectedZoneType_encode_oer; +per_type_decoder_f ProtectedZoneType_decode_uper; +per_type_encoder_f ProtectedZoneType_encode_uper; +per_type_decoder_f ProtectedZoneType_decode_aper; +per_type_encoder_f ProtectedZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneType_H_ */ +#include diff --git a/vcits/ivim/Provider.h b/vcits/ivim/Provider.h new file mode 100644 index 0000000..ba5103c --- /dev/null +++ b/vcits/ivim/Provider.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Provider_H_ +#define _Provider_H_ + + +#include + +/* Including external dependencies */ +#include "CountryCode.h" +#include "IssuerIdentifier.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Provider */ +typedef struct Provider { + CountryCode_t countryCode; + IssuerIdentifier_t providerIdentifier; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Provider_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Provider; +extern asn_SEQUENCE_specifics_t asn_SPC_Provider_specs_1; +extern asn_TYPE_member_t asn_MBR_Provider_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Provider_H_ */ +#include diff --git a/vcits/ivim/PtActivation.h b/vcits/ivim/PtActivation.h new file mode 100644 index 0000000..e720d0b --- /dev/null +++ b/vcits/ivim/PtActivation.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PtActivation_H_ +#define _PtActivation_H_ + + +#include + +/* Including external dependencies */ +#include "PtActivationType.h" +#include "PtActivationData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivation */ +typedef struct PtActivation { + PtActivationType_t ptActivationType; + PtActivationData_t ptActivationData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PtActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PtActivation; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivation_H_ */ +#include diff --git a/vcits/ivim/PtActivationData.h b/vcits/ivim/PtActivationData.h new file mode 100644 index 0000000..871dc1b --- /dev/null +++ b/vcits/ivim/PtActivationData.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PtActivationData_H_ +#define _PtActivationData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivationData */ +typedef OCTET_STRING_t PtActivationData_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationData_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationData; +asn_struct_free_f PtActivationData_free; +asn_struct_print_f PtActivationData_print; +asn_constr_check_f PtActivationData_constraint; +ber_type_decoder_f PtActivationData_decode_ber; +der_type_encoder_f PtActivationData_encode_der; +xer_type_decoder_f PtActivationData_decode_xer; +xer_type_encoder_f PtActivationData_encode_xer; +oer_type_decoder_f PtActivationData_decode_oer; +oer_type_encoder_f PtActivationData_encode_oer; +per_type_decoder_f PtActivationData_decode_uper; +per_type_encoder_f PtActivationData_encode_uper; +per_type_decoder_f PtActivationData_decode_aper; +per_type_encoder_f PtActivationData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationData_H_ */ +#include diff --git a/vcits/ivim/PtActivationType.h b/vcits/ivim/PtActivationType.h new file mode 100644 index 0000000..9b23c98 --- /dev/null +++ b/vcits/ivim/PtActivationType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PtActivationType_H_ +#define _PtActivationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtActivationType { + PtActivationType_undefinedCodingType = 0, + PtActivationType_r09_16CodingType = 1, + PtActivationType_vdv_50149CodingType = 2 +} e_PtActivationType; + +/* PtActivationType */ +typedef long PtActivationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationType; +asn_struct_free_f PtActivationType_free; +asn_struct_print_f PtActivationType_print; +asn_constr_check_f PtActivationType_constraint; +ber_type_decoder_f PtActivationType_decode_ber; +der_type_encoder_f PtActivationType_encode_der; +xer_type_decoder_f PtActivationType_decode_xer; +xer_type_encoder_f PtActivationType_encode_xer; +oer_type_decoder_f PtActivationType_decode_oer; +oer_type_encoder_f PtActivationType_encode_oer; +per_type_decoder_f PtActivationType_decode_uper; +per_type_encoder_f PtActivationType_encode_uper; +per_type_decoder_f PtActivationType_decode_aper; +per_type_encoder_f PtActivationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationType_H_ */ +#include diff --git a/vcits/ivim/PtvRequestType.h b/vcits/ivim/PtvRequestType.h new file mode 100644 index 0000000..5a1c0a0 --- /dev/null +++ b/vcits/ivim/PtvRequestType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PtvRequestType_H_ +#define _PtvRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtvRequestType { + PtvRequestType_preRequest = 0, + PtvRequestType_mainRequest = 1, + PtvRequestType_doorCloseRequest = 2, + PtvRequestType_cancelRequest = 3, + PtvRequestType_emergencyRequest = 4 + /* + * Enumeration is extensible + */ +} e_PtvRequestType; + +/* PtvRequestType */ +typedef long PtvRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtvRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtvRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PtvRequestType_specs_1; +asn_struct_free_f PtvRequestType_free; +asn_struct_print_f PtvRequestType_print; +asn_constr_check_f PtvRequestType_constraint; +ber_type_decoder_f PtvRequestType_decode_ber; +der_type_encoder_f PtvRequestType_encode_der; +xer_type_decoder_f PtvRequestType_decode_xer; +xer_type_encoder_f PtvRequestType_encode_xer; +oer_type_decoder_f PtvRequestType_decode_oer; +oer_type_encoder_f PtvRequestType_encode_oer; +per_type_decoder_f PtvRequestType_decode_uper; +per_type_encoder_f PtvRequestType_encode_uper; +per_type_decoder_f PtvRequestType_decode_aper; +per_type_encoder_f PtvRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtvRequestType_H_ */ +#include diff --git a/vcits/ivim/PurseBalance.h b/vcits/ivim/PurseBalance.h new file mode 100644 index 0000000..8f93407 --- /dev/null +++ b/vcits/ivim/PurseBalance.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _PurseBalance_H_ +#define _PurseBalance_H_ + + +#include + +/* Including external dependencies */ +#include "SignedValue.h" +#include "PayUnit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PurseBalance */ +typedef struct PurseBalance { + SignedValue_t purseValue; + PayUnit_t purseUnit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PurseBalance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PurseBalance; +extern asn_SEQUENCE_specifics_t asn_SPC_PurseBalance_specs_1; +extern asn_TYPE_member_t asn_MBR_PurseBalance_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PurseBalance_H_ */ +#include diff --git a/vcits/ivim/RSCUnit.h b/vcits/ivim/RSCUnit.h new file mode 100644 index 0000000..fbc428a --- /dev/null +++ b/vcits/ivim/RSCUnit.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RSCUnit_H_ +#define _RSCUnit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RSCUnit { + RSCUnit_kmperh = 0, + RSCUnit_milesperh = 1, + RSCUnit_kilometer = 2, + RSCUnit_meter = 3, + RSCUnit_decimeter = 4, + RSCUnit_centimeter = 5, + RSCUnit_mile = 6, + RSCUnit_yard = 7, + RSCUnit_foot = 8, + RSCUnit_minutesOfTime = 9, + RSCUnit_tonnes = 10, + RSCUnit_hundredkg = 11, + RSCUnit_pound = 12, + RSCUnit_rateOfIncline = 13 +} e_RSCUnit; + +/* RSCUnit */ +typedef long RSCUnit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RSCUnit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RSCUnit; +asn_struct_free_f RSCUnit_free; +asn_struct_print_f RSCUnit_print; +asn_constr_check_f RSCUnit_constraint; +ber_type_decoder_f RSCUnit_decode_ber; +der_type_encoder_f RSCUnit_encode_der; +xer_type_decoder_f RSCUnit_decode_xer; +xer_type_encoder_f RSCUnit_encode_xer; +oer_type_decoder_f RSCUnit_decode_oer; +oer_type_encoder_f RSCUnit_encode_oer; +per_type_decoder_f RSCUnit_decode_uper; +per_type_encoder_f RSCUnit_encode_uper; +per_type_decoder_f RSCUnit_decode_aper; +per_type_encoder_f RSCUnit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RSCUnit_H_ */ +#include diff --git a/vcits/ivim/RSCode.h b/vcits/ivim/RSCode.h new file mode 100644 index 0000000..17acb75 --- /dev/null +++ b/vcits/ivim/RSCode.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RSCode_H_ +#define _RSCode_H_ + + +#include + +/* Including external dependencies */ +#include +#include "VcCode.h" +#include "ISO14823Code.h" +#include "AnyCatalogue.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RSCode__code_PR { + RSCode__code_PR_NOTHING, /* No components present */ + RSCode__code_PR_viennaConvention, + RSCode__code_PR_iso14823, + RSCode__code_PR_itisCodes, + RSCode__code_PR_anyCatalogue + /* Extensions may appear below */ + +} RSCode__code_PR; + +/* RSCode */ +typedef struct RSCode { + long *layoutComponentId; /* OPTIONAL */ + struct RSCode__code { + RSCode__code_PR present; + union RSCode__code_u { + VcCode_t viennaConvention; + ISO14823Code_t iso14823; + long itisCodes; + AnyCatalogue_t anyCatalogue; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } code; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RSCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RSCode; +extern asn_SEQUENCE_specifics_t asn_SPC_RSCode_specs_1; +extern asn_TYPE_member_t asn_MBR_RSCode_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RSCode_H_ */ +#include diff --git a/vcits/ivim/RTCM-Revision.h b/vcits/ivim/RTCM-Revision.h new file mode 100644 index 0000000..0e009d0 --- /dev/null +++ b/vcits/ivim/RTCM-Revision.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RTCM_Revision_H_ +#define _RTCM_Revision_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RTCM_Revision { + RTCM_Revision_unknown = 0, + RTCM_Revision_rtcmRev2 = 1, + RTCM_Revision_rtcmRev3 = 2, + RTCM_Revision_reserved = 3 + /* + * Enumeration is extensible + */ +} e_RTCM_Revision; + +/* RTCM-Revision */ +typedef long RTCM_Revision_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCM_Revision; +extern const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1; +asn_struct_free_f RTCM_Revision_free; +asn_struct_print_f RTCM_Revision_print; +asn_constr_check_f RTCM_Revision_constraint; +ber_type_decoder_f RTCM_Revision_decode_ber; +der_type_encoder_f RTCM_Revision_encode_der; +xer_type_decoder_f RTCM_Revision_decode_xer; +xer_type_encoder_f RTCM_Revision_encode_xer; +oer_type_decoder_f RTCM_Revision_decode_oer; +oer_type_encoder_f RTCM_Revision_encode_oer; +per_type_decoder_f RTCM_Revision_decode_uper; +per_type_encoder_f RTCM_Revision_encode_uper; +per_type_decoder_f RTCM_Revision_decode_aper; +per_type_encoder_f RTCM_Revision_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCM_Revision_H_ */ +#include diff --git a/vcits/ivim/RTCMcorrections.h b/vcits/ivim/RTCMcorrections.h new file mode 100644 index 0000000..c46c546 --- /dev/null +++ b/vcits/ivim/RTCMcorrections.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RTCMcorrections_H_ +#define _RTCMcorrections_H_ + + +#include + +/* Including external dependencies */ +#include "MsgCount.h" +#include "RTCM-Revision.h" +#include "MinuteOfTheYear.h" +#include "RTCMmessageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FullPositionVector; +struct RTCMheader; +struct Reg_RTCMcorrections; + +/* RTCMcorrections */ +typedef struct RTCMcorrections { + MsgCount_t msgCnt; + RTCM_Revision_t rev; + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + struct FullPositionVector *anchorPoint; /* OPTIONAL */ + struct RTCMheader *rtcmHeader; /* OPTIONAL */ + RTCMmessageList_t msgs; + struct RTCMcorrections__regional { + A_SEQUENCE_OF(struct Reg_RTCMcorrections) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMcorrections_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMcorrections; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMcorrections_H_ */ +#include diff --git a/vcits/ivim/RTCMheader.h b/vcits/ivim/RTCMheader.h new file mode 100644 index 0000000..f66d37f --- /dev/null +++ b/vcits/ivim/RTCMheader.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RTCMheader_H_ +#define _RTCMheader_H_ + + +#include + +/* Including external dependencies */ +#include "GNSSstatus.h" +#include "AntennaOffsetSet.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMheader */ +typedef struct RTCMheader { + GNSSstatus_t status; + AntennaOffsetSet_t offsetSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMheader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMheader; +extern asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMheader_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMheader_H_ */ +#include diff --git a/vcits/ivim/RTCMmessage.h b/vcits/ivim/RTCMmessage.h new file mode 100644 index 0000000..358ec1a --- /dev/null +++ b/vcits/ivim/RTCMmessage.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RTCMmessage_H_ +#define _RTCMmessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessage */ +typedef OCTET_STRING_t RTCMmessage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessage; +asn_struct_free_f RTCMmessage_free; +asn_struct_print_f RTCMmessage_print; +asn_constr_check_f RTCMmessage_constraint; +ber_type_decoder_f RTCMmessage_decode_ber; +der_type_encoder_f RTCMmessage_encode_der; +xer_type_decoder_f RTCMmessage_decode_xer; +xer_type_encoder_f RTCMmessage_encode_xer; +oer_type_decoder_f RTCMmessage_decode_oer; +oer_type_encoder_f RTCMmessage_encode_oer; +per_type_decoder_f RTCMmessage_decode_uper; +per_type_encoder_f RTCMmessage_encode_uper; +per_type_decoder_f RTCMmessage_decode_aper; +per_type_encoder_f RTCMmessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessage_H_ */ +#include diff --git a/vcits/ivim/RTCMmessageList.h b/vcits/ivim/RTCMmessageList.h new file mode 100644 index 0000000..82df5bf --- /dev/null +++ b/vcits/ivim/RTCMmessageList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RTCMmessageList_H_ +#define _RTCMmessageList_H_ + + +#include + +/* Including external dependencies */ +#include "RTCMmessage.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessageList */ +typedef struct RTCMmessageList { + A_SEQUENCE_OF(RTCMmessage_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMmessageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessageList; +extern asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMmessageList_1[1]; +extern asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessageList_H_ */ +#include diff --git a/vcits/ivim/RccPart.h b/vcits/ivim/RccPart.h new file mode 100644 index 0000000..fa438ab --- /dev/null +++ b/vcits/ivim/RccPart.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RccPart_H_ +#define _RccPart_H_ + + +#include + +/* Including external dependencies */ +#include "ZoneIds.h" +#include "RoadType.h" +#include "LaneConfiguration.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RccPart */ +typedef struct RccPart { + ZoneIds_t relevanceZoneIds; + RoadType_t roadType; + LaneConfiguration_t laneConfiguration; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RccPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RccPart; +extern asn_SEQUENCE_specifics_t asn_SPC_RccPart_specs_1; +extern asn_TYPE_member_t asn_MBR_RccPart_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RccPart_H_ */ +#include diff --git a/vcits/ivim/ReceiptAuthenticator.h b/vcits/ivim/ReceiptAuthenticator.h new file mode 100644 index 0000000..9253e7b --- /dev/null +++ b/vcits/ivim/ReceiptAuthenticator.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ReceiptAuthenticator_H_ +#define _ReceiptAuthenticator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReceiptAuthenticator */ +typedef OCTET_STRING_t ReceiptAuthenticator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReceiptAuthenticator; +asn_struct_free_f ReceiptAuthenticator_free; +asn_struct_print_f ReceiptAuthenticator_print; +asn_constr_check_f ReceiptAuthenticator_constraint; +ber_type_decoder_f ReceiptAuthenticator_decode_ber; +der_type_encoder_f ReceiptAuthenticator_encode_der; +xer_type_decoder_f ReceiptAuthenticator_decode_xer; +xer_type_encoder_f ReceiptAuthenticator_encode_xer; +oer_type_decoder_f ReceiptAuthenticator_decode_oer; +oer_type_encoder_f ReceiptAuthenticator_encode_oer; +per_type_decoder_f ReceiptAuthenticator_decode_uper; +per_type_encoder_f ReceiptAuthenticator_encode_uper; +per_type_decoder_f ReceiptAuthenticator_decode_aper; +per_type_encoder_f ReceiptAuthenticator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReceiptAuthenticator_H_ */ +#include diff --git a/vcits/ivim/ReceiptContract.h b/vcits/ivim/ReceiptContract.h new file mode 100644 index 0000000..efb2800 --- /dev/null +++ b/vcits/ivim/ReceiptContract.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ReceiptContract_H_ +#define _ReceiptContract_H_ + + +#include + +/* Including external dependencies */ +#include "Provider.h" +#include +#include "Int4.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReceiptContract */ +typedef struct ReceiptContract { + Provider_t sessionContractProvider; + OCTET_STRING_t sessionTypeOfContract; + Int4_t sessionContractSerialNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReceiptContract_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReceiptContract; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReceiptContract_H_ */ +#include diff --git a/vcits/ivim/ReceiptData.h b/vcits/ivim/ReceiptData.h new file mode 100644 index 0000000..556208d --- /dev/null +++ b/vcits/ivim/ReceiptData.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ReceiptData_H_ +#define _ReceiptData_H_ + + +#include + +/* Including external dependencies */ +#include "DateAndTime.h" +#include "Provider.h" +#include "Int2.h" +#include "SessionLocation.h" +#include "Int1.h" +#include "ResultOp.h" +#include "PaymentFee.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReceiptData */ +typedef struct ReceiptData { + DateAndTime_t sessionTime; + Provider_t sessionServiceProvider; + Int2_t locationOfStation; + SessionLocation_t sessionLocation; + Int1_t sessionType; + ResultOp_t sessionResult; + Int1_t sessionTariffClass; + Int1_t sessionClaimedClass; + PaymentFee_t sessionFee; + Provider_t sessionContractProvider; + OCTET_STRING_t sessionTypeOfContract; + long sessionContextVersion; + OCTET_STRING_t receiptDataAuthenticator; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReceiptData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReceiptData; +extern asn_SEQUENCE_specifics_t asn_SPC_ReceiptData_specs_1; +extern asn_TYPE_member_t asn_MBR_ReceiptData_1[13]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReceiptData_H_ */ +#include diff --git a/vcits/ivim/ReceiptData1.h b/vcits/ivim/ReceiptData1.h new file mode 100644 index 0000000..3149f28 --- /dev/null +++ b/vcits/ivim/ReceiptData1.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ReceiptData1_H_ +#define _ReceiptData1_H_ + + +#include + +/* Including external dependencies */ +#include "ReceiptData.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReceiptData1 */ +typedef ReceiptData_t ReceiptData1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReceiptData1; +asn_struct_free_f ReceiptData1_free; +asn_struct_print_f ReceiptData1_print; +asn_constr_check_f ReceiptData1_constraint; +ber_type_decoder_f ReceiptData1_decode_ber; +der_type_encoder_f ReceiptData1_encode_der; +xer_type_decoder_f ReceiptData1_decode_xer; +xer_type_encoder_f ReceiptData1_encode_xer; +oer_type_decoder_f ReceiptData1_decode_oer; +oer_type_encoder_f ReceiptData1_encode_oer; +per_type_decoder_f ReceiptData1_decode_uper; +per_type_encoder_f ReceiptData1_encode_uper; +per_type_decoder_f ReceiptData1_decode_aper; +per_type_encoder_f ReceiptData1_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReceiptData1_H_ */ +#include diff --git a/vcits/ivim/ReceiptData2.h b/vcits/ivim/ReceiptData2.h new file mode 100644 index 0000000..eb7bd52 --- /dev/null +++ b/vcits/ivim/ReceiptData2.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ReceiptData2_H_ +#define _ReceiptData2_H_ + + +#include + +/* Including external dependencies */ +#include "ReceiptData.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReceiptData2 */ +typedef ReceiptData_t ReceiptData2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReceiptData2; +asn_struct_free_f ReceiptData2_free; +asn_struct_print_f ReceiptData2_print; +asn_constr_check_f ReceiptData2_constraint; +ber_type_decoder_f ReceiptData2_decode_ber; +der_type_encoder_f ReceiptData2_encode_der; +xer_type_decoder_f ReceiptData2_decode_xer; +xer_type_encoder_f ReceiptData2_encode_xer; +oer_type_decoder_f ReceiptData2_decode_oer; +oer_type_encoder_f ReceiptData2_encode_oer; +per_type_decoder_f ReceiptData2_decode_uper; +per_type_encoder_f ReceiptData2_encode_uper; +per_type_decoder_f ReceiptData2_decode_aper; +per_type_encoder_f ReceiptData2_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReceiptData2_H_ */ +#include diff --git a/vcits/ivim/ReceiptDistance.h b/vcits/ivim/ReceiptDistance.h new file mode 100644 index 0000000..30a26bc --- /dev/null +++ b/vcits/ivim/ReceiptDistance.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ReceiptDistance_H_ +#define _ReceiptDistance_H_ + + +#include + +/* Including external dependencies */ +#include "Int3.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReceiptDistance */ +typedef Int3_t ReceiptDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReceiptDistance; +asn_struct_free_f ReceiptDistance_free; +asn_struct_print_f ReceiptDistance_print; +asn_constr_check_f ReceiptDistance_constraint; +ber_type_decoder_f ReceiptDistance_decode_ber; +der_type_encoder_f ReceiptDistance_encode_der; +xer_type_decoder_f ReceiptDistance_decode_xer; +xer_type_encoder_f ReceiptDistance_encode_xer; +oer_type_decoder_f ReceiptDistance_decode_oer; +oer_type_encoder_f ReceiptDistance_encode_oer; +per_type_decoder_f ReceiptDistance_decode_uper; +per_type_encoder_f ReceiptDistance_encode_uper; +per_type_decoder_f ReceiptDistance_decode_aper; +per_type_encoder_f ReceiptDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReceiptDistance_H_ */ +#include diff --git a/vcits/ivim/ReceiptFinancialPart.h b/vcits/ivim/ReceiptFinancialPart.h new file mode 100644 index 0000000..1ae4a11 --- /dev/null +++ b/vcits/ivim/ReceiptFinancialPart.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ReceiptFinancialPart_H_ +#define _ReceiptFinancialPart_H_ + + +#include + +/* Including external dependencies */ +#include "PersonalAccountNumber.h" +#include "PaymentFee.h" +#include "PurseBalance.h" +#include "Int4.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReceiptFinancialPart */ +typedef struct ReceiptFinancialPart { + PersonalAccountNumber_t personalAccountNumber; + PaymentFee_t sessionPaymentFee; + PurseBalance_t sessionCurrentBalance; + Int4_t receiptFinancialSerialNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReceiptFinancialPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReceiptFinancialPart; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReceiptFinancialPart_H_ */ +#include diff --git a/vcits/ivim/ReceiptICC-Id.h b/vcits/ivim/ReceiptICC-Id.h new file mode 100644 index 0000000..439e012 --- /dev/null +++ b/vcits/ivim/ReceiptICC-Id.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ReceiptICC_Id_H_ +#define _ReceiptICC_Id_H_ + + +#include + +/* Including external dependencies */ +#include "ICC-Id.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReceiptICC-Id */ +typedef ICC_Id_t ReceiptICC_Id_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReceiptICC_Id; +asn_struct_free_f ReceiptICC_Id_free; +asn_struct_print_f ReceiptICC_Id_print; +asn_constr_check_f ReceiptICC_Id_constraint; +ber_type_decoder_f ReceiptICC_Id_decode_ber; +der_type_encoder_f ReceiptICC_Id_encode_der; +xer_type_decoder_f ReceiptICC_Id_decode_xer; +xer_type_encoder_f ReceiptICC_Id_encode_xer; +oer_type_decoder_f ReceiptICC_Id_decode_oer; +oer_type_encoder_f ReceiptICC_Id_encode_oer; +per_type_decoder_f ReceiptICC_Id_decode_uper; +per_type_encoder_f ReceiptICC_Id_encode_uper; +per_type_decoder_f ReceiptICC_Id_decode_aper; +per_type_encoder_f ReceiptICC_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReceiptICC_Id_H_ */ +#include diff --git a/vcits/ivim/ReceiptOBUId.h b/vcits/ivim/ReceiptOBUId.h new file mode 100644 index 0000000..fe57c73 --- /dev/null +++ b/vcits/ivim/ReceiptOBUId.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ReceiptOBUId_H_ +#define _ReceiptOBUId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReceiptOBUId */ +typedef OCTET_STRING_t ReceiptOBUId_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReceiptOBUId; +asn_struct_free_f ReceiptOBUId_free; +asn_struct_print_f ReceiptOBUId_print; +asn_constr_check_f ReceiptOBUId_constraint; +ber_type_decoder_f ReceiptOBUId_decode_ber; +der_type_encoder_f ReceiptOBUId_encode_der; +xer_type_decoder_f ReceiptOBUId_decode_xer; +xer_type_encoder_f ReceiptOBUId_encode_xer; +oer_type_decoder_f ReceiptOBUId_decode_oer; +oer_type_encoder_f ReceiptOBUId_encode_oer; +per_type_decoder_f ReceiptOBUId_decode_uper; +per_type_encoder_f ReceiptOBUId_encode_uper; +per_type_decoder_f ReceiptOBUId_decode_aper; +per_type_encoder_f ReceiptOBUId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReceiptOBUId_H_ */ +#include diff --git a/vcits/ivim/ReceiptServicePart.h b/vcits/ivim/ReceiptServicePart.h new file mode 100644 index 0000000..1c8f4a5 --- /dev/null +++ b/vcits/ivim/ReceiptServicePart.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ReceiptServicePart_H_ +#define _ReceiptServicePart_H_ + + +#include + +/* Including external dependencies */ +#include "DateAndTime.h" +#include "Provider.h" +#include +#include +#include "EfcDsrcApplication_StationType.h" +#include "ResultOp.h" +#include "ResultFin.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReceiptServicePart */ +typedef struct ReceiptServicePart { + DateAndTime_t sessionTime; + Provider_t sessionServiceProvider; + long stationLocation; + BIT_STRING_t sessionLocation; + EfcDsrcApplication_StationType_t typeOfSession; + ResultOp_t sessionResultOperational; + ResultFin_t sessionResultFinancial; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReceiptServicePart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReceiptServicePart; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReceiptServicePart_H_ */ +#include diff --git a/vcits/ivim/ReceiptServiceSerialNumber.h b/vcits/ivim/ReceiptServiceSerialNumber.h new file mode 100644 index 0000000..ce62e7d --- /dev/null +++ b/vcits/ivim/ReceiptServiceSerialNumber.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ReceiptServiceSerialNumber_H_ +#define _ReceiptServiceSerialNumber_H_ + + +#include + +/* Including external dependencies */ +#include "Int3.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReceiptServiceSerialNumber */ +typedef Int3_t ReceiptServiceSerialNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReceiptServiceSerialNumber; +asn_struct_free_f ReceiptServiceSerialNumber_free; +asn_struct_print_f ReceiptServiceSerialNumber_print; +asn_constr_check_f ReceiptServiceSerialNumber_constraint; +ber_type_decoder_f ReceiptServiceSerialNumber_decode_ber; +der_type_encoder_f ReceiptServiceSerialNumber_encode_der; +xer_type_decoder_f ReceiptServiceSerialNumber_decode_xer; +xer_type_encoder_f ReceiptServiceSerialNumber_encode_xer; +oer_type_decoder_f ReceiptServiceSerialNumber_decode_oer; +oer_type_encoder_f ReceiptServiceSerialNumber_encode_oer; +per_type_decoder_f ReceiptServiceSerialNumber_decode_uper; +per_type_encoder_f ReceiptServiceSerialNumber_encode_uper; +per_type_decoder_f ReceiptServiceSerialNumber_decode_aper; +per_type_encoder_f ReceiptServiceSerialNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReceiptServiceSerialNumber_H_ */ +#include diff --git a/vcits/ivim/ReceiptText.h b/vcits/ivim/ReceiptText.h new file mode 100644 index 0000000..91f39b7 --- /dev/null +++ b/vcits/ivim/ReceiptText.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ReceiptText_H_ +#define _ReceiptText_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReceiptText */ +typedef OCTET_STRING_t ReceiptText_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReceiptText; +asn_struct_free_f ReceiptText_free; +asn_struct_print_f ReceiptText_print; +asn_constr_check_f ReceiptText_constraint; +ber_type_decoder_f ReceiptText_decode_ber; +der_type_encoder_f ReceiptText_encode_der; +xer_type_decoder_f ReceiptText_decode_xer; +xer_type_encoder_f ReceiptText_encode_xer; +oer_type_decoder_f ReceiptText_decode_oer; +oer_type_encoder_f ReceiptText_encode_oer; +per_type_decoder_f ReceiptText_decode_uper; +per_type_encoder_f ReceiptText_encode_uper; +per_type_decoder_f ReceiptText_decode_aper; +per_type_encoder_f ReceiptText_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReceiptText_H_ */ +#include diff --git a/vcits/ivim/ReferencePosition.h b/vcits/ivim/ReferencePosition.h new file mode 100644 index 0000000..59b6c95 --- /dev/null +++ b/vcits/ivim/ReferencePosition.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ReferencePosition_H_ +#define _ReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "PosConfidenceEllipse.h" +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReferencePosition */ +typedef struct ReferencePosition { + Latitude_t latitude; + Longitude_t longitude; + PosConfidenceEllipse_t positionConfidenceEllipse; + Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ReferencePosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReferencePosition_H_ */ +#include diff --git a/vcits/ivim/RegionId.h b/vcits/ivim/RegionId.h new file mode 100644 index 0000000..c49b267 --- /dev/null +++ b/vcits/ivim/RegionId.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RegionId_H_ +#define _RegionId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegionId */ +typedef long RegionId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RegionId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RegionId; +asn_struct_free_f RegionId_free; +asn_struct_print_f RegionId_print; +asn_constr_check_f RegionId_constraint; +ber_type_decoder_f RegionId_decode_ber; +der_type_encoder_f RegionId_encode_der; +xer_type_decoder_f RegionId_decode_xer; +xer_type_encoder_f RegionId_encode_xer; +oer_type_decoder_f RegionId_decode_oer; +oer_type_encoder_f RegionId_encode_oer; +per_type_decoder_f RegionId_decode_uper; +per_type_encoder_f RegionId_encode_uper; +per_type_decoder_f RegionId_decode_aper; +per_type_encoder_f RegionId_encode_aper; +#define RegionId_noRegion ((RegionId_t)0) +#define RegionId_addGrpA ((RegionId_t)1) +#define RegionId_addGrpB ((RegionId_t)2) +#define RegionId_addGrpC ((RegionId_t)3) + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionId_H_ */ +#include diff --git a/vcits/ivim/RegionalExtension.h b/vcits/ivim/RegionalExtension.h new file mode 100644 index 0000000..3e79152 --- /dev/null +++ b/vcits/ivim/RegionalExtension.h @@ -0,0 +1,626 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RegionalExtension_H_ +#define _RegionalExtension_H_ + + +#include + +/* Including external dependencies */ +#include "RegionId.h" +#include +#include +#include "MapData-addGrpC.h" +#include +#include +#include +#include "ConnectionManeuverAssist-addGrpC.h" +#include "ConnectionTrajectory-addGrpC.h" +#include "IntersectionState-addGrpC.h" +#include "LaneAttributes-addGrpC.h" +#include "MovementEvent-addGrpC.h" +#include "NodeAttributeSet-addGrpC.h" +#include "Position3D-addGrpC.h" +#include "RequestorDescription-addGrpC.h" +#include "RestrictionUserType-addGrpC.h" +#include "SignalStatusPackage-addGrpC.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Reg_MapData__regExtValue_PR { + Reg_MapData__regExtValue_PR_NOTHING, /* No components present */ + Reg_MapData__regExtValue_PR_MapData_addGrpC +} Reg_MapData__regExtValue_PR; +typedef enum Reg_RTCMcorrections__regExtValue_PR { + Reg_RTCMcorrections__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RTCMcorrections__regExtValue_PR; +typedef enum Reg_SPAT__regExtValue_PR { + Reg_SPAT__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SPAT__regExtValue_PR; +typedef enum Reg_SignalRequestMessage__regExtValue_PR { + Reg_SignalRequestMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestMessage__regExtValue_PR; +typedef enum Reg_SignalStatusMessage__regExtValue_PR { + Reg_SignalStatusMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatusMessage__regExtValue_PR; +typedef enum Reg_AdvisorySpeed__regExtValue_PR { + Reg_AdvisorySpeed__regExtValue_PR_NOTHING /* No components present */ + +} Reg_AdvisorySpeed__regExtValue_PR; +typedef enum Reg_ComputedLane__regExtValue_PR { + Reg_ComputedLane__regExtValue_PR_NOTHING /* No components present */ + +} Reg_ComputedLane__regExtValue_PR; +typedef enum Reg_ConnectionManeuverAssist__regExtValue_PR { + Reg_ConnectionManeuverAssist__regExtValue_PR_NOTHING, /* No components present */ + Reg_ConnectionManeuverAssist__regExtValue_PR_ConnectionManeuverAssist_addGrpC +} Reg_ConnectionManeuverAssist__regExtValue_PR; +typedef enum Reg_GenericLane__regExtValue_PR { + Reg_GenericLane__regExtValue_PR_NOTHING, /* No components present */ + Reg_GenericLane__regExtValue_PR_ConnectionTrajectory_addGrpC +} Reg_GenericLane__regExtValue_PR; +typedef enum Reg_IntersectionGeometry__regExtValue_PR { + Reg_IntersectionGeometry__regExtValue_PR_NOTHING /* No components present */ + +} Reg_IntersectionGeometry__regExtValue_PR; +typedef enum Reg_IntersectionState__regExtValue_PR { + Reg_IntersectionState__regExtValue_PR_NOTHING, /* No components present */ + Reg_IntersectionState__regExtValue_PR_IntersectionState_addGrpC +} Reg_IntersectionState__regExtValue_PR; +typedef enum Reg_LaneAttributes__regExtValue_PR { + Reg_LaneAttributes__regExtValue_PR_NOTHING, /* No components present */ + Reg_LaneAttributes__regExtValue_PR_LaneAttributes_addGrpC +} Reg_LaneAttributes__regExtValue_PR; +typedef enum Reg_LaneDataAttribute__regExtValue_PR { + Reg_LaneDataAttribute__regExtValue_PR_NOTHING /* No components present */ + +} Reg_LaneDataAttribute__regExtValue_PR; +typedef enum Reg_MovementEvent__regExtValue_PR { + Reg_MovementEvent__regExtValue_PR_NOTHING, /* No components present */ + Reg_MovementEvent__regExtValue_PR_MovementEvent_addGrpC +} Reg_MovementEvent__regExtValue_PR; +typedef enum Reg_MovementState__regExtValue_PR { + Reg_MovementState__regExtValue_PR_NOTHING /* No components present */ + +} Reg_MovementState__regExtValue_PR; +typedef enum Reg_NodeAttributeSetXY__regExtValue_PR { + Reg_NodeAttributeSetXY__regExtValue_PR_NOTHING, /* No components present */ + Reg_NodeAttributeSetXY__regExtValue_PR_NodeAttributeSet_addGrpC +} Reg_NodeAttributeSetXY__regExtValue_PR; +typedef enum Reg_NodeOffsetPointXY__regExtValue_PR { + Reg_NodeOffsetPointXY__regExtValue_PR_NOTHING /* No components present */ + +} Reg_NodeOffsetPointXY__regExtValue_PR; +typedef enum Reg_Position3D__regExtValue_PR { + Reg_Position3D__regExtValue_PR_NOTHING, /* No components present */ + Reg_Position3D__regExtValue_PR_Position3D_addGrpC +} Reg_Position3D__regExtValue_PR; +typedef enum Reg_RequestorDescription__regExtValue_PR { + Reg_RequestorDescription__regExtValue_PR_NOTHING, /* No components present */ + Reg_RequestorDescription__regExtValue_PR_RequestorDescription_addGrpC +} Reg_RequestorDescription__regExtValue_PR; +typedef enum Reg_RequestorType__regExtValue_PR { + Reg_RequestorType__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RequestorType__regExtValue_PR; +typedef enum Reg_RestrictionUserType__regExtValue_PR { + Reg_RestrictionUserType__regExtValue_PR_NOTHING, /* No components present */ + Reg_RestrictionUserType__regExtValue_PR_RestrictionUserType_addGrpC +} Reg_RestrictionUserType__regExtValue_PR; +typedef enum Reg_RoadSegment__regExtValue_PR { + Reg_RoadSegment__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RoadSegment__regExtValue_PR; +typedef enum Reg_SignalControlZone__regExtValue_PR { + Reg_SignalControlZone__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalControlZone__regExtValue_PR; +typedef enum Reg_SignalRequest__regExtValue_PR { + Reg_SignalRequest__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequest__regExtValue_PR; +typedef enum Reg_SignalRequestPackage__regExtValue_PR { + Reg_SignalRequestPackage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestPackage__regExtValue_PR; +typedef enum Reg_SignalStatus__regExtValue_PR { + Reg_SignalStatus__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatus__regExtValue_PR; +typedef enum Reg_SignalStatusPackage__regExtValue_PR { + Reg_SignalStatusPackage__regExtValue_PR_NOTHING, /* No components present */ + Reg_SignalStatusPackage__regExtValue_PR_SignalStatusPackage_addGrpC +} Reg_SignalStatusPackage__regExtValue_PR; + +/* RegionalExtension */ +typedef struct Reg_MapData { + RegionId_t regionId; + struct Reg_MapData__regExtValue { + Reg_MapData__regExtValue_PR present; + union Reg_MapData__regExtValue_u { + MapData_addGrpC_t MapData_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MapData_t; +typedef struct Reg_RTCMcorrections { + RegionId_t regionId; + struct Reg_RTCMcorrections__regExtValue { + Reg_RTCMcorrections__regExtValue_PR present; + union Reg_RTCMcorrections__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RTCMcorrections_t; +typedef struct Reg_SPAT { + RegionId_t regionId; + struct Reg_SPAT__regExtValue { + Reg_SPAT__regExtValue_PR present; + union Reg_SPAT__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SPAT_t; +typedef struct Reg_SignalRequestMessage { + RegionId_t regionId; + struct Reg_SignalRequestMessage__regExtValue { + Reg_SignalRequestMessage__regExtValue_PR present; + union Reg_SignalRequestMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestMessage_t; +typedef struct Reg_SignalStatusMessage { + RegionId_t regionId; + struct Reg_SignalStatusMessage__regExtValue { + Reg_SignalStatusMessage__regExtValue_PR present; + union Reg_SignalStatusMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusMessage_t; +typedef struct Reg_AdvisorySpeed { + RegionId_t regionId; + struct Reg_AdvisorySpeed__regExtValue { + Reg_AdvisorySpeed__regExtValue_PR present; + union Reg_AdvisorySpeed__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_AdvisorySpeed_t; +typedef struct Reg_ComputedLane { + RegionId_t regionId; + struct Reg_ComputedLane__regExtValue { + Reg_ComputedLane__regExtValue_PR present; + union Reg_ComputedLane__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ComputedLane_t; +typedef struct Reg_ConnectionManeuverAssist { + RegionId_t regionId; + struct Reg_ConnectionManeuverAssist__regExtValue { + Reg_ConnectionManeuverAssist__regExtValue_PR present; + union Reg_ConnectionManeuverAssist__regExtValue_u { + ConnectionManeuverAssist_addGrpC_t ConnectionManeuverAssist_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ConnectionManeuverAssist_t; +typedef struct Reg_GenericLane { + RegionId_t regionId; + struct Reg_GenericLane__regExtValue { + Reg_GenericLane__regExtValue_PR present; + union Reg_GenericLane__regExtValue_u { + ConnectionTrajectory_addGrpC_t ConnectionTrajectory_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_GenericLane_t; +typedef struct Reg_IntersectionGeometry { + RegionId_t regionId; + struct Reg_IntersectionGeometry__regExtValue { + Reg_IntersectionGeometry__regExtValue_PR present; + union Reg_IntersectionGeometry__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionGeometry_t; +typedef struct Reg_IntersectionState { + RegionId_t regionId; + struct Reg_IntersectionState__regExtValue { + Reg_IntersectionState__regExtValue_PR present; + union Reg_IntersectionState__regExtValue_u { + IntersectionState_addGrpC_t IntersectionState_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionState_t; +typedef struct Reg_LaneAttributes { + RegionId_t regionId; + struct Reg_LaneAttributes__regExtValue { + Reg_LaneAttributes__regExtValue_PR present; + union Reg_LaneAttributes__regExtValue_u { + LaneAttributes_addGrpC_t LaneAttributes_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneAttributes_t; +typedef struct Reg_LaneDataAttribute { + RegionId_t regionId; + struct Reg_LaneDataAttribute__regExtValue { + Reg_LaneDataAttribute__regExtValue_PR present; + union Reg_LaneDataAttribute__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneDataAttribute_t; +typedef struct Reg_MovementEvent { + RegionId_t regionId; + struct Reg_MovementEvent__regExtValue { + Reg_MovementEvent__regExtValue_PR present; + union Reg_MovementEvent__regExtValue_u { + MovementEvent_addGrpC_t MovementEvent_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementEvent_t; +typedef struct Reg_MovementState { + RegionId_t regionId; + struct Reg_MovementState__regExtValue { + Reg_MovementState__regExtValue_PR present; + union Reg_MovementState__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementState_t; +typedef struct Reg_NodeAttributeSetXY { + RegionId_t regionId; + struct Reg_NodeAttributeSetXY__regExtValue { + Reg_NodeAttributeSetXY__regExtValue_PR present; + union Reg_NodeAttributeSetXY__regExtValue_u { + NodeAttributeSet_addGrpC_t NodeAttributeSet_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeAttributeSetXY_t; +typedef struct Reg_NodeOffsetPointXY { + RegionId_t regionId; + struct Reg_NodeOffsetPointXY__regExtValue { + Reg_NodeOffsetPointXY__regExtValue_PR present; + union Reg_NodeOffsetPointXY__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeOffsetPointXY_t; +typedef struct Reg_Position3D { + RegionId_t regionId; + struct Reg_Position3D__regExtValue { + Reg_Position3D__regExtValue_PR present; + union Reg_Position3D__regExtValue_u { + Position3D_addGrpC_t Position3D_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_Position3D_t; +typedef struct Reg_RequestorDescription { + RegionId_t regionId; + struct Reg_RequestorDescription__regExtValue { + Reg_RequestorDescription__regExtValue_PR present; + union Reg_RequestorDescription__regExtValue_u { + RequestorDescription_addGrpC_t RequestorDescription_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorDescription_t; +typedef struct Reg_RequestorType { + RegionId_t regionId; + struct Reg_RequestorType__regExtValue { + Reg_RequestorType__regExtValue_PR present; + union Reg_RequestorType__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorType_t; +typedef struct Reg_RestrictionUserType { + RegionId_t regionId; + struct Reg_RestrictionUserType__regExtValue { + Reg_RestrictionUserType__regExtValue_PR present; + union Reg_RestrictionUserType__regExtValue_u { + RestrictionUserType_addGrpC_t RestrictionUserType_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RestrictionUserType_t; +typedef struct Reg_RoadSegment { + RegionId_t regionId; + struct Reg_RoadSegment__regExtValue { + Reg_RoadSegment__regExtValue_PR present; + union Reg_RoadSegment__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RoadSegment_t; +typedef struct Reg_SignalControlZone { + RegionId_t regionId; + struct Reg_SignalControlZone__regExtValue { + Reg_SignalControlZone__regExtValue_PR present; + union Reg_SignalControlZone__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalControlZone_t; +typedef struct Reg_SignalRequest { + RegionId_t regionId; + struct Reg_SignalRequest__regExtValue { + Reg_SignalRequest__regExtValue_PR present; + union Reg_SignalRequest__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequest_t; +typedef struct Reg_SignalRequestPackage { + RegionId_t regionId; + struct Reg_SignalRequestPackage__regExtValue { + Reg_SignalRequestPackage__regExtValue_PR present; + union Reg_SignalRequestPackage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestPackage_t; +typedef struct Reg_SignalStatus { + RegionId_t regionId; + struct Reg_SignalStatus__regExtValue { + Reg_SignalStatus__regExtValue_PR present; + union Reg_SignalStatus__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatus_t; +typedef struct Reg_SignalStatusPackage { + RegionId_t regionId; + struct Reg_SignalStatusPackage__regExtValue { + Reg_SignalStatusPackage__regExtValue_PR present; + union Reg_SignalStatusPackage__regExtValue_u { + SignalStatusPackage_addGrpC_t SignalStatusPackage_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Reg_MapData; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_1; +extern asn_TYPE_member_t asn_MBR_Reg_MapData_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_4; +extern asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_4[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SPAT; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_7; +extern asn_TYPE_member_t asn_MBR_Reg_SPAT_7[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_10; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_10[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_13; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_13[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_16; +extern asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_16[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_19; +extern asn_TYPE_member_t asn_MBR_Reg_ComputedLane_19[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_22; +extern asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_22[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_25; +extern asn_TYPE_member_t asn_MBR_Reg_GenericLane_25[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_28; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_28[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_31; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionState_31[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_34; +extern asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_34[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_37; +extern asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_37[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_40; +extern asn_TYPE_member_t asn_MBR_Reg_MovementEvent_40[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_43; +extern asn_TYPE_member_t asn_MBR_Reg_MovementState_43[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_46; +extern asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_46[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_49; +extern asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_49[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_52; +extern asn_TYPE_member_t asn_MBR_Reg_Position3D_52[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_55; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_55[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_58; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorType_58[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_61; +extern asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_61[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_64; +extern asn_TYPE_member_t asn_MBR_Reg_RoadSegment_64[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_67; +extern asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_67[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_70; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequest_70[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_73; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_73[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_76; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatus_76[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_79; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_79[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionalExtension_H_ */ +#include diff --git a/vcits/ivim/RegulatorySpeedLimit.h b/vcits/ivim/RegulatorySpeedLimit.h new file mode 100644 index 0000000..a42b697 --- /dev/null +++ b/vcits/ivim/RegulatorySpeedLimit.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RegulatorySpeedLimit_H_ +#define _RegulatorySpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedLimitType.h" +#include "Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegulatorySpeedLimit */ +typedef struct RegulatorySpeedLimit { + SpeedLimitType_t type; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RegulatorySpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit; +extern asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1; +extern asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegulatorySpeedLimit_H_ */ +#include diff --git a/vcits/ivim/RejectedReason.h b/vcits/ivim/RejectedReason.h new file mode 100644 index 0000000..2a06e6f --- /dev/null +++ b/vcits/ivim/RejectedReason.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RejectedReason_H_ +#define _RejectedReason_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RejectedReason { + RejectedReason_unknown = 0, + RejectedReason_exceptionalCondition = 1, + RejectedReason_maxWaitingTimeExceeded = 2, + RejectedReason_ptPriorityDisabled = 3, + RejectedReason_higherPTPriorityGranted = 4, + RejectedReason_vehicleTrackingUnknown = 5 + /* + * Enumeration is extensible + */ +} e_RejectedReason; + +/* RejectedReason */ +typedef long RejectedReason_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RejectedReason_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RejectedReason; +extern const asn_INTEGER_specifics_t asn_SPC_RejectedReason_specs_1; +asn_struct_free_f RejectedReason_free; +asn_struct_print_f RejectedReason_print; +asn_constr_check_f RejectedReason_constraint; +ber_type_decoder_f RejectedReason_decode_ber; +der_type_encoder_f RejectedReason_encode_der; +xer_type_decoder_f RejectedReason_decode_xer; +xer_type_encoder_f RejectedReason_encode_xer; +oer_type_decoder_f RejectedReason_decode_oer; +oer_type_encoder_f RejectedReason_encode_oer; +per_type_decoder_f RejectedReason_decode_uper; +per_type_encoder_f RejectedReason_encode_uper; +per_type_decoder_f RejectedReason_decode_aper; +per_type_encoder_f RejectedReason_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RejectedReason_H_ */ +#include diff --git a/vcits/ivim/RelevanceDistance.h b/vcits/ivim/RelevanceDistance.h new file mode 100644 index 0000000..1ae24ac --- /dev/null +++ b/vcits/ivim/RelevanceDistance.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RelevanceDistance_H_ +#define _RelevanceDistance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceDistance { + RelevanceDistance_lessThan50m = 0, + RelevanceDistance_lessThan100m = 1, + RelevanceDistance_lessThan200m = 2, + RelevanceDistance_lessThan500m = 3, + RelevanceDistance_lessThan1000m = 4, + RelevanceDistance_lessThan5km = 5, + RelevanceDistance_lessThan10km = 6, + RelevanceDistance_over10km = 7 +} e_RelevanceDistance; + +/* RelevanceDistance */ +typedef long RelevanceDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceDistance; +asn_struct_free_f RelevanceDistance_free; +asn_struct_print_f RelevanceDistance_print; +asn_constr_check_f RelevanceDistance_constraint; +ber_type_decoder_f RelevanceDistance_decode_ber; +der_type_encoder_f RelevanceDistance_encode_der; +xer_type_decoder_f RelevanceDistance_decode_xer; +xer_type_encoder_f RelevanceDistance_encode_xer; +oer_type_decoder_f RelevanceDistance_decode_oer; +oer_type_encoder_f RelevanceDistance_encode_oer; +per_type_decoder_f RelevanceDistance_decode_uper; +per_type_encoder_f RelevanceDistance_encode_uper; +per_type_decoder_f RelevanceDistance_decode_aper; +per_type_encoder_f RelevanceDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceDistance_H_ */ +#include diff --git a/vcits/ivim/RelevanceTrafficDirection.h b/vcits/ivim/RelevanceTrafficDirection.h new file mode 100644 index 0000000..b89cb8a --- /dev/null +++ b/vcits/ivim/RelevanceTrafficDirection.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RelevanceTrafficDirection_H_ +#define _RelevanceTrafficDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceTrafficDirection { + RelevanceTrafficDirection_allTrafficDirections = 0, + RelevanceTrafficDirection_upstreamTraffic = 1, + RelevanceTrafficDirection_downstreamTraffic = 2, + RelevanceTrafficDirection_oppositeTraffic = 3 +} e_RelevanceTrafficDirection; + +/* RelevanceTrafficDirection */ +typedef long RelevanceTrafficDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection; +asn_struct_free_f RelevanceTrafficDirection_free; +asn_struct_print_f RelevanceTrafficDirection_print; +asn_constr_check_f RelevanceTrafficDirection_constraint; +ber_type_decoder_f RelevanceTrafficDirection_decode_ber; +der_type_encoder_f RelevanceTrafficDirection_encode_der; +xer_type_decoder_f RelevanceTrafficDirection_decode_xer; +xer_type_encoder_f RelevanceTrafficDirection_encode_xer; +oer_type_decoder_f RelevanceTrafficDirection_decode_oer; +oer_type_encoder_f RelevanceTrafficDirection_encode_oer; +per_type_decoder_f RelevanceTrafficDirection_decode_uper; +per_type_encoder_f RelevanceTrafficDirection_encode_uper; +per_type_decoder_f RelevanceTrafficDirection_decode_aper; +per_type_encoder_f RelevanceTrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceTrafficDirection_H_ */ +#include diff --git a/vcits/ivim/RepeatingPeriodDayTypes.h b/vcits/ivim/RepeatingPeriodDayTypes.h new file mode 100644 index 0000000..50bb804 --- /dev/null +++ b/vcits/ivim/RepeatingPeriodDayTypes.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RepeatingPeriodDayTypes_H_ +#define _RepeatingPeriodDayTypes_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RepeatingPeriodDayTypes { + RepeatingPeriodDayTypes_national_holiday = 0, + RepeatingPeriodDayTypes_even_days = 1, + RepeatingPeriodDayTypes_odd_days = 2, + RepeatingPeriodDayTypes_market_day = 3 +} e_RepeatingPeriodDayTypes; + +/* RepeatingPeriodDayTypes */ +typedef BIT_STRING_t RepeatingPeriodDayTypes_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RepeatingPeriodDayTypes_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RepeatingPeriodDayTypes; +asn_struct_free_f RepeatingPeriodDayTypes_free; +asn_struct_print_f RepeatingPeriodDayTypes_print; +asn_constr_check_f RepeatingPeriodDayTypes_constraint; +ber_type_decoder_f RepeatingPeriodDayTypes_decode_ber; +der_type_encoder_f RepeatingPeriodDayTypes_encode_der; +xer_type_decoder_f RepeatingPeriodDayTypes_decode_xer; +xer_type_encoder_f RepeatingPeriodDayTypes_encode_xer; +oer_type_decoder_f RepeatingPeriodDayTypes_decode_oer; +oer_type_encoder_f RepeatingPeriodDayTypes_encode_oer; +per_type_decoder_f RepeatingPeriodDayTypes_decode_uper; +per_type_encoder_f RepeatingPeriodDayTypes_encode_uper; +per_type_decoder_f RepeatingPeriodDayTypes_decode_aper; +per_type_encoder_f RepeatingPeriodDayTypes_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RepeatingPeriodDayTypes_H_ */ +#include diff --git a/vcits/ivim/RequestID.h b/vcits/ivim/RequestID.h new file mode 100644 index 0000000..54ecf82 --- /dev/null +++ b/vcits/ivim/RequestID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RequestID_H_ +#define _RequestID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestID */ +typedef long RequestID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestID; +asn_struct_free_f RequestID_free; +asn_struct_print_f RequestID_print; +asn_constr_check_f RequestID_constraint; +ber_type_decoder_f RequestID_decode_ber; +der_type_encoder_f RequestID_encode_der; +xer_type_decoder_f RequestID_decode_xer; +xer_type_encoder_f RequestID_encode_xer; +oer_type_decoder_f RequestID_decode_oer; +oer_type_encoder_f RequestID_encode_oer; +per_type_decoder_f RequestID_decode_uper; +per_type_encoder_f RequestID_encode_uper; +per_type_decoder_f RequestID_decode_aper; +per_type_encoder_f RequestID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestID_H_ */ +#include diff --git a/vcits/ivim/RequestImportanceLevel.h b/vcits/ivim/RequestImportanceLevel.h new file mode 100644 index 0000000..e440de8 --- /dev/null +++ b/vcits/ivim/RequestImportanceLevel.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RequestImportanceLevel_H_ +#define _RequestImportanceLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestImportanceLevel { + RequestImportanceLevel_requestImportanceLevelUnKnown = 0, + RequestImportanceLevel_requestImportanceLevel1 = 1, + RequestImportanceLevel_requestImportanceLevel2 = 2, + RequestImportanceLevel_requestImportanceLevel3 = 3, + RequestImportanceLevel_requestImportanceLevel4 = 4, + RequestImportanceLevel_requestImportanceLevel5 = 5, + RequestImportanceLevel_requestImportanceLevel6 = 6, + RequestImportanceLevel_requestImportanceLevel7 = 7, + RequestImportanceLevel_requestImportanceLevel8 = 8, + RequestImportanceLevel_requestImportanceLevel9 = 9, + RequestImportanceLevel_requestImportanceLevel10 = 10, + RequestImportanceLevel_requestImportanceLevel11 = 11, + RequestImportanceLevel_requestImportanceLevel12 = 12, + RequestImportanceLevel_requestImportanceLevel13 = 13, + RequestImportanceLevel_requestImportanceLevel14 = 14, + RequestImportanceLevel_requestImportanceReserved = 15 +} e_RequestImportanceLevel; + +/* RequestImportanceLevel */ +typedef long RequestImportanceLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel; +extern const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1; +asn_struct_free_f RequestImportanceLevel_free; +asn_struct_print_f RequestImportanceLevel_print; +asn_constr_check_f RequestImportanceLevel_constraint; +ber_type_decoder_f RequestImportanceLevel_decode_ber; +der_type_encoder_f RequestImportanceLevel_encode_der; +xer_type_decoder_f RequestImportanceLevel_decode_xer; +xer_type_encoder_f RequestImportanceLevel_encode_xer; +oer_type_decoder_f RequestImportanceLevel_decode_oer; +oer_type_encoder_f RequestImportanceLevel_encode_oer; +per_type_decoder_f RequestImportanceLevel_decode_uper; +per_type_encoder_f RequestImportanceLevel_encode_uper; +per_type_decoder_f RequestImportanceLevel_decode_aper; +per_type_encoder_f RequestImportanceLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestImportanceLevel_H_ */ +#include diff --git a/vcits/ivim/RequestResponseIndication.h b/vcits/ivim/RequestResponseIndication.h new file mode 100644 index 0000000..b1cc6cd --- /dev/null +++ b/vcits/ivim/RequestResponseIndication.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RequestResponseIndication_H_ +#define _RequestResponseIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestResponseIndication { + RequestResponseIndication_request = 0, + RequestResponseIndication_response = 1 +} e_RequestResponseIndication; + +/* RequestResponseIndication */ +typedef long RequestResponseIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication; +asn_struct_free_f RequestResponseIndication_free; +asn_struct_print_f RequestResponseIndication_print; +asn_constr_check_f RequestResponseIndication_constraint; +ber_type_decoder_f RequestResponseIndication_decode_ber; +der_type_encoder_f RequestResponseIndication_encode_der; +xer_type_decoder_f RequestResponseIndication_decode_xer; +xer_type_encoder_f RequestResponseIndication_encode_xer; +oer_type_decoder_f RequestResponseIndication_decode_oer; +oer_type_encoder_f RequestResponseIndication_encode_oer; +per_type_decoder_f RequestResponseIndication_decode_uper; +per_type_encoder_f RequestResponseIndication_encode_uper; +per_type_decoder_f RequestResponseIndication_decode_aper; +per_type_encoder_f RequestResponseIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestResponseIndication_H_ */ +#include diff --git a/vcits/ivim/RequestSubRole.h b/vcits/ivim/RequestSubRole.h new file mode 100644 index 0000000..ad48bb5 --- /dev/null +++ b/vcits/ivim/RequestSubRole.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RequestSubRole_H_ +#define _RequestSubRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestSubRole { + RequestSubRole_requestSubRoleUnKnown = 0, + RequestSubRole_requestSubRole1 = 1, + RequestSubRole_requestSubRole2 = 2, + RequestSubRole_requestSubRole3 = 3, + RequestSubRole_requestSubRole4 = 4, + RequestSubRole_requestSubRole5 = 5, + RequestSubRole_requestSubRole6 = 6, + RequestSubRole_requestSubRole7 = 7, + RequestSubRole_requestSubRole8 = 8, + RequestSubRole_requestSubRole9 = 9, + RequestSubRole_requestSubRole10 = 10, + RequestSubRole_requestSubRole11 = 11, + RequestSubRole_requestSubRole12 = 12, + RequestSubRole_requestSubRole13 = 13, + RequestSubRole_requestSubRole14 = 14, + RequestSubRole_requestSubRoleReserved = 15 +} e_RequestSubRole; + +/* RequestSubRole */ +typedef long RequestSubRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestSubRole; +extern const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1; +asn_struct_free_f RequestSubRole_free; +asn_struct_print_f RequestSubRole_print; +asn_constr_check_f RequestSubRole_constraint; +ber_type_decoder_f RequestSubRole_decode_ber; +der_type_encoder_f RequestSubRole_encode_der; +xer_type_decoder_f RequestSubRole_decode_xer; +xer_type_encoder_f RequestSubRole_encode_xer; +oer_type_decoder_f RequestSubRole_decode_oer; +oer_type_encoder_f RequestSubRole_encode_oer; +per_type_decoder_f RequestSubRole_decode_uper; +per_type_encoder_f RequestSubRole_encode_uper; +per_type_decoder_f RequestSubRole_decode_aper; +per_type_encoder_f RequestSubRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestSubRole_H_ */ +#include diff --git a/vcits/ivim/RequestorDescription-addGrpC.h b/vcits/ivim/RequestorDescription-addGrpC.h new file mode 100644 index 0000000..c19d576 --- /dev/null +++ b/vcits/ivim/RequestorDescription-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RequestorDescription_addGrpC_H_ +#define _RequestorDescription_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "FuelType.h" +#include "BatteryStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestorDescription-addGrpC */ +typedef struct RequestorDescription_addGrpC { + FuelType_t *fuel; /* OPTIONAL */ + BatteryStatus_t *batteryStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_addGrpC_H_ */ +#include diff --git a/vcits/ivim/RequestorDescription.h b/vcits/ivim/RequestorDescription.h new file mode 100644 index 0000000..915f184 --- /dev/null +++ b/vcits/ivim/RequestorDescription.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RequestorDescription_H_ +#define _RequestorDescription_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleID.h" +#include "DescriptiveName.h" +#include "TransitVehicleStatus.h" +#include "TransitVehicleOccupancy.h" +#include "DeltaTime.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; +struct RequestorPositionVector; +struct Reg_RequestorDescription; + +/* RequestorDescription */ +typedef struct RequestorDescription { + VehicleID_t id; + struct RequestorType *type; /* OPTIONAL */ + struct RequestorPositionVector *position; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + DescriptiveName_t *routeName; /* OPTIONAL */ + TransitVehicleStatus_t *transitStatus; /* OPTIONAL */ + TransitVehicleOccupancy_t *transitOccupancy; /* OPTIONAL */ + DeltaTime_t *transitSchedule; /* OPTIONAL */ + struct RequestorDescription__regional { + A_SEQUENCE_OF(struct Reg_RequestorDescription) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_H_ */ +#include diff --git a/vcits/ivim/RequestorPositionVector.h b/vcits/ivim/RequestorPositionVector.h new file mode 100644 index 0000000..27c6443 --- /dev/null +++ b/vcits/ivim/RequestorPositionVector.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RequestorPositionVector_H_ +#define _RequestorPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "Position3D.h" +#include "Angle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TransmissionAndSpeed; + +/* RequestorPositionVector */ +typedef struct RequestorPositionVector { + Position3D_t position; + Angle_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorPositionVector_H_ */ +#include diff --git a/vcits/ivim/RequestorType.h b/vcits/ivim/RequestorType.h new file mode 100644 index 0000000..1de6dfa --- /dev/null +++ b/vcits/ivim/RequestorType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RequestorType_H_ +#define _RequestorType_H_ + + +#include + +/* Including external dependencies */ +#include "BasicVehicleRole.h" +#include "RequestSubRole.h" +#include "RequestImportanceLevel.h" +#include "Iso3833VehicleType.h" +#include "VehicleType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_RequestorType; + +/* RequestorType */ +typedef struct RequestorType { + BasicVehicleRole_t role; + RequestSubRole_t *subrole; /* OPTIONAL */ + RequestImportanceLevel_t *request; /* OPTIONAL */ + Iso3833VehicleType_t *iso3883; /* OPTIONAL */ + VehicleType_t *hpmsType; /* OPTIONAL */ + struct Reg_RequestorType *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorType_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorType_H_ */ +#include diff --git a/vcits/ivim/RescueAndRecoveryWorkInProgressSubCauseCode.h b/vcits/ivim/RescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 0000000..9088920 --- /dev/null +++ b/vcits/ivim/RescueAndRecoveryWorkInProgressSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RescueAndRecoveryWorkInProgressSubCauseCode_H_ +#define _RescueAndRecoveryWorkInProgressSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RescueAndRecoveryWorkInProgressSubCauseCode { + RescueAndRecoveryWorkInProgressSubCauseCode_unavailable = 0, + RescueAndRecoveryWorkInProgressSubCauseCode_emergencyVehicles = 1, + RescueAndRecoveryWorkInProgressSubCauseCode_rescueHelicopterLanding = 2, + RescueAndRecoveryWorkInProgressSubCauseCode_policeActivityOngoing = 3, + RescueAndRecoveryWorkInProgressSubCauseCode_medicalEmergencyOngoing = 4, + RescueAndRecoveryWorkInProgressSubCauseCode_childAbductionInProgress = 5 +} e_RescueAndRecoveryWorkInProgressSubCauseCode; + +/* RescueAndRecoveryWorkInProgressSubCauseCode */ +typedef long RescueAndRecoveryWorkInProgressSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode; +asn_struct_free_f RescueAndRecoveryWorkInProgressSubCauseCode_free; +asn_struct_print_f RescueAndRecoveryWorkInProgressSubCauseCode_print; +asn_constr_check_f RescueAndRecoveryWorkInProgressSubCauseCode_constraint; +ber_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_ber; +der_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_der; +xer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_xer; +xer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_xer; +oer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_oer; +oer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_oer; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_uper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_uper; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_aper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RescueAndRecoveryWorkInProgressSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/RestrictedTypes.h b/vcits/ivim/RestrictedTypes.h new file mode 100644 index 0000000..c2fb64c --- /dev/null +++ b/vcits/ivim/RestrictedTypes.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RestrictedTypes_H_ +#define _RestrictedTypes_H_ + + +#include + +/* Including external dependencies */ +#include "ITS-Container_StationType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictedTypes */ +typedef struct RestrictedTypes { + A_SEQUENCE_OF(ITS_Container_StationType_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictedTypes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictedTypes; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictedTypes_H_ */ +#include diff --git a/vcits/ivim/RestrictionAppliesTo.h b/vcits/ivim/RestrictionAppliesTo.h new file mode 100644 index 0000000..7faf868 --- /dev/null +++ b/vcits/ivim/RestrictionAppliesTo.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RestrictionAppliesTo_H_ +#define _RestrictionAppliesTo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionAppliesTo { + RestrictionAppliesTo_none = 0, + RestrictionAppliesTo_equippedTransit = 1, + RestrictionAppliesTo_equippedTaxis = 2, + RestrictionAppliesTo_equippedOther = 3, + RestrictionAppliesTo_emissionCompliant = 4, + RestrictionAppliesTo_equippedBicycle = 5, + RestrictionAppliesTo_weightCompliant = 6, + RestrictionAppliesTo_heightCompliant = 7, + RestrictionAppliesTo_pedestrians = 8, + RestrictionAppliesTo_slowMovingPersons = 9, + RestrictionAppliesTo_wheelchairUsers = 10, + RestrictionAppliesTo_visualDisabilities = 11, + RestrictionAppliesTo_audioDisabilities = 12, + RestrictionAppliesTo_otherUnknownDisabilities = 13 + /* + * Enumeration is extensible + */ +} e_RestrictionAppliesTo; + +/* RestrictionAppliesTo */ +typedef long RestrictionAppliesTo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo; +extern const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1; +asn_struct_free_f RestrictionAppliesTo_free; +asn_struct_print_f RestrictionAppliesTo_print; +asn_constr_check_f RestrictionAppliesTo_constraint; +ber_type_decoder_f RestrictionAppliesTo_decode_ber; +der_type_encoder_f RestrictionAppliesTo_encode_der; +xer_type_decoder_f RestrictionAppliesTo_decode_xer; +xer_type_encoder_f RestrictionAppliesTo_encode_xer; +oer_type_decoder_f RestrictionAppliesTo_decode_oer; +oer_type_encoder_f RestrictionAppliesTo_encode_oer; +per_type_decoder_f RestrictionAppliesTo_decode_uper; +per_type_encoder_f RestrictionAppliesTo_encode_uper; +per_type_decoder_f RestrictionAppliesTo_decode_aper; +per_type_encoder_f RestrictionAppliesTo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionAppliesTo_H_ */ +#include diff --git a/vcits/ivim/RestrictionClassAssignment.h b/vcits/ivim/RestrictionClassAssignment.h new file mode 100644 index 0000000..020bcec --- /dev/null +++ b/vcits/ivim/RestrictionClassAssignment.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RestrictionClassAssignment_H_ +#define _RestrictionClassAssignment_H_ + + +#include + +/* Including external dependencies */ +#include "RestrictionClassID.h" +#include "RestrictionUserTypeList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassAssignment */ +typedef struct RestrictionClassAssignment { + RestrictionClassID_t id; + RestrictionUserTypeList_t users; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassAssignment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassAssignment_H_ */ +#include diff --git a/vcits/ivim/RestrictionClassID.h b/vcits/ivim/RestrictionClassID.h new file mode 100644 index 0000000..141dfb8 --- /dev/null +++ b/vcits/ivim/RestrictionClassID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RestrictionClassID_H_ +#define _RestrictionClassID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassID */ +typedef long RestrictionClassID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassID; +asn_struct_free_f RestrictionClassID_free; +asn_struct_print_f RestrictionClassID_print; +asn_constr_check_f RestrictionClassID_constraint; +ber_type_decoder_f RestrictionClassID_decode_ber; +der_type_encoder_f RestrictionClassID_encode_der; +xer_type_decoder_f RestrictionClassID_decode_xer; +xer_type_encoder_f RestrictionClassID_encode_xer; +oer_type_decoder_f RestrictionClassID_decode_oer; +oer_type_encoder_f RestrictionClassID_encode_oer; +per_type_decoder_f RestrictionClassID_decode_uper; +per_type_encoder_f RestrictionClassID_encode_uper; +per_type_decoder_f RestrictionClassID_decode_aper; +per_type_encoder_f RestrictionClassID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassID_H_ */ +#include diff --git a/vcits/ivim/RestrictionClassList.h b/vcits/ivim/RestrictionClassList.h new file mode 100644 index 0000000..0bd5fad --- /dev/null +++ b/vcits/ivim/RestrictionClassList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RestrictionClassList_H_ +#define _RestrictionClassList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionClassAssignment; + +/* RestrictionClassList */ +typedef struct RestrictionClassList { + A_SEQUENCE_OF(struct RestrictionClassAssignment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassList_H_ */ +#include diff --git a/vcits/ivim/RestrictionUserType-addGrpC.h b/vcits/ivim/RestrictionUserType-addGrpC.h new file mode 100644 index 0000000..8dad3f0 --- /dev/null +++ b/vcits/ivim/RestrictionUserType-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RestrictionUserType_addGrpC_H_ +#define _RestrictionUserType_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "EmissionType.h" +#include "FuelType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionUserType-addGrpC */ +typedef struct RestrictionUserType_addGrpC { + EmissionType_t *emission; /* OPTIONAL */ + FuelType_t *fuel; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_addGrpC_H_ */ +#include diff --git a/vcits/ivim/RestrictionUserType.h b/vcits/ivim/RestrictionUserType.h new file mode 100644 index 0000000..ed5b989 --- /dev/null +++ b/vcits/ivim/RestrictionUserType.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RestrictionUserType_H_ +#define _RestrictionUserType_H_ + + +#include + +/* Including external dependencies */ +#include "RestrictionAppliesTo.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionUserType_PR { + RestrictionUserType_PR_NOTHING, /* No components present */ + RestrictionUserType_PR_basicType, + RestrictionUserType_PR_regional + /* Extensions may appear below */ + +} RestrictionUserType_PR; + +/* Forward declarations */ +struct Reg_RestrictionUserType; + +/* RestrictionUserType */ +typedef struct RestrictionUserType { + RestrictionUserType_PR present; + union RestrictionUserType_u { + RestrictionAppliesTo_t basicType; + struct RestrictionUserType__regional { + A_SEQUENCE_OF(struct Reg_RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType; +extern asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_1[2]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_H_ */ +#include diff --git a/vcits/ivim/RestrictionUserTypeList.h b/vcits/ivim/RestrictionUserTypeList.h new file mode 100644 index 0000000..663ef6b --- /dev/null +++ b/vcits/ivim/RestrictionUserTypeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RestrictionUserTypeList_H_ +#define _RestrictionUserTypeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionUserType; + +/* RestrictionUserTypeList */ +typedef struct RestrictionUserTypeList { + A_SEQUENCE_OF(struct RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserTypeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserTypeList_H_ */ +#include diff --git a/vcits/ivim/ResultFin.h b/vcits/ivim/ResultFin.h new file mode 100644 index 0000000..d34fd3e --- /dev/null +++ b/vcits/ivim/ResultFin.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ResultFin_H_ +#define _ResultFin_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ResultFin */ +typedef OCTET_STRING_t ResultFin_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ResultFin_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ResultFin; +asn_struct_free_f ResultFin_free; +asn_struct_print_f ResultFin_print; +asn_constr_check_f ResultFin_constraint; +ber_type_decoder_f ResultFin_decode_ber; +der_type_encoder_f ResultFin_encode_der; +xer_type_decoder_f ResultFin_decode_xer; +xer_type_encoder_f ResultFin_encode_xer; +oer_type_decoder_f ResultFin_decode_oer; +oer_type_encoder_f ResultFin_encode_oer; +per_type_decoder_f ResultFin_decode_uper; +per_type_encoder_f ResultFin_encode_uper; +per_type_decoder_f ResultFin_decode_aper; +per_type_encoder_f ResultFin_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResultFin_H_ */ +#include diff --git a/vcits/ivim/ResultOp.h b/vcits/ivim/ResultOp.h new file mode 100644 index 0000000..9952abe --- /dev/null +++ b/vcits/ivim/ResultOp.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ResultOp_H_ +#define _ResultOp_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ResultOp { + ResultOp_correctTransaction = 0, + ResultOp_obeStatusNotAccepted = 1, + ResultOp_equipmentStatusNotAccepted = 2, + ResultOp_contractNotInWhiteList = 3, + ResultOp_contractIdentifierInBlackList = 4, + ResultOp_contractIdentifierNotCorrect = 5, + ResultOp_expiredContract = 6, + ResultOp_contractRestrictionsNotFulfilled = 7, + ResultOp_claimedVehicleCharacteristicsNotValid = 8, + ResultOp_vehicleClassAuthenticationFailed = 9, + ResultOp_entryVehicleClassDifferentFromExitVehicleClass = 10, + ResultOp_entryReceiptMissing = 11, + ResultOp_entryReceiptNotValid = 12, + ResultOp_entryTollStationNotValid = 13, + ResultOp_equipmentNotCertified = 14, + ResultOp_timeDifference = 15, + ResultOp_accessCredentialsNotAccepted = 16, + ResultOp_contractAuthenticatorNotAccepted = 17, + ResultOp_receiptAuthenticatorNotAccepted = 18, + ResultOp_claimedVehicleCharacteristicsMissing = 19, + ResultOp_paymentMeansNotAccepted = 20, + ResultOp_paymentAuthenticatorNotAccepted = 21, + ResultOp_paymentMeansInBlackList = 22, + ResultOp_paymentMeansNotCorrect = 23, + ResultOp_expiredPaymentMeans = 24, + ResultOp_paymentMeansRestrictionsNotFulfilled = 25 +} e_ResultOp; + +/* ResultOp */ +typedef long ResultOp_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ResultOp_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ResultOp; +asn_struct_free_f ResultOp_free; +asn_struct_print_f ResultOp_print; +asn_constr_check_f ResultOp_constraint; +ber_type_decoder_f ResultOp_decode_ber; +der_type_encoder_f ResultOp_encode_der; +xer_type_decoder_f ResultOp_decode_xer; +xer_type_encoder_f ResultOp_encode_xer; +oer_type_decoder_f ResultOp_decode_oer; +oer_type_encoder_f ResultOp_encode_oer; +per_type_decoder_f ResultOp_decode_uper; +per_type_encoder_f ResultOp_encode_uper; +per_type_decoder_f ResultOp_decode_aper; +per_type_encoder_f ResultOp_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResultOp_H_ */ +#include diff --git a/vcits/ivim/RoadConfigurationContainer.h b/vcits/ivim/RoadConfigurationContainer.h new file mode 100644 index 0000000..5cb2ced --- /dev/null +++ b/vcits/ivim/RoadConfigurationContainer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RoadConfigurationContainer_H_ +#define _RoadConfigurationContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RccPart; + +/* RoadConfigurationContainer */ +typedef struct RoadConfigurationContainer { + A_SEQUENCE_OF(struct RccPart) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadConfigurationContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadConfigurationContainer; +extern asn_SET_OF_specifics_t asn_SPC_RoadConfigurationContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadConfigurationContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadConfigurationContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadConfigurationContainer_H_ */ +#include diff --git a/vcits/ivim/RoadLaneSetList.h b/vcits/ivim/RoadLaneSetList.h new file mode 100644 index 0000000..c9f3d1b --- /dev/null +++ b/vcits/ivim/RoadLaneSetList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RoadLaneSetList_H_ +#define _RoadLaneSetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* RoadLaneSetList */ +typedef struct RoadLaneSetList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadLaneSetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList; +extern asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadLaneSetList_H_ */ +#include diff --git a/vcits/ivim/RoadRegulatorID.h b/vcits/ivim/RoadRegulatorID.h new file mode 100644 index 0000000..dc4249b --- /dev/null +++ b/vcits/ivim/RoadRegulatorID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RoadRegulatorID_H_ +#define _RoadRegulatorID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadRegulatorID */ +typedef long RoadRegulatorID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID; +asn_struct_free_f RoadRegulatorID_free; +asn_struct_print_f RoadRegulatorID_print; +asn_constr_check_f RoadRegulatorID_constraint; +ber_type_decoder_f RoadRegulatorID_decode_ber; +der_type_encoder_f RoadRegulatorID_encode_der; +xer_type_decoder_f RoadRegulatorID_decode_xer; +xer_type_encoder_f RoadRegulatorID_encode_xer; +oer_type_decoder_f RoadRegulatorID_decode_oer; +oer_type_encoder_f RoadRegulatorID_encode_oer; +per_type_decoder_f RoadRegulatorID_decode_uper; +per_type_encoder_f RoadRegulatorID_encode_uper; +per_type_decoder_f RoadRegulatorID_decode_aper; +per_type_encoder_f RoadRegulatorID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadRegulatorID_H_ */ +#include diff --git a/vcits/ivim/RoadSegment.h b/vcits/ivim/RoadSegment.h new file mode 100644 index 0000000..5e28e35 --- /dev/null +++ b/vcits/ivim/RoadSegment.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RoadSegment_H_ +#define _RoadSegment_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "RoadSegmentReferenceID.h" +#include "MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "RoadLaneSetList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct Reg_RoadSegment; + +/* RoadSegment */ +typedef struct RoadSegment { + DescriptiveName_t *name; /* OPTIONAL */ + RoadSegmentReferenceID_t id; + MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + RoadLaneSetList_t roadLaneSet; + struct RoadSegment__regional { + A_SEQUENCE_OF(struct Reg_RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegment_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegment_H_ */ +#include diff --git a/vcits/ivim/RoadSegmentID.h b/vcits/ivim/RoadSegmentID.h new file mode 100644 index 0000000..ccfb590 --- /dev/null +++ b/vcits/ivim/RoadSegmentID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RoadSegmentID_H_ +#define _RoadSegmentID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentID */ +typedef long RoadSegmentID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentID; +asn_struct_free_f RoadSegmentID_free; +asn_struct_print_f RoadSegmentID_print; +asn_constr_check_f RoadSegmentID_constraint; +ber_type_decoder_f RoadSegmentID_decode_ber; +der_type_encoder_f RoadSegmentID_encode_der; +xer_type_decoder_f RoadSegmentID_decode_xer; +xer_type_encoder_f RoadSegmentID_encode_xer; +oer_type_decoder_f RoadSegmentID_decode_oer; +oer_type_encoder_f RoadSegmentID_encode_oer; +per_type_decoder_f RoadSegmentID_decode_uper; +per_type_encoder_f RoadSegmentID_encode_uper; +per_type_decoder_f RoadSegmentID_decode_aper; +per_type_encoder_f RoadSegmentID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentID_H_ */ +#include diff --git a/vcits/ivim/RoadSegmentList.h b/vcits/ivim/RoadSegmentList.h new file mode 100644 index 0000000..da58fed --- /dev/null +++ b/vcits/ivim/RoadSegmentList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RoadSegmentList_H_ +#define _RoadSegmentList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RoadSegment; + +/* RoadSegmentList */ +typedef struct RoadSegmentList { + A_SEQUENCE_OF(struct RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentList; +extern asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentList_H_ */ +#include diff --git a/vcits/ivim/RoadSegmentReferenceID.h b/vcits/ivim/RoadSegmentReferenceID.h new file mode 100644 index 0000000..eca8cea --- /dev/null +++ b/vcits/ivim/RoadSegmentReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RoadSegmentReferenceID_H_ +#define _RoadSegmentReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "RoadSegmentID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentReferenceID */ +typedef struct RoadSegmentReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + RoadSegmentID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentReferenceID_H_ */ +#include diff --git a/vcits/ivim/RoadSignCodes.h b/vcits/ivim/RoadSignCodes.h new file mode 100644 index 0000000..e81d58f --- /dev/null +++ b/vcits/ivim/RoadSignCodes.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RoadSignCodes_H_ +#define _RoadSignCodes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RSCode; + +/* RoadSignCodes */ +typedef struct RoadSignCodes { + A_SEQUENCE_OF(struct RSCode) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSignCodes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSignCodes; +extern asn_SET_OF_specifics_t asn_SPC_RoadSignCodes_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSignCodes_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadSignCodes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSignCodes_H_ */ +#include diff --git a/vcits/ivim/RoadSurfaceContainer.h b/vcits/ivim/RoadSurfaceContainer.h new file mode 100644 index 0000000..f58c89c --- /dev/null +++ b/vcits/ivim/RoadSurfaceContainer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RoadSurfaceContainer_H_ +#define _RoadSurfaceContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RscPart; + +/* RoadSurfaceContainer */ +typedef struct RoadSurfaceContainer { + A_SEQUENCE_OF(struct RscPart) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSurfaceContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSurfaceContainer; +extern asn_SET_OF_specifics_t asn_SPC_RoadSurfaceContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSurfaceContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadSurfaceContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSurfaceContainer_H_ */ +#include diff --git a/vcits/ivim/RoadSurfaceDynamicCharacteristics.h b/vcits/ivim/RoadSurfaceDynamicCharacteristics.h new file mode 100644 index 0000000..ffb98b1 --- /dev/null +++ b/vcits/ivim/RoadSurfaceDynamicCharacteristics.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RoadSurfaceDynamicCharacteristics_H_ +#define _RoadSurfaceDynamicCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "Condition.h" +#include "IVI_Temperature.h" +#include "Depth.h" +#include "TreatmentType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSurfaceDynamicCharacteristics */ +typedef struct RoadSurfaceDynamicCharacteristics { + Condition_t condition; + IVI_Temperature_t temperature; + Depth_t iceOrWaterDepth; + TreatmentType_t treatment; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSurfaceDynamicCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSurfaceDynamicCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSurfaceDynamicCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSurfaceDynamicCharacteristics_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSurfaceDynamicCharacteristics_H_ */ +#include diff --git a/vcits/ivim/RoadSurfaceStaticCharacteristics.h b/vcits/ivim/RoadSurfaceStaticCharacteristics.h new file mode 100644 index 0000000..0098a1f --- /dev/null +++ b/vcits/ivim/RoadSurfaceStaticCharacteristics.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RoadSurfaceStaticCharacteristics_H_ +#define _RoadSurfaceStaticCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "FrictionCoefficient.h" +#include "MaterialType.h" +#include "WearLevel.h" +#include "BankingAngle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSurfaceStaticCharacteristics */ +typedef struct RoadSurfaceStaticCharacteristics { + FrictionCoefficient_t frictionCoefficient; + MaterialType_t material; + WearLevel_t wear; + BankingAngle_t avBankingAngle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSurfaceStaticCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSurfaceStaticCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSurfaceStaticCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSurfaceStaticCharacteristics_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSurfaceStaticCharacteristics_H_ */ +#include diff --git a/vcits/ivim/RoadType.h b/vcits/ivim/RoadType.h new file mode 100644 index 0000000..a6b4e8d --- /dev/null +++ b/vcits/ivim/RoadType.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RoadType_H_ +#define _RoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadType { + RoadType_urban_NoStructuralSeparationToOppositeLanes = 0, + RoadType_urban_WithStructuralSeparationToOppositeLanes = 1, + RoadType_nonUrban_NoStructuralSeparationToOppositeLanes = 2, + RoadType_nonUrban_WithStructuralSeparationToOppositeLanes = 3 +} e_RoadType; + +/* RoadType */ +typedef long RoadType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadType; +extern const asn_INTEGER_specifics_t asn_SPC_RoadType_specs_1; +asn_struct_free_f RoadType_free; +asn_struct_print_f RoadType_print; +asn_constr_check_f RoadType_constraint; +ber_type_decoder_f RoadType_decode_ber; +der_type_encoder_f RoadType_encode_der; +xer_type_decoder_f RoadType_decode_xer; +xer_type_encoder_f RoadType_encode_xer; +oer_type_decoder_f RoadType_decode_oer; +oer_type_encoder_f RoadType_encode_oer; +per_type_decoder_f RoadType_decode_uper; +per_type_encoder_f RoadType_encode_uper; +per_type_decoder_f RoadType_decode_aper; +per_type_encoder_f RoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadType_H_ */ +#include diff --git a/vcits/ivim/RoadwayCrownAngle.h b/vcits/ivim/RoadwayCrownAngle.h new file mode 100644 index 0000000..63e5e09 --- /dev/null +++ b/vcits/ivim/RoadwayCrownAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RoadwayCrownAngle_H_ +#define _RoadwayCrownAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadwayCrownAngle */ +typedef long RoadwayCrownAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle; +asn_struct_free_f RoadwayCrownAngle_free; +asn_struct_print_f RoadwayCrownAngle_print; +asn_constr_check_f RoadwayCrownAngle_constraint; +ber_type_decoder_f RoadwayCrownAngle_decode_ber; +der_type_encoder_f RoadwayCrownAngle_encode_der; +xer_type_decoder_f RoadwayCrownAngle_decode_xer; +xer_type_encoder_f RoadwayCrownAngle_encode_xer; +oer_type_decoder_f RoadwayCrownAngle_decode_oer; +oer_type_encoder_f RoadwayCrownAngle_encode_oer; +per_type_decoder_f RoadwayCrownAngle_decode_uper; +per_type_encoder_f RoadwayCrownAngle_encode_uper; +per_type_decoder_f RoadwayCrownAngle_decode_aper; +per_type_encoder_f RoadwayCrownAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadwayCrownAngle_H_ */ +#include diff --git a/vcits/ivim/RoadworksSubCauseCode.h b/vcits/ivim/RoadworksSubCauseCode.h new file mode 100644 index 0000000..621efdd --- /dev/null +++ b/vcits/ivim/RoadworksSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RoadworksSubCauseCode_H_ +#define _RoadworksSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadworksSubCauseCode { + RoadworksSubCauseCode_unavailable = 0, + RoadworksSubCauseCode_majorRoadworks = 1, + RoadworksSubCauseCode_roadMarkingWork = 2, + RoadworksSubCauseCode_slowMovingRoadMaintenance = 3, + RoadworksSubCauseCode_shortTermStationaryRoadworks = 4, + RoadworksSubCauseCode_streetCleaning = 5, + RoadworksSubCauseCode_winterService = 6 +} e_RoadworksSubCauseCode; + +/* RoadworksSubCauseCode */ +typedef long RoadworksSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode; +asn_struct_free_f RoadworksSubCauseCode_free; +asn_struct_print_f RoadworksSubCauseCode_print; +asn_constr_check_f RoadworksSubCauseCode_constraint; +ber_type_decoder_f RoadworksSubCauseCode_decode_ber; +der_type_encoder_f RoadworksSubCauseCode_encode_der; +xer_type_decoder_f RoadworksSubCauseCode_decode_xer; +xer_type_encoder_f RoadworksSubCauseCode_encode_xer; +oer_type_decoder_f RoadworksSubCauseCode_decode_oer; +oer_type_encoder_f RoadworksSubCauseCode_encode_oer; +per_type_decoder_f RoadworksSubCauseCode_decode_uper; +per_type_encoder_f RoadworksSubCauseCode_encode_uper; +per_type_decoder_f RoadworksSubCauseCode_decode_aper; +per_type_encoder_f RoadworksSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadworksSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/RscPart.h b/vcits/ivim/RscPart.h new file mode 100644 index 0000000..595431f --- /dev/null +++ b/vcits/ivim/RscPart.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _RscPart_H_ +#define _RscPart_H_ + + +#include + +/* Including external dependencies */ +#include "ZoneIds.h" +#include "Direction.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ZoneIds; +struct RoadSurfaceStaticCharacteristics; +struct RoadSurfaceDynamicCharacteristics; + +/* RscPart */ +typedef struct RscPart { + struct ZoneIds *detectionZoneIds; /* OPTIONAL */ + ZoneIds_t relevanceZoneIds; + Direction_t *direction; /* OPTIONAL */ + struct RoadSurfaceStaticCharacteristics *roadSurfaceStaticCharacteristics; /* OPTIONAL */ + struct RoadSurfaceDynamicCharacteristics *roadSurfaceDynamicCharacteristics; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RscPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RscPart; +extern asn_SEQUENCE_specifics_t asn_SPC_RscPart_specs_1; +extern asn_TYPE_member_t asn_MBR_RscPart_1[5]; +extern asn_per_constraints_t asn_PER_type_RscPart_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RscPart_H_ */ +#include diff --git a/vcits/ivim/SPAT.h b/vcits/ivim/SPAT.h new file mode 100644 index 0000000..8810c20 --- /dev/null +++ b/vcits/ivim/SPAT.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SPAT_H_ +#define _SPAT_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DescriptiveName.h" +#include "IntersectionStateList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SPAT; + +/* SPAT */ +typedef struct SPAT { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionStateList_t intersections; + struct SPAT__regional { + A_SEQUENCE_OF(struct Reg_SPAT) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SPAT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SPAT; + +#ifdef __cplusplus +} +#endif + +#endif /* _SPAT_H_ */ +#include diff --git a/vcits/ivim/SaeAutomationLevel.h b/vcits/ivim/SaeAutomationLevel.h new file mode 100644 index 0000000..82e061c --- /dev/null +++ b/vcits/ivim/SaeAutomationLevel.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SaeAutomationLevel_H_ +#define _SaeAutomationLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SaeAutomationLevel */ +typedef long SaeAutomationLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SaeAutomationLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SaeAutomationLevel; +asn_struct_free_f SaeAutomationLevel_free; +asn_struct_print_f SaeAutomationLevel_print; +asn_constr_check_f SaeAutomationLevel_constraint; +ber_type_decoder_f SaeAutomationLevel_decode_ber; +der_type_encoder_f SaeAutomationLevel_encode_der; +xer_type_decoder_f SaeAutomationLevel_decode_xer; +xer_type_encoder_f SaeAutomationLevel_encode_xer; +oer_type_decoder_f SaeAutomationLevel_decode_oer; +oer_type_encoder_f SaeAutomationLevel_encode_oer; +per_type_decoder_f SaeAutomationLevel_decode_uper; +per_type_encoder_f SaeAutomationLevel_encode_uper; +per_type_decoder_f SaeAutomationLevel_decode_aper; +per_type_encoder_f SaeAutomationLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SaeAutomationLevel_H_ */ +#include diff --git a/vcits/ivim/SaeAutomationLevels.h b/vcits/ivim/SaeAutomationLevels.h new file mode 100644 index 0000000..24b4bba --- /dev/null +++ b/vcits/ivim/SaeAutomationLevels.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SaeAutomationLevels_H_ +#define _SaeAutomationLevels_H_ + + +#include + +/* Including external dependencies */ +#include "SaeAutomationLevel.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SaeAutomationLevels */ +typedef struct SaeAutomationLevels { + A_SEQUENCE_OF(SaeAutomationLevel_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SaeAutomationLevels_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SaeAutomationLevels; +extern asn_SET_OF_specifics_t asn_SPC_SaeAutomationLevels_specs_1; +extern asn_TYPE_member_t asn_MBR_SaeAutomationLevels_1[1]; +extern asn_per_constraints_t asn_PER_type_SaeAutomationLevels_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SaeAutomationLevels_H_ */ +#include diff --git a/vcits/ivim/Scale-B12.h b/vcits/ivim/Scale-B12.h new file mode 100644 index 0000000..4b0ac35 --- /dev/null +++ b/vcits/ivim/Scale-B12.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Scale_B12_H_ +#define _Scale_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Scale-B12 */ +typedef long Scale_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Scale_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Scale_B12; +asn_struct_free_f Scale_B12_free; +asn_struct_print_f Scale_B12_print; +asn_constr_check_f Scale_B12_constraint; +ber_type_decoder_f Scale_B12_decode_ber; +der_type_encoder_f Scale_B12_encode_der; +xer_type_decoder_f Scale_B12_decode_xer; +xer_type_encoder_f Scale_B12_encode_xer; +oer_type_decoder_f Scale_B12_decode_oer; +oer_type_encoder_f Scale_B12_encode_oer; +per_type_decoder_f Scale_B12_decode_uper; +per_type_encoder_f Scale_B12_encode_uper; +per_type_decoder_f Scale_B12_decode_aper; +per_type_encoder_f Scale_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Scale_B12_H_ */ +#include diff --git a/vcits/ivim/Segment.h b/vcits/ivim/Segment.h new file mode 100644 index 0000000..38edaf3 --- /dev/null +++ b/vcits/ivim/Segment.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Segment_H_ +#define _Segment_H_ + + +#include + +/* Including external dependencies */ +#include "PolygonalLine.h" +#include "IviLaneWidth.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Segment */ +typedef struct Segment { + PolygonalLine_t line; + IviLaneWidth_t *laneWidth; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Segment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Segment; +extern asn_SEQUENCE_specifics_t asn_SPC_Segment_specs_1; +extern asn_TYPE_member_t asn_MBR_Segment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Segment_H_ */ +#include diff --git a/vcits/ivim/SegmentAttributeXY.h b/vcits/ivim/SegmentAttributeXY.h new file mode 100644 index 0000000..feb4475 --- /dev/null +++ b/vcits/ivim/SegmentAttributeXY.h @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SegmentAttributeXY_H_ +#define _SegmentAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SegmentAttributeXY { + SegmentAttributeXY_reserved = 0, + SegmentAttributeXY_doNotBlock = 1, + SegmentAttributeXY_whiteLine = 2, + SegmentAttributeXY_mergingLaneLeft = 3, + SegmentAttributeXY_mergingLaneRight = 4, + SegmentAttributeXY_curbOnLeft = 5, + SegmentAttributeXY_curbOnRight = 6, + SegmentAttributeXY_loadingzoneOnLeft = 7, + SegmentAttributeXY_loadingzoneOnRight = 8, + SegmentAttributeXY_turnOutPointOnLeft = 9, + SegmentAttributeXY_turnOutPointOnRight = 10, + SegmentAttributeXY_adjacentParkingOnLeft = 11, + SegmentAttributeXY_adjacentParkingOnRight = 12, + SegmentAttributeXY_adjacentBikeLaneOnLeft = 13, + SegmentAttributeXY_adjacentBikeLaneOnRight = 14, + SegmentAttributeXY_sharedBikeLane = 15, + SegmentAttributeXY_bikeBoxInFront = 16, + SegmentAttributeXY_transitStopOnLeft = 17, + SegmentAttributeXY_transitStopOnRight = 18, + SegmentAttributeXY_transitStopInLane = 19, + SegmentAttributeXY_sharedWithTrackedVehicle = 20, + SegmentAttributeXY_safeIsland = 21, + SegmentAttributeXY_lowCurbsPresent = 22, + SegmentAttributeXY_rumbleStripPresent = 23, + SegmentAttributeXY_audibleSignalingPresent = 24, + SegmentAttributeXY_adaptiveTimingPresent = 25, + SegmentAttributeXY_rfSignalRequestPresent = 26, + SegmentAttributeXY_partialCurbIntrusion = 27, + SegmentAttributeXY_taperToLeft = 28, + SegmentAttributeXY_taperToRight = 29, + SegmentAttributeXY_taperToCenterLine = 30, + SegmentAttributeXY_parallelParking = 31, + SegmentAttributeXY_headInParking = 32, + SegmentAttributeXY_freeParking = 33, + SegmentAttributeXY_timeRestrictionsOnParking = 34, + SegmentAttributeXY_costToPark = 35, + SegmentAttributeXY_midBlockCurbPresent = 36, + SegmentAttributeXY_unEvenPavementPresent = 37 + /* + * Enumeration is extensible + */ +} e_SegmentAttributeXY; + +/* SegmentAttributeXY */ +typedef long SegmentAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1; +asn_struct_free_f SegmentAttributeXY_free; +asn_struct_print_f SegmentAttributeXY_print; +asn_constr_check_f SegmentAttributeXY_constraint; +ber_type_decoder_f SegmentAttributeXY_decode_ber; +der_type_encoder_f SegmentAttributeXY_encode_der; +xer_type_decoder_f SegmentAttributeXY_decode_xer; +xer_type_encoder_f SegmentAttributeXY_encode_xer; +oer_type_decoder_f SegmentAttributeXY_decode_oer; +oer_type_encoder_f SegmentAttributeXY_encode_oer; +per_type_decoder_f SegmentAttributeXY_decode_uper; +per_type_encoder_f SegmentAttributeXY_encode_uper; +per_type_decoder_f SegmentAttributeXY_decode_aper; +per_type_encoder_f SegmentAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXY_H_ */ +#include diff --git a/vcits/ivim/SegmentAttributeXYList.h b/vcits/ivim/SegmentAttributeXYList.h new file mode 100644 index 0000000..190e6d7 --- /dev/null +++ b/vcits/ivim/SegmentAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SegmentAttributeXYList_H_ +#define _SegmentAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "SegmentAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SegmentAttributeXYList */ +typedef struct SegmentAttributeXYList { + A_SEQUENCE_OF(SegmentAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SegmentAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXYList_H_ */ +#include diff --git a/vcits/ivim/SemiAxisLength.h b/vcits/ivim/SemiAxisLength.h new file mode 100644 index 0000000..a8e1632 --- /dev/null +++ b/vcits/ivim/SemiAxisLength.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SemiAxisLength_H_ +#define _SemiAxisLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SemiAxisLength { + SemiAxisLength_oneCentimeter = 1, + SemiAxisLength_outOfRange = 4094, + SemiAxisLength_unavailable = 4095 +} e_SemiAxisLength; + +/* SemiAxisLength */ +typedef long SemiAxisLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiAxisLength; +asn_struct_free_f SemiAxisLength_free; +asn_struct_print_f SemiAxisLength_print; +asn_constr_check_f SemiAxisLength_constraint; +ber_type_decoder_f SemiAxisLength_decode_ber; +der_type_encoder_f SemiAxisLength_encode_der; +xer_type_decoder_f SemiAxisLength_decode_xer; +xer_type_encoder_f SemiAxisLength_encode_xer; +oer_type_decoder_f SemiAxisLength_decode_oer; +oer_type_encoder_f SemiAxisLength_encode_oer; +per_type_decoder_f SemiAxisLength_decode_uper; +per_type_encoder_f SemiAxisLength_encode_uper; +per_type_decoder_f SemiAxisLength_decode_aper; +per_type_encoder_f SemiAxisLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiAxisLength_H_ */ +#include diff --git a/vcits/ivim/SemiMajorAxisAccuracy.h b/vcits/ivim/SemiMajorAxisAccuracy.h new file mode 100644 index 0000000..eceee39 --- /dev/null +++ b/vcits/ivim/SemiMajorAxisAccuracy.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SemiMajorAxisAccuracy_H_ +#define _SemiMajorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisAccuracy */ +typedef long SemiMajorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy; +asn_struct_free_f SemiMajorAxisAccuracy_free; +asn_struct_print_f SemiMajorAxisAccuracy_print; +asn_constr_check_f SemiMajorAxisAccuracy_constraint; +ber_type_decoder_f SemiMajorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMajorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMajorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMajorAxisAccuracy_encode_xer; +oer_type_decoder_f SemiMajorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMajorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMajorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMajorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisAccuracy_H_ */ +#include diff --git a/vcits/ivim/SemiMajorAxisOrientation.h b/vcits/ivim/SemiMajorAxisOrientation.h new file mode 100644 index 0000000..1b2d4f1 --- /dev/null +++ b/vcits/ivim/SemiMajorAxisOrientation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SemiMajorAxisOrientation_H_ +#define _SemiMajorAxisOrientation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisOrientation */ +typedef long SemiMajorAxisOrientation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation; +asn_struct_free_f SemiMajorAxisOrientation_free; +asn_struct_print_f SemiMajorAxisOrientation_print; +asn_constr_check_f SemiMajorAxisOrientation_constraint; +ber_type_decoder_f SemiMajorAxisOrientation_decode_ber; +der_type_encoder_f SemiMajorAxisOrientation_encode_der; +xer_type_decoder_f SemiMajorAxisOrientation_decode_xer; +xer_type_encoder_f SemiMajorAxisOrientation_encode_xer; +oer_type_decoder_f SemiMajorAxisOrientation_decode_oer; +oer_type_encoder_f SemiMajorAxisOrientation_encode_oer; +per_type_decoder_f SemiMajorAxisOrientation_decode_uper; +per_type_encoder_f SemiMajorAxisOrientation_encode_uper; +per_type_decoder_f SemiMajorAxisOrientation_decode_aper; +per_type_encoder_f SemiMajorAxisOrientation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisOrientation_H_ */ +#include diff --git a/vcits/ivim/SemiMinorAxisAccuracy.h b/vcits/ivim/SemiMinorAxisAccuracy.h new file mode 100644 index 0000000..a7af8b2 --- /dev/null +++ b/vcits/ivim/SemiMinorAxisAccuracy.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SemiMinorAxisAccuracy_H_ +#define _SemiMinorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMinorAxisAccuracy */ +typedef long SemiMinorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy; +asn_struct_free_f SemiMinorAxisAccuracy_free; +asn_struct_print_f SemiMinorAxisAccuracy_print; +asn_constr_check_f SemiMinorAxisAccuracy_constraint; +ber_type_decoder_f SemiMinorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMinorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMinorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMinorAxisAccuracy_encode_xer; +oer_type_decoder_f SemiMinorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMinorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMinorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMinorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMinorAxisAccuracy_H_ */ +#include diff --git a/vcits/ivim/SequenceNumber.h b/vcits/ivim/SequenceNumber.h new file mode 100644 index 0000000..92ad6a8 --- /dev/null +++ b/vcits/ivim/SequenceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SequenceNumber_H_ +#define _SequenceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SequenceNumber */ +typedef long SequenceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SequenceNumber; +asn_struct_free_f SequenceNumber_free; +asn_struct_print_f SequenceNumber_print; +asn_constr_check_f SequenceNumber_constraint; +ber_type_decoder_f SequenceNumber_decode_ber; +der_type_encoder_f SequenceNumber_encode_der; +xer_type_decoder_f SequenceNumber_decode_xer; +xer_type_encoder_f SequenceNumber_encode_xer; +oer_type_decoder_f SequenceNumber_decode_oer; +oer_type_encoder_f SequenceNumber_encode_oer; +per_type_decoder_f SequenceNumber_decode_uper; +per_type_encoder_f SequenceNumber_encode_uper; +per_type_decoder_f SequenceNumber_decode_aper; +per_type_encoder_f SequenceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SequenceNumber_H_ */ +#include diff --git a/vcits/ivim/ServiceApplicationLimit.h b/vcits/ivim/ServiceApplicationLimit.h new file mode 100644 index 0000000..0787fc2 --- /dev/null +++ b/vcits/ivim/ServiceApplicationLimit.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ServiceApplicationLimit_H_ +#define _ServiceApplicationLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ServiceApplicationLimit { + ServiceApplicationLimit_notForPostpayment = 0, + ServiceApplicationLimit_notForPrepayment = 1, + ServiceApplicationLimit_notForVehicleaccess = 2, + ServiceApplicationLimit_notForFleetcontrol = 3, + ServiceApplicationLimit_issuerSpecificRestriction1 = 4, + ServiceApplicationLimit_issuerSpecificRestriction2 = 5, + ServiceApplicationLimit_issuerSpecificRestriction3 = 6, + ServiceApplicationLimit_issuerSpecificRestriction4 = 7 +} e_ServiceApplicationLimit; + +/* ServiceApplicationLimit */ +typedef BIT_STRING_t ServiceApplicationLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ServiceApplicationLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ServiceApplicationLimit; +asn_struct_free_f ServiceApplicationLimit_free; +asn_struct_print_f ServiceApplicationLimit_print; +asn_constr_check_f ServiceApplicationLimit_constraint; +ber_type_decoder_f ServiceApplicationLimit_decode_ber; +der_type_encoder_f ServiceApplicationLimit_encode_der; +xer_type_decoder_f ServiceApplicationLimit_decode_xer; +xer_type_encoder_f ServiceApplicationLimit_encode_xer; +oer_type_decoder_f ServiceApplicationLimit_decode_oer; +oer_type_encoder_f ServiceApplicationLimit_encode_oer; +per_type_decoder_f ServiceApplicationLimit_decode_uper; +per_type_encoder_f ServiceApplicationLimit_encode_uper; +per_type_decoder_f ServiceApplicationLimit_decode_aper; +per_type_encoder_f ServiceApplicationLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServiceApplicationLimit_H_ */ +#include diff --git a/vcits/ivim/ServiceNumber.h b/vcits/ivim/ServiceNumber.h new file mode 100644 index 0000000..6880439 --- /dev/null +++ b/vcits/ivim/ServiceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ServiceNumber_H_ +#define _ServiceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ServiceNumber */ +typedef BIT_STRING_t ServiceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ServiceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ServiceNumber; +asn_struct_free_f ServiceNumber_free; +asn_struct_print_f ServiceNumber_print; +asn_constr_check_f ServiceNumber_constraint; +ber_type_decoder_f ServiceNumber_decode_ber; +der_type_encoder_f ServiceNumber_encode_der; +xer_type_decoder_f ServiceNumber_decode_xer; +xer_type_encoder_f ServiceNumber_encode_xer; +oer_type_decoder_f ServiceNumber_decode_oer; +oer_type_encoder_f ServiceNumber_encode_oer; +per_type_decoder_f ServiceNumber_decode_uper; +per_type_encoder_f ServiceNumber_encode_uper; +per_type_decoder_f ServiceNumber_decode_aper; +per_type_encoder_f ServiceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServiceNumber_H_ */ +#include diff --git a/vcits/ivim/SessionClass.h b/vcits/ivim/SessionClass.h new file mode 100644 index 0000000..8ace38a --- /dev/null +++ b/vcits/ivim/SessionClass.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SessionClass_H_ +#define _SessionClass_H_ + + +#include + +/* Including external dependencies */ +#include "Int1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SessionClass */ +typedef struct SessionClass { + Int1_t sessionTariffClass; + Int1_t sessionClaimedClass; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SessionClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SessionClass; + +#ifdef __cplusplus +} +#endif + +#endif /* _SessionClass_H_ */ +#include diff --git a/vcits/ivim/SessionLocation.h b/vcits/ivim/SessionLocation.h new file mode 100644 index 0000000..8b820f4 --- /dev/null +++ b/vcits/ivim/SessionLocation.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SessionLocation_H_ +#define _SessionLocation_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SessionLocation */ +typedef struct SessionLocation { + BOOLEAN_t ascendingKilometrage; + long laneCodeNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SessionLocation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SessionLocation; +extern asn_SEQUENCE_specifics_t asn_SPC_SessionLocation_specs_1; +extern asn_TYPE_member_t asn_MBR_SessionLocation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SessionLocation_H_ */ +#include diff --git a/vcits/ivim/SetInstanceRq.h b/vcits/ivim/SetInstanceRq.h new file mode 100644 index 0000000..8f3574f --- /dev/null +++ b/vcits/ivim/SetInstanceRq.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SetInstanceRq_H_ +#define _SetInstanceRq_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _SetInstanceRq_H_ */ +#include diff --git a/vcits/ivim/SetMMIRq.h b/vcits/ivim/SetMMIRq.h new file mode 100644 index 0000000..5a67e70 --- /dev/null +++ b/vcits/ivim/SetMMIRq.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SetMMIRq_H_ +#define _SetMMIRq_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SetMMIRq { + SetMMIRq_ok = 0, + SetMMIRq_nok = 1, + SetMMIRq_contactOperator = 2, + SetMMIRq_noSignalling = 255 +} e_SetMMIRq; + +/* SetMMIRq */ +typedef long SetMMIRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SetMMIRq; +asn_struct_free_f SetMMIRq_free; +asn_struct_print_f SetMMIRq_print; +asn_constr_check_f SetMMIRq_constraint; +ber_type_decoder_f SetMMIRq_decode_ber; +der_type_encoder_f SetMMIRq_encode_der; +xer_type_decoder_f SetMMIRq_decode_xer; +xer_type_encoder_f SetMMIRq_encode_xer; +oer_type_decoder_f SetMMIRq_decode_oer; +oer_type_encoder_f SetMMIRq_encode_oer; +per_type_decoder_f SetMMIRq_decode_uper; +per_type_encoder_f SetMMIRq_encode_uper; +per_type_decoder_f SetMMIRq_decode_aper; +per_type_encoder_f SetMMIRq_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SetMMIRq_H_ */ +#include diff --git a/vcits/ivim/SetStampedRq.h b/vcits/ivim/SetStampedRq.h new file mode 100644 index 0000000..725a3e0 --- /dev/null +++ b/vcits/ivim/SetStampedRq.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SetStampedRq_H_ +#define _SetStampedRq_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _SetStampedRq_H_ */ +#include diff --git a/vcits/ivim/SignalControlZone.h b/vcits/ivim/SignalControlZone.h new file mode 100644 index 0000000..a2cd483 --- /dev/null +++ b/vcits/ivim/SignalControlZone.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalControlZone_H_ +#define _SignalControlZone_H_ + + +#include + +/* Including external dependencies */ +#include "RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalControlZone */ +typedef struct SignalControlZone { + Reg_SignalControlZone_t zone; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalControlZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalControlZone_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalControlZone_H_ */ +#include diff --git a/vcits/ivim/SignalGroupID.h b/vcits/ivim/SignalGroupID.h new file mode 100644 index 0000000..cd0873c --- /dev/null +++ b/vcits/ivim/SignalGroupID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalGroupID_H_ +#define _SignalGroupID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalGroupID */ +typedef long SignalGroupID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SignalGroupID; +asn_struct_free_f SignalGroupID_free; +asn_struct_print_f SignalGroupID_print; +asn_constr_check_f SignalGroupID_constraint; +ber_type_decoder_f SignalGroupID_decode_ber; +der_type_encoder_f SignalGroupID_encode_der; +xer_type_decoder_f SignalGroupID_decode_xer; +xer_type_encoder_f SignalGroupID_encode_xer; +oer_type_decoder_f SignalGroupID_decode_oer; +oer_type_encoder_f SignalGroupID_encode_oer; +per_type_decoder_f SignalGroupID_decode_uper; +per_type_encoder_f SignalGroupID_encode_uper; +per_type_decoder_f SignalGroupID_decode_aper; +per_type_encoder_f SignalGroupID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalGroupID_H_ */ +#include diff --git a/vcits/ivim/SignalHeadLocation.h b/vcits/ivim/SignalHeadLocation.h new file mode 100644 index 0000000..1d82250 --- /dev/null +++ b/vcits/ivim/SignalHeadLocation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalHeadLocation_H_ +#define _SignalHeadLocation_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include "DeltaAltitude.h" +#include "SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalHeadLocation */ +typedef struct SignalHeadLocation { + NodeOffsetPointXY_t nodeXY; + DeltaAltitude_t nodeZ; + SignalGroupID_t signalGroupID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocation_H_ */ +#include diff --git a/vcits/ivim/SignalHeadLocationList.h b/vcits/ivim/SignalHeadLocationList.h new file mode 100644 index 0000000..de0d7b8 --- /dev/null +++ b/vcits/ivim/SignalHeadLocationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalHeadLocationList_H_ +#define _SignalHeadLocationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocation; + +/* SignalHeadLocationList */ +typedef struct SignalHeadLocationList { + A_SEQUENCE_OF(struct SignalHeadLocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList; +extern asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocationList_H_ */ +#include diff --git a/vcits/ivim/SignalRequest.h b/vcits/ivim/SignalRequest.h new file mode 100644 index 0000000..fed0772 --- /dev/null +++ b/vcits/ivim/SignalRequest.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalRequest_H_ +#define _SignalRequest_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionReferenceID.h" +#include "RequestID.h" +#include "PriorityRequestType.h" +#include "IntersectionAccessPoint.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionAccessPoint; +struct Reg_SignalRequest; + +/* SignalRequest */ +typedef struct SignalRequest { + IntersectionReferenceID_t id; + RequestID_t requestID; + PriorityRequestType_t requestType; + IntersectionAccessPoint_t inBoundLane; + struct IntersectionAccessPoint *outBoundLane; /* OPTIONAL */ + struct SignalRequest__regional { + A_SEQUENCE_OF(struct Reg_SignalRequest) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequest_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequest_H_ */ +#include diff --git a/vcits/ivim/SignalRequestList.h b/vcits/ivim/SignalRequestList.h new file mode 100644 index 0000000..c8f6813 --- /dev/null +++ b/vcits/ivim/SignalRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalRequestList_H_ +#define _SignalRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestPackage; + +/* SignalRequestList */ +typedef struct SignalRequestList { + A_SEQUENCE_OF(struct SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestList; +extern asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestList_H_ */ +#include diff --git a/vcits/ivim/SignalRequestMessage.h b/vcits/ivim/SignalRequestMessage.h new file mode 100644 index 0000000..3674645 --- /dev/null +++ b/vcits/ivim/SignalRequestMessage.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalRequestMessage_H_ +#define _SignalRequestMessage_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MsgCount.h" +#include "RequestorDescription.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestList; +struct Reg_SignalRequestMessage; + +/* SignalRequestMessage */ +typedef struct SignalRequestMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + MsgCount_t *sequenceNumber; /* OPTIONAL */ + struct SignalRequestList *requests; /* OPTIONAL */ + RequestorDescription_t requestor; + struct SignalRequestMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestMessage_H_ */ +#include diff --git a/vcits/ivim/SignalRequestPackage.h b/vcits/ivim/SignalRequestPackage.h new file mode 100644 index 0000000..8baa02e --- /dev/null +++ b/vcits/ivim/SignalRequestPackage.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalRequestPackage_H_ +#define _SignalRequestPackage_H_ + + +#include + +/* Including external dependencies */ +#include "SignalRequest.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalRequestPackage; + +/* SignalRequestPackage */ +typedef struct SignalRequestPackage { + SignalRequest_t request; + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + struct SignalRequestPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestPackage_H_ */ +#include diff --git a/vcits/ivim/SignalRequesterInfo.h b/vcits/ivim/SignalRequesterInfo.h new file mode 100644 index 0000000..381b37b --- /dev/null +++ b/vcits/ivim/SignalRequesterInfo.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalRequesterInfo_H_ +#define _SignalRequesterInfo_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleID.h" +#include "RequestID.h" +#include "MsgCount.h" +#include "BasicVehicleRole.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; + +/* SignalRequesterInfo */ +typedef struct SignalRequesterInfo { + VehicleID_t id; + RequestID_t request; + MsgCount_t sequenceNumber; + BasicVehicleRole_t *role; /* OPTIONAL */ + struct RequestorType *typeData; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequesterInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequesterInfo_H_ */ +#include diff --git a/vcits/ivim/SignalStatus.h b/vcits/ivim/SignalStatus.h new file mode 100644 index 0000000..391bb0e --- /dev/null +++ b/vcits/ivim/SignalStatus.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalStatus_H_ +#define _SignalStatus_H_ + + +#include + +/* Including external dependencies */ +#include "MsgCount.h" +#include "IntersectionReferenceID.h" +#include "SignalStatusPackageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatus; + +/* SignalStatus */ +typedef struct SignalStatus { + MsgCount_t sequenceNumber; + IntersectionReferenceID_t id; + SignalStatusPackageList_t sigStatus; + struct SignalStatus__regional { + A_SEQUENCE_OF(struct Reg_SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatus_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatus_H_ */ +#include diff --git a/vcits/ivim/SignalStatusList.h b/vcits/ivim/SignalStatusList.h new file mode 100644 index 0000000..528127d --- /dev/null +++ b/vcits/ivim/SignalStatusList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalStatusList_H_ +#define _SignalStatusList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatus; + +/* SignalStatusList */ +typedef struct SignalStatusList { + A_SEQUENCE_OF(struct SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusList_H_ */ +#include diff --git a/vcits/ivim/SignalStatusMessage.h b/vcits/ivim/SignalStatusMessage.h new file mode 100644 index 0000000..8b31385 --- /dev/null +++ b/vcits/ivim/SignalStatusMessage.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalStatusMessage_H_ +#define _SignalStatusMessage_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MsgCount.h" +#include "SignalStatusList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatusMessage; + +/* SignalStatusMessage */ +typedef struct SignalStatusMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + MsgCount_t *sequenceNumber; /* OPTIONAL */ + SignalStatusList_t status; + struct SignalStatusMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusMessage_H_ */ +#include diff --git a/vcits/ivim/SignalStatusPackage-addGrpC.h b/vcits/ivim/SignalStatusPackage-addGrpC.h new file mode 100644 index 0000000..d89fa88 --- /dev/null +++ b/vcits/ivim/SignalStatusPackage-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalStatusPackage_addGrpC_H_ +#define _SignalStatusPackage_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaTime.h" +#include "RejectedReason.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalStatusPackage-addGrpC */ +typedef struct SignalStatusPackage_addGrpC { + DeltaTime_t *synchToSchedule; /* OPTIONAL */ + RejectedReason_t *rejectedReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_addGrpC_H_ */ +#include diff --git a/vcits/ivim/SignalStatusPackage.h b/vcits/ivim/SignalStatusPackage.h new file mode 100644 index 0000000..9d75941 --- /dev/null +++ b/vcits/ivim/SignalStatusPackage.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalStatusPackage_H_ +#define _SignalStatusPackage_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionAccessPoint.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "PrioritizationResponseStatus.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequesterInfo; +struct IntersectionAccessPoint; +struct Reg_SignalStatusPackage; + +/* SignalStatusPackage */ +typedef struct SignalStatusPackage { + struct SignalRequesterInfo *requester; /* OPTIONAL */ + IntersectionAccessPoint_t inboundOn; + struct IntersectionAccessPoint *outboundOn; /* OPTIONAL */ + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + PrioritizationResponseStatus_t status; + struct SignalStatusPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_H_ */ +#include diff --git a/vcits/ivim/SignalStatusPackageList.h b/vcits/ivim/SignalStatusPackageList.h new file mode 100644 index 0000000..fdd188e --- /dev/null +++ b/vcits/ivim/SignalStatusPackageList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalStatusPackageList_H_ +#define _SignalStatusPackageList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatusPackage; + +/* SignalStatusPackageList */ +typedef struct SignalStatusPackageList { + A_SEQUENCE_OF(struct SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackageList_H_ */ +#include diff --git a/vcits/ivim/SignalViolationSubCauseCode.h b/vcits/ivim/SignalViolationSubCauseCode.h new file mode 100644 index 0000000..30a6430 --- /dev/null +++ b/vcits/ivim/SignalViolationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignalViolationSubCauseCode_H_ +#define _SignalViolationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SignalViolationSubCauseCode { + SignalViolationSubCauseCode_unavailable = 0, + SignalViolationSubCauseCode_stopSignViolation = 1, + SignalViolationSubCauseCode_trafficLightViolation = 2, + SignalViolationSubCauseCode_turningRegulationViolation = 3 +} e_SignalViolationSubCauseCode; + +/* SignalViolationSubCauseCode */ +typedef long SignalViolationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode; +asn_struct_free_f SignalViolationSubCauseCode_free; +asn_struct_print_f SignalViolationSubCauseCode_print; +asn_constr_check_f SignalViolationSubCauseCode_constraint; +ber_type_decoder_f SignalViolationSubCauseCode_decode_ber; +der_type_encoder_f SignalViolationSubCauseCode_encode_der; +xer_type_decoder_f SignalViolationSubCauseCode_decode_xer; +xer_type_encoder_f SignalViolationSubCauseCode_encode_xer; +oer_type_decoder_f SignalViolationSubCauseCode_decode_oer; +oer_type_encoder_f SignalViolationSubCauseCode_encode_oer; +per_type_decoder_f SignalViolationSubCauseCode_decode_uper; +per_type_encoder_f SignalViolationSubCauseCode_encode_uper; +per_type_decoder_f SignalViolationSubCauseCode_decode_aper; +per_type_encoder_f SignalViolationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalViolationSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/SignedValue.h b/vcits/ivim/SignedValue.h new file mode 100644 index 0000000..b204e3a --- /dev/null +++ b/vcits/ivim/SignedValue.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SignedValue_H_ +#define _SignedValue_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SignedValue_PR { + SignedValue_PR_NOTHING, /* No components present */ + SignedValue_PR_positive, + SignedValue_PR_negative +} SignedValue_PR; + +/* SignedValue */ +typedef struct SignedValue { + SignedValue_PR present; + union SignedValue_u { + long positive; + long negative; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignedValue_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignedValue; +extern asn_CHOICE_specifics_t asn_SPC_SignedValue_specs_1; +extern asn_TYPE_member_t asn_MBR_SignedValue_1[2]; +extern asn_per_constraints_t asn_PER_type_SignedValue_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignedValue_H_ */ +#include diff --git a/vcits/ivim/SlowVehicleSubCauseCode.h b/vcits/ivim/SlowVehicleSubCauseCode.h new file mode 100644 index 0000000..60a3653 --- /dev/null +++ b/vcits/ivim/SlowVehicleSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SlowVehicleSubCauseCode_H_ +#define _SlowVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SlowVehicleSubCauseCode { + SlowVehicleSubCauseCode_unavailable = 0, + SlowVehicleSubCauseCode_maintenanceVehicle = 1, + SlowVehicleSubCauseCode_vehiclesSlowingToLookAtAccident = 2, + SlowVehicleSubCauseCode_abnormalLoad = 3, + SlowVehicleSubCauseCode_abnormalWideLoad = 4, + SlowVehicleSubCauseCode_convoy = 5, + SlowVehicleSubCauseCode_snowplough = 6, + SlowVehicleSubCauseCode_deicing = 7, + SlowVehicleSubCauseCode_saltingVehicles = 8 +} e_SlowVehicleSubCauseCode; + +/* SlowVehicleSubCauseCode */ +typedef long SlowVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode; +asn_struct_free_f SlowVehicleSubCauseCode_free; +asn_struct_print_f SlowVehicleSubCauseCode_print; +asn_constr_check_f SlowVehicleSubCauseCode_constraint; +ber_type_decoder_f SlowVehicleSubCauseCode_decode_ber; +der_type_encoder_f SlowVehicleSubCauseCode_encode_der; +xer_type_decoder_f SlowVehicleSubCauseCode_decode_xer; +xer_type_encoder_f SlowVehicleSubCauseCode_encode_xer; +oer_type_decoder_f SlowVehicleSubCauseCode_decode_oer; +oer_type_encoder_f SlowVehicleSubCauseCode_encode_oer; +per_type_decoder_f SlowVehicleSubCauseCode_decode_uper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_uper; +per_type_decoder_f SlowVehicleSubCauseCode_decode_aper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SlowVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/SoundLevel.h b/vcits/ivim/SoundLevel.h new file mode 100644 index 0000000..a40fb18 --- /dev/null +++ b/vcits/ivim/SoundLevel.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SoundLevel_H_ +#define _SoundLevel_H_ + + +#include + +/* Including external dependencies */ +#include "Int1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SoundLevel */ +typedef struct SoundLevel { + Int1_t soundstationary; + Int1_t sounddriveby; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SoundLevel_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SoundLevel; +extern asn_SEQUENCE_specifics_t asn_SPC_SoundLevel_specs_1; +extern asn_TYPE_member_t asn_MBR_SoundLevel_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SoundLevel_H_ */ +#include diff --git a/vcits/ivim/SpecialTransportType.h b/vcits/ivim/SpecialTransportType.h new file mode 100644 index 0000000..2f255b4 --- /dev/null +++ b/vcits/ivim/SpecialTransportType.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SpecialTransportType_H_ +#define _SpecialTransportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpecialTransportType { + SpecialTransportType_heavyLoad = 0, + SpecialTransportType_excessWidth = 1, + SpecialTransportType_excessLength = 2, + SpecialTransportType_excessHeight = 3 +} e_SpecialTransportType; + +/* SpecialTransportType */ +typedef BIT_STRING_t SpecialTransportType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpecialTransportType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpecialTransportType; +asn_struct_free_f SpecialTransportType_free; +asn_struct_print_f SpecialTransportType_print; +asn_constr_check_f SpecialTransportType_constraint; +ber_type_decoder_f SpecialTransportType_decode_ber; +der_type_encoder_f SpecialTransportType_encode_der; +xer_type_decoder_f SpecialTransportType_decode_xer; +xer_type_encoder_f SpecialTransportType_encode_xer; +oer_type_decoder_f SpecialTransportType_decode_oer; +oer_type_encoder_f SpecialTransportType_encode_oer; +per_type_decoder_f SpecialTransportType_decode_uper; +per_type_encoder_f SpecialTransportType_encode_uper; +per_type_decoder_f SpecialTransportType_decode_aper; +per_type_encoder_f SpecialTransportType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpecialTransportType_H_ */ +#include diff --git a/vcits/ivim/Speed.h b/vcits/ivim/Speed.h new file mode 100644 index 0000000..3a591b1 --- /dev/null +++ b/vcits/ivim/Speed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Speed_H_ +#define _Speed_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedValue.h" +#include "SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Speed */ +typedef struct Speed { + SpeedValue_t speedValue; + SpeedConfidence_t speedConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Speed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Speed; +extern asn_SEQUENCE_specifics_t asn_SPC_Speed_specs_1; +extern asn_TYPE_member_t asn_MBR_Speed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Speed_H_ */ +#include diff --git a/vcits/ivim/SpeedAdvice.h b/vcits/ivim/SpeedAdvice.h new file mode 100644 index 0000000..33c63a6 --- /dev/null +++ b/vcits/ivim/SpeedAdvice.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SpeedAdvice_H_ +#define _SpeedAdvice_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedAdvice */ +typedef long SpeedAdvice_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedAdvice; +asn_struct_free_f SpeedAdvice_free; +asn_struct_print_f SpeedAdvice_print; +asn_constr_check_f SpeedAdvice_constraint; +ber_type_decoder_f SpeedAdvice_decode_ber; +der_type_encoder_f SpeedAdvice_encode_der; +xer_type_decoder_f SpeedAdvice_decode_xer; +xer_type_encoder_f SpeedAdvice_encode_xer; +oer_type_decoder_f SpeedAdvice_decode_oer; +oer_type_encoder_f SpeedAdvice_encode_oer; +per_type_decoder_f SpeedAdvice_decode_uper; +per_type_encoder_f SpeedAdvice_encode_uper; +per_type_decoder_f SpeedAdvice_decode_aper; +per_type_encoder_f SpeedAdvice_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedAdvice_H_ */ +#include diff --git a/vcits/ivim/SpeedConfidence.h b/vcits/ivim/SpeedConfidence.h new file mode 100644 index 0000000..4a36360 --- /dev/null +++ b/vcits/ivim/SpeedConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SpeedConfidence_H_ +#define _SpeedConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidence { + SpeedConfidence_equalOrWithinOneCentimeterPerSec = 1, + SpeedConfidence_equalOrWithinOneMeterPerSec = 100, + SpeedConfidence_outOfRange = 126, + SpeedConfidence_unavailable = 127 +} e_SpeedConfidence; + +/* SpeedConfidence */ +typedef long SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidence; +asn_struct_free_f SpeedConfidence_free; +asn_struct_print_f SpeedConfidence_print; +asn_constr_check_f SpeedConfidence_constraint; +ber_type_decoder_f SpeedConfidence_decode_ber; +der_type_encoder_f SpeedConfidence_encode_der; +xer_type_decoder_f SpeedConfidence_decode_xer; +xer_type_encoder_f SpeedConfidence_encode_xer; +oer_type_decoder_f SpeedConfidence_decode_oer; +oer_type_encoder_f SpeedConfidence_encode_oer; +per_type_decoder_f SpeedConfidence_decode_uper; +per_type_encoder_f SpeedConfidence_encode_uper; +per_type_decoder_f SpeedConfidence_decode_aper; +per_type_encoder_f SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidence_H_ */ +#include diff --git a/vcits/ivim/SpeedConfidenceDSRC.h b/vcits/ivim/SpeedConfidenceDSRC.h new file mode 100644 index 0000000..c39081e --- /dev/null +++ b/vcits/ivim/SpeedConfidenceDSRC.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SpeedConfidenceDSRC_H_ +#define _SpeedConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidenceDSRC { + SpeedConfidenceDSRC_unavailable = 0, + SpeedConfidenceDSRC_prec100ms = 1, + SpeedConfidenceDSRC_prec10ms = 2, + SpeedConfidenceDSRC_prec5ms = 3, + SpeedConfidenceDSRC_prec1ms = 4, + SpeedConfidenceDSRC_prec0_1ms = 5, + SpeedConfidenceDSRC_prec0_05ms = 6, + SpeedConfidenceDSRC_prec0_01ms = 7 +} e_SpeedConfidenceDSRC; + +/* SpeedConfidenceDSRC */ +typedef long SpeedConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedConfidenceDSRC_specs_1; +asn_struct_free_f SpeedConfidenceDSRC_free; +asn_struct_print_f SpeedConfidenceDSRC_print; +asn_constr_check_f SpeedConfidenceDSRC_constraint; +ber_type_decoder_f SpeedConfidenceDSRC_decode_ber; +der_type_encoder_f SpeedConfidenceDSRC_encode_der; +xer_type_decoder_f SpeedConfidenceDSRC_decode_xer; +xer_type_encoder_f SpeedConfidenceDSRC_encode_xer; +oer_type_decoder_f SpeedConfidenceDSRC_decode_oer; +oer_type_encoder_f SpeedConfidenceDSRC_encode_oer; +per_type_decoder_f SpeedConfidenceDSRC_decode_uper; +per_type_encoder_f SpeedConfidenceDSRC_encode_uper; +per_type_decoder_f SpeedConfidenceDSRC_decode_aper; +per_type_encoder_f SpeedConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidenceDSRC_H_ */ +#include diff --git a/vcits/ivim/SpeedLimit.h b/vcits/ivim/SpeedLimit.h new file mode 100644 index 0000000..29424fb --- /dev/null +++ b/vcits/ivim/SpeedLimit.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SpeedLimit_H_ +#define _SpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimit { + SpeedLimit_oneKmPerHour = 1 +} e_SpeedLimit; + +/* SpeedLimit */ +typedef long SpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimit; +asn_struct_free_f SpeedLimit_free; +asn_struct_print_f SpeedLimit_print; +asn_constr_check_f SpeedLimit_constraint; +ber_type_decoder_f SpeedLimit_decode_ber; +der_type_encoder_f SpeedLimit_encode_der; +xer_type_decoder_f SpeedLimit_decode_xer; +xer_type_encoder_f SpeedLimit_encode_xer; +oer_type_decoder_f SpeedLimit_decode_oer; +oer_type_encoder_f SpeedLimit_encode_oer; +per_type_decoder_f SpeedLimit_decode_uper; +per_type_encoder_f SpeedLimit_encode_uper; +per_type_decoder_f SpeedLimit_decode_aper; +per_type_encoder_f SpeedLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimit_H_ */ +#include diff --git a/vcits/ivim/SpeedLimitList.h b/vcits/ivim/SpeedLimitList.h new file mode 100644 index 0000000..9a3c726 --- /dev/null +++ b/vcits/ivim/SpeedLimitList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SpeedLimitList_H_ +#define _SpeedLimitList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RegulatorySpeedLimit; + +/* SpeedLimitList */ +typedef struct SpeedLimitList { + A_SEQUENCE_OF(struct RegulatorySpeedLimit) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedLimitList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitList; +extern asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedLimitList_1[1]; +extern asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitList_H_ */ +#include diff --git a/vcits/ivim/SpeedLimitType.h b/vcits/ivim/SpeedLimitType.h new file mode 100644 index 0000000..8e47ce5 --- /dev/null +++ b/vcits/ivim/SpeedLimitType.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SpeedLimitType_H_ +#define _SpeedLimitType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimitType { + SpeedLimitType_unknown = 0, + SpeedLimitType_maxSpeedInSchoolZone = 1, + SpeedLimitType_maxSpeedInSchoolZoneWhenChildrenArePresent = 2, + SpeedLimitType_maxSpeedInConstructionZone = 3, + SpeedLimitType_vehicleMinSpeed = 4, + SpeedLimitType_vehicleMaxSpeed = 5, + SpeedLimitType_vehicleNightMaxSpeed = 6, + SpeedLimitType_truckMinSpeed = 7, + SpeedLimitType_truckMaxSpeed = 8, + SpeedLimitType_truckNightMaxSpeed = 9, + SpeedLimitType_vehiclesWithTrailersMinSpeed = 10, + SpeedLimitType_vehiclesWithTrailersMaxSpeed = 11, + SpeedLimitType_vehiclesWithTrailersNightMaxSpeed = 12 + /* + * Enumeration is extensible + */ +} e_SpeedLimitType; + +/* SpeedLimitType */ +typedef long SpeedLimitType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitType; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1; +asn_struct_free_f SpeedLimitType_free; +asn_struct_print_f SpeedLimitType_print; +asn_constr_check_f SpeedLimitType_constraint; +ber_type_decoder_f SpeedLimitType_decode_ber; +der_type_encoder_f SpeedLimitType_encode_der; +xer_type_decoder_f SpeedLimitType_decode_xer; +xer_type_encoder_f SpeedLimitType_encode_xer; +oer_type_decoder_f SpeedLimitType_decode_oer; +oer_type_encoder_f SpeedLimitType_encode_oer; +per_type_decoder_f SpeedLimitType_decode_uper; +per_type_encoder_f SpeedLimitType_encode_uper; +per_type_decoder_f SpeedLimitType_decode_aper; +per_type_encoder_f SpeedLimitType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitType_H_ */ +#include diff --git a/vcits/ivim/SpeedValue.h b/vcits/ivim/SpeedValue.h new file mode 100644 index 0000000..e5b8f80 --- /dev/null +++ b/vcits/ivim/SpeedValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SpeedValue_H_ +#define _SpeedValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedValue { + SpeedValue_standstill = 0, + SpeedValue_oneCentimeterPerSec = 1, + SpeedValue_unavailable = 16383 +} e_SpeedValue; + +/* SpeedValue */ +typedef long SpeedValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedValue; +asn_struct_free_f SpeedValue_free; +asn_struct_print_f SpeedValue_print; +asn_constr_check_f SpeedValue_constraint; +ber_type_decoder_f SpeedValue_decode_ber; +der_type_encoder_f SpeedValue_encode_der; +xer_type_decoder_f SpeedValue_decode_xer; +xer_type_encoder_f SpeedValue_encode_xer; +oer_type_decoder_f SpeedValue_decode_oer; +oer_type_encoder_f SpeedValue_encode_oer; +per_type_decoder_f SpeedValue_decode_uper; +per_type_encoder_f SpeedValue_encode_uper; +per_type_decoder_f SpeedValue_decode_aper; +per_type_encoder_f SpeedValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedValue_H_ */ +#include diff --git a/vcits/ivim/SpeedandHeadingandThrottleConfidence.h b/vcits/ivim/SpeedandHeadingandThrottleConfidence.h new file mode 100644 index 0000000..0143e03 --- /dev/null +++ b/vcits/ivim/SpeedandHeadingandThrottleConfidence.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SpeedandHeadingandThrottleConfidence_H_ +#define _SpeedandHeadingandThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingConfidenceDSRC.h" +#include "SpeedConfidenceDSRC.h" +#include "ThrottleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedandHeadingandThrottleConfidence */ +typedef struct SpeedandHeadingandThrottleConfidence { + HeadingConfidenceDSRC_t heading; + SpeedConfidenceDSRC_t speed; + ThrottleConfidence_t throttle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedandHeadingandThrottleConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedandHeadingandThrottleConfidence_H_ */ +#include diff --git a/vcits/ivim/StartTime.h b/vcits/ivim/StartTime.h new file mode 100644 index 0000000..d358f4d --- /dev/null +++ b/vcits/ivim/StartTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _StartTime_H_ +#define _StartTime_H_ + + +#include + +/* Including external dependencies */ +#include "AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* StartTime */ +typedef AviEriDateTime_t StartTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StartTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StartTime; +asn_struct_free_f StartTime_free; +asn_struct_print_f StartTime_print; +asn_constr_check_f StartTime_constraint; +ber_type_decoder_f StartTime_decode_ber; +der_type_encoder_f StartTime_encode_der; +xer_type_decoder_f StartTime_decode_xer; +xer_type_encoder_f StartTime_encode_xer; +oer_type_decoder_f StartTime_decode_oer; +oer_type_encoder_f StartTime_encode_oer; +per_type_decoder_f StartTime_decode_uper; +per_type_encoder_f StartTime_encode_uper; +per_type_decoder_f StartTime_decode_aper; +per_type_encoder_f StartTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StartTime_H_ */ +#include diff --git a/vcits/ivim/StationID.h b/vcits/ivim/StationID.h new file mode 100644 index 0000000..355e28c --- /dev/null +++ b/vcits/ivim/StationID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _StationID_H_ +#define _StationID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* StationID */ +typedef unsigned long StationID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationID; +extern const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1; +asn_struct_free_f StationID_free; +asn_struct_print_f StationID_print; +asn_constr_check_f StationID_constraint; +ber_type_decoder_f StationID_decode_ber; +der_type_encoder_f StationID_encode_der; +xer_type_decoder_f StationID_decode_xer; +xer_type_encoder_f StationID_encode_xer; +oer_type_decoder_f StationID_decode_oer; +oer_type_encoder_f StationID_encode_oer; +per_type_decoder_f StationID_decode_uper; +per_type_encoder_f StationID_encode_uper; +per_type_decoder_f StationID_decode_aper; +per_type_encoder_f StationID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationID_H_ */ +#include diff --git a/vcits/ivim/StationarySince.h b/vcits/ivim/StationarySince.h new file mode 100644 index 0000000..27f3572 --- /dev/null +++ b/vcits/ivim/StationarySince.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _StationarySince_H_ +#define _StationarySince_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationarySince { + StationarySince_lessThan1Minute = 0, + StationarySince_lessThan2Minutes = 1, + StationarySince_lessThan15Minutes = 2, + StationarySince_equalOrGreater15Minutes = 3 +} e_StationarySince; + +/* StationarySince */ +typedef long StationarySince_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationarySince; +asn_struct_free_f StationarySince_free; +asn_struct_print_f StationarySince_print; +asn_constr_check_f StationarySince_constraint; +ber_type_decoder_f StationarySince_decode_ber; +der_type_encoder_f StationarySince_encode_der; +xer_type_decoder_f StationarySince_decode_xer; +xer_type_encoder_f StationarySince_encode_xer; +oer_type_decoder_f StationarySince_decode_oer; +oer_type_encoder_f StationarySince_encode_oer; +per_type_decoder_f StationarySince_decode_uper; +per_type_encoder_f StationarySince_encode_uper; +per_type_decoder_f StationarySince_decode_aper; +per_type_encoder_f StationarySince_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationarySince_H_ */ +#include diff --git a/vcits/ivim/StationaryVehicleSubCauseCode.h b/vcits/ivim/StationaryVehicleSubCauseCode.h new file mode 100644 index 0000000..576187b --- /dev/null +++ b/vcits/ivim/StationaryVehicleSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _StationaryVehicleSubCauseCode_H_ +#define _StationaryVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationaryVehicleSubCauseCode { + StationaryVehicleSubCauseCode_unavailable = 0, + StationaryVehicleSubCauseCode_humanProblem = 1, + StationaryVehicleSubCauseCode_vehicleBreakdown = 2, + StationaryVehicleSubCauseCode_postCrash = 3, + StationaryVehicleSubCauseCode_publicTransportStop = 4, + StationaryVehicleSubCauseCode_carryingDangerousGoods = 5 +} e_StationaryVehicleSubCauseCode; + +/* StationaryVehicleSubCauseCode */ +typedef long StationaryVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode; +asn_struct_free_f StationaryVehicleSubCauseCode_free; +asn_struct_print_f StationaryVehicleSubCauseCode_print; +asn_constr_check_f StationaryVehicleSubCauseCode_constraint; +ber_type_decoder_f StationaryVehicleSubCauseCode_decode_ber; +der_type_encoder_f StationaryVehicleSubCauseCode_encode_der; +xer_type_decoder_f StationaryVehicleSubCauseCode_decode_xer; +xer_type_encoder_f StationaryVehicleSubCauseCode_encode_xer; +oer_type_decoder_f StationaryVehicleSubCauseCode_decode_oer; +oer_type_encoder_f StationaryVehicleSubCauseCode_encode_oer; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_uper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_uper; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_aper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationaryVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/SteeringWheelAngle.h b/vcits/ivim/SteeringWheelAngle.h new file mode 100644 index 0000000..7c36c7d --- /dev/null +++ b/vcits/ivim/SteeringWheelAngle.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SteeringWheelAngle_H_ +#define _SteeringWheelAngle_H_ + + +#include + +/* Including external dependencies */ +#include "SteeringWheelAngleValue.h" +#include "SteeringWheelAngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SteeringWheelAngle */ +typedef struct SteeringWheelAngle { + SteeringWheelAngleValue_t steeringWheelAngleValue; + SteeringWheelAngleConfidence_t steeringWheelAngleConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SteeringWheelAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngle_H_ */ +#include diff --git a/vcits/ivim/SteeringWheelAngleConfidence.h b/vcits/ivim/SteeringWheelAngleConfidence.h new file mode 100644 index 0000000..36895c5 --- /dev/null +++ b/vcits/ivim/SteeringWheelAngleConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SteeringWheelAngleConfidence_H_ +#define _SteeringWheelAngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleConfidence { + SteeringWheelAngleConfidence_equalOrWithinOnePointFiveDegree = 1, + SteeringWheelAngleConfidence_outOfRange = 126, + SteeringWheelAngleConfidence_unavailable = 127 +} e_SteeringWheelAngleConfidence; + +/* SteeringWheelAngleConfidence */ +typedef long SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence; +asn_struct_free_f SteeringWheelAngleConfidence_free; +asn_struct_print_f SteeringWheelAngleConfidence_print; +asn_constr_check_f SteeringWheelAngleConfidence_constraint; +ber_type_decoder_f SteeringWheelAngleConfidence_decode_ber; +der_type_encoder_f SteeringWheelAngleConfidence_encode_der; +xer_type_decoder_f SteeringWheelAngleConfidence_decode_xer; +xer_type_encoder_f SteeringWheelAngleConfidence_encode_xer; +oer_type_decoder_f SteeringWheelAngleConfidence_decode_oer; +oer_type_encoder_f SteeringWheelAngleConfidence_encode_oer; +per_type_decoder_f SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleConfidence_H_ */ +#include diff --git a/vcits/ivim/SteeringWheelAngleValue.h b/vcits/ivim/SteeringWheelAngleValue.h new file mode 100644 index 0000000..59c587e --- /dev/null +++ b/vcits/ivim/SteeringWheelAngleValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SteeringWheelAngleValue_H_ +#define _SteeringWheelAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleValue { + SteeringWheelAngleValue_straight = 0, + SteeringWheelAngleValue_onePointFiveDegreesToRight = -1, + SteeringWheelAngleValue_onePointFiveDegreesToLeft = 1, + SteeringWheelAngleValue_unavailable = 512 +} e_SteeringWheelAngleValue; + +/* SteeringWheelAngleValue */ +typedef long SteeringWheelAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue; +asn_struct_free_f SteeringWheelAngleValue_free; +asn_struct_print_f SteeringWheelAngleValue_print; +asn_constr_check_f SteeringWheelAngleValue_constraint; +ber_type_decoder_f SteeringWheelAngleValue_decode_ber; +der_type_encoder_f SteeringWheelAngleValue_encode_der; +xer_type_decoder_f SteeringWheelAngleValue_decode_xer; +xer_type_encoder_f SteeringWheelAngleValue_encode_xer; +oer_type_decoder_f SteeringWheelAngleValue_decode_oer; +oer_type_encoder_f SteeringWheelAngleValue_encode_oer; +per_type_decoder_f SteeringWheelAngleValue_decode_uper; +per_type_encoder_f SteeringWheelAngleValue_encode_uper; +per_type_decoder_f SteeringWheelAngleValue_decode_aper; +per_type_encoder_f SteeringWheelAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleValue_H_ */ +#include diff --git a/vcits/ivim/StopTime.h b/vcits/ivim/StopTime.h new file mode 100644 index 0000000..284c8fb --- /dev/null +++ b/vcits/ivim/StopTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _StopTime_H_ +#define _StopTime_H_ + + +#include + +/* Including external dependencies */ +#include "AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* StopTime */ +typedef AviEriDateTime_t StopTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StopTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StopTime; +asn_struct_free_f StopTime_free; +asn_struct_print_f StopTime_print; +asn_constr_check_f StopTime_constraint; +ber_type_decoder_f StopTime_decode_ber; +der_type_encoder_f StopTime_encode_der; +xer_type_decoder_f StopTime_decode_xer; +xer_type_encoder_f StopTime_encode_xer; +oer_type_decoder_f StopTime_decode_oer; +oer_type_encoder_f StopTime_encode_oer; +per_type_decoder_f StopTime_decode_uper; +per_type_encoder_f StopTime_encode_uper; +per_type_decoder_f StopTime_decode_aper; +per_type_encoder_f StopTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StopTime_H_ */ +#include diff --git a/vcits/ivim/SubCauseCodeType.h b/vcits/ivim/SubCauseCodeType.h new file mode 100644 index 0000000..0c5d834 --- /dev/null +++ b/vcits/ivim/SubCauseCodeType.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SubCauseCodeType_H_ +#define _SubCauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SubCauseCodeType */ +typedef long SubCauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType; +asn_struct_free_f SubCauseCodeType_free; +asn_struct_print_f SubCauseCodeType_print; +asn_constr_check_f SubCauseCodeType_constraint; +ber_type_decoder_f SubCauseCodeType_decode_ber; +der_type_encoder_f SubCauseCodeType_encode_der; +xer_type_decoder_f SubCauseCodeType_decode_xer; +xer_type_encoder_f SubCauseCodeType_encode_xer; +oer_type_decoder_f SubCauseCodeType_decode_oer; +oer_type_encoder_f SubCauseCodeType_encode_oer; +per_type_decoder_f SubCauseCodeType_decode_uper; +per_type_encoder_f SubCauseCodeType_encode_uper; +per_type_decoder_f SubCauseCodeType_decode_aper; +per_type_encoder_f SubCauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SubCauseCodeType_H_ */ +#include diff --git a/vcits/ivim/SubRq.h b/vcits/ivim/SubRq.h new file mode 100644 index 0000000..af930f6 --- /dev/null +++ b/vcits/ivim/SubRq.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _SubRq_H_ +#define _SubRq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SubRq */ +typedef struct SubRq { + long attributeId; + long value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SubRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SubRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _SubRq_H_ */ +#include diff --git a/vcits/ivim/TaxCode.h b/vcits/ivim/TaxCode.h new file mode 100644 index 0000000..32df9a7 --- /dev/null +++ b/vcits/ivim/TaxCode.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TaxCode_H_ +#define _TaxCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TaxCode */ +typedef OCTET_STRING_t TaxCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TaxCode; +asn_struct_free_f TaxCode_free; +asn_struct_print_f TaxCode_print; +asn_constr_check_f TaxCode_constraint; +ber_type_decoder_f TaxCode_decode_ber; +der_type_encoder_f TaxCode_encode_der; +xer_type_decoder_f TaxCode_decode_xer; +xer_type_encoder_f TaxCode_encode_xer; +oer_type_decoder_f TaxCode_decode_oer; +oer_type_encoder_f TaxCode_encode_oer; +per_type_decoder_f TaxCode_decode_uper; +per_type_encoder_f TaxCode_encode_uper; +per_type_decoder_f TaxCode_decode_aper; +per_type_encoder_f TaxCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TaxCode_H_ */ +#include diff --git a/vcits/ivim/TcPart.h b/vcits/ivim/TcPart.h new file mode 100644 index 0000000..62dc5d3 --- /dev/null +++ b/vcits/ivim/TcPart.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TcPart_H_ +#define _TcPart_H_ + + +#include + +/* Including external dependencies */ +#include "ZoneIds.h" +#include "Direction.h" +#include +#include +#include "IviType.h" +#include "LaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ZoneIds; +struct LanePositions; +struct TextLines; +struct VehicleCharacteristicsList; + +/* TcPart */ +typedef struct TcPart { + struct ZoneIds *detectionZoneIds; /* OPTIONAL */ + ZoneIds_t relevanceZoneIds; + Direction_t *direction; /* OPTIONAL */ + struct ZoneIds *driverAwarenessZoneIds; /* OPTIONAL */ + long *minimumAwarenessTime; /* OPTIONAL */ + struct LanePositions *applicableLanes; /* OPTIONAL */ + long *layoutId; /* OPTIONAL */ + long *preStoredlayoutId; /* OPTIONAL */ + struct TextLines *text; /* OPTIONAL */ + OCTET_STRING_t data; + /* + * This type is extensible, + * possible extensions are below. + */ + struct TcPart__ext1 { + IviType_t iviType; + LaneStatus_t *laneStatus; /* OPTIONAL */ + struct VehicleCharacteristicsList *vehicleCharacteristics; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TcPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TcPart; +extern asn_SEQUENCE_specifics_t asn_SPC_TcPart_specs_1; +extern asn_TYPE_member_t asn_MBR_TcPart_1[11]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TcPart_H_ */ +#include diff --git a/vcits/ivim/TemporaryID.h b/vcits/ivim/TemporaryID.h new file mode 100644 index 0000000..6bb6ef0 --- /dev/null +++ b/vcits/ivim/TemporaryID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TemporaryID_H_ +#define _TemporaryID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TemporaryID */ +typedef OCTET_STRING_t TemporaryID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TemporaryID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TemporaryID; +asn_struct_free_f TemporaryID_free; +asn_struct_print_f TemporaryID_print; +asn_constr_check_f TemporaryID_constraint; +ber_type_decoder_f TemporaryID_decode_ber; +der_type_encoder_f TemporaryID_encode_der; +xer_type_decoder_f TemporaryID_decode_xer; +xer_type_encoder_f TemporaryID_encode_xer; +oer_type_decoder_f TemporaryID_decode_oer; +oer_type_encoder_f TemporaryID_encode_oer; +per_type_decoder_f TemporaryID_decode_uper; +per_type_encoder_f TemporaryID_encode_uper; +per_type_decoder_f TemporaryID_decode_aper; +per_type_encoder_f TemporaryID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TemporaryID_H_ */ +#include diff --git a/vcits/ivim/Text.h b/vcits/ivim/Text.h new file mode 100644 index 0000000..c4b902e --- /dev/null +++ b/vcits/ivim/Text.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Text_H_ +#define _Text_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Text */ +typedef struct Text { + long *layoutComponentId; /* OPTIONAL */ + BIT_STRING_t language; + UTF8String_t textContent; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Text_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Text; +extern asn_SEQUENCE_specifics_t asn_SPC_Text_specs_1; +extern asn_TYPE_member_t asn_MBR_Text_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Text_H_ */ +#include diff --git a/vcits/ivim/TextContainer.h b/vcits/ivim/TextContainer.h new file mode 100644 index 0000000..a91397f --- /dev/null +++ b/vcits/ivim/TextContainer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TextContainer_H_ +#define _TextContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TcPart; + +/* TextContainer */ +typedef struct TextContainer { + A_SEQUENCE_OF(struct TcPart) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TextContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TextContainer; +extern asn_SET_OF_specifics_t asn_SPC_TextContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_TextContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_TextContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _TextContainer_H_ */ +#include diff --git a/vcits/ivim/TextLines.h b/vcits/ivim/TextLines.h new file mode 100644 index 0000000..c05295d --- /dev/null +++ b/vcits/ivim/TextLines.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TextLines_H_ +#define _TextLines_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Text; + +/* TextLines */ +typedef struct TextLines { + A_SEQUENCE_OF(struct Text) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TextLines_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TextLines; +extern asn_SET_OF_specifics_t asn_SPC_TextLines_specs_1; +extern asn_TYPE_member_t asn_MBR_TextLines_1[1]; +extern asn_per_constraints_t asn_PER_type_TextLines_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _TextLines_H_ */ +#include diff --git a/vcits/ivim/ThrottleConfidence.h b/vcits/ivim/ThrottleConfidence.h new file mode 100644 index 0000000..bbc49d2 --- /dev/null +++ b/vcits/ivim/ThrottleConfidence.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ThrottleConfidence_H_ +#define _ThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ThrottleConfidence { + ThrottleConfidence_unavailable = 0, + ThrottleConfidence_prec10percent = 1, + ThrottleConfidence_prec1percent = 2, + ThrottleConfidence_prec0_5percent = 3 +} e_ThrottleConfidence; + +/* ThrottleConfidence */ +typedef long ThrottleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1; +asn_struct_free_f ThrottleConfidence_free; +asn_struct_print_f ThrottleConfidence_print; +asn_constr_check_f ThrottleConfidence_constraint; +ber_type_decoder_f ThrottleConfidence_decode_ber; +der_type_encoder_f ThrottleConfidence_encode_der; +xer_type_decoder_f ThrottleConfidence_decode_xer; +xer_type_encoder_f ThrottleConfidence_encode_xer; +oer_type_decoder_f ThrottleConfidence_decode_oer; +oer_type_encoder_f ThrottleConfidence_encode_oer; +per_type_decoder_f ThrottleConfidence_decode_uper; +per_type_encoder_f ThrottleConfidence_encode_uper; +per_type_decoder_f ThrottleConfidence_decode_aper; +per_type_encoder_f ThrottleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ThrottleConfidence_H_ */ +#include diff --git a/vcits/ivim/TimeChangeDetails.h b/vcits/ivim/TimeChangeDetails.h new file mode 100644 index 0000000..cecab94 --- /dev/null +++ b/vcits/ivim/TimeChangeDetails.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TimeChangeDetails_H_ +#define _TimeChangeDetails_H_ + + +#include + +/* Including external dependencies */ +#include "TimeMark.h" +#include "TimeIntervalConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeChangeDetails */ +typedef struct TimeChangeDetails { + TimeMark_t *startTime; /* OPTIONAL */ + TimeMark_t minEndTime; + TimeMark_t *maxEndTime; /* OPTIONAL */ + TimeMark_t *likelyTime; /* OPTIONAL */ + TimeIntervalConfidence_t *confidence; /* OPTIONAL */ + TimeMark_t *nextTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TimeChangeDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeChangeDetails_H_ */ +#include diff --git a/vcits/ivim/TimeConfidence.h b/vcits/ivim/TimeConfidence.h new file mode 100644 index 0000000..fff2018 --- /dev/null +++ b/vcits/ivim/TimeConfidence.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TimeConfidence_H_ +#define _TimeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeConfidence { + TimeConfidence_unavailable = 0, + TimeConfidence_time_100_000 = 1, + TimeConfidence_time_050_000 = 2, + TimeConfidence_time_020_000 = 3, + TimeConfidence_time_010_000 = 4, + TimeConfidence_time_002_000 = 5, + TimeConfidence_time_001_000 = 6, + TimeConfidence_time_000_500 = 7, + TimeConfidence_time_000_200 = 8, + TimeConfidence_time_000_100 = 9, + TimeConfidence_time_000_050 = 10, + TimeConfidence_time_000_020 = 11, + TimeConfidence_time_000_010 = 12, + TimeConfidence_time_000_005 = 13, + TimeConfidence_time_000_002 = 14, + TimeConfidence_time_000_001 = 15, + TimeConfidence_time_000_000_5 = 16, + TimeConfidence_time_000_000_2 = 17, + TimeConfidence_time_000_000_1 = 18, + TimeConfidence_time_000_000_05 = 19, + TimeConfidence_time_000_000_02 = 20, + TimeConfidence_time_000_000_01 = 21, + TimeConfidence_time_000_000_005 = 22, + TimeConfidence_time_000_000_002 = 23, + TimeConfidence_time_000_000_001 = 24, + TimeConfidence_time_000_000_000_5 = 25, + TimeConfidence_time_000_000_000_2 = 26, + TimeConfidence_time_000_000_000_1 = 27, + TimeConfidence_time_000_000_000_05 = 28, + TimeConfidence_time_000_000_000_02 = 29, + TimeConfidence_time_000_000_000_01 = 30, + TimeConfidence_time_000_000_000_005 = 31, + TimeConfidence_time_000_000_000_002 = 32, + TimeConfidence_time_000_000_000_001 = 33, + TimeConfidence_time_000_000_000_000_5 = 34, + TimeConfidence_time_000_000_000_000_2 = 35, + TimeConfidence_time_000_000_000_000_1 = 36, + TimeConfidence_time_000_000_000_000_05 = 37, + TimeConfidence_time_000_000_000_000_02 = 38, + TimeConfidence_time_000_000_000_000_01 = 39 +} e_TimeConfidence; + +/* TimeConfidence */ +typedef long TimeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1; +asn_struct_free_f TimeConfidence_free; +asn_struct_print_f TimeConfidence_print; +asn_constr_check_f TimeConfidence_constraint; +ber_type_decoder_f TimeConfidence_decode_ber; +der_type_encoder_f TimeConfidence_encode_der; +xer_type_decoder_f TimeConfidence_decode_xer; +xer_type_encoder_f TimeConfidence_encode_xer; +oer_type_decoder_f TimeConfidence_decode_oer; +oer_type_encoder_f TimeConfidence_encode_oer; +per_type_decoder_f TimeConfidence_decode_uper; +per_type_encoder_f TimeConfidence_encode_uper; +per_type_decoder_f TimeConfidence_decode_aper; +per_type_encoder_f TimeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeConfidence_H_ */ +#include diff --git a/vcits/ivim/TimeIntervalConfidence.h b/vcits/ivim/TimeIntervalConfidence.h new file mode 100644 index 0000000..12c44e1 --- /dev/null +++ b/vcits/ivim/TimeIntervalConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TimeIntervalConfidence_H_ +#define _TimeIntervalConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeIntervalConfidence */ +typedef long TimeIntervalConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence; +asn_struct_free_f TimeIntervalConfidence_free; +asn_struct_print_f TimeIntervalConfidence_print; +asn_constr_check_f TimeIntervalConfidence_constraint; +ber_type_decoder_f TimeIntervalConfidence_decode_ber; +der_type_encoder_f TimeIntervalConfidence_encode_der; +xer_type_decoder_f TimeIntervalConfidence_decode_xer; +xer_type_encoder_f TimeIntervalConfidence_encode_xer; +oer_type_decoder_f TimeIntervalConfidence_decode_oer; +oer_type_encoder_f TimeIntervalConfidence_encode_oer; +per_type_decoder_f TimeIntervalConfidence_decode_uper; +per_type_encoder_f TimeIntervalConfidence_encode_uper; +per_type_decoder_f TimeIntervalConfidence_decode_aper; +per_type_encoder_f TimeIntervalConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeIntervalConfidence_H_ */ +#include diff --git a/vcits/ivim/TimeMark.h b/vcits/ivim/TimeMark.h new file mode 100644 index 0000000..02cb06c --- /dev/null +++ b/vcits/ivim/TimeMark.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TimeMark_H_ +#define _TimeMark_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeMark */ +typedef long TimeMark_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeMark_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeMark; +asn_struct_free_f TimeMark_free; +asn_struct_print_f TimeMark_print; +asn_constr_check_f TimeMark_constraint; +ber_type_decoder_f TimeMark_decode_ber; +der_type_encoder_f TimeMark_encode_der; +xer_type_decoder_f TimeMark_decode_xer; +xer_type_encoder_f TimeMark_encode_xer; +oer_type_decoder_f TimeMark_decode_oer; +oer_type_encoder_f TimeMark_encode_oer; +per_type_decoder_f TimeMark_decode_uper; +per_type_encoder_f TimeMark_encode_uper; +per_type_decoder_f TimeMark_decode_aper; +per_type_encoder_f TimeMark_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeMark_H_ */ +#include diff --git a/vcits/ivim/TimeReference.h b/vcits/ivim/TimeReference.h new file mode 100644 index 0000000..3bfdd8d --- /dev/null +++ b/vcits/ivim/TimeReference.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TimeReference_H_ +#define _TimeReference_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeReference { + TimeReference_oneMilliSec = 1 +} e_TimeReference; + +/* TimeReference */ +typedef long TimeReference_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeReference_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeReference; +asn_struct_free_f TimeReference_free; +asn_struct_print_f TimeReference_print; +asn_constr_check_f TimeReference_constraint; +ber_type_decoder_f TimeReference_decode_ber; +der_type_encoder_f TimeReference_encode_der; +xer_type_decoder_f TimeReference_decode_xer; +xer_type_encoder_f TimeReference_encode_xer; +oer_type_decoder_f TimeReference_decode_oer; +oer_type_encoder_f TimeReference_encode_oer; +per_type_decoder_f TimeReference_decode_uper; +per_type_encoder_f TimeReference_encode_uper; +per_type_decoder_f TimeReference_decode_aper; +per_type_encoder_f TimeReference_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeReference_H_ */ +#include diff --git a/vcits/ivim/TimestampIts.h b/vcits/ivim/TimestampIts.h new file mode 100644 index 0000000..f59b69a --- /dev/null +++ b/vcits/ivim/TimestampIts.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TimestampIts_H_ +#define _TimestampIts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimestampIts { + TimestampIts_utcStartOf2004 = 0, + TimestampIts_oneMillisecAfterUTCStartOf2004 = 1 +} e_TimestampIts; + +/* TimestampIts */ +typedef INTEGER_t TimestampIts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimestampIts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimestampIts; +asn_struct_free_f TimestampIts_free; +asn_struct_print_f TimestampIts_print; +asn_constr_check_f TimestampIts_constraint; +ber_type_decoder_f TimestampIts_decode_ber; +der_type_encoder_f TimestampIts_encode_der; +xer_type_decoder_f TimestampIts_decode_xer; +xer_type_encoder_f TimestampIts_encode_xer; +oer_type_decoder_f TimestampIts_decode_oer; +oer_type_encoder_f TimestampIts_encode_oer; +per_type_decoder_f TimestampIts_decode_uper; +per_type_encoder_f TimestampIts_encode_uper; +per_type_decoder_f TimestampIts_decode_aper; +per_type_encoder_f TimestampIts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimestampIts_H_ */ +#include diff --git a/vcits/ivim/Traces.h b/vcits/ivim/Traces.h new file mode 100644 index 0000000..a3c1d28 --- /dev/null +++ b/vcits/ivim/Traces.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Traces_H_ +#define _Traces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathHistory; + +/* Traces */ +typedef struct Traces { + A_SEQUENCE_OF(struct PathHistory) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Traces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Traces; + +#ifdef __cplusplus +} +#endif + +#endif /* _Traces_H_ */ +#include diff --git a/vcits/ivim/TractorAxles.h b/vcits/ivim/TractorAxles.h new file mode 100644 index 0000000..4d317e8 --- /dev/null +++ b/vcits/ivim/TractorAxles.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TractorAxles_H_ +#define _TractorAxles_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TractorAxles */ +typedef long TractorAxles_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TractorAxles_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TractorAxles; +asn_struct_free_f TractorAxles_free; +asn_struct_print_f TractorAxles_print; +asn_constr_check_f TractorAxles_constraint; +ber_type_decoder_f TractorAxles_decode_ber; +der_type_encoder_f TractorAxles_encode_der; +xer_type_decoder_f TractorAxles_decode_xer; +xer_type_encoder_f TractorAxles_encode_xer; +oer_type_decoder_f TractorAxles_decode_oer; +oer_type_encoder_f TractorAxles_encode_oer; +per_type_decoder_f TractorAxles_decode_uper; +per_type_encoder_f TractorAxles_encode_uper; +per_type_decoder_f TractorAxles_decode_aper; +per_type_encoder_f TractorAxles_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TractorAxles_H_ */ +#include diff --git a/vcits/ivim/TractorCharacteristics.h b/vcits/ivim/TractorCharacteristics.h new file mode 100644 index 0000000..d965896 --- /dev/null +++ b/vcits/ivim/TractorCharacteristics.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TractorCharacteristics_H_ +#define _TractorCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct VehicleCharacteristicsFixValuesList; +struct VehicleCharacteristicsRangesList; + +/* TractorCharacteristics */ +typedef struct TractorCharacteristics { + struct VehicleCharacteristicsFixValuesList *equalTo; /* OPTIONAL */ + struct VehicleCharacteristicsFixValuesList *notEqualTo; /* OPTIONAL */ + struct VehicleCharacteristicsRangesList *ranges; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TractorCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TractorCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_TractorCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_TractorCharacteristics_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TractorCharacteristics_H_ */ +#include diff --git a/vcits/ivim/TrafficConditionSubCauseCode.h b/vcits/ivim/TrafficConditionSubCauseCode.h new file mode 100644 index 0000000..c74407e --- /dev/null +++ b/vcits/ivim/TrafficConditionSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TrafficConditionSubCauseCode_H_ +#define _TrafficConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficConditionSubCauseCode { + TrafficConditionSubCauseCode_unavailable = 0, + TrafficConditionSubCauseCode_increasedVolumeOfTraffic = 1, + TrafficConditionSubCauseCode_trafficJamSlowlyIncreasing = 2, + TrafficConditionSubCauseCode_trafficJamIncreasing = 3, + TrafficConditionSubCauseCode_trafficJamStronglyIncreasing = 4, + TrafficConditionSubCauseCode_trafficStationary = 5, + TrafficConditionSubCauseCode_trafficJamSlightlyDecreasing = 6, + TrafficConditionSubCauseCode_trafficJamDecreasing = 7, + TrafficConditionSubCauseCode_trafficJamStronglyDecreasing = 8 +} e_TrafficConditionSubCauseCode; + +/* TrafficConditionSubCauseCode */ +typedef long TrafficConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode; +asn_struct_free_f TrafficConditionSubCauseCode_free; +asn_struct_print_f TrafficConditionSubCauseCode_print; +asn_constr_check_f TrafficConditionSubCauseCode_constraint; +ber_type_decoder_f TrafficConditionSubCauseCode_decode_ber; +der_type_encoder_f TrafficConditionSubCauseCode_encode_der; +xer_type_decoder_f TrafficConditionSubCauseCode_decode_xer; +xer_type_encoder_f TrafficConditionSubCauseCode_encode_xer; +oer_type_decoder_f TrafficConditionSubCauseCode_decode_oer; +oer_type_encoder_f TrafficConditionSubCauseCode_encode_oer; +per_type_decoder_f TrafficConditionSubCauseCode_decode_uper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_uper; +per_type_decoder_f TrafficConditionSubCauseCode_decode_aper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficConditionSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/TrafficRule.h b/vcits/ivim/TrafficRule.h new file mode 100644 index 0000000..1c90325 --- /dev/null +++ b/vcits/ivim/TrafficRule.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TrafficRule_H_ +#define _TrafficRule_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficRule { + TrafficRule_noPassing = 0, + TrafficRule_noPassingForTrucks = 1, + TrafficRule_passToRight = 2, + TrafficRule_passToLeft = 3 + /* + * Enumeration is extensible + */ +} e_TrafficRule; + +/* TrafficRule */ +typedef long TrafficRule_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficRule; +asn_struct_free_f TrafficRule_free; +asn_struct_print_f TrafficRule_print; +asn_constr_check_f TrafficRule_constraint; +ber_type_decoder_f TrafficRule_decode_ber; +der_type_encoder_f TrafficRule_encode_der; +xer_type_decoder_f TrafficRule_decode_xer; +xer_type_encoder_f TrafficRule_encode_xer; +oer_type_decoder_f TrafficRule_decode_oer; +oer_type_encoder_f TrafficRule_encode_oer; +per_type_decoder_f TrafficRule_decode_uper; +per_type_encoder_f TrafficRule_encode_uper; +per_type_decoder_f TrafficRule_decode_aper; +per_type_encoder_f TrafficRule_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficRule_H_ */ +#include diff --git a/vcits/ivim/TrailerAxles.h b/vcits/ivim/TrailerAxles.h new file mode 100644 index 0000000..11f210f --- /dev/null +++ b/vcits/ivim/TrailerAxles.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TrailerAxles_H_ +#define _TrailerAxles_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TrailerAxles */ +typedef long TrailerAxles_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TrailerAxles_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TrailerAxles; +asn_struct_free_f TrailerAxles_free; +asn_struct_print_f TrailerAxles_print; +asn_constr_check_f TrailerAxles_constraint; +ber_type_decoder_f TrailerAxles_decode_ber; +der_type_encoder_f TrailerAxles_encode_der; +xer_type_decoder_f TrailerAxles_decode_xer; +xer_type_encoder_f TrailerAxles_encode_xer; +oer_type_decoder_f TrailerAxles_decode_oer; +oer_type_encoder_f TrailerAxles_encode_oer; +per_type_decoder_f TrailerAxles_decode_uper; +per_type_encoder_f TrailerAxles_encode_uper; +per_type_decoder_f TrailerAxles_decode_aper; +per_type_encoder_f TrailerAxles_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerAxles_H_ */ +#include diff --git a/vcits/ivim/TrailerCharacteristicsFixValuesList.h b/vcits/ivim/TrailerCharacteristicsFixValuesList.h new file mode 100644 index 0000000..0cb674f --- /dev/null +++ b/vcits/ivim/TrailerCharacteristicsFixValuesList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TrailerCharacteristicsFixValuesList_H_ +#define _TrailerCharacteristicsFixValuesList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct VehicleCharacteristicsFixValues; + +/* TrailerCharacteristicsFixValuesList */ +typedef struct TrailerCharacteristicsFixValuesList { + A_SEQUENCE_OF(struct VehicleCharacteristicsFixValues) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TrailerCharacteristicsFixValuesList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrailerCharacteristicsFixValuesList; +extern asn_SET_OF_specifics_t asn_SPC_TrailerCharacteristicsFixValuesList_specs_1; +extern asn_TYPE_member_t asn_MBR_TrailerCharacteristicsFixValuesList_1[1]; +extern asn_per_constraints_t asn_PER_type_TrailerCharacteristicsFixValuesList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerCharacteristicsFixValuesList_H_ */ +#include diff --git a/vcits/ivim/TrailerCharacteristicsList.h b/vcits/ivim/TrailerCharacteristicsList.h new file mode 100644 index 0000000..28f7918 --- /dev/null +++ b/vcits/ivim/TrailerCharacteristicsList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TrailerCharacteristicsList_H_ +#define _TrailerCharacteristicsList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TrailerCharacteristics; + +/* TrailerCharacteristicsList */ +typedef struct TrailerCharacteristicsList { + A_SEQUENCE_OF(struct TrailerCharacteristics) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TrailerCharacteristicsList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrailerCharacteristicsList; +extern asn_SET_OF_specifics_t asn_SPC_TrailerCharacteristicsList_specs_1; +extern asn_TYPE_member_t asn_MBR_TrailerCharacteristicsList_1[1]; +extern asn_per_constraints_t asn_PER_type_TrailerCharacteristicsList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerCharacteristicsList_H_ */ +#include diff --git a/vcits/ivim/TrailerCharacteristicsRangesList.h b/vcits/ivim/TrailerCharacteristicsRangesList.h new file mode 100644 index 0000000..2b2e4e2 --- /dev/null +++ b/vcits/ivim/TrailerCharacteristicsRangesList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TrailerCharacteristicsRangesList_H_ +#define _TrailerCharacteristicsRangesList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct VehicleCharacteristicsRanges; + +/* TrailerCharacteristicsRangesList */ +typedef struct TrailerCharacteristicsRangesList { + A_SEQUENCE_OF(struct VehicleCharacteristicsRanges) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TrailerCharacteristicsRangesList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrailerCharacteristicsRangesList; +extern asn_SET_OF_specifics_t asn_SPC_TrailerCharacteristicsRangesList_specs_1; +extern asn_TYPE_member_t asn_MBR_TrailerCharacteristicsRangesList_1[1]; +extern asn_per_constraints_t asn_PER_type_TrailerCharacteristicsRangesList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerCharacteristicsRangesList_H_ */ +#include diff --git a/vcits/ivim/TrailerDetails.h b/vcits/ivim/TrailerDetails.h new file mode 100644 index 0000000..7771b8b --- /dev/null +++ b/vcits/ivim/TrailerDetails.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TrailerDetails_H_ +#define _TrailerDetails_H_ + + +#include + +/* Including external dependencies */ +#include +#include "TrailerAxles.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrailerDetails__trailerType { + TrailerDetails__trailerType_notPresent = 0, + TrailerDetails__trailerType_trailer = 1, + TrailerDetails__trailerType_semitrailer = 2 +} e_TrailerDetails__trailerType; + +/* TrailerDetails */ +typedef struct TrailerDetails { + long trailerType; + TrailerAxles_t trailerAxles; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TrailerDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrailerDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_TrailerDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_TrailerDetails_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerDetails_H_ */ +#include diff --git a/vcits/ivim/TrailerLicencePlateNumber.h b/vcits/ivim/TrailerLicencePlateNumber.h new file mode 100644 index 0000000..564d1ec --- /dev/null +++ b/vcits/ivim/TrailerLicencePlateNumber.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TrailerLicencePlateNumber_H_ +#define _TrailerLicencePlateNumber_H_ + + +#include + +/* Including external dependencies */ +#include "LPN.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TrailerLicencePlateNumber */ +typedef LPN_t TrailerLicencePlateNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrailerLicencePlateNumber; +asn_struct_free_f TrailerLicencePlateNumber_free; +asn_struct_print_f TrailerLicencePlateNumber_print; +asn_constr_check_f TrailerLicencePlateNumber_constraint; +ber_type_decoder_f TrailerLicencePlateNumber_decode_ber; +der_type_encoder_f TrailerLicencePlateNumber_encode_der; +xer_type_decoder_f TrailerLicencePlateNumber_decode_xer; +xer_type_encoder_f TrailerLicencePlateNumber_encode_xer; +oer_type_decoder_f TrailerLicencePlateNumber_decode_oer; +oer_type_encoder_f TrailerLicencePlateNumber_encode_oer; +per_type_decoder_f TrailerLicencePlateNumber_decode_uper; +per_type_encoder_f TrailerLicencePlateNumber_encode_uper; +per_type_decoder_f TrailerLicencePlateNumber_decode_aper; +per_type_encoder_f TrailerLicencePlateNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerLicencePlateNumber_H_ */ +#include diff --git a/vcits/ivim/TrainCharacteristics.h b/vcits/ivim/TrainCharacteristics.h new file mode 100644 index 0000000..832f3c6 --- /dev/null +++ b/vcits/ivim/TrainCharacteristics.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TrainCharacteristics_H_ +#define _TrainCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "TractorCharacteristics.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TrainCharacteristics */ +typedef TractorCharacteristics_t TrainCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrainCharacteristics; +asn_struct_free_f TrainCharacteristics_free; +asn_struct_print_f TrainCharacteristics_print; +asn_constr_check_f TrainCharacteristics_constraint; +ber_type_decoder_f TrainCharacteristics_decode_ber; +der_type_encoder_f TrainCharacteristics_encode_der; +xer_type_decoder_f TrainCharacteristics_decode_xer; +xer_type_encoder_f TrainCharacteristics_encode_xer; +oer_type_decoder_f TrainCharacteristics_decode_oer; +oer_type_encoder_f TrainCharacteristics_encode_oer; +per_type_decoder_f TrainCharacteristics_decode_uper; +per_type_encoder_f TrainCharacteristics_encode_uper; +per_type_decoder_f TrainCharacteristics_decode_aper; +per_type_encoder_f TrainCharacteristics_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrainCharacteristics_H_ */ +#include diff --git a/vcits/ivim/TransitVehicleOccupancy.h b/vcits/ivim/TransitVehicleOccupancy.h new file mode 100644 index 0000000..d95c788 --- /dev/null +++ b/vcits/ivim/TransitVehicleOccupancy.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TransitVehicleOccupancy_H_ +#define _TransitVehicleOccupancy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleOccupancy { + TransitVehicleOccupancy_occupancyUnknown = 0, + TransitVehicleOccupancy_occupancyEmpty = 1, + TransitVehicleOccupancy_occupancyVeryLow = 2, + TransitVehicleOccupancy_occupancyLow = 3, + TransitVehicleOccupancy_occupancyMed = 4, + TransitVehicleOccupancy_occupancyHigh = 5, + TransitVehicleOccupancy_occupancyNearlyFull = 6, + TransitVehicleOccupancy_occupancyFull = 7 +} e_TransitVehicleOccupancy; + +/* TransitVehicleOccupancy */ +typedef long TransitVehicleOccupancy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy; +extern const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1; +asn_struct_free_f TransitVehicleOccupancy_free; +asn_struct_print_f TransitVehicleOccupancy_print; +asn_constr_check_f TransitVehicleOccupancy_constraint; +ber_type_decoder_f TransitVehicleOccupancy_decode_ber; +der_type_encoder_f TransitVehicleOccupancy_encode_der; +xer_type_decoder_f TransitVehicleOccupancy_decode_xer; +xer_type_encoder_f TransitVehicleOccupancy_encode_xer; +oer_type_decoder_f TransitVehicleOccupancy_decode_oer; +oer_type_encoder_f TransitVehicleOccupancy_encode_oer; +per_type_decoder_f TransitVehicleOccupancy_decode_uper; +per_type_encoder_f TransitVehicleOccupancy_encode_uper; +per_type_decoder_f TransitVehicleOccupancy_decode_aper; +per_type_encoder_f TransitVehicleOccupancy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleOccupancy_H_ */ +#include diff --git a/vcits/ivim/TransitVehicleStatus.h b/vcits/ivim/TransitVehicleStatus.h new file mode 100644 index 0000000..4d4b464 --- /dev/null +++ b/vcits/ivim/TransitVehicleStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TransitVehicleStatus_H_ +#define _TransitVehicleStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleStatus { + TransitVehicleStatus_loading = 0, + TransitVehicleStatus_anADAuse = 1, + TransitVehicleStatus_aBikeLoad = 2, + TransitVehicleStatus_doorOpen = 3, + TransitVehicleStatus_charging = 4, + TransitVehicleStatus_atStopLine = 5 +} e_TransitVehicleStatus; + +/* TransitVehicleStatus */ +typedef BIT_STRING_t TransitVehicleStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus; +asn_struct_free_f TransitVehicleStatus_free; +asn_struct_print_f TransitVehicleStatus_print; +asn_constr_check_f TransitVehicleStatus_constraint; +ber_type_decoder_f TransitVehicleStatus_decode_ber; +der_type_encoder_f TransitVehicleStatus_encode_der; +xer_type_decoder_f TransitVehicleStatus_decode_xer; +xer_type_encoder_f TransitVehicleStatus_encode_xer; +oer_type_decoder_f TransitVehicleStatus_decode_oer; +oer_type_encoder_f TransitVehicleStatus_encode_oer; +per_type_decoder_f TransitVehicleStatus_decode_uper; +per_type_encoder_f TransitVehicleStatus_encode_uper; +per_type_decoder_f TransitVehicleStatus_decode_aper; +per_type_encoder_f TransitVehicleStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleStatus_H_ */ +#include diff --git a/vcits/ivim/TransmissionAndSpeed.h b/vcits/ivim/TransmissionAndSpeed.h new file mode 100644 index 0000000..f1e7972 --- /dev/null +++ b/vcits/ivim/TransmissionAndSpeed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TransmissionAndSpeed_H_ +#define _TransmissionAndSpeed_H_ + + +#include + +/* Including external dependencies */ +#include "TransmissionState.h" +#include "Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TransmissionAndSpeed */ +typedef struct TransmissionAndSpeed { + TransmissionState_t transmisson; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TransmissionAndSpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionAndSpeed_H_ */ +#include diff --git a/vcits/ivim/TransmissionInterval.h b/vcits/ivim/TransmissionInterval.h new file mode 100644 index 0000000..c7f5711 --- /dev/null +++ b/vcits/ivim/TransmissionInterval.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TransmissionInterval_H_ +#define _TransmissionInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionInterval { + TransmissionInterval_oneMilliSecond = 1, + TransmissionInterval_tenSeconds = 10000 +} e_TransmissionInterval; + +/* TransmissionInterval */ +typedef long TransmissionInterval_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionInterval; +asn_struct_free_f TransmissionInterval_free; +asn_struct_print_f TransmissionInterval_print; +asn_constr_check_f TransmissionInterval_constraint; +ber_type_decoder_f TransmissionInterval_decode_ber; +der_type_encoder_f TransmissionInterval_encode_der; +xer_type_decoder_f TransmissionInterval_decode_xer; +xer_type_encoder_f TransmissionInterval_encode_xer; +oer_type_decoder_f TransmissionInterval_decode_oer; +oer_type_encoder_f TransmissionInterval_encode_oer; +per_type_decoder_f TransmissionInterval_decode_uper; +per_type_encoder_f TransmissionInterval_encode_uper; +per_type_decoder_f TransmissionInterval_decode_aper; +per_type_encoder_f TransmissionInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionInterval_H_ */ +#include diff --git a/vcits/ivim/TransmissionState.h b/vcits/ivim/TransmissionState.h new file mode 100644 index 0000000..036a2b6 --- /dev/null +++ b/vcits/ivim/TransmissionState.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TransmissionState_H_ +#define _TransmissionState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionState { + TransmissionState_neutral = 0, + TransmissionState_park = 1, + TransmissionState_forwardGears = 2, + TransmissionState_reverseGears = 3, + TransmissionState_reserved1 = 4, + TransmissionState_reserved2 = 5, + TransmissionState_reserved3 = 6, + TransmissionState_unavailable = 7 +} e_TransmissionState; + +/* TransmissionState */ +typedef long TransmissionState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransmissionState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransmissionState; +extern const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1; +asn_struct_free_f TransmissionState_free; +asn_struct_print_f TransmissionState_print; +asn_constr_check_f TransmissionState_constraint; +ber_type_decoder_f TransmissionState_decode_ber; +der_type_encoder_f TransmissionState_encode_der; +xer_type_decoder_f TransmissionState_decode_xer; +xer_type_encoder_f TransmissionState_encode_xer; +oer_type_decoder_f TransmissionState_decode_oer; +oer_type_encoder_f TransmissionState_encode_oer; +per_type_decoder_f TransmissionState_decode_uper; +per_type_encoder_f TransmissionState_encode_uper; +per_type_decoder_f TransmissionState_decode_aper; +per_type_encoder_f TransmissionState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionState_H_ */ +#include diff --git a/vcits/ivim/TreatmentType.h b/vcits/ivim/TreatmentType.h new file mode 100644 index 0000000..164dd66 --- /dev/null +++ b/vcits/ivim/TreatmentType.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TreatmentType_H_ +#define _TreatmentType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TreatmentType { + TreatmentType_no = 0, + TreatmentType_antiskid = 1, + TreatmentType_anti_icing = 2, + TreatmentType_de_icing = 3, + TreatmentType_unavailable = 7 +} e_TreatmentType; + +/* TreatmentType */ +typedef long TreatmentType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TreatmentType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TreatmentType; +asn_struct_free_f TreatmentType_free; +asn_struct_print_f TreatmentType_print; +asn_constr_check_f TreatmentType_constraint; +ber_type_decoder_f TreatmentType_decode_ber; +der_type_encoder_f TreatmentType_encode_der; +xer_type_decoder_f TreatmentType_decode_xer; +xer_type_encoder_f TreatmentType_encode_xer; +oer_type_decoder_f TreatmentType_decode_oer; +oer_type_encoder_f TreatmentType_encode_oer; +per_type_decoder_f TreatmentType_decode_uper; +per_type_encoder_f TreatmentType_encode_uper; +per_type_decoder_f TreatmentType_decode_aper; +per_type_encoder_f TreatmentType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TreatmentType_H_ */ +#include diff --git a/vcits/ivim/TurningRadius.h b/vcits/ivim/TurningRadius.h new file mode 100644 index 0000000..8a4ecb4 --- /dev/null +++ b/vcits/ivim/TurningRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _TurningRadius_H_ +#define _TurningRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TurningRadius { + TurningRadius_point4Meters = 1, + TurningRadius_unavailable = 255 +} e_TurningRadius; + +/* TurningRadius */ +typedef long TurningRadius_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TurningRadius; +asn_struct_free_f TurningRadius_free; +asn_struct_print_f TurningRadius_print; +asn_constr_check_f TurningRadius_constraint; +ber_type_decoder_f TurningRadius_decode_ber; +der_type_encoder_f TurningRadius_encode_der; +xer_type_decoder_f TurningRadius_decode_xer; +xer_type_encoder_f TurningRadius_encode_xer; +oer_type_decoder_f TurningRadius_decode_oer; +oer_type_encoder_f TurningRadius_encode_oer; +per_type_decoder_f TurningRadius_decode_uper; +per_type_encoder_f TurningRadius_encode_uper; +per_type_decoder_f TurningRadius_decode_aper; +per_type_encoder_f TurningRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TurningRadius_H_ */ +#include diff --git a/vcits/ivim/UnitType.h b/vcits/ivim/UnitType.h new file mode 100644 index 0000000..c4b4356 --- /dev/null +++ b/vcits/ivim/UnitType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _UnitType_H_ +#define _UnitType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UnitType { + UnitType_mg_km = 0, + UnitType_mg_kWh = 1 +} e_UnitType; + +/* UnitType */ +typedef long UnitType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_UnitType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_UnitType; +extern const asn_INTEGER_specifics_t asn_SPC_UnitType_specs_1; +asn_struct_free_f UnitType_free; +asn_struct_print_f UnitType_print; +asn_constr_check_f UnitType_constraint; +ber_type_decoder_f UnitType_decode_ber; +der_type_encoder_f UnitType_encode_der; +xer_type_decoder_f UnitType_decode_xer; +xer_type_encoder_f UnitType_encode_xer; +oer_type_decoder_f UnitType_decode_oer; +oer_type_encoder_f UnitType_encode_oer; +per_type_decoder_f UnitType_decode_uper; +per_type_encoder_f UnitType_encode_uper; +per_type_decoder_f UnitType_decode_aper; +per_type_encoder_f UnitType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _UnitType_H_ */ +#include diff --git a/vcits/ivim/VDS.h b/vcits/ivim/VDS.h new file mode 100644 index 0000000..f010a3b --- /dev/null +++ b/vcits/ivim/VDS.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VDS_H_ +#define _VDS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VDS */ +typedef IA5String_t VDS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VDS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VDS; +asn_struct_free_f VDS_free; +asn_struct_print_f VDS_print; +asn_constr_check_f VDS_constraint; +ber_type_decoder_f VDS_decode_ber; +der_type_encoder_f VDS_encode_der; +xer_type_decoder_f VDS_decode_xer; +xer_type_encoder_f VDS_encode_xer; +oer_type_decoder_f VDS_decode_oer; +oer_type_encoder_f VDS_encode_oer; +per_type_decoder_f VDS_decode_uper; +per_type_encoder_f VDS_encode_uper; +per_type_decoder_f VDS_decode_aper; +per_type_encoder_f VDS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VDS_H_ */ +#include diff --git a/vcits/ivim/ValidityDuration.h b/vcits/ivim/ValidityDuration.h new file mode 100644 index 0000000..9a732de --- /dev/null +++ b/vcits/ivim/ValidityDuration.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ValidityDuration_H_ +#define _ValidityDuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ValidityDuration { + ValidityDuration_timeOfDetection = 0, + ValidityDuration_oneSecondAfterDetection = 1 +} e_ValidityDuration; + +/* ValidityDuration */ +typedef long ValidityDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ValidityDuration; +asn_struct_free_f ValidityDuration_free; +asn_struct_print_f ValidityDuration_print; +asn_constr_check_f ValidityDuration_constraint; +ber_type_decoder_f ValidityDuration_decode_ber; +der_type_encoder_f ValidityDuration_encode_der; +xer_type_decoder_f ValidityDuration_decode_xer; +xer_type_encoder_f ValidityDuration_encode_xer; +oer_type_decoder_f ValidityDuration_decode_oer; +oer_type_encoder_f ValidityDuration_encode_oer; +per_type_decoder_f ValidityDuration_decode_uper; +per_type_encoder_f ValidityDuration_encode_uper; +per_type_decoder_f ValidityDuration_decode_aper; +per_type_encoder_f ValidityDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ValidityDuration_H_ */ +#include diff --git a/vcits/ivim/ValidityOfContract.h b/vcits/ivim/ValidityOfContract.h new file mode 100644 index 0000000..79c96a1 --- /dev/null +++ b/vcits/ivim/ValidityOfContract.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ValidityOfContract_H_ +#define _ValidityOfContract_H_ + + +#include + +/* Including external dependencies */ +#include +#include "DateCompact.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ValidityOfContract */ +typedef struct ValidityOfContract { + OCTET_STRING_t issuerRestrictions; + DateCompact_t contractExpiryDate; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ValidityOfContract_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ValidityOfContract; + +#ifdef __cplusplus +} +#endif + +#endif /* _ValidityOfContract_H_ */ +#include diff --git a/vcits/ivim/ValidityPeriods.h b/vcits/ivim/ValidityPeriods.h new file mode 100644 index 0000000..7f75be4 --- /dev/null +++ b/vcits/ivim/ValidityPeriods.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ValidityPeriods_H_ +#define _ValidityPeriods_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct InternationalSign_applicablePeriod; + +/* ValidityPeriods */ +typedef struct ValidityPeriods { + A_SEQUENCE_OF(struct InternationalSign_applicablePeriod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ValidityPeriods_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ValidityPeriods; +extern asn_SET_OF_specifics_t asn_SPC_ValidityPeriods_specs_1; +extern asn_TYPE_member_t asn_MBR_ValidityPeriods_1[1]; +extern asn_per_constraints_t asn_PER_type_ValidityPeriods_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ValidityPeriods_H_ */ +#include diff --git a/vcits/ivim/VarLengthNumber.h b/vcits/ivim/VarLengthNumber.h new file mode 100644 index 0000000..aea1fd6 --- /dev/null +++ b/vcits/ivim/VarLengthNumber.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/tmp/gen_env/build/asn1/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VarLengthNumber_H_ +#define _VarLengthNumber_H_ + + +#include + +/* Including external dependencies */ +#include +#include "Ext1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VarLengthNumber_PR { + VarLengthNumber_PR_NOTHING, /* No components present */ + VarLengthNumber_PR_content, + VarLengthNumber_PR_extension +} VarLengthNumber_PR; + +/* VarLengthNumber */ +typedef struct VarLengthNumber { + VarLengthNumber_PR present; + union VarLengthNumber_u { + long content; + Ext1_t extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VarLengthNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VarLengthNumber; +extern asn_CHOICE_specifics_t asn_SPC_VarLengthNumber_specs_1; +extern asn_TYPE_member_t asn_MBR_VarLengthNumber_1[2]; +extern asn_per_constraints_t asn_PER_type_VarLengthNumber_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VarLengthNumber_H_ */ +#include diff --git a/vcits/ivim/VarLengthNumber2.h b/vcits/ivim/VarLengthNumber2.h new file mode 100644 index 0000000..1a6f62c --- /dev/null +++ b/vcits/ivim/VarLengthNumber2.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/tmp/gen_env/build/asn1/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VarLengthNumber2_H_ +#define _VarLengthNumber2_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VarLengthNumber2_PR { + VarLengthNumber2_PR_NOTHING, /* No components present */ + VarLengthNumber2_PR_shortNo, + VarLengthNumber2_PR_longNo +} VarLengthNumber2_PR; + +/* VarLengthNumber2 */ +typedef struct VarLengthNumber2 { + VarLengthNumber2_PR present; + union VarLengthNumber2_u { + long shortNo; + long longNo; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VarLengthNumber2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VarLengthNumber2; + +#ifdef __cplusplus +} +#endif + +#endif /* _VarLengthNumber2_H_ */ +#include diff --git a/vcits/ivim/VcClass.h b/vcits/ivim/VcClass.h new file mode 100644 index 0000000..cd35557 --- /dev/null +++ b/vcits/ivim/VcClass.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VcClass_H_ +#define _VcClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VcClass { + VcClass_classA = 0, + VcClass_classB = 1, + VcClass_classC = 2, + VcClass_classD = 3, + VcClass_classE = 4, + VcClass_classF = 5, + VcClass_classG = 6, + VcClass_classH = 7 +} e_VcClass; + +/* VcClass */ +typedef long VcClass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VcClass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VcClass; +asn_struct_free_f VcClass_free; +asn_struct_print_f VcClass_print; +asn_constr_check_f VcClass_constraint; +ber_type_decoder_f VcClass_decode_ber; +der_type_encoder_f VcClass_encode_der; +xer_type_decoder_f VcClass_decode_xer; +xer_type_encoder_f VcClass_encode_xer; +oer_type_decoder_f VcClass_decode_oer; +oer_type_encoder_f VcClass_encode_oer; +per_type_decoder_f VcClass_decode_uper; +per_type_encoder_f VcClass_encode_uper; +per_type_decoder_f VcClass_decode_aper; +per_type_encoder_f VcClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VcClass_H_ */ +#include diff --git a/vcits/ivim/VcCode.h b/vcits/ivim/VcCode.h new file mode 100644 index 0000000..c33c758 --- /dev/null +++ b/vcits/ivim/VcCode.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VcCode_H_ +#define _VcCode_H_ + + +#include + +/* Including external dependencies */ +#include "VcClass.h" +#include +#include "VcOption.h" +#include "RSCUnit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ValidityPeriods; + +/* VcCode */ +typedef struct VcCode { + VcClass_t roadSignClass; + long roadSignCode; + VcOption_t vcOption; + struct ValidityPeriods *validity; /* OPTIONAL */ + long *value; /* OPTIONAL */ + RSCUnit_t *unit; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VcCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VcCode; +extern asn_SEQUENCE_specifics_t asn_SPC_VcCode_specs_1; +extern asn_TYPE_member_t asn_MBR_VcCode_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VcCode_H_ */ +#include diff --git a/vcits/ivim/VcOption.h b/vcits/ivim/VcOption.h new file mode 100644 index 0000000..2922eb7 --- /dev/null +++ b/vcits/ivim/VcOption.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VcOption_H_ +#define _VcOption_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VcOption { + VcOption_none = 0, + VcOption_a = 1, + VcOption_b = 2, + VcOption_c = 3, + VcOption_d = 4, + VcOption_e = 5, + VcOption_f = 6, + VcOption_g = 7 +} e_VcOption; + +/* VcOption */ +typedef long VcOption_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VcOption_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VcOption; +asn_struct_free_f VcOption_free; +asn_struct_print_f VcOption_print; +asn_constr_check_f VcOption_constraint; +ber_type_decoder_f VcOption_decode_ber; +der_type_encoder_f VcOption_encode_der; +xer_type_decoder_f VcOption_decode_xer; +xer_type_encoder_f VcOption_encode_xer; +oer_type_decoder_f VcOption_decode_oer; +oer_type_encoder_f VcOption_encode_oer; +per_type_decoder_f VcOption_decode_uper; +per_type_encoder_f VcOption_encode_uper; +per_type_decoder_f VcOption_decode_aper; +per_type_encoder_f VcOption_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VcOption_H_ */ +#include diff --git a/vcits/ivim/VehicleAuthenticator.h b/vcits/ivim/VehicleAuthenticator.h new file mode 100644 index 0000000..fd2f3e1 --- /dev/null +++ b/vcits/ivim/VehicleAuthenticator.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleAuthenticator_H_ +#define _VehicleAuthenticator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleAuthenticator */ +typedef OCTET_STRING_t VehicleAuthenticator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleAuthenticator; +asn_struct_free_f VehicleAuthenticator_free; +asn_struct_print_f VehicleAuthenticator_print; +asn_constr_check_f VehicleAuthenticator_constraint; +ber_type_decoder_f VehicleAuthenticator_decode_ber; +der_type_encoder_f VehicleAuthenticator_encode_der; +xer_type_decoder_f VehicleAuthenticator_decode_xer; +xer_type_encoder_f VehicleAuthenticator_encode_xer; +oer_type_decoder_f VehicleAuthenticator_decode_oer; +oer_type_encoder_f VehicleAuthenticator_encode_oer; +per_type_decoder_f VehicleAuthenticator_decode_uper; +per_type_encoder_f VehicleAuthenticator_encode_uper; +per_type_decoder_f VehicleAuthenticator_decode_aper; +per_type_encoder_f VehicleAuthenticator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleAuthenticator_H_ */ +#include diff --git a/vcits/ivim/VehicleAxles.h b/vcits/ivim/VehicleAxles.h new file mode 100644 index 0000000..43e5e0f --- /dev/null +++ b/vcits/ivim/VehicleAxles.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleAxles_H_ +#define _VehicleAxles_H_ + + +#include + +/* Including external dependencies */ +#include "Int1.h" +#include +#include "TrailerAxles.h" +#include "TractorAxles.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleAxles__vehicleAxlesNumber__tyreType { + VehicleAxles__vehicleAxlesNumber__tyreType_notSpecified = 0, + VehicleAxles__vehicleAxlesNumber__tyreType_singleTyre = 1, + VehicleAxles__vehicleAxlesNumber__tyreType_dualTyres = 2, + VehicleAxles__vehicleAxlesNumber__tyreType_reservedForUse = 3 +} e_VehicleAxles__vehicleAxlesNumber__tyreType; + +/* VehicleAxles */ +typedef struct VehicleAxles { + Int1_t vehicleFirstAxleHeight; + struct VehicleAxles__vehicleAxlesNumber { + long tyreType; + struct VehicleAxles__vehicleAxlesNumber__numberOfAxles { + TrailerAxles_t trailerAxles; + TractorAxles_t tractorAxles; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } numberOfAxles; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } vehicleAxlesNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleAxles_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_tyreType_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleAxles; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleAxles_H_ */ +#include diff --git a/vcits/ivim/VehicleBreakdownSubCauseCode.h b/vcits/ivim/VehicleBreakdownSubCauseCode.h new file mode 100644 index 0000000..2d9d1d9 --- /dev/null +++ b/vcits/ivim/VehicleBreakdownSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleBreakdownSubCauseCode_H_ +#define _VehicleBreakdownSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleBreakdownSubCauseCode { + VehicleBreakdownSubCauseCode_unavailable = 0, + VehicleBreakdownSubCauseCode_lackOfFuel = 1, + VehicleBreakdownSubCauseCode_lackOfBatteryPower = 2, + VehicleBreakdownSubCauseCode_engineProblem = 3, + VehicleBreakdownSubCauseCode_transmissionProblem = 4, + VehicleBreakdownSubCauseCode_engineCoolingProblem = 5, + VehicleBreakdownSubCauseCode_brakingSystemProblem = 6, + VehicleBreakdownSubCauseCode_steeringProblem = 7, + VehicleBreakdownSubCauseCode_tyrePuncture = 8, + VehicleBreakdownSubCauseCode_tyrePressureProblem = 9 +} e_VehicleBreakdownSubCauseCode; + +/* VehicleBreakdownSubCauseCode */ +typedef long VehicleBreakdownSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode; +asn_struct_free_f VehicleBreakdownSubCauseCode_free; +asn_struct_print_f VehicleBreakdownSubCauseCode_print; +asn_constr_check_f VehicleBreakdownSubCauseCode_constraint; +ber_type_decoder_f VehicleBreakdownSubCauseCode_decode_ber; +der_type_encoder_f VehicleBreakdownSubCauseCode_encode_der; +xer_type_decoder_f VehicleBreakdownSubCauseCode_decode_xer; +xer_type_encoder_f VehicleBreakdownSubCauseCode_encode_xer; +oer_type_decoder_f VehicleBreakdownSubCauseCode_decode_oer; +oer_type_encoder_f VehicleBreakdownSubCauseCode_encode_oer; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_uper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_uper; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_aper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleBreakdownSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/VehicleCharacteristicsFixValues.h b/vcits/ivim/VehicleCharacteristicsFixValues.h new file mode 100644 index 0000000..4b6ad6a --- /dev/null +++ b/vcits/ivim/VehicleCharacteristicsFixValues.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleCharacteristicsFixValues_H_ +#define _VehicleCharacteristicsFixValues_H_ + + +#include + +/* Including external dependencies */ +#include "ITS-Container_StationType.h" +#include "EuVehicleCategoryCode.h" +#include "Iso3833VehicleType.h" +#include "EnvironmentalCharacteristics.h" +#include "EngineCharacteristics.h" +#include "LoadType.h" +#include "VehicleRole.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleCharacteristicsFixValues_PR { + VehicleCharacteristicsFixValues_PR_NOTHING, /* No components present */ + VehicleCharacteristicsFixValues_PR_simpleVehicleType, + VehicleCharacteristicsFixValues_PR_euVehicleCategoryCode, + VehicleCharacteristicsFixValues_PR_iso3833VehicleType, + VehicleCharacteristicsFixValues_PR_euroAndCo2value, + VehicleCharacteristicsFixValues_PR_engineCharacteristics, + VehicleCharacteristicsFixValues_PR_loadType, + VehicleCharacteristicsFixValues_PR_usage + /* Extensions may appear below */ + +} VehicleCharacteristicsFixValues_PR; + +/* VehicleCharacteristicsFixValues */ +typedef struct VehicleCharacteristicsFixValues { + VehicleCharacteristicsFixValues_PR present; + union VehicleCharacteristicsFixValues_u { + ITS_Container_StationType_t simpleVehicleType; + EuVehicleCategoryCode_t euVehicleCategoryCode; + Iso3833VehicleType_t iso3833VehicleType; + EnvironmentalCharacteristics_t euroAndCo2value; + EngineCharacteristics_t engineCharacteristics; + LoadType_t loadType; + VehicleRole_t usage; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleCharacteristicsFixValues_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleCharacteristicsFixValues; +extern asn_CHOICE_specifics_t asn_SPC_VehicleCharacteristicsFixValues_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleCharacteristicsFixValues_1[7]; +extern asn_per_constraints_t asn_PER_type_VehicleCharacteristicsFixValues_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleCharacteristicsFixValues_H_ */ +#include diff --git a/vcits/ivim/VehicleCharacteristicsFixValuesList.h b/vcits/ivim/VehicleCharacteristicsFixValuesList.h new file mode 100644 index 0000000..5aa4a8d --- /dev/null +++ b/vcits/ivim/VehicleCharacteristicsFixValuesList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleCharacteristicsFixValuesList_H_ +#define _VehicleCharacteristicsFixValuesList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct VehicleCharacteristicsFixValues; + +/* VehicleCharacteristicsFixValuesList */ +typedef struct VehicleCharacteristicsFixValuesList { + A_SEQUENCE_OF(struct VehicleCharacteristicsFixValues) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleCharacteristicsFixValuesList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleCharacteristicsFixValuesList; +extern asn_SET_OF_specifics_t asn_SPC_VehicleCharacteristicsFixValuesList_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleCharacteristicsFixValuesList_1[1]; +extern asn_per_constraints_t asn_PER_type_VehicleCharacteristicsFixValuesList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleCharacteristicsFixValuesList_H_ */ +#include diff --git a/vcits/ivim/VehicleCharacteristicsList.h b/vcits/ivim/VehicleCharacteristicsList.h new file mode 100644 index 0000000..9d5dc07 --- /dev/null +++ b/vcits/ivim/VehicleCharacteristicsList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleCharacteristicsList_H_ +#define _VehicleCharacteristicsList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CompleteVehicleCharacteristics; + +/* VehicleCharacteristicsList */ +typedef struct VehicleCharacteristicsList { + A_SEQUENCE_OF(struct CompleteVehicleCharacteristics) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleCharacteristicsList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleCharacteristicsList; +extern asn_SET_OF_specifics_t asn_SPC_VehicleCharacteristicsList_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleCharacteristicsList_1[1]; +extern asn_per_constraints_t asn_PER_type_VehicleCharacteristicsList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleCharacteristicsList_H_ */ +#include diff --git a/vcits/ivim/VehicleCharacteristicsRanges.h b/vcits/ivim/VehicleCharacteristicsRanges.h new file mode 100644 index 0000000..239b490 --- /dev/null +++ b/vcits/ivim/VehicleCharacteristicsRanges.h @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleCharacteristicsRanges_H_ +#define _VehicleCharacteristicsRanges_H_ + + +#include + +/* Including external dependencies */ +#include "ComparisonOperator.h" +#include +#include "VehicleDimensions.h" +#include "VehicleWeightLimits.h" +#include "AxleWeightLimits.h" +#include "PassengerCapacity.h" +#include "ExhaustEmissionValues.h" +#include "DieselEmissionValues.h" +#include "SoundLevel.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleCharacteristicsRanges__limits_PR { + VehicleCharacteristicsRanges__limits_PR_NOTHING, /* No components present */ + VehicleCharacteristicsRanges__limits_PR_numberOfAxles, + VehicleCharacteristicsRanges__limits_PR_vehicleDimensions, + VehicleCharacteristicsRanges__limits_PR_vehicleWeightLimits, + VehicleCharacteristicsRanges__limits_PR_axleWeightLimits, + VehicleCharacteristicsRanges__limits_PR_passengerCapacity, + VehicleCharacteristicsRanges__limits_PR_exhaustEmissionValues, + VehicleCharacteristicsRanges__limits_PR_dieselEmissionValues, + VehicleCharacteristicsRanges__limits_PR_soundLevel + /* Extensions may appear below */ + +} VehicleCharacteristicsRanges__limits_PR; + +/* VehicleCharacteristicsRanges */ +typedef struct VehicleCharacteristicsRanges { + ComparisonOperator_t comparisonOperator; + struct VehicleCharacteristicsRanges__limits { + VehicleCharacteristicsRanges__limits_PR present; + union VehicleCharacteristicsRanges__limits_u { + long numberOfAxles; + VehicleDimensions_t vehicleDimensions; + VehicleWeightLimits_t vehicleWeightLimits; + AxleWeightLimits_t axleWeightLimits; + PassengerCapacity_t passengerCapacity; + ExhaustEmissionValues_t exhaustEmissionValues; + DieselEmissionValues_t dieselEmissionValues; + SoundLevel_t soundLevel; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } limits; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleCharacteristicsRanges_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleCharacteristicsRanges; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleCharacteristicsRanges_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleCharacteristicsRanges_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleCharacteristicsRanges_H_ */ +#include diff --git a/vcits/ivim/VehicleCharacteristicsRangesList.h b/vcits/ivim/VehicleCharacteristicsRangesList.h new file mode 100644 index 0000000..c4954b2 --- /dev/null +++ b/vcits/ivim/VehicleCharacteristicsRangesList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleCharacteristicsRangesList_H_ +#define _VehicleCharacteristicsRangesList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct VehicleCharacteristicsRanges; + +/* VehicleCharacteristicsRangesList */ +typedef struct VehicleCharacteristicsRangesList { + A_SEQUENCE_OF(struct VehicleCharacteristicsRanges) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleCharacteristicsRangesList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleCharacteristicsRangesList; +extern asn_SET_OF_specifics_t asn_SPC_VehicleCharacteristicsRangesList_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleCharacteristicsRangesList_1[1]; +extern asn_per_constraints_t asn_PER_type_VehicleCharacteristicsRangesList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleCharacteristicsRangesList_H_ */ +#include diff --git a/vcits/ivim/VehicleClass.h b/vcits/ivim/VehicleClass.h new file mode 100644 index 0000000..1fc157d --- /dev/null +++ b/vcits/ivim/VehicleClass.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleClass_H_ +#define _VehicleClass_H_ + + +#include + +/* Including external dependencies */ +#include "Int1.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleClass */ +typedef Int1_t VehicleClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleClass; +asn_struct_free_f VehicleClass_free; +asn_struct_print_f VehicleClass_print; +asn_constr_check_f VehicleClass_constraint; +ber_type_decoder_f VehicleClass_decode_ber; +der_type_encoder_f VehicleClass_encode_der; +xer_type_decoder_f VehicleClass_decode_xer; +xer_type_encoder_f VehicleClass_encode_xer; +oer_type_decoder_f VehicleClass_decode_oer; +oer_type_encoder_f VehicleClass_encode_oer; +per_type_decoder_f VehicleClass_decode_uper; +per_type_encoder_f VehicleClass_encode_uper; +per_type_decoder_f VehicleClass_decode_aper; +per_type_encoder_f VehicleClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleClass_H_ */ +#include diff --git a/vcits/ivim/VehicleCurrentMaxTrainWeight.h b/vcits/ivim/VehicleCurrentMaxTrainWeight.h new file mode 100644 index 0000000..a2418a0 --- /dev/null +++ b/vcits/ivim/VehicleCurrentMaxTrainWeight.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleCurrentMaxTrainWeight_H_ +#define _VehicleCurrentMaxTrainWeight_H_ + + +#include + +/* Including external dependencies */ +#include "Int2.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleCurrentMaxTrainWeight */ +typedef Int2_t VehicleCurrentMaxTrainWeight_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleCurrentMaxTrainWeight; +asn_struct_free_f VehicleCurrentMaxTrainWeight_free; +asn_struct_print_f VehicleCurrentMaxTrainWeight_print; +asn_constr_check_f VehicleCurrentMaxTrainWeight_constraint; +ber_type_decoder_f VehicleCurrentMaxTrainWeight_decode_ber; +der_type_encoder_f VehicleCurrentMaxTrainWeight_encode_der; +xer_type_decoder_f VehicleCurrentMaxTrainWeight_decode_xer; +xer_type_encoder_f VehicleCurrentMaxTrainWeight_encode_xer; +oer_type_decoder_f VehicleCurrentMaxTrainWeight_decode_oer; +oer_type_encoder_f VehicleCurrentMaxTrainWeight_encode_oer; +per_type_decoder_f VehicleCurrentMaxTrainWeight_decode_uper; +per_type_encoder_f VehicleCurrentMaxTrainWeight_encode_uper; +per_type_decoder_f VehicleCurrentMaxTrainWeight_decode_aper; +per_type_encoder_f VehicleCurrentMaxTrainWeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleCurrentMaxTrainWeight_H_ */ +#include diff --git a/vcits/ivim/VehicleDimensions.h b/vcits/ivim/VehicleDimensions.h new file mode 100644 index 0000000..784deeb --- /dev/null +++ b/vcits/ivim/VehicleDimensions.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleDimensions_H_ +#define _VehicleDimensions_H_ + + +#include + +/* Including external dependencies */ +#include "Int1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleDimensions */ +typedef struct VehicleDimensions { + Int1_t vehicleLengthOverall; + Int1_t vehicleHeigthOverall; + Int1_t vehicleWidthOverall; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleDimensions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleDimensions; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleDimensions_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleDimensions_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleDimensions_H_ */ +#include diff --git a/vcits/ivim/VehicleHeight.h b/vcits/ivim/VehicleHeight.h new file mode 100644 index 0000000..7bdeaf6 --- /dev/null +++ b/vcits/ivim/VehicleHeight.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleHeight_H_ +#define _VehicleHeight_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleHeight */ +typedef long VehicleHeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleHeight; +asn_struct_free_f VehicleHeight_free; +asn_struct_print_f VehicleHeight_print; +asn_constr_check_f VehicleHeight_constraint; +ber_type_decoder_f VehicleHeight_decode_ber; +der_type_encoder_f VehicleHeight_encode_der; +xer_type_decoder_f VehicleHeight_decode_xer; +xer_type_encoder_f VehicleHeight_encode_xer; +oer_type_decoder_f VehicleHeight_decode_oer; +oer_type_encoder_f VehicleHeight_encode_oer; +per_type_decoder_f VehicleHeight_decode_uper; +per_type_encoder_f VehicleHeight_encode_uper; +per_type_decoder_f VehicleHeight_decode_aper; +per_type_encoder_f VehicleHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleHeight_H_ */ +#include diff --git a/vcits/ivim/VehicleID.h b/vcits/ivim/VehicleID.h new file mode 100644 index 0000000..e56c293 --- /dev/null +++ b/vcits/ivim/VehicleID.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleID_H_ +#define _VehicleID_H_ + + +#include + +/* Including external dependencies */ +#include "TemporaryID.h" +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleID_PR { + VehicleID_PR_NOTHING, /* No components present */ + VehicleID_PR_entityID, + VehicleID_PR_stationID +} VehicleID_PR; + +/* VehicleID */ +typedef struct VehicleID { + VehicleID_PR present; + union VehicleID_u { + TemporaryID_t entityID; + StationID_t stationID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleID; +extern asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleID_1[2]; +extern asn_per_constraints_t asn_PER_type_VehicleID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleID_H_ */ +#include diff --git a/vcits/ivim/VehicleIdentification.h b/vcits/ivim/VehicleIdentification.h new file mode 100644 index 0000000..f4904b6 --- /dev/null +++ b/vcits/ivim/VehicleIdentification.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleIdentification_H_ +#define _VehicleIdentification_H_ + + +#include + +/* Including external dependencies */ +#include "WMInumber.h" +#include "VDS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleIdentification */ +typedef struct VehicleIdentification { + WMInumber_t *wMInumber; /* OPTIONAL */ + VDS_t *vDS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleIdentification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleIdentification; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleIdentification_H_ */ +#include diff --git a/vcits/ivim/VehicleIdentificationNumber.h b/vcits/ivim/VehicleIdentificationNumber.h new file mode 100644 index 0000000..2498733 --- /dev/null +++ b/vcits/ivim/VehicleIdentificationNumber.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleIdentificationNumber_H_ +#define _VehicleIdentificationNumber_H_ + + +#include + +/* Including external dependencies */ +#include "CS5.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleIdentificationNumber */ +typedef CS5_t VehicleIdentificationNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleIdentificationNumber; +asn_struct_free_f VehicleIdentificationNumber_free; +asn_struct_print_f VehicleIdentificationNumber_print; +asn_constr_check_f VehicleIdentificationNumber_constraint; +ber_type_decoder_f VehicleIdentificationNumber_decode_ber; +der_type_encoder_f VehicleIdentificationNumber_encode_der; +xer_type_decoder_f VehicleIdentificationNumber_decode_xer; +xer_type_encoder_f VehicleIdentificationNumber_encode_xer; +oer_type_decoder_f VehicleIdentificationNumber_decode_oer; +oer_type_encoder_f VehicleIdentificationNumber_encode_oer; +per_type_decoder_f VehicleIdentificationNumber_decode_uper; +per_type_encoder_f VehicleIdentificationNumber_encode_uper; +per_type_decoder_f VehicleIdentificationNumber_decode_aper; +per_type_encoder_f VehicleIdentificationNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleIdentificationNumber_H_ */ +#include diff --git a/vcits/ivim/VehicleLength.h b/vcits/ivim/VehicleLength.h new file mode 100644 index 0000000..938f024 --- /dev/null +++ b/vcits/ivim/VehicleLength.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleLength_H_ +#define _VehicleLength_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleLengthValue.h" +#include "VehicleLengthConfidenceIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleLength */ +typedef struct VehicleLength { + VehicleLengthValue_t vehicleLengthValue; + VehicleLengthConfidenceIndication_t vehicleLengthConfidenceIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleLength; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLength_H_ */ +#include diff --git a/vcits/ivim/VehicleLengthConfidenceIndication.h b/vcits/ivim/VehicleLengthConfidenceIndication.h new file mode 100644 index 0000000..54d953b --- /dev/null +++ b/vcits/ivim/VehicleLengthConfidenceIndication.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleLengthConfidenceIndication_H_ +#define _VehicleLengthConfidenceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthConfidenceIndication { + VehicleLengthConfidenceIndication_noTrailerPresent = 0, + VehicleLengthConfidenceIndication_trailerPresentWithKnownLength = 1, + VehicleLengthConfidenceIndication_trailerPresentWithUnknownLength = 2, + VehicleLengthConfidenceIndication_trailerPresenceIsUnknown = 3, + VehicleLengthConfidenceIndication_unavailable = 4 +} e_VehicleLengthConfidenceIndication; + +/* VehicleLengthConfidenceIndication */ +typedef long VehicleLengthConfidenceIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1; +asn_struct_free_f VehicleLengthConfidenceIndication_free; +asn_struct_print_f VehicleLengthConfidenceIndication_print; +asn_constr_check_f VehicleLengthConfidenceIndication_constraint; +ber_type_decoder_f VehicleLengthConfidenceIndication_decode_ber; +der_type_encoder_f VehicleLengthConfidenceIndication_encode_der; +xer_type_decoder_f VehicleLengthConfidenceIndication_decode_xer; +xer_type_encoder_f VehicleLengthConfidenceIndication_encode_xer; +oer_type_decoder_f VehicleLengthConfidenceIndication_decode_oer; +oer_type_encoder_f VehicleLengthConfidenceIndication_encode_oer; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_uper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_uper; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_aper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthConfidenceIndication_H_ */ +#include diff --git a/vcits/ivim/VehicleLengthValue.h b/vcits/ivim/VehicleLengthValue.h new file mode 100644 index 0000000..371723c --- /dev/null +++ b/vcits/ivim/VehicleLengthValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleLengthValue_H_ +#define _VehicleLengthValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthValue { + VehicleLengthValue_tenCentimeters = 1, + VehicleLengthValue_outOfRange = 1022, + VehicleLengthValue_unavailable = 1023 +} e_VehicleLengthValue; + +/* VehicleLengthValue */ +typedef long VehicleLengthValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue; +asn_struct_free_f VehicleLengthValue_free; +asn_struct_print_f VehicleLengthValue_print; +asn_constr_check_f VehicleLengthValue_constraint; +ber_type_decoder_f VehicleLengthValue_decode_ber; +der_type_encoder_f VehicleLengthValue_encode_der; +xer_type_decoder_f VehicleLengthValue_decode_xer; +xer_type_encoder_f VehicleLengthValue_encode_xer; +oer_type_decoder_f VehicleLengthValue_decode_oer; +oer_type_encoder_f VehicleLengthValue_encode_oer; +per_type_decoder_f VehicleLengthValue_decode_uper; +per_type_encoder_f VehicleLengthValue_encode_uper; +per_type_decoder_f VehicleLengthValue_decode_aper; +per_type_encoder_f VehicleLengthValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthValue_H_ */ +#include diff --git a/vcits/ivim/VehicleLicencePlateNumber.h b/vcits/ivim/VehicleLicencePlateNumber.h new file mode 100644 index 0000000..2c81d68 --- /dev/null +++ b/vcits/ivim/VehicleLicencePlateNumber.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleLicencePlateNumber_H_ +#define _VehicleLicencePlateNumber_H_ + + +#include + +/* Including external dependencies */ +#include "LPN.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleLicencePlateNumber */ +typedef LPN_t VehicleLicencePlateNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleLicencePlateNumber; +asn_struct_free_f VehicleLicencePlateNumber_free; +asn_struct_print_f VehicleLicencePlateNumber_print; +asn_constr_check_f VehicleLicencePlateNumber_constraint; +ber_type_decoder_f VehicleLicencePlateNumber_decode_ber; +der_type_encoder_f VehicleLicencePlateNumber_encode_der; +xer_type_decoder_f VehicleLicencePlateNumber_decode_xer; +xer_type_encoder_f VehicleLicencePlateNumber_encode_xer; +oer_type_decoder_f VehicleLicencePlateNumber_decode_oer; +oer_type_encoder_f VehicleLicencePlateNumber_encode_oer; +per_type_decoder_f VehicleLicencePlateNumber_decode_uper; +per_type_encoder_f VehicleLicencePlateNumber_encode_uper; +per_type_decoder_f VehicleLicencePlateNumber_decode_aper; +per_type_encoder_f VehicleLicencePlateNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLicencePlateNumber_H_ */ +#include diff --git a/vcits/ivim/VehicleMass.h b/vcits/ivim/VehicleMass.h new file mode 100644 index 0000000..1e18502 --- /dev/null +++ b/vcits/ivim/VehicleMass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleMass_H_ +#define _VehicleMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleMass { + VehicleMass_hundredKg = 1, + VehicleMass_unavailable = 1024 +} e_VehicleMass; + +/* VehicleMass */ +typedef long VehicleMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleMass; +asn_struct_free_f VehicleMass_free; +asn_struct_print_f VehicleMass_print; +asn_constr_check_f VehicleMass_constraint; +ber_type_decoder_f VehicleMass_decode_ber; +der_type_encoder_f VehicleMass_encode_der; +xer_type_decoder_f VehicleMass_decode_xer; +xer_type_encoder_f VehicleMass_encode_xer; +oer_type_decoder_f VehicleMass_decode_oer; +oer_type_encoder_f VehicleMass_encode_oer; +per_type_decoder_f VehicleMass_decode_uper; +per_type_encoder_f VehicleMass_encode_uper; +per_type_decoder_f VehicleMass_decode_aper; +per_type_encoder_f VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleMass_H_ */ +#include diff --git a/vcits/ivim/VehicleRole.h b/vcits/ivim/VehicleRole.h new file mode 100644 index 0000000..1e3f975 --- /dev/null +++ b/vcits/ivim/VehicleRole.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleRole_H_ +#define _VehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleRole { + VehicleRole_default = 0, + VehicleRole_publicTransport = 1, + VehicleRole_specialTransport = 2, + VehicleRole_dangerousGoods = 3, + VehicleRole_roadWork = 4, + VehicleRole_rescue = 5, + VehicleRole_emergency = 6, + VehicleRole_safetyCar = 7, + VehicleRole_agriculture = 8, + VehicleRole_commercial = 9, + VehicleRole_military = 10, + VehicleRole_roadOperator = 11, + VehicleRole_taxi = 12, + VehicleRole_reserved1 = 13, + VehicleRole_reserved2 = 14, + VehicleRole_reserved3 = 15 +} e_VehicleRole; + +/* VehicleRole */ +typedef long VehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleRole_specs_1; +asn_struct_free_f VehicleRole_free; +asn_struct_print_f VehicleRole_print; +asn_constr_check_f VehicleRole_constraint; +ber_type_decoder_f VehicleRole_decode_ber; +der_type_encoder_f VehicleRole_encode_der; +xer_type_decoder_f VehicleRole_decode_xer; +xer_type_encoder_f VehicleRole_encode_xer; +oer_type_decoder_f VehicleRole_decode_oer; +oer_type_encoder_f VehicleRole_encode_oer; +per_type_decoder_f VehicleRole_decode_uper; +per_type_encoder_f VehicleRole_encode_uper; +per_type_decoder_f VehicleRole_decode_aper; +per_type_encoder_f VehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleRole_H_ */ +#include diff --git a/vcits/ivim/VehicleSpecificCharacteristics.h b/vcits/ivim/VehicleSpecificCharacteristics.h new file mode 100644 index 0000000..ff6b988 --- /dev/null +++ b/vcits/ivim/VehicleSpecificCharacteristics.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleSpecificCharacteristics_H_ +#define _VehicleSpecificCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "EnvironmentalCharacteristics.h" +#include "EngineCharacteristics.h" +#include "DescriptiveCharacteristics.h" +#include "FutureCharacteristics.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleSpecificCharacteristics */ +typedef struct VehicleSpecificCharacteristics { + EnvironmentalCharacteristics_t environmentalCharacteristics; + EngineCharacteristics_t engineCharacteristics; + DescriptiveCharacteristics_t descriptiveCharacteristics; + FutureCharacteristics_t futureCharacteristics; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleSpecificCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleSpecificCharacteristics; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleSpecificCharacteristics_H_ */ +#include diff --git a/vcits/ivim/VehicleTotalDistance.h b/vcits/ivim/VehicleTotalDistance.h new file mode 100644 index 0000000..518cf06 --- /dev/null +++ b/vcits/ivim/VehicleTotalDistance.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleTotalDistance_H_ +#define _VehicleTotalDistance_H_ + + +#include + +/* Including external dependencies */ +#include "Int4.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleTotalDistance */ +typedef Int4_t VehicleTotalDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleTotalDistance; +asn_struct_free_f VehicleTotalDistance_free; +asn_struct_print_f VehicleTotalDistance_print; +asn_constr_check_f VehicleTotalDistance_constraint; +ber_type_decoder_f VehicleTotalDistance_decode_ber; +der_type_encoder_f VehicleTotalDistance_encode_der; +xer_type_decoder_f VehicleTotalDistance_decode_xer; +xer_type_encoder_f VehicleTotalDistance_encode_xer; +oer_type_decoder_f VehicleTotalDistance_decode_oer; +oer_type_encoder_f VehicleTotalDistance_encode_oer; +per_type_decoder_f VehicleTotalDistance_decode_uper; +per_type_encoder_f VehicleTotalDistance_encode_uper; +per_type_decoder_f VehicleTotalDistance_decode_aper; +per_type_encoder_f VehicleTotalDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleTotalDistance_H_ */ +#include diff --git a/vcits/ivim/VehicleType.h b/vcits/ivim/VehicleType.h new file mode 100644 index 0000000..e89ab82 --- /dev/null +++ b/vcits/ivim/VehicleType.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleType_H_ +#define _VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleType { + VehicleType_none = 0, + VehicleType_unknown = 1, + VehicleType_special = 2, + VehicleType_moto = 3, + VehicleType_car = 4, + VehicleType_carOther = 5, + VehicleType_bus = 6, + VehicleType_axleCnt2 = 7, + VehicleType_axleCnt3 = 8, + VehicleType_axleCnt4 = 9, + VehicleType_axleCnt4Trailer = 10, + VehicleType_axleCnt5Trailer = 11, + VehicleType_axleCnt6Trailer = 12, + VehicleType_axleCnt5MultiTrailer = 13, + VehicleType_axleCnt6MultiTrailer = 14, + VehicleType_axleCnt7MultiTrailer = 15 + /* + * Enumeration is extensible + */ +} e_VehicleType; + +/* VehicleType */ +typedef long VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleType; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1; +asn_struct_free_f VehicleType_free; +asn_struct_print_f VehicleType_print; +asn_constr_check_f VehicleType_constraint; +ber_type_decoder_f VehicleType_decode_ber; +der_type_encoder_f VehicleType_encode_der; +xer_type_decoder_f VehicleType_decode_xer; +xer_type_encoder_f VehicleType_encode_xer; +oer_type_decoder_f VehicleType_decode_oer; +oer_type_encoder_f VehicleType_encode_oer; +per_type_decoder_f VehicleType_decode_uper; +per_type_encoder_f VehicleType_encode_uper; +per_type_decoder_f VehicleType_decode_aper; +per_type_encoder_f VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleType_H_ */ +#include diff --git a/vcits/ivim/VehicleWeightLaden.h b/vcits/ivim/VehicleWeightLaden.h new file mode 100644 index 0000000..36e8bdb --- /dev/null +++ b/vcits/ivim/VehicleWeightLaden.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleWeightLaden_H_ +#define _VehicleWeightLaden_H_ + + +#include + +/* Including external dependencies */ +#include "Int2.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleWeightLaden */ +typedef Int2_t VehicleWeightLaden_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleWeightLaden; +asn_struct_free_f VehicleWeightLaden_free; +asn_struct_print_f VehicleWeightLaden_print; +asn_constr_check_f VehicleWeightLaden_constraint; +ber_type_decoder_f VehicleWeightLaden_decode_ber; +der_type_encoder_f VehicleWeightLaden_encode_der; +xer_type_decoder_f VehicleWeightLaden_decode_xer; +xer_type_encoder_f VehicleWeightLaden_encode_xer; +oer_type_decoder_f VehicleWeightLaden_decode_oer; +oer_type_encoder_f VehicleWeightLaden_encode_oer; +per_type_decoder_f VehicleWeightLaden_decode_uper; +per_type_encoder_f VehicleWeightLaden_encode_uper; +per_type_decoder_f VehicleWeightLaden_decode_aper; +per_type_encoder_f VehicleWeightLaden_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleWeightLaden_H_ */ +#include diff --git a/vcits/ivim/VehicleWeightLimits.h b/vcits/ivim/VehicleWeightLimits.h new file mode 100644 index 0000000..2ab1396 --- /dev/null +++ b/vcits/ivim/VehicleWeightLimits.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleWeightLimits_H_ +#define _VehicleWeightLimits_H_ + + +#include + +/* Including external dependencies */ +#include "Int2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleWeightLimits */ +typedef struct VehicleWeightLimits { + Int2_t vehicleMaxLadenWeight; + Int2_t vehicleTrainMaximumWeight; + Int2_t vehicleWeightUnladen; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleWeightLimits_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleWeightLimits; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleWeightLimits_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleWeightLimits_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleWeightLimits_H_ */ +#include diff --git a/vcits/ivim/VehicleWidth.h b/vcits/ivim/VehicleWidth.h new file mode 100644 index 0000000..4371e7f --- /dev/null +++ b/vcits/ivim/VehicleWidth.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VehicleWidth_H_ +#define _VehicleWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleWidth { + VehicleWidth_tenCentimeters = 1, + VehicleWidth_outOfRange = 61, + VehicleWidth_unavailable = 62 +} e_VehicleWidth; + +/* VehicleWidth */ +typedef long VehicleWidth_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleWidth; +asn_struct_free_f VehicleWidth_free; +asn_struct_print_f VehicleWidth_print; +asn_constr_check_f VehicleWidth_constraint; +ber_type_decoder_f VehicleWidth_decode_ber; +der_type_encoder_f VehicleWidth_encode_der; +xer_type_decoder_f VehicleWidth_decode_xer; +xer_type_encoder_f VehicleWidth_encode_xer; +oer_type_decoder_f VehicleWidth_decode_oer; +oer_type_encoder_f VehicleWidth_encode_oer; +per_type_decoder_f VehicleWidth_decode_uper; +per_type_encoder_f VehicleWidth_encode_uper; +per_type_decoder_f VehicleWidth_decode_aper; +per_type_encoder_f VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleWidth_H_ */ +#include diff --git a/vcits/ivim/Velocity.h b/vcits/ivim/Velocity.h new file mode 100644 index 0000000..1093dd5 --- /dev/null +++ b/vcits/ivim/Velocity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Velocity_H_ +#define _Velocity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Velocity */ +typedef long Velocity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Velocity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Velocity; +asn_struct_free_f Velocity_free; +asn_struct_print_f Velocity_print; +asn_constr_check_f Velocity_constraint; +ber_type_decoder_f Velocity_decode_ber; +der_type_encoder_f Velocity_encode_der; +xer_type_decoder_f Velocity_decode_xer; +xer_type_encoder_f Velocity_encode_xer; +oer_type_decoder_f Velocity_decode_oer; +oer_type_encoder_f Velocity_encode_oer; +per_type_decoder_f Velocity_decode_uper; +per_type_encoder_f Velocity_encode_uper; +per_type_decoder_f Velocity_decode_aper; +per_type_encoder_f Velocity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Velocity_H_ */ +#include diff --git a/vcits/ivim/VerticalAcceleration.h b/vcits/ivim/VerticalAcceleration.h new file mode 100644 index 0000000..7a36934 --- /dev/null +++ b/vcits/ivim/VerticalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VerticalAcceleration_H_ +#define _VerticalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "VerticalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VerticalAcceleration */ +typedef struct VerticalAcceleration { + VerticalAccelerationValue_t verticalAccelerationValue; + AccelerationConfidence_t verticalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VerticalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAcceleration_H_ */ +#include diff --git a/vcits/ivim/VerticalAccelerationValue.h b/vcits/ivim/VerticalAccelerationValue.h new file mode 100644 index 0000000..d55284e --- /dev/null +++ b/vcits/ivim/VerticalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _VerticalAccelerationValue_H_ +#define _VerticalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VerticalAccelerationValue { + VerticalAccelerationValue_pointOneMeterPerSecSquaredUp = 1, + VerticalAccelerationValue_pointOneMeterPerSecSquaredDown = -1, + VerticalAccelerationValue_unavailable = 161 +} e_VerticalAccelerationValue; + +/* VerticalAccelerationValue */ +typedef long VerticalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue; +asn_struct_free_f VerticalAccelerationValue_free; +asn_struct_print_f VerticalAccelerationValue_print; +asn_constr_check_f VerticalAccelerationValue_constraint; +ber_type_decoder_f VerticalAccelerationValue_decode_ber; +der_type_encoder_f VerticalAccelerationValue_encode_der; +xer_type_decoder_f VerticalAccelerationValue_decode_xer; +xer_type_encoder_f VerticalAccelerationValue_encode_xer; +oer_type_decoder_f VerticalAccelerationValue_decode_oer; +oer_type_encoder_f VerticalAccelerationValue_encode_oer; +per_type_decoder_f VerticalAccelerationValue_decode_uper; +per_type_encoder_f VerticalAccelerationValue_encode_uper; +per_type_decoder_f VerticalAccelerationValue_decode_aper; +per_type_encoder_f VerticalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAccelerationValue_H_ */ +#include diff --git a/vcits/ivim/WMInumber.h b/vcits/ivim/WMInumber.h new file mode 100644 index 0000000..3a92c48 --- /dev/null +++ b/vcits/ivim/WMInumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _WMInumber_H_ +#define _WMInumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WMInumber */ +typedef IA5String_t WMInumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WMInumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WMInumber; +asn_struct_free_f WMInumber_free; +asn_struct_print_f WMInumber_print; +asn_constr_check_f WMInumber_constraint; +ber_type_decoder_f WMInumber_decode_ber; +der_type_encoder_f WMInumber_encode_der; +xer_type_decoder_f WMInumber_decode_xer; +xer_type_encoder_f WMInumber_encode_xer; +oer_type_decoder_f WMInumber_decode_oer; +oer_type_encoder_f WMInumber_encode_oer; +per_type_decoder_f WMInumber_decode_uper; +per_type_encoder_f WMInumber_encode_uper; +per_type_decoder_f WMInumber_decode_aper; +per_type_encoder_f WMInumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WMInumber_H_ */ +#include diff --git a/vcits/ivim/WaitOnStopline.h b/vcits/ivim/WaitOnStopline.h new file mode 100644 index 0000000..2b374cb --- /dev/null +++ b/vcits/ivim/WaitOnStopline.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _WaitOnStopline_H_ +#define _WaitOnStopline_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WaitOnStopline */ +typedef BOOLEAN_t WaitOnStopline_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WaitOnStopline; +asn_struct_free_f WaitOnStopline_free; +asn_struct_print_f WaitOnStopline_print; +asn_constr_check_f WaitOnStopline_constraint; +ber_type_decoder_f WaitOnStopline_decode_ber; +der_type_encoder_f WaitOnStopline_encode_der; +xer_type_decoder_f WaitOnStopline_decode_xer; +xer_type_encoder_f WaitOnStopline_encode_xer; +oer_type_decoder_f WaitOnStopline_decode_oer; +oer_type_encoder_f WaitOnStopline_encode_oer; +per_type_decoder_f WaitOnStopline_decode_uper; +per_type_encoder_f WaitOnStopline_encode_uper; +per_type_decoder_f WaitOnStopline_decode_aper; +per_type_encoder_f WaitOnStopline_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WaitOnStopline_H_ */ +#include diff --git a/vcits/ivim/WearLevel.h b/vcits/ivim/WearLevel.h new file mode 100644 index 0000000..74af683 --- /dev/null +++ b/vcits/ivim/WearLevel.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _WearLevel_H_ +#define _WearLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WearLevel { + WearLevel_new = 0, + WearLevel_good = 1, + WearLevel_bad = 2, + WearLevel_hasPotholes = 3, + WearLevel_unavailable = 7 +} e_WearLevel; + +/* WearLevel */ +typedef long WearLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WearLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WearLevel; +asn_struct_free_f WearLevel_free; +asn_struct_print_f WearLevel_print; +asn_constr_check_f WearLevel_constraint; +ber_type_decoder_f WearLevel_decode_ber; +der_type_encoder_f WearLevel_encode_der; +xer_type_decoder_f WearLevel_decode_xer; +xer_type_encoder_f WearLevel_encode_xer; +oer_type_decoder_f WearLevel_decode_oer; +oer_type_encoder_f WearLevel_encode_oer; +per_type_decoder_f WearLevel_decode_uper; +per_type_encoder_f WearLevel_encode_uper; +per_type_decoder_f WearLevel_decode_aper; +per_type_encoder_f WearLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WearLevel_H_ */ +#include diff --git a/vcits/ivim/Weight.h b/vcits/ivim/Weight.h new file mode 100644 index 0000000..59f7ad1 --- /dev/null +++ b/vcits/ivim/Weight.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Weight_H_ +#define _Weight_H_ + + +#include + +/* Including external dependencies */ +#include +#include "Code-Units.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Weight */ +typedef struct Weight { + long value; + Code_Units_t unit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Weight_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Weight; +extern asn_SEQUENCE_specifics_t asn_SPC_Weight_specs_1; +extern asn_TYPE_member_t asn_MBR_Weight_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Weight_H_ */ +#include diff --git a/vcits/ivim/WheelBaseVehicle.h b/vcits/ivim/WheelBaseVehicle.h new file mode 100644 index 0000000..04e2dc7 --- /dev/null +++ b/vcits/ivim/WheelBaseVehicle.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _WheelBaseVehicle_H_ +#define _WheelBaseVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WheelBaseVehicle { + WheelBaseVehicle_tenCentimeters = 1, + WheelBaseVehicle_unavailable = 127 +} e_WheelBaseVehicle; + +/* WheelBaseVehicle */ +typedef long WheelBaseVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle; +asn_struct_free_f WheelBaseVehicle_free; +asn_struct_print_f WheelBaseVehicle_print; +asn_constr_check_f WheelBaseVehicle_constraint; +ber_type_decoder_f WheelBaseVehicle_decode_ber; +der_type_encoder_f WheelBaseVehicle_encode_der; +xer_type_decoder_f WheelBaseVehicle_decode_xer; +xer_type_encoder_f WheelBaseVehicle_encode_xer; +oer_type_decoder_f WheelBaseVehicle_decode_oer; +oer_type_encoder_f WheelBaseVehicle_encode_oer; +per_type_decoder_f WheelBaseVehicle_decode_uper; +per_type_encoder_f WheelBaseVehicle_encode_uper; +per_type_decoder_f WheelBaseVehicle_decode_aper; +per_type_encoder_f WheelBaseVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WheelBaseVehicle_H_ */ +#include diff --git a/vcits/ivim/WrongWayDrivingSubCauseCode.h b/vcits/ivim/WrongWayDrivingSubCauseCode.h new file mode 100644 index 0000000..ffbbca8 --- /dev/null +++ b/vcits/ivim/WrongWayDrivingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _WrongWayDrivingSubCauseCode_H_ +#define _WrongWayDrivingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WrongWayDrivingSubCauseCode { + WrongWayDrivingSubCauseCode_unavailable = 0, + WrongWayDrivingSubCauseCode_wrongLane = 1, + WrongWayDrivingSubCauseCode_wrongDirection = 2 +} e_WrongWayDrivingSubCauseCode; + +/* WrongWayDrivingSubCauseCode */ +typedef long WrongWayDrivingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode; +asn_struct_free_f WrongWayDrivingSubCauseCode_free; +asn_struct_print_f WrongWayDrivingSubCauseCode_print; +asn_constr_check_f WrongWayDrivingSubCauseCode_constraint; +ber_type_decoder_f WrongWayDrivingSubCauseCode_decode_ber; +der_type_encoder_f WrongWayDrivingSubCauseCode_encode_der; +xer_type_decoder_f WrongWayDrivingSubCauseCode_decode_xer; +xer_type_encoder_f WrongWayDrivingSubCauseCode_encode_xer; +oer_type_decoder_f WrongWayDrivingSubCauseCode_decode_oer; +oer_type_encoder_f WrongWayDrivingSubCauseCode_encode_oer; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_uper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_uper; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_aper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WrongWayDrivingSubCauseCode_H_ */ +#include diff --git a/vcits/ivim/YawRate.h b/vcits/ivim/YawRate.h new file mode 100644 index 0000000..ecc4094 --- /dev/null +++ b/vcits/ivim/YawRate.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _YawRate_H_ +#define _YawRate_H_ + + +#include + +/* Including external dependencies */ +#include "YawRateValue.h" +#include "YawRateConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* YawRate */ +typedef struct YawRate { + YawRateValue_t yawRateValue; + YawRateConfidence_t yawRateConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} YawRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_YawRate; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRate_H_ */ +#include diff --git a/vcits/ivim/YawRateConfidence.h b/vcits/ivim/YawRateConfidence.h new file mode 100644 index 0000000..4680650 --- /dev/null +++ b/vcits/ivim/YawRateConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _YawRateConfidence_H_ +#define _YawRateConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateConfidence { + YawRateConfidence_degSec_000_01 = 0, + YawRateConfidence_degSec_000_05 = 1, + YawRateConfidence_degSec_000_10 = 2, + YawRateConfidence_degSec_001_00 = 3, + YawRateConfidence_degSec_005_00 = 4, + YawRateConfidence_degSec_010_00 = 5, + YawRateConfidence_degSec_100_00 = 6, + YawRateConfidence_outOfRange = 7, + YawRateConfidence_unavailable = 8 +} e_YawRateConfidence; + +/* YawRateConfidence */ +typedef long YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1; +asn_struct_free_f YawRateConfidence_free; +asn_struct_print_f YawRateConfidence_print; +asn_constr_check_f YawRateConfidence_constraint; +ber_type_decoder_f YawRateConfidence_decode_ber; +der_type_encoder_f YawRateConfidence_encode_der; +xer_type_decoder_f YawRateConfidence_decode_xer; +xer_type_encoder_f YawRateConfidence_encode_xer; +oer_type_decoder_f YawRateConfidence_decode_oer; +oer_type_encoder_f YawRateConfidence_encode_oer; +per_type_decoder_f YawRateConfidence_decode_uper; +per_type_encoder_f YawRateConfidence_encode_uper; +per_type_decoder_f YawRateConfidence_decode_aper; +per_type_encoder_f YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateConfidence_H_ */ +#include diff --git a/vcits/ivim/YawRateValue.h b/vcits/ivim/YawRateValue.h new file mode 100644 index 0000000..6760b48 --- /dev/null +++ b/vcits/ivim/YawRateValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _YawRateValue_H_ +#define _YawRateValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateValue { + YawRateValue_straight = 0, + YawRateValue_degSec_000_01ToRight = -1, + YawRateValue_degSec_000_01ToLeft = 1, + YawRateValue_unavailable = 32767 +} e_YawRateValue; + +/* YawRateValue */ +typedef long YawRateValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateValue; +asn_struct_free_f YawRateValue_free; +asn_struct_print_f YawRateValue_print; +asn_constr_check_f YawRateValue_constraint; +ber_type_decoder_f YawRateValue_decode_ber; +der_type_encoder_f YawRateValue_encode_der; +xer_type_decoder_f YawRateValue_decode_xer; +xer_type_encoder_f YawRateValue_encode_xer; +oer_type_decoder_f YawRateValue_decode_oer; +oer_type_encoder_f YawRateValue_encode_oer; +per_type_decoder_f YawRateValue_decode_uper; +per_type_encoder_f YawRateValue_encode_uper; +per_type_decoder_f YawRateValue_decode_aper; +per_type_encoder_f YawRateValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateValue_H_ */ +#include diff --git a/vcits/ivim/Zid.h b/vcits/ivim/Zid.h new file mode 100644 index 0000000..7b0e7cd --- /dev/null +++ b/vcits/ivim/Zid.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Zid_H_ +#define _Zid_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Zid */ +typedef long Zid_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Zid_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Zid; +asn_struct_free_f Zid_free; +asn_struct_print_f Zid_print; +asn_constr_check_f Zid_constraint; +ber_type_decoder_f Zid_decode_ber; +der_type_encoder_f Zid_encode_der; +xer_type_decoder_f Zid_decode_xer; +xer_type_encoder_f Zid_encode_xer; +oer_type_decoder_f Zid_decode_oer; +oer_type_encoder_f Zid_encode_oer; +per_type_decoder_f Zid_decode_uper; +per_type_encoder_f Zid_encode_uper; +per_type_decoder_f Zid_decode_aper; +per_type_encoder_f Zid_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Zid_H_ */ +#include diff --git a/vcits/ivim/Zone.h b/vcits/ivim/Zone.h new file mode 100644 index 0000000..d40687e --- /dev/null +++ b/vcits/ivim/Zone.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _Zone_H_ +#define _Zone_H_ + + +#include + +/* Including external dependencies */ +#include "Segment.h" +#include "PolygonalLine.h" +#include "ComputedSegment.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Zone_PR { + Zone_PR_NOTHING, /* No components present */ + Zone_PR_segment, + Zone_PR_area, + Zone_PR_computedSegment + /* Extensions may appear below */ + +} Zone_PR; + +/* Zone */ +typedef struct Zone { + Zone_PR present; + union Zone_u { + Segment_t segment; + PolygonalLine_t area; + ComputedSegment_t computedSegment; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Zone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Zone; +extern asn_CHOICE_specifics_t asn_SPC_Zone_specs_1; +extern asn_TYPE_member_t asn_MBR_Zone_1[3]; +extern asn_per_constraints_t asn_PER_type_Zone_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Zone_H_ */ +#include diff --git a/vcits/ivim/ZoneIds.h b/vcits/ivim/ZoneIds.h new file mode 100644 index 0000000..ee6be30 --- /dev/null +++ b/vcits/ivim/ZoneIds.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ZoneIds_H_ +#define _ZoneIds_H_ + + +#include + +/* Including external dependencies */ +#include "Zid.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ZoneIds */ +typedef struct ZoneIds { + A_SEQUENCE_OF(Zid_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ZoneIds_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ZoneIds; +extern asn_SET_OF_specifics_t asn_SPC_ZoneIds_specs_1; +extern asn_TYPE_member_t asn_MBR_ZoneIds_1[1]; +extern asn_per_constraints_t asn_PER_type_ZoneIds_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ZoneIds_H_ */ +#include diff --git a/vcits/ivim/ZoneLength.h b/vcits/ivim/ZoneLength.h new file mode 100644 index 0000000..0799a66 --- /dev/null +++ b/vcits/ivim/ZoneLength.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#ifndef _ZoneLength_H_ +#define _ZoneLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ZoneLength */ +typedef long ZoneLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ZoneLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ZoneLength; +asn_struct_free_f ZoneLength_free; +asn_struct_print_f ZoneLength_print; +asn_constr_check_f ZoneLength_constraint; +ber_type_decoder_f ZoneLength_decode_ber; +der_type_encoder_f ZoneLength_encode_der; +xer_type_decoder_f ZoneLength_decode_xer; +xer_type_encoder_f ZoneLength_encode_xer; +oer_type_decoder_f ZoneLength_decode_oer; +oer_type_encoder_f ZoneLength_encode_oer; +per_type_decoder_f ZoneLength_decode_uper; +per_type_encoder_f ZoneLength_encode_uper; +per_type_decoder_f ZoneLength_decode_aper; +per_type_encoder_f ZoneLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ZoneLength_H_ */ +#include diff --git a/vcits/ivim/asn_constant.h b/vcits/ivim/asn_constant.h new file mode 100644 index 0000000..a7cb899 --- /dev/null +++ b/vcits/ivim/asn_constant.h @@ -0,0 +1,340 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_StationID (0) +#define max_val_StationID (4294967295) +#define min_val_Longitude (-1800000000) +#define max_val_Longitude (1800000001) +#define min_val_Latitude (-900000000) +#define max_val_Latitude (900000001) +#define min_val_AltitudeValue (-100000) +#define max_val_AltitudeValue (800001) +#define min_val_DeltaLongitude (-131071) +#define max_val_DeltaLongitude (131072) +#define min_val_DeltaLatitude (-131071) +#define max_val_DeltaLatitude (131072) +#define min_val_DeltaAltitude (-12700) +#define max_val_DeltaAltitude (12800) +#define min_val_PtActivationType (0) +#define max_val_PtActivationType (255) +#define min_val_SemiAxisLength (0) +#define max_val_SemiAxisLength (4095) +#define min_val_CauseCodeType (0) +#define max_val_CauseCodeType (255) +#define min_val_SubCauseCodeType (0) +#define max_val_SubCauseCodeType (255) +#define min_val_TrafficConditionSubCauseCode (0) +#define max_val_TrafficConditionSubCauseCode (255) +#define min_val_AccidentSubCauseCode (0) +#define max_val_AccidentSubCauseCode (255) +#define min_val_RoadworksSubCauseCode (0) +#define max_val_RoadworksSubCauseCode (255) +#define min_val_HumanPresenceOnTheRoadSubCauseCode (0) +#define max_val_HumanPresenceOnTheRoadSubCauseCode (255) +#define min_val_WrongWayDrivingSubCauseCode (0) +#define max_val_WrongWayDrivingSubCauseCode (255) +#define min_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_AdhesionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_AdhesionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_VisibilitySubCauseCode (0) +#define max_val_AdverseWeatherCondition_VisibilitySubCauseCode (255) +#define min_val_AdverseWeatherCondition_PrecipitationSubCauseCode (0) +#define max_val_AdverseWeatherCondition_PrecipitationSubCauseCode (255) +#define min_val_SlowVehicleSubCauseCode (0) +#define max_val_SlowVehicleSubCauseCode (255) +#define min_val_StationaryVehicleSubCauseCode (0) +#define max_val_StationaryVehicleSubCauseCode (255) +#define min_val_HumanProblemSubCauseCode (0) +#define max_val_HumanProblemSubCauseCode (255) +#define min_val_EmergencyVehicleApproachingSubCauseCode (0) +#define max_val_EmergencyVehicleApproachingSubCauseCode (255) +#define min_val_HazardousLocation_DangerousCurveSubCauseCode (0) +#define max_val_HazardousLocation_DangerousCurveSubCauseCode (255) +#define min_val_HazardousLocation_SurfaceConditionSubCauseCode (0) +#define max_val_HazardousLocation_SurfaceConditionSubCauseCode (255) +#define min_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (255) +#define min_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (255) +#define min_val_CollisionRiskSubCauseCode (0) +#define max_val_CollisionRiskSubCauseCode (255) +#define min_val_SignalViolationSubCauseCode (0) +#define max_val_SignalViolationSubCauseCode (255) +#define min_val_RescueAndRecoveryWorkInProgressSubCauseCode (0) +#define max_val_RescueAndRecoveryWorkInProgressSubCauseCode (255) +#define min_val_DangerousEndOfQueueSubCauseCode (0) +#define max_val_DangerousEndOfQueueSubCauseCode (255) +#define min_val_DangerousSituationSubCauseCode (0) +#define max_val_DangerousSituationSubCauseCode (255) +#define min_val_VehicleBreakdownSubCauseCode (0) +#define max_val_VehicleBreakdownSubCauseCode (255) +#define min_val_PostCrashSubCauseCode (0) +#define max_val_PostCrashSubCauseCode (255) +#define min_val_CurvatureValue (-1023) +#define max_val_CurvatureValue (1023) +#define min_val_HeadingValue (0) +#define max_val_HeadingValue (3601) +#define min_val_HeadingConfidence (1) +#define max_val_HeadingConfidence (127) +#define min_val_LanePosition (-1) +#define max_val_LanePosition (14) +#define min_val_PerformanceClass (0) +#define max_val_PerformanceClass (7) +#define min_val_SpeedValue (0) +#define max_val_SpeedValue (16383) +#define min_val_SpeedConfidence (1) +#define max_val_SpeedConfidence (127) +#define min_val_VehicleMass (1) +#define max_val_VehicleMass (1024) +#define min_val_LongitudinalAccelerationValue (-160) +#define max_val_LongitudinalAccelerationValue (161) +#define min_val_AccelerationConfidence (0) +#define max_val_AccelerationConfidence (102) +#define min_val_LateralAccelerationValue (-160) +#define max_val_LateralAccelerationValue (161) +#define min_val_VerticalAccelerationValue (-160) +#define max_val_VerticalAccelerationValue (161) +#define min_val_ITS_Container_StationType (0) +#define max_val_ITS_Container_StationType (255) +#define min_val_HeightLonCarr (1) +#define max_val_HeightLonCarr (100) +#define min_val_PosLonCarr (1) +#define max_val_PosLonCarr (127) +#define min_val_PosPillar (1) +#define max_val_PosPillar (30) +#define min_val_PosCentMass (1) +#define max_val_PosCentMass (63) +#define min_val_SpeedLimit (1) +#define max_val_SpeedLimit (255) +#define min_val_ITS_Container_Temperature (-60) +#define max_val_ITS_Container_Temperature (67) +#define min_val_WheelBaseVehicle (1) +#define max_val_WheelBaseVehicle (127) +#define min_val_TurningRadius (1) +#define max_val_TurningRadius (255) +#define min_val_PosFrontAx (1) +#define max_val_PosFrontAx (20) +#define min_val_VehicleLengthValue (1) +#define max_val_VehicleLengthValue (1023) +#define min_val_VehicleWidth (1) +#define max_val_VehicleWidth (62) +#define min_val_InformationQuality (0) +#define max_val_InformationQuality (7) +#define min_val_SteeringWheelAngleValue (-511) +#define max_val_SteeringWheelAngleValue (512) +#define min_val_SteeringWheelAngleConfidence (1) +#define max_val_SteeringWheelAngleConfidence (127) +#define min_val_TimestampIts (0) +#define max_val_TimestampIts (4398046511103) +#define min_val_YawRateValue (-32766) +#define max_val_YawRateValue (32767) +#define min_val_TransmissionInterval (1) +#define max_val_TransmissionInterval (10000) +#define min_val_ValidityDuration (0) +#define max_val_ValidityDuration (86400) +#define min_val_NumberOfOccupants (0) +#define max_val_NumberOfOccupants (127) +#define min_val_SequenceNumber (0) +#define max_val_SequenceNumber (65535) +#define min_val_ProtectedZoneID (0) +#define max_val_ProtectedZoneID (134217727) +#define min_val_Iso3833VehicleType (0) +#define max_val_Iso3833VehicleType (255) +#define min_val_InternationalSign_directionalFlowOfLane (1) +#define max_val_InternationalSign_directionalFlowOfLane (8) +#define min_val_InternationalSign_rateOfIncline (1) +#define max_val_InternationalSign_rateOfIncline (32) +#define min_val_InternationalSign_numberOfLane (0) +#define max_val_InternationalSign_numberOfLane (99) +#define min_val_Code_Units (0) +#define max_val_Code_Units (15) +#define CITSapplMgmtIDs_version (1) +#define min_val_ChannelId (0) +#define max_val_ChannelId (255) +#define min_val_SetMMIRq (0) +#define max_val_SetMMIRq (255) +#define min_val_DescriptiveCharacteristics (0) +#define max_val_DescriptiveCharacteristics (255) +#define min_val_EngineCharacteristics (0) +#define max_val_EngineCharacteristics (255) +#define min_val_FutureCharacteristics (0) +#define max_val_FutureCharacteristics (255) +#define min_val_Int1 (0) +#define max_val_Int1 (255) +#define min_val_Int2 (0) +#define max_val_Int2 (65535) +#define min_val_Int3 (0) +#define max_val_Int3 (16777215) +#define min_val_Int4 (0) +#define max_val_Int4 (4294967295) +#define min_val_ResultOp (0) +#define max_val_ResultOp (255) +#define min_val_TrailerAxles (0) +#define max_val_TrailerAxles (7) +#define min_val_TractorAxles (0) +#define max_val_TractorAxles (7) +#define min_val_TimeReference (0) +#define max_val_TimeReference (60000) +#define min_val_TimeMark (0) +#define max_val_TimeMark (36001) +#define min_val_Angle (0) +#define max_val_Angle (28800) +#define min_val_ApproachID (0) +#define max_val_ApproachID (15) +#define min_val_DDay (0) +#define max_val_DDay (31) +#define min_val_DeltaAngle (-150) +#define max_val_DeltaAngle (150) +#define min_val_DeltaTime (-122) +#define max_val_DeltaTime (121) +#define min_val_DHour (0) +#define max_val_DHour (31) +#define min_val_DMinute (0) +#define max_val_DMinute (60) +#define min_val_DMonth (0) +#define max_val_DMonth (12) +#define min_val_DOffset (-840) +#define max_val_DOffset (840) +#define min_val_DrivenLineOffsetLg (-32767) +#define max_val_DrivenLineOffsetLg (32767) +#define min_val_DrivenLineOffsetSm (-2047) +#define max_val_DrivenLineOffsetSm (2047) +#define min_val_DSecond (0) +#define max_val_DSecond (65535) +#define min_val_DSRCmsgID (0) +#define max_val_DSRCmsgID (32767) +#define min_val_DYear (0) +#define max_val_DYear (4095) +#define min_val_Elevation (-4096) +#define max_val_Elevation (61439) +#define min_val_FuelType (0) +#define max_val_FuelType (15) +#define min_val_HeadingDSRC (0) +#define max_val_HeadingDSRC (28800) +#define min_val_IntersectionID (0) +#define max_val_IntersectionID (65535) +#define min_val_LaneConnectionID (0) +#define max_val_LaneConnectionID (255) +#define min_val_LaneID (0) +#define max_val_LaneID (255) +#define min_val_LayerID (0) +#define max_val_LayerID (100) +#define min_val_LaneWidth (0) +#define max_val_LaneWidth (32767) +#define min_val_MergeDivergeNodeAngle (-180) +#define max_val_MergeDivergeNodeAngle (180) +#define min_val_MinuteOfTheYear (0) +#define max_val_MinuteOfTheYear (527040) +#define min_val_MsgCount (0) +#define max_val_MsgCount (127) +#define min_val_Offset_B09 (-256) +#define max_val_Offset_B09 (255) +#define min_val_Offset_B10 (-512) +#define max_val_Offset_B10 (511) +#define min_val_Offset_B11 (-1024) +#define max_val_Offset_B11 (1023) +#define min_val_Offset_B12 (-2048) +#define max_val_Offset_B12 (2047) +#define min_val_Offset_B13 (-4096) +#define max_val_Offset_B13 (4095) +#define min_val_Offset_B14 (-8192) +#define max_val_Offset_B14 (8191) +#define min_val_Offset_B16 (-32768) +#define max_val_Offset_B16 (32767) +#define min_val_RegionId (0) +#define max_val_RegionId (255) +#define min_val_RequestID (0) +#define max_val_RequestID (255) +#define min_val_RestrictionClassID (0) +#define max_val_RestrictionClassID (255) +#define min_val_RoadRegulatorID (0) +#define max_val_RoadRegulatorID (65535) +#define min_val_RoadSegmentID (0) +#define max_val_RoadSegmentID (65535) +#define min_val_RoadwayCrownAngle (-128) +#define max_val_RoadwayCrownAngle (127) +#define min_val_Scale_B12 (-2048) +#define max_val_Scale_B12 (2047) +#define min_val_SignalGroupID (0) +#define max_val_SignalGroupID (255) +#define min_val_SemiMajorAxisAccuracy (0) +#define max_val_SemiMajorAxisAccuracy (255) +#define min_val_SemiMajorAxisOrientation (0) +#define max_val_SemiMajorAxisOrientation (65535) +#define min_val_SemiMinorAxisAccuracy (0) +#define max_val_SemiMinorAxisAccuracy (255) +#define min_val_SpeedAdvice (0) +#define max_val_SpeedAdvice (500) +#define min_val_TimeIntervalConfidence (0) +#define max_val_TimeIntervalConfidence (15) +#define min_val_VehicleHeight (0) +#define max_val_VehicleHeight (127) +#define min_val_Velocity (0) +#define max_val_Velocity (8191) +#define min_val_ZoneLength (0) +#define max_val_ZoneLength (10000) +#define min_val_IssuerIdentifier (0) +#define max_val_IssuerIdentifier (16383) +#define min_val_ManufacturerIdentifier (0) +#define max_val_ManufacturerIdentifier (65535) +#define min_val_AlphabetIndicator (0) +#define max_val_AlphabetIndicator (63) +#define AVIAEINumberingAndDataStructures_version (1) +#define min_val_BankingAngle (-20) +#define max_val_BankingAngle (21) +#define min_val_ComparisonOperator (0) +#define max_val_ComparisonOperator (3) +#define min_val_Depth (0) +#define max_val_Depth (255) +#define min_val_Direction (0) +#define max_val_Direction (3) +#define min_val_IVI_DriverCharacteristics (0) +#define max_val_IVI_DriverCharacteristics (3) +#define min_val_FrictionCoefficient (0) +#define max_val_FrictionCoefficient (101) +#define min_val_GapBetweenVehicles (0) +#define max_val_GapBetweenVehicles (255) +#define min_val_IviLaneWidth (0) +#define max_val_IviLaneWidth (1023) +#define min_val_IviPurpose (0) +#define max_val_IviPurpose (3) +#define min_val_IviStatus (0) +#define max_val_IviStatus (7) +#define min_val_IviType (0) +#define max_val_IviType (7) +#define min_val_LaneType (0) +#define max_val_LaneType (31) +#define min_val_MaxLenghtOfPlatoon (1) +#define max_val_MaxLenghtOfPlatoon (64) +#define min_val_MaxNoOfVehicles (2) +#define max_val_MaxNoOfVehicles (64) +#define min_val_PriorityLevel (0) +#define max_val_PriorityLevel (2) +#define min_val_RSCUnit (0) +#define max_val_RSCUnit (15) +#define min_val_SaeAutomationLevel (0) +#define max_val_SaeAutomationLevel (5) +#define min_val_IVI_Temperature (-100) +#define max_val_IVI_Temperature (151) +#define min_val_TreatmentType (0) +#define max_val_TreatmentType (7) +#define min_val_VcClass (0) +#define max_val_VcClass (7) +#define min_val_VcOption (0) +#define max_val_VcOption (7) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/vcits/ivim/src/AbsolutePosition.c b/vcits/ivim/src/AbsolutePosition.c new file mode 100644 index 0000000..e2391ac --- /dev/null +++ b/vcits/ivim/src/AbsolutePosition.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AbsolutePosition.h" + +asn_TYPE_member_t asn_MBR_AbsolutePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AbsolutePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct AbsolutePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_AbsolutePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AbsolutePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AbsolutePosition_specs_1 = { + sizeof(struct AbsolutePosition), + offsetof(struct AbsolutePosition, _asn_ctx), + asn_MAP_AbsolutePosition_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AbsolutePosition = { + "AbsolutePosition", + "AbsolutePosition", + &asn_OP_SEQUENCE, + asn_DEF_AbsolutePosition_tags_1, + sizeof(asn_DEF_AbsolutePosition_tags_1) + /sizeof(asn_DEF_AbsolutePosition_tags_1[0]), /* 1 */ + asn_DEF_AbsolutePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_AbsolutePosition_tags_1) + /sizeof(asn_DEF_AbsolutePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AbsolutePosition_1, + 2, /* Elements count */ + &asn_SPC_AbsolutePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AbsolutePositionWAltitude.c b/vcits/ivim/src/AbsolutePositionWAltitude.c new file mode 100644 index 0000000..60839bc --- /dev/null +++ b/vcits/ivim/src/AbsolutePositionWAltitude.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AbsolutePositionWAltitude.h" + +asn_TYPE_member_t asn_MBR_AbsolutePositionWAltitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AbsolutePositionWAltitude, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct AbsolutePositionWAltitude, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct AbsolutePositionWAltitude, altitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_AbsolutePositionWAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AbsolutePositionWAltitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* longitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AbsolutePositionWAltitude_specs_1 = { + sizeof(struct AbsolutePositionWAltitude), + offsetof(struct AbsolutePositionWAltitude, _asn_ctx), + asn_MAP_AbsolutePositionWAltitude_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AbsolutePositionWAltitude = { + "AbsolutePositionWAltitude", + "AbsolutePositionWAltitude", + &asn_OP_SEQUENCE, + asn_DEF_AbsolutePositionWAltitude_tags_1, + sizeof(asn_DEF_AbsolutePositionWAltitude_tags_1) + /sizeof(asn_DEF_AbsolutePositionWAltitude_tags_1[0]), /* 1 */ + asn_DEF_AbsolutePositionWAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_AbsolutePositionWAltitude_tags_1) + /sizeof(asn_DEF_AbsolutePositionWAltitude_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AbsolutePositionWAltitude_1, + 3, /* Elements count */ + &asn_SPC_AbsolutePositionWAltitude_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AbsolutePositions.c b/vcits/ivim/src/AbsolutePositions.c new file mode 100644 index 0000000..ac2c063 --- /dev/null +++ b/vcits/ivim/src/AbsolutePositions.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AbsolutePositions.h" + +#include "AbsolutePosition.h" +static asn_oer_constraints_t asn_OER_type_AbsolutePositions_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_AbsolutePositions_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AbsolutePositions_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AbsolutePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AbsolutePositions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AbsolutePositions_specs_1 = { + sizeof(struct AbsolutePositions), + offsetof(struct AbsolutePositions, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AbsolutePositions = { + "AbsolutePositions", + "AbsolutePositions", + &asn_OP_SEQUENCE_OF, + asn_DEF_AbsolutePositions_tags_1, + sizeof(asn_DEF_AbsolutePositions_tags_1) + /sizeof(asn_DEF_AbsolutePositions_tags_1[0]), /* 1 */ + asn_DEF_AbsolutePositions_tags_1, /* Same as above */ + sizeof(asn_DEF_AbsolutePositions_tags_1) + /sizeof(asn_DEF_AbsolutePositions_tags_1[0]), /* 1 */ + { &asn_OER_type_AbsolutePositions_constr_1, &asn_PER_type_AbsolutePositions_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AbsolutePositions_1, + 1, /* Single element */ + &asn_SPC_AbsolutePositions_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AbsolutePositionsWAltitude.c b/vcits/ivim/src/AbsolutePositionsWAltitude.c new file mode 100644 index 0000000..f77c845 --- /dev/null +++ b/vcits/ivim/src/AbsolutePositionsWAltitude.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AbsolutePositionsWAltitude.h" + +#include "AbsolutePositionWAltitude.h" +static asn_oer_constraints_t asn_OER_type_AbsolutePositionsWAltitude_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_AbsolutePositionsWAltitude_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AbsolutePositionsWAltitude_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AbsolutePositionWAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AbsolutePositionsWAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AbsolutePositionsWAltitude_specs_1 = { + sizeof(struct AbsolutePositionsWAltitude), + offsetof(struct AbsolutePositionsWAltitude, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AbsolutePositionsWAltitude = { + "AbsolutePositionsWAltitude", + "AbsolutePositionsWAltitude", + &asn_OP_SEQUENCE_OF, + asn_DEF_AbsolutePositionsWAltitude_tags_1, + sizeof(asn_DEF_AbsolutePositionsWAltitude_tags_1) + /sizeof(asn_DEF_AbsolutePositionsWAltitude_tags_1[0]), /* 1 */ + asn_DEF_AbsolutePositionsWAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_AbsolutePositionsWAltitude_tags_1) + /sizeof(asn_DEF_AbsolutePositionsWAltitude_tags_1[0]), /* 1 */ + { &asn_OER_type_AbsolutePositionsWAltitude_constr_1, &asn_PER_type_AbsolutePositionsWAltitude_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AbsolutePositionsWAltitude_1, + 1, /* Single element */ + &asn_SPC_AbsolutePositionsWAltitude_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AccelerationConfidence.c b/vcits/ivim/src/AccelerationConfidence.c new file mode 100644 index 0000000..6f2c782 --- /dev/null +++ b/vcits/ivim/src/AccelerationConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AccelerationConfidence.h" + +int +AccelerationConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 102)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..102) */, + -1}; +asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 102 } /* (0..102) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeInteger, + asn_DEF_AccelerationConfidence_tags_1, + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationConfidence_constr_1, &asn_PER_type_AccelerationConfidence_constr_1, AccelerationConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/AccelerationControl.c b/vcits/ivim/src/AccelerationControl.c new file mode 100644 index 0000000..6599b7a --- /dev/null +++ b/vcits/ivim/src/AccelerationControl.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AccelerationControl.h" + +int +AccelerationControl_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationControl = { + "AccelerationControl", + "AccelerationControl", + &asn_OP_BIT_STRING, + asn_DEF_AccelerationControl_tags_1, + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + asn_DEF_AccelerationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationControl_constr_1, &asn_PER_type_AccelerationControl_constr_1, AccelerationControl_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AccidentSubCauseCode.c b/vcits/ivim/src/AccidentSubCauseCode.c new file mode 100644 index 0000000..1aa6a34 --- /dev/null +++ b/vcits/ivim/src/AccidentSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AccidentSubCauseCode.h" + +int +AccidentSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccidentSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode = { + "AccidentSubCauseCode", + "AccidentSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AccidentSubCauseCode_tags_1, + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AccidentSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AccidentSubCauseCode_constr_1, &asn_PER_type_AccidentSubCauseCode_constr_1, AccidentSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ActionID.c b/vcits/ivim/src/ActionID.c new file mode 100644 index 0000000..a2b178a --- /dev/null +++ b/vcits/ivim/src/ActionID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ActionID.h" + +asn_TYPE_member_t asn_MBR_ActionID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ActionID, originatingStationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "originatingStationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ActionID, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SequenceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ActionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ActionID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingStationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sequenceNumber */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ActionID_specs_1 = { + sizeof(struct ActionID), + offsetof(struct ActionID, _asn_ctx), + asn_MAP_ActionID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ActionID = { + "ActionID", + "ActionID", + &asn_OP_SEQUENCE, + asn_DEF_ActionID_tags_1, + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + asn_DEF_ActionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ActionID_1, + 2, /* Elements count */ + &asn_SPC_ActionID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ActualNumberOfPassengers.c b/vcits/ivim/src/ActualNumberOfPassengers.c new file mode 100644 index 0000000..9770afd --- /dev/null +++ b/vcits/ivim/src/ActualNumberOfPassengers.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ActualNumberOfPassengers.h" + +int +ActualNumberOfPassengers_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using Int1, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ActualNumberOfPassengers_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_ActualNumberOfPassengers_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ActualNumberOfPassengers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ActualNumberOfPassengers = { + "ActualNumberOfPassengers", + "ActualNumberOfPassengers", + &asn_OP_NativeInteger, + asn_DEF_ActualNumberOfPassengers_tags_1, + sizeof(asn_DEF_ActualNumberOfPassengers_tags_1) + /sizeof(asn_DEF_ActualNumberOfPassengers_tags_1[0]), /* 1 */ + asn_DEF_ActualNumberOfPassengers_tags_1, /* Same as above */ + sizeof(asn_DEF_ActualNumberOfPassengers_tags_1) + /sizeof(asn_DEF_ActualNumberOfPassengers_tags_1[0]), /* 1 */ + { &asn_OER_type_ActualNumberOfPassengers_constr_1, &asn_PER_type_ActualNumberOfPassengers_constr_1, ActualNumberOfPassengers_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/AddRq.c b/vcits/ivim/src/AddRq.c new file mode 100644 index 0000000..820b755 --- /dev/null +++ b/vcits/ivim/src/AddRq.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AddRq.h" + +static int +memb_attributeId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_attributeId_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_attributeId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (0..127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_AddRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AddRq, attributeId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_attributeId_constr_2, &asn_PER_memb_attributeId_constr_2, memb_attributeId_constraint_1 }, + 0, 0, /* No default value */ + "attributeId" + }, + { ATF_NOFLAGS, 0, offsetof(struct AddRq, value), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_AddRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AddRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* attributeId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* value */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_AddRq_specs_1 = { + sizeof(struct AddRq), + offsetof(struct AddRq, _asn_ctx), + asn_MAP_AddRq_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AddRq = { + "AddRq", + "AddRq", + &asn_OP_SEQUENCE, + asn_DEF_AddRq_tags_1, + sizeof(asn_DEF_AddRq_tags_1) + /sizeof(asn_DEF_AddRq_tags_1[0]), /* 1 */ + asn_DEF_AddRq_tags_1, /* Same as above */ + sizeof(asn_DEF_AddRq_tags_1) + /sizeof(asn_DEF_AddRq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AddRq_1, + 2, /* Elements count */ + &asn_SPC_AddRq_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AdverseWeatherCondition-AdhesionSubCauseCode.c b/vcits/ivim/src/AdverseWeatherCondition-AdhesionSubCauseCode.c new file mode 100644 index 0000000..49114b4 --- /dev/null +++ b/vcits/ivim/src/AdverseWeatherCondition-AdhesionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AdverseWeatherCondition-AdhesionSubCauseCode.h" + +int +AdverseWeatherCondition_AdhesionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode = { + "AdverseWeatherCondition-AdhesionSubCauseCode", + "AdverseWeatherCondition-AdhesionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, AdverseWeatherCondition_AdhesionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c b/vcits/ivim/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c new file mode 100644 index 0000000..0add932 --- /dev/null +++ b/vcits/ivim/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" + +int +AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = { + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c b/vcits/ivim/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c new file mode 100644 index 0000000..28e71f2 --- /dev/null +++ b/vcits/ivim/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AdverseWeatherCondition-PrecipitationSubCauseCode.h" + +int +AdverseWeatherCondition_PrecipitationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode = { + "AdverseWeatherCondition-PrecipitationSubCauseCode", + "AdverseWeatherCondition-PrecipitationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, AdverseWeatherCondition_PrecipitationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/AdverseWeatherCondition-VisibilitySubCauseCode.c b/vcits/ivim/src/AdverseWeatherCondition-VisibilitySubCauseCode.c new file mode 100644 index 0000000..546633a --- /dev/null +++ b/vcits/ivim/src/AdverseWeatherCondition-VisibilitySubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AdverseWeatherCondition-VisibilitySubCauseCode.h" + +int +AdverseWeatherCondition_VisibilitySubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode = { + "AdverseWeatherCondition-VisibilitySubCauseCode", + "AdverseWeatherCondition-VisibilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, AdverseWeatherCondition_VisibilitySubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/AdvisorySpeed.c b/vcits/ivim/src/AdvisorySpeed.c new file mode 100644 index 0000000..7c5bb76 --- /dev/null +++ b/vcits/ivim/src/AdvisorySpeed.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AdvisorySpeed.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_AdvisorySpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct AdvisorySpeed__regional), + offsetof(struct AdvisorySpeed__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AdvisorySpeed, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 5, offsetof(struct AdvisorySpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedAdvice, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct AdvisorySpeed, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 3, offsetof(struct AdvisorySpeed, distance), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "distance" + }, + { ATF_POINTER, 2, offsetof(struct AdvisorySpeed, Class), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "class" + }, + { ATF_POINTER, 1, offsetof(struct AdvisorySpeed, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_AdvisorySpeed_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AdvisorySpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* distance */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* class */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1 = { + sizeof(struct AdvisorySpeed), + offsetof(struct AdvisorySpeed, _asn_ctx), + asn_MAP_AdvisorySpeed_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_AdvisorySpeed_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed = { + "AdvisorySpeed", + "AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_AdvisorySpeed_tags_1, + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AdvisorySpeed_1, + 6, /* Elements count */ + &asn_SPC_AdvisorySpeed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AdvisorySpeedList.c b/vcits/ivim/src/AdvisorySpeedList.c new file mode 100644 index 0000000..0487ef7 --- /dev/null +++ b/vcits/ivim/src/AdvisorySpeedList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AdvisorySpeedList.h" + +#include "AdvisorySpeed.h" +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AdvisorySpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1 = { + sizeof(struct AdvisorySpeedList), + offsetof(struct AdvisorySpeedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList = { + "AdvisorySpeedList", + "AdvisorySpeedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_AdvisorySpeedList_tags_1, + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedList_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + { &asn_OER_type_AdvisorySpeedList_constr_1, &asn_PER_type_AdvisorySpeedList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AdvisorySpeedList_1, + 1, /* Single element */ + &asn_SPC_AdvisorySpeedList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AdvisorySpeedType.c b/vcits/ivim/src/AdvisorySpeedType.c new file mode 100644 index 0000000..18de3a5 --- /dev/null +++ b/vcits/ivim/src/AdvisorySpeedType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AdvisorySpeedType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AdvisorySpeedType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 9, "greenwave" }, + { 2, 8, "ecoDrive" }, + { 3, 7, "transit" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_AdvisorySpeedType_enum2value_1[] = { + 2, /* ecoDrive(2) */ + 1, /* greenwave(1) */ + 0, /* none(0) */ + 3 /* transit(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1 = { + asn_MAP_AdvisorySpeedType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AdvisorySpeedType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType = { + "AdvisorySpeedType", + "AdvisorySpeedType", + &asn_OP_NativeEnumerated, + asn_DEF_AdvisorySpeedType_tags_1, + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedType_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + { &asn_OER_type_AdvisorySpeedType_constr_1, &asn_PER_type_AdvisorySpeedType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AdvisorySpeedType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AllowedManeuvers.c b/vcits/ivim/src/AllowedManeuvers.c new file mode 100644 index 0000000..f73a747 --- /dev/null +++ b/vcits/ivim/src/AllowedManeuvers.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AllowedManeuvers.h" + +int +AllowedManeuvers_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { 0, 0 }, + 12 /* (SIZE(12..12)) */}; +asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 12, 12 } /* (SIZE(12..12)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AllowedManeuvers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers = { + "AllowedManeuvers", + "AllowedManeuvers", + &asn_OP_BIT_STRING, + asn_DEF_AllowedManeuvers_tags_1, + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + asn_DEF_AllowedManeuvers_tags_1, /* Same as above */ + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + { &asn_OER_type_AllowedManeuvers_constr_1, &asn_PER_type_AllowedManeuvers_constr_1, AllowedManeuvers_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AlphabetIndicator.c b/vcits/ivim/src/AlphabetIndicator.c new file mode 100644 index 0000000..6fd9c1b --- /dev/null +++ b/vcits/ivim/src/AlphabetIndicator.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AlphabetIndicator.h" + +int +AlphabetIndicator_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AlphabetIndicator_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +asn_per_constraints_t asn_PER_type_AlphabetIndicator_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AlphabetIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AlphabetIndicator = { + "AlphabetIndicator", + "AlphabetIndicator", + &asn_OP_NativeInteger, + asn_DEF_AlphabetIndicator_tags_1, + sizeof(asn_DEF_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_AlphabetIndicator_tags_1[0]), /* 1 */ + asn_DEF_AlphabetIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_AlphabetIndicator_tags_1[0]), /* 1 */ + { &asn_OER_type_AlphabetIndicator_constr_1, &asn_PER_type_AlphabetIndicator_constr_1, AlphabetIndicator_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Altitude.c b/vcits/ivim/src/Altitude.c new file mode 100644 index 0000000..a0eb3d0 --- /dev/null +++ b/vcits/ivim/src/Altitude.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Altitude.h" + +asn_TYPE_member_t asn_MBR_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Altitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altitudeValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altitudeConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1 = { + sizeof(struct Altitude), + offsetof(struct Altitude, _asn_ctx), + asn_MAP_Altitude_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_Altitude_tags_1, + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + asn_DEF_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Altitude_1, + 2, /* Elements count */ + &asn_SPC_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AltitudeConfidence.c b/vcits/ivim/src/AltitudeConfidence.c new file mode 100644 index 0000000..a14099c --- /dev/null +++ b/vcits/ivim/src/AltitudeConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AltitudeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AltitudeConfidence_value2enum_1[] = { + { 0, 10, "alt-000-01" }, + { 1, 10, "alt-000-02" }, + { 2, 10, "alt-000-05" }, + { 3, 10, "alt-000-10" }, + { 4, 10, "alt-000-20" }, + { 5, 10, "alt-000-50" }, + { 6, 10, "alt-001-00" }, + { 7, 10, "alt-002-00" }, + { 8, 10, "alt-005-00" }, + { 9, 10, "alt-010-00" }, + { 10, 10, "alt-020-00" }, + { 11, 10, "alt-050-00" }, + { 12, 10, "alt-100-00" }, + { 13, 10, "alt-200-00" }, + { 14, 10, "outOfRange" }, + { 15, 11, "unavailable" } +}; +static const unsigned int asn_MAP_AltitudeConfidence_enum2value_1[] = { + 0, /* alt-000-01(0) */ + 1, /* alt-000-02(1) */ + 2, /* alt-000-05(2) */ + 3, /* alt-000-10(3) */ + 4, /* alt-000-20(4) */ + 5, /* alt-000-50(5) */ + 6, /* alt-001-00(6) */ + 7, /* alt-002-00(7) */ + 8, /* alt-005-00(8) */ + 9, /* alt-010-00(9) */ + 10, /* alt-020-00(10) */ + 11, /* alt-050-00(11) */ + 12, /* alt-100-00(12) */ + 13, /* alt-200-00(13) */ + 14, /* outOfRange(14) */ + 15 /* unavailable(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1 = { + asn_MAP_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AltitudeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_AltitudeConfidence_tags_1, + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeConfidence_constr_1, &asn_PER_type_AltitudeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AltitudeValue.c b/vcits/ivim/src/AltitudeValue.c new file mode 100644 index 0000000..0b93377 --- /dev/null +++ b/vcits/ivim/src/AltitudeValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AltitudeValue.h" + +int +AltitudeValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -100000 && value <= 800001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-100000..800001) */, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, -100000, 800001 } /* (-100000..800001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_AltitudeValue_tags_1, + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeValue_constr_1, &asn_PER_type_AltitudeValue_constr_1, AltitudeValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Angle.c b/vcits/ivim/src/Angle.c new file mode 100644 index 0000000..5595c96 --- /dev/null +++ b/vcits/ivim/src/Angle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Angle.h" + +int +Angle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 28800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Angle_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +asn_per_constraints_t asn_PER_type_Angle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Angle = { + "Angle", + "Angle", + &asn_OP_NativeInteger, + asn_DEF_Angle_tags_1, + sizeof(asn_DEF_Angle_tags_1) + /sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */ + asn_DEF_Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_Angle_tags_1) + /sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */ + { &asn_OER_type_Angle_constr_1, &asn_PER_type_Angle_constr_1, Angle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/AntennaOffsetSet.c b/vcits/ivim/src/AntennaOffsetSet.c new file mode 100644 index 0000000..b46a156 --- /dev/null +++ b/vcits/ivim/src/AntennaOffsetSet.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AntennaOffsetSet.h" + +asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetX), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetX" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetY), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B09, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetY" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetZ), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetZ" + }, +}; +static const ber_tlv_tag_t asn_DEF_AntennaOffsetSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AntennaOffsetSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* antOffsetX */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* antOffsetY */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* antOffsetZ */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1 = { + sizeof(struct AntennaOffsetSet), + offsetof(struct AntennaOffsetSet, _asn_ctx), + asn_MAP_AntennaOffsetSet_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet = { + "AntennaOffsetSet", + "AntennaOffsetSet", + &asn_OP_SEQUENCE, + asn_DEF_AntennaOffsetSet_tags_1, + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + asn_DEF_AntennaOffsetSet_tags_1, /* Same as above */ + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AntennaOffsetSet_1, + 3, /* Elements count */ + &asn_SPC_AntennaOffsetSet_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AnyCatalogue.c b/vcits/ivim/src/AnyCatalogue.c new file mode 100644 index 0000000..82325ac --- /dev/null +++ b/vcits/ivim/src/AnyCatalogue.c @@ -0,0 +1,202 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AnyCatalogue.h" + +#include "ISO14823Attributes.h" +static int +memb_version_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_pictogramCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_version_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_version_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_pictogramCode_constr_4 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_pictogramCode_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_5 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AnyCatalogue_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AnyCatalogue, owner), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Provider, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "owner" + }, + { ATF_NOFLAGS, 0, offsetof(struct AnyCatalogue, version), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_version_constr_3, &asn_PER_memb_version_constr_3, memb_version_constraint_1 }, + 0, 0, /* No default value */ + "version" + }, + { ATF_NOFLAGS, 0, offsetof(struct AnyCatalogue, pictogramCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_pictogramCode_constr_4, &asn_PER_memb_pictogramCode_constr_4, memb_pictogramCode_constraint_1 }, + 0, 0, /* No default value */ + "pictogramCode" + }, + { ATF_POINTER, 3, offsetof(struct AnyCatalogue, value), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_value_constr_5, &asn_PER_memb_value_constr_5, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, + { ATF_POINTER, 2, offsetof(struct AnyCatalogue, unit), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSCUnit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "unit" + }, + { ATF_POINTER, 1, offsetof(struct AnyCatalogue, attributes), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ISO14823Attributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_AnyCatalogue_oms_1[] = { 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_AnyCatalogue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AnyCatalogue_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* owner */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* version */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pictogramCode */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* unit */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AnyCatalogue_specs_1 = { + sizeof(struct AnyCatalogue), + offsetof(struct AnyCatalogue, _asn_ctx), + asn_MAP_AnyCatalogue_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_AnyCatalogue_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AnyCatalogue = { + "AnyCatalogue", + "AnyCatalogue", + &asn_OP_SEQUENCE, + asn_DEF_AnyCatalogue_tags_1, + sizeof(asn_DEF_AnyCatalogue_tags_1) + /sizeof(asn_DEF_AnyCatalogue_tags_1[0]), /* 1 */ + asn_DEF_AnyCatalogue_tags_1, /* Same as above */ + sizeof(asn_DEF_AnyCatalogue_tags_1) + /sizeof(asn_DEF_AnyCatalogue_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AnyCatalogue_1, + 6, /* Elements count */ + &asn_SPC_AnyCatalogue_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ApproachID.c b/vcits/ivim/src/ApproachID.c new file mode 100644 index 0000000..c0fa19f --- /dev/null +++ b/vcits/ivim/src/ApproachID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ApproachID.h" + +int +ApproachID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ApproachID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_ApproachID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ApproachID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ApproachID = { + "ApproachID", + "ApproachID", + &asn_OP_NativeInteger, + asn_DEF_ApproachID_tags_1, + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + asn_DEF_ApproachID_tags_1, /* Same as above */ + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + { &asn_OER_type_ApproachID_constr_1, &asn_PER_type_ApproachID_constr_1, ApproachID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/AttributeIdList.c b/vcits/ivim/src/AttributeIdList.c new file mode 100644 index 0000000..1b093d7 --- /dev/null +++ b/vcits/ivim/src/AttributeIdList.c @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcGeneric" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcGenericv7-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AttributeIdList.h" + +static int +memb_NativeInteger_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_Member_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_Member_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (0..127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_AttributeIdList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_AttributeIdList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (SIZE(0..127,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AttributeIdList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_2, &asn_PER_memb_Member_constr_2, memb_NativeInteger_constraint_1 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AttributeIdList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AttributeIdList_specs_1 = { + sizeof(struct AttributeIdList), + offsetof(struct AttributeIdList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AttributeIdList = { + "AttributeIdList", + "AttributeIdList", + &asn_OP_SEQUENCE_OF, + asn_DEF_AttributeIdList_tags_1, + sizeof(asn_DEF_AttributeIdList_tags_1) + /sizeof(asn_DEF_AttributeIdList_tags_1[0]), /* 1 */ + asn_DEF_AttributeIdList_tags_1, /* Same as above */ + sizeof(asn_DEF_AttributeIdList_tags_1) + /sizeof(asn_DEF_AttributeIdList_tags_1[0]), /* 1 */ + { &asn_OER_type_AttributeIdList_constr_1, &asn_PER_type_AttributeIdList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AttributeIdList_1, + 1, /* Single element */ + &asn_SPC_AttributeIdList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AttributeList.c b/vcits/ivim/src/AttributeList.c new file mode 100644 index 0000000..bb1b622 --- /dev/null +++ b/vcits/ivim/src/AttributeList.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcGeneric" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcGenericv7-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AttributeList.h" + diff --git a/vcits/ivim/src/Attributes.c b/vcits/ivim/src/Attributes.c new file mode 100644 index 0000000..da136ce --- /dev/null +++ b/vcits/ivim/src/Attributes.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcGeneric" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcGenericv7-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Attributes.h" + diff --git a/vcits/ivim/src/AutomatedVehicleContainer.c b/vcits/ivim/src/AutomatedVehicleContainer.c new file mode 100644 index 0000000..731c10e --- /dev/null +++ b/vcits/ivim/src/AutomatedVehicleContainer.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AutomatedVehicleContainer.h" + +#include "AvcPart.h" +static asn_oer_constraints_t asn_OER_type_AutomatedVehicleContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_AutomatedVehicleContainer_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 16 } /* (SIZE(1..16,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AutomatedVehicleContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AvcPart, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AutomatedVehicleContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AutomatedVehicleContainer_specs_1 = { + sizeof(struct AutomatedVehicleContainer), + offsetof(struct AutomatedVehicleContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AutomatedVehicleContainer = { + "AutomatedVehicleContainer", + "AutomatedVehicleContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_AutomatedVehicleContainer_tags_1, + sizeof(asn_DEF_AutomatedVehicleContainer_tags_1) + /sizeof(asn_DEF_AutomatedVehicleContainer_tags_1[0]), /* 1 */ + asn_DEF_AutomatedVehicleContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_AutomatedVehicleContainer_tags_1) + /sizeof(asn_DEF_AutomatedVehicleContainer_tags_1[0]), /* 1 */ + { &asn_OER_type_AutomatedVehicleContainer_constr_1, &asn_PER_type_AutomatedVehicleContainer_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AutomatedVehicleContainer_1, + 1, /* Single element */ + &asn_SPC_AutomatedVehicleContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AutomatedVehicleRule.c b/vcits/ivim/src/AutomatedVehicleRule.c new file mode 100644 index 0000000..3b9ae39 --- /dev/null +++ b/vcits/ivim/src/AutomatedVehicleRule.c @@ -0,0 +1,134 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AutomatedVehicleRule.h" + +#include "RoadSignCodes.h" +#include "ConstraintTextLines2.h" +asn_TYPE_member_t asn_MBR_AutomatedVehicleRule_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AutomatedVehicleRule, priority), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PriorityLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "priority" + }, + { ATF_NOFLAGS, 0, offsetof(struct AutomatedVehicleRule, allowedSaeAutomationLevels), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SaeAutomationLevels, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allowedSaeAutomationLevels" + }, + { ATF_POINTER, 7, offsetof(struct AutomatedVehicleRule, minGapBetweenVehicles), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GapBetweenVehicles, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minGapBetweenVehicles" + }, + { ATF_POINTER, 6, offsetof(struct AutomatedVehicleRule, recGapBetweenVehicles), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GapBetweenVehicles, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recGapBetweenVehicles" + }, + { ATF_POINTER, 5, offsetof(struct AutomatedVehicleRule, automatedVehicleMaxSpeedLimit), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "automatedVehicleMaxSpeedLimit" + }, + { ATF_POINTER, 4, offsetof(struct AutomatedVehicleRule, automatedVehicleMinSpeedLimit), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "automatedVehicleMinSpeedLimit" + }, + { ATF_POINTER, 3, offsetof(struct AutomatedVehicleRule, automatedVehicleSpeedRecommendation), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "automatedVehicleSpeedRecommendation" + }, + { ATF_POINTER, 2, offsetof(struct AutomatedVehicleRule, roadSignCodes), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSignCodes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadSignCodes" + }, + { ATF_POINTER, 1, offsetof(struct AutomatedVehicleRule, extraText), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConstraintTextLines2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "extraText" + }, +}; +static const int asn_MAP_AutomatedVehicleRule_oms_1[] = { 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_AutomatedVehicleRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AutomatedVehicleRule_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* priority */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* allowedSaeAutomationLevels */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* minGapBetweenVehicles */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* recGapBetweenVehicles */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* automatedVehicleMaxSpeedLimit */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* automatedVehicleMinSpeedLimit */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* automatedVehicleSpeedRecommendation */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* roadSignCodes */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* extraText */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AutomatedVehicleRule_specs_1 = { + sizeof(struct AutomatedVehicleRule), + offsetof(struct AutomatedVehicleRule, _asn_ctx), + asn_MAP_AutomatedVehicleRule_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_AutomatedVehicleRule_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AutomatedVehicleRule = { + "AutomatedVehicleRule", + "AutomatedVehicleRule", + &asn_OP_SEQUENCE, + asn_DEF_AutomatedVehicleRule_tags_1, + sizeof(asn_DEF_AutomatedVehicleRule_tags_1) + /sizeof(asn_DEF_AutomatedVehicleRule_tags_1[0]), /* 1 */ + asn_DEF_AutomatedVehicleRule_tags_1, /* Same as above */ + sizeof(asn_DEF_AutomatedVehicleRule_tags_1) + /sizeof(asn_DEF_AutomatedVehicleRule_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AutomatedVehicleRule_1, + 9, /* Elements count */ + &asn_SPC_AutomatedVehicleRule_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AutomatedVehicleRules.c b/vcits/ivim/src/AutomatedVehicleRules.c new file mode 100644 index 0000000..04a73eb --- /dev/null +++ b/vcits/ivim/src/AutomatedVehicleRules.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AutomatedVehicleRules.h" + +#include "AutomatedVehicleRule.h" +static asn_oer_constraints_t asn_OER_type_AutomatedVehicleRules_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_AutomatedVehicleRules_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AutomatedVehicleRules_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AutomatedVehicleRule, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AutomatedVehicleRules_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AutomatedVehicleRules_specs_1 = { + sizeof(struct AutomatedVehicleRules), + offsetof(struct AutomatedVehicleRules, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AutomatedVehicleRules = { + "AutomatedVehicleRules", + "AutomatedVehicleRules", + &asn_OP_SEQUENCE_OF, + asn_DEF_AutomatedVehicleRules_tags_1, + sizeof(asn_DEF_AutomatedVehicleRules_tags_1) + /sizeof(asn_DEF_AutomatedVehicleRules_tags_1[0]), /* 1 */ + asn_DEF_AutomatedVehicleRules_tags_1, /* Same as above */ + sizeof(asn_DEF_AutomatedVehicleRules_tags_1) + /sizeof(asn_DEF_AutomatedVehicleRules_tags_1[0]), /* 1 */ + { &asn_OER_type_AutomatedVehicleRules_constr_1, &asn_PER_type_AutomatedVehicleRules_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AutomatedVehicleRules_1, + 1, /* Single element */ + &asn_SPC_AutomatedVehicleRules_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AvcPart.c b/vcits/ivim/src/AvcPart.c new file mode 100644 index 0000000..d33b3c9 --- /dev/null +++ b/vcits/ivim/src/AvcPart.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AvcPart.h" + +#include "ZoneIds.h" +#include "LanePositions.h" +#include "VehicleCharacteristicsList.h" +#include "AutomatedVehicleRules.h" +#include "PlatooningRules.h" +static asn_oer_constraints_t asn_OER_type_AvcPart_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AvcPart_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AvcPart_1[] = { + { ATF_POINTER, 1, offsetof(struct AvcPart, detectionZoneIds), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneIds, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "detectionZoneIds" + }, + { ATF_NOFLAGS, 0, offsetof(struct AvcPart, relevanceZoneIds), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneIds, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "relevanceZoneIds" + }, + { ATF_POINTER, 5, offsetof(struct AvcPart, direction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Direction, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "direction" + }, + { ATF_POINTER, 4, offsetof(struct AvcPart, applicableLanes), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LanePositions, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "applicableLanes" + }, + { ATF_POINTER, 3, offsetof(struct AvcPart, vehicleCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleCharacteristicsList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleCharacteristics" + }, + { ATF_POINTER, 2, offsetof(struct AvcPart, automatedVehicleRules), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AutomatedVehicleRules, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "automatedVehicleRules" + }, + { ATF_POINTER, 1, offsetof(struct AvcPart, platooningRules), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PlatooningRules, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "platooningRules" + }, +}; +static const int asn_MAP_AvcPart_oms_1[] = { 0, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_AvcPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AvcPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* detectionZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* relevanceZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* applicableLanes */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* vehicleCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* automatedVehicleRules */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* platooningRules */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AvcPart_specs_1 = { + sizeof(struct AvcPart), + offsetof(struct AvcPart, _asn_ctx), + asn_MAP_AvcPart_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_AvcPart_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AvcPart = { + "AvcPart", + "AvcPart", + &asn_OP_SEQUENCE, + asn_DEF_AvcPart_tags_1, + sizeof(asn_DEF_AvcPart_tags_1) + /sizeof(asn_DEF_AvcPart_tags_1[0]), /* 1 */ + asn_DEF_AvcPart_tags_1, /* Same as above */ + sizeof(asn_DEF_AvcPart_tags_1) + /sizeof(asn_DEF_AvcPart_tags_1[0]), /* 1 */ + { &asn_OER_type_AvcPart_constr_1, &asn_PER_type_AvcPart_constr_1, SEQUENCE_constraint }, + asn_MBR_AvcPart_1, + 7, /* Elements count */ + &asn_SPC_AvcPart_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AviEriDateTime.c b/vcits/ivim/src/AviEriDateTime.c new file mode 100644 index 0000000..8865cfe --- /dev/null +++ b/vcits/ivim/src/AviEriDateTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AviEriDateTime.h" + +int +AviEriDateTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AviEriDateTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_AviEriDateTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AviEriDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AviEriDateTime = { + "AviEriDateTime", + "AviEriDateTime", + &asn_OP_OCTET_STRING, + asn_DEF_AviEriDateTime_tags_1, + sizeof(asn_DEF_AviEriDateTime_tags_1) + /sizeof(asn_DEF_AviEriDateTime_tags_1[0]), /* 1 */ + asn_DEF_AviEriDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_AviEriDateTime_tags_1) + /sizeof(asn_DEF_AviEriDateTime_tags_1[0]), /* 1 */ + { &asn_OER_type_AviEriDateTime_constr_1, &asn_PER_type_AviEriDateTime_constr_1, AviEriDateTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/AxleWeightLimits.c b/vcits/ivim/src/AxleWeightLimits.c new file mode 100644 index 0000000..12a43d8 --- /dev/null +++ b/vcits/ivim/src/AxleWeightLimits.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "AxleWeightLimits.h" + +asn_TYPE_member_t asn_MBR_AxleWeightLimits_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AxleWeightLimits, maxLadenweightOnAxle1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxLadenweightOnAxle1" + }, + { ATF_NOFLAGS, 0, offsetof(struct AxleWeightLimits, maxLadenweightOnAxle2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxLadenweightOnAxle2" + }, + { ATF_NOFLAGS, 0, offsetof(struct AxleWeightLimits, maxLadenweightOnAxle3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxLadenweightOnAxle3" + }, + { ATF_NOFLAGS, 0, offsetof(struct AxleWeightLimits, maxLadenweightOnAxle4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxLadenweightOnAxle4" + }, + { ATF_NOFLAGS, 0, offsetof(struct AxleWeightLimits, maxLadenweightOnAxle5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxLadenweightOnAxle5" + }, +}; +static const ber_tlv_tag_t asn_DEF_AxleWeightLimits_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AxleWeightLimits_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxLadenweightOnAxle1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxLadenweightOnAxle2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxLadenweightOnAxle3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxLadenweightOnAxle4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* maxLadenweightOnAxle5 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AxleWeightLimits_specs_1 = { + sizeof(struct AxleWeightLimits), + offsetof(struct AxleWeightLimits, _asn_ctx), + asn_MAP_AxleWeightLimits_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AxleWeightLimits = { + "AxleWeightLimits", + "AxleWeightLimits", + &asn_OP_SEQUENCE, + asn_DEF_AxleWeightLimits_tags_1, + sizeof(asn_DEF_AxleWeightLimits_tags_1) + /sizeof(asn_DEF_AxleWeightLimits_tags_1[0]), /* 1 */ + asn_DEF_AxleWeightLimits_tags_1, /* Same as above */ + sizeof(asn_DEF_AxleWeightLimits_tags_1) + /sizeof(asn_DEF_AxleWeightLimits_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AxleWeightLimits_1, + 5, /* Elements count */ + &asn_SPC_AxleWeightLimits_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/BankingAngle.c b/vcits/ivim/src/BankingAngle.c new file mode 100644 index 0000000..6037547 --- /dev/null +++ b/vcits/ivim/src/BankingAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "BankingAngle.h" + +int +BankingAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -20 && value <= 21)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BankingAngle_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-20..21) */, + -1}; +asn_per_constraints_t asn_PER_type_BankingAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, -20, 21 } /* (-20..21) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_BankingAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BankingAngle = { + "BankingAngle", + "BankingAngle", + &asn_OP_NativeInteger, + asn_DEF_BankingAngle_tags_1, + sizeof(asn_DEF_BankingAngle_tags_1) + /sizeof(asn_DEF_BankingAngle_tags_1[0]), /* 1 */ + asn_DEF_BankingAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_BankingAngle_tags_1) + /sizeof(asn_DEF_BankingAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_BankingAngle_constr_1, &asn_PER_type_BankingAngle_constr_1, BankingAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/BasicVehicleRole.c b/vcits/ivim/src/BasicVehicleRole.c new file mode 100644 index 0000000..c56ad3a --- /dev/null +++ b/vcits/ivim/src/BasicVehicleRole.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "BasicVehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 22 } /* (0..22,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BasicVehicleRole_value2enum_1[] = { + { 0, 12, "basicVehicle" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 10, "roadRescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 12, "none-unknown" }, + { 9, 5, "truck" }, + { 10, 10, "motorcycle" }, + { 11, 14, "roadSideSource" }, + { 12, 6, "police" }, + { 13, 4, "fire" }, + { 14, 9, "ambulance" }, + { 15, 3, "dot" }, + { 16, 7, "transit" }, + { 17, 10, "slowMoving" }, + { 18, 7, "stopNgo" }, + { 19, 7, "cyclist" }, + { 20, 10, "pedestrian" }, + { 21, 12, "nonMotorized" }, + { 22, 8, "military" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BasicVehicleRole_enum2value_1[] = { + 14, /* ambulance(14) */ + 0, /* basicVehicle(0) */ + 19, /* cyclist(19) */ + 3, /* dangerousGoods(3) */ + 15, /* dot(15) */ + 6, /* emergency(6) */ + 13, /* fire(13) */ + 22, /* military(22) */ + 10, /* motorcycle(10) */ + 21, /* nonMotorized(21) */ + 8, /* none-unknown(8) */ + 20, /* pedestrian(20) */ + 12, /* police(12) */ + 1, /* publicTransport(1) */ + 5, /* roadRescue(5) */ + 11, /* roadSideSource(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 17, /* slowMoving(17) */ + 2, /* specialTransport(2) */ + 18, /* stopNgo(18) */ + 16, /* transit(16) */ + 9 /* truck(9) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1 = { + asn_MAP_BasicVehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BasicVehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 23, /* Number of elements in the maps */ + 24, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BasicVehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole = { + "BasicVehicleRole", + "BasicVehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_BasicVehicleRole_tags_1, + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + asn_DEF_BasicVehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_BasicVehicleRole_constr_1, &asn_PER_type_BasicVehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BasicVehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/BatteryStatus.c b/vcits/ivim/src/BatteryStatus.c new file mode 100644 index 0000000..c3e045c --- /dev/null +++ b/vcits/ivim/src/BatteryStatus.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "BatteryStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BatteryStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BatteryStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BatteryStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "critical" }, + { 2, 3, "low" }, + { 3, 4, "good" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BatteryStatus_enum2value_1[] = { + 1, /* critical(1) */ + 3, /* good(3) */ + 2, /* low(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BatteryStatus_specs_1 = { + asn_MAP_BatteryStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BatteryStatus_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BatteryStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BatteryStatus = { + "BatteryStatus", + "BatteryStatus", + &asn_OP_NativeEnumerated, + asn_DEF_BatteryStatus_tags_1, + sizeof(asn_DEF_BatteryStatus_tags_1) + /sizeof(asn_DEF_BatteryStatus_tags_1[0]), /* 1 */ + asn_DEF_BatteryStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_BatteryStatus_tags_1) + /sizeof(asn_DEF_BatteryStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_BatteryStatus_constr_1, &asn_PER_type_BatteryStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BatteryStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CO2EmissionValue.c b/vcits/ivim/src/CO2EmissionValue.c new file mode 100644 index 0000000..4c2fa25 --- /dev/null +++ b/vcits/ivim/src/CO2EmissionValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CO2EmissionValue.h" + +int +CO2EmissionValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using Int2, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CO2EmissionValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_type_CO2EmissionValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CO2EmissionValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CO2EmissionValue = { + "CO2EmissionValue", + "CO2EmissionValue", + &asn_OP_NativeInteger, + asn_DEF_CO2EmissionValue_tags_1, + sizeof(asn_DEF_CO2EmissionValue_tags_1) + /sizeof(asn_DEF_CO2EmissionValue_tags_1[0]), /* 1 */ + asn_DEF_CO2EmissionValue_tags_1, /* Same as above */ + sizeof(asn_DEF_CO2EmissionValue_tags_1) + /sizeof(asn_DEF_CO2EmissionValue_tags_1[0]), /* 1 */ + { &asn_OER_type_CO2EmissionValue_constr_1, &asn_PER_type_CO2EmissionValue_constr_1, CO2EmissionValue_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/CS1.c b/vcits/ivim/src/CS1.c new file mode 100644 index 0000000..5a3c3d1 --- /dev/null +++ b/vcits/ivim/src/CS1.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CS1.h" + +static asn_TYPE_member_t asn_MBR_CS1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS1, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS1, issuerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IssuerIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "issuerIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS1, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* issuerIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* serviceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS1_specs_1 = { + sizeof(struct CS1), + offsetof(struct CS1, _asn_ctx), + asn_MAP_CS1_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS1 = { + "CS1", + "CS1", + &asn_OP_SEQUENCE, + asn_DEF_CS1_tags_1, + sizeof(asn_DEF_CS1_tags_1) + /sizeof(asn_DEF_CS1_tags_1[0]), /* 1 */ + asn_DEF_CS1_tags_1, /* Same as above */ + sizeof(asn_DEF_CS1_tags_1) + /sizeof(asn_DEF_CS1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS1_1, + 3, /* Elements count */ + &asn_SPC_CS1_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CS2.c b/vcits/ivim/src/CS2.c new file mode 100644 index 0000000..8fe9d0f --- /dev/null +++ b/vcits/ivim/src/CS2.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CS2.h" + +static asn_TYPE_member_t asn_MBR_CS2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS2, manufacturerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManufacturerIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "manufacturerIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS2, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* manufacturerIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* serviceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS2_specs_1 = { + sizeof(struct CS2), + offsetof(struct CS2, _asn_ctx), + asn_MAP_CS2_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS2 = { + "CS2", + "CS2", + &asn_OP_SEQUENCE, + asn_DEF_CS2_tags_1, + sizeof(asn_DEF_CS2_tags_1) + /sizeof(asn_DEF_CS2_tags_1[0]), /* 1 */ + asn_DEF_CS2_tags_1, /* Same as above */ + sizeof(asn_DEF_CS2_tags_1) + /sizeof(asn_DEF_CS2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS2_1, + 2, /* Elements count */ + &asn_SPC_CS2_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CS3.c b/vcits/ivim/src/CS3.c new file mode 100644 index 0000000..e04e7b6 --- /dev/null +++ b/vcits/ivim/src/CS3.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CS3.h" + +static asn_TYPE_member_t asn_MBR_CS3_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS3, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StartTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, stopTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StopTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stopTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, geographLimit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GeoGraphicalLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "geographLimit" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, serviceAppLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceApplicationLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceAppLimit" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS3_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* stopTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* geographLimit */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* serviceAppLimit */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS3_specs_1 = { + sizeof(struct CS3), + offsetof(struct CS3, _asn_ctx), + asn_MAP_CS3_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS3 = { + "CS3", + "CS3", + &asn_OP_SEQUENCE, + asn_DEF_CS3_tags_1, + sizeof(asn_DEF_CS3_tags_1) + /sizeof(asn_DEF_CS3_tags_1[0]), /* 1 */ + asn_DEF_CS3_tags_1, /* Same as above */ + sizeof(asn_DEF_CS3_tags_1) + /sizeof(asn_DEF_CS3_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS3_1, + 4, /* Elements count */ + &asn_SPC_CS3_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CS4.c b/vcits/ivim/src/CS4.c new file mode 100644 index 0000000..a6579ce --- /dev/null +++ b/vcits/ivim/src/CS4.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CS4.h" + +static asn_oer_constraints_t asn_OER_type_CS4_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_CS4_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS4_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS4, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS4, alphabetIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AlphabetIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "alphabetIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS4, licPlateNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LicPlateNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "licPlateNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS4_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* alphabetIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* licPlateNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS4_specs_1 = { + sizeof(struct CS4), + offsetof(struct CS4, _asn_ctx), + asn_MAP_CS4_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS4 = { + "CS4", + "CS4", + &asn_OP_SEQUENCE, + asn_DEF_CS4_tags_1, + sizeof(asn_DEF_CS4_tags_1) + /sizeof(asn_DEF_CS4_tags_1[0]), /* 1 */ + asn_DEF_CS4_tags_1, /* Same as above */ + sizeof(asn_DEF_CS4_tags_1) + /sizeof(asn_DEF_CS4_tags_1[0]), /* 1 */ + { &asn_OER_type_CS4_constr_1, &asn_PER_type_CS4_constr_1, SEQUENCE_constraint }, + asn_MBR_CS4_1, + 3, /* Elements count */ + &asn_SPC_CS4_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CS5.c b/vcits/ivim/src/CS5.c new file mode 100644 index 0000000..c412074 --- /dev/null +++ b/vcits/ivim/src/CS5.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CS5.h" + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 9)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_fill_constr_3 CC_NOTUSED = { + { 0, 0 }, + 9 /* (SIZE(9..9)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 9, 9 } /* (SIZE(9..9)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_CS5_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS5, vin), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VisibleString, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vin" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS5, fill), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_3, &asn_PER_memb_fill_constr_3, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS5_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS5_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vin */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fill */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CS5_specs_1 = { + sizeof(struct CS5), + offsetof(struct CS5, _asn_ctx), + asn_MAP_CS5_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS5 = { + "CS5", + "CS5", + &asn_OP_SEQUENCE, + asn_DEF_CS5_tags_1, + sizeof(asn_DEF_CS5_tags_1) + /sizeof(asn_DEF_CS5_tags_1[0]), /* 1 */ + asn_DEF_CS5_tags_1, /* Same as above */ + sizeof(asn_DEF_CS5_tags_1) + /sizeof(asn_DEF_CS5_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS5_1, + 2, /* Elements count */ + &asn_SPC_CS5_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CS7.c b/vcits/ivim/src/CS7.c new file mode 100644 index 0000000..7e3534d --- /dev/null +++ b/vcits/ivim/src/CS7.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CS7.h" + +/* + * This type is implemented using FreightContainerData, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_CS7_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CS7 = { + "CS7", + "CS7", + &asn_OP_SEQUENCE, + asn_DEF_CS7_tags_1, + sizeof(asn_DEF_CS7_tags_1) + /sizeof(asn_DEF_CS7_tags_1[0]), /* 1 */ + asn_DEF_CS7_tags_1, /* Same as above */ + sizeof(asn_DEF_CS7_tags_1) + /sizeof(asn_DEF_CS7_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CS8.c b/vcits/ivim/src/CS8.c new file mode 100644 index 0000000..70a8316 --- /dev/null +++ b/vcits/ivim/src/CS8.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CS8.h" + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 6)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_fill_constr_2 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS8_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS8, fill), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_2, &asn_PER_memb_fill_constr_2, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS8, countryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS8, taxCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TaxCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "taxCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS8_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS8_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fill */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* taxCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS8_specs_1 = { + sizeof(struct CS8), + offsetof(struct CS8, _asn_ctx), + asn_MAP_CS8_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS8 = { + "CS8", + "CS8", + &asn_OP_SEQUENCE, + asn_DEF_CS8_tags_1, + sizeof(asn_DEF_CS8_tags_1) + /sizeof(asn_DEF_CS8_tags_1[0]), /* 1 */ + asn_DEF_CS8_tags_1, /* Same as above */ + sizeof(asn_DEF_CS8_tags_1) + /sizeof(asn_DEF_CS8_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS8_1, + 3, /* Elements count */ + &asn_SPC_CS8_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CauseCode.c b/vcits/ivim/src/CauseCode.c new file mode 100644 index 0000000..82b3c00 --- /dev/null +++ b/vcits/ivim/src/CauseCode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CauseCode.h" + +static asn_TYPE_member_t asn_MBR_CauseCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, causeCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "causeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, subCauseCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubCauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subCauseCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CauseCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* causeCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* subCauseCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CauseCode_specs_1 = { + sizeof(struct CauseCode), + offsetof(struct CauseCode, _asn_ctx), + asn_MAP_CauseCode_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CauseCode = { + "CauseCode", + "CauseCode", + &asn_OP_SEQUENCE, + asn_DEF_CauseCode_tags_1, + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + asn_DEF_CauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CauseCode_1, + 2, /* Elements count */ + &asn_SPC_CauseCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CauseCodeType.c b/vcits/ivim/src/CauseCodeType.c new file mode 100644 index 0000000..4033d64 --- /dev/null +++ b/vcits/ivim/src/CauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CauseCodeType.h" + +int +CauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseCodeType = { + "CauseCodeType", + "CauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_CauseCodeType_tags_1, + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_CauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseCodeType_constr_1, &asn_PER_type_CauseCodeType_constr_1, CauseCodeType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/CenDsrcTollingZone.c b/vcits/ivim/src/CenDsrcTollingZone.c new file mode 100644 index 0000000..b917151 --- /dev/null +++ b/vcits/ivim/src/CenDsrcTollingZone.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CenDsrcTollingZone.h" + +static asn_TYPE_member_t asn_MBR_CenDsrcTollingZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 1, offsetof(struct CenDsrcTollingZone, cenDsrcTollingZoneID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CenDsrcTollingZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cenDsrcTollingZoneID" + }, +}; +static const int asn_MAP_CenDsrcTollingZone_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CenDsrcTollingZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cenDsrcTollingZoneID */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CenDsrcTollingZone_specs_1 = { + sizeof(struct CenDsrcTollingZone), + offsetof(struct CenDsrcTollingZone, _asn_ctx), + asn_MAP_CenDsrcTollingZone_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CenDsrcTollingZone_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone = { + "CenDsrcTollingZone", + "CenDsrcTollingZone", + &asn_OP_SEQUENCE, + asn_DEF_CenDsrcTollingZone_tags_1, + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZone_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CenDsrcTollingZone_1, + 3, /* Elements count */ + &asn_SPC_CenDsrcTollingZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CenDsrcTollingZoneID.c b/vcits/ivim/src/CenDsrcTollingZoneID.c new file mode 100644 index 0000000..fd8d42d --- /dev/null +++ b/vcits/ivim/src/CenDsrcTollingZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CenDsrcTollingZoneID.h" + +int +CenDsrcTollingZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using ProtectedZoneID, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID = { + "CenDsrcTollingZoneID", + "CenDsrcTollingZoneID", + &asn_OP_NativeInteger, + asn_DEF_CenDsrcTollingZoneID_tags_1, + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_CenDsrcTollingZoneID_constr_1, &asn_PER_type_CenDsrcTollingZoneID_constr_1, CenDsrcTollingZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ChannelId.c b/vcits/ivim/src/ChannelId.c new file mode 100644 index 0000000..6772760 --- /dev/null +++ b/vcits/ivim/src/ChannelId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ChannelId.h" + +int +ChannelId_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ChannelId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_ChannelId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ChannelId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ChannelId = { + "ChannelId", + "ChannelId", + &asn_OP_NativeInteger, + asn_DEF_ChannelId_tags_1, + sizeof(asn_DEF_ChannelId_tags_1) + /sizeof(asn_DEF_ChannelId_tags_1[0]), /* 1 */ + asn_DEF_ChannelId_tags_1, /* Same as above */ + sizeof(asn_DEF_ChannelId_tags_1) + /sizeof(asn_DEF_ChannelId_tags_1[0]), /* 1 */ + { &asn_OER_type_ChannelId_constr_1, &asn_PER_type_ChannelId_constr_1, ChannelId_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ChannelRq.c b/vcits/ivim/src/ChannelRq.c new file mode 100644 index 0000000..f7fc238 --- /dev/null +++ b/vcits/ivim/src/ChannelRq.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ChannelRq.h" + +static asn_TYPE_member_t asn_MBR_ChannelRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ChannelRq, channelId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ChannelId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "channelId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ChannelRq, apdu), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "apdu" + }, +}; +static const ber_tlv_tag_t asn_DEF_ChannelRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ChannelRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* channelId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* apdu */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ChannelRq_specs_1 = { + sizeof(struct ChannelRq), + offsetof(struct ChannelRq, _asn_ctx), + asn_MAP_ChannelRq_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ChannelRq = { + "ChannelRq", + "ChannelRq", + &asn_OP_SEQUENCE, + asn_DEF_ChannelRq_tags_1, + sizeof(asn_DEF_ChannelRq_tags_1) + /sizeof(asn_DEF_ChannelRq_tags_1[0]), /* 1 */ + asn_DEF_ChannelRq_tags_1, /* Same as above */ + sizeof(asn_DEF_ChannelRq_tags_1) + /sizeof(asn_DEF_ChannelRq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ChannelRq_1, + 2, /* Elements count */ + &asn_SPC_ChannelRq_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ChannelRs.c b/vcits/ivim/src/ChannelRs.c new file mode 100644 index 0000000..59eccbc --- /dev/null +++ b/vcits/ivim/src/ChannelRs.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ChannelRs.h" + +static asn_TYPE_member_t asn_MBR_ChannelRs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ChannelRs, channelId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ChannelId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "channelId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ChannelRs, apdu), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "apdu" + }, +}; +static const ber_tlv_tag_t asn_DEF_ChannelRs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ChannelRs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* channelId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* apdu */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ChannelRs_specs_1 = { + sizeof(struct ChannelRs), + offsetof(struct ChannelRs, _asn_ctx), + asn_MAP_ChannelRs_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ChannelRs = { + "ChannelRs", + "ChannelRs", + &asn_OP_SEQUENCE, + asn_DEF_ChannelRs_tags_1, + sizeof(asn_DEF_ChannelRs_tags_1) + /sizeof(asn_DEF_ChannelRs_tags_1[0]), /* 1 */ + asn_DEF_ChannelRs_tags_1, /* Same as above */ + sizeof(asn_DEF_ChannelRs_tags_1) + /sizeof(asn_DEF_ChannelRs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ChannelRs_1, + 2, /* Elements count */ + &asn_SPC_ChannelRs_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ClosedLanes.c b/vcits/ivim/src/ClosedLanes.c new file mode 100644 index 0000000..1d12430 --- /dev/null +++ b/vcits/ivim/src/ClosedLanes.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ClosedLanes.h" + +static asn_TYPE_member_t asn_MBR_ClosedLanes_1[] = { + { ATF_POINTER, 3, offsetof(struct ClosedLanes, innerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "innerhardShoulderStatus" + }, + { ATF_POINTER, 2, offsetof(struct ClosedLanes, outerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outerhardShoulderStatus" + }, + { ATF_POINTER, 1, offsetof(struct ClosedLanes, drivingLaneStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivingLaneStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drivingLaneStatus" + }, +}; +static const int asn_MAP_ClosedLanes_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ClosedLanes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ClosedLanes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* innerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* outerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* drivingLaneStatus */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ClosedLanes_specs_1 = { + sizeof(struct ClosedLanes), + offsetof(struct ClosedLanes, _asn_ctx), + asn_MAP_ClosedLanes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ClosedLanes_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ClosedLanes = { + "ClosedLanes", + "ClosedLanes", + &asn_OP_SEQUENCE, + asn_DEF_ClosedLanes_tags_1, + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + asn_DEF_ClosedLanes_tags_1, /* Same as above */ + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ClosedLanes_1, + 3, /* Elements count */ + &asn_SPC_ClosedLanes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Code-Units.c b/vcits/ivim/src/Code-Units.c new file mode 100644 index 0000000..c6cdca8 --- /dev/null +++ b/vcits/ivim/src/Code-Units.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Code-Units.h" + +int +Code_Units_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Code_Units_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_Code_Units_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Code_Units_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Code_Units = { + "Code-Units", + "Code-Units", + &asn_OP_NativeInteger, + asn_DEF_Code_Units_tags_1, + sizeof(asn_DEF_Code_Units_tags_1) + /sizeof(asn_DEF_Code_Units_tags_1[0]), /* 1 */ + asn_DEF_Code_Units_tags_1, /* Same as above */ + sizeof(asn_DEF_Code_Units_tags_1) + /sizeof(asn_DEF_Code_Units_tags_1[0]), /* 1 */ + { &asn_OER_type_Code_Units_constr_1, &asn_PER_type_Code_Units_constr_1, Code_Units_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/CollisionRiskSubCauseCode.c b/vcits/ivim/src/CollisionRiskSubCauseCode.c new file mode 100644 index 0000000..ff01214 --- /dev/null +++ b/vcits/ivim/src/CollisionRiskSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CollisionRiskSubCauseCode.h" + +int +CollisionRiskSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CollisionRiskSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode = { + "CollisionRiskSubCauseCode", + "CollisionRiskSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_CollisionRiskSubCauseCode_tags_1, + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_CollisionRiskSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CollisionRiskSubCauseCode_constr_1, &asn_PER_type_CollisionRiskSubCauseCode_constr_1, CollisionRiskSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ComparisonOperator.c b/vcits/ivim/src/ComparisonOperator.c new file mode 100644 index 0000000..d283068 --- /dev/null +++ b/vcits/ivim/src/ComparisonOperator.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ComparisonOperator.h" + +int +ComparisonOperator_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ComparisonOperator_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +asn_per_constraints_t asn_PER_type_ComparisonOperator_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ComparisonOperator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ComparisonOperator = { + "ComparisonOperator", + "ComparisonOperator", + &asn_OP_NativeInteger, + asn_DEF_ComparisonOperator_tags_1, + sizeof(asn_DEF_ComparisonOperator_tags_1) + /sizeof(asn_DEF_ComparisonOperator_tags_1[0]), /* 1 */ + asn_DEF_ComparisonOperator_tags_1, /* Same as above */ + sizeof(asn_DEF_ComparisonOperator_tags_1) + /sizeof(asn_DEF_ComparisonOperator_tags_1[0]), /* 1 */ + { &asn_OER_type_ComparisonOperator_constr_1, &asn_PER_type_ComparisonOperator_constr_1, ComparisonOperator_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/CompleteVehicleCharacteristics.c b/vcits/ivim/src/CompleteVehicleCharacteristics.c new file mode 100644 index 0000000..70beda2 --- /dev/null +++ b/vcits/ivim/src/CompleteVehicleCharacteristics.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CompleteVehicleCharacteristics.h" + +#include "TractorCharacteristics.h" +#include "TrailerCharacteristicsList.h" +#include "TrainCharacteristics.h" +asn_TYPE_member_t asn_MBR_CompleteVehicleCharacteristics_1[] = { + { ATF_POINTER, 3, offsetof(struct CompleteVehicleCharacteristics, tractor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TractorCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tractor" + }, + { ATF_POINTER, 2, offsetof(struct CompleteVehicleCharacteristics, trailer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerCharacteristicsList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trailer" + }, + { ATF_POINTER, 1, offsetof(struct CompleteVehicleCharacteristics, train), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrainCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "train" + }, +}; +static const int asn_MAP_CompleteVehicleCharacteristics_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_CompleteVehicleCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CompleteVehicleCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tractor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* trailer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* train */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CompleteVehicleCharacteristics_specs_1 = { + sizeof(struct CompleteVehicleCharacteristics), + offsetof(struct CompleteVehicleCharacteristics, _asn_ctx), + asn_MAP_CompleteVehicleCharacteristics_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CompleteVehicleCharacteristics_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CompleteVehicleCharacteristics = { + "CompleteVehicleCharacteristics", + "CompleteVehicleCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_CompleteVehicleCharacteristics_tags_1, + sizeof(asn_DEF_CompleteVehicleCharacteristics_tags_1) + /sizeof(asn_DEF_CompleteVehicleCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_CompleteVehicleCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_CompleteVehicleCharacteristics_tags_1) + /sizeof(asn_DEF_CompleteVehicleCharacteristics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CompleteVehicleCharacteristics_1, + 3, /* Elements count */ + &asn_SPC_CompleteVehicleCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ComputedLane.c b/vcits/ivim/src/ComputedLane.c new file mode 100644 index 0000000..9dbc779 --- /dev/null +++ b/vcits/ivim/src/ComputedLane.c @@ -0,0 +1,306 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ComputedLane.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_offsetXaxis_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetXaxis_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetXaxis_specs_3 = { + sizeof(struct ComputedLane__offsetXaxis), + offsetof(struct ComputedLane__offsetXaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetXaxis, present), + sizeof(((struct ComputedLane__offsetXaxis *)0)->present), + asn_MAP_offsetXaxis_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetXaxis_3 = { + "offsetXaxis", + "offsetXaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_offsetXaxis_constr_3, &asn_PER_type_offsetXaxis_constr_3, CHOICE_constraint }, + asn_MBR_offsetXaxis_3, + 2, /* Elements count */ + &asn_SPC_offsetXaxis_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_offsetYaxis_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetYaxis_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetYaxis_specs_6 = { + sizeof(struct ComputedLane__offsetYaxis), + offsetof(struct ComputedLane__offsetYaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetYaxis, present), + sizeof(((struct ComputedLane__offsetYaxis *)0)->present), + asn_MAP_offsetYaxis_tag2el_6, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetYaxis_6 = { + "offsetYaxis", + "offsetYaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_offsetYaxis_constr_6, &asn_PER_type_offsetYaxis_constr_6, CHOICE_constraint }, + asn_MBR_offsetYaxis_6, + 2, /* Elements count */ + &asn_SPC_offsetYaxis_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regional_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ComputedLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_12 = { + sizeof(struct ComputedLane__regional), + offsetof(struct ComputedLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_12 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_12, + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]) - 1, /* 1 */ + asn_DEF_regional_tags_12, /* Same as above */ + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]), /* 2 */ + { &asn_OER_type_regional_constr_12, &asn_PER_type_regional_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_regional_12, + 1, /* Single element */ + &asn_SPC_regional_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ComputedLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, referenceLaneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceLaneId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetXaxis), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetXaxis_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetXaxis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetYaxis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetYaxis_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetYaxis" + }, + { ATF_POINTER, 4, offsetof(struct ComputedLane, rotateXY), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rotateXY" + }, + { ATF_POINTER, 3, offsetof(struct ComputedLane, scaleXaxis), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaleXaxis" + }, + { ATF_POINTER, 2, offsetof(struct ComputedLane, scaleYaxis), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaleYaxis" + }, + { ATF_POINTER, 1, offsetof(struct ComputedLane, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_12, + 0, + { &asn_OER_memb_regional_constr_12, &asn_PER_memb_regional_constr_12, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ComputedLane_oms_1[] = { 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ComputedLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ComputedLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceLaneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* offsetXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* offsetYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rotateXY */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* scaleXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* scaleYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1 = { + sizeof(struct ComputedLane), + offsetof(struct ComputedLane, _asn_ctx), + asn_MAP_ComputedLane_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ComputedLane_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ComputedLane = { + "ComputedLane", + "ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_ComputedLane_tags_1, + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + asn_DEF_ComputedLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ComputedLane_1, + 7, /* Elements count */ + &asn_SPC_ComputedLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ComputedSegment.c b/vcits/ivim/src/ComputedSegment.c new file mode 100644 index 0000000..3ff35b0 --- /dev/null +++ b/vcits/ivim/src/ComputedSegment.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ComputedSegment.h" + +#include "DeltaReferencePosition.h" +static int +memb_offsetDistance_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32768 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_offsetDistance_constr_5 CC_NOTUSED = { + { 2, 0 } /* (-32768..32767) */, + -1}; +static asn_per_constraints_t asn_PER_memb_offsetDistance_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ComputedSegment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedSegment, zoneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Zid, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zoneId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedSegment, laneNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LanePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedSegment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IviLaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 2, offsetof(struct ComputedSegment, offsetDistance), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_offsetDistance_constr_5, &asn_PER_memb_offsetDistance_constr_5, memb_offsetDistance_constraint_1 }, + 0, 0, /* No default value */ + "offsetDistance" + }, + { ATF_POINTER, 1, offsetof(struct ComputedSegment, offsetPosition), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetPosition" + }, +}; +static const int asn_MAP_ComputedSegment_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ComputedSegment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ComputedSegment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zoneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* offsetDistance */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* offsetPosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ComputedSegment_specs_1 = { + sizeof(struct ComputedSegment), + offsetof(struct ComputedSegment, _asn_ctx), + asn_MAP_ComputedSegment_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ComputedSegment_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ComputedSegment = { + "ComputedSegment", + "ComputedSegment", + &asn_OP_SEQUENCE, + asn_DEF_ComputedSegment_tags_1, + sizeof(asn_DEF_ComputedSegment_tags_1) + /sizeof(asn_DEF_ComputedSegment_tags_1[0]), /* 1 */ + asn_DEF_ComputedSegment_tags_1, /* Same as above */ + sizeof(asn_DEF_ComputedSegment_tags_1) + /sizeof(asn_DEF_ComputedSegment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ComputedSegment_1, + 5, /* Elements count */ + &asn_SPC_ComputedSegment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Condition.c b/vcits/ivim/src/Condition.c new file mode 100644 index 0000000..46b3a0c --- /dev/null +++ b/vcits/ivim/src/Condition.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Condition.h" + +int +Condition_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Condition_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_Condition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Condition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Condition = { + "Condition", + "Condition", + &asn_OP_NativeInteger, + asn_DEF_Condition_tags_1, + sizeof(asn_DEF_Condition_tags_1) + /sizeof(asn_DEF_Condition_tags_1[0]), /* 1 */ + asn_DEF_Condition_tags_1, /* Same as above */ + sizeof(asn_DEF_Condition_tags_1) + /sizeof(asn_DEF_Condition_tags_1[0]), /* 1 */ + { &asn_OER_type_Condition_constr_1, &asn_PER_type_Condition_constr_1, Condition_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ConnectedDenms.c b/vcits/ivim/src/ConnectedDenms.c new file mode 100644 index 0000000..4f05fff --- /dev/null +++ b/vcits/ivim/src/ConnectedDenms.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ConnectedDenms.h" + +#include "ActionID.h" +static asn_oer_constraints_t asn_OER_type_ConnectedDenms_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_ConnectedDenms_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ConnectedDenms_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ActionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectedDenms_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ConnectedDenms_specs_1 = { + sizeof(struct ConnectedDenms), + offsetof(struct ConnectedDenms, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectedDenms = { + "ConnectedDenms", + "ConnectedDenms", + &asn_OP_SEQUENCE_OF, + asn_DEF_ConnectedDenms_tags_1, + sizeof(asn_DEF_ConnectedDenms_tags_1) + /sizeof(asn_DEF_ConnectedDenms_tags_1[0]), /* 1 */ + asn_DEF_ConnectedDenms_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectedDenms_tags_1) + /sizeof(asn_DEF_ConnectedDenms_tags_1[0]), /* 1 */ + { &asn_OER_type_ConnectedDenms_constr_1, &asn_PER_type_ConnectedDenms_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ConnectedDenms_1, + 1, /* Single element */ + &asn_SPC_ConnectedDenms_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ConnectingLane.c b/vcits/ivim/src/ConnectingLane.c new file mode 100644 index 0000000..7ddb662 --- /dev/null +++ b/vcits/ivim/src/ConnectingLane.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ConnectingLane.h" + +asn_TYPE_member_t asn_MBR_ConnectingLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectingLane, lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 1, offsetof(struct ConnectingLane, maneuver), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuver" + }, +}; +static const int asn_MAP_ConnectingLane_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ConnectingLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectingLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maneuver */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1 = { + sizeof(struct ConnectingLane), + offsetof(struct ConnectingLane, _asn_ctx), + asn_MAP_ConnectingLane_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ConnectingLane_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectingLane = { + "ConnectingLane", + "ConnectingLane", + &asn_OP_SEQUENCE, + asn_DEF_ConnectingLane_tags_1, + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + asn_DEF_ConnectingLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectingLane_1, + 2, /* Elements count */ + &asn_SPC_ConnectingLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Connection.c b/vcits/ivim/src/Connection.c new file mode 100644 index 0000000..34083ba --- /dev/null +++ b/vcits/ivim/src/Connection.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Connection.h" + +#include "IntersectionReferenceID.h" +asn_TYPE_member_t asn_MBR_Connection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Connection, connectingLane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectingLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectingLane" + }, + { ATF_POINTER, 4, offsetof(struct Connection, remoteIntersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "remoteIntersection" + }, + { ATF_POINTER, 3, offsetof(struct Connection, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_POINTER, 2, offsetof(struct Connection, userClass), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "userClass" + }, + { ATF_POINTER, 1, offsetof(struct Connection, connectionID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const int asn_MAP_Connection_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Connection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Connection_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectingLane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* remoteIntersection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* userClass */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1 = { + sizeof(struct Connection), + offsetof(struct Connection, _asn_ctx), + asn_MAP_Connection_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Connection_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Connection = { + "Connection", + "Connection", + &asn_OP_SEQUENCE, + asn_DEF_Connection_tags_1, + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + asn_DEF_Connection_tags_1, /* Same as above */ + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Connection_1, + 5, /* Elements count */ + &asn_SPC_Connection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ConnectionManeuverAssist-addGrpC.c b/vcits/ivim/src/ConnectionManeuverAssist-addGrpC.c new file mode 100644 index 0000000..5e93c45 --- /dev/null +++ b/vcits/ivim/src/ConnectionManeuverAssist-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ConnectionManeuverAssist-addGrpC.h" + +#include "ItsStationPositionList.h" +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist_addGrpC, itsStationPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsStationPositionList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "itsStationPosition" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* itsStationPosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 = { + sizeof(struct ConnectionManeuverAssist_addGrpC), + offsetof(struct ConnectionManeuverAssist_addGrpC, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC = { + "ConnectionManeuverAssist-addGrpC", + "ConnectionManeuverAssist-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionManeuverAssist_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ConnectionManeuverAssist.c b/vcits/ivim/src/ConnectionManeuverAssist.c new file mode 100644 index 0000000..dab6a18 --- /dev/null +++ b/vcits/ivim/src/ConnectionManeuverAssist.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ConnectionManeuverAssist.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ConnectionManeuverAssist, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct ConnectionManeuverAssist__regional), + offsetof(struct ConnectionManeuverAssist__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionManeuverAssist, connectionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 5, offsetof(struct ConnectionManeuverAssist, queueLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "queueLength" + }, + { ATF_POINTER, 4, offsetof(struct ConnectionManeuverAssist, availableStorageLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "availableStorageLength" + }, + { ATF_POINTER, 3, offsetof(struct ConnectionManeuverAssist, waitOnStop), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WaitOnStopline, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "waitOnStop" + }, + { ATF_POINTER, 2, offsetof(struct ConnectionManeuverAssist, pedBicycleDetect), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PedestrianBicycleDetect, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pedBicycleDetect" + }, + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* queueLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* availableStorageLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* waitOnStop */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pedBicycleDetect */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1 = { + sizeof(struct ConnectionManeuverAssist), + offsetof(struct ConnectionManeuverAssist, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist = { + "ConnectionManeuverAssist", + "ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionManeuverAssist_1, + 6, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ConnectionTrajectory-addGrpC.c b/vcits/ivim/src/ConnectionTrajectory-addGrpC.c new file mode 100644 index 0000000..8160c57 --- /dev/null +++ b/vcits/ivim/src/ConnectionTrajectory-addGrpC.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ConnectionTrajectory-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ConnectionTrajectory_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionTrajectory_addGrpC, nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConnectionTrajectory_addGrpC, connectionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectionTrajectory_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionTrajectory_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionTrajectory_addGrpC_specs_1 = { + sizeof(struct ConnectionTrajectory_addGrpC), + offsetof(struct ConnectionTrajectory_addGrpC, _asn_ctx), + asn_MAP_ConnectionTrajectory_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionTrajectory_addGrpC = { + "ConnectionTrajectory-addGrpC", + "ConnectionTrajectory-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionTrajectory_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionTrajectory_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionTrajectory_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_ConnectionTrajectory_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ConnectsToList.c b/vcits/ivim/src/ConnectsToList.c new file mode 100644 index 0000000..1ac5376 --- /dev/null +++ b/vcits/ivim/src/ConnectsToList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ConnectsToList.h" + +#include "Connection.h" +static asn_oer_constraints_t asn_OER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ConnectsToList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Connection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectsToList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1 = { + sizeof(struct ConnectsToList), + offsetof(struct ConnectsToList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectsToList = { + "ConnectsToList", + "ConnectsToList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ConnectsToList_tags_1, + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + asn_DEF_ConnectsToList_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + { &asn_OER_type_ConnectsToList_constr_1, &asn_PER_type_ConnectsToList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ConnectsToList_1, + 1, /* Single element */ + &asn_SPC_ConnectsToList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ConstraintTextLines1.c b/vcits/ivim/src/ConstraintTextLines1.c new file mode 100644 index 0000000..6113bbb --- /dev/null +++ b/vcits/ivim/src/ConstraintTextLines1.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ConstraintTextLines1.h" + +#include "Text.h" +static int +memb_Text_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_Member_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_Member_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ConstraintTextLines1_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_ConstraintTextLines1_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (SIZE(1..4,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ConstraintTextLines1_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Text, + 0, + { &asn_OER_memb_Member_constr_2, &asn_PER_memb_Member_constr_2, memb_Text_constraint_1 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConstraintTextLines1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ConstraintTextLines1_specs_1 = { + sizeof(struct ConstraintTextLines1), + offsetof(struct ConstraintTextLines1, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ConstraintTextLines1 = { + "ConstraintTextLines1", + "ConstraintTextLines1", + &asn_OP_SEQUENCE_OF, + asn_DEF_ConstraintTextLines1_tags_1, + sizeof(asn_DEF_ConstraintTextLines1_tags_1) + /sizeof(asn_DEF_ConstraintTextLines1_tags_1[0]), /* 1 */ + asn_DEF_ConstraintTextLines1_tags_1, /* Same as above */ + sizeof(asn_DEF_ConstraintTextLines1_tags_1) + /sizeof(asn_DEF_ConstraintTextLines1_tags_1[0]), /* 1 */ + { &asn_OER_type_ConstraintTextLines1_constr_1, &asn_PER_type_ConstraintTextLines1_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ConstraintTextLines1_1, + 1, /* Single element */ + &asn_SPC_ConstraintTextLines1_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ConstraintTextLines2.c b/vcits/ivim/src/ConstraintTextLines2.c new file mode 100644 index 0000000..a97099d --- /dev/null +++ b/vcits/ivim/src/ConstraintTextLines2.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ConstraintTextLines2.h" + +#include "Text.h" +static int +memb_Text_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_Member_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_Member_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ConstraintTextLines2_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_ConstraintTextLines2_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (SIZE(1..4,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ConstraintTextLines2_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Text, + 0, + { &asn_OER_memb_Member_constr_2, &asn_PER_memb_Member_constr_2, memb_Text_constraint_1 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConstraintTextLines2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ConstraintTextLines2_specs_1 = { + sizeof(struct ConstraintTextLines2), + offsetof(struct ConstraintTextLines2, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ConstraintTextLines2 = { + "ConstraintTextLines2", + "ConstraintTextLines2", + &asn_OP_SEQUENCE_OF, + asn_DEF_ConstraintTextLines2_tags_1, + sizeof(asn_DEF_ConstraintTextLines2_tags_1) + /sizeof(asn_DEF_ConstraintTextLines2_tags_1[0]), /* 1 */ + asn_DEF_ConstraintTextLines2_tags_1, /* Same as above */ + sizeof(asn_DEF_ConstraintTextLines2_tags_1) + /sizeof(asn_DEF_ConstraintTextLines2_tags_1[0]), /* 1 */ + { &asn_OER_type_ConstraintTextLines2_constr_1, &asn_PER_type_ConstraintTextLines2_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ConstraintTextLines2_1, + 1, /* Single element */ + &asn_SPC_ConstraintTextLines2_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ContractAuthenticator.c b/vcits/ivim/src/ContractAuthenticator.c new file mode 100644 index 0000000..03edb4c --- /dev/null +++ b/vcits/ivim/src/ContractAuthenticator.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ContractAuthenticator.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ContractAuthenticator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ContractAuthenticator = { + "ContractAuthenticator", + "ContractAuthenticator", + &asn_OP_OCTET_STRING, + asn_DEF_ContractAuthenticator_tags_1, + sizeof(asn_DEF_ContractAuthenticator_tags_1) + /sizeof(asn_DEF_ContractAuthenticator_tags_1[0]), /* 1 */ + asn_DEF_ContractAuthenticator_tags_1, /* Same as above */ + sizeof(asn_DEF_ContractAuthenticator_tags_1) + /sizeof(asn_DEF_ContractAuthenticator_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ContractSerialNumber.c b/vcits/ivim/src/ContractSerialNumber.c new file mode 100644 index 0000000..2a0a3c9 --- /dev/null +++ b/vcits/ivim/src/ContractSerialNumber.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ContractSerialNumber.h" + +int +ContractSerialNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using Int4, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ContractSerialNumber_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +static asn_per_constraints_t asn_PER_type_ContractSerialNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ContractSerialNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ContractSerialNumber = { + "ContractSerialNumber", + "ContractSerialNumber", + &asn_OP_NativeInteger, + asn_DEF_ContractSerialNumber_tags_1, + sizeof(asn_DEF_ContractSerialNumber_tags_1) + /sizeof(asn_DEF_ContractSerialNumber_tags_1[0]), /* 1 */ + asn_DEF_ContractSerialNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ContractSerialNumber_tags_1) + /sizeof(asn_DEF_ContractSerialNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_ContractSerialNumber_constr_1, &asn_PER_type_ContractSerialNumber_constr_1, ContractSerialNumber_constraint }, + 0, 0, /* No members */ + &asn_SPC_Int4_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ContractValidity.c b/vcits/ivim/src/ContractValidity.c new file mode 100644 index 0000000..915285c --- /dev/null +++ b/vcits/ivim/src/ContractValidity.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ContractValidity.h" + +static int +memb_contractRestrictions_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_contractRestrictions_constr_2 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_memb_contractRestrictions_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ContractValidity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ContractValidity, contractRestrictions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_contractRestrictions_constr_2, &asn_PER_memb_contractRestrictions_constr_2, memb_contractRestrictions_constraint_1 }, + 0, 0, /* No default value */ + "contractRestrictions" + }, + { ATF_NOFLAGS, 0, offsetof(struct ContractValidity, contractExpiryDate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DateCompact, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "contractExpiryDate" + }, +}; +static const ber_tlv_tag_t asn_DEF_ContractValidity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ContractValidity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* contractRestrictions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* contractExpiryDate */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ContractValidity_specs_1 = { + sizeof(struct ContractValidity), + offsetof(struct ContractValidity, _asn_ctx), + asn_MAP_ContractValidity_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ContractValidity = { + "ContractValidity", + "ContractValidity", + &asn_OP_SEQUENCE, + asn_DEF_ContractValidity_tags_1, + sizeof(asn_DEF_ContractValidity_tags_1) + /sizeof(asn_DEF_ContractValidity_tags_1[0]), /* 1 */ + asn_DEF_ContractValidity_tags_1, /* Same as above */ + sizeof(asn_DEF_ContractValidity_tags_1) + /sizeof(asn_DEF_ContractValidity_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ContractValidity_1, + 2, /* Elements count */ + &asn_SPC_ContractValidity_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ContractVehicle.c b/vcits/ivim/src/ContractVehicle.c new file mode 100644 index 0000000..38ba012 --- /dev/null +++ b/vcits/ivim/src/ContractVehicle.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ContractVehicle.h" + +/* + * This type is implemented using LPN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ContractVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ContractVehicle = { + "ContractVehicle", + "ContractVehicle", + &asn_OP_SEQUENCE, + asn_DEF_ContractVehicle_tags_1, + sizeof(asn_DEF_ContractVehicle_tags_1) + /sizeof(asn_DEF_ContractVehicle_tags_1[0]), /* 1 */ + asn_DEF_ContractVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_ContractVehicle_tags_1) + /sizeof(asn_DEF_ContractVehicle_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LPN_1, + 3, /* Elements count */ + &asn_SPC_LPN_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CopValue.c b/vcits/ivim/src/CopValue.c new file mode 100644 index 0000000..a50a3ef --- /dev/null +++ b/vcits/ivim/src/CopValue.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CopValue.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CopValue_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CopValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CopValue_value2enum_1[] = { + { 0, 7, "noEntry" }, + { 1, 9, "co2class1" }, + { 2, 9, "co2class2" }, + { 3, 9, "co2class3" }, + { 4, 9, "co2class4" }, + { 5, 9, "co2class5" }, + { 6, 9, "co2class6" }, + { 7, 9, "co2class7" }, + { 8, 14, "reservedforUse" } +}; +static const unsigned int asn_MAP_CopValue_enum2value_1[] = { + 1, /* co2class1(1) */ + 2, /* co2class2(2) */ + 3, /* co2class3(3) */ + 4, /* co2class4(4) */ + 5, /* co2class5(5) */ + 6, /* co2class6(6) */ + 7, /* co2class7(7) */ + 0, /* noEntry(0) */ + 8 /* reservedforUse(8) */ +}; +const asn_INTEGER_specifics_t asn_SPC_CopValue_specs_1 = { + asn_MAP_CopValue_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CopValue_enum2value_1, /* N => "tag"; sorted by N */ + 9, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CopValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CopValue = { + "CopValue", + "CopValue", + &asn_OP_NativeEnumerated, + asn_DEF_CopValue_tags_1, + sizeof(asn_DEF_CopValue_tags_1) + /sizeof(asn_DEF_CopValue_tags_1[0]), /* 1 */ + asn_DEF_CopValue_tags_1, /* Same as above */ + sizeof(asn_DEF_CopValue_tags_1) + /sizeof(asn_DEF_CopValue_tags_1[0]), /* 1 */ + { &asn_OER_type_CopValue_constr_1, &asn_PER_type_CopValue_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CopValue_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CopyRq.c b/vcits/ivim/src/CopyRq.c new file mode 100644 index 0000000..7a33b1c --- /dev/null +++ b/vcits/ivim/src/CopyRq.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CopyRq.h" + +static int +memb_destinationEID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_destinationEID_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_destinationEID_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (0..127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CopyRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CopyRq, destinationEID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_destinationEID_constr_2, &asn_PER_memb_destinationEID_constr_2, memb_destinationEID_constraint_1 }, + 0, 0, /* No default value */ + "destinationEID" + }, + { ATF_NOFLAGS, 0, offsetof(struct CopyRq, attributeIdList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AttributeIdList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "attributeIdList" + }, +}; +static const ber_tlv_tag_t asn_DEF_CopyRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CopyRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* destinationEID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributeIdList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CopyRq_specs_1 = { + sizeof(struct CopyRq), + offsetof(struct CopyRq, _asn_ctx), + asn_MAP_CopyRq_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CopyRq = { + "CopyRq", + "CopyRq", + &asn_OP_SEQUENCE, + asn_DEF_CopyRq_tags_1, + sizeof(asn_DEF_CopyRq_tags_1) + /sizeof(asn_DEF_CopyRq_tags_1[0]), /* 1 */ + asn_DEF_CopyRq_tags_1, /* Same as above */ + sizeof(asn_DEF_CopyRq_tags_1) + /sizeof(asn_DEF_CopyRq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CopyRq_1, + 2, /* Elements count */ + &asn_SPC_CopyRq_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CountryCode.c b/vcits/ivim/src/CountryCode.c new file mode 100644 index 0000000..4055b38 --- /dev/null +++ b/vcits/ivim/src/CountryCode.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CountryCode.h" + +int +CountryCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CountryCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_CountryCode_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CountryCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CountryCode = { + "CountryCode", + "CountryCode", + &asn_OP_BIT_STRING, + asn_DEF_CountryCode_tags_1, + sizeof(asn_DEF_CountryCode_tags_1) + /sizeof(asn_DEF_CountryCode_tags_1[0]), /* 1 */ + asn_DEF_CountryCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CountryCode_tags_1) + /sizeof(asn_DEF_CountryCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CountryCode_constr_1, &asn_PER_type_CountryCode_constr_1, CountryCode_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CreditRq.c b/vcits/ivim/src/CreditRq.c new file mode 100644 index 0000000..ac8ef8e --- /dev/null +++ b/vcits/ivim/src/CreditRq.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CreditRq.h" + +static int +memb_key_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_key_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_key_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CreditRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CreditRq, refund), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PaymentFee, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refund" + }, + { ATF_NOFLAGS, 0, offsetof(struct CreditRq, nonce), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonce" + }, + { ATF_NOFLAGS, 0, offsetof(struct CreditRq, key), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_key_constr_4, &asn_PER_memb_key_constr_4, memb_key_constraint_1 }, + 0, 0, /* No default value */ + "key" + }, +}; +static const ber_tlv_tag_t asn_DEF_CreditRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CreditRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* refund */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nonce */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* key */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CreditRq_specs_1 = { + sizeof(struct CreditRq), + offsetof(struct CreditRq, _asn_ctx), + asn_MAP_CreditRq_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CreditRq = { + "CreditRq", + "CreditRq", + &asn_OP_SEQUENCE, + asn_DEF_CreditRq_tags_1, + sizeof(asn_DEF_CreditRq_tags_1) + /sizeof(asn_DEF_CreditRq_tags_1[0]), /* 1 */ + asn_DEF_CreditRq_tags_1, /* Same as above */ + sizeof(asn_DEF_CreditRq_tags_1) + /sizeof(asn_DEF_CreditRq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CreditRq_1, + 3, /* Elements count */ + &asn_SPC_CreditRq_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CreditRs.c b/vcits/ivim/src/CreditRs.c new file mode 100644 index 0000000..b8617d6 --- /dev/null +++ b/vcits/ivim/src/CreditRs.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CreditRs.h" + +static asn_TYPE_member_t asn_MBR_CreditRs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CreditRs, creditResult), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResultFin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "creditResult" + }, + { ATF_NOFLAGS, 0, offsetof(struct CreditRs, creditAuthenticator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "creditAuthenticator" + }, +}; +static const ber_tlv_tag_t asn_DEF_CreditRs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CreditRs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* creditResult */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* creditAuthenticator */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CreditRs_specs_1 = { + sizeof(struct CreditRs), + offsetof(struct CreditRs, _asn_ctx), + asn_MAP_CreditRs_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CreditRs = { + "CreditRs", + "CreditRs", + &asn_OP_SEQUENCE, + asn_DEF_CreditRs_tags_1, + sizeof(asn_DEF_CreditRs_tags_1) + /sizeof(asn_DEF_CreditRs_tags_1[0]), /* 1 */ + asn_DEF_CreditRs_tags_1, /* Same as above */ + sizeof(asn_DEF_CreditRs_tags_1) + /sizeof(asn_DEF_CreditRs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CreditRs_1, + 2, /* Elements count */ + &asn_SPC_CreditRs_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Curvature.c b/vcits/ivim/src/Curvature.c new file mode 100644 index 0000000..1344db7 --- /dev/null +++ b/vcits/ivim/src/Curvature.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Curvature.h" + +static asn_TYPE_member_t asn_MBR_Curvature_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Curvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Curvature_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* curvatureValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* curvatureConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Curvature_specs_1 = { + sizeof(struct Curvature), + offsetof(struct Curvature, _asn_ctx), + asn_MAP_Curvature_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Curvature = { + "Curvature", + "Curvature", + &asn_OP_SEQUENCE, + asn_DEF_Curvature_tags_1, + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + asn_DEF_Curvature_tags_1, /* Same as above */ + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Curvature_1, + 2, /* Elements count */ + &asn_SPC_Curvature_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CurvatureCalculationMode.c b/vcits/ivim/src/CurvatureCalculationMode.c new file mode 100644 index 0000000..b81a801 --- /dev/null +++ b/vcits/ivim/src/CurvatureCalculationMode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CurvatureCalculationMode.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureCalculationMode_value2enum_1[] = { + { 0, 11, "yawRateUsed" }, + { 1, 14, "yawRateNotUsed" }, + { 2, 11, "unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CurvatureCalculationMode_enum2value_1[] = { + 2, /* unavailable(2) */ + 1, /* yawRateNotUsed(1) */ + 0 /* yawRateUsed(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_CurvatureCalculationMode_specs_1 = { + asn_MAP_CurvatureCalculationMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureCalculationMode_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureCalculationMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode = { + "CurvatureCalculationMode", + "CurvatureCalculationMode", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureCalculationMode_tags_1, + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + asn_DEF_CurvatureCalculationMode_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureCalculationMode_constr_1, &asn_PER_type_CurvatureCalculationMode_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureCalculationMode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CurvatureConfidence.c b/vcits/ivim/src/CurvatureConfidence.c new file mode 100644 index 0000000..cb0e19b --- /dev/null +++ b/vcits/ivim/src/CurvatureConfidence.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CurvatureConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureConfidence_value2enum_1[] = { + { 0, 19, "onePerMeter-0-00002" }, + { 1, 18, "onePerMeter-0-0001" }, + { 2, 18, "onePerMeter-0-0005" }, + { 3, 17, "onePerMeter-0-002" }, + { 4, 16, "onePerMeter-0-01" }, + { 5, 15, "onePerMeter-0-1" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_CurvatureConfidence_enum2value_1[] = { + 0, /* onePerMeter-0-00002(0) */ + 1, /* onePerMeter-0-0001(1) */ + 2, /* onePerMeter-0-0005(2) */ + 3, /* onePerMeter-0-002(3) */ + 4, /* onePerMeter-0-01(4) */ + 5, /* onePerMeter-0-1(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1 = { + asn_MAP_CurvatureConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence = { + "CurvatureConfidence", + "CurvatureConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureConfidence_tags_1, + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + asn_DEF_CurvatureConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureConfidence_constr_1, &asn_PER_type_CurvatureConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/CurvatureValue.c b/vcits/ivim/src/CurvatureValue.c new file mode 100644 index 0000000..b80f404 --- /dev/null +++ b/vcits/ivim/src/CurvatureValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "CurvatureValue.h" + +int +CurvatureValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1023 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1023..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1023, 1023 } /* (-1023..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CurvatureValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureValue = { + "CurvatureValue", + "CurvatureValue", + &asn_OP_NativeInteger, + asn_DEF_CurvatureValue_tags_1, + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + asn_DEF_CurvatureValue_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureValue_constr_1, &asn_PER_type_CurvatureValue_constr_1, CurvatureValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DDD-IO-LIST.c b/vcits/ivim/src/DDD-IO-LIST.c new file mode 100644 index 0000000..24c2ea4 --- /dev/null +++ b/vcits/ivim/src/DDD-IO-LIST.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DDD-IO-LIST.h" + +#include "DDD-IO.h" +static asn_oer_constraints_t asn_OER_type_DDD_IO_LIST_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_DDD_IO_LIST_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_DDD_IO_LIST_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DDD_IO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DDD_IO_LIST_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_DDD_IO_LIST_specs_1 = { + sizeof(struct DDD_IO_LIST), + offsetof(struct DDD_IO_LIST, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DDD_IO_LIST = { + "DDD-IO-LIST", + "DDD-IO-LIST", + &asn_OP_SEQUENCE_OF, + asn_DEF_DDD_IO_LIST_tags_1, + sizeof(asn_DEF_DDD_IO_LIST_tags_1) + /sizeof(asn_DEF_DDD_IO_LIST_tags_1[0]), /* 1 */ + asn_DEF_DDD_IO_LIST_tags_1, /* Same as above */ + sizeof(asn_DEF_DDD_IO_LIST_tags_1) + /sizeof(asn_DEF_DDD_IO_LIST_tags_1[0]), /* 1 */ + { &asn_OER_type_DDD_IO_LIST_constr_1, &asn_PER_type_DDD_IO_LIST_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DDD_IO_LIST_1, + 1, /* Single element */ + &asn_SPC_DDD_IO_LIST_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DDD-IO.c b/vcits/ivim/src/DDD-IO.c new file mode 100644 index 0000000..48fc86d --- /dev/null +++ b/vcits/ivim/src/DDD-IO.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DDD-IO.h" + +#include "DestinationPlaces.h" +#include "DestinationRoads.h" +#include "DistanceOrDuration.h" +static int +memb_arrowDirection_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_roadNumberIdentifier_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 999)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_streetName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 999)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_arrowDirection_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_memb_arrowDirection_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_roadNumberIdentifier_constr_5 CC_NOTUSED = { + { 2, 1 } /* (1..999) */, + -1}; +static asn_per_constraints_t asn_PER_memb_roadNumberIdentifier_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 999 } /* (1..999) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_streetName_constr_6 CC_NOTUSED = { + { 2, 1 } /* (1..999) */, + -1}; +static asn_per_constraints_t asn_PER_memb_streetName_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 999 } /* (1..999) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_DDD_IO_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DDD_IO, arrowDirection), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_arrowDirection_constr_2, &asn_PER_memb_arrowDirection_constr_2, memb_arrowDirection_constraint_1 }, + 0, 0, /* No default value */ + "arrowDirection" + }, + { ATF_POINTER, 7, offsetof(struct DDD_IO, destPlace), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DestinationPlaces, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "destPlace" + }, + { ATF_POINTER, 6, offsetof(struct DDD_IO, destRoad), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DestinationRoads, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "destRoad" + }, + { ATF_POINTER, 5, offsetof(struct DDD_IO, roadNumberIdentifier), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_roadNumberIdentifier_constr_5, &asn_PER_memb_roadNumberIdentifier_constr_5, memb_roadNumberIdentifier_constraint_1 }, + 0, 0, /* No default value */ + "roadNumberIdentifier" + }, + { ATF_POINTER, 4, offsetof(struct DDD_IO, streetName), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_streetName_constr_6, &asn_PER_memb_streetName_constr_6, memb_streetName_constraint_1 }, + 0, 0, /* No default value */ + "streetName" + }, + { ATF_POINTER, 3, offsetof(struct DDD_IO, streetNameText), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "streetNameText" + }, + { ATF_POINTER, 2, offsetof(struct DDD_IO, distanceToDivergingPoint), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DistanceOrDuration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "distanceToDivergingPoint" + }, + { ATF_POINTER, 1, offsetof(struct DDD_IO, distanceToDestinationPlace), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DistanceOrDuration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "distanceToDestinationPlace" + }, +}; +static const int asn_MAP_DDD_IO_oms_1[] = { 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_DDD_IO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DDD_IO_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* arrowDirection */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* destPlace */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* destRoad */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roadNumberIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* streetName */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* streetNameText */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* distanceToDivergingPoint */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* distanceToDestinationPlace */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DDD_IO_specs_1 = { + sizeof(struct DDD_IO), + offsetof(struct DDD_IO, _asn_ctx), + asn_MAP_DDD_IO_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_DDD_IO_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DDD_IO = { + "DDD-IO", + "DDD-IO", + &asn_OP_SEQUENCE, + asn_DEF_DDD_IO_tags_1, + sizeof(asn_DEF_DDD_IO_tags_1) + /sizeof(asn_DEF_DDD_IO_tags_1[0]), /* 1 */ + asn_DEF_DDD_IO_tags_1, /* Same as above */ + sizeof(asn_DEF_DDD_IO_tags_1) + /sizeof(asn_DEF_DDD_IO_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DDD_IO_1, + 8, /* Elements count */ + &asn_SPC_DDD_IO_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DDateTime.c b/vcits/ivim/src/DDateTime.c new file mode 100644 index 0000000..c19db61 --- /dev/null +++ b/vcits/ivim/src/DDateTime.c @@ -0,0 +1,112 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DDateTime.h" + +asn_TYPE_member_t asn_MBR_DDateTime_1[] = { + { ATF_POINTER, 7, offsetof(struct DDateTime, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "year" + }, + { ATF_POINTER, 6, offsetof(struct DDateTime, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMonth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "month" + }, + { ATF_POINTER, 5, offsetof(struct DDateTime, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDay, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "day" + }, + { ATF_POINTER, 4, offsetof(struct DDateTime, hour), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DHour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hour" + }, + { ATF_POINTER, 3, offsetof(struct DDateTime, minute), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMinute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct DDateTime, second), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct DDateTime, offset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offset" + }, +}; +static const int asn_MAP_DDateTime_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_DDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DDateTime_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* day */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hour */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* offset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1 = { + sizeof(struct DDateTime), + offsetof(struct DDateTime, _asn_ctx), + asn_MAP_DDateTime_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_DDateTime_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DDateTime = { + "DDateTime", + "DDateTime", + &asn_OP_SEQUENCE, + asn_DEF_DDateTime_tags_1, + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + asn_DEF_DDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DDateTime_1, + 7, /* Elements count */ + &asn_SPC_DDateTime_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DDay.c b/vcits/ivim/src/DDay.c new file mode 100644 index 0000000..5b2d629 --- /dev/null +++ b/vcits/ivim/src/DDay.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DDay.h" + +int +DDay_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DDay_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_DDay_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DDay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DDay = { + "DDay", + "DDay", + &asn_OP_NativeInteger, + asn_DEF_DDay_tags_1, + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + asn_DEF_DDay_tags_1, /* Same as above */ + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + { &asn_OER_type_DDay_constr_1, &asn_PER_type_DDay_constr_1, DDay_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DHour.c b/vcits/ivim/src/DHour.c new file mode 100644 index 0000000..84219ac --- /dev/null +++ b/vcits/ivim/src/DHour.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DHour.h" + +int +DHour_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DHour_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_DHour_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DHour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DHour = { + "DHour", + "DHour", + &asn_OP_NativeInteger, + asn_DEF_DHour_tags_1, + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + asn_DEF_DHour_tags_1, /* Same as above */ + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + { &asn_OER_type_DHour_constr_1, &asn_PER_type_DHour_constr_1, DHour_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DMinute.c b/vcits/ivim/src/DMinute.c new file mode 100644 index 0000000..0d83f80 --- /dev/null +++ b/vcits/ivim/src/DMinute.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DMinute.h" + +int +DMinute_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 60)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DMinute_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..60) */, + -1}; +asn_per_constraints_t asn_PER_type_DMinute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 60 } /* (0..60) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DMinute_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMinute = { + "DMinute", + "DMinute", + &asn_OP_NativeInteger, + asn_DEF_DMinute_tags_1, + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + asn_DEF_DMinute_tags_1, /* Same as above */ + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + { &asn_OER_type_DMinute_constr_1, &asn_PER_type_DMinute_constr_1, DMinute_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DMonth.c b/vcits/ivim/src/DMonth.c new file mode 100644 index 0000000..4a9060a --- /dev/null +++ b/vcits/ivim/src/DMonth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DMonth.h" + +int +DMonth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DMonth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..12) */, + -1}; +asn_per_constraints_t asn_PER_type_DMonth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DMonth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMonth = { + "DMonth", + "DMonth", + &asn_OP_NativeInteger, + asn_DEF_DMonth_tags_1, + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + asn_DEF_DMonth_tags_1, /* Same as above */ + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + { &asn_OER_type_DMonth_constr_1, &asn_PER_type_DMonth_constr_1, DMonth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DOffset.c b/vcits/ivim/src/DOffset.c new file mode 100644 index 0000000..d29f243 --- /dev/null +++ b/vcits/ivim/src/DOffset.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DOffset.h" + +int +DOffset_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -840 && value <= 840)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DOffset_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-840..840) */, + -1}; +asn_per_constraints_t asn_PER_type_DOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -840, 840 } /* (-840..840) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DOffset = { + "DOffset", + "DOffset", + &asn_OP_NativeInteger, + asn_DEF_DOffset_tags_1, + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + asn_DEF_DOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + { &asn_OER_type_DOffset_constr_1, &asn_PER_type_DOffset_constr_1, DOffset_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DSRCmsgID.c b/vcits/ivim/src/DSRCmsgID.c new file mode 100644 index 0000000..1f6d91c --- /dev/null +++ b/vcits/ivim/src/DSRCmsgID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DSRCmsgID.h" + +int +DSRCmsgID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DSRCmsgID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSRCmsgID = { + "DSRCmsgID", + "DSRCmsgID", + &asn_OP_NativeInteger, + asn_DEF_DSRCmsgID_tags_1, + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + asn_DEF_DSRCmsgID_tags_1, /* Same as above */ + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + { &asn_OER_type_DSRCmsgID_constr_1, &asn_PER_type_DSRCmsgID_constr_1, DSRCmsgID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DSecond.c b/vcits/ivim/src/DSecond.c new file mode 100644 index 0000000..0270611 --- /dev/null +++ b/vcits/ivim/src/DSecond.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DSecond.h" + +int +DSecond_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DSecond_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_DSecond_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSecond = { + "DSecond", + "DSecond", + &asn_OP_NativeInteger, + asn_DEF_DSecond_tags_1, + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + asn_DEF_DSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + { &asn_OER_type_DSecond_constr_1, &asn_PER_type_DSecond_constr_1, DSecond_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DYear.c b/vcits/ivim/src/DYear.c new file mode 100644 index 0000000..8d37671 --- /dev/null +++ b/vcits/ivim/src/DYear.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DYear.h" + +int +DYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DYear_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_DYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DYear = { + "DYear", + "DYear", + &asn_OP_NativeInteger, + asn_DEF_DYear_tags_1, + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + asn_DEF_DYear_tags_1, /* Same as above */ + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + { &asn_OER_type_DYear_constr_1, &asn_PER_type_DYear_constr_1, DYear_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DangerousEndOfQueueSubCauseCode.c b/vcits/ivim/src/DangerousEndOfQueueSubCauseCode.c new file mode 100644 index 0000000..4ee7ff6 --- /dev/null +++ b/vcits/ivim/src/DangerousEndOfQueueSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DangerousEndOfQueueSubCauseCode.h" + +int +DangerousEndOfQueueSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode = { + "DangerousEndOfQueueSubCauseCode", + "DangerousEndOfQueueSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1, &asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1, DangerousEndOfQueueSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DangerousGoodsBasic.c b/vcits/ivim/src/DangerousGoodsBasic.c new file mode 100644 index 0000000..9b4dd8e --- /dev/null +++ b/vcits/ivim/src/DangerousGoodsBasic.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DangerousGoodsBasic.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DangerousGoodsBasic_value2enum_1[] = { + { 0, 11, "explosives1" }, + { 1, 11, "explosives2" }, + { 2, 11, "explosives3" }, + { 3, 11, "explosives4" }, + { 4, 11, "explosives5" }, + { 5, 11, "explosives6" }, + { 6, 14, "flammableGases" }, + { 7, 17, "nonFlammableGases" }, + { 8, 10, "toxicGases" }, + { 9, 16, "flammableLiquids" }, + { 10, 15, "flammableSolids" }, + { 11, 39, "substancesLiableToSpontaneousCombustion" }, + { 12, 52, "substancesEmittingFlammableGasesUponContactWithWater" }, + { 13, 19, "oxidizingSubstances" }, + { 14, 16, "organicPeroxides" }, + { 15, 15, "toxicSubstances" }, + { 16, 20, "infectiousSubstances" }, + { 17, 19, "radioactiveMaterial" }, + { 18, 19, "corrosiveSubstances" }, + { 19, 32, "miscellaneousDangerousSubstances" } +}; +static const unsigned int asn_MAP_DangerousGoodsBasic_enum2value_1[] = { + 18, /* corrosiveSubstances(18) */ + 0, /* explosives1(0) */ + 1, /* explosives2(1) */ + 2, /* explosives3(2) */ + 3, /* explosives4(3) */ + 4, /* explosives5(4) */ + 5, /* explosives6(5) */ + 6, /* flammableGases(6) */ + 9, /* flammableLiquids(9) */ + 10, /* flammableSolids(10) */ + 16, /* infectiousSubstances(16) */ + 19, /* miscellaneousDangerousSubstances(19) */ + 7, /* nonFlammableGases(7) */ + 14, /* organicPeroxides(14) */ + 13, /* oxidizingSubstances(13) */ + 17, /* radioactiveMaterial(17) */ + 12, /* substancesEmittingFlammableGasesUponContactWithWater(12) */ + 11, /* substancesLiableToSpontaneousCombustion(11) */ + 8, /* toxicGases(8) */ + 15 /* toxicSubstances(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1 = { + asn_MAP_DangerousGoodsBasic_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DangerousGoodsBasic_enum2value_1, /* N => "tag"; sorted by N */ + 20, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic = { + "DangerousGoodsBasic", + "DangerousGoodsBasic", + &asn_OP_NativeEnumerated, + asn_DEF_DangerousGoodsBasic_tags_1, + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousGoodsBasic_constr_1, &asn_PER_type_DangerousGoodsBasic_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DangerousGoodsBasic_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DangerousGoodsExtended.c b/vcits/ivim/src/DangerousGoodsExtended.c new file mode 100644 index 0000000..0b0c509 --- /dev/null +++ b/vcits/ivim/src/DangerousGoodsExtended.c @@ -0,0 +1,243 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DangerousGoodsExtended.h" + +static int check_permitted_alphabet_7(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_unNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 9999)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_emergencyActionCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 24) + && !check_permitted_alphabet_7(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_companyName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const UTF8String_t *st = (const UTF8String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = UTF8String_length(st); + if((ssize_t)size < 0) { + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((size >= 1 && size <= 24)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_unNumber_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..9999) */, + -1}; +static asn_per_constraints_t asn_PER_memb_unNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 9999 } /* (0..9999) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..24)) */}; +static asn_per_constraints_t asn_PER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 5, 5, 1, 24 } /* (SIZE(1..24)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_companyName_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_companyName_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DangerousGoodsExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsBasic, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dangerousGoodsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, unNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_unNumber_constr_3, &asn_PER_memb_unNumber_constr_3, memb_unNumber_constraint_1 }, + 0, 0, /* No default value */ + "unNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, elevatedTemperature), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevatedTemperature" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, tunnelsRestricted), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tunnelsRestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, limitedQuantity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "limitedQuantity" + }, + { ATF_POINTER, 3, offsetof(struct DangerousGoodsExtended, emergencyActionCode), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_emergencyActionCode_constr_7, &asn_PER_memb_emergencyActionCode_constr_7, memb_emergencyActionCode_constraint_1 }, + 0, 0, /* No default value */ + "emergencyActionCode" + }, + { ATF_POINTER, 2, offsetof(struct DangerousGoodsExtended, phoneNumber), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhoneNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phoneNumber" + }, + { ATF_POINTER, 1, offsetof(struct DangerousGoodsExtended, companyName), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { &asn_OER_memb_companyName_constr_9, &asn_PER_memb_companyName_constr_9, memb_companyName_constraint_1 }, + 0, 0, /* No default value */ + "companyName" + }, +}; +static const int asn_MAP_DangerousGoodsExtended_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DangerousGoodsExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dangerousGoodsType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* unNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevatedTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tunnelsRestricted */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* limitedQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyActionCode */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* phoneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* companyName */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DangerousGoodsExtended_specs_1 = { + sizeof(struct DangerousGoodsExtended), + offsetof(struct DangerousGoodsExtended, _asn_ctx), + asn_MAP_DangerousGoodsExtended_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_DangerousGoodsExtended_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended = { + "DangerousGoodsExtended", + "DangerousGoodsExtended", + &asn_OP_SEQUENCE, + asn_DEF_DangerousGoodsExtended_tags_1, + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DangerousGoodsExtended_1, + 8, /* Elements count */ + &asn_SPC_DangerousGoodsExtended_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DangerousSituationSubCauseCode.c b/vcits/ivim/src/DangerousSituationSubCauseCode.c new file mode 100644 index 0000000..16ddb96 --- /dev/null +++ b/vcits/ivim/src/DangerousSituationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DangerousSituationSubCauseCode.h" + +int +DangerousSituationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousSituationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode = { + "DangerousSituationSubCauseCode", + "DangerousSituationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousSituationSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousSituationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousSituationSubCauseCode_constr_1, &asn_PER_type_DangerousSituationSubCauseCode_constr_1, DangerousSituationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DataParameters.c b/vcits/ivim/src/DataParameters.c new file mode 100644 index 0000000..d66b105 --- /dev/null +++ b/vcits/ivim/src/DataParameters.c @@ -0,0 +1,274 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DataParameters.h" + +static int check_permitted_alphabet_2(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_3(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_4(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_5(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_processMethod_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_2(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_processAgency_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_3(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_lastCheckedDate_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_4(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_geoidUsed_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_5(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_processMethod_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_processMethod_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_processAgency_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_processAgency_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +asn_TYPE_member_t asn_MBR_DataParameters_1[] = { + { ATF_POINTER, 4, offsetof(struct DataParameters, processMethod), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_processMethod_constr_2, &asn_PER_memb_processMethod_constr_2, memb_processMethod_constraint_1 }, + 0, 0, /* No default value */ + "processMethod" + }, + { ATF_POINTER, 3, offsetof(struct DataParameters, processAgency), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_processAgency_constr_3, &asn_PER_memb_processAgency_constr_3, memb_processAgency_constraint_1 }, + 0, 0, /* No default value */ + "processAgency" + }, + { ATF_POINTER, 2, offsetof(struct DataParameters, lastCheckedDate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_lastCheckedDate_constr_4, &asn_PER_memb_lastCheckedDate_constr_4, memb_lastCheckedDate_constraint_1 }, + 0, 0, /* No default value */ + "lastCheckedDate" + }, + { ATF_POINTER, 1, offsetof(struct DataParameters, geoidUsed), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_geoidUsed_constr_5, &asn_PER_memb_geoidUsed_constr_5, memb_geoidUsed_constraint_1 }, + 0, 0, /* No default value */ + "geoidUsed" + }, +}; +static const int asn_MAP_DataParameters_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_DataParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DataParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* processMethod */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* processAgency */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lastCheckedDate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* geoidUsed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1 = { + sizeof(struct DataParameters), + offsetof(struct DataParameters, _asn_ctx), + asn_MAP_DataParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DataParameters_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DataParameters = { + "DataParameters", + "DataParameters", + &asn_OP_SEQUENCE, + asn_DEF_DataParameters_tags_1, + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + asn_DEF_DataParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DataParameters_1, + 4, /* Elements count */ + &asn_SPC_DataParameters_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DateAndTime.c b/vcits/ivim/src/DateAndTime.c new file mode 100644 index 0000000..9e991c2 --- /dev/null +++ b/vcits/ivim/src/DateAndTime.c @@ -0,0 +1,222 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DateAndTime.h" + +static int +memb_hours_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 23)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_mins_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 59)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_double_secs_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 30)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_hours_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..23) */, + -1}; +static asn_per_constraints_t asn_PER_memb_hours_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 23 } /* (0..23) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_mins_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..59) */, + -1}; +static asn_per_constraints_t asn_PER_memb_mins_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 59 } /* (0..59) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_double_secs_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..30) */, + -1}; +static asn_per_constraints_t asn_PER_memb_double_secs_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 30 } /* (0..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_timeCompact_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct DateAndTime__timeCompact, hours), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_hours_constr_4, &asn_PER_memb_hours_constr_4, memb_hours_constraint_3 }, + 0, 0, /* No default value */ + "hours" + }, + { ATF_NOFLAGS, 0, offsetof(struct DateAndTime__timeCompact, mins), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_mins_constr_5, &asn_PER_memb_mins_constr_5, memb_mins_constraint_3 }, + 0, 0, /* No default value */ + "mins" + }, + { ATF_NOFLAGS, 0, offsetof(struct DateAndTime__timeCompact, double_secs), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_double_secs_constr_6, &asn_PER_memb_double_secs_constr_6, memb_double_secs_constraint_3 }, + 0, 0, /* No default value */ + "double-secs" + }, +}; +static const ber_tlv_tag_t asn_DEF_timeCompact_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_timeCompact_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* hours */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mins */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* double-secs */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_timeCompact_specs_3 = { + sizeof(struct DateAndTime__timeCompact), + offsetof(struct DateAndTime__timeCompact, _asn_ctx), + asn_MAP_timeCompact_tag2el_3, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_timeCompact_3 = { + "timeCompact", + "timeCompact", + &asn_OP_SEQUENCE, + asn_DEF_timeCompact_tags_3, + sizeof(asn_DEF_timeCompact_tags_3) + /sizeof(asn_DEF_timeCompact_tags_3[0]) - 1, /* 1 */ + asn_DEF_timeCompact_tags_3, /* Same as above */ + sizeof(asn_DEF_timeCompact_tags_3) + /sizeof(asn_DEF_timeCompact_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_timeCompact_3, + 3, /* Elements count */ + &asn_SPC_timeCompact_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DateAndTime_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DateAndTime, timeDate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DateCompact, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeDate" + }, + { ATF_NOFLAGS, 0, offsetof(struct DateAndTime, timeCompact), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_timeCompact_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeCompact" + }, +}; +static const ber_tlv_tag_t asn_DEF_DateAndTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DateAndTime_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeDate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* timeCompact */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DateAndTime_specs_1 = { + sizeof(struct DateAndTime), + offsetof(struct DateAndTime, _asn_ctx), + asn_MAP_DateAndTime_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DateAndTime = { + "DateAndTime", + "DateAndTime", + &asn_OP_SEQUENCE, + asn_DEF_DateAndTime_tags_1, + sizeof(asn_DEF_DateAndTime_tags_1) + /sizeof(asn_DEF_DateAndTime_tags_1[0]), /* 1 */ + asn_DEF_DateAndTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DateAndTime_tags_1) + /sizeof(asn_DEF_DateAndTime_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DateAndTime_1, + 2, /* Elements count */ + &asn_SPC_DateAndTime_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DateCompact.c b/vcits/ivim/src/DateCompact.c new file mode 100644 index 0000000..a1c8475 --- /dev/null +++ b/vcits/ivim/src/DateCompact.c @@ -0,0 +1,169 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DateCompact.h" + +static int +memb_year_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1990 && value <= 2117)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_month_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_day_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_year_constr_2 CC_NOTUSED = { + { 2, 1 } /* (1990..2117) */, + -1}; +static asn_per_constraints_t asn_PER_memb_year_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1990, 2117 } /* (1990..2117) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_month_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..12) */, + -1}; +static asn_per_constraints_t asn_PER_memb_month_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_day_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_day_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_DateCompact_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DateCompact, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_year_constr_2, &asn_PER_memb_year_constr_2, memb_year_constraint_1 }, + 0, 0, /* No default value */ + "year" + }, + { ATF_NOFLAGS, 0, offsetof(struct DateCompact, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_month_constr_3, &asn_PER_memb_month_constr_3, memb_month_constraint_1 }, + 0, 0, /* No default value */ + "month" + }, + { ATF_NOFLAGS, 0, offsetof(struct DateCompact, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_day_constr_4, &asn_PER_memb_day_constr_4, memb_day_constraint_1 }, + 0, 0, /* No default value */ + "day" + }, +}; +static const ber_tlv_tag_t asn_DEF_DateCompact_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DateCompact_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* day */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DateCompact_specs_1 = { + sizeof(struct DateCompact), + offsetof(struct DateCompact, _asn_ctx), + asn_MAP_DateCompact_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DateCompact = { + "DateCompact", + "DateCompact", + &asn_OP_SEQUENCE, + asn_DEF_DateCompact_tags_1, + sizeof(asn_DEF_DateCompact_tags_1) + /sizeof(asn_DEF_DateCompact_tags_1[0]), /* 1 */ + asn_DEF_DateCompact_tags_1, /* Same as above */ + sizeof(asn_DEF_DateCompact_tags_1) + /sizeof(asn_DEF_DateCompact_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DateCompact_1, + 3, /* Elements count */ + &asn_SPC_DateCompact_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DayOfWeek.c b/vcits/ivim/src/DayOfWeek.c new file mode 100644 index 0000000..b5a08f6 --- /dev/null +++ b/vcits/ivim/src/DayOfWeek.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DayOfWeek.h" + +int +DayOfWeek_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DayOfWeek_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_DayOfWeek_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DayOfWeek_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DayOfWeek = { + "DayOfWeek", + "DayOfWeek", + &asn_OP_BIT_STRING, + asn_DEF_DayOfWeek_tags_1, + sizeof(asn_DEF_DayOfWeek_tags_1) + /sizeof(asn_DEF_DayOfWeek_tags_1[0]), /* 1 */ + asn_DEF_DayOfWeek_tags_1, /* Same as above */ + sizeof(asn_DEF_DayOfWeek_tags_1) + /sizeof(asn_DEF_DayOfWeek_tags_1[0]), /* 1 */ + { &asn_OER_type_DayOfWeek_constr_1, &asn_PER_type_DayOfWeek_constr_1, DayOfWeek_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DebitRq.c b/vcits/ivim/src/DebitRq.c new file mode 100644 index 0000000..54e2e26 --- /dev/null +++ b/vcits/ivim/src/DebitRq.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DebitRq.h" + +static int +memb_keyRef_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_keyRef_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_keyRef_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DebitRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DebitRq, debitPaymentFee), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PaymentFee, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "debitPaymentFee" + }, + { ATF_NOFLAGS, 0, offsetof(struct DebitRq, nonce), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonce" + }, + { ATF_NOFLAGS, 0, offsetof(struct DebitRq, keyRef), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_keyRef_constr_4, &asn_PER_memb_keyRef_constr_4, memb_keyRef_constraint_1 }, + 0, 0, /* No default value */ + "keyRef" + }, +}; +static const ber_tlv_tag_t asn_DEF_DebitRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DebitRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* debitPaymentFee */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nonce */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* keyRef */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DebitRq_specs_1 = { + sizeof(struct DebitRq), + offsetof(struct DebitRq, _asn_ctx), + asn_MAP_DebitRq_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DebitRq = { + "DebitRq", + "DebitRq", + &asn_OP_SEQUENCE, + asn_DEF_DebitRq_tags_1, + sizeof(asn_DEF_DebitRq_tags_1) + /sizeof(asn_DEF_DebitRq_tags_1[0]), /* 1 */ + asn_DEF_DebitRq_tags_1, /* Same as above */ + sizeof(asn_DEF_DebitRq_tags_1) + /sizeof(asn_DEF_DebitRq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DebitRq_1, + 3, /* Elements count */ + &asn_SPC_DebitRq_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DebitRs.c b/vcits/ivim/src/DebitRs.c new file mode 100644 index 0000000..4595ffc --- /dev/null +++ b/vcits/ivim/src/DebitRs.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DebitRs.h" + +static asn_TYPE_member_t asn_MBR_DebitRs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DebitRs, debitResult), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResultFin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "debitResult" + }, + { ATF_NOFLAGS, 0, offsetof(struct DebitRs, debitAuthenticator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "debitAuthenticator" + }, +}; +static const ber_tlv_tag_t asn_DEF_DebitRs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DebitRs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* debitResult */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* debitAuthenticator */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DebitRs_specs_1 = { + sizeof(struct DebitRs), + offsetof(struct DebitRs, _asn_ctx), + asn_MAP_DebitRs_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DebitRs = { + "DebitRs", + "DebitRs", + &asn_OP_SEQUENCE, + asn_DEF_DebitRs_tags_1, + sizeof(asn_DEF_DebitRs_tags_1) + /sizeof(asn_DEF_DebitRs_tags_1[0]), /* 1 */ + asn_DEF_DebitRs_tags_1, /* Same as above */ + sizeof(asn_DEF_DebitRs_tags_1) + /sizeof(asn_DEF_DebitRs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DebitRs_1, + 2, /* Elements count */ + &asn_SPC_DebitRs_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DefinitionAccuracy.c b/vcits/ivim/src/DefinitionAccuracy.c new file mode 100644 index 0000000..2bfbd9f --- /dev/null +++ b/vcits/ivim/src/DefinitionAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DefinitionAccuracy.h" + +int +DefinitionAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DefinitionAccuracy_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DefinitionAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DefinitionAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DefinitionAccuracy = { + "DefinitionAccuracy", + "DefinitionAccuracy", + &asn_OP_NativeInteger, + asn_DEF_DefinitionAccuracy_tags_1, + sizeof(asn_DEF_DefinitionAccuracy_tags_1) + /sizeof(asn_DEF_DefinitionAccuracy_tags_1[0]), /* 1 */ + asn_DEF_DefinitionAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_DefinitionAccuracy_tags_1) + /sizeof(asn_DEF_DefinitionAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_DefinitionAccuracy_constr_1, &asn_PER_type_DefinitionAccuracy_constr_1, DefinitionAccuracy_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DeltaAltitude.c b/vcits/ivim/src/DeltaAltitude.c new file mode 100644 index 0000000..aa54b27 --- /dev/null +++ b/vcits/ivim/src/DeltaAltitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DeltaAltitude.h" + +int +DeltaAltitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -12700 && value <= 12800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-12700..12800) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, -12700, 12800 } /* (-12700..12800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAltitude = { + "DeltaAltitude", + "DeltaAltitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaAltitude_tags_1, + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAltitude_constr_1, &asn_PER_type_DeltaAltitude_constr_1, DeltaAltitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DeltaAngle.c b/vcits/ivim/src/DeltaAngle.c new file mode 100644 index 0000000..54a74a5 --- /dev/null +++ b/vcits/ivim/src/DeltaAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DeltaAngle.h" + +int +DeltaAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -150 && value <= 150)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-150..150) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -150, 150 } /* (-150..150) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAngle = { + "DeltaAngle", + "DeltaAngle", + &asn_OP_NativeInteger, + asn_DEF_DeltaAngle_tags_1, + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + asn_DEF_DeltaAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAngle_constr_1, &asn_PER_type_DeltaAngle_constr_1, DeltaAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DeltaLatitude.c b/vcits/ivim/src/DeltaLatitude.c new file mode 100644 index 0000000..4d4d406 --- /dev/null +++ b/vcits/ivim/src/DeltaLatitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DeltaLatitude.h" + +int +DeltaLatitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLatitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLatitude = { + "DeltaLatitude", + "DeltaLatitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLatitude_tags_1, + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLatitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLatitude_constr_1, &asn_PER_type_DeltaLatitude_constr_1, DeltaLatitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DeltaLongitude.c b/vcits/ivim/src/DeltaLongitude.c new file mode 100644 index 0000000..0a78a93 --- /dev/null +++ b/vcits/ivim/src/DeltaLongitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DeltaLongitude.h" + +int +DeltaLongitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLongitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLongitude = { + "DeltaLongitude", + "DeltaLongitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLongitude_tags_1, + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLongitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLongitude_constr_1, &asn_PER_type_DeltaLongitude_constr_1, DeltaLongitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DeltaPosition.c b/vcits/ivim/src/DeltaPosition.c new file mode 100644 index 0000000..ce7919a --- /dev/null +++ b/vcits/ivim/src/DeltaPosition.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DeltaPosition.h" + +asn_TYPE_member_t asn_MBR_DeltaPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DeltaPosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLatitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaPosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLongitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLongitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_DeltaPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DeltaPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* deltaLongitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DeltaPosition_specs_1 = { + sizeof(struct DeltaPosition), + offsetof(struct DeltaPosition, _asn_ctx), + asn_MAP_DeltaPosition_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DeltaPosition = { + "DeltaPosition", + "DeltaPosition", + &asn_OP_SEQUENCE, + asn_DEF_DeltaPosition_tags_1, + sizeof(asn_DEF_DeltaPosition_tags_1) + /sizeof(asn_DEF_DeltaPosition_tags_1[0]), /* 1 */ + asn_DEF_DeltaPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaPosition_tags_1) + /sizeof(asn_DEF_DeltaPosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DeltaPosition_1, + 2, /* Elements count */ + &asn_SPC_DeltaPosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DeltaPositions.c b/vcits/ivim/src/DeltaPositions.c new file mode 100644 index 0000000..f944fe9 --- /dev/null +++ b/vcits/ivim/src/DeltaPositions.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DeltaPositions.h" + +#include "DeltaPosition.h" +static asn_oer_constraints_t asn_OER_type_DeltaPositions_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_DeltaPositions_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 1, 100 } /* (SIZE(1..100,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_DeltaPositions_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DeltaPosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DeltaPositions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_DeltaPositions_specs_1 = { + sizeof(struct DeltaPositions), + offsetof(struct DeltaPositions, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DeltaPositions = { + "DeltaPositions", + "DeltaPositions", + &asn_OP_SEQUENCE_OF, + asn_DEF_DeltaPositions_tags_1, + sizeof(asn_DEF_DeltaPositions_tags_1) + /sizeof(asn_DEF_DeltaPositions_tags_1[0]), /* 1 */ + asn_DEF_DeltaPositions_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaPositions_tags_1) + /sizeof(asn_DEF_DeltaPositions_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaPositions_constr_1, &asn_PER_type_DeltaPositions_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DeltaPositions_1, + 1, /* Single element */ + &asn_SPC_DeltaPositions_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DeltaReferencePosition.c b/vcits/ivim/src/DeltaReferencePosition.c new file mode 100644 index 0000000..6dcfd48 --- /dev/null +++ b/vcits/ivim/src/DeltaReferencePosition.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DeltaReferencePosition.h" + +asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLatitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLongitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLongitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaAltitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_DeltaReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DeltaReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* deltaAltitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1 = { + sizeof(struct DeltaReferencePosition), + offsetof(struct DeltaReferencePosition, _asn_ctx), + asn_MAP_DeltaReferencePosition_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition = { + "DeltaReferencePosition", + "DeltaReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_DeltaReferencePosition_tags_1, + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_DeltaReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DeltaReferencePosition_1, + 3, /* Elements count */ + &asn_SPC_DeltaReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DeltaReferencePositions.c b/vcits/ivim/src/DeltaReferencePositions.c new file mode 100644 index 0000000..321ad67 --- /dev/null +++ b/vcits/ivim/src/DeltaReferencePositions.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DeltaReferencePositions.h" + +#include "DeltaReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_DeltaReferencePositions_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_DeltaReferencePositions_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 1, 100 } /* (SIZE(1..100,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_DeltaReferencePositions_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DeltaReferencePositions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_DeltaReferencePositions_specs_1 = { + sizeof(struct DeltaReferencePositions), + offsetof(struct DeltaReferencePositions, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DeltaReferencePositions = { + "DeltaReferencePositions", + "DeltaReferencePositions", + &asn_OP_SEQUENCE_OF, + asn_DEF_DeltaReferencePositions_tags_1, + sizeof(asn_DEF_DeltaReferencePositions_tags_1) + /sizeof(asn_DEF_DeltaReferencePositions_tags_1[0]), /* 1 */ + asn_DEF_DeltaReferencePositions_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaReferencePositions_tags_1) + /sizeof(asn_DEF_DeltaReferencePositions_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaReferencePositions_constr_1, &asn_PER_type_DeltaReferencePositions_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DeltaReferencePositions_1, + 1, /* Single element */ + &asn_SPC_DeltaReferencePositions_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DeltaTime.c b/vcits/ivim/src/DeltaTime.c new file mode 100644 index 0000000..a6254bd --- /dev/null +++ b/vcits/ivim/src/DeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DeltaTime.h" + +int +DeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -122 && value <= 121)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaTime_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-122..121) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -122, 121 } /* (-122..121) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaTime = { + "DeltaTime", + "DeltaTime", + &asn_OP_NativeInteger, + asn_DEF_DeltaTime_tags_1, + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + asn_DEF_DeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaTime_constr_1, &asn_PER_type_DeltaTime_constr_1, DeltaTime_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Depth.c b/vcits/ivim/src/Depth.c new file mode 100644 index 0000000..261d671 --- /dev/null +++ b/vcits/ivim/src/Depth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Depth.h" + +int +Depth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Depth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Depth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Depth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Depth = { + "Depth", + "Depth", + &asn_OP_NativeInteger, + asn_DEF_Depth_tags_1, + sizeof(asn_DEF_Depth_tags_1) + /sizeof(asn_DEF_Depth_tags_1[0]), /* 1 */ + asn_DEF_Depth_tags_1, /* Same as above */ + sizeof(asn_DEF_Depth_tags_1) + /sizeof(asn_DEF_Depth_tags_1[0]), /* 1 */ + { &asn_OER_type_Depth_constr_1, &asn_PER_type_Depth_constr_1, Depth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DescriptiveCharacteristics.c b/vcits/ivim/src/DescriptiveCharacteristics.c new file mode 100644 index 0000000..0922c2c --- /dev/null +++ b/vcits/ivim/src/DescriptiveCharacteristics.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DescriptiveCharacteristics.h" + +int +DescriptiveCharacteristics_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DescriptiveCharacteristics_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_DescriptiveCharacteristics_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DescriptiveCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DescriptiveCharacteristics = { + "DescriptiveCharacteristics", + "DescriptiveCharacteristics", + &asn_OP_NativeInteger, + asn_DEF_DescriptiveCharacteristics_tags_1, + sizeof(asn_DEF_DescriptiveCharacteristics_tags_1) + /sizeof(asn_DEF_DescriptiveCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_DescriptiveCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_DescriptiveCharacteristics_tags_1) + /sizeof(asn_DEF_DescriptiveCharacteristics_tags_1[0]), /* 1 */ + { &asn_OER_type_DescriptiveCharacteristics_constr_1, &asn_PER_type_DescriptiveCharacteristics_constr_1, DescriptiveCharacteristics_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DescriptiveName.c b/vcits/ivim/src/DescriptiveName.c new file mode 100644 index 0000000..b678b69 --- /dev/null +++ b/vcits/ivim/src/DescriptiveName.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DescriptiveName.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +DescriptiveName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 63) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_DescriptiveName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DescriptiveName = { + "DescriptiveName", + "DescriptiveName", + &asn_OP_IA5String, + asn_DEF_DescriptiveName_tags_1, + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + asn_DEF_DescriptiveName_tags_1, /* Same as above */ + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + { &asn_OER_type_DescriptiveName_constr_1, &asn_PER_type_DescriptiveName_constr_1, DescriptiveName_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DestinationPlace.c b/vcits/ivim/src/DestinationPlace.c new file mode 100644 index 0000000..b9a4e6a --- /dev/null +++ b/vcits/ivim/src/DestinationPlace.c @@ -0,0 +1,153 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DestinationPlace.h" + +#include "GddStructure.h" +static int +memb_destRSCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_placeNameIdentification_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 999)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_destRSCode_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_destRSCode_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_placeNameIdentification_constr_5 CC_NOTUSED = { + { 2, 1 } /* (1..999) */, + -1}; +static asn_per_constraints_t asn_PER_memb_placeNameIdentification_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 999 } /* (1..999) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_DestinationPlace_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DestinationPlace, destType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DestinationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "destType" + }, + { ATF_POINTER, 4, offsetof(struct DestinationPlace, destRSCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GddStructure, + 0, + { &asn_OER_memb_destRSCode_constr_3, &asn_PER_memb_destRSCode_constr_3, memb_destRSCode_constraint_1 }, + 0, 0, /* No default value */ + "destRSCode" + }, + { ATF_POINTER, 3, offsetof(struct DestinationPlace, destBlob), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "destBlob" + }, + { ATF_POINTER, 2, offsetof(struct DestinationPlace, placeNameIdentification), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_placeNameIdentification_constr_5, &asn_PER_memb_placeNameIdentification_constr_5, memb_placeNameIdentification_constraint_1 }, + 0, 0, /* No default value */ + "placeNameIdentification" + }, + { ATF_POINTER, 1, offsetof(struct DestinationPlace, placeNameText), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "placeNameText" + }, +}; +static const int asn_MAP_DestinationPlace_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_DestinationPlace_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DestinationPlace_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* destType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* destRSCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* destBlob */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* placeNameIdentification */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* placeNameText */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DestinationPlace_specs_1 = { + sizeof(struct DestinationPlace), + offsetof(struct DestinationPlace, _asn_ctx), + asn_MAP_DestinationPlace_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_DestinationPlace_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DestinationPlace = { + "DestinationPlace", + "DestinationPlace", + &asn_OP_SEQUENCE, + asn_DEF_DestinationPlace_tags_1, + sizeof(asn_DEF_DestinationPlace_tags_1) + /sizeof(asn_DEF_DestinationPlace_tags_1[0]), /* 1 */ + asn_DEF_DestinationPlace_tags_1, /* Same as above */ + sizeof(asn_DEF_DestinationPlace_tags_1) + /sizeof(asn_DEF_DestinationPlace_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DestinationPlace_1, + 5, /* Elements count */ + &asn_SPC_DestinationPlace_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DestinationPlaces.c b/vcits/ivim/src/DestinationPlaces.c new file mode 100644 index 0000000..7aec58a --- /dev/null +++ b/vcits/ivim/src/DestinationPlaces.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DestinationPlaces.h" + +#include "DestinationPlace.h" +static asn_oer_constraints_t asn_OER_type_DestinationPlaces_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_DestinationPlaces_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (SIZE(1..4,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_DestinationPlaces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DestinationPlace, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DestinationPlaces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_DestinationPlaces_specs_1 = { + sizeof(struct DestinationPlaces), + offsetof(struct DestinationPlaces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DestinationPlaces = { + "DestinationPlaces", + "DestinationPlaces", + &asn_OP_SEQUENCE_OF, + asn_DEF_DestinationPlaces_tags_1, + sizeof(asn_DEF_DestinationPlaces_tags_1) + /sizeof(asn_DEF_DestinationPlaces_tags_1[0]), /* 1 */ + asn_DEF_DestinationPlaces_tags_1, /* Same as above */ + sizeof(asn_DEF_DestinationPlaces_tags_1) + /sizeof(asn_DEF_DestinationPlaces_tags_1[0]), /* 1 */ + { &asn_OER_type_DestinationPlaces_constr_1, &asn_PER_type_DestinationPlaces_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DestinationPlaces_1, + 1, /* Single element */ + &asn_SPC_DestinationPlaces_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DestinationRoad.c b/vcits/ivim/src/DestinationRoad.c new file mode 100644 index 0000000..33991c9 --- /dev/null +++ b/vcits/ivim/src/DestinationRoad.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DestinationRoad.h" + +static int +memb_roadNumberIdentifier_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 999)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_roadNumberIdentifier_constr_3 CC_NOTUSED = { + { 2, 1 } /* (1..999) */, + -1}; +static asn_per_constraints_t asn_PER_memb_roadNumberIdentifier_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 999 } /* (1..999) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_DestinationRoad_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DestinationRoad, derType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DestinationRoadType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "derType" + }, + { ATF_POINTER, 2, offsetof(struct DestinationRoad, roadNumberIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_roadNumberIdentifier_constr_3, &asn_PER_memb_roadNumberIdentifier_constr_3, memb_roadNumberIdentifier_constraint_1 }, + 0, 0, /* No default value */ + "roadNumberIdentifier" + }, + { ATF_POINTER, 1, offsetof(struct DestinationRoad, roadNumberText), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadNumberText" + }, +}; +static const int asn_MAP_DestinationRoad_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_DestinationRoad_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DestinationRoad_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* derType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* roadNumberIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* roadNumberText */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DestinationRoad_specs_1 = { + sizeof(struct DestinationRoad), + offsetof(struct DestinationRoad, _asn_ctx), + asn_MAP_DestinationRoad_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_DestinationRoad_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DestinationRoad = { + "DestinationRoad", + "DestinationRoad", + &asn_OP_SEQUENCE, + asn_DEF_DestinationRoad_tags_1, + sizeof(asn_DEF_DestinationRoad_tags_1) + /sizeof(asn_DEF_DestinationRoad_tags_1[0]), /* 1 */ + asn_DEF_DestinationRoad_tags_1, /* Same as above */ + sizeof(asn_DEF_DestinationRoad_tags_1) + /sizeof(asn_DEF_DestinationRoad_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DestinationRoad_1, + 3, /* Elements count */ + &asn_SPC_DestinationRoad_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DestinationRoadType.c b/vcits/ivim/src/DestinationRoadType.c new file mode 100644 index 0000000..88b1187 --- /dev/null +++ b/vcits/ivim/src/DestinationRoadType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DestinationRoadType.h" + +int +DestinationRoadType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DestinationRoadType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DestinationRoadType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DestinationRoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DestinationRoadType = { + "DestinationRoadType", + "DestinationRoadType", + &asn_OP_NativeInteger, + asn_DEF_DestinationRoadType_tags_1, + sizeof(asn_DEF_DestinationRoadType_tags_1) + /sizeof(asn_DEF_DestinationRoadType_tags_1[0]), /* 1 */ + asn_DEF_DestinationRoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_DestinationRoadType_tags_1) + /sizeof(asn_DEF_DestinationRoadType_tags_1[0]), /* 1 */ + { &asn_OER_type_DestinationRoadType_constr_1, &asn_PER_type_DestinationRoadType_constr_1, DestinationRoadType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DestinationRoads.c b/vcits/ivim/src/DestinationRoads.c new file mode 100644 index 0000000..c910322 --- /dev/null +++ b/vcits/ivim/src/DestinationRoads.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DestinationRoads.h" + +#include "DestinationRoad.h" +static asn_oer_constraints_t asn_OER_type_DestinationRoads_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_DestinationRoads_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (SIZE(1..4,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_DestinationRoads_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DestinationRoad, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DestinationRoads_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_DestinationRoads_specs_1 = { + sizeof(struct DestinationRoads), + offsetof(struct DestinationRoads, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DestinationRoads = { + "DestinationRoads", + "DestinationRoads", + &asn_OP_SEQUENCE_OF, + asn_DEF_DestinationRoads_tags_1, + sizeof(asn_DEF_DestinationRoads_tags_1) + /sizeof(asn_DEF_DestinationRoads_tags_1[0]), /* 1 */ + asn_DEF_DestinationRoads_tags_1, /* Same as above */ + sizeof(asn_DEF_DestinationRoads_tags_1) + /sizeof(asn_DEF_DestinationRoads_tags_1[0]), /* 1 */ + { &asn_OER_type_DestinationRoads_constr_1, &asn_PER_type_DestinationRoads_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DestinationRoads_1, + 1, /* Single element */ + &asn_SPC_DestinationRoads_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DestinationType.c b/vcits/ivim/src/DestinationType.c new file mode 100644 index 0000000..5ad9888 --- /dev/null +++ b/vcits/ivim/src/DestinationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DestinationType.h" + +int +DestinationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DestinationType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DestinationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DestinationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DestinationType = { + "DestinationType", + "DestinationType", + &asn_OP_NativeInteger, + asn_DEF_DestinationType_tags_1, + sizeof(asn_DEF_DestinationType_tags_1) + /sizeof(asn_DEF_DestinationType_tags_1[0]), /* 1 */ + asn_DEF_DestinationType_tags_1, /* Same as above */ + sizeof(asn_DEF_DestinationType_tags_1) + /sizeof(asn_DEF_DestinationType_tags_1[0]), /* 1 */ + { &asn_OER_type_DestinationType_constr_1, &asn_PER_type_DestinationType_constr_1, DestinationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DieselEmissionValues.c b/vcits/ivim/src/DieselEmissionValues.c new file mode 100644 index 0000000..5799336 --- /dev/null +++ b/vcits/ivim/src/DieselEmissionValues.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DieselEmissionValues.h" + +static int +memb_value_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_particulate_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct DieselEmissionValues__particulate, unitType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UnitType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "unitType" + }, + { ATF_NOFLAGS, 0, offsetof(struct DieselEmissionValues__particulate, value), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_2 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_particulate_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_particulate_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* unitType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* value */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_particulate_specs_2 = { + sizeof(struct DieselEmissionValues__particulate), + offsetof(struct DieselEmissionValues__particulate, _asn_ctx), + asn_MAP_particulate_tag2el_2, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_particulate_2 = { + "particulate", + "particulate", + &asn_OP_SEQUENCE, + asn_DEF_particulate_tags_2, + sizeof(asn_DEF_particulate_tags_2) + /sizeof(asn_DEF_particulate_tags_2[0]) - 1, /* 1 */ + asn_DEF_particulate_tags_2, /* Same as above */ + sizeof(asn_DEF_particulate_tags_2) + /sizeof(asn_DEF_particulate_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_particulate_2, + 2, /* Elements count */ + &asn_SPC_particulate_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DieselEmissionValues_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DieselEmissionValues, particulate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_particulate_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "particulate" + }, + { ATF_NOFLAGS, 0, offsetof(struct DieselEmissionValues, absorptionCoeff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absorptionCoeff" + }, +}; +static const ber_tlv_tag_t asn_DEF_DieselEmissionValues_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DieselEmissionValues_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* particulate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* absorptionCoeff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DieselEmissionValues_specs_1 = { + sizeof(struct DieselEmissionValues), + offsetof(struct DieselEmissionValues, _asn_ctx), + asn_MAP_DieselEmissionValues_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DieselEmissionValues = { + "DieselEmissionValues", + "DieselEmissionValues", + &asn_OP_SEQUENCE, + asn_DEF_DieselEmissionValues_tags_1, + sizeof(asn_DEF_DieselEmissionValues_tags_1) + /sizeof(asn_DEF_DieselEmissionValues_tags_1[0]), /* 1 */ + asn_DEF_DieselEmissionValues_tags_1, /* Same as above */ + sizeof(asn_DEF_DieselEmissionValues_tags_1) + /sizeof(asn_DEF_DieselEmissionValues_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DieselEmissionValues_1, + 2, /* Elements count */ + &asn_SPC_DieselEmissionValues_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DigitalMap.c b/vcits/ivim/src/DigitalMap.c new file mode 100644 index 0000000..b1dfb39 --- /dev/null +++ b/vcits/ivim/src/DigitalMap.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DigitalMap.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_DigitalMap_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_DigitalMap_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DigitalMap_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DigitalMap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DigitalMap_specs_1 = { + sizeof(struct DigitalMap), + offsetof(struct DigitalMap, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DigitalMap = { + "DigitalMap", + "DigitalMap", + &asn_OP_SEQUENCE_OF, + asn_DEF_DigitalMap_tags_1, + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + asn_DEF_DigitalMap_tags_1, /* Same as above */ + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + { &asn_OER_type_DigitalMap_constr_1, &asn_PER_type_DigitalMap_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DigitalMap_1, + 1, /* Single element */ + &asn_SPC_DigitalMap_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Direction.c b/vcits/ivim/src/Direction.c new file mode 100644 index 0000000..51e3db5 --- /dev/null +++ b/vcits/ivim/src/Direction.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Direction.h" + +int +Direction_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Direction_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +asn_per_constraints_t asn_PER_type_Direction_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Direction_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Direction = { + "Direction", + "Direction", + &asn_OP_NativeInteger, + asn_DEF_Direction_tags_1, + sizeof(asn_DEF_Direction_tags_1) + /sizeof(asn_DEF_Direction_tags_1[0]), /* 1 */ + asn_DEF_Direction_tags_1, /* Same as above */ + sizeof(asn_DEF_Direction_tags_1) + /sizeof(asn_DEF_Direction_tags_1[0]), /* 1 */ + { &asn_OER_type_Direction_constr_1, &asn_PER_type_Direction_constr_1, Direction_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Distance.c b/vcits/ivim/src/Distance.c new file mode 100644 index 0000000..c1a9ac8 --- /dev/null +++ b/vcits/ivim/src/Distance.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Distance.h" + +static int +memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 16384)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_unit_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if(((value >= 2 && value <= 4) || (value >= 6 && value <= 8))) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_value_constr_2 CC_NOTUSED = { + { 2, 1 } /* (1..16384) */, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (1..16384) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_unit_constr_3 CC_NOTUSED = { + { 1, 1 } /* (2..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_unit_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 2, 8 } /* (2..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_Distance_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Distance, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_value_constr_2, &asn_PER_memb_value_constr_2, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct Distance, unit), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Code_Units, + 0, + { &asn_OER_memb_unit_constr_3, &asn_PER_memb_unit_constr_3, memb_unit_constraint_1 }, + 0, 0, /* No default value */ + "unit" + }, +}; +static const ber_tlv_tag_t asn_DEF_Distance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Distance_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* unit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Distance_specs_1 = { + sizeof(struct Distance), + offsetof(struct Distance, _asn_ctx), + asn_MAP_Distance_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Distance = { + "Distance", + "Distance", + &asn_OP_SEQUENCE, + asn_DEF_Distance_tags_1, + sizeof(asn_DEF_Distance_tags_1) + /sizeof(asn_DEF_Distance_tags_1[0]), /* 1 */ + asn_DEF_Distance_tags_1, /* Same as above */ + sizeof(asn_DEF_Distance_tags_1) + /sizeof(asn_DEF_Distance_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Distance_1, + 2, /* Elements count */ + &asn_SPC_Distance_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DistanceOrDuration.c b/vcits/ivim/src/DistanceOrDuration.c new file mode 100644 index 0000000..ffb7c2e --- /dev/null +++ b/vcits/ivim/src/DistanceOrDuration.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DistanceOrDuration.h" + +static int +memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 16384)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_unit_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 2 && value <= 9)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_value_constr_2 CC_NOTUSED = { + { 2, 1 } /* (1..16384) */, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (1..16384) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_unit_constr_3 CC_NOTUSED = { + { 1, 1 } /* (2..9) */, + -1}; +static asn_per_constraints_t asn_PER_memb_unit_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 2, 9 } /* (2..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_DistanceOrDuration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DistanceOrDuration, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_value_constr_2, &asn_PER_memb_value_constr_2, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct DistanceOrDuration, unit), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Code_Units, + 0, + { &asn_OER_memb_unit_constr_3, &asn_PER_memb_unit_constr_3, memb_unit_constraint_1 }, + 0, 0, /* No default value */ + "unit" + }, +}; +static const ber_tlv_tag_t asn_DEF_DistanceOrDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DistanceOrDuration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* unit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DistanceOrDuration_specs_1 = { + sizeof(struct DistanceOrDuration), + offsetof(struct DistanceOrDuration, _asn_ctx), + asn_MAP_DistanceOrDuration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DistanceOrDuration = { + "DistanceOrDuration", + "DistanceOrDuration", + &asn_OP_SEQUENCE, + asn_DEF_DistanceOrDuration_tags_1, + sizeof(asn_DEF_DistanceOrDuration_tags_1) + /sizeof(asn_DEF_DistanceOrDuration_tags_1[0]), /* 1 */ + asn_DEF_DistanceOrDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_DistanceOrDuration_tags_1) + /sizeof(asn_DEF_DistanceOrDuration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DistanceOrDuration_1, + 2, /* Elements count */ + &asn_SPC_DistanceOrDuration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DriveDirection.c b/vcits/ivim/src/DriveDirection.c new file mode 100644 index 0000000..b50195a --- /dev/null +++ b/vcits/ivim/src/DriveDirection.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DriveDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DriveDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_DriveDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DriveDirection_value2enum_1[] = { + { 0, 7, "forward" }, + { 1, 8, "backward" }, + { 2, 11, "unavailable" } +}; +static const unsigned int asn_MAP_DriveDirection_enum2value_1[] = { + 1, /* backward(1) */ + 0, /* forward(0) */ + 2 /* unavailable(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_DriveDirection_specs_1 = { + asn_MAP_DriveDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DriveDirection_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DriveDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DriveDirection = { + "DriveDirection", + "DriveDirection", + &asn_OP_NativeEnumerated, + asn_DEF_DriveDirection_tags_1, + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + asn_DEF_DriveDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_DriveDirection_constr_1, &asn_PER_type_DriveDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DriveDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/DrivenLineOffsetLg.c b/vcits/ivim/src/DrivenLineOffsetLg.c new file mode 100644 index 0000000..0d335e8 --- /dev/null +++ b/vcits/ivim/src/DrivenLineOffsetLg.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DrivenLineOffsetLg.h" + +int +DrivenLineOffsetLg_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32767 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32767..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32767, 32767 } /* (-32767..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetLg_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg = { + "DrivenLineOffsetLg", + "DrivenLineOffsetLg", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetLg_tags_1, + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetLg_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivenLineOffsetLg_constr_1, &asn_PER_type_DrivenLineOffsetLg_constr_1, DrivenLineOffsetLg_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DrivenLineOffsetSm.c b/vcits/ivim/src/DrivenLineOffsetSm.c new file mode 100644 index 0000000..ac96905 --- /dev/null +++ b/vcits/ivim/src/DrivenLineOffsetSm.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DrivenLineOffsetSm.h" + +int +DrivenLineOffsetSm_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2047 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2047..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2047, 2047 } /* (-2047..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetSm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm = { + "DrivenLineOffsetSm", + "DrivenLineOffsetSm", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetSm_tags_1, + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetSm_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivenLineOffsetSm_constr_1, &asn_PER_type_DrivenLineOffsetSm_constr_1, DrivenLineOffsetSm_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/DrivingLaneStatus.c b/vcits/ivim/src/DrivingLaneStatus.c new file mode 100644 index 0000000..7ba60ad --- /dev/null +++ b/vcits/ivim/src/DrivingLaneStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "DrivingLaneStatus.h" + +int +DrivingLaneStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size >= 1 && size <= 13)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..13)) */}; +asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 13 } /* (SIZE(1..13)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivingLaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus = { + "DrivingLaneStatus", + "DrivingLaneStatus", + &asn_OP_BIT_STRING, + asn_DEF_DrivingLaneStatus_tags_1, + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + asn_DEF_DrivingLaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivingLaneStatus_constr_1, &asn_PER_type_DrivingLaneStatus_constr_1, DrivingLaneStatus_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EFC-ContextMark.c b/vcits/ivim/src/EFC-ContextMark.c new file mode 100644 index 0000000..ff7ff7b --- /dev/null +++ b/vcits/ivim/src/EFC-ContextMark.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EFC-ContextMark.h" + +static int +memb_typeOfContract_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_contextVersion_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_typeOfContract_constr_3 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_typeOfContract_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_contextVersion_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_contextVersion_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (0..127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EFC_ContextMark_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EFC_ContextMark, contractProvider), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Provider, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "contractProvider" + }, + { ATF_NOFLAGS, 0, offsetof(struct EFC_ContextMark, typeOfContract), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_typeOfContract_constr_3, &asn_PER_memb_typeOfContract_constr_3, memb_typeOfContract_constraint_1 }, + 0, 0, /* No default value */ + "typeOfContract" + }, + { ATF_NOFLAGS, 0, offsetof(struct EFC_ContextMark, contextVersion), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_contextVersion_constr_4, &asn_PER_memb_contextVersion_constr_4, memb_contextVersion_constraint_1 }, + 0, 0, /* No default value */ + "contextVersion" + }, +}; +static const ber_tlv_tag_t asn_DEF_EFC_ContextMark_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EFC_ContextMark_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* contractProvider */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* typeOfContract */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* contextVersion */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_EFC_ContextMark_specs_1 = { + sizeof(struct EFC_ContextMark), + offsetof(struct EFC_ContextMark, _asn_ctx), + asn_MAP_EFC_ContextMark_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EFC_ContextMark = { + "EFC-ContextMark", + "EFC-ContextMark", + &asn_OP_SEQUENCE, + asn_DEF_EFC_ContextMark_tags_1, + sizeof(asn_DEF_EFC_ContextMark_tags_1) + /sizeof(asn_DEF_EFC_ContextMark_tags_1[0]), /* 1 */ + asn_DEF_EFC_ContextMark_tags_1, /* Same as above */ + sizeof(asn_DEF_EFC_ContextMark_tags_1) + /sizeof(asn_DEF_EFC_ContextMark_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EFC_ContextMark_1, + 3, /* Elements count */ + &asn_SPC_EFC_ContextMark_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EfcDsrcApplication_DriverCharacteristics.c b/vcits/ivim/src/EfcDsrcApplication_DriverCharacteristics.c new file mode 100644 index 0000000..a6ff4f4 --- /dev/null +++ b/vcits/ivim/src/EfcDsrcApplication_DriverCharacteristics.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EfcDsrcApplication_DriverCharacteristics.h" + +static asn_TYPE_member_t asn_MBR_EfcDsrcApplication_DriverCharacteristics_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EfcDsrcApplication_DriverCharacteristics, driverClass), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "driverClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct EfcDsrcApplication_DriverCharacteristics, tripPurpose), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tripPurpose" + }, +}; +static const ber_tlv_tag_t asn_DEF_EfcDsrcApplication_DriverCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EfcDsrcApplication_DriverCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* driverClass */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tripPurpose */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_EfcDsrcApplication_DriverCharacteristics_specs_1 = { + sizeof(struct EfcDsrcApplication_DriverCharacteristics), + offsetof(struct EfcDsrcApplication_DriverCharacteristics, _asn_ctx), + asn_MAP_EfcDsrcApplication_DriverCharacteristics_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EfcDsrcApplication_DriverCharacteristics = { + "DriverCharacteristics", + "DriverCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_EfcDsrcApplication_DriverCharacteristics_tags_1, + sizeof(asn_DEF_EfcDsrcApplication_DriverCharacteristics_tags_1) + /sizeof(asn_DEF_EfcDsrcApplication_DriverCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_EfcDsrcApplication_DriverCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_EfcDsrcApplication_DriverCharacteristics_tags_1) + /sizeof(asn_DEF_EfcDsrcApplication_DriverCharacteristics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EfcDsrcApplication_DriverCharacteristics_1, + 2, /* Elements count */ + &asn_SPC_EfcDsrcApplication_DriverCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EfcDsrcApplication_StationType.c b/vcits/ivim/src/EfcDsrcApplication_StationType.c new file mode 100644 index 0000000..05d4a39 --- /dev/null +++ b/vcits/ivim/src/EfcDsrcApplication_StationType.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EfcDsrcApplication_StationType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EfcDsrcApplication_StationType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EfcDsrcApplication_StationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EfcDsrcApplication_StationType_value2enum_1[] = { + { 0, 11, "unspecified" }, + { 1, 22, "closedEntryWithPayment" }, + { 2, 25, "closedEntryWithoutPayment" }, + { 3, 13, "closedTransit" }, + { 4, 10, "closedExit" }, + { 5, 12, "closedCredit" }, + { 6, 5, "mixed" }, + { 7, 7, "passage" }, + { 8, 10, "checkpoint" }, + { 9, 6, "reload" }, + { 10, 24, "reservedForFutureCENUse1" }, + { 11, 24, "reservedForFutureCENUse2" }, + { 12, 24, "reservedForFutureCENUse3" }, + { 13, 24, "reservedForFutureCENUse4" }, + { 14, 11, "privateUse5" }, + { 15, 11, "privateUse6" } +}; +static const unsigned int asn_MAP_EfcDsrcApplication_StationType_enum2value_1[] = { + 8, /* checkpoint(8) */ + 5, /* closedCredit(5) */ + 1, /* closedEntryWithPayment(1) */ + 2, /* closedEntryWithoutPayment(2) */ + 4, /* closedExit(4) */ + 3, /* closedTransit(3) */ + 6, /* mixed(6) */ + 7, /* passage(7) */ + 14, /* privateUse5(14) */ + 15, /* privateUse6(15) */ + 9, /* reload(9) */ + 10, /* reservedForFutureCENUse1(10) */ + 11, /* reservedForFutureCENUse2(11) */ + 12, /* reservedForFutureCENUse3(12) */ + 13, /* reservedForFutureCENUse4(13) */ + 0 /* unspecified(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EfcDsrcApplication_StationType_specs_1 = { + asn_MAP_EfcDsrcApplication_StationType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EfcDsrcApplication_StationType_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EfcDsrcApplication_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EfcDsrcApplication_StationType = { + "StationType", + "StationType", + &asn_OP_NativeEnumerated, + asn_DEF_EfcDsrcApplication_StationType_tags_1, + sizeof(asn_DEF_EfcDsrcApplication_StationType_tags_1) + /sizeof(asn_DEF_EfcDsrcApplication_StationType_tags_1[0]), /* 1 */ + asn_DEF_EfcDsrcApplication_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_EfcDsrcApplication_StationType_tags_1) + /sizeof(asn_DEF_EfcDsrcApplication_StationType_tags_1[0]), /* 1 */ + { &asn_OER_type_EfcDsrcApplication_StationType_constr_1, &asn_PER_type_EfcDsrcApplication_StationType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EfcDsrcApplication_StationType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EfcDsrcApplication_TrailerCharacteristics.c b/vcits/ivim/src/EfcDsrcApplication_TrailerCharacteristics.c new file mode 100644 index 0000000..3db3791 --- /dev/null +++ b/vcits/ivim/src/EfcDsrcApplication_TrailerCharacteristics.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EfcDsrcApplication_TrailerCharacteristics.h" + +static asn_TYPE_member_t asn_MBR_EfcDsrcApplication_TrailerCharacteristics_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EfcDsrcApplication_TrailerCharacteristics, trailerDetails), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerDetails, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trailerDetails" + }, + { ATF_NOFLAGS, 0, offsetof(struct EfcDsrcApplication_TrailerCharacteristics, trailerMaxLadenWeight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trailerMaxLadenWeight" + }, + { ATF_NOFLAGS, 0, offsetof(struct EfcDsrcApplication_TrailerCharacteristics, trailerWeightUnladen), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trailerWeightUnladen" + }, +}; +static const ber_tlv_tag_t asn_DEF_EfcDsrcApplication_TrailerCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EfcDsrcApplication_TrailerCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* trailerDetails */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* trailerMaxLadenWeight */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* trailerWeightUnladen */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_EfcDsrcApplication_TrailerCharacteristics_specs_1 = { + sizeof(struct EfcDsrcApplication_TrailerCharacteristics), + offsetof(struct EfcDsrcApplication_TrailerCharacteristics, _asn_ctx), + asn_MAP_EfcDsrcApplication_TrailerCharacteristics_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EfcDsrcApplication_TrailerCharacteristics = { + "TrailerCharacteristics", + "TrailerCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_EfcDsrcApplication_TrailerCharacteristics_tags_1, + sizeof(asn_DEF_EfcDsrcApplication_TrailerCharacteristics_tags_1) + /sizeof(asn_DEF_EfcDsrcApplication_TrailerCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_EfcDsrcApplication_TrailerCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_EfcDsrcApplication_TrailerCharacteristics_tags_1) + /sizeof(asn_DEF_EfcDsrcApplication_TrailerCharacteristics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EfcDsrcApplication_TrailerCharacteristics_1, + 3, /* Elements count */ + &asn_SPC_EfcDsrcApplication_TrailerCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Elevation.c b/vcits/ivim/src/Elevation.c new file mode 100644 index 0000000..dcd0876 --- /dev/null +++ b/vcits/ivim/src/Elevation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Elevation.h" + +int +Elevation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096 && value <= 61439)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Elevation_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-4096..61439) */, + -1}; +asn_per_constraints_t asn_PER_type_Elevation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -4096, 61439 } /* (-4096..61439) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Elevation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Elevation = { + "Elevation", + "Elevation", + &asn_OP_NativeInteger, + asn_DEF_Elevation_tags_1, + sizeof(asn_DEF_Elevation_tags_1) + /sizeof(asn_DEF_Elevation_tags_1[0]), /* 1 */ + asn_DEF_Elevation_tags_1, /* Same as above */ + sizeof(asn_DEF_Elevation_tags_1) + /sizeof(asn_DEF_Elevation_tags_1[0]), /* 1 */ + { &asn_OER_type_Elevation_constr_1, &asn_PER_type_Elevation_constr_1, Elevation_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ElevationConfidence.c b/vcits/ivim/src/ElevationConfidence.c new file mode 100644 index 0000000..02f4fec --- /dev/null +++ b/vcits/ivim/src/ElevationConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ElevationConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ElevationConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 11, "elev-500-00" }, + { 2, 11, "elev-200-00" }, + { 3, 11, "elev-100-00" }, + { 4, 11, "elev-050-00" }, + { 5, 11, "elev-020-00" }, + { 6, 11, "elev-010-00" }, + { 7, 11, "elev-005-00" }, + { 8, 11, "elev-002-00" }, + { 9, 11, "elev-001-00" }, + { 10, 11, "elev-000-50" }, + { 11, 11, "elev-000-20" }, + { 12, 11, "elev-000-10" }, + { 13, 11, "elev-000-05" }, + { 14, 11, "elev-000-02" }, + { 15, 11, "elev-000-01" } +}; +static const unsigned int asn_MAP_ElevationConfidence_enum2value_1[] = { + 15, /* elev-000-01(15) */ + 14, /* elev-000-02(14) */ + 13, /* elev-000-05(13) */ + 12, /* elev-000-10(12) */ + 11, /* elev-000-20(11) */ + 10, /* elev-000-50(10) */ + 9, /* elev-001-00(9) */ + 8, /* elev-002-00(8) */ + 7, /* elev-005-00(7) */ + 6, /* elev-010-00(6) */ + 5, /* elev-020-00(5) */ + 4, /* elev-050-00(4) */ + 3, /* elev-100-00(3) */ + 2, /* elev-200-00(2) */ + 1, /* elev-500-00(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1 = { + asn_MAP_ElevationConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ElevationConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ElevationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ElevationConfidence = { + "ElevationConfidence", + "ElevationConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ElevationConfidence_tags_1, + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + asn_DEF_ElevationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ElevationConfidence_constr_1, &asn_PER_type_ElevationConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ElevationConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EmbarkationStatus.c b/vcits/ivim/src/EmbarkationStatus.c new file mode 100644 index 0000000..04a432c --- /dev/null +++ b/vcits/ivim/src/EmbarkationStatus.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EmbarkationStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_EmbarkationStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus = { + "EmbarkationStatus", + "EmbarkationStatus", + &asn_OP_BOOLEAN, + asn_DEF_EmbarkationStatus_tags_1, + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + asn_DEF_EmbarkationStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/EmergencyPriority.c b/vcits/ivim/src/EmergencyPriority.c new file mode 100644 index 0000000..574e1a9 --- /dev/null +++ b/vcits/ivim/src/EmergencyPriority.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EmergencyPriority.h" + +int +EmergencyPriority_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyPriority = { + "EmergencyPriority", + "EmergencyPriority", + &asn_OP_BIT_STRING, + asn_DEF_EmergencyPriority_tags_1, + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + asn_DEF_EmergencyPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyPriority_constr_1, &asn_PER_type_EmergencyPriority_constr_1, EmergencyPriority_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EmergencyVehicleApproachingSubCauseCode.c b/vcits/ivim/src/EmergencyVehicleApproachingSubCauseCode.c new file mode 100644 index 0000000..b8d441d --- /dev/null +++ b/vcits/ivim/src/EmergencyVehicleApproachingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EmergencyVehicleApproachingSubCauseCode.h" + +int +EmergencyVehicleApproachingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode = { + "EmergencyVehicleApproachingSubCauseCode", + "EmergencyVehicleApproachingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, &asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, EmergencyVehicleApproachingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/EmissionType.c b/vcits/ivim/src/EmissionType.c new file mode 100644 index 0000000..f160220 --- /dev/null +++ b/vcits/ivim/src/EmissionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EmissionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmissionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EmissionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EmissionType_value2enum_1[] = { + { 0, 5, "euro1" }, + { 1, 5, "euro2" }, + { 2, 5, "euro3" }, + { 3, 5, "euro4" }, + { 4, 5, "euro5" }, + { 5, 5, "euro6" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_EmissionType_enum2value_1[] = { + 0, /* euro1(0) */ + 1, /* euro2(1) */ + 2, /* euro3(2) */ + 3, /* euro4(3) */ + 4, /* euro5(4) */ + 5 /* euro6(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1 = { + asn_MAP_EmissionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EmissionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EmissionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmissionType = { + "EmissionType", + "EmissionType", + &asn_OP_NativeEnumerated, + asn_DEF_EmissionType_tags_1, + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + asn_DEF_EmissionType_tags_1, /* Same as above */ + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + { &asn_OER_type_EmissionType_constr_1, &asn_PER_type_EmissionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EmissionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EnabledLaneList.c b/vcits/ivim/src/EnabledLaneList.c new file mode 100644 index 0000000..de77bfe --- /dev/null +++ b/vcits/ivim/src/EnabledLaneList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EnabledLaneList.h" + +static asn_oer_constraints_t asn_OER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_EnabledLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EnabledLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1 = { + sizeof(struct EnabledLaneList), + offsetof(struct EnabledLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EnabledLaneList = { + "EnabledLaneList", + "EnabledLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EnabledLaneList_tags_1, + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + asn_DEF_EnabledLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_EnabledLaneList_constr_1, &asn_PER_type_EnabledLaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EnabledLaneList_1, + 1, /* Single element */ + &asn_SPC_EnabledLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EnergyStorageType.c b/vcits/ivim/src/EnergyStorageType.c new file mode 100644 index 0000000..feb7fdb --- /dev/null +++ b/vcits/ivim/src/EnergyStorageType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EnergyStorageType.h" + +int +EnergyStorageType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EnergyStorageType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EnergyStorageType = { + "EnergyStorageType", + "EnergyStorageType", + &asn_OP_BIT_STRING, + asn_DEF_EnergyStorageType_tags_1, + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + asn_DEF_EnergyStorageType_tags_1, /* Same as above */ + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + { &asn_OER_type_EnergyStorageType_constr_1, &asn_PER_type_EnergyStorageType_constr_1, EnergyStorageType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Engine.c b/vcits/ivim/src/Engine.c new file mode 100644 index 0000000..86d1904 --- /dev/null +++ b/vcits/ivim/src/Engine.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Engine.h" + +static asn_TYPE_member_t asn_MBR_Engine_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Engine, engineCapacity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "engineCapacity" + }, + { ATF_NOFLAGS, 0, offsetof(struct Engine, enginePower), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enginePower" + }, +}; +static const ber_tlv_tag_t asn_DEF_Engine_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Engine_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* engineCapacity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* enginePower */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Engine_specs_1 = { + sizeof(struct Engine), + offsetof(struct Engine, _asn_ctx), + asn_MAP_Engine_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Engine = { + "Engine", + "Engine", + &asn_OP_SEQUENCE, + asn_DEF_Engine_tags_1, + sizeof(asn_DEF_Engine_tags_1) + /sizeof(asn_DEF_Engine_tags_1[0]), /* 1 */ + asn_DEF_Engine_tags_1, /* Same as above */ + sizeof(asn_DEF_Engine_tags_1) + /sizeof(asn_DEF_Engine_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Engine_1, + 2, /* Elements count */ + &asn_SPC_Engine_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EngineCharacteristics.c b/vcits/ivim/src/EngineCharacteristics.c new file mode 100644 index 0000000..a1b0269 --- /dev/null +++ b/vcits/ivim/src/EngineCharacteristics.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EngineCharacteristics.h" + +int +EngineCharacteristics_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EngineCharacteristics_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_EngineCharacteristics_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EngineCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EngineCharacteristics = { + "EngineCharacteristics", + "EngineCharacteristics", + &asn_OP_NativeInteger, + asn_DEF_EngineCharacteristics_tags_1, + sizeof(asn_DEF_EngineCharacteristics_tags_1) + /sizeof(asn_DEF_EngineCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_EngineCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_EngineCharacteristics_tags_1) + /sizeof(asn_DEF_EngineCharacteristics_tags_1[0]), /* 1 */ + { &asn_OER_type_EngineCharacteristics_constr_1, &asn_PER_type_EngineCharacteristics_constr_1, EngineCharacteristics_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/EnvironmentalCharacteristics.c b/vcits/ivim/src/EnvironmentalCharacteristics.c new file mode 100644 index 0000000..00183ad --- /dev/null +++ b/vcits/ivim/src/EnvironmentalCharacteristics.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EnvironmentalCharacteristics.h" + +asn_TYPE_member_t asn_MBR_EnvironmentalCharacteristics_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EnvironmentalCharacteristics, euroValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuroValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euroValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct EnvironmentalCharacteristics, copValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CopValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "copValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_EnvironmentalCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EnvironmentalCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* euroValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* copValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EnvironmentalCharacteristics_specs_1 = { + sizeof(struct EnvironmentalCharacteristics), + offsetof(struct EnvironmentalCharacteristics, _asn_ctx), + asn_MAP_EnvironmentalCharacteristics_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EnvironmentalCharacteristics = { + "EnvironmentalCharacteristics", + "EnvironmentalCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_EnvironmentalCharacteristics_tags_1, + sizeof(asn_DEF_EnvironmentalCharacteristics_tags_1) + /sizeof(asn_DEF_EnvironmentalCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_EnvironmentalCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_EnvironmentalCharacteristics_tags_1) + /sizeof(asn_DEF_EnvironmentalCharacteristics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EnvironmentalCharacteristics_1, + 2, /* Elements count */ + &asn_SPC_EnvironmentalCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EquipmentOBUId.c b/vcits/ivim/src/EquipmentOBUId.c new file mode 100644 index 0000000..4243fc2 --- /dev/null +++ b/vcits/ivim/src/EquipmentOBUId.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EquipmentOBUId.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_EquipmentOBUId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EquipmentOBUId = { + "EquipmentOBUId", + "EquipmentOBUId", + &asn_OP_OCTET_STRING, + asn_DEF_EquipmentOBUId_tags_1, + sizeof(asn_DEF_EquipmentOBUId_tags_1) + /sizeof(asn_DEF_EquipmentOBUId_tags_1[0]), /* 1 */ + asn_DEF_EquipmentOBUId_tags_1, /* Same as above */ + sizeof(asn_DEF_EquipmentOBUId_tags_1) + /sizeof(asn_DEF_EquipmentOBUId_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EquipmentStatus.c b/vcits/ivim/src/EquipmentStatus.c new file mode 100644 index 0000000..4d820fa --- /dev/null +++ b/vcits/ivim/src/EquipmentStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EquipmentStatus.h" + +int +EquipmentStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EquipmentStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_type_EquipmentStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EquipmentStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EquipmentStatus = { + "EquipmentStatus", + "EquipmentStatus", + &asn_OP_BIT_STRING, + asn_DEF_EquipmentStatus_tags_1, + sizeof(asn_DEF_EquipmentStatus_tags_1) + /sizeof(asn_DEF_EquipmentStatus_tags_1[0]), /* 1 */ + asn_DEF_EquipmentStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_EquipmentStatus_tags_1) + /sizeof(asn_DEF_EquipmentStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_EquipmentStatus_constr_1, &asn_PER_type_EquipmentStatus_constr_1, EquipmentStatus_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EuVehicleCategoryCode.c b/vcits/ivim/src/EuVehicleCategoryCode.c new file mode 100644 index 0000000..74c94f2 --- /dev/null +++ b/vcits/ivim/src/EuVehicleCategoryCode.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EuVehicleCategoryCode.h" + +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_EuVehicleCategoryCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryL" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryM" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryN" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryO" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehilcleCategoryT), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehilcleCategoryT" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehilcleCategoryG), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehilcleCategoryG" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_EuVehicleCategoryCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* euVehicleCategoryL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* euVehicleCategoryM */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* euVehicleCategoryN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* euVehicleCategoryO */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* euVehilcleCategoryT */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* euVehilcleCategoryG */ +}; +asn_CHOICE_specifics_t asn_SPC_EuVehicleCategoryCode_specs_1 = { + sizeof(struct EuVehicleCategoryCode), + offsetof(struct EuVehicleCategoryCode, _asn_ctx), + offsetof(struct EuVehicleCategoryCode, present), + sizeof(((struct EuVehicleCategoryCode *)0)->present), + asn_MAP_EuVehicleCategoryCode_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryCode = { + "EuVehicleCategoryCode", + "EuVehicleCategoryCode", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_EuVehicleCategoryCode_constr_1, &asn_PER_type_EuVehicleCategoryCode_constr_1, CHOICE_constraint }, + asn_MBR_EuVehicleCategoryCode_1, + 6, /* Elements count */ + &asn_SPC_EuVehicleCategoryCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EuVehicleCategoryL.c b/vcits/ivim/src/EuVehicleCategoryL.c new file mode 100644 index 0000000..5811df9 --- /dev/null +++ b/vcits/ivim/src/EuVehicleCategoryL.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EuVehicleCategoryL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryL_value2enum_1[] = { + { 0, 2, "l1" }, + { 1, 2, "l2" }, + { 2, 2, "l3" }, + { 3, 2, "l4" }, + { 4, 2, "l5" }, + { 5, 2, "l6" }, + { 6, 2, "l7" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryL_enum2value_1[] = { + 0, /* l1(0) */ + 1, /* l2(1) */ + 2, /* l3(2) */ + 3, /* l4(3) */ + 4, /* l5(4) */ + 5, /* l6(5) */ + 6 /* l7(6) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryL_specs_1 = { + asn_MAP_EuVehicleCategoryL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryL_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryL = { + "EuVehicleCategoryL", + "EuVehicleCategoryL", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryL_tags_1, + sizeof(asn_DEF_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryL_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryL_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryL_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryL_constr_1, &asn_PER_type_EuVehicleCategoryL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryL_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EuVehicleCategoryM.c b/vcits/ivim/src/EuVehicleCategoryM.c new file mode 100644 index 0000000..db4177e --- /dev/null +++ b/vcits/ivim/src/EuVehicleCategoryM.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EuVehicleCategoryM.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryM_value2enum_1[] = { + { 0, 2, "m1" }, + { 1, 2, "m2" }, + { 2, 2, "m3" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryM_enum2value_1[] = { + 0, /* m1(0) */ + 1, /* m2(1) */ + 2 /* m3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryM_specs_1 = { + asn_MAP_EuVehicleCategoryM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryM_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryM = { + "EuVehicleCategoryM", + "EuVehicleCategoryM", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryM_tags_1, + sizeof(asn_DEF_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryM_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryM_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryM_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryM_constr_1, &asn_PER_type_EuVehicleCategoryM_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EuVehicleCategoryN.c b/vcits/ivim/src/EuVehicleCategoryN.c new file mode 100644 index 0000000..0973a9e --- /dev/null +++ b/vcits/ivim/src/EuVehicleCategoryN.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EuVehicleCategoryN.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryN_value2enum_1[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryN_enum2value_1[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryN_specs_1 = { + asn_MAP_EuVehicleCategoryN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryN_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryN = { + "EuVehicleCategoryN", + "EuVehicleCategoryN", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryN_tags_1, + sizeof(asn_DEF_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryN_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryN_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryN_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryN_constr_1, &asn_PER_type_EuVehicleCategoryN_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryN_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EuVehicleCategoryO.c b/vcits/ivim/src/EuVehicleCategoryO.c new file mode 100644 index 0000000..21bbc88 --- /dev/null +++ b/vcits/ivim/src/EuVehicleCategoryO.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EuVehicleCategoryO.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryO_value2enum_1[] = { + { 0, 2, "o1" }, + { 1, 2, "o2" }, + { 2, 2, "o3" }, + { 3, 2, "o4" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryO_enum2value_1[] = { + 0, /* o1(0) */ + 1, /* o2(1) */ + 2, /* o3(2) */ + 3 /* o4(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryO_specs_1 = { + asn_MAP_EuVehicleCategoryO_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryO_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryO = { + "EuVehicleCategoryO", + "EuVehicleCategoryO", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryO_tags_1, + sizeof(asn_DEF_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryO_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryO_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryO_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryO_constr_1, &asn_PER_type_EuVehicleCategoryO_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryO_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EuroValue.c b/vcits/ivim/src/EuroValue.c new file mode 100644 index 0000000..4e74fad --- /dev/null +++ b/vcits/ivim/src/EuroValue.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EuroValue.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuroValue_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuroValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuroValue_value2enum_1[] = { + { 0, 7, "noEntry" }, + { 1, 6, "euro-1" }, + { 2, 6, "euro-2" }, + { 3, 6, "euro-3" }, + { 4, 6, "euro-4" }, + { 5, 6, "euro-5" }, + { 6, 6, "euro-6" }, + { 7, 15, "reservedForUse1" }, + { 8, 15, "reservedForUse2" }, + { 9, 15, "reservedForUse3" }, + { 10, 15, "reservedForUse4" }, + { 11, 15, "reservedForUse5" }, + { 12, 15, "reservedForUse6" }, + { 13, 15, "reservedForUse7" }, + { 14, 15, "reservedForUse8" }, + { 15, 3, "eev" } +}; +static const unsigned int asn_MAP_EuroValue_enum2value_1[] = { + 15, /* eev(15) */ + 1, /* euro-1(1) */ + 2, /* euro-2(2) */ + 3, /* euro-3(3) */ + 4, /* euro-4(4) */ + 5, /* euro-5(5) */ + 6, /* euro-6(6) */ + 0, /* noEntry(0) */ + 7, /* reservedForUse1(7) */ + 8, /* reservedForUse2(8) */ + 9, /* reservedForUse3(9) */ + 10, /* reservedForUse4(10) */ + 11, /* reservedForUse5(11) */ + 12, /* reservedForUse6(12) */ + 13, /* reservedForUse7(13) */ + 14 /* reservedForUse8(14) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuroValue_specs_1 = { + asn_MAP_EuroValue_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuroValue_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuroValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuroValue = { + "EuroValue", + "EuroValue", + &asn_OP_NativeEnumerated, + asn_DEF_EuroValue_tags_1, + sizeof(asn_DEF_EuroValue_tags_1) + /sizeof(asn_DEF_EuroValue_tags_1[0]), /* 1 */ + asn_DEF_EuroValue_tags_1, /* Same as above */ + sizeof(asn_DEF_EuroValue_tags_1) + /sizeof(asn_DEF_EuroValue_tags_1[0]), /* 1 */ + { &asn_OER_type_EuroValue_constr_1, &asn_PER_type_EuroValue_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuroValue_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EventHistory.c b/vcits/ivim/src/EventHistory.c new file mode 100644 index 0000000..b7addb7 --- /dev/null +++ b/vcits/ivim/src/EventHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EventHistory.h" + +#include "EventPoint.h" +static asn_oer_constraints_t asn_OER_type_EventHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..23)) */}; +static asn_per_constraints_t asn_PER_type_EventHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (SIZE(1..23)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EventHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EventPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EventHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_EventHistory_specs_1 = { + sizeof(struct EventHistory), + offsetof(struct EventHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EventHistory = { + "EventHistory", + "EventHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_EventHistory_tags_1, + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + asn_DEF_EventHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_EventHistory_constr_1, &asn_PER_type_EventHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EventHistory_1, + 1, /* Single element */ + &asn_SPC_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/EventPoint.c b/vcits/ivim/src/EventPoint.c new file mode 100644 index 0000000..d88531a --- /dev/null +++ b/vcits/ivim/src/EventPoint.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "EventPoint.h" + +asn_TYPE_member_t asn_MBR_EventPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventPosition" + }, + { ATF_POINTER, 1, offsetof(struct EventPoint, eventDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InformationQuality, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "informationQuality" + }, +}; +static const int asn_MAP_EventPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_EventPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EventPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* informationQuality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1 = { + sizeof(struct EventPoint), + offsetof(struct EventPoint, _asn_ctx), + asn_MAP_EventPoint_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_EventPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EventPoint = { + "EventPoint", + "EventPoint", + &asn_OP_SEQUENCE, + asn_DEF_EventPoint_tags_1, + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + asn_DEF_EventPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EventPoint_1, + 3, /* Elements count */ + &asn_SPC_EventPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ExceptionalCondition.c b/vcits/ivim/src/ExceptionalCondition.c new file mode 100644 index 0000000..31c6a26 --- /dev/null +++ b/vcits/ivim/src/ExceptionalCondition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ExceptionalCondition.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExceptionalCondition_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ExceptionalCondition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ExceptionalCondition_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 23, "publicTransportPriority" }, + { 2, 24, "emergencyVehiclePriority" }, + { 3, 13, "trainPriority" }, + { 4, 10, "bridgeOpen" }, + { 5, 13, "vehicleHeight" }, + { 6, 7, "weather" }, + { 7, 10, "trafficJam" }, + { 8, 13, "tunnelClosure" }, + { 9, 14, "meteringActive" }, + { 10, 13, "truckPriority" }, + { 11, 22, "bicyclePlatoonPriority" }, + { 12, 22, "vehiclePlatoonPriority" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ExceptionalCondition_enum2value_1[] = { + 11, /* bicyclePlatoonPriority(11) */ + 4, /* bridgeOpen(4) */ + 2, /* emergencyVehiclePriority(2) */ + 9, /* meteringActive(9) */ + 1, /* publicTransportPriority(1) */ + 7, /* trafficJam(7) */ + 3, /* trainPriority(3) */ + 10, /* truckPriority(10) */ + 8, /* tunnelClosure(8) */ + 0, /* unknown(0) */ + 5, /* vehicleHeight(5) */ + 12, /* vehiclePlatoonPriority(12) */ + 6 /* weather(6) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ExceptionalCondition_specs_1 = { + asn_MAP_ExceptionalCondition_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ExceptionalCondition_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ExceptionalCondition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExceptionalCondition = { + "ExceptionalCondition", + "ExceptionalCondition", + &asn_OP_NativeEnumerated, + asn_DEF_ExceptionalCondition_tags_1, + sizeof(asn_DEF_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ExceptionalCondition_tags_1[0]), /* 1 */ + asn_DEF_ExceptionalCondition_tags_1, /* Same as above */ + sizeof(asn_DEF_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ExceptionalCondition_tags_1[0]), /* 1 */ + { &asn_OER_type_ExceptionalCondition_constr_1, &asn_PER_type_ExceptionalCondition_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ExceptionalCondition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ExhaustEmissionValues.c b/vcits/ivim/src/ExhaustEmissionValues.c new file mode 100644 index 0000000..0e7db0f --- /dev/null +++ b/vcits/ivim/src/ExhaustEmissionValues.c @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ExhaustEmissionValues.h" + +static int +memb_emissionCO_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_emissionCO_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +static asn_per_constraints_t asn_PER_memb_emissionCO_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ExhaustEmissionValues_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ExhaustEmissionValues, unitType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UnitType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "unitType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ExhaustEmissionValues, emissionCO), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_emissionCO_constr_3, &asn_PER_memb_emissionCO_constr_3, memb_emissionCO_constraint_1 }, + 0, 0, /* No default value */ + "emissionCO" + }, + { ATF_NOFLAGS, 0, offsetof(struct ExhaustEmissionValues, emissionHC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emissionHC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ExhaustEmissionValues, emissionNOX), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emissionNOX" + }, + { ATF_NOFLAGS, 0, offsetof(struct ExhaustEmissionValues, emissionHCNOX), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emissionHCNOX" + }, +}; +static const ber_tlv_tag_t asn_DEF_ExhaustEmissionValues_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ExhaustEmissionValues_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* unitType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* emissionCO */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* emissionHC */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* emissionNOX */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* emissionHCNOX */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ExhaustEmissionValues_specs_1 = { + sizeof(struct ExhaustEmissionValues), + offsetof(struct ExhaustEmissionValues, _asn_ctx), + asn_MAP_ExhaustEmissionValues_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ExhaustEmissionValues = { + "ExhaustEmissionValues", + "ExhaustEmissionValues", + &asn_OP_SEQUENCE, + asn_DEF_ExhaustEmissionValues_tags_1, + sizeof(asn_DEF_ExhaustEmissionValues_tags_1) + /sizeof(asn_DEF_ExhaustEmissionValues_tags_1[0]), /* 1 */ + asn_DEF_ExhaustEmissionValues_tags_1, /* Same as above */ + sizeof(asn_DEF_ExhaustEmissionValues_tags_1) + /sizeof(asn_DEF_ExhaustEmissionValues_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ExhaustEmissionValues_1, + 5, /* Elements count */ + &asn_SPC_ExhaustEmissionValues_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Ext1.c b/vcits/ivim/src/Ext1.c new file mode 100644 index 0000000..04b3444 --- /dev/null +++ b/vcits/ivim/src/Ext1.c @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/tmp/gen_env/build/asn1/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Ext1.h" + +static int +memb_content_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 128 && value <= 16511)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_content_constr_2 CC_NOTUSED = { + { 2, 1 } /* (128..16511) */, + -1}; +static asn_per_constraints_t asn_PER_memb_content_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 128, 16511 } /* (128..16511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_Ext1_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_Ext1_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_Ext1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Ext1, choice.content), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_content_constr_2, &asn_PER_memb_content_constr_2, memb_content_constraint_1 }, + 0, 0, /* No default value */ + "content" + }, + { ATF_NOFLAGS, 0, offsetof(struct Ext1, choice.extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Ext2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Ext1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* content */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* extension */ +}; +asn_CHOICE_specifics_t asn_SPC_Ext1_specs_1 = { + sizeof(struct Ext1), + offsetof(struct Ext1, _asn_ctx), + offsetof(struct Ext1, present), + sizeof(((struct Ext1 *)0)->present), + asn_MAP_Ext1_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Ext1 = { + "Ext1", + "Ext1", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_Ext1_constr_1, &asn_PER_type_Ext1_constr_1, CHOICE_constraint }, + asn_MBR_Ext1_1, + 2, /* Elements count */ + &asn_SPC_Ext1_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Ext2.c b/vcits/ivim/src/Ext2.c new file mode 100644 index 0000000..d22dda0 --- /dev/null +++ b/vcits/ivim/src/Ext2.c @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/tmp/gen_env/build/asn1/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Ext2.h" + +static int +memb_content_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 16512 && value <= 2113663)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_content_constr_2 CC_NOTUSED = { + { 4, 1 } /* (16512..2113663) */, + -1}; +static asn_per_constraints_t asn_PER_memb_content_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 21, -1, 16512, 2113663 } /* (16512..2113663) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_Ext2_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_Ext2_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_Ext2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Ext2, choice.content), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_content_constr_2, &asn_PER_memb_content_constr_2, memb_content_constraint_1 }, + 0, 0, /* No default value */ + "content" + }, + { ATF_NOFLAGS, 0, offsetof(struct Ext2, choice.extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Ext3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Ext2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* content */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* extension */ +}; +asn_CHOICE_specifics_t asn_SPC_Ext2_specs_1 = { + sizeof(struct Ext2), + offsetof(struct Ext2, _asn_ctx), + offsetof(struct Ext2, present), + sizeof(((struct Ext2 *)0)->present), + asn_MAP_Ext2_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Ext2 = { + "Ext2", + "Ext2", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_Ext2_constr_1, &asn_PER_type_Ext2_constr_1, CHOICE_constraint }, + asn_MBR_Ext2_1, + 2, /* Elements count */ + &asn_SPC_Ext2_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Ext3.c b/vcits/ivim/src/Ext3.c new file mode 100644 index 0000000..44262d9 --- /dev/null +++ b/vcits/ivim/src/Ext3.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/tmp/gen_env/build/asn1/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Ext3.h" + +int +Ext3_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 2113664 && value <= 270549119)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Ext3_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_Ext3_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 28, -1, 2113664, 270549119 } /* (2113664..270549119,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Ext3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Ext3 = { + "Ext3", + "Ext3", + &asn_OP_NativeInteger, + asn_DEF_Ext3_tags_1, + sizeof(asn_DEF_Ext3_tags_1) + /sizeof(asn_DEF_Ext3_tags_1[0]), /* 1 */ + asn_DEF_Ext3_tags_1, /* Same as above */ + sizeof(asn_DEF_Ext3_tags_1) + /sizeof(asn_DEF_Ext3_tags_1[0]), /* 1 */ + { &asn_OER_type_Ext3_constr_1, &asn_PER_type_Ext3_constr_1, Ext3_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ExteriorLights.c b/vcits/ivim/src/ExteriorLights.c new file mode 100644 index 0000000..d8f3ca6 --- /dev/null +++ b/vcits/ivim/src/ExteriorLights.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ExteriorLights.h" + +int +ExteriorLights_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_ExteriorLights_tags_1, + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + { &asn_OER_type_ExteriorLights_constr_1, &asn_PER_type_ExteriorLights_constr_1, ExteriorLights_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/FreightContainerData.c b/vcits/ivim/src/FreightContainerData.c new file mode 100644 index 0000000..2cb1cfc --- /dev/null +++ b/vcits/ivim/src/FreightContainerData.c @@ -0,0 +1,482 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "FreightContainerData.h" + +static int +memb_ownerCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_serialNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1000000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_checkDigit_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_length_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 2000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_height_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_width_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 200 && value <= 300)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_containerTypeCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_maximumGrossMass_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 19 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_tareMass_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 99)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_ownerCode_constr_2 CC_NOTUSED = { + { 0, 0 }, + 19 /* (SIZE(19..19)) */}; +static asn_per_constraints_t asn_PER_memb_ownerCode_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 19, 19 } /* (SIZE(19..19)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_serialNumber_constr_3 CC_NOTUSED = { + { 4, 1 } /* (0..1000000) */, + -1}; +static asn_per_constraints_t asn_PER_memb_serialNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 1000000 } /* (0..1000000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_checkDigit_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..10) */, + -1}; +static asn_per_constraints_t asn_PER_memb_checkDigit_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 10 } /* (0..10) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_length_constr_5 CC_NOTUSED = { + { 2, 1 } /* (1..2000) */, + -1}; +static asn_per_constraints_t asn_PER_memb_length_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 1, 2000 } /* (1..2000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_height_constr_6 CC_NOTUSED = { + { 2, 1 } /* (1..500) */, + -1}; +static asn_per_constraints_t asn_PER_memb_height_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 500 } /* (1..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_width_constr_7 CC_NOTUSED = { + { 2, 1 } /* (200..300) */, + -1}; +static asn_per_constraints_t asn_PER_memb_width_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 200, 300 } /* (200..300) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_containerTypeCode_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_containerTypeCode_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_maximumGrossMass_constr_9 CC_NOTUSED = { + { 2, 1 } /* (19..500) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maximumGrossMass_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 19, 500 } /* (19..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_tareMass_constr_10 CC_NOTUSED = { + { 1, 1 } /* (0..99) */, + -1}; +static asn_per_constraints_t asn_PER_memb_tareMass_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 99 } /* (0..99) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_fill_constr_11 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_FreightContainerData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, ownerCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_ownerCode_constr_2, &asn_PER_memb_ownerCode_constr_2, memb_ownerCode_constraint_1 }, + 0, 0, /* No default value */ + "ownerCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, serialNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_serialNumber_constr_3, &asn_PER_memb_serialNumber_constr_3, memb_serialNumber_constraint_1 }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, checkDigit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_checkDigit_constr_4, &asn_PER_memb_checkDigit_constr_4, memb_checkDigit_constraint_1 }, + 0, 0, /* No default value */ + "checkDigit" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, length), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_length_constr_5, &asn_PER_memb_length_constr_5, memb_length_constraint_1 }, + 0, 0, /* No default value */ + "length" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, height), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_height_constr_6, &asn_PER_memb_height_constr_6, memb_height_constraint_1 }, + 0, 0, /* No default value */ + "height" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, width), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_width_constr_7, &asn_PER_memb_width_constr_7, memb_width_constraint_1 }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, containerTypeCode), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_containerTypeCode_constr_8, &asn_PER_memb_containerTypeCode_constr_8, memb_containerTypeCode_constraint_1 }, + 0, 0, /* No default value */ + "containerTypeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, maximumGrossMass), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maximumGrossMass_constr_9, &asn_PER_memb_maximumGrossMass_constr_9, memb_maximumGrossMass_constraint_1 }, + 0, 0, /* No default value */ + "maximumGrossMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, tareMass), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_tareMass_constr_10, &asn_PER_memb_tareMass_constr_10, memb_tareMass_constraint_1 }, + 0, 0, /* No default value */ + "tareMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, fill), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_11, &asn_PER_memb_fill_constr_11, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_FreightContainerData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FreightContainerData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ownerCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serialNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* checkDigit */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* length */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* height */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* width */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* containerTypeCode */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* maximumGrossMass */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* tareMass */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* fill */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FreightContainerData_specs_1 = { + sizeof(struct FreightContainerData), + offsetof(struct FreightContainerData, _asn_ctx), + asn_MAP_FreightContainerData_tag2el_1, + 10, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FreightContainerData = { + "FreightContainerData", + "FreightContainerData", + &asn_OP_SEQUENCE, + asn_DEF_FreightContainerData_tags_1, + sizeof(asn_DEF_FreightContainerData_tags_1) + /sizeof(asn_DEF_FreightContainerData_tags_1[0]), /* 1 */ + asn_DEF_FreightContainerData_tags_1, /* Same as above */ + sizeof(asn_DEF_FreightContainerData_tags_1) + /sizeof(asn_DEF_FreightContainerData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/FrictionCoefficient.c b/vcits/ivim/src/FrictionCoefficient.c new file mode 100644 index 0000000..6135e74 --- /dev/null +++ b/vcits/ivim/src/FrictionCoefficient.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "FrictionCoefficient.h" + +int +FrictionCoefficient_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 101)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FrictionCoefficient_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..101) */, + -1}; +asn_per_constraints_t asn_PER_type_FrictionCoefficient_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 101 } /* (0..101) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_FrictionCoefficient_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FrictionCoefficient = { + "FrictionCoefficient", + "FrictionCoefficient", + &asn_OP_NativeInteger, + asn_DEF_FrictionCoefficient_tags_1, + sizeof(asn_DEF_FrictionCoefficient_tags_1) + /sizeof(asn_DEF_FrictionCoefficient_tags_1[0]), /* 1 */ + asn_DEF_FrictionCoefficient_tags_1, /* Same as above */ + sizeof(asn_DEF_FrictionCoefficient_tags_1) + /sizeof(asn_DEF_FrictionCoefficient_tags_1[0]), /* 1 */ + { &asn_OER_type_FrictionCoefficient_constr_1, &asn_PER_type_FrictionCoefficient_constr_1, FrictionCoefficient_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/FuelType.c b/vcits/ivim/src/FuelType.c new file mode 100644 index 0000000..df0bee1 --- /dev/null +++ b/vcits/ivim/src/FuelType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "FuelType.h" + +int +FuelType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FuelType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_FuelType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_FuelType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FuelType = { + "FuelType", + "FuelType", + &asn_OP_NativeInteger, + asn_DEF_FuelType_tags_1, + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + asn_DEF_FuelType_tags_1, /* Same as above */ + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + { &asn_OER_type_FuelType_constr_1, &asn_PER_type_FuelType_constr_1, FuelType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/FullPositionVector.c b/vcits/ivim/src/FullPositionVector.c new file mode 100644 index 0000000..1d01bec --- /dev/null +++ b/vcits/ivim/src/FullPositionVector.c @@ -0,0 +1,147 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "FullPositionVector.h" + +#include "DDateTime.h" +#include "TransmissionAndSpeed.h" +#include "PositionalAccuracy.h" +#include "PositionConfidenceSet.h" +#include "SpeedandHeadingandThrottleConfidence.h" +asn_TYPE_member_t asn_MBR_FullPositionVector_1[] = { + { ATF_POINTER, 1, offsetof(struct FullPositionVector, utcTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDateTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "utcTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "long" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, lat), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_POINTER, 7, offsetof(struct FullPositionVector, elevation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Elevation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 6, offsetof(struct FullPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 5, offsetof(struct FullPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct FullPositionVector, posAccuracy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionalAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posAccuracy" + }, + { ATF_POINTER, 3, offsetof(struct FullPositionVector, timeConfidence), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeConfidence" + }, + { ATF_POINTER, 2, offsetof(struct FullPositionVector, posConfidence), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidenceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posConfidence" + }, + { ATF_POINTER, 1, offsetof(struct FullPositionVector, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedandHeadingandThrottleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const int asn_MAP_FullPositionVector_oms_1[] = { 0, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_FullPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FullPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* utcTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* posAccuracy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* timeConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* posConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1 = { + sizeof(struct FullPositionVector), + offsetof(struct FullPositionVector, _asn_ctx), + asn_MAP_FullPositionVector_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_FullPositionVector_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FullPositionVector = { + "FullPositionVector", + "FullPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_FullPositionVector_tags_1, + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + asn_DEF_FullPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FullPositionVector_1, + 10, /* Elements count */ + &asn_SPC_FullPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/FutureCharacteristics.c b/vcits/ivim/src/FutureCharacteristics.c new file mode 100644 index 0000000..d06a9d1 --- /dev/null +++ b/vcits/ivim/src/FutureCharacteristics.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "FutureCharacteristics.h" + +int +FutureCharacteristics_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FutureCharacteristics_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_FutureCharacteristics_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_FutureCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FutureCharacteristics = { + "FutureCharacteristics", + "FutureCharacteristics", + &asn_OP_NativeInteger, + asn_DEF_FutureCharacteristics_tags_1, + sizeof(asn_DEF_FutureCharacteristics_tags_1) + /sizeof(asn_DEF_FutureCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_FutureCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_FutureCharacteristics_tags_1) + /sizeof(asn_DEF_FutureCharacteristics_tags_1[0]), /* 1 */ + { &asn_OER_type_FutureCharacteristics_constr_1, &asn_PER_type_FutureCharacteristics_constr_1, FutureCharacteristics_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/GNSSstatus.c b/vcits/ivim/src/GNSSstatus.c new file mode 100644 index 0000000..17c8f58 --- /dev/null +++ b/vcits/ivim/src/GNSSstatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GNSSstatus.h" + +int +GNSSstatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GNSSstatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNSSstatus = { + "GNSSstatus", + "GNSSstatus", + &asn_OP_BIT_STRING, + asn_DEF_GNSSstatus_tags_1, + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + asn_DEF_GNSSstatus_tags_1, /* Same as above */ + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + { &asn_OER_type_GNSSstatus_constr_1, &asn_PER_type_GNSSstatus_constr_1, GNSSstatus_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/GapBetweenVehicles.c b/vcits/ivim/src/GapBetweenVehicles.c new file mode 100644 index 0000000..d9a7c9f --- /dev/null +++ b/vcits/ivim/src/GapBetweenVehicles.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GapBetweenVehicles.h" + +int +GapBetweenVehicles_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GapBetweenVehicles_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_GapBetweenVehicles_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GapBetweenVehicles_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GapBetweenVehicles = { + "GapBetweenVehicles", + "GapBetweenVehicles", + &asn_OP_NativeInteger, + asn_DEF_GapBetweenVehicles_tags_1, + sizeof(asn_DEF_GapBetweenVehicles_tags_1) + /sizeof(asn_DEF_GapBetweenVehicles_tags_1[0]), /* 1 */ + asn_DEF_GapBetweenVehicles_tags_1, /* Same as above */ + sizeof(asn_DEF_GapBetweenVehicles_tags_1) + /sizeof(asn_DEF_GapBetweenVehicles_tags_1[0]), /* 1 */ + { &asn_OER_type_GapBetweenVehicles_constr_1, &asn_PER_type_GapBetweenVehicles_constr_1, GapBetweenVehicles_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/GddAttribute.c b/vcits/ivim/src/GddAttribute.c new file mode 100644 index 0000000..a08a30c --- /dev/null +++ b/vcits/ivim/src/GddAttribute.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GddAttribute.h" + +#include "InternationalSign-destinationInformation.h" +static asn_oer_constraints_t asn_OER_type_GddAttribute_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_GddAttribute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_GddAttribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GddAttribute, choice.dtm), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_applicablePeriod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dtm" + }, + { ATF_NOFLAGS, 0, offsetof(struct GddAttribute, choice.edt), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_exemptedApplicablePeriod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "edt" + }, + { ATF_NOFLAGS, 0, offsetof(struct GddAttribute, choice.dfl), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_directionalFlowOfLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dfl" + }, + { ATF_NOFLAGS, 0, offsetof(struct GddAttribute, choice.ved), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_applicableVehicleDimensions, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ved" + }, + { ATF_NOFLAGS, 0, offsetof(struct GddAttribute, choice.spe), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_speedLimits, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spe" + }, + { ATF_NOFLAGS, 0, offsetof(struct GddAttribute, choice.roi), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_rateOfIncline, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roi" + }, + { ATF_NOFLAGS, 0, offsetof(struct GddAttribute, choice.dbv), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_distanceBetweenVehicles, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dbv" + }, + { ATF_POINTER, 0, offsetof(struct GddAttribute, choice.ddd), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_destinationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ddd" + }, + { ATF_NOFLAGS, 0, offsetof(struct GddAttribute, choice.set), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_section, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "set" + }, + { ATF_NOFLAGS, 0, offsetof(struct GddAttribute, choice.nol), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_numberOfLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nol" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_GddAttribute_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dtm */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* edt */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dfl */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ved */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* spe */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* roi */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dbv */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* ddd */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* set */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* nol */ +}; +asn_CHOICE_specifics_t asn_SPC_GddAttribute_specs_1 = { + sizeof(struct GddAttribute), + offsetof(struct GddAttribute, _asn_ctx), + offsetof(struct GddAttribute, present), + sizeof(((struct GddAttribute *)0)->present), + asn_MAP_GddAttribute_tag2el_1, + 10, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_GddAttribute = { + "GddAttribute", + "GddAttribute", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_GddAttribute_constr_1, &asn_PER_type_GddAttribute_constr_1, CHOICE_constraint }, + asn_MBR_GddAttribute_1, + 10, /* Elements count */ + &asn_SPC_GddAttribute_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/GddAttributes.c b/vcits/ivim/src/GddAttributes.c new file mode 100644 index 0000000..95a5364 --- /dev/null +++ b/vcits/ivim/src/GddAttributes.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GddAttributes.h" + +#include "GddAttribute.h" +static asn_oer_constraints_t asn_OER_type_GddAttributes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_GddAttributes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_GddAttributes_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_GddAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_GddAttributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_GddAttributes_specs_1 = { + sizeof(struct GddAttributes), + offsetof(struct GddAttributes, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_GddAttributes = { + "GddAttributes", + "GddAttributes", + &asn_OP_SEQUENCE_OF, + asn_DEF_GddAttributes_tags_1, + sizeof(asn_DEF_GddAttributes_tags_1) + /sizeof(asn_DEF_GddAttributes_tags_1[0]), /* 1 */ + asn_DEF_GddAttributes_tags_1, /* Same as above */ + sizeof(asn_DEF_GddAttributes_tags_1) + /sizeof(asn_DEF_GddAttributes_tags_1[0]), /* 1 */ + { &asn_OER_type_GddAttributes_constr_1, &asn_PER_type_GddAttributes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_GddAttributes_1, + 1, /* Single element */ + &asn_SPC_GddAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/GddStructure.c b/vcits/ivim/src/GddStructure.c new file mode 100644 index 0000000..33133bc --- /dev/null +++ b/vcits/ivim/src/GddStructure.c @@ -0,0 +1,501 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GddStructure.h" + +#include "GddAttributes.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_nature_constraint_18(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 9)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_serialNumber_constraint_18(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 99)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_countryCode_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_trafficSignPictogram_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_trafficSignPictogram_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_publicFacilitiesPictogram_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_publicFacilitiesPictogram_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ambientOrRoadConditionPictogram_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_ambientOrRoadConditionPictogram_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_serviceCategoryCode_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_serviceCategoryCode_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_nature_constr_19 CC_NOTUSED = { + { 1, 1 } /* (1..9) */, + -1}; +static asn_per_constraints_t asn_PER_memb_nature_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 9 } /* (1..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_serialNumber_constr_20 CC_NOTUSED = { + { 1, 1 } /* (0..99) */, + -1}; +static asn_per_constraints_t asn_PER_memb_serialNumber_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 99 } /* (0..99) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_countryCode_constr_3 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_countryCode_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_trafficSignPictogram_value2enum_5[] = { + { 0, 13, "dangerWarning" }, + { 1, 10, "regulatory" }, + { 2, 11, "informative" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_trafficSignPictogram_enum2value_5[] = { + 0, /* dangerWarning(0) */ + 2, /* informative(2) */ + 1 /* regulatory(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_trafficSignPictogram_specs_5 = { + asn_MAP_trafficSignPictogram_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_trafficSignPictogram_enum2value_5, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_trafficSignPictogram_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_trafficSignPictogram_5 = { + "trafficSignPictogram", + "trafficSignPictogram", + &asn_OP_NativeEnumerated, + asn_DEF_trafficSignPictogram_tags_5, + sizeof(asn_DEF_trafficSignPictogram_tags_5) + /sizeof(asn_DEF_trafficSignPictogram_tags_5[0]) - 1, /* 1 */ + asn_DEF_trafficSignPictogram_tags_5, /* Same as above */ + sizeof(asn_DEF_trafficSignPictogram_tags_5) + /sizeof(asn_DEF_trafficSignPictogram_tags_5[0]), /* 2 */ + { &asn_OER_type_trafficSignPictogram_constr_5, &asn_PER_type_trafficSignPictogram_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_trafficSignPictogram_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_publicFacilitiesPictogram_value2enum_10[] = { + { 0, 16, "publicFacilities" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_publicFacilitiesPictogram_enum2value_10[] = { + 0 /* publicFacilities(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_publicFacilitiesPictogram_specs_10 = { + asn_MAP_publicFacilitiesPictogram_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_publicFacilitiesPictogram_enum2value_10, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_publicFacilitiesPictogram_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_publicFacilitiesPictogram_10 = { + "publicFacilitiesPictogram", + "publicFacilitiesPictogram", + &asn_OP_NativeEnumerated, + asn_DEF_publicFacilitiesPictogram_tags_10, + sizeof(asn_DEF_publicFacilitiesPictogram_tags_10) + /sizeof(asn_DEF_publicFacilitiesPictogram_tags_10[0]) - 1, /* 1 */ + asn_DEF_publicFacilitiesPictogram_tags_10, /* Same as above */ + sizeof(asn_DEF_publicFacilitiesPictogram_tags_10) + /sizeof(asn_DEF_publicFacilitiesPictogram_tags_10[0]), /* 2 */ + { &asn_OER_type_publicFacilitiesPictogram_constr_10, &asn_PER_type_publicFacilitiesPictogram_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_publicFacilitiesPictogram_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ambientOrRoadConditionPictogram_value2enum_13[] = { + { 0, 16, "ambientCondition" }, + { 1, 13, "roadCondition" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ambientOrRoadConditionPictogram_enum2value_13[] = { + 0, /* ambientCondition(0) */ + 1 /* roadCondition(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ambientOrRoadConditionPictogram_specs_13 = { + asn_MAP_ambientOrRoadConditionPictogram_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_ambientOrRoadConditionPictogram_enum2value_13, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ambientOrRoadConditionPictogram_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ambientOrRoadConditionPictogram_13 = { + "ambientOrRoadConditionPictogram", + "ambientOrRoadConditionPictogram", + &asn_OP_NativeEnumerated, + asn_DEF_ambientOrRoadConditionPictogram_tags_13, + sizeof(asn_DEF_ambientOrRoadConditionPictogram_tags_13) + /sizeof(asn_DEF_ambientOrRoadConditionPictogram_tags_13[0]) - 1, /* 1 */ + asn_DEF_ambientOrRoadConditionPictogram_tags_13, /* Same as above */ + sizeof(asn_DEF_ambientOrRoadConditionPictogram_tags_13) + /sizeof(asn_DEF_ambientOrRoadConditionPictogram_tags_13[0]), /* 2 */ + { &asn_OER_type_ambientOrRoadConditionPictogram_constr_13, &asn_PER_type_ambientOrRoadConditionPictogram_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ambientOrRoadConditionPictogram_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_serviceCategoryCode_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct GddStructure__pictogramCode__serviceCategoryCode, choice.trafficSignPictogram), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_trafficSignPictogram_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trafficSignPictogram" + }, + { ATF_NOFLAGS, 0, offsetof(struct GddStructure__pictogramCode__serviceCategoryCode, choice.publicFacilitiesPictogram), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_publicFacilitiesPictogram_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "publicFacilitiesPictogram" + }, + { ATF_NOFLAGS, 0, offsetof(struct GddStructure__pictogramCode__serviceCategoryCode, choice.ambientOrRoadConditionPictogram), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ambientOrRoadConditionPictogram_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ambientOrRoadConditionPictogram" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_serviceCategoryCode_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* trafficSignPictogram */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* publicFacilitiesPictogram */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ambientOrRoadConditionPictogram */ +}; +static asn_CHOICE_specifics_t asn_SPC_serviceCategoryCode_specs_4 = { + sizeof(struct GddStructure__pictogramCode__serviceCategoryCode), + offsetof(struct GddStructure__pictogramCode__serviceCategoryCode, _asn_ctx), + offsetof(struct GddStructure__pictogramCode__serviceCategoryCode, present), + sizeof(((struct GddStructure__pictogramCode__serviceCategoryCode *)0)->present), + asn_MAP_serviceCategoryCode_tag2el_4, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_serviceCategoryCode_4 = { + "serviceCategoryCode", + "serviceCategoryCode", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_serviceCategoryCode_constr_4, &asn_PER_type_serviceCategoryCode_constr_4, CHOICE_constraint }, + asn_MBR_serviceCategoryCode_4, + 3, /* Elements count */ + &asn_SPC_serviceCategoryCode_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pictogramCategoryCode_18[] = { + { ATF_NOFLAGS, 0, offsetof(struct GddStructure__pictogramCode__pictogramCategoryCode, nature), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nature_constr_19, &asn_PER_memb_nature_constr_19, memb_nature_constraint_18 }, + 0, 0, /* No default value */ + "nature" + }, + { ATF_NOFLAGS, 0, offsetof(struct GddStructure__pictogramCode__pictogramCategoryCode, serialNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_serialNumber_constr_20, &asn_PER_memb_serialNumber_constr_20, memb_serialNumber_constraint_18 }, + 0, 0, /* No default value */ + "serialNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_pictogramCategoryCode_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_pictogramCategoryCode_tag2el_18[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nature */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* serialNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_pictogramCategoryCode_specs_18 = { + sizeof(struct GddStructure__pictogramCode__pictogramCategoryCode), + offsetof(struct GddStructure__pictogramCode__pictogramCategoryCode, _asn_ctx), + asn_MAP_pictogramCategoryCode_tag2el_18, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_pictogramCategoryCode_18 = { + "pictogramCategoryCode", + "pictogramCategoryCode", + &asn_OP_SEQUENCE, + asn_DEF_pictogramCategoryCode_tags_18, + sizeof(asn_DEF_pictogramCategoryCode_tags_18) + /sizeof(asn_DEF_pictogramCategoryCode_tags_18[0]) - 1, /* 1 */ + asn_DEF_pictogramCategoryCode_tags_18, /* Same as above */ + sizeof(asn_DEF_pictogramCategoryCode_tags_18) + /sizeof(asn_DEF_pictogramCategoryCode_tags_18[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_pictogramCategoryCode_18, + 2, /* Elements count */ + &asn_SPC_pictogramCategoryCode_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pictogramCode_2[] = { + { ATF_POINTER, 1, offsetof(struct GddStructure__pictogramCode, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_countryCode_constr_3, &asn_PER_memb_countryCode_constr_3, memb_countryCode_constraint_2 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct GddStructure__pictogramCode, serviceCategoryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_serviceCategoryCode_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceCategoryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct GddStructure__pictogramCode, pictogramCategoryCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_pictogramCategoryCode_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pictogramCategoryCode" + }, +}; +static const int asn_MAP_pictogramCode_oms_2[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_pictogramCode_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_pictogramCode_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serviceCategoryCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pictogramCategoryCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_pictogramCode_specs_2 = { + sizeof(struct GddStructure__pictogramCode), + offsetof(struct GddStructure__pictogramCode, _asn_ctx), + asn_MAP_pictogramCode_tag2el_2, + 3, /* Count of tags in the map */ + asn_MAP_pictogramCode_oms_2, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_pictogramCode_2 = { + "pictogramCode", + "pictogramCode", + &asn_OP_SEQUENCE, + asn_DEF_pictogramCode_tags_2, + sizeof(asn_DEF_pictogramCode_tags_2) + /sizeof(asn_DEF_pictogramCode_tags_2[0]) - 1, /* 1 */ + asn_DEF_pictogramCode_tags_2, /* Same as above */ + sizeof(asn_DEF_pictogramCode_tags_2) + /sizeof(asn_DEF_pictogramCode_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_pictogramCode_2, + 3, /* Elements count */ + &asn_SPC_pictogramCode_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GddStructure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GddStructure, pictogramCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_pictogramCode_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pictogramCode" + }, + { ATF_POINTER, 1, offsetof(struct GddStructure, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GddAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_GddStructure_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_GddStructure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GddStructure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pictogramCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GddStructure_specs_1 = { + sizeof(struct GddStructure), + offsetof(struct GddStructure, _asn_ctx), + asn_MAP_GddStructure_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_GddStructure_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GddStructure = { + "GddStructure", + "GddStructure", + &asn_OP_SEQUENCE, + asn_DEF_GddStructure_tags_1, + sizeof(asn_DEF_GddStructure_tags_1) + /sizeof(asn_DEF_GddStructure_tags_1[0]), /* 1 */ + asn_DEF_GddStructure_tags_1, /* Same as above */ + sizeof(asn_DEF_GddStructure_tags_1) + /sizeof(asn_DEF_GddStructure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GddStructure_1, + 2, /* Elements count */ + &asn_SPC_GddStructure_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/GeneralIviContainer.c b/vcits/ivim/src/GeneralIviContainer.c new file mode 100644 index 0000000..e166c26 --- /dev/null +++ b/vcits/ivim/src/GeneralIviContainer.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GeneralIviContainer.h" + +#include "GicPart.h" +static asn_oer_constraints_t asn_OER_type_GeneralIviContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_GeneralIviContainer_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 16 } /* (SIZE(1..16,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_GeneralIviContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GicPart, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_GeneralIviContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_GeneralIviContainer_specs_1 = { + sizeof(struct GeneralIviContainer), + offsetof(struct GeneralIviContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_GeneralIviContainer = { + "GeneralIviContainer", + "GeneralIviContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_GeneralIviContainer_tags_1, + sizeof(asn_DEF_GeneralIviContainer_tags_1) + /sizeof(asn_DEF_GeneralIviContainer_tags_1[0]), /* 1 */ + asn_DEF_GeneralIviContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_GeneralIviContainer_tags_1) + /sizeof(asn_DEF_GeneralIviContainer_tags_1[0]), /* 1 */ + { &asn_OER_type_GeneralIviContainer_constr_1, &asn_PER_type_GeneralIviContainer_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_GeneralIviContainer_1, + 1, /* Single element */ + &asn_SPC_GeneralIviContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/GenericLane.c b/vcits/ivim/src/GenericLane.c new file mode 100644 index 0000000..a85a286 --- /dev/null +++ b/vcits/ivim/src/GenericLane.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GenericLane.h" + +#include "ConnectsToList.h" +#include "OverlayLaneList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct GenericLane__regional), + offsetof(struct GenericLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { &asn_OER_type_regional_constr_11, &asn_PER_type_regional_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GenericLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, ingressApproach), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ingressApproach" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, egressApproach), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "egressApproach" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneAttributes), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneAttributes" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, maneuvers), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuvers" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, nodeList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeListXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeList" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, connectsTo), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectsToList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectsTo" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, overlays), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OverlayLaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "overlays" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { &asn_OER_memb_regional_constr_11, &asn_PER_memb_regional_constr_11, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_GenericLane_oms_1[] = { 1, 2, 3, 5, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_GenericLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GenericLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ingressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* egressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAttributes */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maneuvers */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* nodeList */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* connectsTo */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* overlays */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1 = { + sizeof(struct GenericLane), + offsetof(struct GenericLane, _asn_ctx), + asn_MAP_GenericLane_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_GenericLane_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GenericLane = { + "GenericLane", + "GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_GenericLane_tags_1, + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + asn_DEF_GenericLane_tags_1, /* Same as above */ + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GenericLane_1, + 10, /* Elements count */ + &asn_SPC_GenericLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/GeoGraphicalLimit.c b/vcits/ivim/src/GeoGraphicalLimit.c new file mode 100644 index 0000000..120a3f0 --- /dev/null +++ b/vcits/ivim/src/GeoGraphicalLimit.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GeoGraphicalLimit.h" + +int +GeoGraphicalLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GeoGraphicalLimit_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_GeoGraphicalLimit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GeoGraphicalLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GeoGraphicalLimit = { + "GeoGraphicalLimit", + "GeoGraphicalLimit", + &asn_OP_BIT_STRING, + asn_DEF_GeoGraphicalLimit_tags_1, + sizeof(asn_DEF_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_GeoGraphicalLimit_tags_1[0]), /* 1 */ + asn_DEF_GeoGraphicalLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_GeoGraphicalLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_GeoGraphicalLimit_constr_1, &asn_PER_type_GeoGraphicalLimit_constr_1, GeoGraphicalLimit_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/GeographicLocationContainer.c b/vcits/ivim/src/GeographicLocationContainer.c new file mode 100644 index 0000000..756a331 --- /dev/null +++ b/vcits/ivim/src/GeographicLocationContainer.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GeographicLocationContainer.h" + +#include "Heading.h" +#include "Speed.h" +asn_TYPE_member_t asn_MBR_GeographicLocationContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GeographicLocationContainer, referencePosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referencePosition" + }, + { ATF_POINTER, 3, offsetof(struct GeographicLocationContainer, referencePositionTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referencePositionTime" + }, + { ATF_POINTER, 2, offsetof(struct GeographicLocationContainer, referencePositionHeading), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Heading, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referencePositionHeading" + }, + { ATF_POINTER, 1, offsetof(struct GeographicLocationContainer, referencePositionSpeed), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Speed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referencePositionSpeed" + }, + { ATF_NOFLAGS, 0, offsetof(struct GeographicLocationContainer, parts), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlcParts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "parts" + }, +}; +static const int asn_MAP_GeographicLocationContainer_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_GeographicLocationContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GeographicLocationContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referencePosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* referencePositionTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* referencePositionHeading */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* referencePositionSpeed */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* parts */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GeographicLocationContainer_specs_1 = { + sizeof(struct GeographicLocationContainer), + offsetof(struct GeographicLocationContainer, _asn_ctx), + asn_MAP_GeographicLocationContainer_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_GeographicLocationContainer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GeographicLocationContainer = { + "GeographicLocationContainer", + "GeographicLocationContainer", + &asn_OP_SEQUENCE, + asn_DEF_GeographicLocationContainer_tags_1, + sizeof(asn_DEF_GeographicLocationContainer_tags_1) + /sizeof(asn_DEF_GeographicLocationContainer_tags_1[0]), /* 1 */ + asn_DEF_GeographicLocationContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_GeographicLocationContainer_tags_1) + /sizeof(asn_DEF_GeographicLocationContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GeographicLocationContainer_1, + 5, /* Elements count */ + &asn_SPC_GeographicLocationContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/GetInstanceRq.c b/vcits/ivim/src/GetInstanceRq.c new file mode 100644 index 0000000..77dfd25 --- /dev/null +++ b/vcits/ivim/src/GetInstanceRq.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GetInstanceRq.h" + +static int +memb_posOfFirstInstance_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_posOfLastInstance_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_posOfFirstInstance_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_posOfFirstInstance_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_posOfLastInstance_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_posOfLastInstance_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_GetInstanceRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GetInstanceRq, posOfFirstInstance), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_posOfFirstInstance_constr_2, &asn_PER_memb_posOfFirstInstance_constr_2, memb_posOfFirstInstance_constraint_1 }, + 0, 0, /* No default value */ + "posOfFirstInstance" + }, + { ATF_NOFLAGS, 0, offsetof(struct GetInstanceRq, posOfLastInstance), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_posOfLastInstance_constr_3, &asn_PER_memb_posOfLastInstance_constr_3, memb_posOfLastInstance_constraint_1 }, + 0, 0, /* No default value */ + "posOfLastInstance" + }, + { ATF_NOFLAGS, 0, offsetof(struct GetInstanceRq, attributeIdList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AttributeIdList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "attributeIdList" + }, +}; +static const ber_tlv_tag_t asn_DEF_GetInstanceRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GetInstanceRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* posOfFirstInstance */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* posOfLastInstance */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* attributeIdList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_GetInstanceRq_specs_1 = { + sizeof(struct GetInstanceRq), + offsetof(struct GetInstanceRq, _asn_ctx), + asn_MAP_GetInstanceRq_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GetInstanceRq = { + "GetInstanceRq", + "GetInstanceRq", + &asn_OP_SEQUENCE, + asn_DEF_GetInstanceRq_tags_1, + sizeof(asn_DEF_GetInstanceRq_tags_1) + /sizeof(asn_DEF_GetInstanceRq_tags_1[0]), /* 1 */ + asn_DEF_GetInstanceRq_tags_1, /* Same as above */ + sizeof(asn_DEF_GetInstanceRq_tags_1) + /sizeof(asn_DEF_GetInstanceRq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GetInstanceRq_1, + 3, /* Elements count */ + &asn_SPC_GetInstanceRq_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/GetInstanceRs.c b/vcits/ivim/src/GetInstanceRs.c new file mode 100644 index 0000000..163d490 --- /dev/null +++ b/vcits/ivim/src/GetInstanceRs.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GetInstanceRs.h" + diff --git a/vcits/ivim/src/GetStampedRq.c b/vcits/ivim/src/GetStampedRq.c new file mode 100644 index 0000000..247862e --- /dev/null +++ b/vcits/ivim/src/GetStampedRq.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GetStampedRq.h" + +static int +memb_keyRef_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_keyRef_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_keyRef_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_GetStampedRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GetStampedRq, attributeIdList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AttributeIdList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "attributeIdList" + }, + { ATF_NOFLAGS, 0, offsetof(struct GetStampedRq, nonce), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonce" + }, + { ATF_NOFLAGS, 0, offsetof(struct GetStampedRq, keyRef), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_keyRef_constr_4, &asn_PER_memb_keyRef_constr_4, memb_keyRef_constraint_1 }, + 0, 0, /* No default value */ + "keyRef" + }, +}; +static const ber_tlv_tag_t asn_DEF_GetStampedRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GetStampedRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* attributeIdList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nonce */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* keyRef */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_GetStampedRq_specs_1 = { + sizeof(struct GetStampedRq), + offsetof(struct GetStampedRq, _asn_ctx), + asn_MAP_GetStampedRq_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GetStampedRq = { + "GetStampedRq", + "GetStampedRq", + &asn_OP_SEQUENCE, + asn_DEF_GetStampedRq_tags_1, + sizeof(asn_DEF_GetStampedRq_tags_1) + /sizeof(asn_DEF_GetStampedRq_tags_1[0]), /* 1 */ + asn_DEF_GetStampedRq_tags_1, /* Same as above */ + sizeof(asn_DEF_GetStampedRq_tags_1) + /sizeof(asn_DEF_GetStampedRq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GetStampedRq_1, + 3, /* Elements count */ + &asn_SPC_GetStampedRq_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/GetStampedRs.c b/vcits/ivim/src/GetStampedRs.c new file mode 100644 index 0000000..d4c0a0d --- /dev/null +++ b/vcits/ivim/src/GetStampedRs.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GetStampedRs.h" + diff --git a/vcits/ivim/src/GicPart.c b/vcits/ivim/src/GicPart.c new file mode 100644 index 0000000..ce4165e --- /dev/null +++ b/vcits/ivim/src/GicPart.c @@ -0,0 +1,306 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GicPart.h" + +#include "ZoneIds.h" +#include "VarLengthNumber.h" +#include "LanePositions.h" +#include "VehicleCharacteristicsList.h" +#include "ConstraintTextLines1.h" +static int +memb_minimumAwarenessTime_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_layoutId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_preStoredlayoutId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_minimumAwarenessTime_constr_7 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_minimumAwarenessTime_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_layoutId_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_layoutId_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (1..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_preStoredlayoutId_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_preStoredlayoutId_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 1, 64 } /* (1..64,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_GicPart_1[] = { + { ATF_POINTER, 7, offsetof(struct GicPart, detectionZoneIds), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneIds, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "detectionZoneIds" + }, + { ATF_POINTER, 6, offsetof(struct GicPart, its_Rrid), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VarLengthNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "its-Rrid" + }, + { ATF_POINTER, 5, offsetof(struct GicPart, relevanceZoneIds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneIds, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "relevanceZoneIds" + }, + { ATF_POINTER, 4, offsetof(struct GicPart, direction), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Direction, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "direction" + }, + { ATF_POINTER, 3, offsetof(struct GicPart, driverAwarenessZoneIds), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneIds, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "driverAwarenessZoneIds" + }, + { ATF_POINTER, 2, offsetof(struct GicPart, minimumAwarenessTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_minimumAwarenessTime_constr_7, &asn_PER_memb_minimumAwarenessTime_constr_7, memb_minimumAwarenessTime_constraint_1 }, + 0, 0, /* No default value */ + "minimumAwarenessTime" + }, + { ATF_POINTER, 1, offsetof(struct GicPart, applicableLanes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LanePositions, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "applicableLanes" + }, + { ATF_NOFLAGS, 0, offsetof(struct GicPart, iviType), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IviType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iviType" + }, + { ATF_POINTER, 6, offsetof(struct GicPart, iviPurpose), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IviPurpose, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iviPurpose" + }, + { ATF_POINTER, 5, offsetof(struct GicPart, laneStatus), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneStatus" + }, + { ATF_POINTER, 4, offsetof(struct GicPart, vehicleCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleCharacteristicsList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleCharacteristics" + }, + { ATF_POINTER, 3, offsetof(struct GicPart, driverCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IVI_DriverCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "driverCharacteristics" + }, + { ATF_POINTER, 2, offsetof(struct GicPart, layoutId), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_layoutId_constr_14, &asn_PER_memb_layoutId_constr_14, memb_layoutId_constraint_1 }, + 0, 0, /* No default value */ + "layoutId" + }, + { ATF_POINTER, 1, offsetof(struct GicPart, preStoredlayoutId), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_preStoredlayoutId_constr_15, &asn_PER_memb_preStoredlayoutId_constr_15, memb_preStoredlayoutId_constraint_1 }, + 0, 0, /* No default value */ + "preStoredlayoutId" + }, + { ATF_NOFLAGS, 0, offsetof(struct GicPart, roadSignCodes), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSignCodes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadSignCodes" + }, + { ATF_POINTER, 1, offsetof(struct GicPart, extraText), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConstraintTextLines1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "extraText" + }, +}; +static const int asn_MAP_GicPart_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 15 }; +static const ber_tlv_tag_t asn_DEF_GicPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GicPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* detectionZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* its-Rrid */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* relevanceZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* driverAwarenessZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* minimumAwarenessTime */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* applicableLanes */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* iviType */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* iviPurpose */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* laneStatus */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* vehicleCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* driverCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* layoutId */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* preStoredlayoutId */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* roadSignCodes */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 } /* extraText */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GicPart_specs_1 = { + sizeof(struct GicPart), + offsetof(struct GicPart, _asn_ctx), + asn_MAP_GicPart_tag2el_1, + 16, /* Count of tags in the map */ + asn_MAP_GicPart_oms_1, /* Optional members */ + 14, 0, /* Root/Additions */ + 16, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GicPart = { + "GicPart", + "GicPart", + &asn_OP_SEQUENCE, + asn_DEF_GicPart_tags_1, + sizeof(asn_DEF_GicPart_tags_1) + /sizeof(asn_DEF_GicPart_tags_1[0]), /* 1 */ + asn_DEF_GicPart_tags_1, /* Same as above */ + sizeof(asn_DEF_GicPart_tags_1) + /sizeof(asn_DEF_GicPart_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GicPart_1, + 16, /* Elements count */ + &asn_SPC_GicPart_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/GlcPart.c b/vcits/ivim/src/GlcPart.c new file mode 100644 index 0000000..72cdcc2 --- /dev/null +++ b/vcits/ivim/src/GlcPart.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GlcPart.h" + +#include "Zone.h" +static int +memb_zoneExtension_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_zoneExtension_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_zoneExtension_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_GlcPart_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GlcPart, zoneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Zid, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zoneId" + }, + { ATF_POINTER, 4, offsetof(struct GlcPart, laneNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LanePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneNumber" + }, + { ATF_POINTER, 3, offsetof(struct GlcPart, zoneExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_zoneExtension_constr_4, &asn_PER_memb_zoneExtension_constr_4, memb_zoneExtension_constraint_1 }, + 0, 0, /* No default value */ + "zoneExtension" + }, + { ATF_POINTER, 2, offsetof(struct GlcPart, zoneHeading), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zoneHeading" + }, + { ATF_POINTER, 1, offsetof(struct GlcPart, zone), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Zone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zone" + }, +}; +static const int asn_MAP_GlcPart_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_GlcPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GlcPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zoneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* zoneExtension */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* zoneHeading */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* zone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GlcPart_specs_1 = { + sizeof(struct GlcPart), + offsetof(struct GlcPart, _asn_ctx), + asn_MAP_GlcPart_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_GlcPart_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GlcPart = { + "GlcPart", + "GlcPart", + &asn_OP_SEQUENCE, + asn_DEF_GlcPart_tags_1, + sizeof(asn_DEF_GlcPart_tags_1) + /sizeof(asn_DEF_GlcPart_tags_1[0]), /* 1 */ + asn_DEF_GlcPart_tags_1, /* Same as above */ + sizeof(asn_DEF_GlcPart_tags_1) + /sizeof(asn_DEF_GlcPart_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GlcPart_1, + 5, /* Elements count */ + &asn_SPC_GlcPart_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/GlcParts.c b/vcits/ivim/src/GlcParts.c new file mode 100644 index 0000000..4775f1f --- /dev/null +++ b/vcits/ivim/src/GlcParts.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GlcParts.h" + +#include "GlcPart.h" +static asn_oer_constraints_t asn_OER_type_GlcParts_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_GlcParts_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 16 } /* (SIZE(1..16,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_GlcParts_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GlcPart, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_GlcParts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_GlcParts_specs_1 = { + sizeof(struct GlcParts), + offsetof(struct GlcParts, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_GlcParts = { + "GlcParts", + "GlcParts", + &asn_OP_SEQUENCE_OF, + asn_DEF_GlcParts_tags_1, + sizeof(asn_DEF_GlcParts_tags_1) + /sizeof(asn_DEF_GlcParts_tags_1[0]), /* 1 */ + asn_DEF_GlcParts_tags_1, /* Same as above */ + sizeof(asn_DEF_GlcParts_tags_1) + /sizeof(asn_DEF_GlcParts_tags_1[0]), /* 1 */ + { &asn_OER_type_GlcParts_constr_1, &asn_PER_type_GlcParts_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_GlcParts_1, + 1, /* Single element */ + &asn_SPC_GlcParts_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/GoodsType.c b/vcits/ivim/src/GoodsType.c new file mode 100644 index 0000000..3b0306d --- /dev/null +++ b/vcits/ivim/src/GoodsType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "GoodsType.h" + +int +GoodsType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GoodsType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_GoodsType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GoodsType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GoodsType = { + "GoodsType", + "GoodsType", + &asn_OP_NativeInteger, + asn_DEF_GoodsType_tags_1, + sizeof(asn_DEF_GoodsType_tags_1) + /sizeof(asn_DEF_GoodsType_tags_1[0]), /* 1 */ + asn_DEF_GoodsType_tags_1, /* Same as above */ + sizeof(asn_DEF_GoodsType_tags_1) + /sizeof(asn_DEF_GoodsType_tags_1[0]), /* 1 */ + { &asn_OER_type_GoodsType_constr_1, &asn_PER_type_GoodsType_constr_1, GoodsType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/HardShoulderStatus.c b/vcits/ivim/src/HardShoulderStatus.c new file mode 100644 index 0000000..8b79535 --- /dev/null +++ b/vcits/ivim/src/HardShoulderStatus.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "HardShoulderStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HardShoulderStatus_value2enum_1[] = { + { 0, 20, "availableForStopping" }, + { 1, 6, "closed" }, + { 2, 19, "availableForDriving" } +}; +static const unsigned int asn_MAP_HardShoulderStatus_enum2value_1[] = { + 2, /* availableForDriving(2) */ + 0, /* availableForStopping(0) */ + 1 /* closed(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1 = { + asn_MAP_HardShoulderStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HardShoulderStatus_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HardShoulderStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus = { + "HardShoulderStatus", + "HardShoulderStatus", + &asn_OP_NativeEnumerated, + asn_DEF_HardShoulderStatus_tags_1, + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + asn_DEF_HardShoulderStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_HardShoulderStatus_constr_1, &asn_PER_type_HardShoulderStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HardShoulderStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c b/vcits/ivim/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..12bc3db --- /dev/null +++ b/vcits/ivim/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "HazardousLocation-AnimalOnTheRoadSubCauseCode.h" + +int +HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode = { + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/HazardousLocation-DangerousCurveSubCauseCode.c b/vcits/ivim/src/HazardousLocation-DangerousCurveSubCauseCode.c new file mode 100644 index 0000000..ac7cb8a --- /dev/null +++ b/vcits/ivim/src/HazardousLocation-DangerousCurveSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "HazardousLocation-DangerousCurveSubCauseCode.h" + +int +HazardousLocation_DangerousCurveSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode = { + "HazardousLocation-DangerousCurveSubCauseCode", + "HazardousLocation-DangerousCurveSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, HazardousLocation_DangerousCurveSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c b/vcits/ivim/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..6c0c767 --- /dev/null +++ b/vcits/ivim/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" + +int +HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode = { + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/HazardousLocation-SurfaceConditionSubCauseCode.c b/vcits/ivim/src/HazardousLocation-SurfaceConditionSubCauseCode.c new file mode 100644 index 0000000..f56358e --- /dev/null +++ b/vcits/ivim/src/HazardousLocation-SurfaceConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "HazardousLocation-SurfaceConditionSubCauseCode.h" + +int +HazardousLocation_SurfaceConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode = { + "HazardousLocation-SurfaceConditionSubCauseCode", + "HazardousLocation-SurfaceConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, HazardousLocation_SurfaceConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Heading.c b/vcits/ivim/src/Heading.c new file mode 100644 index 0000000..f6cf4e2 --- /dev/null +++ b/vcits/ivim/src/Heading.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Heading.h" + +asn_TYPE_member_t asn_MBR_Heading_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Heading_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* headingValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* headingConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Heading_specs_1 = { + sizeof(struct Heading), + offsetof(struct Heading, _asn_ctx), + asn_MAP_Heading_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Heading = { + "Heading", + "Heading", + &asn_OP_SEQUENCE, + asn_DEF_Heading_tags_1, + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + asn_DEF_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Heading_1, + 2, /* Elements count */ + &asn_SPC_Heading_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/HeadingConfidence.c b/vcits/ivim/src/HeadingConfidence.c new file mode 100644 index 0000000..45b9506 --- /dev/null +++ b/vcits/ivim/src/HeadingConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "HeadingConfidence.h" + +int +HeadingConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeInteger, + asn_DEF_HeadingConfidence_tags_1, + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidence_constr_1, &asn_PER_type_HeadingConfidence_constr_1, HeadingConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/HeadingConfidenceDSRC.c b/vcits/ivim/src/HeadingConfidenceDSRC.c new file mode 100644 index 0000000..b1d0ebd --- /dev/null +++ b/vcits/ivim/src/HeadingConfidenceDSRC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "HeadingConfidenceDSRC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidenceDSRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidenceDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HeadingConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec10deg" }, + { 2, 9, "prec05deg" }, + { 3, 9, "prec01deg" }, + { 4, 10, "prec0-1deg" }, + { 5, 11, "prec0-05deg" }, + { 6, 11, "prec0-01deg" }, + { 7, 13, "prec0-0125deg" } +}; +static const unsigned int asn_MAP_HeadingConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-0125deg(7) */ + 6, /* prec0-01deg(6) */ + 5, /* prec0-05deg(5) */ + 4, /* prec0-1deg(4) */ + 3, /* prec01deg(3) */ + 2, /* prec05deg(2) */ + 1, /* prec10deg(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HeadingConfidenceDSRC_specs_1 = { + asn_MAP_HeadingConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HeadingConfidenceDSRC_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidenceDSRC = { + "HeadingConfidenceDSRC", + "HeadingConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_HeadingConfidenceDSRC_tags_1, + sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidenceDSRC_constr_1, &asn_PER_type_HeadingConfidenceDSRC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HeadingConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/HeadingDSRC.c b/vcits/ivim/src/HeadingDSRC.c new file mode 100644 index 0000000..60ce4ed --- /dev/null +++ b/vcits/ivim/src/HeadingDSRC.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "HeadingDSRC.h" + +int +HeadingDSRC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 28800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingDSRC_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingDSRC = { + "HeadingDSRC", + "HeadingDSRC", + &asn_OP_NativeInteger, + asn_DEF_HeadingDSRC_tags_1, + sizeof(asn_DEF_HeadingDSRC_tags_1) + /sizeof(asn_DEF_HeadingDSRC_tags_1[0]), /* 1 */ + asn_DEF_HeadingDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingDSRC_tags_1) + /sizeof(asn_DEF_HeadingDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingDSRC_constr_1, &asn_PER_type_HeadingDSRC_constr_1, HeadingDSRC_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/HeadingValue.c b/vcits/ivim/src/HeadingValue.c new file mode 100644 index 0000000..d0244a5 --- /dev/null +++ b/vcits/ivim/src/HeadingValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "HeadingValue.h" + +int +HeadingValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3601)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3601) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingValue = { + "HeadingValue", + "HeadingValue", + &asn_OP_NativeInteger, + asn_DEF_HeadingValue_tags_1, + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + asn_DEF_HeadingValue_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingValue_constr_1, &asn_PER_type_HeadingValue_constr_1, HeadingValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/HeightLonCarr.c b/vcits/ivim/src/HeightLonCarr.c new file mode 100644 index 0000000..058fa48 --- /dev/null +++ b/vcits/ivim/src/HeightLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "HeightLonCarr.h" + +int +HeightLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..100) */, + -1}; +static asn_per_constraints_t asn_PER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 100 } /* (1..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeightLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeightLonCarr = { + "HeightLonCarr", + "HeightLonCarr", + &asn_OP_NativeInteger, + asn_DEF_HeightLonCarr_tags_1, + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + asn_DEF_HeightLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_HeightLonCarr_constr_1, &asn_PER_type_HeightLonCarr_constr_1, HeightLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/HoursMinutes.c b/vcits/ivim/src/HoursMinutes.c new file mode 100644 index 0000000..a322c3c --- /dev/null +++ b/vcits/ivim/src/HoursMinutes.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "HoursMinutes.h" + +static int +memb_hours_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 23)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_mins_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 59)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_hours_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..23) */, + -1}; +static asn_per_constraints_t asn_PER_memb_hours_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 23 } /* (0..23) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_mins_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..59) */, + -1}; +static asn_per_constraints_t asn_PER_memb_mins_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 59 } /* (0..59) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_HoursMinutes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct HoursMinutes, hours), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_hours_constr_2, &asn_PER_memb_hours_constr_2, memb_hours_constraint_1 }, + 0, 0, /* No default value */ + "hours" + }, + { ATF_NOFLAGS, 0, offsetof(struct HoursMinutes, mins), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_mins_constr_3, &asn_PER_memb_mins_constr_3, memb_mins_constraint_1 }, + 0, 0, /* No default value */ + "mins" + }, +}; +static const ber_tlv_tag_t asn_DEF_HoursMinutes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_HoursMinutes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* hours */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* mins */ +}; +asn_SEQUENCE_specifics_t asn_SPC_HoursMinutes_specs_1 = { + sizeof(struct HoursMinutes), + offsetof(struct HoursMinutes, _asn_ctx), + asn_MAP_HoursMinutes_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_HoursMinutes = { + "HoursMinutes", + "HoursMinutes", + &asn_OP_SEQUENCE, + asn_DEF_HoursMinutes_tags_1, + sizeof(asn_DEF_HoursMinutes_tags_1) + /sizeof(asn_DEF_HoursMinutes_tags_1[0]), /* 1 */ + asn_DEF_HoursMinutes_tags_1, /* Same as above */ + sizeof(asn_DEF_HoursMinutes_tags_1) + /sizeof(asn_DEF_HoursMinutes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_HoursMinutes_1, + 2, /* Elements count */ + &asn_SPC_HoursMinutes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/HumanPresenceOnTheRoadSubCauseCode.c b/vcits/ivim/src/HumanPresenceOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..922d748 --- /dev/null +++ b/vcits/ivim/src/HumanPresenceOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "HumanPresenceOnTheRoadSubCauseCode.h" + +int +HumanPresenceOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode = { + "HumanPresenceOnTheRoadSubCauseCode", + "HumanPresenceOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, HumanPresenceOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/HumanProblemSubCauseCode.c b/vcits/ivim/src/HumanProblemSubCauseCode.c new file mode 100644 index 0000000..a2eb78f --- /dev/null +++ b/vcits/ivim/src/HumanProblemSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "HumanProblemSubCauseCode.h" + +int +HumanProblemSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanProblemSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode = { + "HumanProblemSubCauseCode", + "HumanProblemSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanProblemSubCauseCode_tags_1, + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanProblemSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanProblemSubCauseCode_constr_1, &asn_PER_type_HumanProblemSubCauseCode_constr_1, HumanProblemSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ICC-Id.c b/vcits/ivim/src/ICC-Id.c new file mode 100644 index 0000000..550a057 --- /dev/null +++ b/vcits/ivim/src/ICC-Id.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ICC-Id.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ICC_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ICC_Id = { + "ICC-Id", + "ICC-Id", + &asn_OP_OCTET_STRING, + asn_DEF_ICC_Id_tags_1, + sizeof(asn_DEF_ICC_Id_tags_1) + /sizeof(asn_DEF_ICC_Id_tags_1[0]), /* 1 */ + asn_DEF_ICC_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_ICC_Id_tags_1) + /sizeof(asn_DEF_ICC_Id_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ISO14823Attribute.c b/vcits/ivim/src/ISO14823Attribute.c new file mode 100644 index 0000000..41d9618 --- /dev/null +++ b/vcits/ivim/src/ISO14823Attribute.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ISO14823Attribute.h" + +static asn_oer_constraints_t asn_OER_type_ISO14823Attribute_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ISO14823Attribute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ISO14823Attribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Attribute, choice.dtm), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_applicablePeriod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dtm" + }, + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Attribute, choice.edt), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_exemptedApplicablePeriod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "edt" + }, + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Attribute, choice.dfl), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_directionalFlowOfLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dfl" + }, + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Attribute, choice.ved), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_applicableVehicleDimensions, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ved" + }, + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Attribute, choice.spe), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_speedLimits, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spe" + }, + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Attribute, choice.roi), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_rateOfIncline, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roi" + }, + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Attribute, choice.dbv), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_distanceBetweenVehicles, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dbv" + }, + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Attribute, choice.ddd), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_destinationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ddd" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ISO14823Attribute_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dtm */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* edt */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dfl */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ved */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* spe */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* roi */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dbv */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* ddd */ +}; +asn_CHOICE_specifics_t asn_SPC_ISO14823Attribute_specs_1 = { + sizeof(struct ISO14823Attribute), + offsetof(struct ISO14823Attribute, _asn_ctx), + offsetof(struct ISO14823Attribute, present), + sizeof(((struct ISO14823Attribute *)0)->present), + asn_MAP_ISO14823Attribute_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ISO14823Attribute = { + "ISO14823Attribute", + "ISO14823Attribute", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_ISO14823Attribute_constr_1, &asn_PER_type_ISO14823Attribute_constr_1, CHOICE_constraint }, + asn_MBR_ISO14823Attribute_1, + 8, /* Elements count */ + &asn_SPC_ISO14823Attribute_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ISO14823Attributes.c b/vcits/ivim/src/ISO14823Attributes.c new file mode 100644 index 0000000..4d4544a --- /dev/null +++ b/vcits/ivim/src/ISO14823Attributes.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ISO14823Attributes.h" + +#include "ISO14823Attribute.h" +static asn_oer_constraints_t asn_OER_type_ISO14823Attributes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_ISO14823Attributes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ISO14823Attributes_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ISO14823Attribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ISO14823Attributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ISO14823Attributes_specs_1 = { + sizeof(struct ISO14823Attributes), + offsetof(struct ISO14823Attributes, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ISO14823Attributes = { + "ISO14823Attributes", + "ISO14823Attributes", + &asn_OP_SEQUENCE_OF, + asn_DEF_ISO14823Attributes_tags_1, + sizeof(asn_DEF_ISO14823Attributes_tags_1) + /sizeof(asn_DEF_ISO14823Attributes_tags_1[0]), /* 1 */ + asn_DEF_ISO14823Attributes_tags_1, /* Same as above */ + sizeof(asn_DEF_ISO14823Attributes_tags_1) + /sizeof(asn_DEF_ISO14823Attributes_tags_1[0]), /* 1 */ + { &asn_OER_type_ISO14823Attributes_constr_1, &asn_PER_type_ISO14823Attributes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ISO14823Attributes_1, + 1, /* Single element */ + &asn_SPC_ISO14823Attributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ISO14823Code.c b/vcits/ivim/src/ISO14823Code.c new file mode 100644 index 0000000..eabc9de --- /dev/null +++ b/vcits/ivim/src/ISO14823Code.c @@ -0,0 +1,501 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ISO14823Code.h" + +#include "ISO14823Attributes.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_nature_constraint_18(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 9)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_serialNumber_constraint_18(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 99)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_countryCode_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_trafficSignPictogram_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_trafficSignPictogram_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_publicFacilitiesPictogram_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_publicFacilitiesPictogram_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ambientOrRoadConditionPictogram_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_ambientOrRoadConditionPictogram_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_serviceCategoryCode_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_serviceCategoryCode_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_nature_constr_19 CC_NOTUSED = { + { 1, 1 } /* (1..9) */, + -1}; +static asn_per_constraints_t asn_PER_memb_nature_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 9 } /* (1..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_serialNumber_constr_20 CC_NOTUSED = { + { 1, 1 } /* (0..99) */, + -1}; +static asn_per_constraints_t asn_PER_memb_serialNumber_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 99 } /* (0..99) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_countryCode_constr_3 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_countryCode_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_trafficSignPictogram_value2enum_5[] = { + { 0, 13, "dangerWarning" }, + { 1, 10, "regulatory" }, + { 2, 11, "informative" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_trafficSignPictogram_enum2value_5[] = { + 0, /* dangerWarning(0) */ + 2, /* informative(2) */ + 1 /* regulatory(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_trafficSignPictogram_specs_5 = { + asn_MAP_trafficSignPictogram_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_trafficSignPictogram_enum2value_5, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_trafficSignPictogram_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_trafficSignPictogram_5 = { + "trafficSignPictogram", + "trafficSignPictogram", + &asn_OP_NativeEnumerated, + asn_DEF_trafficSignPictogram_tags_5, + sizeof(asn_DEF_trafficSignPictogram_tags_5) + /sizeof(asn_DEF_trafficSignPictogram_tags_5[0]) - 1, /* 1 */ + asn_DEF_trafficSignPictogram_tags_5, /* Same as above */ + sizeof(asn_DEF_trafficSignPictogram_tags_5) + /sizeof(asn_DEF_trafficSignPictogram_tags_5[0]), /* 2 */ + { &asn_OER_type_trafficSignPictogram_constr_5, &asn_PER_type_trafficSignPictogram_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_trafficSignPictogram_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_publicFacilitiesPictogram_value2enum_10[] = { + { 0, 16, "publicFacilities" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_publicFacilitiesPictogram_enum2value_10[] = { + 0 /* publicFacilities(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_publicFacilitiesPictogram_specs_10 = { + asn_MAP_publicFacilitiesPictogram_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_publicFacilitiesPictogram_enum2value_10, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_publicFacilitiesPictogram_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_publicFacilitiesPictogram_10 = { + "publicFacilitiesPictogram", + "publicFacilitiesPictogram", + &asn_OP_NativeEnumerated, + asn_DEF_publicFacilitiesPictogram_tags_10, + sizeof(asn_DEF_publicFacilitiesPictogram_tags_10) + /sizeof(asn_DEF_publicFacilitiesPictogram_tags_10[0]) - 1, /* 1 */ + asn_DEF_publicFacilitiesPictogram_tags_10, /* Same as above */ + sizeof(asn_DEF_publicFacilitiesPictogram_tags_10) + /sizeof(asn_DEF_publicFacilitiesPictogram_tags_10[0]), /* 2 */ + { &asn_OER_type_publicFacilitiesPictogram_constr_10, &asn_PER_type_publicFacilitiesPictogram_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_publicFacilitiesPictogram_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ambientOrRoadConditionPictogram_value2enum_13[] = { + { 0, 16, "ambientCondition" }, + { 1, 13, "roadCondition" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ambientOrRoadConditionPictogram_enum2value_13[] = { + 0, /* ambientCondition(0) */ + 1 /* roadCondition(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ambientOrRoadConditionPictogram_specs_13 = { + asn_MAP_ambientOrRoadConditionPictogram_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_ambientOrRoadConditionPictogram_enum2value_13, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ambientOrRoadConditionPictogram_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ambientOrRoadConditionPictogram_13 = { + "ambientOrRoadConditionPictogram", + "ambientOrRoadConditionPictogram", + &asn_OP_NativeEnumerated, + asn_DEF_ambientOrRoadConditionPictogram_tags_13, + sizeof(asn_DEF_ambientOrRoadConditionPictogram_tags_13) + /sizeof(asn_DEF_ambientOrRoadConditionPictogram_tags_13[0]) - 1, /* 1 */ + asn_DEF_ambientOrRoadConditionPictogram_tags_13, /* Same as above */ + sizeof(asn_DEF_ambientOrRoadConditionPictogram_tags_13) + /sizeof(asn_DEF_ambientOrRoadConditionPictogram_tags_13[0]), /* 2 */ + { &asn_OER_type_ambientOrRoadConditionPictogram_constr_13, &asn_PER_type_ambientOrRoadConditionPictogram_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ambientOrRoadConditionPictogram_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_serviceCategoryCode_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Code__pictogramCode__serviceCategoryCode, choice.trafficSignPictogram), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_trafficSignPictogram_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trafficSignPictogram" + }, + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Code__pictogramCode__serviceCategoryCode, choice.publicFacilitiesPictogram), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_publicFacilitiesPictogram_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "publicFacilitiesPictogram" + }, + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Code__pictogramCode__serviceCategoryCode, choice.ambientOrRoadConditionPictogram), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ambientOrRoadConditionPictogram_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ambientOrRoadConditionPictogram" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_serviceCategoryCode_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* trafficSignPictogram */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* publicFacilitiesPictogram */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ambientOrRoadConditionPictogram */ +}; +static asn_CHOICE_specifics_t asn_SPC_serviceCategoryCode_specs_4 = { + sizeof(struct ISO14823Code__pictogramCode__serviceCategoryCode), + offsetof(struct ISO14823Code__pictogramCode__serviceCategoryCode, _asn_ctx), + offsetof(struct ISO14823Code__pictogramCode__serviceCategoryCode, present), + sizeof(((struct ISO14823Code__pictogramCode__serviceCategoryCode *)0)->present), + asn_MAP_serviceCategoryCode_tag2el_4, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_serviceCategoryCode_4 = { + "serviceCategoryCode", + "serviceCategoryCode", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_serviceCategoryCode_constr_4, &asn_PER_type_serviceCategoryCode_constr_4, CHOICE_constraint }, + asn_MBR_serviceCategoryCode_4, + 3, /* Elements count */ + &asn_SPC_serviceCategoryCode_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pictogramCategoryCode_18[] = { + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Code__pictogramCode__pictogramCategoryCode, nature), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nature_constr_19, &asn_PER_memb_nature_constr_19, memb_nature_constraint_18 }, + 0, 0, /* No default value */ + "nature" + }, + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Code__pictogramCode__pictogramCategoryCode, serialNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_serialNumber_constr_20, &asn_PER_memb_serialNumber_constr_20, memb_serialNumber_constraint_18 }, + 0, 0, /* No default value */ + "serialNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_pictogramCategoryCode_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_pictogramCategoryCode_tag2el_18[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nature */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* serialNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_pictogramCategoryCode_specs_18 = { + sizeof(struct ISO14823Code__pictogramCode__pictogramCategoryCode), + offsetof(struct ISO14823Code__pictogramCode__pictogramCategoryCode, _asn_ctx), + asn_MAP_pictogramCategoryCode_tag2el_18, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_pictogramCategoryCode_18 = { + "pictogramCategoryCode", + "pictogramCategoryCode", + &asn_OP_SEQUENCE, + asn_DEF_pictogramCategoryCode_tags_18, + sizeof(asn_DEF_pictogramCategoryCode_tags_18) + /sizeof(asn_DEF_pictogramCategoryCode_tags_18[0]) - 1, /* 1 */ + asn_DEF_pictogramCategoryCode_tags_18, /* Same as above */ + sizeof(asn_DEF_pictogramCategoryCode_tags_18) + /sizeof(asn_DEF_pictogramCategoryCode_tags_18[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_pictogramCategoryCode_18, + 2, /* Elements count */ + &asn_SPC_pictogramCategoryCode_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pictogramCode_2[] = { + { ATF_POINTER, 1, offsetof(struct ISO14823Code__pictogramCode, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_countryCode_constr_3, &asn_PER_memb_countryCode_constr_3, memb_countryCode_constraint_2 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Code__pictogramCode, serviceCategoryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_serviceCategoryCode_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceCategoryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Code__pictogramCode, pictogramCategoryCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_pictogramCategoryCode_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pictogramCategoryCode" + }, +}; +static const int asn_MAP_pictogramCode_oms_2[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_pictogramCode_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_pictogramCode_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serviceCategoryCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pictogramCategoryCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_pictogramCode_specs_2 = { + sizeof(struct ISO14823Code__pictogramCode), + offsetof(struct ISO14823Code__pictogramCode, _asn_ctx), + asn_MAP_pictogramCode_tag2el_2, + 3, /* Count of tags in the map */ + asn_MAP_pictogramCode_oms_2, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_pictogramCode_2 = { + "pictogramCode", + "pictogramCode", + &asn_OP_SEQUENCE, + asn_DEF_pictogramCode_tags_2, + sizeof(asn_DEF_pictogramCode_tags_2) + /sizeof(asn_DEF_pictogramCode_tags_2[0]) - 1, /* 1 */ + asn_DEF_pictogramCode_tags_2, /* Same as above */ + sizeof(asn_DEF_pictogramCode_tags_2) + /sizeof(asn_DEF_pictogramCode_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_pictogramCode_2, + 3, /* Elements count */ + &asn_SPC_pictogramCode_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ISO14823Code_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ISO14823Code, pictogramCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_pictogramCode_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pictogramCode" + }, + { ATF_POINTER, 1, offsetof(struct ISO14823Code, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ISO14823Attributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_ISO14823Code_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ISO14823Code_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ISO14823Code_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pictogramCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ISO14823Code_specs_1 = { + sizeof(struct ISO14823Code), + offsetof(struct ISO14823Code, _asn_ctx), + asn_MAP_ISO14823Code_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ISO14823Code_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ISO14823Code = { + "ISO14823Code", + "ISO14823Code", + &asn_OP_SEQUENCE, + asn_DEF_ISO14823Code_tags_1, + sizeof(asn_DEF_ISO14823Code_tags_1) + /sizeof(asn_DEF_ISO14823Code_tags_1[0]), /* 1 */ + asn_DEF_ISO14823Code_tags_1, /* Same as above */ + sizeof(asn_DEF_ISO14823Code_tags_1) + /sizeof(asn_DEF_ISO14823Code_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ISO14823Code_1, + 2, /* Elements count */ + &asn_SPC_ISO14823Code_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ITS-Container_StationType.c b/vcits/ivim/src/ITS-Container_StationType.c new file mode 100644 index 0000000..75894ee --- /dev/null +++ b/vcits/ivim/src/ITS-Container_StationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ITS-Container_StationType.h" + +int +ITS_Container_StationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ITS_Container_StationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_ITS_Container_StationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ITS_Container_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ITS_Container_StationType = { + "StationType", + "StationType", + &asn_OP_NativeInteger, + asn_DEF_ITS_Container_StationType_tags_1, + sizeof(asn_DEF_ITS_Container_StationType_tags_1) + /sizeof(asn_DEF_ITS_Container_StationType_tags_1[0]), /* 1 */ + asn_DEF_ITS_Container_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_ITS_Container_StationType_tags_1) + /sizeof(asn_DEF_ITS_Container_StationType_tags_1[0]), /* 1 */ + { &asn_OER_type_ITS_Container_StationType_constr_1, &asn_PER_type_ITS_Container_StationType_constr_1, ITS_Container_StationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ITS-Container_Temperature.c b/vcits/ivim/src/ITS-Container_Temperature.c new file mode 100644 index 0000000..1337b22 --- /dev/null +++ b/vcits/ivim/src/ITS-Container_Temperature.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ITS-Container_Temperature.h" + +int +ITS_Container_Temperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -60 && value <= 67)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ITS_Container_Temperature_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-60..67) */, + -1}; +static asn_per_constraints_t asn_PER_type_ITS_Container_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 67 } /* (-60..67) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ITS_Container_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ITS_Container_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_ITS_Container_Temperature_tags_1, + sizeof(asn_DEF_ITS_Container_Temperature_tags_1) + /sizeof(asn_DEF_ITS_Container_Temperature_tags_1[0]), /* 1 */ + asn_DEF_ITS_Container_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_ITS_Container_Temperature_tags_1) + /sizeof(asn_DEF_ITS_Container_Temperature_tags_1[0]), /* 1 */ + { &asn_OER_type_ITS_Container_Temperature_constr_1, &asn_PER_type_ITS_Container_Temperature_constr_1, ITS_Container_Temperature_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/IVIM.c b/vcits/ivim/src/IVIM.c new file mode 100644 index 0000000..5354547 --- /dev/null +++ b/vcits/ivim/src/IVIM.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVIM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/IVIM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IVIM.h" + +static asn_TYPE_member_t asn_MBR_IVIM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct IVIM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsPduHeader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct IVIM, ivi), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IviStructure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ivi" + }, +}; +static const ber_tlv_tag_t asn_DEF_IVIM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IVIM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ivi */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_IVIM_specs_1 = { + sizeof(struct IVIM), + offsetof(struct IVIM, _asn_ctx), + asn_MAP_IVIM_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IVIM = { + "IVIM", + "IVIM", + &asn_OP_SEQUENCE, + asn_DEF_IVIM_tags_1, + sizeof(asn_DEF_IVIM_tags_1) + /sizeof(asn_DEF_IVIM_tags_1[0]), /* 1 */ + asn_DEF_IVIM_tags_1, /* Same as above */ + sizeof(asn_DEF_IVIM_tags_1) + /sizeof(asn_DEF_IVIM_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IVIM_1, + 2, /* Elements count */ + &asn_SPC_IVIM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IVI_DriverCharacteristics.c b/vcits/ivim/src/IVI_DriverCharacteristics.c new file mode 100644 index 0000000..aa27216 --- /dev/null +++ b/vcits/ivim/src/IVI_DriverCharacteristics.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IVI_DriverCharacteristics.h" + +int +IVI_DriverCharacteristics_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IVI_DriverCharacteristics_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +asn_per_constraints_t asn_PER_type_IVI_DriverCharacteristics_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IVI_DriverCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IVI_DriverCharacteristics = { + "DriverCharacteristics", + "DriverCharacteristics", + &asn_OP_NativeInteger, + asn_DEF_IVI_DriverCharacteristics_tags_1, + sizeof(asn_DEF_IVI_DriverCharacteristics_tags_1) + /sizeof(asn_DEF_IVI_DriverCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_IVI_DriverCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_IVI_DriverCharacteristics_tags_1) + /sizeof(asn_DEF_IVI_DriverCharacteristics_tags_1[0]), /* 1 */ + { &asn_OER_type_IVI_DriverCharacteristics_constr_1, &asn_PER_type_IVI_DriverCharacteristics_constr_1, IVI_DriverCharacteristics_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/IVI_Temperature.c b/vcits/ivim/src/IVI_Temperature.c new file mode 100644 index 0000000..666c369 --- /dev/null +++ b/vcits/ivim/src/IVI_Temperature.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IVI_Temperature.h" + +int +IVI_Temperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -100 && value <= 151)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IVI_Temperature_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-100..151) */, + -1}; +asn_per_constraints_t asn_PER_type_IVI_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -100, 151 } /* (-100..151) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IVI_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IVI_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_IVI_Temperature_tags_1, + sizeof(asn_DEF_IVI_Temperature_tags_1) + /sizeof(asn_DEF_IVI_Temperature_tags_1[0]), /* 1 */ + asn_DEF_IVI_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_IVI_Temperature_tags_1) + /sizeof(asn_DEF_IVI_Temperature_tags_1[0]), /* 1 */ + { &asn_OER_type_IVI_Temperature_constr_1, &asn_PER_type_IVI_Temperature_constr_1, IVI_Temperature_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/IVI_TrailerCharacteristics.c b/vcits/ivim/src/IVI_TrailerCharacteristics.c new file mode 100644 index 0000000..13fc817 --- /dev/null +++ b/vcits/ivim/src/IVI_TrailerCharacteristics.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IVI_TrailerCharacteristics.h" + +#include "TrailerCharacteristicsFixValuesList.h" +#include "TrailerCharacteristicsRangesList.h" +asn_TYPE_member_t asn_MBR_IVI_TrailerCharacteristics_1[] = { + { ATF_POINTER, 3, offsetof(struct IVI_TrailerCharacteristics, equalTo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerCharacteristicsFixValuesList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "equalTo" + }, + { ATF_POINTER, 2, offsetof(struct IVI_TrailerCharacteristics, notEqualTo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerCharacteristicsFixValuesList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "notEqualTo" + }, + { ATF_POINTER, 1, offsetof(struct IVI_TrailerCharacteristics, ranges), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerCharacteristicsRangesList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranges" + }, +}; +static const int asn_MAP_IVI_TrailerCharacteristics_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_IVI_TrailerCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IVI_TrailerCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* equalTo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* notEqualTo */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ranges */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IVI_TrailerCharacteristics_specs_1 = { + sizeof(struct IVI_TrailerCharacteristics), + offsetof(struct IVI_TrailerCharacteristics, _asn_ctx), + asn_MAP_IVI_TrailerCharacteristics_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_IVI_TrailerCharacteristics_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IVI_TrailerCharacteristics = { + "TrailerCharacteristics", + "TrailerCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_IVI_TrailerCharacteristics_tags_1, + sizeof(asn_DEF_IVI_TrailerCharacteristics_tags_1) + /sizeof(asn_DEF_IVI_TrailerCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_IVI_TrailerCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_IVI_TrailerCharacteristics_tags_1) + /sizeof(asn_DEF_IVI_TrailerCharacteristics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IVI_TrailerCharacteristics_1, + 3, /* Elements count */ + &asn_SPC_IVI_TrailerCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/InformationQuality.c b/vcits/ivim/src/InformationQuality.c new file mode 100644 index 0000000..fcee0f9 --- /dev/null +++ b/vcits/ivim/src/InformationQuality.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "InformationQuality.h" + +int +InformationQuality_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_InformationQuality_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_InformationQuality_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_InformationQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InformationQuality = { + "InformationQuality", + "InformationQuality", + &asn_OP_NativeInteger, + asn_DEF_InformationQuality_tags_1, + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + asn_DEF_InformationQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + { &asn_OER_type_InformationQuality_constr_1, &asn_PER_type_InformationQuality_constr_1, InformationQuality_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Int1.c b/vcits/ivim/src/Int1.c new file mode 100644 index 0000000..1f29af7 --- /dev/null +++ b/vcits/ivim/src/Int1.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Int1.h" + +int +Int1_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Int1_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Int1_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Int1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Int1 = { + "Int1", + "Int1", + &asn_OP_NativeInteger, + asn_DEF_Int1_tags_1, + sizeof(asn_DEF_Int1_tags_1) + /sizeof(asn_DEF_Int1_tags_1[0]), /* 1 */ + asn_DEF_Int1_tags_1, /* Same as above */ + sizeof(asn_DEF_Int1_tags_1) + /sizeof(asn_DEF_Int1_tags_1[0]), /* 1 */ + { &asn_OER_type_Int1_constr_1, &asn_PER_type_Int1_constr_1, Int1_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Int2.c b/vcits/ivim/src/Int2.c new file mode 100644 index 0000000..11c2d91 --- /dev/null +++ b/vcits/ivim/src/Int2.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Int2.h" + +int +Int2_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Int2_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_Int2_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Int2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Int2 = { + "Int2", + "Int2", + &asn_OP_NativeInteger, + asn_DEF_Int2_tags_1, + sizeof(asn_DEF_Int2_tags_1) + /sizeof(asn_DEF_Int2_tags_1[0]), /* 1 */ + asn_DEF_Int2_tags_1, /* Same as above */ + sizeof(asn_DEF_Int2_tags_1) + /sizeof(asn_DEF_Int2_tags_1[0]), /* 1 */ + { &asn_OER_type_Int2_constr_1, &asn_PER_type_Int2_constr_1, Int2_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Int3.c b/vcits/ivim/src/Int3.c new file mode 100644 index 0000000..6733c32 --- /dev/null +++ b/vcits/ivim/src/Int3.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Int3.h" + +int +Int3_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16777215)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Int3_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..16777215) */, + -1}; +asn_per_constraints_t asn_PER_type_Int3_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 24, -1, 0, 16777215 } /* (0..16777215) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Int3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Int3 = { + "Int3", + "Int3", + &asn_OP_NativeInteger, + asn_DEF_Int3_tags_1, + sizeof(asn_DEF_Int3_tags_1) + /sizeof(asn_DEF_Int3_tags_1[0]), /* 1 */ + asn_DEF_Int3_tags_1, /* Same as above */ + sizeof(asn_DEF_Int3_tags_1) + /sizeof(asn_DEF_Int3_tags_1[0]), /* 1 */ + { &asn_OER_type_Int3_constr_1, &asn_PER_type_Int3_constr_1, Int3_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Int4.c b/vcits/ivim/src/Int4.c new file mode 100644 index 0000000..ad64520 --- /dev/null +++ b/vcits/ivim/src/Int4.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Int4.h" + +int +Int4_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Int4_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +asn_per_constraints_t asn_PER_type_Int4_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +const asn_INTEGER_specifics_t asn_SPC_Int4_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_Int4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Int4 = { + "Int4", + "Int4", + &asn_OP_NativeInteger, + asn_DEF_Int4_tags_1, + sizeof(asn_DEF_Int4_tags_1) + /sizeof(asn_DEF_Int4_tags_1[0]), /* 1 */ + asn_DEF_Int4_tags_1, /* Same as above */ + sizeof(asn_DEF_Int4_tags_1) + /sizeof(asn_DEF_Int4_tags_1[0]), /* 1 */ + { &asn_OER_type_Int4_constr_1, &asn_PER_type_Int4_constr_1, Int4_constraint }, + 0, 0, /* No members */ + &asn_SPC_Int4_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/InternationalSign-applicablePeriod.c b/vcits/ivim/src/InternationalSign-applicablePeriod.c new file mode 100644 index 0000000..65fd575 --- /dev/null +++ b/vcits/ivim/src/InternationalSign-applicablePeriod.c @@ -0,0 +1,328 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "InternationalSign-applicablePeriod.h" + +#include "HoursMinutes.h" +static int +memb_yearRangeStartYear_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 2000 && value <= 2127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_yearRangeEndYear_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 2000 && value <= 2127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_yearRangeStartYear_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_yearRangeStartYear_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 2000, 2127 } /* (2000..2127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_yearRangeEndYear_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_yearRangeEndYear_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 2000, 2127 } /* (2000..2127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_year_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct InternationalSign_applicablePeriod__year, yearRangeStartYear), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_yearRangeStartYear_constr_3, &asn_PER_memb_yearRangeStartYear_constr_3, memb_yearRangeStartYear_constraint_2 }, + 0, 0, /* No default value */ + "yearRangeStartYear" + }, + { ATF_NOFLAGS, 0, offsetof(struct InternationalSign_applicablePeriod__year, yearRangeEndYear), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_yearRangeEndYear_constr_4, &asn_PER_memb_yearRangeEndYear_constr_4, memb_yearRangeEndYear_constraint_2 }, + 0, 0, /* No default value */ + "yearRangeEndYear" + }, +}; +static const ber_tlv_tag_t asn_DEF_year_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_year_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yearRangeStartYear */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* yearRangeEndYear */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_year_specs_2 = { + sizeof(struct InternationalSign_applicablePeriod__year), + offsetof(struct InternationalSign_applicablePeriod__year, _asn_ctx), + asn_MAP_year_tag2el_2, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_year_2 = { + "year", + "year", + &asn_OP_SEQUENCE, + asn_DEF_year_tags_2, + sizeof(asn_DEF_year_tags_2) + /sizeof(asn_DEF_year_tags_2[0]) - 1, /* 1 */ + asn_DEF_year_tags_2, /* Same as above */ + sizeof(asn_DEF_year_tags_2) + /sizeof(asn_DEF_year_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_year_2, + 2, /* Elements count */ + &asn_SPC_year_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_month_day_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct InternationalSign_applicablePeriod__month_day, dateRangeStartMonthDay), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MonthDay, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dateRangeStartMonthDay" + }, + { ATF_NOFLAGS, 0, offsetof(struct InternationalSign_applicablePeriod__month_day, dateRangeEndMonthDay), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MonthDay, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dateRangeEndMonthDay" + }, +}; +static const ber_tlv_tag_t asn_DEF_month_day_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_month_day_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dateRangeStartMonthDay */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* dateRangeEndMonthDay */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_month_day_specs_5 = { + sizeof(struct InternationalSign_applicablePeriod__month_day), + offsetof(struct InternationalSign_applicablePeriod__month_day, _asn_ctx), + asn_MAP_month_day_tag2el_5, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_month_day_5 = { + "month-day", + "month-day", + &asn_OP_SEQUENCE, + asn_DEF_month_day_tags_5, + sizeof(asn_DEF_month_day_tags_5) + /sizeof(asn_DEF_month_day_tags_5[0]) - 1, /* 1 */ + asn_DEF_month_day_tags_5, /* Same as above */ + sizeof(asn_DEF_month_day_tags_5) + /sizeof(asn_DEF_month_day_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_month_day_5, + 2, /* Elements count */ + &asn_SPC_month_day_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_hourMinutes_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct InternationalSign_applicablePeriod__hourMinutes, timeRangeStartTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HoursMinutes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeRangeStartTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct InternationalSign_applicablePeriod__hourMinutes, timeRangeEndTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HoursMinutes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeRangeEndTime" + }, +}; +static const ber_tlv_tag_t asn_DEF_hourMinutes_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_hourMinutes_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeRangeStartTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* timeRangeEndTime */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_hourMinutes_specs_9 = { + sizeof(struct InternationalSign_applicablePeriod__hourMinutes), + offsetof(struct InternationalSign_applicablePeriod__hourMinutes, _asn_ctx), + asn_MAP_hourMinutes_tag2el_9, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_hourMinutes_9 = { + "hourMinutes", + "hourMinutes", + &asn_OP_SEQUENCE, + asn_DEF_hourMinutes_tags_9, + sizeof(asn_DEF_hourMinutes_tags_9) + /sizeof(asn_DEF_hourMinutes_tags_9[0]) - 1, /* 1 */ + asn_DEF_hourMinutes_tags_9, /* Same as above */ + sizeof(asn_DEF_hourMinutes_tags_9) + /sizeof(asn_DEF_hourMinutes_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_hourMinutes_9, + 2, /* Elements count */ + &asn_SPC_hourMinutes_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_InternationalSign_applicablePeriod_1[] = { + { ATF_POINTER, 6, offsetof(struct InternationalSign_applicablePeriod, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_year_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "year" + }, + { ATF_POINTER, 5, offsetof(struct InternationalSign_applicablePeriod, month_day), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_month_day_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "month-day" + }, + { ATF_POINTER, 4, offsetof(struct InternationalSign_applicablePeriod, repeatingPeriodDayTypes), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RepeatingPeriodDayTypes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "repeatingPeriodDayTypes" + }, + { ATF_POINTER, 3, offsetof(struct InternationalSign_applicablePeriod, hourMinutes), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_hourMinutes_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hourMinutes" + }, + { ATF_POINTER, 2, offsetof(struct InternationalSign_applicablePeriod, dateRangeOfWeek), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DayOfWeek, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dateRangeOfWeek" + }, + { ATF_POINTER, 1, offsetof(struct InternationalSign_applicablePeriod, durationHourMinute), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HoursMinutes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "durationHourMinute" + }, +}; +static const int asn_MAP_InternationalSign_applicablePeriod_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_InternationalSign_applicablePeriod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InternationalSign_applicablePeriod_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month-day */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* repeatingPeriodDayTypes */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hourMinutes */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dateRangeOfWeek */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* durationHourMinute */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InternationalSign_applicablePeriod_specs_1 = { + sizeof(struct InternationalSign_applicablePeriod), + offsetof(struct InternationalSign_applicablePeriod, _asn_ctx), + asn_MAP_InternationalSign_applicablePeriod_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_InternationalSign_applicablePeriod_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_InternationalSign_applicablePeriod = { + "InternationalSign-applicablePeriod", + "InternationalSign-applicablePeriod", + &asn_OP_SEQUENCE, + asn_DEF_InternationalSign_applicablePeriod_tags_1, + sizeof(asn_DEF_InternationalSign_applicablePeriod_tags_1) + /sizeof(asn_DEF_InternationalSign_applicablePeriod_tags_1[0]), /* 1 */ + asn_DEF_InternationalSign_applicablePeriod_tags_1, /* Same as above */ + sizeof(asn_DEF_InternationalSign_applicablePeriod_tags_1) + /sizeof(asn_DEF_InternationalSign_applicablePeriod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_InternationalSign_applicablePeriod_1, + 6, /* Elements count */ + &asn_SPC_InternationalSign_applicablePeriod_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/InternationalSign-applicableVehicleDimensions.c b/vcits/ivim/src/InternationalSign-applicableVehicleDimensions.c new file mode 100644 index 0000000..b8595a9 --- /dev/null +++ b/vcits/ivim/src/InternationalSign-applicableVehicleDimensions.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "InternationalSign-applicableVehicleDimensions.h" + +#include "Distance.h" +#include "Weight.h" +asn_TYPE_member_t asn_MBR_InternationalSign_applicableVehicleDimensions_1[] = { + { ATF_POINTER, 4, offsetof(struct InternationalSign_applicableVehicleDimensions, vehicleHeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Distance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleHeight" + }, + { ATF_POINTER, 3, offsetof(struct InternationalSign_applicableVehicleDimensions, vehicleWidth), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Distance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleWidth" + }, + { ATF_POINTER, 2, offsetof(struct InternationalSign_applicableVehicleDimensions, vehicleLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Distance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLength" + }, + { ATF_POINTER, 1, offsetof(struct InternationalSign_applicableVehicleDimensions, vehicleWeight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Weight, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleWeight" + }, +}; +static const int asn_MAP_InternationalSign_applicableVehicleDimensions_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_InternationalSign_applicableVehicleDimensions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InternationalSign_applicableVehicleDimensions_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleHeight */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* vehicleWidth */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* vehicleLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* vehicleWeight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InternationalSign_applicableVehicleDimensions_specs_1 = { + sizeof(struct InternationalSign_applicableVehicleDimensions), + offsetof(struct InternationalSign_applicableVehicleDimensions, _asn_ctx), + asn_MAP_InternationalSign_applicableVehicleDimensions_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_InternationalSign_applicableVehicleDimensions_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_InternationalSign_applicableVehicleDimensions = { + "InternationalSign-applicableVehicleDimensions", + "InternationalSign-applicableVehicleDimensions", + &asn_OP_SEQUENCE, + asn_DEF_InternationalSign_applicableVehicleDimensions_tags_1, + sizeof(asn_DEF_InternationalSign_applicableVehicleDimensions_tags_1) + /sizeof(asn_DEF_InternationalSign_applicableVehicleDimensions_tags_1[0]), /* 1 */ + asn_DEF_InternationalSign_applicableVehicleDimensions_tags_1, /* Same as above */ + sizeof(asn_DEF_InternationalSign_applicableVehicleDimensions_tags_1) + /sizeof(asn_DEF_InternationalSign_applicableVehicleDimensions_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_InternationalSign_applicableVehicleDimensions_1, + 4, /* Elements count */ + &asn_SPC_InternationalSign_applicableVehicleDimensions_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/InternationalSign-destinationInformation.c b/vcits/ivim/src/InternationalSign-destinationInformation.c new file mode 100644 index 0000000..e23b8c5 --- /dev/null +++ b/vcits/ivim/src/InternationalSign-destinationInformation.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "InternationalSign-destinationInformation.h" + +#include "DDD-IO-LIST.h" +static int +memb_junctionDirection_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 128)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_roundaboutCwDirection_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 128)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_roundaboutCcwDirection_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 128)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_junctionDirection_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..128) */, + -1}; +static asn_per_constraints_t asn_PER_memb_junctionDirection_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 128 } /* (1..128) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_roundaboutCwDirection_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..128) */, + -1}; +static asn_per_constraints_t asn_PER_memb_roundaboutCwDirection_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 128 } /* (1..128) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_roundaboutCcwDirection_constr_4 CC_NOTUSED = { + { 1, 1 } /* (1..128) */, + -1}; +static asn_per_constraints_t asn_PER_memb_roundaboutCcwDirection_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 128 } /* (1..128) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_InternationalSign_destinationInformation_1[] = { + { ATF_POINTER, 3, offsetof(struct InternationalSign_destinationInformation, junctionDirection), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_junctionDirection_constr_2, &asn_PER_memb_junctionDirection_constr_2, memb_junctionDirection_constraint_1 }, + 0, 0, /* No default value */ + "junctionDirection" + }, + { ATF_POINTER, 2, offsetof(struct InternationalSign_destinationInformation, roundaboutCwDirection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_roundaboutCwDirection_constr_3, &asn_PER_memb_roundaboutCwDirection_constr_3, memb_roundaboutCwDirection_constraint_1 }, + 0, 0, /* No default value */ + "roundaboutCwDirection" + }, + { ATF_POINTER, 1, offsetof(struct InternationalSign_destinationInformation, roundaboutCcwDirection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_roundaboutCcwDirection_constr_4, &asn_PER_memb_roundaboutCcwDirection_constr_4, memb_roundaboutCcwDirection_constraint_1 }, + 0, 0, /* No default value */ + "roundaboutCcwDirection" + }, + { ATF_POINTER, 0, offsetof(struct InternationalSign_destinationInformation, ioList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDD_IO_LIST, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ioList" + }, +}; +static const int asn_MAP_InternationalSign_destinationInformation_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_InternationalSign_destinationInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InternationalSign_destinationInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* junctionDirection */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* roundaboutCwDirection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* roundaboutCcwDirection */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ioList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InternationalSign_destinationInformation_specs_1 = { + sizeof(struct InternationalSign_destinationInformation), + offsetof(struct InternationalSign_destinationInformation, _asn_ctx), + asn_MAP_InternationalSign_destinationInformation_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_InternationalSign_destinationInformation_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_InternationalSign_destinationInformation = { + "InternationalSign-destinationInformation", + "InternationalSign-destinationInformation", + &asn_OP_SEQUENCE, + asn_DEF_InternationalSign_destinationInformation_tags_1, + sizeof(asn_DEF_InternationalSign_destinationInformation_tags_1) + /sizeof(asn_DEF_InternationalSign_destinationInformation_tags_1[0]), /* 1 */ + asn_DEF_InternationalSign_destinationInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_InternationalSign_destinationInformation_tags_1) + /sizeof(asn_DEF_InternationalSign_destinationInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_InternationalSign_destinationInformation_1, + 4, /* Elements count */ + &asn_SPC_InternationalSign_destinationInformation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/InternationalSign-directionalFlowOfLane.c b/vcits/ivim/src/InternationalSign-directionalFlowOfLane.c new file mode 100644 index 0000000..ec7711a --- /dev/null +++ b/vcits/ivim/src/InternationalSign-directionalFlowOfLane.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "InternationalSign-directionalFlowOfLane.h" + +int +InternationalSign_directionalFlowOfLane_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_InternationalSign_directionalFlowOfLane_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +asn_per_constraints_t asn_PER_type_InternationalSign_directionalFlowOfLane_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_InternationalSign_directionalFlowOfLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InternationalSign_directionalFlowOfLane = { + "InternationalSign-directionalFlowOfLane", + "InternationalSign-directionalFlowOfLane", + &asn_OP_NativeInteger, + asn_DEF_InternationalSign_directionalFlowOfLane_tags_1, + sizeof(asn_DEF_InternationalSign_directionalFlowOfLane_tags_1) + /sizeof(asn_DEF_InternationalSign_directionalFlowOfLane_tags_1[0]), /* 1 */ + asn_DEF_InternationalSign_directionalFlowOfLane_tags_1, /* Same as above */ + sizeof(asn_DEF_InternationalSign_directionalFlowOfLane_tags_1) + /sizeof(asn_DEF_InternationalSign_directionalFlowOfLane_tags_1[0]), /* 1 */ + { &asn_OER_type_InternationalSign_directionalFlowOfLane_constr_1, &asn_PER_type_InternationalSign_directionalFlowOfLane_constr_1, InternationalSign_directionalFlowOfLane_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/InternationalSign-distanceBetweenVehicles.c b/vcits/ivim/src/InternationalSign-distanceBetweenVehicles.c new file mode 100644 index 0000000..1ca5c5e --- /dev/null +++ b/vcits/ivim/src/InternationalSign-distanceBetweenVehicles.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "InternationalSign-distanceBetweenVehicles.h" + +/* + * This type is implemented using Distance, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_InternationalSign_distanceBetweenVehicles_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InternationalSign_distanceBetweenVehicles = { + "InternationalSign-distanceBetweenVehicles", + "InternationalSign-distanceBetweenVehicles", + &asn_OP_SEQUENCE, + asn_DEF_InternationalSign_distanceBetweenVehicles_tags_1, + sizeof(asn_DEF_InternationalSign_distanceBetweenVehicles_tags_1) + /sizeof(asn_DEF_InternationalSign_distanceBetweenVehicles_tags_1[0]), /* 1 */ + asn_DEF_InternationalSign_distanceBetweenVehicles_tags_1, /* Same as above */ + sizeof(asn_DEF_InternationalSign_distanceBetweenVehicles_tags_1) + /sizeof(asn_DEF_InternationalSign_distanceBetweenVehicles_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Distance_1, + 2, /* Elements count */ + &asn_SPC_Distance_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/InternationalSign-exemptedApplicablePeriod.c b/vcits/ivim/src/InternationalSign-exemptedApplicablePeriod.c new file mode 100644 index 0000000..5c388fa --- /dev/null +++ b/vcits/ivim/src/InternationalSign-exemptedApplicablePeriod.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "InternationalSign-exemptedApplicablePeriod.h" + +/* + * This type is implemented using InternationalSign_applicablePeriod, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_InternationalSign_exemptedApplicablePeriod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InternationalSign_exemptedApplicablePeriod = { + "InternationalSign-exemptedApplicablePeriod", + "InternationalSign-exemptedApplicablePeriod", + &asn_OP_SEQUENCE, + asn_DEF_InternationalSign_exemptedApplicablePeriod_tags_1, + sizeof(asn_DEF_InternationalSign_exemptedApplicablePeriod_tags_1) + /sizeof(asn_DEF_InternationalSign_exemptedApplicablePeriod_tags_1[0]), /* 1 */ + asn_DEF_InternationalSign_exemptedApplicablePeriod_tags_1, /* Same as above */ + sizeof(asn_DEF_InternationalSign_exemptedApplicablePeriod_tags_1) + /sizeof(asn_DEF_InternationalSign_exemptedApplicablePeriod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_InternationalSign_applicablePeriod_1, + 6, /* Elements count */ + &asn_SPC_InternationalSign_applicablePeriod_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/InternationalSign-numberOfLane.c b/vcits/ivim/src/InternationalSign-numberOfLane.c new file mode 100644 index 0000000..ad3539b --- /dev/null +++ b/vcits/ivim/src/InternationalSign-numberOfLane.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "InternationalSign-numberOfLane.h" + +int +InternationalSign_numberOfLane_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 99)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_InternationalSign_numberOfLane_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..99) */, + -1}; +asn_per_constraints_t asn_PER_type_InternationalSign_numberOfLane_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 99 } /* (0..99) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_InternationalSign_numberOfLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InternationalSign_numberOfLane = { + "InternationalSign-numberOfLane", + "InternationalSign-numberOfLane", + &asn_OP_NativeInteger, + asn_DEF_InternationalSign_numberOfLane_tags_1, + sizeof(asn_DEF_InternationalSign_numberOfLane_tags_1) + /sizeof(asn_DEF_InternationalSign_numberOfLane_tags_1[0]), /* 1 */ + asn_DEF_InternationalSign_numberOfLane_tags_1, /* Same as above */ + sizeof(asn_DEF_InternationalSign_numberOfLane_tags_1) + /sizeof(asn_DEF_InternationalSign_numberOfLane_tags_1[0]), /* 1 */ + { &asn_OER_type_InternationalSign_numberOfLane_constr_1, &asn_PER_type_InternationalSign_numberOfLane_constr_1, InternationalSign_numberOfLane_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/InternationalSign-rateOfIncline.c b/vcits/ivim/src/InternationalSign-rateOfIncline.c new file mode 100644 index 0000000..ace5a2d --- /dev/null +++ b/vcits/ivim/src/InternationalSign-rateOfIncline.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "InternationalSign-rateOfIncline.h" + +int +InternationalSign_rateOfIncline_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 32)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_InternationalSign_rateOfIncline_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..32) */, + -1}; +asn_per_constraints_t asn_PER_type_InternationalSign_rateOfIncline_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (1..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_InternationalSign_rateOfIncline_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InternationalSign_rateOfIncline = { + "InternationalSign-rateOfIncline", + "InternationalSign-rateOfIncline", + &asn_OP_NativeInteger, + asn_DEF_InternationalSign_rateOfIncline_tags_1, + sizeof(asn_DEF_InternationalSign_rateOfIncline_tags_1) + /sizeof(asn_DEF_InternationalSign_rateOfIncline_tags_1[0]), /* 1 */ + asn_DEF_InternationalSign_rateOfIncline_tags_1, /* Same as above */ + sizeof(asn_DEF_InternationalSign_rateOfIncline_tags_1) + /sizeof(asn_DEF_InternationalSign_rateOfIncline_tags_1[0]), /* 1 */ + { &asn_OER_type_InternationalSign_rateOfIncline_constr_1, &asn_PER_type_InternationalSign_rateOfIncline_constr_1, InternationalSign_rateOfIncline_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/InternationalSign-section.c b/vcits/ivim/src/InternationalSign-section.c new file mode 100644 index 0000000..eb2ae0e --- /dev/null +++ b/vcits/ivim/src/InternationalSign-section.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "InternationalSign-section.h" + +#include "Distance.h" +asn_TYPE_member_t asn_MBR_InternationalSign_section_1[] = { + { ATF_POINTER, 2, offsetof(struct InternationalSign_section, startingPointLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Distance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startingPointLength" + }, + { ATF_POINTER, 1, offsetof(struct InternationalSign_section, continuityLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Distance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "continuityLength" + }, +}; +static const int asn_MAP_InternationalSign_section_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_InternationalSign_section_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InternationalSign_section_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startingPointLength */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* continuityLength */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InternationalSign_section_specs_1 = { + sizeof(struct InternationalSign_section), + offsetof(struct InternationalSign_section, _asn_ctx), + asn_MAP_InternationalSign_section_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_InternationalSign_section_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_InternationalSign_section = { + "InternationalSign-section", + "InternationalSign-section", + &asn_OP_SEQUENCE, + asn_DEF_InternationalSign_section_tags_1, + sizeof(asn_DEF_InternationalSign_section_tags_1) + /sizeof(asn_DEF_InternationalSign_section_tags_1[0]), /* 1 */ + asn_DEF_InternationalSign_section_tags_1, /* Same as above */ + sizeof(asn_DEF_InternationalSign_section_tags_1) + /sizeof(asn_DEF_InternationalSign_section_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_InternationalSign_section_1, + 2, /* Elements count */ + &asn_SPC_InternationalSign_section_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/InternationalSign-speedLimits.c b/vcits/ivim/src/InternationalSign-speedLimits.c new file mode 100644 index 0000000..e4772ea --- /dev/null +++ b/vcits/ivim/src/InternationalSign-speedLimits.c @@ -0,0 +1,171 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "InternationalSign-speedLimits.h" + +static int +memb_speedLimitMax_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 250)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_speedLimitMin_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 250)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_unit_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_speedLimitMax_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..250) */, + -1}; +static asn_per_constraints_t asn_PER_memb_speedLimitMax_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 250 } /* (0..250) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_speedLimitMin_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..250) */, + -1}; +static asn_per_constraints_t asn_PER_memb_speedLimitMin_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 250 } /* (0..250) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_unit_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..1) */, + -1}; +static asn_per_constraints_t asn_PER_memb_unit_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_InternationalSign_speedLimits_1[] = { + { ATF_POINTER, 2, offsetof(struct InternationalSign_speedLimits, speedLimitMax), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_speedLimitMax_constr_2, &asn_PER_memb_speedLimitMax_constr_2, memb_speedLimitMax_constraint_1 }, + 0, 0, /* No default value */ + "speedLimitMax" + }, + { ATF_POINTER, 1, offsetof(struct InternationalSign_speedLimits, speedLimitMin), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_speedLimitMin_constr_3, &asn_PER_memb_speedLimitMin_constr_3, memb_speedLimitMin_constraint_1 }, + 0, 0, /* No default value */ + "speedLimitMin" + }, + { ATF_NOFLAGS, 0, offsetof(struct InternationalSign_speedLimits, unit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Code_Units, + 0, + { &asn_OER_memb_unit_constr_4, &asn_PER_memb_unit_constr_4, memb_unit_constraint_1 }, + 0, 0, /* No default value */ + "unit" + }, +}; +static const int asn_MAP_InternationalSign_speedLimits_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_InternationalSign_speedLimits_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InternationalSign_speedLimits_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedLimitMax */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speedLimitMin */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* unit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InternationalSign_speedLimits_specs_1 = { + sizeof(struct InternationalSign_speedLimits), + offsetof(struct InternationalSign_speedLimits, _asn_ctx), + asn_MAP_InternationalSign_speedLimits_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_InternationalSign_speedLimits_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_InternationalSign_speedLimits = { + "InternationalSign-speedLimits", + "InternationalSign-speedLimits", + &asn_OP_SEQUENCE, + asn_DEF_InternationalSign_speedLimits_tags_1, + sizeof(asn_DEF_InternationalSign_speedLimits_tags_1) + /sizeof(asn_DEF_InternationalSign_speedLimits_tags_1[0]), /* 1 */ + asn_DEF_InternationalSign_speedLimits_tags_1, /* Same as above */ + sizeof(asn_DEF_InternationalSign_speedLimits_tags_1) + /sizeof(asn_DEF_InternationalSign_speedLimits_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_InternationalSign_speedLimits_1, + 3, /* Elements count */ + &asn_SPC_InternationalSign_speedLimits_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IntersectionAccessPoint.c b/vcits/ivim/src/IntersectionAccessPoint.c new file mode 100644 index 0000000..9a2fe12 --- /dev/null +++ b/vcits/ivim/src/IntersectionAccessPoint.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IntersectionAccessPoint.h" + +static asn_oer_constraints_t asn_OER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.approach), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "approach" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.connection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionAccessPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* approach */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* connection */ +}; +asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1 = { + sizeof(struct IntersectionAccessPoint), + offsetof(struct IntersectionAccessPoint, _asn_ctx), + offsetof(struct IntersectionAccessPoint, present), + sizeof(((struct IntersectionAccessPoint *)0)->present), + asn_MAP_IntersectionAccessPoint_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint = { + "IntersectionAccessPoint", + "IntersectionAccessPoint", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_IntersectionAccessPoint_constr_1, &asn_PER_type_IntersectionAccessPoint_constr_1, CHOICE_constraint }, + asn_MBR_IntersectionAccessPoint_1, + 3, /* Elements count */ + &asn_SPC_IntersectionAccessPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IntersectionGeometry.c b/vcits/ivim/src/IntersectionGeometry.c new file mode 100644 index 0000000..47a274a --- /dev/null +++ b/vcits/ivim/src/IntersectionGeometry.c @@ -0,0 +1,214 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IntersectionGeometry.h" + +#include "SpeedLimitList.h" +#include "PreemptPriorityList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionGeometry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct IntersectionGeometry__regional), + offsetof(struct IntersectionGeometry__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, laneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneSet" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, preemptPriorityData), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PreemptPriorityList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "preemptPriorityData" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionGeometry_oms_1[] = { 0, 4, 5, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionGeometry_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* laneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* preemptPriorityData */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1 = { + sizeof(struct IntersectionGeometry), + offsetof(struct IntersectionGeometry, _asn_ctx), + asn_MAP_IntersectionGeometry_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_IntersectionGeometry_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry = { + "IntersectionGeometry", + "IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionGeometry_tags_1, + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometry_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionGeometry_1, + 9, /* Elements count */ + &asn_SPC_IntersectionGeometry_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IntersectionGeometryList.c b/vcits/ivim/src/IntersectionGeometryList.c new file mode 100644 index 0000000..2c89827 --- /dev/null +++ b/vcits/ivim/src/IntersectionGeometryList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IntersectionGeometryList.h" + +#include "IntersectionGeometry.h" +static asn_oer_constraints_t asn_OER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionGeometry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometryList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1 = { + sizeof(struct IntersectionGeometryList), + offsetof(struct IntersectionGeometryList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList = { + "IntersectionGeometryList", + "IntersectionGeometryList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionGeometryList_tags_1, + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometryList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionGeometryList_constr_1, &asn_PER_type_IntersectionGeometryList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntersectionGeometryList_1, + 1, /* Single element */ + &asn_SPC_IntersectionGeometryList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IntersectionID.c b/vcits/ivim/src/IntersectionID.c new file mode 100644 index 0000000..f51ef84 --- /dev/null +++ b/vcits/ivim/src/IntersectionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IntersectionID.h" + +int +IntersectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntersectionID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_IntersectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IntersectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionID = { + "IntersectionID", + "IntersectionID", + &asn_OP_NativeInteger, + asn_DEF_IntersectionID_tags_1, + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionID_constr_1, &asn_PER_type_IntersectionID_constr_1, IntersectionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/IntersectionReferenceID.c b/vcits/ivim/src/IntersectionReferenceID.c new file mode 100644 index 0000000..6198fd4 --- /dev/null +++ b/vcits/ivim/src/IntersectionReferenceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IntersectionReferenceID.h" + +asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_IntersectionReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1 = { + sizeof(struct IntersectionReferenceID), + offsetof(struct IntersectionReferenceID, _asn_ctx), + asn_MAP_IntersectionReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_IntersectionReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID = { + "IntersectionReferenceID", + "IntersectionReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionReferenceID_tags_1, + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionReferenceID_1, + 2, /* Elements count */ + &asn_SPC_IntersectionReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IntersectionState-addGrpC.c b/vcits/ivim/src/IntersectionState-addGrpC.c new file mode 100644 index 0000000..78339c6 --- /dev/null +++ b/vcits/ivim/src/IntersectionState-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IntersectionState-addGrpC.h" + +#include "PrioritizationResponseList.h" +asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState_addGrpC, activePrioritizations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "activePrioritizations" + }, +}; +static const int asn_MAP_IntersectionState_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* activePrioritizations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1 = { + sizeof(struct IntersectionState_addGrpC), + offsetof(struct IntersectionState_addGrpC, _asn_ctx), + asn_MAP_IntersectionState_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_IntersectionState_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC = { + "IntersectionState-addGrpC", + "IntersectionState-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_addGrpC_tags_1, + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionState_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_IntersectionState_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IntersectionState.c b/vcits/ivim/src/IntersectionState.c new file mode 100644 index 0000000..ab6ad1a --- /dev/null +++ b/vcits/ivim/src/IntersectionState.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IntersectionState.h" + +#include "EnabledLaneList.h" +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct IntersectionState__regional), + offsetof(struct IntersectionState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { &asn_OER_type_regional_constr_11, &asn_PER_type_regional_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionState_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStatusObject, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 3, offsetof(struct IntersectionState, moy), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "moy" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, enabledLanes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EnabledLaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabledLanes" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, states), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "states" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { &asn_OER_memb_regional_constr_11, &asn_PER_memb_regional_constr_11, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionState_oms_1[] = { 0, 4, 5, 6, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* moy */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* enabledLanes */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* states */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1 = { + sizeof(struct IntersectionState), + offsetof(struct IntersectionState, _asn_ctx), + asn_MAP_IntersectionState_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_IntersectionState_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState = { + "IntersectionState", + "IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_tags_1, + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionState_1, + 10, /* Elements count */ + &asn_SPC_IntersectionState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IntersectionStateList.c b/vcits/ivim/src/IntersectionStateList.c new file mode 100644 index 0000000..26e6a75 --- /dev/null +++ b/vcits/ivim/src/IntersectionStateList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IntersectionStateList.h" + +#include "IntersectionState.h" +static asn_oer_constraints_t asn_OER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1 = { + sizeof(struct IntersectionStateList), + offsetof(struct IntersectionStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStateList = { + "IntersectionStateList", + "IntersectionStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionStateList_tags_1, + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionStateList_constr_1, &asn_PER_type_IntersectionStateList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntersectionStateList_1, + 1, /* Single element */ + &asn_SPC_IntersectionStateList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IntersectionStatusObject.c b/vcits/ivim/src/IntersectionStatusObject.c new file mode 100644 index 0000000..2052d01 --- /dev/null +++ b/vcits/ivim/src/IntersectionStatusObject.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IntersectionStatusObject.h" + +int +IntersectionStatusObject_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStatusObject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject = { + "IntersectionStatusObject", + "IntersectionStatusObject", + &asn_OP_BIT_STRING, + asn_DEF_IntersectionStatusObject_tags_1, + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStatusObject_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionStatusObject_constr_1, &asn_PER_type_IntersectionStatusObject_constr_1, IntersectionStatusObject_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Iso3833VehicleType.c b/vcits/ivim/src/Iso3833VehicleType.c new file mode 100644 index 0000000..191b1bd --- /dev/null +++ b/vcits/ivim/src/Iso3833VehicleType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Iso3833VehicleType.h" + +int +Iso3833VehicleType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Iso3833VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType = { + "Iso3833VehicleType", + "Iso3833VehicleType", + &asn_OP_NativeInteger, + asn_DEF_Iso3833VehicleType_tags_1, + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + asn_DEF_Iso3833VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + { &asn_OER_type_Iso3833VehicleType_constr_1, &asn_PER_type_Iso3833VehicleType_constr_1, Iso3833VehicleType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/IssuerIdentifier.c b/vcits/ivim/src/IssuerIdentifier.c new file mode 100644 index 0000000..beac97f --- /dev/null +++ b/vcits/ivim/src/IssuerIdentifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IssuerIdentifier.h" + +int +IssuerIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IssuerIdentifier_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_IssuerIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IssuerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IssuerIdentifier = { + "IssuerIdentifier", + "IssuerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_IssuerIdentifier_tags_1, + sizeof(asn_DEF_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_IssuerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_IssuerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_IssuerIdentifier_tags_1[0]), /* 1 */ + { &asn_OER_type_IssuerIdentifier_constr_1, &asn_PER_type_IssuerIdentifier_constr_1, IssuerIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ItineraryPath.c b/vcits/ivim/src/ItineraryPath.c new file mode 100644 index 0000000..03f163d --- /dev/null +++ b/vcits/ivim/src/ItineraryPath.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ItineraryPath.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..40)) */}; +static asn_per_constraints_t asn_PER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 40 } /* (SIZE(1..40)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ItineraryPath_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItineraryPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ItineraryPath_specs_1 = { + sizeof(struct ItineraryPath), + offsetof(struct ItineraryPath, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItineraryPath = { + "ItineraryPath", + "ItineraryPath", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItineraryPath_tags_1, + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + asn_DEF_ItineraryPath_tags_1, /* Same as above */ + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + { &asn_OER_type_ItineraryPath_constr_1, &asn_PER_type_ItineraryPath_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItineraryPath_1, + 1, /* Single element */ + &asn_SPC_ItineraryPath_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ItsPduHeader.c b/vcits/ivim/src/ItsPduHeader.c new file mode 100644 index 0000000..5068862 --- /dev/null +++ b/vcits/ivim/src/ItsPduHeader.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ItsPduHeader.h" + +static int +memb_protocolVersion_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_messageID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_messageID_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_messageID_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsPduHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, protocolVersion), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_protocolVersion_constr_2, &asn_PER_memb_protocolVersion_constr_2, memb_protocolVersion_constraint_1 }, + 0, 0, /* No default value */ + "protocolVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, messageID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_messageID_constr_3, &asn_PER_memb_messageID_constr_3, memb_messageID_constraint_1 }, + 0, 0, /* No default value */ + "messageID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, stationID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsPduHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsPduHeader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolVersion */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* messageID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* stationID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1 = { + sizeof(struct ItsPduHeader), + offsetof(struct ItsPduHeader, _asn_ctx), + asn_MAP_ItsPduHeader_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsPduHeader = { + "ItsPduHeader", + "ItsPduHeader", + &asn_OP_SEQUENCE, + asn_DEF_ItsPduHeader_tags_1, + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + asn_DEF_ItsPduHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsPduHeader_1, + 3, /* Elements count */ + &asn_SPC_ItsPduHeader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ItsStationPosition.c b/vcits/ivim/src/ItsStationPosition.c new file mode 100644 index 0000000..ac73f0d --- /dev/null +++ b/vcits/ivim/src/ItsStationPosition.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ItsStationPosition.h" + +#include "NodeOffsetPointXY.h" +asn_TYPE_member_t asn_MBR_ItsStationPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsStationPosition, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_POINTER, 3, offsetof(struct ItsStationPosition, laneID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 2, offsetof(struct ItsStationPosition, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_POINTER, 1, offsetof(struct ItsStationPosition, timeReference), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeReference, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeReference" + }, +}; +static const int asn_MAP_ItsStationPosition_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ItsStationPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsStationPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* timeReference */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsStationPosition_specs_1 = { + sizeof(struct ItsStationPosition), + offsetof(struct ItsStationPosition, _asn_ctx), + asn_MAP_ItsStationPosition_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ItsStationPosition_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsStationPosition = { + "ItsStationPosition", + "ItsStationPosition", + &asn_OP_SEQUENCE, + asn_DEF_ItsStationPosition_tags_1, + sizeof(asn_DEF_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ItsStationPosition_tags_1[0]), /* 1 */ + asn_DEF_ItsStationPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ItsStationPosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsStationPosition_1, + 4, /* Elements count */ + &asn_SPC_ItsStationPosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ItsStationPositionList.c b/vcits/ivim/src/ItsStationPositionList.c new file mode 100644 index 0000000..94f9e81 --- /dev/null +++ b/vcits/ivim/src/ItsStationPositionList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ItsStationPositionList.h" + +#include "ItsStationPosition.h" +static asn_oer_constraints_t asn_OER_type_ItsStationPositionList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_ItsStationPositionList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsStationPositionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ItsStationPosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsStationPositionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ItsStationPositionList_specs_1 = { + sizeof(struct ItsStationPositionList), + offsetof(struct ItsStationPositionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsStationPositionList = { + "ItsStationPositionList", + "ItsStationPositionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItsStationPositionList_tags_1, + sizeof(asn_DEF_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ItsStationPositionList_tags_1[0]), /* 1 */ + asn_DEF_ItsStationPositionList_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ItsStationPositionList_tags_1[0]), /* 1 */ + { &asn_OER_type_ItsStationPositionList_constr_1, &asn_PER_type_ItsStationPositionList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItsStationPositionList_1, + 1, /* Single element */ + &asn_SPC_ItsStationPositionList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IviContainer.c b/vcits/ivim/src/IviContainer.c new file mode 100644 index 0000000..71c4c69 --- /dev/null +++ b/vcits/ivim/src/IviContainer.c @@ -0,0 +1,168 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IviContainer.h" + +static asn_oer_constraints_t asn_OER_type_IviContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_IviContainer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ext1_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct IviContainer__ext1, avc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AutomatedVehicleContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "avc" + }, + { ATF_NOFLAGS, 0, offsetof(struct IviContainer__ext1, mlc), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MapLocationContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mlc" + }, + { ATF_NOFLAGS, 0, offsetof(struct IviContainer__ext1, rsc), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSurfaceContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsc" + }, +}; +static const ber_tlv_tag_t asn_DEF_ext1_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_8[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* avc */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mlc */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* rsc */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_8 = { + sizeof(struct IviContainer__ext1), + offsetof(struct IviContainer__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_8, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ext1_8 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_8, + sizeof(asn_DEF_ext1_tags_8) + /sizeof(asn_DEF_ext1_tags_8[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_8, /* Same as above */ + sizeof(asn_DEF_ext1_tags_8) + /sizeof(asn_DEF_ext1_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_8, + 3, /* Elements count */ + &asn_SPC_ext1_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IviContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct IviContainer, choice.glc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GeographicLocationContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "glc" + }, + { ATF_NOFLAGS, 0, offsetof(struct IviContainer, choice.giv), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GeneralIviContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "giv" + }, + { ATF_NOFLAGS, 0, offsetof(struct IviContainer, choice.rcc), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadConfigurationContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rcc" + }, + { ATF_NOFLAGS, 0, offsetof(struct IviContainer, choice.tc), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TextContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tc" + }, + { ATF_NOFLAGS, 0, offsetof(struct IviContainer, choice.lac), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayoutContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lac" + }, + { ATF_POINTER, 1, offsetof(struct IviContainer, choice.ext1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ext1_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_IviContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* glc */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* giv */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rcc */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tc */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* lac */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* ext1 */ +}; +asn_CHOICE_specifics_t asn_SPC_IviContainer_specs_1 = { + sizeof(struct IviContainer), + offsetof(struct IviContainer, _asn_ctx), + offsetof(struct IviContainer, present), + sizeof(((struct IviContainer *)0)->present), + asn_MAP_IviContainer_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + 5 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_IviContainer = { + "IviContainer", + "IviContainer", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_IviContainer_constr_1, &asn_PER_type_IviContainer_constr_1, CHOICE_constraint }, + asn_MBR_IviContainer_1, + 6, /* Elements count */ + &asn_SPC_IviContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IviContainers.c b/vcits/ivim/src/IviContainers.c new file mode 100644 index 0000000..e6446cc --- /dev/null +++ b/vcits/ivim/src/IviContainers.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IviContainers.h" + +#include "IviContainer.h" +static asn_oer_constraints_t asn_OER_type_IviContainers_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_IviContainers_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IviContainers_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_IviContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IviContainers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IviContainers_specs_1 = { + sizeof(struct IviContainers), + offsetof(struct IviContainers, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_IviContainers = { + "IviContainers", + "IviContainers", + &asn_OP_SEQUENCE_OF, + asn_DEF_IviContainers_tags_1, + sizeof(asn_DEF_IviContainers_tags_1) + /sizeof(asn_DEF_IviContainers_tags_1[0]), /* 1 */ + asn_DEF_IviContainers_tags_1, /* Same as above */ + sizeof(asn_DEF_IviContainers_tags_1) + /sizeof(asn_DEF_IviContainers_tags_1[0]), /* 1 */ + { &asn_OER_type_IviContainers_constr_1, &asn_PER_type_IviContainers_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IviContainers_1, + 1, /* Single element */ + &asn_SPC_IviContainers_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IviIdentificationNumber.c b/vcits/ivim/src/IviIdentificationNumber.c new file mode 100644 index 0000000..311eb0f --- /dev/null +++ b/vcits/ivim/src/IviIdentificationNumber.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IviIdentificationNumber.h" + +int +IviIdentificationNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IviIdentificationNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_IviIdentificationNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 15, 15, 1, 32767 } /* (1..32767,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IviIdentificationNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IviIdentificationNumber = { + "IviIdentificationNumber", + "IviIdentificationNumber", + &asn_OP_NativeInteger, + asn_DEF_IviIdentificationNumber_tags_1, + sizeof(asn_DEF_IviIdentificationNumber_tags_1) + /sizeof(asn_DEF_IviIdentificationNumber_tags_1[0]), /* 1 */ + asn_DEF_IviIdentificationNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_IviIdentificationNumber_tags_1) + /sizeof(asn_DEF_IviIdentificationNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_IviIdentificationNumber_constr_1, &asn_PER_type_IviIdentificationNumber_constr_1, IviIdentificationNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/IviIdentificationNumbers.c b/vcits/ivim/src/IviIdentificationNumbers.c new file mode 100644 index 0000000..4c531ae --- /dev/null +++ b/vcits/ivim/src/IviIdentificationNumbers.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IviIdentificationNumbers.h" + +static asn_oer_constraints_t asn_OER_type_IviIdentificationNumbers_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_IviIdentificationNumbers_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IviIdentificationNumbers_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_IviIdentificationNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IviIdentificationNumbers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IviIdentificationNumbers_specs_1 = { + sizeof(struct IviIdentificationNumbers), + offsetof(struct IviIdentificationNumbers, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IviIdentificationNumbers = { + "IviIdentificationNumbers", + "IviIdentificationNumbers", + &asn_OP_SEQUENCE_OF, + asn_DEF_IviIdentificationNumbers_tags_1, + sizeof(asn_DEF_IviIdentificationNumbers_tags_1) + /sizeof(asn_DEF_IviIdentificationNumbers_tags_1[0]), /* 1 */ + asn_DEF_IviIdentificationNumbers_tags_1, /* Same as above */ + sizeof(asn_DEF_IviIdentificationNumbers_tags_1) + /sizeof(asn_DEF_IviIdentificationNumbers_tags_1[0]), /* 1 */ + { &asn_OER_type_IviIdentificationNumbers_constr_1, &asn_PER_type_IviIdentificationNumbers_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IviIdentificationNumbers_1, + 1, /* Single element */ + &asn_SPC_IviIdentificationNumbers_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IviLaneWidth.c b/vcits/ivim/src/IviLaneWidth.c new file mode 100644 index 0000000..af2466c --- /dev/null +++ b/vcits/ivim/src/IviLaneWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IviLaneWidth.h" + +int +IviLaneWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IviLaneWidth_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_IviLaneWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1023 } /* (0..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IviLaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IviLaneWidth = { + "IviLaneWidth", + "IviLaneWidth", + &asn_OP_NativeInteger, + asn_DEF_IviLaneWidth_tags_1, + sizeof(asn_DEF_IviLaneWidth_tags_1) + /sizeof(asn_DEF_IviLaneWidth_tags_1[0]), /* 1 */ + asn_DEF_IviLaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_IviLaneWidth_tags_1) + /sizeof(asn_DEF_IviLaneWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_IviLaneWidth_constr_1, &asn_PER_type_IviLaneWidth_constr_1, IviLaneWidth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/IviManagementContainer.c b/vcits/ivim/src/IviManagementContainer.c new file mode 100644 index 0000000..7dc2d58 --- /dev/null +++ b/vcits/ivim/src/IviManagementContainer.c @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IviManagementContainer.h" + +#include "IviIdentificationNumbers.h" +#include "ConnectedDenms.h" +asn_TYPE_member_t asn_MBR_IviManagementContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct IviManagementContainer, serviceProviderId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Provider, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceProviderId" + }, + { ATF_NOFLAGS, 0, offsetof(struct IviManagementContainer, iviIdentificationNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IviIdentificationNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iviIdentificationNumber" + }, + { ATF_POINTER, 4, offsetof(struct IviManagementContainer, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 3, offsetof(struct IviManagementContainer, validFrom), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "validFrom" + }, + { ATF_POINTER, 2, offsetof(struct IviManagementContainer, validTo), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "validTo" + }, + { ATF_POINTER, 1, offsetof(struct IviManagementContainer, connectedIviStructures), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IviIdentificationNumbers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectedIviStructures" + }, + { ATF_NOFLAGS, 0, offsetof(struct IviManagementContainer, iviStatus), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IviStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iviStatus" + }, + { ATF_POINTER, 1, offsetof(struct IviManagementContainer, connectedDenms), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectedDenms, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectedDenms" + }, +}; +static const int asn_MAP_IviManagementContainer_oms_1[] = { 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_IviManagementContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IviManagementContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* serviceProviderId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iviIdentificationNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* validFrom */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* validTo */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* connectedIviStructures */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* iviStatus */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* connectedDenms */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IviManagementContainer_specs_1 = { + sizeof(struct IviManagementContainer), + offsetof(struct IviManagementContainer, _asn_ctx), + asn_MAP_IviManagementContainer_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_IviManagementContainer_oms_1, /* Optional members */ + 4, 1, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IviManagementContainer = { + "IviManagementContainer", + "IviManagementContainer", + &asn_OP_SEQUENCE, + asn_DEF_IviManagementContainer_tags_1, + sizeof(asn_DEF_IviManagementContainer_tags_1) + /sizeof(asn_DEF_IviManagementContainer_tags_1[0]), /* 1 */ + asn_DEF_IviManagementContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_IviManagementContainer_tags_1) + /sizeof(asn_DEF_IviManagementContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IviManagementContainer_1, + 8, /* Elements count */ + &asn_SPC_IviManagementContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IviPurpose.c b/vcits/ivim/src/IviPurpose.c new file mode 100644 index 0000000..52565db --- /dev/null +++ b/vcits/ivim/src/IviPurpose.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IviPurpose.h" + +int +IviPurpose_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IviPurpose_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +asn_per_constraints_t asn_PER_type_IviPurpose_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IviPurpose_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IviPurpose = { + "IviPurpose", + "IviPurpose", + &asn_OP_NativeInteger, + asn_DEF_IviPurpose_tags_1, + sizeof(asn_DEF_IviPurpose_tags_1) + /sizeof(asn_DEF_IviPurpose_tags_1[0]), /* 1 */ + asn_DEF_IviPurpose_tags_1, /* Same as above */ + sizeof(asn_DEF_IviPurpose_tags_1) + /sizeof(asn_DEF_IviPurpose_tags_1[0]), /* 1 */ + { &asn_OER_type_IviPurpose_constr_1, &asn_PER_type_IviPurpose_constr_1, IviPurpose_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/IviStatus.c b/vcits/ivim/src/IviStatus.c new file mode 100644 index 0000000..4b5d2b9 --- /dev/null +++ b/vcits/ivim/src/IviStatus.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IviStatus.h" + +int +IviStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IviStatus_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_IviStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IviStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IviStatus = { + "IviStatus", + "IviStatus", + &asn_OP_NativeInteger, + asn_DEF_IviStatus_tags_1, + sizeof(asn_DEF_IviStatus_tags_1) + /sizeof(asn_DEF_IviStatus_tags_1[0]), /* 1 */ + asn_DEF_IviStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_IviStatus_tags_1) + /sizeof(asn_DEF_IviStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_IviStatus_constr_1, &asn_PER_type_IviStatus_constr_1, IviStatus_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/IviStructure.c b/vcits/ivim/src/IviStructure.c new file mode 100644 index 0000000..5424ffa --- /dev/null +++ b/vcits/ivim/src/IviStructure.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IviStructure.h" + +#include "IviContainers.h" +asn_TYPE_member_t asn_MBR_IviStructure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct IviStructure, mandatory), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IviManagementContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mandatory" + }, + { ATF_POINTER, 1, offsetof(struct IviStructure, optional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IviContainers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "optional" + }, +}; +static const int asn_MAP_IviStructure_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_IviStructure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IviStructure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mandatory */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* optional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IviStructure_specs_1 = { + sizeof(struct IviStructure), + offsetof(struct IviStructure, _asn_ctx), + asn_MAP_IviStructure_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_IviStructure_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IviStructure = { + "IviStructure", + "IviStructure", + &asn_OP_SEQUENCE, + asn_DEF_IviStructure_tags_1, + sizeof(asn_DEF_IviStructure_tags_1) + /sizeof(asn_DEF_IviStructure_tags_1[0]), /* 1 */ + asn_DEF_IviStructure_tags_1, /* Same as above */ + sizeof(asn_DEF_IviStructure_tags_1) + /sizeof(asn_DEF_IviStructure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IviStructure_1, + 2, /* Elements count */ + &asn_SPC_IviStructure_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/IviType.c b/vcits/ivim/src/IviType.c new file mode 100644 index 0000000..0e55c61 --- /dev/null +++ b/vcits/ivim/src/IviType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "IviType.h" + +int +IviType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IviType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_IviType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IviType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IviType = { + "IviType", + "IviType", + &asn_OP_NativeInteger, + asn_DEF_IviType_tags_1, + sizeof(asn_DEF_IviType_tags_1) + /sizeof(asn_DEF_IviType_tags_1[0]), /* 1 */ + asn_DEF_IviType_tags_1, /* Same as above */ + sizeof(asn_DEF_IviType_tags_1) + /sizeof(asn_DEF_IviType_tags_1[0]), /* 1 */ + { &asn_OER_type_IviType_constr_1, &asn_PER_type_IviType_constr_1, IviType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/LPN.c b/vcits/ivim/src/LPN.c new file mode 100644 index 0000000..6aa6cd1 --- /dev/null +++ b/vcits/ivim/src/LPN.c @@ -0,0 +1,181 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LPN.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_alphabetIndicator_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_alphabetIndicator_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 32 } /* (0..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_alphabetIndicator_value2enum_3[] = { + { 1, 16, "latinAlphabetNo1" }, + { 2, 16, "latinAlphabetNo2" }, + { 3, 16, "latinAlphabetNo3" }, + { 4, 16, "latinAlphabetNo4" }, + { 5, 21, "latinCyrillicAlphabet" }, + { 6, 19, "latinArabicAlphabet" }, + { 7, 18, "latinGreekAlphabet" }, + { 8, 19, "latinHebrewAlphabet" }, + { 9, 16, "latinAlphabetNo5" }, + { 10, 16, "latinAlphabetNo6" }, + { 11, 11, "twoOctetBMP" }, + { 12, 18, "fourOctetCanonical" }, + { 13, 15, "reservedForUse1" }, + { 14, 15, "reservedForUse2" }, + { 15, 15, "reservedForUse3" }, + { 16, 15, "reservedForUse4" }, + { 17, 15, "reservedForUse5" }, + { 18, 15, "reservedForUse6" }, + { 19, 15, "reservedForUse7" }, + { 20, 15, "reservedForUse8" }, + { 21, 15, "reservedForUse9" }, + { 22, 16, "reservedForUse10" }, + { 23, 16, "reservedForUse11" }, + { 24, 16, "reservedForUse12" }, + { 25, 16, "reservedForUse13" }, + { 26, 16, "reservedForUse14" }, + { 27, 16, "reservedForUse15" }, + { 28, 16, "reservedForUse16" }, + { 29, 16, "reservedForUse17" }, + { 30, 16, "reservedForUse18" }, + { 31, 16, "reservedForUse19" }, + { 32, 16, "reservedForUse20" }, + { 33, 16, "reservedForUse21" } +}; +static const unsigned int asn_MAP_alphabetIndicator_enum2value_3[] = { + 11, /* fourOctetCanonical(12) */ + 0, /* latinAlphabetNo1(1) */ + 1, /* latinAlphabetNo2(2) */ + 2, /* latinAlphabetNo3(3) */ + 3, /* latinAlphabetNo4(4) */ + 8, /* latinAlphabetNo5(9) */ + 9, /* latinAlphabetNo6(10) */ + 5, /* latinArabicAlphabet(6) */ + 4, /* latinCyrillicAlphabet(5) */ + 6, /* latinGreekAlphabet(7) */ + 7, /* latinHebrewAlphabet(8) */ + 12, /* reservedForUse1(13) */ + 21, /* reservedForUse10(22) */ + 22, /* reservedForUse11(23) */ + 23, /* reservedForUse12(24) */ + 24, /* reservedForUse13(25) */ + 25, /* reservedForUse14(26) */ + 26, /* reservedForUse15(27) */ + 27, /* reservedForUse16(28) */ + 28, /* reservedForUse17(29) */ + 29, /* reservedForUse18(30) */ + 30, /* reservedForUse19(31) */ + 13, /* reservedForUse2(14) */ + 31, /* reservedForUse20(32) */ + 32, /* reservedForUse21(33) */ + 14, /* reservedForUse3(15) */ + 15, /* reservedForUse4(16) */ + 16, /* reservedForUse5(17) */ + 17, /* reservedForUse6(18) */ + 18, /* reservedForUse7(19) */ + 19, /* reservedForUse8(20) */ + 20, /* reservedForUse9(21) */ + 10 /* twoOctetBMP(11) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_alphabetIndicator_specs_3 = { + asn_MAP_alphabetIndicator_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_alphabetIndicator_enum2value_3, /* N => "tag"; sorted by N */ + 33, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_alphabetIndicator_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_alphabetIndicator_3 = { + "alphabetIndicator", + "alphabetIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_alphabetIndicator_tags_3, + sizeof(asn_DEF_alphabetIndicator_tags_3) + /sizeof(asn_DEF_alphabetIndicator_tags_3[0]) - 1, /* 1 */ + asn_DEF_alphabetIndicator_tags_3, /* Same as above */ + sizeof(asn_DEF_alphabetIndicator_tags_3) + /sizeof(asn_DEF_alphabetIndicator_tags_3[0]), /* 2 */ + { &asn_OER_type_alphabetIndicator_constr_3, &asn_PER_type_alphabetIndicator_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_alphabetIndicator_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_LPN_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LPN, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct LPN, alphabetIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_alphabetIndicator_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "alphabetIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct LPN, licencePlateNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "licencePlateNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_LPN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LPN_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* alphabetIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* licencePlateNumber */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LPN_specs_1 = { + sizeof(struct LPN), + offsetof(struct LPN, _asn_ctx), + asn_MAP_LPN_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LPN = { + "LPN", + "LPN", + &asn_OP_SEQUENCE, + asn_DEF_LPN_tags_1, + sizeof(asn_DEF_LPN_tags_1) + /sizeof(asn_DEF_LPN_tags_1[0]), /* 1 */ + asn_DEF_LPN_tags_1, /* Same as above */ + sizeof(asn_DEF_LPN_tags_1) + /sizeof(asn_DEF_LPN_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LPN_1, + 3, /* Elements count */ + &asn_SPC_LPN_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneAttributes-Barrier.c b/vcits/ivim/src/LaneAttributes-Barrier.c new file mode 100644 index 0000000..169099d --- /dev/null +++ b/vcits/ivim/src/LaneAttributes-Barrier.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneAttributes-Barrier.h" + +int +LaneAttributes_Barrier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Barrier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier = { + "LaneAttributes-Barrier", + "LaneAttributes-Barrier", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Barrier_tags_1, + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Barrier_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Barrier_constr_1, &asn_PER_type_LaneAttributes_Barrier_constr_1, LaneAttributes_Barrier_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneAttributes-Bike.c b/vcits/ivim/src/LaneAttributes-Bike.c new file mode 100644 index 0000000..f68e739 --- /dev/null +++ b/vcits/ivim/src/LaneAttributes-Bike.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneAttributes-Bike.h" + +int +LaneAttributes_Bike_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Bike_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike = { + "LaneAttributes-Bike", + "LaneAttributes-Bike", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Bike_tags_1, + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Bike_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Bike_constr_1, &asn_PER_type_LaneAttributes_Bike_constr_1, LaneAttributes_Bike_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneAttributes-Crosswalk.c b/vcits/ivim/src/LaneAttributes-Crosswalk.c new file mode 100644 index 0000000..b5169ce --- /dev/null +++ b/vcits/ivim/src/LaneAttributes-Crosswalk.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneAttributes-Crosswalk.h" + +int +LaneAttributes_Crosswalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Crosswalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk = { + "LaneAttributes-Crosswalk", + "LaneAttributes-Crosswalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Crosswalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Crosswalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Crosswalk_constr_1, &asn_PER_type_LaneAttributes_Crosswalk_constr_1, LaneAttributes_Crosswalk_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneAttributes-Parking.c b/vcits/ivim/src/LaneAttributes-Parking.c new file mode 100644 index 0000000..7c3ff12 --- /dev/null +++ b/vcits/ivim/src/LaneAttributes-Parking.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneAttributes-Parking.h" + +int +LaneAttributes_Parking_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Parking_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking = { + "LaneAttributes-Parking", + "LaneAttributes-Parking", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Parking_tags_1, + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Parking_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Parking_constr_1, &asn_PER_type_LaneAttributes_Parking_constr_1, LaneAttributes_Parking_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneAttributes-Sidewalk.c b/vcits/ivim/src/LaneAttributes-Sidewalk.c new file mode 100644 index 0000000..45b4f16 --- /dev/null +++ b/vcits/ivim/src/LaneAttributes-Sidewalk.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneAttributes-Sidewalk.h" + +int +LaneAttributes_Sidewalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Sidewalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk = { + "LaneAttributes-Sidewalk", + "LaneAttributes-Sidewalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Sidewalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Sidewalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Sidewalk_constr_1, &asn_PER_type_LaneAttributes_Sidewalk_constr_1, LaneAttributes_Sidewalk_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneAttributes-Striping.c b/vcits/ivim/src/LaneAttributes-Striping.c new file mode 100644 index 0000000..513ca9a --- /dev/null +++ b/vcits/ivim/src/LaneAttributes-Striping.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneAttributes-Striping.h" + +int +LaneAttributes_Striping_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Striping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping = { + "LaneAttributes-Striping", + "LaneAttributes-Striping", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Striping_tags_1, + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Striping_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Striping_constr_1, &asn_PER_type_LaneAttributes_Striping_constr_1, LaneAttributes_Striping_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneAttributes-TrackedVehicle.c b/vcits/ivim/src/LaneAttributes-TrackedVehicle.c new file mode 100644 index 0000000..300e2c9 --- /dev/null +++ b/vcits/ivim/src/LaneAttributes-TrackedVehicle.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneAttributes-TrackedVehicle.h" + +int +LaneAttributes_TrackedVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_TrackedVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle = { + "LaneAttributes-TrackedVehicle", + "LaneAttributes-TrackedVehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_TrackedVehicle_constr_1, &asn_PER_type_LaneAttributes_TrackedVehicle_constr_1, LaneAttributes_TrackedVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneAttributes-Vehicle.c b/vcits/ivim/src/LaneAttributes-Vehicle.c new file mode 100644 index 0000000..cc3320e --- /dev/null +++ b/vcits/ivim/src/LaneAttributes-Vehicle.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneAttributes-Vehicle.h" + +int +LaneAttributes_Vehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 8, 8 } /* (SIZE(8..8,...)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Vehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle = { + "LaneAttributes-Vehicle", + "LaneAttributes-Vehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Vehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Vehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Vehicle_constr_1, &asn_PER_type_LaneAttributes_Vehicle_constr_1, LaneAttributes_Vehicle_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneAttributes-addGrpC.c b/vcits/ivim/src/LaneAttributes-addGrpC.c new file mode 100644 index 0000000..d226cf0 --- /dev/null +++ b/vcits/ivim/src/LaneAttributes-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneAttributes-addGrpC.h" + +asn_TYPE_member_t asn_MBR_LaneAttributes_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct LaneAttributes_addGrpC, maxVehicleHeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleHeight, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxVehicleHeight" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes_addGrpC, maxVehicleWeight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleMass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxVehicleWeight" + }, +}; +static const int asn_MAP_LaneAttributes_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxVehicleHeight */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maxVehicleWeight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_addGrpC_specs_1 = { + sizeof(struct LaneAttributes_addGrpC), + offsetof(struct LaneAttributes_addGrpC, _asn_ctx), + asn_MAP_LaneAttributes_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_LaneAttributes_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_addGrpC = { + "LaneAttributes-addGrpC", + "LaneAttributes-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_addGrpC_tags_1, + sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneAttributes_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_LaneAttributes_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneAttributes.c b/vcits/ivim/src/LaneAttributes.c new file mode 100644 index 0000000..50364a2 --- /dev/null +++ b/vcits/ivim/src/LaneAttributes.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneAttributes.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_LaneAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, directionalUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDirection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "directionalUse" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, sharedWith), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneSharing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sharedWith" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, laneType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_LaneTypeAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneType" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_LaneAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_LaneAttributes_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* directionalUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sharedWith */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1 = { + sizeof(struct LaneAttributes), + offsetof(struct LaneAttributes, _asn_ctx), + asn_MAP_LaneAttributes_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_LaneAttributes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes = { + "LaneAttributes", + "LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_tags_1, + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneAttributes_1, + 4, /* Elements count */ + &asn_SPC_LaneAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneCharacteristics.c b/vcits/ivim/src/LaneCharacteristics.c new file mode 100644 index 0000000..280783a --- /dev/null +++ b/vcits/ivim/src/LaneCharacteristics.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneCharacteristics.h" + +asn_TYPE_member_t asn_MBR_LaneCharacteristics_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneCharacteristics, zoneDefinitionAccuracy), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DefinitionAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zoneDefinitionAccuracy" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneCharacteristics, existinglaneMarkingStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneMarkingStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "existinglaneMarkingStatus" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneCharacteristics, newlaneMarkingColour), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MarkingColour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "newlaneMarkingColour" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneCharacteristics, laneDelimitationLeft), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDelimitation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneDelimitationLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneCharacteristics, laneDelimitationRight), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDelimitation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneDelimitationRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneCharacteristics, mergingWith), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Zid, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mergingWith" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zoneDefinitionAccuracy */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* existinglaneMarkingStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* newlaneMarkingColour */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneDelimitationLeft */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneDelimitationRight */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* mergingWith */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneCharacteristics_specs_1 = { + sizeof(struct LaneCharacteristics), + offsetof(struct LaneCharacteristics, _asn_ctx), + asn_MAP_LaneCharacteristics_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneCharacteristics = { + "LaneCharacteristics", + "LaneCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_LaneCharacteristics_tags_1, + sizeof(asn_DEF_LaneCharacteristics_tags_1) + /sizeof(asn_DEF_LaneCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_LaneCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneCharacteristics_tags_1) + /sizeof(asn_DEF_LaneCharacteristics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneCharacteristics_1, + 6, /* Elements count */ + &asn_SPC_LaneCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneConfiguration.c b/vcits/ivim/src/LaneConfiguration.c new file mode 100644 index 0000000..106e84e --- /dev/null +++ b/vcits/ivim/src/LaneConfiguration.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneConfiguration.h" + +#include "LaneInformation.h" +static asn_oer_constraints_t asn_OER_type_LaneConfiguration_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_LaneConfiguration_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 16 } /* (SIZE(1..16,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneConfiguration_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_LaneInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneConfiguration_specs_1 = { + sizeof(struct LaneConfiguration), + offsetof(struct LaneConfiguration, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneConfiguration = { + "LaneConfiguration", + "LaneConfiguration", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneConfiguration_tags_1, + sizeof(asn_DEF_LaneConfiguration_tags_1) + /sizeof(asn_DEF_LaneConfiguration_tags_1[0]), /* 1 */ + asn_DEF_LaneConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneConfiguration_tags_1) + /sizeof(asn_DEF_LaneConfiguration_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneConfiguration_constr_1, &asn_PER_type_LaneConfiguration_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneConfiguration_1, + 1, /* Single element */ + &asn_SPC_LaneConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneConnectionID.c b/vcits/ivim/src/LaneConnectionID.c new file mode 100644 index 0000000..2e51d90 --- /dev/null +++ b/vcits/ivim/src/LaneConnectionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneConnectionID.h" + +int +LaneConnectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneConnectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneConnectionID = { + "LaneConnectionID", + "LaneConnectionID", + &asn_OP_NativeInteger, + asn_DEF_LaneConnectionID_tags_1, + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + asn_DEF_LaneConnectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneConnectionID_constr_1, &asn_PER_type_LaneConnectionID_constr_1, LaneConnectionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/LaneDataAttribute.c b/vcits/ivim/src/LaneDataAttribute.c new file mode 100644 index 0000000..8653a88 --- /dev/null +++ b/vcits/ivim/src/LaneDataAttribute.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneDataAttribute.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_LaneDataAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct LaneDataAttribute__regional), + offsetof(struct LaneDataAttribute__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.pathEndPointAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathEndPointAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointCenter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointCenter" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointLeft), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointRight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneAngle), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MergeDivergeNodeAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneDataAttribute_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathEndPointAngle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneCrownPointCenter */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneCrownPointLeft */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneCrownPointRight */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAngle */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1 = { + sizeof(struct LaneDataAttribute), + offsetof(struct LaneDataAttribute, _asn_ctx), + offsetof(struct LaneDataAttribute, present), + sizeof(((struct LaneDataAttribute *)0)->present), + asn_MAP_LaneDataAttribute_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute = { + "LaneDataAttribute", + "LaneDataAttribute", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LaneDataAttribute_constr_1, &asn_PER_type_LaneDataAttribute_constr_1, CHOICE_constraint }, + asn_MBR_LaneDataAttribute_1, + 7, /* Elements count */ + &asn_SPC_LaneDataAttribute_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneDataAttributeList.c b/vcits/ivim/src/LaneDataAttributeList.c new file mode 100644 index 0000000..87825df --- /dev/null +++ b/vcits/ivim/src/LaneDataAttributeList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneDataAttributeList.h" + +#include "LaneDataAttribute.h" +static asn_oer_constraints_t asn_OER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_LaneDataAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneDataAttributeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1 = { + sizeof(struct LaneDataAttributeList), + offsetof(struct LaneDataAttributeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList = { + "LaneDataAttributeList", + "LaneDataAttributeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneDataAttributeList_tags_1, + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + asn_DEF_LaneDataAttributeList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDataAttributeList_constr_1, &asn_PER_type_LaneDataAttributeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneDataAttributeList_1, + 1, /* Single element */ + &asn_SPC_LaneDataAttributeList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneDelimitation.c b/vcits/ivim/src/LaneDelimitation.c new file mode 100644 index 0000000..b76ac23 --- /dev/null +++ b/vcits/ivim/src/LaneDelimitation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneDelimitation.h" + +int +LaneDelimitation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneDelimitation_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneDelimitation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneDelimitation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneDelimitation = { + "LaneDelimitation", + "LaneDelimitation", + &asn_OP_NativeInteger, + asn_DEF_LaneDelimitation_tags_1, + sizeof(asn_DEF_LaneDelimitation_tags_1) + /sizeof(asn_DEF_LaneDelimitation_tags_1[0]), /* 1 */ + asn_DEF_LaneDelimitation_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDelimitation_tags_1) + /sizeof(asn_DEF_LaneDelimitation_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDelimitation_constr_1, &asn_PER_type_LaneDelimitation_constr_1, LaneDelimitation_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/LaneDirection.c b/vcits/ivim/src/LaneDirection.c new file mode 100644 index 0000000..58b36a7 --- /dev/null +++ b/vcits/ivim/src/LaneDirection.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneDirection.h" + +int +LaneDirection_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +asn_per_constraints_t asn_PER_type_LaneDirection_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneDirection = { + "LaneDirection", + "LaneDirection", + &asn_OP_BIT_STRING, + asn_DEF_LaneDirection_tags_1, + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + asn_DEF_LaneDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDirection_constr_1, &asn_PER_type_LaneDirection_constr_1, LaneDirection_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneID.c b/vcits/ivim/src/LaneID.c new file mode 100644 index 0000000..ff38d45 --- /dev/null +++ b/vcits/ivim/src/LaneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneID.h" + +int +LaneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneID = { + "LaneID", + "LaneID", + &asn_OP_NativeInteger, + asn_DEF_LaneID_tags_1, + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + asn_DEF_LaneID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneID_constr_1, &asn_PER_type_LaneID_constr_1, LaneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/LaneIds.c b/vcits/ivim/src/LaneIds.c new file mode 100644 index 0000000..0731ce8 --- /dev/null +++ b/vcits/ivim/src/LaneIds.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneIds.h" + +static asn_oer_constraints_t asn_OER_type_LaneIds_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_LaneIds_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 16 } /* (SIZE(1..16,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneIds_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneIds_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneIds_specs_1 = { + sizeof(struct LaneIds), + offsetof(struct LaneIds, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneIds = { + "LaneIds", + "LaneIds", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneIds_tags_1, + sizeof(asn_DEF_LaneIds_tags_1) + /sizeof(asn_DEF_LaneIds_tags_1[0]), /* 1 */ + asn_DEF_LaneIds_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneIds_tags_1) + /sizeof(asn_DEF_LaneIds_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneIds_constr_1, &asn_PER_type_LaneIds_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneIds_1, + 1, /* Single element */ + &asn_SPC_LaneIds_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneInformation.c b/vcits/ivim/src/LaneInformation.c new file mode 100644 index 0000000..49668e9 --- /dev/null +++ b/vcits/ivim/src/LaneInformation.c @@ -0,0 +1,213 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneInformation.h" + +#include "InternationalSign-applicablePeriod.h" +#include "CompleteVehicleCharacteristics.h" +#include "ZoneIds.h" +#include "LaneCharacteristics.h" +#include "RoadSurfaceStaticCharacteristics.h" +#include "RoadSurfaceDynamicCharacteristics.h" +static asn_TYPE_member_t asn_MBR_ext1_10[] = { + { ATF_POINTER, 5, offsetof(struct LaneInformation__ext1, detectionZoneIds), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneIds, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "detectionZoneIds" + }, + { ATF_POINTER, 4, offsetof(struct LaneInformation__ext1, relevanceZoneIds), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneIds, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "relevanceZoneIds" + }, + { ATF_POINTER, 3, offsetof(struct LaneInformation__ext1, laneCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCharacteristics" + }, + { ATF_POINTER, 2, offsetof(struct LaneInformation__ext1, laneSurfaceStaticCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSurfaceStaticCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneSurfaceStaticCharacteristics" + }, + { ATF_POINTER, 1, offsetof(struct LaneInformation__ext1, laneSurfaceDynamicCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSurfaceDynamicCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneSurfaceDynamicCharacteristics" + }, +}; +static const int asn_MAP_ext1_oms_10[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* detectionZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* relevanceZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneSurfaceStaticCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* laneSurfaceDynamicCharacteristics */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_10 = { + sizeof(struct LaneInformation__ext1), + offsetof(struct LaneInformation__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_10, + 5, /* Count of tags in the map */ + asn_MAP_ext1_oms_10, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ext1_10 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_10, + sizeof(asn_DEF_ext1_tags_10) + /sizeof(asn_DEF_ext1_tags_10[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_10, /* Same as above */ + sizeof(asn_DEF_ext1_tags_10) + /sizeof(asn_DEF_ext1_tags_10[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_10, + 5, /* Elements count */ + &asn_SPC_ext1_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_LaneInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneInformation, laneNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LanePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneInformation, direction), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Direction, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "direction" + }, + { ATF_POINTER, 1, offsetof(struct LaneInformation, validity), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InternationalSign_applicablePeriod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "validity" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneInformation, laneType), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneType" + }, + { ATF_POINTER, 1, offsetof(struct LaneInformation, laneTypeQualifier), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CompleteVehicleCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneTypeQualifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneInformation, laneStatus), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneStatus" + }, + { ATF_POINTER, 2, offsetof(struct LaneInformation, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IviLaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct LaneInformation, ext1), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ext1_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_LaneInformation_oms_1[] = { 2, 4, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_LaneInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* laneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* validity */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneTypeQualifier */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* laneStatus */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneInformation_specs_1 = { + sizeof(struct LaneInformation), + offsetof(struct LaneInformation, _asn_ctx), + asn_MAP_LaneInformation_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_LaneInformation_oms_1, /* Optional members */ + 3, 1, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneInformation = { + "LaneInformation", + "LaneInformation", + &asn_OP_SEQUENCE, + asn_DEF_LaneInformation_tags_1, + sizeof(asn_DEF_LaneInformation_tags_1) + /sizeof(asn_DEF_LaneInformation_tags_1[0]), /* 1 */ + asn_DEF_LaneInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneInformation_tags_1) + /sizeof(asn_DEF_LaneInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneInformation_1, + 8, /* Elements count */ + &asn_SPC_LaneInformation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneList.c b/vcits/ivim/src/LaneList.c new file mode 100644 index 0000000..09f3b17 --- /dev/null +++ b/vcits/ivim/src/LaneList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneList.h" + +#include "GenericLane.h" +static asn_oer_constraints_t asn_OER_type_LaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_LaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1 = { + sizeof(struct LaneList), + offsetof(struct LaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneList = { + "LaneList", + "LaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneList_tags_1, + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + asn_DEF_LaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneList_constr_1, &asn_PER_type_LaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneList_1, + 1, /* Single element */ + &asn_SPC_LaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneMarkingStatus.c b/vcits/ivim/src/LaneMarkingStatus.c new file mode 100644 index 0000000..03e399e --- /dev/null +++ b/vcits/ivim/src/LaneMarkingStatus.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneMarkingStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_LaneMarkingStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneMarkingStatus = { + "LaneMarkingStatus", + "LaneMarkingStatus", + &asn_OP_BOOLEAN, + asn_DEF_LaneMarkingStatus_tags_1, + sizeof(asn_DEF_LaneMarkingStatus_tags_1) + /sizeof(asn_DEF_LaneMarkingStatus_tags_1[0]), /* 1 */ + asn_DEF_LaneMarkingStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneMarkingStatus_tags_1) + /sizeof(asn_DEF_LaneMarkingStatus_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/LanePosition.c b/vcits/ivim/src/LanePosition.c new file mode 100644 index 0000000..7a702e1 --- /dev/null +++ b/vcits/ivim/src/LanePosition.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LanePosition.h" + +int +LanePosition_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1 && value <= 14)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LanePosition_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-1..14) */, + -1}; +asn_per_constraints_t asn_PER_type_LanePosition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, -1, 14 } /* (-1..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LanePosition = { + "LanePosition", + "LanePosition", + &asn_OP_NativeInteger, + asn_DEF_LanePosition_tags_1, + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + asn_DEF_LanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + { &asn_OER_type_LanePosition_constr_1, &asn_PER_type_LanePosition_constr_1, LanePosition_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/LanePositions.c b/vcits/ivim/src/LanePositions.c new file mode 100644 index 0000000..c64e882 --- /dev/null +++ b/vcits/ivim/src/LanePositions.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LanePositions.h" + +static asn_oer_constraints_t asn_OER_type_LanePositions_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_LanePositions_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LanePositions_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LanePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LanePositions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LanePositions_specs_1 = { + sizeof(struct LanePositions), + offsetof(struct LanePositions, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_LanePositions = { + "LanePositions", + "LanePositions", + &asn_OP_SEQUENCE_OF, + asn_DEF_LanePositions_tags_1, + sizeof(asn_DEF_LanePositions_tags_1) + /sizeof(asn_DEF_LanePositions_tags_1[0]), /* 1 */ + asn_DEF_LanePositions_tags_1, /* Same as above */ + sizeof(asn_DEF_LanePositions_tags_1) + /sizeof(asn_DEF_LanePositions_tags_1[0]), /* 1 */ + { &asn_OER_type_LanePositions_constr_1, &asn_PER_type_LanePositions_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LanePositions_1, + 1, /* Single element */ + &asn_SPC_LanePositions_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneSharing.c b/vcits/ivim/src/LaneSharing.c new file mode 100644 index 0000000..3ad9a85 --- /dev/null +++ b/vcits/ivim/src/LaneSharing.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneSharing.h" + +int +LaneSharing_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneSharing_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_LaneSharing_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneSharing_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneSharing = { + "LaneSharing", + "LaneSharing", + &asn_OP_BIT_STRING, + asn_DEF_LaneSharing_tags_1, + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + asn_DEF_LaneSharing_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneSharing_constr_1, &asn_PER_type_LaneSharing_constr_1, LaneSharing_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneStatus.c b/vcits/ivim/src/LaneStatus.c new file mode 100644 index 0000000..9dca58e --- /dev/null +++ b/vcits/ivim/src/LaneStatus.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneStatus.h" + +int +LaneStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneStatus = { + "LaneStatus", + "LaneStatus", + &asn_OP_NativeInteger, + asn_DEF_LaneStatus_tags_1, + sizeof(asn_DEF_LaneStatus_tags_1) + /sizeof(asn_DEF_LaneStatus_tags_1[0]), /* 1 */ + asn_DEF_LaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneStatus_tags_1) + /sizeof(asn_DEF_LaneStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneStatus_constr_1, &asn_PER_type_LaneStatus_constr_1, LaneStatus_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/LaneType.c b/vcits/ivim/src/LaneType.c new file mode 100644 index 0000000..8a11f79 --- /dev/null +++ b/vcits/ivim/src/LaneType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneType.h" + +int +LaneType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneType = { + "LaneType", + "LaneType", + &asn_OP_NativeInteger, + asn_DEF_LaneType_tags_1, + sizeof(asn_DEF_LaneType_tags_1) + /sizeof(asn_DEF_LaneType_tags_1[0]), /* 1 */ + asn_DEF_LaneType_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneType_tags_1) + /sizeof(asn_DEF_LaneType_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneType_constr_1, &asn_PER_type_LaneType_constr_1, LaneType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/LaneTypeAttributes.c b/vcits/ivim/src/LaneTypeAttributes.c new file mode 100644 index 0000000..555e375 --- /dev/null +++ b/vcits/ivim/src/LaneTypeAttributes.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneTypeAttributes.h" + +static asn_oer_constraints_t asn_OER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.vehicle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Vehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.crosswalk), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Crosswalk, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crosswalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.bikeLane), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Bike, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bikeLane" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.sidewalk), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Sidewalk, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sidewalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.median), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Barrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "median" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.striping), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Striping, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "striping" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.trackedVehicle), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_TrackedVehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trackedVehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.parking), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Parking, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "parking" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneTypeAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* crosswalk */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bikeLane */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sidewalk */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* median */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* striping */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* trackedVehicle */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* parking */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1 = { + sizeof(struct LaneTypeAttributes), + offsetof(struct LaneTypeAttributes, _asn_ctx), + offsetof(struct LaneTypeAttributes, present), + sizeof(((struct LaneTypeAttributes *)0)->present), + asn_MAP_LaneTypeAttributes_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + 8 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes = { + "LaneTypeAttributes", + "LaneTypeAttributes", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LaneTypeAttributes_constr_1, &asn_PER_type_LaneTypeAttributes_constr_1, CHOICE_constraint }, + asn_MBR_LaneTypeAttributes_1, + 8, /* Elements count */ + &asn_SPC_LaneTypeAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LaneWidth.c b/vcits/ivim/src/LaneWidth.c new file mode 100644 index 0000000..b573d36 --- /dev/null +++ b/vcits/ivim/src/LaneWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LaneWidth.h" + +int +LaneWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneWidth_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneWidth = { + "LaneWidth", + "LaneWidth", + &asn_OP_NativeInteger, + asn_DEF_LaneWidth_tags_1, + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + asn_DEF_LaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneWidth_constr_1, &asn_PER_type_LaneWidth_constr_1, LaneWidth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/LateralAcceleration.c b/vcits/ivim/src/LateralAcceleration.c new file mode 100644 index 0000000..c50e273 --- /dev/null +++ b/vcits/ivim/src/LateralAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LateralAcceleration.h" + +static asn_TYPE_member_t asn_MBR_LateralAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LateralAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LateralAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LateralAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateralAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lateralAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_LateralAcceleration_specs_1 = { + sizeof(struct LateralAcceleration), + offsetof(struct LateralAcceleration, _asn_ctx), + asn_MAP_LateralAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LateralAcceleration = { + "LateralAcceleration", + "LateralAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LateralAcceleration_tags_1, + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LateralAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LateralAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LateralAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LateralAccelerationValue.c b/vcits/ivim/src/LateralAccelerationValue.c new file mode 100644 index 0000000..a842f0d --- /dev/null +++ b/vcits/ivim/src/LateralAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LateralAccelerationValue.h" + +int +LateralAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LateralAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue = { + "LateralAccelerationValue", + "LateralAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LateralAccelerationValue_tags_1, + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LateralAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LateralAccelerationValue_constr_1, &asn_PER_type_LateralAccelerationValue_constr_1, LateralAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Latitude.c b/vcits/ivim/src/Latitude.c new file mode 100644 index 0000000..cc38611 --- /dev/null +++ b/vcits/ivim/src/Latitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Latitude.h" + +int +Latitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -900000000 && value <= 900000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Latitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-900000000..900000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Latitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 31, -1, -900000000, 900000001 } /* (-900000000..900000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_Latitude_tags_1, + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + asn_DEF_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Latitude_constr_1, &asn_PER_type_Latitude_constr_1, Latitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/LayerID.c b/vcits/ivim/src/LayerID.c new file mode 100644 index 0000000..b552a9f --- /dev/null +++ b/vcits/ivim/src/LayerID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LayerID.h" + +int +LayerID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LayerID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..100) */, + -1}; +asn_per_constraints_t asn_PER_type_LayerID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LayerID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerID = { + "LayerID", + "LayerID", + &asn_OP_NativeInteger, + asn_DEF_LayerID_tags_1, + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + asn_DEF_LayerID_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + { &asn_OER_type_LayerID_constr_1, &asn_PER_type_LayerID_constr_1, LayerID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/LayerType.c b/vcits/ivim/src/LayerType.c new file mode 100644 index 0000000..4f45f17 --- /dev/null +++ b/vcits/ivim/src/LayerType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LayerType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LayerType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LayerType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_LayerType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 12, "mixedContent" }, + { 2, 14, "generalMapData" }, + { 3, 16, "intersectionData" }, + { 4, 9, "curveData" }, + { 5, 18, "roadwaySectionData" }, + { 6, 15, "parkingAreaData" }, + { 7, 14, "sharedLaneData" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_LayerType_enum2value_1[] = { + 4, /* curveData(4) */ + 2, /* generalMapData(2) */ + 3, /* intersectionData(3) */ + 1, /* mixedContent(1) */ + 0, /* none(0) */ + 6, /* parkingAreaData(6) */ + 5, /* roadwaySectionData(5) */ + 7 /* sharedLaneData(7) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1 = { + asn_MAP_LayerType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_LayerType_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_LayerType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerType = { + "LayerType", + "LayerType", + &asn_OP_NativeEnumerated, + asn_DEF_LayerType_tags_1, + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + asn_DEF_LayerType_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + { &asn_OER_type_LayerType_constr_1, &asn_PER_type_LayerType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_LayerType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LayoutComponent.c b/vcits/ivim/src/LayoutComponent.c new file mode 100644 index 0000000..766720b --- /dev/null +++ b/vcits/ivim/src/LayoutComponent.c @@ -0,0 +1,298 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LayoutComponent.h" + +static int +memb_layoutComponentId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_height_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 10 && value <= 73)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_width_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 10 && value <= 265)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_x_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 10 && value <= 265)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_y_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 10 && value <= 73)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_textScripting_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_layoutComponentId_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_layoutComponentId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (1..8,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_height_constr_3 CC_NOTUSED = { + { 1, 1 } /* (10..73) */, + -1}; +static asn_per_constraints_t asn_PER_memb_height_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 10, 73 } /* (10..73) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_width_constr_4 CC_NOTUSED = { + { 2, 1 } /* (10..265) */, + -1}; +static asn_per_constraints_t asn_PER_memb_width_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 10, 265 } /* (10..265) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_x_constr_5 CC_NOTUSED = { + { 2, 1 } /* (10..265) */, + -1}; +static asn_per_constraints_t asn_PER_memb_x_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 10, 265 } /* (10..265) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_y_constr_6 CC_NOTUSED = { + { 1, 1 } /* (10..73) */, + -1}; +static asn_per_constraints_t asn_PER_memb_y_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 10, 73 } /* (10..73) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_textScripting_constr_7 CC_NOTUSED = { + { 1, 1 } /* (0..1) */, + -1}; +static asn_per_constraints_t asn_PER_memb_textScripting_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LayoutComponent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LayoutComponent, layoutComponentId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_layoutComponentId_constr_2, &asn_PER_memb_layoutComponentId_constr_2, memb_layoutComponentId_constraint_1 }, + 0, 0, /* No default value */ + "layoutComponentId" + }, + { ATF_NOFLAGS, 0, offsetof(struct LayoutComponent, height), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_height_constr_3, &asn_PER_memb_height_constr_3, memb_height_constraint_1 }, + 0, 0, /* No default value */ + "height" + }, + { ATF_NOFLAGS, 0, offsetof(struct LayoutComponent, width), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_width_constr_4, &asn_PER_memb_width_constr_4, memb_width_constraint_1 }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct LayoutComponent, x), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_x_constr_5, &asn_PER_memb_x_constr_5, memb_x_constraint_1 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct LayoutComponent, y), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_y_constr_6, &asn_PER_memb_y_constr_6, memb_y_constraint_1 }, + 0, 0, /* No default value */ + "y" + }, + { ATF_NOFLAGS, 0, offsetof(struct LayoutComponent, textScripting), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_textScripting_constr_7, &asn_PER_memb_textScripting_constr_7, memb_textScripting_constraint_1 }, + 0, 0, /* No default value */ + "textScripting" + }, +}; +static const ber_tlv_tag_t asn_DEF_LayoutComponent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LayoutComponent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* layoutComponentId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* height */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* width */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* y */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* textScripting */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LayoutComponent_specs_1 = { + sizeof(struct LayoutComponent), + offsetof(struct LayoutComponent, _asn_ctx), + asn_MAP_LayoutComponent_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LayoutComponent = { + "LayoutComponent", + "LayoutComponent", + &asn_OP_SEQUENCE, + asn_DEF_LayoutComponent_tags_1, + sizeof(asn_DEF_LayoutComponent_tags_1) + /sizeof(asn_DEF_LayoutComponent_tags_1[0]), /* 1 */ + asn_DEF_LayoutComponent_tags_1, /* Same as above */ + sizeof(asn_DEF_LayoutComponent_tags_1) + /sizeof(asn_DEF_LayoutComponent_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LayoutComponent_1, + 6, /* Elements count */ + &asn_SPC_LayoutComponent_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LayoutComponents.c b/vcits/ivim/src/LayoutComponents.c new file mode 100644 index 0000000..338d572 --- /dev/null +++ b/vcits/ivim/src/LayoutComponents.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LayoutComponents.h" + +#include "LayoutComponent.h" +static asn_oer_constraints_t asn_OER_type_LayoutComponents_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +asn_per_constraints_t asn_PER_type_LayoutComponents_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LayoutComponents_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_LayoutComponent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LayoutComponents_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LayoutComponents_specs_1 = { + sizeof(struct LayoutComponents), + offsetof(struct LayoutComponents, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_LayoutComponents = { + "LayoutComponents", + "LayoutComponents", + &asn_OP_SEQUENCE_OF, + asn_DEF_LayoutComponents_tags_1, + sizeof(asn_DEF_LayoutComponents_tags_1) + /sizeof(asn_DEF_LayoutComponents_tags_1[0]), /* 1 */ + asn_DEF_LayoutComponents_tags_1, /* Same as above */ + sizeof(asn_DEF_LayoutComponents_tags_1) + /sizeof(asn_DEF_LayoutComponents_tags_1[0]), /* 1 */ + { &asn_OER_type_LayoutComponents_constr_1, &asn_PER_type_LayoutComponents_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LayoutComponents_1, + 1, /* Single element */ + &asn_SPC_LayoutComponents_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LayoutContainer.c b/vcits/ivim/src/LayoutContainer.c new file mode 100644 index 0000000..2a17fc8 --- /dev/null +++ b/vcits/ivim/src/LayoutContainer.c @@ -0,0 +1,181 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LayoutContainer.h" + +static int +memb_layoutId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_height_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 10 && value <= 73)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_width_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 10 && value <= 265)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_layoutId_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_layoutId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (1..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_height_constr_3 CC_NOTUSED = { + { 1, 1 } /* (10..73) */, + -1}; +static asn_per_constraints_t asn_PER_memb_height_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 10, 73 } /* (10..73) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_width_constr_4 CC_NOTUSED = { + { 2, 1 } /* (10..265) */, + -1}; +static asn_per_constraints_t asn_PER_memb_width_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 10, 265 } /* (10..265) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LayoutContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LayoutContainer, layoutId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_layoutId_constr_2, &asn_PER_memb_layoutId_constr_2, memb_layoutId_constraint_1 }, + 0, 0, /* No default value */ + "layoutId" + }, + { ATF_POINTER, 2, offsetof(struct LayoutContainer, height), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_height_constr_3, &asn_PER_memb_height_constr_3, memb_height_constraint_1 }, + 0, 0, /* No default value */ + "height" + }, + { ATF_POINTER, 1, offsetof(struct LayoutContainer, width), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_width_constr_4, &asn_PER_memb_width_constr_4, memb_width_constraint_1 }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct LayoutContainer, layoutComponents), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayoutComponents, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layoutComponents" + }, +}; +static const int asn_MAP_LayoutContainer_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_LayoutContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LayoutContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* layoutId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* height */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* width */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* layoutComponents */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LayoutContainer_specs_1 = { + sizeof(struct LayoutContainer), + offsetof(struct LayoutContainer, _asn_ctx), + asn_MAP_LayoutContainer_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_LayoutContainer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LayoutContainer = { + "LayoutContainer", + "LayoutContainer", + &asn_OP_SEQUENCE, + asn_DEF_LayoutContainer_tags_1, + sizeof(asn_DEF_LayoutContainer_tags_1) + /sizeof(asn_DEF_LayoutContainer_tags_1[0]), /* 1 */ + asn_DEF_LayoutContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_LayoutContainer_tags_1) + /sizeof(asn_DEF_LayoutContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LayoutContainer_1, + 4, /* Elements count */ + &asn_SPC_LayoutContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LicPlateNumber.c b/vcits/ivim/src/LicPlateNumber.c new file mode 100644 index 0000000..57392e3 --- /dev/null +++ b/vcits/ivim/src/LicPlateNumber.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LicPlateNumber.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_LicPlateNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LicPlateNumber = { + "LicPlateNumber", + "LicPlateNumber", + &asn_OP_OCTET_STRING, + asn_DEF_LicPlateNumber_tags_1, + sizeof(asn_DEF_LicPlateNumber_tags_1) + /sizeof(asn_DEF_LicPlateNumber_tags_1[0]), /* 1 */ + asn_DEF_LicPlateNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_LicPlateNumber_tags_1) + /sizeof(asn_DEF_LicPlateNumber_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LightBarSirenInUse.c b/vcits/ivim/src/LightBarSirenInUse.c new file mode 100644 index 0000000..44167d7 --- /dev/null +++ b/vcits/ivim/src/LightBarSirenInUse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LightBarSirenInUse.h" + +int +LightBarSirenInUse_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LightBarSirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse = { + "LightBarSirenInUse", + "LightBarSirenInUse", + &asn_OP_BIT_STRING, + asn_DEF_LightBarSirenInUse_tags_1, + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + asn_DEF_LightBarSirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + { &asn_OER_type_LightBarSirenInUse_constr_1, &asn_PER_type_LightBarSirenInUse_constr_1, LightBarSirenInUse_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LoadType.c b/vcits/ivim/src/LoadType.c new file mode 100644 index 0000000..11f5b37 --- /dev/null +++ b/vcits/ivim/src/LoadType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LoadType.h" + +asn_TYPE_member_t asn_MBR_LoadType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LoadType, goodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GoodsType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "goodsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct LoadType, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsBasic, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dangerousGoodsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct LoadType, specialTransportType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpecialTransportType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "specialTransportType" + }, +}; +static const ber_tlv_tag_t asn_DEF_LoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LoadType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* goodsType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dangerousGoodsType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* specialTransportType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LoadType_specs_1 = { + sizeof(struct LoadType), + offsetof(struct LoadType, _asn_ctx), + asn_MAP_LoadType_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LoadType = { + "LoadType", + "LoadType", + &asn_OP_SEQUENCE, + asn_DEF_LoadType_tags_1, + sizeof(asn_DEF_LoadType_tags_1) + /sizeof(asn_DEF_LoadType_tags_1[0]), /* 1 */ + asn_DEF_LoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_LoadType_tags_1) + /sizeof(asn_DEF_LoadType_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LoadType_1, + 3, /* Elements count */ + &asn_SPC_LoadType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Longitude.c b/vcits/ivim/src/Longitude.c new file mode 100644 index 0000000..e7bceed --- /dev/null +++ b/vcits/ivim/src/Longitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Longitude.h" + +int +Longitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1800000000 && value <= 1800000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Longitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-1800000000..1800000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Longitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, -1800000000, 1800000001 } /* (-1800000000..1800000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_Longitude_tags_1, + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + asn_DEF_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Longitude_constr_1, &asn_PER_type_Longitude_constr_1, Longitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/LongitudinalAcceleration.c b/vcits/ivim/src/LongitudinalAcceleration.c new file mode 100644 index 0000000..4e68170 --- /dev/null +++ b/vcits/ivim/src/LongitudinalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LongitudinalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_LongitudinalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LongitudinalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longitudinalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_LongitudinalAcceleration_specs_1 = { + sizeof(struct LongitudinalAcceleration), + offsetof(struct LongitudinalAcceleration, _asn_ctx), + asn_MAP_LongitudinalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration = { + "LongitudinalAcceleration", + "LongitudinalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LongitudinalAcceleration_tags_1, + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LongitudinalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LongitudinalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/LongitudinalAccelerationValue.c b/vcits/ivim/src/LongitudinalAccelerationValue.c new file mode 100644 index 0000000..66c14bb --- /dev/null +++ b/vcits/ivim/src/LongitudinalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "LongitudinalAccelerationValue.h" + +int +LongitudinalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue = { + "LongitudinalAccelerationValue", + "LongitudinalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LongitudinalAccelerationValue_tags_1, + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LongitudinalAccelerationValue_constr_1, &asn_PER_type_LongitudinalAccelerationValue_constr_1, LongitudinalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ManeuverAssistList.c b/vcits/ivim/src/ManeuverAssistList.c new file mode 100644 index 0000000..c887fc4 --- /dev/null +++ b/vcits/ivim/src/ManeuverAssistList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ManeuverAssistList.h" + +#include "ConnectionManeuverAssist.h" +static asn_oer_constraints_t asn_OER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ManeuverAssistList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1 = { + sizeof(struct ManeuverAssistList), + offsetof(struct ManeuverAssistList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList = { + "ManeuverAssistList", + "ManeuverAssistList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ManeuverAssistList_tags_1, + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + asn_DEF_ManeuverAssistList_tags_1, /* Same as above */ + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + { &asn_OER_type_ManeuverAssistList_constr_1, &asn_PER_type_ManeuverAssistList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ManeuverAssistList_1, + 1, /* Single element */ + &asn_SPC_ManeuverAssistList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ManufacturerIdentifier.c b/vcits/ivim/src/ManufacturerIdentifier.c new file mode 100644 index 0000000..db00aa5 --- /dev/null +++ b/vcits/ivim/src/ManufacturerIdentifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ManufacturerIdentifier.h" + +int +ManufacturerIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ManufacturerIdentifier_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_ManufacturerIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ManufacturerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ManufacturerIdentifier = { + "ManufacturerIdentifier", + "ManufacturerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_ManufacturerIdentifier_tags_1, + sizeof(asn_DEF_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_ManufacturerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_ManufacturerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_ManufacturerIdentifier_tags_1[0]), /* 1 */ + { &asn_OER_type_ManufacturerIdentifier_constr_1, &asn_PER_type_ManufacturerIdentifier_constr_1, ManufacturerIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/MapData-addGrpC.c b/vcits/ivim/src/MapData-addGrpC.c new file mode 100644 index 0000000..b89fb49 --- /dev/null +++ b/vcits/ivim/src/MapData-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MapData-addGrpC.h" + +#include "SignalHeadLocationList.h" +asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData_addGrpC, signalHeadLocations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalHeadLocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalHeadLocations" + }, +}; +static const int asn_MAP_MapData_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MapData_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* signalHeadLocations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1 = { + sizeof(struct MapData_addGrpC), + offsetof(struct MapData_addGrpC, _asn_ctx), + asn_MAP_MapData_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MapData_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC = { + "MapData-addGrpC", + "MapData-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MapData_addGrpC_tags_1, + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MapData_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapData_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MapData_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/MapData.c b/vcits/ivim/src/MapData.c new file mode 100644 index 0000000..b010187 --- /dev/null +++ b/vcits/ivim/src/MapData.c @@ -0,0 +1,216 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MapData.h" + +#include "IntersectionGeometryList.h" +#include "RoadSegmentList.h" +#include "DataParameters.h" +#include "RestrictionClassList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MapData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct MapData__regional), + offsetof(struct MapData__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_MapData_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct MapData, msgIssueRevision), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgIssueRevision" + }, + { ATF_POINTER, 7, offsetof(struct MapData, layerType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layerType" + }, + { ATF_POINTER, 6, offsetof(struct MapData, layerID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layerID" + }, + { ATF_POINTER, 5, offsetof(struct MapData, intersections), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionGeometryList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 4, offsetof(struct MapData, roadSegments), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadSegments" + }, + { ATF_POINTER, 3, offsetof(struct MapData, dataParameters), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DataParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dataParameters" + }, + { ATF_POINTER, 2, offsetof(struct MapData, restrictionList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "restrictionList" + }, + { ATF_POINTER, 1, offsetof(struct MapData, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MapData_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* msgIssueRevision */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* layerType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* layerID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* roadSegments */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dataParameters */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* restrictionList */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_MapData_specs_1 = { + sizeof(struct MapData), + offsetof(struct MapData, _asn_ctx), + asn_MAP_MapData_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_MapData_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData = { + "MapData", + "MapData", + &asn_OP_SEQUENCE, + asn_DEF_MapData_tags_1, + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + asn_DEF_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapData_1, + 9, /* Elements count */ + &asn_SPC_MapData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/MapLocationContainer.c b/vcits/ivim/src/MapLocationContainer.c new file mode 100644 index 0000000..d675eca --- /dev/null +++ b/vcits/ivim/src/MapLocationContainer.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MapLocationContainer.h" + +asn_TYPE_member_t asn_MBR_MapLocationContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MapLocationContainer, reference), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MapReference, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reference" + }, + { ATF_NOFLAGS, 0, offsetof(struct MapLocationContainer, parts), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MlcParts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "parts" + }, +}; +static const ber_tlv_tag_t asn_DEF_MapLocationContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapLocationContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reference */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* parts */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MapLocationContainer_specs_1 = { + sizeof(struct MapLocationContainer), + offsetof(struct MapLocationContainer, _asn_ctx), + asn_MAP_MapLocationContainer_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapLocationContainer = { + "MapLocationContainer", + "MapLocationContainer", + &asn_OP_SEQUENCE, + asn_DEF_MapLocationContainer_tags_1, + sizeof(asn_DEF_MapLocationContainer_tags_1) + /sizeof(asn_DEF_MapLocationContainer_tags_1[0]), /* 1 */ + asn_DEF_MapLocationContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_MapLocationContainer_tags_1) + /sizeof(asn_DEF_MapLocationContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapLocationContainer_1, + 2, /* Elements count */ + &asn_SPC_MapLocationContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/MapReference.c b/vcits/ivim/src/MapReference.c new file mode 100644 index 0000000..5c560e2 --- /dev/null +++ b/vcits/ivim/src/MapReference.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MapReference.h" + +static asn_oer_constraints_t asn_OER_type_MapReference_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MapReference_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MapReference_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MapReference, choice.roadsegment), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadsegment" + }, + { ATF_NOFLAGS, 0, offsetof(struct MapReference, choice.intersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_MapReference_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roadsegment */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* intersection */ +}; +asn_CHOICE_specifics_t asn_SPC_MapReference_specs_1 = { + sizeof(struct MapReference), + offsetof(struct MapReference, _asn_ctx), + offsetof(struct MapReference, present), + sizeof(((struct MapReference *)0)->present), + asn_MAP_MapReference_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_MapReference = { + "MapReference", + "MapReference", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_MapReference_constr_1, &asn_PER_type_MapReference_constr_1, CHOICE_constraint }, + asn_MBR_MapReference_1, + 2, /* Elements count */ + &asn_SPC_MapReference_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/MarkingColour.c b/vcits/ivim/src/MarkingColour.c new file mode 100644 index 0000000..5847092 --- /dev/null +++ b/vcits/ivim/src/MarkingColour.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MarkingColour.h" + +int +MarkingColour_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MarkingColour_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MarkingColour_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MarkingColour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MarkingColour = { + "MarkingColour", + "MarkingColour", + &asn_OP_NativeInteger, + asn_DEF_MarkingColour_tags_1, + sizeof(asn_DEF_MarkingColour_tags_1) + /sizeof(asn_DEF_MarkingColour_tags_1[0]), /* 1 */ + asn_DEF_MarkingColour_tags_1, /* Same as above */ + sizeof(asn_DEF_MarkingColour_tags_1) + /sizeof(asn_DEF_MarkingColour_tags_1[0]), /* 1 */ + { &asn_OER_type_MarkingColour_constr_1, &asn_PER_type_MarkingColour_constr_1, MarkingColour_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/MaterialType.c b/vcits/ivim/src/MaterialType.c new file mode 100644 index 0000000..c384de3 --- /dev/null +++ b/vcits/ivim/src/MaterialType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MaterialType.h" + +int +MaterialType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MaterialType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MaterialType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MaterialType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MaterialType = { + "MaterialType", + "MaterialType", + &asn_OP_NativeInteger, + asn_DEF_MaterialType_tags_1, + sizeof(asn_DEF_MaterialType_tags_1) + /sizeof(asn_DEF_MaterialType_tags_1[0]), /* 1 */ + asn_DEF_MaterialType_tags_1, /* Same as above */ + sizeof(asn_DEF_MaterialType_tags_1) + /sizeof(asn_DEF_MaterialType_tags_1[0]), /* 1 */ + { &asn_OER_type_MaterialType_constr_1, &asn_PER_type_MaterialType_constr_1, MaterialType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/MaxLenghtOfPlatoon.c b/vcits/ivim/src/MaxLenghtOfPlatoon.c new file mode 100644 index 0000000..5beaaef --- /dev/null +++ b/vcits/ivim/src/MaxLenghtOfPlatoon.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MaxLenghtOfPlatoon.h" + +int +MaxLenghtOfPlatoon_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MaxLenghtOfPlatoon_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +asn_per_constraints_t asn_PER_type_MaxLenghtOfPlatoon_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MaxLenghtOfPlatoon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MaxLenghtOfPlatoon = { + "MaxLenghtOfPlatoon", + "MaxLenghtOfPlatoon", + &asn_OP_NativeInteger, + asn_DEF_MaxLenghtOfPlatoon_tags_1, + sizeof(asn_DEF_MaxLenghtOfPlatoon_tags_1) + /sizeof(asn_DEF_MaxLenghtOfPlatoon_tags_1[0]), /* 1 */ + asn_DEF_MaxLenghtOfPlatoon_tags_1, /* Same as above */ + sizeof(asn_DEF_MaxLenghtOfPlatoon_tags_1) + /sizeof(asn_DEF_MaxLenghtOfPlatoon_tags_1[0]), /* 1 */ + { &asn_OER_type_MaxLenghtOfPlatoon_constr_1, &asn_PER_type_MaxLenghtOfPlatoon_constr_1, MaxLenghtOfPlatoon_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/MaxNoOfVehicles.c b/vcits/ivim/src/MaxNoOfVehicles.c new file mode 100644 index 0000000..b468a52 --- /dev/null +++ b/vcits/ivim/src/MaxNoOfVehicles.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MaxNoOfVehicles.h" + +int +MaxNoOfVehicles_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 2 && value <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MaxNoOfVehicles_constr_1 CC_NOTUSED = { + { 1, 1 } /* (2..64) */, + -1}; +asn_per_constraints_t asn_PER_type_MaxNoOfVehicles_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 2, 64 } /* (2..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MaxNoOfVehicles_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MaxNoOfVehicles = { + "MaxNoOfVehicles", + "MaxNoOfVehicles", + &asn_OP_NativeInteger, + asn_DEF_MaxNoOfVehicles_tags_1, + sizeof(asn_DEF_MaxNoOfVehicles_tags_1) + /sizeof(asn_DEF_MaxNoOfVehicles_tags_1[0]), /* 1 */ + asn_DEF_MaxNoOfVehicles_tags_1, /* Same as above */ + sizeof(asn_DEF_MaxNoOfVehicles_tags_1) + /sizeof(asn_DEF_MaxNoOfVehicles_tags_1[0]), /* 1 */ + { &asn_OER_type_MaxNoOfVehicles_constr_1, &asn_PER_type_MaxNoOfVehicles_constr_1, MaxNoOfVehicles_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/MergeDivergeNodeAngle.c b/vcits/ivim/src/MergeDivergeNodeAngle.c new file mode 100644 index 0000000..4cfc22f --- /dev/null +++ b/vcits/ivim/src/MergeDivergeNodeAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MergeDivergeNodeAngle.h" + +int +MergeDivergeNodeAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -180 && value <= 180)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-180..180) */, + -1}; +asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -180, 180 } /* (-180..180) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MergeDivergeNodeAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle = { + "MergeDivergeNodeAngle", + "MergeDivergeNodeAngle", + &asn_OP_NativeInteger, + asn_DEF_MergeDivergeNodeAngle_tags_1, + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + asn_DEF_MergeDivergeNodeAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_MergeDivergeNodeAngle_constr_1, &asn_PER_type_MergeDivergeNodeAngle_constr_1, MergeDivergeNodeAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/MinuteOfTheYear.c b/vcits/ivim/src/MinuteOfTheYear.c new file mode 100644 index 0000000..9ce488b --- /dev/null +++ b/vcits/ivim/src/MinuteOfTheYear.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MinuteOfTheYear.h" + +int +MinuteOfTheYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 527040)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..527040) */, + -1}; +asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 527040 } /* (0..527040) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MinuteOfTheYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear = { + "MinuteOfTheYear", + "MinuteOfTheYear", + &asn_OP_NativeInteger, + asn_DEF_MinuteOfTheYear_tags_1, + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + asn_DEF_MinuteOfTheYear_tags_1, /* Same as above */ + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + { &asn_OER_type_MinuteOfTheYear_constr_1, &asn_PER_type_MinuteOfTheYear_constr_1, MinuteOfTheYear_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/MlcPart.c b/vcits/ivim/src/MlcPart.c new file mode 100644 index 0000000..9843f90 --- /dev/null +++ b/vcits/ivim/src/MlcPart.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MlcPart.h" + +#include "LaneIds.h" +asn_TYPE_member_t asn_MBR_MlcPart_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MlcPart, zoneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Zid, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zoneId" + }, + { ATF_POINTER, 1, offsetof(struct MlcPart, laneIds), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneIds, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneIds" + }, +}; +static const int asn_MAP_MlcPart_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_MlcPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MlcPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zoneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* laneIds */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MlcPart_specs_1 = { + sizeof(struct MlcPart), + offsetof(struct MlcPart, _asn_ctx), + asn_MAP_MlcPart_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_MlcPart_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MlcPart = { + "MlcPart", + "MlcPart", + &asn_OP_SEQUENCE, + asn_DEF_MlcPart_tags_1, + sizeof(asn_DEF_MlcPart_tags_1) + /sizeof(asn_DEF_MlcPart_tags_1[0]), /* 1 */ + asn_DEF_MlcPart_tags_1, /* Same as above */ + sizeof(asn_DEF_MlcPart_tags_1) + /sizeof(asn_DEF_MlcPart_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MlcPart_1, + 2, /* Elements count */ + &asn_SPC_MlcPart_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/MlcParts.c b/vcits/ivim/src/MlcParts.c new file mode 100644 index 0000000..1a513ec --- /dev/null +++ b/vcits/ivim/src/MlcParts.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MlcParts.h" + +#include "MlcPart.h" +static asn_oer_constraints_t asn_OER_type_MlcParts_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_MlcParts_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 16 } /* (SIZE(1..16,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MlcParts_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MlcPart, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MlcParts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MlcParts_specs_1 = { + sizeof(struct MlcParts), + offsetof(struct MlcParts, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MlcParts = { + "MlcParts", + "MlcParts", + &asn_OP_SEQUENCE_OF, + asn_DEF_MlcParts_tags_1, + sizeof(asn_DEF_MlcParts_tags_1) + /sizeof(asn_DEF_MlcParts_tags_1[0]), /* 1 */ + asn_DEF_MlcParts_tags_1, /* Same as above */ + sizeof(asn_DEF_MlcParts_tags_1) + /sizeof(asn_DEF_MlcParts_tags_1[0]), /* 1 */ + { &asn_OER_type_MlcParts_constr_1, &asn_PER_type_MlcParts_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MlcParts_1, + 1, /* Single element */ + &asn_SPC_MlcParts_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/MonthDay.c b/vcits/ivim/src/MonthDay.c new file mode 100644 index 0000000..87860f0 --- /dev/null +++ b/vcits/ivim/src/MonthDay.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MonthDay.h" + +static int +memb_month_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_day_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_month_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..12) */, + -1}; +static asn_per_constraints_t asn_PER_memb_month_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (1..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_day_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_day_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 31 } /* (1..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MonthDay_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MonthDay, month), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_month_constr_2, &asn_PER_memb_month_constr_2, memb_month_constraint_1 }, + 0, 0, /* No default value */ + "month" + }, + { ATF_NOFLAGS, 0, offsetof(struct MonthDay, day), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_day_constr_3, &asn_PER_memb_day_constr_3, memb_day_constraint_1 }, + 0, 0, /* No default value */ + "day" + }, +}; +static const ber_tlv_tag_t asn_DEF_MonthDay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MonthDay_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* day */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MonthDay_specs_1 = { + sizeof(struct MonthDay), + offsetof(struct MonthDay, _asn_ctx), + asn_MAP_MonthDay_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MonthDay = { + "MonthDay", + "MonthDay", + &asn_OP_SEQUENCE, + asn_DEF_MonthDay_tags_1, + sizeof(asn_DEF_MonthDay_tags_1) + /sizeof(asn_DEF_MonthDay_tags_1[0]), /* 1 */ + asn_DEF_MonthDay_tags_1, /* Same as above */ + sizeof(asn_DEF_MonthDay_tags_1) + /sizeof(asn_DEF_MonthDay_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MonthDay_1, + 2, /* Elements count */ + &asn_SPC_MonthDay_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/MovementEvent-addGrpC.c b/vcits/ivim/src/MovementEvent-addGrpC.c new file mode 100644 index 0000000..c94898f --- /dev/null +++ b/vcits/ivim/src/MovementEvent-addGrpC.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MovementEvent-addGrpC.h" + +asn_TYPE_member_t asn_MBR_MovementEvent_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementEvent_addGrpC, stateChangeReason), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExceptionalCondition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stateChangeReason" + }, +}; +static const int asn_MAP_MovementEvent_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* stateChangeReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpC_specs_1 = { + sizeof(struct MovementEvent_addGrpC), + offsetof(struct MovementEvent_addGrpC, _asn_ctx), + asn_MAP_MovementEvent_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MovementEvent_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpC = { + "MovementEvent-addGrpC", + "MovementEvent-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_addGrpC_tags_1, + sizeof(asn_DEF_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementEvent_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MovementEvent_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/MovementEvent.c b/vcits/ivim/src/MovementEvent.c new file mode 100644 index 0000000..0c09923 --- /dev/null +++ b/vcits/ivim/src/MovementEvent.c @@ -0,0 +1,164 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MovementEvent.h" + +#include "TimeChangeDetails.h" +#include "AdvisorySpeedList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct MovementEvent__regional), + offsetof(struct MovementEvent__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementEvent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MovementEvent, eventState), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementPhaseState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventState" + }, + { ATF_POINTER, 3, offsetof(struct MovementEvent, timing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeChangeDetails, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timing" + }, + { ATF_POINTER, 2, offsetof(struct MovementEvent, speeds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speeds" + }, + { ATF_POINTER, 1, offsetof(struct MovementEvent, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementEvent_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventState */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* speeds */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1 = { + sizeof(struct MovementEvent), + offsetof(struct MovementEvent, _asn_ctx), + asn_MAP_MovementEvent_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_MovementEvent_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent = { + "MovementEvent", + "MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_tags_1, + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementEvent_1, + 4, /* Elements count */ + &asn_SPC_MovementEvent_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/MovementEventList.c b/vcits/ivim/src/MovementEventList.c new file mode 100644 index 0000000..1c5dcfc --- /dev/null +++ b/vcits/ivim/src/MovementEventList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MovementEventList.h" + +#include "MovementEvent.h" +static asn_oer_constraints_t asn_OER_type_MovementEventList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_MovementEventList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MovementEventList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementEventList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1 = { + sizeof(struct MovementEventList), + offsetof(struct MovementEventList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEventList = { + "MovementEventList", + "MovementEventList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementEventList_tags_1, + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + asn_DEF_MovementEventList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementEventList_constr_1, &asn_PER_type_MovementEventList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MovementEventList_1, + 1, /* Single element */ + &asn_SPC_MovementEventList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/MovementList.c b/vcits/ivim/src/MovementList.c new file mode 100644 index 0000000..0240ee9 --- /dev/null +++ b/vcits/ivim/src/MovementList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MovementList.h" + +#include "MovementState.h" +static asn_oer_constraints_t asn_OER_type_MovementList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_MovementList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MovementList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1 = { + sizeof(struct MovementList), + offsetof(struct MovementList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementList = { + "MovementList", + "MovementList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementList_tags_1, + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + asn_DEF_MovementList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementList_constr_1, &asn_PER_type_MovementList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MovementList_1, + 1, /* Single element */ + &asn_SPC_MovementList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/MovementPhaseState.c b/vcits/ivim/src/MovementPhaseState.c new file mode 100644 index 0000000..f2463ab --- /dev/null +++ b/vcits/ivim/src/MovementPhaseState.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MovementPhaseState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_MovementPhaseState_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 4, "dark" }, + { 2, 17, "stop-Then-Proceed" }, + { 3, 15, "stop-And-Remain" }, + { 4, 12, "pre-Movement" }, + { 5, 27, "permissive-Movement-Allowed" }, + { 6, 26, "protected-Movement-Allowed" }, + { 7, 20, "permissive-clearance" }, + { 8, 19, "protected-clearance" }, + { 9, 27, "caution-Conflicting-Traffic" } +}; +static const unsigned int asn_MAP_MovementPhaseState_enum2value_1[] = { + 9, /* caution-Conflicting-Traffic(9) */ + 1, /* dark(1) */ + 5, /* permissive-Movement-Allowed(5) */ + 7, /* permissive-clearance(7) */ + 4, /* pre-Movement(4) */ + 6, /* protected-Movement-Allowed(6) */ + 8, /* protected-clearance(8) */ + 3, /* stop-And-Remain(3) */ + 2, /* stop-Then-Proceed(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1 = { + asn_MAP_MovementPhaseState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_MovementPhaseState_enum2value_1, /* N => "tag"; sorted by N */ + 10, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_MovementPhaseState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MovementPhaseState = { + "MovementPhaseState", + "MovementPhaseState", + &asn_OP_NativeEnumerated, + asn_DEF_MovementPhaseState_tags_1, + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + asn_DEF_MovementPhaseState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementPhaseState_constr_1, &asn_PER_type_MovementPhaseState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MovementPhaseState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/MovementState.c b/vcits/ivim/src/MovementState.c new file mode 100644 index 0000000..cad1d78 --- /dev/null +++ b/vcits/ivim/src/MovementState.c @@ -0,0 +1,173 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MovementState.h" + +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct MovementState__regional), + offsetof(struct MovementState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementState_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementState, movementName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "movementName" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, state_time_speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementEventList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "state-time-speed" + }, + { ATF_POINTER, 2, offsetof(struct MovementState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct MovementState, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementState_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_MovementState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* movementName */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* state-time-speed */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1 = { + sizeof(struct MovementState), + offsetof(struct MovementState, _asn_ctx), + asn_MAP_MovementState_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_MovementState_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementState = { + "MovementState", + "MovementState", + &asn_OP_SEQUENCE, + asn_DEF_MovementState_tags_1, + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + asn_DEF_MovementState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementState_1, + 5, /* Elements count */ + &asn_SPC_MovementState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/MsgCount.c b/vcits/ivim/src/MsgCount.c new file mode 100644 index 0000000..810fa0d --- /dev/null +++ b/vcits/ivim/src/MsgCount.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "MsgCount.h" + +int +MsgCount_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MsgCount_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_MsgCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MsgCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MsgCount = { + "MsgCount", + "MsgCount", + &asn_OP_NativeInteger, + asn_DEF_MsgCount_tags_1, + sizeof(asn_DEF_MsgCount_tags_1) + /sizeof(asn_DEF_MsgCount_tags_1[0]), /* 1 */ + asn_DEF_MsgCount_tags_1, /* Same as above */ + sizeof(asn_DEF_MsgCount_tags_1) + /sizeof(asn_DEF_MsgCount_tags_1[0]), /* 1 */ + { &asn_OER_type_MsgCount_constr_1, &asn_PER_type_MsgCount_constr_1, MsgCount_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Node-LLmD-64b.c b/vcits/ivim/src/Node-LLmD-64b.c new file mode 100644 index 0000000..c3ff5eb --- /dev/null +++ b/vcits/ivim/src/Node-LLmD-64b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Node-LLmD-64b.h" + +asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LLmD_64b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LLmD_64b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1 = { + sizeof(struct Node_LLmD_64b), + offsetof(struct Node_LLmD_64b, _asn_ctx), + asn_MAP_Node_LLmD_64b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b = { + "Node-LLmD-64b", + "Node-LLmD-64b", + &asn_OP_SEQUENCE, + asn_DEF_Node_LLmD_64b_tags_1, + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + asn_DEF_Node_LLmD_64b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_LLmD_64b_1, + 2, /* Elements count */ + &asn_SPC_Node_LLmD_64b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Node-XY-20b.c b/vcits/ivim/src/Node-XY-20b.c new file mode 100644 index 0000000..ad750ee --- /dev/null +++ b/vcits/ivim/src/Node-XY-20b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Node-XY-20b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_20b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_20b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_20b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1 = { + sizeof(struct Node_XY_20b), + offsetof(struct Node_XY_20b, _asn_ctx), + asn_MAP_Node_XY_20b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_20b = { + "Node-XY-20b", + "Node-XY-20b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_20b_tags_1, + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_20b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_20b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_20b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Node-XY-22b.c b/vcits/ivim/src/Node-XY-22b.c new file mode 100644 index 0000000..9b08547 --- /dev/null +++ b/vcits/ivim/src/Node-XY-22b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Node-XY-22b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_22b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_22b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_22b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1 = { + sizeof(struct Node_XY_22b), + offsetof(struct Node_XY_22b, _asn_ctx), + asn_MAP_Node_XY_22b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_22b = { + "Node-XY-22b", + "Node-XY-22b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_22b_tags_1, + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_22b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_22b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_22b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Node-XY-24b.c b/vcits/ivim/src/Node-XY-24b.c new file mode 100644 index 0000000..6a8dcc1 --- /dev/null +++ b/vcits/ivim/src/Node-XY-24b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Node-XY-24b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_24b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_24b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_24b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1 = { + sizeof(struct Node_XY_24b), + offsetof(struct Node_XY_24b, _asn_ctx), + asn_MAP_Node_XY_24b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_24b = { + "Node-XY-24b", + "Node-XY-24b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_24b_tags_1, + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_24b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_24b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_24b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Node-XY-26b.c b/vcits/ivim/src/Node-XY-26b.c new file mode 100644 index 0000000..2bb1345 --- /dev/null +++ b/vcits/ivim/src/Node-XY-26b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Node-XY-26b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_26b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_26b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_26b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1 = { + sizeof(struct Node_XY_26b), + offsetof(struct Node_XY_26b, _asn_ctx), + asn_MAP_Node_XY_26b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_26b = { + "Node-XY-26b", + "Node-XY-26b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_26b_tags_1, + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_26b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_26b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_26b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Node-XY-28b.c b/vcits/ivim/src/Node-XY-28b.c new file mode 100644 index 0000000..012f7c0 --- /dev/null +++ b/vcits/ivim/src/Node-XY-28b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Node-XY-28b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_28b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_28b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_28b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1 = { + sizeof(struct Node_XY_28b), + offsetof(struct Node_XY_28b, _asn_ctx), + asn_MAP_Node_XY_28b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_28b = { + "Node-XY-28b", + "Node-XY-28b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_28b_tags_1, + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_28b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_28b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_28b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Node-XY-32b.c b/vcits/ivim/src/Node-XY-32b.c new file mode 100644 index 0000000..8a703d3 --- /dev/null +++ b/vcits/ivim/src/Node-XY-32b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Node-XY-32b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_32b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_32b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_32b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1 = { + sizeof(struct Node_XY_32b), + offsetof(struct Node_XY_32b, _asn_ctx), + asn_MAP_Node_XY_32b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_32b = { + "Node-XY-32b", + "Node-XY-32b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_32b_tags_1, + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_32b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_32b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_32b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Node.c b/vcits/ivim/src/Node.c new file mode 100644 index 0000000..2afc4b6 --- /dev/null +++ b/vcits/ivim/src/Node.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Node.h" + +asn_TYPE_member_t asn_MBR_Node_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 3, offsetof(struct Node, lane), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 2, offsetof(struct Node, connectionID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 1, offsetof(struct Node, intersectionID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersectionID" + }, +}; +static const int asn_MAP_Node_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Node_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* intersectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_specs_1 = { + sizeof(struct Node), + offsetof(struct Node, _asn_ctx), + asn_MAP_Node_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Node_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node = { + "Node", + "Node", + &asn_OP_SEQUENCE, + asn_DEF_Node_tags_1, + sizeof(asn_DEF_Node_tags_1) + /sizeof(asn_DEF_Node_tags_1[0]), /* 1 */ + asn_DEF_Node_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_tags_1) + /sizeof(asn_DEF_Node_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_1, + 4, /* Elements count */ + &asn_SPC_Node_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/NodeAttributeSet-addGrpC.c b/vcits/ivim/src/NodeAttributeSet-addGrpC.c new file mode 100644 index 0000000..df323f6 --- /dev/null +++ b/vcits/ivim/src/NodeAttributeSet-addGrpC.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "NodeAttributeSet-addGrpC.h" + +#include "NodeLink.h" +#include "Node.h" +asn_TYPE_member_t asn_MBR_NodeAttributeSet_addGrpC_1[] = { + { ATF_POINTER, 3, offsetof(struct NodeAttributeSet_addGrpC, ptvRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtvRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptvRequest" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSet_addGrpC, nodeLink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeLink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeLink" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSet_addGrpC, node), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node" + }, +}; +static const int asn_MAP_NodeAttributeSet_addGrpC_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSet_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSet_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptvRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeLink */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* node */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSet_addGrpC_specs_1 = { + sizeof(struct NodeAttributeSet_addGrpC), + offsetof(struct NodeAttributeSet_addGrpC, _asn_ctx), + asn_MAP_NodeAttributeSet_addGrpC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_NodeAttributeSet_addGrpC_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSet_addGrpC = { + "NodeAttributeSet-addGrpC", + "NodeAttributeSet-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSet_addGrpC_tags_1, + sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSet_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeAttributeSet_addGrpC_1, + 3, /* Elements count */ + &asn_SPC_NodeAttributeSet_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/NodeAttributeSetXY.c b/vcits/ivim/src/NodeAttributeSetXY.c new file mode 100644 index 0000000..17c1e7c --- /dev/null +++ b/vcits/ivim/src/NodeAttributeSetXY.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "NodeAttributeSetXY.h" + +#include "NodeAttributeXYList.h" +#include "SegmentAttributeXYList.h" +#include "LaneDataAttributeList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_NodeAttributeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct NodeAttributeSetXY__regional), + offsetof(struct NodeAttributeSetXY__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[] = { + { ATF_POINTER, 7, offsetof(struct NodeAttributeSetXY, localNode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "localNode" + }, + { ATF_POINTER, 6, offsetof(struct NodeAttributeSetXY, disabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "disabled" + }, + { ATF_POINTER, 5, offsetof(struct NodeAttributeSetXY, enabled), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabled" + }, + { ATF_POINTER, 4, offsetof(struct NodeAttributeSetXY, data), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDataAttributeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "data" + }, + { ATF_POINTER, 3, offsetof(struct NodeAttributeSetXY, dWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dWidth" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSetXY, dElevation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dElevation" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSetXY, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_NodeAttributeSetXY_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSetXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* localNode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* disabled */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* enabled */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* data */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dElevation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1 = { + sizeof(struct NodeAttributeSetXY), + offsetof(struct NodeAttributeSetXY, _asn_ctx), + asn_MAP_NodeAttributeSetXY_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_NodeAttributeSetXY_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY = { + "NodeAttributeSetXY", + "NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSetXY_tags_1, + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeAttributeSetXY_1, + 7, /* Elements count */ + &asn_SPC_NodeAttributeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/NodeAttributeXY.c b/vcits/ivim/src/NodeAttributeXY.c new file mode 100644 index 0000000..4f9ef80 --- /dev/null +++ b/vcits/ivim/src/NodeAttributeXY.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "NodeAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 11 } /* (0..11,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_NodeAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 8, "stopLine" }, + { 2, 16, "roundedCapStyleA" }, + { 3, 16, "roundedCapStyleB" }, + { 4, 10, "mergePoint" }, + { 5, 12, "divergePoint" }, + { 6, 18, "downstreamStopLine" }, + { 7, 19, "downstreamStartNode" }, + { 8, 15, "closedToTraffic" }, + { 9, 10, "safeIsland" }, + { 10, 20, "curbPresentAtStepOff" }, + { 11, 14, "hydrantPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NodeAttributeXY_enum2value_1[] = { + 8, /* closedToTraffic(8) */ + 10, /* curbPresentAtStepOff(10) */ + 5, /* divergePoint(5) */ + 7, /* downstreamStartNode(7) */ + 6, /* downstreamStopLine(6) */ + 11, /* hydrantPresent(11) */ + 4, /* mergePoint(4) */ + 0, /* reserved(0) */ + 2, /* roundedCapStyleA(2) */ + 3, /* roundedCapStyleB(3) */ + 9, /* safeIsland(9) */ + 1 /* stopLine(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1 = { + asn_MAP_NodeAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NodeAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 12, /* Number of elements in the maps */ + 13, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY = { + "NodeAttributeXY", + "NodeAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_NodeAttributeXY_tags_1, + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeAttributeXY_constr_1, &asn_PER_type_NodeAttributeXY_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NodeAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/NodeAttributeXYList.c b/vcits/ivim/src/NodeAttributeXYList.c new file mode 100644 index 0000000..34ce7bd --- /dev/null +++ b/vcits/ivim/src/NodeAttributeXYList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "NodeAttributeXYList.h" + +static asn_oer_constraints_t asn_OER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_NodeAttributeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1 = { + sizeof(struct NodeAttributeXYList), + offsetof(struct NodeAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList = { + "NodeAttributeXYList", + "NodeAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeAttributeXYList_tags_1, + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeAttributeXYList_constr_1, &asn_PER_type_NodeAttributeXYList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_NodeAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/NodeLink.c b/vcits/ivim/src/NodeLink.c new file mode 100644 index 0000000..15a21aa --- /dev/null +++ b/vcits/ivim/src/NodeLink.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "NodeLink.h" + +#include "Node.h" +static asn_oer_constraints_t asn_OER_type_NodeLink_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_NodeLink_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeLink_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeLink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeLink_specs_1 = { + sizeof(struct NodeLink), + offsetof(struct NodeLink, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeLink = { + "NodeLink", + "NodeLink", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeLink_tags_1, + sizeof(asn_DEF_NodeLink_tags_1) + /sizeof(asn_DEF_NodeLink_tags_1[0]), /* 1 */ + asn_DEF_NodeLink_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeLink_tags_1) + /sizeof(asn_DEF_NodeLink_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeLink_constr_1, &asn_PER_type_NodeLink_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeLink_1, + 1, /* Single element */ + &asn_SPC_NodeLink_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/NodeListXY.c b/vcits/ivim/src/NodeListXY.c new file mode 100644 index 0000000..4fe1535 --- /dev/null +++ b/vcits/ivim/src/NodeListXY.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "NodeListXY.h" + +static asn_oer_constraints_t asn_OER_type_NodeListXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeListXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeListXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.computed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ComputedLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "computed" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeListXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* computed */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1 = { + sizeof(struct NodeListXY), + offsetof(struct NodeListXY, _asn_ctx), + offsetof(struct NodeListXY, present), + sizeof(((struct NodeListXY *)0)->present), + asn_MAP_NodeListXY_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeListXY = { + "NodeListXY", + "NodeListXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeListXY_constr_1, &asn_PER_type_NodeListXY_constr_1, CHOICE_constraint }, + asn_MBR_NodeListXY_1, + 2, /* Elements count */ + &asn_SPC_NodeListXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/NodeOffsetPointXY.c b/vcits/ivim/src/NodeOffsetPointXY.c new file mode 100644 index 0000000..a35f914 --- /dev/null +++ b/vcits/ivim/src/NodeOffsetPointXY.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "NodeOffsetPointXY.h" + +static asn_oer_constraints_t asn_OER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_20b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY1" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_22b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY2" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_24b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY3" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_26b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY4" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_28b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY5" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_32b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY6" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_LatLon), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LLmD_64b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-LatLon" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeOffsetPointXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* node-XY1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* node-XY2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* node-XY3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* node-XY4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* node-XY5 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* node-XY6 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* node-LatLon */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1 = { + sizeof(struct NodeOffsetPointXY), + offsetof(struct NodeOffsetPointXY, _asn_ctx), + offsetof(struct NodeOffsetPointXY, present), + sizeof(((struct NodeOffsetPointXY *)0)->present), + asn_MAP_NodeOffsetPointXY_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY = { + "NodeOffsetPointXY", + "NodeOffsetPointXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeOffsetPointXY_constr_1, &asn_PER_type_NodeOffsetPointXY_constr_1, CHOICE_constraint }, + asn_MBR_NodeOffsetPointXY_1, + 8, /* Elements count */ + &asn_SPC_NodeOffsetPointXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/NodeSetXY.c b/vcits/ivim/src/NodeSetXY.c new file mode 100644 index 0000000..316abb4 --- /dev/null +++ b/vcits/ivim/src/NodeSetXY.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "NodeSetXY.h" + +#include "NodeXY.h" +static asn_oer_constraints_t asn_OER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(2..63)) */}; +asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 2, 63 } /* (SIZE(2..63)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeSetXY_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1 = { + sizeof(struct NodeSetXY), + offsetof(struct NodeSetXY, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeSetXY = { + "NodeSetXY", + "NodeSetXY", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeSetXY_tags_1, + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeSetXY_constr_1, &asn_PER_type_NodeSetXY_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeSetXY_1, + 1, /* Single element */ + &asn_SPC_NodeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/NodeXY.c b/vcits/ivim/src/NodeXY.c new file mode 100644 index 0000000..0b6afec --- /dev/null +++ b/vcits/ivim/src/NodeXY.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "NodeXY.h" + +#include "NodeAttributeSetXY.h" +asn_TYPE_member_t asn_MBR_NodeXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeXY, delta), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delta" + }, + { ATF_POINTER, 1, offsetof(struct NodeXY, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_NodeXY_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_NodeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* delta */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1 = { + sizeof(struct NodeXY), + offsetof(struct NodeXY, _asn_ctx), + asn_MAP_NodeXY_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_NodeXY_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeXY = { + "NodeXY", + "NodeXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeXY_tags_1, + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeXY_1, + 2, /* Elements count */ + &asn_SPC_NodeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/NumberOfOccupants.c b/vcits/ivim/src/NumberOfOccupants.c new file mode 100644 index 0000000..aeecb03 --- /dev/null +++ b/vcits/ivim/src/NumberOfOccupants.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "NumberOfOccupants.h" + +int +NumberOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_NumberOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants = { + "NumberOfOccupants", + "NumberOfOccupants", + &asn_OP_NativeInteger, + asn_DEF_NumberOfOccupants_tags_1, + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_NumberOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_NumberOfOccupants_constr_1, &asn_PER_type_NumberOfOccupants_constr_1, NumberOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Offset-B09.c b/vcits/ivim/src/Offset-B09.c new file mode 100644 index 0000000..08b6297 --- /dev/null +++ b/vcits/ivim/src/Offset-B09.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Offset-B09.h" + +int +Offset_B09_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -256 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B09_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-256..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B09_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -256, 255 } /* (-256..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B09_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B09 = { + "Offset-B09", + "Offset-B09", + &asn_OP_NativeInteger, + asn_DEF_Offset_B09_tags_1, + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + asn_DEF_Offset_B09_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B09_constr_1, &asn_PER_type_Offset_B09_constr_1, Offset_B09_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Offset-B10.c b/vcits/ivim/src/Offset-B10.c new file mode 100644 index 0000000..483b861 --- /dev/null +++ b/vcits/ivim/src/Offset-B10.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Offset-B10.h" + +int +Offset_B10_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -512 && value <= 511)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B10_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-512..511) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B10_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -512, 511 } /* (-512..511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B10_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B10 = { + "Offset-B10", + "Offset-B10", + &asn_OP_NativeInteger, + asn_DEF_Offset_B10_tags_1, + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + asn_DEF_Offset_B10_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B10_constr_1, &asn_PER_type_Offset_B10_constr_1, Offset_B10_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Offset-B11.c b/vcits/ivim/src/Offset-B11.c new file mode 100644 index 0000000..fe59dda --- /dev/null +++ b/vcits/ivim/src/Offset-B11.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Offset-B11.h" + +int +Offset_B11_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1024 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B11_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1024..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B11_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B11_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B11 = { + "Offset-B11", + "Offset-B11", + &asn_OP_NativeInteger, + asn_DEF_Offset_B11_tags_1, + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + asn_DEF_Offset_B11_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B11_constr_1, &asn_PER_type_Offset_B11_constr_1, Offset_B11_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Offset-B12.c b/vcits/ivim/src/Offset-B12.c new file mode 100644 index 0000000..5614d5f --- /dev/null +++ b/vcits/ivim/src/Offset-B12.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Offset-B12.h" + +int +Offset_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B12 = { + "Offset-B12", + "Offset-B12", + &asn_OP_NativeInteger, + asn_DEF_Offset_B12_tags_1, + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + asn_DEF_Offset_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B12_constr_1, &asn_PER_type_Offset_B12_constr_1, Offset_B12_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Offset-B13.c b/vcits/ivim/src/Offset-B13.c new file mode 100644 index 0000000..4811c02 --- /dev/null +++ b/vcits/ivim/src/Offset-B13.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Offset-B13.h" + +int +Offset_B13_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B13_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-4096..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B13_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, -4096, 4095 } /* (-4096..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B13_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B13 = { + "Offset-B13", + "Offset-B13", + &asn_OP_NativeInteger, + asn_DEF_Offset_B13_tags_1, + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + asn_DEF_Offset_B13_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B13_constr_1, &asn_PER_type_Offset_B13_constr_1, Offset_B13_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Offset-B14.c b/vcits/ivim/src/Offset-B14.c new file mode 100644 index 0000000..b60653d --- /dev/null +++ b/vcits/ivim/src/Offset-B14.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Offset-B14.h" + +int +Offset_B14_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -8192 && value <= 8191)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B14_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-8192..8191) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B14_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, -8192, 8191 } /* (-8192..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B14_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B14 = { + "Offset-B14", + "Offset-B14", + &asn_OP_NativeInteger, + asn_DEF_Offset_B14_tags_1, + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + asn_DEF_Offset_B14_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B14_constr_1, &asn_PER_type_Offset_B14_constr_1, Offset_B14_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Offset-B16.c b/vcits/ivim/src/Offset-B16.c new file mode 100644 index 0000000..a189b2f --- /dev/null +++ b/vcits/ivim/src/Offset-B16.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Offset-B16.h" + +int +Offset_B16_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32768 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B16_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32768..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B16_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B16_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B16 = { + "Offset-B16", + "Offset-B16", + &asn_OP_NativeInteger, + asn_DEF_Offset_B16_tags_1, + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + asn_DEF_Offset_B16_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B16_constr_1, &asn_PER_type_Offset_B16_constr_1, Offset_B16_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/OpeningDaysHours.c b/vcits/ivim/src/OpeningDaysHours.c new file mode 100644 index 0000000..b779dbc --- /dev/null +++ b/vcits/ivim/src/OpeningDaysHours.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "OpeningDaysHours.h" + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_OpeningDaysHours_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours = { + "OpeningDaysHours", + "OpeningDaysHours", + &asn_OP_UTF8String, + asn_DEF_OpeningDaysHours_tags_1, + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + asn_DEF_OpeningDaysHours_tags_1, /* Same as above */ + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + { 0, 0, UTF8String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/OverlayLaneList.c b/vcits/ivim/src/OverlayLaneList.c new file mode 100644 index 0000000..5e980bc --- /dev/null +++ b/vcits/ivim/src/OverlayLaneList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "OverlayLaneList.h" + +static asn_oer_constraints_t asn_OER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_OverlayLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_OverlayLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1 = { + sizeof(struct OverlayLaneList), + offsetof(struct OverlayLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_OverlayLaneList = { + "OverlayLaneList", + "OverlayLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_OverlayLaneList_tags_1, + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + asn_DEF_OverlayLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_OverlayLaneList_constr_1, &asn_PER_type_OverlayLaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_OverlayLaneList_1, + 1, /* Single element */ + &asn_SPC_OverlayLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PassengerCapacity.c b/vcits/ivim/src/PassengerCapacity.c new file mode 100644 index 0000000..3df2775 --- /dev/null +++ b/vcits/ivim/src/PassengerCapacity.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PassengerCapacity.h" + +asn_TYPE_member_t asn_MBR_PassengerCapacity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PassengerCapacity, numberOfSeats), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfSeats" + }, + { ATF_NOFLAGS, 0, offsetof(struct PassengerCapacity, numberOfStandingPlaces), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfStandingPlaces" + }, +}; +static const ber_tlv_tag_t asn_DEF_PassengerCapacity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PassengerCapacity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* numberOfSeats */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* numberOfStandingPlaces */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PassengerCapacity_specs_1 = { + sizeof(struct PassengerCapacity), + offsetof(struct PassengerCapacity, _asn_ctx), + asn_MAP_PassengerCapacity_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PassengerCapacity = { + "PassengerCapacity", + "PassengerCapacity", + &asn_OP_SEQUENCE, + asn_DEF_PassengerCapacity_tags_1, + sizeof(asn_DEF_PassengerCapacity_tags_1) + /sizeof(asn_DEF_PassengerCapacity_tags_1[0]), /* 1 */ + asn_DEF_PassengerCapacity_tags_1, /* Same as above */ + sizeof(asn_DEF_PassengerCapacity_tags_1) + /sizeof(asn_DEF_PassengerCapacity_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PassengerCapacity_1, + 2, /* Elements count */ + &asn_SPC_PassengerCapacity_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PathDeltaTime.c b/vcits/ivim/src/PathDeltaTime.c new file mode 100644 index 0000000..0c3e536 --- /dev/null +++ b/vcits/ivim/src/PathDeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PathDeltaTime.h" + +int +PathDeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PathDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PathDeltaTime = { + "PathDeltaTime", + "PathDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_PathDeltaTime_tags_1, + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_PathDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_PathDeltaTime_constr_1, &asn_PER_type_PathDeltaTime_constr_1, PathDeltaTime_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/PathHistory.c b/vcits/ivim/src/PathHistory.c new file mode 100644 index 0000000..6d487dc --- /dev/null +++ b/vcits/ivim/src/PathHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PathHistory.h" + +#include "PathPoint.h" +static asn_oer_constraints_t asn_OER_type_PathHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..40)) */}; +asn_per_constraints_t asn_PER_type_PathHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 40 } /* (SIZE(0..40)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PathHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1 = { + sizeof(struct PathHistory), + offsetof(struct PathHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_PathHistory_tags_1, + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_PathHistory_constr_1, &asn_PER_type_PathHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PathHistory_1, + 1, /* Single element */ + &asn_SPC_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PathPoint.c b/vcits/ivim/src/PathPoint.c new file mode 100644 index 0000000..6102f0b --- /dev/null +++ b/vcits/ivim/src/PathPoint.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PathPoint.h" + +asn_TYPE_member_t asn_MBR_PathPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PathPoint, pathPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathPosition" + }, + { ATF_POINTER, 1, offsetof(struct PathPoint, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathDeltaTime" + }, +}; +static const int asn_MAP_PathPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PathPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PathPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pathDeltaTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1 = { + sizeof(struct PathPoint), + offsetof(struct PathPoint, _asn_ctx), + asn_MAP_PathPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PathPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PathPoint = { + "PathPoint", + "PathPoint", + &asn_OP_SEQUENCE, + asn_DEF_PathPoint_tags_1, + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + asn_DEF_PathPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PathPoint_1, + 2, /* Elements count */ + &asn_SPC_PathPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PayUnit.c b/vcits/ivim/src/PayUnit.c new file mode 100644 index 0000000..65a6be7 --- /dev/null +++ b/vcits/ivim/src/PayUnit.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PayUnit.h" + +int +PayUnit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PayUnit_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +asn_per_constraints_t asn_PER_type_PayUnit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PayUnit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PayUnit = { + "PayUnit", + "PayUnit", + &asn_OP_OCTET_STRING, + asn_DEF_PayUnit_tags_1, + sizeof(asn_DEF_PayUnit_tags_1) + /sizeof(asn_DEF_PayUnit_tags_1[0]), /* 1 */ + asn_DEF_PayUnit_tags_1, /* Same as above */ + sizeof(asn_DEF_PayUnit_tags_1) + /sizeof(asn_DEF_PayUnit_tags_1[0]), /* 1 */ + { &asn_OER_type_PayUnit_constr_1, &asn_PER_type_PayUnit_constr_1, PayUnit_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PaymentFee.c b/vcits/ivim/src/PaymentFee.c new file mode 100644 index 0000000..73e3f99 --- /dev/null +++ b/vcits/ivim/src/PaymentFee.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PaymentFee.h" + +asn_TYPE_member_t asn_MBR_PaymentFee_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PaymentFee, paymentFeeAmount), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "paymentFeeAmount" + }, + { ATF_NOFLAGS, 0, offsetof(struct PaymentFee, paymentFeeUnit), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PayUnit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "paymentFeeUnit" + }, +}; +static const ber_tlv_tag_t asn_DEF_PaymentFee_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PaymentFee_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* paymentFeeAmount */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* paymentFeeUnit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PaymentFee_specs_1 = { + sizeof(struct PaymentFee), + offsetof(struct PaymentFee, _asn_ctx), + asn_MAP_PaymentFee_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PaymentFee = { + "PaymentFee", + "PaymentFee", + &asn_OP_SEQUENCE, + asn_DEF_PaymentFee_tags_1, + sizeof(asn_DEF_PaymentFee_tags_1) + /sizeof(asn_DEF_PaymentFee_tags_1[0]), /* 1 */ + asn_DEF_PaymentFee_tags_1, /* Same as above */ + sizeof(asn_DEF_PaymentFee_tags_1) + /sizeof(asn_DEF_PaymentFee_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PaymentFee_1, + 2, /* Elements count */ + &asn_SPC_PaymentFee_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PaymentMeans.c b/vcits/ivim/src/PaymentMeans.c new file mode 100644 index 0000000..9fc9eb0 --- /dev/null +++ b/vcits/ivim/src/PaymentMeans.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PaymentMeans.h" + +static int +memb_pamentMeansUsageControl_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_pamentMeansUsageControl_constr_4 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_pamentMeansUsageControl_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_PaymentMeans_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PaymentMeans, personalAccountNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PersonalAccountNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "personalAccountNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct PaymentMeans, paymentMeansExpiryDate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DateCompact, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "paymentMeansExpiryDate" + }, + { ATF_NOFLAGS, 0, offsetof(struct PaymentMeans, pamentMeansUsageControl), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_pamentMeansUsageControl_constr_4, &asn_PER_memb_pamentMeansUsageControl_constr_4, memb_pamentMeansUsageControl_constraint_1 }, + 0, 0, /* No default value */ + "pamentMeansUsageControl" + }, +}; +static const ber_tlv_tag_t asn_DEF_PaymentMeans_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PaymentMeans_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* personalAccountNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* paymentMeansExpiryDate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pamentMeansUsageControl */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_PaymentMeans_specs_1 = { + sizeof(struct PaymentMeans), + offsetof(struct PaymentMeans, _asn_ctx), + asn_MAP_PaymentMeans_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PaymentMeans = { + "PaymentMeans", + "PaymentMeans", + &asn_OP_SEQUENCE, + asn_DEF_PaymentMeans_tags_1, + sizeof(asn_DEF_PaymentMeans_tags_1) + /sizeof(asn_DEF_PaymentMeans_tags_1[0]), /* 1 */ + asn_DEF_PaymentMeans_tags_1, /* Same as above */ + sizeof(asn_DEF_PaymentMeans_tags_1) + /sizeof(asn_DEF_PaymentMeans_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PaymentMeans_1, + 3, /* Elements count */ + &asn_SPC_PaymentMeans_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PaymentMeansBalance.c b/vcits/ivim/src/PaymentMeansBalance.c new file mode 100644 index 0000000..2840146 --- /dev/null +++ b/vcits/ivim/src/PaymentMeansBalance.c @@ -0,0 +1,35 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PaymentMeansBalance.h" + +/* + * This type is implemented using SignedValue, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PaymentMeansBalance_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_PaymentMeansBalance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_descriptor_t asn_DEF_PaymentMeansBalance = { + "PaymentMeansBalance", + "PaymentMeansBalance", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, CHOICE_constraint }, + asn_MBR_SignedValue_1, + 2, /* Elements count */ + &asn_SPC_SignedValue_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PaymentMeansUnit.c b/vcits/ivim/src/PaymentMeansUnit.c new file mode 100644 index 0000000..eac9520 --- /dev/null +++ b/vcits/ivim/src/PaymentMeansUnit.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PaymentMeansUnit.h" + +int +PaymentMeansUnit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const PayUnit_t *st = (const PayUnit_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using PayUnit, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PaymentMeansUnit_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_PaymentMeansUnit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PaymentMeansUnit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PaymentMeansUnit = { + "PaymentMeansUnit", + "PaymentMeansUnit", + &asn_OP_OCTET_STRING, + asn_DEF_PaymentMeansUnit_tags_1, + sizeof(asn_DEF_PaymentMeansUnit_tags_1) + /sizeof(asn_DEF_PaymentMeansUnit_tags_1[0]), /* 1 */ + asn_DEF_PaymentMeansUnit_tags_1, /* Same as above */ + sizeof(asn_DEF_PaymentMeansUnit_tags_1) + /sizeof(asn_DEF_PaymentMeansUnit_tags_1[0]), /* 1 */ + { &asn_OER_type_PaymentMeansUnit_constr_1, &asn_PER_type_PaymentMeansUnit_constr_1, PaymentMeansUnit_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PaymentSecurityData.c b/vcits/ivim/src/PaymentSecurityData.c new file mode 100644 index 0000000..b8c6a29 --- /dev/null +++ b/vcits/ivim/src/PaymentSecurityData.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PaymentSecurityData.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_PaymentSecurityData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PaymentSecurityData = { + "PaymentSecurityData", + "PaymentSecurityData", + &asn_OP_OCTET_STRING, + asn_DEF_PaymentSecurityData_tags_1, + sizeof(asn_DEF_PaymentSecurityData_tags_1) + /sizeof(asn_DEF_PaymentSecurityData_tags_1[0]), /* 1 */ + asn_DEF_PaymentSecurityData_tags_1, /* Same as above */ + sizeof(asn_DEF_PaymentSecurityData_tags_1) + /sizeof(asn_DEF_PaymentSecurityData_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PedestrianBicycleDetect.c b/vcits/ivim/src/PedestrianBicycleDetect.c new file mode 100644 index 0000000..a8a8cbf --- /dev/null +++ b/vcits/ivim/src/PedestrianBicycleDetect.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PedestrianBicycleDetect.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_PedestrianBicycleDetect_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect = { + "PedestrianBicycleDetect", + "PedestrianBicycleDetect", + &asn_OP_BOOLEAN, + asn_DEF_PedestrianBicycleDetect_tags_1, + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + asn_DEF_PedestrianBicycleDetect_tags_1, /* Same as above */ + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/PerformanceClass.c b/vcits/ivim/src/PerformanceClass.c new file mode 100644 index 0000000..dfa248f --- /dev/null +++ b/vcits/ivim/src/PerformanceClass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PerformanceClass.h" + +int +PerformanceClass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PerformanceClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PerformanceClass = { + "PerformanceClass", + "PerformanceClass", + &asn_OP_NativeInteger, + asn_DEF_PerformanceClass_tags_1, + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + asn_DEF_PerformanceClass_tags_1, /* Same as above */ + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + { &asn_OER_type_PerformanceClass_constr_1, &asn_PER_type_PerformanceClass_constr_1, PerformanceClass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/PersonalAccountNumber.c b/vcits/ivim/src/PersonalAccountNumber.c new file mode 100644 index 0000000..b172b2c --- /dev/null +++ b/vcits/ivim/src/PersonalAccountNumber.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PersonalAccountNumber.h" + +int +PersonalAccountNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PersonalAccountNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_PersonalAccountNumber_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PersonalAccountNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PersonalAccountNumber = { + "PersonalAccountNumber", + "PersonalAccountNumber", + &asn_OP_OCTET_STRING, + asn_DEF_PersonalAccountNumber_tags_1, + sizeof(asn_DEF_PersonalAccountNumber_tags_1) + /sizeof(asn_DEF_PersonalAccountNumber_tags_1[0]), /* 1 */ + asn_DEF_PersonalAccountNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_PersonalAccountNumber_tags_1) + /sizeof(asn_DEF_PersonalAccountNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_PersonalAccountNumber_constr_1, &asn_PER_type_PersonalAccountNumber_constr_1, PersonalAccountNumber_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PhoneNumber.c b/vcits/ivim/src/PhoneNumber.c new file mode 100644 index 0000000..87dd95e --- /dev/null +++ b/vcits/ivim/src/PhoneNumber.c @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PhoneNumber.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* . */ + 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */ +}; +static const int permitted_alphabet_code2value_1[11] = { +32,48,49,50,51,52,53,54,55,56,57,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is NumericString */ + const NumericString_t *st = (const NumericString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +PhoneNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const NumericString_t *st = (const NumericString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 16) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_PhoneNumber_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_PhoneNumber_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using NumericString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 32, 57 } /* (32..57) */, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + asn_PER_MAP_PhoneNumber_1_v2c, /* Value to PER code map */ + asn_PER_MAP_PhoneNumber_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_PhoneNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PhoneNumber = { + "PhoneNumber", + "PhoneNumber", + &asn_OP_NumericString, + asn_DEF_PhoneNumber_tags_1, + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + asn_DEF_PhoneNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_PhoneNumber_constr_1, &asn_PER_type_PhoneNumber_constr_1, PhoneNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/PlatooningRule.c b/vcits/ivim/src/PlatooningRule.c new file mode 100644 index 0000000..82c90ba --- /dev/null +++ b/vcits/ivim/src/PlatooningRule.c @@ -0,0 +1,144 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PlatooningRule.h" + +#include "RoadSignCodes.h" +#include "ConstraintTextLines2.h" +asn_TYPE_member_t asn_MBR_PlatooningRule_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PlatooningRule, priority), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PriorityLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "priority" + }, + { ATF_NOFLAGS, 0, offsetof(struct PlatooningRule, allowedSaeAutomationLevels), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SaeAutomationLevels, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allowedSaeAutomationLevels" + }, + { ATF_POINTER, 8, offsetof(struct PlatooningRule, maxNoOfVehicles), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MaxNoOfVehicles, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNoOfVehicles" + }, + { ATF_POINTER, 7, offsetof(struct PlatooningRule, maxLenghtOfPlatoon), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MaxLenghtOfPlatoon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxLenghtOfPlatoon" + }, + { ATF_POINTER, 6, offsetof(struct PlatooningRule, minGapBetweenVehicles), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GapBetweenVehicles, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minGapBetweenVehicles" + }, + { ATF_POINTER, 5, offsetof(struct PlatooningRule, platoonMaxSpeedLimit), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "platoonMaxSpeedLimit" + }, + { ATF_POINTER, 4, offsetof(struct PlatooningRule, platoonMinSpeedLimit), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "platoonMinSpeedLimit" + }, + { ATF_POINTER, 3, offsetof(struct PlatooningRule, platoonSpeedRecommendation), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "platoonSpeedRecommendation" + }, + { ATF_POINTER, 2, offsetof(struct PlatooningRule, roadSignCodes), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSignCodes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadSignCodes" + }, + { ATF_POINTER, 1, offsetof(struct PlatooningRule, extraText), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConstraintTextLines2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "extraText" + }, +}; +static const int asn_MAP_PlatooningRule_oms_1[] = { 2, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_PlatooningRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PlatooningRule_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* priority */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* allowedSaeAutomationLevels */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxNoOfVehicles */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxLenghtOfPlatoon */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* minGapBetweenVehicles */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* platoonMaxSpeedLimit */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* platoonMinSpeedLimit */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* platoonSpeedRecommendation */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* roadSignCodes */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* extraText */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PlatooningRule_specs_1 = { + sizeof(struct PlatooningRule), + offsetof(struct PlatooningRule, _asn_ctx), + asn_MAP_PlatooningRule_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_PlatooningRule_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PlatooningRule = { + "PlatooningRule", + "PlatooningRule", + &asn_OP_SEQUENCE, + asn_DEF_PlatooningRule_tags_1, + sizeof(asn_DEF_PlatooningRule_tags_1) + /sizeof(asn_DEF_PlatooningRule_tags_1[0]), /* 1 */ + asn_DEF_PlatooningRule_tags_1, /* Same as above */ + sizeof(asn_DEF_PlatooningRule_tags_1) + /sizeof(asn_DEF_PlatooningRule_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PlatooningRule_1, + 10, /* Elements count */ + &asn_SPC_PlatooningRule_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PlatooningRules.c b/vcits/ivim/src/PlatooningRules.c new file mode 100644 index 0000000..ff4fcf2 --- /dev/null +++ b/vcits/ivim/src/PlatooningRules.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PlatooningRules.h" + +#include "PlatooningRule.h" +static asn_oer_constraints_t asn_OER_type_PlatooningRules_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_PlatooningRules_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PlatooningRules_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PlatooningRule, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PlatooningRules_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PlatooningRules_specs_1 = { + sizeof(struct PlatooningRules), + offsetof(struct PlatooningRules, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PlatooningRules = { + "PlatooningRules", + "PlatooningRules", + &asn_OP_SEQUENCE_OF, + asn_DEF_PlatooningRules_tags_1, + sizeof(asn_DEF_PlatooningRules_tags_1) + /sizeof(asn_DEF_PlatooningRules_tags_1[0]), /* 1 */ + asn_DEF_PlatooningRules_tags_1, /* Same as above */ + sizeof(asn_DEF_PlatooningRules_tags_1) + /sizeof(asn_DEF_PlatooningRules_tags_1[0]), /* 1 */ + { &asn_OER_type_PlatooningRules_constr_1, &asn_PER_type_PlatooningRules_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PlatooningRules_1, + 1, /* Single element */ + &asn_SPC_PlatooningRules_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PolygonalLine.c b/vcits/ivim/src/PolygonalLine.c new file mode 100644 index 0000000..a18b289 --- /dev/null +++ b/vcits/ivim/src/PolygonalLine.c @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PolygonalLine.h" + +static asn_oer_constraints_t asn_OER_type_PolygonalLine_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PolygonalLine_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PolygonalLine_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PolygonalLine, choice.deltaPositions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaPositions, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaPositions" + }, + { ATF_NOFLAGS, 0, offsetof(struct PolygonalLine, choice.deltaPositionsWithAltitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePositions, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaPositionsWithAltitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct PolygonalLine, choice.absolutePositions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AbsolutePositions, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absolutePositions" + }, + { ATF_NOFLAGS, 0, offsetof(struct PolygonalLine, choice.absolutePositionsWithAltitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AbsolutePositionsWAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absolutePositionsWithAltitude" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_PolygonalLine_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaPositions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaPositionsWithAltitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* absolutePositions */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* absolutePositionsWithAltitude */ +}; +asn_CHOICE_specifics_t asn_SPC_PolygonalLine_specs_1 = { + sizeof(struct PolygonalLine), + offsetof(struct PolygonalLine, _asn_ctx), + offsetof(struct PolygonalLine, present), + sizeof(((struct PolygonalLine *)0)->present), + asn_MAP_PolygonalLine_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + 4 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_PolygonalLine = { + "PolygonalLine", + "PolygonalLine", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_PolygonalLine_constr_1, &asn_PER_type_PolygonalLine_constr_1, CHOICE_constraint }, + asn_MBR_PolygonalLine_1, + 4, /* Elements count */ + &asn_SPC_PolygonalLine_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PosCentMass.c b/vcits/ivim/src/PosCentMass.c new file mode 100644 index 0000000..65764c3 --- /dev/null +++ b/vcits/ivim/src/PosCentMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PosCentMass.h" + +int +PosCentMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosCentMass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..63) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosCentMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosCentMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosCentMass = { + "PosCentMass", + "PosCentMass", + &asn_OP_NativeInteger, + asn_DEF_PosCentMass_tags_1, + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + asn_DEF_PosCentMass_tags_1, /* Same as above */ + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + { &asn_OER_type_PosCentMass_constr_1, &asn_PER_type_PosCentMass_constr_1, PosCentMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/PosConfidenceEllipse.c b/vcits/ivim/src/PosConfidenceEllipse.c new file mode 100644 index 0000000..aed00a1 --- /dev/null +++ b/vcits/ivim/src/PosConfidenceEllipse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PosConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMinorConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorOrientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PosConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PosConfidenceEllipse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* semiMajorOrientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1 = { + sizeof(struct PosConfidenceEllipse), + offsetof(struct PosConfidenceEllipse, _asn_ctx), + asn_MAP_PosConfidenceEllipse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse = { + "PosConfidenceEllipse", + "PosConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_PosConfidenceEllipse_tags_1, + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_PosConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PosConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_PosConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PosFrontAx.c b/vcits/ivim/src/PosFrontAx.c new file mode 100644 index 0000000..388b2ec --- /dev/null +++ b/vcits/ivim/src/PosFrontAx.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PosFrontAx.h" + +int +PosFrontAx_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..20) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (1..20) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosFrontAx_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosFrontAx = { + "PosFrontAx", + "PosFrontAx", + &asn_OP_NativeInteger, + asn_DEF_PosFrontAx_tags_1, + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + asn_DEF_PosFrontAx_tags_1, /* Same as above */ + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + { &asn_OER_type_PosFrontAx_constr_1, &asn_PER_type_PosFrontAx_constr_1, PosFrontAx_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/PosLonCarr.c b/vcits/ivim/src/PosLonCarr.c new file mode 100644 index 0000000..f89660e --- /dev/null +++ b/vcits/ivim/src/PosLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PosLonCarr.h" + +int +PosLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosLonCarr = { + "PosLonCarr", + "PosLonCarr", + &asn_OP_NativeInteger, + asn_DEF_PosLonCarr_tags_1, + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + asn_DEF_PosLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_PosLonCarr_constr_1, &asn_PER_type_PosLonCarr_constr_1, PosLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/PosPillar.c b/vcits/ivim/src/PosPillar.c new file mode 100644 index 0000000..5259b77 --- /dev/null +++ b/vcits/ivim/src/PosPillar.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PosPillar.h" + +int +PosPillar_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 30)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosPillar_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..30) */, + -1}; +asn_per_constraints_t asn_PER_type_PosPillar_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 30 } /* (1..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosPillar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosPillar = { + "PosPillar", + "PosPillar", + &asn_OP_NativeInteger, + asn_DEF_PosPillar_tags_1, + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + asn_DEF_PosPillar_tags_1, /* Same as above */ + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + { &asn_OER_type_PosPillar_constr_1, &asn_PER_type_PosPillar_constr_1, PosPillar_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Position3D-addGrpC.c b/vcits/ivim/src/Position3D-addGrpC.c new file mode 100644 index 0000000..e17becd --- /dev/null +++ b/vcits/ivim/src/Position3D-addGrpC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Position3D-addGrpC.h" + +asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D_addGrpC, altitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_Position3D_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1 = { + sizeof(struct Position3D_addGrpC), + offsetof(struct Position3D_addGrpC, _asn_ctx), + asn_MAP_Position3D_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC = { + "Position3D-addGrpC", + "Position3D-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_addGrpC_tags_1, + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_Position3D_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Position3D_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_Position3D_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Position3D.c b/vcits/ivim/src/Position3D.c new file mode 100644 index 0000000..baff559 --- /dev/null +++ b/vcits/ivim/src/Position3D.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Position3D.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct Position3D__regional), + offsetof(struct Position3D__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Position3D_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D, lat), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_NOFLAGS, 0, offsetof(struct Position3D, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "long" + }, + { ATF_POINTER, 2, offsetof(struct Position3D, elevation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Elevation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 1, offsetof(struct Position3D, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_Position3D_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Position3D_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1 = { + sizeof(struct Position3D), + offsetof(struct Position3D, _asn_ctx), + asn_MAP_Position3D_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Position3D_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D = { + "Position3D", + "Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_tags_1, + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + asn_DEF_Position3D_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Position3D_1, + 4, /* Elements count */ + &asn_SPC_Position3D_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PositionConfidence.c b/vcits/ivim/src/PositionConfidence.c new file mode 100644 index 0000000..b1ab8ba --- /dev/null +++ b/vcits/ivim/src/PositionConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PositionConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositionConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 5, "a500m" }, + { 2, 5, "a200m" }, + { 3, 5, "a100m" }, + { 4, 4, "a50m" }, + { 5, 4, "a20m" }, + { 6, 4, "a10m" }, + { 7, 3, "a5m" }, + { 8, 3, "a2m" }, + { 9, 3, "a1m" }, + { 10, 5, "a50cm" }, + { 11, 5, "a20cm" }, + { 12, 5, "a10cm" }, + { 13, 4, "a5cm" }, + { 14, 4, "a2cm" }, + { 15, 4, "a1cm" } +}; +static const unsigned int asn_MAP_PositionConfidence_enum2value_1[] = { + 3, /* a100m(3) */ + 12, /* a10cm(12) */ + 6, /* a10m(6) */ + 15, /* a1cm(15) */ + 9, /* a1m(9) */ + 2, /* a200m(2) */ + 11, /* a20cm(11) */ + 5, /* a20m(5) */ + 14, /* a2cm(14) */ + 8, /* a2m(8) */ + 1, /* a500m(1) */ + 10, /* a50cm(10) */ + 4, /* a50m(4) */ + 13, /* a5cm(13) */ + 7, /* a5m(7) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1 = { + asn_MAP_PositionConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositionConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidence = { + "PositionConfidence", + "PositionConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_PositionConfidence_tags_1, + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionConfidence_constr_1, &asn_PER_type_PositionConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositionConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PositionConfidenceSet.c b/vcits/ivim/src/PositionConfidenceSet.c new file mode 100644 index 0000000..69231e3 --- /dev/null +++ b/vcits/ivim/src/PositionConfidenceSet.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PositionConfidenceSet.h" + +asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, pos), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pos" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, elevation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ElevationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidenceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionConfidenceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pos */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* elevation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1 = { + sizeof(struct PositionConfidenceSet), + offsetof(struct PositionConfidenceSet, _asn_ctx), + asn_MAP_PositionConfidenceSet_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet = { + "PositionConfidenceSet", + "PositionConfidenceSet", + &asn_OP_SEQUENCE, + asn_DEF_PositionConfidenceSet_tags_1, + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidenceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionConfidenceSet_1, + 2, /* Elements count */ + &asn_SPC_PositionConfidenceSet_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PositionOfOccupants.c b/vcits/ivim/src/PositionOfOccupants.c new file mode 100644 index 0000000..425236d --- /dev/null +++ b/vcits/ivim/src/PositionOfOccupants.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PositionOfOccupants.h" + +int +PositionOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { 0, 0 }, + 20 /* (SIZE(20..20)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PositionOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants = { + "PositionOfOccupants", + "PositionOfOccupants", + &asn_OP_BIT_STRING, + asn_DEF_PositionOfOccupants_tags_1, + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_PositionOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfOccupants_constr_1, &asn_PER_type_PositionOfOccupants_constr_1, PositionOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PositionOfPillars.c b/vcits/ivim/src/PositionOfPillars.c new file mode 100644 index 0000000..fdeae1d --- /dev/null +++ b/vcits/ivim/src/PositionOfPillars.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PositionOfPillars.h" + +static asn_oer_constraints_t asn_OER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_PositionOfPillars_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PosPillar, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionOfPillars_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_PositionOfPillars_specs_1 = { + sizeof(struct PositionOfPillars), + offsetof(struct PositionOfPillars, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfPillars = { + "PositionOfPillars", + "PositionOfPillars", + &asn_OP_SEQUENCE_OF, + asn_DEF_PositionOfPillars_tags_1, + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + asn_DEF_PositionOfPillars_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfPillars_constr_1, &asn_PER_type_PositionOfPillars_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PositionOfPillars_1, + 1, /* Single element */ + &asn_SPC_PositionOfPillars_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PositionalAccuracy.c b/vcits/ivim/src/PositionalAccuracy.c new file mode 100644 index 0000000..8d1dc36 --- /dev/null +++ b/vcits/ivim/src/PositionalAccuracy.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PositionalAccuracy.h" + +asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMajor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMinor), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMinorAxisAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, orientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisOrientation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "orientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionalAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionalAccuracy_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinor */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* orientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1 = { + sizeof(struct PositionalAccuracy), + offsetof(struct PositionalAccuracy, _asn_ctx), + asn_MAP_PositionalAccuracy_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy = { + "PositionalAccuracy", + "PositionalAccuracy", + &asn_OP_SEQUENCE, + asn_DEF_PositionalAccuracy_tags_1, + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + asn_DEF_PositionalAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionalAccuracy_1, + 3, /* Elements count */ + &asn_SPC_PositionalAccuracy_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PositioningSolutionType.c b/vcits/ivim/src/PositioningSolutionType.c new file mode 100644 index 0000000..ab78d76 --- /dev/null +++ b/vcits/ivim/src/PositioningSolutionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PositioningSolutionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositioningSolutionType_value2enum_1[] = { + { 0, 21, "noPositioningSolution" }, + { 1, 5, "sGNSS" }, + { 2, 5, "dGNSS" }, + { 3, 11, "sGNSSplusDR" }, + { 4, 11, "dGNSSplusDR" }, + { 5, 2, "dR" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PositioningSolutionType_enum2value_1[] = { + 2, /* dGNSS(2) */ + 4, /* dGNSSplusDR(4) */ + 5, /* dR(5) */ + 0, /* noPositioningSolution(0) */ + 1, /* sGNSS(1) */ + 3 /* sGNSSplusDR(3) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_PositioningSolutionType_specs_1 = { + asn_MAP_PositioningSolutionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositioningSolutionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositioningSolutionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType = { + "PositioningSolutionType", + "PositioningSolutionType", + &asn_OP_NativeEnumerated, + asn_DEF_PositioningSolutionType_tags_1, + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + asn_DEF_PositioningSolutionType_tags_1, /* Same as above */ + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + { &asn_OER_type_PositioningSolutionType_constr_1, &asn_PER_type_PositioningSolutionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositioningSolutionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PostCrashSubCauseCode.c b/vcits/ivim/src/PostCrashSubCauseCode.c new file mode 100644 index 0000000..5c77283 --- /dev/null +++ b/vcits/ivim/src/PostCrashSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PostCrashSubCauseCode.h" + +int +PostCrashSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PostCrashSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode = { + "PostCrashSubCauseCode", + "PostCrashSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_PostCrashSubCauseCode_tags_1, + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_PostCrashSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_PostCrashSubCauseCode_constr_1, &asn_PER_type_PostCrashSubCauseCode_constr_1, PostCrashSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/PreemptPriorityList.c b/vcits/ivim/src/PreemptPriorityList.c new file mode 100644 index 0000000..b98f959 --- /dev/null +++ b/vcits/ivim/src/PreemptPriorityList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PreemptPriorityList.h" + +#include "SignalControlZone.h" +static asn_oer_constraints_t asn_OER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalControlZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PreemptPriorityList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1 = { + sizeof(struct PreemptPriorityList), + offsetof(struct PreemptPriorityList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList = { + "PreemptPriorityList", + "PreemptPriorityList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PreemptPriorityList_tags_1, + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + asn_DEF_PreemptPriorityList_tags_1, /* Same as above */ + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + { &asn_OER_type_PreemptPriorityList_constr_1, &asn_PER_type_PreemptPriorityList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PreemptPriorityList_1, + 1, /* Single element */ + &asn_SPC_PreemptPriorityList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PrioritizationResponse.c b/vcits/ivim/src/PrioritizationResponse.c new file mode 100644 index 0000000..6c7545c --- /dev/null +++ b/vcits/ivim/src/PrioritizationResponse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PrioritizationResponse.h" + +asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, priorState), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "priorState" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PrioritizationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* priorState */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroup */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1 = { + sizeof(struct PrioritizationResponse), + offsetof(struct PrioritizationResponse, _asn_ctx), + asn_MAP_PrioritizationResponse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse = { + "PrioritizationResponse", + "PrioritizationResponse", + &asn_OP_SEQUENCE, + asn_DEF_PrioritizationResponse_tags_1, + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PrioritizationResponse_1, + 3, /* Elements count */ + &asn_SPC_PrioritizationResponse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PrioritizationResponseList.c b/vcits/ivim/src/PrioritizationResponseList.c new file mode 100644 index 0000000..67b9036 --- /dev/null +++ b/vcits/ivim/src/PrioritizationResponseList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PrioritizationResponseList.h" + +#include "PrioritizationResponse.h" +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PrioritizationResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1 = { + sizeof(struct PrioritizationResponseList), + offsetof(struct PrioritizationResponseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList = { + "PrioritizationResponseList", + "PrioritizationResponseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PrioritizationResponseList_tags_1, + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseList_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + { &asn_OER_type_PrioritizationResponseList_constr_1, &asn_PER_type_PrioritizationResponseList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PrioritizationResponseList_1, + 1, /* Single element */ + &asn_SPC_PrioritizationResponseList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PrioritizationResponseStatus.c b/vcits/ivim/src/PrioritizationResponseStatus.c new file mode 100644 index 0000000..01efd29 --- /dev/null +++ b/vcits/ivim/src/PrioritizationResponseStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PrioritizationResponseStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PrioritizationResponseStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 9, "requested" }, + { 2, 10, "processing" }, + { 3, 17, "watchOtherTraffic" }, + { 4, 7, "granted" }, + { 5, 8, "rejected" }, + { 6, 11, "maxPresence" }, + { 7, 15, "reserviceLocked" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PrioritizationResponseStatus_enum2value_1[] = { + 4, /* granted(4) */ + 6, /* maxPresence(6) */ + 2, /* processing(2) */ + 5, /* rejected(5) */ + 1, /* requested(1) */ + 7, /* reserviceLocked(7) */ + 0, /* unknown(0) */ + 3 /* watchOtherTraffic(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1 = { + asn_MAP_PrioritizationResponseStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PrioritizationResponseStatus_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus = { + "PrioritizationResponseStatus", + "PrioritizationResponseStatus", + &asn_OP_NativeEnumerated, + asn_DEF_PrioritizationResponseStatus_tags_1, + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_PrioritizationResponseStatus_constr_1, &asn_PER_type_PrioritizationResponseStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PrioritizationResponseStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PriorityLevel.c b/vcits/ivim/src/PriorityLevel.c new file mode 100644 index 0000000..992c444 --- /dev/null +++ b/vcits/ivim/src/PriorityLevel.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PriorityLevel.h" + +int +PriorityLevel_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PriorityLevel_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..2) */, + -1}; +asn_per_constraints_t asn_PER_type_PriorityLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PriorityLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PriorityLevel = { + "PriorityLevel", + "PriorityLevel", + &asn_OP_NativeInteger, + asn_DEF_PriorityLevel_tags_1, + sizeof(asn_DEF_PriorityLevel_tags_1) + /sizeof(asn_DEF_PriorityLevel_tags_1[0]), /* 1 */ + asn_DEF_PriorityLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_PriorityLevel_tags_1) + /sizeof(asn_DEF_PriorityLevel_tags_1[0]), /* 1 */ + { &asn_OER_type_PriorityLevel_constr_1, &asn_PER_type_PriorityLevel_constr_1, PriorityLevel_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/PriorityRequestType.c b/vcits/ivim/src/PriorityRequestType.c new file mode 100644 index 0000000..8e71223 --- /dev/null +++ b/vcits/ivim/src/PriorityRequestType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PriorityRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PriorityRequestType_value2enum_1[] = { + { 0, 27, "priorityRequestTypeReserved" }, + { 1, 15, "priorityRequest" }, + { 2, 21, "priorityRequestUpdate" }, + { 3, 20, "priorityCancellation" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PriorityRequestType_enum2value_1[] = { + 3, /* priorityCancellation(3) */ + 1, /* priorityRequest(1) */ + 0, /* priorityRequestTypeReserved(0) */ + 2 /* priorityRequestUpdate(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1 = { + asn_MAP_PriorityRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PriorityRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PriorityRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PriorityRequestType = { + "PriorityRequestType", + "PriorityRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PriorityRequestType_tags_1, + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + asn_DEF_PriorityRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_PriorityRequestType_constr_1, &asn_PER_type_PriorityRequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PriorityRequestType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ProtectedCommunicationZone.c b/vcits/ivim/src/ProtectedCommunicationZone.c new file mode 100644 index 0000000..a75210b --- /dev/null +++ b/vcits/ivim/src/ProtectedCommunicationZone.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ProtectedCommunicationZone.h" + +asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneType" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expiryTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 2, offsetof(struct ProtectedCommunicationZone, protectedZoneRadius), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneRadius, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneRadius" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, protectedZoneID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneID" + }, +}; +static const int asn_MAP_ProtectedCommunicationZone_oms_1[] = { 1, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ProtectedCommunicationZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expiryTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protectedZoneRadius */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* protectedZoneID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1 = { + sizeof(struct ProtectedCommunicationZone), + offsetof(struct ProtectedCommunicationZone, _asn_ctx), + asn_MAP_ProtectedCommunicationZone_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ProtectedCommunicationZone_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone = { + "ProtectedCommunicationZone", + "ProtectedCommunicationZone", + &asn_OP_SEQUENCE, + asn_DEF_ProtectedCommunicationZone_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZone_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ProtectedCommunicationZone_1, + 6, /* Elements count */ + &asn_SPC_ProtectedCommunicationZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ProtectedCommunicationZonesRSU.c b/vcits/ivim/src/ProtectedCommunicationZonesRSU.c new file mode 100644 index 0000000..18da80e --- /dev/null +++ b/vcits/ivim/src/ProtectedCommunicationZonesRSU.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ProtectedCommunicationZonesRSU.h" + +#include "ProtectedCommunicationZone.h" +static asn_oer_constraints_t asn_OER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ProtectedCommunicationZonesRSU_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtectedCommunicationZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZonesRSU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ProtectedCommunicationZonesRSU_specs_1 = { + sizeof(struct ProtectedCommunicationZonesRSU), + offsetof(struct ProtectedCommunicationZonesRSU, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU = { + "ProtectedCommunicationZonesRSU", + "ProtectedCommunicationZonesRSU", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedCommunicationZonesRSU_constr_1, &asn_PER_type_ProtectedCommunicationZonesRSU_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtectedCommunicationZonesRSU_1, + 1, /* Single element */ + &asn_SPC_ProtectedCommunicationZonesRSU_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ProtectedZoneID.c b/vcits/ivim/src/ProtectedZoneID.c new file mode 100644 index 0000000..fa473c3 --- /dev/null +++ b/vcits/ivim/src/ProtectedZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ProtectedZoneID.h" + +int +ProtectedZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID = { + "ProtectedZoneID", + "ProtectedZoneID", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneID_tags_1, + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneID_constr_1, &asn_PER_type_ProtectedZoneID_constr_1, ProtectedZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ProtectedZoneRadius.c b/vcits/ivim/src/ProtectedZoneRadius.c new file mode 100644 index 0000000..f8ed94c --- /dev/null +++ b/vcits/ivim/src/ProtectedZoneRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ProtectedZoneRadius.h" + +int +ProtectedZoneRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 255 } /* (1..255,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius = { + "ProtectedZoneRadius", + "ProtectedZoneRadius", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneRadius_tags_1, + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneRadius_constr_1, &asn_PER_type_ProtectedZoneRadius_constr_1, ProtectedZoneRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ProtectedZoneType.c b/vcits/ivim/src/ProtectedZoneType.c new file mode 100644 index 0000000..bf98905 --- /dev/null +++ b/vcits/ivim/src/ProtectedZoneType.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ProtectedZoneType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ProtectedZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ProtectedZoneType_enum2value_1[] = { + 0, /* permanentCenDsrcTolling(0) */ + 1 /* temporaryCenDsrcTolling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1 = { + asn_MAP_ProtectedZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ProtectedZoneType_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType = { + "ProtectedZoneType", + "ProtectedZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_ProtectedZoneType_tags_1, + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneType_constr_1, &asn_PER_type_ProtectedZoneType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ProtectedZoneType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Provider.c b/vcits/ivim/src/Provider.c new file mode 100644 index 0000000..8638751 --- /dev/null +++ b/vcits/ivim/src/Provider.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Provider.h" + +asn_TYPE_member_t asn_MBR_Provider_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Provider, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct Provider, providerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IssuerIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "providerIdentifier" + }, +}; +static const ber_tlv_tag_t asn_DEF_Provider_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Provider_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* providerIdentifier */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Provider_specs_1 = { + sizeof(struct Provider), + offsetof(struct Provider, _asn_ctx), + asn_MAP_Provider_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Provider = { + "Provider", + "Provider", + &asn_OP_SEQUENCE, + asn_DEF_Provider_tags_1, + sizeof(asn_DEF_Provider_tags_1) + /sizeof(asn_DEF_Provider_tags_1[0]), /* 1 */ + asn_DEF_Provider_tags_1, /* Same as above */ + sizeof(asn_DEF_Provider_tags_1) + /sizeof(asn_DEF_Provider_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Provider_1, + 2, /* Elements count */ + &asn_SPC_Provider_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PtActivation.c b/vcits/ivim/src/PtActivation.c new file mode 100644 index 0000000..0447f11 --- /dev/null +++ b/vcits/ivim/src/PtActivation.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PtActivation.h" + +static asn_TYPE_member_t asn_MBR_PtActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationData" + }, +}; +static const ber_tlv_tag_t asn_DEF_PtActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PtActivation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptActivationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivationData */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_PtActivation_specs_1 = { + sizeof(struct PtActivation), + offsetof(struct PtActivation, _asn_ctx), + asn_MAP_PtActivation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PtActivation = { + "PtActivation", + "PtActivation", + &asn_OP_SEQUENCE, + asn_DEF_PtActivation_tags_1, + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + asn_DEF_PtActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PtActivation_1, + 2, /* Elements count */ + &asn_SPC_PtActivation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PtActivationData.c b/vcits/ivim/src/PtActivationData.c new file mode 100644 index 0000000..6f700d3 --- /dev/null +++ b/vcits/ivim/src/PtActivationData.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PtActivationData.h" + +int +PtActivationData_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationData_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..20)) */}; +asn_per_constraints_t asn_PER_type_PtActivationData_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (SIZE(1..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationData = { + "PtActivationData", + "PtActivationData", + &asn_OP_OCTET_STRING, + asn_DEF_PtActivationData_tags_1, + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + asn_DEF_PtActivationData_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationData_constr_1, &asn_PER_type_PtActivationData_constr_1, PtActivationData_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PtActivationType.c b/vcits/ivim/src/PtActivationType.c new file mode 100644 index 0000000..4fe63d3 --- /dev/null +++ b/vcits/ivim/src/PtActivationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PtActivationType.h" + +int +PtActivationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_PtActivationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationType = { + "PtActivationType", + "PtActivationType", + &asn_OP_NativeInteger, + asn_DEF_PtActivationType_tags_1, + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + asn_DEF_PtActivationType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationType_constr_1, &asn_PER_type_PtActivationType_constr_1, PtActivationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/PtvRequestType.c b/vcits/ivim/src/PtvRequestType.c new file mode 100644 index 0000000..56677d1 --- /dev/null +++ b/vcits/ivim/src/PtvRequestType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PtvRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtvRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PtvRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PtvRequestType_value2enum_1[] = { + { 0, 10, "preRequest" }, + { 1, 11, "mainRequest" }, + { 2, 16, "doorCloseRequest" }, + { 3, 13, "cancelRequest" }, + { 4, 16, "emergencyRequest" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PtvRequestType_enum2value_1[] = { + 3, /* cancelRequest(3) */ + 2, /* doorCloseRequest(2) */ + 4, /* emergencyRequest(4) */ + 1, /* mainRequest(1) */ + 0 /* preRequest(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PtvRequestType_specs_1 = { + asn_MAP_PtvRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PtvRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 6, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PtvRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtvRequestType = { + "PtvRequestType", + "PtvRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PtvRequestType_tags_1, + sizeof(asn_DEF_PtvRequestType_tags_1) + /sizeof(asn_DEF_PtvRequestType_tags_1[0]), /* 1 */ + asn_DEF_PtvRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtvRequestType_tags_1) + /sizeof(asn_DEF_PtvRequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtvRequestType_constr_1, &asn_PER_type_PtvRequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PtvRequestType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/PurseBalance.c b/vcits/ivim/src/PurseBalance.c new file mode 100644 index 0000000..97a01f2 --- /dev/null +++ b/vcits/ivim/src/PurseBalance.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "PurseBalance.h" + +asn_TYPE_member_t asn_MBR_PurseBalance_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PurseBalance, purseValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_SignedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "purseValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct PurseBalance, purseUnit), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PayUnit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "purseUnit" + }, +}; +static const ber_tlv_tag_t asn_DEF_PurseBalance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PurseBalance_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* purseValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* purseUnit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PurseBalance_specs_1 = { + sizeof(struct PurseBalance), + offsetof(struct PurseBalance, _asn_ctx), + asn_MAP_PurseBalance_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PurseBalance = { + "PurseBalance", + "PurseBalance", + &asn_OP_SEQUENCE, + asn_DEF_PurseBalance_tags_1, + sizeof(asn_DEF_PurseBalance_tags_1) + /sizeof(asn_DEF_PurseBalance_tags_1[0]), /* 1 */ + asn_DEF_PurseBalance_tags_1, /* Same as above */ + sizeof(asn_DEF_PurseBalance_tags_1) + /sizeof(asn_DEF_PurseBalance_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PurseBalance_1, + 2, /* Elements count */ + &asn_SPC_PurseBalance_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RSCUnit.c b/vcits/ivim/src/RSCUnit.c new file mode 100644 index 0000000..932ea7f --- /dev/null +++ b/vcits/ivim/src/RSCUnit.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RSCUnit.h" + +int +RSCUnit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RSCUnit_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_RSCUnit_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RSCUnit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RSCUnit = { + "RSCUnit", + "RSCUnit", + &asn_OP_NativeInteger, + asn_DEF_RSCUnit_tags_1, + sizeof(asn_DEF_RSCUnit_tags_1) + /sizeof(asn_DEF_RSCUnit_tags_1[0]), /* 1 */ + asn_DEF_RSCUnit_tags_1, /* Same as above */ + sizeof(asn_DEF_RSCUnit_tags_1) + /sizeof(asn_DEF_RSCUnit_tags_1[0]), /* 1 */ + { &asn_OER_type_RSCUnit_constr_1, &asn_PER_type_RSCUnit_constr_1, RSCUnit_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/RSCode.c b/vcits/ivim/src/RSCode.c new file mode 100644 index 0000000..0f2b2e5 --- /dev/null +++ b/vcits/ivim/src/RSCode.c @@ -0,0 +1,205 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RSCode.h" + +static int +memb_itisCodes_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_layoutComponentId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_itisCodes_constr_6 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_itisCodes_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_code_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_code_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_layoutComponentId_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_layoutComponentId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (1..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_code_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct RSCode__code, choice.viennaConvention), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VcCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "viennaConvention" + }, + { ATF_NOFLAGS, 0, offsetof(struct RSCode__code, choice.iso14823), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ISO14823Code, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iso14823" + }, + { ATF_NOFLAGS, 0, offsetof(struct RSCode__code, choice.itisCodes), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_itisCodes_constr_6, &asn_PER_memb_itisCodes_constr_6, memb_itisCodes_constraint_3 }, + 0, 0, /* No default value */ + "itisCodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct RSCode__code, choice.anyCatalogue), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AnyCatalogue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "anyCatalogue" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_code_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* viennaConvention */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iso14823 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* itisCodes */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* anyCatalogue */ +}; +static asn_CHOICE_specifics_t asn_SPC_code_specs_3 = { + sizeof(struct RSCode__code), + offsetof(struct RSCode__code, _asn_ctx), + offsetof(struct RSCode__code, present), + sizeof(((struct RSCode__code *)0)->present), + asn_MAP_code_tag2el_3, + 4, /* Count of tags in the map */ + 0, 0, + 4 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_code_3 = { + "code", + "code", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_code_constr_3, &asn_PER_type_code_constr_3, CHOICE_constraint }, + asn_MBR_code_3, + 4, /* Elements count */ + &asn_SPC_code_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RSCode_1[] = { + { ATF_POINTER, 1, offsetof(struct RSCode, layoutComponentId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_layoutComponentId_constr_2, &asn_PER_memb_layoutComponentId_constr_2, memb_layoutComponentId_constraint_1 }, + 0, 0, /* No default value */ + "layoutComponentId" + }, + { ATF_NOFLAGS, 0, offsetof(struct RSCode, code), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_code_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "code" + }, +}; +static const int asn_MAP_RSCode_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_RSCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RSCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* layoutComponentId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* code */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RSCode_specs_1 = { + sizeof(struct RSCode), + offsetof(struct RSCode, _asn_ctx), + asn_MAP_RSCode_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RSCode_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RSCode = { + "RSCode", + "RSCode", + &asn_OP_SEQUENCE, + asn_DEF_RSCode_tags_1, + sizeof(asn_DEF_RSCode_tags_1) + /sizeof(asn_DEF_RSCode_tags_1[0]), /* 1 */ + asn_DEF_RSCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RSCode_tags_1) + /sizeof(asn_DEF_RSCode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RSCode_1, + 2, /* Elements count */ + &asn_SPC_RSCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RTCM-Revision.c b/vcits/ivim/src/RTCM-Revision.c new file mode 100644 index 0000000..102948e --- /dev/null +++ b/vcits/ivim/src/RTCM-Revision.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RTCM-Revision.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RTCM_Revision_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "rtcmRev2" }, + { 2, 8, "rtcmRev3" }, + { 3, 8, "reserved" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RTCM_Revision_enum2value_1[] = { + 3, /* reserved(3) */ + 1, /* rtcmRev2(1) */ + 2, /* rtcmRev3(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1 = { + asn_MAP_RTCM_Revision_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RTCM_Revision_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RTCM_Revision_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCM_Revision = { + "RTCM-Revision", + "RTCM-Revision", + &asn_OP_NativeEnumerated, + asn_DEF_RTCM_Revision_tags_1, + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + asn_DEF_RTCM_Revision_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCM_Revision_constr_1, &asn_PER_type_RTCM_Revision_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RTCM_Revision_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RTCMcorrections.c b/vcits/ivim/src/RTCMcorrections.c new file mode 100644 index 0000000..e7ad7c0 --- /dev/null +++ b/vcits/ivim/src/RTCMcorrections.c @@ -0,0 +1,194 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RTCMcorrections.h" + +#include "FullPositionVector.h" +#include "RTCMheader.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RTCMcorrections, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct RTCMcorrections__regional), + offsetof(struct RTCMcorrections__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RTCMcorrections_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, rev), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCM_Revision, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rev" + }, + { ATF_POINTER, 3, offsetof(struct RTCMcorrections, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 2, offsetof(struct RTCMcorrections, anchorPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FullPositionVector, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "anchorPoint" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, rtcmHeader), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMheader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rtcmHeader" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgs), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMmessageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgs" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RTCMcorrections_oms_1[] = { 2, 3, 4, 6 }; +static const ber_tlv_tag_t asn_DEF_RTCMcorrections_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMcorrections_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rev */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* anchorPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rtcmHeader */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* msgs */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RTCMcorrections_specs_1 = { + sizeof(struct RTCMcorrections), + offsetof(struct RTCMcorrections, _asn_ctx), + asn_MAP_RTCMcorrections_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_RTCMcorrections_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMcorrections = { + "RTCMcorrections", + "RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_RTCMcorrections_tags_1, + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + asn_DEF_RTCMcorrections_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMcorrections_1, + 7, /* Elements count */ + &asn_SPC_RTCMcorrections_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RTCMheader.c b/vcits/ivim/src/RTCMheader.c new file mode 100644 index 0000000..6bba59e --- /dev/null +++ b/vcits/ivim/src/RTCMheader.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RTCMheader.h" + +asn_TYPE_member_t asn_MBR_RTCMheader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, status), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNSSstatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, offsetSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AntennaOffsetSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMheader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMheader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* offsetSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1 = { + sizeof(struct RTCMheader), + offsetof(struct RTCMheader, _asn_ctx), + asn_MAP_RTCMheader_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMheader = { + "RTCMheader", + "RTCMheader", + &asn_OP_SEQUENCE, + asn_DEF_RTCMheader_tags_1, + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + asn_DEF_RTCMheader_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMheader_1, + 2, /* Elements count */ + &asn_SPC_RTCMheader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RTCMmessage.c b/vcits/ivim/src/RTCMmessage.c new file mode 100644 index 0000000..8f1845a --- /dev/null +++ b/vcits/ivim/src/RTCMmessage.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RTCMmessage.h" + +int +RTCMmessage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1023)) */}; +asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (SIZE(1..1023)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessage = { + "RTCMmessage", + "RTCMmessage", + &asn_OP_OCTET_STRING, + asn_DEF_RTCMmessage_tags_1, + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCMmessage_constr_1, &asn_PER_type_RTCMmessage_constr_1, RTCMmessage_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RTCMmessageList.c b/vcits/ivim/src/RTCMmessageList.c new file mode 100644 index 0000000..cc87c00 --- /dev/null +++ b/vcits/ivim/src/RTCMmessageList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RTCMmessageList.h" + +static asn_oer_constraints_t asn_OER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RTCMmessageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RTCMmessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1 = { + sizeof(struct RTCMmessageList), + offsetof(struct RTCMmessageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessageList = { + "RTCMmessageList", + "RTCMmessageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RTCMmessageList_tags_1, + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessageList_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCMmessageList_constr_1, &asn_PER_type_RTCMmessageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RTCMmessageList_1, + 1, /* Single element */ + &asn_SPC_RTCMmessageList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RccPart.c b/vcits/ivim/src/RccPart.c new file mode 100644 index 0000000..87fee02 --- /dev/null +++ b/vcits/ivim/src/RccPart.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RccPart.h" + +asn_TYPE_member_t asn_MBR_RccPart_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RccPart, relevanceZoneIds), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneIds, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "relevanceZoneIds" + }, + { ATF_NOFLAGS, 0, offsetof(struct RccPart, roadType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadType" + }, + { ATF_NOFLAGS, 0, offsetof(struct RccPart, laneConfiguration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneConfiguration" + }, +}; +static const ber_tlv_tag_t asn_DEF_RccPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RccPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* relevanceZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* roadType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* laneConfiguration */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RccPart_specs_1 = { + sizeof(struct RccPart), + offsetof(struct RccPart, _asn_ctx), + asn_MAP_RccPart_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RccPart = { + "RccPart", + "RccPart", + &asn_OP_SEQUENCE, + asn_DEF_RccPart_tags_1, + sizeof(asn_DEF_RccPart_tags_1) + /sizeof(asn_DEF_RccPart_tags_1[0]), /* 1 */ + asn_DEF_RccPart_tags_1, /* Same as above */ + sizeof(asn_DEF_RccPart_tags_1) + /sizeof(asn_DEF_RccPart_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RccPart_1, + 3, /* Elements count */ + &asn_SPC_RccPart_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ReceiptAuthenticator.c b/vcits/ivim/src/ReceiptAuthenticator.c new file mode 100644 index 0000000..3e34a26 --- /dev/null +++ b/vcits/ivim/src/ReceiptAuthenticator.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ReceiptAuthenticator.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ReceiptAuthenticator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ReceiptAuthenticator = { + "ReceiptAuthenticator", + "ReceiptAuthenticator", + &asn_OP_OCTET_STRING, + asn_DEF_ReceiptAuthenticator_tags_1, + sizeof(asn_DEF_ReceiptAuthenticator_tags_1) + /sizeof(asn_DEF_ReceiptAuthenticator_tags_1[0]), /* 1 */ + asn_DEF_ReceiptAuthenticator_tags_1, /* Same as above */ + sizeof(asn_DEF_ReceiptAuthenticator_tags_1) + /sizeof(asn_DEF_ReceiptAuthenticator_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ReceiptContract.c b/vcits/ivim/src/ReceiptContract.c new file mode 100644 index 0000000..1ec2080 --- /dev/null +++ b/vcits/ivim/src/ReceiptContract.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ReceiptContract.h" + +static int +memb_sessionTypeOfContract_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_sessionTypeOfContract_constr_3 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_sessionTypeOfContract_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ReceiptContract_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReceiptContract, sessionContractProvider), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Provider, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionContractProvider" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptContract, sessionTypeOfContract), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_sessionTypeOfContract_constr_3, &asn_PER_memb_sessionTypeOfContract_constr_3, memb_sessionTypeOfContract_constraint_1 }, + 0, 0, /* No default value */ + "sessionTypeOfContract" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptContract, sessionContractSerialNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionContractSerialNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReceiptContract_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReceiptContract_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sessionContractProvider */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sessionTypeOfContract */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sessionContractSerialNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ReceiptContract_specs_1 = { + sizeof(struct ReceiptContract), + offsetof(struct ReceiptContract, _asn_ctx), + asn_MAP_ReceiptContract_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReceiptContract = { + "ReceiptContract", + "ReceiptContract", + &asn_OP_SEQUENCE, + asn_DEF_ReceiptContract_tags_1, + sizeof(asn_DEF_ReceiptContract_tags_1) + /sizeof(asn_DEF_ReceiptContract_tags_1[0]), /* 1 */ + asn_DEF_ReceiptContract_tags_1, /* Same as above */ + sizeof(asn_DEF_ReceiptContract_tags_1) + /sizeof(asn_DEF_ReceiptContract_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReceiptContract_1, + 3, /* Elements count */ + &asn_SPC_ReceiptContract_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ReceiptData.c b/vcits/ivim/src/ReceiptData.c new file mode 100644 index 0000000..a238625 --- /dev/null +++ b/vcits/ivim/src/ReceiptData.c @@ -0,0 +1,271 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ReceiptData.h" + +static int +memb_sessionTypeOfContract_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_sessionContextVersion_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_receiptDataAuthenticator_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_sessionTypeOfContract_constr_12 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_sessionTypeOfContract_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_sessionContextVersion_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_sessionContextVersion_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (0..127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_receiptDataAuthenticator_constr_14 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_memb_receiptDataAuthenticator_constr_14 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ReceiptData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReceiptData, sessionTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DateAndTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptData, sessionServiceProvider), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Provider, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionServiceProvider" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptData, locationOfStation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "locationOfStation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptData, sessionLocation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SessionLocation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionLocation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptData, sessionType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptData, sessionResult), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResultOp, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionResult" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptData, sessionTariffClass), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionTariffClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptData, sessionClaimedClass), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionClaimedClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptData, sessionFee), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PaymentFee, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionFee" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptData, sessionContractProvider), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Provider, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionContractProvider" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptData, sessionTypeOfContract), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_sessionTypeOfContract_constr_12, &asn_PER_memb_sessionTypeOfContract_constr_12, memb_sessionTypeOfContract_constraint_1 }, + 0, 0, /* No default value */ + "sessionTypeOfContract" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptData, sessionContextVersion), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sessionContextVersion_constr_13, &asn_PER_memb_sessionContextVersion_constr_13, memb_sessionContextVersion_constraint_1 }, + 0, 0, /* No default value */ + "sessionContextVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptData, receiptDataAuthenticator), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_receiptDataAuthenticator_constr_14, &asn_PER_memb_receiptDataAuthenticator_constr_14, memb_receiptDataAuthenticator_constraint_1 }, + 0, 0, /* No default value */ + "receiptDataAuthenticator" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReceiptData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReceiptData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sessionTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sessionServiceProvider */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* locationOfStation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sessionLocation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* sessionType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* sessionResult */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* sessionTariffClass */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* sessionClaimedClass */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* sessionFee */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* sessionContractProvider */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* sessionTypeOfContract */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* sessionContextVersion */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 } /* receiptDataAuthenticator */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ReceiptData_specs_1 = { + sizeof(struct ReceiptData), + offsetof(struct ReceiptData, _asn_ctx), + asn_MAP_ReceiptData_tag2el_1, + 13, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReceiptData = { + "ReceiptData", + "ReceiptData", + &asn_OP_SEQUENCE, + asn_DEF_ReceiptData_tags_1, + sizeof(asn_DEF_ReceiptData_tags_1) + /sizeof(asn_DEF_ReceiptData_tags_1[0]), /* 1 */ + asn_DEF_ReceiptData_tags_1, /* Same as above */ + sizeof(asn_DEF_ReceiptData_tags_1) + /sizeof(asn_DEF_ReceiptData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReceiptData_1, + 13, /* Elements count */ + &asn_SPC_ReceiptData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ReceiptData1.c b/vcits/ivim/src/ReceiptData1.c new file mode 100644 index 0000000..29e98d1 --- /dev/null +++ b/vcits/ivim/src/ReceiptData1.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ReceiptData1.h" + +/* + * This type is implemented using ReceiptData, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ReceiptData1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ReceiptData1 = { + "ReceiptData1", + "ReceiptData1", + &asn_OP_SEQUENCE, + asn_DEF_ReceiptData1_tags_1, + sizeof(asn_DEF_ReceiptData1_tags_1) + /sizeof(asn_DEF_ReceiptData1_tags_1[0]), /* 1 */ + asn_DEF_ReceiptData1_tags_1, /* Same as above */ + sizeof(asn_DEF_ReceiptData1_tags_1) + /sizeof(asn_DEF_ReceiptData1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReceiptData_1, + 13, /* Elements count */ + &asn_SPC_ReceiptData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ReceiptData2.c b/vcits/ivim/src/ReceiptData2.c new file mode 100644 index 0000000..4752528 --- /dev/null +++ b/vcits/ivim/src/ReceiptData2.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ReceiptData2.h" + +/* + * This type is implemented using ReceiptData, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ReceiptData2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ReceiptData2 = { + "ReceiptData2", + "ReceiptData2", + &asn_OP_SEQUENCE, + asn_DEF_ReceiptData2_tags_1, + sizeof(asn_DEF_ReceiptData2_tags_1) + /sizeof(asn_DEF_ReceiptData2_tags_1[0]), /* 1 */ + asn_DEF_ReceiptData2_tags_1, /* Same as above */ + sizeof(asn_DEF_ReceiptData2_tags_1) + /sizeof(asn_DEF_ReceiptData2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReceiptData_1, + 13, /* Elements count */ + &asn_SPC_ReceiptData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ReceiptDistance.c b/vcits/ivim/src/ReceiptDistance.c new file mode 100644 index 0000000..01697a7 --- /dev/null +++ b/vcits/ivim/src/ReceiptDistance.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ReceiptDistance.h" + +int +ReceiptDistance_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16777215)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using Int3, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ReceiptDistance_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..16777215) */, + -1}; +static asn_per_constraints_t asn_PER_type_ReceiptDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 24, -1, 0, 16777215 } /* (0..16777215) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ReceiptDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ReceiptDistance = { + "ReceiptDistance", + "ReceiptDistance", + &asn_OP_NativeInteger, + asn_DEF_ReceiptDistance_tags_1, + sizeof(asn_DEF_ReceiptDistance_tags_1) + /sizeof(asn_DEF_ReceiptDistance_tags_1[0]), /* 1 */ + asn_DEF_ReceiptDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_ReceiptDistance_tags_1) + /sizeof(asn_DEF_ReceiptDistance_tags_1[0]), /* 1 */ + { &asn_OER_type_ReceiptDistance_constr_1, &asn_PER_type_ReceiptDistance_constr_1, ReceiptDistance_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ReceiptFinancialPart.c b/vcits/ivim/src/ReceiptFinancialPart.c new file mode 100644 index 0000000..a6456d4 --- /dev/null +++ b/vcits/ivim/src/ReceiptFinancialPart.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ReceiptFinancialPart.h" + +static asn_TYPE_member_t asn_MBR_ReceiptFinancialPart_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReceiptFinancialPart, personalAccountNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PersonalAccountNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "personalAccountNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptFinancialPart, sessionPaymentFee), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PaymentFee, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionPaymentFee" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptFinancialPart, sessionCurrentBalance), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PurseBalance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionCurrentBalance" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptFinancialPart, receiptFinancialSerialNumber), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "receiptFinancialSerialNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReceiptFinancialPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReceiptFinancialPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* personalAccountNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sessionPaymentFee */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sessionCurrentBalance */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* receiptFinancialSerialNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ReceiptFinancialPart_specs_1 = { + sizeof(struct ReceiptFinancialPart), + offsetof(struct ReceiptFinancialPart, _asn_ctx), + asn_MAP_ReceiptFinancialPart_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReceiptFinancialPart = { + "ReceiptFinancialPart", + "ReceiptFinancialPart", + &asn_OP_SEQUENCE, + asn_DEF_ReceiptFinancialPart_tags_1, + sizeof(asn_DEF_ReceiptFinancialPart_tags_1) + /sizeof(asn_DEF_ReceiptFinancialPart_tags_1[0]), /* 1 */ + asn_DEF_ReceiptFinancialPart_tags_1, /* Same as above */ + sizeof(asn_DEF_ReceiptFinancialPart_tags_1) + /sizeof(asn_DEF_ReceiptFinancialPart_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReceiptFinancialPart_1, + 4, /* Elements count */ + &asn_SPC_ReceiptFinancialPart_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ReceiptICC-Id.c b/vcits/ivim/src/ReceiptICC-Id.c new file mode 100644 index 0000000..be232ea --- /dev/null +++ b/vcits/ivim/src/ReceiptICC-Id.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ReceiptICC-Id.h" + +/* + * This type is implemented using ICC_Id, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ReceiptICC_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ReceiptICC_Id = { + "ReceiptICC-Id", + "ReceiptICC-Id", + &asn_OP_OCTET_STRING, + asn_DEF_ReceiptICC_Id_tags_1, + sizeof(asn_DEF_ReceiptICC_Id_tags_1) + /sizeof(asn_DEF_ReceiptICC_Id_tags_1[0]), /* 1 */ + asn_DEF_ReceiptICC_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_ReceiptICC_Id_tags_1) + /sizeof(asn_DEF_ReceiptICC_Id_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ReceiptOBUId.c b/vcits/ivim/src/ReceiptOBUId.c new file mode 100644 index 0000000..0829cb7 --- /dev/null +++ b/vcits/ivim/src/ReceiptOBUId.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ReceiptOBUId.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ReceiptOBUId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ReceiptOBUId = { + "ReceiptOBUId", + "ReceiptOBUId", + &asn_OP_OCTET_STRING, + asn_DEF_ReceiptOBUId_tags_1, + sizeof(asn_DEF_ReceiptOBUId_tags_1) + /sizeof(asn_DEF_ReceiptOBUId_tags_1[0]), /* 1 */ + asn_DEF_ReceiptOBUId_tags_1, /* Same as above */ + sizeof(asn_DEF_ReceiptOBUId_tags_1) + /sizeof(asn_DEF_ReceiptOBUId_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ReceiptServicePart.c b/vcits/ivim/src/ReceiptServicePart.c new file mode 100644 index 0000000..1e89032 --- /dev/null +++ b/vcits/ivim/src/ReceiptServicePart.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ReceiptServicePart.h" + +static int +memb_stationLocation_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1048575)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_sessionLocation_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_stationLocation_constr_4 CC_NOTUSED = { + { 4, 1 } /* (0..1048575) */, + -1}; +static asn_per_constraints_t asn_PER_memb_stationLocation_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 1048575 } /* (0..1048575) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_sessionLocation_constr_5 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_sessionLocation_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ReceiptServicePart_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReceiptServicePart, sessionTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DateAndTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptServicePart, sessionServiceProvider), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Provider, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionServiceProvider" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptServicePart, stationLocation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_stationLocation_constr_4, &asn_PER_memb_stationLocation_constr_4, memb_stationLocation_constraint_1 }, + 0, 0, /* No default value */ + "stationLocation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptServicePart, sessionLocation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_sessionLocation_constr_5, &asn_PER_memb_sessionLocation_constr_5, memb_sessionLocation_constraint_1 }, + 0, 0, /* No default value */ + "sessionLocation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptServicePart, typeOfSession), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EfcDsrcApplication_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeOfSession" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptServicePart, sessionResultOperational), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResultOp, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionResultOperational" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReceiptServicePart, sessionResultFinancial), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResultFin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionResultFinancial" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReceiptServicePart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReceiptServicePart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sessionTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sessionServiceProvider */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* stationLocation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sessionLocation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* typeOfSession */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* sessionResultOperational */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* sessionResultFinancial */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ReceiptServicePart_specs_1 = { + sizeof(struct ReceiptServicePart), + offsetof(struct ReceiptServicePart, _asn_ctx), + asn_MAP_ReceiptServicePart_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReceiptServicePart = { + "ReceiptServicePart", + "ReceiptServicePart", + &asn_OP_SEQUENCE, + asn_DEF_ReceiptServicePart_tags_1, + sizeof(asn_DEF_ReceiptServicePart_tags_1) + /sizeof(asn_DEF_ReceiptServicePart_tags_1[0]), /* 1 */ + asn_DEF_ReceiptServicePart_tags_1, /* Same as above */ + sizeof(asn_DEF_ReceiptServicePart_tags_1) + /sizeof(asn_DEF_ReceiptServicePart_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReceiptServicePart_1, + 7, /* Elements count */ + &asn_SPC_ReceiptServicePart_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ReceiptServiceSerialNumber.c b/vcits/ivim/src/ReceiptServiceSerialNumber.c new file mode 100644 index 0000000..39f4005 --- /dev/null +++ b/vcits/ivim/src/ReceiptServiceSerialNumber.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ReceiptServiceSerialNumber.h" + +int +ReceiptServiceSerialNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16777215)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using Int3, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ReceiptServiceSerialNumber_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..16777215) */, + -1}; +static asn_per_constraints_t asn_PER_type_ReceiptServiceSerialNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 24, -1, 0, 16777215 } /* (0..16777215) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ReceiptServiceSerialNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ReceiptServiceSerialNumber = { + "ReceiptServiceSerialNumber", + "ReceiptServiceSerialNumber", + &asn_OP_NativeInteger, + asn_DEF_ReceiptServiceSerialNumber_tags_1, + sizeof(asn_DEF_ReceiptServiceSerialNumber_tags_1) + /sizeof(asn_DEF_ReceiptServiceSerialNumber_tags_1[0]), /* 1 */ + asn_DEF_ReceiptServiceSerialNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ReceiptServiceSerialNumber_tags_1) + /sizeof(asn_DEF_ReceiptServiceSerialNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_ReceiptServiceSerialNumber_constr_1, &asn_PER_type_ReceiptServiceSerialNumber_constr_1, ReceiptServiceSerialNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ReceiptText.c b/vcits/ivim/src/ReceiptText.c new file mode 100644 index 0000000..3d0c807 --- /dev/null +++ b/vcits/ivim/src/ReceiptText.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ReceiptText.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ReceiptText_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ReceiptText = { + "ReceiptText", + "ReceiptText", + &asn_OP_OCTET_STRING, + asn_DEF_ReceiptText_tags_1, + sizeof(asn_DEF_ReceiptText_tags_1) + /sizeof(asn_DEF_ReceiptText_tags_1[0]), /* 1 */ + asn_DEF_ReceiptText_tags_1, /* Same as above */ + sizeof(asn_DEF_ReceiptText_tags_1) + /sizeof(asn_DEF_ReceiptText_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ReferencePosition.c b/vcits/ivim/src/ReferencePosition.c new file mode 100644 index 0000000..b266771 --- /dev/null +++ b/vcits/ivim/src/ReferencePosition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ReferencePosition.h" + +asn_TYPE_member_t asn_MBR_ReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PosConfidenceEllipse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionConfidenceEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* longitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* positionConfidenceEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1 = { + sizeof(struct ReferencePosition), + offsetof(struct ReferencePosition, _asn_ctx), + asn_MAP_ReferencePosition_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReferencePosition = { + "ReferencePosition", + "ReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_ReferencePosition_tags_1, + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_ReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReferencePosition_1, + 4, /* Elements count */ + &asn_SPC_ReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RegionId.c b/vcits/ivim/src/RegionId.c new file mode 100644 index 0000000..b74f19c --- /dev/null +++ b/vcits/ivim/src/RegionId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RegionId.h" + +int +RegionId_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RegionId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RegionId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RegionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RegionId = { + "RegionId", + "RegionId", + &asn_OP_NativeInteger, + asn_DEF_RegionId_tags_1, + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + asn_DEF_RegionId_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + { &asn_OER_type_RegionId_constr_1, &asn_PER_type_RegionId_constr_1, RegionId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/RegionalExtension.c b/vcits/ivim/src/RegionalExtension.c new file mode 100644 index 0000000..21e4729 --- /dev/null +++ b/vcits/ivim/src/RegionalExtension.c @@ -0,0 +1,4204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RegionalExtension.h" + +static const long asn_VAL_5_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MapData_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_5_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MapData_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MapData_1[] = { + { 1, 2, asn_IOS_Reg_MapData_1_rows } +}; +static const long asn_VAL_1_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_ConnectionManeuverAssist_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_1_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionManeuverAssist_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_ConnectionManeuverAssist_1[] = { + { 1, 2, asn_IOS_Reg_ConnectionManeuverAssist_1_rows } +}; +static const long asn_VAL_2_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_GenericLane_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_2_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionTrajectory_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_GenericLane_1[] = { + { 1, 2, asn_IOS_Reg_GenericLane_1_rows } +}; +static const long asn_VAL_3_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_IntersectionState_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_3_addGrpC }, + { "&Type", aioc__type, &asn_DEF_IntersectionState_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_IntersectionState_1[] = { + { 1, 2, asn_IOS_Reg_IntersectionState_1_rows } +}; +static const long asn_VAL_4_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_LaneAttributes_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_4_addGrpC }, + { "&Type", aioc__type, &asn_DEF_LaneAttributes_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_LaneAttributes_1[] = { + { 1, 2, asn_IOS_Reg_LaneAttributes_1_rows } +}; +static const long asn_VAL_6_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MovementEvent_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_6_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MovementEvent_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MovementEvent_1[] = { + { 1, 2, asn_IOS_Reg_MovementEvent_1_rows } +}; +static const long asn_VAL_7_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_NodeAttributeSetXY_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_7_addGrpC }, + { "&Type", aioc__type, &asn_DEF_NodeAttributeSet_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_NodeAttributeSetXY_1[] = { + { 1, 2, asn_IOS_Reg_NodeAttributeSetXY_1_rows } +}; +static const long asn_VAL_8_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_Position3D_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_8_addGrpC }, + { "&Type", aioc__type, &asn_DEF_Position3D_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_Position3D_1[] = { + { 1, 2, asn_IOS_Reg_Position3D_1_rows } +}; +static const long asn_VAL_9_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RequestorDescription_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_9_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RequestorDescription_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RequestorDescription_1[] = { + { 1, 2, asn_IOS_Reg_RequestorDescription_1_rows } +}; +static const long asn_VAL_10_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RestrictionUserType_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_10_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RestrictionUserType_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RestrictionUserType_1[] = { + { 1, 2, asn_IOS_Reg_RestrictionUserType_1_rows } +}; +static const long asn_VAL_11_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_SignalStatusPackage_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_11_addGrpC }, + { "&Type", aioc__type, &asn_DEF_SignalStatusPackage_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_SignalStatusPackage_1[] = { + { 1, 2, asn_IOS_Reg_SignalStatusPackage_1_rows } +}; +static int +memb_regionId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MapData_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MapData_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MapData, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_ConnectionManeuverAssist_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_ConnectionManeuverAssist_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_ConnectionManeuverAssist, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_GenericLane_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_GenericLane_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_GenericLane, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_IntersectionState_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_IntersectionState_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_IntersectionState, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_LaneAttributes_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_LaneAttributes_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_LaneAttributes, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MovementEvent_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MovementEvent_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MovementEvent, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_NodeAttributeSetXY_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_NodeAttributeSetXY_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_NodeAttributeSetXY, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_Position3D_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_Position3D_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_Position3D, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RequestorDescription_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RequestorDescription_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RequestorDescription, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RestrictionUserType_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RestrictionUserType_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RestrictionUserType, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_SignalStatusPackage_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_SignalStatusPackage_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_SignalStatusPackage, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_regionId_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_11 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_14 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_15 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_17 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_18 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_20 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_21 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_23 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_26 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_27 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_29 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_30 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_30 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_32 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_33 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_35 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_36 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_38 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_39 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_41 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_42 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_42 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_44 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_44 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_45 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_47 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_47 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_48 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_50 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_51 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_53 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_53 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_54 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_54 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_56 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_56 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_57 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_57 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_59 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_60 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_62 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_63 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_63 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_65 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_65 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_66 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_66 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_68 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_68 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_69 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_69 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_71 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_71 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_72 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_74 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_74 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_75 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_75 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_77 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_77 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_78 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_78 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_80 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_80 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_81 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_81 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regExtValue_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData__regExtValue, choice.MapData_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MapData_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MapData-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_3[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MapData-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_3 = { + sizeof(struct Reg_MapData__regExtValue), + offsetof(struct Reg_MapData__regExtValue, _asn_ctx), + offsetof(struct Reg_MapData__regExtValue, present), + sizeof(((struct Reg_MapData__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_3, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_3 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_3, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MapData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_2, &asn_PER_memb_regionId_constr_2, memb_regionId_constraint_1 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_3, + select_Reg_MapData_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_3, &asn_PER_memb_regExtValue_constr_3, memb_regExtValue_constraint_1 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_1 = { + sizeof(struct Reg_MapData), + offsetof(struct Reg_MapData, _asn_ctx), + asn_MAP_Reg_MapData_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MapData = { + "Reg-MapData", + "Reg-MapData", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MapData_tags_1, + sizeof(asn_DEF_Reg_MapData_tags_1) + /sizeof(asn_DEF_Reg_MapData_tags_1[0]), /* 1 */ + asn_DEF_Reg_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_Reg_MapData_tags_1) + /sizeof(asn_DEF_Reg_MapData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MapData_1, + 2, /* Elements count */ + &asn_SPC_Reg_MapData_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_6 = { + sizeof(struct Reg_RTCMcorrections__regExtValue), + offsetof(struct Reg_RTCMcorrections__regExtValue, _asn_ctx), + offsetof(struct Reg_RTCMcorrections__regExtValue, present), + sizeof(((struct Reg_RTCMcorrections__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_6 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_5, &asn_PER_memb_regionId_constr_5, memb_regionId_constraint_4 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_6, + 0, + { &asn_OER_memb_regExtValue_constr_6, &asn_PER_memb_regExtValue_constr_6, memb_regExtValue_constraint_4 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RTCMcorrections_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RTCMcorrections_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_4 = { + sizeof(struct Reg_RTCMcorrections), + offsetof(struct Reg_RTCMcorrections, _asn_ctx), + asn_MAP_Reg_RTCMcorrections_tag2el_4, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections = { + "Reg-RTCMcorrections", + "Reg-RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RTCMcorrections_tags_4, + sizeof(asn_DEF_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + asn_DEF_Reg_RTCMcorrections_tags_4, /* Same as above */ + sizeof(asn_DEF_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RTCMcorrections_4, + 2, /* Elements count */ + &asn_SPC_Reg_RTCMcorrections_specs_4 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_9 = { + sizeof(struct Reg_SPAT__regExtValue), + offsetof(struct Reg_SPAT__regExtValue, _asn_ctx), + offsetof(struct Reg_SPAT__regExtValue, present), + sizeof(((struct Reg_SPAT__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_9 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SPAT_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_8, &asn_PER_memb_regionId_constr_8, memb_regionId_constraint_7 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_9, + 0, + { &asn_OER_memb_regExtValue_constr_9, &asn_PER_memb_regExtValue_constr_9, memb_regExtValue_constraint_7 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SPAT_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SPAT_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_7 = { + sizeof(struct Reg_SPAT), + offsetof(struct Reg_SPAT, _asn_ctx), + asn_MAP_Reg_SPAT_tag2el_7, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SPAT = { + "Reg-SPAT", + "Reg-SPAT", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SPAT_tags_7, + sizeof(asn_DEF_Reg_SPAT_tags_7) + /sizeof(asn_DEF_Reg_SPAT_tags_7[0]), /* 1 */ + asn_DEF_Reg_SPAT_tags_7, /* Same as above */ + sizeof(asn_DEF_Reg_SPAT_tags_7) + /sizeof(asn_DEF_Reg_SPAT_tags_7[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SPAT_7, + 2, /* Elements count */ + &asn_SPC_Reg_SPAT_specs_7 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_12 = { + sizeof(struct Reg_SignalRequestMessage__regExtValue), + offsetof(struct Reg_SignalRequestMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestMessage__regExtValue, present), + sizeof(((struct Reg_SignalRequestMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_12 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_11, &asn_PER_memb_regionId_constr_11, memb_regionId_constraint_10 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_12, + 0, + { &asn_OER_memb_regExtValue_constr_12, &asn_PER_memb_regExtValue_constr_12, memb_regExtValue_constraint_10 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestMessage_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestMessage_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_10 = { + sizeof(struct Reg_SignalRequestMessage), + offsetof(struct Reg_SignalRequestMessage, _asn_ctx), + asn_MAP_Reg_SignalRequestMessage_tag2el_10, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage = { + "Reg-SignalRequestMessage", + "Reg-SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestMessage_tags_10, + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + asn_DEF_Reg_SignalRequestMessage_tags_10, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequestMessage_10, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestMessage_specs_10 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_15 = { + sizeof(struct Reg_SignalStatusMessage__regExtValue), + offsetof(struct Reg_SignalStatusMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusMessage__regExtValue, present), + sizeof(((struct Reg_SignalStatusMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_15 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_14, &asn_PER_memb_regionId_constr_14, memb_regionId_constraint_13 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_15, + 0, + { &asn_OER_memb_regExtValue_constr_15, &asn_PER_memb_regExtValue_constr_15, memb_regExtValue_constraint_13 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusMessage_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusMessage_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_13 = { + sizeof(struct Reg_SignalStatusMessage), + offsetof(struct Reg_SignalStatusMessage, _asn_ctx), + asn_MAP_Reg_SignalStatusMessage_tag2el_13, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage = { + "Reg-SignalStatusMessage", + "Reg-SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusMessage_tags_13, + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + asn_DEF_Reg_SignalStatusMessage_tags_13, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatusMessage_13, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusMessage_specs_13 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_18 = { + sizeof(struct Reg_AdvisorySpeed__regExtValue), + offsetof(struct Reg_AdvisorySpeed__regExtValue, _asn_ctx), + offsetof(struct Reg_AdvisorySpeed__regExtValue, present), + sizeof(((struct Reg_AdvisorySpeed__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_18 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_17, &asn_PER_memb_regionId_constr_17, memb_regionId_constraint_16 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_18, + 0, + { &asn_OER_memb_regExtValue_constr_18, &asn_PER_memb_regExtValue_constr_18, memb_regExtValue_constraint_16 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_AdvisorySpeed_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_AdvisorySpeed_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_16 = { + sizeof(struct Reg_AdvisorySpeed), + offsetof(struct Reg_AdvisorySpeed, _asn_ctx), + asn_MAP_Reg_AdvisorySpeed_tag2el_16, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed = { + "Reg-AdvisorySpeed", + "Reg-AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_Reg_AdvisorySpeed_tags_16, + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + asn_DEF_Reg_AdvisorySpeed_tags_16, /* Same as above */ + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_AdvisorySpeed_16, + 2, /* Elements count */ + &asn_SPC_Reg_AdvisorySpeed_specs_16 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_21 = { + sizeof(struct Reg_ComputedLane__regExtValue), + offsetof(struct Reg_ComputedLane__regExtValue, _asn_ctx), + offsetof(struct Reg_ComputedLane__regExtValue, present), + sizeof(((struct Reg_ComputedLane__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_21 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ComputedLane_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_20, &asn_PER_memb_regionId_constr_20, memb_regionId_constraint_19 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_21, + 0, + { &asn_OER_memb_regExtValue_constr_21, &asn_PER_memb_regExtValue_constr_21, memb_regExtValue_constraint_19 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ComputedLane_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ComputedLane_tag2el_19[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_19 = { + sizeof(struct Reg_ComputedLane), + offsetof(struct Reg_ComputedLane, _asn_ctx), + asn_MAP_Reg_ComputedLane_tag2el_19, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane = { + "Reg-ComputedLane", + "Reg-ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ComputedLane_tags_19, + sizeof(asn_DEF_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_Reg_ComputedLane_tags_19[0]), /* 1 */ + asn_DEF_Reg_ComputedLane_tags_19, /* Same as above */ + sizeof(asn_DEF_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_Reg_ComputedLane_tags_19[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_ComputedLane_19, + 2, /* Elements count */ + &asn_SPC_Reg_ComputedLane_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, choice.ConnectionManeuverAssist_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionManeuverAssist-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionManeuverAssist-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_24 = { + sizeof(struct Reg_ConnectionManeuverAssist__regExtValue), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, _asn_ctx), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, present), + sizeof(((struct Reg_ConnectionManeuverAssist__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_24, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_24 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_24, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_23, &asn_PER_memb_regionId_constr_23, memb_regionId_constraint_22 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_24, + select_Reg_ConnectionManeuverAssist_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_24, &asn_PER_memb_regExtValue_constr_24, memb_regExtValue_constraint_22 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ConnectionManeuverAssist_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ConnectionManeuverAssist_tag2el_22[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_22 = { + sizeof(struct Reg_ConnectionManeuverAssist), + offsetof(struct Reg_ConnectionManeuverAssist, _asn_ctx), + asn_MAP_Reg_ConnectionManeuverAssist_tag2el_22, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist = { + "Reg-ConnectionManeuverAssist", + "Reg-ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ConnectionManeuverAssist_tags_22, + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + asn_DEF_Reg_ConnectionManeuverAssist_tags_22, /* Same as above */ + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_ConnectionManeuverAssist_22, + 2, /* Elements count */ + &asn_SPC_Reg_ConnectionManeuverAssist_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_27[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane__regExtValue, choice.ConnectionTrajectory_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionTrajectory_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionTrajectory-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_27[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionTrajectory-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_27 = { + sizeof(struct Reg_GenericLane__regExtValue), + offsetof(struct Reg_GenericLane__regExtValue, _asn_ctx), + offsetof(struct Reg_GenericLane__regExtValue, present), + sizeof(((struct Reg_GenericLane__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_27, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_27 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_27, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_GenericLane_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_26, &asn_PER_memb_regionId_constr_26, memb_regionId_constraint_25 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_27, + select_Reg_GenericLane_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_27, &asn_PER_memb_regExtValue_constr_27, memb_regExtValue_constraint_25 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_GenericLane_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_GenericLane_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_25 = { + sizeof(struct Reg_GenericLane), + offsetof(struct Reg_GenericLane, _asn_ctx), + asn_MAP_Reg_GenericLane_tag2el_25, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane = { + "Reg-GenericLane", + "Reg-GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_GenericLane_tags_25, + sizeof(asn_DEF_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_Reg_GenericLane_tags_25[0]), /* 1 */ + asn_DEF_Reg_GenericLane_tags_25, /* Same as above */ + sizeof(asn_DEF_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_Reg_GenericLane_tags_25[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_GenericLane_25, + 2, /* Elements count */ + &asn_SPC_Reg_GenericLane_specs_25 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_30 = { + sizeof(struct Reg_IntersectionGeometry__regExtValue), + offsetof(struct Reg_IntersectionGeometry__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionGeometry__regExtValue, present), + sizeof(((struct Reg_IntersectionGeometry__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_30 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_30 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_29, &asn_PER_memb_regionId_constr_29, memb_regionId_constraint_28 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_30, + 0, + { &asn_OER_memb_regExtValue_constr_30, &asn_PER_memb_regExtValue_constr_30, memb_regExtValue_constraint_28 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionGeometry_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionGeometry_tag2el_28[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_28 = { + sizeof(struct Reg_IntersectionGeometry), + offsetof(struct Reg_IntersectionGeometry, _asn_ctx), + asn_MAP_Reg_IntersectionGeometry_tag2el_28, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry = { + "Reg-IntersectionGeometry", + "Reg-IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionGeometry_tags_28, + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + asn_DEF_Reg_IntersectionGeometry_tags_28, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_IntersectionGeometry_28, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionGeometry_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState__regExtValue, choice.IntersectionState_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IntersectionState-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_33[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* IntersectionState-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_33 = { + sizeof(struct Reg_IntersectionState__regExtValue), + offsetof(struct Reg_IntersectionState__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionState__regExtValue, present), + sizeof(((struct Reg_IntersectionState__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_33, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_33 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_33, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionState_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_32, &asn_PER_memb_regionId_constr_32, memb_regionId_constraint_31 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_33, + select_Reg_IntersectionState_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_33, &asn_PER_memb_regExtValue_constr_33, memb_regExtValue_constraint_31 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionState_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionState_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_31 = { + sizeof(struct Reg_IntersectionState), + offsetof(struct Reg_IntersectionState, _asn_ctx), + asn_MAP_Reg_IntersectionState_tag2el_31, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState = { + "Reg-IntersectionState", + "Reg-IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionState_tags_31, + sizeof(asn_DEF_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_Reg_IntersectionState_tags_31[0]), /* 1 */ + asn_DEF_Reg_IntersectionState_tags_31, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_Reg_IntersectionState_tags_31[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_IntersectionState_31, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionState_specs_31 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes__regExtValue, choice.LaneAttributes_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_LaneAttributes_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LaneAttributes-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* LaneAttributes-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_36 = { + sizeof(struct Reg_LaneAttributes__regExtValue), + offsetof(struct Reg_LaneAttributes__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneAttributes__regExtValue, present), + sizeof(((struct Reg_LaneAttributes__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_36, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_36 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_36, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_34[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_35, &asn_PER_memb_regionId_constr_35, memb_regionId_constraint_34 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_36, + select_Reg_LaneAttributes_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_36, &asn_PER_memb_regExtValue_constr_36, memb_regExtValue_constraint_34 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneAttributes_tags_34[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneAttributes_tag2el_34[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_34 = { + sizeof(struct Reg_LaneAttributes), + offsetof(struct Reg_LaneAttributes, _asn_ctx), + asn_MAP_Reg_LaneAttributes_tag2el_34, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes = { + "Reg-LaneAttributes", + "Reg-LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneAttributes_tags_34, + sizeof(asn_DEF_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_34[0]), /* 1 */ + asn_DEF_Reg_LaneAttributes_tags_34, /* Same as above */ + sizeof(asn_DEF_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_34[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_LaneAttributes_34, + 2, /* Elements count */ + &asn_SPC_Reg_LaneAttributes_specs_34 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_39 = { + sizeof(struct Reg_LaneDataAttribute__regExtValue), + offsetof(struct Reg_LaneDataAttribute__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneDataAttribute__regExtValue, present), + sizeof(((struct Reg_LaneDataAttribute__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_39 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_38, &asn_PER_memb_regionId_constr_38, memb_regionId_constraint_37 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_39, + 0, + { &asn_OER_memb_regExtValue_constr_39, &asn_PER_memb_regExtValue_constr_39, memb_regExtValue_constraint_37 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneDataAttribute_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneDataAttribute_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_37 = { + sizeof(struct Reg_LaneDataAttribute), + offsetof(struct Reg_LaneDataAttribute, _asn_ctx), + asn_MAP_Reg_LaneDataAttribute_tag2el_37, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute = { + "Reg-LaneDataAttribute", + "Reg-LaneDataAttribute", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneDataAttribute_tags_37, + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + asn_DEF_Reg_LaneDataAttribute_tags_37, /* Same as above */ + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_LaneDataAttribute_37, + 2, /* Elements count */ + &asn_SPC_Reg_LaneDataAttribute_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_42[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent__regExtValue, choice.MovementEvent_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MovementEvent-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_42[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MovementEvent-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_42 = { + sizeof(struct Reg_MovementEvent__regExtValue), + offsetof(struct Reg_MovementEvent__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementEvent__regExtValue, present), + sizeof(((struct Reg_MovementEvent__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_42, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_42 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_42, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_42 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementEvent_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_41, &asn_PER_memb_regionId_constr_41, memb_regionId_constraint_40 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_42, + select_Reg_MovementEvent_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_42, &asn_PER_memb_regExtValue_constr_42, memb_regExtValue_constraint_40 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementEvent_tags_40[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementEvent_tag2el_40[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_40 = { + sizeof(struct Reg_MovementEvent), + offsetof(struct Reg_MovementEvent, _asn_ctx), + asn_MAP_Reg_MovementEvent_tag2el_40, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent = { + "Reg-MovementEvent", + "Reg-MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementEvent_tags_40, + sizeof(asn_DEF_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_Reg_MovementEvent_tags_40[0]), /* 1 */ + asn_DEF_Reg_MovementEvent_tags_40, /* Same as above */ + sizeof(asn_DEF_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_Reg_MovementEvent_tags_40[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MovementEvent_40, + 2, /* Elements count */ + &asn_SPC_Reg_MovementEvent_specs_40 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_45 = { + sizeof(struct Reg_MovementState__regExtValue), + offsetof(struct Reg_MovementState__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementState__regExtValue, present), + sizeof(((struct Reg_MovementState__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_45 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementState_43[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_44, &asn_PER_memb_regionId_constr_44, memb_regionId_constraint_43 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_45, + 0, + { &asn_OER_memb_regExtValue_constr_45, &asn_PER_memb_regExtValue_constr_45, memb_regExtValue_constraint_43 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementState_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementState_tag2el_43[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_43 = { + sizeof(struct Reg_MovementState), + offsetof(struct Reg_MovementState, _asn_ctx), + asn_MAP_Reg_MovementState_tag2el_43, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementState = { + "Reg-MovementState", + "Reg-MovementState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementState_tags_43, + sizeof(asn_DEF_Reg_MovementState_tags_43) + /sizeof(asn_DEF_Reg_MovementState_tags_43[0]), /* 1 */ + asn_DEF_Reg_MovementState_tags_43, /* Same as above */ + sizeof(asn_DEF_Reg_MovementState_tags_43) + /sizeof(asn_DEF_Reg_MovementState_tags_43[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MovementState_43, + 2, /* Elements count */ + &asn_SPC_Reg_MovementState_specs_43 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY__regExtValue, choice.NodeAttributeSet_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeAttributeSet_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NodeAttributeSet-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NodeAttributeSet-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_48 = { + sizeof(struct Reg_NodeAttributeSetXY__regExtValue), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, present), + sizeof(((struct Reg_NodeAttributeSetXY__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_48, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_48 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_48, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_46[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_47, &asn_PER_memb_regionId_constr_47, memb_regionId_constraint_46 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_48, + select_Reg_NodeAttributeSetXY_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_48, &asn_PER_memb_regExtValue_constr_48, memb_regExtValue_constraint_46 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeAttributeSetXY_tags_46[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeAttributeSetXY_tag2el_46[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_46 = { + sizeof(struct Reg_NodeAttributeSetXY), + offsetof(struct Reg_NodeAttributeSetXY, _asn_ctx), + asn_MAP_Reg_NodeAttributeSetXY_tag2el_46, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY = { + "Reg-NodeAttributeSetXY", + "Reg-NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeAttributeSetXY_tags_46, + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + asn_DEF_Reg_NodeAttributeSetXY_tags_46, /* Same as above */ + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_NodeAttributeSetXY_46, + 2, /* Elements count */ + &asn_SPC_Reg_NodeAttributeSetXY_specs_46 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_51 = { + sizeof(struct Reg_NodeOffsetPointXY__regExtValue), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, present), + sizeof(((struct Reg_NodeOffsetPointXY__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_51 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_50, &asn_PER_memb_regionId_constr_50, memb_regionId_constraint_49 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_51, + 0, + { &asn_OER_memb_regExtValue_constr_51, &asn_PER_memb_regExtValue_constr_51, memb_regExtValue_constraint_49 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeOffsetPointXY_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeOffsetPointXY_tag2el_49[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_49 = { + sizeof(struct Reg_NodeOffsetPointXY), + offsetof(struct Reg_NodeOffsetPointXY, _asn_ctx), + asn_MAP_Reg_NodeOffsetPointXY_tag2el_49, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY = { + "Reg-NodeOffsetPointXY", + "Reg-NodeOffsetPointXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeOffsetPointXY_tags_49, + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + asn_DEF_Reg_NodeOffsetPointXY_tags_49, /* Same as above */ + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_NodeOffsetPointXY_49, + 2, /* Elements count */ + &asn_SPC_Reg_NodeOffsetPointXY_specs_49 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_54[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D__regExtValue, choice.Position3D_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Position3D_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Position3D-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_54[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Position3D-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_54 = { + sizeof(struct Reg_Position3D__regExtValue), + offsetof(struct Reg_Position3D__regExtValue, _asn_ctx), + offsetof(struct Reg_Position3D__regExtValue, present), + sizeof(((struct Reg_Position3D__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_54, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_54 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_54, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_54 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_Position3D_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_53, &asn_PER_memb_regionId_constr_53, memb_regionId_constraint_52 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_54, + select_Reg_Position3D_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_54, &asn_PER_memb_regExtValue_constr_54, memb_regExtValue_constraint_52 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_Position3D_tags_52[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_Position3D_tag2el_52[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_52 = { + sizeof(struct Reg_Position3D), + offsetof(struct Reg_Position3D, _asn_ctx), + asn_MAP_Reg_Position3D_tag2el_52, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_Position3D = { + "Reg-Position3D", + "Reg-Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Reg_Position3D_tags_52, + sizeof(asn_DEF_Reg_Position3D_tags_52) + /sizeof(asn_DEF_Reg_Position3D_tags_52[0]), /* 1 */ + asn_DEF_Reg_Position3D_tags_52, /* Same as above */ + sizeof(asn_DEF_Reg_Position3D_tags_52) + /sizeof(asn_DEF_Reg_Position3D_tags_52[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_Position3D_52, + 2, /* Elements count */ + &asn_SPC_Reg_Position3D_specs_52 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription__regExtValue, choice.RequestorDescription_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RequestorDescription_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RequestorDescription-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_57[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RequestorDescription-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_57 = { + sizeof(struct Reg_RequestorDescription__regExtValue), + offsetof(struct Reg_RequestorDescription__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorDescription__regExtValue, present), + sizeof(((struct Reg_RequestorDescription__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_57, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_57 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_57, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_55[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_56, &asn_PER_memb_regionId_constr_56, memb_regionId_constraint_55 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_57, + select_Reg_RequestorDescription_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_57, &asn_PER_memb_regExtValue_constr_57, memb_regExtValue_constraint_55 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorDescription_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorDescription_tag2el_55[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_55 = { + sizeof(struct Reg_RequestorDescription), + offsetof(struct Reg_RequestorDescription, _asn_ctx), + asn_MAP_Reg_RequestorDescription_tag2el_55, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription = { + "Reg-RequestorDescription", + "Reg-RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorDescription_tags_55, + sizeof(asn_DEF_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_55[0]), /* 1 */ + asn_DEF_Reg_RequestorDescription_tags_55, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_55[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RequestorDescription_55, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorDescription_specs_55 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_60 = { + sizeof(struct Reg_RequestorType__regExtValue), + offsetof(struct Reg_RequestorType__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorType__regExtValue, present), + sizeof(((struct Reg_RequestorType__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_60 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorType_58[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_59, &asn_PER_memb_regionId_constr_59, memb_regionId_constraint_58 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_60, + 0, + { &asn_OER_memb_regExtValue_constr_60, &asn_PER_memb_regExtValue_constr_60, memb_regExtValue_constraint_58 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorType_tags_58[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorType_tag2el_58[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_58 = { + sizeof(struct Reg_RequestorType), + offsetof(struct Reg_RequestorType, _asn_ctx), + asn_MAP_Reg_RequestorType_tag2el_58, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType = { + "Reg-RequestorType", + "Reg-RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorType_tags_58, + sizeof(asn_DEF_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_Reg_RequestorType_tags_58[0]), /* 1 */ + asn_DEF_Reg_RequestorType_tags_58, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_Reg_RequestorType_tags_58[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RequestorType_58, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorType_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_63[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType__regExtValue, choice.RestrictionUserType_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionUserType_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RestrictionUserType-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_63[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RestrictionUserType-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_63 = { + sizeof(struct Reg_RestrictionUserType__regExtValue), + offsetof(struct Reg_RestrictionUserType__regExtValue, _asn_ctx), + offsetof(struct Reg_RestrictionUserType__regExtValue, present), + sizeof(((struct Reg_RestrictionUserType__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_63, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_63 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_63, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_62, &asn_PER_memb_regionId_constr_62, memb_regionId_constraint_61 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_63, + select_Reg_RestrictionUserType_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_63, &asn_PER_memb_regExtValue_constr_63, memb_regExtValue_constraint_61 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RestrictionUserType_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RestrictionUserType_tag2el_61[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_61 = { + sizeof(struct Reg_RestrictionUserType), + offsetof(struct Reg_RestrictionUserType, _asn_ctx), + asn_MAP_Reg_RestrictionUserType_tag2el_61, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType = { + "Reg-RestrictionUserType", + "Reg-RestrictionUserType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RestrictionUserType_tags_61, + sizeof(asn_DEF_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + asn_DEF_Reg_RestrictionUserType_tags_61, /* Same as above */ + sizeof(asn_DEF_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RestrictionUserType_61, + 2, /* Elements count */ + &asn_SPC_Reg_RestrictionUserType_specs_61 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_66 = { + sizeof(struct Reg_RoadSegment__regExtValue), + offsetof(struct Reg_RoadSegment__regExtValue, _asn_ctx), + offsetof(struct Reg_RoadSegment__regExtValue, present), + sizeof(((struct Reg_RoadSegment__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_66 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_66 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RoadSegment_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_65, &asn_PER_memb_regionId_constr_65, memb_regionId_constraint_64 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_66, + 0, + { &asn_OER_memb_regExtValue_constr_66, &asn_PER_memb_regExtValue_constr_66, memb_regExtValue_constraint_64 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RoadSegment_tags_64[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RoadSegment_tag2el_64[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_64 = { + sizeof(struct Reg_RoadSegment), + offsetof(struct Reg_RoadSegment, _asn_ctx), + asn_MAP_Reg_RoadSegment_tag2el_64, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment = { + "Reg-RoadSegment", + "Reg-RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RoadSegment_tags_64, + sizeof(asn_DEF_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_Reg_RoadSegment_tags_64[0]), /* 1 */ + asn_DEF_Reg_RoadSegment_tags_64, /* Same as above */ + sizeof(asn_DEF_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_Reg_RoadSegment_tags_64[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RoadSegment_64, + 2, /* Elements count */ + &asn_SPC_Reg_RoadSegment_specs_64 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_69 = { + sizeof(struct Reg_SignalControlZone__regExtValue), + offsetof(struct Reg_SignalControlZone__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalControlZone__regExtValue, present), + sizeof(((struct Reg_SignalControlZone__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_69 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_67[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_68, &asn_PER_memb_regionId_constr_68, memb_regionId_constraint_67 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_69, + 0, + { &asn_OER_memb_regExtValue_constr_69, &asn_PER_memb_regExtValue_constr_69, memb_regExtValue_constraint_67 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalControlZone_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalControlZone_tag2el_67[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_67 = { + sizeof(struct Reg_SignalControlZone), + offsetof(struct Reg_SignalControlZone, _asn_ctx), + asn_MAP_Reg_SignalControlZone_tag2el_67, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone = { + "Reg-SignalControlZone", + "Reg-SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalControlZone_tags_67, + sizeof(asn_DEF_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_67[0]), /* 1 */ + asn_DEF_Reg_SignalControlZone_tags_67, /* Same as above */ + sizeof(asn_DEF_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_67[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalControlZone_67, + 2, /* Elements count */ + &asn_SPC_Reg_SignalControlZone_specs_67 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_72 = { + sizeof(struct Reg_SignalRequest__regExtValue), + offsetof(struct Reg_SignalRequest__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequest__regExtValue, present), + sizeof(((struct Reg_SignalRequest__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_72 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequest_70[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_71, &asn_PER_memb_regionId_constr_71, memb_regionId_constraint_70 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_72, + 0, + { &asn_OER_memb_regExtValue_constr_72, &asn_PER_memb_regExtValue_constr_72, memb_regExtValue_constraint_70 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequest_tags_70[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequest_tag2el_70[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_70 = { + sizeof(struct Reg_SignalRequest), + offsetof(struct Reg_SignalRequest, _asn_ctx), + asn_MAP_Reg_SignalRequest_tag2el_70, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest = { + "Reg-SignalRequest", + "Reg-SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequest_tags_70, + sizeof(asn_DEF_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_Reg_SignalRequest_tags_70[0]), /* 1 */ + asn_DEF_Reg_SignalRequest_tags_70, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_Reg_SignalRequest_tags_70[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequest_70, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequest_specs_70 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_75 = { + sizeof(struct Reg_SignalRequestPackage__regExtValue), + offsetof(struct Reg_SignalRequestPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestPackage__regExtValue, present), + sizeof(((struct Reg_SignalRequestPackage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_75 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_74, &asn_PER_memb_regionId_constr_74, memb_regionId_constraint_73 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_75, + 0, + { &asn_OER_memb_regExtValue_constr_75, &asn_PER_memb_regExtValue_constr_75, memb_regExtValue_constraint_73 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestPackage_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestPackage_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_73 = { + sizeof(struct Reg_SignalRequestPackage), + offsetof(struct Reg_SignalRequestPackage, _asn_ctx), + asn_MAP_Reg_SignalRequestPackage_tag2el_73, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage = { + "Reg-SignalRequestPackage", + "Reg-SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestPackage_tags_73, + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + asn_DEF_Reg_SignalRequestPackage_tags_73, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequestPackage_73, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestPackage_specs_73 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_78 = { + sizeof(struct Reg_SignalStatus__regExtValue), + offsetof(struct Reg_SignalStatus__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatus__regExtValue, present), + sizeof(((struct Reg_SignalStatus__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_78 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_78 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatus_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_77, &asn_PER_memb_regionId_constr_77, memb_regionId_constraint_76 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_78, + 0, + { &asn_OER_memb_regExtValue_constr_78, &asn_PER_memb_regExtValue_constr_78, memb_regExtValue_constraint_76 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatus_tags_76[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatus_tag2el_76[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_76 = { + sizeof(struct Reg_SignalStatus), + offsetof(struct Reg_SignalStatus, _asn_ctx), + asn_MAP_Reg_SignalStatus_tag2el_76, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus = { + "Reg-SignalStatus", + "Reg-SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatus_tags_76, + sizeof(asn_DEF_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_Reg_SignalStatus_tags_76[0]), /* 1 */ + asn_DEF_Reg_SignalStatus_tags_76, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_Reg_SignalStatus_tags_76[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatus_76, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatus_specs_76 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage__regExtValue, choice.SignalStatusPackage_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SignalStatusPackage-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_81[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SignalStatusPackage-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_81 = { + sizeof(struct Reg_SignalStatusPackage__regExtValue), + offsetof(struct Reg_SignalStatusPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusPackage__regExtValue, present), + sizeof(((struct Reg_SignalStatusPackage__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_81, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_81 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_81, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_79[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_80, &asn_PER_memb_regionId_constr_80, memb_regionId_constraint_79 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_81, + select_Reg_SignalStatusPackage_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_81, &asn_PER_memb_regExtValue_constr_81, memb_regExtValue_constraint_79 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusPackage_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusPackage_tag2el_79[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_79 = { + sizeof(struct Reg_SignalStatusPackage), + offsetof(struct Reg_SignalStatusPackage, _asn_ctx), + asn_MAP_Reg_SignalStatusPackage_tag2el_79, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage = { + "Reg-SignalStatusPackage", + "Reg-SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusPackage_tags_79, + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + asn_DEF_Reg_SignalStatusPackage_tags_79, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatusPackage_79, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusPackage_specs_79 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RegulatorySpeedLimit.c b/vcits/ivim/src/RegulatorySpeedLimit.c new file mode 100644 index 0000000..dffdcc0 --- /dev/null +++ b/vcits/ivim/src/RegulatorySpeedLimit.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RegulatorySpeedLimit.h" + +asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_RegulatorySpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RegulatorySpeedLimit_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1 = { + sizeof(struct RegulatorySpeedLimit), + offsetof(struct RegulatorySpeedLimit, _asn_ctx), + asn_MAP_RegulatorySpeedLimit_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit = { + "RegulatorySpeedLimit", + "RegulatorySpeedLimit", + &asn_OP_SEQUENCE, + asn_DEF_RegulatorySpeedLimit_tags_1, + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_RegulatorySpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RegulatorySpeedLimit_1, + 2, /* Elements count */ + &asn_SPC_RegulatorySpeedLimit_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RejectedReason.c b/vcits/ivim/src/RejectedReason.c new file mode 100644 index 0000000..60e96ad --- /dev/null +++ b/vcits/ivim/src/RejectedReason.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RejectedReason.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RejectedReason_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RejectedReason_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RejectedReason_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "exceptionalCondition" }, + { 2, 22, "maxWaitingTimeExceeded" }, + { 3, 18, "ptPriorityDisabled" }, + { 4, 23, "higherPTPriorityGranted" }, + { 5, 22, "vehicleTrackingUnknown" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RejectedReason_enum2value_1[] = { + 1, /* exceptionalCondition(1) */ + 4, /* higherPTPriorityGranted(4) */ + 2, /* maxWaitingTimeExceeded(2) */ + 3, /* ptPriorityDisabled(3) */ + 0, /* unknown(0) */ + 5 /* vehicleTrackingUnknown(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RejectedReason_specs_1 = { + asn_MAP_RejectedReason_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RejectedReason_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RejectedReason_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RejectedReason = { + "RejectedReason", + "RejectedReason", + &asn_OP_NativeEnumerated, + asn_DEF_RejectedReason_tags_1, + sizeof(asn_DEF_RejectedReason_tags_1) + /sizeof(asn_DEF_RejectedReason_tags_1[0]), /* 1 */ + asn_DEF_RejectedReason_tags_1, /* Same as above */ + sizeof(asn_DEF_RejectedReason_tags_1) + /sizeof(asn_DEF_RejectedReason_tags_1[0]), /* 1 */ + { &asn_OER_type_RejectedReason_constr_1, &asn_PER_type_RejectedReason_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RejectedReason_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RelevanceDistance.c b/vcits/ivim/src/RelevanceDistance.c new file mode 100644 index 0000000..b834796 --- /dev/null +++ b/vcits/ivim/src/RelevanceDistance.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RelevanceDistance.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceDistance_value2enum_1[] = { + { 0, 11, "lessThan50m" }, + { 1, 12, "lessThan100m" }, + { 2, 12, "lessThan200m" }, + { 3, 12, "lessThan500m" }, + { 4, 13, "lessThan1000m" }, + { 5, 11, "lessThan5km" }, + { 6, 12, "lessThan10km" }, + { 7, 8, "over10km" } +}; +static const unsigned int asn_MAP_RelevanceDistance_enum2value_1[] = { + 4, /* lessThan1000m(4) */ + 1, /* lessThan100m(1) */ + 6, /* lessThan10km(6) */ + 2, /* lessThan200m(2) */ + 3, /* lessThan500m(3) */ + 0, /* lessThan50m(0) */ + 5, /* lessThan5km(5) */ + 7 /* over10km(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceDistance_specs_1 = { + asn_MAP_RelevanceDistance_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceDistance_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceDistance = { + "RelevanceDistance", + "RelevanceDistance", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceDistance_tags_1, + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + asn_DEF_RelevanceDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceDistance_constr_1, &asn_PER_type_RelevanceDistance_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceDistance_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RelevanceTrafficDirection.c b/vcits/ivim/src/RelevanceTrafficDirection.c new file mode 100644 index 0000000..669e03f --- /dev/null +++ b/vcits/ivim/src/RelevanceTrafficDirection.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RelevanceTrafficDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceTrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 15, "upstreamTraffic" }, + { 2, 17, "downstreamTraffic" }, + { 3, 15, "oppositeTraffic" } +}; +static const unsigned int asn_MAP_RelevanceTrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 2, /* downstreamTraffic(2) */ + 3, /* oppositeTraffic(3) */ + 1 /* upstreamTraffic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceTrafficDirection_specs_1 = { + asn_MAP_RelevanceTrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceTrafficDirection_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceTrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection = { + "RelevanceTrafficDirection", + "RelevanceTrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceTrafficDirection_tags_1, + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_RelevanceTrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceTrafficDirection_constr_1, &asn_PER_type_RelevanceTrafficDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceTrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RepeatingPeriodDayTypes.c b/vcits/ivim/src/RepeatingPeriodDayTypes.c new file mode 100644 index 0000000..2bacdea --- /dev/null +++ b/vcits/ivim/src/RepeatingPeriodDayTypes.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RepeatingPeriodDayTypes.h" + +int +RepeatingPeriodDayTypes_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RepeatingPeriodDayTypes_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +asn_per_constraints_t asn_PER_type_RepeatingPeriodDayTypes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RepeatingPeriodDayTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RepeatingPeriodDayTypes = { + "RepeatingPeriodDayTypes", + "RepeatingPeriodDayTypes", + &asn_OP_BIT_STRING, + asn_DEF_RepeatingPeriodDayTypes_tags_1, + sizeof(asn_DEF_RepeatingPeriodDayTypes_tags_1) + /sizeof(asn_DEF_RepeatingPeriodDayTypes_tags_1[0]), /* 1 */ + asn_DEF_RepeatingPeriodDayTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_RepeatingPeriodDayTypes_tags_1) + /sizeof(asn_DEF_RepeatingPeriodDayTypes_tags_1[0]), /* 1 */ + { &asn_OER_type_RepeatingPeriodDayTypes_constr_1, &asn_PER_type_RepeatingPeriodDayTypes_constr_1, RepeatingPeriodDayTypes_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RequestID.c b/vcits/ivim/src/RequestID.c new file mode 100644 index 0000000..327a1ae --- /dev/null +++ b/vcits/ivim/src/RequestID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RequestID.h" + +int +RequestID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RequestID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RequestID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestID = { + "RequestID", + "RequestID", + &asn_OP_NativeInteger, + asn_DEF_RequestID_tags_1, + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + asn_DEF_RequestID_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestID_constr_1, &asn_PER_type_RequestID_constr_1, RequestID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/RequestImportanceLevel.c b/vcits/ivim/src/RequestImportanceLevel.c new file mode 100644 index 0000000..58aaff5 --- /dev/null +++ b/vcits/ivim/src/RequestImportanceLevel.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RequestImportanceLevel.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestImportanceLevel_value2enum_1[] = { + { 0, 29, "requestImportanceLevelUnKnown" }, + { 1, 23, "requestImportanceLevel1" }, + { 2, 23, "requestImportanceLevel2" }, + { 3, 23, "requestImportanceLevel3" }, + { 4, 23, "requestImportanceLevel4" }, + { 5, 23, "requestImportanceLevel5" }, + { 6, 23, "requestImportanceLevel6" }, + { 7, 23, "requestImportanceLevel7" }, + { 8, 23, "requestImportanceLevel8" }, + { 9, 23, "requestImportanceLevel9" }, + { 10, 24, "requestImportanceLevel10" }, + { 11, 24, "requestImportanceLevel11" }, + { 12, 24, "requestImportanceLevel12" }, + { 13, 24, "requestImportanceLevel13" }, + { 14, 24, "requestImportanceLevel14" }, + { 15, 25, "requestImportanceReserved" } +}; +static const unsigned int asn_MAP_RequestImportanceLevel_enum2value_1[] = { + 1, /* requestImportanceLevel1(1) */ + 10, /* requestImportanceLevel10(10) */ + 11, /* requestImportanceLevel11(11) */ + 12, /* requestImportanceLevel12(12) */ + 13, /* requestImportanceLevel13(13) */ + 14, /* requestImportanceLevel14(14) */ + 2, /* requestImportanceLevel2(2) */ + 3, /* requestImportanceLevel3(3) */ + 4, /* requestImportanceLevel4(4) */ + 5, /* requestImportanceLevel5(5) */ + 6, /* requestImportanceLevel6(6) */ + 7, /* requestImportanceLevel7(7) */ + 8, /* requestImportanceLevel8(8) */ + 9, /* requestImportanceLevel9(9) */ + 0, /* requestImportanceLevelUnKnown(0) */ + 15 /* requestImportanceReserved(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1 = { + asn_MAP_RequestImportanceLevel_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestImportanceLevel_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestImportanceLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel = { + "RequestImportanceLevel", + "RequestImportanceLevel", + &asn_OP_NativeEnumerated, + asn_DEF_RequestImportanceLevel_tags_1, + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + asn_DEF_RequestImportanceLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestImportanceLevel_constr_1, &asn_PER_type_RequestImportanceLevel_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestImportanceLevel_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RequestResponseIndication.c b/vcits/ivim/src/RequestResponseIndication.c new file mode 100644 index 0000000..2be9436 --- /dev/null +++ b/vcits/ivim/src/RequestResponseIndication.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RequestResponseIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestResponseIndication_value2enum_1[] = { + { 0, 7, "request" }, + { 1, 8, "response" } +}; +static const unsigned int asn_MAP_RequestResponseIndication_enum2value_1[] = { + 0, /* request(0) */ + 1 /* response(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RequestResponseIndication_specs_1 = { + asn_MAP_RequestResponseIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestResponseIndication_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestResponseIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication = { + "RequestResponseIndication", + "RequestResponseIndication", + &asn_OP_NativeEnumerated, + asn_DEF_RequestResponseIndication_tags_1, + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + asn_DEF_RequestResponseIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestResponseIndication_constr_1, &asn_PER_type_RequestResponseIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestResponseIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RequestSubRole.c b/vcits/ivim/src/RequestSubRole.c new file mode 100644 index 0000000..34f4e5b --- /dev/null +++ b/vcits/ivim/src/RequestSubRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RequestSubRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestSubRole_value2enum_1[] = { + { 0, 21, "requestSubRoleUnKnown" }, + { 1, 15, "requestSubRole1" }, + { 2, 15, "requestSubRole2" }, + { 3, 15, "requestSubRole3" }, + { 4, 15, "requestSubRole4" }, + { 5, 15, "requestSubRole5" }, + { 6, 15, "requestSubRole6" }, + { 7, 15, "requestSubRole7" }, + { 8, 15, "requestSubRole8" }, + { 9, 15, "requestSubRole9" }, + { 10, 16, "requestSubRole10" }, + { 11, 16, "requestSubRole11" }, + { 12, 16, "requestSubRole12" }, + { 13, 16, "requestSubRole13" }, + { 14, 16, "requestSubRole14" }, + { 15, 22, "requestSubRoleReserved" } +}; +static const unsigned int asn_MAP_RequestSubRole_enum2value_1[] = { + 1, /* requestSubRole1(1) */ + 10, /* requestSubRole10(10) */ + 11, /* requestSubRole11(11) */ + 12, /* requestSubRole12(12) */ + 13, /* requestSubRole13(13) */ + 14, /* requestSubRole14(14) */ + 2, /* requestSubRole2(2) */ + 3, /* requestSubRole3(3) */ + 4, /* requestSubRole4(4) */ + 5, /* requestSubRole5(5) */ + 6, /* requestSubRole6(6) */ + 7, /* requestSubRole7(7) */ + 8, /* requestSubRole8(8) */ + 9, /* requestSubRole9(9) */ + 15, /* requestSubRoleReserved(15) */ + 0 /* requestSubRoleUnKnown(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1 = { + asn_MAP_RequestSubRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestSubRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestSubRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestSubRole = { + "RequestSubRole", + "RequestSubRole", + &asn_OP_NativeEnumerated, + asn_DEF_RequestSubRole_tags_1, + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + asn_DEF_RequestSubRole_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestSubRole_constr_1, &asn_PER_type_RequestSubRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestSubRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RequestorDescription-addGrpC.c b/vcits/ivim/src/RequestorDescription-addGrpC.c new file mode 100644 index 0000000..e75f750 --- /dev/null +++ b/vcits/ivim/src/RequestorDescription-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RequestorDescription-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RequestorDescription_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct RequestorDescription_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fuel" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription_addGrpC, batteryStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BatteryStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "batteryStatus" + }, +}; +static const int asn_MAP_RequestorDescription_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fuel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* batteryStatus */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_addGrpC_specs_1 = { + sizeof(struct RequestorDescription_addGrpC), + offsetof(struct RequestorDescription_addGrpC, _asn_ctx), + asn_MAP_RequestorDescription_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RequestorDescription_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription_addGrpC = { + "RequestorDescription-addGrpC", + "RequestorDescription-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_addGrpC_tags_1, + sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorDescription_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_RequestorDescription_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RequestorDescription.c b/vcits/ivim/src/RequestorDescription.c new file mode 100644 index 0000000..50478c7 --- /dev/null +++ b/vcits/ivim/src/RequestorDescription.c @@ -0,0 +1,214 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RequestorDescription.h" + +#include "RequestorType.h" +#include "RequestorPositionVector.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RequestorDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct RequestorDescription__regional), + offsetof(struct RequestorDescription__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RequestorDescription_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorDescription, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 8, offsetof(struct RequestorDescription, type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 7, offsetof(struct RequestorDescription, position), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorPositionVector, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 6, offsetof(struct RequestorDescription, name), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 5, offsetof(struct RequestorDescription, routeName), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "routeName" + }, + { ATF_POINTER, 4, offsetof(struct RequestorDescription, transitStatus), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitStatus" + }, + { ATF_POINTER, 3, offsetof(struct RequestorDescription, transitOccupancy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleOccupancy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitOccupancy" + }, + { ATF_POINTER, 2, offsetof(struct RequestorDescription, transitSchedule), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitSchedule" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorDescription_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* routeName */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* transitStatus */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* transitOccupancy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* transitSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1 = { + sizeof(struct RequestorDescription), + offsetof(struct RequestorDescription, _asn_ctx), + asn_MAP_RequestorDescription_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_RequestorDescription_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription = { + "RequestorDescription", + "RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_tags_1, + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorDescription_1, + 9, /* Elements count */ + &asn_SPC_RequestorDescription_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RequestorPositionVector.c b/vcits/ivim/src/RequestorPositionVector.c new file mode 100644 index 0000000..fdfa9f9 --- /dev/null +++ b/vcits/ivim/src/RequestorPositionVector.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RequestorPositionVector.h" + +#include "TransmissionAndSpeed.h" +asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorPositionVector, position), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 2, offsetof(struct RequestorPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 1, offsetof(struct RequestorPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const int asn_MAP_RequestorPositionVector_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_RequestorPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1 = { + sizeof(struct RequestorPositionVector), + offsetof(struct RequestorPositionVector, _asn_ctx), + asn_MAP_RequestorPositionVector_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RequestorPositionVector_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector = { + "RequestorPositionVector", + "RequestorPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_RequestorPositionVector_tags_1, + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + asn_DEF_RequestorPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorPositionVector_1, + 3, /* Elements count */ + &asn_SPC_RequestorPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RequestorType.c b/vcits/ivim/src/RequestorType.c new file mode 100644 index 0000000..fe93746 --- /dev/null +++ b/vcits/ivim/src/RequestorType.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RequestorType.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_RequestorType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorType, role), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 5, offsetof(struct RequestorType, subrole), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestSubRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subrole" + }, + { ATF_POINTER, 4, offsetof(struct RequestorType, request), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestImportanceLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 3, offsetof(struct RequestorType, iso3883), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Iso3833VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iso3883" + }, + { ATF_POINTER, 2, offsetof(struct RequestorType, hpmsType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hpmsType" + }, + { ATF_POINTER, 1, offsetof(struct RequestorType, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorType_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_RequestorType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subrole */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* iso3883 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* hpmsType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1 = { + sizeof(struct RequestorType), + offsetof(struct RequestorType, _asn_ctx), + asn_MAP_RequestorType_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_RequestorType_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorType = { + "RequestorType", + "RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_RequestorType_tags_1, + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + asn_DEF_RequestorType_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorType_1, + 6, /* Elements count */ + &asn_SPC_RequestorType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RescueAndRecoveryWorkInProgressSubCauseCode.c b/vcits/ivim/src/RescueAndRecoveryWorkInProgressSubCauseCode.c new file mode 100644 index 0000000..09cee34 --- /dev/null +++ b/vcits/ivim/src/RescueAndRecoveryWorkInProgressSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RescueAndRecoveryWorkInProgressSubCauseCode.h" + +int +RescueAndRecoveryWorkInProgressSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode = { + "RescueAndRecoveryWorkInProgressSubCauseCode", + "RescueAndRecoveryWorkInProgressSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, &asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, RescueAndRecoveryWorkInProgressSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/RestrictedTypes.c b/vcits/ivim/src/RestrictedTypes.c new file mode 100644 index 0000000..b55c0ee --- /dev/null +++ b/vcits/ivim/src/RestrictedTypes.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RestrictedTypes.h" + +static asn_oer_constraints_t asn_OER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RestrictedTypes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ITS_Container_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictedTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_RestrictedTypes_specs_1 = { + sizeof(struct RestrictedTypes), + offsetof(struct RestrictedTypes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictedTypes = { + "RestrictedTypes", + "RestrictedTypes", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictedTypes_tags_1, + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + asn_DEF_RestrictedTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictedTypes_constr_1, &asn_PER_type_RestrictedTypes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictedTypes_1, + 1, /* Single element */ + &asn_SPC_RestrictedTypes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RestrictionAppliesTo.c b/vcits/ivim/src/RestrictionAppliesTo.c new file mode 100644 index 0000000..0575a8a --- /dev/null +++ b/vcits/ivim/src/RestrictionAppliesTo.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RestrictionAppliesTo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RestrictionAppliesTo_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 15, "equippedTransit" }, + { 2, 13, "equippedTaxis" }, + { 3, 13, "equippedOther" }, + { 4, 17, "emissionCompliant" }, + { 5, 15, "equippedBicycle" }, + { 6, 15, "weightCompliant" }, + { 7, 15, "heightCompliant" }, + { 8, 11, "pedestrians" }, + { 9, 17, "slowMovingPersons" }, + { 10, 15, "wheelchairUsers" }, + { 11, 18, "visualDisabilities" }, + { 12, 17, "audioDisabilities" }, + { 13, 24, "otherUnknownDisabilities" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RestrictionAppliesTo_enum2value_1[] = { + 12, /* audioDisabilities(12) */ + 4, /* emissionCompliant(4) */ + 5, /* equippedBicycle(5) */ + 3, /* equippedOther(3) */ + 2, /* equippedTaxis(2) */ + 1, /* equippedTransit(1) */ + 7, /* heightCompliant(7) */ + 0, /* none(0) */ + 13, /* otherUnknownDisabilities(13) */ + 8, /* pedestrians(8) */ + 9, /* slowMovingPersons(9) */ + 11, /* visualDisabilities(11) */ + 6, /* weightCompliant(6) */ + 10 /* wheelchairUsers(10) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1 = { + asn_MAP_RestrictionAppliesTo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RestrictionAppliesTo_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RestrictionAppliesTo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo = { + "RestrictionAppliesTo", + "RestrictionAppliesTo", + &asn_OP_NativeEnumerated, + asn_DEF_RestrictionAppliesTo_tags_1, + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + asn_DEF_RestrictionAppliesTo_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionAppliesTo_constr_1, &asn_PER_type_RestrictionAppliesTo_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RestrictionAppliesTo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RestrictionClassAssignment.c b/vcits/ivim/src/RestrictionClassAssignment.c new file mode 100644 index 0000000..2a86213 --- /dev/null +++ b/vcits/ivim/src/RestrictionClassAssignment.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RestrictionClassAssignment.h" + +asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, users), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionUserTypeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "users" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassAssignment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionClassAssignment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* users */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1 = { + sizeof(struct RestrictionClassAssignment), + offsetof(struct RestrictionClassAssignment, _asn_ctx), + asn_MAP_RestrictionClassAssignment_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment = { + "RestrictionClassAssignment", + "RestrictionClassAssignment", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionClassAssignment_tags_1, + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassAssignment_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RestrictionClassAssignment_1, + 2, /* Elements count */ + &asn_SPC_RestrictionClassAssignment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RestrictionClassID.c b/vcits/ivim/src/RestrictionClassID.c new file mode 100644 index 0000000..afc6189 --- /dev/null +++ b/vcits/ivim/src/RestrictionClassID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RestrictionClassID.h" + +int +RestrictionClassID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassID = { + "RestrictionClassID", + "RestrictionClassID", + &asn_OP_NativeInteger, + asn_DEF_RestrictionClassID_tags_1, + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassID_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionClassID_constr_1, &asn_PER_type_RestrictionClassID_constr_1, RestrictionClassID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/RestrictionClassList.c b/vcits/ivim/src/RestrictionClassList.c new file mode 100644 index 0000000..f59d19c --- /dev/null +++ b/vcits/ivim/src/RestrictionClassList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RestrictionClassList.h" + +#include "RestrictionClassAssignment.h" +static asn_oer_constraints_t asn_OER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..254)) */}; +asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 254 } /* (SIZE(1..254)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictionClassList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionClassAssignment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1 = { + sizeof(struct RestrictionClassList), + offsetof(struct RestrictionClassList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassList = { + "RestrictionClassList", + "RestrictionClassList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionClassList_tags_1, + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionClassList_constr_1, &asn_PER_type_RestrictionClassList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictionClassList_1, + 1, /* Single element */ + &asn_SPC_RestrictionClassList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RestrictionUserType-addGrpC.c b/vcits/ivim/src/RestrictionUserType-addGrpC.c new file mode 100644 index 0000000..64b881a --- /dev/null +++ b/vcits/ivim/src/RestrictionUserType-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RestrictionUserType-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct RestrictionUserType_addGrpC, emission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmissionType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emission" + }, + { ATF_POINTER, 1, offsetof(struct RestrictionUserType_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fuel" + }, +}; +static const int asn_MAP_RestrictionUserType_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RestrictionUserType_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* emission */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fuel */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1 = { + sizeof(struct RestrictionUserType_addGrpC), + offsetof(struct RestrictionUserType_addGrpC, _asn_ctx), + asn_MAP_RestrictionUserType_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RestrictionUserType_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC = { + "RestrictionUserType-addGrpC", + "RestrictionUserType-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionUserType_addGrpC_tags_1, + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserType_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RestrictionUserType_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RestrictionUserType.c b/vcits/ivim/src/RestrictionUserType.c new file mode 100644 index 0000000..039d820 --- /dev/null +++ b/vcits/ivim/src/RestrictionUserType.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RestrictionUserType.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RestrictionUserType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_3 = { + sizeof(struct RestrictionUserType__regional), + offsetof(struct RestrictionUserType__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_3 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_3, + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]) - 1, /* 1 */ + asn_DEF_regional_tags_3, /* Same as above */ + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]), /* 2 */ + { &asn_OER_type_regional_constr_3, &asn_PER_type_regional_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_regional_3, + 1, /* Single element */ + &asn_SPC_regional_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RestrictionUserType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.basicType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionAppliesTo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "basicType" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_regional_3, + 0, + { &asn_OER_memb_regional_constr_3, &asn_PER_memb_regional_constr_3, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1 = { + sizeof(struct RestrictionUserType), + offsetof(struct RestrictionUserType, _asn_ctx), + offsetof(struct RestrictionUserType, present), + sizeof(((struct RestrictionUserType *)0)->present), + asn_MAP_RestrictionUserType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType = { + "RestrictionUserType", + "RestrictionUserType", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_RestrictionUserType_constr_1, &asn_PER_type_RestrictionUserType_constr_1, CHOICE_constraint }, + asn_MBR_RestrictionUserType_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RestrictionUserTypeList.c b/vcits/ivim/src/RestrictionUserTypeList.c new file mode 100644 index 0000000..5c8acc2 --- /dev/null +++ b/vcits/ivim/src/RestrictionUserTypeList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RestrictionUserTypeList.h" + +#include "RestrictionUserType.h" +static asn_oer_constraints_t asn_OER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RestrictionUserType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionUserTypeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1 = { + sizeof(struct RestrictionUserTypeList), + offsetof(struct RestrictionUserTypeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList = { + "RestrictionUserTypeList", + "RestrictionUserTypeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionUserTypeList_tags_1, + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserTypeList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionUserTypeList_constr_1, &asn_PER_type_RestrictionUserTypeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictionUserTypeList_1, + 1, /* Single element */ + &asn_SPC_RestrictionUserTypeList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ResultFin.c b/vcits/ivim/src/ResultFin.c new file mode 100644 index 0000000..4b5d966 --- /dev/null +++ b/vcits/ivim/src/ResultFin.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ResultFin.h" + +int +ResultFin_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 1)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ResultFin_constr_1 CC_NOTUSED = { + { 0, 0 }, + 1 /* (SIZE(1..1)) */}; +asn_per_constraints_t asn_PER_type_ResultFin_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ResultFin_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ResultFin = { + "ResultFin", + "ResultFin", + &asn_OP_OCTET_STRING, + asn_DEF_ResultFin_tags_1, + sizeof(asn_DEF_ResultFin_tags_1) + /sizeof(asn_DEF_ResultFin_tags_1[0]), /* 1 */ + asn_DEF_ResultFin_tags_1, /* Same as above */ + sizeof(asn_DEF_ResultFin_tags_1) + /sizeof(asn_DEF_ResultFin_tags_1[0]), /* 1 */ + { &asn_OER_type_ResultFin_constr_1, &asn_PER_type_ResultFin_constr_1, ResultFin_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ResultOp.c b/vcits/ivim/src/ResultOp.c new file mode 100644 index 0000000..e52ba88 --- /dev/null +++ b/vcits/ivim/src/ResultOp.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ResultOp.h" + +int +ResultOp_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ResultOp_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_ResultOp_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ResultOp_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ResultOp = { + "ResultOp", + "ResultOp", + &asn_OP_NativeInteger, + asn_DEF_ResultOp_tags_1, + sizeof(asn_DEF_ResultOp_tags_1) + /sizeof(asn_DEF_ResultOp_tags_1[0]), /* 1 */ + asn_DEF_ResultOp_tags_1, /* Same as above */ + sizeof(asn_DEF_ResultOp_tags_1) + /sizeof(asn_DEF_ResultOp_tags_1[0]), /* 1 */ + { &asn_OER_type_ResultOp_constr_1, &asn_PER_type_ResultOp_constr_1, ResultOp_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/RoadConfigurationContainer.c b/vcits/ivim/src/RoadConfigurationContainer.c new file mode 100644 index 0000000..ae8405f --- /dev/null +++ b/vcits/ivim/src/RoadConfigurationContainer.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RoadConfigurationContainer.h" + +#include "RccPart.h" +static asn_oer_constraints_t asn_OER_type_RoadConfigurationContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_RoadConfigurationContainer_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 16 } /* (SIZE(1..16,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadConfigurationContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RccPart, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadConfigurationContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadConfigurationContainer_specs_1 = { + sizeof(struct RoadConfigurationContainer), + offsetof(struct RoadConfigurationContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadConfigurationContainer = { + "RoadConfigurationContainer", + "RoadConfigurationContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadConfigurationContainer_tags_1, + sizeof(asn_DEF_RoadConfigurationContainer_tags_1) + /sizeof(asn_DEF_RoadConfigurationContainer_tags_1[0]), /* 1 */ + asn_DEF_RoadConfigurationContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadConfigurationContainer_tags_1) + /sizeof(asn_DEF_RoadConfigurationContainer_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadConfigurationContainer_constr_1, &asn_PER_type_RoadConfigurationContainer_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadConfigurationContainer_1, + 1, /* Single element */ + &asn_SPC_RoadConfigurationContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RoadLaneSetList.c b/vcits/ivim/src/RoadLaneSetList.c new file mode 100644 index 0000000..223d005 --- /dev/null +++ b/vcits/ivim/src/RoadLaneSetList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RoadLaneSetList.h" + +#include "GenericLane.h" +static asn_oer_constraints_t asn_OER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadLaneSetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1 = { + sizeof(struct RoadLaneSetList), + offsetof(struct RoadLaneSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList = { + "RoadLaneSetList", + "RoadLaneSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadLaneSetList_tags_1, + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + asn_DEF_RoadLaneSetList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadLaneSetList_constr_1, &asn_PER_type_RoadLaneSetList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadLaneSetList_1, + 1, /* Single element */ + &asn_SPC_RoadLaneSetList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RoadRegulatorID.c b/vcits/ivim/src/RoadRegulatorID.c new file mode 100644 index 0000000..b8fe604 --- /dev/null +++ b/vcits/ivim/src/RoadRegulatorID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RoadRegulatorID.h" + +int +RoadRegulatorID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadRegulatorID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID = { + "RoadRegulatorID", + "RoadRegulatorID", + &asn_OP_NativeInteger, + asn_DEF_RoadRegulatorID_tags_1, + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + asn_DEF_RoadRegulatorID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadRegulatorID_constr_1, &asn_PER_type_RoadRegulatorID_constr_1, RoadRegulatorID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/RoadSegment.c b/vcits/ivim/src/RoadSegment.c new file mode 100644 index 0000000..e42e6d7 --- /dev/null +++ b/vcits/ivim/src/RoadSegment.c @@ -0,0 +1,203 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RoadSegment.h" + +#include "SpeedLimitList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RoadSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct RoadSegment__regional), + offsetof(struct RoadSegment__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { &asn_OER_type_regional_constr_9, &asn_PER_type_regional_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RoadSegment_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegment, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct RoadSegment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, roadLaneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadLaneSetList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadLaneSet" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { &asn_OER_memb_regional_constr_9, &asn_PER_memb_regional_constr_9, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RoadSegment_oms_1[] = { 0, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_RoadSegment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* roadLaneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1 = { + sizeof(struct RoadSegment), + offsetof(struct RoadSegment, _asn_ctx), + asn_MAP_RoadSegment_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_RoadSegment_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegment = { + "RoadSegment", + "RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegment_tags_1, + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + asn_DEF_RoadSegment_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSegment_1, + 8, /* Elements count */ + &asn_SPC_RoadSegment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RoadSegmentID.c b/vcits/ivim/src/RoadSegmentID.c new file mode 100644 index 0000000..01381a9 --- /dev/null +++ b/vcits/ivim/src/RoadSegmentID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RoadSegmentID.h" + +int +RoadSegmentID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentID = { + "RoadSegmentID", + "RoadSegmentID", + &asn_OP_NativeInteger, + asn_DEF_RoadSegmentID_tags_1, + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSegmentID_constr_1, &asn_PER_type_RoadSegmentID_constr_1, RoadSegmentID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/RoadSegmentList.c b/vcits/ivim/src/RoadSegmentList.c new file mode 100644 index 0000000..238bb4f --- /dev/null +++ b/vcits/ivim/src/RoadSegmentList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RoadSegmentList.h" + +#include "RoadSegment.h" +static asn_oer_constraints_t asn_OER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadSegmentList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RoadSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1 = { + sizeof(struct RoadSegmentList), + offsetof(struct RoadSegmentList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentList = { + "RoadSegmentList", + "RoadSegmentList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadSegmentList_tags_1, + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSegmentList_constr_1, &asn_PER_type_RoadSegmentList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadSegmentList_1, + 1, /* Single element */ + &asn_SPC_RoadSegmentList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RoadSegmentReferenceID.c b/vcits/ivim/src/RoadSegmentReferenceID.c new file mode 100644 index 0000000..7247542 --- /dev/null +++ b/vcits/ivim/src/RoadSegmentReferenceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RoadSegmentReferenceID.h" + +asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegmentReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegmentReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_RoadSegmentReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_RoadSegmentReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegmentReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1 = { + sizeof(struct RoadSegmentReferenceID), + offsetof(struct RoadSegmentReferenceID, _asn_ctx), + asn_MAP_RoadSegmentReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RoadSegmentReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID = { + "RoadSegmentReferenceID", + "RoadSegmentReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegmentReferenceID_tags_1, + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSegmentReferenceID_1, + 2, /* Elements count */ + &asn_SPC_RoadSegmentReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RoadSignCodes.c b/vcits/ivim/src/RoadSignCodes.c new file mode 100644 index 0000000..7fc6839 --- /dev/null +++ b/vcits/ivim/src/RoadSignCodes.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RoadSignCodes.h" + +#include "RSCode.h" +static asn_oer_constraints_t asn_OER_type_RoadSignCodes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_RoadSignCodes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (SIZE(1..4,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadSignCodes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RSCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadSignCodes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadSignCodes_specs_1 = { + sizeof(struct RoadSignCodes), + offsetof(struct RoadSignCodes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSignCodes = { + "RoadSignCodes", + "RoadSignCodes", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadSignCodes_tags_1, + sizeof(asn_DEF_RoadSignCodes_tags_1) + /sizeof(asn_DEF_RoadSignCodes_tags_1[0]), /* 1 */ + asn_DEF_RoadSignCodes_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSignCodes_tags_1) + /sizeof(asn_DEF_RoadSignCodes_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSignCodes_constr_1, &asn_PER_type_RoadSignCodes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadSignCodes_1, + 1, /* Single element */ + &asn_SPC_RoadSignCodes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RoadSurfaceContainer.c b/vcits/ivim/src/RoadSurfaceContainer.c new file mode 100644 index 0000000..26ea05c --- /dev/null +++ b/vcits/ivim/src/RoadSurfaceContainer.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RoadSurfaceContainer.h" + +#include "RscPart.h" +static asn_oer_constraints_t asn_OER_type_RoadSurfaceContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_RoadSurfaceContainer_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 16 } /* (SIZE(1..16,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadSurfaceContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RscPart, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadSurfaceContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadSurfaceContainer_specs_1 = { + sizeof(struct RoadSurfaceContainer), + offsetof(struct RoadSurfaceContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSurfaceContainer = { + "RoadSurfaceContainer", + "RoadSurfaceContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadSurfaceContainer_tags_1, + sizeof(asn_DEF_RoadSurfaceContainer_tags_1) + /sizeof(asn_DEF_RoadSurfaceContainer_tags_1[0]), /* 1 */ + asn_DEF_RoadSurfaceContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSurfaceContainer_tags_1) + /sizeof(asn_DEF_RoadSurfaceContainer_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSurfaceContainer_constr_1, &asn_PER_type_RoadSurfaceContainer_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadSurfaceContainer_1, + 1, /* Single element */ + &asn_SPC_RoadSurfaceContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RoadSurfaceDynamicCharacteristics.c b/vcits/ivim/src/RoadSurfaceDynamicCharacteristics.c new file mode 100644 index 0000000..f43c786 --- /dev/null +++ b/vcits/ivim/src/RoadSurfaceDynamicCharacteristics.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RoadSurfaceDynamicCharacteristics.h" + +asn_TYPE_member_t asn_MBR_RoadSurfaceDynamicCharacteristics_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RoadSurfaceDynamicCharacteristics, condition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Condition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "condition" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSurfaceDynamicCharacteristics, temperature), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IVI_Temperature, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "temperature" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSurfaceDynamicCharacteristics, iceOrWaterDepth), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Depth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iceOrWaterDepth" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSurfaceDynamicCharacteristics, treatment), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TreatmentType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "treatment" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadSurfaceDynamicCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSurfaceDynamicCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* condition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* temperature */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* iceOrWaterDepth */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* treatment */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSurfaceDynamicCharacteristics_specs_1 = { + sizeof(struct RoadSurfaceDynamicCharacteristics), + offsetof(struct RoadSurfaceDynamicCharacteristics, _asn_ctx), + asn_MAP_RoadSurfaceDynamicCharacteristics_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSurfaceDynamicCharacteristics = { + "RoadSurfaceDynamicCharacteristics", + "RoadSurfaceDynamicCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_RoadSurfaceDynamicCharacteristics_tags_1, + sizeof(asn_DEF_RoadSurfaceDynamicCharacteristics_tags_1) + /sizeof(asn_DEF_RoadSurfaceDynamicCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_RoadSurfaceDynamicCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSurfaceDynamicCharacteristics_tags_1) + /sizeof(asn_DEF_RoadSurfaceDynamicCharacteristics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSurfaceDynamicCharacteristics_1, + 4, /* Elements count */ + &asn_SPC_RoadSurfaceDynamicCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RoadSurfaceStaticCharacteristics.c b/vcits/ivim/src/RoadSurfaceStaticCharacteristics.c new file mode 100644 index 0000000..566c3b9 --- /dev/null +++ b/vcits/ivim/src/RoadSurfaceStaticCharacteristics.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RoadSurfaceStaticCharacteristics.h" + +asn_TYPE_member_t asn_MBR_RoadSurfaceStaticCharacteristics_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RoadSurfaceStaticCharacteristics, frictionCoefficient), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FrictionCoefficient, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frictionCoefficient" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSurfaceStaticCharacteristics, material), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MaterialType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "material" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSurfaceStaticCharacteristics, wear), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WearLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wear" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSurfaceStaticCharacteristics, avBankingAngle), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BankingAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "avBankingAngle" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadSurfaceStaticCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSurfaceStaticCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frictionCoefficient */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* material */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* wear */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* avBankingAngle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSurfaceStaticCharacteristics_specs_1 = { + sizeof(struct RoadSurfaceStaticCharacteristics), + offsetof(struct RoadSurfaceStaticCharacteristics, _asn_ctx), + asn_MAP_RoadSurfaceStaticCharacteristics_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSurfaceStaticCharacteristics = { + "RoadSurfaceStaticCharacteristics", + "RoadSurfaceStaticCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_RoadSurfaceStaticCharacteristics_tags_1, + sizeof(asn_DEF_RoadSurfaceStaticCharacteristics_tags_1) + /sizeof(asn_DEF_RoadSurfaceStaticCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_RoadSurfaceStaticCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSurfaceStaticCharacteristics_tags_1) + /sizeof(asn_DEF_RoadSurfaceStaticCharacteristics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSurfaceStaticCharacteristics_1, + 4, /* Elements count */ + &asn_SPC_RoadSurfaceStaticCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RoadType.c b/vcits/ivim/src/RoadType.c new file mode 100644 index 0000000..929160b --- /dev/null +++ b/vcits/ivim/src/RoadType.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RoadType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RoadType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RoadType_value2enum_1[] = { + { 0, 43, "urban-NoStructuralSeparationToOppositeLanes" }, + { 1, 45, "urban-WithStructuralSeparationToOppositeLanes" }, + { 2, 46, "nonUrban-NoStructuralSeparationToOppositeLanes" }, + { 3, 48, "nonUrban-WithStructuralSeparationToOppositeLanes" } +}; +static const unsigned int asn_MAP_RoadType_enum2value_1[] = { + 2, /* nonUrban-NoStructuralSeparationToOppositeLanes(2) */ + 3, /* nonUrban-WithStructuralSeparationToOppositeLanes(3) */ + 0, /* urban-NoStructuralSeparationToOppositeLanes(0) */ + 1 /* urban-WithStructuralSeparationToOppositeLanes(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RoadType_specs_1 = { + asn_MAP_RoadType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RoadType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadType = { + "RoadType", + "RoadType", + &asn_OP_NativeEnumerated, + asn_DEF_RoadType_tags_1, + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + asn_DEF_RoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadType_constr_1, &asn_PER_type_RoadType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RoadType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/RoadwayCrownAngle.c b/vcits/ivim/src/RoadwayCrownAngle.c new file mode 100644 index 0000000..5b258cf --- /dev/null +++ b/vcits/ivim/src/RoadwayCrownAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RoadwayCrownAngle.h" + +int +RoadwayCrownAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -128 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-128..127) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -128, 127 } /* (-128..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadwayCrownAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle = { + "RoadwayCrownAngle", + "RoadwayCrownAngle", + &asn_OP_NativeInteger, + asn_DEF_RoadwayCrownAngle_tags_1, + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + asn_DEF_RoadwayCrownAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadwayCrownAngle_constr_1, &asn_PER_type_RoadwayCrownAngle_constr_1, RoadwayCrownAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/RoadworksSubCauseCode.c b/vcits/ivim/src/RoadworksSubCauseCode.c new file mode 100644 index 0000000..086141c --- /dev/null +++ b/vcits/ivim/src/RoadworksSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RoadworksSubCauseCode.h" + +int +RoadworksSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadworksSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode = { + "RoadworksSubCauseCode", + "RoadworksSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RoadworksSubCauseCode_tags_1, + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RoadworksSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadworksSubCauseCode_constr_1, &asn_PER_type_RoadworksSubCauseCode_constr_1, RoadworksSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/RscPart.c b/vcits/ivim/src/RscPart.c new file mode 100644 index 0000000..48a36a2 --- /dev/null +++ b/vcits/ivim/src/RscPart.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "RscPart.h" + +#include "ZoneIds.h" +#include "RoadSurfaceStaticCharacteristics.h" +#include "RoadSurfaceDynamicCharacteristics.h" +static asn_oer_constraints_t asn_OER_type_RscPart_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RscPart_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RscPart_1[] = { + { ATF_POINTER, 1, offsetof(struct RscPart, detectionZoneIds), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneIds, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "detectionZoneIds" + }, + { ATF_NOFLAGS, 0, offsetof(struct RscPart, relevanceZoneIds), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneIds, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "relevanceZoneIds" + }, + { ATF_POINTER, 3, offsetof(struct RscPart, direction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Direction, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "direction" + }, + { ATF_POINTER, 2, offsetof(struct RscPart, roadSurfaceStaticCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSurfaceStaticCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadSurfaceStaticCharacteristics" + }, + { ATF_POINTER, 1, offsetof(struct RscPart, roadSurfaceDynamicCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSurfaceDynamicCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadSurfaceDynamicCharacteristics" + }, +}; +static const int asn_MAP_RscPart_oms_1[] = { 0, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_RscPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RscPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* detectionZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* relevanceZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roadSurfaceStaticCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* roadSurfaceDynamicCharacteristics */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RscPart_specs_1 = { + sizeof(struct RscPart), + offsetof(struct RscPart, _asn_ctx), + asn_MAP_RscPart_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_RscPart_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RscPart = { + "RscPart", + "RscPart", + &asn_OP_SEQUENCE, + asn_DEF_RscPart_tags_1, + sizeof(asn_DEF_RscPart_tags_1) + /sizeof(asn_DEF_RscPart_tags_1[0]), /* 1 */ + asn_DEF_RscPart_tags_1, /* Same as above */ + sizeof(asn_DEF_RscPart_tags_1) + /sizeof(asn_DEF_RscPart_tags_1[0]), /* 1 */ + { &asn_OER_type_RscPart_constr_1, &asn_PER_type_RscPart_constr_1, SEQUENCE_constraint }, + asn_MBR_RscPart_1, + 5, /* Elements count */ + &asn_SPC_RscPart_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SPAT.c b/vcits/ivim/src/SPAT.c new file mode 100644 index 0000000..38baa91 --- /dev/null +++ b/vcits/ivim/src/SPAT.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SPAT.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SPAT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SPAT__regional), + offsetof(struct SPAT__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SPAT_1[] = { + { ATF_POINTER, 2, offsetof(struct SPAT, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct SPAT, intersections), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SPAT_oms_1[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_SPAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SPAT_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SPAT_specs_1 = { + sizeof(struct SPAT), + offsetof(struct SPAT, _asn_ctx), + asn_MAP_SPAT_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SPAT_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SPAT = { + "SPAT", + "SPAT", + &asn_OP_SEQUENCE, + asn_DEF_SPAT_tags_1, + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + asn_DEF_SPAT_tags_1, /* Same as above */ + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SPAT_1, + 4, /* Elements count */ + &asn_SPC_SPAT_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SaeAutomationLevel.c b/vcits/ivim/src/SaeAutomationLevel.c new file mode 100644 index 0000000..5469de2 --- /dev/null +++ b/vcits/ivim/src/SaeAutomationLevel.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SaeAutomationLevel.h" + +int +SaeAutomationLevel_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 5)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SaeAutomationLevel_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..5) */, + -1}; +asn_per_constraints_t asn_PER_type_SaeAutomationLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SaeAutomationLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SaeAutomationLevel = { + "SaeAutomationLevel", + "SaeAutomationLevel", + &asn_OP_NativeInteger, + asn_DEF_SaeAutomationLevel_tags_1, + sizeof(asn_DEF_SaeAutomationLevel_tags_1) + /sizeof(asn_DEF_SaeAutomationLevel_tags_1[0]), /* 1 */ + asn_DEF_SaeAutomationLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_SaeAutomationLevel_tags_1) + /sizeof(asn_DEF_SaeAutomationLevel_tags_1[0]), /* 1 */ + { &asn_OER_type_SaeAutomationLevel_constr_1, &asn_PER_type_SaeAutomationLevel_constr_1, SaeAutomationLevel_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SaeAutomationLevels.c b/vcits/ivim/src/SaeAutomationLevels.c new file mode 100644 index 0000000..7e4b826 --- /dev/null +++ b/vcits/ivim/src/SaeAutomationLevels.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SaeAutomationLevels.h" + +static asn_oer_constraints_t asn_OER_type_SaeAutomationLevels_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_SaeAutomationLevels_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SaeAutomationLevels_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SaeAutomationLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SaeAutomationLevels_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SaeAutomationLevels_specs_1 = { + sizeof(struct SaeAutomationLevels), + offsetof(struct SaeAutomationLevels, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SaeAutomationLevels = { + "SaeAutomationLevels", + "SaeAutomationLevels", + &asn_OP_SEQUENCE_OF, + asn_DEF_SaeAutomationLevels_tags_1, + sizeof(asn_DEF_SaeAutomationLevels_tags_1) + /sizeof(asn_DEF_SaeAutomationLevels_tags_1[0]), /* 1 */ + asn_DEF_SaeAutomationLevels_tags_1, /* Same as above */ + sizeof(asn_DEF_SaeAutomationLevels_tags_1) + /sizeof(asn_DEF_SaeAutomationLevels_tags_1[0]), /* 1 */ + { &asn_OER_type_SaeAutomationLevels_constr_1, &asn_PER_type_SaeAutomationLevels_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SaeAutomationLevels_1, + 1, /* Single element */ + &asn_SPC_SaeAutomationLevels_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Scale-B12.c b/vcits/ivim/src/Scale-B12.c new file mode 100644 index 0000000..96482ce --- /dev/null +++ b/vcits/ivim/src/Scale-B12.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Scale-B12.h" + +int +Scale_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Scale_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_Scale_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Scale_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Scale_B12 = { + "Scale-B12", + "Scale-B12", + &asn_OP_NativeInteger, + asn_DEF_Scale_B12_tags_1, + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + asn_DEF_Scale_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + { &asn_OER_type_Scale_B12_constr_1, &asn_PER_type_Scale_B12_constr_1, Scale_B12_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Segment.c b/vcits/ivim/src/Segment.c new file mode 100644 index 0000000..cc1b732 --- /dev/null +++ b/vcits/ivim/src/Segment.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Segment.h" + +asn_TYPE_member_t asn_MBR_Segment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Segment, line), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_PolygonalLine, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "line" + }, + { ATF_POINTER, 1, offsetof(struct Segment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IviLaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, +}; +static const int asn_MAP_Segment_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Segment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Segment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* line */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* laneWidth */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Segment_specs_1 = { + sizeof(struct Segment), + offsetof(struct Segment, _asn_ctx), + asn_MAP_Segment_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Segment_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Segment = { + "Segment", + "Segment", + &asn_OP_SEQUENCE, + asn_DEF_Segment_tags_1, + sizeof(asn_DEF_Segment_tags_1) + /sizeof(asn_DEF_Segment_tags_1[0]), /* 1 */ + asn_DEF_Segment_tags_1, /* Same as above */ + sizeof(asn_DEF_Segment_tags_1) + /sizeof(asn_DEF_Segment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Segment_1, + 2, /* Elements count */ + &asn_SPC_Segment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SegmentAttributeXY.c b/vcits/ivim/src/SegmentAttributeXY.c new file mode 100644 index 0000000..22bc85a --- /dev/null +++ b/vcits/ivim/src/SegmentAttributeXY.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SegmentAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 37 } /* (0..37,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SegmentAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 10, "doNotBlock" }, + { 2, 9, "whiteLine" }, + { 3, 15, "mergingLaneLeft" }, + { 4, 16, "mergingLaneRight" }, + { 5, 10, "curbOnLeft" }, + { 6, 11, "curbOnRight" }, + { 7, 17, "loadingzoneOnLeft" }, + { 8, 18, "loadingzoneOnRight" }, + { 9, 18, "turnOutPointOnLeft" }, + { 10, 19, "turnOutPointOnRight" }, + { 11, 21, "adjacentParkingOnLeft" }, + { 12, 22, "adjacentParkingOnRight" }, + { 13, 22, "adjacentBikeLaneOnLeft" }, + { 14, 23, "adjacentBikeLaneOnRight" }, + { 15, 14, "sharedBikeLane" }, + { 16, 14, "bikeBoxInFront" }, + { 17, 17, "transitStopOnLeft" }, + { 18, 18, "transitStopOnRight" }, + { 19, 17, "transitStopInLane" }, + { 20, 24, "sharedWithTrackedVehicle" }, + { 21, 10, "safeIsland" }, + { 22, 15, "lowCurbsPresent" }, + { 23, 18, "rumbleStripPresent" }, + { 24, 23, "audibleSignalingPresent" }, + { 25, 21, "adaptiveTimingPresent" }, + { 26, 22, "rfSignalRequestPresent" }, + { 27, 20, "partialCurbIntrusion" }, + { 28, 11, "taperToLeft" }, + { 29, 12, "taperToRight" }, + { 30, 17, "taperToCenterLine" }, + { 31, 15, "parallelParking" }, + { 32, 13, "headInParking" }, + { 33, 11, "freeParking" }, + { 34, 25, "timeRestrictionsOnParking" }, + { 35, 10, "costToPark" }, + { 36, 19, "midBlockCurbPresent" }, + { 37, 21, "unEvenPavementPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SegmentAttributeXY_enum2value_1[] = { + 25, /* adaptiveTimingPresent(25) */ + 13, /* adjacentBikeLaneOnLeft(13) */ + 14, /* adjacentBikeLaneOnRight(14) */ + 11, /* adjacentParkingOnLeft(11) */ + 12, /* adjacentParkingOnRight(12) */ + 24, /* audibleSignalingPresent(24) */ + 16, /* bikeBoxInFront(16) */ + 35, /* costToPark(35) */ + 5, /* curbOnLeft(5) */ + 6, /* curbOnRight(6) */ + 1, /* doNotBlock(1) */ + 33, /* freeParking(33) */ + 32, /* headInParking(32) */ + 7, /* loadingzoneOnLeft(7) */ + 8, /* loadingzoneOnRight(8) */ + 22, /* lowCurbsPresent(22) */ + 3, /* mergingLaneLeft(3) */ + 4, /* mergingLaneRight(4) */ + 36, /* midBlockCurbPresent(36) */ + 31, /* parallelParking(31) */ + 27, /* partialCurbIntrusion(27) */ + 0, /* reserved(0) */ + 26, /* rfSignalRequestPresent(26) */ + 23, /* rumbleStripPresent(23) */ + 21, /* safeIsland(21) */ + 15, /* sharedBikeLane(15) */ + 20, /* sharedWithTrackedVehicle(20) */ + 30, /* taperToCenterLine(30) */ + 28, /* taperToLeft(28) */ + 29, /* taperToRight(29) */ + 34, /* timeRestrictionsOnParking(34) */ + 19, /* transitStopInLane(19) */ + 17, /* transitStopOnLeft(17) */ + 18, /* transitStopOnRight(18) */ + 9, /* turnOutPointOnLeft(9) */ + 10, /* turnOutPointOnRight(10) */ + 37, /* unEvenPavementPresent(37) */ + 2 /* whiteLine(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1 = { + asn_MAP_SegmentAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SegmentAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 38, /* Number of elements in the maps */ + 39, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY = { + "SegmentAttributeXY", + "SegmentAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_SegmentAttributeXY_tags_1, + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentAttributeXY_constr_1, &asn_PER_type_SegmentAttributeXY_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SegmentAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SegmentAttributeXYList.c b/vcits/ivim/src/SegmentAttributeXYList.c new file mode 100644 index 0000000..9b23b33 --- /dev/null +++ b/vcits/ivim/src/SegmentAttributeXYList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SegmentAttributeXYList.h" + +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_SegmentAttributeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1 = { + sizeof(struct SegmentAttributeXYList), + offsetof(struct SegmentAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList = { + "SegmentAttributeXYList", + "SegmentAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SegmentAttributeXYList_tags_1, + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentAttributeXYList_constr_1, &asn_PER_type_SegmentAttributeXYList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SegmentAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_SegmentAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SemiAxisLength.c b/vcits/ivim/src/SemiAxisLength.c new file mode 100644 index 0000000..73b517d --- /dev/null +++ b/vcits/ivim/src/SemiAxisLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SemiAxisLength.h" + +int +SemiAxisLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiAxisLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiAxisLength = { + "SemiAxisLength", + "SemiAxisLength", + &asn_OP_NativeInteger, + asn_DEF_SemiAxisLength_tags_1, + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + asn_DEF_SemiAxisLength_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiAxisLength_constr_1, &asn_PER_type_SemiAxisLength_constr_1, SemiAxisLength_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SemiMajorAxisAccuracy.c b/vcits/ivim/src/SemiMajorAxisAccuracy.c new file mode 100644 index 0000000..c3ff421 --- /dev/null +++ b/vcits/ivim/src/SemiMajorAxisAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SemiMajorAxisAccuracy.h" + +int +SemiMajorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy = { + "SemiMajorAxisAccuracy", + "SemiMajorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMajorAxisAccuracy_constr_1, &asn_PER_type_SemiMajorAxisAccuracy_constr_1, SemiMajorAxisAccuracy_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SemiMajorAxisOrientation.c b/vcits/ivim/src/SemiMajorAxisOrientation.c new file mode 100644 index 0000000..048732e --- /dev/null +++ b/vcits/ivim/src/SemiMajorAxisOrientation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SemiMajorAxisOrientation.h" + +int +SemiMajorAxisOrientation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisOrientation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation = { + "SemiMajorAxisOrientation", + "SemiMajorAxisOrientation", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisOrientation_tags_1, + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisOrientation_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMajorAxisOrientation_constr_1, &asn_PER_type_SemiMajorAxisOrientation_constr_1, SemiMajorAxisOrientation_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SemiMinorAxisAccuracy.c b/vcits/ivim/src/SemiMinorAxisAccuracy.c new file mode 100644 index 0000000..e2c5da4 --- /dev/null +++ b/vcits/ivim/src/SemiMinorAxisAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SemiMinorAxisAccuracy.h" + +int +SemiMinorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMinorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy = { + "SemiMinorAxisAccuracy", + "SemiMinorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMinorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMinorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMinorAxisAccuracy_constr_1, &asn_PER_type_SemiMinorAxisAccuracy_constr_1, SemiMinorAxisAccuracy_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SequenceNumber.c b/vcits/ivim/src/SequenceNumber.c new file mode 100644 index 0000000..f2828f4 --- /dev/null +++ b/vcits/ivim/src/SequenceNumber.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SequenceNumber.h" + +int +SequenceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SequenceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SequenceNumber = { + "SequenceNumber", + "SequenceNumber", + &asn_OP_NativeInteger, + asn_DEF_SequenceNumber_tags_1, + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + asn_DEF_SequenceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_SequenceNumber_constr_1, &asn_PER_type_SequenceNumber_constr_1, SequenceNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ServiceApplicationLimit.c b/vcits/ivim/src/ServiceApplicationLimit.c new file mode 100644 index 0000000..0cec3a3 --- /dev/null +++ b/vcits/ivim/src/ServiceApplicationLimit.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ServiceApplicationLimit.h" + +int +ServiceApplicationLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ServiceApplicationLimit_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_ServiceApplicationLimit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ServiceApplicationLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServiceApplicationLimit = { + "ServiceApplicationLimit", + "ServiceApplicationLimit", + &asn_OP_BIT_STRING, + asn_DEF_ServiceApplicationLimit_tags_1, + sizeof(asn_DEF_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_ServiceApplicationLimit_tags_1[0]), /* 1 */ + asn_DEF_ServiceApplicationLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_ServiceApplicationLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_ServiceApplicationLimit_constr_1, &asn_PER_type_ServiceApplicationLimit_constr_1, ServiceApplicationLimit_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ServiceNumber.c b/vcits/ivim/src/ServiceNumber.c new file mode 100644 index 0000000..8a43b5a --- /dev/null +++ b/vcits/ivim/src/ServiceNumber.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ServiceNumber.h" + +int +ServiceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 32)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ServiceNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + 32 /* (SIZE(32..32)) */}; +asn_per_constraints_t asn_PER_type_ServiceNumber_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ServiceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServiceNumber = { + "ServiceNumber", + "ServiceNumber", + &asn_OP_BIT_STRING, + asn_DEF_ServiceNumber_tags_1, + sizeof(asn_DEF_ServiceNumber_tags_1) + /sizeof(asn_DEF_ServiceNumber_tags_1[0]), /* 1 */ + asn_DEF_ServiceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ServiceNumber_tags_1) + /sizeof(asn_DEF_ServiceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_ServiceNumber_constr_1, &asn_PER_type_ServiceNumber_constr_1, ServiceNumber_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SessionClass.c b/vcits/ivim/src/SessionClass.c new file mode 100644 index 0000000..b423a1b --- /dev/null +++ b/vcits/ivim/src/SessionClass.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SessionClass.h" + +static asn_TYPE_member_t asn_MBR_SessionClass_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SessionClass, sessionTariffClass), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionTariffClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct SessionClass, sessionClaimedClass), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sessionClaimedClass" + }, +}; +static const ber_tlv_tag_t asn_DEF_SessionClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SessionClass_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sessionTariffClass */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sessionClaimedClass */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SessionClass_specs_1 = { + sizeof(struct SessionClass), + offsetof(struct SessionClass, _asn_ctx), + asn_MAP_SessionClass_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SessionClass = { + "SessionClass", + "SessionClass", + &asn_OP_SEQUENCE, + asn_DEF_SessionClass_tags_1, + sizeof(asn_DEF_SessionClass_tags_1) + /sizeof(asn_DEF_SessionClass_tags_1[0]), /* 1 */ + asn_DEF_SessionClass_tags_1, /* Same as above */ + sizeof(asn_DEF_SessionClass_tags_1) + /sizeof(asn_DEF_SessionClass_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SessionClass_1, + 2, /* Elements count */ + &asn_SPC_SessionClass_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SessionLocation.c b/vcits/ivim/src/SessionLocation.c new file mode 100644 index 0000000..e8223e6 --- /dev/null +++ b/vcits/ivim/src/SessionLocation.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SessionLocation.h" + +static int +memb_laneCodeNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_laneCodeNumber_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_laneCodeNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SessionLocation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SessionLocation, ascendingKilometrage), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ascendingKilometrage" + }, + { ATF_NOFLAGS, 0, offsetof(struct SessionLocation, laneCodeNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_laneCodeNumber_constr_3, &asn_PER_memb_laneCodeNumber_constr_3, memb_laneCodeNumber_constraint_1 }, + 0, 0, /* No default value */ + "laneCodeNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_SessionLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SessionLocation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ascendingKilometrage */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* laneCodeNumber */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SessionLocation_specs_1 = { + sizeof(struct SessionLocation), + offsetof(struct SessionLocation, _asn_ctx), + asn_MAP_SessionLocation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SessionLocation = { + "SessionLocation", + "SessionLocation", + &asn_OP_SEQUENCE, + asn_DEF_SessionLocation_tags_1, + sizeof(asn_DEF_SessionLocation_tags_1) + /sizeof(asn_DEF_SessionLocation_tags_1[0]), /* 1 */ + asn_DEF_SessionLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_SessionLocation_tags_1) + /sizeof(asn_DEF_SessionLocation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SessionLocation_1, + 2, /* Elements count */ + &asn_SPC_SessionLocation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SetInstanceRq.c b/vcits/ivim/src/SetInstanceRq.c new file mode 100644 index 0000000..fe17b96 --- /dev/null +++ b/vcits/ivim/src/SetInstanceRq.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SetInstanceRq.h" + diff --git a/vcits/ivim/src/SetMMIRq.c b/vcits/ivim/src/SetMMIRq.c new file mode 100644 index 0000000..b717202 --- /dev/null +++ b/vcits/ivim/src/SetMMIRq.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SetMMIRq.h" + +int +SetMMIRq_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SetMMIRq_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SetMMIRq_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SetMMIRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SetMMIRq = { + "SetMMIRq", + "SetMMIRq", + &asn_OP_NativeInteger, + asn_DEF_SetMMIRq_tags_1, + sizeof(asn_DEF_SetMMIRq_tags_1) + /sizeof(asn_DEF_SetMMIRq_tags_1[0]), /* 1 */ + asn_DEF_SetMMIRq_tags_1, /* Same as above */ + sizeof(asn_DEF_SetMMIRq_tags_1) + /sizeof(asn_DEF_SetMMIRq_tags_1[0]), /* 1 */ + { &asn_OER_type_SetMMIRq_constr_1, &asn_PER_type_SetMMIRq_constr_1, SetMMIRq_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SetStampedRq.c b/vcits/ivim/src/SetStampedRq.c new file mode 100644 index 0000000..941b41a --- /dev/null +++ b/vcits/ivim/src/SetStampedRq.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SetStampedRq.h" + diff --git a/vcits/ivim/src/SignalControlZone.c b/vcits/ivim/src/SignalControlZone.c new file mode 100644 index 0000000..ab320cd --- /dev/null +++ b/vcits/ivim/src/SignalControlZone.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalControlZone.h" + +asn_TYPE_member_t asn_MBR_SignalControlZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalControlZone, zone), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_SignalControlZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zone" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalControlZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalControlZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* zone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1 = { + sizeof(struct SignalControlZone), + offsetof(struct SignalControlZone, _asn_ctx), + asn_MAP_SignalControlZone_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalControlZone = { + "SignalControlZone", + "SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_SignalControlZone_tags_1, + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + asn_DEF_SignalControlZone_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalControlZone_1, + 1, /* Elements count */ + &asn_SPC_SignalControlZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SignalGroupID.c b/vcits/ivim/src/SignalGroupID.c new file mode 100644 index 0000000..978391f --- /dev/null +++ b/vcits/ivim/src/SignalGroupID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalGroupID.h" + +int +SignalGroupID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalGroupID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalGroupID = { + "SignalGroupID", + "SignalGroupID", + &asn_OP_NativeInteger, + asn_DEF_SignalGroupID_tags_1, + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + asn_DEF_SignalGroupID_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalGroupID_constr_1, &asn_PER_type_SignalGroupID_constr_1, SignalGroupID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SignalHeadLocation.c b/vcits/ivim/src/SignalHeadLocation.c new file mode 100644 index 0000000..f08bfc8 --- /dev/null +++ b/vcits/ivim/src/SignalHeadLocation.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalHeadLocation.h" + +asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, nodeZ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeZ" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, signalGroupID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroupID" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalHeadLocation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeZ */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroupID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1 = { + sizeof(struct SignalHeadLocation), + offsetof(struct SignalHeadLocation, _asn_ctx), + asn_MAP_SignalHeadLocation_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation = { + "SignalHeadLocation", + "SignalHeadLocation", + &asn_OP_SEQUENCE, + asn_DEF_SignalHeadLocation_tags_1, + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalHeadLocation_1, + 3, /* Elements count */ + &asn_SPC_SignalHeadLocation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SignalHeadLocationList.c b/vcits/ivim/src/SignalHeadLocationList.c new file mode 100644 index 0000000..0a5e25e --- /dev/null +++ b/vcits/ivim/src/SignalHeadLocationList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalHeadLocationList.h" + +#include "SignalHeadLocation.h" +static asn_oer_constraints_t asn_OER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalHeadLocation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1 = { + sizeof(struct SignalHeadLocationList), + offsetof(struct SignalHeadLocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList = { + "SignalHeadLocationList", + "SignalHeadLocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalHeadLocationList_tags_1, + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalHeadLocationList_constr_1, &asn_PER_type_SignalHeadLocationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalHeadLocationList_1, + 1, /* Single element */ + &asn_SPC_SignalHeadLocationList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SignalRequest.c b/vcits/ivim/src/SignalRequest.c new file mode 100644 index 0000000..f3214cd --- /dev/null +++ b/vcits/ivim/src/SignalRequest.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalRequest.h" + +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequest__regional), + offsetof(struct SignalRequest__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PriorityRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestType" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, inBoundLane), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inBoundLane" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequest, outBoundLane), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outBoundLane" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequest, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequest_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* requestID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* requestType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* inBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* outBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1 = { + sizeof(struct SignalRequest), + offsetof(struct SignalRequest, _asn_ctx), + asn_MAP_SignalRequest_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequest_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequest = { + "SignalRequest", + "SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequest_tags_1, + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + asn_DEF_SignalRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequest_1, + 6, /* Elements count */ + &asn_SPC_SignalRequest_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SignalRequestList.c b/vcits/ivim/src/SignalRequestList.c new file mode 100644 index 0000000..6e7589b --- /dev/null +++ b/vcits/ivim/src/SignalRequestList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalRequestList.h" + +#include "SignalRequestPackage.h" +static asn_oer_constraints_t asn_OER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalRequestPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1 = { + sizeof(struct SignalRequestList), + offsetof(struct SignalRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestList = { + "SignalRequestList", + "SignalRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalRequestList_tags_1, + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalRequestList_constr_1, &asn_PER_type_SignalRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalRequestList_1, + 1, /* Single element */ + &asn_SPC_SignalRequestList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SignalRequestMessage.c b/vcits/ivim/src/SignalRequestMessage.c new file mode 100644 index 0000000..fd49ee9 --- /dev/null +++ b/vcits/ivim/src/SignalRequestMessage.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalRequestMessage.h" + +#include "SignalRequestList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequestMessage__regional), + offsetof(struct SignalRequestMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SignalRequestMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, requests), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requests" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, requestor), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestor" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestMessage_oms_1[] = { 0, 2, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* requests */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* requestor */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SignalRequestMessage_specs_1 = { + sizeof(struct SignalRequestMessage), + offsetof(struct SignalRequestMessage, _asn_ctx), + asn_MAP_SignalRequestMessage_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequestMessage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage = { + "SignalRequestMessage", + "SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestMessage_tags_1, + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequestMessage_1, + 6, /* Elements count */ + &asn_SPC_SignalRequestMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SignalRequestPackage.c b/vcits/ivim/src/SignalRequestPackage.c new file mode 100644 index 0000000..574c83e --- /dev/null +++ b/vcits/ivim/src/SignalRequestPackage.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalRequestPackage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalRequestPackage__regional), + offsetof(struct SignalRequestPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestPackage, request), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 4, offsetof(struct SignalRequestPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 3, offsetof(struct SignalRequestPackage, second), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestPackage_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1 = { + sizeof(struct SignalRequestPackage), + offsetof(struct SignalRequestPackage, _asn_ctx), + asn_MAP_SignalRequestPackage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequestPackage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage = { + "SignalRequestPackage", + "SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestPackage_tags_1, + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequestPackage_1, + 5, /* Elements count */ + &asn_SPC_SignalRequestPackage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SignalRequesterInfo.c b/vcits/ivim/src/SignalRequesterInfo.c new file mode 100644 index 0000000..5bdf7e2 --- /dev/null +++ b/vcits/ivim/src/SignalRequesterInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalRequesterInfo.h" + +#include "RequestorType.h" +asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, request), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequesterInfo, role), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequesterInfo, typeData), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeData" + }, +}; +static const int asn_MAP_SignalRequesterInfo_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequesterInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequesterInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* typeData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1 = { + sizeof(struct SignalRequesterInfo), + offsetof(struct SignalRequesterInfo, _asn_ctx), + asn_MAP_SignalRequesterInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequesterInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo = { + "SignalRequesterInfo", + "SignalRequesterInfo", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequesterInfo_tags_1, + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + asn_DEF_SignalRequesterInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequesterInfo_1, + 5, /* Elements count */ + &asn_SPC_SignalRequesterInfo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SignalStatus.c b/vcits/ivim/src/SignalStatus.c new file mode 100644 index 0000000..6d92a43 --- /dev/null +++ b/vcits/ivim/src/SignalStatus.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalStatus.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SignalStatus__regional), + offsetof(struct SignalStatus__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sigStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusPackageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sigStatus" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatus, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatus_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_SignalStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatus_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sigStatus */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1 = { + sizeof(struct SignalStatus), + offsetof(struct SignalStatus, _asn_ctx), + asn_MAP_SignalStatus_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SignalStatus_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatus = { + "SignalStatus", + "SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatus_tags_1, + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + asn_DEF_SignalStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatus_1, + 4, /* Elements count */ + &asn_SPC_SignalStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SignalStatusList.c b/vcits/ivim/src/SignalStatusList.c new file mode 100644 index 0000000..835d853 --- /dev/null +++ b/vcits/ivim/src/SignalStatusList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalStatusList.h" + +#include "SignalStatus.h" +static asn_oer_constraints_t asn_OER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalStatusList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1 = { + sizeof(struct SignalStatusList), + offsetof(struct SignalStatusList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusList = { + "SignalStatusList", + "SignalStatusList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusList_tags_1, + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalStatusList_constr_1, &asn_PER_type_SignalStatusList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalStatusList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SignalStatusMessage.c b/vcits/ivim/src/SignalStatusMessage.c new file mode 100644 index 0000000..ea207ea --- /dev/null +++ b/vcits/ivim/src/SignalStatusMessage.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalStatusMessage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalStatusMessage__regional), + offsetof(struct SignalStatusMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SignalStatusMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusMessage_oms_1[] = { 0, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SignalStatusMessage_specs_1 = { + sizeof(struct SignalStatusMessage), + offsetof(struct SignalStatusMessage, _asn_ctx), + asn_MAP_SignalStatusMessage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalStatusMessage_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage = { + "SignalStatusMessage", + "SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusMessage_tags_1, + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusMessage_1, + 5, /* Elements count */ + &asn_SPC_SignalStatusMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SignalStatusPackage-addGrpC.c b/vcits/ivim/src/SignalStatusPackage-addGrpC.c new file mode 100644 index 0000000..f4cb9b7 --- /dev/null +++ b/vcits/ivim/src/SignalStatusPackage-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalStatusPackage-addGrpC.h" + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage_addGrpC, synchToSchedule), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "synchToSchedule" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage_addGrpC, rejectedReason), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RejectedReason, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rejectedReason" + }, +}; +static const int asn_MAP_SignalStatusPackage_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* synchToSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rejectedReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_addGrpC_specs_1 = { + sizeof(struct SignalStatusPackage_addGrpC), + offsetof(struct SignalStatusPackage_addGrpC, _asn_ctx), + asn_MAP_SignalStatusPackage_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage_addGrpC = { + "SignalStatusPackage-addGrpC", + "SignalStatusPackage-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_addGrpC_tags_1, + sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusPackage_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_SignalStatusPackage_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SignalStatusPackage.c b/vcits/ivim/src/SignalStatusPackage.c new file mode 100644 index 0000000..70450a2 --- /dev/null +++ b/vcits/ivim/src/SignalStatusPackage.c @@ -0,0 +1,204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalStatusPackage.h" + +#include "SignalRequesterInfo.h" +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct SignalStatusPackage__regional), + offsetof(struct SignalStatusPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { &asn_OER_type_regional_constr_9, &asn_PER_type_regional_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, requester), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequesterInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requester" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, inboundOn), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inboundOn" + }, + { ATF_POINTER, 4, offsetof(struct SignalStatusPackage, outboundOn), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outboundOn" + }, + { ATF_POINTER, 3, offsetof(struct SignalStatusPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage, second), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, status), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { &asn_OER_memb_regional_constr_9, &asn_PER_memb_regional_constr_9, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusPackage_oms_1[] = { 0, 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requester */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* inboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* outboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1 = { + sizeof(struct SignalStatusPackage), + offsetof(struct SignalStatusPackage, _asn_ctx), + asn_MAP_SignalStatusPackage_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage = { + "SignalStatusPackage", + "SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_tags_1, + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusPackage_1, + 8, /* Elements count */ + &asn_SPC_SignalStatusPackage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SignalStatusPackageList.c b/vcits/ivim/src/SignalStatusPackageList.c new file mode 100644 index 0000000..0cc971d --- /dev/null +++ b/vcits/ivim/src/SignalStatusPackageList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalStatusPackageList.h" + +#include "SignalStatusPackage.h" +static asn_oer_constraints_t asn_OER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1 = { + sizeof(struct SignalStatusPackageList), + offsetof(struct SignalStatusPackageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList = { + "SignalStatusPackageList", + "SignalStatusPackageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusPackageList_tags_1, + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackageList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalStatusPackageList_constr_1, &asn_PER_type_SignalStatusPackageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalStatusPackageList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusPackageList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SignalViolationSubCauseCode.c b/vcits/ivim/src/SignalViolationSubCauseCode.c new file mode 100644 index 0000000..aacdeda --- /dev/null +++ b/vcits/ivim/src/SignalViolationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignalViolationSubCauseCode.h" + +int +SignalViolationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalViolationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode = { + "SignalViolationSubCauseCode", + "SignalViolationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SignalViolationSubCauseCode_tags_1, + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SignalViolationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalViolationSubCauseCode_constr_1, &asn_PER_type_SignalViolationSubCauseCode_constr_1, SignalViolationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SignedValue.c b/vcits/ivim/src/SignedValue.c new file mode 100644 index 0000000..2f625b8 --- /dev/null +++ b/vcits/ivim/src/SignedValue.c @@ -0,0 +1,131 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SignedValue.h" + +static int +memb_positive_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 8388607)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_negative_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -8388608 && value <= -1)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_positive_constr_2 CC_NOTUSED = { + { 4, 1 } /* (0..8388607) */, + -1}; +static asn_per_constraints_t asn_PER_memb_positive_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 23, -1, 0, 8388607 } /* (0..8388607) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_negative_constr_3 CC_NOTUSED = { + { 4, 0 } /* (-8388608..-1) */, + -1}; +static asn_per_constraints_t asn_PER_memb_negative_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 23, -1, -8388608, -1 } /* (-8388608..-1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_SignedValue_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SignedValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignedValue_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignedValue, choice.positive), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_positive_constr_2, &asn_PER_memb_positive_constr_2, memb_positive_constraint_1 }, + 0, 0, /* No default value */ + "positive" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignedValue, choice.negative), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_negative_constr_3, &asn_PER_memb_negative_constr_3, memb_negative_constraint_1 }, + 0, 0, /* No default value */ + "negative" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_SignedValue_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* positive */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* negative */ +}; +asn_CHOICE_specifics_t asn_SPC_SignedValue_specs_1 = { + sizeof(struct SignedValue), + offsetof(struct SignedValue, _asn_ctx), + offsetof(struct SignedValue, present), + sizeof(((struct SignedValue *)0)->present), + asn_MAP_SignedValue_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_SignedValue = { + "SignedValue", + "SignedValue", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_SignedValue_constr_1, &asn_PER_type_SignedValue_constr_1, CHOICE_constraint }, + asn_MBR_SignedValue_1, + 2, /* Elements count */ + &asn_SPC_SignedValue_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SlowVehicleSubCauseCode.c b/vcits/ivim/src/SlowVehicleSubCauseCode.c new file mode 100644 index 0000000..03a27ab --- /dev/null +++ b/vcits/ivim/src/SlowVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SlowVehicleSubCauseCode.h" + +int +SlowVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SlowVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode = { + "SlowVehicleSubCauseCode", + "SlowVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SlowVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SlowVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SlowVehicleSubCauseCode_constr_1, &asn_PER_type_SlowVehicleSubCauseCode_constr_1, SlowVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SoundLevel.c b/vcits/ivim/src/SoundLevel.c new file mode 100644 index 0000000..6245edf --- /dev/null +++ b/vcits/ivim/src/SoundLevel.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SoundLevel.h" + +asn_TYPE_member_t asn_MBR_SoundLevel_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SoundLevel, soundstationary), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "soundstationary" + }, + { ATF_NOFLAGS, 0, offsetof(struct SoundLevel, sounddriveby), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sounddriveby" + }, +}; +static const ber_tlv_tag_t asn_DEF_SoundLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SoundLevel_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* soundstationary */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sounddriveby */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SoundLevel_specs_1 = { + sizeof(struct SoundLevel), + offsetof(struct SoundLevel, _asn_ctx), + asn_MAP_SoundLevel_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SoundLevel = { + "SoundLevel", + "SoundLevel", + &asn_OP_SEQUENCE, + asn_DEF_SoundLevel_tags_1, + sizeof(asn_DEF_SoundLevel_tags_1) + /sizeof(asn_DEF_SoundLevel_tags_1[0]), /* 1 */ + asn_DEF_SoundLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_SoundLevel_tags_1) + /sizeof(asn_DEF_SoundLevel_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SoundLevel_1, + 2, /* Elements count */ + &asn_SPC_SoundLevel_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SpecialTransportType.c b/vcits/ivim/src/SpecialTransportType.c new file mode 100644 index 0000000..f819897 --- /dev/null +++ b/vcits/ivim/src/SpecialTransportType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SpecialTransportType.h" + +int +SpecialTransportType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +asn_per_constraints_t asn_PER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpecialTransportType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpecialTransportType = { + "SpecialTransportType", + "SpecialTransportType", + &asn_OP_BIT_STRING, + asn_DEF_SpecialTransportType_tags_1, + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + asn_DEF_SpecialTransportType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpecialTransportType_constr_1, &asn_PER_type_SpecialTransportType_constr_1, SpecialTransportType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Speed.c b/vcits/ivim/src/Speed.c new file mode 100644 index 0000000..fcce164 --- /dev/null +++ b/vcits/ivim/src/Speed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Speed.h" + +asn_TYPE_member_t asn_MBR_Speed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Speed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Speed_specs_1 = { + sizeof(struct Speed), + offsetof(struct Speed, _asn_ctx), + asn_MAP_Speed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Speed = { + "Speed", + "Speed", + &asn_OP_SEQUENCE, + asn_DEF_Speed_tags_1, + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + asn_DEF_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Speed_1, + 2, /* Elements count */ + &asn_SPC_Speed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SpeedAdvice.c b/vcits/ivim/src/SpeedAdvice.c new file mode 100644 index 0000000..a267bcb --- /dev/null +++ b/vcits/ivim/src/SpeedAdvice.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SpeedAdvice.h" + +int +SpeedAdvice_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..500) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 500 } /* (0..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedAdvice_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedAdvice = { + "SpeedAdvice", + "SpeedAdvice", + &asn_OP_NativeInteger, + asn_DEF_SpeedAdvice_tags_1, + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + asn_DEF_SpeedAdvice_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedAdvice_constr_1, &asn_PER_type_SpeedAdvice_constr_1, SpeedAdvice_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SpeedConfidence.c b/vcits/ivim/src/SpeedConfidence.c new file mode 100644 index 0000000..f523bc0 --- /dev/null +++ b/vcits/ivim/src/SpeedConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SpeedConfidence.h" + +int +SpeedConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeInteger, + asn_DEF_SpeedConfidence_tags_1, + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidence_constr_1, &asn_PER_type_SpeedConfidence_constr_1, SpeedConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SpeedConfidenceDSRC.c b/vcits/ivim/src/SpeedConfidenceDSRC.c new file mode 100644 index 0000000..6ecb02b --- /dev/null +++ b/vcits/ivim/src/SpeedConfidenceDSRC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SpeedConfidenceDSRC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidenceDSRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidenceDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SpeedConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec100ms" }, + { 2, 8, "prec10ms" }, + { 3, 7, "prec5ms" }, + { 4, 7, "prec1ms" }, + { 5, 9, "prec0-1ms" }, + { 6, 10, "prec0-05ms" }, + { 7, 10, "prec0-01ms" } +}; +static const unsigned int asn_MAP_SpeedConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-01ms(7) */ + 6, /* prec0-05ms(6) */ + 5, /* prec0-1ms(5) */ + 1, /* prec100ms(1) */ + 2, /* prec10ms(2) */ + 4, /* prec1ms(4) */ + 3, /* prec5ms(3) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedConfidenceDSRC_specs_1 = { + asn_MAP_SpeedConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedConfidenceDSRC_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidenceDSRC = { + "SpeedConfidenceDSRC", + "SpeedConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedConfidenceDSRC_tags_1, + sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidenceDSRC_constr_1, &asn_PER_type_SpeedConfidenceDSRC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SpeedLimit.c b/vcits/ivim/src/SpeedLimit.c new file mode 100644 index 0000000..43cd214 --- /dev/null +++ b/vcits/ivim/src/SpeedLimit.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SpeedLimit.h" + +int +SpeedLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_NativeInteger, + asn_DEF_SpeedLimit_tags_1, + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimit_constr_1, &asn_PER_type_SpeedLimit_constr_1, SpeedLimit_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SpeedLimitList.c b/vcits/ivim/src/SpeedLimitList.c new file mode 100644 index 0000000..7d8bd18 --- /dev/null +++ b/vcits/ivim/src/SpeedLimitList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SpeedLimitList.h" + +#include "RegulatorySpeedLimit.h" +static asn_oer_constraints_t asn_OER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..9)) */}; +asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 9 } /* (SIZE(1..9)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SpeedLimitList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RegulatorySpeedLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1 = { + sizeof(struct SpeedLimitList), + offsetof(struct SpeedLimitList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitList = { + "SpeedLimitList", + "SpeedLimitList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SpeedLimitList_tags_1, + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitList_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimitList_constr_1, &asn_PER_type_SpeedLimitList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SpeedLimitList_1, + 1, /* Single element */ + &asn_SPC_SpeedLimitList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SpeedLimitType.c b/vcits/ivim/src/SpeedLimitType.c new file mode 100644 index 0000000..74118e3 --- /dev/null +++ b/vcits/ivim/src/SpeedLimitType.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SpeedLimitType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SpeedLimitType_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "maxSpeedInSchoolZone" }, + { 2, 42, "maxSpeedInSchoolZoneWhenChildrenArePresent" }, + { 3, 26, "maxSpeedInConstructionZone" }, + { 4, 15, "vehicleMinSpeed" }, + { 5, 15, "vehicleMaxSpeed" }, + { 6, 20, "vehicleNightMaxSpeed" }, + { 7, 13, "truckMinSpeed" }, + { 8, 13, "truckMaxSpeed" }, + { 9, 18, "truckNightMaxSpeed" }, + { 10, 28, "vehiclesWithTrailersMinSpeed" }, + { 11, 28, "vehiclesWithTrailersMaxSpeed" }, + { 12, 33, "vehiclesWithTrailersNightMaxSpeed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SpeedLimitType_enum2value_1[] = { + 3, /* maxSpeedInConstructionZone(3) */ + 1, /* maxSpeedInSchoolZone(1) */ + 2, /* maxSpeedInSchoolZoneWhenChildrenArePresent(2) */ + 8, /* truckMaxSpeed(8) */ + 7, /* truckMinSpeed(7) */ + 9, /* truckNightMaxSpeed(9) */ + 0, /* unknown(0) */ + 5, /* vehicleMaxSpeed(5) */ + 4, /* vehicleMinSpeed(4) */ + 6, /* vehicleNightMaxSpeed(6) */ + 11, /* vehiclesWithTrailersMaxSpeed(11) */ + 10, /* vehiclesWithTrailersMinSpeed(10) */ + 12 /* vehiclesWithTrailersNightMaxSpeed(12) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1 = { + asn_MAP_SpeedLimitType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedLimitType_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitType = { + "SpeedLimitType", + "SpeedLimitType", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedLimitType_tags_1, + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimitType_constr_1, &asn_PER_type_SpeedLimitType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedLimitType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SpeedValue.c b/vcits/ivim/src/SpeedValue.c new file mode 100644 index 0000000..c2fb812 --- /dev/null +++ b/vcits/ivim/src/SpeedValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SpeedValue.h" + +int +SpeedValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedValue = { + "SpeedValue", + "SpeedValue", + &asn_OP_NativeInteger, + asn_DEF_SpeedValue_tags_1, + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + asn_DEF_SpeedValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedValue_constr_1, &asn_PER_type_SpeedValue_constr_1, SpeedValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SpeedandHeadingandThrottleConfidence.c b/vcits/ivim/src/SpeedandHeadingandThrottleConfidence.c new file mode 100644 index 0000000..647675d --- /dev/null +++ b/vcits/ivim/src/SpeedandHeadingandThrottleConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SpeedandHeadingandThrottleConfidence.h" + +asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, throttle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ThrottleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "throttle" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* throttle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 = { + sizeof(struct SpeedandHeadingandThrottleConfidence), + offsetof(struct SpeedandHeadingandThrottleConfidence, _asn_ctx), + asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence = { + "SpeedandHeadingandThrottleConfidence", + "SpeedandHeadingandThrottleConfidence", + &asn_OP_SEQUENCE, + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SpeedandHeadingandThrottleConfidence_1, + 3, /* Elements count */ + &asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/StartTime.c b/vcits/ivim/src/StartTime.c new file mode 100644 index 0000000..86dab8b --- /dev/null +++ b/vcits/ivim/src/StartTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "StartTime.h" + +int +StartTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const AviEriDateTime_t *st = (const AviEriDateTime_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using AviEriDateTime, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StartTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_StartTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StartTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StartTime = { + "StartTime", + "StartTime", + &asn_OP_OCTET_STRING, + asn_DEF_StartTime_tags_1, + sizeof(asn_DEF_StartTime_tags_1) + /sizeof(asn_DEF_StartTime_tags_1[0]), /* 1 */ + asn_DEF_StartTime_tags_1, /* Same as above */ + sizeof(asn_DEF_StartTime_tags_1) + /sizeof(asn_DEF_StartTime_tags_1[0]), /* 1 */ + { &asn_OER_type_StartTime_constr_1, &asn_PER_type_StartTime_constr_1, StartTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/StationID.c b/vcits/ivim/src/StationID.c new file mode 100644 index 0000000..ddc8d44 --- /dev/null +++ b/vcits/ivim/src/StationID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "StationID.h" + +int +StationID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +asn_per_constraints_t asn_PER_type_StationID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_StationID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationID = { + "StationID", + "StationID", + &asn_OP_NativeInteger, + asn_DEF_StationID_tags_1, + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + asn_DEF_StationID_tags_1, /* Same as above */ + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + { &asn_OER_type_StationID_constr_1, &asn_PER_type_StationID_constr_1, StationID_constraint }, + 0, 0, /* No members */ + &asn_SPC_StationID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/StationarySince.c b/vcits/ivim/src/StationarySince.c new file mode 100644 index 0000000..d8ef3af --- /dev/null +++ b/vcits/ivim/src/StationarySince.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "StationarySince.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationarySince_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_StationarySince_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_StationarySince_value2enum_1[] = { + { 0, 15, "lessThan1Minute" }, + { 1, 16, "lessThan2Minutes" }, + { 2, 17, "lessThan15Minutes" }, + { 3, 23, "equalOrGreater15Minutes" } +}; +static const unsigned int asn_MAP_StationarySince_enum2value_1[] = { + 3, /* equalOrGreater15Minutes(3) */ + 2, /* lessThan15Minutes(2) */ + 0, /* lessThan1Minute(0) */ + 1 /* lessThan2Minutes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_StationarySince_specs_1 = { + asn_MAP_StationarySince_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_StationarySince_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_StationarySince_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationarySince = { + "StationarySince", + "StationarySince", + &asn_OP_NativeEnumerated, + asn_DEF_StationarySince_tags_1, + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + asn_DEF_StationarySince_tags_1, /* Same as above */ + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + { &asn_OER_type_StationarySince_constr_1, &asn_PER_type_StationarySince_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_StationarySince_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/StationaryVehicleSubCauseCode.c b/vcits/ivim/src/StationaryVehicleSubCauseCode.c new file mode 100644 index 0000000..56681ad --- /dev/null +++ b/vcits/ivim/src/StationaryVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "StationaryVehicleSubCauseCode.h" + +int +StationaryVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationaryVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode = { + "StationaryVehicleSubCauseCode", + "StationaryVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_StationaryVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_StationaryVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_StationaryVehicleSubCauseCode_constr_1, &asn_PER_type_StationaryVehicleSubCauseCode_constr_1, StationaryVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SteeringWheelAngle.c b/vcits/ivim/src/SteeringWheelAngle.c new file mode 100644 index 0000000..5648a27 --- /dev/null +++ b/vcits/ivim/src/SteeringWheelAngle.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SteeringWheelAngle.h" + +static asn_TYPE_member_t asn_MBR_SteeringWheelAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SteeringWheelAngle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* steeringWheelAngleValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* steeringWheelAngleConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SteeringWheelAngle_specs_1 = { + sizeof(struct SteeringWheelAngle), + offsetof(struct SteeringWheelAngle, _asn_ctx), + asn_MAP_SteeringWheelAngle_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_SEQUENCE, + asn_DEF_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SteeringWheelAngle_1, + 2, /* Elements count */ + &asn_SPC_SteeringWheelAngle_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SteeringWheelAngleConfidence.c b/vcits/ivim/src/SteeringWheelAngleConfidence.c new file mode 100644 index 0000000..7d721f1 --- /dev/null +++ b/vcits/ivim/src/SteeringWheelAngleConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SteeringWheelAngleConfidence.h" + +int +SteeringWheelAngleConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleConfidence_constr_1, &asn_PER_type_SteeringWheelAngleConfidence_constr_1, SteeringWheelAngleConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SteeringWheelAngleValue.c b/vcits/ivim/src/SteeringWheelAngleValue.c new file mode 100644 index 0000000..601ddeb --- /dev/null +++ b/vcits/ivim/src/SteeringWheelAngleValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SteeringWheelAngleValue.h" + +int +SteeringWheelAngleValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -511 && value <= 512)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-511..512) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -511, 512 } /* (-511..512) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue = { + "SteeringWheelAngleValue", + "SteeringWheelAngleValue", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleValue_tags_1, + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleValue_constr_1, &asn_PER_type_SteeringWheelAngleValue_constr_1, SteeringWheelAngleValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/StopTime.c b/vcits/ivim/src/StopTime.c new file mode 100644 index 0000000..aee9982 --- /dev/null +++ b/vcits/ivim/src/StopTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "StopTime.h" + +int +StopTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const AviEriDateTime_t *st = (const AviEriDateTime_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using AviEriDateTime, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StopTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_StopTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StopTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StopTime = { + "StopTime", + "StopTime", + &asn_OP_OCTET_STRING, + asn_DEF_StopTime_tags_1, + sizeof(asn_DEF_StopTime_tags_1) + /sizeof(asn_DEF_StopTime_tags_1[0]), /* 1 */ + asn_DEF_StopTime_tags_1, /* Same as above */ + sizeof(asn_DEF_StopTime_tags_1) + /sizeof(asn_DEF_StopTime_tags_1[0]), /* 1 */ + { &asn_OER_type_StopTime_constr_1, &asn_PER_type_StopTime_constr_1, StopTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/SubCauseCodeType.c b/vcits/ivim/src/SubCauseCodeType.c new file mode 100644 index 0000000..5543eb2 --- /dev/null +++ b/vcits/ivim/src/SubCauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SubCauseCodeType.h" + +int +SubCauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SubCauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType = { + "SubCauseCodeType", + "SubCauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_SubCauseCodeType_tags_1, + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_SubCauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_SubCauseCodeType_constr_1, &asn_PER_type_SubCauseCodeType_constr_1, SubCauseCodeType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/SubRq.c b/vcits/ivim/src/SubRq.c new file mode 100644 index 0000000..6096261 --- /dev/null +++ b/vcits/ivim/src/SubRq.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "SubRq.h" + +static int +memb_attributeId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_attributeId_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_attributeId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (0..127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_SubRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SubRq, attributeId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_attributeId_constr_2, &asn_PER_memb_attributeId_constr_2, memb_attributeId_constraint_1 }, + 0, 0, /* No default value */ + "attributeId" + }, + { ATF_NOFLAGS, 0, offsetof(struct SubRq, value), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SubRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SubRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* attributeId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* value */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SubRq_specs_1 = { + sizeof(struct SubRq), + offsetof(struct SubRq, _asn_ctx), + asn_MAP_SubRq_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SubRq = { + "SubRq", + "SubRq", + &asn_OP_SEQUENCE, + asn_DEF_SubRq_tags_1, + sizeof(asn_DEF_SubRq_tags_1) + /sizeof(asn_DEF_SubRq_tags_1[0]), /* 1 */ + asn_DEF_SubRq_tags_1, /* Same as above */ + sizeof(asn_DEF_SubRq_tags_1) + /sizeof(asn_DEF_SubRq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SubRq_1, + 2, /* Elements count */ + &asn_SPC_SubRq_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TaxCode.c b/vcits/ivim/src/TaxCode.c new file mode 100644 index 0000000..f9df042 --- /dev/null +++ b/vcits/ivim/src/TaxCode.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TaxCode.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_TaxCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TaxCode = { + "TaxCode", + "TaxCode", + &asn_OP_OCTET_STRING, + asn_DEF_TaxCode_tags_1, + sizeof(asn_DEF_TaxCode_tags_1) + /sizeof(asn_DEF_TaxCode_tags_1[0]), /* 1 */ + asn_DEF_TaxCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TaxCode_tags_1) + /sizeof(asn_DEF_TaxCode_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TcPart.c b/vcits/ivim/src/TcPart.c new file mode 100644 index 0000000..ff909d0 --- /dev/null +++ b/vcits/ivim/src/TcPart.c @@ -0,0 +1,320 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TcPart.h" + +#include "ZoneIds.h" +#include "LanePositions.h" +#include "TextLines.h" +#include "VehicleCharacteristicsList.h" +static int +memb_minimumAwarenessTime_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_layoutId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_preStoredlayoutId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_minimumAwarenessTime_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_minimumAwarenessTime_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_layoutId_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_layoutId_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (1..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_preStoredlayoutId_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_preStoredlayoutId_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 1, 64 } /* (1..64,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ext1_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct TcPart__ext1, iviType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IviType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iviType" + }, + { ATF_POINTER, 2, offsetof(struct TcPart__ext1, laneStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneStatus" + }, + { ATF_POINTER, 1, offsetof(struct TcPart__ext1, vehicleCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleCharacteristicsList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleCharacteristics" + }, +}; +static const int asn_MAP_ext1_oms_13[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iviType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* vehicleCharacteristics */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_13 = { + sizeof(struct TcPart__ext1), + offsetof(struct TcPart__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_13, + 3, /* Count of tags in the map */ + asn_MAP_ext1_oms_13, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ext1_13 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_13, + sizeof(asn_DEF_ext1_tags_13) + /sizeof(asn_DEF_ext1_tags_13[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_13, /* Same as above */ + sizeof(asn_DEF_ext1_tags_13) + /sizeof(asn_DEF_ext1_tags_13[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_13, + 3, /* Elements count */ + &asn_SPC_ext1_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_TcPart_1[] = { + { ATF_POINTER, 1, offsetof(struct TcPart, detectionZoneIds), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneIds, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "detectionZoneIds" + }, + { ATF_NOFLAGS, 0, offsetof(struct TcPart, relevanceZoneIds), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneIds, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "relevanceZoneIds" + }, + { ATF_POINTER, 7, offsetof(struct TcPart, direction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Direction, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "direction" + }, + { ATF_POINTER, 6, offsetof(struct TcPart, driverAwarenessZoneIds), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneIds, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "driverAwarenessZoneIds" + }, + { ATF_POINTER, 5, offsetof(struct TcPart, minimumAwarenessTime), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_minimumAwarenessTime_constr_6, &asn_PER_memb_minimumAwarenessTime_constr_6, memb_minimumAwarenessTime_constraint_1 }, + 0, 0, /* No default value */ + "minimumAwarenessTime" + }, + { ATF_POINTER, 4, offsetof(struct TcPart, applicableLanes), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LanePositions, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "applicableLanes" + }, + { ATF_POINTER, 3, offsetof(struct TcPart, layoutId), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_layoutId_constr_8, &asn_PER_memb_layoutId_constr_8, memb_layoutId_constraint_1 }, + 0, 0, /* No default value */ + "layoutId" + }, + { ATF_POINTER, 2, offsetof(struct TcPart, preStoredlayoutId), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_preStoredlayoutId_constr_9, &asn_PER_memb_preStoredlayoutId_constr_9, memb_preStoredlayoutId_constraint_1 }, + 0, 0, /* No default value */ + "preStoredlayoutId" + }, + { ATF_POINTER, 1, offsetof(struct TcPart, text), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TextLines, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "text" + }, + { ATF_NOFLAGS, 0, offsetof(struct TcPart, data), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "data" + }, + { ATF_POINTER, 1, offsetof(struct TcPart, ext1), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_ext1_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_TcPart_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8, 10 }; +static const ber_tlv_tag_t asn_DEF_TcPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TcPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* detectionZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* relevanceZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* driverAwarenessZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* minimumAwarenessTime */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* applicableLanes */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* layoutId */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* preStoredlayoutId */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* text */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* data */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TcPart_specs_1 = { + sizeof(struct TcPart), + offsetof(struct TcPart, _asn_ctx), + asn_MAP_TcPart_tag2el_1, + 11, /* Count of tags in the map */ + asn_MAP_TcPart_oms_1, /* Optional members */ + 8, 1, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TcPart = { + "TcPart", + "TcPart", + &asn_OP_SEQUENCE, + asn_DEF_TcPart_tags_1, + sizeof(asn_DEF_TcPart_tags_1) + /sizeof(asn_DEF_TcPart_tags_1[0]), /* 1 */ + asn_DEF_TcPart_tags_1, /* Same as above */ + sizeof(asn_DEF_TcPart_tags_1) + /sizeof(asn_DEF_TcPart_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TcPart_1, + 11, /* Elements count */ + &asn_SPC_TcPart_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TemporaryID.c b/vcits/ivim/src/TemporaryID.c new file mode 100644 index 0000000..0ca1e48 --- /dev/null +++ b/vcits/ivim/src/TemporaryID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TemporaryID.h" + +int +TemporaryID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TemporaryID_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +asn_per_constraints_t asn_PER_type_TemporaryID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TemporaryID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TemporaryID = { + "TemporaryID", + "TemporaryID", + &asn_OP_OCTET_STRING, + asn_DEF_TemporaryID_tags_1, + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + asn_DEF_TemporaryID_tags_1, /* Same as above */ + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + { &asn_OER_type_TemporaryID_constr_1, &asn_PER_type_TemporaryID_constr_1, TemporaryID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/Text.c b/vcits/ivim/src/Text.c new file mode 100644 index 0000000..d0660b2 --- /dev/null +++ b/vcits/ivim/src/Text.c @@ -0,0 +1,144 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Text.h" + +static int +memb_layoutComponentId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_language_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_layoutComponentId_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_layoutComponentId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (1..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_language_constr_3 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +static asn_per_constraints_t asn_PER_memb_language_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_Text_1[] = { + { ATF_POINTER, 1, offsetof(struct Text, layoutComponentId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_layoutComponentId_constr_2, &asn_PER_memb_layoutComponentId_constr_2, memb_layoutComponentId_constraint_1 }, + 0, 0, /* No default value */ + "layoutComponentId" + }, + { ATF_NOFLAGS, 0, offsetof(struct Text, language), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_language_constr_3, &asn_PER_memb_language_constr_3, memb_language_constraint_1 }, + 0, 0, /* No default value */ + "language" + }, + { ATF_NOFLAGS, 0, offsetof(struct Text, textContent), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "textContent" + }, +}; +static const int asn_MAP_Text_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_Text_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Text_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* layoutComponentId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* language */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* textContent */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Text_specs_1 = { + sizeof(struct Text), + offsetof(struct Text, _asn_ctx), + asn_MAP_Text_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Text_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Text = { + "Text", + "Text", + &asn_OP_SEQUENCE, + asn_DEF_Text_tags_1, + sizeof(asn_DEF_Text_tags_1) + /sizeof(asn_DEF_Text_tags_1[0]), /* 1 */ + asn_DEF_Text_tags_1, /* Same as above */ + sizeof(asn_DEF_Text_tags_1) + /sizeof(asn_DEF_Text_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Text_1, + 3, /* Elements count */ + &asn_SPC_Text_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TextContainer.c b/vcits/ivim/src/TextContainer.c new file mode 100644 index 0000000..049f01f --- /dev/null +++ b/vcits/ivim/src/TextContainer.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TextContainer.h" + +#include "TcPart.h" +static asn_oer_constraints_t asn_OER_type_TextContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_TextContainer_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 16 } /* (SIZE(1..16,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_TextContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TcPart, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_TextContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_TextContainer_specs_1 = { + sizeof(struct TextContainer), + offsetof(struct TextContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_TextContainer = { + "TextContainer", + "TextContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_TextContainer_tags_1, + sizeof(asn_DEF_TextContainer_tags_1) + /sizeof(asn_DEF_TextContainer_tags_1[0]), /* 1 */ + asn_DEF_TextContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_TextContainer_tags_1) + /sizeof(asn_DEF_TextContainer_tags_1[0]), /* 1 */ + { &asn_OER_type_TextContainer_constr_1, &asn_PER_type_TextContainer_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_TextContainer_1, + 1, /* Single element */ + &asn_SPC_TextContainer_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TextLines.c b/vcits/ivim/src/TextLines.c new file mode 100644 index 0000000..12653ac --- /dev/null +++ b/vcits/ivim/src/TextLines.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TextLines.h" + +#include "Text.h" +static asn_oer_constraints_t asn_OER_type_TextLines_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_TextLines_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (SIZE(1..4,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_TextLines_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Text, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_TextLines_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_TextLines_specs_1 = { + sizeof(struct TextLines), + offsetof(struct TextLines, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_TextLines = { + "TextLines", + "TextLines", + &asn_OP_SEQUENCE_OF, + asn_DEF_TextLines_tags_1, + sizeof(asn_DEF_TextLines_tags_1) + /sizeof(asn_DEF_TextLines_tags_1[0]), /* 1 */ + asn_DEF_TextLines_tags_1, /* Same as above */ + sizeof(asn_DEF_TextLines_tags_1) + /sizeof(asn_DEF_TextLines_tags_1[0]), /* 1 */ + { &asn_OER_type_TextLines_constr_1, &asn_PER_type_TextLines_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_TextLines_1, + 1, /* Single element */ + &asn_SPC_TextLines_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ThrottleConfidence.c b/vcits/ivim/src/ThrottleConfidence.c new file mode 100644 index 0000000..d434b89 --- /dev/null +++ b/vcits/ivim/src/ThrottleConfidence.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ThrottleConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ThrottleConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 13, "prec10percent" }, + { 2, 12, "prec1percent" }, + { 3, 14, "prec0-5percent" } +}; +static const unsigned int asn_MAP_ThrottleConfidence_enum2value_1[] = { + 3, /* prec0-5percent(3) */ + 1, /* prec10percent(1) */ + 2, /* prec1percent(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1 = { + asn_MAP_ThrottleConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ThrottleConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence = { + "ThrottleConfidence", + "ThrottleConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ThrottleConfidence_tags_1, + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_ThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ThrottleConfidence_constr_1, &asn_PER_type_ThrottleConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TimeChangeDetails.c b/vcits/ivim/src/TimeChangeDetails.c new file mode 100644 index 0000000..593f9ec --- /dev/null +++ b/vcits/ivim/src/TimeChangeDetails.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TimeChangeDetails.h" + +asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[] = { + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct TimeChangeDetails, minEndTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minEndTime" + }, + { ATF_POINTER, 4, offsetof(struct TimeChangeDetails, maxEndTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxEndTime" + }, + { ATF_POINTER, 3, offsetof(struct TimeChangeDetails, likelyTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "likelyTime" + }, + { ATF_POINTER, 2, offsetof(struct TimeChangeDetails, confidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeIntervalConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, nextTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextTime" + }, +}; +static const int asn_MAP_TimeChangeDetails_oms_1[] = { 0, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_TimeChangeDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TimeChangeDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* likelyTime */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* nextTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1 = { + sizeof(struct TimeChangeDetails), + offsetof(struct TimeChangeDetails, _asn_ctx), + asn_MAP_TimeChangeDetails_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_TimeChangeDetails_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails = { + "TimeChangeDetails", + "TimeChangeDetails", + &asn_OP_SEQUENCE, + asn_DEF_TimeChangeDetails_tags_1, + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + asn_DEF_TimeChangeDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TimeChangeDetails_1, + 6, /* Elements count */ + &asn_SPC_TimeChangeDetails_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TimeConfidence.c b/vcits/ivim/src/TimeConfidence.c new file mode 100644 index 0000000..0902ce1 --- /dev/null +++ b/vcits/ivim/src/TimeConfidence.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TimeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TimeConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 12, "time-100-000" }, + { 2, 12, "time-050-000" }, + { 3, 12, "time-020-000" }, + { 4, 12, "time-010-000" }, + { 5, 12, "time-002-000" }, + { 6, 12, "time-001-000" }, + { 7, 12, "time-000-500" }, + { 8, 12, "time-000-200" }, + { 9, 12, "time-000-100" }, + { 10, 12, "time-000-050" }, + { 11, 12, "time-000-020" }, + { 12, 12, "time-000-010" }, + { 13, 12, "time-000-005" }, + { 14, 12, "time-000-002" }, + { 15, 12, "time-000-001" }, + { 16, 14, "time-000-000-5" }, + { 17, 14, "time-000-000-2" }, + { 18, 14, "time-000-000-1" }, + { 19, 15, "time-000-000-05" }, + { 20, 15, "time-000-000-02" }, + { 21, 15, "time-000-000-01" }, + { 22, 16, "time-000-000-005" }, + { 23, 16, "time-000-000-002" }, + { 24, 16, "time-000-000-001" }, + { 25, 18, "time-000-000-000-5" }, + { 26, 18, "time-000-000-000-2" }, + { 27, 18, "time-000-000-000-1" }, + { 28, 19, "time-000-000-000-05" }, + { 29, 19, "time-000-000-000-02" }, + { 30, 19, "time-000-000-000-01" }, + { 31, 20, "time-000-000-000-005" }, + { 32, 20, "time-000-000-000-002" }, + { 33, 20, "time-000-000-000-001" }, + { 34, 22, "time-000-000-000-000-5" }, + { 35, 22, "time-000-000-000-000-2" }, + { 36, 22, "time-000-000-000-000-1" }, + { 37, 23, "time-000-000-000-000-05" }, + { 38, 23, "time-000-000-000-000-02" }, + { 39, 23, "time-000-000-000-000-01" } +}; +static const unsigned int asn_MAP_TimeConfidence_enum2value_1[] = { + 39, /* time-000-000-000-000-01(39) */ + 38, /* time-000-000-000-000-02(38) */ + 37, /* time-000-000-000-000-05(37) */ + 36, /* time-000-000-000-000-1(36) */ + 35, /* time-000-000-000-000-2(35) */ + 34, /* time-000-000-000-000-5(34) */ + 33, /* time-000-000-000-001(33) */ + 32, /* time-000-000-000-002(32) */ + 31, /* time-000-000-000-005(31) */ + 30, /* time-000-000-000-01(30) */ + 29, /* time-000-000-000-02(29) */ + 28, /* time-000-000-000-05(28) */ + 27, /* time-000-000-000-1(27) */ + 26, /* time-000-000-000-2(26) */ + 25, /* time-000-000-000-5(25) */ + 24, /* time-000-000-001(24) */ + 23, /* time-000-000-002(23) */ + 22, /* time-000-000-005(22) */ + 21, /* time-000-000-01(21) */ + 20, /* time-000-000-02(20) */ + 19, /* time-000-000-05(19) */ + 18, /* time-000-000-1(18) */ + 17, /* time-000-000-2(17) */ + 16, /* time-000-000-5(16) */ + 15, /* time-000-001(15) */ + 14, /* time-000-002(14) */ + 13, /* time-000-005(13) */ + 12, /* time-000-010(12) */ + 11, /* time-000-020(11) */ + 10, /* time-000-050(10) */ + 9, /* time-000-100(9) */ + 8, /* time-000-200(8) */ + 7, /* time-000-500(7) */ + 6, /* time-001-000(6) */ + 5, /* time-002-000(5) */ + 4, /* time-010-000(4) */ + 3, /* time-020-000(3) */ + 2, /* time-050-000(2) */ + 1, /* time-100-000(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1 = { + asn_MAP_TimeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TimeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 40, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TimeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeConfidence = { + "TimeConfidence", + "TimeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_TimeConfidence_tags_1, + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeConfidence_constr_1, &asn_PER_type_TimeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TimeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TimeIntervalConfidence.c b/vcits/ivim/src/TimeIntervalConfidence.c new file mode 100644 index 0000000..9aab8d8 --- /dev/null +++ b/vcits/ivim/src/TimeIntervalConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TimeIntervalConfidence.h" + +int +TimeIntervalConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeIntervalConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence = { + "TimeIntervalConfidence", + "TimeIntervalConfidence", + &asn_OP_NativeInteger, + asn_DEF_TimeIntervalConfidence_tags_1, + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeIntervalConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeIntervalConfidence_constr_1, &asn_PER_type_TimeIntervalConfidence_constr_1, TimeIntervalConfidence_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/TimeMark.c b/vcits/ivim/src/TimeMark.c new file mode 100644 index 0000000..6d88adc --- /dev/null +++ b/vcits/ivim/src/TimeMark.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TimeMark.h" + +int +TimeMark_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 36001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeMark_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..36001) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeMark_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 36001 } /* (0..36001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeMark_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeMark = { + "TimeMark", + "TimeMark", + &asn_OP_NativeInteger, + asn_DEF_TimeMark_tags_1, + sizeof(asn_DEF_TimeMark_tags_1) + /sizeof(asn_DEF_TimeMark_tags_1[0]), /* 1 */ + asn_DEF_TimeMark_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeMark_tags_1) + /sizeof(asn_DEF_TimeMark_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeMark_constr_1, &asn_PER_type_TimeMark_constr_1, TimeMark_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/TimeReference.c b/vcits/ivim/src/TimeReference.c new file mode 100644 index 0000000..c336228 --- /dev/null +++ b/vcits/ivim/src/TimeReference.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TimeReference.h" + +int +TimeReference_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 60000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeReference_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..60000) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeReference_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 60000 } /* (0..60000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeReference = { + "TimeReference", + "TimeReference", + &asn_OP_NativeInteger, + asn_DEF_TimeReference_tags_1, + sizeof(asn_DEF_TimeReference_tags_1) + /sizeof(asn_DEF_TimeReference_tags_1[0]), /* 1 */ + asn_DEF_TimeReference_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeReference_tags_1) + /sizeof(asn_DEF_TimeReference_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeReference_constr_1, &asn_PER_type_TimeReference_constr_1, TimeReference_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/TimestampIts.c b/vcits/ivim/src/TimestampIts.c new file mode 100644 index 0000000..d1de873 --- /dev/null +++ b/vcits/ivim/src/TimestampIts.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TimestampIts.h" + +int +TimestampIts_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0 && value <= 4398046511103)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimestampIts_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..4398046511103) */, + -1}; +asn_per_constraints_t asn_PER_type_TimestampIts_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 42, -1, 0, 4398046511103 } /* (0..4398046511103) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimestampIts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimestampIts = { + "TimestampIts", + "TimestampIts", + &asn_OP_INTEGER, + asn_DEF_TimestampIts_tags_1, + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + asn_DEF_TimestampIts_tags_1, /* Same as above */ + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + { &asn_OER_type_TimestampIts_constr_1, &asn_PER_type_TimestampIts_constr_1, TimestampIts_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Traces.c b/vcits/ivim/src/Traces.c new file mode 100644 index 0000000..5ac72d4 --- /dev/null +++ b/vcits/ivim/src/Traces.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Traces.h" + +#include "PathHistory.h" +static asn_oer_constraints_t asn_OER_type_Traces_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..7)) */}; +static asn_per_constraints_t asn_PER_type_Traces_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_Traces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathHistory, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Traces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Traces_specs_1 = { + sizeof(struct Traces), + offsetof(struct Traces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Traces = { + "Traces", + "Traces", + &asn_OP_SEQUENCE_OF, + asn_DEF_Traces_tags_1, + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + asn_DEF_Traces_tags_1, /* Same as above */ + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + { &asn_OER_type_Traces_constr_1, &asn_PER_type_Traces_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Traces_1, + 1, /* Single element */ + &asn_SPC_Traces_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TractorAxles.c b/vcits/ivim/src/TractorAxles.c new file mode 100644 index 0000000..7ce0222 --- /dev/null +++ b/vcits/ivim/src/TractorAxles.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TractorAxles.h" + +int +TractorAxles_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TractorAxles_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_TractorAxles_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TractorAxles_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TractorAxles = { + "TractorAxles", + "TractorAxles", + &asn_OP_NativeInteger, + asn_DEF_TractorAxles_tags_1, + sizeof(asn_DEF_TractorAxles_tags_1) + /sizeof(asn_DEF_TractorAxles_tags_1[0]), /* 1 */ + asn_DEF_TractorAxles_tags_1, /* Same as above */ + sizeof(asn_DEF_TractorAxles_tags_1) + /sizeof(asn_DEF_TractorAxles_tags_1[0]), /* 1 */ + { &asn_OER_type_TractorAxles_constr_1, &asn_PER_type_TractorAxles_constr_1, TractorAxles_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/TractorCharacteristics.c b/vcits/ivim/src/TractorCharacteristics.c new file mode 100644 index 0000000..43f1330 --- /dev/null +++ b/vcits/ivim/src/TractorCharacteristics.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TractorCharacteristics.h" + +#include "VehicleCharacteristicsFixValuesList.h" +#include "VehicleCharacteristicsRangesList.h" +asn_TYPE_member_t asn_MBR_TractorCharacteristics_1[] = { + { ATF_POINTER, 3, offsetof(struct TractorCharacteristics, equalTo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleCharacteristicsFixValuesList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "equalTo" + }, + { ATF_POINTER, 2, offsetof(struct TractorCharacteristics, notEqualTo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleCharacteristicsFixValuesList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "notEqualTo" + }, + { ATF_POINTER, 1, offsetof(struct TractorCharacteristics, ranges), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleCharacteristicsRangesList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranges" + }, +}; +static const int asn_MAP_TractorCharacteristics_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_TractorCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TractorCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* equalTo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* notEqualTo */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ranges */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TractorCharacteristics_specs_1 = { + sizeof(struct TractorCharacteristics), + offsetof(struct TractorCharacteristics, _asn_ctx), + asn_MAP_TractorCharacteristics_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_TractorCharacteristics_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TractorCharacteristics = { + "TractorCharacteristics", + "TractorCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_TractorCharacteristics_tags_1, + sizeof(asn_DEF_TractorCharacteristics_tags_1) + /sizeof(asn_DEF_TractorCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_TractorCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_TractorCharacteristics_tags_1) + /sizeof(asn_DEF_TractorCharacteristics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TractorCharacteristics_1, + 3, /* Elements count */ + &asn_SPC_TractorCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TrafficConditionSubCauseCode.c b/vcits/ivim/src/TrafficConditionSubCauseCode.c new file mode 100644 index 0000000..3db1af1 --- /dev/null +++ b/vcits/ivim/src/TrafficConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TrafficConditionSubCauseCode.h" + +int +TrafficConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TrafficConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode = { + "TrafficConditionSubCauseCode", + "TrafficConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_TrafficConditionSubCauseCode_tags_1, + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_TrafficConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficConditionSubCauseCode_constr_1, &asn_PER_type_TrafficConditionSubCauseCode_constr_1, TrafficConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/TrafficRule.c b/vcits/ivim/src/TrafficRule.c new file mode 100644 index 0000000..1501adf --- /dev/null +++ b/vcits/ivim/src/TrafficRule.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TrafficRule.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficRule_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficRule_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TrafficRule_value2enum_1[] = { + { 0, 9, "noPassing" }, + { 1, 18, "noPassingForTrucks" }, + { 2, 11, "passToRight" }, + { 3, 10, "passToLeft" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TrafficRule_enum2value_1[] = { + 0, /* noPassing(0) */ + 1, /* noPassingForTrucks(1) */ + 3, /* passToLeft(3) */ + 2 /* passToRight(2) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_TrafficRule_specs_1 = { + asn_MAP_TrafficRule_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TrafficRule_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TrafficRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficRule = { + "TrafficRule", + "TrafficRule", + &asn_OP_NativeEnumerated, + asn_DEF_TrafficRule_tags_1, + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + asn_DEF_TrafficRule_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficRule_constr_1, &asn_PER_type_TrafficRule_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TrafficRule_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TrailerAxles.c b/vcits/ivim/src/TrailerAxles.c new file mode 100644 index 0000000..ad36b35 --- /dev/null +++ b/vcits/ivim/src/TrailerAxles.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TrailerAxles.h" + +int +TrailerAxles_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrailerAxles_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_TrailerAxles_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TrailerAxles_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrailerAxles = { + "TrailerAxles", + "TrailerAxles", + &asn_OP_NativeInteger, + asn_DEF_TrailerAxles_tags_1, + sizeof(asn_DEF_TrailerAxles_tags_1) + /sizeof(asn_DEF_TrailerAxles_tags_1[0]), /* 1 */ + asn_DEF_TrailerAxles_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerAxles_tags_1) + /sizeof(asn_DEF_TrailerAxles_tags_1[0]), /* 1 */ + { &asn_OER_type_TrailerAxles_constr_1, &asn_PER_type_TrailerAxles_constr_1, TrailerAxles_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/TrailerCharacteristicsFixValuesList.c b/vcits/ivim/src/TrailerCharacteristicsFixValuesList.c new file mode 100644 index 0000000..fffc8ad --- /dev/null +++ b/vcits/ivim/src/TrailerCharacteristicsFixValuesList.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TrailerCharacteristicsFixValuesList.h" + +#include "VehicleCharacteristicsFixValues.h" +static int +memb_VehicleCharacteristicsFixValues_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_Member_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_Member_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_TrailerCharacteristicsFixValuesList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_TrailerCharacteristicsFixValuesList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (SIZE(1..4,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_TrailerCharacteristicsFixValuesList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_VehicleCharacteristicsFixValues, + 0, + { &asn_OER_memb_Member_constr_2, &asn_PER_memb_Member_constr_2, memb_VehicleCharacteristicsFixValues_constraint_1 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_TrailerCharacteristicsFixValuesList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_TrailerCharacteristicsFixValuesList_specs_1 = { + sizeof(struct TrailerCharacteristicsFixValuesList), + offsetof(struct TrailerCharacteristicsFixValuesList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_TrailerCharacteristicsFixValuesList = { + "TrailerCharacteristicsFixValuesList", + "TrailerCharacteristicsFixValuesList", + &asn_OP_SEQUENCE_OF, + asn_DEF_TrailerCharacteristicsFixValuesList_tags_1, + sizeof(asn_DEF_TrailerCharacteristicsFixValuesList_tags_1) + /sizeof(asn_DEF_TrailerCharacteristicsFixValuesList_tags_1[0]), /* 1 */ + asn_DEF_TrailerCharacteristicsFixValuesList_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerCharacteristicsFixValuesList_tags_1) + /sizeof(asn_DEF_TrailerCharacteristicsFixValuesList_tags_1[0]), /* 1 */ + { &asn_OER_type_TrailerCharacteristicsFixValuesList_constr_1, &asn_PER_type_TrailerCharacteristicsFixValuesList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_TrailerCharacteristicsFixValuesList_1, + 1, /* Single element */ + &asn_SPC_TrailerCharacteristicsFixValuesList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TrailerCharacteristicsList.c b/vcits/ivim/src/TrailerCharacteristicsList.c new file mode 100644 index 0000000..7fd09f1 --- /dev/null +++ b/vcits/ivim/src/TrailerCharacteristicsList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TrailerCharacteristicsList.h" + +#include "IVI_TrailerCharacteristics.h" +static asn_oer_constraints_t asn_OER_type_TrailerCharacteristicsList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +asn_per_constraints_t asn_PER_type_TrailerCharacteristicsList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_TrailerCharacteristicsList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IVI_TrailerCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_TrailerCharacteristicsList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_TrailerCharacteristicsList_specs_1 = { + sizeof(struct TrailerCharacteristicsList), + offsetof(struct TrailerCharacteristicsList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_TrailerCharacteristicsList = { + "TrailerCharacteristicsList", + "TrailerCharacteristicsList", + &asn_OP_SEQUENCE_OF, + asn_DEF_TrailerCharacteristicsList_tags_1, + sizeof(asn_DEF_TrailerCharacteristicsList_tags_1) + /sizeof(asn_DEF_TrailerCharacteristicsList_tags_1[0]), /* 1 */ + asn_DEF_TrailerCharacteristicsList_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerCharacteristicsList_tags_1) + /sizeof(asn_DEF_TrailerCharacteristicsList_tags_1[0]), /* 1 */ + { &asn_OER_type_TrailerCharacteristicsList_constr_1, &asn_PER_type_TrailerCharacteristicsList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_TrailerCharacteristicsList_1, + 1, /* Single element */ + &asn_SPC_TrailerCharacteristicsList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TrailerCharacteristicsRangesList.c b/vcits/ivim/src/TrailerCharacteristicsRangesList.c new file mode 100644 index 0000000..6c8c999 --- /dev/null +++ b/vcits/ivim/src/TrailerCharacteristicsRangesList.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TrailerCharacteristicsRangesList.h" + +#include "VehicleCharacteristicsRanges.h" +static int +memb_VehicleCharacteristicsRanges_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_Member_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_Member_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_TrailerCharacteristicsRangesList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_TrailerCharacteristicsRangesList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (SIZE(1..4,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_TrailerCharacteristicsRangesList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_VehicleCharacteristicsRanges, + 0, + { &asn_OER_memb_Member_constr_2, &asn_PER_memb_Member_constr_2, memb_VehicleCharacteristicsRanges_constraint_1 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_TrailerCharacteristicsRangesList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_TrailerCharacteristicsRangesList_specs_1 = { + sizeof(struct TrailerCharacteristicsRangesList), + offsetof(struct TrailerCharacteristicsRangesList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_TrailerCharacteristicsRangesList = { + "TrailerCharacteristicsRangesList", + "TrailerCharacteristicsRangesList", + &asn_OP_SEQUENCE_OF, + asn_DEF_TrailerCharacteristicsRangesList_tags_1, + sizeof(asn_DEF_TrailerCharacteristicsRangesList_tags_1) + /sizeof(asn_DEF_TrailerCharacteristicsRangesList_tags_1[0]), /* 1 */ + asn_DEF_TrailerCharacteristicsRangesList_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerCharacteristicsRangesList_tags_1) + /sizeof(asn_DEF_TrailerCharacteristicsRangesList_tags_1[0]), /* 1 */ + { &asn_OER_type_TrailerCharacteristicsRangesList_constr_1, &asn_PER_type_TrailerCharacteristicsRangesList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_TrailerCharacteristicsRangesList_1, + 1, /* Single element */ + &asn_SPC_TrailerCharacteristicsRangesList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TrailerDetails.c b/vcits/ivim/src/TrailerDetails.c new file mode 100644 index 0000000..69ecbeb --- /dev/null +++ b/vcits/ivim/src/TrailerDetails.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TrailerDetails.h" + +static int +memb_trailerType_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_trailerType_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_trailerType_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_TrailerDetails_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TrailerDetails, trailerType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_trailerType_constr_2, &asn_PER_memb_trailerType_constr_2, memb_trailerType_constraint_1 }, + 0, 0, /* No default value */ + "trailerType" + }, + { ATF_NOFLAGS, 0, offsetof(struct TrailerDetails, trailerAxles), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerAxles, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trailerAxles" + }, +}; +static const ber_tlv_tag_t asn_DEF_TrailerDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TrailerDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* trailerType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* trailerAxles */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TrailerDetails_specs_1 = { + sizeof(struct TrailerDetails), + offsetof(struct TrailerDetails, _asn_ctx), + asn_MAP_TrailerDetails_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TrailerDetails = { + "TrailerDetails", + "TrailerDetails", + &asn_OP_SEQUENCE, + asn_DEF_TrailerDetails_tags_1, + sizeof(asn_DEF_TrailerDetails_tags_1) + /sizeof(asn_DEF_TrailerDetails_tags_1[0]), /* 1 */ + asn_DEF_TrailerDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerDetails_tags_1) + /sizeof(asn_DEF_TrailerDetails_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TrailerDetails_1, + 2, /* Elements count */ + &asn_SPC_TrailerDetails_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TrailerLicencePlateNumber.c b/vcits/ivim/src/TrailerLicencePlateNumber.c new file mode 100644 index 0000000..c132d69 --- /dev/null +++ b/vcits/ivim/src/TrailerLicencePlateNumber.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TrailerLicencePlateNumber.h" + +/* + * This type is implemented using LPN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_TrailerLicencePlateNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrailerLicencePlateNumber = { + "TrailerLicencePlateNumber", + "TrailerLicencePlateNumber", + &asn_OP_SEQUENCE, + asn_DEF_TrailerLicencePlateNumber_tags_1, + sizeof(asn_DEF_TrailerLicencePlateNumber_tags_1) + /sizeof(asn_DEF_TrailerLicencePlateNumber_tags_1[0]), /* 1 */ + asn_DEF_TrailerLicencePlateNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerLicencePlateNumber_tags_1) + /sizeof(asn_DEF_TrailerLicencePlateNumber_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LPN_1, + 3, /* Elements count */ + &asn_SPC_LPN_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TrainCharacteristics.c b/vcits/ivim/src/TrainCharacteristics.c new file mode 100644 index 0000000..4ec9b9a --- /dev/null +++ b/vcits/ivim/src/TrainCharacteristics.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TrainCharacteristics.h" + +/* + * This type is implemented using TractorCharacteristics, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_TrainCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrainCharacteristics = { + "TrainCharacteristics", + "TrainCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_TrainCharacteristics_tags_1, + sizeof(asn_DEF_TrainCharacteristics_tags_1) + /sizeof(asn_DEF_TrainCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_TrainCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_TrainCharacteristics_tags_1) + /sizeof(asn_DEF_TrainCharacteristics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TractorCharacteristics_1, + 3, /* Elements count */ + &asn_SPC_TractorCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TransitVehicleOccupancy.c b/vcits/ivim/src/TransitVehicleOccupancy.c new file mode 100644 index 0000000..b414f2a --- /dev/null +++ b/vcits/ivim/src/TransitVehicleOccupancy.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TransitVehicleOccupancy.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransitVehicleOccupancy_value2enum_1[] = { + { 0, 16, "occupancyUnknown" }, + { 1, 14, "occupancyEmpty" }, + { 2, 16, "occupancyVeryLow" }, + { 3, 12, "occupancyLow" }, + { 4, 12, "occupancyMed" }, + { 5, 13, "occupancyHigh" }, + { 6, 19, "occupancyNearlyFull" }, + { 7, 13, "occupancyFull" } +}; +static const unsigned int asn_MAP_TransitVehicleOccupancy_enum2value_1[] = { + 1, /* occupancyEmpty(1) */ + 7, /* occupancyFull(7) */ + 5, /* occupancyHigh(5) */ + 3, /* occupancyLow(3) */ + 4, /* occupancyMed(4) */ + 6, /* occupancyNearlyFull(6) */ + 0, /* occupancyUnknown(0) */ + 2 /* occupancyVeryLow(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1 = { + asn_MAP_TransitVehicleOccupancy_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransitVehicleOccupancy_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleOccupancy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy = { + "TransitVehicleOccupancy", + "TransitVehicleOccupancy", + &asn_OP_NativeEnumerated, + asn_DEF_TransitVehicleOccupancy_tags_1, + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleOccupancy_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + { &asn_OER_type_TransitVehicleOccupancy_constr_1, &asn_PER_type_TransitVehicleOccupancy_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransitVehicleOccupancy_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TransitVehicleStatus.c b/vcits/ivim/src/TransitVehicleStatus.c new file mode 100644 index 0000000..a0d3046 --- /dev/null +++ b/vcits/ivim/src/TransitVehicleStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TransitVehicleStatus.h" + +int +TransitVehicleStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus = { + "TransitVehicleStatus", + "TransitVehicleStatus", + &asn_OP_BIT_STRING, + asn_DEF_TransitVehicleStatus_tags_1, + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_TransitVehicleStatus_constr_1, &asn_PER_type_TransitVehicleStatus_constr_1, TransitVehicleStatus_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TransmissionAndSpeed.c b/vcits/ivim/src/TransmissionAndSpeed.c new file mode 100644 index 0000000..e35c385 --- /dev/null +++ b/vcits/ivim/src/TransmissionAndSpeed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TransmissionAndSpeed.h" + +asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, transmisson), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transmisson" + }, + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_TransmissionAndSpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TransmissionAndSpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transmisson */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1 = { + sizeof(struct TransmissionAndSpeed), + offsetof(struct TransmissionAndSpeed, _asn_ctx), + asn_MAP_TransmissionAndSpeed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed = { + "TransmissionAndSpeed", + "TransmissionAndSpeed", + &asn_OP_SEQUENCE, + asn_DEF_TransmissionAndSpeed_tags_1, + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + asn_DEF_TransmissionAndSpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TransmissionAndSpeed_1, + 2, /* Elements count */ + &asn_SPC_TransmissionAndSpeed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TransmissionInterval.c b/vcits/ivim/src/TransmissionInterval.c new file mode 100644 index 0000000..449f2be --- /dev/null +++ b/vcits/ivim/src/TransmissionInterval.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TransmissionInterval.h" + +int +TransmissionInterval_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..10000) */, + -1}; +static asn_per_constraints_t asn_PER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 10000 } /* (1..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransmissionInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionInterval = { + "TransmissionInterval", + "TransmissionInterval", + &asn_OP_NativeInteger, + asn_DEF_TransmissionInterval_tags_1, + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + asn_DEF_TransmissionInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionInterval_constr_1, &asn_PER_type_TransmissionInterval_constr_1, TransmissionInterval_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/TransmissionState.c b/vcits/ivim/src/TransmissionState.c new file mode 100644 index 0000000..bc4556d --- /dev/null +++ b/vcits/ivim/src/TransmissionState.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TransmissionState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransmissionState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransmissionState_value2enum_1[] = { + { 0, 7, "neutral" }, + { 1, 4, "park" }, + { 2, 12, "forwardGears" }, + { 3, 12, "reverseGears" }, + { 4, 9, "reserved1" }, + { 5, 9, "reserved2" }, + { 6, 9, "reserved3" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_TransmissionState_enum2value_1[] = { + 2, /* forwardGears(2) */ + 0, /* neutral(0) */ + 1, /* park(1) */ + 4, /* reserved1(4) */ + 5, /* reserved2(5) */ + 6, /* reserved3(6) */ + 3, /* reverseGears(3) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1 = { + asn_MAP_TransmissionState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransmissionState_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransmissionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionState = { + "TransmissionState", + "TransmissionState", + &asn_OP_NativeEnumerated, + asn_DEF_TransmissionState_tags_1, + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + asn_DEF_TransmissionState_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionState_constr_1, &asn_PER_type_TransmissionState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransmissionState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/TreatmentType.c b/vcits/ivim/src/TreatmentType.c new file mode 100644 index 0000000..84d8eca --- /dev/null +++ b/vcits/ivim/src/TreatmentType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TreatmentType.h" + +int +TreatmentType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TreatmentType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_TreatmentType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TreatmentType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TreatmentType = { + "TreatmentType", + "TreatmentType", + &asn_OP_NativeInteger, + asn_DEF_TreatmentType_tags_1, + sizeof(asn_DEF_TreatmentType_tags_1) + /sizeof(asn_DEF_TreatmentType_tags_1[0]), /* 1 */ + asn_DEF_TreatmentType_tags_1, /* Same as above */ + sizeof(asn_DEF_TreatmentType_tags_1) + /sizeof(asn_DEF_TreatmentType_tags_1[0]), /* 1 */ + { &asn_OER_type_TreatmentType_constr_1, &asn_PER_type_TreatmentType_constr_1, TreatmentType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/TurningRadius.c b/vcits/ivim/src/TurningRadius.c new file mode 100644 index 0000000..6ab026e --- /dev/null +++ b/vcits/ivim/src/TurningRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "TurningRadius.h" + +int +TurningRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TurningRadius_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TurningRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TurningRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TurningRadius = { + "TurningRadius", + "TurningRadius", + &asn_OP_NativeInteger, + asn_DEF_TurningRadius_tags_1, + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + asn_DEF_TurningRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_TurningRadius_constr_1, &asn_PER_type_TurningRadius_constr_1, TurningRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/UnitType.c b/vcits/ivim/src/UnitType.c new file mode 100644 index 0000000..2c71f4c --- /dev/null +++ b/vcits/ivim/src/UnitType.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "UnitType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_UnitType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_UnitType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_UnitType_value2enum_1[] = { + { 0, 5, "mg-km" }, + { 1, 6, "mg-kWh" } +}; +static const unsigned int asn_MAP_UnitType_enum2value_1[] = { + 1, /* mg-kWh(1) */ + 0 /* mg-km(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_UnitType_specs_1 = { + asn_MAP_UnitType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_UnitType_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_UnitType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_UnitType = { + "UnitType", + "UnitType", + &asn_OP_NativeEnumerated, + asn_DEF_UnitType_tags_1, + sizeof(asn_DEF_UnitType_tags_1) + /sizeof(asn_DEF_UnitType_tags_1[0]), /* 1 */ + asn_DEF_UnitType_tags_1, /* Same as above */ + sizeof(asn_DEF_UnitType_tags_1) + /sizeof(asn_DEF_UnitType_tags_1[0]), /* 1 */ + { &asn_OER_type_UnitType_constr_1, &asn_PER_type_UnitType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_UnitType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VDS.c b/vcits/ivim/src/VDS.c new file mode 100644 index 0000000..d5fc853 --- /dev/null +++ b/vcits/ivim/src/VDS.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VDS.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +VDS_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 6) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VDS_constr_1 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +asn_per_constraints_t asn_PER_type_VDS_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_VDS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VDS = { + "VDS", + "VDS", + &asn_OP_IA5String, + asn_DEF_VDS_tags_1, + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + asn_DEF_VDS_tags_1, /* Same as above */ + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + { &asn_OER_type_VDS_constr_1, &asn_PER_type_VDS_constr_1, VDS_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ValidityDuration.c b/vcits/ivim/src/ValidityDuration.c new file mode 100644 index 0000000..abf3e31 --- /dev/null +++ b/vcits/ivim/src/ValidityDuration.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ValidityDuration.h" + +int +ValidityDuration_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 86400)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..86400) */, + -1}; +static asn_per_constraints_t asn_PER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 0, 86400 } /* (0..86400) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ValidityDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ValidityDuration = { + "ValidityDuration", + "ValidityDuration", + &asn_OP_NativeInteger, + asn_DEF_ValidityDuration_tags_1, + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + asn_DEF_ValidityDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + { &asn_OER_type_ValidityDuration_constr_1, &asn_PER_type_ValidityDuration_constr_1, ValidityDuration_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/ValidityOfContract.c b/vcits/ivim/src/ValidityOfContract.c new file mode 100644 index 0000000..1f018d3 --- /dev/null +++ b/vcits/ivim/src/ValidityOfContract.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ValidityOfContract.h" + +static int +memb_issuerRestrictions_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_issuerRestrictions_constr_2 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_issuerRestrictions_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ValidityOfContract_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ValidityOfContract, issuerRestrictions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_issuerRestrictions_constr_2, &asn_PER_memb_issuerRestrictions_constr_2, memb_issuerRestrictions_constraint_1 }, + 0, 0, /* No default value */ + "issuerRestrictions" + }, + { ATF_NOFLAGS, 0, offsetof(struct ValidityOfContract, contractExpiryDate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DateCompact, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "contractExpiryDate" + }, +}; +static const ber_tlv_tag_t asn_DEF_ValidityOfContract_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ValidityOfContract_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* issuerRestrictions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* contractExpiryDate */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ValidityOfContract_specs_1 = { + sizeof(struct ValidityOfContract), + offsetof(struct ValidityOfContract, _asn_ctx), + asn_MAP_ValidityOfContract_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ValidityOfContract = { + "ValidityOfContract", + "ValidityOfContract", + &asn_OP_SEQUENCE, + asn_DEF_ValidityOfContract_tags_1, + sizeof(asn_DEF_ValidityOfContract_tags_1) + /sizeof(asn_DEF_ValidityOfContract_tags_1[0]), /* 1 */ + asn_DEF_ValidityOfContract_tags_1, /* Same as above */ + sizeof(asn_DEF_ValidityOfContract_tags_1) + /sizeof(asn_DEF_ValidityOfContract_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ValidityOfContract_1, + 2, /* Elements count */ + &asn_SPC_ValidityOfContract_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ValidityPeriods.c b/vcits/ivim/src/ValidityPeriods.c new file mode 100644 index 0000000..a04edb0 --- /dev/null +++ b/vcits/ivim/src/ValidityPeriods.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ValidityPeriods.h" + +#include "InternationalSign-applicablePeriod.h" +static asn_oer_constraints_t asn_OER_type_ValidityPeriods_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_ValidityPeriods_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ValidityPeriods_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_InternationalSign_applicablePeriod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ValidityPeriods_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ValidityPeriods_specs_1 = { + sizeof(struct ValidityPeriods), + offsetof(struct ValidityPeriods, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ValidityPeriods = { + "ValidityPeriods", + "ValidityPeriods", + &asn_OP_SEQUENCE_OF, + asn_DEF_ValidityPeriods_tags_1, + sizeof(asn_DEF_ValidityPeriods_tags_1) + /sizeof(asn_DEF_ValidityPeriods_tags_1[0]), /* 1 */ + asn_DEF_ValidityPeriods_tags_1, /* Same as above */ + sizeof(asn_DEF_ValidityPeriods_tags_1) + /sizeof(asn_DEF_ValidityPeriods_tags_1[0]), /* 1 */ + { &asn_OER_type_ValidityPeriods_constr_1, &asn_PER_type_ValidityPeriods_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ValidityPeriods_1, + 1, /* Single element */ + &asn_SPC_ValidityPeriods_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VarLengthNumber.c b/vcits/ivim/src/VarLengthNumber.c new file mode 100644 index 0000000..253c949 --- /dev/null +++ b/vcits/ivim/src/VarLengthNumber.c @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/tmp/gen_env/build/asn1/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VarLengthNumber.h" + +static int +memb_content_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_content_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_content_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_VarLengthNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VarLengthNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_VarLengthNumber_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VarLengthNumber, choice.content), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_content_constr_2, &asn_PER_memb_content_constr_2, memb_content_constraint_1 }, + 0, 0, /* No default value */ + "content" + }, + { ATF_NOFLAGS, 0, offsetof(struct VarLengthNumber, choice.extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Ext1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_VarLengthNumber_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* content */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* extension */ +}; +asn_CHOICE_specifics_t asn_SPC_VarLengthNumber_specs_1 = { + sizeof(struct VarLengthNumber), + offsetof(struct VarLengthNumber, _asn_ctx), + offsetof(struct VarLengthNumber, present), + sizeof(((struct VarLengthNumber *)0)->present), + asn_MAP_VarLengthNumber_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_VarLengthNumber = { + "VarLengthNumber", + "VarLengthNumber", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_VarLengthNumber_constr_1, &asn_PER_type_VarLengthNumber_constr_1, CHOICE_constraint }, + asn_MBR_VarLengthNumber_1, + 2, /* Elements count */ + &asn_SPC_VarLengthNumber_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VarLengthNumber2.c b/vcits/ivim/src/VarLengthNumber2.c new file mode 100644 index 0000000..fcf6a5e --- /dev/null +++ b/vcits/ivim/src/VarLengthNumber2.c @@ -0,0 +1,131 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/tmp/gen_env/build/asn1/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VarLengthNumber2.h" + +static int +memb_shortNo_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_longNo_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_shortNo_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_shortNo_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_longNo_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +static asn_per_constraints_t asn_PER_memb_longNo_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_VarLengthNumber2_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_VarLengthNumber2_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_VarLengthNumber2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VarLengthNumber2, choice.shortNo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_shortNo_constr_2, &asn_PER_memb_shortNo_constr_2, memb_shortNo_constraint_1 }, + 0, 0, /* No default value */ + "shortNo" + }, + { ATF_NOFLAGS, 0, offsetof(struct VarLengthNumber2, choice.longNo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_longNo_constr_3, &asn_PER_memb_longNo_constr_3, memb_longNo_constraint_1 }, + 0, 0, /* No default value */ + "longNo" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_VarLengthNumber2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shortNo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longNo */ +}; +static asn_CHOICE_specifics_t asn_SPC_VarLengthNumber2_specs_1 = { + sizeof(struct VarLengthNumber2), + offsetof(struct VarLengthNumber2, _asn_ctx), + offsetof(struct VarLengthNumber2, present), + sizeof(((struct VarLengthNumber2 *)0)->present), + asn_MAP_VarLengthNumber2_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_VarLengthNumber2 = { + "VarLengthNumber2", + "VarLengthNumber2", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_VarLengthNumber2_constr_1, &asn_PER_type_VarLengthNumber2_constr_1, CHOICE_constraint }, + asn_MBR_VarLengthNumber2_1, + 2, /* Elements count */ + &asn_SPC_VarLengthNumber2_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VcClass.c b/vcits/ivim/src/VcClass.c new file mode 100644 index 0000000..fb2d43c --- /dev/null +++ b/vcits/ivim/src/VcClass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VcClass.h" + +int +VcClass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VcClass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_VcClass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VcClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VcClass = { + "VcClass", + "VcClass", + &asn_OP_NativeInteger, + asn_DEF_VcClass_tags_1, + sizeof(asn_DEF_VcClass_tags_1) + /sizeof(asn_DEF_VcClass_tags_1[0]), /* 1 */ + asn_DEF_VcClass_tags_1, /* Same as above */ + sizeof(asn_DEF_VcClass_tags_1) + /sizeof(asn_DEF_VcClass_tags_1[0]), /* 1 */ + { &asn_OER_type_VcClass_constr_1, &asn_PER_type_VcClass_constr_1, VcClass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/VcCode.c b/vcits/ivim/src/VcCode.c new file mode 100644 index 0000000..eb8e316 --- /dev/null +++ b/vcits/ivim/src/VcCode.c @@ -0,0 +1,169 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VcCode.h" + +#include "ValidityPeriods.h" +static int +memb_roadSignCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_roadSignCode_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +static asn_per_constraints_t asn_PER_memb_roadSignCode_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_6 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_VcCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VcCode, roadSignClass), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VcClass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadSignClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct VcCode, roadSignCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_roadSignCode_constr_3, &asn_PER_memb_roadSignCode_constr_3, memb_roadSignCode_constraint_1 }, + 0, 0, /* No default value */ + "roadSignCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct VcCode, vcOption), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VcOption, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vcOption" + }, + { ATF_POINTER, 3, offsetof(struct VcCode, validity), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ValidityPeriods, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "validity" + }, + { ATF_POINTER, 2, offsetof(struct VcCode, value), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_value_constr_6, &asn_PER_memb_value_constr_6, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, + { ATF_POINTER, 1, offsetof(struct VcCode, unit), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSCUnit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "unit" + }, +}; +static const int asn_MAP_VcCode_oms_1[] = { 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_VcCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VcCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roadSignClass */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* roadSignCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* vcOption */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* validity */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* unit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VcCode_specs_1 = { + sizeof(struct VcCode), + offsetof(struct VcCode, _asn_ctx), + asn_MAP_VcCode_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_VcCode_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VcCode = { + "VcCode", + "VcCode", + &asn_OP_SEQUENCE, + asn_DEF_VcCode_tags_1, + sizeof(asn_DEF_VcCode_tags_1) + /sizeof(asn_DEF_VcCode_tags_1[0]), /* 1 */ + asn_DEF_VcCode_tags_1, /* Same as above */ + sizeof(asn_DEF_VcCode_tags_1) + /sizeof(asn_DEF_VcCode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VcCode_1, + 6, /* Elements count */ + &asn_SPC_VcCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VcOption.c b/vcits/ivim/src/VcOption.c new file mode 100644 index 0000000..f52c664 --- /dev/null +++ b/vcits/ivim/src/VcOption.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VcOption.h" + +int +VcOption_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VcOption_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_VcOption_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VcOption_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VcOption = { + "VcOption", + "VcOption", + &asn_OP_NativeInteger, + asn_DEF_VcOption_tags_1, + sizeof(asn_DEF_VcOption_tags_1) + /sizeof(asn_DEF_VcOption_tags_1[0]), /* 1 */ + asn_DEF_VcOption_tags_1, /* Same as above */ + sizeof(asn_DEF_VcOption_tags_1) + /sizeof(asn_DEF_VcOption_tags_1[0]), /* 1 */ + { &asn_OER_type_VcOption_constr_1, &asn_PER_type_VcOption_constr_1, VcOption_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/VehicleAuthenticator.c b/vcits/ivim/src/VehicleAuthenticator.c new file mode 100644 index 0000000..0c49d15 --- /dev/null +++ b/vcits/ivim/src/VehicleAuthenticator.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleAuthenticator.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_VehicleAuthenticator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleAuthenticator = { + "VehicleAuthenticator", + "VehicleAuthenticator", + &asn_OP_OCTET_STRING, + asn_DEF_VehicleAuthenticator_tags_1, + sizeof(asn_DEF_VehicleAuthenticator_tags_1) + /sizeof(asn_DEF_VehicleAuthenticator_tags_1[0]), /* 1 */ + asn_DEF_VehicleAuthenticator_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleAuthenticator_tags_1) + /sizeof(asn_DEF_VehicleAuthenticator_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleAxles.c b/vcits/ivim/src/VehicleAxles.c new file mode 100644 index 0000000..dafe068 --- /dev/null +++ b/vcits/ivim/src/VehicleAxles.c @@ -0,0 +1,219 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleAxles.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_tyreType_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_tyreType_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_tyreType_value2enum_4[] = { + { 0, 12, "notSpecified" }, + { 1, 10, "singleTyre" }, + { 2, 9, "dualTyres" }, + { 3, 14, "reservedForUse" } +}; +static const unsigned int asn_MAP_tyreType_enum2value_4[] = { + 2, /* dualTyres(2) */ + 0, /* notSpecified(0) */ + 3, /* reservedForUse(3) */ + 1 /* singleTyre(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_tyreType_specs_4 = { + asn_MAP_tyreType_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_tyreType_enum2value_4, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_tyreType_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_tyreType_4 = { + "tyreType", + "tyreType", + &asn_OP_NativeEnumerated, + asn_DEF_tyreType_tags_4, + sizeof(asn_DEF_tyreType_tags_4) + /sizeof(asn_DEF_tyreType_tags_4[0]) - 1, /* 1 */ + asn_DEF_tyreType_tags_4, /* Same as above */ + sizeof(asn_DEF_tyreType_tags_4) + /sizeof(asn_DEF_tyreType_tags_4[0]), /* 2 */ + { &asn_OER_type_tyreType_constr_4, &asn_PER_type_tyreType_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_tyreType_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_numberOfAxles_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleAxles__vehicleAxlesNumber__numberOfAxles, trailerAxles), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerAxles, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trailerAxles" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleAxles__vehicleAxlesNumber__numberOfAxles, tractorAxles), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TractorAxles, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tractorAxles" + }, +}; +static const ber_tlv_tag_t asn_DEF_numberOfAxles_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_numberOfAxles_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* trailerAxles */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tractorAxles */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_numberOfAxles_specs_9 = { + sizeof(struct VehicleAxles__vehicleAxlesNumber__numberOfAxles), + offsetof(struct VehicleAxles__vehicleAxlesNumber__numberOfAxles, _asn_ctx), + asn_MAP_numberOfAxles_tag2el_9, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_numberOfAxles_9 = { + "numberOfAxles", + "numberOfAxles", + &asn_OP_SEQUENCE, + asn_DEF_numberOfAxles_tags_9, + sizeof(asn_DEF_numberOfAxles_tags_9) + /sizeof(asn_DEF_numberOfAxles_tags_9[0]) - 1, /* 1 */ + asn_DEF_numberOfAxles_tags_9, /* Same as above */ + sizeof(asn_DEF_numberOfAxles_tags_9) + /sizeof(asn_DEF_numberOfAxles_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_numberOfAxles_9, + 2, /* Elements count */ + &asn_SPC_numberOfAxles_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_vehicleAxlesNumber_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleAxles__vehicleAxlesNumber, tyreType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_tyreType_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tyreType" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleAxles__vehicleAxlesNumber, numberOfAxles), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_numberOfAxles_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfAxles" + }, +}; +static const ber_tlv_tag_t asn_DEF_vehicleAxlesNumber_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_vehicleAxlesNumber_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tyreType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* numberOfAxles */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_vehicleAxlesNumber_specs_3 = { + sizeof(struct VehicleAxles__vehicleAxlesNumber), + offsetof(struct VehicleAxles__vehicleAxlesNumber, _asn_ctx), + asn_MAP_vehicleAxlesNumber_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_vehicleAxlesNumber_3 = { + "vehicleAxlesNumber", + "vehicleAxlesNumber", + &asn_OP_SEQUENCE, + asn_DEF_vehicleAxlesNumber_tags_3, + sizeof(asn_DEF_vehicleAxlesNumber_tags_3) + /sizeof(asn_DEF_vehicleAxlesNumber_tags_3[0]) - 1, /* 1 */ + asn_DEF_vehicleAxlesNumber_tags_3, /* Same as above */ + sizeof(asn_DEF_vehicleAxlesNumber_tags_3) + /sizeof(asn_DEF_vehicleAxlesNumber_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_vehicleAxlesNumber_3, + 2, /* Elements count */ + &asn_SPC_vehicleAxlesNumber_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_VehicleAxles_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleAxles, vehicleFirstAxleHeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleFirstAxleHeight" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleAxles, vehicleAxlesNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_vehicleAxlesNumber_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleAxlesNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleAxles_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleAxles_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleFirstAxleHeight */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vehicleAxlesNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleAxles_specs_1 = { + sizeof(struct VehicleAxles), + offsetof(struct VehicleAxles, _asn_ctx), + asn_MAP_VehicleAxles_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleAxles = { + "VehicleAxles", + "VehicleAxles", + &asn_OP_SEQUENCE, + asn_DEF_VehicleAxles_tags_1, + sizeof(asn_DEF_VehicleAxles_tags_1) + /sizeof(asn_DEF_VehicleAxles_tags_1[0]), /* 1 */ + asn_DEF_VehicleAxles_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleAxles_tags_1) + /sizeof(asn_DEF_VehicleAxles_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleAxles_1, + 2, /* Elements count */ + &asn_SPC_VehicleAxles_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleBreakdownSubCauseCode.c b/vcits/ivim/src/VehicleBreakdownSubCauseCode.c new file mode 100644 index 0000000..02000f9 --- /dev/null +++ b/vcits/ivim/src/VehicleBreakdownSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleBreakdownSubCauseCode.h" + +int +VehicleBreakdownSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleBreakdownSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode = { + "VehicleBreakdownSubCauseCode", + "VehicleBreakdownSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleBreakdownSubCauseCode_constr_1, &asn_PER_type_VehicleBreakdownSubCauseCode_constr_1, VehicleBreakdownSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/VehicleCharacteristicsFixValues.c b/vcits/ivim/src/VehicleCharacteristicsFixValues.c new file mode 100644 index 0000000..93dfbeb --- /dev/null +++ b/vcits/ivim/src/VehicleCharacteristicsFixValues.c @@ -0,0 +1,115 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleCharacteristicsFixValues.h" + +static asn_oer_constraints_t asn_OER_type_VehicleCharacteristicsFixValues_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleCharacteristicsFixValues_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_VehicleCharacteristicsFixValues_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsFixValues, choice.simpleVehicleType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITS_Container_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simpleVehicleType" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsFixValues, choice.euVehicleCategoryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsFixValues, choice.iso3833VehicleType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Iso3833VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iso3833VehicleType" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsFixValues, choice.euroAndCo2value), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EnvironmentalCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euroAndCo2value" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsFixValues, choice.engineCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EngineCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "engineCharacteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsFixValues, choice.loadType), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LoadType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "loadType" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsFixValues, choice.usage), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "usage" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleCharacteristicsFixValues_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* simpleVehicleType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* euVehicleCategoryCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* iso3833VehicleType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* euroAndCo2value */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* engineCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* loadType */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* usage */ +}; +asn_CHOICE_specifics_t asn_SPC_VehicleCharacteristicsFixValues_specs_1 = { + sizeof(struct VehicleCharacteristicsFixValues), + offsetof(struct VehicleCharacteristicsFixValues, _asn_ctx), + offsetof(struct VehicleCharacteristicsFixValues, present), + sizeof(((struct VehicleCharacteristicsFixValues *)0)->present), + asn_MAP_VehicleCharacteristicsFixValues_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleCharacteristicsFixValues = { + "VehicleCharacteristicsFixValues", + "VehicleCharacteristicsFixValues", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_VehicleCharacteristicsFixValues_constr_1, &asn_PER_type_VehicleCharacteristicsFixValues_constr_1, CHOICE_constraint }, + asn_MBR_VehicleCharacteristicsFixValues_1, + 7, /* Elements count */ + &asn_SPC_VehicleCharacteristicsFixValues_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleCharacteristicsFixValuesList.c b/vcits/ivim/src/VehicleCharacteristicsFixValuesList.c new file mode 100644 index 0000000..20cdac1 --- /dev/null +++ b/vcits/ivim/src/VehicleCharacteristicsFixValuesList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleCharacteristicsFixValuesList.h" + +#include "VehicleCharacteristicsFixValues.h" +static asn_oer_constraints_t asn_OER_type_VehicleCharacteristicsFixValuesList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_VehicleCharacteristicsFixValuesList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (SIZE(1..4,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_VehicleCharacteristicsFixValuesList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_VehicleCharacteristicsFixValues, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleCharacteristicsFixValuesList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_VehicleCharacteristicsFixValuesList_specs_1 = { + sizeof(struct VehicleCharacteristicsFixValuesList), + offsetof(struct VehicleCharacteristicsFixValuesList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleCharacteristicsFixValuesList = { + "VehicleCharacteristicsFixValuesList", + "VehicleCharacteristicsFixValuesList", + &asn_OP_SEQUENCE_OF, + asn_DEF_VehicleCharacteristicsFixValuesList_tags_1, + sizeof(asn_DEF_VehicleCharacteristicsFixValuesList_tags_1) + /sizeof(asn_DEF_VehicleCharacteristicsFixValuesList_tags_1[0]), /* 1 */ + asn_DEF_VehicleCharacteristicsFixValuesList_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleCharacteristicsFixValuesList_tags_1) + /sizeof(asn_DEF_VehicleCharacteristicsFixValuesList_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleCharacteristicsFixValuesList_constr_1, &asn_PER_type_VehicleCharacteristicsFixValuesList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_VehicleCharacteristicsFixValuesList_1, + 1, /* Single element */ + &asn_SPC_VehicleCharacteristicsFixValuesList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleCharacteristicsList.c b/vcits/ivim/src/VehicleCharacteristicsList.c new file mode 100644 index 0000000..03605a7 --- /dev/null +++ b/vcits/ivim/src/VehicleCharacteristicsList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleCharacteristicsList.h" + +#include "CompleteVehicleCharacteristics.h" +static asn_oer_constraints_t asn_OER_type_VehicleCharacteristicsList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_VehicleCharacteristicsList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_VehicleCharacteristicsList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CompleteVehicleCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleCharacteristicsList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_VehicleCharacteristicsList_specs_1 = { + sizeof(struct VehicleCharacteristicsList), + offsetof(struct VehicleCharacteristicsList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleCharacteristicsList = { + "VehicleCharacteristicsList", + "VehicleCharacteristicsList", + &asn_OP_SEQUENCE_OF, + asn_DEF_VehicleCharacteristicsList_tags_1, + sizeof(asn_DEF_VehicleCharacteristicsList_tags_1) + /sizeof(asn_DEF_VehicleCharacteristicsList_tags_1[0]), /* 1 */ + asn_DEF_VehicleCharacteristicsList_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleCharacteristicsList_tags_1) + /sizeof(asn_DEF_VehicleCharacteristicsList_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleCharacteristicsList_constr_1, &asn_PER_type_VehicleCharacteristicsList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_VehicleCharacteristicsList_1, + 1, /* Single element */ + &asn_SPC_VehicleCharacteristicsList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleCharacteristicsRanges.c b/vcits/ivim/src/VehicleCharacteristicsRanges.c new file mode 100644 index 0000000..6462dfd --- /dev/null +++ b/vcits/ivim/src/VehicleCharacteristicsRanges.c @@ -0,0 +1,210 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleCharacteristicsRanges.h" + +static int +memb_numberOfAxles_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_numberOfAxles_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_memb_numberOfAxles_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_limits_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_limits_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_limits_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsRanges__limits, choice.numberOfAxles), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_numberOfAxles_constr_4, &asn_PER_memb_numberOfAxles_constr_4, memb_numberOfAxles_constraint_3 }, + 0, 0, /* No default value */ + "numberOfAxles" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsRanges__limits, choice.vehicleDimensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleDimensions, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleDimensions" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsRanges__limits, choice.vehicleWeightLimits), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleWeightLimits, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleWeightLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsRanges__limits, choice.axleWeightLimits), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AxleWeightLimits, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "axleWeightLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsRanges__limits, choice.passengerCapacity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PassengerCapacity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "passengerCapacity" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsRanges__limits, choice.exhaustEmissionValues), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExhaustEmissionValues, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "exhaustEmissionValues" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsRanges__limits, choice.dieselEmissionValues), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DieselEmissionValues, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dieselEmissionValues" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsRanges__limits, choice.soundLevel), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SoundLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "soundLevel" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_limits_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* numberOfAxles */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* vehicleDimensions */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* vehicleWeightLimits */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* axleWeightLimits */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* passengerCapacity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* exhaustEmissionValues */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dieselEmissionValues */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* soundLevel */ +}; +static asn_CHOICE_specifics_t asn_SPC_limits_specs_3 = { + sizeof(struct VehicleCharacteristicsRanges__limits), + offsetof(struct VehicleCharacteristicsRanges__limits, _asn_ctx), + offsetof(struct VehicleCharacteristicsRanges__limits, present), + sizeof(((struct VehicleCharacteristicsRanges__limits *)0)->present), + asn_MAP_limits_tag2el_3, + 8, /* Count of tags in the map */ + 0, 0, + 8 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_limits_3 = { + "limits", + "limits", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_limits_constr_3, &asn_PER_type_limits_constr_3, CHOICE_constraint }, + asn_MBR_limits_3, + 8, /* Elements count */ + &asn_SPC_limits_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_VehicleCharacteristicsRanges_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsRanges, comparisonOperator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ComparisonOperator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "comparisonOperator" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleCharacteristicsRanges, limits), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_limits_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "limits" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleCharacteristicsRanges_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleCharacteristicsRanges_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* comparisonOperator */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* limits */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleCharacteristicsRanges_specs_1 = { + sizeof(struct VehicleCharacteristicsRanges), + offsetof(struct VehicleCharacteristicsRanges, _asn_ctx), + asn_MAP_VehicleCharacteristicsRanges_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleCharacteristicsRanges = { + "VehicleCharacteristicsRanges", + "VehicleCharacteristicsRanges", + &asn_OP_SEQUENCE, + asn_DEF_VehicleCharacteristicsRanges_tags_1, + sizeof(asn_DEF_VehicleCharacteristicsRanges_tags_1) + /sizeof(asn_DEF_VehicleCharacteristicsRanges_tags_1[0]), /* 1 */ + asn_DEF_VehicleCharacteristicsRanges_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleCharacteristicsRanges_tags_1) + /sizeof(asn_DEF_VehicleCharacteristicsRanges_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleCharacteristicsRanges_1, + 2, /* Elements count */ + &asn_SPC_VehicleCharacteristicsRanges_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleCharacteristicsRangesList.c b/vcits/ivim/src/VehicleCharacteristicsRangesList.c new file mode 100644 index 0000000..2781df7 --- /dev/null +++ b/vcits/ivim/src/VehicleCharacteristicsRangesList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleCharacteristicsRangesList.h" + +#include "VehicleCharacteristicsRanges.h" +static asn_oer_constraints_t asn_OER_type_VehicleCharacteristicsRangesList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_VehicleCharacteristicsRangesList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (SIZE(1..4,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_VehicleCharacteristicsRangesList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_VehicleCharacteristicsRanges, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleCharacteristicsRangesList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_VehicleCharacteristicsRangesList_specs_1 = { + sizeof(struct VehicleCharacteristicsRangesList), + offsetof(struct VehicleCharacteristicsRangesList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleCharacteristicsRangesList = { + "VehicleCharacteristicsRangesList", + "VehicleCharacteristicsRangesList", + &asn_OP_SEQUENCE_OF, + asn_DEF_VehicleCharacteristicsRangesList_tags_1, + sizeof(asn_DEF_VehicleCharacteristicsRangesList_tags_1) + /sizeof(asn_DEF_VehicleCharacteristicsRangesList_tags_1[0]), /* 1 */ + asn_DEF_VehicleCharacteristicsRangesList_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleCharacteristicsRangesList_tags_1) + /sizeof(asn_DEF_VehicleCharacteristicsRangesList_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleCharacteristicsRangesList_constr_1, &asn_PER_type_VehicleCharacteristicsRangesList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_VehicleCharacteristicsRangesList_1, + 1, /* Single element */ + &asn_SPC_VehicleCharacteristicsRangesList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleClass.c b/vcits/ivim/src/VehicleClass.c new file mode 100644 index 0000000..2de393b --- /dev/null +++ b/vcits/ivim/src/VehicleClass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleClass.h" + +int +VehicleClass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using Int1, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleClass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleClass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleClass = { + "VehicleClass", + "VehicleClass", + &asn_OP_NativeInteger, + asn_DEF_VehicleClass_tags_1, + sizeof(asn_DEF_VehicleClass_tags_1) + /sizeof(asn_DEF_VehicleClass_tags_1[0]), /* 1 */ + asn_DEF_VehicleClass_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleClass_tags_1) + /sizeof(asn_DEF_VehicleClass_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleClass_constr_1, &asn_PER_type_VehicleClass_constr_1, VehicleClass_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/VehicleCurrentMaxTrainWeight.c b/vcits/ivim/src/VehicleCurrentMaxTrainWeight.c new file mode 100644 index 0000000..235e6c1 --- /dev/null +++ b/vcits/ivim/src/VehicleCurrentMaxTrainWeight.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleCurrentMaxTrainWeight.h" + +int +VehicleCurrentMaxTrainWeight_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using Int2, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleCurrentMaxTrainWeight_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleCurrentMaxTrainWeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleCurrentMaxTrainWeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleCurrentMaxTrainWeight = { + "VehicleCurrentMaxTrainWeight", + "VehicleCurrentMaxTrainWeight", + &asn_OP_NativeInteger, + asn_DEF_VehicleCurrentMaxTrainWeight_tags_1, + sizeof(asn_DEF_VehicleCurrentMaxTrainWeight_tags_1) + /sizeof(asn_DEF_VehicleCurrentMaxTrainWeight_tags_1[0]), /* 1 */ + asn_DEF_VehicleCurrentMaxTrainWeight_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleCurrentMaxTrainWeight_tags_1) + /sizeof(asn_DEF_VehicleCurrentMaxTrainWeight_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleCurrentMaxTrainWeight_constr_1, &asn_PER_type_VehicleCurrentMaxTrainWeight_constr_1, VehicleCurrentMaxTrainWeight_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/VehicleDimensions.c b/vcits/ivim/src/VehicleDimensions.c new file mode 100644 index 0000000..8467943 --- /dev/null +++ b/vcits/ivim/src/VehicleDimensions.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleDimensions.h" + +asn_TYPE_member_t asn_MBR_VehicleDimensions_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleDimensions, vehicleLengthOverall), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthOverall" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleDimensions, vehicleHeigthOverall), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleHeigthOverall" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleDimensions, vehicleWidthOverall), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleWidthOverall" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleDimensions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleDimensions_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthOverall */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* vehicleHeigthOverall */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* vehicleWidthOverall */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleDimensions_specs_1 = { + sizeof(struct VehicleDimensions), + offsetof(struct VehicleDimensions, _asn_ctx), + asn_MAP_VehicleDimensions_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleDimensions = { + "VehicleDimensions", + "VehicleDimensions", + &asn_OP_SEQUENCE, + asn_DEF_VehicleDimensions_tags_1, + sizeof(asn_DEF_VehicleDimensions_tags_1) + /sizeof(asn_DEF_VehicleDimensions_tags_1[0]), /* 1 */ + asn_DEF_VehicleDimensions_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleDimensions_tags_1) + /sizeof(asn_DEF_VehicleDimensions_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleDimensions_1, + 3, /* Elements count */ + &asn_SPC_VehicleDimensions_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleHeight.c b/vcits/ivim/src/VehicleHeight.c new file mode 100644 index 0000000..4c3319b --- /dev/null +++ b/vcits/ivim/src/VehicleHeight.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleHeight.h" + +int +VehicleHeight_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleHeight = { + "VehicleHeight", + "VehicleHeight", + &asn_OP_NativeInteger, + asn_DEF_VehicleHeight_tags_1, + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + asn_DEF_VehicleHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleHeight_constr_1, &asn_PER_type_VehicleHeight_constr_1, VehicleHeight_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/VehicleID.c b/vcits/ivim/src/VehicleID.c new file mode 100644 index 0000000..5388d6e --- /dev/null +++ b/vcits/ivim/src/VehicleID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleID.h" + +static asn_oer_constraints_t asn_OER_type_VehicleID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_VehicleID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.entityID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TemporaryID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "entityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.stationID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* entityID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* stationID */ +}; +asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1 = { + sizeof(struct VehicleID), + offsetof(struct VehicleID, _asn_ctx), + offsetof(struct VehicleID, present), + sizeof(((struct VehicleID *)0)->present), + asn_MAP_VehicleID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleID = { + "VehicleID", + "VehicleID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_VehicleID_constr_1, &asn_PER_type_VehicleID_constr_1, CHOICE_constraint }, + asn_MBR_VehicleID_1, + 2, /* Elements count */ + &asn_SPC_VehicleID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleIdentification.c b/vcits/ivim/src/VehicleIdentification.c new file mode 100644 index 0000000..26f90d0 --- /dev/null +++ b/vcits/ivim/src/VehicleIdentification.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleIdentification.h" + +static asn_TYPE_member_t asn_MBR_VehicleIdentification_1[] = { + { ATF_POINTER, 2, offsetof(struct VehicleIdentification, wMInumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WMInumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wMInumber" + }, + { ATF_POINTER, 1, offsetof(struct VehicleIdentification, vDS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VDS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vDS" + }, +}; +static const int asn_MAP_VehicleIdentification_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_VehicleIdentification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleIdentification_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wMInumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vDS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleIdentification_specs_1 = { + sizeof(struct VehicleIdentification), + offsetof(struct VehicleIdentification, _asn_ctx), + asn_MAP_VehicleIdentification_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_VehicleIdentification_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleIdentification = { + "VehicleIdentification", + "VehicleIdentification", + &asn_OP_SEQUENCE, + asn_DEF_VehicleIdentification_tags_1, + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + asn_DEF_VehicleIdentification_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleIdentification_1, + 2, /* Elements count */ + &asn_SPC_VehicleIdentification_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleIdentificationNumber.c b/vcits/ivim/src/VehicleIdentificationNumber.c new file mode 100644 index 0000000..629434e --- /dev/null +++ b/vcits/ivim/src/VehicleIdentificationNumber.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleIdentificationNumber.h" + +/* + * This type is implemented using CS5, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_VehicleIdentificationNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleIdentificationNumber = { + "VehicleIdentificationNumber", + "VehicleIdentificationNumber", + &asn_OP_SEQUENCE, + asn_DEF_VehicleIdentificationNumber_tags_1, + sizeof(asn_DEF_VehicleIdentificationNumber_tags_1) + /sizeof(asn_DEF_VehicleIdentificationNumber_tags_1[0]), /* 1 */ + asn_DEF_VehicleIdentificationNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleIdentificationNumber_tags_1) + /sizeof(asn_DEF_VehicleIdentificationNumber_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS5_1, + 2, /* Elements count */ + &asn_SPC_CS5_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleLength.c b/vcits/ivim/src/VehicleLength.c new file mode 100644 index 0000000..a3ede80 --- /dev/null +++ b/vcits/ivim/src/VehicleLength.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleLength.h" + +static asn_TYPE_member_t asn_MBR_VehicleLength_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthConfidenceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthConfidenceIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthConfidenceIndication" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleLength_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vehicleLengthConfidenceIndication */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleLength_specs_1 = { + sizeof(struct VehicleLength), + offsetof(struct VehicleLength, _asn_ctx), + asn_MAP_VehicleLength_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_SEQUENCE, + asn_DEF_VehicleLength_tags_1, + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleLength_1, + 2, /* Elements count */ + &asn_SPC_VehicleLength_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleLengthConfidenceIndication.c b/vcits/ivim/src/VehicleLengthConfidenceIndication.c new file mode 100644 index 0000000..454336f --- /dev/null +++ b/vcits/ivim/src/VehicleLengthConfidenceIndication.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleLengthConfidenceIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleLengthConfidenceIndication_value2enum_1[] = { + { 0, 16, "noTrailerPresent" }, + { 1, 29, "trailerPresentWithKnownLength" }, + { 2, 31, "trailerPresentWithUnknownLength" }, + { 3, 24, "trailerPresenceIsUnknown" }, + { 4, 11, "unavailable" } +}; +static const unsigned int asn_MAP_VehicleLengthConfidenceIndication_enum2value_1[] = { + 0, /* noTrailerPresent(0) */ + 3, /* trailerPresenceIsUnknown(3) */ + 1, /* trailerPresentWithKnownLength(1) */ + 2, /* trailerPresentWithUnknownLength(2) */ + 4 /* unavailable(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1 = { + asn_MAP_VehicleLengthConfidenceIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleLengthConfidenceIndication_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthConfidenceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication = { + "VehicleLengthConfidenceIndication", + "VehicleLengthConfidenceIndication", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleLengthConfidenceIndication_tags_1, + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthConfidenceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthConfidenceIndication_constr_1, &asn_PER_type_VehicleLengthConfidenceIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleLengthConfidenceIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleLengthValue.c b/vcits/ivim/src/VehicleLengthValue.c new file mode 100644 index 0000000..c37eb60 --- /dev/null +++ b/vcits/ivim/src/VehicleLengthValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleLengthValue.h" + +int +VehicleLengthValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (1..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue = { + "VehicleLengthValue", + "VehicleLengthValue", + &asn_OP_NativeInteger, + asn_DEF_VehicleLengthValue_tags_1, + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthValue_constr_1, &asn_PER_type_VehicleLengthValue_constr_1, VehicleLengthValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/VehicleLicencePlateNumber.c b/vcits/ivim/src/VehicleLicencePlateNumber.c new file mode 100644 index 0000000..6657584 --- /dev/null +++ b/vcits/ivim/src/VehicleLicencePlateNumber.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleLicencePlateNumber.h" + +/* + * This type is implemented using LPN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_VehicleLicencePlateNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLicencePlateNumber = { + "VehicleLicencePlateNumber", + "VehicleLicencePlateNumber", + &asn_OP_SEQUENCE, + asn_DEF_VehicleLicencePlateNumber_tags_1, + sizeof(asn_DEF_VehicleLicencePlateNumber_tags_1) + /sizeof(asn_DEF_VehicleLicencePlateNumber_tags_1[0]), /* 1 */ + asn_DEF_VehicleLicencePlateNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLicencePlateNumber_tags_1) + /sizeof(asn_DEF_VehicleLicencePlateNumber_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LPN_1, + 3, /* Elements count */ + &asn_SPC_LPN_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleMass.c b/vcits/ivim/src/VehicleMass.c new file mode 100644 index 0000000..ccef465 --- /dev/null +++ b/vcits/ivim/src/VehicleMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleMass.h" + +int +VehicleMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1024)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleMass_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1024) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_VehicleMass_tags_1, + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleMass_constr_1, &asn_PER_type_VehicleMass_constr_1, VehicleMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/VehicleRole.c b/vcits/ivim/src/VehicleRole.c new file mode 100644 index 0000000..eb20b03 --- /dev/null +++ b/vcits/ivim/src/VehicleRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleRole_value2enum_1[] = { + { 0, 7, "default" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 6, "rescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 11, "agriculture" }, + { 9, 10, "commercial" }, + { 10, 8, "military" }, + { 11, 12, "roadOperator" }, + { 12, 4, "taxi" }, + { 13, 9, "reserved1" }, + { 14, 9, "reserved2" }, + { 15, 9, "reserved3" } +}; +static const unsigned int asn_MAP_VehicleRole_enum2value_1[] = { + 8, /* agriculture(8) */ + 9, /* commercial(9) */ + 3, /* dangerousGoods(3) */ + 0, /* default(0) */ + 6, /* emergency(6) */ + 10, /* military(10) */ + 1, /* publicTransport(1) */ + 5, /* rescue(5) */ + 13, /* reserved1(13) */ + 14, /* reserved2(14) */ + 15, /* reserved3(15) */ + 11, /* roadOperator(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 2, /* specialTransport(2) */ + 12 /* taxi(12) */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleRole_specs_1 = { + asn_MAP_VehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleRole = { + "VehicleRole", + "VehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleRole_tags_1, + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + asn_DEF_VehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleRole_constr_1, &asn_PER_type_VehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleSpecificCharacteristics.c b/vcits/ivim/src/VehicleSpecificCharacteristics.c new file mode 100644 index 0000000..7bc8132 --- /dev/null +++ b/vcits/ivim/src/VehicleSpecificCharacteristics.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleSpecificCharacteristics.h" + +static asn_TYPE_member_t asn_MBR_VehicleSpecificCharacteristics_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleSpecificCharacteristics, environmentalCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EnvironmentalCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "environmentalCharacteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleSpecificCharacteristics, engineCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EngineCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "engineCharacteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleSpecificCharacteristics, descriptiveCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "descriptiveCharacteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleSpecificCharacteristics, futureCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FutureCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "futureCharacteristics" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleSpecificCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleSpecificCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* environmentalCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* engineCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* descriptiveCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* futureCharacteristics */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleSpecificCharacteristics_specs_1 = { + sizeof(struct VehicleSpecificCharacteristics), + offsetof(struct VehicleSpecificCharacteristics, _asn_ctx), + asn_MAP_VehicleSpecificCharacteristics_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleSpecificCharacteristics = { + "VehicleSpecificCharacteristics", + "VehicleSpecificCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_VehicleSpecificCharacteristics_tags_1, + sizeof(asn_DEF_VehicleSpecificCharacteristics_tags_1) + /sizeof(asn_DEF_VehicleSpecificCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_VehicleSpecificCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleSpecificCharacteristics_tags_1) + /sizeof(asn_DEF_VehicleSpecificCharacteristics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleSpecificCharacteristics_1, + 4, /* Elements count */ + &asn_SPC_VehicleSpecificCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleTotalDistance.c b/vcits/ivim/src/VehicleTotalDistance.c new file mode 100644 index 0000000..4ecd5c4 --- /dev/null +++ b/vcits/ivim/src/VehicleTotalDistance.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleTotalDistance.h" + +int +VehicleTotalDistance_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using Int4, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleTotalDistance_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleTotalDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleTotalDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleTotalDistance = { + "VehicleTotalDistance", + "VehicleTotalDistance", + &asn_OP_NativeInteger, + asn_DEF_VehicleTotalDistance_tags_1, + sizeof(asn_DEF_VehicleTotalDistance_tags_1) + /sizeof(asn_DEF_VehicleTotalDistance_tags_1[0]), /* 1 */ + asn_DEF_VehicleTotalDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleTotalDistance_tags_1) + /sizeof(asn_DEF_VehicleTotalDistance_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleTotalDistance_constr_1, &asn_PER_type_VehicleTotalDistance_constr_1, VehicleTotalDistance_constraint }, + 0, 0, /* No members */ + &asn_SPC_Int4_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleType.c b/vcits/ivim/src/VehicleType.c new file mode 100644 index 0000000..7b88341 --- /dev/null +++ b/vcits/ivim/src/VehicleType.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 7, "unknown" }, + { 2, 7, "special" }, + { 3, 4, "moto" }, + { 4, 3, "car" }, + { 5, 8, "carOther" }, + { 6, 3, "bus" }, + { 7, 8, "axleCnt2" }, + { 8, 8, "axleCnt3" }, + { 9, 8, "axleCnt4" }, + { 10, 15, "axleCnt4Trailer" }, + { 11, 15, "axleCnt5Trailer" }, + { 12, 15, "axleCnt6Trailer" }, + { 13, 20, "axleCnt5MultiTrailer" }, + { 14, 20, "axleCnt6MultiTrailer" }, + { 15, 20, "axleCnt7MultiTrailer" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_VehicleType_enum2value_1[] = { + 7, /* axleCnt2(7) */ + 8, /* axleCnt3(8) */ + 9, /* axleCnt4(9) */ + 10, /* axleCnt4Trailer(10) */ + 13, /* axleCnt5MultiTrailer(13) */ + 11, /* axleCnt5Trailer(11) */ + 14, /* axleCnt6MultiTrailer(14) */ + 12, /* axleCnt6Trailer(12) */ + 15, /* axleCnt7MultiTrailer(15) */ + 6, /* bus(6) */ + 4, /* car(4) */ + 5, /* carOther(5) */ + 3, /* moto(3) */ + 0, /* none(0) */ + 2, /* special(2) */ + 1 /* unknown(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1 = { + asn_MAP_VehicleType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleType_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 17, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleType = { + "VehicleType", + "VehicleType", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleType_tags_1, + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + asn_DEF_VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleType_constr_1, &asn_PER_type_VehicleType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleWeightLaden.c b/vcits/ivim/src/VehicleWeightLaden.c new file mode 100644 index 0000000..eb5e391 --- /dev/null +++ b/vcits/ivim/src/VehicleWeightLaden.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleWeightLaden.h" + +int +VehicleWeightLaden_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using Int2, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleWeightLaden_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleWeightLaden_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleWeightLaden_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleWeightLaden = { + "VehicleWeightLaden", + "VehicleWeightLaden", + &asn_OP_NativeInteger, + asn_DEF_VehicleWeightLaden_tags_1, + sizeof(asn_DEF_VehicleWeightLaden_tags_1) + /sizeof(asn_DEF_VehicleWeightLaden_tags_1[0]), /* 1 */ + asn_DEF_VehicleWeightLaden_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleWeightLaden_tags_1) + /sizeof(asn_DEF_VehicleWeightLaden_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleWeightLaden_constr_1, &asn_PER_type_VehicleWeightLaden_constr_1, VehicleWeightLaden_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/VehicleWeightLimits.c b/vcits/ivim/src/VehicleWeightLimits.c new file mode 100644 index 0000000..32bd386 --- /dev/null +++ b/vcits/ivim/src/VehicleWeightLimits.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleWeightLimits.h" + +asn_TYPE_member_t asn_MBR_VehicleWeightLimits_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleWeightLimits, vehicleMaxLadenWeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleMaxLadenWeight" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleWeightLimits, vehicleTrainMaximumWeight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleTrainMaximumWeight" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleWeightLimits, vehicleWeightUnladen), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Int2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleWeightUnladen" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleWeightLimits_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleWeightLimits_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleMaxLadenWeight */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* vehicleTrainMaximumWeight */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* vehicleWeightUnladen */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleWeightLimits_specs_1 = { + sizeof(struct VehicleWeightLimits), + offsetof(struct VehicleWeightLimits, _asn_ctx), + asn_MAP_VehicleWeightLimits_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleWeightLimits = { + "VehicleWeightLimits", + "VehicleWeightLimits", + &asn_OP_SEQUENCE, + asn_DEF_VehicleWeightLimits_tags_1, + sizeof(asn_DEF_VehicleWeightLimits_tags_1) + /sizeof(asn_DEF_VehicleWeightLimits_tags_1[0]), /* 1 */ + asn_DEF_VehicleWeightLimits_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleWeightLimits_tags_1) + /sizeof(asn_DEF_VehicleWeightLimits_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleWeightLimits_1, + 3, /* Elements count */ + &asn_SPC_VehicleWeightLimits_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VehicleWidth.c b/vcits/ivim/src/VehicleWidth.c new file mode 100644 index 0000000..7ae8b0a --- /dev/null +++ b/vcits/ivim/src/VehicleWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VehicleWidth.h" + +int +VehicleWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 62)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..62) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 62 } /* (1..62) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_VehicleWidth_tags_1, + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleWidth_constr_1, &asn_PER_type_VehicleWidth_constr_1, VehicleWidth_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Velocity.c b/vcits/ivim/src/Velocity.c new file mode 100644 index 0000000..73e84e0 --- /dev/null +++ b/vcits/ivim/src/Velocity.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Velocity.h" + +int +Velocity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 8191)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Velocity_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..8191) */, + -1}; +asn_per_constraints_t asn_PER_type_Velocity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 8191 } /* (0..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Velocity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Velocity = { + "Velocity", + "Velocity", + &asn_OP_NativeInteger, + asn_DEF_Velocity_tags_1, + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + asn_DEF_Velocity_tags_1, /* Same as above */ + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + { &asn_OER_type_Velocity_constr_1, &asn_PER_type_Velocity_constr_1, Velocity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/VerticalAcceleration.c b/vcits/ivim/src/VerticalAcceleration.c new file mode 100644 index 0000000..d8da172 --- /dev/null +++ b/vcits/ivim/src/VerticalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VerticalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_VerticalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VerticalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* verticalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* verticalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VerticalAcceleration_specs_1 = { + sizeof(struct VerticalAcceleration), + offsetof(struct VerticalAcceleration, _asn_ctx), + asn_MAP_VerticalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_VerticalAcceleration_tags_1, + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VerticalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_VerticalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/VerticalAccelerationValue.c b/vcits/ivim/src/VerticalAccelerationValue.c new file mode 100644 index 0000000..42d84b8 --- /dev/null +++ b/vcits/ivim/src/VerticalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "VerticalAccelerationValue.h" + +int +VerticalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VerticalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue = { + "VerticalAccelerationValue", + "VerticalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_VerticalAccelerationValue_tags_1, + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_VerticalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VerticalAccelerationValue_constr_1, &asn_PER_type_VerticalAccelerationValue_constr_1, VerticalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/WMInumber.c b/vcits/ivim/src/WMInumber.c new file mode 100644 index 0000000..96c036f --- /dev/null +++ b/vcits/ivim/src/WMInumber.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "WMInumber.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +WMInumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 3) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WMInumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +asn_per_constraints_t asn_PER_type_WMInumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_WMInumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WMInumber = { + "WMInumber", + "WMInumber", + &asn_OP_IA5String, + asn_DEF_WMInumber_tags_1, + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + asn_DEF_WMInumber_tags_1, /* Same as above */ + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + { &asn_OER_type_WMInumber_constr_1, &asn_PER_type_WMInumber_constr_1, WMInumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/WaitOnStopline.c b/vcits/ivim/src/WaitOnStopline.c new file mode 100644 index 0000000..0fbc81a --- /dev/null +++ b/vcits/ivim/src/WaitOnStopline.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "WaitOnStopline.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_WaitOnStopline_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WaitOnStopline = { + "WaitOnStopline", + "WaitOnStopline", + &asn_OP_BOOLEAN, + asn_DEF_WaitOnStopline_tags_1, + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + asn_DEF_WaitOnStopline_tags_1, /* Same as above */ + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/WearLevel.c b/vcits/ivim/src/WearLevel.c new file mode 100644 index 0000000..5a05336 --- /dev/null +++ b/vcits/ivim/src/WearLevel.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "WearLevel.h" + +int +WearLevel_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WearLevel_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_WearLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WearLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WearLevel = { + "WearLevel", + "WearLevel", + &asn_OP_NativeInteger, + asn_DEF_WearLevel_tags_1, + sizeof(asn_DEF_WearLevel_tags_1) + /sizeof(asn_DEF_WearLevel_tags_1[0]), /* 1 */ + asn_DEF_WearLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_WearLevel_tags_1) + /sizeof(asn_DEF_WearLevel_tags_1[0]), /* 1 */ + { &asn_OER_type_WearLevel_constr_1, &asn_PER_type_WearLevel_constr_1, WearLevel_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Weight.c b/vcits/ivim/src/Weight.c new file mode 100644 index 0000000..4f409cc --- /dev/null +++ b/vcits/ivim/src/Weight.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO14823-missing.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Weight.h" + +static int +memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 16384)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_unit_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 10 && value <= 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_value_constr_2 CC_NOTUSED = { + { 2, 1 } /* (1..16384) */, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (1..16384) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_unit_constr_3 CC_NOTUSED = { + { 1, 1 } /* (10..12) */, + -1}; +static asn_per_constraints_t asn_PER_memb_unit_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 10, 12 } /* (10..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_Weight_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Weight, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_value_constr_2, &asn_PER_memb_value_constr_2, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct Weight, unit), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Code_Units, + 0, + { &asn_OER_memb_unit_constr_3, &asn_PER_memb_unit_constr_3, memb_unit_constraint_1 }, + 0, 0, /* No default value */ + "unit" + }, +}; +static const ber_tlv_tag_t asn_DEF_Weight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Weight_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* unit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Weight_specs_1 = { + sizeof(struct Weight), + offsetof(struct Weight, _asn_ctx), + asn_MAP_Weight_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Weight = { + "Weight", + "Weight", + &asn_OP_SEQUENCE, + asn_DEF_Weight_tags_1, + sizeof(asn_DEF_Weight_tags_1) + /sizeof(asn_DEF_Weight_tags_1[0]), /* 1 */ + asn_DEF_Weight_tags_1, /* Same as above */ + sizeof(asn_DEF_Weight_tags_1) + /sizeof(asn_DEF_Weight_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Weight_1, + 2, /* Elements count */ + &asn_SPC_Weight_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/WheelBaseVehicle.c b/vcits/ivim/src/WheelBaseVehicle.c new file mode 100644 index 0000000..438601c --- /dev/null +++ b/vcits/ivim/src/WheelBaseVehicle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "WheelBaseVehicle.h" + +int +WheelBaseVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WheelBaseVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle = { + "WheelBaseVehicle", + "WheelBaseVehicle", + &asn_OP_NativeInteger, + asn_DEF_WheelBaseVehicle_tags_1, + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + asn_DEF_WheelBaseVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_WheelBaseVehicle_constr_1, &asn_PER_type_WheelBaseVehicle_constr_1, WheelBaseVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/WrongWayDrivingSubCauseCode.c b/vcits/ivim/src/WrongWayDrivingSubCauseCode.c new file mode 100644 index 0000000..473ab98 --- /dev/null +++ b/vcits/ivim/src/WrongWayDrivingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "WrongWayDrivingSubCauseCode.h" + +int +WrongWayDrivingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WrongWayDrivingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode = { + "WrongWayDrivingSubCauseCode", + "WrongWayDrivingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_WrongWayDrivingSubCauseCode_constr_1, &asn_PER_type_WrongWayDrivingSubCauseCode_constr_1, WrongWayDrivingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/YawRate.c b/vcits/ivim/src/YawRate.c new file mode 100644 index 0000000..d86ebd9 --- /dev/null +++ b/vcits/ivim/src/YawRate.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "YawRate.h" + +static asn_TYPE_member_t asn_MBR_YawRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_YawRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yawRateValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* yawRateConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_YawRate_specs_1 = { + sizeof(struct YawRate), + offsetof(struct YawRate, _asn_ctx), + asn_MAP_YawRate_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_YawRate = { + "YawRate", + "YawRate", + &asn_OP_SEQUENCE, + asn_DEF_YawRate_tags_1, + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + asn_DEF_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_YawRate_1, + 2, /* Elements count */ + &asn_SPC_YawRate_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/YawRateConfidence.c b/vcits/ivim/src/YawRateConfidence.c new file mode 100644 index 0000000..b9a4543 --- /dev/null +++ b/vcits/ivim/src/YawRateConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "YawRateConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_YawRateConfidence_value2enum_1[] = { + { 0, 13, "degSec-000-01" }, + { 1, 13, "degSec-000-05" }, + { 2, 13, "degSec-000-10" }, + { 3, 13, "degSec-001-00" }, + { 4, 13, "degSec-005-00" }, + { 5, 13, "degSec-010-00" }, + { 6, 13, "degSec-100-00" }, + { 7, 10, "outOfRange" }, + { 8, 11, "unavailable" } +}; +static const unsigned int asn_MAP_YawRateConfidence_enum2value_1[] = { + 0, /* degSec-000-01(0) */ + 1, /* degSec-000-05(1) */ + 2, /* degSec-000-10(2) */ + 3, /* degSec-001-00(3) */ + 4, /* degSec-005-00(4) */ + 5, /* degSec-010-00(5) */ + 6, /* degSec-100-00(6) */ + 7, /* outOfRange(7) */ + 8 /* unavailable(8) */ +}; +const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1 = { + asn_MAP_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_YawRateConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 9, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_YawRateConfidence_tags_1, + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateConfidence_constr_1, &asn_PER_type_YawRateConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/YawRateValue.c b/vcits/ivim/src/YawRateValue.c new file mode 100644 index 0000000..81f78a3 --- /dev/null +++ b/vcits/ivim/src/YawRateValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "YawRateValue.h" + +int +YawRateValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32766 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32766..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_YawRateValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32766, 32767 } /* (-32766..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_YawRateValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateValue = { + "YawRateValue", + "YawRateValue", + &asn_OP_NativeInteger, + asn_DEF_YawRateValue_tags_1, + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + asn_DEF_YawRateValue_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateValue_constr_1, &asn_PER_type_YawRateValue_constr_1, YawRateValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Zid.c b/vcits/ivim/src/Zid.c new file mode 100644 index 0000000..8dd4a1f --- /dev/null +++ b/vcits/ivim/src/Zid.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Zid.h" + +int +Zid_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 32)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Zid_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_Zid_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 1, 32 } /* (1..32,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Zid_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Zid = { + "Zid", + "Zid", + &asn_OP_NativeInteger, + asn_DEF_Zid_tags_1, + sizeof(asn_DEF_Zid_tags_1) + /sizeof(asn_DEF_Zid_tags_1[0]), /* 1 */ + asn_DEF_Zid_tags_1, /* Same as above */ + sizeof(asn_DEF_Zid_tags_1) + /sizeof(asn_DEF_Zid_tags_1[0]), /* 1 */ + { &asn_OER_type_Zid_constr_1, &asn_PER_type_Zid_constr_1, Zid_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ivim/src/Zone.c b/vcits/ivim/src/Zone.c new file mode 100644 index 0000000..b05c260 --- /dev/null +++ b/vcits/ivim/src/Zone.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "Zone.h" + +static asn_oer_constraints_t asn_OER_type_Zone_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_Zone_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_Zone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Zone, choice.segment), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Segment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "segment" + }, + { ATF_NOFLAGS, 0, offsetof(struct Zone, choice.area), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_PolygonalLine, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "area" + }, + { ATF_NOFLAGS, 0, offsetof(struct Zone, choice.computedSegment), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ComputedSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "computedSegment" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Zone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* segment */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* area */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* computedSegment */ +}; +asn_CHOICE_specifics_t asn_SPC_Zone_specs_1 = { + sizeof(struct Zone), + offsetof(struct Zone, _asn_ctx), + offsetof(struct Zone, present), + sizeof(((struct Zone *)0)->present), + asn_MAP_Zone_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Zone = { + "Zone", + "Zone", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_Zone_constr_1, &asn_PER_type_Zone_constr_1, CHOICE_constraint }, + asn_MBR_Zone_1, + 3, /* Elements count */ + &asn_SPC_Zone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ZoneIds.c b/vcits/ivim/src/ZoneIds.c new file mode 100644 index 0000000..c7128c2 --- /dev/null +++ b/vcits/ivim/src/ZoneIds.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/tmp/gen_env/build/asn1/ISO19321IVIv2.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ZoneIds.h" + +static asn_oer_constraints_t asn_OER_type_ZoneIds_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_ZoneIds_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ZoneIds_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_Zid, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ZoneIds_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ZoneIds_specs_1 = { + sizeof(struct ZoneIds), + offsetof(struct ZoneIds, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ZoneIds = { + "ZoneIds", + "ZoneIds", + &asn_OP_SEQUENCE_OF, + asn_DEF_ZoneIds_tags_1, + sizeof(asn_DEF_ZoneIds_tags_1) + /sizeof(asn_DEF_ZoneIds_tags_1[0]), /* 1 */ + asn_DEF_ZoneIds_tags_1, /* Same as above */ + sizeof(asn_DEF_ZoneIds_tags_1) + /sizeof(asn_DEF_ZoneIds_tags_1[0]), /* 1 */ + { &asn_OER_type_ZoneIds_constr_1, &asn_PER_type_ZoneIds_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ZoneIds_1, + 1, /* Single element */ + &asn_SPC_ZoneIds_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ivim/src/ZoneLength.c b/vcits/ivim/src/ZoneLength.c new file mode 100644 index 0000000..679f822 --- /dev/null +++ b/vcits/ivim/src/ZoneLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ivim -R -no-gen-example -fcompound-names -fno-include-deps -pdu=IVIM` + */ + +#include "ZoneLength.h" + +int +ZoneLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ZoneLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..10000) */, + -1}; +asn_per_constraints_t asn_PER_type_ZoneLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10000 } /* (0..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ZoneLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ZoneLength = { + "ZoneLength", + "ZoneLength", + &asn_OP_NativeInteger, + asn_DEF_ZoneLength_tags_1, + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + asn_DEF_ZoneLength_tags_1, /* Same as above */ + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + { &asn_OER_type_ZoneLength_constr_1, &asn_PER_type_ZoneLength_constr_1, ZoneLength_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/AccelerationConfidence.h b/vcits/mapem/AccelerationConfidence.h new file mode 100644 index 0000000..11358cc --- /dev/null +++ b/vcits/mapem/AccelerationConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AccelerationConfidence_H_ +#define _AccelerationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationConfidence { + AccelerationConfidence_pointOneMeterPerSecSquared = 1, + AccelerationConfidence_outOfRange = 101, + AccelerationConfidence_unavailable = 102 +} e_AccelerationConfidence; + +/* AccelerationConfidence */ +typedef long AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence; +asn_struct_free_f AccelerationConfidence_free; +asn_struct_print_f AccelerationConfidence_print; +asn_constr_check_f AccelerationConfidence_constraint; +ber_type_decoder_f AccelerationConfidence_decode_ber; +der_type_encoder_f AccelerationConfidence_encode_der; +xer_type_decoder_f AccelerationConfidence_decode_xer; +xer_type_encoder_f AccelerationConfidence_encode_xer; +oer_type_decoder_f AccelerationConfidence_decode_oer; +oer_type_encoder_f AccelerationConfidence_encode_oer; +per_type_decoder_f AccelerationConfidence_decode_uper; +per_type_encoder_f AccelerationConfidence_encode_uper; +per_type_decoder_f AccelerationConfidence_decode_aper; +per_type_encoder_f AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationConfidence_H_ */ +#include diff --git a/vcits/mapem/AccelerationControl.h b/vcits/mapem/AccelerationControl.h new file mode 100644 index 0000000..b584f36 --- /dev/null +++ b/vcits/mapem/AccelerationControl.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AccelerationControl_H_ +#define _AccelerationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationControl { + AccelerationControl_brakePedalEngaged = 0, + AccelerationControl_gasPedalEngaged = 1, + AccelerationControl_emergencyBrakeEngaged = 2, + AccelerationControl_collisionWarningEngaged = 3, + AccelerationControl_accEngaged = 4, + AccelerationControl_cruiseControlEngaged = 5, + AccelerationControl_speedLimiterEngaged = 6 +} e_AccelerationControl; + +/* AccelerationControl */ +typedef BIT_STRING_t AccelerationControl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccelerationControl; +asn_struct_free_f AccelerationControl_free; +asn_struct_print_f AccelerationControl_print; +asn_constr_check_f AccelerationControl_constraint; +ber_type_decoder_f AccelerationControl_decode_ber; +der_type_encoder_f AccelerationControl_encode_der; +xer_type_decoder_f AccelerationControl_decode_xer; +xer_type_encoder_f AccelerationControl_encode_xer; +oer_type_decoder_f AccelerationControl_decode_oer; +oer_type_encoder_f AccelerationControl_encode_oer; +per_type_decoder_f AccelerationControl_decode_uper; +per_type_encoder_f AccelerationControl_encode_uper; +per_type_decoder_f AccelerationControl_decode_aper; +per_type_encoder_f AccelerationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationControl_H_ */ +#include diff --git a/vcits/mapem/AccidentSubCauseCode.h b/vcits/mapem/AccidentSubCauseCode.h new file mode 100644 index 0000000..1c441cc --- /dev/null +++ b/vcits/mapem/AccidentSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AccidentSubCauseCode_H_ +#define _AccidentSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccidentSubCauseCode { + AccidentSubCauseCode_unavailable = 0, + AccidentSubCauseCode_multiVehicleAccident = 1, + AccidentSubCauseCode_heavyAccident = 2, + AccidentSubCauseCode_accidentInvolvingLorry = 3, + AccidentSubCauseCode_accidentInvolvingBus = 4, + AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5, + AccidentSubCauseCode_accidentOnOppositeLane = 6, + AccidentSubCauseCode_unsecuredAccident = 7, + AccidentSubCauseCode_assistanceRequested = 8 +} e_AccidentSubCauseCode; + +/* AccidentSubCauseCode */ +typedef long AccidentSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode; +asn_struct_free_f AccidentSubCauseCode_free; +asn_struct_print_f AccidentSubCauseCode_print; +asn_constr_check_f AccidentSubCauseCode_constraint; +ber_type_decoder_f AccidentSubCauseCode_decode_ber; +der_type_encoder_f AccidentSubCauseCode_encode_der; +xer_type_decoder_f AccidentSubCauseCode_decode_xer; +xer_type_encoder_f AccidentSubCauseCode_encode_xer; +oer_type_decoder_f AccidentSubCauseCode_decode_oer; +oer_type_encoder_f AccidentSubCauseCode_encode_oer; +per_type_decoder_f AccidentSubCauseCode_decode_uper; +per_type_encoder_f AccidentSubCauseCode_encode_uper; +per_type_decoder_f AccidentSubCauseCode_decode_aper; +per_type_encoder_f AccidentSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccidentSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/ActionID.h b/vcits/mapem/ActionID.h new file mode 100644 index 0000000..5849bad --- /dev/null +++ b/vcits/mapem/ActionID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ActionID_H_ +#define _ActionID_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "SequenceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ActionID */ +typedef struct ActionID { + StationID_t originatingStationID; + SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ActionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ActionID; + +#ifdef __cplusplus +} +#endif + +#endif /* _ActionID_H_ */ +#include diff --git a/vcits/mapem/AdverseWeatherCondition-AdhesionSubCauseCode.h b/vcits/mapem/AdverseWeatherCondition-AdhesionSubCauseCode.h new file mode 100644 index 0000000..c26acda --- /dev/null +++ b/vcits/mapem/AdverseWeatherCondition-AdhesionSubCauseCode.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AdverseWeatherCondition_AdhesionSubCauseCode_H_ +#define _AdverseWeatherCondition_AdhesionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_AdhesionSubCauseCode { + AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1, + AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2, + AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3, + AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4, + AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5, + AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6, + AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7, + AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8, + AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9, + AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10 +} e_AdverseWeatherCondition_AdhesionSubCauseCode; + +/* AdverseWeatherCondition-AdhesionSubCauseCode */ +typedef long AdverseWeatherCondition_AdhesionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_AdhesionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_AdhesionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_AdhesionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_AdhesionSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h b/vcits/mapem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 0000000..08c717a --- /dev/null +++ b/vcits/mapem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ +#define _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode { + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6 +} e_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; + +/* AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */ +typedef long AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/AdverseWeatherCondition-PrecipitationSubCauseCode.h b/vcits/mapem/AdverseWeatherCondition-PrecipitationSubCauseCode.h new file mode 100644 index 0000000..a153f40 --- /dev/null +++ b/vcits/mapem/AdverseWeatherCondition-PrecipitationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ +#define _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_PrecipitationSubCauseCode { + AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2, + AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3 +} e_AdverseWeatherCondition_PrecipitationSubCauseCode; + +/* AdverseWeatherCondition-PrecipitationSubCauseCode */ +typedef long AdverseWeatherCondition_PrecipitationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_PrecipitationSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_PrecipitationSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_PrecipitationSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/AdverseWeatherCondition-VisibilitySubCauseCode.h b/vcits/mapem/AdverseWeatherCondition-VisibilitySubCauseCode.h new file mode 100644 index 0000000..acc078f --- /dev/null +++ b/vcits/mapem/AdverseWeatherCondition-VisibilitySubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AdverseWeatherCondition_VisibilitySubCauseCode_H_ +#define _AdverseWeatherCondition_VisibilitySubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_VisibilitySubCauseCode { + AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0, + AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1, + AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2, + AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5, + AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6, + AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7, + AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8 +} e_AdverseWeatherCondition_VisibilitySubCauseCode; + +/* AdverseWeatherCondition-VisibilitySubCauseCode */ +typedef long AdverseWeatherCondition_VisibilitySubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode; +asn_struct_free_f AdverseWeatherCondition_VisibilitySubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_VisibilitySubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_VisibilitySubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_VisibilitySubCauseCode_H_ */ +#include diff --git a/vcits/mapem/AdvisorySpeed.h b/vcits/mapem/AdvisorySpeed.h new file mode 100644 index 0000000..b537908 --- /dev/null +++ b/vcits/mapem/AdvisorySpeed.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AdvisorySpeed_H_ +#define _AdvisorySpeed_H_ + + +#include + +/* Including external dependencies */ +#include "AdvisorySpeedType.h" +#include "SpeedAdvice.h" +#include "SpeedConfidenceDSRC.h" +#include "ZoneLength.h" +#include "RestrictionClassID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_AdvisorySpeed; + +/* AdvisorySpeed */ +typedef struct AdvisorySpeed { + AdvisorySpeedType_t type; + SpeedAdvice_t *speed; /* OPTIONAL */ + SpeedConfidenceDSRC_t *confidence; /* OPTIONAL */ + ZoneLength_t *distance; /* OPTIONAL */ + RestrictionClassID_t *Class; /* OPTIONAL */ + struct AdvisorySpeed__regional { + A_SEQUENCE_OF(struct Reg_AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeed_H_ */ +#include diff --git a/vcits/mapem/AdvisorySpeedList.h b/vcits/mapem/AdvisorySpeedList.h new file mode 100644 index 0000000..874f5f5 --- /dev/null +++ b/vcits/mapem/AdvisorySpeedList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AdvisorySpeedList_H_ +#define _AdvisorySpeedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AdvisorySpeed; + +/* AdvisorySpeedList */ +typedef struct AdvisorySpeedList { + A_SEQUENCE_OF(struct AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList; +extern asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[1]; +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedList_H_ */ +#include diff --git a/vcits/mapem/AdvisorySpeedType.h b/vcits/mapem/AdvisorySpeedType.h new file mode 100644 index 0000000..bca4522 --- /dev/null +++ b/vcits/mapem/AdvisorySpeedType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AdvisorySpeedType_H_ +#define _AdvisorySpeedType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdvisorySpeedType { + AdvisorySpeedType_none = 0, + AdvisorySpeedType_greenwave = 1, + AdvisorySpeedType_ecoDrive = 2, + AdvisorySpeedType_transit = 3 + /* + * Enumeration is extensible + */ +} e_AdvisorySpeedType; + +/* AdvisorySpeedType */ +typedef long AdvisorySpeedType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType; +extern const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1; +asn_struct_free_f AdvisorySpeedType_free; +asn_struct_print_f AdvisorySpeedType_print; +asn_constr_check_f AdvisorySpeedType_constraint; +ber_type_decoder_f AdvisorySpeedType_decode_ber; +der_type_encoder_f AdvisorySpeedType_encode_der; +xer_type_decoder_f AdvisorySpeedType_decode_xer; +xer_type_encoder_f AdvisorySpeedType_encode_xer; +oer_type_decoder_f AdvisorySpeedType_decode_oer; +oer_type_encoder_f AdvisorySpeedType_encode_oer; +per_type_decoder_f AdvisorySpeedType_decode_uper; +per_type_encoder_f AdvisorySpeedType_encode_uper; +per_type_decoder_f AdvisorySpeedType_decode_aper; +per_type_encoder_f AdvisorySpeedType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedType_H_ */ +#include diff --git a/vcits/mapem/AllowedManeuvers.h b/vcits/mapem/AllowedManeuvers.h new file mode 100644 index 0000000..51201a9 --- /dev/null +++ b/vcits/mapem/AllowedManeuvers.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AllowedManeuvers_H_ +#define _AllowedManeuvers_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AllowedManeuvers { + AllowedManeuvers_maneuverStraightAllowed = 0, + AllowedManeuvers_maneuverLeftAllowed = 1, + AllowedManeuvers_maneuverRightAllowed = 2, + AllowedManeuvers_maneuverUTurnAllowed = 3, + AllowedManeuvers_maneuverLeftTurnOnRedAllowed = 4, + AllowedManeuvers_maneuverRightTurnOnRedAllowed = 5, + AllowedManeuvers_maneuverLaneChangeAllowed = 6, + AllowedManeuvers_maneuverNoStoppingAllowed = 7, + AllowedManeuvers_yieldAllwaysRequired = 8, + AllowedManeuvers_goWithHalt = 9, + AllowedManeuvers_caution = 10, + AllowedManeuvers_reserved1 = 11 +} e_AllowedManeuvers; + +/* AllowedManeuvers */ +typedef BIT_STRING_t AllowedManeuvers_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers; +asn_struct_free_f AllowedManeuvers_free; +asn_struct_print_f AllowedManeuvers_print; +asn_constr_check_f AllowedManeuvers_constraint; +ber_type_decoder_f AllowedManeuvers_decode_ber; +der_type_encoder_f AllowedManeuvers_encode_der; +xer_type_decoder_f AllowedManeuvers_decode_xer; +xer_type_encoder_f AllowedManeuvers_encode_xer; +oer_type_decoder_f AllowedManeuvers_decode_oer; +oer_type_encoder_f AllowedManeuvers_encode_oer; +per_type_decoder_f AllowedManeuvers_decode_uper; +per_type_encoder_f AllowedManeuvers_encode_uper; +per_type_decoder_f AllowedManeuvers_decode_aper; +per_type_encoder_f AllowedManeuvers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AllowedManeuvers_H_ */ +#include diff --git a/vcits/mapem/AlphabetIndicator.h b/vcits/mapem/AlphabetIndicator.h new file mode 100644 index 0000000..730fb17 --- /dev/null +++ b/vcits/mapem/AlphabetIndicator.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AlphabetIndicator_H_ +#define _AlphabetIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AlphabetIndicator { + AlphabetIndicator_latinAlphabetNo1 = 0, + AlphabetIndicator_latinAlphabetNo2 = 1, + AlphabetIndicator_latinAlphabetNo3 = 2, + AlphabetIndicator_latinAlphabetNo4 = 3, + AlphabetIndicator_latinCyrillicAlphabet = 4, + AlphabetIndicator_latinArabicAlphabet = 5, + AlphabetIndicator_latinGreekAlphabet = 6, + AlphabetIndicator_latinHebrewAlphabet = 7, + AlphabetIndicator_latinAlphabetNo5 = 8, + AlphabetIndicator_latinAlphabetNo6 = 9, + AlphabetIndicator_twoOctetBMP = 10, + AlphabetIndicator_fourOctetCanonical = 11 +} e_AlphabetIndicator; + +/* AlphabetIndicator */ +typedef long AlphabetIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AlphabetIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AlphabetIndicator; +asn_struct_free_f AlphabetIndicator_free; +asn_struct_print_f AlphabetIndicator_print; +asn_constr_check_f AlphabetIndicator_constraint; +ber_type_decoder_f AlphabetIndicator_decode_ber; +der_type_encoder_f AlphabetIndicator_encode_der; +xer_type_decoder_f AlphabetIndicator_decode_xer; +xer_type_encoder_f AlphabetIndicator_encode_xer; +oer_type_decoder_f AlphabetIndicator_decode_oer; +oer_type_encoder_f AlphabetIndicator_encode_oer; +per_type_decoder_f AlphabetIndicator_decode_uper; +per_type_encoder_f AlphabetIndicator_encode_uper; +per_type_decoder_f AlphabetIndicator_decode_aper; +per_type_encoder_f AlphabetIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AlphabetIndicator_H_ */ +#include diff --git a/vcits/mapem/Altitude.h b/vcits/mapem/Altitude.h new file mode 100644 index 0000000..10e3e9f --- /dev/null +++ b/vcits/mapem/Altitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Altitude_H_ +#define _Altitude_H_ + + +#include + +/* Including external dependencies */ +#include "AltitudeValue.h" +#include "AltitudeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Altitude */ +typedef struct Altitude { + AltitudeValue_t altitudeValue; + AltitudeConfidence_t altitudeConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Altitude_H_ */ +#include diff --git a/vcits/mapem/AltitudeConfidence.h b/vcits/mapem/AltitudeConfidence.h new file mode 100644 index 0000000..0d700c3 --- /dev/null +++ b/vcits/mapem/AltitudeConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AltitudeConfidence_H_ +#define _AltitudeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeConfidence { + AltitudeConfidence_alt_000_01 = 0, + AltitudeConfidence_alt_000_02 = 1, + AltitudeConfidence_alt_000_05 = 2, + AltitudeConfidence_alt_000_10 = 3, + AltitudeConfidence_alt_000_20 = 4, + AltitudeConfidence_alt_000_50 = 5, + AltitudeConfidence_alt_001_00 = 6, + AltitudeConfidence_alt_002_00 = 7, + AltitudeConfidence_alt_005_00 = 8, + AltitudeConfidence_alt_010_00 = 9, + AltitudeConfidence_alt_020_00 = 10, + AltitudeConfidence_alt_050_00 = 11, + AltitudeConfidence_alt_100_00 = 12, + AltitudeConfidence_alt_200_00 = 13, + AltitudeConfidence_outOfRange = 14, + AltitudeConfidence_unavailable = 15 +} e_AltitudeConfidence; + +/* AltitudeConfidence */ +typedef long AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1; +asn_struct_free_f AltitudeConfidence_free; +asn_struct_print_f AltitudeConfidence_print; +asn_constr_check_f AltitudeConfidence_constraint; +ber_type_decoder_f AltitudeConfidence_decode_ber; +der_type_encoder_f AltitudeConfidence_encode_der; +xer_type_decoder_f AltitudeConfidence_decode_xer; +xer_type_encoder_f AltitudeConfidence_encode_xer; +oer_type_decoder_f AltitudeConfidence_decode_oer; +oer_type_encoder_f AltitudeConfidence_encode_oer; +per_type_decoder_f AltitudeConfidence_decode_uper; +per_type_encoder_f AltitudeConfidence_encode_uper; +per_type_decoder_f AltitudeConfidence_decode_aper; +per_type_encoder_f AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeConfidence_H_ */ +#include diff --git a/vcits/mapem/AltitudeValue.h b/vcits/mapem/AltitudeValue.h new file mode 100644 index 0000000..9809095 --- /dev/null +++ b/vcits/mapem/AltitudeValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AltitudeValue_H_ +#define _AltitudeValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeValue { + AltitudeValue_referenceEllipsoidSurface = 0, + AltitudeValue_oneCentimeter = 1, + AltitudeValue_unavailable = 800001 +} e_AltitudeValue; + +/* AltitudeValue */ +typedef long AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeValue; +asn_struct_free_f AltitudeValue_free; +asn_struct_print_f AltitudeValue_print; +asn_constr_check_f AltitudeValue_constraint; +ber_type_decoder_f AltitudeValue_decode_ber; +der_type_encoder_f AltitudeValue_encode_der; +xer_type_decoder_f AltitudeValue_decode_xer; +xer_type_encoder_f AltitudeValue_encode_xer; +oer_type_decoder_f AltitudeValue_decode_oer; +oer_type_encoder_f AltitudeValue_encode_oer; +per_type_decoder_f AltitudeValue_decode_uper; +per_type_encoder_f AltitudeValue_encode_uper; +per_type_decoder_f AltitudeValue_decode_aper; +per_type_encoder_f AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeValue_H_ */ +#include diff --git a/vcits/mapem/Angle.h b/vcits/mapem/Angle.h new file mode 100644 index 0000000..219a193 --- /dev/null +++ b/vcits/mapem/Angle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Angle_H_ +#define _Angle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Angle */ +typedef long Angle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Angle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Angle; +asn_struct_free_f Angle_free; +asn_struct_print_f Angle_print; +asn_constr_check_f Angle_constraint; +ber_type_decoder_f Angle_decode_ber; +der_type_encoder_f Angle_encode_der; +xer_type_decoder_f Angle_decode_xer; +xer_type_encoder_f Angle_encode_xer; +oer_type_decoder_f Angle_decode_oer; +oer_type_encoder_f Angle_encode_oer; +per_type_decoder_f Angle_decode_uper; +per_type_encoder_f Angle_encode_uper; +per_type_decoder_f Angle_decode_aper; +per_type_encoder_f Angle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Angle_H_ */ +#include diff --git a/vcits/mapem/AntennaOffsetSet.h b/vcits/mapem/AntennaOffsetSet.h new file mode 100644 index 0000000..2142f7a --- /dev/null +++ b/vcits/mapem/AntennaOffsetSet.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AntennaOffsetSet_H_ +#define _AntennaOffsetSet_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B12.h" +#include "Offset-B09.h" +#include "Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AntennaOffsetSet */ +typedef struct AntennaOffsetSet { + Offset_B12_t antOffsetX; + Offset_B09_t antOffsetY; + Offset_B10_t antOffsetZ; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AntennaOffsetSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet; +extern asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1; +extern asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AntennaOffsetSet_H_ */ +#include diff --git a/vcits/mapem/ApproachID.h b/vcits/mapem/ApproachID.h new file mode 100644 index 0000000..554f5b7 --- /dev/null +++ b/vcits/mapem/ApproachID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ApproachID_H_ +#define _ApproachID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ApproachID */ +typedef long ApproachID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ApproachID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ApproachID; +asn_struct_free_f ApproachID_free; +asn_struct_print_f ApproachID_print; +asn_constr_check_f ApproachID_constraint; +ber_type_decoder_f ApproachID_decode_ber; +der_type_encoder_f ApproachID_encode_der; +xer_type_decoder_f ApproachID_decode_xer; +xer_type_encoder_f ApproachID_encode_xer; +oer_type_decoder_f ApproachID_decode_oer; +oer_type_encoder_f ApproachID_encode_oer; +per_type_decoder_f ApproachID_decode_uper; +per_type_encoder_f ApproachID_encode_uper; +per_type_decoder_f ApproachID_decode_aper; +per_type_encoder_f ApproachID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ApproachID_H_ */ +#include diff --git a/vcits/mapem/AviEriDateTime.h b/vcits/mapem/AviEriDateTime.h new file mode 100644 index 0000000..106f8cd --- /dev/null +++ b/vcits/mapem/AviEriDateTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _AviEriDateTime_H_ +#define _AviEriDateTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AviEriDateTime */ +typedef OCTET_STRING_t AviEriDateTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AviEriDateTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AviEriDateTime; +asn_struct_free_f AviEriDateTime_free; +asn_struct_print_f AviEriDateTime_print; +asn_constr_check_f AviEriDateTime_constraint; +ber_type_decoder_f AviEriDateTime_decode_ber; +der_type_encoder_f AviEriDateTime_encode_der; +xer_type_decoder_f AviEriDateTime_decode_xer; +xer_type_encoder_f AviEriDateTime_encode_xer; +oer_type_decoder_f AviEriDateTime_decode_oer; +oer_type_encoder_f AviEriDateTime_encode_oer; +per_type_decoder_f AviEriDateTime_decode_uper; +per_type_encoder_f AviEriDateTime_encode_uper; +per_type_decoder_f AviEriDateTime_decode_aper; +per_type_encoder_f AviEriDateTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AviEriDateTime_H_ */ +#include diff --git a/vcits/mapem/BasicVehicleRole.h b/vcits/mapem/BasicVehicleRole.h new file mode 100644 index 0000000..3124dd0 --- /dev/null +++ b/vcits/mapem/BasicVehicleRole.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _BasicVehicleRole_H_ +#define _BasicVehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BasicVehicleRole { + BasicVehicleRole_basicVehicle = 0, + BasicVehicleRole_publicTransport = 1, + BasicVehicleRole_specialTransport = 2, + BasicVehicleRole_dangerousGoods = 3, + BasicVehicleRole_roadWork = 4, + BasicVehicleRole_roadRescue = 5, + BasicVehicleRole_emergency = 6, + BasicVehicleRole_safetyCar = 7, + BasicVehicleRole_none_unknown = 8, + BasicVehicleRole_truck = 9, + BasicVehicleRole_motorcycle = 10, + BasicVehicleRole_roadSideSource = 11, + BasicVehicleRole_police = 12, + BasicVehicleRole_fire = 13, + BasicVehicleRole_ambulance = 14, + BasicVehicleRole_dot = 15, + BasicVehicleRole_transit = 16, + BasicVehicleRole_slowMoving = 17, + BasicVehicleRole_stopNgo = 18, + BasicVehicleRole_cyclist = 19, + BasicVehicleRole_pedestrian = 20, + BasicVehicleRole_nonMotorized = 21, + BasicVehicleRole_military = 22 + /* + * Enumeration is extensible + */ +} e_BasicVehicleRole; + +/* BasicVehicleRole */ +typedef long BasicVehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1; +asn_struct_free_f BasicVehicleRole_free; +asn_struct_print_f BasicVehicleRole_print; +asn_constr_check_f BasicVehicleRole_constraint; +ber_type_decoder_f BasicVehicleRole_decode_ber; +der_type_encoder_f BasicVehicleRole_encode_der; +xer_type_decoder_f BasicVehicleRole_decode_xer; +xer_type_encoder_f BasicVehicleRole_encode_xer; +oer_type_decoder_f BasicVehicleRole_decode_oer; +oer_type_encoder_f BasicVehicleRole_encode_oer; +per_type_decoder_f BasicVehicleRole_decode_uper; +per_type_encoder_f BasicVehicleRole_encode_uper; +per_type_decoder_f BasicVehicleRole_decode_aper; +per_type_encoder_f BasicVehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicVehicleRole_H_ */ +#include diff --git a/vcits/mapem/BatteryStatus.h b/vcits/mapem/BatteryStatus.h new file mode 100644 index 0000000..24b1570 --- /dev/null +++ b/vcits/mapem/BatteryStatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _BatteryStatus_H_ +#define _BatteryStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BatteryStatus { + BatteryStatus_unknown = 0, + BatteryStatus_critical = 1, + BatteryStatus_low = 2, + BatteryStatus_good = 3 + /* + * Enumeration is extensible + */ +} e_BatteryStatus; + +/* BatteryStatus */ +typedef long BatteryStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BatteryStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BatteryStatus; +extern const asn_INTEGER_specifics_t asn_SPC_BatteryStatus_specs_1; +asn_struct_free_f BatteryStatus_free; +asn_struct_print_f BatteryStatus_print; +asn_constr_check_f BatteryStatus_constraint; +ber_type_decoder_f BatteryStatus_decode_ber; +der_type_encoder_f BatteryStatus_encode_der; +xer_type_decoder_f BatteryStatus_decode_xer; +xer_type_encoder_f BatteryStatus_encode_xer; +oer_type_decoder_f BatteryStatus_decode_oer; +oer_type_encoder_f BatteryStatus_encode_oer; +per_type_decoder_f BatteryStatus_decode_uper; +per_type_encoder_f BatteryStatus_encode_uper; +per_type_decoder_f BatteryStatus_decode_aper; +per_type_encoder_f BatteryStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BatteryStatus_H_ */ +#include diff --git a/vcits/mapem/CMakeLists.txt b/vcits/mapem/CMakeLists.txt new file mode 100644 index 0000000..9632e8d --- /dev/null +++ b/vcits/mapem/CMakeLists.txt @@ -0,0 +1,380 @@ +# This file is auto-generated by command-cxx.sh +cmake_minimum_required(VERSION 3.9) + +message(STATUS "--> Configure build of |-vcits-mapem") + +project(vcits-mapem VERSION 0.2 DESCRIPTION "mapem part of vcits") + +add_library(vcits-mapem STATIC +src/AccelerationConfidence.c +src/AccelerationControl.c +src/AccidentSubCauseCode.c +src/ActionID.c +src/AdverseWeatherCondition-AdhesionSubCauseCode.c +src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c +src/AdverseWeatherCondition-PrecipitationSubCauseCode.c +src/AdverseWeatherCondition-VisibilitySubCauseCode.c +src/AdvisorySpeed.c +src/AdvisorySpeedList.c +src/AdvisorySpeedType.c +src/AllowedManeuvers.c +src/AlphabetIndicator.c +src/Altitude.c +src/AltitudeConfidence.c +src/AltitudeValue.c +src/Angle.c +src/AntennaOffsetSet.c +src/ApproachID.c +src/AviEriDateTime.c +src/BasicVehicleRole.c +src/BatteryStatus.c +src/CS1.c +src/CS2.c +src/CS3.c +src/CS4.c +src/CS5.c +src/CS7.c +src/CS8.c +src/CauseCode.c +src/CauseCodeType.c +src/CenDsrcTollingZone.c +src/CenDsrcTollingZoneID.c +src/ClosedLanes.c +src/CollisionRiskSubCauseCode.c +src/ComputedLane.c +src/ConnectingLane.c +src/Connection.c +src/ConnectionManeuverAssist-addGrpC.c +src/ConnectionManeuverAssist.c +src/ConnectionTrajectory-addGrpC.c +src/ConnectsToList.c +src/CountryCode.c +src/Curvature.c +src/CurvatureCalculationMode.c +src/CurvatureConfidence.c +src/CurvatureValue.c +src/DDateTime.c +src/DDay.c +src/DHour.c +src/DMinute.c +src/DMonth.c +src/DOffset.c +src/DSRCmsgID.c +src/DSecond.c +src/DYear.c +src/DangerousEndOfQueueSubCauseCode.c +src/DangerousGoodsBasic.c +src/DangerousGoodsExtended.c +src/DangerousSituationSubCauseCode.c +src/DataParameters.c +src/DeltaAltitude.c +src/DeltaAngle.c +src/DeltaLatitude.c +src/DeltaLongitude.c +src/DeltaReferencePosition.c +src/DeltaTime.c +src/DescriptiveName.c +src/DigitalMap.c +src/DriveDirection.c +src/DrivenLineOffsetLg.c +src/DrivenLineOffsetSm.c +src/DrivingLaneStatus.c +src/Elevation.c +src/ElevationConfidence.c +src/EmbarkationStatus.c +src/EmergencyPriority.c +src/EmergencyVehicleApproachingSubCauseCode.c +src/EmissionType.c +src/EnabledLaneList.c +src/EnergyStorageType.c +src/EuVehicleCategoryCode.c +src/EuVehicleCategoryL.c +src/EuVehicleCategoryM.c +src/EuVehicleCategoryN.c +src/EuVehicleCategoryO.c +src/EventHistory.c +src/EventPoint.c +src/ExceptionalCondition.c +src/ExteriorLights.c +src/FreightContainerData.c +src/FuelType.c +src/FullPositionVector.c +src/GNSSstatus.c +src/GenericLane.c +src/GeoGraphicalLimit.c +src/HardShoulderStatus.c +src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c +src/HazardousLocation-DangerousCurveSubCauseCode.c +src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c +src/HazardousLocation-SurfaceConditionSubCauseCode.c +src/Heading.c +src/HeadingConfidence.c +src/HeadingConfidenceDSRC.c +src/HeadingDSRC.c +src/HeadingValue.c +src/HeightLonCarr.c +src/HumanPresenceOnTheRoadSubCauseCode.c +src/HumanProblemSubCauseCode.c +src/InformationQuality.c +src/IntersectionAccessPoint.c +src/IntersectionGeometry.c +src/IntersectionGeometryList.c +src/IntersectionID.c +src/IntersectionReferenceID.c +src/IntersectionState-addGrpC.c +src/IntersectionState.c +src/IntersectionStateList.c +src/IntersectionStatusObject.c +src/Iso3833VehicleType.c +src/IssuerIdentifier.c +src/ItineraryPath.c +src/ItsPduHeader.c +src/ItsStationPosition.c +src/ItsStationPositionList.c +src/LaneAttributes-Barrier.c +src/LaneAttributes-Bike.c +src/LaneAttributes-Crosswalk.c +src/LaneAttributes-Parking.c +src/LaneAttributes-Sidewalk.c +src/LaneAttributes-Striping.c +src/LaneAttributes-TrackedVehicle.c +src/LaneAttributes-Vehicle.c +src/LaneAttributes-addGrpC.c +src/LaneAttributes.c +src/LaneConnectionID.c +src/LaneDataAttribute.c +src/LaneDataAttributeList.c +src/LaneDirection.c +src/LaneID.c +src/LaneList.c +src/LanePosition.c +src/LaneSharing.c +src/LaneTypeAttributes.c +src/LaneWidth.c +src/LateralAcceleration.c +src/LateralAccelerationValue.c +src/Latitude.c +src/LayerID.c +src/LayerType.c +src/LicPlateNumber.c +src/LightBarSirenInUse.c +src/Longitude.c +src/LongitudinalAcceleration.c +src/LongitudinalAccelerationValue.c +src/MAPEM.c +src/ManeuverAssistList.c +src/ManufacturerIdentifier.c +src/MapData-addGrpC.c +src/MapData.c +src/MergeDivergeNodeAngle.c +src/MinuteOfTheYear.c +src/MovementEvent-addGrpC.c +src/MovementEvent.c +src/MovementEventList.c +src/MovementList.c +src/MovementPhaseState.c +src/MovementState.c +src/MsgCount.c +src/Node-LLmD-64b.c +src/Node-XY-20b.c +src/Node-XY-22b.c +src/Node-XY-24b.c +src/Node-XY-26b.c +src/Node-XY-28b.c +src/Node-XY-32b.c +src/Node.c +src/NodeAttributeSet-addGrpC.c +src/NodeAttributeSetXY.c +src/NodeAttributeXY.c +src/NodeAttributeXYList.c +src/NodeLink.c +src/NodeListXY.c +src/NodeOffsetPointXY.c +src/NodeSetXY.c +src/NodeXY.c +src/NumberOfOccupants.c +src/Offset-B09.c +src/Offset-B10.c +src/Offset-B11.c +src/Offset-B12.c +src/Offset-B13.c +src/Offset-B14.c +src/Offset-B16.c +src/OpeningDaysHours.c +src/OverlayLaneList.c +src/PathDeltaTime.c +src/PathHistory.c +src/PathPoint.c +src/PedestrianBicycleDetect.c +src/PerformanceClass.c +src/PhoneNumber.c +src/PosCentMass.c +src/PosConfidenceEllipse.c +src/PosFrontAx.c +src/PosLonCarr.c +src/PosPillar.c +src/Position3D-addGrpC.c +src/Position3D.c +src/PositionConfidence.c +src/PositionConfidenceSet.c +src/PositionOfOccupants.c +src/PositionOfPillars.c +src/PositionalAccuracy.c +src/PositioningSolutionType.c +src/PostCrashSubCauseCode.c +src/PreemptPriorityList.c +src/PrioritizationResponse.c +src/PrioritizationResponseList.c +src/PrioritizationResponseStatus.c +src/PriorityRequestType.c +src/ProtectedCommunicationZone.c +src/ProtectedCommunicationZonesRSU.c +src/ProtectedZoneID.c +src/ProtectedZoneRadius.c +src/ProtectedZoneType.c +src/PtActivation.c +src/PtActivationData.c +src/PtActivationType.c +src/PtvRequestType.c +src/RTCM-Revision.c +src/RTCMcorrections.c +src/RTCMheader.c +src/RTCMmessage.c +src/RTCMmessageList.c +src/ReferencePosition.c +src/RegionId.c +src/RegionalExtension.c +src/RegulatorySpeedLimit.c +src/RejectedReason.c +src/RelevanceDistance.c +src/RelevanceTrafficDirection.c +src/RequestID.c +src/RequestImportanceLevel.c +src/RequestResponseIndication.c +src/RequestSubRole.c +src/RequestorDescription-addGrpC.c +src/RequestorDescription.c +src/RequestorPositionVector.c +src/RequestorType.c +src/RescueAndRecoveryWorkInProgressSubCauseCode.c +src/RestrictedTypes.c +src/RestrictionAppliesTo.c +src/RestrictionClassAssignment.c +src/RestrictionClassID.c +src/RestrictionClassList.c +src/RestrictionUserType-addGrpC.c +src/RestrictionUserType.c +src/RestrictionUserTypeList.c +src/RoadLaneSetList.c +src/RoadRegulatorID.c +src/RoadSegment.c +src/RoadSegmentID.c +src/RoadSegmentList.c +src/RoadSegmentReferenceID.c +src/RoadType.c +src/RoadwayCrownAngle.c +src/RoadworksSubCauseCode.c +src/SPAT.c +src/Scale-B12.c +src/SegmentAttributeXY.c +src/SegmentAttributeXYList.c +src/SemiAxisLength.c +src/SemiMajorAxisAccuracy.c +src/SemiMajorAxisOrientation.c +src/SemiMinorAxisAccuracy.c +src/SequenceNumber.c +src/ServiceApplicationLimit.c +src/ServiceNumber.c +src/SignalControlZone.c +src/SignalGroupID.c +src/SignalHeadLocation.c +src/SignalHeadLocationList.c +src/SignalRequest.c +src/SignalRequestList.c +src/SignalRequestMessage.c +src/SignalRequestPackage.c +src/SignalRequesterInfo.c +src/SignalStatus.c +src/SignalStatusList.c +src/SignalStatusMessage.c +src/SignalStatusPackage-addGrpC.c +src/SignalStatusPackage.c +src/SignalStatusPackageList.c +src/SignalViolationSubCauseCode.c +src/SlowVehicleSubCauseCode.c +src/SpecialTransportType.c +src/Speed.c +src/SpeedAdvice.c +src/SpeedConfidence.c +src/SpeedConfidenceDSRC.c +src/SpeedLimit.c +src/SpeedLimitList.c +src/SpeedLimitType.c +src/SpeedValue.c +src/SpeedandHeadingandThrottleConfidence.c +src/StartTime.c +src/StationID.c +src/StationType.c +src/StationarySince.c +src/StationaryVehicleSubCauseCode.c +src/SteeringWheelAngle.c +src/SteeringWheelAngleConfidence.c +src/SteeringWheelAngleValue.c +src/StopTime.c +src/SubCauseCodeType.c +src/TaxCode.c +src/Temperature.c +src/TemporaryID.c +src/ThrottleConfidence.c +src/TimeChangeDetails.c +src/TimeConfidence.c +src/TimeIntervalConfidence.c +src/TimeMark.c +src/TimeReference.c +src/TimestampIts.c +src/Traces.c +src/TrafficConditionSubCauseCode.c +src/TrafficRule.c +src/TransitVehicleOccupancy.c +src/TransitVehicleStatus.c +src/TransmissionAndSpeed.c +src/TransmissionInterval.c +src/TransmissionState.c +src/TurningRadius.c +src/VDS.c +src/ValidityDuration.c +src/VehicleBreakdownSubCauseCode.c +src/VehicleHeight.c +src/VehicleID.c +src/VehicleIdentification.c +src/VehicleLength.c +src/VehicleLengthConfidenceIndication.c +src/VehicleLengthValue.c +src/VehicleMass.c +src/VehicleRole.c +src/VehicleType.c +src/VehicleWidth.c +src/Velocity.c +src/VerticalAcceleration.c +src/VerticalAccelerationValue.c +src/WMInumber.c +src/WaitOnStopline.c +src/WheelBaseVehicle.c +src/WrongWayDrivingSubCauseCode.c +src/YawRate.c +src/YawRateConfidence.c +src/YawRateValue.c +src/ZoneLength.c +) + +set_target_properties(vcits-mapem PROPERTIES VERSION ${PROJECT_VERSION}) + +target_include_directories(vcits-mapem PRIVATE .) +target_include_directories(vcits-mapem PRIVATE ../asn1c) + +target_link_libraries(vcits-mapem PUBLIC +vcits-asn1c +) + +message(STATUS "--> Configure build of |-vcits-mapem - done") + diff --git a/vcits/mapem/CS1.h b/vcits/mapem/CS1.h new file mode 100644 index 0000000..33addc8 --- /dev/null +++ b/vcits/mapem/CS1.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CS1_H_ +#define _CS1_H_ + + +#include + +/* Including external dependencies */ +#include "CountryCode.h" +#include "IssuerIdentifier.h" +#include "ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS1 */ +typedef struct CS1 { + CountryCode_t countryCode; + IssuerIdentifier_t issuerIdentifier; + ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS1_H_ */ +#include diff --git a/vcits/mapem/CS2.h b/vcits/mapem/CS2.h new file mode 100644 index 0000000..8a9a0fa --- /dev/null +++ b/vcits/mapem/CS2.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CS2_H_ +#define _CS2_H_ + + +#include + +/* Including external dependencies */ +#include "ManufacturerIdentifier.h" +#include "ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS2 */ +typedef struct CS2 { + ManufacturerIdentifier_t manufacturerIdentifier; + ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS2; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS2_H_ */ +#include diff --git a/vcits/mapem/CS3.h b/vcits/mapem/CS3.h new file mode 100644 index 0000000..1a1c6c2 --- /dev/null +++ b/vcits/mapem/CS3.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CS3_H_ +#define _CS3_H_ + + +#include + +/* Including external dependencies */ +#include "StartTime.h" +#include "StopTime.h" +#include "GeoGraphicalLimit.h" +#include "ServiceApplicationLimit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS3 */ +typedef struct CS3 { + StartTime_t startTime; + StopTime_t stopTime; + GeoGraphicalLimit_t geographLimit; + ServiceApplicationLimit_t serviceAppLimit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS3; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS3_H_ */ +#include diff --git a/vcits/mapem/CS4.h b/vcits/mapem/CS4.h new file mode 100644 index 0000000..5950d09 --- /dev/null +++ b/vcits/mapem/CS4.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CS4_H_ +#define _CS4_H_ + + +#include + +/* Including external dependencies */ +#include "CountryCode.h" +#include "AlphabetIndicator.h" +#include "LicPlateNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS4 */ +typedef struct CS4 { + CountryCode_t countryCode; + AlphabetIndicator_t alphabetIndicator; + LicPlateNumber_t licPlateNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS4_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS4; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS4_H_ */ +#include diff --git a/vcits/mapem/CS5.h b/vcits/mapem/CS5.h new file mode 100644 index 0000000..08070ba --- /dev/null +++ b/vcits/mapem/CS5.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CS5_H_ +#define _CS5_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS5 */ +typedef struct CS5 { + VisibleString_t vin; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS5_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS5; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS5_H_ */ +#include diff --git a/vcits/mapem/CS7.h b/vcits/mapem/CS7.h new file mode 100644 index 0000000..1a2771d --- /dev/null +++ b/vcits/mapem/CS7.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CS7_H_ +#define _CS7_H_ + + +#include + +/* Including external dependencies */ +#include "FreightContainerData.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS7 */ +typedef FreightContainerData_t CS7_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS7; +asn_struct_free_f CS7_free; +asn_struct_print_f CS7_print; +asn_constr_check_f CS7_constraint; +ber_type_decoder_f CS7_decode_ber; +der_type_encoder_f CS7_encode_der; +xer_type_decoder_f CS7_decode_xer; +xer_type_encoder_f CS7_encode_xer; +oer_type_decoder_f CS7_decode_oer; +oer_type_encoder_f CS7_encode_oer; +per_type_decoder_f CS7_decode_uper; +per_type_encoder_f CS7_encode_uper; +per_type_decoder_f CS7_decode_aper; +per_type_encoder_f CS7_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS7_H_ */ +#include diff --git a/vcits/mapem/CS8.h b/vcits/mapem/CS8.h new file mode 100644 index 0000000..8d4b345 --- /dev/null +++ b/vcits/mapem/CS8.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CS8_H_ +#define _CS8_H_ + + +#include + +/* Including external dependencies */ +#include +#include "CountryCode.h" +#include "TaxCode.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS8 */ +typedef struct CS8 { + BIT_STRING_t fill; + CountryCode_t countryCode; + TaxCode_t taxCode; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS8_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS8; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS8_H_ */ +#include diff --git a/vcits/mapem/CauseCode.h b/vcits/mapem/CauseCode.h new file mode 100644 index 0000000..6b509eb --- /dev/null +++ b/vcits/mapem/CauseCode.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CauseCode_H_ +#define _CauseCode_H_ + + +#include + +/* Including external dependencies */ +#include "CauseCodeType.h" +#include "SubCauseCodeType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CauseCode */ +typedef struct CauseCode { + CauseCodeType_t causeCode; + SubCauseCodeType_t subCauseCode; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CauseCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCode_H_ */ +#include diff --git a/vcits/mapem/CauseCodeType.h b/vcits/mapem/CauseCodeType.h new file mode 100644 index 0000000..7be5f2c --- /dev/null +++ b/vcits/mapem/CauseCodeType.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CauseCodeType_H_ +#define _CauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseCodeType { + CauseCodeType_reserved = 0, + CauseCodeType_trafficCondition = 1, + CauseCodeType_accident = 2, + CauseCodeType_roadworks = 3, + CauseCodeType_impassability = 5, + CauseCodeType_adverseWeatherCondition_Adhesion = 6, + CauseCodeType_aquaplannning = 7, + CauseCodeType_hazardousLocation_SurfaceCondition = 9, + CauseCodeType_hazardousLocation_ObstacleOnTheRoad = 10, + CauseCodeType_hazardousLocation_AnimalOnTheRoad = 11, + CauseCodeType_humanPresenceOnTheRoad = 12, + CauseCodeType_wrongWayDriving = 14, + CauseCodeType_rescueAndRecoveryWorkInProgress = 15, + CauseCodeType_adverseWeatherCondition_ExtremeWeatherCondition = 17, + CauseCodeType_adverseWeatherCondition_Visibility = 18, + CauseCodeType_adverseWeatherCondition_Precipitation = 19, + CauseCodeType_slowVehicle = 26, + CauseCodeType_dangerousEndOfQueue = 27, + CauseCodeType_vehicleBreakdown = 91, + CauseCodeType_postCrash = 92, + CauseCodeType_humanProblem = 93, + CauseCodeType_stationaryVehicle = 94, + CauseCodeType_emergencyVehicleApproaching = 95, + CauseCodeType_hazardousLocation_DangerousCurve = 96, + CauseCodeType_collisionRisk = 97, + CauseCodeType_signalViolation = 98, + CauseCodeType_dangerousSituation = 99 +} e_CauseCodeType; + +/* CauseCodeType */ +typedef long CauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseCodeType; +asn_struct_free_f CauseCodeType_free; +asn_struct_print_f CauseCodeType_print; +asn_constr_check_f CauseCodeType_constraint; +ber_type_decoder_f CauseCodeType_decode_ber; +der_type_encoder_f CauseCodeType_encode_der; +xer_type_decoder_f CauseCodeType_decode_xer; +xer_type_encoder_f CauseCodeType_encode_xer; +oer_type_decoder_f CauseCodeType_decode_oer; +oer_type_encoder_f CauseCodeType_encode_oer; +per_type_decoder_f CauseCodeType_decode_uper; +per_type_encoder_f CauseCodeType_encode_uper; +per_type_decoder_f CauseCodeType_decode_aper; +per_type_encoder_f CauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCodeType_H_ */ +#include diff --git a/vcits/mapem/CenDsrcTollingZone.h b/vcits/mapem/CenDsrcTollingZone.h new file mode 100644 index 0000000..2142d5c --- /dev/null +++ b/vcits/mapem/CenDsrcTollingZone.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CenDsrcTollingZone_H_ +#define _CenDsrcTollingZone_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "CenDsrcTollingZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZone */ +typedef struct CenDsrcTollingZone { + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + CenDsrcTollingZoneID_t *cenDsrcTollingZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CenDsrcTollingZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZone_H_ */ +#include diff --git a/vcits/mapem/CenDsrcTollingZoneID.h b/vcits/mapem/CenDsrcTollingZoneID.h new file mode 100644 index 0000000..1c3adec --- /dev/null +++ b/vcits/mapem/CenDsrcTollingZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CenDsrcTollingZoneID_H_ +#define _CenDsrcTollingZoneID_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneID.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZoneID */ +typedef ProtectedZoneID_t CenDsrcTollingZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID; +asn_struct_free_f CenDsrcTollingZoneID_free; +asn_struct_print_f CenDsrcTollingZoneID_print; +asn_constr_check_f CenDsrcTollingZoneID_constraint; +ber_type_decoder_f CenDsrcTollingZoneID_decode_ber; +der_type_encoder_f CenDsrcTollingZoneID_encode_der; +xer_type_decoder_f CenDsrcTollingZoneID_decode_xer; +xer_type_encoder_f CenDsrcTollingZoneID_encode_xer; +oer_type_decoder_f CenDsrcTollingZoneID_decode_oer; +oer_type_encoder_f CenDsrcTollingZoneID_encode_oer; +per_type_decoder_f CenDsrcTollingZoneID_decode_uper; +per_type_encoder_f CenDsrcTollingZoneID_encode_uper; +per_type_decoder_f CenDsrcTollingZoneID_decode_aper; +per_type_encoder_f CenDsrcTollingZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZoneID_H_ */ +#include diff --git a/vcits/mapem/ClosedLanes.h b/vcits/mapem/ClosedLanes.h new file mode 100644 index 0000000..ef0f233 --- /dev/null +++ b/vcits/mapem/ClosedLanes.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ClosedLanes_H_ +#define _ClosedLanes_H_ + + +#include + +/* Including external dependencies */ +#include "HardShoulderStatus.h" +#include "DrivingLaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ClosedLanes */ +typedef struct ClosedLanes { + HardShoulderStatus_t *innerhardShoulderStatus; /* OPTIONAL */ + HardShoulderStatus_t *outerhardShoulderStatus; /* OPTIONAL */ + DrivingLaneStatus_t *drivingLaneStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ClosedLanes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ClosedLanes; + +#ifdef __cplusplus +} +#endif + +#endif /* _ClosedLanes_H_ */ +#include diff --git a/vcits/mapem/CollisionRiskSubCauseCode.h b/vcits/mapem/CollisionRiskSubCauseCode.h new file mode 100644 index 0000000..18e9767 --- /dev/null +++ b/vcits/mapem/CollisionRiskSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CollisionRiskSubCauseCode_H_ +#define _CollisionRiskSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CollisionRiskSubCauseCode { + CollisionRiskSubCauseCode_unavailable = 0, + CollisionRiskSubCauseCode_longitudinalCollisionRisk = 1, + CollisionRiskSubCauseCode_crossingCollisionRisk = 2, + CollisionRiskSubCauseCode_lateralCollisionRisk = 3, + CollisionRiskSubCauseCode_vulnerableRoadUser = 4 +} e_CollisionRiskSubCauseCode; + +/* CollisionRiskSubCauseCode */ +typedef long CollisionRiskSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode; +asn_struct_free_f CollisionRiskSubCauseCode_free; +asn_struct_print_f CollisionRiskSubCauseCode_print; +asn_constr_check_f CollisionRiskSubCauseCode_constraint; +ber_type_decoder_f CollisionRiskSubCauseCode_decode_ber; +der_type_encoder_f CollisionRiskSubCauseCode_encode_der; +xer_type_decoder_f CollisionRiskSubCauseCode_decode_xer; +xer_type_encoder_f CollisionRiskSubCauseCode_encode_xer; +oer_type_decoder_f CollisionRiskSubCauseCode_decode_oer; +oer_type_encoder_f CollisionRiskSubCauseCode_encode_oer; +per_type_decoder_f CollisionRiskSubCauseCode_decode_uper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_uper; +per_type_decoder_f CollisionRiskSubCauseCode_decode_aper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CollisionRiskSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/ComputedLane.h b/vcits/mapem/ComputedLane.h new file mode 100644 index 0000000..91505f8 --- /dev/null +++ b/vcits/mapem/ComputedLane.h @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ComputedLane_H_ +#define _ComputedLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "Angle.h" +#include "Scale-B12.h" +#include "DrivenLineOffsetSm.h" +#include "DrivenLineOffsetLg.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ComputedLane__offsetXaxis_PR { + ComputedLane__offsetXaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetXaxis_PR_small, + ComputedLane__offsetXaxis_PR_large +} ComputedLane__offsetXaxis_PR; +typedef enum ComputedLane__offsetYaxis_PR { + ComputedLane__offsetYaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetYaxis_PR_small, + ComputedLane__offsetYaxis_PR_large +} ComputedLane__offsetYaxis_PR; + +/* Forward declarations */ +struct Reg_ComputedLane; + +/* ComputedLane */ +typedef struct ComputedLane { + LaneID_t referenceLaneId; + struct ComputedLane__offsetXaxis { + ComputedLane__offsetXaxis_PR present; + union ComputedLane__offsetXaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetXaxis; + struct ComputedLane__offsetYaxis { + ComputedLane__offsetYaxis_PR present; + union ComputedLane__offsetYaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetYaxis; + Angle_t *rotateXY; /* OPTIONAL */ + Scale_B12_t *scaleXaxis; /* OPTIONAL */ + Scale_B12_t *scaleYaxis; /* OPTIONAL */ + struct ComputedLane__regional { + A_SEQUENCE_OF(struct Reg_ComputedLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ComputedLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ComputedLane_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ComputedLane_H_ */ +#include diff --git a/vcits/mapem/ConnectingLane.h b/vcits/mapem/ConnectingLane.h new file mode 100644 index 0000000..462474b --- /dev/null +++ b/vcits/mapem/ConnectingLane.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ConnectingLane_H_ +#define _ConnectingLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "AllowedManeuvers.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectingLane */ +typedef struct ConnectingLane { + LaneID_t lane; + AllowedManeuvers_t *maneuver; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectingLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectingLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectingLane_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectingLane_H_ */ +#include diff --git a/vcits/mapem/Connection.h b/vcits/mapem/Connection.h new file mode 100644 index 0000000..4657806 --- /dev/null +++ b/vcits/mapem/Connection.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Connection_H_ +#define _Connection_H_ + + +#include + +/* Including external dependencies */ +#include "ConnectingLane.h" +#include "SignalGroupID.h" +#include "RestrictionClassID.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionReferenceID; + +/* Connection */ +typedef struct Connection { + ConnectingLane_t connectingLane; + struct IntersectionReferenceID *remoteIntersection; /* OPTIONAL */ + SignalGroupID_t *signalGroup; /* OPTIONAL */ + RestrictionClassID_t *userClass; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Connection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Connection; +extern asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1; +extern asn_TYPE_member_t asn_MBR_Connection_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Connection_H_ */ +#include diff --git a/vcits/mapem/ConnectionManeuverAssist-addGrpC.h b/vcits/mapem/ConnectionManeuverAssist-addGrpC.h new file mode 100644 index 0000000..0713fb7 --- /dev/null +++ b/vcits/mapem/ConnectionManeuverAssist-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ConnectionManeuverAssist_addGrpC_H_ +#define _ConnectionManeuverAssist_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ItsStationPositionList; + +/* ConnectionManeuverAssist-addGrpC */ +typedef struct ConnectionManeuverAssist_addGrpC { + struct ItsStationPositionList *itsStationPosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_addGrpC_H_ */ +#include diff --git a/vcits/mapem/ConnectionManeuverAssist.h b/vcits/mapem/ConnectionManeuverAssist.h new file mode 100644 index 0000000..6a6ab08 --- /dev/null +++ b/vcits/mapem/ConnectionManeuverAssist.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ConnectionManeuverAssist_H_ +#define _ConnectionManeuverAssist_H_ + + +#include + +/* Including external dependencies */ +#include "LaneConnectionID.h" +#include "ZoneLength.h" +#include "WaitOnStopline.h" +#include "PedestrianBicycleDetect.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_ConnectionManeuverAssist; + +/* ConnectionManeuverAssist */ +typedef struct ConnectionManeuverAssist { + LaneConnectionID_t connectionID; + ZoneLength_t *queueLength; /* OPTIONAL */ + ZoneLength_t *availableStorageLength; /* OPTIONAL */ + WaitOnStopline_t *waitOnStop; /* OPTIONAL */ + PedestrianBicycleDetect_t *pedBicycleDetect; /* OPTIONAL */ + struct ConnectionManeuverAssist__regional { + A_SEQUENCE_OF(struct Reg_ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_H_ */ +#include diff --git a/vcits/mapem/ConnectionTrajectory-addGrpC.h b/vcits/mapem/ConnectionTrajectory-addGrpC.h new file mode 100644 index 0000000..b7a9314 --- /dev/null +++ b/vcits/mapem/ConnectionTrajectory-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ConnectionTrajectory_addGrpC_H_ +#define _ConnectionTrajectory_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectionTrajectory-addGrpC */ +typedef struct ConnectionTrajectory_addGrpC { + NodeSetXY_t nodes; + LaneConnectionID_t connectionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionTrajectory_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionTrajectory_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionTrajectory_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionTrajectory_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionTrajectory_addGrpC_H_ */ +#include diff --git a/vcits/mapem/ConnectsToList.h b/vcits/mapem/ConnectsToList.h new file mode 100644 index 0000000..f2fe00f --- /dev/null +++ b/vcits/mapem/ConnectsToList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ConnectsToList_H_ +#define _ConnectsToList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Connection; + +/* ConnectsToList */ +typedef struct ConnectsToList { + A_SEQUENCE_OF(struct Connection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectsToList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectsToList; +extern asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectsToList_1[1]; +extern asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectsToList_H_ */ +#include diff --git a/vcits/mapem/CountryCode.h b/vcits/mapem/CountryCode.h new file mode 100644 index 0000000..47f5acb --- /dev/null +++ b/vcits/mapem/CountryCode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CountryCode_H_ +#define _CountryCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CountryCode */ +typedef BIT_STRING_t CountryCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CountryCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CountryCode; +asn_struct_free_f CountryCode_free; +asn_struct_print_f CountryCode_print; +asn_constr_check_f CountryCode_constraint; +ber_type_decoder_f CountryCode_decode_ber; +der_type_encoder_f CountryCode_encode_der; +xer_type_decoder_f CountryCode_decode_xer; +xer_type_encoder_f CountryCode_encode_xer; +oer_type_decoder_f CountryCode_decode_oer; +oer_type_encoder_f CountryCode_encode_oer; +per_type_decoder_f CountryCode_decode_uper; +per_type_encoder_f CountryCode_encode_uper; +per_type_decoder_f CountryCode_decode_aper; +per_type_encoder_f CountryCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CountryCode_H_ */ +#include diff --git a/vcits/mapem/Curvature.h b/vcits/mapem/Curvature.h new file mode 100644 index 0000000..95addf2 --- /dev/null +++ b/vcits/mapem/Curvature.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Curvature_H_ +#define _Curvature_H_ + + +#include + +/* Including external dependencies */ +#include "CurvatureValue.h" +#include "CurvatureConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Curvature */ +typedef struct Curvature { + CurvatureValue_t curvatureValue; + CurvatureConfidence_t curvatureConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Curvature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Curvature; + +#ifdef __cplusplus +} +#endif + +#endif /* _Curvature_H_ */ +#include diff --git a/vcits/mapem/CurvatureCalculationMode.h b/vcits/mapem/CurvatureCalculationMode.h new file mode 100644 index 0000000..06a269d --- /dev/null +++ b/vcits/mapem/CurvatureCalculationMode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CurvatureCalculationMode_H_ +#define _CurvatureCalculationMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureCalculationMode { + CurvatureCalculationMode_yawRateUsed = 0, + CurvatureCalculationMode_yawRateNotUsed = 1, + CurvatureCalculationMode_unavailable = 2 + /* + * Enumeration is extensible + */ +} e_CurvatureCalculationMode; + +/* CurvatureCalculationMode */ +typedef long CurvatureCalculationMode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode; +asn_struct_free_f CurvatureCalculationMode_free; +asn_struct_print_f CurvatureCalculationMode_print; +asn_constr_check_f CurvatureCalculationMode_constraint; +ber_type_decoder_f CurvatureCalculationMode_decode_ber; +der_type_encoder_f CurvatureCalculationMode_encode_der; +xer_type_decoder_f CurvatureCalculationMode_decode_xer; +xer_type_encoder_f CurvatureCalculationMode_encode_xer; +oer_type_decoder_f CurvatureCalculationMode_decode_oer; +oer_type_encoder_f CurvatureCalculationMode_encode_oer; +per_type_decoder_f CurvatureCalculationMode_decode_uper; +per_type_encoder_f CurvatureCalculationMode_encode_uper; +per_type_decoder_f CurvatureCalculationMode_decode_aper; +per_type_encoder_f CurvatureCalculationMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureCalculationMode_H_ */ +#include diff --git a/vcits/mapem/CurvatureConfidence.h b/vcits/mapem/CurvatureConfidence.h new file mode 100644 index 0000000..4968283 --- /dev/null +++ b/vcits/mapem/CurvatureConfidence.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CurvatureConfidence_H_ +#define _CurvatureConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureConfidence { + CurvatureConfidence_onePerMeter_0_00002 = 0, + CurvatureConfidence_onePerMeter_0_0001 = 1, + CurvatureConfidence_onePerMeter_0_0005 = 2, + CurvatureConfidence_onePerMeter_0_002 = 3, + CurvatureConfidence_onePerMeter_0_01 = 4, + CurvatureConfidence_onePerMeter_0_1 = 5, + CurvatureConfidence_outOfRange = 6, + CurvatureConfidence_unavailable = 7 +} e_CurvatureConfidence; + +/* CurvatureConfidence */ +typedef long CurvatureConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1; +asn_struct_free_f CurvatureConfidence_free; +asn_struct_print_f CurvatureConfidence_print; +asn_constr_check_f CurvatureConfidence_constraint; +ber_type_decoder_f CurvatureConfidence_decode_ber; +der_type_encoder_f CurvatureConfidence_encode_der; +xer_type_decoder_f CurvatureConfidence_decode_xer; +xer_type_encoder_f CurvatureConfidence_encode_xer; +oer_type_decoder_f CurvatureConfidence_decode_oer; +oer_type_encoder_f CurvatureConfidence_encode_oer; +per_type_decoder_f CurvatureConfidence_decode_uper; +per_type_encoder_f CurvatureConfidence_encode_uper; +per_type_decoder_f CurvatureConfidence_decode_aper; +per_type_encoder_f CurvatureConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureConfidence_H_ */ +#include diff --git a/vcits/mapem/CurvatureValue.h b/vcits/mapem/CurvatureValue.h new file mode 100644 index 0000000..068773e --- /dev/null +++ b/vcits/mapem/CurvatureValue.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _CurvatureValue_H_ +#define _CurvatureValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureValue { + CurvatureValue_straight = 0, + CurvatureValue_unavailable = 1023 +} e_CurvatureValue; + +/* CurvatureValue */ +typedef long CurvatureValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureValue; +asn_struct_free_f CurvatureValue_free; +asn_struct_print_f CurvatureValue_print; +asn_constr_check_f CurvatureValue_constraint; +ber_type_decoder_f CurvatureValue_decode_ber; +der_type_encoder_f CurvatureValue_encode_der; +xer_type_decoder_f CurvatureValue_decode_xer; +xer_type_encoder_f CurvatureValue_encode_xer; +oer_type_decoder_f CurvatureValue_decode_oer; +oer_type_encoder_f CurvatureValue_encode_oer; +per_type_decoder_f CurvatureValue_decode_uper; +per_type_encoder_f CurvatureValue_encode_uper; +per_type_decoder_f CurvatureValue_decode_aper; +per_type_encoder_f CurvatureValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureValue_H_ */ +#include diff --git a/vcits/mapem/DDateTime.h b/vcits/mapem/DDateTime.h new file mode 100644 index 0000000..fa7ddd5 --- /dev/null +++ b/vcits/mapem/DDateTime.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DDateTime_H_ +#define _DDateTime_H_ + + +#include + +/* Including external dependencies */ +#include "DYear.h" +#include "DMonth.h" +#include "DDay.h" +#include "DHour.h" +#include "DMinute.h" +#include "DSecond.h" +#include "DOffset.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDateTime */ +typedef struct DDateTime { + DYear_t *year; /* OPTIONAL */ + DMonth_t *month; /* OPTIONAL */ + DDay_t *day; /* OPTIONAL */ + DHour_t *hour; /* OPTIONAL */ + DMinute_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DOffset_t *offset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DDateTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DDateTime; +extern asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1; +extern asn_TYPE_member_t asn_MBR_DDateTime_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDateTime_H_ */ +#include diff --git a/vcits/mapem/DDay.h b/vcits/mapem/DDay.h new file mode 100644 index 0000000..52ba6fe --- /dev/null +++ b/vcits/mapem/DDay.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DDay_H_ +#define _DDay_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDay */ +typedef long DDay_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DDay_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DDay; +asn_struct_free_f DDay_free; +asn_struct_print_f DDay_print; +asn_constr_check_f DDay_constraint; +ber_type_decoder_f DDay_decode_ber; +der_type_encoder_f DDay_encode_der; +xer_type_decoder_f DDay_decode_xer; +xer_type_encoder_f DDay_encode_xer; +oer_type_decoder_f DDay_decode_oer; +oer_type_encoder_f DDay_encode_oer; +per_type_decoder_f DDay_decode_uper; +per_type_encoder_f DDay_encode_uper; +per_type_decoder_f DDay_decode_aper; +per_type_encoder_f DDay_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDay_H_ */ +#include diff --git a/vcits/mapem/DHour.h b/vcits/mapem/DHour.h new file mode 100644 index 0000000..bac2646 --- /dev/null +++ b/vcits/mapem/DHour.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DHour_H_ +#define _DHour_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DHour */ +typedef long DHour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DHour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DHour; +asn_struct_free_f DHour_free; +asn_struct_print_f DHour_print; +asn_constr_check_f DHour_constraint; +ber_type_decoder_f DHour_decode_ber; +der_type_encoder_f DHour_encode_der; +xer_type_decoder_f DHour_decode_xer; +xer_type_encoder_f DHour_encode_xer; +oer_type_decoder_f DHour_decode_oer; +oer_type_encoder_f DHour_encode_oer; +per_type_decoder_f DHour_decode_uper; +per_type_encoder_f DHour_encode_uper; +per_type_decoder_f DHour_decode_aper; +per_type_encoder_f DHour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DHour_H_ */ +#include diff --git a/vcits/mapem/DMinute.h b/vcits/mapem/DMinute.h new file mode 100644 index 0000000..30b645f --- /dev/null +++ b/vcits/mapem/DMinute.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DMinute_H_ +#define _DMinute_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMinute */ +typedef long DMinute_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMinute_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMinute; +asn_struct_free_f DMinute_free; +asn_struct_print_f DMinute_print; +asn_constr_check_f DMinute_constraint; +ber_type_decoder_f DMinute_decode_ber; +der_type_encoder_f DMinute_encode_der; +xer_type_decoder_f DMinute_decode_xer; +xer_type_encoder_f DMinute_encode_xer; +oer_type_decoder_f DMinute_decode_oer; +oer_type_encoder_f DMinute_encode_oer; +per_type_decoder_f DMinute_decode_uper; +per_type_encoder_f DMinute_encode_uper; +per_type_decoder_f DMinute_decode_aper; +per_type_encoder_f DMinute_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMinute_H_ */ +#include diff --git a/vcits/mapem/DMonth.h b/vcits/mapem/DMonth.h new file mode 100644 index 0000000..e69fdbb --- /dev/null +++ b/vcits/mapem/DMonth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DMonth_H_ +#define _DMonth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMonth */ +typedef long DMonth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMonth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMonth; +asn_struct_free_f DMonth_free; +asn_struct_print_f DMonth_print; +asn_constr_check_f DMonth_constraint; +ber_type_decoder_f DMonth_decode_ber; +der_type_encoder_f DMonth_encode_der; +xer_type_decoder_f DMonth_decode_xer; +xer_type_encoder_f DMonth_encode_xer; +oer_type_decoder_f DMonth_decode_oer; +oer_type_encoder_f DMonth_encode_oer; +per_type_decoder_f DMonth_decode_uper; +per_type_encoder_f DMonth_encode_uper; +per_type_decoder_f DMonth_decode_aper; +per_type_encoder_f DMonth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMonth_H_ */ +#include diff --git a/vcits/mapem/DOffset.h b/vcits/mapem/DOffset.h new file mode 100644 index 0000000..ad845a1 --- /dev/null +++ b/vcits/mapem/DOffset.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DOffset_H_ +#define _DOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DOffset */ +typedef long DOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DOffset; +asn_struct_free_f DOffset_free; +asn_struct_print_f DOffset_print; +asn_constr_check_f DOffset_constraint; +ber_type_decoder_f DOffset_decode_ber; +der_type_encoder_f DOffset_encode_der; +xer_type_decoder_f DOffset_decode_xer; +xer_type_encoder_f DOffset_encode_xer; +oer_type_decoder_f DOffset_decode_oer; +oer_type_encoder_f DOffset_encode_oer; +per_type_decoder_f DOffset_decode_uper; +per_type_encoder_f DOffset_encode_uper; +per_type_decoder_f DOffset_decode_aper; +per_type_encoder_f DOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DOffset_H_ */ +#include diff --git a/vcits/mapem/DSRCmsgID.h b/vcits/mapem/DSRCmsgID.h new file mode 100644 index 0000000..a485d6b --- /dev/null +++ b/vcits/mapem/DSRCmsgID.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DSRCmsgID_H_ +#define _DSRCmsgID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSRCmsgID */ +typedef long DSRCmsgID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSRCmsgID; +asn_struct_free_f DSRCmsgID_free; +asn_struct_print_f DSRCmsgID_print; +asn_constr_check_f DSRCmsgID_constraint; +ber_type_decoder_f DSRCmsgID_decode_ber; +der_type_encoder_f DSRCmsgID_encode_der; +xer_type_decoder_f DSRCmsgID_decode_xer; +xer_type_encoder_f DSRCmsgID_encode_xer; +oer_type_decoder_f DSRCmsgID_decode_oer; +oer_type_encoder_f DSRCmsgID_encode_oer; +per_type_decoder_f DSRCmsgID_decode_uper; +per_type_encoder_f DSRCmsgID_encode_uper; +per_type_decoder_f DSRCmsgID_decode_aper; +per_type_encoder_f DSRCmsgID_encode_aper; +#define DSRCmsgID_mapData ((DSRCmsgID_t)18) +#define DSRCmsgID_rtcmCorrections ((DSRCmsgID_t)28) +#define DSRCmsgID_signalPhaseAndTimingMessage ((DSRCmsgID_t)19) +#define DSRCmsgID_signalRequestMessage ((DSRCmsgID_t)29) +#define DSRCmsgID_signalStatusMessage ((DSRCmsgID_t)30) + +#ifdef __cplusplus +} +#endif + +#endif /* _DSRCmsgID_H_ */ +#include diff --git a/vcits/mapem/DSecond.h b/vcits/mapem/DSecond.h new file mode 100644 index 0000000..f7ea445 --- /dev/null +++ b/vcits/mapem/DSecond.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DSecond_H_ +#define _DSecond_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSecond */ +typedef long DSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSecond; +asn_struct_free_f DSecond_free; +asn_struct_print_f DSecond_print; +asn_constr_check_f DSecond_constraint; +ber_type_decoder_f DSecond_decode_ber; +der_type_encoder_f DSecond_encode_der; +xer_type_decoder_f DSecond_decode_xer; +xer_type_encoder_f DSecond_encode_xer; +oer_type_decoder_f DSecond_decode_oer; +oer_type_encoder_f DSecond_encode_oer; +per_type_decoder_f DSecond_decode_uper; +per_type_encoder_f DSecond_encode_uper; +per_type_decoder_f DSecond_decode_aper; +per_type_encoder_f DSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DSecond_H_ */ +#include diff --git a/vcits/mapem/DYear.h b/vcits/mapem/DYear.h new file mode 100644 index 0000000..cdaf704 --- /dev/null +++ b/vcits/mapem/DYear.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DYear_H_ +#define _DYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DYear */ +typedef long DYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DYear; +asn_struct_free_f DYear_free; +asn_struct_print_f DYear_print; +asn_constr_check_f DYear_constraint; +ber_type_decoder_f DYear_decode_ber; +der_type_encoder_f DYear_encode_der; +xer_type_decoder_f DYear_decode_xer; +xer_type_encoder_f DYear_encode_xer; +oer_type_decoder_f DYear_decode_oer; +oer_type_encoder_f DYear_encode_oer; +per_type_decoder_f DYear_decode_uper; +per_type_encoder_f DYear_encode_uper; +per_type_decoder_f DYear_decode_aper; +per_type_encoder_f DYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DYear_H_ */ +#include diff --git a/vcits/mapem/DangerousEndOfQueueSubCauseCode.h b/vcits/mapem/DangerousEndOfQueueSubCauseCode.h new file mode 100644 index 0000000..0ab92f7 --- /dev/null +++ b/vcits/mapem/DangerousEndOfQueueSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DangerousEndOfQueueSubCauseCode_H_ +#define _DangerousEndOfQueueSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousEndOfQueueSubCauseCode { + DangerousEndOfQueueSubCauseCode_unavailable = 0, + DangerousEndOfQueueSubCauseCode_suddenEndOfQueue = 1, + DangerousEndOfQueueSubCauseCode_queueOverHill = 2, + DangerousEndOfQueueSubCauseCode_queueAroundBend = 3, + DangerousEndOfQueueSubCauseCode_queueInTunnel = 4 +} e_DangerousEndOfQueueSubCauseCode; + +/* DangerousEndOfQueueSubCauseCode */ +typedef long DangerousEndOfQueueSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode; +asn_struct_free_f DangerousEndOfQueueSubCauseCode_free; +asn_struct_print_f DangerousEndOfQueueSubCauseCode_print; +asn_constr_check_f DangerousEndOfQueueSubCauseCode_constraint; +ber_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_ber; +der_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_der; +xer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_xer; +xer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_xer; +oer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_oer; +oer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_oer; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_uper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_uper; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_aper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousEndOfQueueSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/DangerousGoodsBasic.h b/vcits/mapem/DangerousGoodsBasic.h new file mode 100644 index 0000000..82ff8d1 --- /dev/null +++ b/vcits/mapem/DangerousGoodsBasic.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DangerousGoodsBasic_H_ +#define _DangerousGoodsBasic_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousGoodsBasic { + DangerousGoodsBasic_explosives1 = 0, + DangerousGoodsBasic_explosives2 = 1, + DangerousGoodsBasic_explosives3 = 2, + DangerousGoodsBasic_explosives4 = 3, + DangerousGoodsBasic_explosives5 = 4, + DangerousGoodsBasic_explosives6 = 5, + DangerousGoodsBasic_flammableGases = 6, + DangerousGoodsBasic_nonFlammableGases = 7, + DangerousGoodsBasic_toxicGases = 8, + DangerousGoodsBasic_flammableLiquids = 9, + DangerousGoodsBasic_flammableSolids = 10, + DangerousGoodsBasic_substancesLiableToSpontaneousCombustion = 11, + DangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater = 12, + DangerousGoodsBasic_oxidizingSubstances = 13, + DangerousGoodsBasic_organicPeroxides = 14, + DangerousGoodsBasic_toxicSubstances = 15, + DangerousGoodsBasic_infectiousSubstances = 16, + DangerousGoodsBasic_radioactiveMaterial = 17, + DangerousGoodsBasic_corrosiveSubstances = 18, + DangerousGoodsBasic_miscellaneousDangerousSubstances = 19 +} e_DangerousGoodsBasic; + +/* DangerousGoodsBasic */ +typedef long DangerousGoodsBasic_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic; +extern const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1; +asn_struct_free_f DangerousGoodsBasic_free; +asn_struct_print_f DangerousGoodsBasic_print; +asn_constr_check_f DangerousGoodsBasic_constraint; +ber_type_decoder_f DangerousGoodsBasic_decode_ber; +der_type_encoder_f DangerousGoodsBasic_encode_der; +xer_type_decoder_f DangerousGoodsBasic_decode_xer; +xer_type_encoder_f DangerousGoodsBasic_encode_xer; +oer_type_decoder_f DangerousGoodsBasic_decode_oer; +oer_type_encoder_f DangerousGoodsBasic_encode_oer; +per_type_decoder_f DangerousGoodsBasic_decode_uper; +per_type_encoder_f DangerousGoodsBasic_encode_uper; +per_type_decoder_f DangerousGoodsBasic_decode_aper; +per_type_encoder_f DangerousGoodsBasic_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsBasic_H_ */ +#include diff --git a/vcits/mapem/DangerousGoodsExtended.h b/vcits/mapem/DangerousGoodsExtended.h new file mode 100644 index 0000000..45d44b0 --- /dev/null +++ b/vcits/mapem/DangerousGoodsExtended.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DangerousGoodsExtended_H_ +#define _DangerousGoodsExtended_H_ + + +#include + +/* Including external dependencies */ +#include "DangerousGoodsBasic.h" +#include +#include +#include +#include "PhoneNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DangerousGoodsExtended */ +typedef struct DangerousGoodsExtended { + DangerousGoodsBasic_t dangerousGoodsType; + long unNumber; + BOOLEAN_t elevatedTemperature; + BOOLEAN_t tunnelsRestricted; + BOOLEAN_t limitedQuantity; + IA5String_t *emergencyActionCode; /* OPTIONAL */ + PhoneNumber_t *phoneNumber; /* OPTIONAL */ + UTF8String_t *companyName; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DangerousGoodsExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsExtended_H_ */ +#include diff --git a/vcits/mapem/DangerousSituationSubCauseCode.h b/vcits/mapem/DangerousSituationSubCauseCode.h new file mode 100644 index 0000000..be16385 --- /dev/null +++ b/vcits/mapem/DangerousSituationSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DangerousSituationSubCauseCode_H_ +#define _DangerousSituationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousSituationSubCauseCode { + DangerousSituationSubCauseCode_unavailable = 0, + DangerousSituationSubCauseCode_emergencyElectronicBrakeEngaged = 1, + DangerousSituationSubCauseCode_preCrashSystemEngaged = 2, + DangerousSituationSubCauseCode_espEngaged = 3, + DangerousSituationSubCauseCode_absEngaged = 4, + DangerousSituationSubCauseCode_aebEngaged = 5, + DangerousSituationSubCauseCode_brakeWarningEngaged = 6, + DangerousSituationSubCauseCode_collisionRiskWarningEngaged = 7 +} e_DangerousSituationSubCauseCode; + +/* DangerousSituationSubCauseCode */ +typedef long DangerousSituationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode; +asn_struct_free_f DangerousSituationSubCauseCode_free; +asn_struct_print_f DangerousSituationSubCauseCode_print; +asn_constr_check_f DangerousSituationSubCauseCode_constraint; +ber_type_decoder_f DangerousSituationSubCauseCode_decode_ber; +der_type_encoder_f DangerousSituationSubCauseCode_encode_der; +xer_type_decoder_f DangerousSituationSubCauseCode_decode_xer; +xer_type_encoder_f DangerousSituationSubCauseCode_encode_xer; +oer_type_decoder_f DangerousSituationSubCauseCode_decode_oer; +oer_type_encoder_f DangerousSituationSubCauseCode_encode_oer; +per_type_decoder_f DangerousSituationSubCauseCode_decode_uper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_uper; +per_type_decoder_f DangerousSituationSubCauseCode_decode_aper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousSituationSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/DataParameters.h b/vcits/mapem/DataParameters.h new file mode 100644 index 0000000..bf84047 --- /dev/null +++ b/vcits/mapem/DataParameters.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DataParameters_H_ +#define _DataParameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DataParameters */ +typedef struct DataParameters { + IA5String_t *processMethod; /* OPTIONAL */ + IA5String_t *processAgency; /* OPTIONAL */ + IA5String_t *lastCheckedDate; /* OPTIONAL */ + IA5String_t *geoidUsed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DataParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DataParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_DataParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DataParameters_H_ */ +#include diff --git a/vcits/mapem/DeltaAltitude.h b/vcits/mapem/DeltaAltitude.h new file mode 100644 index 0000000..9c28b2e --- /dev/null +++ b/vcits/mapem/DeltaAltitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DeltaAltitude_H_ +#define _DeltaAltitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaAltitude { + DeltaAltitude_oneCentimeterUp = 1, + DeltaAltitude_oneCentimeterDown = -1, + DeltaAltitude_unavailable = 12800 +} e_DeltaAltitude; + +/* DeltaAltitude */ +typedef long DeltaAltitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAltitude; +asn_struct_free_f DeltaAltitude_free; +asn_struct_print_f DeltaAltitude_print; +asn_constr_check_f DeltaAltitude_constraint; +ber_type_decoder_f DeltaAltitude_decode_ber; +der_type_encoder_f DeltaAltitude_encode_der; +xer_type_decoder_f DeltaAltitude_decode_xer; +xer_type_encoder_f DeltaAltitude_encode_xer; +oer_type_decoder_f DeltaAltitude_decode_oer; +oer_type_encoder_f DeltaAltitude_encode_oer; +per_type_decoder_f DeltaAltitude_decode_uper; +per_type_encoder_f DeltaAltitude_encode_uper; +per_type_decoder_f DeltaAltitude_decode_aper; +per_type_encoder_f DeltaAltitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAltitude_H_ */ +#include diff --git a/vcits/mapem/DeltaAngle.h b/vcits/mapem/DeltaAngle.h new file mode 100644 index 0000000..1e28244 --- /dev/null +++ b/vcits/mapem/DeltaAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DeltaAngle_H_ +#define _DeltaAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaAngle */ +typedef long DeltaAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAngle; +asn_struct_free_f DeltaAngle_free; +asn_struct_print_f DeltaAngle_print; +asn_constr_check_f DeltaAngle_constraint; +ber_type_decoder_f DeltaAngle_decode_ber; +der_type_encoder_f DeltaAngle_encode_der; +xer_type_decoder_f DeltaAngle_decode_xer; +xer_type_encoder_f DeltaAngle_encode_xer; +oer_type_decoder_f DeltaAngle_decode_oer; +oer_type_encoder_f DeltaAngle_encode_oer; +per_type_decoder_f DeltaAngle_decode_uper; +per_type_encoder_f DeltaAngle_encode_uper; +per_type_decoder_f DeltaAngle_decode_aper; +per_type_encoder_f DeltaAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAngle_H_ */ +#include diff --git a/vcits/mapem/DeltaLatitude.h b/vcits/mapem/DeltaLatitude.h new file mode 100644 index 0000000..f1a5986 --- /dev/null +++ b/vcits/mapem/DeltaLatitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DeltaLatitude_H_ +#define _DeltaLatitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLatitude { + DeltaLatitude_oneMicrodegreeNorth = 10, + DeltaLatitude_oneMicrodegreeSouth = -10, + DeltaLatitude_unavailable = 131072 +} e_DeltaLatitude; + +/* DeltaLatitude */ +typedef long DeltaLatitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLatitude; +asn_struct_free_f DeltaLatitude_free; +asn_struct_print_f DeltaLatitude_print; +asn_constr_check_f DeltaLatitude_constraint; +ber_type_decoder_f DeltaLatitude_decode_ber; +der_type_encoder_f DeltaLatitude_encode_der; +xer_type_decoder_f DeltaLatitude_decode_xer; +xer_type_encoder_f DeltaLatitude_encode_xer; +oer_type_decoder_f DeltaLatitude_decode_oer; +oer_type_encoder_f DeltaLatitude_encode_oer; +per_type_decoder_f DeltaLatitude_decode_uper; +per_type_encoder_f DeltaLatitude_encode_uper; +per_type_decoder_f DeltaLatitude_decode_aper; +per_type_encoder_f DeltaLatitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLatitude_H_ */ +#include diff --git a/vcits/mapem/DeltaLongitude.h b/vcits/mapem/DeltaLongitude.h new file mode 100644 index 0000000..14c4d5e --- /dev/null +++ b/vcits/mapem/DeltaLongitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DeltaLongitude_H_ +#define _DeltaLongitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLongitude { + DeltaLongitude_oneMicrodegreeEast = 10, + DeltaLongitude_oneMicrodegreeWest = -10, + DeltaLongitude_unavailable = 131072 +} e_DeltaLongitude; + +/* DeltaLongitude */ +typedef long DeltaLongitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLongitude; +asn_struct_free_f DeltaLongitude_free; +asn_struct_print_f DeltaLongitude_print; +asn_constr_check_f DeltaLongitude_constraint; +ber_type_decoder_f DeltaLongitude_decode_ber; +der_type_encoder_f DeltaLongitude_encode_der; +xer_type_decoder_f DeltaLongitude_decode_xer; +xer_type_encoder_f DeltaLongitude_encode_xer; +oer_type_decoder_f DeltaLongitude_decode_oer; +oer_type_encoder_f DeltaLongitude_encode_oer; +per_type_decoder_f DeltaLongitude_decode_uper; +per_type_encoder_f DeltaLongitude_encode_uper; +per_type_decoder_f DeltaLongitude_decode_aper; +per_type_encoder_f DeltaLongitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLongitude_H_ */ +#include diff --git a/vcits/mapem/DeltaReferencePosition.h b/vcits/mapem/DeltaReferencePosition.h new file mode 100644 index 0000000..462c6fc --- /dev/null +++ b/vcits/mapem/DeltaReferencePosition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DeltaReferencePosition_H_ +#define _DeltaReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaLatitude.h" +#include "DeltaLongitude.h" +#include "DeltaAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaReferencePosition */ +typedef struct DeltaReferencePosition { + DeltaLatitude_t deltaLatitude; + DeltaLongitude_t deltaLongitude; + DeltaAltitude_t deltaAltitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DeltaReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaReferencePosition_H_ */ +#include diff --git a/vcits/mapem/DeltaTime.h b/vcits/mapem/DeltaTime.h new file mode 100644 index 0000000..19b22be --- /dev/null +++ b/vcits/mapem/DeltaTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DeltaTime_H_ +#define _DeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaTime */ +typedef long DeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaTime; +asn_struct_free_f DeltaTime_free; +asn_struct_print_f DeltaTime_print; +asn_constr_check_f DeltaTime_constraint; +ber_type_decoder_f DeltaTime_decode_ber; +der_type_encoder_f DeltaTime_encode_der; +xer_type_decoder_f DeltaTime_decode_xer; +xer_type_encoder_f DeltaTime_encode_xer; +oer_type_decoder_f DeltaTime_decode_oer; +oer_type_encoder_f DeltaTime_encode_oer; +per_type_decoder_f DeltaTime_decode_uper; +per_type_encoder_f DeltaTime_encode_uper; +per_type_decoder_f DeltaTime_decode_aper; +per_type_encoder_f DeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaTime_H_ */ +#include diff --git a/vcits/mapem/DescriptiveName.h b/vcits/mapem/DescriptiveName.h new file mode 100644 index 0000000..aabcfaf --- /dev/null +++ b/vcits/mapem/DescriptiveName.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DescriptiveName_H_ +#define _DescriptiveName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DescriptiveName */ +typedef IA5String_t DescriptiveName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DescriptiveName; +asn_struct_free_f DescriptiveName_free; +asn_struct_print_f DescriptiveName_print; +asn_constr_check_f DescriptiveName_constraint; +ber_type_decoder_f DescriptiveName_decode_ber; +der_type_encoder_f DescriptiveName_encode_der; +xer_type_decoder_f DescriptiveName_decode_xer; +xer_type_encoder_f DescriptiveName_encode_xer; +oer_type_decoder_f DescriptiveName_decode_oer; +oer_type_encoder_f DescriptiveName_encode_oer; +per_type_decoder_f DescriptiveName_decode_uper; +per_type_encoder_f DescriptiveName_encode_uper; +per_type_decoder_f DescriptiveName_decode_aper; +per_type_encoder_f DescriptiveName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DescriptiveName_H_ */ +#include diff --git a/vcits/mapem/DigitalMap.h b/vcits/mapem/DigitalMap.h new file mode 100644 index 0000000..a078cd3 --- /dev/null +++ b/vcits/mapem/DigitalMap.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DigitalMap_H_ +#define _DigitalMap_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* DigitalMap */ +typedef struct DigitalMap { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DigitalMap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DigitalMap; + +#ifdef __cplusplus +} +#endif + +#endif /* _DigitalMap_H_ */ +#include diff --git a/vcits/mapem/DriveDirection.h b/vcits/mapem/DriveDirection.h new file mode 100644 index 0000000..1575436 --- /dev/null +++ b/vcits/mapem/DriveDirection.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DriveDirection_H_ +#define _DriveDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DriveDirection { + DriveDirection_forward = 0, + DriveDirection_backward = 1, + DriveDirection_unavailable = 2 +} e_DriveDirection; + +/* DriveDirection */ +typedef long DriveDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DriveDirection; +asn_struct_free_f DriveDirection_free; +asn_struct_print_f DriveDirection_print; +asn_constr_check_f DriveDirection_constraint; +ber_type_decoder_f DriveDirection_decode_ber; +der_type_encoder_f DriveDirection_encode_der; +xer_type_decoder_f DriveDirection_decode_xer; +xer_type_encoder_f DriveDirection_encode_xer; +oer_type_decoder_f DriveDirection_decode_oer; +oer_type_encoder_f DriveDirection_encode_oer; +per_type_decoder_f DriveDirection_decode_uper; +per_type_encoder_f DriveDirection_encode_uper; +per_type_decoder_f DriveDirection_decode_aper; +per_type_encoder_f DriveDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DriveDirection_H_ */ +#include diff --git a/vcits/mapem/DrivenLineOffsetLg.h b/vcits/mapem/DrivenLineOffsetLg.h new file mode 100644 index 0000000..8a4463a --- /dev/null +++ b/vcits/mapem/DrivenLineOffsetLg.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DrivenLineOffsetLg_H_ +#define _DrivenLineOffsetLg_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetLg */ +typedef long DrivenLineOffsetLg_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg; +asn_struct_free_f DrivenLineOffsetLg_free; +asn_struct_print_f DrivenLineOffsetLg_print; +asn_constr_check_f DrivenLineOffsetLg_constraint; +ber_type_decoder_f DrivenLineOffsetLg_decode_ber; +der_type_encoder_f DrivenLineOffsetLg_encode_der; +xer_type_decoder_f DrivenLineOffsetLg_decode_xer; +xer_type_encoder_f DrivenLineOffsetLg_encode_xer; +oer_type_decoder_f DrivenLineOffsetLg_decode_oer; +oer_type_encoder_f DrivenLineOffsetLg_encode_oer; +per_type_decoder_f DrivenLineOffsetLg_decode_uper; +per_type_encoder_f DrivenLineOffsetLg_encode_uper; +per_type_decoder_f DrivenLineOffsetLg_decode_aper; +per_type_encoder_f DrivenLineOffsetLg_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetLg_H_ */ +#include diff --git a/vcits/mapem/DrivenLineOffsetSm.h b/vcits/mapem/DrivenLineOffsetSm.h new file mode 100644 index 0000000..4820921 --- /dev/null +++ b/vcits/mapem/DrivenLineOffsetSm.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DrivenLineOffsetSm_H_ +#define _DrivenLineOffsetSm_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetSm */ +typedef long DrivenLineOffsetSm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm; +asn_struct_free_f DrivenLineOffsetSm_free; +asn_struct_print_f DrivenLineOffsetSm_print; +asn_constr_check_f DrivenLineOffsetSm_constraint; +ber_type_decoder_f DrivenLineOffsetSm_decode_ber; +der_type_encoder_f DrivenLineOffsetSm_encode_der; +xer_type_decoder_f DrivenLineOffsetSm_decode_xer; +xer_type_encoder_f DrivenLineOffsetSm_encode_xer; +oer_type_decoder_f DrivenLineOffsetSm_decode_oer; +oer_type_encoder_f DrivenLineOffsetSm_encode_oer; +per_type_decoder_f DrivenLineOffsetSm_decode_uper; +per_type_encoder_f DrivenLineOffsetSm_encode_uper; +per_type_decoder_f DrivenLineOffsetSm_decode_aper; +per_type_encoder_f DrivenLineOffsetSm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetSm_H_ */ +#include diff --git a/vcits/mapem/DrivingLaneStatus.h b/vcits/mapem/DrivingLaneStatus.h new file mode 100644 index 0000000..8986d29 --- /dev/null +++ b/vcits/mapem/DrivingLaneStatus.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _DrivingLaneStatus_H_ +#define _DrivingLaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivingLaneStatus */ +typedef BIT_STRING_t DrivingLaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus; +asn_struct_free_f DrivingLaneStatus_free; +asn_struct_print_f DrivingLaneStatus_print; +asn_constr_check_f DrivingLaneStatus_constraint; +ber_type_decoder_f DrivingLaneStatus_decode_ber; +der_type_encoder_f DrivingLaneStatus_encode_der; +xer_type_decoder_f DrivingLaneStatus_decode_xer; +xer_type_encoder_f DrivingLaneStatus_encode_xer; +oer_type_decoder_f DrivingLaneStatus_decode_oer; +oer_type_encoder_f DrivingLaneStatus_encode_oer; +per_type_decoder_f DrivingLaneStatus_decode_uper; +per_type_encoder_f DrivingLaneStatus_encode_uper; +per_type_decoder_f DrivingLaneStatus_decode_aper; +per_type_encoder_f DrivingLaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivingLaneStatus_H_ */ +#include diff --git a/vcits/mapem/Elevation.h b/vcits/mapem/Elevation.h new file mode 100644 index 0000000..4c70401 --- /dev/null +++ b/vcits/mapem/Elevation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Elevation_H_ +#define _Elevation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Elevation */ +typedef long Elevation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Elevation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Elevation; +asn_struct_free_f Elevation_free; +asn_struct_print_f Elevation_print; +asn_constr_check_f Elevation_constraint; +ber_type_decoder_f Elevation_decode_ber; +der_type_encoder_f Elevation_encode_der; +xer_type_decoder_f Elevation_decode_xer; +xer_type_encoder_f Elevation_encode_xer; +oer_type_decoder_f Elevation_decode_oer; +oer_type_encoder_f Elevation_encode_oer; +per_type_decoder_f Elevation_decode_uper; +per_type_encoder_f Elevation_encode_uper; +per_type_decoder_f Elevation_decode_aper; +per_type_encoder_f Elevation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Elevation_H_ */ +#include diff --git a/vcits/mapem/ElevationConfidence.h b/vcits/mapem/ElevationConfidence.h new file mode 100644 index 0000000..8039773 --- /dev/null +++ b/vcits/mapem/ElevationConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ElevationConfidence_H_ +#define _ElevationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ElevationConfidence { + ElevationConfidence_unavailable = 0, + ElevationConfidence_elev_500_00 = 1, + ElevationConfidence_elev_200_00 = 2, + ElevationConfidence_elev_100_00 = 3, + ElevationConfidence_elev_050_00 = 4, + ElevationConfidence_elev_020_00 = 5, + ElevationConfidence_elev_010_00 = 6, + ElevationConfidence_elev_005_00 = 7, + ElevationConfidence_elev_002_00 = 8, + ElevationConfidence_elev_001_00 = 9, + ElevationConfidence_elev_000_50 = 10, + ElevationConfidence_elev_000_20 = 11, + ElevationConfidence_elev_000_10 = 12, + ElevationConfidence_elev_000_05 = 13, + ElevationConfidence_elev_000_02 = 14, + ElevationConfidence_elev_000_01 = 15 +} e_ElevationConfidence; + +/* ElevationConfidence */ +typedef long ElevationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ElevationConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1; +asn_struct_free_f ElevationConfidence_free; +asn_struct_print_f ElevationConfidence_print; +asn_constr_check_f ElevationConfidence_constraint; +ber_type_decoder_f ElevationConfidence_decode_ber; +der_type_encoder_f ElevationConfidence_encode_der; +xer_type_decoder_f ElevationConfidence_decode_xer; +xer_type_encoder_f ElevationConfidence_encode_xer; +oer_type_decoder_f ElevationConfidence_decode_oer; +oer_type_encoder_f ElevationConfidence_encode_oer; +per_type_decoder_f ElevationConfidence_decode_uper; +per_type_encoder_f ElevationConfidence_encode_uper; +per_type_decoder_f ElevationConfidence_decode_aper; +per_type_encoder_f ElevationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ElevationConfidence_H_ */ +#include diff --git a/vcits/mapem/EmbarkationStatus.h b/vcits/mapem/EmbarkationStatus.h new file mode 100644 index 0000000..5919643 --- /dev/null +++ b/vcits/mapem/EmbarkationStatus.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _EmbarkationStatus_H_ +#define _EmbarkationStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EmbarkationStatus */ +typedef BOOLEAN_t EmbarkationStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus; +asn_struct_free_f EmbarkationStatus_free; +asn_struct_print_f EmbarkationStatus_print; +asn_constr_check_f EmbarkationStatus_constraint; +ber_type_decoder_f EmbarkationStatus_decode_ber; +der_type_encoder_f EmbarkationStatus_encode_der; +xer_type_decoder_f EmbarkationStatus_decode_xer; +xer_type_encoder_f EmbarkationStatus_encode_xer; +oer_type_decoder_f EmbarkationStatus_decode_oer; +oer_type_encoder_f EmbarkationStatus_encode_oer; +per_type_decoder_f EmbarkationStatus_decode_uper; +per_type_encoder_f EmbarkationStatus_encode_uper; +per_type_decoder_f EmbarkationStatus_decode_aper; +per_type_encoder_f EmbarkationStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmbarkationStatus_H_ */ +#include diff --git a/vcits/mapem/EmergencyPriority.h b/vcits/mapem/EmergencyPriority.h new file mode 100644 index 0000000..83ff5a3 --- /dev/null +++ b/vcits/mapem/EmergencyPriority.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _EmergencyPriority_H_ +#define _EmergencyPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyPriority { + EmergencyPriority_requestForRightOfWay = 0, + EmergencyPriority_requestForFreeCrossingAtATrafficLight = 1 +} e_EmergencyPriority; + +/* EmergencyPriority */ +typedef BIT_STRING_t EmergencyPriority_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyPriority; +asn_struct_free_f EmergencyPriority_free; +asn_struct_print_f EmergencyPriority_print; +asn_constr_check_f EmergencyPriority_constraint; +ber_type_decoder_f EmergencyPriority_decode_ber; +der_type_encoder_f EmergencyPriority_encode_der; +xer_type_decoder_f EmergencyPriority_decode_xer; +xer_type_encoder_f EmergencyPriority_encode_xer; +oer_type_decoder_f EmergencyPriority_decode_oer; +oer_type_encoder_f EmergencyPriority_encode_oer; +per_type_decoder_f EmergencyPriority_decode_uper; +per_type_encoder_f EmergencyPriority_encode_uper; +per_type_decoder_f EmergencyPriority_decode_aper; +per_type_encoder_f EmergencyPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyPriority_H_ */ +#include diff --git a/vcits/mapem/EmergencyVehicleApproachingSubCauseCode.h b/vcits/mapem/EmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 0000000..943df86 --- /dev/null +++ b/vcits/mapem/EmergencyVehicleApproachingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _EmergencyVehicleApproachingSubCauseCode_H_ +#define _EmergencyVehicleApproachingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyVehicleApproachingSubCauseCode { + EmergencyVehicleApproachingSubCauseCode_unavailable = 0, + EmergencyVehicleApproachingSubCauseCode_emergencyVehicleApproaching = 1, + EmergencyVehicleApproachingSubCauseCode_prioritizedVehicleApproaching = 2 +} e_EmergencyVehicleApproachingSubCauseCode; + +/* EmergencyVehicleApproachingSubCauseCode */ +typedef long EmergencyVehicleApproachingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode; +asn_struct_free_f EmergencyVehicleApproachingSubCauseCode_free; +asn_struct_print_f EmergencyVehicleApproachingSubCauseCode_print; +asn_constr_check_f EmergencyVehicleApproachingSubCauseCode_constraint; +ber_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_ber; +der_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_der; +xer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_xer; +xer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_xer; +oer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_oer; +oer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_oer; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_uper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_uper; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_aper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyVehicleApproachingSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/EmissionType.h b/vcits/mapem/EmissionType.h new file mode 100644 index 0000000..79f395d --- /dev/null +++ b/vcits/mapem/EmissionType.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _EmissionType_H_ +#define _EmissionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmissionType { + EmissionType_euro1 = 0, + EmissionType_euro2 = 1, + EmissionType_euro3 = 2, + EmissionType_euro4 = 3, + EmissionType_euro5 = 4, + EmissionType_euro6 = 5 + /* + * Enumeration is extensible + */ +} e_EmissionType; + +/* EmissionType */ +typedef long EmissionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EmissionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EmissionType; +extern const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1; +asn_struct_free_f EmissionType_free; +asn_struct_print_f EmissionType_print; +asn_constr_check_f EmissionType_constraint; +ber_type_decoder_f EmissionType_decode_ber; +der_type_encoder_f EmissionType_encode_der; +xer_type_decoder_f EmissionType_decode_xer; +xer_type_encoder_f EmissionType_encode_xer; +oer_type_decoder_f EmissionType_decode_oer; +oer_type_encoder_f EmissionType_encode_oer; +per_type_decoder_f EmissionType_decode_uper; +per_type_encoder_f EmissionType_encode_uper; +per_type_decoder_f EmissionType_decode_aper; +per_type_encoder_f EmissionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmissionType_H_ */ +#include diff --git a/vcits/mapem/EnabledLaneList.h b/vcits/mapem/EnabledLaneList.h new file mode 100644 index 0000000..83a161b --- /dev/null +++ b/vcits/mapem/EnabledLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _EnabledLaneList_H_ +#define _EnabledLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EnabledLaneList */ +typedef struct EnabledLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EnabledLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnabledLaneList; +extern asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_EnabledLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnabledLaneList_H_ */ +#include diff --git a/vcits/mapem/EnergyStorageType.h b/vcits/mapem/EnergyStorageType.h new file mode 100644 index 0000000..57d4f46 --- /dev/null +++ b/vcits/mapem/EnergyStorageType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _EnergyStorageType_H_ +#define _EnergyStorageType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EnergyStorageType { + EnergyStorageType_hydrogenStorage = 0, + EnergyStorageType_electricEnergyStorage = 1, + EnergyStorageType_liquidPropaneGas = 2, + EnergyStorageType_compressedNaturalGas = 3, + EnergyStorageType_diesel = 4, + EnergyStorageType_gasoline = 5, + EnergyStorageType_ammonia = 6 +} e_EnergyStorageType; + +/* EnergyStorageType */ +typedef BIT_STRING_t EnergyStorageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnergyStorageType; +asn_struct_free_f EnergyStorageType_free; +asn_struct_print_f EnergyStorageType_print; +asn_constr_check_f EnergyStorageType_constraint; +ber_type_decoder_f EnergyStorageType_decode_ber; +der_type_encoder_f EnergyStorageType_encode_der; +xer_type_decoder_f EnergyStorageType_decode_xer; +xer_type_encoder_f EnergyStorageType_encode_xer; +oer_type_decoder_f EnergyStorageType_decode_oer; +oer_type_encoder_f EnergyStorageType_encode_oer; +per_type_decoder_f EnergyStorageType_decode_uper; +per_type_encoder_f EnergyStorageType_encode_uper; +per_type_decoder_f EnergyStorageType_decode_aper; +per_type_encoder_f EnergyStorageType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnergyStorageType_H_ */ +#include diff --git a/vcits/mapem/EuVehicleCategoryCode.h b/vcits/mapem/EuVehicleCategoryCode.h new file mode 100644 index 0000000..689bf1a --- /dev/null +++ b/vcits/mapem/EuVehicleCategoryCode.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _EuVehicleCategoryCode_H_ +#define _EuVehicleCategoryCode_H_ + + +#include + +/* Including external dependencies */ +#include "EuVehicleCategoryL.h" +#include "EuVehicleCategoryM.h" +#include "EuVehicleCategoryN.h" +#include "EuVehicleCategoryO.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryCode_PR { + EuVehicleCategoryCode_PR_NOTHING, /* No components present */ + EuVehicleCategoryCode_PR_euVehicleCategoryL, + EuVehicleCategoryCode_PR_euVehicleCategoryM, + EuVehicleCategoryCode_PR_euVehicleCategoryN, + EuVehicleCategoryCode_PR_euVehicleCategoryO, + EuVehicleCategoryCode_PR_euVehilcleCategoryT, + EuVehicleCategoryCode_PR_euVehilcleCategoryG +} EuVehicleCategoryCode_PR; + +/* EuVehicleCategoryCode */ +typedef struct EuVehicleCategoryCode { + EuVehicleCategoryCode_PR present; + union EuVehicleCategoryCode_u { + EuVehicleCategoryL_t euVehicleCategoryL; + EuVehicleCategoryM_t euVehicleCategoryM; + EuVehicleCategoryN_t euVehicleCategoryN; + EuVehicleCategoryO_t euVehicleCategoryO; + NULL_t euVehilcleCategoryT; + NULL_t euVehilcleCategoryG; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EuVehicleCategoryCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryCode_H_ */ +#include diff --git a/vcits/mapem/EuVehicleCategoryL.h b/vcits/mapem/EuVehicleCategoryL.h new file mode 100644 index 0000000..9dc3c72 --- /dev/null +++ b/vcits/mapem/EuVehicleCategoryL.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _EuVehicleCategoryL_H_ +#define _EuVehicleCategoryL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryL { + EuVehicleCategoryL_l1 = 0, + EuVehicleCategoryL_l2 = 1, + EuVehicleCategoryL_l3 = 2, + EuVehicleCategoryL_l4 = 3, + EuVehicleCategoryL_l5 = 4, + EuVehicleCategoryL_l6 = 5, + EuVehicleCategoryL_l7 = 6 +} e_EuVehicleCategoryL; + +/* EuVehicleCategoryL */ +typedef long EuVehicleCategoryL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryL; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryL_specs_1; +asn_struct_free_f EuVehicleCategoryL_free; +asn_struct_print_f EuVehicleCategoryL_print; +asn_constr_check_f EuVehicleCategoryL_constraint; +ber_type_decoder_f EuVehicleCategoryL_decode_ber; +der_type_encoder_f EuVehicleCategoryL_encode_der; +xer_type_decoder_f EuVehicleCategoryL_decode_xer; +xer_type_encoder_f EuVehicleCategoryL_encode_xer; +oer_type_decoder_f EuVehicleCategoryL_decode_oer; +oer_type_encoder_f EuVehicleCategoryL_encode_oer; +per_type_decoder_f EuVehicleCategoryL_decode_uper; +per_type_encoder_f EuVehicleCategoryL_encode_uper; +per_type_decoder_f EuVehicleCategoryL_decode_aper; +per_type_encoder_f EuVehicleCategoryL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryL_H_ */ +#include diff --git a/vcits/mapem/EuVehicleCategoryM.h b/vcits/mapem/EuVehicleCategoryM.h new file mode 100644 index 0000000..b608c51 --- /dev/null +++ b/vcits/mapem/EuVehicleCategoryM.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _EuVehicleCategoryM_H_ +#define _EuVehicleCategoryM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryM { + EuVehicleCategoryM_m1 = 0, + EuVehicleCategoryM_m2 = 1, + EuVehicleCategoryM_m3 = 2 +} e_EuVehicleCategoryM; + +/* EuVehicleCategoryM */ +typedef long EuVehicleCategoryM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryM; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryM_specs_1; +asn_struct_free_f EuVehicleCategoryM_free; +asn_struct_print_f EuVehicleCategoryM_print; +asn_constr_check_f EuVehicleCategoryM_constraint; +ber_type_decoder_f EuVehicleCategoryM_decode_ber; +der_type_encoder_f EuVehicleCategoryM_encode_der; +xer_type_decoder_f EuVehicleCategoryM_decode_xer; +xer_type_encoder_f EuVehicleCategoryM_encode_xer; +oer_type_decoder_f EuVehicleCategoryM_decode_oer; +oer_type_encoder_f EuVehicleCategoryM_encode_oer; +per_type_decoder_f EuVehicleCategoryM_decode_uper; +per_type_encoder_f EuVehicleCategoryM_encode_uper; +per_type_decoder_f EuVehicleCategoryM_decode_aper; +per_type_encoder_f EuVehicleCategoryM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryM_H_ */ +#include diff --git a/vcits/mapem/EuVehicleCategoryN.h b/vcits/mapem/EuVehicleCategoryN.h new file mode 100644 index 0000000..1b8c47f --- /dev/null +++ b/vcits/mapem/EuVehicleCategoryN.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _EuVehicleCategoryN_H_ +#define _EuVehicleCategoryN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryN { + EuVehicleCategoryN_n1 = 0, + EuVehicleCategoryN_n2 = 1, + EuVehicleCategoryN_n3 = 2 +} e_EuVehicleCategoryN; + +/* EuVehicleCategoryN */ +typedef long EuVehicleCategoryN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryN; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryN_specs_1; +asn_struct_free_f EuVehicleCategoryN_free; +asn_struct_print_f EuVehicleCategoryN_print; +asn_constr_check_f EuVehicleCategoryN_constraint; +ber_type_decoder_f EuVehicleCategoryN_decode_ber; +der_type_encoder_f EuVehicleCategoryN_encode_der; +xer_type_decoder_f EuVehicleCategoryN_decode_xer; +xer_type_encoder_f EuVehicleCategoryN_encode_xer; +oer_type_decoder_f EuVehicleCategoryN_decode_oer; +oer_type_encoder_f EuVehicleCategoryN_encode_oer; +per_type_decoder_f EuVehicleCategoryN_decode_uper; +per_type_encoder_f EuVehicleCategoryN_encode_uper; +per_type_decoder_f EuVehicleCategoryN_decode_aper; +per_type_encoder_f EuVehicleCategoryN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryN_H_ */ +#include diff --git a/vcits/mapem/EuVehicleCategoryO.h b/vcits/mapem/EuVehicleCategoryO.h new file mode 100644 index 0000000..65aaec8 --- /dev/null +++ b/vcits/mapem/EuVehicleCategoryO.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _EuVehicleCategoryO_H_ +#define _EuVehicleCategoryO_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryO { + EuVehicleCategoryO_o1 = 0, + EuVehicleCategoryO_o2 = 1, + EuVehicleCategoryO_o3 = 2, + EuVehicleCategoryO_o4 = 3 +} e_EuVehicleCategoryO; + +/* EuVehicleCategoryO */ +typedef long EuVehicleCategoryO_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryO_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryO; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryO_specs_1; +asn_struct_free_f EuVehicleCategoryO_free; +asn_struct_print_f EuVehicleCategoryO_print; +asn_constr_check_f EuVehicleCategoryO_constraint; +ber_type_decoder_f EuVehicleCategoryO_decode_ber; +der_type_encoder_f EuVehicleCategoryO_encode_der; +xer_type_decoder_f EuVehicleCategoryO_decode_xer; +xer_type_encoder_f EuVehicleCategoryO_encode_xer; +oer_type_decoder_f EuVehicleCategoryO_decode_oer; +oer_type_encoder_f EuVehicleCategoryO_encode_oer; +per_type_decoder_f EuVehicleCategoryO_decode_uper; +per_type_encoder_f EuVehicleCategoryO_encode_uper; +per_type_decoder_f EuVehicleCategoryO_decode_aper; +per_type_encoder_f EuVehicleCategoryO_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryO_H_ */ +#include diff --git a/vcits/mapem/EventHistory.h b/vcits/mapem/EventHistory.h new file mode 100644 index 0000000..9656005 --- /dev/null +++ b/vcits/mapem/EventHistory.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _EventHistory_H_ +#define _EventHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EventPoint; + +/* EventHistory */ +typedef struct EventHistory { + A_SEQUENCE_OF(struct EventPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventHistory; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventHistory_H_ */ +#include diff --git a/vcits/mapem/EventPoint.h b/vcits/mapem/EventPoint.h new file mode 100644 index 0000000..4ea409e --- /dev/null +++ b/vcits/mapem/EventPoint.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _EventPoint_H_ +#define _EventPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include "InformationQuality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EventPoint */ +typedef struct EventPoint { + DeltaReferencePosition_t eventPosition; + PathDeltaTime_t *eventDeltaTime; /* OPTIONAL */ + InformationQuality_t informationQuality; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_EventPoint_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventPoint_H_ */ +#include diff --git a/vcits/mapem/ExceptionalCondition.h b/vcits/mapem/ExceptionalCondition.h new file mode 100644 index 0000000..68f15d6 --- /dev/null +++ b/vcits/mapem/ExceptionalCondition.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ExceptionalCondition_H_ +#define _ExceptionalCondition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExceptionalCondition { + ExceptionalCondition_unknown = 0, + ExceptionalCondition_publicTransportPriority = 1, + ExceptionalCondition_emergencyVehiclePriority = 2, + ExceptionalCondition_trainPriority = 3, + ExceptionalCondition_bridgeOpen = 4, + ExceptionalCondition_vehicleHeight = 5, + ExceptionalCondition_weather = 6, + ExceptionalCondition_trafficJam = 7, + ExceptionalCondition_tunnelClosure = 8, + ExceptionalCondition_meteringActive = 9, + ExceptionalCondition_truckPriority = 10, + ExceptionalCondition_bicyclePlatoonPriority = 11, + ExceptionalCondition_vehiclePlatoonPriority = 12 + /* + * Enumeration is extensible + */ +} e_ExceptionalCondition; + +/* ExceptionalCondition */ +typedef long ExceptionalCondition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ExceptionalCondition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ExceptionalCondition; +extern const asn_INTEGER_specifics_t asn_SPC_ExceptionalCondition_specs_1; +asn_struct_free_f ExceptionalCondition_free; +asn_struct_print_f ExceptionalCondition_print; +asn_constr_check_f ExceptionalCondition_constraint; +ber_type_decoder_f ExceptionalCondition_decode_ber; +der_type_encoder_f ExceptionalCondition_encode_der; +xer_type_decoder_f ExceptionalCondition_decode_xer; +xer_type_encoder_f ExceptionalCondition_encode_xer; +oer_type_decoder_f ExceptionalCondition_decode_oer; +oer_type_encoder_f ExceptionalCondition_encode_oer; +per_type_decoder_f ExceptionalCondition_decode_uper; +per_type_encoder_f ExceptionalCondition_encode_uper; +per_type_decoder_f ExceptionalCondition_decode_aper; +per_type_encoder_f ExceptionalCondition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExceptionalCondition_H_ */ +#include diff --git a/vcits/mapem/ExteriorLights.h b/vcits/mapem/ExteriorLights.h new file mode 100644 index 0000000..6b34a26 --- /dev/null +++ b/vcits/mapem/ExteriorLights.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ExteriorLights_H_ +#define _ExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExteriorLights { + ExteriorLights_lowBeamHeadlightsOn = 0, + ExteriorLights_highBeamHeadlightsOn = 1, + ExteriorLights_leftTurnSignalOn = 2, + ExteriorLights_rightTurnSignalOn = 3, + ExteriorLights_daytimeRunningLightsOn = 4, + ExteriorLights_reverseLightOn = 5, + ExteriorLights_fogLightOn = 6, + ExteriorLights_parkingLightsOn = 7 +} e_ExteriorLights; + +/* ExteriorLights */ +typedef BIT_STRING_t ExteriorLights_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ExteriorLights; +asn_struct_free_f ExteriorLights_free; +asn_struct_print_f ExteriorLights_print; +asn_constr_check_f ExteriorLights_constraint; +ber_type_decoder_f ExteriorLights_decode_ber; +der_type_encoder_f ExteriorLights_encode_der; +xer_type_decoder_f ExteriorLights_decode_xer; +xer_type_encoder_f ExteriorLights_encode_xer; +oer_type_decoder_f ExteriorLights_decode_oer; +oer_type_encoder_f ExteriorLights_encode_oer; +per_type_decoder_f ExteriorLights_decode_uper; +per_type_encoder_f ExteriorLights_encode_uper; +per_type_decoder_f ExteriorLights_decode_aper; +per_type_encoder_f ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExteriorLights_H_ */ +#include diff --git a/vcits/mapem/FreightContainerData.h b/vcits/mapem/FreightContainerData.h new file mode 100644 index 0000000..a2bdcf4 --- /dev/null +++ b/vcits/mapem/FreightContainerData.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _FreightContainerData_H_ +#define _FreightContainerData_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FreightContainerData */ +typedef struct FreightContainerData { + BIT_STRING_t ownerCode; + long serialNumber; + long checkDigit; + long length; + long height; + long width; + long containerTypeCode; + long maximumGrossMass; + long tareMass; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreightContainerData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreightContainerData; +extern asn_SEQUENCE_specifics_t asn_SPC_FreightContainerData_specs_1; +extern asn_TYPE_member_t asn_MBR_FreightContainerData_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreightContainerData_H_ */ +#include diff --git a/vcits/mapem/FuelType.h b/vcits/mapem/FuelType.h new file mode 100644 index 0000000..350ec2a --- /dev/null +++ b/vcits/mapem/FuelType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _FuelType_H_ +#define _FuelType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FuelType */ +typedef long FuelType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FuelType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FuelType; +asn_struct_free_f FuelType_free; +asn_struct_print_f FuelType_print; +asn_constr_check_f FuelType_constraint; +ber_type_decoder_f FuelType_decode_ber; +der_type_encoder_f FuelType_encode_der; +xer_type_decoder_f FuelType_decode_xer; +xer_type_encoder_f FuelType_encode_xer; +oer_type_decoder_f FuelType_decode_oer; +oer_type_encoder_f FuelType_encode_oer; +per_type_decoder_f FuelType_decode_uper; +per_type_encoder_f FuelType_encode_uper; +per_type_decoder_f FuelType_decode_aper; +per_type_encoder_f FuelType_encode_aper; +#define FuelType_unknownFuel ((FuelType_t)0) +#define FuelType_gasoline ((FuelType_t)1) +#define FuelType_ethanol ((FuelType_t)2) +#define FuelType_diesel ((FuelType_t)3) +#define FuelType_electric ((FuelType_t)4) +#define FuelType_hybrid ((FuelType_t)5) +#define FuelType_hydrogen ((FuelType_t)6) +#define FuelType_natGasLiquid ((FuelType_t)7) +#define FuelType_natGasComp ((FuelType_t)8) +#define FuelType_propane ((FuelType_t)9) + +#ifdef __cplusplus +} +#endif + +#endif /* _FuelType_H_ */ +#include diff --git a/vcits/mapem/FullPositionVector.h b/vcits/mapem/FullPositionVector.h new file mode 100644 index 0000000..5cebf55 --- /dev/null +++ b/vcits/mapem/FullPositionVector.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _FullPositionVector_H_ +#define _FullPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include "Elevation.h" +#include "HeadingDSRC.h" +#include "TimeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DDateTime; +struct TransmissionAndSpeed; +struct PositionalAccuracy; +struct PositionConfidenceSet; +struct SpeedandHeadingandThrottleConfidence; + +/* FullPositionVector */ +typedef struct FullPositionVector { + struct DDateTime *utcTime; /* OPTIONAL */ + Longitude_t Long; + Latitude_t lat; + Elevation_t *elevation; /* OPTIONAL */ + HeadingDSRC_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + struct PositionalAccuracy *posAccuracy; /* OPTIONAL */ + TimeConfidence_t *timeConfidence; /* OPTIONAL */ + struct PositionConfidenceSet *posConfidence; /* OPTIONAL */ + struct SpeedandHeadingandThrottleConfidence *speedConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FullPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FullPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_FullPositionVector_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FullPositionVector_H_ */ +#include diff --git a/vcits/mapem/GNSSstatus.h b/vcits/mapem/GNSSstatus.h new file mode 100644 index 0000000..0d51743 --- /dev/null +++ b/vcits/mapem/GNSSstatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _GNSSstatus_H_ +#define _GNSSstatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GNSSstatus { + GNSSstatus_unavailable = 0, + GNSSstatus_isHealthy = 1, + GNSSstatus_isMonitored = 2, + GNSSstatus_baseStationType = 3, + GNSSstatus_aPDOPofUnder5 = 4, + GNSSstatus_inViewOfUnder5 = 5, + GNSSstatus_localCorrectionsPresent = 6, + GNSSstatus_networkCorrectionsPresent = 7 +} e_GNSSstatus; + +/* GNSSstatus */ +typedef BIT_STRING_t GNSSstatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GNSSstatus; +asn_struct_free_f GNSSstatus_free; +asn_struct_print_f GNSSstatus_print; +asn_constr_check_f GNSSstatus_constraint; +ber_type_decoder_f GNSSstatus_decode_ber; +der_type_encoder_f GNSSstatus_encode_der; +xer_type_decoder_f GNSSstatus_decode_xer; +xer_type_encoder_f GNSSstatus_encode_xer; +oer_type_decoder_f GNSSstatus_decode_oer; +oer_type_encoder_f GNSSstatus_encode_oer; +per_type_decoder_f GNSSstatus_decode_uper; +per_type_encoder_f GNSSstatus_encode_uper; +per_type_decoder_f GNSSstatus_decode_aper; +per_type_encoder_f GNSSstatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNSSstatus_H_ */ +#include diff --git a/vcits/mapem/GenericLane.h b/vcits/mapem/GenericLane.h new file mode 100644 index 0000000..bfccf1f --- /dev/null +++ b/vcits/mapem/GenericLane.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _GenericLane_H_ +#define _GenericLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "DescriptiveName.h" +#include "ApproachID.h" +#include "LaneAttributes.h" +#include "AllowedManeuvers.h" +#include "NodeListXY.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectsToList; +struct OverlayLaneList; +struct Reg_GenericLane; + +/* GenericLane */ +typedef struct GenericLane { + LaneID_t laneID; + DescriptiveName_t *name; /* OPTIONAL */ + ApproachID_t *ingressApproach; /* OPTIONAL */ + ApproachID_t *egressApproach; /* OPTIONAL */ + LaneAttributes_t laneAttributes; + AllowedManeuvers_t *maneuvers; /* OPTIONAL */ + NodeListXY_t nodeList; + struct ConnectsToList *connectsTo; /* OPTIONAL */ + struct OverlayLaneList *overlays; /* OPTIONAL */ + struct GenericLane__regional { + A_SEQUENCE_OF(struct Reg_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GenericLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1; +extern asn_TYPE_member_t asn_MBR_GenericLane_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GenericLane_H_ */ +#include diff --git a/vcits/mapem/GeoGraphicalLimit.h b/vcits/mapem/GeoGraphicalLimit.h new file mode 100644 index 0000000..10d4771 --- /dev/null +++ b/vcits/mapem/GeoGraphicalLimit.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _GeoGraphicalLimit_H_ +#define _GeoGraphicalLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GeoGraphicalLimit { + GeoGraphicalLimit_globalRestriction = 0, + GeoGraphicalLimit_regionalRestriction = 1, + GeoGraphicalLimit_nationalRestriction = 2, + GeoGraphicalLimit_district = 3, + GeoGraphicalLimit_issuerCoverageRestriction = 4, + GeoGraphicalLimit_reservedForCEN1 = 5, + GeoGraphicalLimit_reservedForCEN2 = 6, + GeoGraphicalLimit_issuerSpecificRestriction = 7 +} e_GeoGraphicalLimit; + +/* GeoGraphicalLimit */ +typedef BIT_STRING_t GeoGraphicalLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GeoGraphicalLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GeoGraphicalLimit; +asn_struct_free_f GeoGraphicalLimit_free; +asn_struct_print_f GeoGraphicalLimit_print; +asn_constr_check_f GeoGraphicalLimit_constraint; +ber_type_decoder_f GeoGraphicalLimit_decode_ber; +der_type_encoder_f GeoGraphicalLimit_encode_der; +xer_type_decoder_f GeoGraphicalLimit_decode_xer; +xer_type_encoder_f GeoGraphicalLimit_encode_xer; +oer_type_decoder_f GeoGraphicalLimit_decode_oer; +oer_type_encoder_f GeoGraphicalLimit_encode_oer; +per_type_decoder_f GeoGraphicalLimit_decode_uper; +per_type_encoder_f GeoGraphicalLimit_encode_uper; +per_type_decoder_f GeoGraphicalLimit_decode_aper; +per_type_encoder_f GeoGraphicalLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GeoGraphicalLimit_H_ */ +#include diff --git a/vcits/mapem/HardShoulderStatus.h b/vcits/mapem/HardShoulderStatus.h new file mode 100644 index 0000000..84da07e --- /dev/null +++ b/vcits/mapem/HardShoulderStatus.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _HardShoulderStatus_H_ +#define _HardShoulderStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HardShoulderStatus { + HardShoulderStatus_availableForStopping = 0, + HardShoulderStatus_closed = 1, + HardShoulderStatus_availableForDriving = 2 +} e_HardShoulderStatus; + +/* HardShoulderStatus */ +typedef long HardShoulderStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus; +extern const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1; +asn_struct_free_f HardShoulderStatus_free; +asn_struct_print_f HardShoulderStatus_print; +asn_constr_check_f HardShoulderStatus_constraint; +ber_type_decoder_f HardShoulderStatus_decode_ber; +der_type_encoder_f HardShoulderStatus_encode_der; +xer_type_decoder_f HardShoulderStatus_decode_xer; +xer_type_encoder_f HardShoulderStatus_encode_xer; +oer_type_decoder_f HardShoulderStatus_decode_oer; +oer_type_encoder_f HardShoulderStatus_encode_oer; +per_type_decoder_f HardShoulderStatus_decode_uper; +per_type_encoder_f HardShoulderStatus_encode_uper; +per_type_decoder_f HardShoulderStatus_decode_aper; +per_type_encoder_f HardShoulderStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HardShoulderStatus_H_ */ +#include diff --git a/vcits/mapem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h b/vcits/mapem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..0607acf --- /dev/null +++ b/vcits/mapem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_AnimalOnTheRoadSubCauseCode { + HazardousLocation_AnimalOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimals = 1, + HazardousLocation_AnimalOnTheRoadSubCauseCode_herdOfAnimals = 2, + HazardousLocation_AnimalOnTheRoadSubCauseCode_smallAnimals = 3, + HazardousLocation_AnimalOnTheRoadSubCauseCode_largeAnimals = 4 +} e_HazardousLocation_AnimalOnTheRoadSubCauseCode; + +/* HazardousLocation-AnimalOnTheRoadSubCauseCode */ +typedef long HazardousLocation_AnimalOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_AnimalOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_AnimalOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/HazardousLocation-DangerousCurveSubCauseCode.h b/vcits/mapem/HazardousLocation-DangerousCurveSubCauseCode.h new file mode 100644 index 0000000..ece5067 --- /dev/null +++ b/vcits/mapem/HazardousLocation-DangerousCurveSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _HazardousLocation_DangerousCurveSubCauseCode_H_ +#define _HazardousLocation_DangerousCurveSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_DangerousCurveSubCauseCode { + HazardousLocation_DangerousCurveSubCauseCode_unavailable = 0, + HazardousLocation_DangerousCurveSubCauseCode_dangerousLeftTurnCurve = 1, + HazardousLocation_DangerousCurveSubCauseCode_dangerousRightTurnCurve = 2, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithUnknownTurningDirection = 3, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithLeftTurn = 4, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithRightTurn = 5 +} e_HazardousLocation_DangerousCurveSubCauseCode; + +/* HazardousLocation-DangerousCurveSubCauseCode */ +typedef long HazardousLocation_DangerousCurveSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode; +asn_struct_free_f HazardousLocation_DangerousCurveSubCauseCode_free; +asn_struct_print_f HazardousLocation_DangerousCurveSubCauseCode_print; +asn_constr_check_f HazardousLocation_DangerousCurveSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_DangerousCurveSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h b/vcits/mapem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..7e3d37f --- /dev/null +++ b/vcits/mapem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_ObstacleOnTheRoadSubCauseCode { + HazardousLocation_ObstacleOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_shedLoad = 1, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfVehicles = 2, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfTyres = 3, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_bigObjects = 4, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_fallenTrees = 5, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_hubCaps = 6, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_waitingVehicles = 7 +} e_HazardousLocation_ObstacleOnTheRoadSubCauseCode; + +/* HazardousLocation-ObstacleOnTheRoadSubCauseCode */ +typedef long HazardousLocation_ObstacleOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/HazardousLocation-SurfaceConditionSubCauseCode.h b/vcits/mapem/HazardousLocation-SurfaceConditionSubCauseCode.h new file mode 100644 index 0000000..916f220 --- /dev/null +++ b/vcits/mapem/HazardousLocation-SurfaceConditionSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _HazardousLocation_SurfaceConditionSubCauseCode_H_ +#define _HazardousLocation_SurfaceConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_SurfaceConditionSubCauseCode { + HazardousLocation_SurfaceConditionSubCauseCode_unavailable = 0, + HazardousLocation_SurfaceConditionSubCauseCode_rockfalls = 1, + HazardousLocation_SurfaceConditionSubCauseCode_earthquakeDamage = 2, + HazardousLocation_SurfaceConditionSubCauseCode_sewerCollapse = 3, + HazardousLocation_SurfaceConditionSubCauseCode_subsidence = 4, + HazardousLocation_SurfaceConditionSubCauseCode_snowDrifts = 5, + HazardousLocation_SurfaceConditionSubCauseCode_stormDamage = 6, + HazardousLocation_SurfaceConditionSubCauseCode_burstPipe = 7, + HazardousLocation_SurfaceConditionSubCauseCode_volcanoEruption = 8, + HazardousLocation_SurfaceConditionSubCauseCode_fallingIce = 9 +} e_HazardousLocation_SurfaceConditionSubCauseCode; + +/* HazardousLocation-SurfaceConditionSubCauseCode */ +typedef long HazardousLocation_SurfaceConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode; +asn_struct_free_f HazardousLocation_SurfaceConditionSubCauseCode_free; +asn_struct_print_f HazardousLocation_SurfaceConditionSubCauseCode_print; +asn_constr_check_f HazardousLocation_SurfaceConditionSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_SurfaceConditionSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/Heading.h b/vcits/mapem/Heading.h new file mode 100644 index 0000000..165075c --- /dev/null +++ b/vcits/mapem/Heading.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Heading_H_ +#define _Heading_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingValue.h" +#include "HeadingConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Heading */ +typedef struct Heading { + HeadingValue_t headingValue; + HeadingConfidence_t headingConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Heading_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Heading; + +#ifdef __cplusplus +} +#endif + +#endif /* _Heading_H_ */ +#include diff --git a/vcits/mapem/HeadingConfidence.h b/vcits/mapem/HeadingConfidence.h new file mode 100644 index 0000000..d155861 --- /dev/null +++ b/vcits/mapem/HeadingConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _HeadingConfidence_H_ +#define _HeadingConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidence { + HeadingConfidence_equalOrWithinZeroPointOneDegree = 1, + HeadingConfidence_equalOrWithinOneDegree = 10, + HeadingConfidence_outOfRange = 126, + HeadingConfidence_unavailable = 127 +} e_HeadingConfidence; + +/* HeadingConfidence */ +typedef long HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidence; +asn_struct_free_f HeadingConfidence_free; +asn_struct_print_f HeadingConfidence_print; +asn_constr_check_f HeadingConfidence_constraint; +ber_type_decoder_f HeadingConfidence_decode_ber; +der_type_encoder_f HeadingConfidence_encode_der; +xer_type_decoder_f HeadingConfidence_decode_xer; +xer_type_encoder_f HeadingConfidence_encode_xer; +oer_type_decoder_f HeadingConfidence_decode_oer; +oer_type_encoder_f HeadingConfidence_encode_oer; +per_type_decoder_f HeadingConfidence_decode_uper; +per_type_encoder_f HeadingConfidence_encode_uper; +per_type_decoder_f HeadingConfidence_decode_aper; +per_type_encoder_f HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidence_H_ */ +#include diff --git a/vcits/mapem/HeadingConfidenceDSRC.h b/vcits/mapem/HeadingConfidenceDSRC.h new file mode 100644 index 0000000..be1681a --- /dev/null +++ b/vcits/mapem/HeadingConfidenceDSRC.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _HeadingConfidenceDSRC_H_ +#define _HeadingConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidenceDSRC { + HeadingConfidenceDSRC_unavailable = 0, + HeadingConfidenceDSRC_prec10deg = 1, + HeadingConfidenceDSRC_prec05deg = 2, + HeadingConfidenceDSRC_prec01deg = 3, + HeadingConfidenceDSRC_prec0_1deg = 4, + HeadingConfidenceDSRC_prec0_05deg = 5, + HeadingConfidenceDSRC_prec0_01deg = 6, + HeadingConfidenceDSRC_prec0_0125deg = 7 +} e_HeadingConfidenceDSRC; + +/* HeadingConfidenceDSRC */ +typedef long HeadingConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_HeadingConfidenceDSRC_specs_1; +asn_struct_free_f HeadingConfidenceDSRC_free; +asn_struct_print_f HeadingConfidenceDSRC_print; +asn_constr_check_f HeadingConfidenceDSRC_constraint; +ber_type_decoder_f HeadingConfidenceDSRC_decode_ber; +der_type_encoder_f HeadingConfidenceDSRC_encode_der; +xer_type_decoder_f HeadingConfidenceDSRC_decode_xer; +xer_type_encoder_f HeadingConfidenceDSRC_encode_xer; +oer_type_decoder_f HeadingConfidenceDSRC_decode_oer; +oer_type_encoder_f HeadingConfidenceDSRC_encode_oer; +per_type_decoder_f HeadingConfidenceDSRC_decode_uper; +per_type_encoder_f HeadingConfidenceDSRC_encode_uper; +per_type_decoder_f HeadingConfidenceDSRC_decode_aper; +per_type_encoder_f HeadingConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidenceDSRC_H_ */ +#include diff --git a/vcits/mapem/HeadingDSRC.h b/vcits/mapem/HeadingDSRC.h new file mode 100644 index 0000000..9ad1c89 --- /dev/null +++ b/vcits/mapem/HeadingDSRC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _HeadingDSRC_H_ +#define _HeadingDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HeadingDSRC */ +typedef long HeadingDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingDSRC; +asn_struct_free_f HeadingDSRC_free; +asn_struct_print_f HeadingDSRC_print; +asn_constr_check_f HeadingDSRC_constraint; +ber_type_decoder_f HeadingDSRC_decode_ber; +der_type_encoder_f HeadingDSRC_encode_der; +xer_type_decoder_f HeadingDSRC_decode_xer; +xer_type_encoder_f HeadingDSRC_encode_xer; +oer_type_decoder_f HeadingDSRC_decode_oer; +oer_type_encoder_f HeadingDSRC_encode_oer; +per_type_decoder_f HeadingDSRC_decode_uper; +per_type_encoder_f HeadingDSRC_encode_uper; +per_type_decoder_f HeadingDSRC_decode_aper; +per_type_encoder_f HeadingDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingDSRC_H_ */ +#include diff --git a/vcits/mapem/HeadingValue.h b/vcits/mapem/HeadingValue.h new file mode 100644 index 0000000..a1aa83a --- /dev/null +++ b/vcits/mapem/HeadingValue.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _HeadingValue_H_ +#define _HeadingValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingValue { + HeadingValue_wgs84North = 0, + HeadingValue_wgs84East = 900, + HeadingValue_wgs84South = 1800, + HeadingValue_wgs84West = 2700, + HeadingValue_unavailable = 3601 +} e_HeadingValue; + +/* HeadingValue */ +typedef long HeadingValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingValue; +asn_struct_free_f HeadingValue_free; +asn_struct_print_f HeadingValue_print; +asn_constr_check_f HeadingValue_constraint; +ber_type_decoder_f HeadingValue_decode_ber; +der_type_encoder_f HeadingValue_encode_der; +xer_type_decoder_f HeadingValue_decode_xer; +xer_type_encoder_f HeadingValue_encode_xer; +oer_type_decoder_f HeadingValue_decode_oer; +oer_type_encoder_f HeadingValue_encode_oer; +per_type_decoder_f HeadingValue_decode_uper; +per_type_encoder_f HeadingValue_encode_uper; +per_type_decoder_f HeadingValue_decode_aper; +per_type_encoder_f HeadingValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingValue_H_ */ +#include diff --git a/vcits/mapem/HeightLonCarr.h b/vcits/mapem/HeightLonCarr.h new file mode 100644 index 0000000..d7f51f9 --- /dev/null +++ b/vcits/mapem/HeightLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _HeightLonCarr_H_ +#define _HeightLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeightLonCarr { + HeightLonCarr_oneCentimeter = 1, + HeightLonCarr_unavailable = 100 +} e_HeightLonCarr; + +/* HeightLonCarr */ +typedef long HeightLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HeightLonCarr; +asn_struct_free_f HeightLonCarr_free; +asn_struct_print_f HeightLonCarr_print; +asn_constr_check_f HeightLonCarr_constraint; +ber_type_decoder_f HeightLonCarr_decode_ber; +der_type_encoder_f HeightLonCarr_encode_der; +xer_type_decoder_f HeightLonCarr_decode_xer; +xer_type_encoder_f HeightLonCarr_encode_xer; +oer_type_decoder_f HeightLonCarr_decode_oer; +oer_type_encoder_f HeightLonCarr_encode_oer; +per_type_decoder_f HeightLonCarr_decode_uper; +per_type_encoder_f HeightLonCarr_encode_uper; +per_type_decoder_f HeightLonCarr_decode_aper; +per_type_encoder_f HeightLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeightLonCarr_H_ */ +#include diff --git a/vcits/mapem/HumanPresenceOnTheRoadSubCauseCode.h b/vcits/mapem/HumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..af991c6 --- /dev/null +++ b/vcits/mapem/HumanPresenceOnTheRoadSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _HumanPresenceOnTheRoadSubCauseCode_H_ +#define _HumanPresenceOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanPresenceOnTheRoadSubCauseCode { + HumanPresenceOnTheRoadSubCauseCode_unavailable = 0, + HumanPresenceOnTheRoadSubCauseCode_childrenOnRoadway = 1, + HumanPresenceOnTheRoadSubCauseCode_cyclistOnRoadway = 2, + HumanPresenceOnTheRoadSubCauseCode_motorcyclistOnRoadway = 3 +} e_HumanPresenceOnTheRoadSubCauseCode; + +/* HumanPresenceOnTheRoadSubCauseCode */ +typedef long HumanPresenceOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode; +asn_struct_free_f HumanPresenceOnTheRoadSubCauseCode_free; +asn_struct_print_f HumanPresenceOnTheRoadSubCauseCode_print; +asn_constr_check_f HumanPresenceOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanPresenceOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/HumanProblemSubCauseCode.h b/vcits/mapem/HumanProblemSubCauseCode.h new file mode 100644 index 0000000..0609678 --- /dev/null +++ b/vcits/mapem/HumanProblemSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _HumanProblemSubCauseCode_H_ +#define _HumanProblemSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanProblemSubCauseCode { + HumanProblemSubCauseCode_unavailable = 0, + HumanProblemSubCauseCode_glycemiaProblem = 1, + HumanProblemSubCauseCode_heartProblem = 2 +} e_HumanProblemSubCauseCode; + +/* HumanProblemSubCauseCode */ +typedef long HumanProblemSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode; +asn_struct_free_f HumanProblemSubCauseCode_free; +asn_struct_print_f HumanProblemSubCauseCode_print; +asn_constr_check_f HumanProblemSubCauseCode_constraint; +ber_type_decoder_f HumanProblemSubCauseCode_decode_ber; +der_type_encoder_f HumanProblemSubCauseCode_encode_der; +xer_type_decoder_f HumanProblemSubCauseCode_decode_xer; +xer_type_encoder_f HumanProblemSubCauseCode_encode_xer; +oer_type_decoder_f HumanProblemSubCauseCode_decode_oer; +oer_type_encoder_f HumanProblemSubCauseCode_encode_oer; +per_type_decoder_f HumanProblemSubCauseCode_decode_uper; +per_type_encoder_f HumanProblemSubCauseCode_encode_uper; +per_type_decoder_f HumanProblemSubCauseCode_decode_aper; +per_type_encoder_f HumanProblemSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanProblemSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/InformationQuality.h b/vcits/mapem/InformationQuality.h new file mode 100644 index 0000000..81d349d --- /dev/null +++ b/vcits/mapem/InformationQuality.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _InformationQuality_H_ +#define _InformationQuality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InformationQuality { + InformationQuality_unavailable = 0, + InformationQuality_lowest = 1, + InformationQuality_highest = 7 +} e_InformationQuality; + +/* InformationQuality */ +typedef long InformationQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_InformationQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_InformationQuality; +asn_struct_free_f InformationQuality_free; +asn_struct_print_f InformationQuality_print; +asn_constr_check_f InformationQuality_constraint; +ber_type_decoder_f InformationQuality_decode_ber; +der_type_encoder_f InformationQuality_encode_der; +xer_type_decoder_f InformationQuality_decode_xer; +xer_type_encoder_f InformationQuality_encode_xer; +oer_type_decoder_f InformationQuality_decode_oer; +oer_type_encoder_f InformationQuality_encode_oer; +per_type_decoder_f InformationQuality_decode_uper; +per_type_encoder_f InformationQuality_encode_uper; +per_type_decoder_f InformationQuality_decode_aper; +per_type_encoder_f InformationQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InformationQuality_H_ */ +#include diff --git a/vcits/mapem/IntersectionAccessPoint.h b/vcits/mapem/IntersectionAccessPoint.h new file mode 100644 index 0000000..bf492b1 --- /dev/null +++ b/vcits/mapem/IntersectionAccessPoint.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _IntersectionAccessPoint_H_ +#define _IntersectionAccessPoint_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "ApproachID.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionAccessPoint_PR { + IntersectionAccessPoint_PR_NOTHING, /* No components present */ + IntersectionAccessPoint_PR_lane, + IntersectionAccessPoint_PR_approach, + IntersectionAccessPoint_PR_connection + /* Extensions may appear below */ + +} IntersectionAccessPoint_PR; + +/* IntersectionAccessPoint */ +typedef struct IntersectionAccessPoint { + IntersectionAccessPoint_PR present; + union IntersectionAccessPoint_u { + LaneID_t lane; + ApproachID_t approach; + LaneConnectionID_t connection; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionAccessPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint; +extern asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[3]; +extern asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionAccessPoint_H_ */ +#include diff --git a/vcits/mapem/IntersectionGeometry.h b/vcits/mapem/IntersectionGeometry.h new file mode 100644 index 0000000..79d66fc --- /dev/null +++ b/vcits/mapem/IntersectionGeometry.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _IntersectionGeometry_H_ +#define _IntersectionGeometry_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "LaneList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct PreemptPriorityList; +struct Reg_IntersectionGeometry; + +/* IntersectionGeometry */ +typedef struct IntersectionGeometry { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + LaneList_t laneSet; + struct PreemptPriorityList *preemptPriorityData; /* OPTIONAL */ + struct IntersectionGeometry__regional { + A_SEQUENCE_OF(struct Reg_IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometry_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometry_H_ */ +#include diff --git a/vcits/mapem/IntersectionGeometryList.h b/vcits/mapem/IntersectionGeometryList.h new file mode 100644 index 0000000..e96ee2c --- /dev/null +++ b/vcits/mapem/IntersectionGeometryList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _IntersectionGeometryList_H_ +#define _IntersectionGeometryList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometry; + +/* IntersectionGeometryList */ +typedef struct IntersectionGeometryList { + A_SEQUENCE_OF(struct IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometryList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometryList_H_ */ +#include diff --git a/vcits/mapem/IntersectionID.h b/vcits/mapem/IntersectionID.h new file mode 100644 index 0000000..c522632 --- /dev/null +++ b/vcits/mapem/IntersectionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _IntersectionID_H_ +#define _IntersectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionID */ +typedef long IntersectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionID; +asn_struct_free_f IntersectionID_free; +asn_struct_print_f IntersectionID_print; +asn_constr_check_f IntersectionID_constraint; +ber_type_decoder_f IntersectionID_decode_ber; +der_type_encoder_f IntersectionID_encode_der; +xer_type_decoder_f IntersectionID_decode_xer; +xer_type_encoder_f IntersectionID_encode_xer; +oer_type_decoder_f IntersectionID_decode_oer; +oer_type_encoder_f IntersectionID_encode_oer; +per_type_decoder_f IntersectionID_decode_uper; +per_type_encoder_f IntersectionID_encode_uper; +per_type_decoder_f IntersectionID_decode_aper; +per_type_encoder_f IntersectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionID_H_ */ +#include diff --git a/vcits/mapem/IntersectionReferenceID.h b/vcits/mapem/IntersectionReferenceID.h new file mode 100644 index 0000000..874ba74 --- /dev/null +++ b/vcits/mapem/IntersectionReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _IntersectionReferenceID_H_ +#define _IntersectionReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionReferenceID */ +typedef struct IntersectionReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + IntersectionID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionReferenceID_H_ */ +#include diff --git a/vcits/mapem/IntersectionState-addGrpC.h b/vcits/mapem/IntersectionState-addGrpC.h new file mode 100644 index 0000000..bb9dcd2 --- /dev/null +++ b/vcits/mapem/IntersectionState-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _IntersectionState_addGrpC_H_ +#define _IntersectionState_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponseList; + +/* IntersectionState-addGrpC */ +typedef struct IntersectionState_addGrpC { + struct PrioritizationResponseList *activePrioritizations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_addGrpC_H_ */ +#include diff --git a/vcits/mapem/IntersectionState.h b/vcits/mapem/IntersectionState.h new file mode 100644 index 0000000..91f5e23 --- /dev/null +++ b/vcits/mapem/IntersectionState.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _IntersectionState_H_ +#define _IntersectionState_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "MsgCount.h" +#include "IntersectionStatusObject.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MovementList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EnabledLaneList; +struct ManeuverAssistList; +struct Reg_IntersectionState; + +/* IntersectionState */ +typedef struct IntersectionState { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + MsgCount_t revision; + IntersectionStatusObject_t status; + MinuteOfTheYear_t *moy; /* OPTIONAL */ + DSecond_t *timeStamp; /* OPTIONAL */ + struct EnabledLaneList *enabledLanes; /* OPTIONAL */ + MovementList_t states; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct IntersectionState__regional { + A_SEQUENCE_OF(struct Reg_IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_H_ */ +#include diff --git a/vcits/mapem/IntersectionStateList.h b/vcits/mapem/IntersectionStateList.h new file mode 100644 index 0000000..1b7c62b --- /dev/null +++ b/vcits/mapem/IntersectionStateList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _IntersectionStateList_H_ +#define _IntersectionStateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionState; + +/* IntersectionStateList */ +typedef struct IntersectionStateList { + A_SEQUENCE_OF(struct IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStateList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStateList_H_ */ +#include diff --git a/vcits/mapem/IntersectionStatusObject.h b/vcits/mapem/IntersectionStatusObject.h new file mode 100644 index 0000000..6069380 --- /dev/null +++ b/vcits/mapem/IntersectionStatusObject.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _IntersectionStatusObject_H_ +#define _IntersectionStatusObject_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionStatusObject { + IntersectionStatusObject_manualControlIsEnabled = 0, + IntersectionStatusObject_stopTimeIsActivated = 1, + IntersectionStatusObject_failureFlash = 2, + IntersectionStatusObject_preemptIsActive = 3, + IntersectionStatusObject_signalPriorityIsActive = 4, + IntersectionStatusObject_fixedTimeOperation = 5, + IntersectionStatusObject_trafficDependentOperation = 6, + IntersectionStatusObject_standbyOperation = 7, + IntersectionStatusObject_failureMode = 8, + IntersectionStatusObject_off = 9, + IntersectionStatusObject_recentMAPmessageUpdate = 10, + IntersectionStatusObject_recentChangeInMAPassignedLanesIDsUsed = 11, + IntersectionStatusObject_noValidMAPisAvailableAtThisTime = 12, + IntersectionStatusObject_noValidSPATisAvailableAtThisTime = 13 +} e_IntersectionStatusObject; + +/* IntersectionStatusObject */ +typedef BIT_STRING_t IntersectionStatusObject_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject; +asn_struct_free_f IntersectionStatusObject_free; +asn_struct_print_f IntersectionStatusObject_print; +asn_constr_check_f IntersectionStatusObject_constraint; +ber_type_decoder_f IntersectionStatusObject_decode_ber; +der_type_encoder_f IntersectionStatusObject_encode_der; +xer_type_decoder_f IntersectionStatusObject_decode_xer; +xer_type_encoder_f IntersectionStatusObject_encode_xer; +oer_type_decoder_f IntersectionStatusObject_decode_oer; +oer_type_encoder_f IntersectionStatusObject_encode_oer; +per_type_decoder_f IntersectionStatusObject_decode_uper; +per_type_encoder_f IntersectionStatusObject_encode_uper; +per_type_decoder_f IntersectionStatusObject_decode_aper; +per_type_encoder_f IntersectionStatusObject_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStatusObject_H_ */ +#include diff --git a/vcits/mapem/Iso3833VehicleType.h b/vcits/mapem/Iso3833VehicleType.h new file mode 100644 index 0000000..d68fa8a --- /dev/null +++ b/vcits/mapem/Iso3833VehicleType.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Iso3833VehicleType_H_ +#define _Iso3833VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Iso3833VehicleType { + Iso3833VehicleType_passengerCar = 0, + Iso3833VehicleType_saloon = 1, + Iso3833VehicleType_convertibleSaloon = 2, + Iso3833VehicleType_pullmanSaloon = 3, + Iso3833VehicleType_stationWagon = 4, + Iso3833VehicleType_truckStationWagon = 5, + Iso3833VehicleType_coupe = 6, + Iso3833VehicleType_convertible = 7, + Iso3833VehicleType_multipurposePassengerCar = 8, + Iso3833VehicleType_forwardControlPassengerCar = 9, + Iso3833VehicleType_specialPassengerCar = 10, + Iso3833VehicleType_bus = 11, + Iso3833VehicleType_minibus = 12, + Iso3833VehicleType_urbanBus = 13, + Iso3833VehicleType_interurbanCoach = 14, + Iso3833VehicleType_longDistanceCoach = 15, + Iso3833VehicleType_articulatedBus = 16, + Iso3833VehicleType_trolleyBus = 17, + Iso3833VehicleType_specialBus = 18, + Iso3833VehicleType_commercialVehicle = 19, + Iso3833VehicleType_specialCommercialVehicle = 20, + Iso3833VehicleType_specialVehicle = 21, + Iso3833VehicleType_trailingTowingVehicle = 22, + Iso3833VehicleType_semiTrailerTowingVehicle = 23, + Iso3833VehicleType_trailer = 24, + Iso3833VehicleType_busTrailer = 25, + Iso3833VehicleType_generalPurposeTrailer = 26, + Iso3833VehicleType_caravan = 27, + Iso3833VehicleType_specialTrailer = 28, + Iso3833VehicleType_semiTrailer = 29, + Iso3833VehicleType_busSemiTrailer = 30, + Iso3833VehicleType_generalPurposeSemiTrailer = 31, + Iso3833VehicleType_specialSemiTrailer = 32, + Iso3833VehicleType_roadTrain = 33, + Iso3833VehicleType_passengerRoadTrain = 34, + Iso3833VehicleType_articulatedRoadTrain = 35, + Iso3833VehicleType_doubleRoadTrain = 36, + Iso3833VehicleType_compositeRoadTrain = 37, + Iso3833VehicleType_specialRoadTrain = 38, + Iso3833VehicleType_moped = 39, + Iso3833VehicleType_motorCycle = 40 +} e_Iso3833VehicleType; + +/* Iso3833VehicleType */ +typedef long Iso3833VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType; +asn_struct_free_f Iso3833VehicleType_free; +asn_struct_print_f Iso3833VehicleType_print; +asn_constr_check_f Iso3833VehicleType_constraint; +ber_type_decoder_f Iso3833VehicleType_decode_ber; +der_type_encoder_f Iso3833VehicleType_encode_der; +xer_type_decoder_f Iso3833VehicleType_decode_xer; +xer_type_encoder_f Iso3833VehicleType_encode_xer; +oer_type_decoder_f Iso3833VehicleType_decode_oer; +oer_type_encoder_f Iso3833VehicleType_encode_oer; +per_type_decoder_f Iso3833VehicleType_decode_uper; +per_type_encoder_f Iso3833VehicleType_encode_uper; +per_type_decoder_f Iso3833VehicleType_decode_aper; +per_type_encoder_f Iso3833VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Iso3833VehicleType_H_ */ +#include diff --git a/vcits/mapem/IssuerIdentifier.h b/vcits/mapem/IssuerIdentifier.h new file mode 100644 index 0000000..c6c421f --- /dev/null +++ b/vcits/mapem/IssuerIdentifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _IssuerIdentifier_H_ +#define _IssuerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IssuerIdentifier */ +typedef long IssuerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IssuerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IssuerIdentifier; +asn_struct_free_f IssuerIdentifier_free; +asn_struct_print_f IssuerIdentifier_print; +asn_constr_check_f IssuerIdentifier_constraint; +ber_type_decoder_f IssuerIdentifier_decode_ber; +der_type_encoder_f IssuerIdentifier_encode_der; +xer_type_decoder_f IssuerIdentifier_decode_xer; +xer_type_encoder_f IssuerIdentifier_encode_xer; +oer_type_decoder_f IssuerIdentifier_decode_oer; +oer_type_encoder_f IssuerIdentifier_encode_oer; +per_type_decoder_f IssuerIdentifier_decode_uper; +per_type_encoder_f IssuerIdentifier_encode_uper; +per_type_decoder_f IssuerIdentifier_decode_aper; +per_type_encoder_f IssuerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IssuerIdentifier_H_ */ +#include diff --git a/vcits/mapem/ItineraryPath.h b/vcits/mapem/ItineraryPath.h new file mode 100644 index 0000000..4fef4a9 --- /dev/null +++ b/vcits/mapem/ItineraryPath.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ItineraryPath_H_ +#define _ItineraryPath_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* ItineraryPath */ +typedef struct ItineraryPath { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItineraryPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItineraryPath; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItineraryPath_H_ */ +#include diff --git a/vcits/mapem/ItsPduHeader.h b/vcits/mapem/ItsPduHeader.h new file mode 100644 index 0000000..0ea7f9e --- /dev/null +++ b/vcits/mapem/ItsPduHeader.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ItsPduHeader_H_ +#define _ItsPduHeader_H_ + + +#include + +/* Including external dependencies */ +#include +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ItsPduHeader__messageID { + ItsPduHeader__messageID_denm = 1, + ItsPduHeader__messageID_cam = 2, + ItsPduHeader__messageID_poi = 3, + ItsPduHeader__messageID_spatem = 4, + ItsPduHeader__messageID_mapem = 5, + ItsPduHeader__messageID_ivim = 6, + ItsPduHeader__messageID_ev_rsr = 7, + ItsPduHeader__messageID_tistpgtransaction = 8, + ItsPduHeader__messageID_srem = 9, + ItsPduHeader__messageID_ssem = 10, + ItsPduHeader__messageID_evcsn = 11, + ItsPduHeader__messageID_saem = 12, + ItsPduHeader__messageID_rtcmem = 13 +} e_ItsPduHeader__messageID; + +/* ItsPduHeader */ +typedef struct ItsPduHeader { + long protocolVersion; + long messageID; + StationID_t stationID; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsPduHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsPduHeader; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsPduHeader_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsPduHeader_H_ */ +#include diff --git a/vcits/mapem/ItsStationPosition.h b/vcits/mapem/ItsStationPosition.h new file mode 100644 index 0000000..0672a36 --- /dev/null +++ b/vcits/mapem/ItsStationPosition.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ItsStationPosition_H_ +#define _ItsStationPosition_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "LaneID.h" +#include "TimeReference.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeOffsetPointXY; + +/* ItsStationPosition */ +typedef struct ItsStationPosition { + StationID_t stationID; + LaneID_t *laneID; /* OPTIONAL */ + struct NodeOffsetPointXY *nodeXY; /* OPTIONAL */ + TimeReference_t *timeReference; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsStationPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsStationPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsStationPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsStationPosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsStationPosition_H_ */ +#include diff --git a/vcits/mapem/ItsStationPositionList.h b/vcits/mapem/ItsStationPositionList.h new file mode 100644 index 0000000..f42ab46 --- /dev/null +++ b/vcits/mapem/ItsStationPositionList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ItsStationPositionList_H_ +#define _ItsStationPositionList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ItsStationPosition; + +/* ItsStationPositionList */ +typedef struct ItsStationPositionList { + A_SEQUENCE_OF(struct ItsStationPosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsStationPositionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsStationPositionList; +extern asn_SET_OF_specifics_t asn_SPC_ItsStationPositionList_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsStationPositionList_1[1]; +extern asn_per_constraints_t asn_PER_type_ItsStationPositionList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsStationPositionList_H_ */ +#include diff --git a/vcits/mapem/LaneAttributes-Barrier.h b/vcits/mapem/LaneAttributes-Barrier.h new file mode 100644 index 0000000..c635616 --- /dev/null +++ b/vcits/mapem/LaneAttributes-Barrier.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneAttributes_Barrier_H_ +#define _LaneAttributes_Barrier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Barrier { + LaneAttributes_Barrier_median_RevocableLane = 0, + LaneAttributes_Barrier_median = 1, + LaneAttributes_Barrier_whiteLineHashing = 2, + LaneAttributes_Barrier_stripedLines = 3, + LaneAttributes_Barrier_doubleStripedLines = 4, + LaneAttributes_Barrier_trafficCones = 5, + LaneAttributes_Barrier_constructionBarrier = 6, + LaneAttributes_Barrier_trafficChannels = 7, + LaneAttributes_Barrier_lowCurbs = 8, + LaneAttributes_Barrier_highCurbs = 9 +} e_LaneAttributes_Barrier; + +/* LaneAttributes-Barrier */ +typedef BIT_STRING_t LaneAttributes_Barrier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier; +asn_struct_free_f LaneAttributes_Barrier_free; +asn_struct_print_f LaneAttributes_Barrier_print; +asn_constr_check_f LaneAttributes_Barrier_constraint; +ber_type_decoder_f LaneAttributes_Barrier_decode_ber; +der_type_encoder_f LaneAttributes_Barrier_encode_der; +xer_type_decoder_f LaneAttributes_Barrier_decode_xer; +xer_type_encoder_f LaneAttributes_Barrier_encode_xer; +oer_type_decoder_f LaneAttributes_Barrier_decode_oer; +oer_type_encoder_f LaneAttributes_Barrier_encode_oer; +per_type_decoder_f LaneAttributes_Barrier_decode_uper; +per_type_encoder_f LaneAttributes_Barrier_encode_uper; +per_type_decoder_f LaneAttributes_Barrier_decode_aper; +per_type_encoder_f LaneAttributes_Barrier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Barrier_H_ */ +#include diff --git a/vcits/mapem/LaneAttributes-Bike.h b/vcits/mapem/LaneAttributes-Bike.h new file mode 100644 index 0000000..2fe9fc3 --- /dev/null +++ b/vcits/mapem/LaneAttributes-Bike.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneAttributes_Bike_H_ +#define _LaneAttributes_Bike_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Bike { + LaneAttributes_Bike_bikeRevocableLane = 0, + LaneAttributes_Bike_pedestrianUseAllowed = 1, + LaneAttributes_Bike_isBikeFlyOverLane = 2, + LaneAttributes_Bike_fixedCycleTime = 3, + LaneAttributes_Bike_biDirectionalCycleTimes = 4, + LaneAttributes_Bike_isolatedByBarrier = 5, + LaneAttributes_Bike_unsignalizedSegmentsPresent = 6 +} e_LaneAttributes_Bike; + +/* LaneAttributes-Bike */ +typedef BIT_STRING_t LaneAttributes_Bike_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike; +asn_struct_free_f LaneAttributes_Bike_free; +asn_struct_print_f LaneAttributes_Bike_print; +asn_constr_check_f LaneAttributes_Bike_constraint; +ber_type_decoder_f LaneAttributes_Bike_decode_ber; +der_type_encoder_f LaneAttributes_Bike_encode_der; +xer_type_decoder_f LaneAttributes_Bike_decode_xer; +xer_type_encoder_f LaneAttributes_Bike_encode_xer; +oer_type_decoder_f LaneAttributes_Bike_decode_oer; +oer_type_encoder_f LaneAttributes_Bike_encode_oer; +per_type_decoder_f LaneAttributes_Bike_decode_uper; +per_type_encoder_f LaneAttributes_Bike_encode_uper; +per_type_decoder_f LaneAttributes_Bike_decode_aper; +per_type_encoder_f LaneAttributes_Bike_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Bike_H_ */ +#include diff --git a/vcits/mapem/LaneAttributes-Crosswalk.h b/vcits/mapem/LaneAttributes-Crosswalk.h new file mode 100644 index 0000000..d3718f9 --- /dev/null +++ b/vcits/mapem/LaneAttributes-Crosswalk.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneAttributes_Crosswalk_H_ +#define _LaneAttributes_Crosswalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Crosswalk { + LaneAttributes_Crosswalk_crosswalkRevocableLane = 0, + LaneAttributes_Crosswalk_bicyleUseAllowed = 1, + LaneAttributes_Crosswalk_isXwalkFlyOverLane = 2, + LaneAttributes_Crosswalk_fixedCycleTime = 3, + LaneAttributes_Crosswalk_biDirectionalCycleTimes = 4, + LaneAttributes_Crosswalk_hasPushToWalkButton = 5, + LaneAttributes_Crosswalk_audioSupport = 6, + LaneAttributes_Crosswalk_rfSignalRequestPresent = 7, + LaneAttributes_Crosswalk_unsignalizedSegmentsPresent = 8 +} e_LaneAttributes_Crosswalk; + +/* LaneAttributes-Crosswalk */ +typedef BIT_STRING_t LaneAttributes_Crosswalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk; +asn_struct_free_f LaneAttributes_Crosswalk_free; +asn_struct_print_f LaneAttributes_Crosswalk_print; +asn_constr_check_f LaneAttributes_Crosswalk_constraint; +ber_type_decoder_f LaneAttributes_Crosswalk_decode_ber; +der_type_encoder_f LaneAttributes_Crosswalk_encode_der; +xer_type_decoder_f LaneAttributes_Crosswalk_decode_xer; +xer_type_encoder_f LaneAttributes_Crosswalk_encode_xer; +oer_type_decoder_f LaneAttributes_Crosswalk_decode_oer; +oer_type_encoder_f LaneAttributes_Crosswalk_encode_oer; +per_type_decoder_f LaneAttributes_Crosswalk_decode_uper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_uper; +per_type_decoder_f LaneAttributes_Crosswalk_decode_aper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Crosswalk_H_ */ +#include diff --git a/vcits/mapem/LaneAttributes-Parking.h b/vcits/mapem/LaneAttributes-Parking.h new file mode 100644 index 0000000..474fd30 --- /dev/null +++ b/vcits/mapem/LaneAttributes-Parking.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneAttributes_Parking_H_ +#define _LaneAttributes_Parking_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Parking { + LaneAttributes_Parking_parkingRevocableLane = 0, + LaneAttributes_Parking_parallelParkingInUse = 1, + LaneAttributes_Parking_headInParkingInUse = 2, + LaneAttributes_Parking_doNotParkZone = 3, + LaneAttributes_Parking_parkingForBusUse = 4, + LaneAttributes_Parking_parkingForTaxiUse = 5, + LaneAttributes_Parking_noPublicParkingUse = 6 +} e_LaneAttributes_Parking; + +/* LaneAttributes-Parking */ +typedef BIT_STRING_t LaneAttributes_Parking_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking; +asn_struct_free_f LaneAttributes_Parking_free; +asn_struct_print_f LaneAttributes_Parking_print; +asn_constr_check_f LaneAttributes_Parking_constraint; +ber_type_decoder_f LaneAttributes_Parking_decode_ber; +der_type_encoder_f LaneAttributes_Parking_encode_der; +xer_type_decoder_f LaneAttributes_Parking_decode_xer; +xer_type_encoder_f LaneAttributes_Parking_encode_xer; +oer_type_decoder_f LaneAttributes_Parking_decode_oer; +oer_type_encoder_f LaneAttributes_Parking_encode_oer; +per_type_decoder_f LaneAttributes_Parking_decode_uper; +per_type_encoder_f LaneAttributes_Parking_encode_uper; +per_type_decoder_f LaneAttributes_Parking_decode_aper; +per_type_encoder_f LaneAttributes_Parking_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Parking_H_ */ +#include diff --git a/vcits/mapem/LaneAttributes-Sidewalk.h b/vcits/mapem/LaneAttributes-Sidewalk.h new file mode 100644 index 0000000..622916d --- /dev/null +++ b/vcits/mapem/LaneAttributes-Sidewalk.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneAttributes_Sidewalk_H_ +#define _LaneAttributes_Sidewalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Sidewalk { + LaneAttributes_Sidewalk_sidewalk_RevocableLane = 0, + LaneAttributes_Sidewalk_bicyleUseAllowed = 1, + LaneAttributes_Sidewalk_isSidewalkFlyOverLane = 2, + LaneAttributes_Sidewalk_walkBikes = 3 +} e_LaneAttributes_Sidewalk; + +/* LaneAttributes-Sidewalk */ +typedef BIT_STRING_t LaneAttributes_Sidewalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk; +asn_struct_free_f LaneAttributes_Sidewalk_free; +asn_struct_print_f LaneAttributes_Sidewalk_print; +asn_constr_check_f LaneAttributes_Sidewalk_constraint; +ber_type_decoder_f LaneAttributes_Sidewalk_decode_ber; +der_type_encoder_f LaneAttributes_Sidewalk_encode_der; +xer_type_decoder_f LaneAttributes_Sidewalk_decode_xer; +xer_type_encoder_f LaneAttributes_Sidewalk_encode_xer; +oer_type_decoder_f LaneAttributes_Sidewalk_decode_oer; +oer_type_encoder_f LaneAttributes_Sidewalk_encode_oer; +per_type_decoder_f LaneAttributes_Sidewalk_decode_uper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_uper; +per_type_decoder_f LaneAttributes_Sidewalk_decode_aper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Sidewalk_H_ */ +#include diff --git a/vcits/mapem/LaneAttributes-Striping.h b/vcits/mapem/LaneAttributes-Striping.h new file mode 100644 index 0000000..5250192 --- /dev/null +++ b/vcits/mapem/LaneAttributes-Striping.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneAttributes_Striping_H_ +#define _LaneAttributes_Striping_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Striping { + LaneAttributes_Striping_stripeToConnectingLanesRevocableLane = 0, + LaneAttributes_Striping_stripeDrawOnLeft = 1, + LaneAttributes_Striping_stripeDrawOnRight = 2, + LaneAttributes_Striping_stripeToConnectingLanesLeft = 3, + LaneAttributes_Striping_stripeToConnectingLanesRight = 4, + LaneAttributes_Striping_stripeToConnectingLanesAhead = 5 +} e_LaneAttributes_Striping; + +/* LaneAttributes-Striping */ +typedef BIT_STRING_t LaneAttributes_Striping_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping; +asn_struct_free_f LaneAttributes_Striping_free; +asn_struct_print_f LaneAttributes_Striping_print; +asn_constr_check_f LaneAttributes_Striping_constraint; +ber_type_decoder_f LaneAttributes_Striping_decode_ber; +der_type_encoder_f LaneAttributes_Striping_encode_der; +xer_type_decoder_f LaneAttributes_Striping_decode_xer; +xer_type_encoder_f LaneAttributes_Striping_encode_xer; +oer_type_decoder_f LaneAttributes_Striping_decode_oer; +oer_type_encoder_f LaneAttributes_Striping_encode_oer; +per_type_decoder_f LaneAttributes_Striping_decode_uper; +per_type_encoder_f LaneAttributes_Striping_encode_uper; +per_type_decoder_f LaneAttributes_Striping_decode_aper; +per_type_encoder_f LaneAttributes_Striping_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Striping_H_ */ +#include diff --git a/vcits/mapem/LaneAttributes-TrackedVehicle.h b/vcits/mapem/LaneAttributes-TrackedVehicle.h new file mode 100644 index 0000000..317ffe9 --- /dev/null +++ b/vcits/mapem/LaneAttributes-TrackedVehicle.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneAttributes_TrackedVehicle_H_ +#define _LaneAttributes_TrackedVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_TrackedVehicle { + LaneAttributes_TrackedVehicle_spec_RevocableLane = 0, + LaneAttributes_TrackedVehicle_spec_commuterRailRoadTrack = 1, + LaneAttributes_TrackedVehicle_spec_lightRailRoadTrack = 2, + LaneAttributes_TrackedVehicle_spec_heavyRailRoadTrack = 3, + LaneAttributes_TrackedVehicle_spec_otherRailType = 4 +} e_LaneAttributes_TrackedVehicle; + +/* LaneAttributes-TrackedVehicle */ +typedef BIT_STRING_t LaneAttributes_TrackedVehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle; +asn_struct_free_f LaneAttributes_TrackedVehicle_free; +asn_struct_print_f LaneAttributes_TrackedVehicle_print; +asn_constr_check_f LaneAttributes_TrackedVehicle_constraint; +ber_type_decoder_f LaneAttributes_TrackedVehicle_decode_ber; +der_type_encoder_f LaneAttributes_TrackedVehicle_encode_der; +xer_type_decoder_f LaneAttributes_TrackedVehicle_decode_xer; +xer_type_encoder_f LaneAttributes_TrackedVehicle_encode_xer; +oer_type_decoder_f LaneAttributes_TrackedVehicle_decode_oer; +oer_type_encoder_f LaneAttributes_TrackedVehicle_encode_oer; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_uper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_uper; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_aper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_TrackedVehicle_H_ */ +#include diff --git a/vcits/mapem/LaneAttributes-Vehicle.h b/vcits/mapem/LaneAttributes-Vehicle.h new file mode 100644 index 0000000..2b63aca --- /dev/null +++ b/vcits/mapem/LaneAttributes-Vehicle.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneAttributes_Vehicle_H_ +#define _LaneAttributes_Vehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Vehicle { + LaneAttributes_Vehicle_isVehicleRevocableLane = 0, + LaneAttributes_Vehicle_isVehicleFlyOverLane = 1, + LaneAttributes_Vehicle_hovLaneUseOnly = 2, + LaneAttributes_Vehicle_restrictedToBusUse = 3, + LaneAttributes_Vehicle_restrictedToTaxiUse = 4, + LaneAttributes_Vehicle_restrictedFromPublicUse = 5, + LaneAttributes_Vehicle_hasIRbeaconCoverage = 6, + LaneAttributes_Vehicle_permissionOnRequest = 7 +} e_LaneAttributes_Vehicle; + +/* LaneAttributes-Vehicle */ +typedef BIT_STRING_t LaneAttributes_Vehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle; +asn_struct_free_f LaneAttributes_Vehicle_free; +asn_struct_print_f LaneAttributes_Vehicle_print; +asn_constr_check_f LaneAttributes_Vehicle_constraint; +ber_type_decoder_f LaneAttributes_Vehicle_decode_ber; +der_type_encoder_f LaneAttributes_Vehicle_encode_der; +xer_type_decoder_f LaneAttributes_Vehicle_decode_xer; +xer_type_encoder_f LaneAttributes_Vehicle_encode_xer; +oer_type_decoder_f LaneAttributes_Vehicle_decode_oer; +oer_type_encoder_f LaneAttributes_Vehicle_encode_oer; +per_type_decoder_f LaneAttributes_Vehicle_decode_uper; +per_type_encoder_f LaneAttributes_Vehicle_encode_uper; +per_type_decoder_f LaneAttributes_Vehicle_decode_aper; +per_type_encoder_f LaneAttributes_Vehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Vehicle_H_ */ +#include diff --git a/vcits/mapem/LaneAttributes-addGrpC.h b/vcits/mapem/LaneAttributes-addGrpC.h new file mode 100644 index 0000000..168cdb6 --- /dev/null +++ b/vcits/mapem/LaneAttributes-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneAttributes_addGrpC_H_ +#define _LaneAttributes_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleHeight.h" +#include "VehicleMass.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneAttributes-addGrpC */ +typedef struct LaneAttributes_addGrpC { + VehicleHeight_t *maxVehicleHeight; /* OPTIONAL */ + VehicleMass_t *maxVehicleWeight; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_addGrpC_H_ */ +#include diff --git a/vcits/mapem/LaneAttributes.h b/vcits/mapem/LaneAttributes.h new file mode 100644 index 0000000..04b3784 --- /dev/null +++ b/vcits/mapem/LaneAttributes.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneAttributes_H_ +#define _LaneAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "LaneDirection.h" +#include "LaneSharing.h" +#include "LaneTypeAttributes.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_LaneAttributes; + +/* LaneAttributes */ +typedef struct LaneAttributes { + LaneDirection_t directionalUse; + LaneSharing_t sharedWith; + LaneTypeAttributes_t laneType; + struct Reg_LaneAttributes *regional; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_H_ */ +#include diff --git a/vcits/mapem/LaneConnectionID.h b/vcits/mapem/LaneConnectionID.h new file mode 100644 index 0000000..4d4fc1f --- /dev/null +++ b/vcits/mapem/LaneConnectionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneConnectionID_H_ +#define _LaneConnectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneConnectionID */ +typedef long LaneConnectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneConnectionID; +asn_struct_free_f LaneConnectionID_free; +asn_struct_print_f LaneConnectionID_print; +asn_constr_check_f LaneConnectionID_constraint; +ber_type_decoder_f LaneConnectionID_decode_ber; +der_type_encoder_f LaneConnectionID_encode_der; +xer_type_decoder_f LaneConnectionID_decode_xer; +xer_type_encoder_f LaneConnectionID_encode_xer; +oer_type_decoder_f LaneConnectionID_decode_oer; +oer_type_encoder_f LaneConnectionID_encode_oer; +per_type_decoder_f LaneConnectionID_decode_uper; +per_type_encoder_f LaneConnectionID_encode_uper; +per_type_decoder_f LaneConnectionID_decode_aper; +per_type_encoder_f LaneConnectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneConnectionID_H_ */ +#include diff --git a/vcits/mapem/LaneDataAttribute.h b/vcits/mapem/LaneDataAttribute.h new file mode 100644 index 0000000..b3d7169 --- /dev/null +++ b/vcits/mapem/LaneDataAttribute.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneDataAttribute_H_ +#define _LaneDataAttribute_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaAngle.h" +#include "RoadwayCrownAngle.h" +#include "MergeDivergeNodeAngle.h" +#include "SpeedLimitList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDataAttribute_PR { + LaneDataAttribute_PR_NOTHING, /* No components present */ + LaneDataAttribute_PR_pathEndPointAngle, + LaneDataAttribute_PR_laneCrownPointCenter, + LaneDataAttribute_PR_laneCrownPointLeft, + LaneDataAttribute_PR_laneCrownPointRight, + LaneDataAttribute_PR_laneAngle, + LaneDataAttribute_PR_speedLimits, + LaneDataAttribute_PR_regional + /* Extensions may appear below */ + +} LaneDataAttribute_PR; + +/* Forward declarations */ +struct Reg_LaneDataAttribute; + +/* LaneDataAttribute */ +typedef struct LaneDataAttribute { + LaneDataAttribute_PR present; + union LaneDataAttribute_u { + DeltaAngle_t pathEndPointAngle; + RoadwayCrownAngle_t laneCrownPointCenter; + RoadwayCrownAngle_t laneCrownPointLeft; + RoadwayCrownAngle_t laneCrownPointRight; + MergeDivergeNodeAngle_t laneAngle; + SpeedLimitList_t speedLimits; + struct LaneDataAttribute__regional { + A_SEQUENCE_OF(struct Reg_LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute; +extern asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[7]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttribute_H_ */ +#include diff --git a/vcits/mapem/LaneDataAttributeList.h b/vcits/mapem/LaneDataAttributeList.h new file mode 100644 index 0000000..c8bcf6e --- /dev/null +++ b/vcits/mapem/LaneDataAttributeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneDataAttributeList_H_ +#define _LaneDataAttributeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LaneDataAttribute; + +/* LaneDataAttributeList */ +typedef struct LaneDataAttributeList { + A_SEQUENCE_OF(struct LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttributeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList; +extern asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttributeList_H_ */ +#include diff --git a/vcits/mapem/LaneDirection.h b/vcits/mapem/LaneDirection.h new file mode 100644 index 0000000..7eeff27 --- /dev/null +++ b/vcits/mapem/LaneDirection.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneDirection_H_ +#define _LaneDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDirection { + LaneDirection_ingressPath = 0, + LaneDirection_egressPath = 1 +} e_LaneDirection; + +/* LaneDirection */ +typedef BIT_STRING_t LaneDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneDirection; +asn_struct_free_f LaneDirection_free; +asn_struct_print_f LaneDirection_print; +asn_constr_check_f LaneDirection_constraint; +ber_type_decoder_f LaneDirection_decode_ber; +der_type_encoder_f LaneDirection_encode_der; +xer_type_decoder_f LaneDirection_decode_xer; +xer_type_encoder_f LaneDirection_encode_xer; +oer_type_decoder_f LaneDirection_decode_oer; +oer_type_encoder_f LaneDirection_encode_oer; +per_type_decoder_f LaneDirection_decode_uper; +per_type_encoder_f LaneDirection_encode_uper; +per_type_decoder_f LaneDirection_decode_aper; +per_type_encoder_f LaneDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDirection_H_ */ +#include diff --git a/vcits/mapem/LaneID.h b/vcits/mapem/LaneID.h new file mode 100644 index 0000000..cd40659 --- /dev/null +++ b/vcits/mapem/LaneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneID_H_ +#define _LaneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneID */ +typedef long LaneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneID; +asn_struct_free_f LaneID_free; +asn_struct_print_f LaneID_print; +asn_constr_check_f LaneID_constraint; +ber_type_decoder_f LaneID_decode_ber; +der_type_encoder_f LaneID_encode_der; +xer_type_decoder_f LaneID_decode_xer; +xer_type_encoder_f LaneID_encode_xer; +oer_type_decoder_f LaneID_decode_oer; +oer_type_encoder_f LaneID_encode_oer; +per_type_decoder_f LaneID_decode_uper; +per_type_encoder_f LaneID_encode_uper; +per_type_decoder_f LaneID_decode_aper; +per_type_encoder_f LaneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneID_H_ */ +#include diff --git a/vcits/mapem/LaneList.h b/vcits/mapem/LaneList.h new file mode 100644 index 0000000..5df6b02 --- /dev/null +++ b/vcits/mapem/LaneList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneList_H_ +#define _LaneList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* LaneList */ +typedef struct LaneList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneList; +extern asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneList_H_ */ +#include diff --git a/vcits/mapem/LanePosition.h b/vcits/mapem/LanePosition.h new file mode 100644 index 0000000..e36e563 --- /dev/null +++ b/vcits/mapem/LanePosition.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LanePosition_H_ +#define _LanePosition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LanePosition { + LanePosition_offTheRoad = -1, + LanePosition_innerHardShoulder = 0, + LanePosition_innermostDrivingLane = 1, + LanePosition_secondLaneFromInside = 2, + LanePosition_outerHardShoulder = 14 +} e_LanePosition; + +/* LanePosition */ +typedef long LanePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LanePosition; +asn_struct_free_f LanePosition_free; +asn_struct_print_f LanePosition_print; +asn_constr_check_f LanePosition_constraint; +ber_type_decoder_f LanePosition_decode_ber; +der_type_encoder_f LanePosition_encode_der; +xer_type_decoder_f LanePosition_decode_xer; +xer_type_encoder_f LanePosition_encode_xer; +oer_type_decoder_f LanePosition_decode_oer; +oer_type_encoder_f LanePosition_encode_oer; +per_type_decoder_f LanePosition_decode_uper; +per_type_encoder_f LanePosition_encode_uper; +per_type_decoder_f LanePosition_decode_aper; +per_type_encoder_f LanePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LanePosition_H_ */ +#include diff --git a/vcits/mapem/LaneSharing.h b/vcits/mapem/LaneSharing.h new file mode 100644 index 0000000..afef3f9 --- /dev/null +++ b/vcits/mapem/LaneSharing.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneSharing_H_ +#define _LaneSharing_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneSharing { + LaneSharing_overlappingLaneDescriptionProvided = 0, + LaneSharing_multipleLanesTreatedAsOneLane = 1, + LaneSharing_otherNonMotorizedTrafficTypes = 2, + LaneSharing_individualMotorizedVehicleTraffic = 3, + LaneSharing_busVehicleTraffic = 4, + LaneSharing_taxiVehicleTraffic = 5, + LaneSharing_pedestriansTraffic = 6, + LaneSharing_cyclistVehicleTraffic = 7, + LaneSharing_trackedVehicleTraffic = 8, + LaneSharing_pedestrianTraffic = 9 +} e_LaneSharing; + +/* LaneSharing */ +typedef BIT_STRING_t LaneSharing_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneSharing_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneSharing; +asn_struct_free_f LaneSharing_free; +asn_struct_print_f LaneSharing_print; +asn_constr_check_f LaneSharing_constraint; +ber_type_decoder_f LaneSharing_decode_ber; +der_type_encoder_f LaneSharing_encode_der; +xer_type_decoder_f LaneSharing_decode_xer; +xer_type_encoder_f LaneSharing_encode_xer; +oer_type_decoder_f LaneSharing_decode_oer; +oer_type_encoder_f LaneSharing_encode_oer; +per_type_decoder_f LaneSharing_decode_uper; +per_type_encoder_f LaneSharing_encode_uper; +per_type_decoder_f LaneSharing_decode_aper; +per_type_encoder_f LaneSharing_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneSharing_H_ */ +#include diff --git a/vcits/mapem/LaneTypeAttributes.h b/vcits/mapem/LaneTypeAttributes.h new file mode 100644 index 0000000..cf073f5 --- /dev/null +++ b/vcits/mapem/LaneTypeAttributes.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneTypeAttributes_H_ +#define _LaneTypeAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "LaneAttributes-Vehicle.h" +#include "LaneAttributes-Crosswalk.h" +#include "LaneAttributes-Bike.h" +#include "LaneAttributes-Sidewalk.h" +#include "LaneAttributes-Barrier.h" +#include "LaneAttributes-Striping.h" +#include "LaneAttributes-TrackedVehicle.h" +#include "LaneAttributes-Parking.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneTypeAttributes_PR { + LaneTypeAttributes_PR_NOTHING, /* No components present */ + LaneTypeAttributes_PR_vehicle, + LaneTypeAttributes_PR_crosswalk, + LaneTypeAttributes_PR_bikeLane, + LaneTypeAttributes_PR_sidewalk, + LaneTypeAttributes_PR_median, + LaneTypeAttributes_PR_striping, + LaneTypeAttributes_PR_trackedVehicle, + LaneTypeAttributes_PR_parking + /* Extensions may appear below */ + +} LaneTypeAttributes_PR; + +/* LaneTypeAttributes */ +typedef struct LaneTypeAttributes { + LaneTypeAttributes_PR present; + union LaneTypeAttributes_u { + LaneAttributes_Vehicle_t vehicle; + LaneAttributes_Crosswalk_t crosswalk; + LaneAttributes_Bike_t bikeLane; + LaneAttributes_Sidewalk_t sidewalk; + LaneAttributes_Barrier_t median; + LaneAttributes_Striping_t striping; + LaneAttributes_TrackedVehicle_t trackedVehicle; + LaneAttributes_Parking_t parking; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneTypeAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes; +extern asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[8]; +extern asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneTypeAttributes_H_ */ +#include diff --git a/vcits/mapem/LaneWidth.h b/vcits/mapem/LaneWidth.h new file mode 100644 index 0000000..fda9952 --- /dev/null +++ b/vcits/mapem/LaneWidth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LaneWidth_H_ +#define _LaneWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneWidth */ +typedef long LaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneWidth; +asn_struct_free_f LaneWidth_free; +asn_struct_print_f LaneWidth_print; +asn_constr_check_f LaneWidth_constraint; +ber_type_decoder_f LaneWidth_decode_ber; +der_type_encoder_f LaneWidth_encode_der; +xer_type_decoder_f LaneWidth_decode_xer; +xer_type_encoder_f LaneWidth_encode_xer; +oer_type_decoder_f LaneWidth_decode_oer; +oer_type_encoder_f LaneWidth_encode_oer; +per_type_decoder_f LaneWidth_decode_uper; +per_type_encoder_f LaneWidth_encode_uper; +per_type_decoder_f LaneWidth_decode_aper; +per_type_encoder_f LaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneWidth_H_ */ +#include diff --git a/vcits/mapem/LateralAcceleration.h b/vcits/mapem/LateralAcceleration.h new file mode 100644 index 0000000..26e6a0d --- /dev/null +++ b/vcits/mapem/LateralAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LateralAcceleration_H_ +#define _LateralAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LateralAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LateralAcceleration */ +typedef struct LateralAcceleration { + LateralAccelerationValue_t lateralAccelerationValue; + AccelerationConfidence_t lateralAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LateralAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LateralAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAcceleration_H_ */ +#include diff --git a/vcits/mapem/LateralAccelerationValue.h b/vcits/mapem/LateralAccelerationValue.h new file mode 100644 index 0000000..bcba70a --- /dev/null +++ b/vcits/mapem/LateralAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LateralAccelerationValue_H_ +#define _LateralAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LateralAccelerationValue { + LateralAccelerationValue_pointOneMeterPerSecSquaredToRight = -1, + LateralAccelerationValue_pointOneMeterPerSecSquaredToLeft = 1, + LateralAccelerationValue_unavailable = 161 +} e_LateralAccelerationValue; + +/* LateralAccelerationValue */ +typedef long LateralAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue; +asn_struct_free_f LateralAccelerationValue_free; +asn_struct_print_f LateralAccelerationValue_print; +asn_constr_check_f LateralAccelerationValue_constraint; +ber_type_decoder_f LateralAccelerationValue_decode_ber; +der_type_encoder_f LateralAccelerationValue_encode_der; +xer_type_decoder_f LateralAccelerationValue_decode_xer; +xer_type_encoder_f LateralAccelerationValue_encode_xer; +oer_type_decoder_f LateralAccelerationValue_decode_oer; +oer_type_encoder_f LateralAccelerationValue_encode_oer; +per_type_decoder_f LateralAccelerationValue_decode_uper; +per_type_encoder_f LateralAccelerationValue_encode_uper; +per_type_decoder_f LateralAccelerationValue_decode_aper; +per_type_encoder_f LateralAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAccelerationValue_H_ */ +#include diff --git a/vcits/mapem/Latitude.h b/vcits/mapem/Latitude.h new file mode 100644 index 0000000..804d831 --- /dev/null +++ b/vcits/mapem/Latitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Latitude_H_ +#define _Latitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Latitude { + Latitude_oneMicrodegreeNorth = 10, + Latitude_oneMicrodegreeSouth = -10, + Latitude_unavailable = 900000001 +} e_Latitude; + +/* Latitude */ +typedef long Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Latitude; +asn_struct_free_f Latitude_free; +asn_struct_print_f Latitude_print; +asn_constr_check_f Latitude_constraint; +ber_type_decoder_f Latitude_decode_ber; +der_type_encoder_f Latitude_encode_der; +xer_type_decoder_f Latitude_decode_xer; +xer_type_encoder_f Latitude_encode_xer; +oer_type_decoder_f Latitude_decode_oer; +oer_type_encoder_f Latitude_encode_oer; +per_type_decoder_f Latitude_decode_uper; +per_type_encoder_f Latitude_encode_uper; +per_type_decoder_f Latitude_decode_aper; +per_type_encoder_f Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Latitude_H_ */ +#include diff --git a/vcits/mapem/LayerID.h b/vcits/mapem/LayerID.h new file mode 100644 index 0000000..ff18ef5 --- /dev/null +++ b/vcits/mapem/LayerID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LayerID_H_ +#define _LayerID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LayerID */ +typedef long LayerID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerID; +asn_struct_free_f LayerID_free; +asn_struct_print_f LayerID_print; +asn_constr_check_f LayerID_constraint; +ber_type_decoder_f LayerID_decode_ber; +der_type_encoder_f LayerID_encode_der; +xer_type_decoder_f LayerID_decode_xer; +xer_type_encoder_f LayerID_encode_xer; +oer_type_decoder_f LayerID_decode_oer; +oer_type_encoder_f LayerID_encode_oer; +per_type_decoder_f LayerID_decode_uper; +per_type_encoder_f LayerID_encode_uper; +per_type_decoder_f LayerID_decode_aper; +per_type_encoder_f LayerID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerID_H_ */ +#include diff --git a/vcits/mapem/LayerType.h b/vcits/mapem/LayerType.h new file mode 100644 index 0000000..6a4c8ab --- /dev/null +++ b/vcits/mapem/LayerType.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LayerType_H_ +#define _LayerType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LayerType { + LayerType_none = 0, + LayerType_mixedContent = 1, + LayerType_generalMapData = 2, + LayerType_intersectionData = 3, + LayerType_curveData = 4, + LayerType_roadwaySectionData = 5, + LayerType_parkingAreaData = 6, + LayerType_sharedLaneData = 7 + /* + * Enumeration is extensible + */ +} e_LayerType; + +/* LayerType */ +typedef long LayerType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerType; +extern const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1; +asn_struct_free_f LayerType_free; +asn_struct_print_f LayerType_print; +asn_constr_check_f LayerType_constraint; +ber_type_decoder_f LayerType_decode_ber; +der_type_encoder_f LayerType_encode_der; +xer_type_decoder_f LayerType_decode_xer; +xer_type_encoder_f LayerType_encode_xer; +oer_type_decoder_f LayerType_decode_oer; +oer_type_encoder_f LayerType_encode_oer; +per_type_decoder_f LayerType_decode_uper; +per_type_encoder_f LayerType_encode_uper; +per_type_decoder_f LayerType_decode_aper; +per_type_encoder_f LayerType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerType_H_ */ +#include diff --git a/vcits/mapem/LicPlateNumber.h b/vcits/mapem/LicPlateNumber.h new file mode 100644 index 0000000..5a56748 --- /dev/null +++ b/vcits/mapem/LicPlateNumber.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LicPlateNumber_H_ +#define _LicPlateNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LicPlateNumber */ +typedef OCTET_STRING_t LicPlateNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LicPlateNumber; +asn_struct_free_f LicPlateNumber_free; +asn_struct_print_f LicPlateNumber_print; +asn_constr_check_f LicPlateNumber_constraint; +ber_type_decoder_f LicPlateNumber_decode_ber; +der_type_encoder_f LicPlateNumber_encode_der; +xer_type_decoder_f LicPlateNumber_decode_xer; +xer_type_encoder_f LicPlateNumber_encode_xer; +oer_type_decoder_f LicPlateNumber_decode_oer; +oer_type_encoder_f LicPlateNumber_encode_oer; +per_type_decoder_f LicPlateNumber_decode_uper; +per_type_encoder_f LicPlateNumber_encode_uper; +per_type_decoder_f LicPlateNumber_decode_aper; +per_type_encoder_f LicPlateNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LicPlateNumber_H_ */ +#include diff --git a/vcits/mapem/LightBarSirenInUse.h b/vcits/mapem/LightBarSirenInUse.h new file mode 100644 index 0000000..2e07947 --- /dev/null +++ b/vcits/mapem/LightBarSirenInUse.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LightBarSirenInUse_H_ +#define _LightBarSirenInUse_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LightBarSirenInUse { + LightBarSirenInUse_lightBarActivated = 0, + LightBarSirenInUse_sirenActivated = 1 +} e_LightBarSirenInUse; + +/* LightBarSirenInUse */ +typedef BIT_STRING_t LightBarSirenInUse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse; +asn_struct_free_f LightBarSirenInUse_free; +asn_struct_print_f LightBarSirenInUse_print; +asn_constr_check_f LightBarSirenInUse_constraint; +ber_type_decoder_f LightBarSirenInUse_decode_ber; +der_type_encoder_f LightBarSirenInUse_encode_der; +xer_type_decoder_f LightBarSirenInUse_decode_xer; +xer_type_encoder_f LightBarSirenInUse_encode_xer; +oer_type_decoder_f LightBarSirenInUse_decode_oer; +oer_type_encoder_f LightBarSirenInUse_encode_oer; +per_type_decoder_f LightBarSirenInUse_decode_uper; +per_type_encoder_f LightBarSirenInUse_encode_uper; +per_type_decoder_f LightBarSirenInUse_decode_aper; +per_type_encoder_f LightBarSirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LightBarSirenInUse_H_ */ +#include diff --git a/vcits/mapem/Longitude.h b/vcits/mapem/Longitude.h new file mode 100644 index 0000000..e88568c --- /dev/null +++ b/vcits/mapem/Longitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Longitude_H_ +#define _Longitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Longitude { + Longitude_oneMicrodegreeEast = 10, + Longitude_oneMicrodegreeWest = -10, + Longitude_unavailable = 1800000001 +} e_Longitude; + +/* Longitude */ +typedef long Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Longitude; +asn_struct_free_f Longitude_free; +asn_struct_print_f Longitude_print; +asn_constr_check_f Longitude_constraint; +ber_type_decoder_f Longitude_decode_ber; +der_type_encoder_f Longitude_encode_der; +xer_type_decoder_f Longitude_decode_xer; +xer_type_encoder_f Longitude_encode_xer; +oer_type_decoder_f Longitude_decode_oer; +oer_type_encoder_f Longitude_encode_oer; +per_type_decoder_f Longitude_decode_uper; +per_type_encoder_f Longitude_encode_uper; +per_type_decoder_f Longitude_decode_aper; +per_type_encoder_f Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Longitude_H_ */ +#include diff --git a/vcits/mapem/LongitudinalAcceleration.h b/vcits/mapem/LongitudinalAcceleration.h new file mode 100644 index 0000000..b8ebea5 --- /dev/null +++ b/vcits/mapem/LongitudinalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LongitudinalAcceleration_H_ +#define _LongitudinalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LongitudinalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LongitudinalAcceleration */ +typedef struct LongitudinalAcceleration { + LongitudinalAccelerationValue_t longitudinalAccelerationValue; + AccelerationConfidence_t longitudinalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LongitudinalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAcceleration_H_ */ +#include diff --git a/vcits/mapem/LongitudinalAccelerationValue.h b/vcits/mapem/LongitudinalAccelerationValue.h new file mode 100644 index 0000000..1c1aba7 --- /dev/null +++ b/vcits/mapem/LongitudinalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _LongitudinalAccelerationValue_H_ +#define _LongitudinalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LongitudinalAccelerationValue { + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredForward = 1, + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredBackward = -1, + LongitudinalAccelerationValue_unavailable = 161 +} e_LongitudinalAccelerationValue; + +/* LongitudinalAccelerationValue */ +typedef long LongitudinalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue; +asn_struct_free_f LongitudinalAccelerationValue_free; +asn_struct_print_f LongitudinalAccelerationValue_print; +asn_constr_check_f LongitudinalAccelerationValue_constraint; +ber_type_decoder_f LongitudinalAccelerationValue_decode_ber; +der_type_encoder_f LongitudinalAccelerationValue_encode_der; +xer_type_decoder_f LongitudinalAccelerationValue_decode_xer; +xer_type_encoder_f LongitudinalAccelerationValue_encode_xer; +oer_type_decoder_f LongitudinalAccelerationValue_decode_oer; +oer_type_encoder_f LongitudinalAccelerationValue_encode_oer; +per_type_decoder_f LongitudinalAccelerationValue_decode_uper; +per_type_encoder_f LongitudinalAccelerationValue_encode_uper; +per_type_decoder_f LongitudinalAccelerationValue_decode_aper; +per_type_encoder_f LongitudinalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAccelerationValue_H_ */ +#include diff --git a/vcits/mapem/MAPEM.h b/vcits/mapem/MAPEM.h new file mode 100644 index 0000000..59c92a4 --- /dev/null +++ b/vcits/mapem/MAPEM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MAPEM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/MAPEM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _MAPEM_H_ +#define _MAPEM_H_ + + +#include + +/* Including external dependencies */ +#include "ItsPduHeader.h" +#include "MapData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MAPEM */ +typedef struct MAPEM { + ItsPduHeader_t header; + MapData_t map; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MAPEM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MAPEM; + +#ifdef __cplusplus +} +#endif + +#endif /* _MAPEM_H_ */ +#include diff --git a/vcits/mapem/ManeuverAssistList.h b/vcits/mapem/ManeuverAssistList.h new file mode 100644 index 0000000..04b81a6 --- /dev/null +++ b/vcits/mapem/ManeuverAssistList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ManeuverAssistList_H_ +#define _ManeuverAssistList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectionManeuverAssist; + +/* ManeuverAssistList */ +typedef struct ManeuverAssistList { + A_SEQUENCE_OF(struct ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ManeuverAssistList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList; +extern asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1; +extern asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[1]; +extern asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManeuverAssistList_H_ */ +#include diff --git a/vcits/mapem/ManufacturerIdentifier.h b/vcits/mapem/ManufacturerIdentifier.h new file mode 100644 index 0000000..f02d353 --- /dev/null +++ b/vcits/mapem/ManufacturerIdentifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ManufacturerIdentifier_H_ +#define _ManufacturerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ManufacturerIdentifier */ +typedef long ManufacturerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ManufacturerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ManufacturerIdentifier; +asn_struct_free_f ManufacturerIdentifier_free; +asn_struct_print_f ManufacturerIdentifier_print; +asn_constr_check_f ManufacturerIdentifier_constraint; +ber_type_decoder_f ManufacturerIdentifier_decode_ber; +der_type_encoder_f ManufacturerIdentifier_encode_der; +xer_type_decoder_f ManufacturerIdentifier_decode_xer; +xer_type_encoder_f ManufacturerIdentifier_encode_xer; +oer_type_decoder_f ManufacturerIdentifier_decode_oer; +oer_type_encoder_f ManufacturerIdentifier_encode_oer; +per_type_decoder_f ManufacturerIdentifier_decode_uper; +per_type_encoder_f ManufacturerIdentifier_encode_uper; +per_type_decoder_f ManufacturerIdentifier_decode_aper; +per_type_encoder_f ManufacturerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManufacturerIdentifier_H_ */ +#include diff --git a/vcits/mapem/MapData-addGrpC.h b/vcits/mapem/MapData-addGrpC.h new file mode 100644 index 0000000..76991bc --- /dev/null +++ b/vcits/mapem/MapData-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _MapData_addGrpC_H_ +#define _MapData_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocationList; + +/* MapData-addGrpC */ +typedef struct MapData_addGrpC { + struct SignalHeadLocationList *signalHeadLocations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_addGrpC_H_ */ +#include diff --git a/vcits/mapem/MapData.h b/vcits/mapem/MapData.h new file mode 100644 index 0000000..1247702 --- /dev/null +++ b/vcits/mapem/MapData.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _MapData_H_ +#define _MapData_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "MsgCount.h" +#include "LayerType.h" +#include "LayerID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometryList; +struct RoadSegmentList; +struct DataParameters; +struct RestrictionClassList; +struct Reg_MapData; + +/* MapData */ +typedef struct MapData { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + MsgCount_t msgIssueRevision; + LayerType_t *layerType; /* OPTIONAL */ + LayerID_t *layerID; /* OPTIONAL */ + struct IntersectionGeometryList *intersections; /* OPTIONAL */ + struct RoadSegmentList *roadSegments; /* OPTIONAL */ + struct DataParameters *dataParameters; /* OPTIONAL */ + struct RestrictionClassList *restrictionList; /* OPTIONAL */ + struct MapData__regional { + A_SEQUENCE_OF(struct Reg_MapData) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData; +extern asn_SEQUENCE_specifics_t asn_SPC_MapData_specs_1; +extern asn_TYPE_member_t asn_MBR_MapData_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_H_ */ +#include diff --git a/vcits/mapem/MergeDivergeNodeAngle.h b/vcits/mapem/MergeDivergeNodeAngle.h new file mode 100644 index 0000000..ffc0f98 --- /dev/null +++ b/vcits/mapem/MergeDivergeNodeAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _MergeDivergeNodeAngle_H_ +#define _MergeDivergeNodeAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MergeDivergeNodeAngle */ +typedef long MergeDivergeNodeAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle; +asn_struct_free_f MergeDivergeNodeAngle_free; +asn_struct_print_f MergeDivergeNodeAngle_print; +asn_constr_check_f MergeDivergeNodeAngle_constraint; +ber_type_decoder_f MergeDivergeNodeAngle_decode_ber; +der_type_encoder_f MergeDivergeNodeAngle_encode_der; +xer_type_decoder_f MergeDivergeNodeAngle_decode_xer; +xer_type_encoder_f MergeDivergeNodeAngle_encode_xer; +oer_type_decoder_f MergeDivergeNodeAngle_decode_oer; +oer_type_encoder_f MergeDivergeNodeAngle_encode_oer; +per_type_decoder_f MergeDivergeNodeAngle_decode_uper; +per_type_encoder_f MergeDivergeNodeAngle_encode_uper; +per_type_decoder_f MergeDivergeNodeAngle_decode_aper; +per_type_encoder_f MergeDivergeNodeAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MergeDivergeNodeAngle_H_ */ +#include diff --git a/vcits/mapem/MinuteOfTheYear.h b/vcits/mapem/MinuteOfTheYear.h new file mode 100644 index 0000000..8f62eb6 --- /dev/null +++ b/vcits/mapem/MinuteOfTheYear.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _MinuteOfTheYear_H_ +#define _MinuteOfTheYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MinuteOfTheYear */ +typedef long MinuteOfTheYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear; +asn_struct_free_f MinuteOfTheYear_free; +asn_struct_print_f MinuteOfTheYear_print; +asn_constr_check_f MinuteOfTheYear_constraint; +ber_type_decoder_f MinuteOfTheYear_decode_ber; +der_type_encoder_f MinuteOfTheYear_encode_der; +xer_type_decoder_f MinuteOfTheYear_decode_xer; +xer_type_encoder_f MinuteOfTheYear_encode_xer; +oer_type_decoder_f MinuteOfTheYear_decode_oer; +oer_type_encoder_f MinuteOfTheYear_encode_oer; +per_type_decoder_f MinuteOfTheYear_decode_uper; +per_type_encoder_f MinuteOfTheYear_encode_uper; +per_type_decoder_f MinuteOfTheYear_decode_aper; +per_type_encoder_f MinuteOfTheYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MinuteOfTheYear_H_ */ +#include diff --git a/vcits/mapem/MovementEvent-addGrpC.h b/vcits/mapem/MovementEvent-addGrpC.h new file mode 100644 index 0000000..1b528e9 --- /dev/null +++ b/vcits/mapem/MovementEvent-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _MovementEvent_addGrpC_H_ +#define _MovementEvent_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "ExceptionalCondition.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MovementEvent-addGrpC */ +typedef struct MovementEvent_addGrpC { + ExceptionalCondition_t *stateChangeReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_addGrpC_H_ */ +#include diff --git a/vcits/mapem/MovementEvent.h b/vcits/mapem/MovementEvent.h new file mode 100644 index 0000000..c87c978 --- /dev/null +++ b/vcits/mapem/MovementEvent.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _MovementEvent_H_ +#define _MovementEvent_H_ + + +#include + +/* Including external dependencies */ +#include "MovementPhaseState.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TimeChangeDetails; +struct AdvisorySpeedList; +struct Reg_MovementEvent; + +/* MovementEvent */ +typedef struct MovementEvent { + MovementPhaseState_t eventState; + struct TimeChangeDetails *timing; /* OPTIONAL */ + struct AdvisorySpeedList *speeds; /* OPTIONAL */ + struct MovementEvent__regional { + A_SEQUENCE_OF(struct Reg_MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_H_ */ +#include diff --git a/vcits/mapem/MovementEventList.h b/vcits/mapem/MovementEventList.h new file mode 100644 index 0000000..eb51f96 --- /dev/null +++ b/vcits/mapem/MovementEventList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _MovementEventList_H_ +#define _MovementEventList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementEvent; + +/* MovementEventList */ +typedef struct MovementEventList { + A_SEQUENCE_OF(struct MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEventList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEventList; +extern asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEventList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementEventList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEventList_H_ */ +#include diff --git a/vcits/mapem/MovementList.h b/vcits/mapem/MovementList.h new file mode 100644 index 0000000..0fe1214 --- /dev/null +++ b/vcits/mapem/MovementList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _MovementList_H_ +#define _MovementList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementState; + +/* MovementList */ +typedef struct MovementList { + A_SEQUENCE_OF(struct MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementList; +extern asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementList_H_ */ +#include diff --git a/vcits/mapem/MovementPhaseState.h b/vcits/mapem/MovementPhaseState.h new file mode 100644 index 0000000..7985209 --- /dev/null +++ b/vcits/mapem/MovementPhaseState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _MovementPhaseState_H_ +#define _MovementPhaseState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MovementPhaseState { + MovementPhaseState_unavailable = 0, + MovementPhaseState_dark = 1, + MovementPhaseState_stop_Then_Proceed = 2, + MovementPhaseState_stop_And_Remain = 3, + MovementPhaseState_pre_Movement = 4, + MovementPhaseState_permissive_Movement_Allowed = 5, + MovementPhaseState_protected_Movement_Allowed = 6, + MovementPhaseState_permissive_clearance = 7, + MovementPhaseState_protected_clearance = 8, + MovementPhaseState_caution_Conflicting_Traffic = 9 +} e_MovementPhaseState; + +/* MovementPhaseState */ +typedef long MovementPhaseState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MovementPhaseState; +extern const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1; +asn_struct_free_f MovementPhaseState_free; +asn_struct_print_f MovementPhaseState_print; +asn_constr_check_f MovementPhaseState_constraint; +ber_type_decoder_f MovementPhaseState_decode_ber; +der_type_encoder_f MovementPhaseState_encode_der; +xer_type_decoder_f MovementPhaseState_decode_xer; +xer_type_encoder_f MovementPhaseState_encode_xer; +oer_type_decoder_f MovementPhaseState_decode_oer; +oer_type_encoder_f MovementPhaseState_encode_oer; +per_type_decoder_f MovementPhaseState_decode_uper; +per_type_encoder_f MovementPhaseState_encode_uper; +per_type_decoder_f MovementPhaseState_decode_aper; +per_type_encoder_f MovementPhaseState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementPhaseState_H_ */ +#include diff --git a/vcits/mapem/MovementState.h b/vcits/mapem/MovementState.h new file mode 100644 index 0000000..b9f44f6 --- /dev/null +++ b/vcits/mapem/MovementState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _MovementState_H_ +#define _MovementState_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "SignalGroupID.h" +#include "MovementEventList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ManeuverAssistList; +struct Reg_MovementState; + +/* MovementState */ +typedef struct MovementState { + DescriptiveName_t *movementName; /* OPTIONAL */ + SignalGroupID_t signalGroup; + MovementEventList_t state_time_speed; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct MovementState__regional { + A_SEQUENCE_OF(struct Reg_MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementState_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementState_H_ */ +#include diff --git a/vcits/mapem/MsgCount.h b/vcits/mapem/MsgCount.h new file mode 100644 index 0000000..b1e5ecb --- /dev/null +++ b/vcits/mapem/MsgCount.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _MsgCount_H_ +#define _MsgCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MsgCount */ +typedef long MsgCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MsgCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MsgCount; +asn_struct_free_f MsgCount_free; +asn_struct_print_f MsgCount_print; +asn_constr_check_f MsgCount_constraint; +ber_type_decoder_f MsgCount_decode_ber; +der_type_encoder_f MsgCount_encode_der; +xer_type_decoder_f MsgCount_decode_xer; +xer_type_encoder_f MsgCount_encode_xer; +oer_type_decoder_f MsgCount_decode_oer; +oer_type_encoder_f MsgCount_encode_oer; +per_type_decoder_f MsgCount_decode_uper; +per_type_encoder_f MsgCount_encode_uper; +per_type_decoder_f MsgCount_decode_aper; +per_type_encoder_f MsgCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MsgCount_H_ */ +#include diff --git a/vcits/mapem/Node-LLmD-64b.h b/vcits/mapem/Node-LLmD-64b.h new file mode 100644 index 0000000..cdb0acb --- /dev/null +++ b/vcits/mapem/Node-LLmD-64b.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Node_LLmD_64b_H_ +#define _Node_LLmD_64b_H_ + + +#include + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LLmD-64b */ +typedef struct Node_LLmD_64b { + Longitude_t lon; + Latitude_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LLmD_64b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LLmD_64b_H_ */ +#include diff --git a/vcits/mapem/Node-XY-20b.h b/vcits/mapem/Node-XY-20b.h new file mode 100644 index 0000000..e69a9ff --- /dev/null +++ b/vcits/mapem/Node-XY-20b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Node_XY_20b_H_ +#define _Node_XY_20b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-20b */ +typedef struct Node_XY_20b { + Offset_B10_t x; + Offset_B10_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_20b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_20b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_20b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_20b_H_ */ +#include diff --git a/vcits/mapem/Node-XY-22b.h b/vcits/mapem/Node-XY-22b.h new file mode 100644 index 0000000..01070bc --- /dev/null +++ b/vcits/mapem/Node-XY-22b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Node_XY_22b_H_ +#define _Node_XY_22b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B11.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-22b */ +typedef struct Node_XY_22b { + Offset_B11_t x; + Offset_B11_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_22b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_22b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_22b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_22b_H_ */ +#include diff --git a/vcits/mapem/Node-XY-24b.h b/vcits/mapem/Node-XY-24b.h new file mode 100644 index 0000000..40c471b --- /dev/null +++ b/vcits/mapem/Node-XY-24b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Node_XY_24b_H_ +#define _Node_XY_24b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B12.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-24b */ +typedef struct Node_XY_24b { + Offset_B12_t x; + Offset_B12_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_24b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_24b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_24b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_24b_H_ */ +#include diff --git a/vcits/mapem/Node-XY-26b.h b/vcits/mapem/Node-XY-26b.h new file mode 100644 index 0000000..65d983c --- /dev/null +++ b/vcits/mapem/Node-XY-26b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Node_XY_26b_H_ +#define _Node_XY_26b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B13.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-26b */ +typedef struct Node_XY_26b { + Offset_B13_t x; + Offset_B13_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_26b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_26b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_26b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_26b_H_ */ +#include diff --git a/vcits/mapem/Node-XY-28b.h b/vcits/mapem/Node-XY-28b.h new file mode 100644 index 0000000..4991447 --- /dev/null +++ b/vcits/mapem/Node-XY-28b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Node_XY_28b_H_ +#define _Node_XY_28b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B14.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-28b */ +typedef struct Node_XY_28b { + Offset_B14_t x; + Offset_B14_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_28b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_28b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_28b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_28b_H_ */ +#include diff --git a/vcits/mapem/Node-XY-32b.h b/vcits/mapem/Node-XY-32b.h new file mode 100644 index 0000000..535cf08 --- /dev/null +++ b/vcits/mapem/Node-XY-32b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Node_XY_32b_H_ +#define _Node_XY_32b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B16.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-32b */ +typedef struct Node_XY_32b { + Offset_B16_t x; + Offset_B16_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_32b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_32b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_32b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_32b_H_ */ +#include diff --git a/vcits/mapem/Node.h b/vcits/mapem/Node.h new file mode 100644 index 0000000..5c95a7f --- /dev/null +++ b/vcits/mapem/Node.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Node_H_ +#define _Node_H_ + + +#include + +/* Including external dependencies */ +#include +#include "LaneID.h" +#include "LaneConnectionID.h" +#include "IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node */ +typedef struct Node { + long id; + LaneID_t *lane; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + IntersectionID_t *intersectionID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_H_ */ +#include diff --git a/vcits/mapem/NodeAttributeSet-addGrpC.h b/vcits/mapem/NodeAttributeSet-addGrpC.h new file mode 100644 index 0000000..c4ae8dc --- /dev/null +++ b/vcits/mapem/NodeAttributeSet-addGrpC.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _NodeAttributeSet_addGrpC_H_ +#define _NodeAttributeSet_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "PtvRequestType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeLink; +struct Node; + +/* NodeAttributeSet-addGrpC */ +typedef struct NodeAttributeSet_addGrpC { + PtvRequestType_t *ptvRequest; /* OPTIONAL */ + struct NodeLink *nodeLink; /* OPTIONAL */ + struct Node *node; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSet_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSet_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSet_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSet_addGrpC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSet_addGrpC_H_ */ +#include diff --git a/vcits/mapem/NodeAttributeSetXY.h b/vcits/mapem/NodeAttributeSetXY.h new file mode 100644 index 0000000..be616be --- /dev/null +++ b/vcits/mapem/NodeAttributeSetXY.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _NodeAttributeSetXY_H_ +#define _NodeAttributeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeXYList; +struct SegmentAttributeXYList; +struct LaneDataAttributeList; +struct Reg_NodeAttributeSetXY; + +/* NodeAttributeSetXY */ +typedef struct NodeAttributeSetXY { + struct NodeAttributeXYList *localNode; /* OPTIONAL */ + struct SegmentAttributeXYList *disabled; /* OPTIONAL */ + struct SegmentAttributeXYList *enabled; /* OPTIONAL */ + struct LaneDataAttributeList *data; /* OPTIONAL */ + Offset_B10_t *dWidth; /* OPTIONAL */ + Offset_B10_t *dElevation; /* OPTIONAL */ + struct NodeAttributeSetXY__regional { + A_SEQUENCE_OF(struct Reg_NodeAttributeSetXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSetXY_H_ */ +#include diff --git a/vcits/mapem/NodeAttributeXY.h b/vcits/mapem/NodeAttributeXY.h new file mode 100644 index 0000000..c13afef --- /dev/null +++ b/vcits/mapem/NodeAttributeXY.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _NodeAttributeXY_H_ +#define _NodeAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeAttributeXY { + NodeAttributeXY_reserved = 0, + NodeAttributeXY_stopLine = 1, + NodeAttributeXY_roundedCapStyleA = 2, + NodeAttributeXY_roundedCapStyleB = 3, + NodeAttributeXY_mergePoint = 4, + NodeAttributeXY_divergePoint = 5, + NodeAttributeXY_downstreamStopLine = 6, + NodeAttributeXY_downstreamStartNode = 7, + NodeAttributeXY_closedToTraffic = 8, + NodeAttributeXY_safeIsland = 9, + NodeAttributeXY_curbPresentAtStepOff = 10, + NodeAttributeXY_hydrantPresent = 11 + /* + * Enumeration is extensible + */ +} e_NodeAttributeXY; + +/* NodeAttributeXY */ +typedef long NodeAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1; +asn_struct_free_f NodeAttributeXY_free; +asn_struct_print_f NodeAttributeXY_print; +asn_constr_check_f NodeAttributeXY_constraint; +ber_type_decoder_f NodeAttributeXY_decode_ber; +der_type_encoder_f NodeAttributeXY_encode_der; +xer_type_decoder_f NodeAttributeXY_decode_xer; +xer_type_encoder_f NodeAttributeXY_encode_xer; +oer_type_decoder_f NodeAttributeXY_decode_oer; +oer_type_encoder_f NodeAttributeXY_encode_oer; +per_type_decoder_f NodeAttributeXY_decode_uper; +per_type_encoder_f NodeAttributeXY_encode_uper; +per_type_decoder_f NodeAttributeXY_decode_aper; +per_type_encoder_f NodeAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXY_H_ */ +#include diff --git a/vcits/mapem/NodeAttributeXYList.h b/vcits/mapem/NodeAttributeXYList.h new file mode 100644 index 0000000..5d6d955 --- /dev/null +++ b/vcits/mapem/NodeAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _NodeAttributeXYList_H_ +#define _NodeAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "NodeAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NodeAttributeXYList */ +typedef struct NodeAttributeXYList { + A_SEQUENCE_OF(NodeAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXYList_H_ */ +#include diff --git a/vcits/mapem/NodeLink.h b/vcits/mapem/NodeLink.h new file mode 100644 index 0000000..63c4656 --- /dev/null +++ b/vcits/mapem/NodeLink.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _NodeLink_H_ +#define _NodeLink_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Node; + +/* NodeLink */ +typedef struct NodeLink { + A_SEQUENCE_OF(struct Node) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeLink_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeLink; +extern asn_SET_OF_specifics_t asn_SPC_NodeLink_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeLink_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeLink_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeLink_H_ */ +#include diff --git a/vcits/mapem/NodeListXY.h b/vcits/mapem/NodeListXY.h new file mode 100644 index 0000000..f079387 --- /dev/null +++ b/vcits/mapem/NodeListXY.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _NodeListXY_H_ +#define _NodeListXY_H_ + + +#include + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "ComputedLane.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeListXY_PR { + NodeListXY_PR_NOTHING, /* No components present */ + NodeListXY_PR_nodes, + NodeListXY_PR_computed + /* Extensions may appear below */ + +} NodeListXY_PR; + +/* NodeListXY */ +typedef struct NodeListXY { + NodeListXY_PR present; + union NodeListXY_u { + NodeSetXY_t nodes; + ComputedLane_t computed; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeListXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeListXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeListXY_1[2]; +extern asn_per_constraints_t asn_PER_type_NodeListXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeListXY_H_ */ +#include diff --git a/vcits/mapem/NodeOffsetPointXY.h b/vcits/mapem/NodeOffsetPointXY.h new file mode 100644 index 0000000..771b049 --- /dev/null +++ b/vcits/mapem/NodeOffsetPointXY.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _NodeOffsetPointXY_H_ +#define _NodeOffsetPointXY_H_ + + +#include + +/* Including external dependencies */ +#include "Node-XY-20b.h" +#include "Node-XY-22b.h" +#include "Node-XY-24b.h" +#include "Node-XY-26b.h" +#include "Node-XY-28b.h" +#include "Node-XY-32b.h" +#include "Node-LLmD-64b.h" +#include "RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeOffsetPointXY_PR { + NodeOffsetPointXY_PR_NOTHING, /* No components present */ + NodeOffsetPointXY_PR_node_XY1, + NodeOffsetPointXY_PR_node_XY2, + NodeOffsetPointXY_PR_node_XY3, + NodeOffsetPointXY_PR_node_XY4, + NodeOffsetPointXY_PR_node_XY5, + NodeOffsetPointXY_PR_node_XY6, + NodeOffsetPointXY_PR_node_LatLon, + NodeOffsetPointXY_PR_regional +} NodeOffsetPointXY_PR; + +/* NodeOffsetPointXY */ +typedef struct NodeOffsetPointXY { + NodeOffsetPointXY_PR present; + union NodeOffsetPointXY_u { + Node_XY_20b_t node_XY1; + Node_XY_22b_t node_XY2; + Node_XY_24b_t node_XY3; + Node_XY_26b_t node_XY4; + Node_XY_28b_t node_XY5; + Node_XY_32b_t node_XY6; + Node_LLmD_64b_t node_LatLon; + Reg_NodeOffsetPointXY_t regional; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeOffsetPointXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[8]; +extern asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeOffsetPointXY_H_ */ +#include diff --git a/vcits/mapem/NodeSetXY.h b/vcits/mapem/NodeSetXY.h new file mode 100644 index 0000000..8382b31 --- /dev/null +++ b/vcits/mapem/NodeSetXY.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _NodeSetXY_H_ +#define _NodeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeXY; + +/* NodeSetXY */ +typedef struct NodeSetXY { + A_SEQUENCE_OF(struct NodeXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeSetXY; +extern asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeSetXY_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeSetXY_H_ */ +#include diff --git a/vcits/mapem/NodeXY.h b/vcits/mapem/NodeXY.h new file mode 100644 index 0000000..827ac20 --- /dev/null +++ b/vcits/mapem/NodeXY.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _NodeXY_H_ +#define _NodeXY_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeSetXY; + +/* NodeXY */ +typedef struct NodeXY { + NodeOffsetPointXY_t delta; + struct NodeAttributeSetXY *attributes; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeXY_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeXY_H_ */ +#include diff --git a/vcits/mapem/NumberOfOccupants.h b/vcits/mapem/NumberOfOccupants.h new file mode 100644 index 0000000..0f86f98 --- /dev/null +++ b/vcits/mapem/NumberOfOccupants.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _NumberOfOccupants_H_ +#define _NumberOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NumberOfOccupants { + NumberOfOccupants_oneOccupant = 1, + NumberOfOccupants_unavailable = 127 +} e_NumberOfOccupants; + +/* NumberOfOccupants */ +typedef long NumberOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants; +asn_struct_free_f NumberOfOccupants_free; +asn_struct_print_f NumberOfOccupants_print; +asn_constr_check_f NumberOfOccupants_constraint; +ber_type_decoder_f NumberOfOccupants_decode_ber; +der_type_encoder_f NumberOfOccupants_encode_der; +xer_type_decoder_f NumberOfOccupants_decode_xer; +xer_type_encoder_f NumberOfOccupants_encode_xer; +oer_type_decoder_f NumberOfOccupants_decode_oer; +oer_type_encoder_f NumberOfOccupants_encode_oer; +per_type_decoder_f NumberOfOccupants_decode_uper; +per_type_encoder_f NumberOfOccupants_encode_uper; +per_type_decoder_f NumberOfOccupants_decode_aper; +per_type_encoder_f NumberOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NumberOfOccupants_H_ */ +#include diff --git a/vcits/mapem/Offset-B09.h b/vcits/mapem/Offset-B09.h new file mode 100644 index 0000000..ed6bec3 --- /dev/null +++ b/vcits/mapem/Offset-B09.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Offset_B09_H_ +#define _Offset_B09_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B09 */ +typedef long Offset_B09_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B09_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B09; +asn_struct_free_f Offset_B09_free; +asn_struct_print_f Offset_B09_print; +asn_constr_check_f Offset_B09_constraint; +ber_type_decoder_f Offset_B09_decode_ber; +der_type_encoder_f Offset_B09_encode_der; +xer_type_decoder_f Offset_B09_decode_xer; +xer_type_encoder_f Offset_B09_encode_xer; +oer_type_decoder_f Offset_B09_decode_oer; +oer_type_encoder_f Offset_B09_encode_oer; +per_type_decoder_f Offset_B09_decode_uper; +per_type_encoder_f Offset_B09_encode_uper; +per_type_decoder_f Offset_B09_decode_aper; +per_type_encoder_f Offset_B09_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B09_H_ */ +#include diff --git a/vcits/mapem/Offset-B10.h b/vcits/mapem/Offset-B10.h new file mode 100644 index 0000000..d88b7cb --- /dev/null +++ b/vcits/mapem/Offset-B10.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Offset_B10_H_ +#define _Offset_B10_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B10 */ +typedef long Offset_B10_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B10_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B10; +asn_struct_free_f Offset_B10_free; +asn_struct_print_f Offset_B10_print; +asn_constr_check_f Offset_B10_constraint; +ber_type_decoder_f Offset_B10_decode_ber; +der_type_encoder_f Offset_B10_encode_der; +xer_type_decoder_f Offset_B10_decode_xer; +xer_type_encoder_f Offset_B10_encode_xer; +oer_type_decoder_f Offset_B10_decode_oer; +oer_type_encoder_f Offset_B10_encode_oer; +per_type_decoder_f Offset_B10_decode_uper; +per_type_encoder_f Offset_B10_encode_uper; +per_type_decoder_f Offset_B10_decode_aper; +per_type_encoder_f Offset_B10_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B10_H_ */ +#include diff --git a/vcits/mapem/Offset-B11.h b/vcits/mapem/Offset-B11.h new file mode 100644 index 0000000..080060b --- /dev/null +++ b/vcits/mapem/Offset-B11.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Offset_B11_H_ +#define _Offset_B11_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B11 */ +typedef long Offset_B11_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B11_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B11; +asn_struct_free_f Offset_B11_free; +asn_struct_print_f Offset_B11_print; +asn_constr_check_f Offset_B11_constraint; +ber_type_decoder_f Offset_B11_decode_ber; +der_type_encoder_f Offset_B11_encode_der; +xer_type_decoder_f Offset_B11_decode_xer; +xer_type_encoder_f Offset_B11_encode_xer; +oer_type_decoder_f Offset_B11_decode_oer; +oer_type_encoder_f Offset_B11_encode_oer; +per_type_decoder_f Offset_B11_decode_uper; +per_type_encoder_f Offset_B11_encode_uper; +per_type_decoder_f Offset_B11_decode_aper; +per_type_encoder_f Offset_B11_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B11_H_ */ +#include diff --git a/vcits/mapem/Offset-B12.h b/vcits/mapem/Offset-B12.h new file mode 100644 index 0000000..b8081c1 --- /dev/null +++ b/vcits/mapem/Offset-B12.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Offset_B12_H_ +#define _Offset_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B12 */ +typedef long Offset_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B12; +asn_struct_free_f Offset_B12_free; +asn_struct_print_f Offset_B12_print; +asn_constr_check_f Offset_B12_constraint; +ber_type_decoder_f Offset_B12_decode_ber; +der_type_encoder_f Offset_B12_encode_der; +xer_type_decoder_f Offset_B12_decode_xer; +xer_type_encoder_f Offset_B12_encode_xer; +oer_type_decoder_f Offset_B12_decode_oer; +oer_type_encoder_f Offset_B12_encode_oer; +per_type_decoder_f Offset_B12_decode_uper; +per_type_encoder_f Offset_B12_encode_uper; +per_type_decoder_f Offset_B12_decode_aper; +per_type_encoder_f Offset_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B12_H_ */ +#include diff --git a/vcits/mapem/Offset-B13.h b/vcits/mapem/Offset-B13.h new file mode 100644 index 0000000..c854c0b --- /dev/null +++ b/vcits/mapem/Offset-B13.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Offset_B13_H_ +#define _Offset_B13_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B13 */ +typedef long Offset_B13_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B13_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B13; +asn_struct_free_f Offset_B13_free; +asn_struct_print_f Offset_B13_print; +asn_constr_check_f Offset_B13_constraint; +ber_type_decoder_f Offset_B13_decode_ber; +der_type_encoder_f Offset_B13_encode_der; +xer_type_decoder_f Offset_B13_decode_xer; +xer_type_encoder_f Offset_B13_encode_xer; +oer_type_decoder_f Offset_B13_decode_oer; +oer_type_encoder_f Offset_B13_encode_oer; +per_type_decoder_f Offset_B13_decode_uper; +per_type_encoder_f Offset_B13_encode_uper; +per_type_decoder_f Offset_B13_decode_aper; +per_type_encoder_f Offset_B13_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B13_H_ */ +#include diff --git a/vcits/mapem/Offset-B14.h b/vcits/mapem/Offset-B14.h new file mode 100644 index 0000000..4e1a3fe --- /dev/null +++ b/vcits/mapem/Offset-B14.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Offset_B14_H_ +#define _Offset_B14_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B14 */ +typedef long Offset_B14_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B14_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B14; +asn_struct_free_f Offset_B14_free; +asn_struct_print_f Offset_B14_print; +asn_constr_check_f Offset_B14_constraint; +ber_type_decoder_f Offset_B14_decode_ber; +der_type_encoder_f Offset_B14_encode_der; +xer_type_decoder_f Offset_B14_decode_xer; +xer_type_encoder_f Offset_B14_encode_xer; +oer_type_decoder_f Offset_B14_decode_oer; +oer_type_encoder_f Offset_B14_encode_oer; +per_type_decoder_f Offset_B14_decode_uper; +per_type_encoder_f Offset_B14_encode_uper; +per_type_decoder_f Offset_B14_decode_aper; +per_type_encoder_f Offset_B14_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B14_H_ */ +#include diff --git a/vcits/mapem/Offset-B16.h b/vcits/mapem/Offset-B16.h new file mode 100644 index 0000000..68eef1b --- /dev/null +++ b/vcits/mapem/Offset-B16.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Offset_B16_H_ +#define _Offset_B16_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B16 */ +typedef long Offset_B16_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B16_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B16; +asn_struct_free_f Offset_B16_free; +asn_struct_print_f Offset_B16_print; +asn_constr_check_f Offset_B16_constraint; +ber_type_decoder_f Offset_B16_decode_ber; +der_type_encoder_f Offset_B16_encode_der; +xer_type_decoder_f Offset_B16_decode_xer; +xer_type_encoder_f Offset_B16_encode_xer; +oer_type_decoder_f Offset_B16_decode_oer; +oer_type_encoder_f Offset_B16_encode_oer; +per_type_decoder_f Offset_B16_decode_uper; +per_type_encoder_f Offset_B16_encode_uper; +per_type_decoder_f Offset_B16_decode_aper; +per_type_encoder_f Offset_B16_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B16_H_ */ +#include diff --git a/vcits/mapem/OpeningDaysHours.h b/vcits/mapem/OpeningDaysHours.h new file mode 100644 index 0000000..f90bf31 --- /dev/null +++ b/vcits/mapem/OpeningDaysHours.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _OpeningDaysHours_H_ +#define _OpeningDaysHours_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OpeningDaysHours */ +typedef UTF8String_t OpeningDaysHours_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours; +asn_struct_free_f OpeningDaysHours_free; +asn_struct_print_f OpeningDaysHours_print; +asn_constr_check_f OpeningDaysHours_constraint; +ber_type_decoder_f OpeningDaysHours_decode_ber; +der_type_encoder_f OpeningDaysHours_encode_der; +xer_type_decoder_f OpeningDaysHours_decode_xer; +xer_type_encoder_f OpeningDaysHours_encode_xer; +oer_type_decoder_f OpeningDaysHours_decode_oer; +oer_type_encoder_f OpeningDaysHours_encode_oer; +per_type_decoder_f OpeningDaysHours_decode_uper; +per_type_encoder_f OpeningDaysHours_encode_uper; +per_type_decoder_f OpeningDaysHours_decode_aper; +per_type_encoder_f OpeningDaysHours_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OpeningDaysHours_H_ */ +#include diff --git a/vcits/mapem/OverlayLaneList.h b/vcits/mapem/OverlayLaneList.h new file mode 100644 index 0000000..06cfaae --- /dev/null +++ b/vcits/mapem/OverlayLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _OverlayLaneList_H_ +#define _OverlayLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OverlayLaneList */ +typedef struct OverlayLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} OverlayLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OverlayLaneList; +extern asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_OverlayLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _OverlayLaneList_H_ */ +#include diff --git a/vcits/mapem/PathDeltaTime.h b/vcits/mapem/PathDeltaTime.h new file mode 100644 index 0000000..f059680 --- /dev/null +++ b/vcits/mapem/PathDeltaTime.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PathDeltaTime_H_ +#define _PathDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PathDeltaTime { + PathDeltaTime_tenMilliSecondsInPast = 1 +} e_PathDeltaTime; + +/* PathDeltaTime */ +typedef long PathDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PathDeltaTime; +asn_struct_free_f PathDeltaTime_free; +asn_struct_print_f PathDeltaTime_print; +asn_constr_check_f PathDeltaTime_constraint; +ber_type_decoder_f PathDeltaTime_decode_ber; +der_type_encoder_f PathDeltaTime_encode_der; +xer_type_decoder_f PathDeltaTime_decode_xer; +xer_type_encoder_f PathDeltaTime_encode_xer; +oer_type_decoder_f PathDeltaTime_decode_oer; +oer_type_encoder_f PathDeltaTime_encode_oer; +per_type_decoder_f PathDeltaTime_decode_uper; +per_type_encoder_f PathDeltaTime_encode_uper; +per_type_decoder_f PathDeltaTime_decode_aper; +per_type_encoder_f PathDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathDeltaTime_H_ */ +#include diff --git a/vcits/mapem/PathHistory.h b/vcits/mapem/PathHistory.h new file mode 100644 index 0000000..f2ee6f1 --- /dev/null +++ b/vcits/mapem/PathHistory.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PathHistory_H_ +#define _PathHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathPoint; + +/* PathHistory */ +typedef struct PathHistory { + A_SEQUENCE_OF(struct PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathHistory; +extern asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_PathHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_PathHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathHistory_H_ */ +#include diff --git a/vcits/mapem/PathPoint.h b/vcits/mapem/PathPoint.h new file mode 100644 index 0000000..6437b05 --- /dev/null +++ b/vcits/mapem/PathPoint.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PathPoint_H_ +#define _PathPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PathPoint */ +typedef struct PathPoint { + DeltaReferencePosition_t pathPosition; + PathDeltaTime_t *pathDeltaTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_PathPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathPoint_H_ */ +#include diff --git a/vcits/mapem/PedestrianBicycleDetect.h b/vcits/mapem/PedestrianBicycleDetect.h new file mode 100644 index 0000000..aa62a30 --- /dev/null +++ b/vcits/mapem/PedestrianBicycleDetect.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PedestrianBicycleDetect_H_ +#define _PedestrianBicycleDetect_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PedestrianBicycleDetect */ +typedef BOOLEAN_t PedestrianBicycleDetect_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect; +asn_struct_free_f PedestrianBicycleDetect_free; +asn_struct_print_f PedestrianBicycleDetect_print; +asn_constr_check_f PedestrianBicycleDetect_constraint; +ber_type_decoder_f PedestrianBicycleDetect_decode_ber; +der_type_encoder_f PedestrianBicycleDetect_encode_der; +xer_type_decoder_f PedestrianBicycleDetect_decode_xer; +xer_type_encoder_f PedestrianBicycleDetect_encode_xer; +oer_type_decoder_f PedestrianBicycleDetect_decode_oer; +oer_type_encoder_f PedestrianBicycleDetect_encode_oer; +per_type_decoder_f PedestrianBicycleDetect_decode_uper; +per_type_encoder_f PedestrianBicycleDetect_encode_uper; +per_type_decoder_f PedestrianBicycleDetect_decode_aper; +per_type_encoder_f PedestrianBicycleDetect_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PedestrianBicycleDetect_H_ */ +#include diff --git a/vcits/mapem/PerformanceClass.h b/vcits/mapem/PerformanceClass.h new file mode 100644 index 0000000..85e2ef1 --- /dev/null +++ b/vcits/mapem/PerformanceClass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PerformanceClass_H_ +#define _PerformanceClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PerformanceClass { + PerformanceClass_unavailable = 0, + PerformanceClass_performanceClassA = 1, + PerformanceClass_performanceClassB = 2 +} e_PerformanceClass; + +/* PerformanceClass */ +typedef long PerformanceClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PerformanceClass; +asn_struct_free_f PerformanceClass_free; +asn_struct_print_f PerformanceClass_print; +asn_constr_check_f PerformanceClass_constraint; +ber_type_decoder_f PerformanceClass_decode_ber; +der_type_encoder_f PerformanceClass_encode_der; +xer_type_decoder_f PerformanceClass_decode_xer; +xer_type_encoder_f PerformanceClass_encode_xer; +oer_type_decoder_f PerformanceClass_decode_oer; +oer_type_encoder_f PerformanceClass_encode_oer; +per_type_decoder_f PerformanceClass_decode_uper; +per_type_encoder_f PerformanceClass_encode_uper; +per_type_decoder_f PerformanceClass_decode_aper; +per_type_encoder_f PerformanceClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PerformanceClass_H_ */ +#include diff --git a/vcits/mapem/PhoneNumber.h b/vcits/mapem/PhoneNumber.h new file mode 100644 index 0000000..2214a7c --- /dev/null +++ b/vcits/mapem/PhoneNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PhoneNumber_H_ +#define _PhoneNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PhoneNumber */ +typedef NumericString_t PhoneNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PhoneNumber; +asn_struct_free_f PhoneNumber_free; +asn_struct_print_f PhoneNumber_print; +asn_constr_check_f PhoneNumber_constraint; +ber_type_decoder_f PhoneNumber_decode_ber; +der_type_encoder_f PhoneNumber_encode_der; +xer_type_decoder_f PhoneNumber_decode_xer; +xer_type_encoder_f PhoneNumber_encode_xer; +oer_type_decoder_f PhoneNumber_decode_oer; +oer_type_encoder_f PhoneNumber_encode_oer; +per_type_decoder_f PhoneNumber_decode_uper; +per_type_encoder_f PhoneNumber_encode_uper; +per_type_decoder_f PhoneNumber_decode_aper; +per_type_encoder_f PhoneNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PhoneNumber_H_ */ +#include diff --git a/vcits/mapem/PosCentMass.h b/vcits/mapem/PosCentMass.h new file mode 100644 index 0000000..f8b2939 --- /dev/null +++ b/vcits/mapem/PosCentMass.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PosCentMass_H_ +#define _PosCentMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosCentMass { + PosCentMass_tenCentimeters = 1, + PosCentMass_unavailable = 63 +} e_PosCentMass; + +/* PosCentMass */ +typedef long PosCentMass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosCentMass; +asn_struct_free_f PosCentMass_free; +asn_struct_print_f PosCentMass_print; +asn_constr_check_f PosCentMass_constraint; +ber_type_decoder_f PosCentMass_decode_ber; +der_type_encoder_f PosCentMass_encode_der; +xer_type_decoder_f PosCentMass_decode_xer; +xer_type_encoder_f PosCentMass_encode_xer; +oer_type_decoder_f PosCentMass_decode_oer; +oer_type_encoder_f PosCentMass_encode_oer; +per_type_decoder_f PosCentMass_decode_uper; +per_type_encoder_f PosCentMass_encode_uper; +per_type_decoder_f PosCentMass_decode_aper; +per_type_encoder_f PosCentMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosCentMass_H_ */ +#include diff --git a/vcits/mapem/PosConfidenceEllipse.h b/vcits/mapem/PosConfidenceEllipse.h new file mode 100644 index 0000000..6541d03 --- /dev/null +++ b/vcits/mapem/PosConfidenceEllipse.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PosConfidenceEllipse_H_ +#define _PosConfidenceEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "SemiAxisLength.h" +#include "HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PosConfidenceEllipse */ +typedef struct PosConfidenceEllipse { + SemiAxisLength_t semiMajorConfidence; + SemiAxisLength_t semiMinorConfidence; + HeadingValue_t semiMajorOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PosConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosConfidenceEllipse_H_ */ +#include diff --git a/vcits/mapem/PosFrontAx.h b/vcits/mapem/PosFrontAx.h new file mode 100644 index 0000000..c2dde69 --- /dev/null +++ b/vcits/mapem/PosFrontAx.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PosFrontAx_H_ +#define _PosFrontAx_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosFrontAx { + PosFrontAx_tenCentimeters = 1, + PosFrontAx_unavailable = 20 +} e_PosFrontAx; + +/* PosFrontAx */ +typedef long PosFrontAx_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosFrontAx; +asn_struct_free_f PosFrontAx_free; +asn_struct_print_f PosFrontAx_print; +asn_constr_check_f PosFrontAx_constraint; +ber_type_decoder_f PosFrontAx_decode_ber; +der_type_encoder_f PosFrontAx_encode_der; +xer_type_decoder_f PosFrontAx_decode_xer; +xer_type_encoder_f PosFrontAx_encode_xer; +oer_type_decoder_f PosFrontAx_decode_oer; +oer_type_encoder_f PosFrontAx_encode_oer; +per_type_decoder_f PosFrontAx_decode_uper; +per_type_encoder_f PosFrontAx_encode_uper; +per_type_decoder_f PosFrontAx_decode_aper; +per_type_encoder_f PosFrontAx_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosFrontAx_H_ */ +#include diff --git a/vcits/mapem/PosLonCarr.h b/vcits/mapem/PosLonCarr.h new file mode 100644 index 0000000..296d51f --- /dev/null +++ b/vcits/mapem/PosLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PosLonCarr_H_ +#define _PosLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosLonCarr { + PosLonCarr_oneCentimeter = 1, + PosLonCarr_unavailable = 127 +} e_PosLonCarr; + +/* PosLonCarr */ +typedef long PosLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosLonCarr; +asn_struct_free_f PosLonCarr_free; +asn_struct_print_f PosLonCarr_print; +asn_constr_check_f PosLonCarr_constraint; +ber_type_decoder_f PosLonCarr_decode_ber; +der_type_encoder_f PosLonCarr_encode_der; +xer_type_decoder_f PosLonCarr_decode_xer; +xer_type_encoder_f PosLonCarr_encode_xer; +oer_type_decoder_f PosLonCarr_decode_oer; +oer_type_encoder_f PosLonCarr_encode_oer; +per_type_decoder_f PosLonCarr_decode_uper; +per_type_encoder_f PosLonCarr_encode_uper; +per_type_decoder_f PosLonCarr_decode_aper; +per_type_encoder_f PosLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosLonCarr_H_ */ +#include diff --git a/vcits/mapem/PosPillar.h b/vcits/mapem/PosPillar.h new file mode 100644 index 0000000..04dbc0b --- /dev/null +++ b/vcits/mapem/PosPillar.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PosPillar_H_ +#define _PosPillar_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosPillar { + PosPillar_tenCentimeters = 1, + PosPillar_unavailable = 30 +} e_PosPillar; + +/* PosPillar */ +typedef long PosPillar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PosPillar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PosPillar; +asn_struct_free_f PosPillar_free; +asn_struct_print_f PosPillar_print; +asn_constr_check_f PosPillar_constraint; +ber_type_decoder_f PosPillar_decode_ber; +der_type_encoder_f PosPillar_encode_der; +xer_type_decoder_f PosPillar_decode_xer; +xer_type_encoder_f PosPillar_encode_xer; +oer_type_decoder_f PosPillar_decode_oer; +oer_type_encoder_f PosPillar_encode_oer; +per_type_decoder_f PosPillar_decode_uper; +per_type_encoder_f PosPillar_encode_uper; +per_type_decoder_f PosPillar_decode_aper; +per_type_encoder_f PosPillar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosPillar_H_ */ +#include diff --git a/vcits/mapem/Position3D-addGrpC.h b/vcits/mapem/Position3D-addGrpC.h new file mode 100644 index 0000000..c6f9218 --- /dev/null +++ b/vcits/mapem/Position3D-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Position3D_addGrpC_H_ +#define _Position3D_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Position3D-addGrpC */ +typedef struct Position3D_addGrpC { + Altitude_t altitude; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_addGrpC_H_ */ +#include diff --git a/vcits/mapem/Position3D.h b/vcits/mapem/Position3D.h new file mode 100644 index 0000000..2ded467 --- /dev/null +++ b/vcits/mapem/Position3D.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Position3D_H_ +#define _Position3D_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "Elevation.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_Position3D; + +/* Position3D */ +typedef struct Position3D { + Latitude_t lat; + Longitude_t Long; + Elevation_t *elevation; /* OPTIONAL */ + struct Position3D__regional { + A_SEQUENCE_OF(struct Reg_Position3D) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_H_ */ +#include diff --git a/vcits/mapem/PositionConfidence.h b/vcits/mapem/PositionConfidence.h new file mode 100644 index 0000000..101cefe --- /dev/null +++ b/vcits/mapem/PositionConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PositionConfidence_H_ +#define _PositionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionConfidence { + PositionConfidence_unavailable = 0, + PositionConfidence_a500m = 1, + PositionConfidence_a200m = 2, + PositionConfidence_a100m = 3, + PositionConfidence_a50m = 4, + PositionConfidence_a20m = 5, + PositionConfidence_a10m = 6, + PositionConfidence_a5m = 7, + PositionConfidence_a2m = 8, + PositionConfidence_a1m = 9, + PositionConfidence_a50cm = 10, + PositionConfidence_a20cm = 11, + PositionConfidence_a10cm = 12, + PositionConfidence_a5cm = 13, + PositionConfidence_a2cm = 14, + PositionConfidence_a1cm = 15 +} e_PositionConfidence; + +/* PositionConfidence */ +typedef long PositionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1; +asn_struct_free_f PositionConfidence_free; +asn_struct_print_f PositionConfidence_print; +asn_constr_check_f PositionConfidence_constraint; +ber_type_decoder_f PositionConfidence_decode_ber; +der_type_encoder_f PositionConfidence_encode_der; +xer_type_decoder_f PositionConfidence_decode_xer; +xer_type_encoder_f PositionConfidence_encode_xer; +oer_type_decoder_f PositionConfidence_decode_oer; +oer_type_encoder_f PositionConfidence_encode_oer; +per_type_decoder_f PositionConfidence_decode_uper; +per_type_encoder_f PositionConfidence_encode_uper; +per_type_decoder_f PositionConfidence_decode_aper; +per_type_encoder_f PositionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidence_H_ */ +#include diff --git a/vcits/mapem/PositionConfidenceSet.h b/vcits/mapem/PositionConfidenceSet.h new file mode 100644 index 0000000..aebbdb1 --- /dev/null +++ b/vcits/mapem/PositionConfidenceSet.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PositionConfidenceSet_H_ +#define _PositionConfidenceSet_H_ + + +#include + +/* Including external dependencies */ +#include "PositionConfidence.h" +#include "ElevationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionConfidenceSet */ +typedef struct PositionConfidenceSet { + PositionConfidence_t pos; + ElevationConfidence_t elevation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionConfidenceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidenceSet_H_ */ +#include diff --git a/vcits/mapem/PositionOfOccupants.h b/vcits/mapem/PositionOfOccupants.h new file mode 100644 index 0000000..effbd50 --- /dev/null +++ b/vcits/mapem/PositionOfOccupants.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PositionOfOccupants_H_ +#define _PositionOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionOfOccupants { + PositionOfOccupants_row1LeftOccupied = 0, + PositionOfOccupants_row1RightOccupied = 1, + PositionOfOccupants_row1MidOccupied = 2, + PositionOfOccupants_row1NotDetectable = 3, + PositionOfOccupants_row1NotPresent = 4, + PositionOfOccupants_row2LeftOccupied = 5, + PositionOfOccupants_row2RightOccupied = 6, + PositionOfOccupants_row2MidOccupied = 7, + PositionOfOccupants_row2NotDetectable = 8, + PositionOfOccupants_row2NotPresent = 9, + PositionOfOccupants_row3LeftOccupied = 10, + PositionOfOccupants_row3RightOccupied = 11, + PositionOfOccupants_row3MidOccupied = 12, + PositionOfOccupants_row3NotDetectable = 13, + PositionOfOccupants_row3NotPresent = 14, + PositionOfOccupants_row4LeftOccupied = 15, + PositionOfOccupants_row4RightOccupied = 16, + PositionOfOccupants_row4MidOccupied = 17, + PositionOfOccupants_row4NotDetectable = 18, + PositionOfOccupants_row4NotPresent = 19 +} e_PositionOfOccupants; + +/* PositionOfOccupants */ +typedef BIT_STRING_t PositionOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants; +asn_struct_free_f PositionOfOccupants_free; +asn_struct_print_f PositionOfOccupants_print; +asn_constr_check_f PositionOfOccupants_constraint; +ber_type_decoder_f PositionOfOccupants_decode_ber; +der_type_encoder_f PositionOfOccupants_encode_der; +xer_type_decoder_f PositionOfOccupants_decode_xer; +xer_type_encoder_f PositionOfOccupants_encode_xer; +oer_type_decoder_f PositionOfOccupants_decode_oer; +oer_type_encoder_f PositionOfOccupants_encode_oer; +per_type_decoder_f PositionOfOccupants_decode_uper; +per_type_encoder_f PositionOfOccupants_encode_uper; +per_type_decoder_f PositionOfOccupants_decode_aper; +per_type_encoder_f PositionOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfOccupants_H_ */ +#include diff --git a/vcits/mapem/PositionOfPillars.h b/vcits/mapem/PositionOfPillars.h new file mode 100644 index 0000000..d42f515 --- /dev/null +++ b/vcits/mapem/PositionOfPillars.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PositionOfPillars_H_ +#define _PositionOfPillars_H_ + + +#include + +/* Including external dependencies */ +#include "PosPillar.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionOfPillars */ +typedef struct PositionOfPillars { + A_SEQUENCE_OF(PosPillar_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionOfPillars_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfPillars; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfPillars_H_ */ +#include diff --git a/vcits/mapem/PositionalAccuracy.h b/vcits/mapem/PositionalAccuracy.h new file mode 100644 index 0000000..1079280 --- /dev/null +++ b/vcits/mapem/PositionalAccuracy.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PositionalAccuracy_H_ +#define _PositionalAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include "SemiMajorAxisAccuracy.h" +#include "SemiMinorAxisAccuracy.h" +#include "SemiMajorAxisOrientation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionalAccuracy */ +typedef struct PositionalAccuracy { + SemiMajorAxisAccuracy_t semiMajor; + SemiMinorAxisAccuracy_t semiMinor; + SemiMajorAxisOrientation_t orientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionalAccuracy_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionalAccuracy_H_ */ +#include diff --git a/vcits/mapem/PositioningSolutionType.h b/vcits/mapem/PositioningSolutionType.h new file mode 100644 index 0000000..5e0bb57 --- /dev/null +++ b/vcits/mapem/PositioningSolutionType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PositioningSolutionType_H_ +#define _PositioningSolutionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositioningSolutionType { + PositioningSolutionType_noPositioningSolution = 0, + PositioningSolutionType_sGNSS = 1, + PositioningSolutionType_dGNSS = 2, + PositioningSolutionType_sGNSSplusDR = 3, + PositioningSolutionType_dGNSSplusDR = 4, + PositioningSolutionType_dR = 5 + /* + * Enumeration is extensible + */ +} e_PositioningSolutionType; + +/* PositioningSolutionType */ +typedef long PositioningSolutionType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType; +asn_struct_free_f PositioningSolutionType_free; +asn_struct_print_f PositioningSolutionType_print; +asn_constr_check_f PositioningSolutionType_constraint; +ber_type_decoder_f PositioningSolutionType_decode_ber; +der_type_encoder_f PositioningSolutionType_encode_der; +xer_type_decoder_f PositioningSolutionType_decode_xer; +xer_type_encoder_f PositioningSolutionType_encode_xer; +oer_type_decoder_f PositioningSolutionType_decode_oer; +oer_type_encoder_f PositioningSolutionType_encode_oer; +per_type_decoder_f PositioningSolutionType_decode_uper; +per_type_encoder_f PositioningSolutionType_encode_uper; +per_type_decoder_f PositioningSolutionType_decode_aper; +per_type_encoder_f PositioningSolutionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositioningSolutionType_H_ */ +#include diff --git a/vcits/mapem/PostCrashSubCauseCode.h b/vcits/mapem/PostCrashSubCauseCode.h new file mode 100644 index 0000000..09392b7 --- /dev/null +++ b/vcits/mapem/PostCrashSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PostCrashSubCauseCode_H_ +#define _PostCrashSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PostCrashSubCauseCode { + PostCrashSubCauseCode_unavailable = 0, + PostCrashSubCauseCode_accidentWithoutECallTriggered = 1, + PostCrashSubCauseCode_accidentWithECallManuallyTriggered = 2, + PostCrashSubCauseCode_accidentWithECallAutomaticallyTriggered = 3, + PostCrashSubCauseCode_accidentWithECallTriggeredWithoutAccessToCellularNetwork = 4 +} e_PostCrashSubCauseCode; + +/* PostCrashSubCauseCode */ +typedef long PostCrashSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode; +asn_struct_free_f PostCrashSubCauseCode_free; +asn_struct_print_f PostCrashSubCauseCode_print; +asn_constr_check_f PostCrashSubCauseCode_constraint; +ber_type_decoder_f PostCrashSubCauseCode_decode_ber; +der_type_encoder_f PostCrashSubCauseCode_encode_der; +xer_type_decoder_f PostCrashSubCauseCode_decode_xer; +xer_type_encoder_f PostCrashSubCauseCode_encode_xer; +oer_type_decoder_f PostCrashSubCauseCode_decode_oer; +oer_type_encoder_f PostCrashSubCauseCode_encode_oer; +per_type_decoder_f PostCrashSubCauseCode_decode_uper; +per_type_encoder_f PostCrashSubCauseCode_encode_uper; +per_type_decoder_f PostCrashSubCauseCode_decode_aper; +per_type_encoder_f PostCrashSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PostCrashSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/PreemptPriorityList.h b/vcits/mapem/PreemptPriorityList.h new file mode 100644 index 0000000..833cf81 --- /dev/null +++ b/vcits/mapem/PreemptPriorityList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PreemptPriorityList_H_ +#define _PreemptPriorityList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalControlZone; + +/* PreemptPriorityList */ +typedef struct PreemptPriorityList { + A_SEQUENCE_OF(struct SignalControlZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PreemptPriorityList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList; +extern asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1; +extern asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[1]; +extern asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PreemptPriorityList_H_ */ +#include diff --git a/vcits/mapem/PrioritizationResponse.h b/vcits/mapem/PrioritizationResponse.h new file mode 100644 index 0000000..0a372e0 --- /dev/null +++ b/vcits/mapem/PrioritizationResponse.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PrioritizationResponse_H_ +#define _PrioritizationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "PrioritizationResponseStatus.h" +#include "SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PrioritizationResponse */ +typedef struct PrioritizationResponse { + StationID_t stationID; + PrioritizationResponseStatus_t priorState; + SignalGroupID_t signalGroup; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponse_H_ */ +#include diff --git a/vcits/mapem/PrioritizationResponseList.h b/vcits/mapem/PrioritizationResponseList.h new file mode 100644 index 0000000..b3facb8 --- /dev/null +++ b/vcits/mapem/PrioritizationResponseList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PrioritizationResponseList_H_ +#define _PrioritizationResponseList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponse; + +/* PrioritizationResponseList */ +typedef struct PrioritizationResponseList { + A_SEQUENCE_OF(struct PrioritizationResponse) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList; +extern asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[1]; +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseList_H_ */ +#include diff --git a/vcits/mapem/PrioritizationResponseStatus.h b/vcits/mapem/PrioritizationResponseStatus.h new file mode 100644 index 0000000..663fa58 --- /dev/null +++ b/vcits/mapem/PrioritizationResponseStatus.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PrioritizationResponseStatus_H_ +#define _PrioritizationResponseStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PrioritizationResponseStatus { + PrioritizationResponseStatus_unknown = 0, + PrioritizationResponseStatus_requested = 1, + PrioritizationResponseStatus_processing = 2, + PrioritizationResponseStatus_watchOtherTraffic = 3, + PrioritizationResponseStatus_granted = 4, + PrioritizationResponseStatus_rejected = 5, + PrioritizationResponseStatus_maxPresence = 6, + PrioritizationResponseStatus_reserviceLocked = 7 + /* + * Enumeration is extensible + */ +} e_PrioritizationResponseStatus; + +/* PrioritizationResponseStatus */ +typedef long PrioritizationResponseStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus; +extern const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1; +asn_struct_free_f PrioritizationResponseStatus_free; +asn_struct_print_f PrioritizationResponseStatus_print; +asn_constr_check_f PrioritizationResponseStatus_constraint; +ber_type_decoder_f PrioritizationResponseStatus_decode_ber; +der_type_encoder_f PrioritizationResponseStatus_encode_der; +xer_type_decoder_f PrioritizationResponseStatus_decode_xer; +xer_type_encoder_f PrioritizationResponseStatus_encode_xer; +oer_type_decoder_f PrioritizationResponseStatus_decode_oer; +oer_type_encoder_f PrioritizationResponseStatus_encode_oer; +per_type_decoder_f PrioritizationResponseStatus_decode_uper; +per_type_encoder_f PrioritizationResponseStatus_encode_uper; +per_type_decoder_f PrioritizationResponseStatus_decode_aper; +per_type_encoder_f PrioritizationResponseStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseStatus_H_ */ +#include diff --git a/vcits/mapem/PriorityRequestType.h b/vcits/mapem/PriorityRequestType.h new file mode 100644 index 0000000..6254506 --- /dev/null +++ b/vcits/mapem/PriorityRequestType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PriorityRequestType_H_ +#define _PriorityRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PriorityRequestType { + PriorityRequestType_priorityRequestTypeReserved = 0, + PriorityRequestType_priorityRequest = 1, + PriorityRequestType_priorityRequestUpdate = 2, + PriorityRequestType_priorityCancellation = 3 + /* + * Enumeration is extensible + */ +} e_PriorityRequestType; + +/* PriorityRequestType */ +typedef long PriorityRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PriorityRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1; +asn_struct_free_f PriorityRequestType_free; +asn_struct_print_f PriorityRequestType_print; +asn_constr_check_f PriorityRequestType_constraint; +ber_type_decoder_f PriorityRequestType_decode_ber; +der_type_encoder_f PriorityRequestType_encode_der; +xer_type_decoder_f PriorityRequestType_decode_xer; +xer_type_encoder_f PriorityRequestType_encode_xer; +oer_type_decoder_f PriorityRequestType_decode_oer; +oer_type_encoder_f PriorityRequestType_encode_oer; +per_type_decoder_f PriorityRequestType_decode_uper; +per_type_encoder_f PriorityRequestType_encode_uper; +per_type_decoder_f PriorityRequestType_decode_aper; +per_type_encoder_f PriorityRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PriorityRequestType_H_ */ +#include diff --git a/vcits/mapem/ProtectedCommunicationZone.h b/vcits/mapem/ProtectedCommunicationZone.h new file mode 100644 index 0000000..e776e23 --- /dev/null +++ b/vcits/mapem/ProtectedCommunicationZone.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ProtectedCommunicationZone_H_ +#define _ProtectedCommunicationZone_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneType.h" +#include "TimestampIts.h" +#include "Latitude.h" +#include "Longitude.h" +#include "ProtectedZoneRadius.h" +#include "ProtectedZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedCommunicationZone */ +typedef struct ProtectedCommunicationZone { + ProtectedZoneType_t protectedZoneType; + TimestampIts_t *expiryTime; /* OPTIONAL */ + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + ProtectedZoneRadius_t *protectedZoneRadius; /* OPTIONAL */ + ProtectedZoneID_t *protectedZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone; +extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZone_H_ */ +#include diff --git a/vcits/mapem/ProtectedCommunicationZonesRSU.h b/vcits/mapem/ProtectedCommunicationZonesRSU.h new file mode 100644 index 0000000..1733885 --- /dev/null +++ b/vcits/mapem/ProtectedCommunicationZonesRSU.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ProtectedCommunicationZonesRSU_H_ +#define _ProtectedCommunicationZonesRSU_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtectedCommunicationZone; + +/* ProtectedCommunicationZonesRSU */ +typedef struct ProtectedCommunicationZonesRSU { + A_SEQUENCE_OF(struct ProtectedCommunicationZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZonesRSU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZonesRSU_H_ */ +#include diff --git a/vcits/mapem/ProtectedZoneID.h b/vcits/mapem/ProtectedZoneID.h new file mode 100644 index 0000000..b6bb533 --- /dev/null +++ b/vcits/mapem/ProtectedZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ProtectedZoneID_H_ +#define _ProtectedZoneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedZoneID */ +typedef long ProtectedZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID; +asn_struct_free_f ProtectedZoneID_free; +asn_struct_print_f ProtectedZoneID_print; +asn_constr_check_f ProtectedZoneID_constraint; +ber_type_decoder_f ProtectedZoneID_decode_ber; +der_type_encoder_f ProtectedZoneID_encode_der; +xer_type_decoder_f ProtectedZoneID_decode_xer; +xer_type_encoder_f ProtectedZoneID_encode_xer; +oer_type_decoder_f ProtectedZoneID_decode_oer; +oer_type_encoder_f ProtectedZoneID_encode_oer; +per_type_decoder_f ProtectedZoneID_decode_uper; +per_type_encoder_f ProtectedZoneID_encode_uper; +per_type_decoder_f ProtectedZoneID_decode_aper; +per_type_encoder_f ProtectedZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneID_H_ */ +#include diff --git a/vcits/mapem/ProtectedZoneRadius.h b/vcits/mapem/ProtectedZoneRadius.h new file mode 100644 index 0000000..98bdf5d --- /dev/null +++ b/vcits/mapem/ProtectedZoneRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ProtectedZoneRadius_H_ +#define _ProtectedZoneRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneRadius { + ProtectedZoneRadius_oneMeter = 1 +} e_ProtectedZoneRadius; + +/* ProtectedZoneRadius */ +typedef long ProtectedZoneRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius; +asn_struct_free_f ProtectedZoneRadius_free; +asn_struct_print_f ProtectedZoneRadius_print; +asn_constr_check_f ProtectedZoneRadius_constraint; +ber_type_decoder_f ProtectedZoneRadius_decode_ber; +der_type_encoder_f ProtectedZoneRadius_encode_der; +xer_type_decoder_f ProtectedZoneRadius_decode_xer; +xer_type_encoder_f ProtectedZoneRadius_encode_xer; +oer_type_decoder_f ProtectedZoneRadius_decode_oer; +oer_type_encoder_f ProtectedZoneRadius_encode_oer; +per_type_decoder_f ProtectedZoneRadius_decode_uper; +per_type_encoder_f ProtectedZoneRadius_encode_uper; +per_type_decoder_f ProtectedZoneRadius_decode_aper; +per_type_encoder_f ProtectedZoneRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneRadius_H_ */ +#include diff --git a/vcits/mapem/ProtectedZoneType.h b/vcits/mapem/ProtectedZoneType.h new file mode 100644 index 0000000..3eaac31 --- /dev/null +++ b/vcits/mapem/ProtectedZoneType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ProtectedZoneType_H_ +#define _ProtectedZoneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneType { + ProtectedZoneType_permanentCenDsrcTolling = 0, + /* + * Enumeration is extensible + */ + ProtectedZoneType_temporaryCenDsrcTolling = 1 +} e_ProtectedZoneType; + +/* ProtectedZoneType */ +typedef long ProtectedZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1; +asn_struct_free_f ProtectedZoneType_free; +asn_struct_print_f ProtectedZoneType_print; +asn_constr_check_f ProtectedZoneType_constraint; +ber_type_decoder_f ProtectedZoneType_decode_ber; +der_type_encoder_f ProtectedZoneType_encode_der; +xer_type_decoder_f ProtectedZoneType_decode_xer; +xer_type_encoder_f ProtectedZoneType_encode_xer; +oer_type_decoder_f ProtectedZoneType_decode_oer; +oer_type_encoder_f ProtectedZoneType_encode_oer; +per_type_decoder_f ProtectedZoneType_decode_uper; +per_type_encoder_f ProtectedZoneType_encode_uper; +per_type_decoder_f ProtectedZoneType_decode_aper; +per_type_encoder_f ProtectedZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneType_H_ */ +#include diff --git a/vcits/mapem/PtActivation.h b/vcits/mapem/PtActivation.h new file mode 100644 index 0000000..f1e52bf --- /dev/null +++ b/vcits/mapem/PtActivation.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PtActivation_H_ +#define _PtActivation_H_ + + +#include + +/* Including external dependencies */ +#include "PtActivationType.h" +#include "PtActivationData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivation */ +typedef struct PtActivation { + PtActivationType_t ptActivationType; + PtActivationData_t ptActivationData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PtActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PtActivation; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivation_H_ */ +#include diff --git a/vcits/mapem/PtActivationData.h b/vcits/mapem/PtActivationData.h new file mode 100644 index 0000000..405f190 --- /dev/null +++ b/vcits/mapem/PtActivationData.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PtActivationData_H_ +#define _PtActivationData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivationData */ +typedef OCTET_STRING_t PtActivationData_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationData_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationData; +asn_struct_free_f PtActivationData_free; +asn_struct_print_f PtActivationData_print; +asn_constr_check_f PtActivationData_constraint; +ber_type_decoder_f PtActivationData_decode_ber; +der_type_encoder_f PtActivationData_encode_der; +xer_type_decoder_f PtActivationData_decode_xer; +xer_type_encoder_f PtActivationData_encode_xer; +oer_type_decoder_f PtActivationData_decode_oer; +oer_type_encoder_f PtActivationData_encode_oer; +per_type_decoder_f PtActivationData_decode_uper; +per_type_encoder_f PtActivationData_encode_uper; +per_type_decoder_f PtActivationData_decode_aper; +per_type_encoder_f PtActivationData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationData_H_ */ +#include diff --git a/vcits/mapem/PtActivationType.h b/vcits/mapem/PtActivationType.h new file mode 100644 index 0000000..3a48960 --- /dev/null +++ b/vcits/mapem/PtActivationType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PtActivationType_H_ +#define _PtActivationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtActivationType { + PtActivationType_undefinedCodingType = 0, + PtActivationType_r09_16CodingType = 1, + PtActivationType_vdv_50149CodingType = 2 +} e_PtActivationType; + +/* PtActivationType */ +typedef long PtActivationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationType; +asn_struct_free_f PtActivationType_free; +asn_struct_print_f PtActivationType_print; +asn_constr_check_f PtActivationType_constraint; +ber_type_decoder_f PtActivationType_decode_ber; +der_type_encoder_f PtActivationType_encode_der; +xer_type_decoder_f PtActivationType_decode_xer; +xer_type_encoder_f PtActivationType_encode_xer; +oer_type_decoder_f PtActivationType_decode_oer; +oer_type_encoder_f PtActivationType_encode_oer; +per_type_decoder_f PtActivationType_decode_uper; +per_type_encoder_f PtActivationType_encode_uper; +per_type_decoder_f PtActivationType_decode_aper; +per_type_encoder_f PtActivationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationType_H_ */ +#include diff --git a/vcits/mapem/PtvRequestType.h b/vcits/mapem/PtvRequestType.h new file mode 100644 index 0000000..9f4227f --- /dev/null +++ b/vcits/mapem/PtvRequestType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _PtvRequestType_H_ +#define _PtvRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtvRequestType { + PtvRequestType_preRequest = 0, + PtvRequestType_mainRequest = 1, + PtvRequestType_doorCloseRequest = 2, + PtvRequestType_cancelRequest = 3, + PtvRequestType_emergencyRequest = 4 + /* + * Enumeration is extensible + */ +} e_PtvRequestType; + +/* PtvRequestType */ +typedef long PtvRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtvRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtvRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PtvRequestType_specs_1; +asn_struct_free_f PtvRequestType_free; +asn_struct_print_f PtvRequestType_print; +asn_constr_check_f PtvRequestType_constraint; +ber_type_decoder_f PtvRequestType_decode_ber; +der_type_encoder_f PtvRequestType_encode_der; +xer_type_decoder_f PtvRequestType_decode_xer; +xer_type_encoder_f PtvRequestType_encode_xer; +oer_type_decoder_f PtvRequestType_decode_oer; +oer_type_encoder_f PtvRequestType_encode_oer; +per_type_decoder_f PtvRequestType_decode_uper; +per_type_encoder_f PtvRequestType_encode_uper; +per_type_decoder_f PtvRequestType_decode_aper; +per_type_encoder_f PtvRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtvRequestType_H_ */ +#include diff --git a/vcits/mapem/RTCM-Revision.h b/vcits/mapem/RTCM-Revision.h new file mode 100644 index 0000000..5777e66 --- /dev/null +++ b/vcits/mapem/RTCM-Revision.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RTCM_Revision_H_ +#define _RTCM_Revision_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RTCM_Revision { + RTCM_Revision_unknown = 0, + RTCM_Revision_rtcmRev2 = 1, + RTCM_Revision_rtcmRev3 = 2, + RTCM_Revision_reserved = 3 + /* + * Enumeration is extensible + */ +} e_RTCM_Revision; + +/* RTCM-Revision */ +typedef long RTCM_Revision_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCM_Revision; +extern const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1; +asn_struct_free_f RTCM_Revision_free; +asn_struct_print_f RTCM_Revision_print; +asn_constr_check_f RTCM_Revision_constraint; +ber_type_decoder_f RTCM_Revision_decode_ber; +der_type_encoder_f RTCM_Revision_encode_der; +xer_type_decoder_f RTCM_Revision_decode_xer; +xer_type_encoder_f RTCM_Revision_encode_xer; +oer_type_decoder_f RTCM_Revision_decode_oer; +oer_type_encoder_f RTCM_Revision_encode_oer; +per_type_decoder_f RTCM_Revision_decode_uper; +per_type_encoder_f RTCM_Revision_encode_uper; +per_type_decoder_f RTCM_Revision_decode_aper; +per_type_encoder_f RTCM_Revision_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCM_Revision_H_ */ +#include diff --git a/vcits/mapem/RTCMcorrections.h b/vcits/mapem/RTCMcorrections.h new file mode 100644 index 0000000..56274f2 --- /dev/null +++ b/vcits/mapem/RTCMcorrections.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RTCMcorrections_H_ +#define _RTCMcorrections_H_ + + +#include + +/* Including external dependencies */ +#include "MsgCount.h" +#include "RTCM-Revision.h" +#include "MinuteOfTheYear.h" +#include "RTCMmessageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FullPositionVector; +struct RTCMheader; +struct Reg_RTCMcorrections; + +/* RTCMcorrections */ +typedef struct RTCMcorrections { + MsgCount_t msgCnt; + RTCM_Revision_t rev; + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + struct FullPositionVector *anchorPoint; /* OPTIONAL */ + struct RTCMheader *rtcmHeader; /* OPTIONAL */ + RTCMmessageList_t msgs; + struct RTCMcorrections__regional { + A_SEQUENCE_OF(struct Reg_RTCMcorrections) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMcorrections_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMcorrections; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMcorrections_H_ */ +#include diff --git a/vcits/mapem/RTCMheader.h b/vcits/mapem/RTCMheader.h new file mode 100644 index 0000000..a0dfe43 --- /dev/null +++ b/vcits/mapem/RTCMheader.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RTCMheader_H_ +#define _RTCMheader_H_ + + +#include + +/* Including external dependencies */ +#include "GNSSstatus.h" +#include "AntennaOffsetSet.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMheader */ +typedef struct RTCMheader { + GNSSstatus_t status; + AntennaOffsetSet_t offsetSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMheader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMheader; +extern asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMheader_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMheader_H_ */ +#include diff --git a/vcits/mapem/RTCMmessage.h b/vcits/mapem/RTCMmessage.h new file mode 100644 index 0000000..95071d7 --- /dev/null +++ b/vcits/mapem/RTCMmessage.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RTCMmessage_H_ +#define _RTCMmessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessage */ +typedef OCTET_STRING_t RTCMmessage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessage; +asn_struct_free_f RTCMmessage_free; +asn_struct_print_f RTCMmessage_print; +asn_constr_check_f RTCMmessage_constraint; +ber_type_decoder_f RTCMmessage_decode_ber; +der_type_encoder_f RTCMmessage_encode_der; +xer_type_decoder_f RTCMmessage_decode_xer; +xer_type_encoder_f RTCMmessage_encode_xer; +oer_type_decoder_f RTCMmessage_decode_oer; +oer_type_encoder_f RTCMmessage_encode_oer; +per_type_decoder_f RTCMmessage_decode_uper; +per_type_encoder_f RTCMmessage_encode_uper; +per_type_decoder_f RTCMmessage_decode_aper; +per_type_encoder_f RTCMmessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessage_H_ */ +#include diff --git a/vcits/mapem/RTCMmessageList.h b/vcits/mapem/RTCMmessageList.h new file mode 100644 index 0000000..bddb8d3 --- /dev/null +++ b/vcits/mapem/RTCMmessageList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RTCMmessageList_H_ +#define _RTCMmessageList_H_ + + +#include + +/* Including external dependencies */ +#include "RTCMmessage.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessageList */ +typedef struct RTCMmessageList { + A_SEQUENCE_OF(RTCMmessage_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMmessageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessageList; +extern asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMmessageList_1[1]; +extern asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessageList_H_ */ +#include diff --git a/vcits/mapem/ReferencePosition.h b/vcits/mapem/ReferencePosition.h new file mode 100644 index 0000000..96dc898 --- /dev/null +++ b/vcits/mapem/ReferencePosition.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ReferencePosition_H_ +#define _ReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "PosConfidenceEllipse.h" +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReferencePosition */ +typedef struct ReferencePosition { + Latitude_t latitude; + Longitude_t longitude; + PosConfidenceEllipse_t positionConfidenceEllipse; + Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ReferencePosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReferencePosition_H_ */ +#include diff --git a/vcits/mapem/RegionId.h b/vcits/mapem/RegionId.h new file mode 100644 index 0000000..af4d714 --- /dev/null +++ b/vcits/mapem/RegionId.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RegionId_H_ +#define _RegionId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegionId */ +typedef long RegionId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RegionId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RegionId; +asn_struct_free_f RegionId_free; +asn_struct_print_f RegionId_print; +asn_constr_check_f RegionId_constraint; +ber_type_decoder_f RegionId_decode_ber; +der_type_encoder_f RegionId_encode_der; +xer_type_decoder_f RegionId_decode_xer; +xer_type_encoder_f RegionId_encode_xer; +oer_type_decoder_f RegionId_decode_oer; +oer_type_encoder_f RegionId_encode_oer; +per_type_decoder_f RegionId_decode_uper; +per_type_encoder_f RegionId_encode_uper; +per_type_decoder_f RegionId_decode_aper; +per_type_encoder_f RegionId_encode_aper; +#define RegionId_noRegion ((RegionId_t)0) +#define RegionId_addGrpA ((RegionId_t)1) +#define RegionId_addGrpB ((RegionId_t)2) +#define RegionId_addGrpC ((RegionId_t)3) + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionId_H_ */ +#include diff --git a/vcits/mapem/RegionalExtension.h b/vcits/mapem/RegionalExtension.h new file mode 100644 index 0000000..012138f --- /dev/null +++ b/vcits/mapem/RegionalExtension.h @@ -0,0 +1,626 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RegionalExtension_H_ +#define _RegionalExtension_H_ + + +#include + +/* Including external dependencies */ +#include "RegionId.h" +#include +#include +#include "MapData-addGrpC.h" +#include +#include +#include +#include "ConnectionManeuverAssist-addGrpC.h" +#include "ConnectionTrajectory-addGrpC.h" +#include "IntersectionState-addGrpC.h" +#include "LaneAttributes-addGrpC.h" +#include "MovementEvent-addGrpC.h" +#include "NodeAttributeSet-addGrpC.h" +#include "Position3D-addGrpC.h" +#include "RequestorDescription-addGrpC.h" +#include "RestrictionUserType-addGrpC.h" +#include "SignalStatusPackage-addGrpC.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Reg_MapData__regExtValue_PR { + Reg_MapData__regExtValue_PR_NOTHING, /* No components present */ + Reg_MapData__regExtValue_PR_MapData_addGrpC +} Reg_MapData__regExtValue_PR; +typedef enum Reg_RTCMcorrections__regExtValue_PR { + Reg_RTCMcorrections__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RTCMcorrections__regExtValue_PR; +typedef enum Reg_SPAT__regExtValue_PR { + Reg_SPAT__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SPAT__regExtValue_PR; +typedef enum Reg_SignalRequestMessage__regExtValue_PR { + Reg_SignalRequestMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestMessage__regExtValue_PR; +typedef enum Reg_SignalStatusMessage__regExtValue_PR { + Reg_SignalStatusMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatusMessage__regExtValue_PR; +typedef enum Reg_AdvisorySpeed__regExtValue_PR { + Reg_AdvisorySpeed__regExtValue_PR_NOTHING /* No components present */ + +} Reg_AdvisorySpeed__regExtValue_PR; +typedef enum Reg_ComputedLane__regExtValue_PR { + Reg_ComputedLane__regExtValue_PR_NOTHING /* No components present */ + +} Reg_ComputedLane__regExtValue_PR; +typedef enum Reg_ConnectionManeuverAssist__regExtValue_PR { + Reg_ConnectionManeuverAssist__regExtValue_PR_NOTHING, /* No components present */ + Reg_ConnectionManeuverAssist__regExtValue_PR_ConnectionManeuverAssist_addGrpC +} Reg_ConnectionManeuverAssist__regExtValue_PR; +typedef enum Reg_GenericLane__regExtValue_PR { + Reg_GenericLane__regExtValue_PR_NOTHING, /* No components present */ + Reg_GenericLane__regExtValue_PR_ConnectionTrajectory_addGrpC +} Reg_GenericLane__regExtValue_PR; +typedef enum Reg_IntersectionGeometry__regExtValue_PR { + Reg_IntersectionGeometry__regExtValue_PR_NOTHING /* No components present */ + +} Reg_IntersectionGeometry__regExtValue_PR; +typedef enum Reg_IntersectionState__regExtValue_PR { + Reg_IntersectionState__regExtValue_PR_NOTHING, /* No components present */ + Reg_IntersectionState__regExtValue_PR_IntersectionState_addGrpC +} Reg_IntersectionState__regExtValue_PR; +typedef enum Reg_LaneAttributes__regExtValue_PR { + Reg_LaneAttributes__regExtValue_PR_NOTHING, /* No components present */ + Reg_LaneAttributes__regExtValue_PR_LaneAttributes_addGrpC +} Reg_LaneAttributes__regExtValue_PR; +typedef enum Reg_LaneDataAttribute__regExtValue_PR { + Reg_LaneDataAttribute__regExtValue_PR_NOTHING /* No components present */ + +} Reg_LaneDataAttribute__regExtValue_PR; +typedef enum Reg_MovementEvent__regExtValue_PR { + Reg_MovementEvent__regExtValue_PR_NOTHING, /* No components present */ + Reg_MovementEvent__regExtValue_PR_MovementEvent_addGrpC +} Reg_MovementEvent__regExtValue_PR; +typedef enum Reg_MovementState__regExtValue_PR { + Reg_MovementState__regExtValue_PR_NOTHING /* No components present */ + +} Reg_MovementState__regExtValue_PR; +typedef enum Reg_NodeAttributeSetXY__regExtValue_PR { + Reg_NodeAttributeSetXY__regExtValue_PR_NOTHING, /* No components present */ + Reg_NodeAttributeSetXY__regExtValue_PR_NodeAttributeSet_addGrpC +} Reg_NodeAttributeSetXY__regExtValue_PR; +typedef enum Reg_NodeOffsetPointXY__regExtValue_PR { + Reg_NodeOffsetPointXY__regExtValue_PR_NOTHING /* No components present */ + +} Reg_NodeOffsetPointXY__regExtValue_PR; +typedef enum Reg_Position3D__regExtValue_PR { + Reg_Position3D__regExtValue_PR_NOTHING, /* No components present */ + Reg_Position3D__regExtValue_PR_Position3D_addGrpC +} Reg_Position3D__regExtValue_PR; +typedef enum Reg_RequestorDescription__regExtValue_PR { + Reg_RequestorDescription__regExtValue_PR_NOTHING, /* No components present */ + Reg_RequestorDescription__regExtValue_PR_RequestorDescription_addGrpC +} Reg_RequestorDescription__regExtValue_PR; +typedef enum Reg_RequestorType__regExtValue_PR { + Reg_RequestorType__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RequestorType__regExtValue_PR; +typedef enum Reg_RestrictionUserType__regExtValue_PR { + Reg_RestrictionUserType__regExtValue_PR_NOTHING, /* No components present */ + Reg_RestrictionUserType__regExtValue_PR_RestrictionUserType_addGrpC +} Reg_RestrictionUserType__regExtValue_PR; +typedef enum Reg_RoadSegment__regExtValue_PR { + Reg_RoadSegment__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RoadSegment__regExtValue_PR; +typedef enum Reg_SignalControlZone__regExtValue_PR { + Reg_SignalControlZone__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalControlZone__regExtValue_PR; +typedef enum Reg_SignalRequest__regExtValue_PR { + Reg_SignalRequest__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequest__regExtValue_PR; +typedef enum Reg_SignalRequestPackage__regExtValue_PR { + Reg_SignalRequestPackage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestPackage__regExtValue_PR; +typedef enum Reg_SignalStatus__regExtValue_PR { + Reg_SignalStatus__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatus__regExtValue_PR; +typedef enum Reg_SignalStatusPackage__regExtValue_PR { + Reg_SignalStatusPackage__regExtValue_PR_NOTHING, /* No components present */ + Reg_SignalStatusPackage__regExtValue_PR_SignalStatusPackage_addGrpC +} Reg_SignalStatusPackage__regExtValue_PR; + +/* RegionalExtension */ +typedef struct Reg_MapData { + RegionId_t regionId; + struct Reg_MapData__regExtValue { + Reg_MapData__regExtValue_PR present; + union Reg_MapData__regExtValue_u { + MapData_addGrpC_t MapData_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MapData_t; +typedef struct Reg_RTCMcorrections { + RegionId_t regionId; + struct Reg_RTCMcorrections__regExtValue { + Reg_RTCMcorrections__regExtValue_PR present; + union Reg_RTCMcorrections__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RTCMcorrections_t; +typedef struct Reg_SPAT { + RegionId_t regionId; + struct Reg_SPAT__regExtValue { + Reg_SPAT__regExtValue_PR present; + union Reg_SPAT__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SPAT_t; +typedef struct Reg_SignalRequestMessage { + RegionId_t regionId; + struct Reg_SignalRequestMessage__regExtValue { + Reg_SignalRequestMessage__regExtValue_PR present; + union Reg_SignalRequestMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestMessage_t; +typedef struct Reg_SignalStatusMessage { + RegionId_t regionId; + struct Reg_SignalStatusMessage__regExtValue { + Reg_SignalStatusMessage__regExtValue_PR present; + union Reg_SignalStatusMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusMessage_t; +typedef struct Reg_AdvisorySpeed { + RegionId_t regionId; + struct Reg_AdvisorySpeed__regExtValue { + Reg_AdvisorySpeed__regExtValue_PR present; + union Reg_AdvisorySpeed__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_AdvisorySpeed_t; +typedef struct Reg_ComputedLane { + RegionId_t regionId; + struct Reg_ComputedLane__regExtValue { + Reg_ComputedLane__regExtValue_PR present; + union Reg_ComputedLane__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ComputedLane_t; +typedef struct Reg_ConnectionManeuverAssist { + RegionId_t regionId; + struct Reg_ConnectionManeuverAssist__regExtValue { + Reg_ConnectionManeuverAssist__regExtValue_PR present; + union Reg_ConnectionManeuverAssist__regExtValue_u { + ConnectionManeuverAssist_addGrpC_t ConnectionManeuverAssist_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ConnectionManeuverAssist_t; +typedef struct Reg_GenericLane { + RegionId_t regionId; + struct Reg_GenericLane__regExtValue { + Reg_GenericLane__regExtValue_PR present; + union Reg_GenericLane__regExtValue_u { + ConnectionTrajectory_addGrpC_t ConnectionTrajectory_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_GenericLane_t; +typedef struct Reg_IntersectionGeometry { + RegionId_t regionId; + struct Reg_IntersectionGeometry__regExtValue { + Reg_IntersectionGeometry__regExtValue_PR present; + union Reg_IntersectionGeometry__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionGeometry_t; +typedef struct Reg_IntersectionState { + RegionId_t regionId; + struct Reg_IntersectionState__regExtValue { + Reg_IntersectionState__regExtValue_PR present; + union Reg_IntersectionState__regExtValue_u { + IntersectionState_addGrpC_t IntersectionState_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionState_t; +typedef struct Reg_LaneAttributes { + RegionId_t regionId; + struct Reg_LaneAttributes__regExtValue { + Reg_LaneAttributes__regExtValue_PR present; + union Reg_LaneAttributes__regExtValue_u { + LaneAttributes_addGrpC_t LaneAttributes_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneAttributes_t; +typedef struct Reg_LaneDataAttribute { + RegionId_t regionId; + struct Reg_LaneDataAttribute__regExtValue { + Reg_LaneDataAttribute__regExtValue_PR present; + union Reg_LaneDataAttribute__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneDataAttribute_t; +typedef struct Reg_MovementEvent { + RegionId_t regionId; + struct Reg_MovementEvent__regExtValue { + Reg_MovementEvent__regExtValue_PR present; + union Reg_MovementEvent__regExtValue_u { + MovementEvent_addGrpC_t MovementEvent_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementEvent_t; +typedef struct Reg_MovementState { + RegionId_t regionId; + struct Reg_MovementState__regExtValue { + Reg_MovementState__regExtValue_PR present; + union Reg_MovementState__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementState_t; +typedef struct Reg_NodeAttributeSetXY { + RegionId_t regionId; + struct Reg_NodeAttributeSetXY__regExtValue { + Reg_NodeAttributeSetXY__regExtValue_PR present; + union Reg_NodeAttributeSetXY__regExtValue_u { + NodeAttributeSet_addGrpC_t NodeAttributeSet_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeAttributeSetXY_t; +typedef struct Reg_NodeOffsetPointXY { + RegionId_t regionId; + struct Reg_NodeOffsetPointXY__regExtValue { + Reg_NodeOffsetPointXY__regExtValue_PR present; + union Reg_NodeOffsetPointXY__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeOffsetPointXY_t; +typedef struct Reg_Position3D { + RegionId_t regionId; + struct Reg_Position3D__regExtValue { + Reg_Position3D__regExtValue_PR present; + union Reg_Position3D__regExtValue_u { + Position3D_addGrpC_t Position3D_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_Position3D_t; +typedef struct Reg_RequestorDescription { + RegionId_t regionId; + struct Reg_RequestorDescription__regExtValue { + Reg_RequestorDescription__regExtValue_PR present; + union Reg_RequestorDescription__regExtValue_u { + RequestorDescription_addGrpC_t RequestorDescription_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorDescription_t; +typedef struct Reg_RequestorType { + RegionId_t regionId; + struct Reg_RequestorType__regExtValue { + Reg_RequestorType__regExtValue_PR present; + union Reg_RequestorType__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorType_t; +typedef struct Reg_RestrictionUserType { + RegionId_t regionId; + struct Reg_RestrictionUserType__regExtValue { + Reg_RestrictionUserType__regExtValue_PR present; + union Reg_RestrictionUserType__regExtValue_u { + RestrictionUserType_addGrpC_t RestrictionUserType_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RestrictionUserType_t; +typedef struct Reg_RoadSegment { + RegionId_t regionId; + struct Reg_RoadSegment__regExtValue { + Reg_RoadSegment__regExtValue_PR present; + union Reg_RoadSegment__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RoadSegment_t; +typedef struct Reg_SignalControlZone { + RegionId_t regionId; + struct Reg_SignalControlZone__regExtValue { + Reg_SignalControlZone__regExtValue_PR present; + union Reg_SignalControlZone__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalControlZone_t; +typedef struct Reg_SignalRequest { + RegionId_t regionId; + struct Reg_SignalRequest__regExtValue { + Reg_SignalRequest__regExtValue_PR present; + union Reg_SignalRequest__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequest_t; +typedef struct Reg_SignalRequestPackage { + RegionId_t regionId; + struct Reg_SignalRequestPackage__regExtValue { + Reg_SignalRequestPackage__regExtValue_PR present; + union Reg_SignalRequestPackage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestPackage_t; +typedef struct Reg_SignalStatus { + RegionId_t regionId; + struct Reg_SignalStatus__regExtValue { + Reg_SignalStatus__regExtValue_PR present; + union Reg_SignalStatus__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatus_t; +typedef struct Reg_SignalStatusPackage { + RegionId_t regionId; + struct Reg_SignalStatusPackage__regExtValue { + Reg_SignalStatusPackage__regExtValue_PR present; + union Reg_SignalStatusPackage__regExtValue_u { + SignalStatusPackage_addGrpC_t SignalStatusPackage_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Reg_MapData; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_1; +extern asn_TYPE_member_t asn_MBR_Reg_MapData_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_4; +extern asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_4[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SPAT; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_7; +extern asn_TYPE_member_t asn_MBR_Reg_SPAT_7[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_10; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_10[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_13; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_13[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_16; +extern asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_16[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_19; +extern asn_TYPE_member_t asn_MBR_Reg_ComputedLane_19[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_22; +extern asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_22[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_25; +extern asn_TYPE_member_t asn_MBR_Reg_GenericLane_25[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_28; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_28[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_31; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionState_31[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_34; +extern asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_34[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_37; +extern asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_37[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_40; +extern asn_TYPE_member_t asn_MBR_Reg_MovementEvent_40[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_43; +extern asn_TYPE_member_t asn_MBR_Reg_MovementState_43[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_46; +extern asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_46[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_49; +extern asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_49[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_52; +extern asn_TYPE_member_t asn_MBR_Reg_Position3D_52[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_55; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_55[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_58; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorType_58[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_61; +extern asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_61[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_64; +extern asn_TYPE_member_t asn_MBR_Reg_RoadSegment_64[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_67; +extern asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_67[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_70; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequest_70[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_73; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_73[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_76; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatus_76[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_79; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_79[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionalExtension_H_ */ +#include diff --git a/vcits/mapem/RegulatorySpeedLimit.h b/vcits/mapem/RegulatorySpeedLimit.h new file mode 100644 index 0000000..8df94ed --- /dev/null +++ b/vcits/mapem/RegulatorySpeedLimit.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RegulatorySpeedLimit_H_ +#define _RegulatorySpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedLimitType.h" +#include "Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegulatorySpeedLimit */ +typedef struct RegulatorySpeedLimit { + SpeedLimitType_t type; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RegulatorySpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit; +extern asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1; +extern asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegulatorySpeedLimit_H_ */ +#include diff --git a/vcits/mapem/RejectedReason.h b/vcits/mapem/RejectedReason.h new file mode 100644 index 0000000..2e6efbf --- /dev/null +++ b/vcits/mapem/RejectedReason.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RejectedReason_H_ +#define _RejectedReason_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RejectedReason { + RejectedReason_unknown = 0, + RejectedReason_exceptionalCondition = 1, + RejectedReason_maxWaitingTimeExceeded = 2, + RejectedReason_ptPriorityDisabled = 3, + RejectedReason_higherPTPriorityGranted = 4, + RejectedReason_vehicleTrackingUnknown = 5 + /* + * Enumeration is extensible + */ +} e_RejectedReason; + +/* RejectedReason */ +typedef long RejectedReason_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RejectedReason_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RejectedReason; +extern const asn_INTEGER_specifics_t asn_SPC_RejectedReason_specs_1; +asn_struct_free_f RejectedReason_free; +asn_struct_print_f RejectedReason_print; +asn_constr_check_f RejectedReason_constraint; +ber_type_decoder_f RejectedReason_decode_ber; +der_type_encoder_f RejectedReason_encode_der; +xer_type_decoder_f RejectedReason_decode_xer; +xer_type_encoder_f RejectedReason_encode_xer; +oer_type_decoder_f RejectedReason_decode_oer; +oer_type_encoder_f RejectedReason_encode_oer; +per_type_decoder_f RejectedReason_decode_uper; +per_type_encoder_f RejectedReason_encode_uper; +per_type_decoder_f RejectedReason_decode_aper; +per_type_encoder_f RejectedReason_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RejectedReason_H_ */ +#include diff --git a/vcits/mapem/RelevanceDistance.h b/vcits/mapem/RelevanceDistance.h new file mode 100644 index 0000000..4c5c032 --- /dev/null +++ b/vcits/mapem/RelevanceDistance.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RelevanceDistance_H_ +#define _RelevanceDistance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceDistance { + RelevanceDistance_lessThan50m = 0, + RelevanceDistance_lessThan100m = 1, + RelevanceDistance_lessThan200m = 2, + RelevanceDistance_lessThan500m = 3, + RelevanceDistance_lessThan1000m = 4, + RelevanceDistance_lessThan5km = 5, + RelevanceDistance_lessThan10km = 6, + RelevanceDistance_over10km = 7 +} e_RelevanceDistance; + +/* RelevanceDistance */ +typedef long RelevanceDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceDistance; +asn_struct_free_f RelevanceDistance_free; +asn_struct_print_f RelevanceDistance_print; +asn_constr_check_f RelevanceDistance_constraint; +ber_type_decoder_f RelevanceDistance_decode_ber; +der_type_encoder_f RelevanceDistance_encode_der; +xer_type_decoder_f RelevanceDistance_decode_xer; +xer_type_encoder_f RelevanceDistance_encode_xer; +oer_type_decoder_f RelevanceDistance_decode_oer; +oer_type_encoder_f RelevanceDistance_encode_oer; +per_type_decoder_f RelevanceDistance_decode_uper; +per_type_encoder_f RelevanceDistance_encode_uper; +per_type_decoder_f RelevanceDistance_decode_aper; +per_type_encoder_f RelevanceDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceDistance_H_ */ +#include diff --git a/vcits/mapem/RelevanceTrafficDirection.h b/vcits/mapem/RelevanceTrafficDirection.h new file mode 100644 index 0000000..2a3e882 --- /dev/null +++ b/vcits/mapem/RelevanceTrafficDirection.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RelevanceTrafficDirection_H_ +#define _RelevanceTrafficDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceTrafficDirection { + RelevanceTrafficDirection_allTrafficDirections = 0, + RelevanceTrafficDirection_upstreamTraffic = 1, + RelevanceTrafficDirection_downstreamTraffic = 2, + RelevanceTrafficDirection_oppositeTraffic = 3 +} e_RelevanceTrafficDirection; + +/* RelevanceTrafficDirection */ +typedef long RelevanceTrafficDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection; +asn_struct_free_f RelevanceTrafficDirection_free; +asn_struct_print_f RelevanceTrafficDirection_print; +asn_constr_check_f RelevanceTrafficDirection_constraint; +ber_type_decoder_f RelevanceTrafficDirection_decode_ber; +der_type_encoder_f RelevanceTrafficDirection_encode_der; +xer_type_decoder_f RelevanceTrafficDirection_decode_xer; +xer_type_encoder_f RelevanceTrafficDirection_encode_xer; +oer_type_decoder_f RelevanceTrafficDirection_decode_oer; +oer_type_encoder_f RelevanceTrafficDirection_encode_oer; +per_type_decoder_f RelevanceTrafficDirection_decode_uper; +per_type_encoder_f RelevanceTrafficDirection_encode_uper; +per_type_decoder_f RelevanceTrafficDirection_decode_aper; +per_type_encoder_f RelevanceTrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceTrafficDirection_H_ */ +#include diff --git a/vcits/mapem/RequestID.h b/vcits/mapem/RequestID.h new file mode 100644 index 0000000..95d2015 --- /dev/null +++ b/vcits/mapem/RequestID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RequestID_H_ +#define _RequestID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestID */ +typedef long RequestID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestID; +asn_struct_free_f RequestID_free; +asn_struct_print_f RequestID_print; +asn_constr_check_f RequestID_constraint; +ber_type_decoder_f RequestID_decode_ber; +der_type_encoder_f RequestID_encode_der; +xer_type_decoder_f RequestID_decode_xer; +xer_type_encoder_f RequestID_encode_xer; +oer_type_decoder_f RequestID_decode_oer; +oer_type_encoder_f RequestID_encode_oer; +per_type_decoder_f RequestID_decode_uper; +per_type_encoder_f RequestID_encode_uper; +per_type_decoder_f RequestID_decode_aper; +per_type_encoder_f RequestID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestID_H_ */ +#include diff --git a/vcits/mapem/RequestImportanceLevel.h b/vcits/mapem/RequestImportanceLevel.h new file mode 100644 index 0000000..427fd25 --- /dev/null +++ b/vcits/mapem/RequestImportanceLevel.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RequestImportanceLevel_H_ +#define _RequestImportanceLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestImportanceLevel { + RequestImportanceLevel_requestImportanceLevelUnKnown = 0, + RequestImportanceLevel_requestImportanceLevel1 = 1, + RequestImportanceLevel_requestImportanceLevel2 = 2, + RequestImportanceLevel_requestImportanceLevel3 = 3, + RequestImportanceLevel_requestImportanceLevel4 = 4, + RequestImportanceLevel_requestImportanceLevel5 = 5, + RequestImportanceLevel_requestImportanceLevel6 = 6, + RequestImportanceLevel_requestImportanceLevel7 = 7, + RequestImportanceLevel_requestImportanceLevel8 = 8, + RequestImportanceLevel_requestImportanceLevel9 = 9, + RequestImportanceLevel_requestImportanceLevel10 = 10, + RequestImportanceLevel_requestImportanceLevel11 = 11, + RequestImportanceLevel_requestImportanceLevel12 = 12, + RequestImportanceLevel_requestImportanceLevel13 = 13, + RequestImportanceLevel_requestImportanceLevel14 = 14, + RequestImportanceLevel_requestImportanceReserved = 15 +} e_RequestImportanceLevel; + +/* RequestImportanceLevel */ +typedef long RequestImportanceLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel; +extern const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1; +asn_struct_free_f RequestImportanceLevel_free; +asn_struct_print_f RequestImportanceLevel_print; +asn_constr_check_f RequestImportanceLevel_constraint; +ber_type_decoder_f RequestImportanceLevel_decode_ber; +der_type_encoder_f RequestImportanceLevel_encode_der; +xer_type_decoder_f RequestImportanceLevel_decode_xer; +xer_type_encoder_f RequestImportanceLevel_encode_xer; +oer_type_decoder_f RequestImportanceLevel_decode_oer; +oer_type_encoder_f RequestImportanceLevel_encode_oer; +per_type_decoder_f RequestImportanceLevel_decode_uper; +per_type_encoder_f RequestImportanceLevel_encode_uper; +per_type_decoder_f RequestImportanceLevel_decode_aper; +per_type_encoder_f RequestImportanceLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestImportanceLevel_H_ */ +#include diff --git a/vcits/mapem/RequestResponseIndication.h b/vcits/mapem/RequestResponseIndication.h new file mode 100644 index 0000000..bc4f7bc --- /dev/null +++ b/vcits/mapem/RequestResponseIndication.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RequestResponseIndication_H_ +#define _RequestResponseIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestResponseIndication { + RequestResponseIndication_request = 0, + RequestResponseIndication_response = 1 +} e_RequestResponseIndication; + +/* RequestResponseIndication */ +typedef long RequestResponseIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication; +asn_struct_free_f RequestResponseIndication_free; +asn_struct_print_f RequestResponseIndication_print; +asn_constr_check_f RequestResponseIndication_constraint; +ber_type_decoder_f RequestResponseIndication_decode_ber; +der_type_encoder_f RequestResponseIndication_encode_der; +xer_type_decoder_f RequestResponseIndication_decode_xer; +xer_type_encoder_f RequestResponseIndication_encode_xer; +oer_type_decoder_f RequestResponseIndication_decode_oer; +oer_type_encoder_f RequestResponseIndication_encode_oer; +per_type_decoder_f RequestResponseIndication_decode_uper; +per_type_encoder_f RequestResponseIndication_encode_uper; +per_type_decoder_f RequestResponseIndication_decode_aper; +per_type_encoder_f RequestResponseIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestResponseIndication_H_ */ +#include diff --git a/vcits/mapem/RequestSubRole.h b/vcits/mapem/RequestSubRole.h new file mode 100644 index 0000000..1b404f7 --- /dev/null +++ b/vcits/mapem/RequestSubRole.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RequestSubRole_H_ +#define _RequestSubRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestSubRole { + RequestSubRole_requestSubRoleUnKnown = 0, + RequestSubRole_requestSubRole1 = 1, + RequestSubRole_requestSubRole2 = 2, + RequestSubRole_requestSubRole3 = 3, + RequestSubRole_requestSubRole4 = 4, + RequestSubRole_requestSubRole5 = 5, + RequestSubRole_requestSubRole6 = 6, + RequestSubRole_requestSubRole7 = 7, + RequestSubRole_requestSubRole8 = 8, + RequestSubRole_requestSubRole9 = 9, + RequestSubRole_requestSubRole10 = 10, + RequestSubRole_requestSubRole11 = 11, + RequestSubRole_requestSubRole12 = 12, + RequestSubRole_requestSubRole13 = 13, + RequestSubRole_requestSubRole14 = 14, + RequestSubRole_requestSubRoleReserved = 15 +} e_RequestSubRole; + +/* RequestSubRole */ +typedef long RequestSubRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestSubRole; +extern const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1; +asn_struct_free_f RequestSubRole_free; +asn_struct_print_f RequestSubRole_print; +asn_constr_check_f RequestSubRole_constraint; +ber_type_decoder_f RequestSubRole_decode_ber; +der_type_encoder_f RequestSubRole_encode_der; +xer_type_decoder_f RequestSubRole_decode_xer; +xer_type_encoder_f RequestSubRole_encode_xer; +oer_type_decoder_f RequestSubRole_decode_oer; +oer_type_encoder_f RequestSubRole_encode_oer; +per_type_decoder_f RequestSubRole_decode_uper; +per_type_encoder_f RequestSubRole_encode_uper; +per_type_decoder_f RequestSubRole_decode_aper; +per_type_encoder_f RequestSubRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestSubRole_H_ */ +#include diff --git a/vcits/mapem/RequestorDescription-addGrpC.h b/vcits/mapem/RequestorDescription-addGrpC.h new file mode 100644 index 0000000..e5914b9 --- /dev/null +++ b/vcits/mapem/RequestorDescription-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RequestorDescription_addGrpC_H_ +#define _RequestorDescription_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "FuelType.h" +#include "BatteryStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestorDescription-addGrpC */ +typedef struct RequestorDescription_addGrpC { + FuelType_t *fuel; /* OPTIONAL */ + BatteryStatus_t *batteryStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_addGrpC_H_ */ +#include diff --git a/vcits/mapem/RequestorDescription.h b/vcits/mapem/RequestorDescription.h new file mode 100644 index 0000000..ae39ec2 --- /dev/null +++ b/vcits/mapem/RequestorDescription.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RequestorDescription_H_ +#define _RequestorDescription_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleID.h" +#include "DescriptiveName.h" +#include "TransitVehicleStatus.h" +#include "TransitVehicleOccupancy.h" +#include "DeltaTime.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; +struct RequestorPositionVector; +struct Reg_RequestorDescription; + +/* RequestorDescription */ +typedef struct RequestorDescription { + VehicleID_t id; + struct RequestorType *type; /* OPTIONAL */ + struct RequestorPositionVector *position; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + DescriptiveName_t *routeName; /* OPTIONAL */ + TransitVehicleStatus_t *transitStatus; /* OPTIONAL */ + TransitVehicleOccupancy_t *transitOccupancy; /* OPTIONAL */ + DeltaTime_t *transitSchedule; /* OPTIONAL */ + struct RequestorDescription__regional { + A_SEQUENCE_OF(struct Reg_RequestorDescription) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_H_ */ +#include diff --git a/vcits/mapem/RequestorPositionVector.h b/vcits/mapem/RequestorPositionVector.h new file mode 100644 index 0000000..1c8a85d --- /dev/null +++ b/vcits/mapem/RequestorPositionVector.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RequestorPositionVector_H_ +#define _RequestorPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "Position3D.h" +#include "Angle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TransmissionAndSpeed; + +/* RequestorPositionVector */ +typedef struct RequestorPositionVector { + Position3D_t position; + Angle_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorPositionVector_H_ */ +#include diff --git a/vcits/mapem/RequestorType.h b/vcits/mapem/RequestorType.h new file mode 100644 index 0000000..2904f07 --- /dev/null +++ b/vcits/mapem/RequestorType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RequestorType_H_ +#define _RequestorType_H_ + + +#include + +/* Including external dependencies */ +#include "BasicVehicleRole.h" +#include "RequestSubRole.h" +#include "RequestImportanceLevel.h" +#include "Iso3833VehicleType.h" +#include "VehicleType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_RequestorType; + +/* RequestorType */ +typedef struct RequestorType { + BasicVehicleRole_t role; + RequestSubRole_t *subrole; /* OPTIONAL */ + RequestImportanceLevel_t *request; /* OPTIONAL */ + Iso3833VehicleType_t *iso3883; /* OPTIONAL */ + VehicleType_t *hpmsType; /* OPTIONAL */ + struct Reg_RequestorType *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorType_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorType_H_ */ +#include diff --git a/vcits/mapem/RescueAndRecoveryWorkInProgressSubCauseCode.h b/vcits/mapem/RescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 0000000..5220084 --- /dev/null +++ b/vcits/mapem/RescueAndRecoveryWorkInProgressSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RescueAndRecoveryWorkInProgressSubCauseCode_H_ +#define _RescueAndRecoveryWorkInProgressSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RescueAndRecoveryWorkInProgressSubCauseCode { + RescueAndRecoveryWorkInProgressSubCauseCode_unavailable = 0, + RescueAndRecoveryWorkInProgressSubCauseCode_emergencyVehicles = 1, + RescueAndRecoveryWorkInProgressSubCauseCode_rescueHelicopterLanding = 2, + RescueAndRecoveryWorkInProgressSubCauseCode_policeActivityOngoing = 3, + RescueAndRecoveryWorkInProgressSubCauseCode_medicalEmergencyOngoing = 4, + RescueAndRecoveryWorkInProgressSubCauseCode_childAbductionInProgress = 5 +} e_RescueAndRecoveryWorkInProgressSubCauseCode; + +/* RescueAndRecoveryWorkInProgressSubCauseCode */ +typedef long RescueAndRecoveryWorkInProgressSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode; +asn_struct_free_f RescueAndRecoveryWorkInProgressSubCauseCode_free; +asn_struct_print_f RescueAndRecoveryWorkInProgressSubCauseCode_print; +asn_constr_check_f RescueAndRecoveryWorkInProgressSubCauseCode_constraint; +ber_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_ber; +der_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_der; +xer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_xer; +xer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_xer; +oer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_oer; +oer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_oer; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_uper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_uper; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_aper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RescueAndRecoveryWorkInProgressSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/RestrictedTypes.h b/vcits/mapem/RestrictedTypes.h new file mode 100644 index 0000000..6a1ff7c --- /dev/null +++ b/vcits/mapem/RestrictedTypes.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RestrictedTypes_H_ +#define _RestrictedTypes_H_ + + +#include + +/* Including external dependencies */ +#include "StationType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictedTypes */ +typedef struct RestrictedTypes { + A_SEQUENCE_OF(StationType_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictedTypes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictedTypes; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictedTypes_H_ */ +#include diff --git a/vcits/mapem/RestrictionAppliesTo.h b/vcits/mapem/RestrictionAppliesTo.h new file mode 100644 index 0000000..6100eff --- /dev/null +++ b/vcits/mapem/RestrictionAppliesTo.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RestrictionAppliesTo_H_ +#define _RestrictionAppliesTo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionAppliesTo { + RestrictionAppliesTo_none = 0, + RestrictionAppliesTo_equippedTransit = 1, + RestrictionAppliesTo_equippedTaxis = 2, + RestrictionAppliesTo_equippedOther = 3, + RestrictionAppliesTo_emissionCompliant = 4, + RestrictionAppliesTo_equippedBicycle = 5, + RestrictionAppliesTo_weightCompliant = 6, + RestrictionAppliesTo_heightCompliant = 7, + RestrictionAppliesTo_pedestrians = 8, + RestrictionAppliesTo_slowMovingPersons = 9, + RestrictionAppliesTo_wheelchairUsers = 10, + RestrictionAppliesTo_visualDisabilities = 11, + RestrictionAppliesTo_audioDisabilities = 12, + RestrictionAppliesTo_otherUnknownDisabilities = 13 + /* + * Enumeration is extensible + */ +} e_RestrictionAppliesTo; + +/* RestrictionAppliesTo */ +typedef long RestrictionAppliesTo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo; +extern const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1; +asn_struct_free_f RestrictionAppliesTo_free; +asn_struct_print_f RestrictionAppliesTo_print; +asn_constr_check_f RestrictionAppliesTo_constraint; +ber_type_decoder_f RestrictionAppliesTo_decode_ber; +der_type_encoder_f RestrictionAppliesTo_encode_der; +xer_type_decoder_f RestrictionAppliesTo_decode_xer; +xer_type_encoder_f RestrictionAppliesTo_encode_xer; +oer_type_decoder_f RestrictionAppliesTo_decode_oer; +oer_type_encoder_f RestrictionAppliesTo_encode_oer; +per_type_decoder_f RestrictionAppliesTo_decode_uper; +per_type_encoder_f RestrictionAppliesTo_encode_uper; +per_type_decoder_f RestrictionAppliesTo_decode_aper; +per_type_encoder_f RestrictionAppliesTo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionAppliesTo_H_ */ +#include diff --git a/vcits/mapem/RestrictionClassAssignment.h b/vcits/mapem/RestrictionClassAssignment.h new file mode 100644 index 0000000..b45a5b4 --- /dev/null +++ b/vcits/mapem/RestrictionClassAssignment.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RestrictionClassAssignment_H_ +#define _RestrictionClassAssignment_H_ + + +#include + +/* Including external dependencies */ +#include "RestrictionClassID.h" +#include "RestrictionUserTypeList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassAssignment */ +typedef struct RestrictionClassAssignment { + RestrictionClassID_t id; + RestrictionUserTypeList_t users; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassAssignment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassAssignment_H_ */ +#include diff --git a/vcits/mapem/RestrictionClassID.h b/vcits/mapem/RestrictionClassID.h new file mode 100644 index 0000000..cccdc22 --- /dev/null +++ b/vcits/mapem/RestrictionClassID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RestrictionClassID_H_ +#define _RestrictionClassID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassID */ +typedef long RestrictionClassID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassID; +asn_struct_free_f RestrictionClassID_free; +asn_struct_print_f RestrictionClassID_print; +asn_constr_check_f RestrictionClassID_constraint; +ber_type_decoder_f RestrictionClassID_decode_ber; +der_type_encoder_f RestrictionClassID_encode_der; +xer_type_decoder_f RestrictionClassID_decode_xer; +xer_type_encoder_f RestrictionClassID_encode_xer; +oer_type_decoder_f RestrictionClassID_decode_oer; +oer_type_encoder_f RestrictionClassID_encode_oer; +per_type_decoder_f RestrictionClassID_decode_uper; +per_type_encoder_f RestrictionClassID_encode_uper; +per_type_decoder_f RestrictionClassID_decode_aper; +per_type_encoder_f RestrictionClassID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassID_H_ */ +#include diff --git a/vcits/mapem/RestrictionClassList.h b/vcits/mapem/RestrictionClassList.h new file mode 100644 index 0000000..f3b0922 --- /dev/null +++ b/vcits/mapem/RestrictionClassList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RestrictionClassList_H_ +#define _RestrictionClassList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionClassAssignment; + +/* RestrictionClassList */ +typedef struct RestrictionClassList { + A_SEQUENCE_OF(struct RestrictionClassAssignment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassList_H_ */ +#include diff --git a/vcits/mapem/RestrictionUserType-addGrpC.h b/vcits/mapem/RestrictionUserType-addGrpC.h new file mode 100644 index 0000000..da0bb10 --- /dev/null +++ b/vcits/mapem/RestrictionUserType-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RestrictionUserType_addGrpC_H_ +#define _RestrictionUserType_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "EmissionType.h" +#include "FuelType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionUserType-addGrpC */ +typedef struct RestrictionUserType_addGrpC { + EmissionType_t *emission; /* OPTIONAL */ + FuelType_t *fuel; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_addGrpC_H_ */ +#include diff --git a/vcits/mapem/RestrictionUserType.h b/vcits/mapem/RestrictionUserType.h new file mode 100644 index 0000000..cdb9b6e --- /dev/null +++ b/vcits/mapem/RestrictionUserType.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RestrictionUserType_H_ +#define _RestrictionUserType_H_ + + +#include + +/* Including external dependencies */ +#include "RestrictionAppliesTo.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionUserType_PR { + RestrictionUserType_PR_NOTHING, /* No components present */ + RestrictionUserType_PR_basicType, + RestrictionUserType_PR_regional + /* Extensions may appear below */ + +} RestrictionUserType_PR; + +/* Forward declarations */ +struct Reg_RestrictionUserType; + +/* RestrictionUserType */ +typedef struct RestrictionUserType { + RestrictionUserType_PR present; + union RestrictionUserType_u { + RestrictionAppliesTo_t basicType; + struct RestrictionUserType__regional { + A_SEQUENCE_OF(struct Reg_RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType; +extern asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_1[2]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_H_ */ +#include diff --git a/vcits/mapem/RestrictionUserTypeList.h b/vcits/mapem/RestrictionUserTypeList.h new file mode 100644 index 0000000..b1272bd --- /dev/null +++ b/vcits/mapem/RestrictionUserTypeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RestrictionUserTypeList_H_ +#define _RestrictionUserTypeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionUserType; + +/* RestrictionUserTypeList */ +typedef struct RestrictionUserTypeList { + A_SEQUENCE_OF(struct RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserTypeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserTypeList_H_ */ +#include diff --git a/vcits/mapem/RoadLaneSetList.h b/vcits/mapem/RoadLaneSetList.h new file mode 100644 index 0000000..6b7882a --- /dev/null +++ b/vcits/mapem/RoadLaneSetList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RoadLaneSetList_H_ +#define _RoadLaneSetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* RoadLaneSetList */ +typedef struct RoadLaneSetList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadLaneSetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList; +extern asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadLaneSetList_H_ */ +#include diff --git a/vcits/mapem/RoadRegulatorID.h b/vcits/mapem/RoadRegulatorID.h new file mode 100644 index 0000000..33367db --- /dev/null +++ b/vcits/mapem/RoadRegulatorID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RoadRegulatorID_H_ +#define _RoadRegulatorID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadRegulatorID */ +typedef long RoadRegulatorID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID; +asn_struct_free_f RoadRegulatorID_free; +asn_struct_print_f RoadRegulatorID_print; +asn_constr_check_f RoadRegulatorID_constraint; +ber_type_decoder_f RoadRegulatorID_decode_ber; +der_type_encoder_f RoadRegulatorID_encode_der; +xer_type_decoder_f RoadRegulatorID_decode_xer; +xer_type_encoder_f RoadRegulatorID_encode_xer; +oer_type_decoder_f RoadRegulatorID_decode_oer; +oer_type_encoder_f RoadRegulatorID_encode_oer; +per_type_decoder_f RoadRegulatorID_decode_uper; +per_type_encoder_f RoadRegulatorID_encode_uper; +per_type_decoder_f RoadRegulatorID_decode_aper; +per_type_encoder_f RoadRegulatorID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadRegulatorID_H_ */ +#include diff --git a/vcits/mapem/RoadSegment.h b/vcits/mapem/RoadSegment.h new file mode 100644 index 0000000..efd62d2 --- /dev/null +++ b/vcits/mapem/RoadSegment.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RoadSegment_H_ +#define _RoadSegment_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "RoadSegmentReferenceID.h" +#include "MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "RoadLaneSetList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct Reg_RoadSegment; + +/* RoadSegment */ +typedef struct RoadSegment { + DescriptiveName_t *name; /* OPTIONAL */ + RoadSegmentReferenceID_t id; + MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + RoadLaneSetList_t roadLaneSet; + struct RoadSegment__regional { + A_SEQUENCE_OF(struct Reg_RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegment_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegment_H_ */ +#include diff --git a/vcits/mapem/RoadSegmentID.h b/vcits/mapem/RoadSegmentID.h new file mode 100644 index 0000000..ea83791 --- /dev/null +++ b/vcits/mapem/RoadSegmentID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RoadSegmentID_H_ +#define _RoadSegmentID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentID */ +typedef long RoadSegmentID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentID; +asn_struct_free_f RoadSegmentID_free; +asn_struct_print_f RoadSegmentID_print; +asn_constr_check_f RoadSegmentID_constraint; +ber_type_decoder_f RoadSegmentID_decode_ber; +der_type_encoder_f RoadSegmentID_encode_der; +xer_type_decoder_f RoadSegmentID_decode_xer; +xer_type_encoder_f RoadSegmentID_encode_xer; +oer_type_decoder_f RoadSegmentID_decode_oer; +oer_type_encoder_f RoadSegmentID_encode_oer; +per_type_decoder_f RoadSegmentID_decode_uper; +per_type_encoder_f RoadSegmentID_encode_uper; +per_type_decoder_f RoadSegmentID_decode_aper; +per_type_encoder_f RoadSegmentID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentID_H_ */ +#include diff --git a/vcits/mapem/RoadSegmentList.h b/vcits/mapem/RoadSegmentList.h new file mode 100644 index 0000000..6d7fa84 --- /dev/null +++ b/vcits/mapem/RoadSegmentList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RoadSegmentList_H_ +#define _RoadSegmentList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RoadSegment; + +/* RoadSegmentList */ +typedef struct RoadSegmentList { + A_SEQUENCE_OF(struct RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentList; +extern asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentList_H_ */ +#include diff --git a/vcits/mapem/RoadSegmentReferenceID.h b/vcits/mapem/RoadSegmentReferenceID.h new file mode 100644 index 0000000..52a5b80 --- /dev/null +++ b/vcits/mapem/RoadSegmentReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RoadSegmentReferenceID_H_ +#define _RoadSegmentReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "RoadSegmentID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentReferenceID */ +typedef struct RoadSegmentReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + RoadSegmentID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentReferenceID_H_ */ +#include diff --git a/vcits/mapem/RoadType.h b/vcits/mapem/RoadType.h new file mode 100644 index 0000000..63df11b --- /dev/null +++ b/vcits/mapem/RoadType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RoadType_H_ +#define _RoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadType { + RoadType_urban_NoStructuralSeparationToOppositeLanes = 0, + RoadType_urban_WithStructuralSeparationToOppositeLanes = 1, + RoadType_nonUrban_NoStructuralSeparationToOppositeLanes = 2, + RoadType_nonUrban_WithStructuralSeparationToOppositeLanes = 3 +} e_RoadType; + +/* RoadType */ +typedef long RoadType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadType; +asn_struct_free_f RoadType_free; +asn_struct_print_f RoadType_print; +asn_constr_check_f RoadType_constraint; +ber_type_decoder_f RoadType_decode_ber; +der_type_encoder_f RoadType_encode_der; +xer_type_decoder_f RoadType_decode_xer; +xer_type_encoder_f RoadType_encode_xer; +oer_type_decoder_f RoadType_decode_oer; +oer_type_encoder_f RoadType_encode_oer; +per_type_decoder_f RoadType_decode_uper; +per_type_encoder_f RoadType_encode_uper; +per_type_decoder_f RoadType_decode_aper; +per_type_encoder_f RoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadType_H_ */ +#include diff --git a/vcits/mapem/RoadwayCrownAngle.h b/vcits/mapem/RoadwayCrownAngle.h new file mode 100644 index 0000000..17984b3 --- /dev/null +++ b/vcits/mapem/RoadwayCrownAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RoadwayCrownAngle_H_ +#define _RoadwayCrownAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadwayCrownAngle */ +typedef long RoadwayCrownAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle; +asn_struct_free_f RoadwayCrownAngle_free; +asn_struct_print_f RoadwayCrownAngle_print; +asn_constr_check_f RoadwayCrownAngle_constraint; +ber_type_decoder_f RoadwayCrownAngle_decode_ber; +der_type_encoder_f RoadwayCrownAngle_encode_der; +xer_type_decoder_f RoadwayCrownAngle_decode_xer; +xer_type_encoder_f RoadwayCrownAngle_encode_xer; +oer_type_decoder_f RoadwayCrownAngle_decode_oer; +oer_type_encoder_f RoadwayCrownAngle_encode_oer; +per_type_decoder_f RoadwayCrownAngle_decode_uper; +per_type_encoder_f RoadwayCrownAngle_encode_uper; +per_type_decoder_f RoadwayCrownAngle_decode_aper; +per_type_encoder_f RoadwayCrownAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadwayCrownAngle_H_ */ +#include diff --git a/vcits/mapem/RoadworksSubCauseCode.h b/vcits/mapem/RoadworksSubCauseCode.h new file mode 100644 index 0000000..9d51704 --- /dev/null +++ b/vcits/mapem/RoadworksSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _RoadworksSubCauseCode_H_ +#define _RoadworksSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadworksSubCauseCode { + RoadworksSubCauseCode_unavailable = 0, + RoadworksSubCauseCode_majorRoadworks = 1, + RoadworksSubCauseCode_roadMarkingWork = 2, + RoadworksSubCauseCode_slowMovingRoadMaintenance = 3, + RoadworksSubCauseCode_shortTermStationaryRoadworks = 4, + RoadworksSubCauseCode_streetCleaning = 5, + RoadworksSubCauseCode_winterService = 6 +} e_RoadworksSubCauseCode; + +/* RoadworksSubCauseCode */ +typedef long RoadworksSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode; +asn_struct_free_f RoadworksSubCauseCode_free; +asn_struct_print_f RoadworksSubCauseCode_print; +asn_constr_check_f RoadworksSubCauseCode_constraint; +ber_type_decoder_f RoadworksSubCauseCode_decode_ber; +der_type_encoder_f RoadworksSubCauseCode_encode_der; +xer_type_decoder_f RoadworksSubCauseCode_decode_xer; +xer_type_encoder_f RoadworksSubCauseCode_encode_xer; +oer_type_decoder_f RoadworksSubCauseCode_decode_oer; +oer_type_encoder_f RoadworksSubCauseCode_encode_oer; +per_type_decoder_f RoadworksSubCauseCode_decode_uper; +per_type_encoder_f RoadworksSubCauseCode_encode_uper; +per_type_decoder_f RoadworksSubCauseCode_decode_aper; +per_type_encoder_f RoadworksSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadworksSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/SPAT.h b/vcits/mapem/SPAT.h new file mode 100644 index 0000000..e0da502 --- /dev/null +++ b/vcits/mapem/SPAT.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SPAT_H_ +#define _SPAT_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DescriptiveName.h" +#include "IntersectionStateList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SPAT; + +/* SPAT */ +typedef struct SPAT { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionStateList_t intersections; + struct SPAT__regional { + A_SEQUENCE_OF(struct Reg_SPAT) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SPAT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SPAT; + +#ifdef __cplusplus +} +#endif + +#endif /* _SPAT_H_ */ +#include diff --git a/vcits/mapem/Scale-B12.h b/vcits/mapem/Scale-B12.h new file mode 100644 index 0000000..ffc7384 --- /dev/null +++ b/vcits/mapem/Scale-B12.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Scale_B12_H_ +#define _Scale_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Scale-B12 */ +typedef long Scale_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Scale_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Scale_B12; +asn_struct_free_f Scale_B12_free; +asn_struct_print_f Scale_B12_print; +asn_constr_check_f Scale_B12_constraint; +ber_type_decoder_f Scale_B12_decode_ber; +der_type_encoder_f Scale_B12_encode_der; +xer_type_decoder_f Scale_B12_decode_xer; +xer_type_encoder_f Scale_B12_encode_xer; +oer_type_decoder_f Scale_B12_decode_oer; +oer_type_encoder_f Scale_B12_encode_oer; +per_type_decoder_f Scale_B12_decode_uper; +per_type_encoder_f Scale_B12_encode_uper; +per_type_decoder_f Scale_B12_decode_aper; +per_type_encoder_f Scale_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Scale_B12_H_ */ +#include diff --git a/vcits/mapem/SegmentAttributeXY.h b/vcits/mapem/SegmentAttributeXY.h new file mode 100644 index 0000000..4fd8967 --- /dev/null +++ b/vcits/mapem/SegmentAttributeXY.h @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SegmentAttributeXY_H_ +#define _SegmentAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SegmentAttributeXY { + SegmentAttributeXY_reserved = 0, + SegmentAttributeXY_doNotBlock = 1, + SegmentAttributeXY_whiteLine = 2, + SegmentAttributeXY_mergingLaneLeft = 3, + SegmentAttributeXY_mergingLaneRight = 4, + SegmentAttributeXY_curbOnLeft = 5, + SegmentAttributeXY_curbOnRight = 6, + SegmentAttributeXY_loadingzoneOnLeft = 7, + SegmentAttributeXY_loadingzoneOnRight = 8, + SegmentAttributeXY_turnOutPointOnLeft = 9, + SegmentAttributeXY_turnOutPointOnRight = 10, + SegmentAttributeXY_adjacentParkingOnLeft = 11, + SegmentAttributeXY_adjacentParkingOnRight = 12, + SegmentAttributeXY_adjacentBikeLaneOnLeft = 13, + SegmentAttributeXY_adjacentBikeLaneOnRight = 14, + SegmentAttributeXY_sharedBikeLane = 15, + SegmentAttributeXY_bikeBoxInFront = 16, + SegmentAttributeXY_transitStopOnLeft = 17, + SegmentAttributeXY_transitStopOnRight = 18, + SegmentAttributeXY_transitStopInLane = 19, + SegmentAttributeXY_sharedWithTrackedVehicle = 20, + SegmentAttributeXY_safeIsland = 21, + SegmentAttributeXY_lowCurbsPresent = 22, + SegmentAttributeXY_rumbleStripPresent = 23, + SegmentAttributeXY_audibleSignalingPresent = 24, + SegmentAttributeXY_adaptiveTimingPresent = 25, + SegmentAttributeXY_rfSignalRequestPresent = 26, + SegmentAttributeXY_partialCurbIntrusion = 27, + SegmentAttributeXY_taperToLeft = 28, + SegmentAttributeXY_taperToRight = 29, + SegmentAttributeXY_taperToCenterLine = 30, + SegmentAttributeXY_parallelParking = 31, + SegmentAttributeXY_headInParking = 32, + SegmentAttributeXY_freeParking = 33, + SegmentAttributeXY_timeRestrictionsOnParking = 34, + SegmentAttributeXY_costToPark = 35, + SegmentAttributeXY_midBlockCurbPresent = 36, + SegmentAttributeXY_unEvenPavementPresent = 37 + /* + * Enumeration is extensible + */ +} e_SegmentAttributeXY; + +/* SegmentAttributeXY */ +typedef long SegmentAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1; +asn_struct_free_f SegmentAttributeXY_free; +asn_struct_print_f SegmentAttributeXY_print; +asn_constr_check_f SegmentAttributeXY_constraint; +ber_type_decoder_f SegmentAttributeXY_decode_ber; +der_type_encoder_f SegmentAttributeXY_encode_der; +xer_type_decoder_f SegmentAttributeXY_decode_xer; +xer_type_encoder_f SegmentAttributeXY_encode_xer; +oer_type_decoder_f SegmentAttributeXY_decode_oer; +oer_type_encoder_f SegmentAttributeXY_encode_oer; +per_type_decoder_f SegmentAttributeXY_decode_uper; +per_type_encoder_f SegmentAttributeXY_encode_uper; +per_type_decoder_f SegmentAttributeXY_decode_aper; +per_type_encoder_f SegmentAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXY_H_ */ +#include diff --git a/vcits/mapem/SegmentAttributeXYList.h b/vcits/mapem/SegmentAttributeXYList.h new file mode 100644 index 0000000..5d1f692 --- /dev/null +++ b/vcits/mapem/SegmentAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SegmentAttributeXYList_H_ +#define _SegmentAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "SegmentAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SegmentAttributeXYList */ +typedef struct SegmentAttributeXYList { + A_SEQUENCE_OF(SegmentAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SegmentAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXYList_H_ */ +#include diff --git a/vcits/mapem/SemiAxisLength.h b/vcits/mapem/SemiAxisLength.h new file mode 100644 index 0000000..6f2eacb --- /dev/null +++ b/vcits/mapem/SemiAxisLength.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SemiAxisLength_H_ +#define _SemiAxisLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SemiAxisLength { + SemiAxisLength_oneCentimeter = 1, + SemiAxisLength_outOfRange = 4094, + SemiAxisLength_unavailable = 4095 +} e_SemiAxisLength; + +/* SemiAxisLength */ +typedef long SemiAxisLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiAxisLength; +asn_struct_free_f SemiAxisLength_free; +asn_struct_print_f SemiAxisLength_print; +asn_constr_check_f SemiAxisLength_constraint; +ber_type_decoder_f SemiAxisLength_decode_ber; +der_type_encoder_f SemiAxisLength_encode_der; +xer_type_decoder_f SemiAxisLength_decode_xer; +xer_type_encoder_f SemiAxisLength_encode_xer; +oer_type_decoder_f SemiAxisLength_decode_oer; +oer_type_encoder_f SemiAxisLength_encode_oer; +per_type_decoder_f SemiAxisLength_decode_uper; +per_type_encoder_f SemiAxisLength_encode_uper; +per_type_decoder_f SemiAxisLength_decode_aper; +per_type_encoder_f SemiAxisLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiAxisLength_H_ */ +#include diff --git a/vcits/mapem/SemiMajorAxisAccuracy.h b/vcits/mapem/SemiMajorAxisAccuracy.h new file mode 100644 index 0000000..ae0cbcd --- /dev/null +++ b/vcits/mapem/SemiMajorAxisAccuracy.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SemiMajorAxisAccuracy_H_ +#define _SemiMajorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisAccuracy */ +typedef long SemiMajorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy; +asn_struct_free_f SemiMajorAxisAccuracy_free; +asn_struct_print_f SemiMajorAxisAccuracy_print; +asn_constr_check_f SemiMajorAxisAccuracy_constraint; +ber_type_decoder_f SemiMajorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMajorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMajorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMajorAxisAccuracy_encode_xer; +oer_type_decoder_f SemiMajorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMajorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMajorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMajorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisAccuracy_H_ */ +#include diff --git a/vcits/mapem/SemiMajorAxisOrientation.h b/vcits/mapem/SemiMajorAxisOrientation.h new file mode 100644 index 0000000..6d8c0b6 --- /dev/null +++ b/vcits/mapem/SemiMajorAxisOrientation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SemiMajorAxisOrientation_H_ +#define _SemiMajorAxisOrientation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisOrientation */ +typedef long SemiMajorAxisOrientation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation; +asn_struct_free_f SemiMajorAxisOrientation_free; +asn_struct_print_f SemiMajorAxisOrientation_print; +asn_constr_check_f SemiMajorAxisOrientation_constraint; +ber_type_decoder_f SemiMajorAxisOrientation_decode_ber; +der_type_encoder_f SemiMajorAxisOrientation_encode_der; +xer_type_decoder_f SemiMajorAxisOrientation_decode_xer; +xer_type_encoder_f SemiMajorAxisOrientation_encode_xer; +oer_type_decoder_f SemiMajorAxisOrientation_decode_oer; +oer_type_encoder_f SemiMajorAxisOrientation_encode_oer; +per_type_decoder_f SemiMajorAxisOrientation_decode_uper; +per_type_encoder_f SemiMajorAxisOrientation_encode_uper; +per_type_decoder_f SemiMajorAxisOrientation_decode_aper; +per_type_encoder_f SemiMajorAxisOrientation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisOrientation_H_ */ +#include diff --git a/vcits/mapem/SemiMinorAxisAccuracy.h b/vcits/mapem/SemiMinorAxisAccuracy.h new file mode 100644 index 0000000..5e0cdb0 --- /dev/null +++ b/vcits/mapem/SemiMinorAxisAccuracy.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SemiMinorAxisAccuracy_H_ +#define _SemiMinorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMinorAxisAccuracy */ +typedef long SemiMinorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy; +asn_struct_free_f SemiMinorAxisAccuracy_free; +asn_struct_print_f SemiMinorAxisAccuracy_print; +asn_constr_check_f SemiMinorAxisAccuracy_constraint; +ber_type_decoder_f SemiMinorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMinorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMinorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMinorAxisAccuracy_encode_xer; +oer_type_decoder_f SemiMinorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMinorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMinorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMinorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMinorAxisAccuracy_H_ */ +#include diff --git a/vcits/mapem/SequenceNumber.h b/vcits/mapem/SequenceNumber.h new file mode 100644 index 0000000..a7f5e6d --- /dev/null +++ b/vcits/mapem/SequenceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SequenceNumber_H_ +#define _SequenceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SequenceNumber */ +typedef long SequenceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SequenceNumber; +asn_struct_free_f SequenceNumber_free; +asn_struct_print_f SequenceNumber_print; +asn_constr_check_f SequenceNumber_constraint; +ber_type_decoder_f SequenceNumber_decode_ber; +der_type_encoder_f SequenceNumber_encode_der; +xer_type_decoder_f SequenceNumber_decode_xer; +xer_type_encoder_f SequenceNumber_encode_xer; +oer_type_decoder_f SequenceNumber_decode_oer; +oer_type_encoder_f SequenceNumber_encode_oer; +per_type_decoder_f SequenceNumber_decode_uper; +per_type_encoder_f SequenceNumber_encode_uper; +per_type_decoder_f SequenceNumber_decode_aper; +per_type_encoder_f SequenceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SequenceNumber_H_ */ +#include diff --git a/vcits/mapem/ServiceApplicationLimit.h b/vcits/mapem/ServiceApplicationLimit.h new file mode 100644 index 0000000..71b60e2 --- /dev/null +++ b/vcits/mapem/ServiceApplicationLimit.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ServiceApplicationLimit_H_ +#define _ServiceApplicationLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ServiceApplicationLimit { + ServiceApplicationLimit_notForPostpayment = 0, + ServiceApplicationLimit_notForPrepayment = 1, + ServiceApplicationLimit_notForVehicleaccess = 2, + ServiceApplicationLimit_notForFleetcontrol = 3, + ServiceApplicationLimit_issuerSpecificRestriction1 = 4, + ServiceApplicationLimit_issuerSpecificRestriction2 = 5, + ServiceApplicationLimit_issuerSpecificRestriction3 = 6, + ServiceApplicationLimit_issuerSpecificRestriction4 = 7 +} e_ServiceApplicationLimit; + +/* ServiceApplicationLimit */ +typedef BIT_STRING_t ServiceApplicationLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ServiceApplicationLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ServiceApplicationLimit; +asn_struct_free_f ServiceApplicationLimit_free; +asn_struct_print_f ServiceApplicationLimit_print; +asn_constr_check_f ServiceApplicationLimit_constraint; +ber_type_decoder_f ServiceApplicationLimit_decode_ber; +der_type_encoder_f ServiceApplicationLimit_encode_der; +xer_type_decoder_f ServiceApplicationLimit_decode_xer; +xer_type_encoder_f ServiceApplicationLimit_encode_xer; +oer_type_decoder_f ServiceApplicationLimit_decode_oer; +oer_type_encoder_f ServiceApplicationLimit_encode_oer; +per_type_decoder_f ServiceApplicationLimit_decode_uper; +per_type_encoder_f ServiceApplicationLimit_encode_uper; +per_type_decoder_f ServiceApplicationLimit_decode_aper; +per_type_encoder_f ServiceApplicationLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServiceApplicationLimit_H_ */ +#include diff --git a/vcits/mapem/ServiceNumber.h b/vcits/mapem/ServiceNumber.h new file mode 100644 index 0000000..6427972 --- /dev/null +++ b/vcits/mapem/ServiceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ServiceNumber_H_ +#define _ServiceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ServiceNumber */ +typedef BIT_STRING_t ServiceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ServiceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ServiceNumber; +asn_struct_free_f ServiceNumber_free; +asn_struct_print_f ServiceNumber_print; +asn_constr_check_f ServiceNumber_constraint; +ber_type_decoder_f ServiceNumber_decode_ber; +der_type_encoder_f ServiceNumber_encode_der; +xer_type_decoder_f ServiceNumber_decode_xer; +xer_type_encoder_f ServiceNumber_encode_xer; +oer_type_decoder_f ServiceNumber_decode_oer; +oer_type_encoder_f ServiceNumber_encode_oer; +per_type_decoder_f ServiceNumber_decode_uper; +per_type_encoder_f ServiceNumber_encode_uper; +per_type_decoder_f ServiceNumber_decode_aper; +per_type_encoder_f ServiceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServiceNumber_H_ */ +#include diff --git a/vcits/mapem/SignalControlZone.h b/vcits/mapem/SignalControlZone.h new file mode 100644 index 0000000..537503f --- /dev/null +++ b/vcits/mapem/SignalControlZone.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalControlZone_H_ +#define _SignalControlZone_H_ + + +#include + +/* Including external dependencies */ +#include "RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalControlZone */ +typedef struct SignalControlZone { + Reg_SignalControlZone_t zone; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalControlZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalControlZone_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalControlZone_H_ */ +#include diff --git a/vcits/mapem/SignalGroupID.h b/vcits/mapem/SignalGroupID.h new file mode 100644 index 0000000..d96e555 --- /dev/null +++ b/vcits/mapem/SignalGroupID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalGroupID_H_ +#define _SignalGroupID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalGroupID */ +typedef long SignalGroupID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SignalGroupID; +asn_struct_free_f SignalGroupID_free; +asn_struct_print_f SignalGroupID_print; +asn_constr_check_f SignalGroupID_constraint; +ber_type_decoder_f SignalGroupID_decode_ber; +der_type_encoder_f SignalGroupID_encode_der; +xer_type_decoder_f SignalGroupID_decode_xer; +xer_type_encoder_f SignalGroupID_encode_xer; +oer_type_decoder_f SignalGroupID_decode_oer; +oer_type_encoder_f SignalGroupID_encode_oer; +per_type_decoder_f SignalGroupID_decode_uper; +per_type_encoder_f SignalGroupID_encode_uper; +per_type_decoder_f SignalGroupID_decode_aper; +per_type_encoder_f SignalGroupID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalGroupID_H_ */ +#include diff --git a/vcits/mapem/SignalHeadLocation.h b/vcits/mapem/SignalHeadLocation.h new file mode 100644 index 0000000..297ccdf --- /dev/null +++ b/vcits/mapem/SignalHeadLocation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalHeadLocation_H_ +#define _SignalHeadLocation_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include "DeltaAltitude.h" +#include "SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalHeadLocation */ +typedef struct SignalHeadLocation { + NodeOffsetPointXY_t nodeXY; + DeltaAltitude_t nodeZ; + SignalGroupID_t signalGroupID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocation_H_ */ +#include diff --git a/vcits/mapem/SignalHeadLocationList.h b/vcits/mapem/SignalHeadLocationList.h new file mode 100644 index 0000000..4330f7d --- /dev/null +++ b/vcits/mapem/SignalHeadLocationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalHeadLocationList_H_ +#define _SignalHeadLocationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocation; + +/* SignalHeadLocationList */ +typedef struct SignalHeadLocationList { + A_SEQUENCE_OF(struct SignalHeadLocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList; +extern asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocationList_H_ */ +#include diff --git a/vcits/mapem/SignalRequest.h b/vcits/mapem/SignalRequest.h new file mode 100644 index 0000000..9636a39 --- /dev/null +++ b/vcits/mapem/SignalRequest.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalRequest_H_ +#define _SignalRequest_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionReferenceID.h" +#include "RequestID.h" +#include "PriorityRequestType.h" +#include "IntersectionAccessPoint.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionAccessPoint; +struct Reg_SignalRequest; + +/* SignalRequest */ +typedef struct SignalRequest { + IntersectionReferenceID_t id; + RequestID_t requestID; + PriorityRequestType_t requestType; + IntersectionAccessPoint_t inBoundLane; + struct IntersectionAccessPoint *outBoundLane; /* OPTIONAL */ + struct SignalRequest__regional { + A_SEQUENCE_OF(struct Reg_SignalRequest) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequest_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequest_H_ */ +#include diff --git a/vcits/mapem/SignalRequestList.h b/vcits/mapem/SignalRequestList.h new file mode 100644 index 0000000..14fced6 --- /dev/null +++ b/vcits/mapem/SignalRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalRequestList_H_ +#define _SignalRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestPackage; + +/* SignalRequestList */ +typedef struct SignalRequestList { + A_SEQUENCE_OF(struct SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestList; +extern asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestList_H_ */ +#include diff --git a/vcits/mapem/SignalRequestMessage.h b/vcits/mapem/SignalRequestMessage.h new file mode 100644 index 0000000..8f164c0 --- /dev/null +++ b/vcits/mapem/SignalRequestMessage.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalRequestMessage_H_ +#define _SignalRequestMessage_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MsgCount.h" +#include "RequestorDescription.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestList; +struct Reg_SignalRequestMessage; + +/* SignalRequestMessage */ +typedef struct SignalRequestMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + MsgCount_t *sequenceNumber; /* OPTIONAL */ + struct SignalRequestList *requests; /* OPTIONAL */ + RequestorDescription_t requestor; + struct SignalRequestMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestMessage_H_ */ +#include diff --git a/vcits/mapem/SignalRequestPackage.h b/vcits/mapem/SignalRequestPackage.h new file mode 100644 index 0000000..e20a72d --- /dev/null +++ b/vcits/mapem/SignalRequestPackage.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalRequestPackage_H_ +#define _SignalRequestPackage_H_ + + +#include + +/* Including external dependencies */ +#include "SignalRequest.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalRequestPackage; + +/* SignalRequestPackage */ +typedef struct SignalRequestPackage { + SignalRequest_t request; + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + struct SignalRequestPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestPackage_H_ */ +#include diff --git a/vcits/mapem/SignalRequesterInfo.h b/vcits/mapem/SignalRequesterInfo.h new file mode 100644 index 0000000..5385eec --- /dev/null +++ b/vcits/mapem/SignalRequesterInfo.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalRequesterInfo_H_ +#define _SignalRequesterInfo_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleID.h" +#include "RequestID.h" +#include "MsgCount.h" +#include "BasicVehicleRole.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; + +/* SignalRequesterInfo */ +typedef struct SignalRequesterInfo { + VehicleID_t id; + RequestID_t request; + MsgCount_t sequenceNumber; + BasicVehicleRole_t *role; /* OPTIONAL */ + struct RequestorType *typeData; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequesterInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequesterInfo_H_ */ +#include diff --git a/vcits/mapem/SignalStatus.h b/vcits/mapem/SignalStatus.h new file mode 100644 index 0000000..f54e123 --- /dev/null +++ b/vcits/mapem/SignalStatus.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalStatus_H_ +#define _SignalStatus_H_ + + +#include + +/* Including external dependencies */ +#include "MsgCount.h" +#include "IntersectionReferenceID.h" +#include "SignalStatusPackageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatus; + +/* SignalStatus */ +typedef struct SignalStatus { + MsgCount_t sequenceNumber; + IntersectionReferenceID_t id; + SignalStatusPackageList_t sigStatus; + struct SignalStatus__regional { + A_SEQUENCE_OF(struct Reg_SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatus_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatus_H_ */ +#include diff --git a/vcits/mapem/SignalStatusList.h b/vcits/mapem/SignalStatusList.h new file mode 100644 index 0000000..abe7e4a --- /dev/null +++ b/vcits/mapem/SignalStatusList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalStatusList_H_ +#define _SignalStatusList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatus; + +/* SignalStatusList */ +typedef struct SignalStatusList { + A_SEQUENCE_OF(struct SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusList_H_ */ +#include diff --git a/vcits/mapem/SignalStatusMessage.h b/vcits/mapem/SignalStatusMessage.h new file mode 100644 index 0000000..721dcaa --- /dev/null +++ b/vcits/mapem/SignalStatusMessage.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalStatusMessage_H_ +#define _SignalStatusMessage_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MsgCount.h" +#include "SignalStatusList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatusMessage; + +/* SignalStatusMessage */ +typedef struct SignalStatusMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + MsgCount_t *sequenceNumber; /* OPTIONAL */ + SignalStatusList_t status; + struct SignalStatusMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusMessage_H_ */ +#include diff --git a/vcits/mapem/SignalStatusPackage-addGrpC.h b/vcits/mapem/SignalStatusPackage-addGrpC.h new file mode 100644 index 0000000..8acc7d8 --- /dev/null +++ b/vcits/mapem/SignalStatusPackage-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalStatusPackage_addGrpC_H_ +#define _SignalStatusPackage_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaTime.h" +#include "RejectedReason.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalStatusPackage-addGrpC */ +typedef struct SignalStatusPackage_addGrpC { + DeltaTime_t *synchToSchedule; /* OPTIONAL */ + RejectedReason_t *rejectedReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_addGrpC_H_ */ +#include diff --git a/vcits/mapem/SignalStatusPackage.h b/vcits/mapem/SignalStatusPackage.h new file mode 100644 index 0000000..ac76ab3 --- /dev/null +++ b/vcits/mapem/SignalStatusPackage.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalStatusPackage_H_ +#define _SignalStatusPackage_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionAccessPoint.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "PrioritizationResponseStatus.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequesterInfo; +struct IntersectionAccessPoint; +struct Reg_SignalStatusPackage; + +/* SignalStatusPackage */ +typedef struct SignalStatusPackage { + struct SignalRequesterInfo *requester; /* OPTIONAL */ + IntersectionAccessPoint_t inboundOn; + struct IntersectionAccessPoint *outboundOn; /* OPTIONAL */ + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + PrioritizationResponseStatus_t status; + struct SignalStatusPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_H_ */ +#include diff --git a/vcits/mapem/SignalStatusPackageList.h b/vcits/mapem/SignalStatusPackageList.h new file mode 100644 index 0000000..8290d99 --- /dev/null +++ b/vcits/mapem/SignalStatusPackageList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalStatusPackageList_H_ +#define _SignalStatusPackageList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatusPackage; + +/* SignalStatusPackageList */ +typedef struct SignalStatusPackageList { + A_SEQUENCE_OF(struct SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackageList_H_ */ +#include diff --git a/vcits/mapem/SignalViolationSubCauseCode.h b/vcits/mapem/SignalViolationSubCauseCode.h new file mode 100644 index 0000000..379d8fe --- /dev/null +++ b/vcits/mapem/SignalViolationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SignalViolationSubCauseCode_H_ +#define _SignalViolationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SignalViolationSubCauseCode { + SignalViolationSubCauseCode_unavailable = 0, + SignalViolationSubCauseCode_stopSignViolation = 1, + SignalViolationSubCauseCode_trafficLightViolation = 2, + SignalViolationSubCauseCode_turningRegulationViolation = 3 +} e_SignalViolationSubCauseCode; + +/* SignalViolationSubCauseCode */ +typedef long SignalViolationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode; +asn_struct_free_f SignalViolationSubCauseCode_free; +asn_struct_print_f SignalViolationSubCauseCode_print; +asn_constr_check_f SignalViolationSubCauseCode_constraint; +ber_type_decoder_f SignalViolationSubCauseCode_decode_ber; +der_type_encoder_f SignalViolationSubCauseCode_encode_der; +xer_type_decoder_f SignalViolationSubCauseCode_decode_xer; +xer_type_encoder_f SignalViolationSubCauseCode_encode_xer; +oer_type_decoder_f SignalViolationSubCauseCode_decode_oer; +oer_type_encoder_f SignalViolationSubCauseCode_encode_oer; +per_type_decoder_f SignalViolationSubCauseCode_decode_uper; +per_type_encoder_f SignalViolationSubCauseCode_encode_uper; +per_type_decoder_f SignalViolationSubCauseCode_decode_aper; +per_type_encoder_f SignalViolationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalViolationSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/SlowVehicleSubCauseCode.h b/vcits/mapem/SlowVehicleSubCauseCode.h new file mode 100644 index 0000000..6f408b4 --- /dev/null +++ b/vcits/mapem/SlowVehicleSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SlowVehicleSubCauseCode_H_ +#define _SlowVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SlowVehicleSubCauseCode { + SlowVehicleSubCauseCode_unavailable = 0, + SlowVehicleSubCauseCode_maintenanceVehicle = 1, + SlowVehicleSubCauseCode_vehiclesSlowingToLookAtAccident = 2, + SlowVehicleSubCauseCode_abnormalLoad = 3, + SlowVehicleSubCauseCode_abnormalWideLoad = 4, + SlowVehicleSubCauseCode_convoy = 5, + SlowVehicleSubCauseCode_snowplough = 6, + SlowVehicleSubCauseCode_deicing = 7, + SlowVehicleSubCauseCode_saltingVehicles = 8 +} e_SlowVehicleSubCauseCode; + +/* SlowVehicleSubCauseCode */ +typedef long SlowVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode; +asn_struct_free_f SlowVehicleSubCauseCode_free; +asn_struct_print_f SlowVehicleSubCauseCode_print; +asn_constr_check_f SlowVehicleSubCauseCode_constraint; +ber_type_decoder_f SlowVehicleSubCauseCode_decode_ber; +der_type_encoder_f SlowVehicleSubCauseCode_encode_der; +xer_type_decoder_f SlowVehicleSubCauseCode_decode_xer; +xer_type_encoder_f SlowVehicleSubCauseCode_encode_xer; +oer_type_decoder_f SlowVehicleSubCauseCode_decode_oer; +oer_type_encoder_f SlowVehicleSubCauseCode_encode_oer; +per_type_decoder_f SlowVehicleSubCauseCode_decode_uper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_uper; +per_type_decoder_f SlowVehicleSubCauseCode_decode_aper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SlowVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/SpecialTransportType.h b/vcits/mapem/SpecialTransportType.h new file mode 100644 index 0000000..425adff --- /dev/null +++ b/vcits/mapem/SpecialTransportType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SpecialTransportType_H_ +#define _SpecialTransportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpecialTransportType { + SpecialTransportType_heavyLoad = 0, + SpecialTransportType_excessWidth = 1, + SpecialTransportType_excessLength = 2, + SpecialTransportType_excessHeight = 3 +} e_SpecialTransportType; + +/* SpecialTransportType */ +typedef BIT_STRING_t SpecialTransportType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpecialTransportType; +asn_struct_free_f SpecialTransportType_free; +asn_struct_print_f SpecialTransportType_print; +asn_constr_check_f SpecialTransportType_constraint; +ber_type_decoder_f SpecialTransportType_decode_ber; +der_type_encoder_f SpecialTransportType_encode_der; +xer_type_decoder_f SpecialTransportType_decode_xer; +xer_type_encoder_f SpecialTransportType_encode_xer; +oer_type_decoder_f SpecialTransportType_decode_oer; +oer_type_encoder_f SpecialTransportType_encode_oer; +per_type_decoder_f SpecialTransportType_decode_uper; +per_type_encoder_f SpecialTransportType_encode_uper; +per_type_decoder_f SpecialTransportType_decode_aper; +per_type_encoder_f SpecialTransportType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpecialTransportType_H_ */ +#include diff --git a/vcits/mapem/Speed.h b/vcits/mapem/Speed.h new file mode 100644 index 0000000..a6418e8 --- /dev/null +++ b/vcits/mapem/Speed.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Speed_H_ +#define _Speed_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedValue.h" +#include "SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Speed */ +typedef struct Speed { + SpeedValue_t speedValue; + SpeedConfidence_t speedConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Speed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Speed; + +#ifdef __cplusplus +} +#endif + +#endif /* _Speed_H_ */ +#include diff --git a/vcits/mapem/SpeedAdvice.h b/vcits/mapem/SpeedAdvice.h new file mode 100644 index 0000000..ae53c1f --- /dev/null +++ b/vcits/mapem/SpeedAdvice.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SpeedAdvice_H_ +#define _SpeedAdvice_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedAdvice */ +typedef long SpeedAdvice_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedAdvice; +asn_struct_free_f SpeedAdvice_free; +asn_struct_print_f SpeedAdvice_print; +asn_constr_check_f SpeedAdvice_constraint; +ber_type_decoder_f SpeedAdvice_decode_ber; +der_type_encoder_f SpeedAdvice_encode_der; +xer_type_decoder_f SpeedAdvice_decode_xer; +xer_type_encoder_f SpeedAdvice_encode_xer; +oer_type_decoder_f SpeedAdvice_decode_oer; +oer_type_encoder_f SpeedAdvice_encode_oer; +per_type_decoder_f SpeedAdvice_decode_uper; +per_type_encoder_f SpeedAdvice_encode_uper; +per_type_decoder_f SpeedAdvice_decode_aper; +per_type_encoder_f SpeedAdvice_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedAdvice_H_ */ +#include diff --git a/vcits/mapem/SpeedConfidence.h b/vcits/mapem/SpeedConfidence.h new file mode 100644 index 0000000..d47e122 --- /dev/null +++ b/vcits/mapem/SpeedConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SpeedConfidence_H_ +#define _SpeedConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidence { + SpeedConfidence_equalOrWithinOneCentimeterPerSec = 1, + SpeedConfidence_equalOrWithinOneMeterPerSec = 100, + SpeedConfidence_outOfRange = 126, + SpeedConfidence_unavailable = 127 +} e_SpeedConfidence; + +/* SpeedConfidence */ +typedef long SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidence; +asn_struct_free_f SpeedConfidence_free; +asn_struct_print_f SpeedConfidence_print; +asn_constr_check_f SpeedConfidence_constraint; +ber_type_decoder_f SpeedConfidence_decode_ber; +der_type_encoder_f SpeedConfidence_encode_der; +xer_type_decoder_f SpeedConfidence_decode_xer; +xer_type_encoder_f SpeedConfidence_encode_xer; +oer_type_decoder_f SpeedConfidence_decode_oer; +oer_type_encoder_f SpeedConfidence_encode_oer; +per_type_decoder_f SpeedConfidence_decode_uper; +per_type_encoder_f SpeedConfidence_encode_uper; +per_type_decoder_f SpeedConfidence_decode_aper; +per_type_encoder_f SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidence_H_ */ +#include diff --git a/vcits/mapem/SpeedConfidenceDSRC.h b/vcits/mapem/SpeedConfidenceDSRC.h new file mode 100644 index 0000000..0b46996 --- /dev/null +++ b/vcits/mapem/SpeedConfidenceDSRC.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SpeedConfidenceDSRC_H_ +#define _SpeedConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidenceDSRC { + SpeedConfidenceDSRC_unavailable = 0, + SpeedConfidenceDSRC_prec100ms = 1, + SpeedConfidenceDSRC_prec10ms = 2, + SpeedConfidenceDSRC_prec5ms = 3, + SpeedConfidenceDSRC_prec1ms = 4, + SpeedConfidenceDSRC_prec0_1ms = 5, + SpeedConfidenceDSRC_prec0_05ms = 6, + SpeedConfidenceDSRC_prec0_01ms = 7 +} e_SpeedConfidenceDSRC; + +/* SpeedConfidenceDSRC */ +typedef long SpeedConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedConfidenceDSRC_specs_1; +asn_struct_free_f SpeedConfidenceDSRC_free; +asn_struct_print_f SpeedConfidenceDSRC_print; +asn_constr_check_f SpeedConfidenceDSRC_constraint; +ber_type_decoder_f SpeedConfidenceDSRC_decode_ber; +der_type_encoder_f SpeedConfidenceDSRC_encode_der; +xer_type_decoder_f SpeedConfidenceDSRC_decode_xer; +xer_type_encoder_f SpeedConfidenceDSRC_encode_xer; +oer_type_decoder_f SpeedConfidenceDSRC_decode_oer; +oer_type_encoder_f SpeedConfidenceDSRC_encode_oer; +per_type_decoder_f SpeedConfidenceDSRC_decode_uper; +per_type_encoder_f SpeedConfidenceDSRC_encode_uper; +per_type_decoder_f SpeedConfidenceDSRC_decode_aper; +per_type_encoder_f SpeedConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidenceDSRC_H_ */ +#include diff --git a/vcits/mapem/SpeedLimit.h b/vcits/mapem/SpeedLimit.h new file mode 100644 index 0000000..61a32ea --- /dev/null +++ b/vcits/mapem/SpeedLimit.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SpeedLimit_H_ +#define _SpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimit { + SpeedLimit_oneKmPerHour = 1 +} e_SpeedLimit; + +/* SpeedLimit */ +typedef long SpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimit; +asn_struct_free_f SpeedLimit_free; +asn_struct_print_f SpeedLimit_print; +asn_constr_check_f SpeedLimit_constraint; +ber_type_decoder_f SpeedLimit_decode_ber; +der_type_encoder_f SpeedLimit_encode_der; +xer_type_decoder_f SpeedLimit_decode_xer; +xer_type_encoder_f SpeedLimit_encode_xer; +oer_type_decoder_f SpeedLimit_decode_oer; +oer_type_encoder_f SpeedLimit_encode_oer; +per_type_decoder_f SpeedLimit_decode_uper; +per_type_encoder_f SpeedLimit_encode_uper; +per_type_decoder_f SpeedLimit_decode_aper; +per_type_encoder_f SpeedLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimit_H_ */ +#include diff --git a/vcits/mapem/SpeedLimitList.h b/vcits/mapem/SpeedLimitList.h new file mode 100644 index 0000000..e210188 --- /dev/null +++ b/vcits/mapem/SpeedLimitList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SpeedLimitList_H_ +#define _SpeedLimitList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RegulatorySpeedLimit; + +/* SpeedLimitList */ +typedef struct SpeedLimitList { + A_SEQUENCE_OF(struct RegulatorySpeedLimit) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedLimitList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitList; +extern asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedLimitList_1[1]; +extern asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitList_H_ */ +#include diff --git a/vcits/mapem/SpeedLimitType.h b/vcits/mapem/SpeedLimitType.h new file mode 100644 index 0000000..278cbc6 --- /dev/null +++ b/vcits/mapem/SpeedLimitType.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SpeedLimitType_H_ +#define _SpeedLimitType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimitType { + SpeedLimitType_unknown = 0, + SpeedLimitType_maxSpeedInSchoolZone = 1, + SpeedLimitType_maxSpeedInSchoolZoneWhenChildrenArePresent = 2, + SpeedLimitType_maxSpeedInConstructionZone = 3, + SpeedLimitType_vehicleMinSpeed = 4, + SpeedLimitType_vehicleMaxSpeed = 5, + SpeedLimitType_vehicleNightMaxSpeed = 6, + SpeedLimitType_truckMinSpeed = 7, + SpeedLimitType_truckMaxSpeed = 8, + SpeedLimitType_truckNightMaxSpeed = 9, + SpeedLimitType_vehiclesWithTrailersMinSpeed = 10, + SpeedLimitType_vehiclesWithTrailersMaxSpeed = 11, + SpeedLimitType_vehiclesWithTrailersNightMaxSpeed = 12 + /* + * Enumeration is extensible + */ +} e_SpeedLimitType; + +/* SpeedLimitType */ +typedef long SpeedLimitType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitType; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1; +asn_struct_free_f SpeedLimitType_free; +asn_struct_print_f SpeedLimitType_print; +asn_constr_check_f SpeedLimitType_constraint; +ber_type_decoder_f SpeedLimitType_decode_ber; +der_type_encoder_f SpeedLimitType_encode_der; +xer_type_decoder_f SpeedLimitType_decode_xer; +xer_type_encoder_f SpeedLimitType_encode_xer; +oer_type_decoder_f SpeedLimitType_decode_oer; +oer_type_encoder_f SpeedLimitType_encode_oer; +per_type_decoder_f SpeedLimitType_decode_uper; +per_type_encoder_f SpeedLimitType_encode_uper; +per_type_decoder_f SpeedLimitType_decode_aper; +per_type_encoder_f SpeedLimitType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitType_H_ */ +#include diff --git a/vcits/mapem/SpeedValue.h b/vcits/mapem/SpeedValue.h new file mode 100644 index 0000000..bc5b4ec --- /dev/null +++ b/vcits/mapem/SpeedValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SpeedValue_H_ +#define _SpeedValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedValue { + SpeedValue_standstill = 0, + SpeedValue_oneCentimeterPerSec = 1, + SpeedValue_unavailable = 16383 +} e_SpeedValue; + +/* SpeedValue */ +typedef long SpeedValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedValue; +asn_struct_free_f SpeedValue_free; +asn_struct_print_f SpeedValue_print; +asn_constr_check_f SpeedValue_constraint; +ber_type_decoder_f SpeedValue_decode_ber; +der_type_encoder_f SpeedValue_encode_der; +xer_type_decoder_f SpeedValue_decode_xer; +xer_type_encoder_f SpeedValue_encode_xer; +oer_type_decoder_f SpeedValue_decode_oer; +oer_type_encoder_f SpeedValue_encode_oer; +per_type_decoder_f SpeedValue_decode_uper; +per_type_encoder_f SpeedValue_encode_uper; +per_type_decoder_f SpeedValue_decode_aper; +per_type_encoder_f SpeedValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedValue_H_ */ +#include diff --git a/vcits/mapem/SpeedandHeadingandThrottleConfidence.h b/vcits/mapem/SpeedandHeadingandThrottleConfidence.h new file mode 100644 index 0000000..0643b54 --- /dev/null +++ b/vcits/mapem/SpeedandHeadingandThrottleConfidence.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SpeedandHeadingandThrottleConfidence_H_ +#define _SpeedandHeadingandThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingConfidenceDSRC.h" +#include "SpeedConfidenceDSRC.h" +#include "ThrottleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedandHeadingandThrottleConfidence */ +typedef struct SpeedandHeadingandThrottleConfidence { + HeadingConfidenceDSRC_t heading; + SpeedConfidenceDSRC_t speed; + ThrottleConfidence_t throttle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedandHeadingandThrottleConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedandHeadingandThrottleConfidence_H_ */ +#include diff --git a/vcits/mapem/StartTime.h b/vcits/mapem/StartTime.h new file mode 100644 index 0000000..d99645e --- /dev/null +++ b/vcits/mapem/StartTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _StartTime_H_ +#define _StartTime_H_ + + +#include + +/* Including external dependencies */ +#include "AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* StartTime */ +typedef AviEriDateTime_t StartTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StartTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StartTime; +asn_struct_free_f StartTime_free; +asn_struct_print_f StartTime_print; +asn_constr_check_f StartTime_constraint; +ber_type_decoder_f StartTime_decode_ber; +der_type_encoder_f StartTime_encode_der; +xer_type_decoder_f StartTime_decode_xer; +xer_type_encoder_f StartTime_encode_xer; +oer_type_decoder_f StartTime_decode_oer; +oer_type_encoder_f StartTime_encode_oer; +per_type_decoder_f StartTime_decode_uper; +per_type_encoder_f StartTime_encode_uper; +per_type_decoder_f StartTime_decode_aper; +per_type_encoder_f StartTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StartTime_H_ */ +#include diff --git a/vcits/mapem/StationID.h b/vcits/mapem/StationID.h new file mode 100644 index 0000000..0afd121 --- /dev/null +++ b/vcits/mapem/StationID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _StationID_H_ +#define _StationID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* StationID */ +typedef unsigned long StationID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationID; +extern const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1; +asn_struct_free_f StationID_free; +asn_struct_print_f StationID_print; +asn_constr_check_f StationID_constraint; +ber_type_decoder_f StationID_decode_ber; +der_type_encoder_f StationID_encode_der; +xer_type_decoder_f StationID_decode_xer; +xer_type_encoder_f StationID_encode_xer; +oer_type_decoder_f StationID_decode_oer; +oer_type_encoder_f StationID_encode_oer; +per_type_decoder_f StationID_decode_uper; +per_type_encoder_f StationID_encode_uper; +per_type_decoder_f StationID_decode_aper; +per_type_encoder_f StationID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationID_H_ */ +#include diff --git a/vcits/mapem/StationType.h b/vcits/mapem/StationType.h new file mode 100644 index 0000000..9e93593 --- /dev/null +++ b/vcits/mapem/StationType.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _StationType_H_ +#define _StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationType { + StationType_unknown = 0, + StationType_pedestrian = 1, + StationType_cyclist = 2, + StationType_moped = 3, + StationType_motorcycle = 4, + StationType_passengerCar = 5, + StationType_bus = 6, + StationType_lightTruck = 7, + StationType_heavyTruck = 8, + StationType_trailer = 9, + StationType_specialVehicles = 10, + StationType_tram = 11, + StationType_roadSideUnit = 15 +} e_StationType; + +/* StationType */ +typedef long StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationType; +asn_struct_free_f StationType_free; +asn_struct_print_f StationType_print; +asn_constr_check_f StationType_constraint; +ber_type_decoder_f StationType_decode_ber; +der_type_encoder_f StationType_encode_der; +xer_type_decoder_f StationType_decode_xer; +xer_type_encoder_f StationType_encode_xer; +oer_type_decoder_f StationType_decode_oer; +oer_type_encoder_f StationType_encode_oer; +per_type_decoder_f StationType_decode_uper; +per_type_encoder_f StationType_encode_uper; +per_type_decoder_f StationType_decode_aper; +per_type_encoder_f StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationType_H_ */ +#include diff --git a/vcits/mapem/StationarySince.h b/vcits/mapem/StationarySince.h new file mode 100644 index 0000000..a91ac62 --- /dev/null +++ b/vcits/mapem/StationarySince.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _StationarySince_H_ +#define _StationarySince_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationarySince { + StationarySince_lessThan1Minute = 0, + StationarySince_lessThan2Minutes = 1, + StationarySince_lessThan15Minutes = 2, + StationarySince_equalOrGreater15Minutes = 3 +} e_StationarySince; + +/* StationarySince */ +typedef long StationarySince_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationarySince; +asn_struct_free_f StationarySince_free; +asn_struct_print_f StationarySince_print; +asn_constr_check_f StationarySince_constraint; +ber_type_decoder_f StationarySince_decode_ber; +der_type_encoder_f StationarySince_encode_der; +xer_type_decoder_f StationarySince_decode_xer; +xer_type_encoder_f StationarySince_encode_xer; +oer_type_decoder_f StationarySince_decode_oer; +oer_type_encoder_f StationarySince_encode_oer; +per_type_decoder_f StationarySince_decode_uper; +per_type_encoder_f StationarySince_encode_uper; +per_type_decoder_f StationarySince_decode_aper; +per_type_encoder_f StationarySince_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationarySince_H_ */ +#include diff --git a/vcits/mapem/StationaryVehicleSubCauseCode.h b/vcits/mapem/StationaryVehicleSubCauseCode.h new file mode 100644 index 0000000..eea4812 --- /dev/null +++ b/vcits/mapem/StationaryVehicleSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _StationaryVehicleSubCauseCode_H_ +#define _StationaryVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationaryVehicleSubCauseCode { + StationaryVehicleSubCauseCode_unavailable = 0, + StationaryVehicleSubCauseCode_humanProblem = 1, + StationaryVehicleSubCauseCode_vehicleBreakdown = 2, + StationaryVehicleSubCauseCode_postCrash = 3, + StationaryVehicleSubCauseCode_publicTransportStop = 4, + StationaryVehicleSubCauseCode_carryingDangerousGoods = 5 +} e_StationaryVehicleSubCauseCode; + +/* StationaryVehicleSubCauseCode */ +typedef long StationaryVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode; +asn_struct_free_f StationaryVehicleSubCauseCode_free; +asn_struct_print_f StationaryVehicleSubCauseCode_print; +asn_constr_check_f StationaryVehicleSubCauseCode_constraint; +ber_type_decoder_f StationaryVehicleSubCauseCode_decode_ber; +der_type_encoder_f StationaryVehicleSubCauseCode_encode_der; +xer_type_decoder_f StationaryVehicleSubCauseCode_decode_xer; +xer_type_encoder_f StationaryVehicleSubCauseCode_encode_xer; +oer_type_decoder_f StationaryVehicleSubCauseCode_decode_oer; +oer_type_encoder_f StationaryVehicleSubCauseCode_encode_oer; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_uper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_uper; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_aper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationaryVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/SteeringWheelAngle.h b/vcits/mapem/SteeringWheelAngle.h new file mode 100644 index 0000000..4b564d5 --- /dev/null +++ b/vcits/mapem/SteeringWheelAngle.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SteeringWheelAngle_H_ +#define _SteeringWheelAngle_H_ + + +#include + +/* Including external dependencies */ +#include "SteeringWheelAngleValue.h" +#include "SteeringWheelAngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SteeringWheelAngle */ +typedef struct SteeringWheelAngle { + SteeringWheelAngleValue_t steeringWheelAngleValue; + SteeringWheelAngleConfidence_t steeringWheelAngleConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SteeringWheelAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngle_H_ */ +#include diff --git a/vcits/mapem/SteeringWheelAngleConfidence.h b/vcits/mapem/SteeringWheelAngleConfidence.h new file mode 100644 index 0000000..7915792 --- /dev/null +++ b/vcits/mapem/SteeringWheelAngleConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SteeringWheelAngleConfidence_H_ +#define _SteeringWheelAngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleConfidence { + SteeringWheelAngleConfidence_equalOrWithinOnePointFiveDegree = 1, + SteeringWheelAngleConfidence_outOfRange = 126, + SteeringWheelAngleConfidence_unavailable = 127 +} e_SteeringWheelAngleConfidence; + +/* SteeringWheelAngleConfidence */ +typedef long SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence; +asn_struct_free_f SteeringWheelAngleConfidence_free; +asn_struct_print_f SteeringWheelAngleConfidence_print; +asn_constr_check_f SteeringWheelAngleConfidence_constraint; +ber_type_decoder_f SteeringWheelAngleConfidence_decode_ber; +der_type_encoder_f SteeringWheelAngleConfidence_encode_der; +xer_type_decoder_f SteeringWheelAngleConfidence_decode_xer; +xer_type_encoder_f SteeringWheelAngleConfidence_encode_xer; +oer_type_decoder_f SteeringWheelAngleConfidence_decode_oer; +oer_type_encoder_f SteeringWheelAngleConfidence_encode_oer; +per_type_decoder_f SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleConfidence_H_ */ +#include diff --git a/vcits/mapem/SteeringWheelAngleValue.h b/vcits/mapem/SteeringWheelAngleValue.h new file mode 100644 index 0000000..cb359a0 --- /dev/null +++ b/vcits/mapem/SteeringWheelAngleValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SteeringWheelAngleValue_H_ +#define _SteeringWheelAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleValue { + SteeringWheelAngleValue_straight = 0, + SteeringWheelAngleValue_onePointFiveDegreesToRight = -1, + SteeringWheelAngleValue_onePointFiveDegreesToLeft = 1, + SteeringWheelAngleValue_unavailable = 512 +} e_SteeringWheelAngleValue; + +/* SteeringWheelAngleValue */ +typedef long SteeringWheelAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue; +asn_struct_free_f SteeringWheelAngleValue_free; +asn_struct_print_f SteeringWheelAngleValue_print; +asn_constr_check_f SteeringWheelAngleValue_constraint; +ber_type_decoder_f SteeringWheelAngleValue_decode_ber; +der_type_encoder_f SteeringWheelAngleValue_encode_der; +xer_type_decoder_f SteeringWheelAngleValue_decode_xer; +xer_type_encoder_f SteeringWheelAngleValue_encode_xer; +oer_type_decoder_f SteeringWheelAngleValue_decode_oer; +oer_type_encoder_f SteeringWheelAngleValue_encode_oer; +per_type_decoder_f SteeringWheelAngleValue_decode_uper; +per_type_encoder_f SteeringWheelAngleValue_encode_uper; +per_type_decoder_f SteeringWheelAngleValue_decode_aper; +per_type_encoder_f SteeringWheelAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleValue_H_ */ +#include diff --git a/vcits/mapem/StopTime.h b/vcits/mapem/StopTime.h new file mode 100644 index 0000000..5880981 --- /dev/null +++ b/vcits/mapem/StopTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _StopTime_H_ +#define _StopTime_H_ + + +#include + +/* Including external dependencies */ +#include "AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* StopTime */ +typedef AviEriDateTime_t StopTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StopTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StopTime; +asn_struct_free_f StopTime_free; +asn_struct_print_f StopTime_print; +asn_constr_check_f StopTime_constraint; +ber_type_decoder_f StopTime_decode_ber; +der_type_encoder_f StopTime_encode_der; +xer_type_decoder_f StopTime_decode_xer; +xer_type_encoder_f StopTime_encode_xer; +oer_type_decoder_f StopTime_decode_oer; +oer_type_encoder_f StopTime_encode_oer; +per_type_decoder_f StopTime_decode_uper; +per_type_encoder_f StopTime_encode_uper; +per_type_decoder_f StopTime_decode_aper; +per_type_encoder_f StopTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StopTime_H_ */ +#include diff --git a/vcits/mapem/SubCauseCodeType.h b/vcits/mapem/SubCauseCodeType.h new file mode 100644 index 0000000..fd30687 --- /dev/null +++ b/vcits/mapem/SubCauseCodeType.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _SubCauseCodeType_H_ +#define _SubCauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SubCauseCodeType */ +typedef long SubCauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType; +asn_struct_free_f SubCauseCodeType_free; +asn_struct_print_f SubCauseCodeType_print; +asn_constr_check_f SubCauseCodeType_constraint; +ber_type_decoder_f SubCauseCodeType_decode_ber; +der_type_encoder_f SubCauseCodeType_encode_der; +xer_type_decoder_f SubCauseCodeType_decode_xer; +xer_type_encoder_f SubCauseCodeType_encode_xer; +oer_type_decoder_f SubCauseCodeType_decode_oer; +oer_type_encoder_f SubCauseCodeType_encode_oer; +per_type_decoder_f SubCauseCodeType_decode_uper; +per_type_encoder_f SubCauseCodeType_encode_uper; +per_type_decoder_f SubCauseCodeType_decode_aper; +per_type_encoder_f SubCauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SubCauseCodeType_H_ */ +#include diff --git a/vcits/mapem/TaxCode.h b/vcits/mapem/TaxCode.h new file mode 100644 index 0000000..cebd25a --- /dev/null +++ b/vcits/mapem/TaxCode.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TaxCode_H_ +#define _TaxCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TaxCode */ +typedef OCTET_STRING_t TaxCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TaxCode; +asn_struct_free_f TaxCode_free; +asn_struct_print_f TaxCode_print; +asn_constr_check_f TaxCode_constraint; +ber_type_decoder_f TaxCode_decode_ber; +der_type_encoder_f TaxCode_encode_der; +xer_type_decoder_f TaxCode_decode_xer; +xer_type_encoder_f TaxCode_encode_xer; +oer_type_decoder_f TaxCode_decode_oer; +oer_type_encoder_f TaxCode_encode_oer; +per_type_decoder_f TaxCode_decode_uper; +per_type_encoder_f TaxCode_encode_uper; +per_type_decoder_f TaxCode_decode_aper; +per_type_encoder_f TaxCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TaxCode_H_ */ +#include diff --git a/vcits/mapem/Temperature.h b/vcits/mapem/Temperature.h new file mode 100644 index 0000000..10a82ba --- /dev/null +++ b/vcits/mapem/Temperature.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Temperature_H_ +#define _Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Temperature { + Temperature_equalOrSmallerThanMinus60Deg = -60, + Temperature_oneDegreeCelsius = 1, + Temperature_equalOrGreaterThan67Deg = 67 +} e_Temperature; + +/* Temperature */ +typedef long Temperature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Temperature; +asn_struct_free_f Temperature_free; +asn_struct_print_f Temperature_print; +asn_constr_check_f Temperature_constraint; +ber_type_decoder_f Temperature_decode_ber; +der_type_encoder_f Temperature_encode_der; +xer_type_decoder_f Temperature_decode_xer; +xer_type_encoder_f Temperature_encode_xer; +oer_type_decoder_f Temperature_decode_oer; +oer_type_encoder_f Temperature_encode_oer; +per_type_decoder_f Temperature_decode_uper; +per_type_encoder_f Temperature_encode_uper; +per_type_decoder_f Temperature_decode_aper; +per_type_encoder_f Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Temperature_H_ */ +#include diff --git a/vcits/mapem/TemporaryID.h b/vcits/mapem/TemporaryID.h new file mode 100644 index 0000000..7d72aa6 --- /dev/null +++ b/vcits/mapem/TemporaryID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TemporaryID_H_ +#define _TemporaryID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TemporaryID */ +typedef OCTET_STRING_t TemporaryID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TemporaryID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TemporaryID; +asn_struct_free_f TemporaryID_free; +asn_struct_print_f TemporaryID_print; +asn_constr_check_f TemporaryID_constraint; +ber_type_decoder_f TemporaryID_decode_ber; +der_type_encoder_f TemporaryID_encode_der; +xer_type_decoder_f TemporaryID_decode_xer; +xer_type_encoder_f TemporaryID_encode_xer; +oer_type_decoder_f TemporaryID_decode_oer; +oer_type_encoder_f TemporaryID_encode_oer; +per_type_decoder_f TemporaryID_decode_uper; +per_type_encoder_f TemporaryID_encode_uper; +per_type_decoder_f TemporaryID_decode_aper; +per_type_encoder_f TemporaryID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TemporaryID_H_ */ +#include diff --git a/vcits/mapem/ThrottleConfidence.h b/vcits/mapem/ThrottleConfidence.h new file mode 100644 index 0000000..90df64e --- /dev/null +++ b/vcits/mapem/ThrottleConfidence.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ThrottleConfidence_H_ +#define _ThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ThrottleConfidence { + ThrottleConfidence_unavailable = 0, + ThrottleConfidence_prec10percent = 1, + ThrottleConfidence_prec1percent = 2, + ThrottleConfidence_prec0_5percent = 3 +} e_ThrottleConfidence; + +/* ThrottleConfidence */ +typedef long ThrottleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1; +asn_struct_free_f ThrottleConfidence_free; +asn_struct_print_f ThrottleConfidence_print; +asn_constr_check_f ThrottleConfidence_constraint; +ber_type_decoder_f ThrottleConfidence_decode_ber; +der_type_encoder_f ThrottleConfidence_encode_der; +xer_type_decoder_f ThrottleConfidence_decode_xer; +xer_type_encoder_f ThrottleConfidence_encode_xer; +oer_type_decoder_f ThrottleConfidence_decode_oer; +oer_type_encoder_f ThrottleConfidence_encode_oer; +per_type_decoder_f ThrottleConfidence_decode_uper; +per_type_encoder_f ThrottleConfidence_encode_uper; +per_type_decoder_f ThrottleConfidence_decode_aper; +per_type_encoder_f ThrottleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ThrottleConfidence_H_ */ +#include diff --git a/vcits/mapem/TimeChangeDetails.h b/vcits/mapem/TimeChangeDetails.h new file mode 100644 index 0000000..e51c35a --- /dev/null +++ b/vcits/mapem/TimeChangeDetails.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TimeChangeDetails_H_ +#define _TimeChangeDetails_H_ + + +#include + +/* Including external dependencies */ +#include "TimeMark.h" +#include "TimeIntervalConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeChangeDetails */ +typedef struct TimeChangeDetails { + TimeMark_t *startTime; /* OPTIONAL */ + TimeMark_t minEndTime; + TimeMark_t *maxEndTime; /* OPTIONAL */ + TimeMark_t *likelyTime; /* OPTIONAL */ + TimeIntervalConfidence_t *confidence; /* OPTIONAL */ + TimeMark_t *nextTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TimeChangeDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeChangeDetails_H_ */ +#include diff --git a/vcits/mapem/TimeConfidence.h b/vcits/mapem/TimeConfidence.h new file mode 100644 index 0000000..fbcdcae --- /dev/null +++ b/vcits/mapem/TimeConfidence.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TimeConfidence_H_ +#define _TimeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeConfidence { + TimeConfidence_unavailable = 0, + TimeConfidence_time_100_000 = 1, + TimeConfidence_time_050_000 = 2, + TimeConfidence_time_020_000 = 3, + TimeConfidence_time_010_000 = 4, + TimeConfidence_time_002_000 = 5, + TimeConfidence_time_001_000 = 6, + TimeConfidence_time_000_500 = 7, + TimeConfidence_time_000_200 = 8, + TimeConfidence_time_000_100 = 9, + TimeConfidence_time_000_050 = 10, + TimeConfidence_time_000_020 = 11, + TimeConfidence_time_000_010 = 12, + TimeConfidence_time_000_005 = 13, + TimeConfidence_time_000_002 = 14, + TimeConfidence_time_000_001 = 15, + TimeConfidence_time_000_000_5 = 16, + TimeConfidence_time_000_000_2 = 17, + TimeConfidence_time_000_000_1 = 18, + TimeConfidence_time_000_000_05 = 19, + TimeConfidence_time_000_000_02 = 20, + TimeConfidence_time_000_000_01 = 21, + TimeConfidence_time_000_000_005 = 22, + TimeConfidence_time_000_000_002 = 23, + TimeConfidence_time_000_000_001 = 24, + TimeConfidence_time_000_000_000_5 = 25, + TimeConfidence_time_000_000_000_2 = 26, + TimeConfidence_time_000_000_000_1 = 27, + TimeConfidence_time_000_000_000_05 = 28, + TimeConfidence_time_000_000_000_02 = 29, + TimeConfidence_time_000_000_000_01 = 30, + TimeConfidence_time_000_000_000_005 = 31, + TimeConfidence_time_000_000_000_002 = 32, + TimeConfidence_time_000_000_000_001 = 33, + TimeConfidence_time_000_000_000_000_5 = 34, + TimeConfidence_time_000_000_000_000_2 = 35, + TimeConfidence_time_000_000_000_000_1 = 36, + TimeConfidence_time_000_000_000_000_05 = 37, + TimeConfidence_time_000_000_000_000_02 = 38, + TimeConfidence_time_000_000_000_000_01 = 39 +} e_TimeConfidence; + +/* TimeConfidence */ +typedef long TimeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1; +asn_struct_free_f TimeConfidence_free; +asn_struct_print_f TimeConfidence_print; +asn_constr_check_f TimeConfidence_constraint; +ber_type_decoder_f TimeConfidence_decode_ber; +der_type_encoder_f TimeConfidence_encode_der; +xer_type_decoder_f TimeConfidence_decode_xer; +xer_type_encoder_f TimeConfidence_encode_xer; +oer_type_decoder_f TimeConfidence_decode_oer; +oer_type_encoder_f TimeConfidence_encode_oer; +per_type_decoder_f TimeConfidence_decode_uper; +per_type_encoder_f TimeConfidence_encode_uper; +per_type_decoder_f TimeConfidence_decode_aper; +per_type_encoder_f TimeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeConfidence_H_ */ +#include diff --git a/vcits/mapem/TimeIntervalConfidence.h b/vcits/mapem/TimeIntervalConfidence.h new file mode 100644 index 0000000..659af18 --- /dev/null +++ b/vcits/mapem/TimeIntervalConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TimeIntervalConfidence_H_ +#define _TimeIntervalConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeIntervalConfidence */ +typedef long TimeIntervalConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence; +asn_struct_free_f TimeIntervalConfidence_free; +asn_struct_print_f TimeIntervalConfidence_print; +asn_constr_check_f TimeIntervalConfidence_constraint; +ber_type_decoder_f TimeIntervalConfidence_decode_ber; +der_type_encoder_f TimeIntervalConfidence_encode_der; +xer_type_decoder_f TimeIntervalConfidence_decode_xer; +xer_type_encoder_f TimeIntervalConfidence_encode_xer; +oer_type_decoder_f TimeIntervalConfidence_decode_oer; +oer_type_encoder_f TimeIntervalConfidence_encode_oer; +per_type_decoder_f TimeIntervalConfidence_decode_uper; +per_type_encoder_f TimeIntervalConfidence_encode_uper; +per_type_decoder_f TimeIntervalConfidence_decode_aper; +per_type_encoder_f TimeIntervalConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeIntervalConfidence_H_ */ +#include diff --git a/vcits/mapem/TimeMark.h b/vcits/mapem/TimeMark.h new file mode 100644 index 0000000..f5fc130 --- /dev/null +++ b/vcits/mapem/TimeMark.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TimeMark_H_ +#define _TimeMark_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeMark */ +typedef long TimeMark_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeMark_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeMark; +asn_struct_free_f TimeMark_free; +asn_struct_print_f TimeMark_print; +asn_constr_check_f TimeMark_constraint; +ber_type_decoder_f TimeMark_decode_ber; +der_type_encoder_f TimeMark_encode_der; +xer_type_decoder_f TimeMark_decode_xer; +xer_type_encoder_f TimeMark_encode_xer; +oer_type_decoder_f TimeMark_decode_oer; +oer_type_encoder_f TimeMark_encode_oer; +per_type_decoder_f TimeMark_decode_uper; +per_type_encoder_f TimeMark_encode_uper; +per_type_decoder_f TimeMark_decode_aper; +per_type_encoder_f TimeMark_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeMark_H_ */ +#include diff --git a/vcits/mapem/TimeReference.h b/vcits/mapem/TimeReference.h new file mode 100644 index 0000000..a91cb9c --- /dev/null +++ b/vcits/mapem/TimeReference.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TimeReference_H_ +#define _TimeReference_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeReference { + TimeReference_oneMilliSec = 1 +} e_TimeReference; + +/* TimeReference */ +typedef long TimeReference_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeReference_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeReference; +asn_struct_free_f TimeReference_free; +asn_struct_print_f TimeReference_print; +asn_constr_check_f TimeReference_constraint; +ber_type_decoder_f TimeReference_decode_ber; +der_type_encoder_f TimeReference_encode_der; +xer_type_decoder_f TimeReference_decode_xer; +xer_type_encoder_f TimeReference_encode_xer; +oer_type_decoder_f TimeReference_decode_oer; +oer_type_encoder_f TimeReference_encode_oer; +per_type_decoder_f TimeReference_decode_uper; +per_type_encoder_f TimeReference_encode_uper; +per_type_decoder_f TimeReference_decode_aper; +per_type_encoder_f TimeReference_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeReference_H_ */ +#include diff --git a/vcits/mapem/TimestampIts.h b/vcits/mapem/TimestampIts.h new file mode 100644 index 0000000..2ca67a1 --- /dev/null +++ b/vcits/mapem/TimestampIts.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TimestampIts_H_ +#define _TimestampIts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimestampIts { + TimestampIts_utcStartOf2004 = 0, + TimestampIts_oneMillisecAfterUTCStartOf2004 = 1 +} e_TimestampIts; + +/* TimestampIts */ +typedef INTEGER_t TimestampIts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimestampIts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimestampIts; +asn_struct_free_f TimestampIts_free; +asn_struct_print_f TimestampIts_print; +asn_constr_check_f TimestampIts_constraint; +ber_type_decoder_f TimestampIts_decode_ber; +der_type_encoder_f TimestampIts_encode_der; +xer_type_decoder_f TimestampIts_decode_xer; +xer_type_encoder_f TimestampIts_encode_xer; +oer_type_decoder_f TimestampIts_decode_oer; +oer_type_encoder_f TimestampIts_encode_oer; +per_type_decoder_f TimestampIts_decode_uper; +per_type_encoder_f TimestampIts_encode_uper; +per_type_decoder_f TimestampIts_decode_aper; +per_type_encoder_f TimestampIts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimestampIts_H_ */ +#include diff --git a/vcits/mapem/Traces.h b/vcits/mapem/Traces.h new file mode 100644 index 0000000..7f2bc64 --- /dev/null +++ b/vcits/mapem/Traces.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Traces_H_ +#define _Traces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathHistory; + +/* Traces */ +typedef struct Traces { + A_SEQUENCE_OF(struct PathHistory) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Traces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Traces; + +#ifdef __cplusplus +} +#endif + +#endif /* _Traces_H_ */ +#include diff --git a/vcits/mapem/TrafficConditionSubCauseCode.h b/vcits/mapem/TrafficConditionSubCauseCode.h new file mode 100644 index 0000000..358b194 --- /dev/null +++ b/vcits/mapem/TrafficConditionSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TrafficConditionSubCauseCode_H_ +#define _TrafficConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficConditionSubCauseCode { + TrafficConditionSubCauseCode_unavailable = 0, + TrafficConditionSubCauseCode_increasedVolumeOfTraffic = 1, + TrafficConditionSubCauseCode_trafficJamSlowlyIncreasing = 2, + TrafficConditionSubCauseCode_trafficJamIncreasing = 3, + TrafficConditionSubCauseCode_trafficJamStronglyIncreasing = 4, + TrafficConditionSubCauseCode_trafficStationary = 5, + TrafficConditionSubCauseCode_trafficJamSlightlyDecreasing = 6, + TrafficConditionSubCauseCode_trafficJamDecreasing = 7, + TrafficConditionSubCauseCode_trafficJamStronglyDecreasing = 8 +} e_TrafficConditionSubCauseCode; + +/* TrafficConditionSubCauseCode */ +typedef long TrafficConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode; +asn_struct_free_f TrafficConditionSubCauseCode_free; +asn_struct_print_f TrafficConditionSubCauseCode_print; +asn_constr_check_f TrafficConditionSubCauseCode_constraint; +ber_type_decoder_f TrafficConditionSubCauseCode_decode_ber; +der_type_encoder_f TrafficConditionSubCauseCode_encode_der; +xer_type_decoder_f TrafficConditionSubCauseCode_decode_xer; +xer_type_encoder_f TrafficConditionSubCauseCode_encode_xer; +oer_type_decoder_f TrafficConditionSubCauseCode_decode_oer; +oer_type_encoder_f TrafficConditionSubCauseCode_encode_oer; +per_type_decoder_f TrafficConditionSubCauseCode_decode_uper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_uper; +per_type_decoder_f TrafficConditionSubCauseCode_decode_aper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficConditionSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/TrafficRule.h b/vcits/mapem/TrafficRule.h new file mode 100644 index 0000000..b1f4d3d --- /dev/null +++ b/vcits/mapem/TrafficRule.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TrafficRule_H_ +#define _TrafficRule_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficRule { + TrafficRule_noPassing = 0, + TrafficRule_noPassingForTrucks = 1, + TrafficRule_passToRight = 2, + TrafficRule_passToLeft = 3 + /* + * Enumeration is extensible + */ +} e_TrafficRule; + +/* TrafficRule */ +typedef long TrafficRule_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficRule; +asn_struct_free_f TrafficRule_free; +asn_struct_print_f TrafficRule_print; +asn_constr_check_f TrafficRule_constraint; +ber_type_decoder_f TrafficRule_decode_ber; +der_type_encoder_f TrafficRule_encode_der; +xer_type_decoder_f TrafficRule_decode_xer; +xer_type_encoder_f TrafficRule_encode_xer; +oer_type_decoder_f TrafficRule_decode_oer; +oer_type_encoder_f TrafficRule_encode_oer; +per_type_decoder_f TrafficRule_decode_uper; +per_type_encoder_f TrafficRule_encode_uper; +per_type_decoder_f TrafficRule_decode_aper; +per_type_encoder_f TrafficRule_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficRule_H_ */ +#include diff --git a/vcits/mapem/TransitVehicleOccupancy.h b/vcits/mapem/TransitVehicleOccupancy.h new file mode 100644 index 0000000..c6e131c --- /dev/null +++ b/vcits/mapem/TransitVehicleOccupancy.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TransitVehicleOccupancy_H_ +#define _TransitVehicleOccupancy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleOccupancy { + TransitVehicleOccupancy_occupancyUnknown = 0, + TransitVehicleOccupancy_occupancyEmpty = 1, + TransitVehicleOccupancy_occupancyVeryLow = 2, + TransitVehicleOccupancy_occupancyLow = 3, + TransitVehicleOccupancy_occupancyMed = 4, + TransitVehicleOccupancy_occupancyHigh = 5, + TransitVehicleOccupancy_occupancyNearlyFull = 6, + TransitVehicleOccupancy_occupancyFull = 7 +} e_TransitVehicleOccupancy; + +/* TransitVehicleOccupancy */ +typedef long TransitVehicleOccupancy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy; +extern const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1; +asn_struct_free_f TransitVehicleOccupancy_free; +asn_struct_print_f TransitVehicleOccupancy_print; +asn_constr_check_f TransitVehicleOccupancy_constraint; +ber_type_decoder_f TransitVehicleOccupancy_decode_ber; +der_type_encoder_f TransitVehicleOccupancy_encode_der; +xer_type_decoder_f TransitVehicleOccupancy_decode_xer; +xer_type_encoder_f TransitVehicleOccupancy_encode_xer; +oer_type_decoder_f TransitVehicleOccupancy_decode_oer; +oer_type_encoder_f TransitVehicleOccupancy_encode_oer; +per_type_decoder_f TransitVehicleOccupancy_decode_uper; +per_type_encoder_f TransitVehicleOccupancy_encode_uper; +per_type_decoder_f TransitVehicleOccupancy_decode_aper; +per_type_encoder_f TransitVehicleOccupancy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleOccupancy_H_ */ +#include diff --git a/vcits/mapem/TransitVehicleStatus.h b/vcits/mapem/TransitVehicleStatus.h new file mode 100644 index 0000000..0f37400 --- /dev/null +++ b/vcits/mapem/TransitVehicleStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TransitVehicleStatus_H_ +#define _TransitVehicleStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleStatus { + TransitVehicleStatus_loading = 0, + TransitVehicleStatus_anADAuse = 1, + TransitVehicleStatus_aBikeLoad = 2, + TransitVehicleStatus_doorOpen = 3, + TransitVehicleStatus_charging = 4, + TransitVehicleStatus_atStopLine = 5 +} e_TransitVehicleStatus; + +/* TransitVehicleStatus */ +typedef BIT_STRING_t TransitVehicleStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus; +asn_struct_free_f TransitVehicleStatus_free; +asn_struct_print_f TransitVehicleStatus_print; +asn_constr_check_f TransitVehicleStatus_constraint; +ber_type_decoder_f TransitVehicleStatus_decode_ber; +der_type_encoder_f TransitVehicleStatus_encode_der; +xer_type_decoder_f TransitVehicleStatus_decode_xer; +xer_type_encoder_f TransitVehicleStatus_encode_xer; +oer_type_decoder_f TransitVehicleStatus_decode_oer; +oer_type_encoder_f TransitVehicleStatus_encode_oer; +per_type_decoder_f TransitVehicleStatus_decode_uper; +per_type_encoder_f TransitVehicleStatus_encode_uper; +per_type_decoder_f TransitVehicleStatus_decode_aper; +per_type_encoder_f TransitVehicleStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleStatus_H_ */ +#include diff --git a/vcits/mapem/TransmissionAndSpeed.h b/vcits/mapem/TransmissionAndSpeed.h new file mode 100644 index 0000000..3e9bf96 --- /dev/null +++ b/vcits/mapem/TransmissionAndSpeed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TransmissionAndSpeed_H_ +#define _TransmissionAndSpeed_H_ + + +#include + +/* Including external dependencies */ +#include "TransmissionState.h" +#include "Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TransmissionAndSpeed */ +typedef struct TransmissionAndSpeed { + TransmissionState_t transmisson; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TransmissionAndSpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionAndSpeed_H_ */ +#include diff --git a/vcits/mapem/TransmissionInterval.h b/vcits/mapem/TransmissionInterval.h new file mode 100644 index 0000000..a07b77b --- /dev/null +++ b/vcits/mapem/TransmissionInterval.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TransmissionInterval_H_ +#define _TransmissionInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionInterval { + TransmissionInterval_oneMilliSecond = 1, + TransmissionInterval_tenSeconds = 10000 +} e_TransmissionInterval; + +/* TransmissionInterval */ +typedef long TransmissionInterval_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionInterval; +asn_struct_free_f TransmissionInterval_free; +asn_struct_print_f TransmissionInterval_print; +asn_constr_check_f TransmissionInterval_constraint; +ber_type_decoder_f TransmissionInterval_decode_ber; +der_type_encoder_f TransmissionInterval_encode_der; +xer_type_decoder_f TransmissionInterval_decode_xer; +xer_type_encoder_f TransmissionInterval_encode_xer; +oer_type_decoder_f TransmissionInterval_decode_oer; +oer_type_encoder_f TransmissionInterval_encode_oer; +per_type_decoder_f TransmissionInterval_decode_uper; +per_type_encoder_f TransmissionInterval_encode_uper; +per_type_decoder_f TransmissionInterval_decode_aper; +per_type_encoder_f TransmissionInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionInterval_H_ */ +#include diff --git a/vcits/mapem/TransmissionState.h b/vcits/mapem/TransmissionState.h new file mode 100644 index 0000000..9561ebe --- /dev/null +++ b/vcits/mapem/TransmissionState.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TransmissionState_H_ +#define _TransmissionState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionState { + TransmissionState_neutral = 0, + TransmissionState_park = 1, + TransmissionState_forwardGears = 2, + TransmissionState_reverseGears = 3, + TransmissionState_reserved1 = 4, + TransmissionState_reserved2 = 5, + TransmissionState_reserved3 = 6, + TransmissionState_unavailable = 7 +} e_TransmissionState; + +/* TransmissionState */ +typedef long TransmissionState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransmissionState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransmissionState; +extern const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1; +asn_struct_free_f TransmissionState_free; +asn_struct_print_f TransmissionState_print; +asn_constr_check_f TransmissionState_constraint; +ber_type_decoder_f TransmissionState_decode_ber; +der_type_encoder_f TransmissionState_encode_der; +xer_type_decoder_f TransmissionState_decode_xer; +xer_type_encoder_f TransmissionState_encode_xer; +oer_type_decoder_f TransmissionState_decode_oer; +oer_type_encoder_f TransmissionState_encode_oer; +per_type_decoder_f TransmissionState_decode_uper; +per_type_encoder_f TransmissionState_encode_uper; +per_type_decoder_f TransmissionState_decode_aper; +per_type_encoder_f TransmissionState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionState_H_ */ +#include diff --git a/vcits/mapem/TurningRadius.h b/vcits/mapem/TurningRadius.h new file mode 100644 index 0000000..4b8e99a --- /dev/null +++ b/vcits/mapem/TurningRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _TurningRadius_H_ +#define _TurningRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TurningRadius { + TurningRadius_point4Meters = 1, + TurningRadius_unavailable = 255 +} e_TurningRadius; + +/* TurningRadius */ +typedef long TurningRadius_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TurningRadius; +asn_struct_free_f TurningRadius_free; +asn_struct_print_f TurningRadius_print; +asn_constr_check_f TurningRadius_constraint; +ber_type_decoder_f TurningRadius_decode_ber; +der_type_encoder_f TurningRadius_encode_der; +xer_type_decoder_f TurningRadius_decode_xer; +xer_type_encoder_f TurningRadius_encode_xer; +oer_type_decoder_f TurningRadius_decode_oer; +oer_type_encoder_f TurningRadius_encode_oer; +per_type_decoder_f TurningRadius_decode_uper; +per_type_encoder_f TurningRadius_encode_uper; +per_type_decoder_f TurningRadius_decode_aper; +per_type_encoder_f TurningRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TurningRadius_H_ */ +#include diff --git a/vcits/mapem/VDS.h b/vcits/mapem/VDS.h new file mode 100644 index 0000000..288176a --- /dev/null +++ b/vcits/mapem/VDS.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _VDS_H_ +#define _VDS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VDS */ +typedef IA5String_t VDS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VDS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VDS; +asn_struct_free_f VDS_free; +asn_struct_print_f VDS_print; +asn_constr_check_f VDS_constraint; +ber_type_decoder_f VDS_decode_ber; +der_type_encoder_f VDS_encode_der; +xer_type_decoder_f VDS_decode_xer; +xer_type_encoder_f VDS_encode_xer; +oer_type_decoder_f VDS_decode_oer; +oer_type_encoder_f VDS_encode_oer; +per_type_decoder_f VDS_decode_uper; +per_type_encoder_f VDS_encode_uper; +per_type_decoder_f VDS_decode_aper; +per_type_encoder_f VDS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VDS_H_ */ +#include diff --git a/vcits/mapem/ValidityDuration.h b/vcits/mapem/ValidityDuration.h new file mode 100644 index 0000000..321b3b5 --- /dev/null +++ b/vcits/mapem/ValidityDuration.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ValidityDuration_H_ +#define _ValidityDuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ValidityDuration { + ValidityDuration_timeOfDetection = 0, + ValidityDuration_oneSecondAfterDetection = 1 +} e_ValidityDuration; + +/* ValidityDuration */ +typedef long ValidityDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ValidityDuration; +asn_struct_free_f ValidityDuration_free; +asn_struct_print_f ValidityDuration_print; +asn_constr_check_f ValidityDuration_constraint; +ber_type_decoder_f ValidityDuration_decode_ber; +der_type_encoder_f ValidityDuration_encode_der; +xer_type_decoder_f ValidityDuration_decode_xer; +xer_type_encoder_f ValidityDuration_encode_xer; +oer_type_decoder_f ValidityDuration_decode_oer; +oer_type_encoder_f ValidityDuration_encode_oer; +per_type_decoder_f ValidityDuration_decode_uper; +per_type_encoder_f ValidityDuration_encode_uper; +per_type_decoder_f ValidityDuration_decode_aper; +per_type_encoder_f ValidityDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ValidityDuration_H_ */ +#include diff --git a/vcits/mapem/VehicleBreakdownSubCauseCode.h b/vcits/mapem/VehicleBreakdownSubCauseCode.h new file mode 100644 index 0000000..7fff374 --- /dev/null +++ b/vcits/mapem/VehicleBreakdownSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _VehicleBreakdownSubCauseCode_H_ +#define _VehicleBreakdownSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleBreakdownSubCauseCode { + VehicleBreakdownSubCauseCode_unavailable = 0, + VehicleBreakdownSubCauseCode_lackOfFuel = 1, + VehicleBreakdownSubCauseCode_lackOfBatteryPower = 2, + VehicleBreakdownSubCauseCode_engineProblem = 3, + VehicleBreakdownSubCauseCode_transmissionProblem = 4, + VehicleBreakdownSubCauseCode_engineCoolingProblem = 5, + VehicleBreakdownSubCauseCode_brakingSystemProblem = 6, + VehicleBreakdownSubCauseCode_steeringProblem = 7, + VehicleBreakdownSubCauseCode_tyrePuncture = 8, + VehicleBreakdownSubCauseCode_tyrePressureProblem = 9 +} e_VehicleBreakdownSubCauseCode; + +/* VehicleBreakdownSubCauseCode */ +typedef long VehicleBreakdownSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode; +asn_struct_free_f VehicleBreakdownSubCauseCode_free; +asn_struct_print_f VehicleBreakdownSubCauseCode_print; +asn_constr_check_f VehicleBreakdownSubCauseCode_constraint; +ber_type_decoder_f VehicleBreakdownSubCauseCode_decode_ber; +der_type_encoder_f VehicleBreakdownSubCauseCode_encode_der; +xer_type_decoder_f VehicleBreakdownSubCauseCode_decode_xer; +xer_type_encoder_f VehicleBreakdownSubCauseCode_encode_xer; +oer_type_decoder_f VehicleBreakdownSubCauseCode_decode_oer; +oer_type_encoder_f VehicleBreakdownSubCauseCode_encode_oer; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_uper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_uper; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_aper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleBreakdownSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/VehicleHeight.h b/vcits/mapem/VehicleHeight.h new file mode 100644 index 0000000..841cd2f --- /dev/null +++ b/vcits/mapem/VehicleHeight.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _VehicleHeight_H_ +#define _VehicleHeight_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleHeight */ +typedef long VehicleHeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleHeight; +asn_struct_free_f VehicleHeight_free; +asn_struct_print_f VehicleHeight_print; +asn_constr_check_f VehicleHeight_constraint; +ber_type_decoder_f VehicleHeight_decode_ber; +der_type_encoder_f VehicleHeight_encode_der; +xer_type_decoder_f VehicleHeight_decode_xer; +xer_type_encoder_f VehicleHeight_encode_xer; +oer_type_decoder_f VehicleHeight_decode_oer; +oer_type_encoder_f VehicleHeight_encode_oer; +per_type_decoder_f VehicleHeight_decode_uper; +per_type_encoder_f VehicleHeight_encode_uper; +per_type_decoder_f VehicleHeight_decode_aper; +per_type_encoder_f VehicleHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleHeight_H_ */ +#include diff --git a/vcits/mapem/VehicleID.h b/vcits/mapem/VehicleID.h new file mode 100644 index 0000000..f7518f9 --- /dev/null +++ b/vcits/mapem/VehicleID.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _VehicleID_H_ +#define _VehicleID_H_ + + +#include + +/* Including external dependencies */ +#include "TemporaryID.h" +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleID_PR { + VehicleID_PR_NOTHING, /* No components present */ + VehicleID_PR_entityID, + VehicleID_PR_stationID +} VehicleID_PR; + +/* VehicleID */ +typedef struct VehicleID { + VehicleID_PR present; + union VehicleID_u { + TemporaryID_t entityID; + StationID_t stationID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleID; +extern asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleID_1[2]; +extern asn_per_constraints_t asn_PER_type_VehicleID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleID_H_ */ +#include diff --git a/vcits/mapem/VehicleIdentification.h b/vcits/mapem/VehicleIdentification.h new file mode 100644 index 0000000..574962d --- /dev/null +++ b/vcits/mapem/VehicleIdentification.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _VehicleIdentification_H_ +#define _VehicleIdentification_H_ + + +#include + +/* Including external dependencies */ +#include "WMInumber.h" +#include "VDS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleIdentification */ +typedef struct VehicleIdentification { + WMInumber_t *wMInumber; /* OPTIONAL */ + VDS_t *vDS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleIdentification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleIdentification; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleIdentification_H_ */ +#include diff --git a/vcits/mapem/VehicleLength.h b/vcits/mapem/VehicleLength.h new file mode 100644 index 0000000..8a59440 --- /dev/null +++ b/vcits/mapem/VehicleLength.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _VehicleLength_H_ +#define _VehicleLength_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleLengthValue.h" +#include "VehicleLengthConfidenceIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleLength */ +typedef struct VehicleLength { + VehicleLengthValue_t vehicleLengthValue; + VehicleLengthConfidenceIndication_t vehicleLengthConfidenceIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleLength; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLength_H_ */ +#include diff --git a/vcits/mapem/VehicleLengthConfidenceIndication.h b/vcits/mapem/VehicleLengthConfidenceIndication.h new file mode 100644 index 0000000..a1fdb33 --- /dev/null +++ b/vcits/mapem/VehicleLengthConfidenceIndication.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _VehicleLengthConfidenceIndication_H_ +#define _VehicleLengthConfidenceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthConfidenceIndication { + VehicleLengthConfidenceIndication_noTrailerPresent = 0, + VehicleLengthConfidenceIndication_trailerPresentWithKnownLength = 1, + VehicleLengthConfidenceIndication_trailerPresentWithUnknownLength = 2, + VehicleLengthConfidenceIndication_trailerPresenceIsUnknown = 3, + VehicleLengthConfidenceIndication_unavailable = 4 +} e_VehicleLengthConfidenceIndication; + +/* VehicleLengthConfidenceIndication */ +typedef long VehicleLengthConfidenceIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1; +asn_struct_free_f VehicleLengthConfidenceIndication_free; +asn_struct_print_f VehicleLengthConfidenceIndication_print; +asn_constr_check_f VehicleLengthConfidenceIndication_constraint; +ber_type_decoder_f VehicleLengthConfidenceIndication_decode_ber; +der_type_encoder_f VehicleLengthConfidenceIndication_encode_der; +xer_type_decoder_f VehicleLengthConfidenceIndication_decode_xer; +xer_type_encoder_f VehicleLengthConfidenceIndication_encode_xer; +oer_type_decoder_f VehicleLengthConfidenceIndication_decode_oer; +oer_type_encoder_f VehicleLengthConfidenceIndication_encode_oer; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_uper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_uper; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_aper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthConfidenceIndication_H_ */ +#include diff --git a/vcits/mapem/VehicleLengthValue.h b/vcits/mapem/VehicleLengthValue.h new file mode 100644 index 0000000..32af81e --- /dev/null +++ b/vcits/mapem/VehicleLengthValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _VehicleLengthValue_H_ +#define _VehicleLengthValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthValue { + VehicleLengthValue_tenCentimeters = 1, + VehicleLengthValue_outOfRange = 1022, + VehicleLengthValue_unavailable = 1023 +} e_VehicleLengthValue; + +/* VehicleLengthValue */ +typedef long VehicleLengthValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue; +asn_struct_free_f VehicleLengthValue_free; +asn_struct_print_f VehicleLengthValue_print; +asn_constr_check_f VehicleLengthValue_constraint; +ber_type_decoder_f VehicleLengthValue_decode_ber; +der_type_encoder_f VehicleLengthValue_encode_der; +xer_type_decoder_f VehicleLengthValue_decode_xer; +xer_type_encoder_f VehicleLengthValue_encode_xer; +oer_type_decoder_f VehicleLengthValue_decode_oer; +oer_type_encoder_f VehicleLengthValue_encode_oer; +per_type_decoder_f VehicleLengthValue_decode_uper; +per_type_encoder_f VehicleLengthValue_encode_uper; +per_type_decoder_f VehicleLengthValue_decode_aper; +per_type_encoder_f VehicleLengthValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthValue_H_ */ +#include diff --git a/vcits/mapem/VehicleMass.h b/vcits/mapem/VehicleMass.h new file mode 100644 index 0000000..7f8813b --- /dev/null +++ b/vcits/mapem/VehicleMass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _VehicleMass_H_ +#define _VehicleMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleMass { + VehicleMass_hundredKg = 1, + VehicleMass_unavailable = 1024 +} e_VehicleMass; + +/* VehicleMass */ +typedef long VehicleMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleMass; +asn_struct_free_f VehicleMass_free; +asn_struct_print_f VehicleMass_print; +asn_constr_check_f VehicleMass_constraint; +ber_type_decoder_f VehicleMass_decode_ber; +der_type_encoder_f VehicleMass_encode_der; +xer_type_decoder_f VehicleMass_decode_xer; +xer_type_encoder_f VehicleMass_encode_xer; +oer_type_decoder_f VehicleMass_decode_oer; +oer_type_encoder_f VehicleMass_encode_oer; +per_type_decoder_f VehicleMass_decode_uper; +per_type_encoder_f VehicleMass_encode_uper; +per_type_decoder_f VehicleMass_decode_aper; +per_type_encoder_f VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleMass_H_ */ +#include diff --git a/vcits/mapem/VehicleRole.h b/vcits/mapem/VehicleRole.h new file mode 100644 index 0000000..c416588 --- /dev/null +++ b/vcits/mapem/VehicleRole.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _VehicleRole_H_ +#define _VehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleRole { + VehicleRole_default = 0, + VehicleRole_publicTransport = 1, + VehicleRole_specialTransport = 2, + VehicleRole_dangerousGoods = 3, + VehicleRole_roadWork = 4, + VehicleRole_rescue = 5, + VehicleRole_emergency = 6, + VehicleRole_safetyCar = 7, + VehicleRole_agriculture = 8, + VehicleRole_commercial = 9, + VehicleRole_military = 10, + VehicleRole_roadOperator = 11, + VehicleRole_taxi = 12, + VehicleRole_reserved1 = 13, + VehicleRole_reserved2 = 14, + VehicleRole_reserved3 = 15 +} e_VehicleRole; + +/* VehicleRole */ +typedef long VehicleRole_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleRole; +asn_struct_free_f VehicleRole_free; +asn_struct_print_f VehicleRole_print; +asn_constr_check_f VehicleRole_constraint; +ber_type_decoder_f VehicleRole_decode_ber; +der_type_encoder_f VehicleRole_encode_der; +xer_type_decoder_f VehicleRole_decode_xer; +xer_type_encoder_f VehicleRole_encode_xer; +oer_type_decoder_f VehicleRole_decode_oer; +oer_type_encoder_f VehicleRole_encode_oer; +per_type_decoder_f VehicleRole_decode_uper; +per_type_encoder_f VehicleRole_encode_uper; +per_type_decoder_f VehicleRole_decode_aper; +per_type_encoder_f VehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleRole_H_ */ +#include diff --git a/vcits/mapem/VehicleType.h b/vcits/mapem/VehicleType.h new file mode 100644 index 0000000..edb95a5 --- /dev/null +++ b/vcits/mapem/VehicleType.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _VehicleType_H_ +#define _VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleType { + VehicleType_none = 0, + VehicleType_unknown = 1, + VehicleType_special = 2, + VehicleType_moto = 3, + VehicleType_car = 4, + VehicleType_carOther = 5, + VehicleType_bus = 6, + VehicleType_axleCnt2 = 7, + VehicleType_axleCnt3 = 8, + VehicleType_axleCnt4 = 9, + VehicleType_axleCnt4Trailer = 10, + VehicleType_axleCnt5Trailer = 11, + VehicleType_axleCnt6Trailer = 12, + VehicleType_axleCnt5MultiTrailer = 13, + VehicleType_axleCnt6MultiTrailer = 14, + VehicleType_axleCnt7MultiTrailer = 15 + /* + * Enumeration is extensible + */ +} e_VehicleType; + +/* VehicleType */ +typedef long VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleType; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1; +asn_struct_free_f VehicleType_free; +asn_struct_print_f VehicleType_print; +asn_constr_check_f VehicleType_constraint; +ber_type_decoder_f VehicleType_decode_ber; +der_type_encoder_f VehicleType_encode_der; +xer_type_decoder_f VehicleType_decode_xer; +xer_type_encoder_f VehicleType_encode_xer; +oer_type_decoder_f VehicleType_decode_oer; +oer_type_encoder_f VehicleType_encode_oer; +per_type_decoder_f VehicleType_decode_uper; +per_type_encoder_f VehicleType_encode_uper; +per_type_decoder_f VehicleType_decode_aper; +per_type_encoder_f VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleType_H_ */ +#include diff --git a/vcits/mapem/VehicleWidth.h b/vcits/mapem/VehicleWidth.h new file mode 100644 index 0000000..cc2a736 --- /dev/null +++ b/vcits/mapem/VehicleWidth.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _VehicleWidth_H_ +#define _VehicleWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleWidth { + VehicleWidth_tenCentimeters = 1, + VehicleWidth_outOfRange = 61, + VehicleWidth_unavailable = 62 +} e_VehicleWidth; + +/* VehicleWidth */ +typedef long VehicleWidth_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleWidth; +asn_struct_free_f VehicleWidth_free; +asn_struct_print_f VehicleWidth_print; +asn_constr_check_f VehicleWidth_constraint; +ber_type_decoder_f VehicleWidth_decode_ber; +der_type_encoder_f VehicleWidth_encode_der; +xer_type_decoder_f VehicleWidth_decode_xer; +xer_type_encoder_f VehicleWidth_encode_xer; +oer_type_decoder_f VehicleWidth_decode_oer; +oer_type_encoder_f VehicleWidth_encode_oer; +per_type_decoder_f VehicleWidth_decode_uper; +per_type_encoder_f VehicleWidth_encode_uper; +per_type_decoder_f VehicleWidth_decode_aper; +per_type_encoder_f VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleWidth_H_ */ +#include diff --git a/vcits/mapem/Velocity.h b/vcits/mapem/Velocity.h new file mode 100644 index 0000000..d0a7bd1 --- /dev/null +++ b/vcits/mapem/Velocity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _Velocity_H_ +#define _Velocity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Velocity */ +typedef long Velocity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Velocity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Velocity; +asn_struct_free_f Velocity_free; +asn_struct_print_f Velocity_print; +asn_constr_check_f Velocity_constraint; +ber_type_decoder_f Velocity_decode_ber; +der_type_encoder_f Velocity_encode_der; +xer_type_decoder_f Velocity_decode_xer; +xer_type_encoder_f Velocity_encode_xer; +oer_type_decoder_f Velocity_decode_oer; +oer_type_encoder_f Velocity_encode_oer; +per_type_decoder_f Velocity_decode_uper; +per_type_encoder_f Velocity_encode_uper; +per_type_decoder_f Velocity_decode_aper; +per_type_encoder_f Velocity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Velocity_H_ */ +#include diff --git a/vcits/mapem/VerticalAcceleration.h b/vcits/mapem/VerticalAcceleration.h new file mode 100644 index 0000000..fac0d13 --- /dev/null +++ b/vcits/mapem/VerticalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _VerticalAcceleration_H_ +#define _VerticalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "VerticalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VerticalAcceleration */ +typedef struct VerticalAcceleration { + VerticalAccelerationValue_t verticalAccelerationValue; + AccelerationConfidence_t verticalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VerticalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAcceleration_H_ */ +#include diff --git a/vcits/mapem/VerticalAccelerationValue.h b/vcits/mapem/VerticalAccelerationValue.h new file mode 100644 index 0000000..edc58d7 --- /dev/null +++ b/vcits/mapem/VerticalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _VerticalAccelerationValue_H_ +#define _VerticalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VerticalAccelerationValue { + VerticalAccelerationValue_pointOneMeterPerSecSquaredUp = 1, + VerticalAccelerationValue_pointOneMeterPerSecSquaredDown = -1, + VerticalAccelerationValue_unavailable = 161 +} e_VerticalAccelerationValue; + +/* VerticalAccelerationValue */ +typedef long VerticalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue; +asn_struct_free_f VerticalAccelerationValue_free; +asn_struct_print_f VerticalAccelerationValue_print; +asn_constr_check_f VerticalAccelerationValue_constraint; +ber_type_decoder_f VerticalAccelerationValue_decode_ber; +der_type_encoder_f VerticalAccelerationValue_encode_der; +xer_type_decoder_f VerticalAccelerationValue_decode_xer; +xer_type_encoder_f VerticalAccelerationValue_encode_xer; +oer_type_decoder_f VerticalAccelerationValue_decode_oer; +oer_type_encoder_f VerticalAccelerationValue_encode_oer; +per_type_decoder_f VerticalAccelerationValue_decode_uper; +per_type_encoder_f VerticalAccelerationValue_encode_uper; +per_type_decoder_f VerticalAccelerationValue_decode_aper; +per_type_encoder_f VerticalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAccelerationValue_H_ */ +#include diff --git a/vcits/mapem/WMInumber.h b/vcits/mapem/WMInumber.h new file mode 100644 index 0000000..af37cd5 --- /dev/null +++ b/vcits/mapem/WMInumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _WMInumber_H_ +#define _WMInumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WMInumber */ +typedef IA5String_t WMInumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WMInumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WMInumber; +asn_struct_free_f WMInumber_free; +asn_struct_print_f WMInumber_print; +asn_constr_check_f WMInumber_constraint; +ber_type_decoder_f WMInumber_decode_ber; +der_type_encoder_f WMInumber_encode_der; +xer_type_decoder_f WMInumber_decode_xer; +xer_type_encoder_f WMInumber_encode_xer; +oer_type_decoder_f WMInumber_decode_oer; +oer_type_encoder_f WMInumber_encode_oer; +per_type_decoder_f WMInumber_decode_uper; +per_type_encoder_f WMInumber_encode_uper; +per_type_decoder_f WMInumber_decode_aper; +per_type_encoder_f WMInumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WMInumber_H_ */ +#include diff --git a/vcits/mapem/WaitOnStopline.h b/vcits/mapem/WaitOnStopline.h new file mode 100644 index 0000000..64b8e9c --- /dev/null +++ b/vcits/mapem/WaitOnStopline.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _WaitOnStopline_H_ +#define _WaitOnStopline_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WaitOnStopline */ +typedef BOOLEAN_t WaitOnStopline_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WaitOnStopline; +asn_struct_free_f WaitOnStopline_free; +asn_struct_print_f WaitOnStopline_print; +asn_constr_check_f WaitOnStopline_constraint; +ber_type_decoder_f WaitOnStopline_decode_ber; +der_type_encoder_f WaitOnStopline_encode_der; +xer_type_decoder_f WaitOnStopline_decode_xer; +xer_type_encoder_f WaitOnStopline_encode_xer; +oer_type_decoder_f WaitOnStopline_decode_oer; +oer_type_encoder_f WaitOnStopline_encode_oer; +per_type_decoder_f WaitOnStopline_decode_uper; +per_type_encoder_f WaitOnStopline_encode_uper; +per_type_decoder_f WaitOnStopline_decode_aper; +per_type_encoder_f WaitOnStopline_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WaitOnStopline_H_ */ +#include diff --git a/vcits/mapem/WheelBaseVehicle.h b/vcits/mapem/WheelBaseVehicle.h new file mode 100644 index 0000000..8ec0d96 --- /dev/null +++ b/vcits/mapem/WheelBaseVehicle.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _WheelBaseVehicle_H_ +#define _WheelBaseVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WheelBaseVehicle { + WheelBaseVehicle_tenCentimeters = 1, + WheelBaseVehicle_unavailable = 127 +} e_WheelBaseVehicle; + +/* WheelBaseVehicle */ +typedef long WheelBaseVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle; +asn_struct_free_f WheelBaseVehicle_free; +asn_struct_print_f WheelBaseVehicle_print; +asn_constr_check_f WheelBaseVehicle_constraint; +ber_type_decoder_f WheelBaseVehicle_decode_ber; +der_type_encoder_f WheelBaseVehicle_encode_der; +xer_type_decoder_f WheelBaseVehicle_decode_xer; +xer_type_encoder_f WheelBaseVehicle_encode_xer; +oer_type_decoder_f WheelBaseVehicle_decode_oer; +oer_type_encoder_f WheelBaseVehicle_encode_oer; +per_type_decoder_f WheelBaseVehicle_decode_uper; +per_type_encoder_f WheelBaseVehicle_encode_uper; +per_type_decoder_f WheelBaseVehicle_decode_aper; +per_type_encoder_f WheelBaseVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WheelBaseVehicle_H_ */ +#include diff --git a/vcits/mapem/WrongWayDrivingSubCauseCode.h b/vcits/mapem/WrongWayDrivingSubCauseCode.h new file mode 100644 index 0000000..b6c3f7d --- /dev/null +++ b/vcits/mapem/WrongWayDrivingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _WrongWayDrivingSubCauseCode_H_ +#define _WrongWayDrivingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WrongWayDrivingSubCauseCode { + WrongWayDrivingSubCauseCode_unavailable = 0, + WrongWayDrivingSubCauseCode_wrongLane = 1, + WrongWayDrivingSubCauseCode_wrongDirection = 2 +} e_WrongWayDrivingSubCauseCode; + +/* WrongWayDrivingSubCauseCode */ +typedef long WrongWayDrivingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode; +asn_struct_free_f WrongWayDrivingSubCauseCode_free; +asn_struct_print_f WrongWayDrivingSubCauseCode_print; +asn_constr_check_f WrongWayDrivingSubCauseCode_constraint; +ber_type_decoder_f WrongWayDrivingSubCauseCode_decode_ber; +der_type_encoder_f WrongWayDrivingSubCauseCode_encode_der; +xer_type_decoder_f WrongWayDrivingSubCauseCode_decode_xer; +xer_type_encoder_f WrongWayDrivingSubCauseCode_encode_xer; +oer_type_decoder_f WrongWayDrivingSubCauseCode_decode_oer; +oer_type_encoder_f WrongWayDrivingSubCauseCode_encode_oer; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_uper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_uper; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_aper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WrongWayDrivingSubCauseCode_H_ */ +#include diff --git a/vcits/mapem/YawRate.h b/vcits/mapem/YawRate.h new file mode 100644 index 0000000..db6e531 --- /dev/null +++ b/vcits/mapem/YawRate.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _YawRate_H_ +#define _YawRate_H_ + + +#include + +/* Including external dependencies */ +#include "YawRateValue.h" +#include "YawRateConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* YawRate */ +typedef struct YawRate { + YawRateValue_t yawRateValue; + YawRateConfidence_t yawRateConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} YawRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_YawRate; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRate_H_ */ +#include diff --git a/vcits/mapem/YawRateConfidence.h b/vcits/mapem/YawRateConfidence.h new file mode 100644 index 0000000..888ff25 --- /dev/null +++ b/vcits/mapem/YawRateConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _YawRateConfidence_H_ +#define _YawRateConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateConfidence { + YawRateConfidence_degSec_000_01 = 0, + YawRateConfidence_degSec_000_05 = 1, + YawRateConfidence_degSec_000_10 = 2, + YawRateConfidence_degSec_001_00 = 3, + YawRateConfidence_degSec_005_00 = 4, + YawRateConfidence_degSec_010_00 = 5, + YawRateConfidence_degSec_100_00 = 6, + YawRateConfidence_outOfRange = 7, + YawRateConfidence_unavailable = 8 +} e_YawRateConfidence; + +/* YawRateConfidence */ +typedef long YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1; +asn_struct_free_f YawRateConfidence_free; +asn_struct_print_f YawRateConfidence_print; +asn_constr_check_f YawRateConfidence_constraint; +ber_type_decoder_f YawRateConfidence_decode_ber; +der_type_encoder_f YawRateConfidence_encode_der; +xer_type_decoder_f YawRateConfidence_decode_xer; +xer_type_encoder_f YawRateConfidence_encode_xer; +oer_type_decoder_f YawRateConfidence_decode_oer; +oer_type_encoder_f YawRateConfidence_encode_oer; +per_type_decoder_f YawRateConfidence_decode_uper; +per_type_encoder_f YawRateConfidence_encode_uper; +per_type_decoder_f YawRateConfidence_decode_aper; +per_type_encoder_f YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateConfidence_H_ */ +#include diff --git a/vcits/mapem/YawRateValue.h b/vcits/mapem/YawRateValue.h new file mode 100644 index 0000000..c62ec9f --- /dev/null +++ b/vcits/mapem/YawRateValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _YawRateValue_H_ +#define _YawRateValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateValue { + YawRateValue_straight = 0, + YawRateValue_degSec_000_01ToRight = -1, + YawRateValue_degSec_000_01ToLeft = 1, + YawRateValue_unavailable = 32767 +} e_YawRateValue; + +/* YawRateValue */ +typedef long YawRateValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateValue; +asn_struct_free_f YawRateValue_free; +asn_struct_print_f YawRateValue_print; +asn_constr_check_f YawRateValue_constraint; +ber_type_decoder_f YawRateValue_decode_ber; +der_type_encoder_f YawRateValue_encode_der; +xer_type_decoder_f YawRateValue_decode_xer; +xer_type_encoder_f YawRateValue_encode_xer; +oer_type_decoder_f YawRateValue_decode_oer; +oer_type_encoder_f YawRateValue_encode_oer; +per_type_decoder_f YawRateValue_decode_uper; +per_type_encoder_f YawRateValue_encode_uper; +per_type_decoder_f YawRateValue_decode_aper; +per_type_encoder_f YawRateValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateValue_H_ */ +#include diff --git a/vcits/mapem/ZoneLength.h b/vcits/mapem/ZoneLength.h new file mode 100644 index 0000000..bb85332 --- /dev/null +++ b/vcits/mapem/ZoneLength.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#ifndef _ZoneLength_H_ +#define _ZoneLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ZoneLength */ +typedef long ZoneLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ZoneLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ZoneLength; +asn_struct_free_f ZoneLength_free; +asn_struct_print_f ZoneLength_print; +asn_constr_check_f ZoneLength_constraint; +ber_type_decoder_f ZoneLength_decode_ber; +der_type_encoder_f ZoneLength_encode_der; +xer_type_decoder_f ZoneLength_decode_xer; +xer_type_encoder_f ZoneLength_encode_xer; +oer_type_decoder_f ZoneLength_decode_oer; +oer_type_encoder_f ZoneLength_encode_oer; +per_type_decoder_f ZoneLength_decode_uper; +per_type_encoder_f ZoneLength_encode_uper; +per_type_decoder_f ZoneLength_decode_aper; +per_type_encoder_f ZoneLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ZoneLength_H_ */ +#include diff --git a/vcits/mapem/asn_constant.h b/vcits/mapem/asn_constant.h new file mode 100644 index 0000000..9214f13 --- /dev/null +++ b/vcits/mapem/asn_constant.h @@ -0,0 +1,265 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_StationID (0) +#define max_val_StationID (4294967295) +#define min_val_Longitude (-1800000000) +#define max_val_Longitude (1800000001) +#define min_val_Latitude (-900000000) +#define max_val_Latitude (900000001) +#define min_val_AltitudeValue (-100000) +#define max_val_AltitudeValue (800001) +#define min_val_DeltaLongitude (-131071) +#define max_val_DeltaLongitude (131072) +#define min_val_DeltaLatitude (-131071) +#define max_val_DeltaLatitude (131072) +#define min_val_DeltaAltitude (-12700) +#define max_val_DeltaAltitude (12800) +#define min_val_PtActivationType (0) +#define max_val_PtActivationType (255) +#define min_val_SemiAxisLength (0) +#define max_val_SemiAxisLength (4095) +#define min_val_CauseCodeType (0) +#define max_val_CauseCodeType (255) +#define min_val_SubCauseCodeType (0) +#define max_val_SubCauseCodeType (255) +#define min_val_TrafficConditionSubCauseCode (0) +#define max_val_TrafficConditionSubCauseCode (255) +#define min_val_AccidentSubCauseCode (0) +#define max_val_AccidentSubCauseCode (255) +#define min_val_RoadworksSubCauseCode (0) +#define max_val_RoadworksSubCauseCode (255) +#define min_val_HumanPresenceOnTheRoadSubCauseCode (0) +#define max_val_HumanPresenceOnTheRoadSubCauseCode (255) +#define min_val_WrongWayDrivingSubCauseCode (0) +#define max_val_WrongWayDrivingSubCauseCode (255) +#define min_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_AdhesionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_AdhesionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_VisibilitySubCauseCode (0) +#define max_val_AdverseWeatherCondition_VisibilitySubCauseCode (255) +#define min_val_AdverseWeatherCondition_PrecipitationSubCauseCode (0) +#define max_val_AdverseWeatherCondition_PrecipitationSubCauseCode (255) +#define min_val_SlowVehicleSubCauseCode (0) +#define max_val_SlowVehicleSubCauseCode (255) +#define min_val_StationaryVehicleSubCauseCode (0) +#define max_val_StationaryVehicleSubCauseCode (255) +#define min_val_HumanProblemSubCauseCode (0) +#define max_val_HumanProblemSubCauseCode (255) +#define min_val_EmergencyVehicleApproachingSubCauseCode (0) +#define max_val_EmergencyVehicleApproachingSubCauseCode (255) +#define min_val_HazardousLocation_DangerousCurveSubCauseCode (0) +#define max_val_HazardousLocation_DangerousCurveSubCauseCode (255) +#define min_val_HazardousLocation_SurfaceConditionSubCauseCode (0) +#define max_val_HazardousLocation_SurfaceConditionSubCauseCode (255) +#define min_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (255) +#define min_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (255) +#define min_val_CollisionRiskSubCauseCode (0) +#define max_val_CollisionRiskSubCauseCode (255) +#define min_val_SignalViolationSubCauseCode (0) +#define max_val_SignalViolationSubCauseCode (255) +#define min_val_RescueAndRecoveryWorkInProgressSubCauseCode (0) +#define max_val_RescueAndRecoveryWorkInProgressSubCauseCode (255) +#define min_val_DangerousEndOfQueueSubCauseCode (0) +#define max_val_DangerousEndOfQueueSubCauseCode (255) +#define min_val_DangerousSituationSubCauseCode (0) +#define max_val_DangerousSituationSubCauseCode (255) +#define min_val_VehicleBreakdownSubCauseCode (0) +#define max_val_VehicleBreakdownSubCauseCode (255) +#define min_val_PostCrashSubCauseCode (0) +#define max_val_PostCrashSubCauseCode (255) +#define min_val_CurvatureValue (-1023) +#define max_val_CurvatureValue (1023) +#define min_val_HeadingValue (0) +#define max_val_HeadingValue (3601) +#define min_val_HeadingConfidence (1) +#define max_val_HeadingConfidence (127) +#define min_val_LanePosition (-1) +#define max_val_LanePosition (14) +#define min_val_PerformanceClass (0) +#define max_val_PerformanceClass (7) +#define min_val_SpeedValue (0) +#define max_val_SpeedValue (16383) +#define min_val_SpeedConfidence (1) +#define max_val_SpeedConfidence (127) +#define min_val_VehicleMass (1) +#define max_val_VehicleMass (1024) +#define min_val_LongitudinalAccelerationValue (-160) +#define max_val_LongitudinalAccelerationValue (161) +#define min_val_AccelerationConfidence (0) +#define max_val_AccelerationConfidence (102) +#define min_val_LateralAccelerationValue (-160) +#define max_val_LateralAccelerationValue (161) +#define min_val_VerticalAccelerationValue (-160) +#define max_val_VerticalAccelerationValue (161) +#define min_val_StationType (0) +#define max_val_StationType (255) +#define min_val_HeightLonCarr (1) +#define max_val_HeightLonCarr (100) +#define min_val_PosLonCarr (1) +#define max_val_PosLonCarr (127) +#define min_val_PosPillar (1) +#define max_val_PosPillar (30) +#define min_val_PosCentMass (1) +#define max_val_PosCentMass (63) +#define min_val_SpeedLimit (1) +#define max_val_SpeedLimit (255) +#define min_val_Temperature (-60) +#define max_val_Temperature (67) +#define min_val_WheelBaseVehicle (1) +#define max_val_WheelBaseVehicle (127) +#define min_val_TurningRadius (1) +#define max_val_TurningRadius (255) +#define min_val_PosFrontAx (1) +#define max_val_PosFrontAx (20) +#define min_val_VehicleLengthValue (1) +#define max_val_VehicleLengthValue (1023) +#define min_val_VehicleWidth (1) +#define max_val_VehicleWidth (62) +#define min_val_InformationQuality (0) +#define max_val_InformationQuality (7) +#define min_val_SteeringWheelAngleValue (-511) +#define max_val_SteeringWheelAngleValue (512) +#define min_val_SteeringWheelAngleConfidence (1) +#define max_val_SteeringWheelAngleConfidence (127) +#define min_val_TimestampIts (0) +#define max_val_TimestampIts (4398046511103) +#define min_val_YawRateValue (-32766) +#define max_val_YawRateValue (32767) +#define min_val_TransmissionInterval (1) +#define max_val_TransmissionInterval (10000) +#define min_val_ValidityDuration (0) +#define max_val_ValidityDuration (86400) +#define min_val_NumberOfOccupants (0) +#define max_val_NumberOfOccupants (127) +#define min_val_SequenceNumber (0) +#define max_val_SequenceNumber (65535) +#define min_val_ProtectedZoneID (0) +#define max_val_ProtectedZoneID (134217727) +#define min_val_Iso3833VehicleType (0) +#define max_val_Iso3833VehicleType (255) +#define min_val_TimeReference (0) +#define max_val_TimeReference (60000) +#define min_val_TimeMark (0) +#define max_val_TimeMark (36001) +#define min_val_Angle (0) +#define max_val_Angle (28800) +#define min_val_ApproachID (0) +#define max_val_ApproachID (15) +#define min_val_DDay (0) +#define max_val_DDay (31) +#define min_val_DeltaAngle (-150) +#define max_val_DeltaAngle (150) +#define min_val_DeltaTime (-122) +#define max_val_DeltaTime (121) +#define min_val_DHour (0) +#define max_val_DHour (31) +#define min_val_DMinute (0) +#define max_val_DMinute (60) +#define min_val_DMonth (0) +#define max_val_DMonth (12) +#define min_val_DOffset (-840) +#define max_val_DOffset (840) +#define min_val_DrivenLineOffsetLg (-32767) +#define max_val_DrivenLineOffsetLg (32767) +#define min_val_DrivenLineOffsetSm (-2047) +#define max_val_DrivenLineOffsetSm (2047) +#define min_val_DSecond (0) +#define max_val_DSecond (65535) +#define min_val_DSRCmsgID (0) +#define max_val_DSRCmsgID (32767) +#define min_val_DYear (0) +#define max_val_DYear (4095) +#define min_val_Elevation (-4096) +#define max_val_Elevation (61439) +#define min_val_FuelType (0) +#define max_val_FuelType (15) +#define min_val_HeadingDSRC (0) +#define max_val_HeadingDSRC (28800) +#define min_val_IntersectionID (0) +#define max_val_IntersectionID (65535) +#define min_val_LaneConnectionID (0) +#define max_val_LaneConnectionID (255) +#define min_val_LaneID (0) +#define max_val_LaneID (255) +#define min_val_LayerID (0) +#define max_val_LayerID (100) +#define min_val_LaneWidth (0) +#define max_val_LaneWidth (32767) +#define min_val_MergeDivergeNodeAngle (-180) +#define max_val_MergeDivergeNodeAngle (180) +#define min_val_MinuteOfTheYear (0) +#define max_val_MinuteOfTheYear (527040) +#define min_val_MsgCount (0) +#define max_val_MsgCount (127) +#define min_val_Offset_B09 (-256) +#define max_val_Offset_B09 (255) +#define min_val_Offset_B10 (-512) +#define max_val_Offset_B10 (511) +#define min_val_Offset_B11 (-1024) +#define max_val_Offset_B11 (1023) +#define min_val_Offset_B12 (-2048) +#define max_val_Offset_B12 (2047) +#define min_val_Offset_B13 (-4096) +#define max_val_Offset_B13 (4095) +#define min_val_Offset_B14 (-8192) +#define max_val_Offset_B14 (8191) +#define min_val_Offset_B16 (-32768) +#define max_val_Offset_B16 (32767) +#define min_val_RegionId (0) +#define max_val_RegionId (255) +#define min_val_RequestID (0) +#define max_val_RequestID (255) +#define min_val_RestrictionClassID (0) +#define max_val_RestrictionClassID (255) +#define min_val_RoadRegulatorID (0) +#define max_val_RoadRegulatorID (65535) +#define min_val_RoadSegmentID (0) +#define max_val_RoadSegmentID (65535) +#define min_val_RoadwayCrownAngle (-128) +#define max_val_RoadwayCrownAngle (127) +#define min_val_Scale_B12 (-2048) +#define max_val_Scale_B12 (2047) +#define min_val_SignalGroupID (0) +#define max_val_SignalGroupID (255) +#define min_val_SemiMajorAxisAccuracy (0) +#define max_val_SemiMajorAxisAccuracy (255) +#define min_val_SemiMajorAxisOrientation (0) +#define max_val_SemiMajorAxisOrientation (65535) +#define min_val_SemiMinorAxisAccuracy (0) +#define max_val_SemiMinorAxisAccuracy (255) +#define min_val_SpeedAdvice (0) +#define max_val_SpeedAdvice (500) +#define min_val_TimeIntervalConfidence (0) +#define max_val_TimeIntervalConfidence (15) +#define min_val_VehicleHeight (0) +#define max_val_VehicleHeight (127) +#define min_val_Velocity (0) +#define max_val_Velocity (8191) +#define min_val_ZoneLength (0) +#define max_val_ZoneLength (10000) +#define min_val_IssuerIdentifier (0) +#define max_val_IssuerIdentifier (16383) +#define min_val_ManufacturerIdentifier (0) +#define max_val_ManufacturerIdentifier (65535) +#define min_val_AlphabetIndicator (0) +#define max_val_AlphabetIndicator (63) +#define version (1) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/vcits/mapem/src/AccelerationConfidence.c b/vcits/mapem/src/AccelerationConfidence.c new file mode 100644 index 0000000..33dc925 --- /dev/null +++ b/vcits/mapem/src/AccelerationConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AccelerationConfidence.h" + +int +AccelerationConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 102)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..102) */, + -1}; +asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 102 } /* (0..102) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeInteger, + asn_DEF_AccelerationConfidence_tags_1, + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationConfidence_constr_1, &asn_PER_type_AccelerationConfidence_constr_1, AccelerationConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/AccelerationControl.c b/vcits/mapem/src/AccelerationControl.c new file mode 100644 index 0000000..8767262 --- /dev/null +++ b/vcits/mapem/src/AccelerationControl.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AccelerationControl.h" + +int +AccelerationControl_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationControl = { + "AccelerationControl", + "AccelerationControl", + &asn_OP_BIT_STRING, + asn_DEF_AccelerationControl_tags_1, + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + asn_DEF_AccelerationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationControl_constr_1, &asn_PER_type_AccelerationControl_constr_1, AccelerationControl_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/AccidentSubCauseCode.c b/vcits/mapem/src/AccidentSubCauseCode.c new file mode 100644 index 0000000..be465b6 --- /dev/null +++ b/vcits/mapem/src/AccidentSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AccidentSubCauseCode.h" + +int +AccidentSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccidentSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode = { + "AccidentSubCauseCode", + "AccidentSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AccidentSubCauseCode_tags_1, + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AccidentSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AccidentSubCauseCode_constr_1, &asn_PER_type_AccidentSubCauseCode_constr_1, AccidentSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/ActionID.c b/vcits/mapem/src/ActionID.c new file mode 100644 index 0000000..f37efcc --- /dev/null +++ b/vcits/mapem/src/ActionID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ActionID.h" + +static asn_TYPE_member_t asn_MBR_ActionID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ActionID, originatingStationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "originatingStationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ActionID, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SequenceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ActionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ActionID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingStationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sequenceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ActionID_specs_1 = { + sizeof(struct ActionID), + offsetof(struct ActionID, _asn_ctx), + asn_MAP_ActionID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ActionID = { + "ActionID", + "ActionID", + &asn_OP_SEQUENCE, + asn_DEF_ActionID_tags_1, + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + asn_DEF_ActionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ActionID_1, + 2, /* Elements count */ + &asn_SPC_ActionID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c b/vcits/mapem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c new file mode 100644 index 0000000..a57c6fd --- /dev/null +++ b/vcits/mapem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AdverseWeatherCondition-AdhesionSubCauseCode.h" + +int +AdverseWeatherCondition_AdhesionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode = { + "AdverseWeatherCondition-AdhesionSubCauseCode", + "AdverseWeatherCondition-AdhesionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, AdverseWeatherCondition_AdhesionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c b/vcits/mapem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c new file mode 100644 index 0000000..6229f3f --- /dev/null +++ b/vcits/mapem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" + +int +AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = { + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c b/vcits/mapem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c new file mode 100644 index 0000000..70dc660 --- /dev/null +++ b/vcits/mapem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AdverseWeatherCondition-PrecipitationSubCauseCode.h" + +int +AdverseWeatherCondition_PrecipitationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode = { + "AdverseWeatherCondition-PrecipitationSubCauseCode", + "AdverseWeatherCondition-PrecipitationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, AdverseWeatherCondition_PrecipitationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c b/vcits/mapem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c new file mode 100644 index 0000000..0e58fb8 --- /dev/null +++ b/vcits/mapem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AdverseWeatherCondition-VisibilitySubCauseCode.h" + +int +AdverseWeatherCondition_VisibilitySubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode = { + "AdverseWeatherCondition-VisibilitySubCauseCode", + "AdverseWeatherCondition-VisibilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, AdverseWeatherCondition_VisibilitySubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/AdvisorySpeed.c b/vcits/mapem/src/AdvisorySpeed.c new file mode 100644 index 0000000..9231b0e --- /dev/null +++ b/vcits/mapem/src/AdvisorySpeed.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AdvisorySpeed.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_AdvisorySpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct AdvisorySpeed__regional), + offsetof(struct AdvisorySpeed__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AdvisorySpeed, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 5, offsetof(struct AdvisorySpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedAdvice, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct AdvisorySpeed, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 3, offsetof(struct AdvisorySpeed, distance), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "distance" + }, + { ATF_POINTER, 2, offsetof(struct AdvisorySpeed, Class), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "class" + }, + { ATF_POINTER, 1, offsetof(struct AdvisorySpeed, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_AdvisorySpeed_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AdvisorySpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* distance */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* class */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1 = { + sizeof(struct AdvisorySpeed), + offsetof(struct AdvisorySpeed, _asn_ctx), + asn_MAP_AdvisorySpeed_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_AdvisorySpeed_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed = { + "AdvisorySpeed", + "AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_AdvisorySpeed_tags_1, + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AdvisorySpeed_1, + 6, /* Elements count */ + &asn_SPC_AdvisorySpeed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/AdvisorySpeedList.c b/vcits/mapem/src/AdvisorySpeedList.c new file mode 100644 index 0000000..8257fcb --- /dev/null +++ b/vcits/mapem/src/AdvisorySpeedList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AdvisorySpeedList.h" + +#include "AdvisorySpeed.h" +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AdvisorySpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1 = { + sizeof(struct AdvisorySpeedList), + offsetof(struct AdvisorySpeedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList = { + "AdvisorySpeedList", + "AdvisorySpeedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_AdvisorySpeedList_tags_1, + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedList_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + { &asn_OER_type_AdvisorySpeedList_constr_1, &asn_PER_type_AdvisorySpeedList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AdvisorySpeedList_1, + 1, /* Single element */ + &asn_SPC_AdvisorySpeedList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/AdvisorySpeedType.c b/vcits/mapem/src/AdvisorySpeedType.c new file mode 100644 index 0000000..7d73c7f --- /dev/null +++ b/vcits/mapem/src/AdvisorySpeedType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AdvisorySpeedType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AdvisorySpeedType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 9, "greenwave" }, + { 2, 8, "ecoDrive" }, + { 3, 7, "transit" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_AdvisorySpeedType_enum2value_1[] = { + 2, /* ecoDrive(2) */ + 1, /* greenwave(1) */ + 0, /* none(0) */ + 3 /* transit(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1 = { + asn_MAP_AdvisorySpeedType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AdvisorySpeedType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType = { + "AdvisorySpeedType", + "AdvisorySpeedType", + &asn_OP_NativeEnumerated, + asn_DEF_AdvisorySpeedType_tags_1, + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedType_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + { &asn_OER_type_AdvisorySpeedType_constr_1, &asn_PER_type_AdvisorySpeedType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AdvisorySpeedType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/AllowedManeuvers.c b/vcits/mapem/src/AllowedManeuvers.c new file mode 100644 index 0000000..dfa77f5 --- /dev/null +++ b/vcits/mapem/src/AllowedManeuvers.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AllowedManeuvers.h" + +int +AllowedManeuvers_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { 0, 0 }, + 12 /* (SIZE(12..12)) */}; +asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 12, 12 } /* (SIZE(12..12)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AllowedManeuvers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers = { + "AllowedManeuvers", + "AllowedManeuvers", + &asn_OP_BIT_STRING, + asn_DEF_AllowedManeuvers_tags_1, + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + asn_DEF_AllowedManeuvers_tags_1, /* Same as above */ + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + { &asn_OER_type_AllowedManeuvers_constr_1, &asn_PER_type_AllowedManeuvers_constr_1, AllowedManeuvers_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/AlphabetIndicator.c b/vcits/mapem/src/AlphabetIndicator.c new file mode 100644 index 0000000..395c3f6 --- /dev/null +++ b/vcits/mapem/src/AlphabetIndicator.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AlphabetIndicator.h" + +int +AlphabetIndicator_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AlphabetIndicator_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +asn_per_constraints_t asn_PER_type_AlphabetIndicator_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AlphabetIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AlphabetIndicator = { + "AlphabetIndicator", + "AlphabetIndicator", + &asn_OP_NativeInteger, + asn_DEF_AlphabetIndicator_tags_1, + sizeof(asn_DEF_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_AlphabetIndicator_tags_1[0]), /* 1 */ + asn_DEF_AlphabetIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_AlphabetIndicator_tags_1[0]), /* 1 */ + { &asn_OER_type_AlphabetIndicator_constr_1, &asn_PER_type_AlphabetIndicator_constr_1, AlphabetIndicator_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Altitude.c b/vcits/mapem/src/Altitude.c new file mode 100644 index 0000000..c6a67e3 --- /dev/null +++ b/vcits/mapem/src/Altitude.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Altitude.h" + +asn_TYPE_member_t asn_MBR_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Altitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altitudeValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altitudeConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1 = { + sizeof(struct Altitude), + offsetof(struct Altitude, _asn_ctx), + asn_MAP_Altitude_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_Altitude_tags_1, + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + asn_DEF_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Altitude_1, + 2, /* Elements count */ + &asn_SPC_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/AltitudeConfidence.c b/vcits/mapem/src/AltitudeConfidence.c new file mode 100644 index 0000000..08df033 --- /dev/null +++ b/vcits/mapem/src/AltitudeConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AltitudeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AltitudeConfidence_value2enum_1[] = { + { 0, 10, "alt-000-01" }, + { 1, 10, "alt-000-02" }, + { 2, 10, "alt-000-05" }, + { 3, 10, "alt-000-10" }, + { 4, 10, "alt-000-20" }, + { 5, 10, "alt-000-50" }, + { 6, 10, "alt-001-00" }, + { 7, 10, "alt-002-00" }, + { 8, 10, "alt-005-00" }, + { 9, 10, "alt-010-00" }, + { 10, 10, "alt-020-00" }, + { 11, 10, "alt-050-00" }, + { 12, 10, "alt-100-00" }, + { 13, 10, "alt-200-00" }, + { 14, 10, "outOfRange" }, + { 15, 11, "unavailable" } +}; +static const unsigned int asn_MAP_AltitudeConfidence_enum2value_1[] = { + 0, /* alt-000-01(0) */ + 1, /* alt-000-02(1) */ + 2, /* alt-000-05(2) */ + 3, /* alt-000-10(3) */ + 4, /* alt-000-20(4) */ + 5, /* alt-000-50(5) */ + 6, /* alt-001-00(6) */ + 7, /* alt-002-00(7) */ + 8, /* alt-005-00(8) */ + 9, /* alt-010-00(9) */ + 10, /* alt-020-00(10) */ + 11, /* alt-050-00(11) */ + 12, /* alt-100-00(12) */ + 13, /* alt-200-00(13) */ + 14, /* outOfRange(14) */ + 15 /* unavailable(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1 = { + asn_MAP_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AltitudeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_AltitudeConfidence_tags_1, + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeConfidence_constr_1, &asn_PER_type_AltitudeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/AltitudeValue.c b/vcits/mapem/src/AltitudeValue.c new file mode 100644 index 0000000..fdfcead --- /dev/null +++ b/vcits/mapem/src/AltitudeValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AltitudeValue.h" + +int +AltitudeValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -100000 && value <= 800001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-100000..800001) */, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, -100000, 800001 } /* (-100000..800001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_AltitudeValue_tags_1, + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeValue_constr_1, &asn_PER_type_AltitudeValue_constr_1, AltitudeValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Angle.c b/vcits/mapem/src/Angle.c new file mode 100644 index 0000000..3847e6e --- /dev/null +++ b/vcits/mapem/src/Angle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Angle.h" + +int +Angle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 28800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Angle_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +asn_per_constraints_t asn_PER_type_Angle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Angle = { + "Angle", + "Angle", + &asn_OP_NativeInteger, + asn_DEF_Angle_tags_1, + sizeof(asn_DEF_Angle_tags_1) + /sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */ + asn_DEF_Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_Angle_tags_1) + /sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */ + { &asn_OER_type_Angle_constr_1, &asn_PER_type_Angle_constr_1, Angle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/AntennaOffsetSet.c b/vcits/mapem/src/AntennaOffsetSet.c new file mode 100644 index 0000000..aeaba87 --- /dev/null +++ b/vcits/mapem/src/AntennaOffsetSet.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AntennaOffsetSet.h" + +asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetX), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetX" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetY), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B09, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetY" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetZ), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetZ" + }, +}; +static const ber_tlv_tag_t asn_DEF_AntennaOffsetSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AntennaOffsetSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* antOffsetX */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* antOffsetY */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* antOffsetZ */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1 = { + sizeof(struct AntennaOffsetSet), + offsetof(struct AntennaOffsetSet, _asn_ctx), + asn_MAP_AntennaOffsetSet_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet = { + "AntennaOffsetSet", + "AntennaOffsetSet", + &asn_OP_SEQUENCE, + asn_DEF_AntennaOffsetSet_tags_1, + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + asn_DEF_AntennaOffsetSet_tags_1, /* Same as above */ + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AntennaOffsetSet_1, + 3, /* Elements count */ + &asn_SPC_AntennaOffsetSet_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ApproachID.c b/vcits/mapem/src/ApproachID.c new file mode 100644 index 0000000..4b4ea05 --- /dev/null +++ b/vcits/mapem/src/ApproachID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ApproachID.h" + +int +ApproachID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ApproachID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_ApproachID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ApproachID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ApproachID = { + "ApproachID", + "ApproachID", + &asn_OP_NativeInteger, + asn_DEF_ApproachID_tags_1, + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + asn_DEF_ApproachID_tags_1, /* Same as above */ + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + { &asn_OER_type_ApproachID_constr_1, &asn_PER_type_ApproachID_constr_1, ApproachID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/AviEriDateTime.c b/vcits/mapem/src/AviEriDateTime.c new file mode 100644 index 0000000..9b354ce --- /dev/null +++ b/vcits/mapem/src/AviEriDateTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "AviEriDateTime.h" + +int +AviEriDateTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AviEriDateTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_AviEriDateTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AviEriDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AviEriDateTime = { + "AviEriDateTime", + "AviEriDateTime", + &asn_OP_OCTET_STRING, + asn_DEF_AviEriDateTime_tags_1, + sizeof(asn_DEF_AviEriDateTime_tags_1) + /sizeof(asn_DEF_AviEriDateTime_tags_1[0]), /* 1 */ + asn_DEF_AviEriDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_AviEriDateTime_tags_1) + /sizeof(asn_DEF_AviEriDateTime_tags_1[0]), /* 1 */ + { &asn_OER_type_AviEriDateTime_constr_1, &asn_PER_type_AviEriDateTime_constr_1, AviEriDateTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/BasicVehicleRole.c b/vcits/mapem/src/BasicVehicleRole.c new file mode 100644 index 0000000..4853491 --- /dev/null +++ b/vcits/mapem/src/BasicVehicleRole.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "BasicVehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 22 } /* (0..22,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BasicVehicleRole_value2enum_1[] = { + { 0, 12, "basicVehicle" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 10, "roadRescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 12, "none-unknown" }, + { 9, 5, "truck" }, + { 10, 10, "motorcycle" }, + { 11, 14, "roadSideSource" }, + { 12, 6, "police" }, + { 13, 4, "fire" }, + { 14, 9, "ambulance" }, + { 15, 3, "dot" }, + { 16, 7, "transit" }, + { 17, 10, "slowMoving" }, + { 18, 7, "stopNgo" }, + { 19, 7, "cyclist" }, + { 20, 10, "pedestrian" }, + { 21, 12, "nonMotorized" }, + { 22, 8, "military" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BasicVehicleRole_enum2value_1[] = { + 14, /* ambulance(14) */ + 0, /* basicVehicle(0) */ + 19, /* cyclist(19) */ + 3, /* dangerousGoods(3) */ + 15, /* dot(15) */ + 6, /* emergency(6) */ + 13, /* fire(13) */ + 22, /* military(22) */ + 10, /* motorcycle(10) */ + 21, /* nonMotorized(21) */ + 8, /* none-unknown(8) */ + 20, /* pedestrian(20) */ + 12, /* police(12) */ + 1, /* publicTransport(1) */ + 5, /* roadRescue(5) */ + 11, /* roadSideSource(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 17, /* slowMoving(17) */ + 2, /* specialTransport(2) */ + 18, /* stopNgo(18) */ + 16, /* transit(16) */ + 9 /* truck(9) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1 = { + asn_MAP_BasicVehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BasicVehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 23, /* Number of elements in the maps */ + 24, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BasicVehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole = { + "BasicVehicleRole", + "BasicVehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_BasicVehicleRole_tags_1, + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + asn_DEF_BasicVehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_BasicVehicleRole_constr_1, &asn_PER_type_BasicVehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BasicVehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/BatteryStatus.c b/vcits/mapem/src/BatteryStatus.c new file mode 100644 index 0000000..c7bbd4b --- /dev/null +++ b/vcits/mapem/src/BatteryStatus.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "BatteryStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BatteryStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BatteryStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BatteryStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "critical" }, + { 2, 3, "low" }, + { 3, 4, "good" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BatteryStatus_enum2value_1[] = { + 1, /* critical(1) */ + 3, /* good(3) */ + 2, /* low(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BatteryStatus_specs_1 = { + asn_MAP_BatteryStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BatteryStatus_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BatteryStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BatteryStatus = { + "BatteryStatus", + "BatteryStatus", + &asn_OP_NativeEnumerated, + asn_DEF_BatteryStatus_tags_1, + sizeof(asn_DEF_BatteryStatus_tags_1) + /sizeof(asn_DEF_BatteryStatus_tags_1[0]), /* 1 */ + asn_DEF_BatteryStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_BatteryStatus_tags_1) + /sizeof(asn_DEF_BatteryStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_BatteryStatus_constr_1, &asn_PER_type_BatteryStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BatteryStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CS1.c b/vcits/mapem/src/CS1.c new file mode 100644 index 0000000..6258049 --- /dev/null +++ b/vcits/mapem/src/CS1.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CS1.h" + +static asn_TYPE_member_t asn_MBR_CS1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS1, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS1, issuerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IssuerIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "issuerIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS1, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* issuerIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* serviceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS1_specs_1 = { + sizeof(struct CS1), + offsetof(struct CS1, _asn_ctx), + asn_MAP_CS1_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS1 = { + "CS1", + "CS1", + &asn_OP_SEQUENCE, + asn_DEF_CS1_tags_1, + sizeof(asn_DEF_CS1_tags_1) + /sizeof(asn_DEF_CS1_tags_1[0]), /* 1 */ + asn_DEF_CS1_tags_1, /* Same as above */ + sizeof(asn_DEF_CS1_tags_1) + /sizeof(asn_DEF_CS1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS1_1, + 3, /* Elements count */ + &asn_SPC_CS1_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CS2.c b/vcits/mapem/src/CS2.c new file mode 100644 index 0000000..013e47d --- /dev/null +++ b/vcits/mapem/src/CS2.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CS2.h" + +static asn_TYPE_member_t asn_MBR_CS2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS2, manufacturerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManufacturerIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "manufacturerIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS2, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* manufacturerIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* serviceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS2_specs_1 = { + sizeof(struct CS2), + offsetof(struct CS2, _asn_ctx), + asn_MAP_CS2_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS2 = { + "CS2", + "CS2", + &asn_OP_SEQUENCE, + asn_DEF_CS2_tags_1, + sizeof(asn_DEF_CS2_tags_1) + /sizeof(asn_DEF_CS2_tags_1[0]), /* 1 */ + asn_DEF_CS2_tags_1, /* Same as above */ + sizeof(asn_DEF_CS2_tags_1) + /sizeof(asn_DEF_CS2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS2_1, + 2, /* Elements count */ + &asn_SPC_CS2_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CS3.c b/vcits/mapem/src/CS3.c new file mode 100644 index 0000000..f588498 --- /dev/null +++ b/vcits/mapem/src/CS3.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CS3.h" + +static asn_TYPE_member_t asn_MBR_CS3_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS3, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StartTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, stopTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StopTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stopTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, geographLimit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GeoGraphicalLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "geographLimit" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, serviceAppLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceApplicationLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceAppLimit" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS3_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* stopTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* geographLimit */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* serviceAppLimit */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS3_specs_1 = { + sizeof(struct CS3), + offsetof(struct CS3, _asn_ctx), + asn_MAP_CS3_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS3 = { + "CS3", + "CS3", + &asn_OP_SEQUENCE, + asn_DEF_CS3_tags_1, + sizeof(asn_DEF_CS3_tags_1) + /sizeof(asn_DEF_CS3_tags_1[0]), /* 1 */ + asn_DEF_CS3_tags_1, /* Same as above */ + sizeof(asn_DEF_CS3_tags_1) + /sizeof(asn_DEF_CS3_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS3_1, + 4, /* Elements count */ + &asn_SPC_CS3_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CS4.c b/vcits/mapem/src/CS4.c new file mode 100644 index 0000000..87bd957 --- /dev/null +++ b/vcits/mapem/src/CS4.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CS4.h" + +static asn_oer_constraints_t asn_OER_type_CS4_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_CS4_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS4_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS4, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS4, alphabetIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AlphabetIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "alphabetIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS4, licPlateNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LicPlateNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "licPlateNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS4_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* alphabetIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* licPlateNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS4_specs_1 = { + sizeof(struct CS4), + offsetof(struct CS4, _asn_ctx), + asn_MAP_CS4_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS4 = { + "CS4", + "CS4", + &asn_OP_SEQUENCE, + asn_DEF_CS4_tags_1, + sizeof(asn_DEF_CS4_tags_1) + /sizeof(asn_DEF_CS4_tags_1[0]), /* 1 */ + asn_DEF_CS4_tags_1, /* Same as above */ + sizeof(asn_DEF_CS4_tags_1) + /sizeof(asn_DEF_CS4_tags_1[0]), /* 1 */ + { &asn_OER_type_CS4_constr_1, &asn_PER_type_CS4_constr_1, SEQUENCE_constraint }, + asn_MBR_CS4_1, + 3, /* Elements count */ + &asn_SPC_CS4_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CS5.c b/vcits/mapem/src/CS5.c new file mode 100644 index 0000000..2117a7d --- /dev/null +++ b/vcits/mapem/src/CS5.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CS5.h" + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 9)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_fill_constr_3 CC_NOTUSED = { + { 0, 0 }, + 9 /* (SIZE(9..9)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 9, 9 } /* (SIZE(9..9)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS5_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS5, vin), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VisibleString, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vin" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS5, fill), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_3, &asn_PER_memb_fill_constr_3, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS5_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS5_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vin */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fill */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS5_specs_1 = { + sizeof(struct CS5), + offsetof(struct CS5, _asn_ctx), + asn_MAP_CS5_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS5 = { + "CS5", + "CS5", + &asn_OP_SEQUENCE, + asn_DEF_CS5_tags_1, + sizeof(asn_DEF_CS5_tags_1) + /sizeof(asn_DEF_CS5_tags_1[0]), /* 1 */ + asn_DEF_CS5_tags_1, /* Same as above */ + sizeof(asn_DEF_CS5_tags_1) + /sizeof(asn_DEF_CS5_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS5_1, + 2, /* Elements count */ + &asn_SPC_CS5_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CS7.c b/vcits/mapem/src/CS7.c new file mode 100644 index 0000000..5190864 --- /dev/null +++ b/vcits/mapem/src/CS7.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CS7.h" + +/* + * This type is implemented using FreightContainerData, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_CS7_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CS7 = { + "CS7", + "CS7", + &asn_OP_SEQUENCE, + asn_DEF_CS7_tags_1, + sizeof(asn_DEF_CS7_tags_1) + /sizeof(asn_DEF_CS7_tags_1[0]), /* 1 */ + asn_DEF_CS7_tags_1, /* Same as above */ + sizeof(asn_DEF_CS7_tags_1) + /sizeof(asn_DEF_CS7_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CS8.c b/vcits/mapem/src/CS8.c new file mode 100644 index 0000000..e7d73fb --- /dev/null +++ b/vcits/mapem/src/CS8.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CS8.h" + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 6)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_fill_constr_2 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS8_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS8, fill), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_2, &asn_PER_memb_fill_constr_2, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS8, countryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS8, taxCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TaxCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "taxCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS8_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS8_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fill */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* taxCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS8_specs_1 = { + sizeof(struct CS8), + offsetof(struct CS8, _asn_ctx), + asn_MAP_CS8_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS8 = { + "CS8", + "CS8", + &asn_OP_SEQUENCE, + asn_DEF_CS8_tags_1, + sizeof(asn_DEF_CS8_tags_1) + /sizeof(asn_DEF_CS8_tags_1[0]), /* 1 */ + asn_DEF_CS8_tags_1, /* Same as above */ + sizeof(asn_DEF_CS8_tags_1) + /sizeof(asn_DEF_CS8_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS8_1, + 3, /* Elements count */ + &asn_SPC_CS8_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CauseCode.c b/vcits/mapem/src/CauseCode.c new file mode 100644 index 0000000..4eeab85 --- /dev/null +++ b/vcits/mapem/src/CauseCode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CauseCode.h" + +static asn_TYPE_member_t asn_MBR_CauseCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, causeCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "causeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, subCauseCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubCauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subCauseCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CauseCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* causeCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* subCauseCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CauseCode_specs_1 = { + sizeof(struct CauseCode), + offsetof(struct CauseCode, _asn_ctx), + asn_MAP_CauseCode_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CauseCode = { + "CauseCode", + "CauseCode", + &asn_OP_SEQUENCE, + asn_DEF_CauseCode_tags_1, + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + asn_DEF_CauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CauseCode_1, + 2, /* Elements count */ + &asn_SPC_CauseCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CauseCodeType.c b/vcits/mapem/src/CauseCodeType.c new file mode 100644 index 0000000..f0d12b0 --- /dev/null +++ b/vcits/mapem/src/CauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CauseCodeType.h" + +int +CauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseCodeType = { + "CauseCodeType", + "CauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_CauseCodeType_tags_1, + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_CauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseCodeType_constr_1, &asn_PER_type_CauseCodeType_constr_1, CauseCodeType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/CenDsrcTollingZone.c b/vcits/mapem/src/CenDsrcTollingZone.c new file mode 100644 index 0000000..a67ef44 --- /dev/null +++ b/vcits/mapem/src/CenDsrcTollingZone.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CenDsrcTollingZone.h" + +static asn_TYPE_member_t asn_MBR_CenDsrcTollingZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 1, offsetof(struct CenDsrcTollingZone, cenDsrcTollingZoneID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CenDsrcTollingZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cenDsrcTollingZoneID" + }, +}; +static const int asn_MAP_CenDsrcTollingZone_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CenDsrcTollingZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cenDsrcTollingZoneID */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CenDsrcTollingZone_specs_1 = { + sizeof(struct CenDsrcTollingZone), + offsetof(struct CenDsrcTollingZone, _asn_ctx), + asn_MAP_CenDsrcTollingZone_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CenDsrcTollingZone_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone = { + "CenDsrcTollingZone", + "CenDsrcTollingZone", + &asn_OP_SEQUENCE, + asn_DEF_CenDsrcTollingZone_tags_1, + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZone_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CenDsrcTollingZone_1, + 3, /* Elements count */ + &asn_SPC_CenDsrcTollingZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CenDsrcTollingZoneID.c b/vcits/mapem/src/CenDsrcTollingZoneID.c new file mode 100644 index 0000000..dd0a2f9 --- /dev/null +++ b/vcits/mapem/src/CenDsrcTollingZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CenDsrcTollingZoneID.h" + +int +CenDsrcTollingZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using ProtectedZoneID, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID = { + "CenDsrcTollingZoneID", + "CenDsrcTollingZoneID", + &asn_OP_NativeInteger, + asn_DEF_CenDsrcTollingZoneID_tags_1, + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_CenDsrcTollingZoneID_constr_1, &asn_PER_type_CenDsrcTollingZoneID_constr_1, CenDsrcTollingZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/ClosedLanes.c b/vcits/mapem/src/ClosedLanes.c new file mode 100644 index 0000000..d522ed1 --- /dev/null +++ b/vcits/mapem/src/ClosedLanes.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ClosedLanes.h" + +static asn_TYPE_member_t asn_MBR_ClosedLanes_1[] = { + { ATF_POINTER, 3, offsetof(struct ClosedLanes, innerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "innerhardShoulderStatus" + }, + { ATF_POINTER, 2, offsetof(struct ClosedLanes, outerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outerhardShoulderStatus" + }, + { ATF_POINTER, 1, offsetof(struct ClosedLanes, drivingLaneStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivingLaneStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drivingLaneStatus" + }, +}; +static const int asn_MAP_ClosedLanes_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ClosedLanes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ClosedLanes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* innerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* outerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* drivingLaneStatus */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ClosedLanes_specs_1 = { + sizeof(struct ClosedLanes), + offsetof(struct ClosedLanes, _asn_ctx), + asn_MAP_ClosedLanes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ClosedLanes_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ClosedLanes = { + "ClosedLanes", + "ClosedLanes", + &asn_OP_SEQUENCE, + asn_DEF_ClosedLanes_tags_1, + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + asn_DEF_ClosedLanes_tags_1, /* Same as above */ + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ClosedLanes_1, + 3, /* Elements count */ + &asn_SPC_ClosedLanes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CollisionRiskSubCauseCode.c b/vcits/mapem/src/CollisionRiskSubCauseCode.c new file mode 100644 index 0000000..5d2514c --- /dev/null +++ b/vcits/mapem/src/CollisionRiskSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CollisionRiskSubCauseCode.h" + +int +CollisionRiskSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CollisionRiskSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode = { + "CollisionRiskSubCauseCode", + "CollisionRiskSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_CollisionRiskSubCauseCode_tags_1, + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_CollisionRiskSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CollisionRiskSubCauseCode_constr_1, &asn_PER_type_CollisionRiskSubCauseCode_constr_1, CollisionRiskSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/ComputedLane.c b/vcits/mapem/src/ComputedLane.c new file mode 100644 index 0000000..643ff79 --- /dev/null +++ b/vcits/mapem/src/ComputedLane.c @@ -0,0 +1,306 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ComputedLane.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_offsetXaxis_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetXaxis_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetXaxis_specs_3 = { + sizeof(struct ComputedLane__offsetXaxis), + offsetof(struct ComputedLane__offsetXaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetXaxis, present), + sizeof(((struct ComputedLane__offsetXaxis *)0)->present), + asn_MAP_offsetXaxis_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetXaxis_3 = { + "offsetXaxis", + "offsetXaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_offsetXaxis_constr_3, &asn_PER_type_offsetXaxis_constr_3, CHOICE_constraint }, + asn_MBR_offsetXaxis_3, + 2, /* Elements count */ + &asn_SPC_offsetXaxis_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_offsetYaxis_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetYaxis_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetYaxis_specs_6 = { + sizeof(struct ComputedLane__offsetYaxis), + offsetof(struct ComputedLane__offsetYaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetYaxis, present), + sizeof(((struct ComputedLane__offsetYaxis *)0)->present), + asn_MAP_offsetYaxis_tag2el_6, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetYaxis_6 = { + "offsetYaxis", + "offsetYaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_offsetYaxis_constr_6, &asn_PER_type_offsetYaxis_constr_6, CHOICE_constraint }, + asn_MBR_offsetYaxis_6, + 2, /* Elements count */ + &asn_SPC_offsetYaxis_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regional_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ComputedLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_12 = { + sizeof(struct ComputedLane__regional), + offsetof(struct ComputedLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_12 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_12, + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]) - 1, /* 1 */ + asn_DEF_regional_tags_12, /* Same as above */ + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]), /* 2 */ + { &asn_OER_type_regional_constr_12, &asn_PER_type_regional_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_regional_12, + 1, /* Single element */ + &asn_SPC_regional_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ComputedLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, referenceLaneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceLaneId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetXaxis), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetXaxis_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetXaxis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetYaxis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetYaxis_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetYaxis" + }, + { ATF_POINTER, 4, offsetof(struct ComputedLane, rotateXY), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rotateXY" + }, + { ATF_POINTER, 3, offsetof(struct ComputedLane, scaleXaxis), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaleXaxis" + }, + { ATF_POINTER, 2, offsetof(struct ComputedLane, scaleYaxis), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaleYaxis" + }, + { ATF_POINTER, 1, offsetof(struct ComputedLane, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_12, + 0, + { &asn_OER_memb_regional_constr_12, &asn_PER_memb_regional_constr_12, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ComputedLane_oms_1[] = { 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ComputedLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ComputedLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceLaneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* offsetXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* offsetYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rotateXY */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* scaleXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* scaleYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1 = { + sizeof(struct ComputedLane), + offsetof(struct ComputedLane, _asn_ctx), + asn_MAP_ComputedLane_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ComputedLane_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ComputedLane = { + "ComputedLane", + "ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_ComputedLane_tags_1, + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + asn_DEF_ComputedLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ComputedLane_1, + 7, /* Elements count */ + &asn_SPC_ComputedLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ConnectingLane.c b/vcits/mapem/src/ConnectingLane.c new file mode 100644 index 0000000..2047258 --- /dev/null +++ b/vcits/mapem/src/ConnectingLane.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ConnectingLane.h" + +asn_TYPE_member_t asn_MBR_ConnectingLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectingLane, lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 1, offsetof(struct ConnectingLane, maneuver), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuver" + }, +}; +static const int asn_MAP_ConnectingLane_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ConnectingLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectingLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maneuver */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1 = { + sizeof(struct ConnectingLane), + offsetof(struct ConnectingLane, _asn_ctx), + asn_MAP_ConnectingLane_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ConnectingLane_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectingLane = { + "ConnectingLane", + "ConnectingLane", + &asn_OP_SEQUENCE, + asn_DEF_ConnectingLane_tags_1, + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + asn_DEF_ConnectingLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectingLane_1, + 2, /* Elements count */ + &asn_SPC_ConnectingLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Connection.c b/vcits/mapem/src/Connection.c new file mode 100644 index 0000000..4b78bbd --- /dev/null +++ b/vcits/mapem/src/Connection.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Connection.h" + +#include "IntersectionReferenceID.h" +asn_TYPE_member_t asn_MBR_Connection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Connection, connectingLane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectingLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectingLane" + }, + { ATF_POINTER, 4, offsetof(struct Connection, remoteIntersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "remoteIntersection" + }, + { ATF_POINTER, 3, offsetof(struct Connection, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_POINTER, 2, offsetof(struct Connection, userClass), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "userClass" + }, + { ATF_POINTER, 1, offsetof(struct Connection, connectionID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const int asn_MAP_Connection_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Connection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Connection_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectingLane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* remoteIntersection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* userClass */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1 = { + sizeof(struct Connection), + offsetof(struct Connection, _asn_ctx), + asn_MAP_Connection_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Connection_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Connection = { + "Connection", + "Connection", + &asn_OP_SEQUENCE, + asn_DEF_Connection_tags_1, + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + asn_DEF_Connection_tags_1, /* Same as above */ + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Connection_1, + 5, /* Elements count */ + &asn_SPC_Connection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ConnectionManeuverAssist-addGrpC.c b/vcits/mapem/src/ConnectionManeuverAssist-addGrpC.c new file mode 100644 index 0000000..6a81d41 --- /dev/null +++ b/vcits/mapem/src/ConnectionManeuverAssist-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ConnectionManeuverAssist-addGrpC.h" + +#include "ItsStationPositionList.h" +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist_addGrpC, itsStationPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsStationPositionList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "itsStationPosition" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* itsStationPosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 = { + sizeof(struct ConnectionManeuverAssist_addGrpC), + offsetof(struct ConnectionManeuverAssist_addGrpC, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC = { + "ConnectionManeuverAssist-addGrpC", + "ConnectionManeuverAssist-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionManeuverAssist_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ConnectionManeuverAssist.c b/vcits/mapem/src/ConnectionManeuverAssist.c new file mode 100644 index 0000000..c477256 --- /dev/null +++ b/vcits/mapem/src/ConnectionManeuverAssist.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ConnectionManeuverAssist.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ConnectionManeuverAssist, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct ConnectionManeuverAssist__regional), + offsetof(struct ConnectionManeuverAssist__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionManeuverAssist, connectionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 5, offsetof(struct ConnectionManeuverAssist, queueLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "queueLength" + }, + { ATF_POINTER, 4, offsetof(struct ConnectionManeuverAssist, availableStorageLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "availableStorageLength" + }, + { ATF_POINTER, 3, offsetof(struct ConnectionManeuverAssist, waitOnStop), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WaitOnStopline, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "waitOnStop" + }, + { ATF_POINTER, 2, offsetof(struct ConnectionManeuverAssist, pedBicycleDetect), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PedestrianBicycleDetect, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pedBicycleDetect" + }, + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* queueLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* availableStorageLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* waitOnStop */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pedBicycleDetect */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1 = { + sizeof(struct ConnectionManeuverAssist), + offsetof(struct ConnectionManeuverAssist, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist = { + "ConnectionManeuverAssist", + "ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionManeuverAssist_1, + 6, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ConnectionTrajectory-addGrpC.c b/vcits/mapem/src/ConnectionTrajectory-addGrpC.c new file mode 100644 index 0000000..83c3904 --- /dev/null +++ b/vcits/mapem/src/ConnectionTrajectory-addGrpC.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ConnectionTrajectory-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ConnectionTrajectory_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionTrajectory_addGrpC, nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConnectionTrajectory_addGrpC, connectionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectionTrajectory_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionTrajectory_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionTrajectory_addGrpC_specs_1 = { + sizeof(struct ConnectionTrajectory_addGrpC), + offsetof(struct ConnectionTrajectory_addGrpC, _asn_ctx), + asn_MAP_ConnectionTrajectory_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionTrajectory_addGrpC = { + "ConnectionTrajectory-addGrpC", + "ConnectionTrajectory-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionTrajectory_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionTrajectory_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionTrajectory_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_ConnectionTrajectory_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ConnectsToList.c b/vcits/mapem/src/ConnectsToList.c new file mode 100644 index 0000000..d98b365 --- /dev/null +++ b/vcits/mapem/src/ConnectsToList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ConnectsToList.h" + +#include "Connection.h" +static asn_oer_constraints_t asn_OER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ConnectsToList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Connection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectsToList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1 = { + sizeof(struct ConnectsToList), + offsetof(struct ConnectsToList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectsToList = { + "ConnectsToList", + "ConnectsToList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ConnectsToList_tags_1, + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + asn_DEF_ConnectsToList_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + { &asn_OER_type_ConnectsToList_constr_1, &asn_PER_type_ConnectsToList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ConnectsToList_1, + 1, /* Single element */ + &asn_SPC_ConnectsToList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CountryCode.c b/vcits/mapem/src/CountryCode.c new file mode 100644 index 0000000..562b1d7 --- /dev/null +++ b/vcits/mapem/src/CountryCode.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CountryCode.h" + +int +CountryCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CountryCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_CountryCode_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CountryCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CountryCode = { + "CountryCode", + "CountryCode", + &asn_OP_BIT_STRING, + asn_DEF_CountryCode_tags_1, + sizeof(asn_DEF_CountryCode_tags_1) + /sizeof(asn_DEF_CountryCode_tags_1[0]), /* 1 */ + asn_DEF_CountryCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CountryCode_tags_1) + /sizeof(asn_DEF_CountryCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CountryCode_constr_1, &asn_PER_type_CountryCode_constr_1, CountryCode_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Curvature.c b/vcits/mapem/src/Curvature.c new file mode 100644 index 0000000..b5d6951 --- /dev/null +++ b/vcits/mapem/src/Curvature.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Curvature.h" + +static asn_TYPE_member_t asn_MBR_Curvature_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Curvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Curvature_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* curvatureValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* curvatureConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Curvature_specs_1 = { + sizeof(struct Curvature), + offsetof(struct Curvature, _asn_ctx), + asn_MAP_Curvature_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Curvature = { + "Curvature", + "Curvature", + &asn_OP_SEQUENCE, + asn_DEF_Curvature_tags_1, + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + asn_DEF_Curvature_tags_1, /* Same as above */ + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Curvature_1, + 2, /* Elements count */ + &asn_SPC_Curvature_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CurvatureCalculationMode.c b/vcits/mapem/src/CurvatureCalculationMode.c new file mode 100644 index 0000000..3cc9172 --- /dev/null +++ b/vcits/mapem/src/CurvatureCalculationMode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CurvatureCalculationMode.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureCalculationMode_value2enum_1[] = { + { 0, 11, "yawRateUsed" }, + { 1, 14, "yawRateNotUsed" }, + { 2, 11, "unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CurvatureCalculationMode_enum2value_1[] = { + 2, /* unavailable(2) */ + 1, /* yawRateNotUsed(1) */ + 0 /* yawRateUsed(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_CurvatureCalculationMode_specs_1 = { + asn_MAP_CurvatureCalculationMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureCalculationMode_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureCalculationMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode = { + "CurvatureCalculationMode", + "CurvatureCalculationMode", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureCalculationMode_tags_1, + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + asn_DEF_CurvatureCalculationMode_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureCalculationMode_constr_1, &asn_PER_type_CurvatureCalculationMode_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureCalculationMode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CurvatureConfidence.c b/vcits/mapem/src/CurvatureConfidence.c new file mode 100644 index 0000000..281dbfe --- /dev/null +++ b/vcits/mapem/src/CurvatureConfidence.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CurvatureConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureConfidence_value2enum_1[] = { + { 0, 19, "onePerMeter-0-00002" }, + { 1, 18, "onePerMeter-0-0001" }, + { 2, 18, "onePerMeter-0-0005" }, + { 3, 17, "onePerMeter-0-002" }, + { 4, 16, "onePerMeter-0-01" }, + { 5, 15, "onePerMeter-0-1" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_CurvatureConfidence_enum2value_1[] = { + 0, /* onePerMeter-0-00002(0) */ + 1, /* onePerMeter-0-0001(1) */ + 2, /* onePerMeter-0-0005(2) */ + 3, /* onePerMeter-0-002(3) */ + 4, /* onePerMeter-0-01(4) */ + 5, /* onePerMeter-0-1(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1 = { + asn_MAP_CurvatureConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence = { + "CurvatureConfidence", + "CurvatureConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureConfidence_tags_1, + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + asn_DEF_CurvatureConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureConfidence_constr_1, &asn_PER_type_CurvatureConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/CurvatureValue.c b/vcits/mapem/src/CurvatureValue.c new file mode 100644 index 0000000..91a3eeb --- /dev/null +++ b/vcits/mapem/src/CurvatureValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "CurvatureValue.h" + +int +CurvatureValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1023 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1023..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1023, 1023 } /* (-1023..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CurvatureValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureValue = { + "CurvatureValue", + "CurvatureValue", + &asn_OP_NativeInteger, + asn_DEF_CurvatureValue_tags_1, + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + asn_DEF_CurvatureValue_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureValue_constr_1, &asn_PER_type_CurvatureValue_constr_1, CurvatureValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DDateTime.c b/vcits/mapem/src/DDateTime.c new file mode 100644 index 0000000..963e6ae --- /dev/null +++ b/vcits/mapem/src/DDateTime.c @@ -0,0 +1,112 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DDateTime.h" + +asn_TYPE_member_t asn_MBR_DDateTime_1[] = { + { ATF_POINTER, 7, offsetof(struct DDateTime, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "year" + }, + { ATF_POINTER, 6, offsetof(struct DDateTime, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMonth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "month" + }, + { ATF_POINTER, 5, offsetof(struct DDateTime, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDay, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "day" + }, + { ATF_POINTER, 4, offsetof(struct DDateTime, hour), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DHour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hour" + }, + { ATF_POINTER, 3, offsetof(struct DDateTime, minute), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMinute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct DDateTime, second), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct DDateTime, offset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offset" + }, +}; +static const int asn_MAP_DDateTime_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_DDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DDateTime_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* day */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hour */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* offset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1 = { + sizeof(struct DDateTime), + offsetof(struct DDateTime, _asn_ctx), + asn_MAP_DDateTime_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_DDateTime_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DDateTime = { + "DDateTime", + "DDateTime", + &asn_OP_SEQUENCE, + asn_DEF_DDateTime_tags_1, + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + asn_DEF_DDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DDateTime_1, + 7, /* Elements count */ + &asn_SPC_DDateTime_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/DDay.c b/vcits/mapem/src/DDay.c new file mode 100644 index 0000000..181b412 --- /dev/null +++ b/vcits/mapem/src/DDay.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DDay.h" + +int +DDay_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DDay_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_DDay_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DDay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DDay = { + "DDay", + "DDay", + &asn_OP_NativeInteger, + asn_DEF_DDay_tags_1, + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + asn_DEF_DDay_tags_1, /* Same as above */ + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + { &asn_OER_type_DDay_constr_1, &asn_PER_type_DDay_constr_1, DDay_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DHour.c b/vcits/mapem/src/DHour.c new file mode 100644 index 0000000..06fb25d --- /dev/null +++ b/vcits/mapem/src/DHour.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DHour.h" + +int +DHour_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DHour_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_DHour_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DHour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DHour = { + "DHour", + "DHour", + &asn_OP_NativeInteger, + asn_DEF_DHour_tags_1, + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + asn_DEF_DHour_tags_1, /* Same as above */ + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + { &asn_OER_type_DHour_constr_1, &asn_PER_type_DHour_constr_1, DHour_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DMinute.c b/vcits/mapem/src/DMinute.c new file mode 100644 index 0000000..1b0b4e7 --- /dev/null +++ b/vcits/mapem/src/DMinute.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DMinute.h" + +int +DMinute_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 60)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DMinute_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..60) */, + -1}; +asn_per_constraints_t asn_PER_type_DMinute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 60 } /* (0..60) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DMinute_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMinute = { + "DMinute", + "DMinute", + &asn_OP_NativeInteger, + asn_DEF_DMinute_tags_1, + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + asn_DEF_DMinute_tags_1, /* Same as above */ + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + { &asn_OER_type_DMinute_constr_1, &asn_PER_type_DMinute_constr_1, DMinute_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DMonth.c b/vcits/mapem/src/DMonth.c new file mode 100644 index 0000000..b49eee6 --- /dev/null +++ b/vcits/mapem/src/DMonth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DMonth.h" + +int +DMonth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DMonth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..12) */, + -1}; +asn_per_constraints_t asn_PER_type_DMonth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DMonth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMonth = { + "DMonth", + "DMonth", + &asn_OP_NativeInteger, + asn_DEF_DMonth_tags_1, + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + asn_DEF_DMonth_tags_1, /* Same as above */ + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + { &asn_OER_type_DMonth_constr_1, &asn_PER_type_DMonth_constr_1, DMonth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DOffset.c b/vcits/mapem/src/DOffset.c new file mode 100644 index 0000000..d141c4c --- /dev/null +++ b/vcits/mapem/src/DOffset.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DOffset.h" + +int +DOffset_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -840 && value <= 840)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DOffset_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-840..840) */, + -1}; +asn_per_constraints_t asn_PER_type_DOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -840, 840 } /* (-840..840) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DOffset = { + "DOffset", + "DOffset", + &asn_OP_NativeInteger, + asn_DEF_DOffset_tags_1, + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + asn_DEF_DOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + { &asn_OER_type_DOffset_constr_1, &asn_PER_type_DOffset_constr_1, DOffset_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DSRCmsgID.c b/vcits/mapem/src/DSRCmsgID.c new file mode 100644 index 0000000..accd9da --- /dev/null +++ b/vcits/mapem/src/DSRCmsgID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DSRCmsgID.h" + +int +DSRCmsgID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DSRCmsgID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSRCmsgID = { + "DSRCmsgID", + "DSRCmsgID", + &asn_OP_NativeInteger, + asn_DEF_DSRCmsgID_tags_1, + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + asn_DEF_DSRCmsgID_tags_1, /* Same as above */ + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + { &asn_OER_type_DSRCmsgID_constr_1, &asn_PER_type_DSRCmsgID_constr_1, DSRCmsgID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DSecond.c b/vcits/mapem/src/DSecond.c new file mode 100644 index 0000000..694b8a4 --- /dev/null +++ b/vcits/mapem/src/DSecond.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DSecond.h" + +int +DSecond_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DSecond_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_DSecond_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSecond = { + "DSecond", + "DSecond", + &asn_OP_NativeInteger, + asn_DEF_DSecond_tags_1, + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + asn_DEF_DSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + { &asn_OER_type_DSecond_constr_1, &asn_PER_type_DSecond_constr_1, DSecond_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DYear.c b/vcits/mapem/src/DYear.c new file mode 100644 index 0000000..f4d6843 --- /dev/null +++ b/vcits/mapem/src/DYear.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DYear.h" + +int +DYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DYear_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_DYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DYear = { + "DYear", + "DYear", + &asn_OP_NativeInteger, + asn_DEF_DYear_tags_1, + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + asn_DEF_DYear_tags_1, /* Same as above */ + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + { &asn_OER_type_DYear_constr_1, &asn_PER_type_DYear_constr_1, DYear_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DangerousEndOfQueueSubCauseCode.c b/vcits/mapem/src/DangerousEndOfQueueSubCauseCode.c new file mode 100644 index 0000000..710cf51 --- /dev/null +++ b/vcits/mapem/src/DangerousEndOfQueueSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DangerousEndOfQueueSubCauseCode.h" + +int +DangerousEndOfQueueSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode = { + "DangerousEndOfQueueSubCauseCode", + "DangerousEndOfQueueSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1, &asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1, DangerousEndOfQueueSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DangerousGoodsBasic.c b/vcits/mapem/src/DangerousGoodsBasic.c new file mode 100644 index 0000000..a258e0f --- /dev/null +++ b/vcits/mapem/src/DangerousGoodsBasic.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DangerousGoodsBasic.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DangerousGoodsBasic_value2enum_1[] = { + { 0, 11, "explosives1" }, + { 1, 11, "explosives2" }, + { 2, 11, "explosives3" }, + { 3, 11, "explosives4" }, + { 4, 11, "explosives5" }, + { 5, 11, "explosives6" }, + { 6, 14, "flammableGases" }, + { 7, 17, "nonFlammableGases" }, + { 8, 10, "toxicGases" }, + { 9, 16, "flammableLiquids" }, + { 10, 15, "flammableSolids" }, + { 11, 39, "substancesLiableToSpontaneousCombustion" }, + { 12, 52, "substancesEmittingFlammableGasesUponContactWithWater" }, + { 13, 19, "oxidizingSubstances" }, + { 14, 16, "organicPeroxides" }, + { 15, 15, "toxicSubstances" }, + { 16, 20, "infectiousSubstances" }, + { 17, 19, "radioactiveMaterial" }, + { 18, 19, "corrosiveSubstances" }, + { 19, 32, "miscellaneousDangerousSubstances" } +}; +static const unsigned int asn_MAP_DangerousGoodsBasic_enum2value_1[] = { + 18, /* corrosiveSubstances(18) */ + 0, /* explosives1(0) */ + 1, /* explosives2(1) */ + 2, /* explosives3(2) */ + 3, /* explosives4(3) */ + 4, /* explosives5(4) */ + 5, /* explosives6(5) */ + 6, /* flammableGases(6) */ + 9, /* flammableLiquids(9) */ + 10, /* flammableSolids(10) */ + 16, /* infectiousSubstances(16) */ + 19, /* miscellaneousDangerousSubstances(19) */ + 7, /* nonFlammableGases(7) */ + 14, /* organicPeroxides(14) */ + 13, /* oxidizingSubstances(13) */ + 17, /* radioactiveMaterial(17) */ + 12, /* substancesEmittingFlammableGasesUponContactWithWater(12) */ + 11, /* substancesLiableToSpontaneousCombustion(11) */ + 8, /* toxicGases(8) */ + 15 /* toxicSubstances(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1 = { + asn_MAP_DangerousGoodsBasic_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DangerousGoodsBasic_enum2value_1, /* N => "tag"; sorted by N */ + 20, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic = { + "DangerousGoodsBasic", + "DangerousGoodsBasic", + &asn_OP_NativeEnumerated, + asn_DEF_DangerousGoodsBasic_tags_1, + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousGoodsBasic_constr_1, &asn_PER_type_DangerousGoodsBasic_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DangerousGoodsBasic_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/DangerousGoodsExtended.c b/vcits/mapem/src/DangerousGoodsExtended.c new file mode 100644 index 0000000..0ce1476 --- /dev/null +++ b/vcits/mapem/src/DangerousGoodsExtended.c @@ -0,0 +1,243 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DangerousGoodsExtended.h" + +static int check_permitted_alphabet_7(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_unNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 9999)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_emergencyActionCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 24) + && !check_permitted_alphabet_7(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_companyName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const UTF8String_t *st = (const UTF8String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = UTF8String_length(st); + if((ssize_t)size < 0) { + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((size >= 1 && size <= 24)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_unNumber_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..9999) */, + -1}; +static asn_per_constraints_t asn_PER_memb_unNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 9999 } /* (0..9999) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..24)) */}; +static asn_per_constraints_t asn_PER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 5, 5, 1, 24 } /* (SIZE(1..24)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_companyName_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_companyName_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DangerousGoodsExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsBasic, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dangerousGoodsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, unNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_unNumber_constr_3, &asn_PER_memb_unNumber_constr_3, memb_unNumber_constraint_1 }, + 0, 0, /* No default value */ + "unNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, elevatedTemperature), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevatedTemperature" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, tunnelsRestricted), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tunnelsRestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, limitedQuantity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "limitedQuantity" + }, + { ATF_POINTER, 3, offsetof(struct DangerousGoodsExtended, emergencyActionCode), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_emergencyActionCode_constr_7, &asn_PER_memb_emergencyActionCode_constr_7, memb_emergencyActionCode_constraint_1 }, + 0, 0, /* No default value */ + "emergencyActionCode" + }, + { ATF_POINTER, 2, offsetof(struct DangerousGoodsExtended, phoneNumber), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhoneNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phoneNumber" + }, + { ATF_POINTER, 1, offsetof(struct DangerousGoodsExtended, companyName), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { &asn_OER_memb_companyName_constr_9, &asn_PER_memb_companyName_constr_9, memb_companyName_constraint_1 }, + 0, 0, /* No default value */ + "companyName" + }, +}; +static const int asn_MAP_DangerousGoodsExtended_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DangerousGoodsExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dangerousGoodsType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* unNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevatedTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tunnelsRestricted */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* limitedQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyActionCode */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* phoneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* companyName */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DangerousGoodsExtended_specs_1 = { + sizeof(struct DangerousGoodsExtended), + offsetof(struct DangerousGoodsExtended, _asn_ctx), + asn_MAP_DangerousGoodsExtended_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_DangerousGoodsExtended_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended = { + "DangerousGoodsExtended", + "DangerousGoodsExtended", + &asn_OP_SEQUENCE, + asn_DEF_DangerousGoodsExtended_tags_1, + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DangerousGoodsExtended_1, + 8, /* Elements count */ + &asn_SPC_DangerousGoodsExtended_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/DangerousSituationSubCauseCode.c b/vcits/mapem/src/DangerousSituationSubCauseCode.c new file mode 100644 index 0000000..f268d8b --- /dev/null +++ b/vcits/mapem/src/DangerousSituationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DangerousSituationSubCauseCode.h" + +int +DangerousSituationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousSituationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode = { + "DangerousSituationSubCauseCode", + "DangerousSituationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousSituationSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousSituationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousSituationSubCauseCode_constr_1, &asn_PER_type_DangerousSituationSubCauseCode_constr_1, DangerousSituationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DataParameters.c b/vcits/mapem/src/DataParameters.c new file mode 100644 index 0000000..57b5c73 --- /dev/null +++ b/vcits/mapem/src/DataParameters.c @@ -0,0 +1,274 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DataParameters.h" + +static int check_permitted_alphabet_2(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_3(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_4(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_5(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_processMethod_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_2(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_processAgency_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_3(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_lastCheckedDate_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_4(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_geoidUsed_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_5(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_processMethod_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_processMethod_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_processAgency_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_processAgency_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +asn_TYPE_member_t asn_MBR_DataParameters_1[] = { + { ATF_POINTER, 4, offsetof(struct DataParameters, processMethod), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_processMethod_constr_2, &asn_PER_memb_processMethod_constr_2, memb_processMethod_constraint_1 }, + 0, 0, /* No default value */ + "processMethod" + }, + { ATF_POINTER, 3, offsetof(struct DataParameters, processAgency), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_processAgency_constr_3, &asn_PER_memb_processAgency_constr_3, memb_processAgency_constraint_1 }, + 0, 0, /* No default value */ + "processAgency" + }, + { ATF_POINTER, 2, offsetof(struct DataParameters, lastCheckedDate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_lastCheckedDate_constr_4, &asn_PER_memb_lastCheckedDate_constr_4, memb_lastCheckedDate_constraint_1 }, + 0, 0, /* No default value */ + "lastCheckedDate" + }, + { ATF_POINTER, 1, offsetof(struct DataParameters, geoidUsed), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_geoidUsed_constr_5, &asn_PER_memb_geoidUsed_constr_5, memb_geoidUsed_constraint_1 }, + 0, 0, /* No default value */ + "geoidUsed" + }, +}; +static const int asn_MAP_DataParameters_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_DataParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DataParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* processMethod */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* processAgency */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lastCheckedDate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* geoidUsed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1 = { + sizeof(struct DataParameters), + offsetof(struct DataParameters, _asn_ctx), + asn_MAP_DataParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DataParameters_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DataParameters = { + "DataParameters", + "DataParameters", + &asn_OP_SEQUENCE, + asn_DEF_DataParameters_tags_1, + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + asn_DEF_DataParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DataParameters_1, + 4, /* Elements count */ + &asn_SPC_DataParameters_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/DeltaAltitude.c b/vcits/mapem/src/DeltaAltitude.c new file mode 100644 index 0000000..18cfa17 --- /dev/null +++ b/vcits/mapem/src/DeltaAltitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DeltaAltitude.h" + +int +DeltaAltitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -12700 && value <= 12800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-12700..12800) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, -12700, 12800 } /* (-12700..12800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAltitude = { + "DeltaAltitude", + "DeltaAltitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaAltitude_tags_1, + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAltitude_constr_1, &asn_PER_type_DeltaAltitude_constr_1, DeltaAltitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DeltaAngle.c b/vcits/mapem/src/DeltaAngle.c new file mode 100644 index 0000000..b36c203 --- /dev/null +++ b/vcits/mapem/src/DeltaAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DeltaAngle.h" + +int +DeltaAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -150 && value <= 150)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-150..150) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -150, 150 } /* (-150..150) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAngle = { + "DeltaAngle", + "DeltaAngle", + &asn_OP_NativeInteger, + asn_DEF_DeltaAngle_tags_1, + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + asn_DEF_DeltaAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAngle_constr_1, &asn_PER_type_DeltaAngle_constr_1, DeltaAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DeltaLatitude.c b/vcits/mapem/src/DeltaLatitude.c new file mode 100644 index 0000000..fe3f869 --- /dev/null +++ b/vcits/mapem/src/DeltaLatitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DeltaLatitude.h" + +int +DeltaLatitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLatitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLatitude = { + "DeltaLatitude", + "DeltaLatitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLatitude_tags_1, + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLatitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLatitude_constr_1, &asn_PER_type_DeltaLatitude_constr_1, DeltaLatitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DeltaLongitude.c b/vcits/mapem/src/DeltaLongitude.c new file mode 100644 index 0000000..0ee5aba --- /dev/null +++ b/vcits/mapem/src/DeltaLongitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DeltaLongitude.h" + +int +DeltaLongitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLongitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLongitude = { + "DeltaLongitude", + "DeltaLongitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLongitude_tags_1, + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLongitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLongitude_constr_1, &asn_PER_type_DeltaLongitude_constr_1, DeltaLongitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DeltaReferencePosition.c b/vcits/mapem/src/DeltaReferencePosition.c new file mode 100644 index 0000000..fcdaa7d --- /dev/null +++ b/vcits/mapem/src/DeltaReferencePosition.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DeltaReferencePosition.h" + +asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLatitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLongitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLongitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaAltitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_DeltaReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DeltaReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* deltaAltitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1 = { + sizeof(struct DeltaReferencePosition), + offsetof(struct DeltaReferencePosition, _asn_ctx), + asn_MAP_DeltaReferencePosition_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition = { + "DeltaReferencePosition", + "DeltaReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_DeltaReferencePosition_tags_1, + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_DeltaReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DeltaReferencePosition_1, + 3, /* Elements count */ + &asn_SPC_DeltaReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/DeltaTime.c b/vcits/mapem/src/DeltaTime.c new file mode 100644 index 0000000..efe371c --- /dev/null +++ b/vcits/mapem/src/DeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DeltaTime.h" + +int +DeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -122 && value <= 121)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaTime_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-122..121) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -122, 121 } /* (-122..121) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaTime = { + "DeltaTime", + "DeltaTime", + &asn_OP_NativeInteger, + asn_DEF_DeltaTime_tags_1, + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + asn_DEF_DeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaTime_constr_1, &asn_PER_type_DeltaTime_constr_1, DeltaTime_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DescriptiveName.c b/vcits/mapem/src/DescriptiveName.c new file mode 100644 index 0000000..07fccb0 --- /dev/null +++ b/vcits/mapem/src/DescriptiveName.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DescriptiveName.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +DescriptiveName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 63) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_DescriptiveName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DescriptiveName = { + "DescriptiveName", + "DescriptiveName", + &asn_OP_IA5String, + asn_DEF_DescriptiveName_tags_1, + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + asn_DEF_DescriptiveName_tags_1, /* Same as above */ + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + { &asn_OER_type_DescriptiveName_constr_1, &asn_PER_type_DescriptiveName_constr_1, DescriptiveName_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DigitalMap.c b/vcits/mapem/src/DigitalMap.c new file mode 100644 index 0000000..079ecf9 --- /dev/null +++ b/vcits/mapem/src/DigitalMap.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DigitalMap.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_DigitalMap_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_DigitalMap_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DigitalMap_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DigitalMap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DigitalMap_specs_1 = { + sizeof(struct DigitalMap), + offsetof(struct DigitalMap, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DigitalMap = { + "DigitalMap", + "DigitalMap", + &asn_OP_SEQUENCE_OF, + asn_DEF_DigitalMap_tags_1, + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + asn_DEF_DigitalMap_tags_1, /* Same as above */ + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + { &asn_OER_type_DigitalMap_constr_1, &asn_PER_type_DigitalMap_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DigitalMap_1, + 1, /* Single element */ + &asn_SPC_DigitalMap_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/DriveDirection.c b/vcits/mapem/src/DriveDirection.c new file mode 100644 index 0000000..c201bb3 --- /dev/null +++ b/vcits/mapem/src/DriveDirection.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DriveDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DriveDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_DriveDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DriveDirection_value2enum_1[] = { + { 0, 7, "forward" }, + { 1, 8, "backward" }, + { 2, 11, "unavailable" } +}; +static const unsigned int asn_MAP_DriveDirection_enum2value_1[] = { + 1, /* backward(1) */ + 0, /* forward(0) */ + 2 /* unavailable(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_DriveDirection_specs_1 = { + asn_MAP_DriveDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DriveDirection_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DriveDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DriveDirection = { + "DriveDirection", + "DriveDirection", + &asn_OP_NativeEnumerated, + asn_DEF_DriveDirection_tags_1, + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + asn_DEF_DriveDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_DriveDirection_constr_1, &asn_PER_type_DriveDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DriveDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/DrivenLineOffsetLg.c b/vcits/mapem/src/DrivenLineOffsetLg.c new file mode 100644 index 0000000..f251c34 --- /dev/null +++ b/vcits/mapem/src/DrivenLineOffsetLg.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DrivenLineOffsetLg.h" + +int +DrivenLineOffsetLg_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32767 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32767..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32767, 32767 } /* (-32767..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetLg_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg = { + "DrivenLineOffsetLg", + "DrivenLineOffsetLg", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetLg_tags_1, + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetLg_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivenLineOffsetLg_constr_1, &asn_PER_type_DrivenLineOffsetLg_constr_1, DrivenLineOffsetLg_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DrivenLineOffsetSm.c b/vcits/mapem/src/DrivenLineOffsetSm.c new file mode 100644 index 0000000..ac51ab4 --- /dev/null +++ b/vcits/mapem/src/DrivenLineOffsetSm.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DrivenLineOffsetSm.h" + +int +DrivenLineOffsetSm_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2047 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2047..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2047, 2047 } /* (-2047..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetSm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm = { + "DrivenLineOffsetSm", + "DrivenLineOffsetSm", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetSm_tags_1, + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetSm_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivenLineOffsetSm_constr_1, &asn_PER_type_DrivenLineOffsetSm_constr_1, DrivenLineOffsetSm_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/DrivingLaneStatus.c b/vcits/mapem/src/DrivingLaneStatus.c new file mode 100644 index 0000000..9d95f6b --- /dev/null +++ b/vcits/mapem/src/DrivingLaneStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "DrivingLaneStatus.h" + +int +DrivingLaneStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size >= 1 && size <= 13)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..13)) */}; +asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 13 } /* (SIZE(1..13)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivingLaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus = { + "DrivingLaneStatus", + "DrivingLaneStatus", + &asn_OP_BIT_STRING, + asn_DEF_DrivingLaneStatus_tags_1, + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + asn_DEF_DrivingLaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivingLaneStatus_constr_1, &asn_PER_type_DrivingLaneStatus_constr_1, DrivingLaneStatus_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Elevation.c b/vcits/mapem/src/Elevation.c new file mode 100644 index 0000000..a2721b6 --- /dev/null +++ b/vcits/mapem/src/Elevation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Elevation.h" + +int +Elevation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096 && value <= 61439)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Elevation_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-4096..61439) */, + -1}; +asn_per_constraints_t asn_PER_type_Elevation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -4096, 61439 } /* (-4096..61439) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Elevation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Elevation = { + "Elevation", + "Elevation", + &asn_OP_NativeInteger, + asn_DEF_Elevation_tags_1, + sizeof(asn_DEF_Elevation_tags_1) + /sizeof(asn_DEF_Elevation_tags_1[0]), /* 1 */ + asn_DEF_Elevation_tags_1, /* Same as above */ + sizeof(asn_DEF_Elevation_tags_1) + /sizeof(asn_DEF_Elevation_tags_1[0]), /* 1 */ + { &asn_OER_type_Elevation_constr_1, &asn_PER_type_Elevation_constr_1, Elevation_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/ElevationConfidence.c b/vcits/mapem/src/ElevationConfidence.c new file mode 100644 index 0000000..5ebf1df --- /dev/null +++ b/vcits/mapem/src/ElevationConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ElevationConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ElevationConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 11, "elev-500-00" }, + { 2, 11, "elev-200-00" }, + { 3, 11, "elev-100-00" }, + { 4, 11, "elev-050-00" }, + { 5, 11, "elev-020-00" }, + { 6, 11, "elev-010-00" }, + { 7, 11, "elev-005-00" }, + { 8, 11, "elev-002-00" }, + { 9, 11, "elev-001-00" }, + { 10, 11, "elev-000-50" }, + { 11, 11, "elev-000-20" }, + { 12, 11, "elev-000-10" }, + { 13, 11, "elev-000-05" }, + { 14, 11, "elev-000-02" }, + { 15, 11, "elev-000-01" } +}; +static const unsigned int asn_MAP_ElevationConfidence_enum2value_1[] = { + 15, /* elev-000-01(15) */ + 14, /* elev-000-02(14) */ + 13, /* elev-000-05(13) */ + 12, /* elev-000-10(12) */ + 11, /* elev-000-20(11) */ + 10, /* elev-000-50(10) */ + 9, /* elev-001-00(9) */ + 8, /* elev-002-00(8) */ + 7, /* elev-005-00(7) */ + 6, /* elev-010-00(6) */ + 5, /* elev-020-00(5) */ + 4, /* elev-050-00(4) */ + 3, /* elev-100-00(3) */ + 2, /* elev-200-00(2) */ + 1, /* elev-500-00(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1 = { + asn_MAP_ElevationConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ElevationConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ElevationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ElevationConfidence = { + "ElevationConfidence", + "ElevationConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ElevationConfidence_tags_1, + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + asn_DEF_ElevationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ElevationConfidence_constr_1, &asn_PER_type_ElevationConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ElevationConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/EmbarkationStatus.c b/vcits/mapem/src/EmbarkationStatus.c new file mode 100644 index 0000000..59500d8 --- /dev/null +++ b/vcits/mapem/src/EmbarkationStatus.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "EmbarkationStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_EmbarkationStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus = { + "EmbarkationStatus", + "EmbarkationStatus", + &asn_OP_BOOLEAN, + asn_DEF_EmbarkationStatus_tags_1, + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + asn_DEF_EmbarkationStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/EmergencyPriority.c b/vcits/mapem/src/EmergencyPriority.c new file mode 100644 index 0000000..6f95988 --- /dev/null +++ b/vcits/mapem/src/EmergencyPriority.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "EmergencyPriority.h" + +int +EmergencyPriority_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyPriority = { + "EmergencyPriority", + "EmergencyPriority", + &asn_OP_BIT_STRING, + asn_DEF_EmergencyPriority_tags_1, + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + asn_DEF_EmergencyPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyPriority_constr_1, &asn_PER_type_EmergencyPriority_constr_1, EmergencyPriority_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/EmergencyVehicleApproachingSubCauseCode.c b/vcits/mapem/src/EmergencyVehicleApproachingSubCauseCode.c new file mode 100644 index 0000000..a90e66c --- /dev/null +++ b/vcits/mapem/src/EmergencyVehicleApproachingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "EmergencyVehicleApproachingSubCauseCode.h" + +int +EmergencyVehicleApproachingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode = { + "EmergencyVehicleApproachingSubCauseCode", + "EmergencyVehicleApproachingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, &asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, EmergencyVehicleApproachingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/EmissionType.c b/vcits/mapem/src/EmissionType.c new file mode 100644 index 0000000..a98ccfb --- /dev/null +++ b/vcits/mapem/src/EmissionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "EmissionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmissionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EmissionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EmissionType_value2enum_1[] = { + { 0, 5, "euro1" }, + { 1, 5, "euro2" }, + { 2, 5, "euro3" }, + { 3, 5, "euro4" }, + { 4, 5, "euro5" }, + { 5, 5, "euro6" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_EmissionType_enum2value_1[] = { + 0, /* euro1(0) */ + 1, /* euro2(1) */ + 2, /* euro3(2) */ + 3, /* euro4(3) */ + 4, /* euro5(4) */ + 5 /* euro6(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1 = { + asn_MAP_EmissionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EmissionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EmissionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmissionType = { + "EmissionType", + "EmissionType", + &asn_OP_NativeEnumerated, + asn_DEF_EmissionType_tags_1, + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + asn_DEF_EmissionType_tags_1, /* Same as above */ + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + { &asn_OER_type_EmissionType_constr_1, &asn_PER_type_EmissionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EmissionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/EnabledLaneList.c b/vcits/mapem/src/EnabledLaneList.c new file mode 100644 index 0000000..9f8879c --- /dev/null +++ b/vcits/mapem/src/EnabledLaneList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "EnabledLaneList.h" + +static asn_oer_constraints_t asn_OER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_EnabledLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EnabledLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1 = { + sizeof(struct EnabledLaneList), + offsetof(struct EnabledLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EnabledLaneList = { + "EnabledLaneList", + "EnabledLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EnabledLaneList_tags_1, + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + asn_DEF_EnabledLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_EnabledLaneList_constr_1, &asn_PER_type_EnabledLaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EnabledLaneList_1, + 1, /* Single element */ + &asn_SPC_EnabledLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/EnergyStorageType.c b/vcits/mapem/src/EnergyStorageType.c new file mode 100644 index 0000000..f2ad1b2 --- /dev/null +++ b/vcits/mapem/src/EnergyStorageType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "EnergyStorageType.h" + +int +EnergyStorageType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EnergyStorageType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EnergyStorageType = { + "EnergyStorageType", + "EnergyStorageType", + &asn_OP_BIT_STRING, + asn_DEF_EnergyStorageType_tags_1, + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + asn_DEF_EnergyStorageType_tags_1, /* Same as above */ + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + { &asn_OER_type_EnergyStorageType_constr_1, &asn_PER_type_EnergyStorageType_constr_1, EnergyStorageType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/EuVehicleCategoryCode.c b/vcits/mapem/src/EuVehicleCategoryCode.c new file mode 100644 index 0000000..51ab773 --- /dev/null +++ b/vcits/mapem/src/EuVehicleCategoryCode.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "EuVehicleCategoryCode.h" + +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EuVehicleCategoryCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryL" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryM" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryN" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryO" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehilcleCategoryT), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehilcleCategoryT" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehilcleCategoryG), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehilcleCategoryG" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_EuVehicleCategoryCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* euVehicleCategoryL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* euVehicleCategoryM */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* euVehicleCategoryN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* euVehicleCategoryO */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* euVehilcleCategoryT */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* euVehilcleCategoryG */ +}; +static asn_CHOICE_specifics_t asn_SPC_EuVehicleCategoryCode_specs_1 = { + sizeof(struct EuVehicleCategoryCode), + offsetof(struct EuVehicleCategoryCode, _asn_ctx), + offsetof(struct EuVehicleCategoryCode, present), + sizeof(((struct EuVehicleCategoryCode *)0)->present), + asn_MAP_EuVehicleCategoryCode_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryCode = { + "EuVehicleCategoryCode", + "EuVehicleCategoryCode", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_EuVehicleCategoryCode_constr_1, &asn_PER_type_EuVehicleCategoryCode_constr_1, CHOICE_constraint }, + asn_MBR_EuVehicleCategoryCode_1, + 6, /* Elements count */ + &asn_SPC_EuVehicleCategoryCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/EuVehicleCategoryL.c b/vcits/mapem/src/EuVehicleCategoryL.c new file mode 100644 index 0000000..59fd33e --- /dev/null +++ b/vcits/mapem/src/EuVehicleCategoryL.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "EuVehicleCategoryL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryL_value2enum_1[] = { + { 0, 2, "l1" }, + { 1, 2, "l2" }, + { 2, 2, "l3" }, + { 3, 2, "l4" }, + { 4, 2, "l5" }, + { 5, 2, "l6" }, + { 6, 2, "l7" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryL_enum2value_1[] = { + 0, /* l1(0) */ + 1, /* l2(1) */ + 2, /* l3(2) */ + 3, /* l4(3) */ + 4, /* l5(4) */ + 5, /* l6(5) */ + 6 /* l7(6) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryL_specs_1 = { + asn_MAP_EuVehicleCategoryL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryL_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryL = { + "EuVehicleCategoryL", + "EuVehicleCategoryL", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryL_tags_1, + sizeof(asn_DEF_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryL_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryL_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryL_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryL_constr_1, &asn_PER_type_EuVehicleCategoryL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryL_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/EuVehicleCategoryM.c b/vcits/mapem/src/EuVehicleCategoryM.c new file mode 100644 index 0000000..ed4d5c0 --- /dev/null +++ b/vcits/mapem/src/EuVehicleCategoryM.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "EuVehicleCategoryM.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryM_value2enum_1[] = { + { 0, 2, "m1" }, + { 1, 2, "m2" }, + { 2, 2, "m3" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryM_enum2value_1[] = { + 0, /* m1(0) */ + 1, /* m2(1) */ + 2 /* m3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryM_specs_1 = { + asn_MAP_EuVehicleCategoryM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryM_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryM = { + "EuVehicleCategoryM", + "EuVehicleCategoryM", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryM_tags_1, + sizeof(asn_DEF_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryM_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryM_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryM_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryM_constr_1, &asn_PER_type_EuVehicleCategoryM_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/EuVehicleCategoryN.c b/vcits/mapem/src/EuVehicleCategoryN.c new file mode 100644 index 0000000..0100518 --- /dev/null +++ b/vcits/mapem/src/EuVehicleCategoryN.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "EuVehicleCategoryN.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryN_value2enum_1[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryN_enum2value_1[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryN_specs_1 = { + asn_MAP_EuVehicleCategoryN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryN_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryN = { + "EuVehicleCategoryN", + "EuVehicleCategoryN", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryN_tags_1, + sizeof(asn_DEF_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryN_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryN_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryN_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryN_constr_1, &asn_PER_type_EuVehicleCategoryN_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryN_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/EuVehicleCategoryO.c b/vcits/mapem/src/EuVehicleCategoryO.c new file mode 100644 index 0000000..c1a6ad1 --- /dev/null +++ b/vcits/mapem/src/EuVehicleCategoryO.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "EuVehicleCategoryO.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryO_value2enum_1[] = { + { 0, 2, "o1" }, + { 1, 2, "o2" }, + { 2, 2, "o3" }, + { 3, 2, "o4" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryO_enum2value_1[] = { + 0, /* o1(0) */ + 1, /* o2(1) */ + 2, /* o3(2) */ + 3 /* o4(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryO_specs_1 = { + asn_MAP_EuVehicleCategoryO_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryO_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryO = { + "EuVehicleCategoryO", + "EuVehicleCategoryO", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryO_tags_1, + sizeof(asn_DEF_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryO_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryO_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryO_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryO_constr_1, &asn_PER_type_EuVehicleCategoryO_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryO_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/EventHistory.c b/vcits/mapem/src/EventHistory.c new file mode 100644 index 0000000..9997852 --- /dev/null +++ b/vcits/mapem/src/EventHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "EventHistory.h" + +#include "EventPoint.h" +static asn_oer_constraints_t asn_OER_type_EventHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..23)) */}; +static asn_per_constraints_t asn_PER_type_EventHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (SIZE(1..23)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EventHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EventPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EventHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_EventHistory_specs_1 = { + sizeof(struct EventHistory), + offsetof(struct EventHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EventHistory = { + "EventHistory", + "EventHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_EventHistory_tags_1, + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + asn_DEF_EventHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_EventHistory_constr_1, &asn_PER_type_EventHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EventHistory_1, + 1, /* Single element */ + &asn_SPC_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/EventPoint.c b/vcits/mapem/src/EventPoint.c new file mode 100644 index 0000000..3d5baef --- /dev/null +++ b/vcits/mapem/src/EventPoint.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "EventPoint.h" + +asn_TYPE_member_t asn_MBR_EventPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventPosition" + }, + { ATF_POINTER, 1, offsetof(struct EventPoint, eventDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InformationQuality, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "informationQuality" + }, +}; +static const int asn_MAP_EventPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_EventPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EventPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* informationQuality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1 = { + sizeof(struct EventPoint), + offsetof(struct EventPoint, _asn_ctx), + asn_MAP_EventPoint_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_EventPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EventPoint = { + "EventPoint", + "EventPoint", + &asn_OP_SEQUENCE, + asn_DEF_EventPoint_tags_1, + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + asn_DEF_EventPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EventPoint_1, + 3, /* Elements count */ + &asn_SPC_EventPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ExceptionalCondition.c b/vcits/mapem/src/ExceptionalCondition.c new file mode 100644 index 0000000..dda7ffc --- /dev/null +++ b/vcits/mapem/src/ExceptionalCondition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ExceptionalCondition.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExceptionalCondition_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ExceptionalCondition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ExceptionalCondition_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 23, "publicTransportPriority" }, + { 2, 24, "emergencyVehiclePriority" }, + { 3, 13, "trainPriority" }, + { 4, 10, "bridgeOpen" }, + { 5, 13, "vehicleHeight" }, + { 6, 7, "weather" }, + { 7, 10, "trafficJam" }, + { 8, 13, "tunnelClosure" }, + { 9, 14, "meteringActive" }, + { 10, 13, "truckPriority" }, + { 11, 22, "bicyclePlatoonPriority" }, + { 12, 22, "vehiclePlatoonPriority" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ExceptionalCondition_enum2value_1[] = { + 11, /* bicyclePlatoonPriority(11) */ + 4, /* bridgeOpen(4) */ + 2, /* emergencyVehiclePriority(2) */ + 9, /* meteringActive(9) */ + 1, /* publicTransportPriority(1) */ + 7, /* trafficJam(7) */ + 3, /* trainPriority(3) */ + 10, /* truckPriority(10) */ + 8, /* tunnelClosure(8) */ + 0, /* unknown(0) */ + 5, /* vehicleHeight(5) */ + 12, /* vehiclePlatoonPriority(12) */ + 6 /* weather(6) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ExceptionalCondition_specs_1 = { + asn_MAP_ExceptionalCondition_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ExceptionalCondition_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ExceptionalCondition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExceptionalCondition = { + "ExceptionalCondition", + "ExceptionalCondition", + &asn_OP_NativeEnumerated, + asn_DEF_ExceptionalCondition_tags_1, + sizeof(asn_DEF_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ExceptionalCondition_tags_1[0]), /* 1 */ + asn_DEF_ExceptionalCondition_tags_1, /* Same as above */ + sizeof(asn_DEF_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ExceptionalCondition_tags_1[0]), /* 1 */ + { &asn_OER_type_ExceptionalCondition_constr_1, &asn_PER_type_ExceptionalCondition_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ExceptionalCondition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ExteriorLights.c b/vcits/mapem/src/ExteriorLights.c new file mode 100644 index 0000000..3cc7abd --- /dev/null +++ b/vcits/mapem/src/ExteriorLights.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ExteriorLights.h" + +int +ExteriorLights_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_ExteriorLights_tags_1, + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + { &asn_OER_type_ExteriorLights_constr_1, &asn_PER_type_ExteriorLights_constr_1, ExteriorLights_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/FreightContainerData.c b/vcits/mapem/src/FreightContainerData.c new file mode 100644 index 0000000..c70283e --- /dev/null +++ b/vcits/mapem/src/FreightContainerData.c @@ -0,0 +1,482 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "FreightContainerData.h" + +static int +memb_ownerCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_serialNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1000000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_checkDigit_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_length_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 2000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_height_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_width_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 200 && value <= 300)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_containerTypeCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_maximumGrossMass_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 19 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_tareMass_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 99)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_ownerCode_constr_2 CC_NOTUSED = { + { 0, 0 }, + 19 /* (SIZE(19..19)) */}; +static asn_per_constraints_t asn_PER_memb_ownerCode_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 19, 19 } /* (SIZE(19..19)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_serialNumber_constr_3 CC_NOTUSED = { + { 4, 1 } /* (0..1000000) */, + -1}; +static asn_per_constraints_t asn_PER_memb_serialNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 1000000 } /* (0..1000000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_checkDigit_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..10) */, + -1}; +static asn_per_constraints_t asn_PER_memb_checkDigit_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 10 } /* (0..10) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_length_constr_5 CC_NOTUSED = { + { 2, 1 } /* (1..2000) */, + -1}; +static asn_per_constraints_t asn_PER_memb_length_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 1, 2000 } /* (1..2000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_height_constr_6 CC_NOTUSED = { + { 2, 1 } /* (1..500) */, + -1}; +static asn_per_constraints_t asn_PER_memb_height_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 500 } /* (1..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_width_constr_7 CC_NOTUSED = { + { 2, 1 } /* (200..300) */, + -1}; +static asn_per_constraints_t asn_PER_memb_width_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 200, 300 } /* (200..300) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_containerTypeCode_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_containerTypeCode_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_maximumGrossMass_constr_9 CC_NOTUSED = { + { 2, 1 } /* (19..500) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maximumGrossMass_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 19, 500 } /* (19..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_tareMass_constr_10 CC_NOTUSED = { + { 1, 1 } /* (0..99) */, + -1}; +static asn_per_constraints_t asn_PER_memb_tareMass_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 99 } /* (0..99) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_fill_constr_11 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_FreightContainerData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, ownerCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_ownerCode_constr_2, &asn_PER_memb_ownerCode_constr_2, memb_ownerCode_constraint_1 }, + 0, 0, /* No default value */ + "ownerCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, serialNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_serialNumber_constr_3, &asn_PER_memb_serialNumber_constr_3, memb_serialNumber_constraint_1 }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, checkDigit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_checkDigit_constr_4, &asn_PER_memb_checkDigit_constr_4, memb_checkDigit_constraint_1 }, + 0, 0, /* No default value */ + "checkDigit" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, length), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_length_constr_5, &asn_PER_memb_length_constr_5, memb_length_constraint_1 }, + 0, 0, /* No default value */ + "length" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, height), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_height_constr_6, &asn_PER_memb_height_constr_6, memb_height_constraint_1 }, + 0, 0, /* No default value */ + "height" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, width), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_width_constr_7, &asn_PER_memb_width_constr_7, memb_width_constraint_1 }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, containerTypeCode), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_containerTypeCode_constr_8, &asn_PER_memb_containerTypeCode_constr_8, memb_containerTypeCode_constraint_1 }, + 0, 0, /* No default value */ + "containerTypeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, maximumGrossMass), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maximumGrossMass_constr_9, &asn_PER_memb_maximumGrossMass_constr_9, memb_maximumGrossMass_constraint_1 }, + 0, 0, /* No default value */ + "maximumGrossMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, tareMass), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_tareMass_constr_10, &asn_PER_memb_tareMass_constr_10, memb_tareMass_constraint_1 }, + 0, 0, /* No default value */ + "tareMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, fill), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_11, &asn_PER_memb_fill_constr_11, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_FreightContainerData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FreightContainerData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ownerCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serialNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* checkDigit */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* length */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* height */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* width */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* containerTypeCode */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* maximumGrossMass */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* tareMass */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* fill */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FreightContainerData_specs_1 = { + sizeof(struct FreightContainerData), + offsetof(struct FreightContainerData, _asn_ctx), + asn_MAP_FreightContainerData_tag2el_1, + 10, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FreightContainerData = { + "FreightContainerData", + "FreightContainerData", + &asn_OP_SEQUENCE, + asn_DEF_FreightContainerData_tags_1, + sizeof(asn_DEF_FreightContainerData_tags_1) + /sizeof(asn_DEF_FreightContainerData_tags_1[0]), /* 1 */ + asn_DEF_FreightContainerData_tags_1, /* Same as above */ + sizeof(asn_DEF_FreightContainerData_tags_1) + /sizeof(asn_DEF_FreightContainerData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/FuelType.c b/vcits/mapem/src/FuelType.c new file mode 100644 index 0000000..f46768a --- /dev/null +++ b/vcits/mapem/src/FuelType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "FuelType.h" + +int +FuelType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FuelType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_FuelType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_FuelType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FuelType = { + "FuelType", + "FuelType", + &asn_OP_NativeInteger, + asn_DEF_FuelType_tags_1, + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + asn_DEF_FuelType_tags_1, /* Same as above */ + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + { &asn_OER_type_FuelType_constr_1, &asn_PER_type_FuelType_constr_1, FuelType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/FullPositionVector.c b/vcits/mapem/src/FullPositionVector.c new file mode 100644 index 0000000..8bd59d6 --- /dev/null +++ b/vcits/mapem/src/FullPositionVector.c @@ -0,0 +1,147 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "FullPositionVector.h" + +#include "DDateTime.h" +#include "TransmissionAndSpeed.h" +#include "PositionalAccuracy.h" +#include "PositionConfidenceSet.h" +#include "SpeedandHeadingandThrottleConfidence.h" +asn_TYPE_member_t asn_MBR_FullPositionVector_1[] = { + { ATF_POINTER, 1, offsetof(struct FullPositionVector, utcTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDateTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "utcTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "long" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, lat), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_POINTER, 7, offsetof(struct FullPositionVector, elevation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Elevation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 6, offsetof(struct FullPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 5, offsetof(struct FullPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct FullPositionVector, posAccuracy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionalAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posAccuracy" + }, + { ATF_POINTER, 3, offsetof(struct FullPositionVector, timeConfidence), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeConfidence" + }, + { ATF_POINTER, 2, offsetof(struct FullPositionVector, posConfidence), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidenceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posConfidence" + }, + { ATF_POINTER, 1, offsetof(struct FullPositionVector, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedandHeadingandThrottleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const int asn_MAP_FullPositionVector_oms_1[] = { 0, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_FullPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FullPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* utcTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* posAccuracy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* timeConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* posConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1 = { + sizeof(struct FullPositionVector), + offsetof(struct FullPositionVector, _asn_ctx), + asn_MAP_FullPositionVector_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_FullPositionVector_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FullPositionVector = { + "FullPositionVector", + "FullPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_FullPositionVector_tags_1, + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + asn_DEF_FullPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FullPositionVector_1, + 10, /* Elements count */ + &asn_SPC_FullPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/GNSSstatus.c b/vcits/mapem/src/GNSSstatus.c new file mode 100644 index 0000000..57a6b8b --- /dev/null +++ b/vcits/mapem/src/GNSSstatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "GNSSstatus.h" + +int +GNSSstatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GNSSstatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNSSstatus = { + "GNSSstatus", + "GNSSstatus", + &asn_OP_BIT_STRING, + asn_DEF_GNSSstatus_tags_1, + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + asn_DEF_GNSSstatus_tags_1, /* Same as above */ + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + { &asn_OER_type_GNSSstatus_constr_1, &asn_PER_type_GNSSstatus_constr_1, GNSSstatus_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/GenericLane.c b/vcits/mapem/src/GenericLane.c new file mode 100644 index 0000000..a206d62 --- /dev/null +++ b/vcits/mapem/src/GenericLane.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "GenericLane.h" + +#include "ConnectsToList.h" +#include "OverlayLaneList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct GenericLane__regional), + offsetof(struct GenericLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { &asn_OER_type_regional_constr_11, &asn_PER_type_regional_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GenericLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, ingressApproach), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ingressApproach" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, egressApproach), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "egressApproach" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneAttributes), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneAttributes" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, maneuvers), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuvers" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, nodeList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeListXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeList" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, connectsTo), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectsToList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectsTo" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, overlays), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OverlayLaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "overlays" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { &asn_OER_memb_regional_constr_11, &asn_PER_memb_regional_constr_11, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_GenericLane_oms_1[] = { 1, 2, 3, 5, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_GenericLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GenericLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ingressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* egressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAttributes */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maneuvers */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* nodeList */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* connectsTo */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* overlays */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1 = { + sizeof(struct GenericLane), + offsetof(struct GenericLane, _asn_ctx), + asn_MAP_GenericLane_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_GenericLane_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GenericLane = { + "GenericLane", + "GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_GenericLane_tags_1, + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + asn_DEF_GenericLane_tags_1, /* Same as above */ + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GenericLane_1, + 10, /* Elements count */ + &asn_SPC_GenericLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/GeoGraphicalLimit.c b/vcits/mapem/src/GeoGraphicalLimit.c new file mode 100644 index 0000000..5b57bd1 --- /dev/null +++ b/vcits/mapem/src/GeoGraphicalLimit.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "GeoGraphicalLimit.h" + +int +GeoGraphicalLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GeoGraphicalLimit_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_GeoGraphicalLimit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GeoGraphicalLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GeoGraphicalLimit = { + "GeoGraphicalLimit", + "GeoGraphicalLimit", + &asn_OP_BIT_STRING, + asn_DEF_GeoGraphicalLimit_tags_1, + sizeof(asn_DEF_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_GeoGraphicalLimit_tags_1[0]), /* 1 */ + asn_DEF_GeoGraphicalLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_GeoGraphicalLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_GeoGraphicalLimit_constr_1, &asn_PER_type_GeoGraphicalLimit_constr_1, GeoGraphicalLimit_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/HardShoulderStatus.c b/vcits/mapem/src/HardShoulderStatus.c new file mode 100644 index 0000000..3392c4d --- /dev/null +++ b/vcits/mapem/src/HardShoulderStatus.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "HardShoulderStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HardShoulderStatus_value2enum_1[] = { + { 0, 20, "availableForStopping" }, + { 1, 6, "closed" }, + { 2, 19, "availableForDriving" } +}; +static const unsigned int asn_MAP_HardShoulderStatus_enum2value_1[] = { + 2, /* availableForDriving(2) */ + 0, /* availableForStopping(0) */ + 1 /* closed(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1 = { + asn_MAP_HardShoulderStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HardShoulderStatus_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HardShoulderStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus = { + "HardShoulderStatus", + "HardShoulderStatus", + &asn_OP_NativeEnumerated, + asn_DEF_HardShoulderStatus_tags_1, + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + asn_DEF_HardShoulderStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_HardShoulderStatus_constr_1, &asn_PER_type_HardShoulderStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HardShoulderStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c b/vcits/mapem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..a0225fe --- /dev/null +++ b/vcits/mapem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "HazardousLocation-AnimalOnTheRoadSubCauseCode.h" + +int +HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode = { + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/HazardousLocation-DangerousCurveSubCauseCode.c b/vcits/mapem/src/HazardousLocation-DangerousCurveSubCauseCode.c new file mode 100644 index 0000000..adc48e7 --- /dev/null +++ b/vcits/mapem/src/HazardousLocation-DangerousCurveSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "HazardousLocation-DangerousCurveSubCauseCode.h" + +int +HazardousLocation_DangerousCurveSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode = { + "HazardousLocation-DangerousCurveSubCauseCode", + "HazardousLocation-DangerousCurveSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, HazardousLocation_DangerousCurveSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c b/vcits/mapem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..f9e7ca7 --- /dev/null +++ b/vcits/mapem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" + +int +HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode = { + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/HazardousLocation-SurfaceConditionSubCauseCode.c b/vcits/mapem/src/HazardousLocation-SurfaceConditionSubCauseCode.c new file mode 100644 index 0000000..a808e2d --- /dev/null +++ b/vcits/mapem/src/HazardousLocation-SurfaceConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "HazardousLocation-SurfaceConditionSubCauseCode.h" + +int +HazardousLocation_SurfaceConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode = { + "HazardousLocation-SurfaceConditionSubCauseCode", + "HazardousLocation-SurfaceConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, HazardousLocation_SurfaceConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Heading.c b/vcits/mapem/src/Heading.c new file mode 100644 index 0000000..ed7dc79 --- /dev/null +++ b/vcits/mapem/src/Heading.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Heading.h" + +static asn_TYPE_member_t asn_MBR_Heading_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Heading_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* headingValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* headingConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Heading_specs_1 = { + sizeof(struct Heading), + offsetof(struct Heading, _asn_ctx), + asn_MAP_Heading_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Heading = { + "Heading", + "Heading", + &asn_OP_SEQUENCE, + asn_DEF_Heading_tags_1, + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + asn_DEF_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Heading_1, + 2, /* Elements count */ + &asn_SPC_Heading_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/HeadingConfidence.c b/vcits/mapem/src/HeadingConfidence.c new file mode 100644 index 0000000..58461f8 --- /dev/null +++ b/vcits/mapem/src/HeadingConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "HeadingConfidence.h" + +int +HeadingConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeInteger, + asn_DEF_HeadingConfidence_tags_1, + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidence_constr_1, &asn_PER_type_HeadingConfidence_constr_1, HeadingConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/HeadingConfidenceDSRC.c b/vcits/mapem/src/HeadingConfidenceDSRC.c new file mode 100644 index 0000000..dc142b4 --- /dev/null +++ b/vcits/mapem/src/HeadingConfidenceDSRC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "HeadingConfidenceDSRC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidenceDSRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidenceDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HeadingConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec10deg" }, + { 2, 9, "prec05deg" }, + { 3, 9, "prec01deg" }, + { 4, 10, "prec0-1deg" }, + { 5, 11, "prec0-05deg" }, + { 6, 11, "prec0-01deg" }, + { 7, 13, "prec0-0125deg" } +}; +static const unsigned int asn_MAP_HeadingConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-0125deg(7) */ + 6, /* prec0-01deg(6) */ + 5, /* prec0-05deg(5) */ + 4, /* prec0-1deg(4) */ + 3, /* prec01deg(3) */ + 2, /* prec05deg(2) */ + 1, /* prec10deg(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HeadingConfidenceDSRC_specs_1 = { + asn_MAP_HeadingConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HeadingConfidenceDSRC_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidenceDSRC = { + "HeadingConfidenceDSRC", + "HeadingConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_HeadingConfidenceDSRC_tags_1, + sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidenceDSRC_constr_1, &asn_PER_type_HeadingConfidenceDSRC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HeadingConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/HeadingDSRC.c b/vcits/mapem/src/HeadingDSRC.c new file mode 100644 index 0000000..bed3b7c --- /dev/null +++ b/vcits/mapem/src/HeadingDSRC.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "HeadingDSRC.h" + +int +HeadingDSRC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 28800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingDSRC_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingDSRC = { + "HeadingDSRC", + "HeadingDSRC", + &asn_OP_NativeInteger, + asn_DEF_HeadingDSRC_tags_1, + sizeof(asn_DEF_HeadingDSRC_tags_1) + /sizeof(asn_DEF_HeadingDSRC_tags_1[0]), /* 1 */ + asn_DEF_HeadingDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingDSRC_tags_1) + /sizeof(asn_DEF_HeadingDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingDSRC_constr_1, &asn_PER_type_HeadingDSRC_constr_1, HeadingDSRC_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/HeadingValue.c b/vcits/mapem/src/HeadingValue.c new file mode 100644 index 0000000..eafe08f --- /dev/null +++ b/vcits/mapem/src/HeadingValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "HeadingValue.h" + +int +HeadingValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3601)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3601) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingValue = { + "HeadingValue", + "HeadingValue", + &asn_OP_NativeInteger, + asn_DEF_HeadingValue_tags_1, + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + asn_DEF_HeadingValue_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingValue_constr_1, &asn_PER_type_HeadingValue_constr_1, HeadingValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/HeightLonCarr.c b/vcits/mapem/src/HeightLonCarr.c new file mode 100644 index 0000000..67e4040 --- /dev/null +++ b/vcits/mapem/src/HeightLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "HeightLonCarr.h" + +int +HeightLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..100) */, + -1}; +static asn_per_constraints_t asn_PER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 100 } /* (1..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeightLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeightLonCarr = { + "HeightLonCarr", + "HeightLonCarr", + &asn_OP_NativeInteger, + asn_DEF_HeightLonCarr_tags_1, + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + asn_DEF_HeightLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_HeightLonCarr_constr_1, &asn_PER_type_HeightLonCarr_constr_1, HeightLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/HumanPresenceOnTheRoadSubCauseCode.c b/vcits/mapem/src/HumanPresenceOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..439c9fb --- /dev/null +++ b/vcits/mapem/src/HumanPresenceOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "HumanPresenceOnTheRoadSubCauseCode.h" + +int +HumanPresenceOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode = { + "HumanPresenceOnTheRoadSubCauseCode", + "HumanPresenceOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, HumanPresenceOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/HumanProblemSubCauseCode.c b/vcits/mapem/src/HumanProblemSubCauseCode.c new file mode 100644 index 0000000..e075294 --- /dev/null +++ b/vcits/mapem/src/HumanProblemSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "HumanProblemSubCauseCode.h" + +int +HumanProblemSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanProblemSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode = { + "HumanProblemSubCauseCode", + "HumanProblemSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanProblemSubCauseCode_tags_1, + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanProblemSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanProblemSubCauseCode_constr_1, &asn_PER_type_HumanProblemSubCauseCode_constr_1, HumanProblemSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/InformationQuality.c b/vcits/mapem/src/InformationQuality.c new file mode 100644 index 0000000..399ca88 --- /dev/null +++ b/vcits/mapem/src/InformationQuality.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "InformationQuality.h" + +int +InformationQuality_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_InformationQuality_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_InformationQuality_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_InformationQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InformationQuality = { + "InformationQuality", + "InformationQuality", + &asn_OP_NativeInteger, + asn_DEF_InformationQuality_tags_1, + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + asn_DEF_InformationQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + { &asn_OER_type_InformationQuality_constr_1, &asn_PER_type_InformationQuality_constr_1, InformationQuality_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/IntersectionAccessPoint.c b/vcits/mapem/src/IntersectionAccessPoint.c new file mode 100644 index 0000000..7057e21 --- /dev/null +++ b/vcits/mapem/src/IntersectionAccessPoint.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "IntersectionAccessPoint.h" + +static asn_oer_constraints_t asn_OER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.approach), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "approach" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.connection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionAccessPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* approach */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* connection */ +}; +asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1 = { + sizeof(struct IntersectionAccessPoint), + offsetof(struct IntersectionAccessPoint, _asn_ctx), + offsetof(struct IntersectionAccessPoint, present), + sizeof(((struct IntersectionAccessPoint *)0)->present), + asn_MAP_IntersectionAccessPoint_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint = { + "IntersectionAccessPoint", + "IntersectionAccessPoint", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_IntersectionAccessPoint_constr_1, &asn_PER_type_IntersectionAccessPoint_constr_1, CHOICE_constraint }, + asn_MBR_IntersectionAccessPoint_1, + 3, /* Elements count */ + &asn_SPC_IntersectionAccessPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/IntersectionGeometry.c b/vcits/mapem/src/IntersectionGeometry.c new file mode 100644 index 0000000..90a1173 --- /dev/null +++ b/vcits/mapem/src/IntersectionGeometry.c @@ -0,0 +1,214 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "IntersectionGeometry.h" + +#include "SpeedLimitList.h" +#include "PreemptPriorityList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionGeometry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct IntersectionGeometry__regional), + offsetof(struct IntersectionGeometry__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, laneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneSet" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, preemptPriorityData), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PreemptPriorityList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "preemptPriorityData" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionGeometry_oms_1[] = { 0, 4, 5, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionGeometry_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* laneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* preemptPriorityData */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1 = { + sizeof(struct IntersectionGeometry), + offsetof(struct IntersectionGeometry, _asn_ctx), + asn_MAP_IntersectionGeometry_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_IntersectionGeometry_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry = { + "IntersectionGeometry", + "IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionGeometry_tags_1, + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometry_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionGeometry_1, + 9, /* Elements count */ + &asn_SPC_IntersectionGeometry_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/IntersectionGeometryList.c b/vcits/mapem/src/IntersectionGeometryList.c new file mode 100644 index 0000000..73237d4 --- /dev/null +++ b/vcits/mapem/src/IntersectionGeometryList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "IntersectionGeometryList.h" + +#include "IntersectionGeometry.h" +static asn_oer_constraints_t asn_OER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionGeometry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometryList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1 = { + sizeof(struct IntersectionGeometryList), + offsetof(struct IntersectionGeometryList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList = { + "IntersectionGeometryList", + "IntersectionGeometryList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionGeometryList_tags_1, + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometryList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionGeometryList_constr_1, &asn_PER_type_IntersectionGeometryList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntersectionGeometryList_1, + 1, /* Single element */ + &asn_SPC_IntersectionGeometryList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/IntersectionID.c b/vcits/mapem/src/IntersectionID.c new file mode 100644 index 0000000..0558500 --- /dev/null +++ b/vcits/mapem/src/IntersectionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "IntersectionID.h" + +int +IntersectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntersectionID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_IntersectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IntersectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionID = { + "IntersectionID", + "IntersectionID", + &asn_OP_NativeInteger, + asn_DEF_IntersectionID_tags_1, + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionID_constr_1, &asn_PER_type_IntersectionID_constr_1, IntersectionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/IntersectionReferenceID.c b/vcits/mapem/src/IntersectionReferenceID.c new file mode 100644 index 0000000..30118af --- /dev/null +++ b/vcits/mapem/src/IntersectionReferenceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "IntersectionReferenceID.h" + +asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_IntersectionReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1 = { + sizeof(struct IntersectionReferenceID), + offsetof(struct IntersectionReferenceID, _asn_ctx), + asn_MAP_IntersectionReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_IntersectionReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID = { + "IntersectionReferenceID", + "IntersectionReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionReferenceID_tags_1, + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionReferenceID_1, + 2, /* Elements count */ + &asn_SPC_IntersectionReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/IntersectionState-addGrpC.c b/vcits/mapem/src/IntersectionState-addGrpC.c new file mode 100644 index 0000000..929d0ca --- /dev/null +++ b/vcits/mapem/src/IntersectionState-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "IntersectionState-addGrpC.h" + +#include "PrioritizationResponseList.h" +asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState_addGrpC, activePrioritizations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "activePrioritizations" + }, +}; +static const int asn_MAP_IntersectionState_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* activePrioritizations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1 = { + sizeof(struct IntersectionState_addGrpC), + offsetof(struct IntersectionState_addGrpC, _asn_ctx), + asn_MAP_IntersectionState_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_IntersectionState_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC = { + "IntersectionState-addGrpC", + "IntersectionState-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_addGrpC_tags_1, + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionState_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_IntersectionState_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/IntersectionState.c b/vcits/mapem/src/IntersectionState.c new file mode 100644 index 0000000..bcc1778 --- /dev/null +++ b/vcits/mapem/src/IntersectionState.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "IntersectionState.h" + +#include "EnabledLaneList.h" +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct IntersectionState__regional), + offsetof(struct IntersectionState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { &asn_OER_type_regional_constr_11, &asn_PER_type_regional_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionState_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStatusObject, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 3, offsetof(struct IntersectionState, moy), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "moy" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, enabledLanes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EnabledLaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabledLanes" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, states), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "states" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { &asn_OER_memb_regional_constr_11, &asn_PER_memb_regional_constr_11, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionState_oms_1[] = { 0, 4, 5, 6, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* moy */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* enabledLanes */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* states */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1 = { + sizeof(struct IntersectionState), + offsetof(struct IntersectionState, _asn_ctx), + asn_MAP_IntersectionState_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_IntersectionState_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState = { + "IntersectionState", + "IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_tags_1, + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionState_1, + 10, /* Elements count */ + &asn_SPC_IntersectionState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/IntersectionStateList.c b/vcits/mapem/src/IntersectionStateList.c new file mode 100644 index 0000000..1580273 --- /dev/null +++ b/vcits/mapem/src/IntersectionStateList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "IntersectionStateList.h" + +#include "IntersectionState.h" +static asn_oer_constraints_t asn_OER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1 = { + sizeof(struct IntersectionStateList), + offsetof(struct IntersectionStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStateList = { + "IntersectionStateList", + "IntersectionStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionStateList_tags_1, + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionStateList_constr_1, &asn_PER_type_IntersectionStateList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntersectionStateList_1, + 1, /* Single element */ + &asn_SPC_IntersectionStateList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/IntersectionStatusObject.c b/vcits/mapem/src/IntersectionStatusObject.c new file mode 100644 index 0000000..d569a36 --- /dev/null +++ b/vcits/mapem/src/IntersectionStatusObject.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "IntersectionStatusObject.h" + +int +IntersectionStatusObject_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStatusObject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject = { + "IntersectionStatusObject", + "IntersectionStatusObject", + &asn_OP_BIT_STRING, + asn_DEF_IntersectionStatusObject_tags_1, + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStatusObject_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionStatusObject_constr_1, &asn_PER_type_IntersectionStatusObject_constr_1, IntersectionStatusObject_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Iso3833VehicleType.c b/vcits/mapem/src/Iso3833VehicleType.c new file mode 100644 index 0000000..14b1da4 --- /dev/null +++ b/vcits/mapem/src/Iso3833VehicleType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Iso3833VehicleType.h" + +int +Iso3833VehicleType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Iso3833VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType = { + "Iso3833VehicleType", + "Iso3833VehicleType", + &asn_OP_NativeInteger, + asn_DEF_Iso3833VehicleType_tags_1, + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + asn_DEF_Iso3833VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + { &asn_OER_type_Iso3833VehicleType_constr_1, &asn_PER_type_Iso3833VehicleType_constr_1, Iso3833VehicleType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/IssuerIdentifier.c b/vcits/mapem/src/IssuerIdentifier.c new file mode 100644 index 0000000..d9a913f --- /dev/null +++ b/vcits/mapem/src/IssuerIdentifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "IssuerIdentifier.h" + +int +IssuerIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IssuerIdentifier_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_IssuerIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IssuerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IssuerIdentifier = { + "IssuerIdentifier", + "IssuerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_IssuerIdentifier_tags_1, + sizeof(asn_DEF_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_IssuerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_IssuerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_IssuerIdentifier_tags_1[0]), /* 1 */ + { &asn_OER_type_IssuerIdentifier_constr_1, &asn_PER_type_IssuerIdentifier_constr_1, IssuerIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/ItineraryPath.c b/vcits/mapem/src/ItineraryPath.c new file mode 100644 index 0000000..9935832 --- /dev/null +++ b/vcits/mapem/src/ItineraryPath.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ItineraryPath.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..40)) */}; +static asn_per_constraints_t asn_PER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 40 } /* (SIZE(1..40)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ItineraryPath_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItineraryPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ItineraryPath_specs_1 = { + sizeof(struct ItineraryPath), + offsetof(struct ItineraryPath, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItineraryPath = { + "ItineraryPath", + "ItineraryPath", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItineraryPath_tags_1, + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + asn_DEF_ItineraryPath_tags_1, /* Same as above */ + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + { &asn_OER_type_ItineraryPath_constr_1, &asn_PER_type_ItineraryPath_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItineraryPath_1, + 1, /* Single element */ + &asn_SPC_ItineraryPath_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ItsPduHeader.c b/vcits/mapem/src/ItsPduHeader.c new file mode 100644 index 0000000..037f8a9 --- /dev/null +++ b/vcits/mapem/src/ItsPduHeader.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ItsPduHeader.h" + +static int +memb_protocolVersion_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_messageID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_messageID_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_messageID_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsPduHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, protocolVersion), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_protocolVersion_constr_2, &asn_PER_memb_protocolVersion_constr_2, memb_protocolVersion_constraint_1 }, + 0, 0, /* No default value */ + "protocolVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, messageID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_messageID_constr_3, &asn_PER_memb_messageID_constr_3, memb_messageID_constraint_1 }, + 0, 0, /* No default value */ + "messageID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, stationID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsPduHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsPduHeader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolVersion */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* messageID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* stationID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1 = { + sizeof(struct ItsPduHeader), + offsetof(struct ItsPduHeader, _asn_ctx), + asn_MAP_ItsPduHeader_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsPduHeader = { + "ItsPduHeader", + "ItsPduHeader", + &asn_OP_SEQUENCE, + asn_DEF_ItsPduHeader_tags_1, + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + asn_DEF_ItsPduHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsPduHeader_1, + 3, /* Elements count */ + &asn_SPC_ItsPduHeader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ItsStationPosition.c b/vcits/mapem/src/ItsStationPosition.c new file mode 100644 index 0000000..cf5be66 --- /dev/null +++ b/vcits/mapem/src/ItsStationPosition.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ItsStationPosition.h" + +#include "NodeOffsetPointXY.h" +asn_TYPE_member_t asn_MBR_ItsStationPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsStationPosition, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_POINTER, 3, offsetof(struct ItsStationPosition, laneID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 2, offsetof(struct ItsStationPosition, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_POINTER, 1, offsetof(struct ItsStationPosition, timeReference), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeReference, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeReference" + }, +}; +static const int asn_MAP_ItsStationPosition_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ItsStationPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsStationPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* timeReference */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsStationPosition_specs_1 = { + sizeof(struct ItsStationPosition), + offsetof(struct ItsStationPosition, _asn_ctx), + asn_MAP_ItsStationPosition_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ItsStationPosition_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsStationPosition = { + "ItsStationPosition", + "ItsStationPosition", + &asn_OP_SEQUENCE, + asn_DEF_ItsStationPosition_tags_1, + sizeof(asn_DEF_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ItsStationPosition_tags_1[0]), /* 1 */ + asn_DEF_ItsStationPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ItsStationPosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsStationPosition_1, + 4, /* Elements count */ + &asn_SPC_ItsStationPosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ItsStationPositionList.c b/vcits/mapem/src/ItsStationPositionList.c new file mode 100644 index 0000000..d625e03 --- /dev/null +++ b/vcits/mapem/src/ItsStationPositionList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ItsStationPositionList.h" + +#include "ItsStationPosition.h" +static asn_oer_constraints_t asn_OER_type_ItsStationPositionList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_ItsStationPositionList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsStationPositionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ItsStationPosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsStationPositionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ItsStationPositionList_specs_1 = { + sizeof(struct ItsStationPositionList), + offsetof(struct ItsStationPositionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsStationPositionList = { + "ItsStationPositionList", + "ItsStationPositionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItsStationPositionList_tags_1, + sizeof(asn_DEF_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ItsStationPositionList_tags_1[0]), /* 1 */ + asn_DEF_ItsStationPositionList_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ItsStationPositionList_tags_1[0]), /* 1 */ + { &asn_OER_type_ItsStationPositionList_constr_1, &asn_PER_type_ItsStationPositionList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItsStationPositionList_1, + 1, /* Single element */ + &asn_SPC_ItsStationPositionList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneAttributes-Barrier.c b/vcits/mapem/src/LaneAttributes-Barrier.c new file mode 100644 index 0000000..a7c96fb --- /dev/null +++ b/vcits/mapem/src/LaneAttributes-Barrier.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneAttributes-Barrier.h" + +int +LaneAttributes_Barrier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Barrier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier = { + "LaneAttributes-Barrier", + "LaneAttributes-Barrier", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Barrier_tags_1, + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Barrier_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Barrier_constr_1, &asn_PER_type_LaneAttributes_Barrier_constr_1, LaneAttributes_Barrier_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneAttributes-Bike.c b/vcits/mapem/src/LaneAttributes-Bike.c new file mode 100644 index 0000000..56e71b5 --- /dev/null +++ b/vcits/mapem/src/LaneAttributes-Bike.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneAttributes-Bike.h" + +int +LaneAttributes_Bike_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Bike_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike = { + "LaneAttributes-Bike", + "LaneAttributes-Bike", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Bike_tags_1, + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Bike_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Bike_constr_1, &asn_PER_type_LaneAttributes_Bike_constr_1, LaneAttributes_Bike_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneAttributes-Crosswalk.c b/vcits/mapem/src/LaneAttributes-Crosswalk.c new file mode 100644 index 0000000..143c17d --- /dev/null +++ b/vcits/mapem/src/LaneAttributes-Crosswalk.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneAttributes-Crosswalk.h" + +int +LaneAttributes_Crosswalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Crosswalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk = { + "LaneAttributes-Crosswalk", + "LaneAttributes-Crosswalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Crosswalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Crosswalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Crosswalk_constr_1, &asn_PER_type_LaneAttributes_Crosswalk_constr_1, LaneAttributes_Crosswalk_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneAttributes-Parking.c b/vcits/mapem/src/LaneAttributes-Parking.c new file mode 100644 index 0000000..afece4a --- /dev/null +++ b/vcits/mapem/src/LaneAttributes-Parking.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneAttributes-Parking.h" + +int +LaneAttributes_Parking_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Parking_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking = { + "LaneAttributes-Parking", + "LaneAttributes-Parking", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Parking_tags_1, + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Parking_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Parking_constr_1, &asn_PER_type_LaneAttributes_Parking_constr_1, LaneAttributes_Parking_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneAttributes-Sidewalk.c b/vcits/mapem/src/LaneAttributes-Sidewalk.c new file mode 100644 index 0000000..d568a03 --- /dev/null +++ b/vcits/mapem/src/LaneAttributes-Sidewalk.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneAttributes-Sidewalk.h" + +int +LaneAttributes_Sidewalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Sidewalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk = { + "LaneAttributes-Sidewalk", + "LaneAttributes-Sidewalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Sidewalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Sidewalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Sidewalk_constr_1, &asn_PER_type_LaneAttributes_Sidewalk_constr_1, LaneAttributes_Sidewalk_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneAttributes-Striping.c b/vcits/mapem/src/LaneAttributes-Striping.c new file mode 100644 index 0000000..3813c3f --- /dev/null +++ b/vcits/mapem/src/LaneAttributes-Striping.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneAttributes-Striping.h" + +int +LaneAttributes_Striping_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Striping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping = { + "LaneAttributes-Striping", + "LaneAttributes-Striping", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Striping_tags_1, + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Striping_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Striping_constr_1, &asn_PER_type_LaneAttributes_Striping_constr_1, LaneAttributes_Striping_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneAttributes-TrackedVehicle.c b/vcits/mapem/src/LaneAttributes-TrackedVehicle.c new file mode 100644 index 0000000..d8d1699 --- /dev/null +++ b/vcits/mapem/src/LaneAttributes-TrackedVehicle.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneAttributes-TrackedVehicle.h" + +int +LaneAttributes_TrackedVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_TrackedVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle = { + "LaneAttributes-TrackedVehicle", + "LaneAttributes-TrackedVehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_TrackedVehicle_constr_1, &asn_PER_type_LaneAttributes_TrackedVehicle_constr_1, LaneAttributes_TrackedVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneAttributes-Vehicle.c b/vcits/mapem/src/LaneAttributes-Vehicle.c new file mode 100644 index 0000000..7e75763 --- /dev/null +++ b/vcits/mapem/src/LaneAttributes-Vehicle.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneAttributes-Vehicle.h" + +int +LaneAttributes_Vehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 8, 8 } /* (SIZE(8..8,...)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Vehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle = { + "LaneAttributes-Vehicle", + "LaneAttributes-Vehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Vehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Vehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Vehicle_constr_1, &asn_PER_type_LaneAttributes_Vehicle_constr_1, LaneAttributes_Vehicle_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneAttributes-addGrpC.c b/vcits/mapem/src/LaneAttributes-addGrpC.c new file mode 100644 index 0000000..6d8f71a --- /dev/null +++ b/vcits/mapem/src/LaneAttributes-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneAttributes-addGrpC.h" + +asn_TYPE_member_t asn_MBR_LaneAttributes_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct LaneAttributes_addGrpC, maxVehicleHeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleHeight, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxVehicleHeight" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes_addGrpC, maxVehicleWeight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleMass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxVehicleWeight" + }, +}; +static const int asn_MAP_LaneAttributes_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxVehicleHeight */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maxVehicleWeight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_addGrpC_specs_1 = { + sizeof(struct LaneAttributes_addGrpC), + offsetof(struct LaneAttributes_addGrpC, _asn_ctx), + asn_MAP_LaneAttributes_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_LaneAttributes_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_addGrpC = { + "LaneAttributes-addGrpC", + "LaneAttributes-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_addGrpC_tags_1, + sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneAttributes_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_LaneAttributes_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneAttributes.c b/vcits/mapem/src/LaneAttributes.c new file mode 100644 index 0000000..dc93f8f --- /dev/null +++ b/vcits/mapem/src/LaneAttributes.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneAttributes.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_LaneAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, directionalUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDirection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "directionalUse" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, sharedWith), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneSharing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sharedWith" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, laneType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_LaneTypeAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneType" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_LaneAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_LaneAttributes_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* directionalUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sharedWith */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1 = { + sizeof(struct LaneAttributes), + offsetof(struct LaneAttributes, _asn_ctx), + asn_MAP_LaneAttributes_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_LaneAttributes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes = { + "LaneAttributes", + "LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_tags_1, + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneAttributes_1, + 4, /* Elements count */ + &asn_SPC_LaneAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneConnectionID.c b/vcits/mapem/src/LaneConnectionID.c new file mode 100644 index 0000000..19a432d --- /dev/null +++ b/vcits/mapem/src/LaneConnectionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneConnectionID.h" + +int +LaneConnectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneConnectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneConnectionID = { + "LaneConnectionID", + "LaneConnectionID", + &asn_OP_NativeInteger, + asn_DEF_LaneConnectionID_tags_1, + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + asn_DEF_LaneConnectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneConnectionID_constr_1, &asn_PER_type_LaneConnectionID_constr_1, LaneConnectionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/LaneDataAttribute.c b/vcits/mapem/src/LaneDataAttribute.c new file mode 100644 index 0000000..4826c18 --- /dev/null +++ b/vcits/mapem/src/LaneDataAttribute.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneDataAttribute.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_LaneDataAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct LaneDataAttribute__regional), + offsetof(struct LaneDataAttribute__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.pathEndPointAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathEndPointAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointCenter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointCenter" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointLeft), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointRight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneAngle), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MergeDivergeNodeAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneDataAttribute_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathEndPointAngle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneCrownPointCenter */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneCrownPointLeft */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneCrownPointRight */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAngle */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1 = { + sizeof(struct LaneDataAttribute), + offsetof(struct LaneDataAttribute, _asn_ctx), + offsetof(struct LaneDataAttribute, present), + sizeof(((struct LaneDataAttribute *)0)->present), + asn_MAP_LaneDataAttribute_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute = { + "LaneDataAttribute", + "LaneDataAttribute", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LaneDataAttribute_constr_1, &asn_PER_type_LaneDataAttribute_constr_1, CHOICE_constraint }, + asn_MBR_LaneDataAttribute_1, + 7, /* Elements count */ + &asn_SPC_LaneDataAttribute_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneDataAttributeList.c b/vcits/mapem/src/LaneDataAttributeList.c new file mode 100644 index 0000000..98317b3 --- /dev/null +++ b/vcits/mapem/src/LaneDataAttributeList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneDataAttributeList.h" + +#include "LaneDataAttribute.h" +static asn_oer_constraints_t asn_OER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_LaneDataAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneDataAttributeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1 = { + sizeof(struct LaneDataAttributeList), + offsetof(struct LaneDataAttributeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList = { + "LaneDataAttributeList", + "LaneDataAttributeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneDataAttributeList_tags_1, + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + asn_DEF_LaneDataAttributeList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDataAttributeList_constr_1, &asn_PER_type_LaneDataAttributeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneDataAttributeList_1, + 1, /* Single element */ + &asn_SPC_LaneDataAttributeList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneDirection.c b/vcits/mapem/src/LaneDirection.c new file mode 100644 index 0000000..6324584 --- /dev/null +++ b/vcits/mapem/src/LaneDirection.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneDirection.h" + +int +LaneDirection_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +asn_per_constraints_t asn_PER_type_LaneDirection_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneDirection = { + "LaneDirection", + "LaneDirection", + &asn_OP_BIT_STRING, + asn_DEF_LaneDirection_tags_1, + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + asn_DEF_LaneDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDirection_constr_1, &asn_PER_type_LaneDirection_constr_1, LaneDirection_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneID.c b/vcits/mapem/src/LaneID.c new file mode 100644 index 0000000..ebfa984 --- /dev/null +++ b/vcits/mapem/src/LaneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneID.h" + +int +LaneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneID = { + "LaneID", + "LaneID", + &asn_OP_NativeInteger, + asn_DEF_LaneID_tags_1, + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + asn_DEF_LaneID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneID_constr_1, &asn_PER_type_LaneID_constr_1, LaneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/LaneList.c b/vcits/mapem/src/LaneList.c new file mode 100644 index 0000000..1d92ccd --- /dev/null +++ b/vcits/mapem/src/LaneList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneList.h" + +#include "GenericLane.h" +static asn_oer_constraints_t asn_OER_type_LaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_LaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1 = { + sizeof(struct LaneList), + offsetof(struct LaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneList = { + "LaneList", + "LaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneList_tags_1, + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + asn_DEF_LaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneList_constr_1, &asn_PER_type_LaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneList_1, + 1, /* Single element */ + &asn_SPC_LaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LanePosition.c b/vcits/mapem/src/LanePosition.c new file mode 100644 index 0000000..f310f34 --- /dev/null +++ b/vcits/mapem/src/LanePosition.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LanePosition.h" + +int +LanePosition_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1 && value <= 14)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LanePosition_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-1..14) */, + -1}; +static asn_per_constraints_t asn_PER_type_LanePosition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, -1, 14 } /* (-1..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LanePosition = { + "LanePosition", + "LanePosition", + &asn_OP_NativeInteger, + asn_DEF_LanePosition_tags_1, + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + asn_DEF_LanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + { &asn_OER_type_LanePosition_constr_1, &asn_PER_type_LanePosition_constr_1, LanePosition_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/LaneSharing.c b/vcits/mapem/src/LaneSharing.c new file mode 100644 index 0000000..82af287 --- /dev/null +++ b/vcits/mapem/src/LaneSharing.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneSharing.h" + +int +LaneSharing_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneSharing_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_LaneSharing_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneSharing_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneSharing = { + "LaneSharing", + "LaneSharing", + &asn_OP_BIT_STRING, + asn_DEF_LaneSharing_tags_1, + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + asn_DEF_LaneSharing_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneSharing_constr_1, &asn_PER_type_LaneSharing_constr_1, LaneSharing_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneTypeAttributes.c b/vcits/mapem/src/LaneTypeAttributes.c new file mode 100644 index 0000000..128e9f8 --- /dev/null +++ b/vcits/mapem/src/LaneTypeAttributes.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneTypeAttributes.h" + +static asn_oer_constraints_t asn_OER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.vehicle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Vehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.crosswalk), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Crosswalk, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crosswalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.bikeLane), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Bike, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bikeLane" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.sidewalk), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Sidewalk, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sidewalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.median), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Barrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "median" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.striping), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Striping, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "striping" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.trackedVehicle), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_TrackedVehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trackedVehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.parking), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Parking, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "parking" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneTypeAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* crosswalk */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bikeLane */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sidewalk */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* median */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* striping */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* trackedVehicle */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* parking */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1 = { + sizeof(struct LaneTypeAttributes), + offsetof(struct LaneTypeAttributes, _asn_ctx), + offsetof(struct LaneTypeAttributes, present), + sizeof(((struct LaneTypeAttributes *)0)->present), + asn_MAP_LaneTypeAttributes_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + 8 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes = { + "LaneTypeAttributes", + "LaneTypeAttributes", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LaneTypeAttributes_constr_1, &asn_PER_type_LaneTypeAttributes_constr_1, CHOICE_constraint }, + asn_MBR_LaneTypeAttributes_1, + 8, /* Elements count */ + &asn_SPC_LaneTypeAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LaneWidth.c b/vcits/mapem/src/LaneWidth.c new file mode 100644 index 0000000..d6a62e3 --- /dev/null +++ b/vcits/mapem/src/LaneWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LaneWidth.h" + +int +LaneWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneWidth_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneWidth = { + "LaneWidth", + "LaneWidth", + &asn_OP_NativeInteger, + asn_DEF_LaneWidth_tags_1, + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + asn_DEF_LaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneWidth_constr_1, &asn_PER_type_LaneWidth_constr_1, LaneWidth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/LateralAcceleration.c b/vcits/mapem/src/LateralAcceleration.c new file mode 100644 index 0000000..882adde --- /dev/null +++ b/vcits/mapem/src/LateralAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LateralAcceleration.h" + +static asn_TYPE_member_t asn_MBR_LateralAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LateralAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LateralAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LateralAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateralAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lateralAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_LateralAcceleration_specs_1 = { + sizeof(struct LateralAcceleration), + offsetof(struct LateralAcceleration, _asn_ctx), + asn_MAP_LateralAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LateralAcceleration = { + "LateralAcceleration", + "LateralAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LateralAcceleration_tags_1, + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LateralAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LateralAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LateralAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LateralAccelerationValue.c b/vcits/mapem/src/LateralAccelerationValue.c new file mode 100644 index 0000000..44dd21b --- /dev/null +++ b/vcits/mapem/src/LateralAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LateralAccelerationValue.h" + +int +LateralAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LateralAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue = { + "LateralAccelerationValue", + "LateralAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LateralAccelerationValue_tags_1, + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LateralAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LateralAccelerationValue_constr_1, &asn_PER_type_LateralAccelerationValue_constr_1, LateralAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Latitude.c b/vcits/mapem/src/Latitude.c new file mode 100644 index 0000000..10c7f9f --- /dev/null +++ b/vcits/mapem/src/Latitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Latitude.h" + +int +Latitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -900000000 && value <= 900000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Latitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-900000000..900000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Latitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 31, -1, -900000000, 900000001 } /* (-900000000..900000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_Latitude_tags_1, + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + asn_DEF_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Latitude_constr_1, &asn_PER_type_Latitude_constr_1, Latitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/LayerID.c b/vcits/mapem/src/LayerID.c new file mode 100644 index 0000000..a1aa2f7 --- /dev/null +++ b/vcits/mapem/src/LayerID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LayerID.h" + +int +LayerID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LayerID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..100) */, + -1}; +asn_per_constraints_t asn_PER_type_LayerID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LayerID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerID = { + "LayerID", + "LayerID", + &asn_OP_NativeInteger, + asn_DEF_LayerID_tags_1, + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + asn_DEF_LayerID_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + { &asn_OER_type_LayerID_constr_1, &asn_PER_type_LayerID_constr_1, LayerID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/LayerType.c b/vcits/mapem/src/LayerType.c new file mode 100644 index 0000000..58175b4 --- /dev/null +++ b/vcits/mapem/src/LayerType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LayerType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LayerType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LayerType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_LayerType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 12, "mixedContent" }, + { 2, 14, "generalMapData" }, + { 3, 16, "intersectionData" }, + { 4, 9, "curveData" }, + { 5, 18, "roadwaySectionData" }, + { 6, 15, "parkingAreaData" }, + { 7, 14, "sharedLaneData" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_LayerType_enum2value_1[] = { + 4, /* curveData(4) */ + 2, /* generalMapData(2) */ + 3, /* intersectionData(3) */ + 1, /* mixedContent(1) */ + 0, /* none(0) */ + 6, /* parkingAreaData(6) */ + 5, /* roadwaySectionData(5) */ + 7 /* sharedLaneData(7) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1 = { + asn_MAP_LayerType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_LayerType_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_LayerType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerType = { + "LayerType", + "LayerType", + &asn_OP_NativeEnumerated, + asn_DEF_LayerType_tags_1, + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + asn_DEF_LayerType_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + { &asn_OER_type_LayerType_constr_1, &asn_PER_type_LayerType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_LayerType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LicPlateNumber.c b/vcits/mapem/src/LicPlateNumber.c new file mode 100644 index 0000000..967751f --- /dev/null +++ b/vcits/mapem/src/LicPlateNumber.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LicPlateNumber.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_LicPlateNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LicPlateNumber = { + "LicPlateNumber", + "LicPlateNumber", + &asn_OP_OCTET_STRING, + asn_DEF_LicPlateNumber_tags_1, + sizeof(asn_DEF_LicPlateNumber_tags_1) + /sizeof(asn_DEF_LicPlateNumber_tags_1[0]), /* 1 */ + asn_DEF_LicPlateNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_LicPlateNumber_tags_1) + /sizeof(asn_DEF_LicPlateNumber_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LightBarSirenInUse.c b/vcits/mapem/src/LightBarSirenInUse.c new file mode 100644 index 0000000..e2a7dd0 --- /dev/null +++ b/vcits/mapem/src/LightBarSirenInUse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LightBarSirenInUse.h" + +int +LightBarSirenInUse_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LightBarSirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse = { + "LightBarSirenInUse", + "LightBarSirenInUse", + &asn_OP_BIT_STRING, + asn_DEF_LightBarSirenInUse_tags_1, + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + asn_DEF_LightBarSirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + { &asn_OER_type_LightBarSirenInUse_constr_1, &asn_PER_type_LightBarSirenInUse_constr_1, LightBarSirenInUse_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Longitude.c b/vcits/mapem/src/Longitude.c new file mode 100644 index 0000000..7730c05 --- /dev/null +++ b/vcits/mapem/src/Longitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Longitude.h" + +int +Longitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1800000000 && value <= 1800000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Longitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-1800000000..1800000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Longitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, -1800000000, 1800000001 } /* (-1800000000..1800000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_Longitude_tags_1, + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + asn_DEF_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Longitude_constr_1, &asn_PER_type_Longitude_constr_1, Longitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/LongitudinalAcceleration.c b/vcits/mapem/src/LongitudinalAcceleration.c new file mode 100644 index 0000000..22d57e4 --- /dev/null +++ b/vcits/mapem/src/LongitudinalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LongitudinalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_LongitudinalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LongitudinalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longitudinalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_LongitudinalAcceleration_specs_1 = { + sizeof(struct LongitudinalAcceleration), + offsetof(struct LongitudinalAcceleration, _asn_ctx), + asn_MAP_LongitudinalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration = { + "LongitudinalAcceleration", + "LongitudinalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LongitudinalAcceleration_tags_1, + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LongitudinalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LongitudinalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/LongitudinalAccelerationValue.c b/vcits/mapem/src/LongitudinalAccelerationValue.c new file mode 100644 index 0000000..a74bdf0 --- /dev/null +++ b/vcits/mapem/src/LongitudinalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "LongitudinalAccelerationValue.h" + +int +LongitudinalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue = { + "LongitudinalAccelerationValue", + "LongitudinalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LongitudinalAccelerationValue_tags_1, + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LongitudinalAccelerationValue_constr_1, &asn_PER_type_LongitudinalAccelerationValue_constr_1, LongitudinalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/MAPEM.c b/vcits/mapem/src/MAPEM.c new file mode 100644 index 0000000..00a7257 --- /dev/null +++ b/vcits/mapem/src/MAPEM.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MAPEM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/MAPEM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "MAPEM.h" + +static asn_TYPE_member_t asn_MBR_MAPEM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MAPEM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsPduHeader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct MAPEM, map), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MapData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "map" + }, +}; +static const ber_tlv_tag_t asn_DEF_MAPEM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MAPEM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* map */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_MAPEM_specs_1 = { + sizeof(struct MAPEM), + offsetof(struct MAPEM, _asn_ctx), + asn_MAP_MAPEM_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MAPEM = { + "MAPEM", + "MAPEM", + &asn_OP_SEQUENCE, + asn_DEF_MAPEM_tags_1, + sizeof(asn_DEF_MAPEM_tags_1) + /sizeof(asn_DEF_MAPEM_tags_1[0]), /* 1 */ + asn_DEF_MAPEM_tags_1, /* Same as above */ + sizeof(asn_DEF_MAPEM_tags_1) + /sizeof(asn_DEF_MAPEM_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MAPEM_1, + 2, /* Elements count */ + &asn_SPC_MAPEM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ManeuverAssistList.c b/vcits/mapem/src/ManeuverAssistList.c new file mode 100644 index 0000000..f4d8f50 --- /dev/null +++ b/vcits/mapem/src/ManeuverAssistList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ManeuverAssistList.h" + +#include "ConnectionManeuverAssist.h" +static asn_oer_constraints_t asn_OER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ManeuverAssistList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1 = { + sizeof(struct ManeuverAssistList), + offsetof(struct ManeuverAssistList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList = { + "ManeuverAssistList", + "ManeuverAssistList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ManeuverAssistList_tags_1, + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + asn_DEF_ManeuverAssistList_tags_1, /* Same as above */ + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + { &asn_OER_type_ManeuverAssistList_constr_1, &asn_PER_type_ManeuverAssistList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ManeuverAssistList_1, + 1, /* Single element */ + &asn_SPC_ManeuverAssistList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ManufacturerIdentifier.c b/vcits/mapem/src/ManufacturerIdentifier.c new file mode 100644 index 0000000..73f9bca --- /dev/null +++ b/vcits/mapem/src/ManufacturerIdentifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ManufacturerIdentifier.h" + +int +ManufacturerIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ManufacturerIdentifier_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_ManufacturerIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ManufacturerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ManufacturerIdentifier = { + "ManufacturerIdentifier", + "ManufacturerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_ManufacturerIdentifier_tags_1, + sizeof(asn_DEF_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_ManufacturerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_ManufacturerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_ManufacturerIdentifier_tags_1[0]), /* 1 */ + { &asn_OER_type_ManufacturerIdentifier_constr_1, &asn_PER_type_ManufacturerIdentifier_constr_1, ManufacturerIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/MapData-addGrpC.c b/vcits/mapem/src/MapData-addGrpC.c new file mode 100644 index 0000000..c805606 --- /dev/null +++ b/vcits/mapem/src/MapData-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "MapData-addGrpC.h" + +#include "SignalHeadLocationList.h" +asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData_addGrpC, signalHeadLocations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalHeadLocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalHeadLocations" + }, +}; +static const int asn_MAP_MapData_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MapData_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* signalHeadLocations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1 = { + sizeof(struct MapData_addGrpC), + offsetof(struct MapData_addGrpC, _asn_ctx), + asn_MAP_MapData_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MapData_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC = { + "MapData-addGrpC", + "MapData-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MapData_addGrpC_tags_1, + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MapData_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapData_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MapData_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/MapData.c b/vcits/mapem/src/MapData.c new file mode 100644 index 0000000..a72fd9a --- /dev/null +++ b/vcits/mapem/src/MapData.c @@ -0,0 +1,216 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "MapData.h" + +#include "IntersectionGeometryList.h" +#include "RoadSegmentList.h" +#include "DataParameters.h" +#include "RestrictionClassList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MapData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct MapData__regional), + offsetof(struct MapData__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MapData_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct MapData, msgIssueRevision), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgIssueRevision" + }, + { ATF_POINTER, 7, offsetof(struct MapData, layerType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layerType" + }, + { ATF_POINTER, 6, offsetof(struct MapData, layerID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layerID" + }, + { ATF_POINTER, 5, offsetof(struct MapData, intersections), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionGeometryList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 4, offsetof(struct MapData, roadSegments), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadSegments" + }, + { ATF_POINTER, 3, offsetof(struct MapData, dataParameters), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DataParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dataParameters" + }, + { ATF_POINTER, 2, offsetof(struct MapData, restrictionList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "restrictionList" + }, + { ATF_POINTER, 1, offsetof(struct MapData, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MapData_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* msgIssueRevision */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* layerType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* layerID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* roadSegments */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dataParameters */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* restrictionList */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MapData_specs_1 = { + sizeof(struct MapData), + offsetof(struct MapData, _asn_ctx), + asn_MAP_MapData_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_MapData_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData = { + "MapData", + "MapData", + &asn_OP_SEQUENCE, + asn_DEF_MapData_tags_1, + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + asn_DEF_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapData_1, + 9, /* Elements count */ + &asn_SPC_MapData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/MergeDivergeNodeAngle.c b/vcits/mapem/src/MergeDivergeNodeAngle.c new file mode 100644 index 0000000..576c5d4 --- /dev/null +++ b/vcits/mapem/src/MergeDivergeNodeAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "MergeDivergeNodeAngle.h" + +int +MergeDivergeNodeAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -180 && value <= 180)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-180..180) */, + -1}; +asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -180, 180 } /* (-180..180) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MergeDivergeNodeAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle = { + "MergeDivergeNodeAngle", + "MergeDivergeNodeAngle", + &asn_OP_NativeInteger, + asn_DEF_MergeDivergeNodeAngle_tags_1, + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + asn_DEF_MergeDivergeNodeAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_MergeDivergeNodeAngle_constr_1, &asn_PER_type_MergeDivergeNodeAngle_constr_1, MergeDivergeNodeAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/MinuteOfTheYear.c b/vcits/mapem/src/MinuteOfTheYear.c new file mode 100644 index 0000000..d753d4d --- /dev/null +++ b/vcits/mapem/src/MinuteOfTheYear.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "MinuteOfTheYear.h" + +int +MinuteOfTheYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 527040)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..527040) */, + -1}; +asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 527040 } /* (0..527040) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MinuteOfTheYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear = { + "MinuteOfTheYear", + "MinuteOfTheYear", + &asn_OP_NativeInteger, + asn_DEF_MinuteOfTheYear_tags_1, + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + asn_DEF_MinuteOfTheYear_tags_1, /* Same as above */ + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + { &asn_OER_type_MinuteOfTheYear_constr_1, &asn_PER_type_MinuteOfTheYear_constr_1, MinuteOfTheYear_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/MovementEvent-addGrpC.c b/vcits/mapem/src/MovementEvent-addGrpC.c new file mode 100644 index 0000000..5c0d02d --- /dev/null +++ b/vcits/mapem/src/MovementEvent-addGrpC.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "MovementEvent-addGrpC.h" + +asn_TYPE_member_t asn_MBR_MovementEvent_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementEvent_addGrpC, stateChangeReason), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExceptionalCondition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stateChangeReason" + }, +}; +static const int asn_MAP_MovementEvent_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* stateChangeReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpC_specs_1 = { + sizeof(struct MovementEvent_addGrpC), + offsetof(struct MovementEvent_addGrpC, _asn_ctx), + asn_MAP_MovementEvent_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MovementEvent_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpC = { + "MovementEvent-addGrpC", + "MovementEvent-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_addGrpC_tags_1, + sizeof(asn_DEF_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementEvent_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MovementEvent_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/MovementEvent.c b/vcits/mapem/src/MovementEvent.c new file mode 100644 index 0000000..47a898b --- /dev/null +++ b/vcits/mapem/src/MovementEvent.c @@ -0,0 +1,164 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "MovementEvent.h" + +#include "TimeChangeDetails.h" +#include "AdvisorySpeedList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct MovementEvent__regional), + offsetof(struct MovementEvent__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementEvent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MovementEvent, eventState), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementPhaseState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventState" + }, + { ATF_POINTER, 3, offsetof(struct MovementEvent, timing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeChangeDetails, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timing" + }, + { ATF_POINTER, 2, offsetof(struct MovementEvent, speeds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speeds" + }, + { ATF_POINTER, 1, offsetof(struct MovementEvent, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementEvent_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventState */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* speeds */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1 = { + sizeof(struct MovementEvent), + offsetof(struct MovementEvent, _asn_ctx), + asn_MAP_MovementEvent_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_MovementEvent_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent = { + "MovementEvent", + "MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_tags_1, + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementEvent_1, + 4, /* Elements count */ + &asn_SPC_MovementEvent_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/MovementEventList.c b/vcits/mapem/src/MovementEventList.c new file mode 100644 index 0000000..d401e66 --- /dev/null +++ b/vcits/mapem/src/MovementEventList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "MovementEventList.h" + +#include "MovementEvent.h" +static asn_oer_constraints_t asn_OER_type_MovementEventList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_MovementEventList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MovementEventList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementEventList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1 = { + sizeof(struct MovementEventList), + offsetof(struct MovementEventList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEventList = { + "MovementEventList", + "MovementEventList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementEventList_tags_1, + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + asn_DEF_MovementEventList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementEventList_constr_1, &asn_PER_type_MovementEventList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MovementEventList_1, + 1, /* Single element */ + &asn_SPC_MovementEventList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/MovementList.c b/vcits/mapem/src/MovementList.c new file mode 100644 index 0000000..d1baa7d --- /dev/null +++ b/vcits/mapem/src/MovementList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "MovementList.h" + +#include "MovementState.h" +static asn_oer_constraints_t asn_OER_type_MovementList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_MovementList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MovementList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1 = { + sizeof(struct MovementList), + offsetof(struct MovementList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementList = { + "MovementList", + "MovementList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementList_tags_1, + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + asn_DEF_MovementList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementList_constr_1, &asn_PER_type_MovementList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MovementList_1, + 1, /* Single element */ + &asn_SPC_MovementList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/MovementPhaseState.c b/vcits/mapem/src/MovementPhaseState.c new file mode 100644 index 0000000..4a8bae0 --- /dev/null +++ b/vcits/mapem/src/MovementPhaseState.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "MovementPhaseState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_MovementPhaseState_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 4, "dark" }, + { 2, 17, "stop-Then-Proceed" }, + { 3, 15, "stop-And-Remain" }, + { 4, 12, "pre-Movement" }, + { 5, 27, "permissive-Movement-Allowed" }, + { 6, 26, "protected-Movement-Allowed" }, + { 7, 20, "permissive-clearance" }, + { 8, 19, "protected-clearance" }, + { 9, 27, "caution-Conflicting-Traffic" } +}; +static const unsigned int asn_MAP_MovementPhaseState_enum2value_1[] = { + 9, /* caution-Conflicting-Traffic(9) */ + 1, /* dark(1) */ + 5, /* permissive-Movement-Allowed(5) */ + 7, /* permissive-clearance(7) */ + 4, /* pre-Movement(4) */ + 6, /* protected-Movement-Allowed(6) */ + 8, /* protected-clearance(8) */ + 3, /* stop-And-Remain(3) */ + 2, /* stop-Then-Proceed(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1 = { + asn_MAP_MovementPhaseState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_MovementPhaseState_enum2value_1, /* N => "tag"; sorted by N */ + 10, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_MovementPhaseState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MovementPhaseState = { + "MovementPhaseState", + "MovementPhaseState", + &asn_OP_NativeEnumerated, + asn_DEF_MovementPhaseState_tags_1, + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + asn_DEF_MovementPhaseState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementPhaseState_constr_1, &asn_PER_type_MovementPhaseState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MovementPhaseState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/MovementState.c b/vcits/mapem/src/MovementState.c new file mode 100644 index 0000000..3b468ff --- /dev/null +++ b/vcits/mapem/src/MovementState.c @@ -0,0 +1,173 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "MovementState.h" + +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct MovementState__regional), + offsetof(struct MovementState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementState_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementState, movementName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "movementName" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, state_time_speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementEventList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "state-time-speed" + }, + { ATF_POINTER, 2, offsetof(struct MovementState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct MovementState, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementState_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_MovementState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* movementName */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* state-time-speed */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1 = { + sizeof(struct MovementState), + offsetof(struct MovementState, _asn_ctx), + asn_MAP_MovementState_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_MovementState_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementState = { + "MovementState", + "MovementState", + &asn_OP_SEQUENCE, + asn_DEF_MovementState_tags_1, + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + asn_DEF_MovementState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementState_1, + 5, /* Elements count */ + &asn_SPC_MovementState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/MsgCount.c b/vcits/mapem/src/MsgCount.c new file mode 100644 index 0000000..9ef6fc4 --- /dev/null +++ b/vcits/mapem/src/MsgCount.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "MsgCount.h" + +int +MsgCount_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MsgCount_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_MsgCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MsgCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MsgCount = { + "MsgCount", + "MsgCount", + &asn_OP_NativeInteger, + asn_DEF_MsgCount_tags_1, + sizeof(asn_DEF_MsgCount_tags_1) + /sizeof(asn_DEF_MsgCount_tags_1[0]), /* 1 */ + asn_DEF_MsgCount_tags_1, /* Same as above */ + sizeof(asn_DEF_MsgCount_tags_1) + /sizeof(asn_DEF_MsgCount_tags_1[0]), /* 1 */ + { &asn_OER_type_MsgCount_constr_1, &asn_PER_type_MsgCount_constr_1, MsgCount_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Node-LLmD-64b.c b/vcits/mapem/src/Node-LLmD-64b.c new file mode 100644 index 0000000..450df84 --- /dev/null +++ b/vcits/mapem/src/Node-LLmD-64b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Node-LLmD-64b.h" + +asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LLmD_64b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LLmD_64b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1 = { + sizeof(struct Node_LLmD_64b), + offsetof(struct Node_LLmD_64b, _asn_ctx), + asn_MAP_Node_LLmD_64b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b = { + "Node-LLmD-64b", + "Node-LLmD-64b", + &asn_OP_SEQUENCE, + asn_DEF_Node_LLmD_64b_tags_1, + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + asn_DEF_Node_LLmD_64b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_LLmD_64b_1, + 2, /* Elements count */ + &asn_SPC_Node_LLmD_64b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Node-XY-20b.c b/vcits/mapem/src/Node-XY-20b.c new file mode 100644 index 0000000..6fd3f7d --- /dev/null +++ b/vcits/mapem/src/Node-XY-20b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Node-XY-20b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_20b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_20b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_20b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1 = { + sizeof(struct Node_XY_20b), + offsetof(struct Node_XY_20b, _asn_ctx), + asn_MAP_Node_XY_20b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_20b = { + "Node-XY-20b", + "Node-XY-20b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_20b_tags_1, + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_20b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_20b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_20b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Node-XY-22b.c b/vcits/mapem/src/Node-XY-22b.c new file mode 100644 index 0000000..1f74c32 --- /dev/null +++ b/vcits/mapem/src/Node-XY-22b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Node-XY-22b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_22b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_22b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_22b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1 = { + sizeof(struct Node_XY_22b), + offsetof(struct Node_XY_22b, _asn_ctx), + asn_MAP_Node_XY_22b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_22b = { + "Node-XY-22b", + "Node-XY-22b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_22b_tags_1, + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_22b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_22b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_22b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Node-XY-24b.c b/vcits/mapem/src/Node-XY-24b.c new file mode 100644 index 0000000..2ef35f3 --- /dev/null +++ b/vcits/mapem/src/Node-XY-24b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Node-XY-24b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_24b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_24b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_24b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1 = { + sizeof(struct Node_XY_24b), + offsetof(struct Node_XY_24b, _asn_ctx), + asn_MAP_Node_XY_24b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_24b = { + "Node-XY-24b", + "Node-XY-24b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_24b_tags_1, + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_24b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_24b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_24b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Node-XY-26b.c b/vcits/mapem/src/Node-XY-26b.c new file mode 100644 index 0000000..cdf2d2a --- /dev/null +++ b/vcits/mapem/src/Node-XY-26b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Node-XY-26b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_26b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_26b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_26b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1 = { + sizeof(struct Node_XY_26b), + offsetof(struct Node_XY_26b, _asn_ctx), + asn_MAP_Node_XY_26b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_26b = { + "Node-XY-26b", + "Node-XY-26b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_26b_tags_1, + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_26b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_26b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_26b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Node-XY-28b.c b/vcits/mapem/src/Node-XY-28b.c new file mode 100644 index 0000000..7e95d70 --- /dev/null +++ b/vcits/mapem/src/Node-XY-28b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Node-XY-28b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_28b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_28b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_28b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1 = { + sizeof(struct Node_XY_28b), + offsetof(struct Node_XY_28b, _asn_ctx), + asn_MAP_Node_XY_28b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_28b = { + "Node-XY-28b", + "Node-XY-28b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_28b_tags_1, + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_28b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_28b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_28b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Node-XY-32b.c b/vcits/mapem/src/Node-XY-32b.c new file mode 100644 index 0000000..8540333 --- /dev/null +++ b/vcits/mapem/src/Node-XY-32b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Node-XY-32b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_32b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_32b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_32b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1 = { + sizeof(struct Node_XY_32b), + offsetof(struct Node_XY_32b, _asn_ctx), + asn_MAP_Node_XY_32b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_32b = { + "Node-XY-32b", + "Node-XY-32b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_32b_tags_1, + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_32b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_32b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_32b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Node.c b/vcits/mapem/src/Node.c new file mode 100644 index 0000000..a2ede72 --- /dev/null +++ b/vcits/mapem/src/Node.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Node.h" + +asn_TYPE_member_t asn_MBR_Node_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 3, offsetof(struct Node, lane), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 2, offsetof(struct Node, connectionID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 1, offsetof(struct Node, intersectionID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersectionID" + }, +}; +static const int asn_MAP_Node_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Node_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* intersectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_specs_1 = { + sizeof(struct Node), + offsetof(struct Node, _asn_ctx), + asn_MAP_Node_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Node_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node = { + "Node", + "Node", + &asn_OP_SEQUENCE, + asn_DEF_Node_tags_1, + sizeof(asn_DEF_Node_tags_1) + /sizeof(asn_DEF_Node_tags_1[0]), /* 1 */ + asn_DEF_Node_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_tags_1) + /sizeof(asn_DEF_Node_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_1, + 4, /* Elements count */ + &asn_SPC_Node_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/NodeAttributeSet-addGrpC.c b/vcits/mapem/src/NodeAttributeSet-addGrpC.c new file mode 100644 index 0000000..3b3444b --- /dev/null +++ b/vcits/mapem/src/NodeAttributeSet-addGrpC.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "NodeAttributeSet-addGrpC.h" + +#include "NodeLink.h" +#include "Node.h" +asn_TYPE_member_t asn_MBR_NodeAttributeSet_addGrpC_1[] = { + { ATF_POINTER, 3, offsetof(struct NodeAttributeSet_addGrpC, ptvRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtvRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptvRequest" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSet_addGrpC, nodeLink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeLink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeLink" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSet_addGrpC, node), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node" + }, +}; +static const int asn_MAP_NodeAttributeSet_addGrpC_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSet_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSet_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptvRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeLink */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* node */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSet_addGrpC_specs_1 = { + sizeof(struct NodeAttributeSet_addGrpC), + offsetof(struct NodeAttributeSet_addGrpC, _asn_ctx), + asn_MAP_NodeAttributeSet_addGrpC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_NodeAttributeSet_addGrpC_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSet_addGrpC = { + "NodeAttributeSet-addGrpC", + "NodeAttributeSet-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSet_addGrpC_tags_1, + sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSet_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeAttributeSet_addGrpC_1, + 3, /* Elements count */ + &asn_SPC_NodeAttributeSet_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/NodeAttributeSetXY.c b/vcits/mapem/src/NodeAttributeSetXY.c new file mode 100644 index 0000000..c46131d --- /dev/null +++ b/vcits/mapem/src/NodeAttributeSetXY.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "NodeAttributeSetXY.h" + +#include "NodeAttributeXYList.h" +#include "SegmentAttributeXYList.h" +#include "LaneDataAttributeList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_NodeAttributeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct NodeAttributeSetXY__regional), + offsetof(struct NodeAttributeSetXY__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[] = { + { ATF_POINTER, 7, offsetof(struct NodeAttributeSetXY, localNode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "localNode" + }, + { ATF_POINTER, 6, offsetof(struct NodeAttributeSetXY, disabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "disabled" + }, + { ATF_POINTER, 5, offsetof(struct NodeAttributeSetXY, enabled), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabled" + }, + { ATF_POINTER, 4, offsetof(struct NodeAttributeSetXY, data), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDataAttributeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "data" + }, + { ATF_POINTER, 3, offsetof(struct NodeAttributeSetXY, dWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dWidth" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSetXY, dElevation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dElevation" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSetXY, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_NodeAttributeSetXY_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSetXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* localNode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* disabled */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* enabled */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* data */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dElevation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1 = { + sizeof(struct NodeAttributeSetXY), + offsetof(struct NodeAttributeSetXY, _asn_ctx), + asn_MAP_NodeAttributeSetXY_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_NodeAttributeSetXY_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY = { + "NodeAttributeSetXY", + "NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSetXY_tags_1, + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeAttributeSetXY_1, + 7, /* Elements count */ + &asn_SPC_NodeAttributeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/NodeAttributeXY.c b/vcits/mapem/src/NodeAttributeXY.c new file mode 100644 index 0000000..3d2d8f0 --- /dev/null +++ b/vcits/mapem/src/NodeAttributeXY.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "NodeAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 11 } /* (0..11,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_NodeAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 8, "stopLine" }, + { 2, 16, "roundedCapStyleA" }, + { 3, 16, "roundedCapStyleB" }, + { 4, 10, "mergePoint" }, + { 5, 12, "divergePoint" }, + { 6, 18, "downstreamStopLine" }, + { 7, 19, "downstreamStartNode" }, + { 8, 15, "closedToTraffic" }, + { 9, 10, "safeIsland" }, + { 10, 20, "curbPresentAtStepOff" }, + { 11, 14, "hydrantPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NodeAttributeXY_enum2value_1[] = { + 8, /* closedToTraffic(8) */ + 10, /* curbPresentAtStepOff(10) */ + 5, /* divergePoint(5) */ + 7, /* downstreamStartNode(7) */ + 6, /* downstreamStopLine(6) */ + 11, /* hydrantPresent(11) */ + 4, /* mergePoint(4) */ + 0, /* reserved(0) */ + 2, /* roundedCapStyleA(2) */ + 3, /* roundedCapStyleB(3) */ + 9, /* safeIsland(9) */ + 1 /* stopLine(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1 = { + asn_MAP_NodeAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NodeAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 12, /* Number of elements in the maps */ + 13, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY = { + "NodeAttributeXY", + "NodeAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_NodeAttributeXY_tags_1, + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeAttributeXY_constr_1, &asn_PER_type_NodeAttributeXY_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NodeAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/NodeAttributeXYList.c b/vcits/mapem/src/NodeAttributeXYList.c new file mode 100644 index 0000000..01a8574 --- /dev/null +++ b/vcits/mapem/src/NodeAttributeXYList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "NodeAttributeXYList.h" + +static asn_oer_constraints_t asn_OER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_NodeAttributeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1 = { + sizeof(struct NodeAttributeXYList), + offsetof(struct NodeAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList = { + "NodeAttributeXYList", + "NodeAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeAttributeXYList_tags_1, + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeAttributeXYList_constr_1, &asn_PER_type_NodeAttributeXYList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_NodeAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/NodeLink.c b/vcits/mapem/src/NodeLink.c new file mode 100644 index 0000000..346af37 --- /dev/null +++ b/vcits/mapem/src/NodeLink.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "NodeLink.h" + +#include "Node.h" +static asn_oer_constraints_t asn_OER_type_NodeLink_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_NodeLink_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeLink_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeLink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeLink_specs_1 = { + sizeof(struct NodeLink), + offsetof(struct NodeLink, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeLink = { + "NodeLink", + "NodeLink", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeLink_tags_1, + sizeof(asn_DEF_NodeLink_tags_1) + /sizeof(asn_DEF_NodeLink_tags_1[0]), /* 1 */ + asn_DEF_NodeLink_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeLink_tags_1) + /sizeof(asn_DEF_NodeLink_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeLink_constr_1, &asn_PER_type_NodeLink_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeLink_1, + 1, /* Single element */ + &asn_SPC_NodeLink_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/NodeListXY.c b/vcits/mapem/src/NodeListXY.c new file mode 100644 index 0000000..b9a36d4 --- /dev/null +++ b/vcits/mapem/src/NodeListXY.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "NodeListXY.h" + +static asn_oer_constraints_t asn_OER_type_NodeListXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeListXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeListXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.computed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ComputedLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "computed" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeListXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* computed */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1 = { + sizeof(struct NodeListXY), + offsetof(struct NodeListXY, _asn_ctx), + offsetof(struct NodeListXY, present), + sizeof(((struct NodeListXY *)0)->present), + asn_MAP_NodeListXY_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeListXY = { + "NodeListXY", + "NodeListXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeListXY_constr_1, &asn_PER_type_NodeListXY_constr_1, CHOICE_constraint }, + asn_MBR_NodeListXY_1, + 2, /* Elements count */ + &asn_SPC_NodeListXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/NodeOffsetPointXY.c b/vcits/mapem/src/NodeOffsetPointXY.c new file mode 100644 index 0000000..dfd1039 --- /dev/null +++ b/vcits/mapem/src/NodeOffsetPointXY.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "NodeOffsetPointXY.h" + +static asn_oer_constraints_t asn_OER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_20b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY1" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_22b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY2" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_24b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY3" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_26b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY4" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_28b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY5" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_32b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY6" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_LatLon), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LLmD_64b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-LatLon" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeOffsetPointXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* node-XY1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* node-XY2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* node-XY3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* node-XY4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* node-XY5 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* node-XY6 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* node-LatLon */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1 = { + sizeof(struct NodeOffsetPointXY), + offsetof(struct NodeOffsetPointXY, _asn_ctx), + offsetof(struct NodeOffsetPointXY, present), + sizeof(((struct NodeOffsetPointXY *)0)->present), + asn_MAP_NodeOffsetPointXY_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY = { + "NodeOffsetPointXY", + "NodeOffsetPointXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeOffsetPointXY_constr_1, &asn_PER_type_NodeOffsetPointXY_constr_1, CHOICE_constraint }, + asn_MBR_NodeOffsetPointXY_1, + 8, /* Elements count */ + &asn_SPC_NodeOffsetPointXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/NodeSetXY.c b/vcits/mapem/src/NodeSetXY.c new file mode 100644 index 0000000..34d4331 --- /dev/null +++ b/vcits/mapem/src/NodeSetXY.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "NodeSetXY.h" + +#include "NodeXY.h" +static asn_oer_constraints_t asn_OER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(2..63)) */}; +asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 2, 63 } /* (SIZE(2..63)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeSetXY_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1 = { + sizeof(struct NodeSetXY), + offsetof(struct NodeSetXY, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeSetXY = { + "NodeSetXY", + "NodeSetXY", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeSetXY_tags_1, + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeSetXY_constr_1, &asn_PER_type_NodeSetXY_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeSetXY_1, + 1, /* Single element */ + &asn_SPC_NodeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/NodeXY.c b/vcits/mapem/src/NodeXY.c new file mode 100644 index 0000000..5a4556d --- /dev/null +++ b/vcits/mapem/src/NodeXY.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "NodeXY.h" + +#include "NodeAttributeSetXY.h" +asn_TYPE_member_t asn_MBR_NodeXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeXY, delta), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delta" + }, + { ATF_POINTER, 1, offsetof(struct NodeXY, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_NodeXY_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_NodeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* delta */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1 = { + sizeof(struct NodeXY), + offsetof(struct NodeXY, _asn_ctx), + asn_MAP_NodeXY_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_NodeXY_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeXY = { + "NodeXY", + "NodeXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeXY_tags_1, + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeXY_1, + 2, /* Elements count */ + &asn_SPC_NodeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/NumberOfOccupants.c b/vcits/mapem/src/NumberOfOccupants.c new file mode 100644 index 0000000..d21413d --- /dev/null +++ b/vcits/mapem/src/NumberOfOccupants.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "NumberOfOccupants.h" + +int +NumberOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_NumberOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants = { + "NumberOfOccupants", + "NumberOfOccupants", + &asn_OP_NativeInteger, + asn_DEF_NumberOfOccupants_tags_1, + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_NumberOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_NumberOfOccupants_constr_1, &asn_PER_type_NumberOfOccupants_constr_1, NumberOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Offset-B09.c b/vcits/mapem/src/Offset-B09.c new file mode 100644 index 0000000..7cd6f0c --- /dev/null +++ b/vcits/mapem/src/Offset-B09.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Offset-B09.h" + +int +Offset_B09_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -256 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B09_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-256..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B09_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -256, 255 } /* (-256..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B09_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B09 = { + "Offset-B09", + "Offset-B09", + &asn_OP_NativeInteger, + asn_DEF_Offset_B09_tags_1, + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + asn_DEF_Offset_B09_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B09_constr_1, &asn_PER_type_Offset_B09_constr_1, Offset_B09_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Offset-B10.c b/vcits/mapem/src/Offset-B10.c new file mode 100644 index 0000000..1c4fbf5 --- /dev/null +++ b/vcits/mapem/src/Offset-B10.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Offset-B10.h" + +int +Offset_B10_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -512 && value <= 511)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B10_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-512..511) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B10_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -512, 511 } /* (-512..511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B10_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B10 = { + "Offset-B10", + "Offset-B10", + &asn_OP_NativeInteger, + asn_DEF_Offset_B10_tags_1, + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + asn_DEF_Offset_B10_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B10_constr_1, &asn_PER_type_Offset_B10_constr_1, Offset_B10_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Offset-B11.c b/vcits/mapem/src/Offset-B11.c new file mode 100644 index 0000000..b978ce6 --- /dev/null +++ b/vcits/mapem/src/Offset-B11.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Offset-B11.h" + +int +Offset_B11_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1024 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B11_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1024..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B11_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B11_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B11 = { + "Offset-B11", + "Offset-B11", + &asn_OP_NativeInteger, + asn_DEF_Offset_B11_tags_1, + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + asn_DEF_Offset_B11_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B11_constr_1, &asn_PER_type_Offset_B11_constr_1, Offset_B11_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Offset-B12.c b/vcits/mapem/src/Offset-B12.c new file mode 100644 index 0000000..cd162a3 --- /dev/null +++ b/vcits/mapem/src/Offset-B12.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Offset-B12.h" + +int +Offset_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B12 = { + "Offset-B12", + "Offset-B12", + &asn_OP_NativeInteger, + asn_DEF_Offset_B12_tags_1, + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + asn_DEF_Offset_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B12_constr_1, &asn_PER_type_Offset_B12_constr_1, Offset_B12_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Offset-B13.c b/vcits/mapem/src/Offset-B13.c new file mode 100644 index 0000000..6d6fed8 --- /dev/null +++ b/vcits/mapem/src/Offset-B13.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Offset-B13.h" + +int +Offset_B13_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B13_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-4096..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B13_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, -4096, 4095 } /* (-4096..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B13_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B13 = { + "Offset-B13", + "Offset-B13", + &asn_OP_NativeInteger, + asn_DEF_Offset_B13_tags_1, + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + asn_DEF_Offset_B13_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B13_constr_1, &asn_PER_type_Offset_B13_constr_1, Offset_B13_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Offset-B14.c b/vcits/mapem/src/Offset-B14.c new file mode 100644 index 0000000..5650e32 --- /dev/null +++ b/vcits/mapem/src/Offset-B14.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Offset-B14.h" + +int +Offset_B14_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -8192 && value <= 8191)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B14_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-8192..8191) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B14_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, -8192, 8191 } /* (-8192..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B14_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B14 = { + "Offset-B14", + "Offset-B14", + &asn_OP_NativeInteger, + asn_DEF_Offset_B14_tags_1, + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + asn_DEF_Offset_B14_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B14_constr_1, &asn_PER_type_Offset_B14_constr_1, Offset_B14_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Offset-B16.c b/vcits/mapem/src/Offset-B16.c new file mode 100644 index 0000000..ebc0745 --- /dev/null +++ b/vcits/mapem/src/Offset-B16.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Offset-B16.h" + +int +Offset_B16_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32768 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B16_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32768..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B16_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B16_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B16 = { + "Offset-B16", + "Offset-B16", + &asn_OP_NativeInteger, + asn_DEF_Offset_B16_tags_1, + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + asn_DEF_Offset_B16_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B16_constr_1, &asn_PER_type_Offset_B16_constr_1, Offset_B16_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/OpeningDaysHours.c b/vcits/mapem/src/OpeningDaysHours.c new file mode 100644 index 0000000..4db0e2e --- /dev/null +++ b/vcits/mapem/src/OpeningDaysHours.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "OpeningDaysHours.h" + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_OpeningDaysHours_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours = { + "OpeningDaysHours", + "OpeningDaysHours", + &asn_OP_UTF8String, + asn_DEF_OpeningDaysHours_tags_1, + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + asn_DEF_OpeningDaysHours_tags_1, /* Same as above */ + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + { 0, 0, UTF8String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/OverlayLaneList.c b/vcits/mapem/src/OverlayLaneList.c new file mode 100644 index 0000000..87e28e7 --- /dev/null +++ b/vcits/mapem/src/OverlayLaneList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "OverlayLaneList.h" + +static asn_oer_constraints_t asn_OER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_OverlayLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_OverlayLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1 = { + sizeof(struct OverlayLaneList), + offsetof(struct OverlayLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_OverlayLaneList = { + "OverlayLaneList", + "OverlayLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_OverlayLaneList_tags_1, + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + asn_DEF_OverlayLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_OverlayLaneList_constr_1, &asn_PER_type_OverlayLaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_OverlayLaneList_1, + 1, /* Single element */ + &asn_SPC_OverlayLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PathDeltaTime.c b/vcits/mapem/src/PathDeltaTime.c new file mode 100644 index 0000000..7831908 --- /dev/null +++ b/vcits/mapem/src/PathDeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PathDeltaTime.h" + +int +PathDeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PathDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PathDeltaTime = { + "PathDeltaTime", + "PathDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_PathDeltaTime_tags_1, + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_PathDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_PathDeltaTime_constr_1, &asn_PER_type_PathDeltaTime_constr_1, PathDeltaTime_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/PathHistory.c b/vcits/mapem/src/PathHistory.c new file mode 100644 index 0000000..63f8ad1 --- /dev/null +++ b/vcits/mapem/src/PathHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PathHistory.h" + +#include "PathPoint.h" +static asn_oer_constraints_t asn_OER_type_PathHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..40)) */}; +asn_per_constraints_t asn_PER_type_PathHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 40 } /* (SIZE(0..40)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PathHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1 = { + sizeof(struct PathHistory), + offsetof(struct PathHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_PathHistory_tags_1, + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_PathHistory_constr_1, &asn_PER_type_PathHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PathHistory_1, + 1, /* Single element */ + &asn_SPC_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PathPoint.c b/vcits/mapem/src/PathPoint.c new file mode 100644 index 0000000..e925e4c --- /dev/null +++ b/vcits/mapem/src/PathPoint.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PathPoint.h" + +asn_TYPE_member_t asn_MBR_PathPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PathPoint, pathPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathPosition" + }, + { ATF_POINTER, 1, offsetof(struct PathPoint, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathDeltaTime" + }, +}; +static const int asn_MAP_PathPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PathPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PathPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pathDeltaTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1 = { + sizeof(struct PathPoint), + offsetof(struct PathPoint, _asn_ctx), + asn_MAP_PathPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PathPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PathPoint = { + "PathPoint", + "PathPoint", + &asn_OP_SEQUENCE, + asn_DEF_PathPoint_tags_1, + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + asn_DEF_PathPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PathPoint_1, + 2, /* Elements count */ + &asn_SPC_PathPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PedestrianBicycleDetect.c b/vcits/mapem/src/PedestrianBicycleDetect.c new file mode 100644 index 0000000..098ea65 --- /dev/null +++ b/vcits/mapem/src/PedestrianBicycleDetect.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PedestrianBicycleDetect.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_PedestrianBicycleDetect_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect = { + "PedestrianBicycleDetect", + "PedestrianBicycleDetect", + &asn_OP_BOOLEAN, + asn_DEF_PedestrianBicycleDetect_tags_1, + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + asn_DEF_PedestrianBicycleDetect_tags_1, /* Same as above */ + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/PerformanceClass.c b/vcits/mapem/src/PerformanceClass.c new file mode 100644 index 0000000..91c883c --- /dev/null +++ b/vcits/mapem/src/PerformanceClass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PerformanceClass.h" + +int +PerformanceClass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PerformanceClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PerformanceClass = { + "PerformanceClass", + "PerformanceClass", + &asn_OP_NativeInteger, + asn_DEF_PerformanceClass_tags_1, + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + asn_DEF_PerformanceClass_tags_1, /* Same as above */ + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + { &asn_OER_type_PerformanceClass_constr_1, &asn_PER_type_PerformanceClass_constr_1, PerformanceClass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/PhoneNumber.c b/vcits/mapem/src/PhoneNumber.c new file mode 100644 index 0000000..5f23e3b --- /dev/null +++ b/vcits/mapem/src/PhoneNumber.c @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PhoneNumber.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* . */ + 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */ +}; +static const int permitted_alphabet_code2value_1[11] = { +32,48,49,50,51,52,53,54,55,56,57,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is NumericString */ + const NumericString_t *st = (const NumericString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +PhoneNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const NumericString_t *st = (const NumericString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 16) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_PhoneNumber_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_PhoneNumber_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using NumericString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 32, 57 } /* (32..57) */, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + asn_PER_MAP_PhoneNumber_1_v2c, /* Value to PER code map */ + asn_PER_MAP_PhoneNumber_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_PhoneNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PhoneNumber = { + "PhoneNumber", + "PhoneNumber", + &asn_OP_NumericString, + asn_DEF_PhoneNumber_tags_1, + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + asn_DEF_PhoneNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_PhoneNumber_constr_1, &asn_PER_type_PhoneNumber_constr_1, PhoneNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/PosCentMass.c b/vcits/mapem/src/PosCentMass.c new file mode 100644 index 0000000..6cae183 --- /dev/null +++ b/vcits/mapem/src/PosCentMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PosCentMass.h" + +int +PosCentMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosCentMass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..63) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosCentMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosCentMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosCentMass = { + "PosCentMass", + "PosCentMass", + &asn_OP_NativeInteger, + asn_DEF_PosCentMass_tags_1, + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + asn_DEF_PosCentMass_tags_1, /* Same as above */ + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + { &asn_OER_type_PosCentMass_constr_1, &asn_PER_type_PosCentMass_constr_1, PosCentMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/PosConfidenceEllipse.c b/vcits/mapem/src/PosConfidenceEllipse.c new file mode 100644 index 0000000..6cd1d0c --- /dev/null +++ b/vcits/mapem/src/PosConfidenceEllipse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PosConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMinorConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorOrientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PosConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PosConfidenceEllipse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* semiMajorOrientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1 = { + sizeof(struct PosConfidenceEllipse), + offsetof(struct PosConfidenceEllipse, _asn_ctx), + asn_MAP_PosConfidenceEllipse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse = { + "PosConfidenceEllipse", + "PosConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_PosConfidenceEllipse_tags_1, + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_PosConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PosConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_PosConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PosFrontAx.c b/vcits/mapem/src/PosFrontAx.c new file mode 100644 index 0000000..a10771d --- /dev/null +++ b/vcits/mapem/src/PosFrontAx.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PosFrontAx.h" + +int +PosFrontAx_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..20) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (1..20) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosFrontAx_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosFrontAx = { + "PosFrontAx", + "PosFrontAx", + &asn_OP_NativeInteger, + asn_DEF_PosFrontAx_tags_1, + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + asn_DEF_PosFrontAx_tags_1, /* Same as above */ + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + { &asn_OER_type_PosFrontAx_constr_1, &asn_PER_type_PosFrontAx_constr_1, PosFrontAx_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/PosLonCarr.c b/vcits/mapem/src/PosLonCarr.c new file mode 100644 index 0000000..1fcebf0 --- /dev/null +++ b/vcits/mapem/src/PosLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PosLonCarr.h" + +int +PosLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosLonCarr = { + "PosLonCarr", + "PosLonCarr", + &asn_OP_NativeInteger, + asn_DEF_PosLonCarr_tags_1, + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + asn_DEF_PosLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_PosLonCarr_constr_1, &asn_PER_type_PosLonCarr_constr_1, PosLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/PosPillar.c b/vcits/mapem/src/PosPillar.c new file mode 100644 index 0000000..5beb200 --- /dev/null +++ b/vcits/mapem/src/PosPillar.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PosPillar.h" + +int +PosPillar_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 30)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosPillar_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..30) */, + -1}; +asn_per_constraints_t asn_PER_type_PosPillar_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 30 } /* (1..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosPillar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosPillar = { + "PosPillar", + "PosPillar", + &asn_OP_NativeInteger, + asn_DEF_PosPillar_tags_1, + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + asn_DEF_PosPillar_tags_1, /* Same as above */ + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + { &asn_OER_type_PosPillar_constr_1, &asn_PER_type_PosPillar_constr_1, PosPillar_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Position3D-addGrpC.c b/vcits/mapem/src/Position3D-addGrpC.c new file mode 100644 index 0000000..cc76de1 --- /dev/null +++ b/vcits/mapem/src/Position3D-addGrpC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Position3D-addGrpC.h" + +asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D_addGrpC, altitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_Position3D_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1 = { + sizeof(struct Position3D_addGrpC), + offsetof(struct Position3D_addGrpC, _asn_ctx), + asn_MAP_Position3D_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC = { + "Position3D-addGrpC", + "Position3D-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_addGrpC_tags_1, + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_Position3D_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Position3D_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_Position3D_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Position3D.c b/vcits/mapem/src/Position3D.c new file mode 100644 index 0000000..da8582b --- /dev/null +++ b/vcits/mapem/src/Position3D.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Position3D.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct Position3D__regional), + offsetof(struct Position3D__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Position3D_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D, lat), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_NOFLAGS, 0, offsetof(struct Position3D, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "long" + }, + { ATF_POINTER, 2, offsetof(struct Position3D, elevation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Elevation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 1, offsetof(struct Position3D, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_Position3D_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Position3D_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1 = { + sizeof(struct Position3D), + offsetof(struct Position3D, _asn_ctx), + asn_MAP_Position3D_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Position3D_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D = { + "Position3D", + "Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_tags_1, + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + asn_DEF_Position3D_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Position3D_1, + 4, /* Elements count */ + &asn_SPC_Position3D_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PositionConfidence.c b/vcits/mapem/src/PositionConfidence.c new file mode 100644 index 0000000..3e505ef --- /dev/null +++ b/vcits/mapem/src/PositionConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PositionConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositionConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 5, "a500m" }, + { 2, 5, "a200m" }, + { 3, 5, "a100m" }, + { 4, 4, "a50m" }, + { 5, 4, "a20m" }, + { 6, 4, "a10m" }, + { 7, 3, "a5m" }, + { 8, 3, "a2m" }, + { 9, 3, "a1m" }, + { 10, 5, "a50cm" }, + { 11, 5, "a20cm" }, + { 12, 5, "a10cm" }, + { 13, 4, "a5cm" }, + { 14, 4, "a2cm" }, + { 15, 4, "a1cm" } +}; +static const unsigned int asn_MAP_PositionConfidence_enum2value_1[] = { + 3, /* a100m(3) */ + 12, /* a10cm(12) */ + 6, /* a10m(6) */ + 15, /* a1cm(15) */ + 9, /* a1m(9) */ + 2, /* a200m(2) */ + 11, /* a20cm(11) */ + 5, /* a20m(5) */ + 14, /* a2cm(14) */ + 8, /* a2m(8) */ + 1, /* a500m(1) */ + 10, /* a50cm(10) */ + 4, /* a50m(4) */ + 13, /* a5cm(13) */ + 7, /* a5m(7) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1 = { + asn_MAP_PositionConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositionConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidence = { + "PositionConfidence", + "PositionConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_PositionConfidence_tags_1, + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionConfidence_constr_1, &asn_PER_type_PositionConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositionConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PositionConfidenceSet.c b/vcits/mapem/src/PositionConfidenceSet.c new file mode 100644 index 0000000..cb43ca6 --- /dev/null +++ b/vcits/mapem/src/PositionConfidenceSet.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PositionConfidenceSet.h" + +asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, pos), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pos" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, elevation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ElevationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidenceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionConfidenceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pos */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* elevation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1 = { + sizeof(struct PositionConfidenceSet), + offsetof(struct PositionConfidenceSet, _asn_ctx), + asn_MAP_PositionConfidenceSet_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet = { + "PositionConfidenceSet", + "PositionConfidenceSet", + &asn_OP_SEQUENCE, + asn_DEF_PositionConfidenceSet_tags_1, + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidenceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionConfidenceSet_1, + 2, /* Elements count */ + &asn_SPC_PositionConfidenceSet_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PositionOfOccupants.c b/vcits/mapem/src/PositionOfOccupants.c new file mode 100644 index 0000000..2261150 --- /dev/null +++ b/vcits/mapem/src/PositionOfOccupants.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PositionOfOccupants.h" + +int +PositionOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { 0, 0 }, + 20 /* (SIZE(20..20)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PositionOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants = { + "PositionOfOccupants", + "PositionOfOccupants", + &asn_OP_BIT_STRING, + asn_DEF_PositionOfOccupants_tags_1, + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_PositionOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfOccupants_constr_1, &asn_PER_type_PositionOfOccupants_constr_1, PositionOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PositionOfPillars.c b/vcits/mapem/src/PositionOfPillars.c new file mode 100644 index 0000000..95e908e --- /dev/null +++ b/vcits/mapem/src/PositionOfPillars.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PositionOfPillars.h" + +static asn_oer_constraints_t asn_OER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_PositionOfPillars_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PosPillar, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionOfPillars_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_PositionOfPillars_specs_1 = { + sizeof(struct PositionOfPillars), + offsetof(struct PositionOfPillars, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfPillars = { + "PositionOfPillars", + "PositionOfPillars", + &asn_OP_SEQUENCE_OF, + asn_DEF_PositionOfPillars_tags_1, + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + asn_DEF_PositionOfPillars_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfPillars_constr_1, &asn_PER_type_PositionOfPillars_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PositionOfPillars_1, + 1, /* Single element */ + &asn_SPC_PositionOfPillars_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PositionalAccuracy.c b/vcits/mapem/src/PositionalAccuracy.c new file mode 100644 index 0000000..d1cec0e --- /dev/null +++ b/vcits/mapem/src/PositionalAccuracy.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PositionalAccuracy.h" + +asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMajor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMinor), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMinorAxisAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, orientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisOrientation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "orientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionalAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionalAccuracy_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinor */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* orientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1 = { + sizeof(struct PositionalAccuracy), + offsetof(struct PositionalAccuracy, _asn_ctx), + asn_MAP_PositionalAccuracy_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy = { + "PositionalAccuracy", + "PositionalAccuracy", + &asn_OP_SEQUENCE, + asn_DEF_PositionalAccuracy_tags_1, + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + asn_DEF_PositionalAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionalAccuracy_1, + 3, /* Elements count */ + &asn_SPC_PositionalAccuracy_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PositioningSolutionType.c b/vcits/mapem/src/PositioningSolutionType.c new file mode 100644 index 0000000..e02c3bf --- /dev/null +++ b/vcits/mapem/src/PositioningSolutionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PositioningSolutionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositioningSolutionType_value2enum_1[] = { + { 0, 21, "noPositioningSolution" }, + { 1, 5, "sGNSS" }, + { 2, 5, "dGNSS" }, + { 3, 11, "sGNSSplusDR" }, + { 4, 11, "dGNSSplusDR" }, + { 5, 2, "dR" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PositioningSolutionType_enum2value_1[] = { + 2, /* dGNSS(2) */ + 4, /* dGNSSplusDR(4) */ + 5, /* dR(5) */ + 0, /* noPositioningSolution(0) */ + 1, /* sGNSS(1) */ + 3 /* sGNSSplusDR(3) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_PositioningSolutionType_specs_1 = { + asn_MAP_PositioningSolutionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositioningSolutionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositioningSolutionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType = { + "PositioningSolutionType", + "PositioningSolutionType", + &asn_OP_NativeEnumerated, + asn_DEF_PositioningSolutionType_tags_1, + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + asn_DEF_PositioningSolutionType_tags_1, /* Same as above */ + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + { &asn_OER_type_PositioningSolutionType_constr_1, &asn_PER_type_PositioningSolutionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositioningSolutionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PostCrashSubCauseCode.c b/vcits/mapem/src/PostCrashSubCauseCode.c new file mode 100644 index 0000000..755db59 --- /dev/null +++ b/vcits/mapem/src/PostCrashSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PostCrashSubCauseCode.h" + +int +PostCrashSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PostCrashSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode = { + "PostCrashSubCauseCode", + "PostCrashSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_PostCrashSubCauseCode_tags_1, + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_PostCrashSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_PostCrashSubCauseCode_constr_1, &asn_PER_type_PostCrashSubCauseCode_constr_1, PostCrashSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/PreemptPriorityList.c b/vcits/mapem/src/PreemptPriorityList.c new file mode 100644 index 0000000..a93d043 --- /dev/null +++ b/vcits/mapem/src/PreemptPriorityList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PreemptPriorityList.h" + +#include "SignalControlZone.h" +static asn_oer_constraints_t asn_OER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalControlZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PreemptPriorityList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1 = { + sizeof(struct PreemptPriorityList), + offsetof(struct PreemptPriorityList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList = { + "PreemptPriorityList", + "PreemptPriorityList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PreemptPriorityList_tags_1, + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + asn_DEF_PreemptPriorityList_tags_1, /* Same as above */ + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + { &asn_OER_type_PreemptPriorityList_constr_1, &asn_PER_type_PreemptPriorityList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PreemptPriorityList_1, + 1, /* Single element */ + &asn_SPC_PreemptPriorityList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PrioritizationResponse.c b/vcits/mapem/src/PrioritizationResponse.c new file mode 100644 index 0000000..eb05d3f --- /dev/null +++ b/vcits/mapem/src/PrioritizationResponse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PrioritizationResponse.h" + +asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, priorState), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "priorState" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PrioritizationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* priorState */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroup */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1 = { + sizeof(struct PrioritizationResponse), + offsetof(struct PrioritizationResponse, _asn_ctx), + asn_MAP_PrioritizationResponse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse = { + "PrioritizationResponse", + "PrioritizationResponse", + &asn_OP_SEQUENCE, + asn_DEF_PrioritizationResponse_tags_1, + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PrioritizationResponse_1, + 3, /* Elements count */ + &asn_SPC_PrioritizationResponse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PrioritizationResponseList.c b/vcits/mapem/src/PrioritizationResponseList.c new file mode 100644 index 0000000..346731c --- /dev/null +++ b/vcits/mapem/src/PrioritizationResponseList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PrioritizationResponseList.h" + +#include "PrioritizationResponse.h" +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PrioritizationResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1 = { + sizeof(struct PrioritizationResponseList), + offsetof(struct PrioritizationResponseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList = { + "PrioritizationResponseList", + "PrioritizationResponseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PrioritizationResponseList_tags_1, + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseList_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + { &asn_OER_type_PrioritizationResponseList_constr_1, &asn_PER_type_PrioritizationResponseList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PrioritizationResponseList_1, + 1, /* Single element */ + &asn_SPC_PrioritizationResponseList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PrioritizationResponseStatus.c b/vcits/mapem/src/PrioritizationResponseStatus.c new file mode 100644 index 0000000..a62ce2b --- /dev/null +++ b/vcits/mapem/src/PrioritizationResponseStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PrioritizationResponseStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PrioritizationResponseStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 9, "requested" }, + { 2, 10, "processing" }, + { 3, 17, "watchOtherTraffic" }, + { 4, 7, "granted" }, + { 5, 8, "rejected" }, + { 6, 11, "maxPresence" }, + { 7, 15, "reserviceLocked" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PrioritizationResponseStatus_enum2value_1[] = { + 4, /* granted(4) */ + 6, /* maxPresence(6) */ + 2, /* processing(2) */ + 5, /* rejected(5) */ + 1, /* requested(1) */ + 7, /* reserviceLocked(7) */ + 0, /* unknown(0) */ + 3 /* watchOtherTraffic(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1 = { + asn_MAP_PrioritizationResponseStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PrioritizationResponseStatus_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus = { + "PrioritizationResponseStatus", + "PrioritizationResponseStatus", + &asn_OP_NativeEnumerated, + asn_DEF_PrioritizationResponseStatus_tags_1, + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_PrioritizationResponseStatus_constr_1, &asn_PER_type_PrioritizationResponseStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PrioritizationResponseStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PriorityRequestType.c b/vcits/mapem/src/PriorityRequestType.c new file mode 100644 index 0000000..23e1558 --- /dev/null +++ b/vcits/mapem/src/PriorityRequestType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PriorityRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PriorityRequestType_value2enum_1[] = { + { 0, 27, "priorityRequestTypeReserved" }, + { 1, 15, "priorityRequest" }, + { 2, 21, "priorityRequestUpdate" }, + { 3, 20, "priorityCancellation" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PriorityRequestType_enum2value_1[] = { + 3, /* priorityCancellation(3) */ + 1, /* priorityRequest(1) */ + 0, /* priorityRequestTypeReserved(0) */ + 2 /* priorityRequestUpdate(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1 = { + asn_MAP_PriorityRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PriorityRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PriorityRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PriorityRequestType = { + "PriorityRequestType", + "PriorityRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PriorityRequestType_tags_1, + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + asn_DEF_PriorityRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_PriorityRequestType_constr_1, &asn_PER_type_PriorityRequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PriorityRequestType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ProtectedCommunicationZone.c b/vcits/mapem/src/ProtectedCommunicationZone.c new file mode 100644 index 0000000..aee1e5e --- /dev/null +++ b/vcits/mapem/src/ProtectedCommunicationZone.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ProtectedCommunicationZone.h" + +asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneType" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expiryTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 2, offsetof(struct ProtectedCommunicationZone, protectedZoneRadius), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneRadius, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneRadius" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, protectedZoneID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneID" + }, +}; +static const int asn_MAP_ProtectedCommunicationZone_oms_1[] = { 1, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ProtectedCommunicationZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expiryTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protectedZoneRadius */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* protectedZoneID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1 = { + sizeof(struct ProtectedCommunicationZone), + offsetof(struct ProtectedCommunicationZone, _asn_ctx), + asn_MAP_ProtectedCommunicationZone_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ProtectedCommunicationZone_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone = { + "ProtectedCommunicationZone", + "ProtectedCommunicationZone", + &asn_OP_SEQUENCE, + asn_DEF_ProtectedCommunicationZone_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZone_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ProtectedCommunicationZone_1, + 6, /* Elements count */ + &asn_SPC_ProtectedCommunicationZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ProtectedCommunicationZonesRSU.c b/vcits/mapem/src/ProtectedCommunicationZonesRSU.c new file mode 100644 index 0000000..29bec42 --- /dev/null +++ b/vcits/mapem/src/ProtectedCommunicationZonesRSU.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ProtectedCommunicationZonesRSU.h" + +#include "ProtectedCommunicationZone.h" +static asn_oer_constraints_t asn_OER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ProtectedCommunicationZonesRSU_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtectedCommunicationZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZonesRSU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ProtectedCommunicationZonesRSU_specs_1 = { + sizeof(struct ProtectedCommunicationZonesRSU), + offsetof(struct ProtectedCommunicationZonesRSU, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU = { + "ProtectedCommunicationZonesRSU", + "ProtectedCommunicationZonesRSU", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedCommunicationZonesRSU_constr_1, &asn_PER_type_ProtectedCommunicationZonesRSU_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtectedCommunicationZonesRSU_1, + 1, /* Single element */ + &asn_SPC_ProtectedCommunicationZonesRSU_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ProtectedZoneID.c b/vcits/mapem/src/ProtectedZoneID.c new file mode 100644 index 0000000..8df25f6 --- /dev/null +++ b/vcits/mapem/src/ProtectedZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ProtectedZoneID.h" + +int +ProtectedZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID = { + "ProtectedZoneID", + "ProtectedZoneID", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneID_tags_1, + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneID_constr_1, &asn_PER_type_ProtectedZoneID_constr_1, ProtectedZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/ProtectedZoneRadius.c b/vcits/mapem/src/ProtectedZoneRadius.c new file mode 100644 index 0000000..a2dbeb4 --- /dev/null +++ b/vcits/mapem/src/ProtectedZoneRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ProtectedZoneRadius.h" + +int +ProtectedZoneRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 255 } /* (1..255,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius = { + "ProtectedZoneRadius", + "ProtectedZoneRadius", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneRadius_tags_1, + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneRadius_constr_1, &asn_PER_type_ProtectedZoneRadius_constr_1, ProtectedZoneRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/ProtectedZoneType.c b/vcits/mapem/src/ProtectedZoneType.c new file mode 100644 index 0000000..c3bf82c --- /dev/null +++ b/vcits/mapem/src/ProtectedZoneType.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ProtectedZoneType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ProtectedZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ProtectedZoneType_enum2value_1[] = { + 0, /* permanentCenDsrcTolling(0) */ + 1 /* temporaryCenDsrcTolling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1 = { + asn_MAP_ProtectedZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ProtectedZoneType_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType = { + "ProtectedZoneType", + "ProtectedZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_ProtectedZoneType_tags_1, + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneType_constr_1, &asn_PER_type_ProtectedZoneType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ProtectedZoneType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PtActivation.c b/vcits/mapem/src/PtActivation.c new file mode 100644 index 0000000..3486eb2 --- /dev/null +++ b/vcits/mapem/src/PtActivation.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PtActivation.h" + +static asn_TYPE_member_t asn_MBR_PtActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationData" + }, +}; +static const ber_tlv_tag_t asn_DEF_PtActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PtActivation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptActivationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivationData */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_PtActivation_specs_1 = { + sizeof(struct PtActivation), + offsetof(struct PtActivation, _asn_ctx), + asn_MAP_PtActivation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PtActivation = { + "PtActivation", + "PtActivation", + &asn_OP_SEQUENCE, + asn_DEF_PtActivation_tags_1, + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + asn_DEF_PtActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PtActivation_1, + 2, /* Elements count */ + &asn_SPC_PtActivation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PtActivationData.c b/vcits/mapem/src/PtActivationData.c new file mode 100644 index 0000000..209d65a --- /dev/null +++ b/vcits/mapem/src/PtActivationData.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PtActivationData.h" + +int +PtActivationData_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationData_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..20)) */}; +asn_per_constraints_t asn_PER_type_PtActivationData_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (SIZE(1..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationData = { + "PtActivationData", + "PtActivationData", + &asn_OP_OCTET_STRING, + asn_DEF_PtActivationData_tags_1, + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + asn_DEF_PtActivationData_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationData_constr_1, &asn_PER_type_PtActivationData_constr_1, PtActivationData_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/PtActivationType.c b/vcits/mapem/src/PtActivationType.c new file mode 100644 index 0000000..cf4b2ee --- /dev/null +++ b/vcits/mapem/src/PtActivationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PtActivationType.h" + +int +PtActivationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_PtActivationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationType = { + "PtActivationType", + "PtActivationType", + &asn_OP_NativeInteger, + asn_DEF_PtActivationType_tags_1, + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + asn_DEF_PtActivationType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationType_constr_1, &asn_PER_type_PtActivationType_constr_1, PtActivationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/PtvRequestType.c b/vcits/mapem/src/PtvRequestType.c new file mode 100644 index 0000000..6459267 --- /dev/null +++ b/vcits/mapem/src/PtvRequestType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "PtvRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtvRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PtvRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PtvRequestType_value2enum_1[] = { + { 0, 10, "preRequest" }, + { 1, 11, "mainRequest" }, + { 2, 16, "doorCloseRequest" }, + { 3, 13, "cancelRequest" }, + { 4, 16, "emergencyRequest" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PtvRequestType_enum2value_1[] = { + 3, /* cancelRequest(3) */ + 2, /* doorCloseRequest(2) */ + 4, /* emergencyRequest(4) */ + 1, /* mainRequest(1) */ + 0 /* preRequest(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PtvRequestType_specs_1 = { + asn_MAP_PtvRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PtvRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 6, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PtvRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtvRequestType = { + "PtvRequestType", + "PtvRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PtvRequestType_tags_1, + sizeof(asn_DEF_PtvRequestType_tags_1) + /sizeof(asn_DEF_PtvRequestType_tags_1[0]), /* 1 */ + asn_DEF_PtvRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtvRequestType_tags_1) + /sizeof(asn_DEF_PtvRequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtvRequestType_constr_1, &asn_PER_type_PtvRequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PtvRequestType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RTCM-Revision.c b/vcits/mapem/src/RTCM-Revision.c new file mode 100644 index 0000000..1bdb04a --- /dev/null +++ b/vcits/mapem/src/RTCM-Revision.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RTCM-Revision.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RTCM_Revision_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "rtcmRev2" }, + { 2, 8, "rtcmRev3" }, + { 3, 8, "reserved" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RTCM_Revision_enum2value_1[] = { + 3, /* reserved(3) */ + 1, /* rtcmRev2(1) */ + 2, /* rtcmRev3(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1 = { + asn_MAP_RTCM_Revision_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RTCM_Revision_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RTCM_Revision_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCM_Revision = { + "RTCM-Revision", + "RTCM-Revision", + &asn_OP_NativeEnumerated, + asn_DEF_RTCM_Revision_tags_1, + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + asn_DEF_RTCM_Revision_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCM_Revision_constr_1, &asn_PER_type_RTCM_Revision_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RTCM_Revision_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RTCMcorrections.c b/vcits/mapem/src/RTCMcorrections.c new file mode 100644 index 0000000..0a3f8f8 --- /dev/null +++ b/vcits/mapem/src/RTCMcorrections.c @@ -0,0 +1,194 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RTCMcorrections.h" + +#include "FullPositionVector.h" +#include "RTCMheader.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RTCMcorrections, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct RTCMcorrections__regional), + offsetof(struct RTCMcorrections__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RTCMcorrections_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, rev), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCM_Revision, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rev" + }, + { ATF_POINTER, 3, offsetof(struct RTCMcorrections, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 2, offsetof(struct RTCMcorrections, anchorPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FullPositionVector, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "anchorPoint" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, rtcmHeader), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMheader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rtcmHeader" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgs), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMmessageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgs" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RTCMcorrections_oms_1[] = { 2, 3, 4, 6 }; +static const ber_tlv_tag_t asn_DEF_RTCMcorrections_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMcorrections_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rev */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* anchorPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rtcmHeader */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* msgs */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RTCMcorrections_specs_1 = { + sizeof(struct RTCMcorrections), + offsetof(struct RTCMcorrections, _asn_ctx), + asn_MAP_RTCMcorrections_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_RTCMcorrections_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMcorrections = { + "RTCMcorrections", + "RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_RTCMcorrections_tags_1, + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + asn_DEF_RTCMcorrections_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMcorrections_1, + 7, /* Elements count */ + &asn_SPC_RTCMcorrections_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RTCMheader.c b/vcits/mapem/src/RTCMheader.c new file mode 100644 index 0000000..66967b2 --- /dev/null +++ b/vcits/mapem/src/RTCMheader.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RTCMheader.h" + +asn_TYPE_member_t asn_MBR_RTCMheader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, status), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNSSstatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, offsetSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AntennaOffsetSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMheader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMheader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* offsetSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1 = { + sizeof(struct RTCMheader), + offsetof(struct RTCMheader, _asn_ctx), + asn_MAP_RTCMheader_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMheader = { + "RTCMheader", + "RTCMheader", + &asn_OP_SEQUENCE, + asn_DEF_RTCMheader_tags_1, + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + asn_DEF_RTCMheader_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMheader_1, + 2, /* Elements count */ + &asn_SPC_RTCMheader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RTCMmessage.c b/vcits/mapem/src/RTCMmessage.c new file mode 100644 index 0000000..7a92848 --- /dev/null +++ b/vcits/mapem/src/RTCMmessage.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RTCMmessage.h" + +int +RTCMmessage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1023)) */}; +asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (SIZE(1..1023)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessage = { + "RTCMmessage", + "RTCMmessage", + &asn_OP_OCTET_STRING, + asn_DEF_RTCMmessage_tags_1, + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCMmessage_constr_1, &asn_PER_type_RTCMmessage_constr_1, RTCMmessage_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RTCMmessageList.c b/vcits/mapem/src/RTCMmessageList.c new file mode 100644 index 0000000..5bf3e3e --- /dev/null +++ b/vcits/mapem/src/RTCMmessageList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RTCMmessageList.h" + +static asn_oer_constraints_t asn_OER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RTCMmessageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RTCMmessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1 = { + sizeof(struct RTCMmessageList), + offsetof(struct RTCMmessageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessageList = { + "RTCMmessageList", + "RTCMmessageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RTCMmessageList_tags_1, + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessageList_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCMmessageList_constr_1, &asn_PER_type_RTCMmessageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RTCMmessageList_1, + 1, /* Single element */ + &asn_SPC_RTCMmessageList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ReferencePosition.c b/vcits/mapem/src/ReferencePosition.c new file mode 100644 index 0000000..5455595 --- /dev/null +++ b/vcits/mapem/src/ReferencePosition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ReferencePosition.h" + +asn_TYPE_member_t asn_MBR_ReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PosConfidenceEllipse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionConfidenceEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* longitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* positionConfidenceEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1 = { + sizeof(struct ReferencePosition), + offsetof(struct ReferencePosition, _asn_ctx), + asn_MAP_ReferencePosition_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReferencePosition = { + "ReferencePosition", + "ReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_ReferencePosition_tags_1, + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_ReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReferencePosition_1, + 4, /* Elements count */ + &asn_SPC_ReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RegionId.c b/vcits/mapem/src/RegionId.c new file mode 100644 index 0000000..e5afc75 --- /dev/null +++ b/vcits/mapem/src/RegionId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RegionId.h" + +int +RegionId_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RegionId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RegionId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RegionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RegionId = { + "RegionId", + "RegionId", + &asn_OP_NativeInteger, + asn_DEF_RegionId_tags_1, + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + asn_DEF_RegionId_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + { &asn_OER_type_RegionId_constr_1, &asn_PER_type_RegionId_constr_1, RegionId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/RegionalExtension.c b/vcits/mapem/src/RegionalExtension.c new file mode 100644 index 0000000..0abda2c --- /dev/null +++ b/vcits/mapem/src/RegionalExtension.c @@ -0,0 +1,4204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RegionalExtension.h" + +static const long asn_VAL_5_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MapData_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_5_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MapData_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MapData_1[] = { + { 1, 2, asn_IOS_Reg_MapData_1_rows } +}; +static const long asn_VAL_1_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_ConnectionManeuverAssist_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_1_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionManeuverAssist_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_ConnectionManeuverAssist_1[] = { + { 1, 2, asn_IOS_Reg_ConnectionManeuverAssist_1_rows } +}; +static const long asn_VAL_2_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_GenericLane_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_2_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionTrajectory_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_GenericLane_1[] = { + { 1, 2, asn_IOS_Reg_GenericLane_1_rows } +}; +static const long asn_VAL_3_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_IntersectionState_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_3_addGrpC }, + { "&Type", aioc__type, &asn_DEF_IntersectionState_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_IntersectionState_1[] = { + { 1, 2, asn_IOS_Reg_IntersectionState_1_rows } +}; +static const long asn_VAL_4_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_LaneAttributes_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_4_addGrpC }, + { "&Type", aioc__type, &asn_DEF_LaneAttributes_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_LaneAttributes_1[] = { + { 1, 2, asn_IOS_Reg_LaneAttributes_1_rows } +}; +static const long asn_VAL_6_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MovementEvent_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_6_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MovementEvent_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MovementEvent_1[] = { + { 1, 2, asn_IOS_Reg_MovementEvent_1_rows } +}; +static const long asn_VAL_7_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_NodeAttributeSetXY_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_7_addGrpC }, + { "&Type", aioc__type, &asn_DEF_NodeAttributeSet_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_NodeAttributeSetXY_1[] = { + { 1, 2, asn_IOS_Reg_NodeAttributeSetXY_1_rows } +}; +static const long asn_VAL_8_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_Position3D_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_8_addGrpC }, + { "&Type", aioc__type, &asn_DEF_Position3D_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_Position3D_1[] = { + { 1, 2, asn_IOS_Reg_Position3D_1_rows } +}; +static const long asn_VAL_9_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RequestorDescription_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_9_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RequestorDescription_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RequestorDescription_1[] = { + { 1, 2, asn_IOS_Reg_RequestorDescription_1_rows } +}; +static const long asn_VAL_10_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RestrictionUserType_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_10_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RestrictionUserType_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RestrictionUserType_1[] = { + { 1, 2, asn_IOS_Reg_RestrictionUserType_1_rows } +}; +static const long asn_VAL_11_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_SignalStatusPackage_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_11_addGrpC }, + { "&Type", aioc__type, &asn_DEF_SignalStatusPackage_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_SignalStatusPackage_1[] = { + { 1, 2, asn_IOS_Reg_SignalStatusPackage_1_rows } +}; +static int +memb_regionId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MapData_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MapData_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MapData, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_ConnectionManeuverAssist_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_ConnectionManeuverAssist_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_ConnectionManeuverAssist, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_GenericLane_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_GenericLane_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_GenericLane, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_IntersectionState_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_IntersectionState_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_IntersectionState, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_LaneAttributes_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_LaneAttributes_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_LaneAttributes, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MovementEvent_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MovementEvent_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MovementEvent, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_NodeAttributeSetXY_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_NodeAttributeSetXY_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_NodeAttributeSetXY, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_Position3D_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_Position3D_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_Position3D, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RequestorDescription_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RequestorDescription_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RequestorDescription, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RestrictionUserType_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RestrictionUserType_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RestrictionUserType, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_SignalStatusPackage_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_SignalStatusPackage_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_SignalStatusPackage, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_regionId_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_11 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_14 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_15 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_17 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_18 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_20 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_21 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_23 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_26 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_27 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_29 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_30 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_30 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_32 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_33 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_35 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_36 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_38 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_39 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_41 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_42 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_42 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_44 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_44 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_45 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_47 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_47 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_48 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_50 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_51 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_53 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_53 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_54 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_54 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_56 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_56 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_57 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_57 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_59 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_60 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_62 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_63 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_63 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_65 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_65 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_66 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_66 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_68 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_68 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_69 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_69 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_71 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_71 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_72 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_74 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_74 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_75 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_75 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_77 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_77 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_78 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_78 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_80 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_80 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_81 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_81 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regExtValue_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData__regExtValue, choice.MapData_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MapData_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MapData-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_3[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MapData-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_3 = { + sizeof(struct Reg_MapData__regExtValue), + offsetof(struct Reg_MapData__regExtValue, _asn_ctx), + offsetof(struct Reg_MapData__regExtValue, present), + sizeof(((struct Reg_MapData__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_3, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_3 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_3, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MapData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_2, &asn_PER_memb_regionId_constr_2, memb_regionId_constraint_1 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_3, + select_Reg_MapData_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_3, &asn_PER_memb_regExtValue_constr_3, memb_regExtValue_constraint_1 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_1 = { + sizeof(struct Reg_MapData), + offsetof(struct Reg_MapData, _asn_ctx), + asn_MAP_Reg_MapData_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MapData = { + "Reg-MapData", + "Reg-MapData", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MapData_tags_1, + sizeof(asn_DEF_Reg_MapData_tags_1) + /sizeof(asn_DEF_Reg_MapData_tags_1[0]), /* 1 */ + asn_DEF_Reg_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_Reg_MapData_tags_1) + /sizeof(asn_DEF_Reg_MapData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MapData_1, + 2, /* Elements count */ + &asn_SPC_Reg_MapData_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_6 = { + sizeof(struct Reg_RTCMcorrections__regExtValue), + offsetof(struct Reg_RTCMcorrections__regExtValue, _asn_ctx), + offsetof(struct Reg_RTCMcorrections__regExtValue, present), + sizeof(((struct Reg_RTCMcorrections__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_6 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_5, &asn_PER_memb_regionId_constr_5, memb_regionId_constraint_4 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_6, + 0, + { &asn_OER_memb_regExtValue_constr_6, &asn_PER_memb_regExtValue_constr_6, memb_regExtValue_constraint_4 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RTCMcorrections_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RTCMcorrections_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_4 = { + sizeof(struct Reg_RTCMcorrections), + offsetof(struct Reg_RTCMcorrections, _asn_ctx), + asn_MAP_Reg_RTCMcorrections_tag2el_4, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections = { + "Reg-RTCMcorrections", + "Reg-RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RTCMcorrections_tags_4, + sizeof(asn_DEF_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + asn_DEF_Reg_RTCMcorrections_tags_4, /* Same as above */ + sizeof(asn_DEF_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RTCMcorrections_4, + 2, /* Elements count */ + &asn_SPC_Reg_RTCMcorrections_specs_4 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_9 = { + sizeof(struct Reg_SPAT__regExtValue), + offsetof(struct Reg_SPAT__regExtValue, _asn_ctx), + offsetof(struct Reg_SPAT__regExtValue, present), + sizeof(((struct Reg_SPAT__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_9 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SPAT_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_8, &asn_PER_memb_regionId_constr_8, memb_regionId_constraint_7 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_9, + 0, + { &asn_OER_memb_regExtValue_constr_9, &asn_PER_memb_regExtValue_constr_9, memb_regExtValue_constraint_7 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SPAT_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SPAT_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_7 = { + sizeof(struct Reg_SPAT), + offsetof(struct Reg_SPAT, _asn_ctx), + asn_MAP_Reg_SPAT_tag2el_7, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SPAT = { + "Reg-SPAT", + "Reg-SPAT", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SPAT_tags_7, + sizeof(asn_DEF_Reg_SPAT_tags_7) + /sizeof(asn_DEF_Reg_SPAT_tags_7[0]), /* 1 */ + asn_DEF_Reg_SPAT_tags_7, /* Same as above */ + sizeof(asn_DEF_Reg_SPAT_tags_7) + /sizeof(asn_DEF_Reg_SPAT_tags_7[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SPAT_7, + 2, /* Elements count */ + &asn_SPC_Reg_SPAT_specs_7 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_12 = { + sizeof(struct Reg_SignalRequestMessage__regExtValue), + offsetof(struct Reg_SignalRequestMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestMessage__regExtValue, present), + sizeof(((struct Reg_SignalRequestMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_12 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_11, &asn_PER_memb_regionId_constr_11, memb_regionId_constraint_10 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_12, + 0, + { &asn_OER_memb_regExtValue_constr_12, &asn_PER_memb_regExtValue_constr_12, memb_regExtValue_constraint_10 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestMessage_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestMessage_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_10 = { + sizeof(struct Reg_SignalRequestMessage), + offsetof(struct Reg_SignalRequestMessage, _asn_ctx), + asn_MAP_Reg_SignalRequestMessage_tag2el_10, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage = { + "Reg-SignalRequestMessage", + "Reg-SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestMessage_tags_10, + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + asn_DEF_Reg_SignalRequestMessage_tags_10, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequestMessage_10, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestMessage_specs_10 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_15 = { + sizeof(struct Reg_SignalStatusMessage__regExtValue), + offsetof(struct Reg_SignalStatusMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusMessage__regExtValue, present), + sizeof(((struct Reg_SignalStatusMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_15 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_14, &asn_PER_memb_regionId_constr_14, memb_regionId_constraint_13 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_15, + 0, + { &asn_OER_memb_regExtValue_constr_15, &asn_PER_memb_regExtValue_constr_15, memb_regExtValue_constraint_13 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusMessage_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusMessage_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_13 = { + sizeof(struct Reg_SignalStatusMessage), + offsetof(struct Reg_SignalStatusMessage, _asn_ctx), + asn_MAP_Reg_SignalStatusMessage_tag2el_13, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage = { + "Reg-SignalStatusMessage", + "Reg-SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusMessage_tags_13, + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + asn_DEF_Reg_SignalStatusMessage_tags_13, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatusMessage_13, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusMessage_specs_13 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_18 = { + sizeof(struct Reg_AdvisorySpeed__regExtValue), + offsetof(struct Reg_AdvisorySpeed__regExtValue, _asn_ctx), + offsetof(struct Reg_AdvisorySpeed__regExtValue, present), + sizeof(((struct Reg_AdvisorySpeed__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_18 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_17, &asn_PER_memb_regionId_constr_17, memb_regionId_constraint_16 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_18, + 0, + { &asn_OER_memb_regExtValue_constr_18, &asn_PER_memb_regExtValue_constr_18, memb_regExtValue_constraint_16 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_AdvisorySpeed_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_AdvisorySpeed_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_16 = { + sizeof(struct Reg_AdvisorySpeed), + offsetof(struct Reg_AdvisorySpeed, _asn_ctx), + asn_MAP_Reg_AdvisorySpeed_tag2el_16, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed = { + "Reg-AdvisorySpeed", + "Reg-AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_Reg_AdvisorySpeed_tags_16, + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + asn_DEF_Reg_AdvisorySpeed_tags_16, /* Same as above */ + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_AdvisorySpeed_16, + 2, /* Elements count */ + &asn_SPC_Reg_AdvisorySpeed_specs_16 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_21 = { + sizeof(struct Reg_ComputedLane__regExtValue), + offsetof(struct Reg_ComputedLane__regExtValue, _asn_ctx), + offsetof(struct Reg_ComputedLane__regExtValue, present), + sizeof(((struct Reg_ComputedLane__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_21 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ComputedLane_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_20, &asn_PER_memb_regionId_constr_20, memb_regionId_constraint_19 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_21, + 0, + { &asn_OER_memb_regExtValue_constr_21, &asn_PER_memb_regExtValue_constr_21, memb_regExtValue_constraint_19 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ComputedLane_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ComputedLane_tag2el_19[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_19 = { + sizeof(struct Reg_ComputedLane), + offsetof(struct Reg_ComputedLane, _asn_ctx), + asn_MAP_Reg_ComputedLane_tag2el_19, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane = { + "Reg-ComputedLane", + "Reg-ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ComputedLane_tags_19, + sizeof(asn_DEF_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_Reg_ComputedLane_tags_19[0]), /* 1 */ + asn_DEF_Reg_ComputedLane_tags_19, /* Same as above */ + sizeof(asn_DEF_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_Reg_ComputedLane_tags_19[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_ComputedLane_19, + 2, /* Elements count */ + &asn_SPC_Reg_ComputedLane_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, choice.ConnectionManeuverAssist_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionManeuverAssist-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionManeuverAssist-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_24 = { + sizeof(struct Reg_ConnectionManeuverAssist__regExtValue), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, _asn_ctx), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, present), + sizeof(((struct Reg_ConnectionManeuverAssist__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_24, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_24 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_24, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_23, &asn_PER_memb_regionId_constr_23, memb_regionId_constraint_22 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_24, + select_Reg_ConnectionManeuverAssist_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_24, &asn_PER_memb_regExtValue_constr_24, memb_regExtValue_constraint_22 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ConnectionManeuverAssist_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ConnectionManeuverAssist_tag2el_22[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_22 = { + sizeof(struct Reg_ConnectionManeuverAssist), + offsetof(struct Reg_ConnectionManeuverAssist, _asn_ctx), + asn_MAP_Reg_ConnectionManeuverAssist_tag2el_22, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist = { + "Reg-ConnectionManeuverAssist", + "Reg-ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ConnectionManeuverAssist_tags_22, + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + asn_DEF_Reg_ConnectionManeuverAssist_tags_22, /* Same as above */ + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_ConnectionManeuverAssist_22, + 2, /* Elements count */ + &asn_SPC_Reg_ConnectionManeuverAssist_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_27[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane__regExtValue, choice.ConnectionTrajectory_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionTrajectory_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionTrajectory-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_27[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionTrajectory-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_27 = { + sizeof(struct Reg_GenericLane__regExtValue), + offsetof(struct Reg_GenericLane__regExtValue, _asn_ctx), + offsetof(struct Reg_GenericLane__regExtValue, present), + sizeof(((struct Reg_GenericLane__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_27, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_27 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_27, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_GenericLane_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_26, &asn_PER_memb_regionId_constr_26, memb_regionId_constraint_25 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_27, + select_Reg_GenericLane_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_27, &asn_PER_memb_regExtValue_constr_27, memb_regExtValue_constraint_25 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_GenericLane_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_GenericLane_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_25 = { + sizeof(struct Reg_GenericLane), + offsetof(struct Reg_GenericLane, _asn_ctx), + asn_MAP_Reg_GenericLane_tag2el_25, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane = { + "Reg-GenericLane", + "Reg-GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_GenericLane_tags_25, + sizeof(asn_DEF_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_Reg_GenericLane_tags_25[0]), /* 1 */ + asn_DEF_Reg_GenericLane_tags_25, /* Same as above */ + sizeof(asn_DEF_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_Reg_GenericLane_tags_25[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_GenericLane_25, + 2, /* Elements count */ + &asn_SPC_Reg_GenericLane_specs_25 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_30 = { + sizeof(struct Reg_IntersectionGeometry__regExtValue), + offsetof(struct Reg_IntersectionGeometry__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionGeometry__regExtValue, present), + sizeof(((struct Reg_IntersectionGeometry__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_30 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_30 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_29, &asn_PER_memb_regionId_constr_29, memb_regionId_constraint_28 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_30, + 0, + { &asn_OER_memb_regExtValue_constr_30, &asn_PER_memb_regExtValue_constr_30, memb_regExtValue_constraint_28 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionGeometry_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionGeometry_tag2el_28[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_28 = { + sizeof(struct Reg_IntersectionGeometry), + offsetof(struct Reg_IntersectionGeometry, _asn_ctx), + asn_MAP_Reg_IntersectionGeometry_tag2el_28, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry = { + "Reg-IntersectionGeometry", + "Reg-IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionGeometry_tags_28, + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + asn_DEF_Reg_IntersectionGeometry_tags_28, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_IntersectionGeometry_28, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionGeometry_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState__regExtValue, choice.IntersectionState_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IntersectionState-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_33[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* IntersectionState-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_33 = { + sizeof(struct Reg_IntersectionState__regExtValue), + offsetof(struct Reg_IntersectionState__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionState__regExtValue, present), + sizeof(((struct Reg_IntersectionState__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_33, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_33 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_33, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionState_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_32, &asn_PER_memb_regionId_constr_32, memb_regionId_constraint_31 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_33, + select_Reg_IntersectionState_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_33, &asn_PER_memb_regExtValue_constr_33, memb_regExtValue_constraint_31 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionState_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionState_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_31 = { + sizeof(struct Reg_IntersectionState), + offsetof(struct Reg_IntersectionState, _asn_ctx), + asn_MAP_Reg_IntersectionState_tag2el_31, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState = { + "Reg-IntersectionState", + "Reg-IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionState_tags_31, + sizeof(asn_DEF_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_Reg_IntersectionState_tags_31[0]), /* 1 */ + asn_DEF_Reg_IntersectionState_tags_31, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_Reg_IntersectionState_tags_31[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_IntersectionState_31, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionState_specs_31 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes__regExtValue, choice.LaneAttributes_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_LaneAttributes_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LaneAttributes-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* LaneAttributes-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_36 = { + sizeof(struct Reg_LaneAttributes__regExtValue), + offsetof(struct Reg_LaneAttributes__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneAttributes__regExtValue, present), + sizeof(((struct Reg_LaneAttributes__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_36, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_36 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_36, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_34[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_35, &asn_PER_memb_regionId_constr_35, memb_regionId_constraint_34 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_36, + select_Reg_LaneAttributes_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_36, &asn_PER_memb_regExtValue_constr_36, memb_regExtValue_constraint_34 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneAttributes_tags_34[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneAttributes_tag2el_34[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_34 = { + sizeof(struct Reg_LaneAttributes), + offsetof(struct Reg_LaneAttributes, _asn_ctx), + asn_MAP_Reg_LaneAttributes_tag2el_34, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes = { + "Reg-LaneAttributes", + "Reg-LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneAttributes_tags_34, + sizeof(asn_DEF_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_34[0]), /* 1 */ + asn_DEF_Reg_LaneAttributes_tags_34, /* Same as above */ + sizeof(asn_DEF_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_34[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_LaneAttributes_34, + 2, /* Elements count */ + &asn_SPC_Reg_LaneAttributes_specs_34 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_39 = { + sizeof(struct Reg_LaneDataAttribute__regExtValue), + offsetof(struct Reg_LaneDataAttribute__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneDataAttribute__regExtValue, present), + sizeof(((struct Reg_LaneDataAttribute__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_39 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_38, &asn_PER_memb_regionId_constr_38, memb_regionId_constraint_37 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_39, + 0, + { &asn_OER_memb_regExtValue_constr_39, &asn_PER_memb_regExtValue_constr_39, memb_regExtValue_constraint_37 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneDataAttribute_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneDataAttribute_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_37 = { + sizeof(struct Reg_LaneDataAttribute), + offsetof(struct Reg_LaneDataAttribute, _asn_ctx), + asn_MAP_Reg_LaneDataAttribute_tag2el_37, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute = { + "Reg-LaneDataAttribute", + "Reg-LaneDataAttribute", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneDataAttribute_tags_37, + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + asn_DEF_Reg_LaneDataAttribute_tags_37, /* Same as above */ + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_LaneDataAttribute_37, + 2, /* Elements count */ + &asn_SPC_Reg_LaneDataAttribute_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_42[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent__regExtValue, choice.MovementEvent_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MovementEvent-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_42[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MovementEvent-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_42 = { + sizeof(struct Reg_MovementEvent__regExtValue), + offsetof(struct Reg_MovementEvent__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementEvent__regExtValue, present), + sizeof(((struct Reg_MovementEvent__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_42, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_42 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_42, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_42 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementEvent_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_41, &asn_PER_memb_regionId_constr_41, memb_regionId_constraint_40 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_42, + select_Reg_MovementEvent_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_42, &asn_PER_memb_regExtValue_constr_42, memb_regExtValue_constraint_40 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementEvent_tags_40[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementEvent_tag2el_40[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_40 = { + sizeof(struct Reg_MovementEvent), + offsetof(struct Reg_MovementEvent, _asn_ctx), + asn_MAP_Reg_MovementEvent_tag2el_40, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent = { + "Reg-MovementEvent", + "Reg-MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementEvent_tags_40, + sizeof(asn_DEF_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_Reg_MovementEvent_tags_40[0]), /* 1 */ + asn_DEF_Reg_MovementEvent_tags_40, /* Same as above */ + sizeof(asn_DEF_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_Reg_MovementEvent_tags_40[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MovementEvent_40, + 2, /* Elements count */ + &asn_SPC_Reg_MovementEvent_specs_40 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_45 = { + sizeof(struct Reg_MovementState__regExtValue), + offsetof(struct Reg_MovementState__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementState__regExtValue, present), + sizeof(((struct Reg_MovementState__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_45 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementState_43[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_44, &asn_PER_memb_regionId_constr_44, memb_regionId_constraint_43 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_45, + 0, + { &asn_OER_memb_regExtValue_constr_45, &asn_PER_memb_regExtValue_constr_45, memb_regExtValue_constraint_43 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementState_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementState_tag2el_43[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_43 = { + sizeof(struct Reg_MovementState), + offsetof(struct Reg_MovementState, _asn_ctx), + asn_MAP_Reg_MovementState_tag2el_43, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementState = { + "Reg-MovementState", + "Reg-MovementState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementState_tags_43, + sizeof(asn_DEF_Reg_MovementState_tags_43) + /sizeof(asn_DEF_Reg_MovementState_tags_43[0]), /* 1 */ + asn_DEF_Reg_MovementState_tags_43, /* Same as above */ + sizeof(asn_DEF_Reg_MovementState_tags_43) + /sizeof(asn_DEF_Reg_MovementState_tags_43[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MovementState_43, + 2, /* Elements count */ + &asn_SPC_Reg_MovementState_specs_43 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY__regExtValue, choice.NodeAttributeSet_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeAttributeSet_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NodeAttributeSet-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NodeAttributeSet-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_48 = { + sizeof(struct Reg_NodeAttributeSetXY__regExtValue), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, present), + sizeof(((struct Reg_NodeAttributeSetXY__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_48, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_48 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_48, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_46[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_47, &asn_PER_memb_regionId_constr_47, memb_regionId_constraint_46 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_48, + select_Reg_NodeAttributeSetXY_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_48, &asn_PER_memb_regExtValue_constr_48, memb_regExtValue_constraint_46 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeAttributeSetXY_tags_46[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeAttributeSetXY_tag2el_46[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_46 = { + sizeof(struct Reg_NodeAttributeSetXY), + offsetof(struct Reg_NodeAttributeSetXY, _asn_ctx), + asn_MAP_Reg_NodeAttributeSetXY_tag2el_46, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY = { + "Reg-NodeAttributeSetXY", + "Reg-NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeAttributeSetXY_tags_46, + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + asn_DEF_Reg_NodeAttributeSetXY_tags_46, /* Same as above */ + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_NodeAttributeSetXY_46, + 2, /* Elements count */ + &asn_SPC_Reg_NodeAttributeSetXY_specs_46 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_51 = { + sizeof(struct Reg_NodeOffsetPointXY__regExtValue), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, present), + sizeof(((struct Reg_NodeOffsetPointXY__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_51 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_50, &asn_PER_memb_regionId_constr_50, memb_regionId_constraint_49 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_51, + 0, + { &asn_OER_memb_regExtValue_constr_51, &asn_PER_memb_regExtValue_constr_51, memb_regExtValue_constraint_49 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeOffsetPointXY_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeOffsetPointXY_tag2el_49[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_49 = { + sizeof(struct Reg_NodeOffsetPointXY), + offsetof(struct Reg_NodeOffsetPointXY, _asn_ctx), + asn_MAP_Reg_NodeOffsetPointXY_tag2el_49, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY = { + "Reg-NodeOffsetPointXY", + "Reg-NodeOffsetPointXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeOffsetPointXY_tags_49, + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + asn_DEF_Reg_NodeOffsetPointXY_tags_49, /* Same as above */ + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_NodeOffsetPointXY_49, + 2, /* Elements count */ + &asn_SPC_Reg_NodeOffsetPointXY_specs_49 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_54[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D__regExtValue, choice.Position3D_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Position3D_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Position3D-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_54[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Position3D-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_54 = { + sizeof(struct Reg_Position3D__regExtValue), + offsetof(struct Reg_Position3D__regExtValue, _asn_ctx), + offsetof(struct Reg_Position3D__regExtValue, present), + sizeof(((struct Reg_Position3D__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_54, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_54 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_54, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_54 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_Position3D_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_53, &asn_PER_memb_regionId_constr_53, memb_regionId_constraint_52 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_54, + select_Reg_Position3D_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_54, &asn_PER_memb_regExtValue_constr_54, memb_regExtValue_constraint_52 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_Position3D_tags_52[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_Position3D_tag2el_52[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_52 = { + sizeof(struct Reg_Position3D), + offsetof(struct Reg_Position3D, _asn_ctx), + asn_MAP_Reg_Position3D_tag2el_52, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_Position3D = { + "Reg-Position3D", + "Reg-Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Reg_Position3D_tags_52, + sizeof(asn_DEF_Reg_Position3D_tags_52) + /sizeof(asn_DEF_Reg_Position3D_tags_52[0]), /* 1 */ + asn_DEF_Reg_Position3D_tags_52, /* Same as above */ + sizeof(asn_DEF_Reg_Position3D_tags_52) + /sizeof(asn_DEF_Reg_Position3D_tags_52[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_Position3D_52, + 2, /* Elements count */ + &asn_SPC_Reg_Position3D_specs_52 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription__regExtValue, choice.RequestorDescription_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RequestorDescription_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RequestorDescription-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_57[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RequestorDescription-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_57 = { + sizeof(struct Reg_RequestorDescription__regExtValue), + offsetof(struct Reg_RequestorDescription__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorDescription__regExtValue, present), + sizeof(((struct Reg_RequestorDescription__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_57, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_57 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_57, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_55[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_56, &asn_PER_memb_regionId_constr_56, memb_regionId_constraint_55 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_57, + select_Reg_RequestorDescription_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_57, &asn_PER_memb_regExtValue_constr_57, memb_regExtValue_constraint_55 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorDescription_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorDescription_tag2el_55[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_55 = { + sizeof(struct Reg_RequestorDescription), + offsetof(struct Reg_RequestorDescription, _asn_ctx), + asn_MAP_Reg_RequestorDescription_tag2el_55, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription = { + "Reg-RequestorDescription", + "Reg-RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorDescription_tags_55, + sizeof(asn_DEF_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_55[0]), /* 1 */ + asn_DEF_Reg_RequestorDescription_tags_55, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_55[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RequestorDescription_55, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorDescription_specs_55 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_60 = { + sizeof(struct Reg_RequestorType__regExtValue), + offsetof(struct Reg_RequestorType__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorType__regExtValue, present), + sizeof(((struct Reg_RequestorType__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_60 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorType_58[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_59, &asn_PER_memb_regionId_constr_59, memb_regionId_constraint_58 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_60, + 0, + { &asn_OER_memb_regExtValue_constr_60, &asn_PER_memb_regExtValue_constr_60, memb_regExtValue_constraint_58 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorType_tags_58[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorType_tag2el_58[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_58 = { + sizeof(struct Reg_RequestorType), + offsetof(struct Reg_RequestorType, _asn_ctx), + asn_MAP_Reg_RequestorType_tag2el_58, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType = { + "Reg-RequestorType", + "Reg-RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorType_tags_58, + sizeof(asn_DEF_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_Reg_RequestorType_tags_58[0]), /* 1 */ + asn_DEF_Reg_RequestorType_tags_58, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_Reg_RequestorType_tags_58[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RequestorType_58, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorType_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_63[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType__regExtValue, choice.RestrictionUserType_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionUserType_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RestrictionUserType-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_63[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RestrictionUserType-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_63 = { + sizeof(struct Reg_RestrictionUserType__regExtValue), + offsetof(struct Reg_RestrictionUserType__regExtValue, _asn_ctx), + offsetof(struct Reg_RestrictionUserType__regExtValue, present), + sizeof(((struct Reg_RestrictionUserType__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_63, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_63 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_63, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_62, &asn_PER_memb_regionId_constr_62, memb_regionId_constraint_61 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_63, + select_Reg_RestrictionUserType_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_63, &asn_PER_memb_regExtValue_constr_63, memb_regExtValue_constraint_61 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RestrictionUserType_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RestrictionUserType_tag2el_61[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_61 = { + sizeof(struct Reg_RestrictionUserType), + offsetof(struct Reg_RestrictionUserType, _asn_ctx), + asn_MAP_Reg_RestrictionUserType_tag2el_61, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType = { + "Reg-RestrictionUserType", + "Reg-RestrictionUserType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RestrictionUserType_tags_61, + sizeof(asn_DEF_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + asn_DEF_Reg_RestrictionUserType_tags_61, /* Same as above */ + sizeof(asn_DEF_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RestrictionUserType_61, + 2, /* Elements count */ + &asn_SPC_Reg_RestrictionUserType_specs_61 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_66 = { + sizeof(struct Reg_RoadSegment__regExtValue), + offsetof(struct Reg_RoadSegment__regExtValue, _asn_ctx), + offsetof(struct Reg_RoadSegment__regExtValue, present), + sizeof(((struct Reg_RoadSegment__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_66 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_66 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RoadSegment_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_65, &asn_PER_memb_regionId_constr_65, memb_regionId_constraint_64 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_66, + 0, + { &asn_OER_memb_regExtValue_constr_66, &asn_PER_memb_regExtValue_constr_66, memb_regExtValue_constraint_64 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RoadSegment_tags_64[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RoadSegment_tag2el_64[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_64 = { + sizeof(struct Reg_RoadSegment), + offsetof(struct Reg_RoadSegment, _asn_ctx), + asn_MAP_Reg_RoadSegment_tag2el_64, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment = { + "Reg-RoadSegment", + "Reg-RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RoadSegment_tags_64, + sizeof(asn_DEF_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_Reg_RoadSegment_tags_64[0]), /* 1 */ + asn_DEF_Reg_RoadSegment_tags_64, /* Same as above */ + sizeof(asn_DEF_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_Reg_RoadSegment_tags_64[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RoadSegment_64, + 2, /* Elements count */ + &asn_SPC_Reg_RoadSegment_specs_64 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_69 = { + sizeof(struct Reg_SignalControlZone__regExtValue), + offsetof(struct Reg_SignalControlZone__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalControlZone__regExtValue, present), + sizeof(((struct Reg_SignalControlZone__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_69 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_67[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_68, &asn_PER_memb_regionId_constr_68, memb_regionId_constraint_67 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_69, + 0, + { &asn_OER_memb_regExtValue_constr_69, &asn_PER_memb_regExtValue_constr_69, memb_regExtValue_constraint_67 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalControlZone_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalControlZone_tag2el_67[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_67 = { + sizeof(struct Reg_SignalControlZone), + offsetof(struct Reg_SignalControlZone, _asn_ctx), + asn_MAP_Reg_SignalControlZone_tag2el_67, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone = { + "Reg-SignalControlZone", + "Reg-SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalControlZone_tags_67, + sizeof(asn_DEF_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_67[0]), /* 1 */ + asn_DEF_Reg_SignalControlZone_tags_67, /* Same as above */ + sizeof(asn_DEF_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_67[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalControlZone_67, + 2, /* Elements count */ + &asn_SPC_Reg_SignalControlZone_specs_67 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_72 = { + sizeof(struct Reg_SignalRequest__regExtValue), + offsetof(struct Reg_SignalRequest__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequest__regExtValue, present), + sizeof(((struct Reg_SignalRequest__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_72 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequest_70[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_71, &asn_PER_memb_regionId_constr_71, memb_regionId_constraint_70 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_72, + 0, + { &asn_OER_memb_regExtValue_constr_72, &asn_PER_memb_regExtValue_constr_72, memb_regExtValue_constraint_70 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequest_tags_70[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequest_tag2el_70[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_70 = { + sizeof(struct Reg_SignalRequest), + offsetof(struct Reg_SignalRequest, _asn_ctx), + asn_MAP_Reg_SignalRequest_tag2el_70, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest = { + "Reg-SignalRequest", + "Reg-SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequest_tags_70, + sizeof(asn_DEF_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_Reg_SignalRequest_tags_70[0]), /* 1 */ + asn_DEF_Reg_SignalRequest_tags_70, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_Reg_SignalRequest_tags_70[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequest_70, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequest_specs_70 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_75 = { + sizeof(struct Reg_SignalRequestPackage__regExtValue), + offsetof(struct Reg_SignalRequestPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestPackage__regExtValue, present), + sizeof(((struct Reg_SignalRequestPackage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_75 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_74, &asn_PER_memb_regionId_constr_74, memb_regionId_constraint_73 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_75, + 0, + { &asn_OER_memb_regExtValue_constr_75, &asn_PER_memb_regExtValue_constr_75, memb_regExtValue_constraint_73 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestPackage_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestPackage_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_73 = { + sizeof(struct Reg_SignalRequestPackage), + offsetof(struct Reg_SignalRequestPackage, _asn_ctx), + asn_MAP_Reg_SignalRequestPackage_tag2el_73, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage = { + "Reg-SignalRequestPackage", + "Reg-SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestPackage_tags_73, + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + asn_DEF_Reg_SignalRequestPackage_tags_73, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequestPackage_73, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestPackage_specs_73 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_78 = { + sizeof(struct Reg_SignalStatus__regExtValue), + offsetof(struct Reg_SignalStatus__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatus__regExtValue, present), + sizeof(((struct Reg_SignalStatus__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_78 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_78 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatus_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_77, &asn_PER_memb_regionId_constr_77, memb_regionId_constraint_76 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_78, + 0, + { &asn_OER_memb_regExtValue_constr_78, &asn_PER_memb_regExtValue_constr_78, memb_regExtValue_constraint_76 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatus_tags_76[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatus_tag2el_76[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_76 = { + sizeof(struct Reg_SignalStatus), + offsetof(struct Reg_SignalStatus, _asn_ctx), + asn_MAP_Reg_SignalStatus_tag2el_76, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus = { + "Reg-SignalStatus", + "Reg-SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatus_tags_76, + sizeof(asn_DEF_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_Reg_SignalStatus_tags_76[0]), /* 1 */ + asn_DEF_Reg_SignalStatus_tags_76, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_Reg_SignalStatus_tags_76[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatus_76, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatus_specs_76 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage__regExtValue, choice.SignalStatusPackage_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SignalStatusPackage-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_81[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SignalStatusPackage-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_81 = { + sizeof(struct Reg_SignalStatusPackage__regExtValue), + offsetof(struct Reg_SignalStatusPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusPackage__regExtValue, present), + sizeof(((struct Reg_SignalStatusPackage__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_81, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_81 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_81, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_79[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_80, &asn_PER_memb_regionId_constr_80, memb_regionId_constraint_79 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_81, + select_Reg_SignalStatusPackage_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_81, &asn_PER_memb_regExtValue_constr_81, memb_regExtValue_constraint_79 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusPackage_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusPackage_tag2el_79[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_79 = { + sizeof(struct Reg_SignalStatusPackage), + offsetof(struct Reg_SignalStatusPackage, _asn_ctx), + asn_MAP_Reg_SignalStatusPackage_tag2el_79, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage = { + "Reg-SignalStatusPackage", + "Reg-SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusPackage_tags_79, + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + asn_DEF_Reg_SignalStatusPackage_tags_79, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatusPackage_79, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusPackage_specs_79 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RegulatorySpeedLimit.c b/vcits/mapem/src/RegulatorySpeedLimit.c new file mode 100644 index 0000000..d6d058e --- /dev/null +++ b/vcits/mapem/src/RegulatorySpeedLimit.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RegulatorySpeedLimit.h" + +asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_RegulatorySpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RegulatorySpeedLimit_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1 = { + sizeof(struct RegulatorySpeedLimit), + offsetof(struct RegulatorySpeedLimit, _asn_ctx), + asn_MAP_RegulatorySpeedLimit_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit = { + "RegulatorySpeedLimit", + "RegulatorySpeedLimit", + &asn_OP_SEQUENCE, + asn_DEF_RegulatorySpeedLimit_tags_1, + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_RegulatorySpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RegulatorySpeedLimit_1, + 2, /* Elements count */ + &asn_SPC_RegulatorySpeedLimit_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RejectedReason.c b/vcits/mapem/src/RejectedReason.c new file mode 100644 index 0000000..cfc244e --- /dev/null +++ b/vcits/mapem/src/RejectedReason.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RejectedReason.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RejectedReason_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RejectedReason_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RejectedReason_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "exceptionalCondition" }, + { 2, 22, "maxWaitingTimeExceeded" }, + { 3, 18, "ptPriorityDisabled" }, + { 4, 23, "higherPTPriorityGranted" }, + { 5, 22, "vehicleTrackingUnknown" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RejectedReason_enum2value_1[] = { + 1, /* exceptionalCondition(1) */ + 4, /* higherPTPriorityGranted(4) */ + 2, /* maxWaitingTimeExceeded(2) */ + 3, /* ptPriorityDisabled(3) */ + 0, /* unknown(0) */ + 5 /* vehicleTrackingUnknown(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RejectedReason_specs_1 = { + asn_MAP_RejectedReason_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RejectedReason_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RejectedReason_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RejectedReason = { + "RejectedReason", + "RejectedReason", + &asn_OP_NativeEnumerated, + asn_DEF_RejectedReason_tags_1, + sizeof(asn_DEF_RejectedReason_tags_1) + /sizeof(asn_DEF_RejectedReason_tags_1[0]), /* 1 */ + asn_DEF_RejectedReason_tags_1, /* Same as above */ + sizeof(asn_DEF_RejectedReason_tags_1) + /sizeof(asn_DEF_RejectedReason_tags_1[0]), /* 1 */ + { &asn_OER_type_RejectedReason_constr_1, &asn_PER_type_RejectedReason_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RejectedReason_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RelevanceDistance.c b/vcits/mapem/src/RelevanceDistance.c new file mode 100644 index 0000000..3ca5a46 --- /dev/null +++ b/vcits/mapem/src/RelevanceDistance.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RelevanceDistance.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceDistance_value2enum_1[] = { + { 0, 11, "lessThan50m" }, + { 1, 12, "lessThan100m" }, + { 2, 12, "lessThan200m" }, + { 3, 12, "lessThan500m" }, + { 4, 13, "lessThan1000m" }, + { 5, 11, "lessThan5km" }, + { 6, 12, "lessThan10km" }, + { 7, 8, "over10km" } +}; +static const unsigned int asn_MAP_RelevanceDistance_enum2value_1[] = { + 4, /* lessThan1000m(4) */ + 1, /* lessThan100m(1) */ + 6, /* lessThan10km(6) */ + 2, /* lessThan200m(2) */ + 3, /* lessThan500m(3) */ + 0, /* lessThan50m(0) */ + 5, /* lessThan5km(5) */ + 7 /* over10km(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceDistance_specs_1 = { + asn_MAP_RelevanceDistance_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceDistance_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceDistance = { + "RelevanceDistance", + "RelevanceDistance", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceDistance_tags_1, + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + asn_DEF_RelevanceDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceDistance_constr_1, &asn_PER_type_RelevanceDistance_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceDistance_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RelevanceTrafficDirection.c b/vcits/mapem/src/RelevanceTrafficDirection.c new file mode 100644 index 0000000..31ab3ca --- /dev/null +++ b/vcits/mapem/src/RelevanceTrafficDirection.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RelevanceTrafficDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceTrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 15, "upstreamTraffic" }, + { 2, 17, "downstreamTraffic" }, + { 3, 15, "oppositeTraffic" } +}; +static const unsigned int asn_MAP_RelevanceTrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 2, /* downstreamTraffic(2) */ + 3, /* oppositeTraffic(3) */ + 1 /* upstreamTraffic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceTrafficDirection_specs_1 = { + asn_MAP_RelevanceTrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceTrafficDirection_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceTrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection = { + "RelevanceTrafficDirection", + "RelevanceTrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceTrafficDirection_tags_1, + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_RelevanceTrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceTrafficDirection_constr_1, &asn_PER_type_RelevanceTrafficDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceTrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RequestID.c b/vcits/mapem/src/RequestID.c new file mode 100644 index 0000000..4da3b1a --- /dev/null +++ b/vcits/mapem/src/RequestID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RequestID.h" + +int +RequestID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RequestID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RequestID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestID = { + "RequestID", + "RequestID", + &asn_OP_NativeInteger, + asn_DEF_RequestID_tags_1, + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + asn_DEF_RequestID_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestID_constr_1, &asn_PER_type_RequestID_constr_1, RequestID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/RequestImportanceLevel.c b/vcits/mapem/src/RequestImportanceLevel.c new file mode 100644 index 0000000..e803920 --- /dev/null +++ b/vcits/mapem/src/RequestImportanceLevel.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RequestImportanceLevel.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestImportanceLevel_value2enum_1[] = { + { 0, 29, "requestImportanceLevelUnKnown" }, + { 1, 23, "requestImportanceLevel1" }, + { 2, 23, "requestImportanceLevel2" }, + { 3, 23, "requestImportanceLevel3" }, + { 4, 23, "requestImportanceLevel4" }, + { 5, 23, "requestImportanceLevel5" }, + { 6, 23, "requestImportanceLevel6" }, + { 7, 23, "requestImportanceLevel7" }, + { 8, 23, "requestImportanceLevel8" }, + { 9, 23, "requestImportanceLevel9" }, + { 10, 24, "requestImportanceLevel10" }, + { 11, 24, "requestImportanceLevel11" }, + { 12, 24, "requestImportanceLevel12" }, + { 13, 24, "requestImportanceLevel13" }, + { 14, 24, "requestImportanceLevel14" }, + { 15, 25, "requestImportanceReserved" } +}; +static const unsigned int asn_MAP_RequestImportanceLevel_enum2value_1[] = { + 1, /* requestImportanceLevel1(1) */ + 10, /* requestImportanceLevel10(10) */ + 11, /* requestImportanceLevel11(11) */ + 12, /* requestImportanceLevel12(12) */ + 13, /* requestImportanceLevel13(13) */ + 14, /* requestImportanceLevel14(14) */ + 2, /* requestImportanceLevel2(2) */ + 3, /* requestImportanceLevel3(3) */ + 4, /* requestImportanceLevel4(4) */ + 5, /* requestImportanceLevel5(5) */ + 6, /* requestImportanceLevel6(6) */ + 7, /* requestImportanceLevel7(7) */ + 8, /* requestImportanceLevel8(8) */ + 9, /* requestImportanceLevel9(9) */ + 0, /* requestImportanceLevelUnKnown(0) */ + 15 /* requestImportanceReserved(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1 = { + asn_MAP_RequestImportanceLevel_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestImportanceLevel_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestImportanceLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel = { + "RequestImportanceLevel", + "RequestImportanceLevel", + &asn_OP_NativeEnumerated, + asn_DEF_RequestImportanceLevel_tags_1, + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + asn_DEF_RequestImportanceLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestImportanceLevel_constr_1, &asn_PER_type_RequestImportanceLevel_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestImportanceLevel_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RequestResponseIndication.c b/vcits/mapem/src/RequestResponseIndication.c new file mode 100644 index 0000000..3100199 --- /dev/null +++ b/vcits/mapem/src/RequestResponseIndication.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RequestResponseIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestResponseIndication_value2enum_1[] = { + { 0, 7, "request" }, + { 1, 8, "response" } +}; +static const unsigned int asn_MAP_RequestResponseIndication_enum2value_1[] = { + 0, /* request(0) */ + 1 /* response(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RequestResponseIndication_specs_1 = { + asn_MAP_RequestResponseIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestResponseIndication_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestResponseIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication = { + "RequestResponseIndication", + "RequestResponseIndication", + &asn_OP_NativeEnumerated, + asn_DEF_RequestResponseIndication_tags_1, + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + asn_DEF_RequestResponseIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestResponseIndication_constr_1, &asn_PER_type_RequestResponseIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestResponseIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RequestSubRole.c b/vcits/mapem/src/RequestSubRole.c new file mode 100644 index 0000000..c0a1cc6 --- /dev/null +++ b/vcits/mapem/src/RequestSubRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RequestSubRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestSubRole_value2enum_1[] = { + { 0, 21, "requestSubRoleUnKnown" }, + { 1, 15, "requestSubRole1" }, + { 2, 15, "requestSubRole2" }, + { 3, 15, "requestSubRole3" }, + { 4, 15, "requestSubRole4" }, + { 5, 15, "requestSubRole5" }, + { 6, 15, "requestSubRole6" }, + { 7, 15, "requestSubRole7" }, + { 8, 15, "requestSubRole8" }, + { 9, 15, "requestSubRole9" }, + { 10, 16, "requestSubRole10" }, + { 11, 16, "requestSubRole11" }, + { 12, 16, "requestSubRole12" }, + { 13, 16, "requestSubRole13" }, + { 14, 16, "requestSubRole14" }, + { 15, 22, "requestSubRoleReserved" } +}; +static const unsigned int asn_MAP_RequestSubRole_enum2value_1[] = { + 1, /* requestSubRole1(1) */ + 10, /* requestSubRole10(10) */ + 11, /* requestSubRole11(11) */ + 12, /* requestSubRole12(12) */ + 13, /* requestSubRole13(13) */ + 14, /* requestSubRole14(14) */ + 2, /* requestSubRole2(2) */ + 3, /* requestSubRole3(3) */ + 4, /* requestSubRole4(4) */ + 5, /* requestSubRole5(5) */ + 6, /* requestSubRole6(6) */ + 7, /* requestSubRole7(7) */ + 8, /* requestSubRole8(8) */ + 9, /* requestSubRole9(9) */ + 15, /* requestSubRoleReserved(15) */ + 0 /* requestSubRoleUnKnown(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1 = { + asn_MAP_RequestSubRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestSubRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestSubRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestSubRole = { + "RequestSubRole", + "RequestSubRole", + &asn_OP_NativeEnumerated, + asn_DEF_RequestSubRole_tags_1, + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + asn_DEF_RequestSubRole_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestSubRole_constr_1, &asn_PER_type_RequestSubRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestSubRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RequestorDescription-addGrpC.c b/vcits/mapem/src/RequestorDescription-addGrpC.c new file mode 100644 index 0000000..4a59123 --- /dev/null +++ b/vcits/mapem/src/RequestorDescription-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RequestorDescription-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RequestorDescription_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct RequestorDescription_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fuel" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription_addGrpC, batteryStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BatteryStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "batteryStatus" + }, +}; +static const int asn_MAP_RequestorDescription_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fuel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* batteryStatus */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_addGrpC_specs_1 = { + sizeof(struct RequestorDescription_addGrpC), + offsetof(struct RequestorDescription_addGrpC, _asn_ctx), + asn_MAP_RequestorDescription_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RequestorDescription_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription_addGrpC = { + "RequestorDescription-addGrpC", + "RequestorDescription-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_addGrpC_tags_1, + sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorDescription_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_RequestorDescription_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RequestorDescription.c b/vcits/mapem/src/RequestorDescription.c new file mode 100644 index 0000000..33a8c9e --- /dev/null +++ b/vcits/mapem/src/RequestorDescription.c @@ -0,0 +1,214 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RequestorDescription.h" + +#include "RequestorType.h" +#include "RequestorPositionVector.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RequestorDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct RequestorDescription__regional), + offsetof(struct RequestorDescription__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RequestorDescription_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorDescription, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 8, offsetof(struct RequestorDescription, type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 7, offsetof(struct RequestorDescription, position), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorPositionVector, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 6, offsetof(struct RequestorDescription, name), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 5, offsetof(struct RequestorDescription, routeName), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "routeName" + }, + { ATF_POINTER, 4, offsetof(struct RequestorDescription, transitStatus), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitStatus" + }, + { ATF_POINTER, 3, offsetof(struct RequestorDescription, transitOccupancy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleOccupancy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitOccupancy" + }, + { ATF_POINTER, 2, offsetof(struct RequestorDescription, transitSchedule), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitSchedule" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorDescription_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* routeName */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* transitStatus */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* transitOccupancy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* transitSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1 = { + sizeof(struct RequestorDescription), + offsetof(struct RequestorDescription, _asn_ctx), + asn_MAP_RequestorDescription_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_RequestorDescription_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription = { + "RequestorDescription", + "RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_tags_1, + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorDescription_1, + 9, /* Elements count */ + &asn_SPC_RequestorDescription_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RequestorPositionVector.c b/vcits/mapem/src/RequestorPositionVector.c new file mode 100644 index 0000000..cfce63c --- /dev/null +++ b/vcits/mapem/src/RequestorPositionVector.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RequestorPositionVector.h" + +#include "TransmissionAndSpeed.h" +asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorPositionVector, position), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 2, offsetof(struct RequestorPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 1, offsetof(struct RequestorPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const int asn_MAP_RequestorPositionVector_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_RequestorPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1 = { + sizeof(struct RequestorPositionVector), + offsetof(struct RequestorPositionVector, _asn_ctx), + asn_MAP_RequestorPositionVector_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RequestorPositionVector_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector = { + "RequestorPositionVector", + "RequestorPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_RequestorPositionVector_tags_1, + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + asn_DEF_RequestorPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorPositionVector_1, + 3, /* Elements count */ + &asn_SPC_RequestorPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RequestorType.c b/vcits/mapem/src/RequestorType.c new file mode 100644 index 0000000..5f4c341 --- /dev/null +++ b/vcits/mapem/src/RequestorType.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RequestorType.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_RequestorType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorType, role), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 5, offsetof(struct RequestorType, subrole), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestSubRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subrole" + }, + { ATF_POINTER, 4, offsetof(struct RequestorType, request), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestImportanceLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 3, offsetof(struct RequestorType, iso3883), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Iso3833VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iso3883" + }, + { ATF_POINTER, 2, offsetof(struct RequestorType, hpmsType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hpmsType" + }, + { ATF_POINTER, 1, offsetof(struct RequestorType, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorType_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_RequestorType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subrole */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* iso3883 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* hpmsType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1 = { + sizeof(struct RequestorType), + offsetof(struct RequestorType, _asn_ctx), + asn_MAP_RequestorType_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_RequestorType_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorType = { + "RequestorType", + "RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_RequestorType_tags_1, + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + asn_DEF_RequestorType_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorType_1, + 6, /* Elements count */ + &asn_SPC_RequestorType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c b/vcits/mapem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c new file mode 100644 index 0000000..35dc6d1 --- /dev/null +++ b/vcits/mapem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RescueAndRecoveryWorkInProgressSubCauseCode.h" + +int +RescueAndRecoveryWorkInProgressSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode = { + "RescueAndRecoveryWorkInProgressSubCauseCode", + "RescueAndRecoveryWorkInProgressSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, &asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, RescueAndRecoveryWorkInProgressSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/RestrictedTypes.c b/vcits/mapem/src/RestrictedTypes.c new file mode 100644 index 0000000..4f71b23 --- /dev/null +++ b/vcits/mapem/src/RestrictedTypes.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RestrictedTypes.h" + +static asn_oer_constraints_t asn_OER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RestrictedTypes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictedTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_RestrictedTypes_specs_1 = { + sizeof(struct RestrictedTypes), + offsetof(struct RestrictedTypes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictedTypes = { + "RestrictedTypes", + "RestrictedTypes", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictedTypes_tags_1, + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + asn_DEF_RestrictedTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictedTypes_constr_1, &asn_PER_type_RestrictedTypes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictedTypes_1, + 1, /* Single element */ + &asn_SPC_RestrictedTypes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RestrictionAppliesTo.c b/vcits/mapem/src/RestrictionAppliesTo.c new file mode 100644 index 0000000..62db03f --- /dev/null +++ b/vcits/mapem/src/RestrictionAppliesTo.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RestrictionAppliesTo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RestrictionAppliesTo_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 15, "equippedTransit" }, + { 2, 13, "equippedTaxis" }, + { 3, 13, "equippedOther" }, + { 4, 17, "emissionCompliant" }, + { 5, 15, "equippedBicycle" }, + { 6, 15, "weightCompliant" }, + { 7, 15, "heightCompliant" }, + { 8, 11, "pedestrians" }, + { 9, 17, "slowMovingPersons" }, + { 10, 15, "wheelchairUsers" }, + { 11, 18, "visualDisabilities" }, + { 12, 17, "audioDisabilities" }, + { 13, 24, "otherUnknownDisabilities" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RestrictionAppliesTo_enum2value_1[] = { + 12, /* audioDisabilities(12) */ + 4, /* emissionCompliant(4) */ + 5, /* equippedBicycle(5) */ + 3, /* equippedOther(3) */ + 2, /* equippedTaxis(2) */ + 1, /* equippedTransit(1) */ + 7, /* heightCompliant(7) */ + 0, /* none(0) */ + 13, /* otherUnknownDisabilities(13) */ + 8, /* pedestrians(8) */ + 9, /* slowMovingPersons(9) */ + 11, /* visualDisabilities(11) */ + 6, /* weightCompliant(6) */ + 10 /* wheelchairUsers(10) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1 = { + asn_MAP_RestrictionAppliesTo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RestrictionAppliesTo_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RestrictionAppliesTo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo = { + "RestrictionAppliesTo", + "RestrictionAppliesTo", + &asn_OP_NativeEnumerated, + asn_DEF_RestrictionAppliesTo_tags_1, + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + asn_DEF_RestrictionAppliesTo_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionAppliesTo_constr_1, &asn_PER_type_RestrictionAppliesTo_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RestrictionAppliesTo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RestrictionClassAssignment.c b/vcits/mapem/src/RestrictionClassAssignment.c new file mode 100644 index 0000000..bcd9a37 --- /dev/null +++ b/vcits/mapem/src/RestrictionClassAssignment.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RestrictionClassAssignment.h" + +asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, users), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionUserTypeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "users" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassAssignment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionClassAssignment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* users */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1 = { + sizeof(struct RestrictionClassAssignment), + offsetof(struct RestrictionClassAssignment, _asn_ctx), + asn_MAP_RestrictionClassAssignment_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment = { + "RestrictionClassAssignment", + "RestrictionClassAssignment", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionClassAssignment_tags_1, + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassAssignment_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RestrictionClassAssignment_1, + 2, /* Elements count */ + &asn_SPC_RestrictionClassAssignment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RestrictionClassID.c b/vcits/mapem/src/RestrictionClassID.c new file mode 100644 index 0000000..e6b8cad --- /dev/null +++ b/vcits/mapem/src/RestrictionClassID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RestrictionClassID.h" + +int +RestrictionClassID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassID = { + "RestrictionClassID", + "RestrictionClassID", + &asn_OP_NativeInteger, + asn_DEF_RestrictionClassID_tags_1, + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassID_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionClassID_constr_1, &asn_PER_type_RestrictionClassID_constr_1, RestrictionClassID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/RestrictionClassList.c b/vcits/mapem/src/RestrictionClassList.c new file mode 100644 index 0000000..d8162b8 --- /dev/null +++ b/vcits/mapem/src/RestrictionClassList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RestrictionClassList.h" + +#include "RestrictionClassAssignment.h" +static asn_oer_constraints_t asn_OER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..254)) */}; +asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 254 } /* (SIZE(1..254)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictionClassList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionClassAssignment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1 = { + sizeof(struct RestrictionClassList), + offsetof(struct RestrictionClassList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassList = { + "RestrictionClassList", + "RestrictionClassList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionClassList_tags_1, + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionClassList_constr_1, &asn_PER_type_RestrictionClassList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictionClassList_1, + 1, /* Single element */ + &asn_SPC_RestrictionClassList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RestrictionUserType-addGrpC.c b/vcits/mapem/src/RestrictionUserType-addGrpC.c new file mode 100644 index 0000000..7baf69a --- /dev/null +++ b/vcits/mapem/src/RestrictionUserType-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RestrictionUserType-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct RestrictionUserType_addGrpC, emission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmissionType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emission" + }, + { ATF_POINTER, 1, offsetof(struct RestrictionUserType_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fuel" + }, +}; +static const int asn_MAP_RestrictionUserType_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RestrictionUserType_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* emission */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fuel */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1 = { + sizeof(struct RestrictionUserType_addGrpC), + offsetof(struct RestrictionUserType_addGrpC, _asn_ctx), + asn_MAP_RestrictionUserType_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RestrictionUserType_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC = { + "RestrictionUserType-addGrpC", + "RestrictionUserType-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionUserType_addGrpC_tags_1, + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserType_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RestrictionUserType_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RestrictionUserType.c b/vcits/mapem/src/RestrictionUserType.c new file mode 100644 index 0000000..edcd9fa --- /dev/null +++ b/vcits/mapem/src/RestrictionUserType.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RestrictionUserType.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RestrictionUserType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_3 = { + sizeof(struct RestrictionUserType__regional), + offsetof(struct RestrictionUserType__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_3 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_3, + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]) - 1, /* 1 */ + asn_DEF_regional_tags_3, /* Same as above */ + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]), /* 2 */ + { &asn_OER_type_regional_constr_3, &asn_PER_type_regional_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_regional_3, + 1, /* Single element */ + &asn_SPC_regional_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RestrictionUserType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.basicType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionAppliesTo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "basicType" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_regional_3, + 0, + { &asn_OER_memb_regional_constr_3, &asn_PER_memb_regional_constr_3, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1 = { + sizeof(struct RestrictionUserType), + offsetof(struct RestrictionUserType, _asn_ctx), + offsetof(struct RestrictionUserType, present), + sizeof(((struct RestrictionUserType *)0)->present), + asn_MAP_RestrictionUserType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType = { + "RestrictionUserType", + "RestrictionUserType", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_RestrictionUserType_constr_1, &asn_PER_type_RestrictionUserType_constr_1, CHOICE_constraint }, + asn_MBR_RestrictionUserType_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RestrictionUserTypeList.c b/vcits/mapem/src/RestrictionUserTypeList.c new file mode 100644 index 0000000..f3d981a --- /dev/null +++ b/vcits/mapem/src/RestrictionUserTypeList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RestrictionUserTypeList.h" + +#include "RestrictionUserType.h" +static asn_oer_constraints_t asn_OER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RestrictionUserType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionUserTypeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1 = { + sizeof(struct RestrictionUserTypeList), + offsetof(struct RestrictionUserTypeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList = { + "RestrictionUserTypeList", + "RestrictionUserTypeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionUserTypeList_tags_1, + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserTypeList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionUserTypeList_constr_1, &asn_PER_type_RestrictionUserTypeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictionUserTypeList_1, + 1, /* Single element */ + &asn_SPC_RestrictionUserTypeList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RoadLaneSetList.c b/vcits/mapem/src/RoadLaneSetList.c new file mode 100644 index 0000000..9558cb8 --- /dev/null +++ b/vcits/mapem/src/RoadLaneSetList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RoadLaneSetList.h" + +#include "GenericLane.h" +static asn_oer_constraints_t asn_OER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadLaneSetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1 = { + sizeof(struct RoadLaneSetList), + offsetof(struct RoadLaneSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList = { + "RoadLaneSetList", + "RoadLaneSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadLaneSetList_tags_1, + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + asn_DEF_RoadLaneSetList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadLaneSetList_constr_1, &asn_PER_type_RoadLaneSetList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadLaneSetList_1, + 1, /* Single element */ + &asn_SPC_RoadLaneSetList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RoadRegulatorID.c b/vcits/mapem/src/RoadRegulatorID.c new file mode 100644 index 0000000..5d60e78 --- /dev/null +++ b/vcits/mapem/src/RoadRegulatorID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RoadRegulatorID.h" + +int +RoadRegulatorID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadRegulatorID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID = { + "RoadRegulatorID", + "RoadRegulatorID", + &asn_OP_NativeInteger, + asn_DEF_RoadRegulatorID_tags_1, + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + asn_DEF_RoadRegulatorID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadRegulatorID_constr_1, &asn_PER_type_RoadRegulatorID_constr_1, RoadRegulatorID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/RoadSegment.c b/vcits/mapem/src/RoadSegment.c new file mode 100644 index 0000000..3964376 --- /dev/null +++ b/vcits/mapem/src/RoadSegment.c @@ -0,0 +1,203 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RoadSegment.h" + +#include "SpeedLimitList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RoadSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct RoadSegment__regional), + offsetof(struct RoadSegment__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { &asn_OER_type_regional_constr_9, &asn_PER_type_regional_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RoadSegment_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegment, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct RoadSegment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, roadLaneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadLaneSetList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadLaneSet" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { &asn_OER_memb_regional_constr_9, &asn_PER_memb_regional_constr_9, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RoadSegment_oms_1[] = { 0, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_RoadSegment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* roadLaneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1 = { + sizeof(struct RoadSegment), + offsetof(struct RoadSegment, _asn_ctx), + asn_MAP_RoadSegment_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_RoadSegment_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegment = { + "RoadSegment", + "RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegment_tags_1, + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + asn_DEF_RoadSegment_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSegment_1, + 8, /* Elements count */ + &asn_SPC_RoadSegment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RoadSegmentID.c b/vcits/mapem/src/RoadSegmentID.c new file mode 100644 index 0000000..16a86d7 --- /dev/null +++ b/vcits/mapem/src/RoadSegmentID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RoadSegmentID.h" + +int +RoadSegmentID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentID = { + "RoadSegmentID", + "RoadSegmentID", + &asn_OP_NativeInteger, + asn_DEF_RoadSegmentID_tags_1, + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSegmentID_constr_1, &asn_PER_type_RoadSegmentID_constr_1, RoadSegmentID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/RoadSegmentList.c b/vcits/mapem/src/RoadSegmentList.c new file mode 100644 index 0000000..797e213 --- /dev/null +++ b/vcits/mapem/src/RoadSegmentList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RoadSegmentList.h" + +#include "RoadSegment.h" +static asn_oer_constraints_t asn_OER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadSegmentList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RoadSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1 = { + sizeof(struct RoadSegmentList), + offsetof(struct RoadSegmentList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentList = { + "RoadSegmentList", + "RoadSegmentList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadSegmentList_tags_1, + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSegmentList_constr_1, &asn_PER_type_RoadSegmentList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadSegmentList_1, + 1, /* Single element */ + &asn_SPC_RoadSegmentList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RoadSegmentReferenceID.c b/vcits/mapem/src/RoadSegmentReferenceID.c new file mode 100644 index 0000000..e45df3a --- /dev/null +++ b/vcits/mapem/src/RoadSegmentReferenceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RoadSegmentReferenceID.h" + +asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegmentReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegmentReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_RoadSegmentReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_RoadSegmentReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegmentReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1 = { + sizeof(struct RoadSegmentReferenceID), + offsetof(struct RoadSegmentReferenceID, _asn_ctx), + asn_MAP_RoadSegmentReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RoadSegmentReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID = { + "RoadSegmentReferenceID", + "RoadSegmentReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegmentReferenceID_tags_1, + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSegmentReferenceID_1, + 2, /* Elements count */ + &asn_SPC_RoadSegmentReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RoadType.c b/vcits/mapem/src/RoadType.c new file mode 100644 index 0000000..a7d417e --- /dev/null +++ b/vcits/mapem/src/RoadType.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RoadType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RoadType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RoadType_value2enum_1[] = { + { 0, 43, "urban-NoStructuralSeparationToOppositeLanes" }, + { 1, 45, "urban-WithStructuralSeparationToOppositeLanes" }, + { 2, 46, "nonUrban-NoStructuralSeparationToOppositeLanes" }, + { 3, 48, "nonUrban-WithStructuralSeparationToOppositeLanes" } +}; +static const unsigned int asn_MAP_RoadType_enum2value_1[] = { + 2, /* nonUrban-NoStructuralSeparationToOppositeLanes(2) */ + 3, /* nonUrban-WithStructuralSeparationToOppositeLanes(3) */ + 0, /* urban-NoStructuralSeparationToOppositeLanes(0) */ + 1 /* urban-WithStructuralSeparationToOppositeLanes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RoadType_specs_1 = { + asn_MAP_RoadType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RoadType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadType = { + "RoadType", + "RoadType", + &asn_OP_NativeEnumerated, + asn_DEF_RoadType_tags_1, + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + asn_DEF_RoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadType_constr_1, &asn_PER_type_RoadType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RoadType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/RoadwayCrownAngle.c b/vcits/mapem/src/RoadwayCrownAngle.c new file mode 100644 index 0000000..c4481a6 --- /dev/null +++ b/vcits/mapem/src/RoadwayCrownAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RoadwayCrownAngle.h" + +int +RoadwayCrownAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -128 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-128..127) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -128, 127 } /* (-128..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadwayCrownAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle = { + "RoadwayCrownAngle", + "RoadwayCrownAngle", + &asn_OP_NativeInteger, + asn_DEF_RoadwayCrownAngle_tags_1, + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + asn_DEF_RoadwayCrownAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadwayCrownAngle_constr_1, &asn_PER_type_RoadwayCrownAngle_constr_1, RoadwayCrownAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/RoadworksSubCauseCode.c b/vcits/mapem/src/RoadworksSubCauseCode.c new file mode 100644 index 0000000..ca6c7f5 --- /dev/null +++ b/vcits/mapem/src/RoadworksSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "RoadworksSubCauseCode.h" + +int +RoadworksSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadworksSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode = { + "RoadworksSubCauseCode", + "RoadworksSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RoadworksSubCauseCode_tags_1, + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RoadworksSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadworksSubCauseCode_constr_1, &asn_PER_type_RoadworksSubCauseCode_constr_1, RoadworksSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SPAT.c b/vcits/mapem/src/SPAT.c new file mode 100644 index 0000000..135ac31 --- /dev/null +++ b/vcits/mapem/src/SPAT.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SPAT.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SPAT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SPAT__regional), + offsetof(struct SPAT__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SPAT_1[] = { + { ATF_POINTER, 2, offsetof(struct SPAT, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct SPAT, intersections), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SPAT_oms_1[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_SPAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SPAT_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SPAT_specs_1 = { + sizeof(struct SPAT), + offsetof(struct SPAT, _asn_ctx), + asn_MAP_SPAT_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SPAT_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SPAT = { + "SPAT", + "SPAT", + &asn_OP_SEQUENCE, + asn_DEF_SPAT_tags_1, + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + asn_DEF_SPAT_tags_1, /* Same as above */ + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SPAT_1, + 4, /* Elements count */ + &asn_SPC_SPAT_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Scale-B12.c b/vcits/mapem/src/Scale-B12.c new file mode 100644 index 0000000..291341e --- /dev/null +++ b/vcits/mapem/src/Scale-B12.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Scale-B12.h" + +int +Scale_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Scale_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_Scale_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Scale_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Scale_B12 = { + "Scale-B12", + "Scale-B12", + &asn_OP_NativeInteger, + asn_DEF_Scale_B12_tags_1, + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + asn_DEF_Scale_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + { &asn_OER_type_Scale_B12_constr_1, &asn_PER_type_Scale_B12_constr_1, Scale_B12_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SegmentAttributeXY.c b/vcits/mapem/src/SegmentAttributeXY.c new file mode 100644 index 0000000..2f98ce6 --- /dev/null +++ b/vcits/mapem/src/SegmentAttributeXY.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SegmentAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 37 } /* (0..37,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SegmentAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 10, "doNotBlock" }, + { 2, 9, "whiteLine" }, + { 3, 15, "mergingLaneLeft" }, + { 4, 16, "mergingLaneRight" }, + { 5, 10, "curbOnLeft" }, + { 6, 11, "curbOnRight" }, + { 7, 17, "loadingzoneOnLeft" }, + { 8, 18, "loadingzoneOnRight" }, + { 9, 18, "turnOutPointOnLeft" }, + { 10, 19, "turnOutPointOnRight" }, + { 11, 21, "adjacentParkingOnLeft" }, + { 12, 22, "adjacentParkingOnRight" }, + { 13, 22, "adjacentBikeLaneOnLeft" }, + { 14, 23, "adjacentBikeLaneOnRight" }, + { 15, 14, "sharedBikeLane" }, + { 16, 14, "bikeBoxInFront" }, + { 17, 17, "transitStopOnLeft" }, + { 18, 18, "transitStopOnRight" }, + { 19, 17, "transitStopInLane" }, + { 20, 24, "sharedWithTrackedVehicle" }, + { 21, 10, "safeIsland" }, + { 22, 15, "lowCurbsPresent" }, + { 23, 18, "rumbleStripPresent" }, + { 24, 23, "audibleSignalingPresent" }, + { 25, 21, "adaptiveTimingPresent" }, + { 26, 22, "rfSignalRequestPresent" }, + { 27, 20, "partialCurbIntrusion" }, + { 28, 11, "taperToLeft" }, + { 29, 12, "taperToRight" }, + { 30, 17, "taperToCenterLine" }, + { 31, 15, "parallelParking" }, + { 32, 13, "headInParking" }, + { 33, 11, "freeParking" }, + { 34, 25, "timeRestrictionsOnParking" }, + { 35, 10, "costToPark" }, + { 36, 19, "midBlockCurbPresent" }, + { 37, 21, "unEvenPavementPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SegmentAttributeXY_enum2value_1[] = { + 25, /* adaptiveTimingPresent(25) */ + 13, /* adjacentBikeLaneOnLeft(13) */ + 14, /* adjacentBikeLaneOnRight(14) */ + 11, /* adjacentParkingOnLeft(11) */ + 12, /* adjacentParkingOnRight(12) */ + 24, /* audibleSignalingPresent(24) */ + 16, /* bikeBoxInFront(16) */ + 35, /* costToPark(35) */ + 5, /* curbOnLeft(5) */ + 6, /* curbOnRight(6) */ + 1, /* doNotBlock(1) */ + 33, /* freeParking(33) */ + 32, /* headInParking(32) */ + 7, /* loadingzoneOnLeft(7) */ + 8, /* loadingzoneOnRight(8) */ + 22, /* lowCurbsPresent(22) */ + 3, /* mergingLaneLeft(3) */ + 4, /* mergingLaneRight(4) */ + 36, /* midBlockCurbPresent(36) */ + 31, /* parallelParking(31) */ + 27, /* partialCurbIntrusion(27) */ + 0, /* reserved(0) */ + 26, /* rfSignalRequestPresent(26) */ + 23, /* rumbleStripPresent(23) */ + 21, /* safeIsland(21) */ + 15, /* sharedBikeLane(15) */ + 20, /* sharedWithTrackedVehicle(20) */ + 30, /* taperToCenterLine(30) */ + 28, /* taperToLeft(28) */ + 29, /* taperToRight(29) */ + 34, /* timeRestrictionsOnParking(34) */ + 19, /* transitStopInLane(19) */ + 17, /* transitStopOnLeft(17) */ + 18, /* transitStopOnRight(18) */ + 9, /* turnOutPointOnLeft(9) */ + 10, /* turnOutPointOnRight(10) */ + 37, /* unEvenPavementPresent(37) */ + 2 /* whiteLine(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1 = { + asn_MAP_SegmentAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SegmentAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 38, /* Number of elements in the maps */ + 39, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY = { + "SegmentAttributeXY", + "SegmentAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_SegmentAttributeXY_tags_1, + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentAttributeXY_constr_1, &asn_PER_type_SegmentAttributeXY_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SegmentAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SegmentAttributeXYList.c b/vcits/mapem/src/SegmentAttributeXYList.c new file mode 100644 index 0000000..d575713 --- /dev/null +++ b/vcits/mapem/src/SegmentAttributeXYList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SegmentAttributeXYList.h" + +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_SegmentAttributeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1 = { + sizeof(struct SegmentAttributeXYList), + offsetof(struct SegmentAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList = { + "SegmentAttributeXYList", + "SegmentAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SegmentAttributeXYList_tags_1, + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentAttributeXYList_constr_1, &asn_PER_type_SegmentAttributeXYList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SegmentAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_SegmentAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SemiAxisLength.c b/vcits/mapem/src/SemiAxisLength.c new file mode 100644 index 0000000..808f8a2 --- /dev/null +++ b/vcits/mapem/src/SemiAxisLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SemiAxisLength.h" + +int +SemiAxisLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiAxisLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiAxisLength = { + "SemiAxisLength", + "SemiAxisLength", + &asn_OP_NativeInteger, + asn_DEF_SemiAxisLength_tags_1, + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + asn_DEF_SemiAxisLength_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiAxisLength_constr_1, &asn_PER_type_SemiAxisLength_constr_1, SemiAxisLength_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SemiMajorAxisAccuracy.c b/vcits/mapem/src/SemiMajorAxisAccuracy.c new file mode 100644 index 0000000..8293612 --- /dev/null +++ b/vcits/mapem/src/SemiMajorAxisAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SemiMajorAxisAccuracy.h" + +int +SemiMajorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy = { + "SemiMajorAxisAccuracy", + "SemiMajorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMajorAxisAccuracy_constr_1, &asn_PER_type_SemiMajorAxisAccuracy_constr_1, SemiMajorAxisAccuracy_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SemiMajorAxisOrientation.c b/vcits/mapem/src/SemiMajorAxisOrientation.c new file mode 100644 index 0000000..12bc26d --- /dev/null +++ b/vcits/mapem/src/SemiMajorAxisOrientation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SemiMajorAxisOrientation.h" + +int +SemiMajorAxisOrientation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisOrientation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation = { + "SemiMajorAxisOrientation", + "SemiMajorAxisOrientation", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisOrientation_tags_1, + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisOrientation_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMajorAxisOrientation_constr_1, &asn_PER_type_SemiMajorAxisOrientation_constr_1, SemiMajorAxisOrientation_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SemiMinorAxisAccuracy.c b/vcits/mapem/src/SemiMinorAxisAccuracy.c new file mode 100644 index 0000000..7217663 --- /dev/null +++ b/vcits/mapem/src/SemiMinorAxisAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SemiMinorAxisAccuracy.h" + +int +SemiMinorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMinorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy = { + "SemiMinorAxisAccuracy", + "SemiMinorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMinorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMinorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMinorAxisAccuracy_constr_1, &asn_PER_type_SemiMinorAxisAccuracy_constr_1, SemiMinorAxisAccuracy_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SequenceNumber.c b/vcits/mapem/src/SequenceNumber.c new file mode 100644 index 0000000..76604af --- /dev/null +++ b/vcits/mapem/src/SequenceNumber.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SequenceNumber.h" + +int +SequenceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SequenceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SequenceNumber = { + "SequenceNumber", + "SequenceNumber", + &asn_OP_NativeInteger, + asn_DEF_SequenceNumber_tags_1, + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + asn_DEF_SequenceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_SequenceNumber_constr_1, &asn_PER_type_SequenceNumber_constr_1, SequenceNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/ServiceApplicationLimit.c b/vcits/mapem/src/ServiceApplicationLimit.c new file mode 100644 index 0000000..8d0aaff --- /dev/null +++ b/vcits/mapem/src/ServiceApplicationLimit.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ServiceApplicationLimit.h" + +int +ServiceApplicationLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ServiceApplicationLimit_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_ServiceApplicationLimit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ServiceApplicationLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServiceApplicationLimit = { + "ServiceApplicationLimit", + "ServiceApplicationLimit", + &asn_OP_BIT_STRING, + asn_DEF_ServiceApplicationLimit_tags_1, + sizeof(asn_DEF_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_ServiceApplicationLimit_tags_1[0]), /* 1 */ + asn_DEF_ServiceApplicationLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_ServiceApplicationLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_ServiceApplicationLimit_constr_1, &asn_PER_type_ServiceApplicationLimit_constr_1, ServiceApplicationLimit_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ServiceNumber.c b/vcits/mapem/src/ServiceNumber.c new file mode 100644 index 0000000..b75f1a7 --- /dev/null +++ b/vcits/mapem/src/ServiceNumber.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ServiceNumber.h" + +int +ServiceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 32)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ServiceNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + 32 /* (SIZE(32..32)) */}; +asn_per_constraints_t asn_PER_type_ServiceNumber_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ServiceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServiceNumber = { + "ServiceNumber", + "ServiceNumber", + &asn_OP_BIT_STRING, + asn_DEF_ServiceNumber_tags_1, + sizeof(asn_DEF_ServiceNumber_tags_1) + /sizeof(asn_DEF_ServiceNumber_tags_1[0]), /* 1 */ + asn_DEF_ServiceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ServiceNumber_tags_1) + /sizeof(asn_DEF_ServiceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_ServiceNumber_constr_1, &asn_PER_type_ServiceNumber_constr_1, ServiceNumber_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalControlZone.c b/vcits/mapem/src/SignalControlZone.c new file mode 100644 index 0000000..6d0a56d --- /dev/null +++ b/vcits/mapem/src/SignalControlZone.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalControlZone.h" + +asn_TYPE_member_t asn_MBR_SignalControlZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalControlZone, zone), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_SignalControlZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zone" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalControlZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalControlZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* zone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1 = { + sizeof(struct SignalControlZone), + offsetof(struct SignalControlZone, _asn_ctx), + asn_MAP_SignalControlZone_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalControlZone = { + "SignalControlZone", + "SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_SignalControlZone_tags_1, + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + asn_DEF_SignalControlZone_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalControlZone_1, + 1, /* Elements count */ + &asn_SPC_SignalControlZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalGroupID.c b/vcits/mapem/src/SignalGroupID.c new file mode 100644 index 0000000..2fbdb9a --- /dev/null +++ b/vcits/mapem/src/SignalGroupID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalGroupID.h" + +int +SignalGroupID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalGroupID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalGroupID = { + "SignalGroupID", + "SignalGroupID", + &asn_OP_NativeInteger, + asn_DEF_SignalGroupID_tags_1, + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + asn_DEF_SignalGroupID_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalGroupID_constr_1, &asn_PER_type_SignalGroupID_constr_1, SignalGroupID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SignalHeadLocation.c b/vcits/mapem/src/SignalHeadLocation.c new file mode 100644 index 0000000..39d43fa --- /dev/null +++ b/vcits/mapem/src/SignalHeadLocation.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalHeadLocation.h" + +asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, nodeZ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeZ" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, signalGroupID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroupID" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalHeadLocation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeZ */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroupID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1 = { + sizeof(struct SignalHeadLocation), + offsetof(struct SignalHeadLocation, _asn_ctx), + asn_MAP_SignalHeadLocation_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation = { + "SignalHeadLocation", + "SignalHeadLocation", + &asn_OP_SEQUENCE, + asn_DEF_SignalHeadLocation_tags_1, + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalHeadLocation_1, + 3, /* Elements count */ + &asn_SPC_SignalHeadLocation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalHeadLocationList.c b/vcits/mapem/src/SignalHeadLocationList.c new file mode 100644 index 0000000..8a63b27 --- /dev/null +++ b/vcits/mapem/src/SignalHeadLocationList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalHeadLocationList.h" + +#include "SignalHeadLocation.h" +static asn_oer_constraints_t asn_OER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalHeadLocation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1 = { + sizeof(struct SignalHeadLocationList), + offsetof(struct SignalHeadLocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList = { + "SignalHeadLocationList", + "SignalHeadLocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalHeadLocationList_tags_1, + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalHeadLocationList_constr_1, &asn_PER_type_SignalHeadLocationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalHeadLocationList_1, + 1, /* Single element */ + &asn_SPC_SignalHeadLocationList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalRequest.c b/vcits/mapem/src/SignalRequest.c new file mode 100644 index 0000000..2b2a875 --- /dev/null +++ b/vcits/mapem/src/SignalRequest.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalRequest.h" + +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequest__regional), + offsetof(struct SignalRequest__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PriorityRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestType" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, inBoundLane), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inBoundLane" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequest, outBoundLane), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outBoundLane" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequest, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequest_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* requestID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* requestType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* inBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* outBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1 = { + sizeof(struct SignalRequest), + offsetof(struct SignalRequest, _asn_ctx), + asn_MAP_SignalRequest_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequest_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequest = { + "SignalRequest", + "SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequest_tags_1, + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + asn_DEF_SignalRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequest_1, + 6, /* Elements count */ + &asn_SPC_SignalRequest_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalRequestList.c b/vcits/mapem/src/SignalRequestList.c new file mode 100644 index 0000000..c0485c2 --- /dev/null +++ b/vcits/mapem/src/SignalRequestList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalRequestList.h" + +#include "SignalRequestPackage.h" +static asn_oer_constraints_t asn_OER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalRequestPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1 = { + sizeof(struct SignalRequestList), + offsetof(struct SignalRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestList = { + "SignalRequestList", + "SignalRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalRequestList_tags_1, + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalRequestList_constr_1, &asn_PER_type_SignalRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalRequestList_1, + 1, /* Single element */ + &asn_SPC_SignalRequestList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalRequestMessage.c b/vcits/mapem/src/SignalRequestMessage.c new file mode 100644 index 0000000..1221fcf --- /dev/null +++ b/vcits/mapem/src/SignalRequestMessage.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalRequestMessage.h" + +#include "SignalRequestList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequestMessage__regional), + offsetof(struct SignalRequestMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SignalRequestMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, requests), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requests" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, requestor), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestor" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestMessage_oms_1[] = { 0, 2, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* requests */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* requestor */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SignalRequestMessage_specs_1 = { + sizeof(struct SignalRequestMessage), + offsetof(struct SignalRequestMessage, _asn_ctx), + asn_MAP_SignalRequestMessage_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequestMessage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage = { + "SignalRequestMessage", + "SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestMessage_tags_1, + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequestMessage_1, + 6, /* Elements count */ + &asn_SPC_SignalRequestMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalRequestPackage.c b/vcits/mapem/src/SignalRequestPackage.c new file mode 100644 index 0000000..b47993a --- /dev/null +++ b/vcits/mapem/src/SignalRequestPackage.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalRequestPackage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalRequestPackage__regional), + offsetof(struct SignalRequestPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestPackage, request), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 4, offsetof(struct SignalRequestPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 3, offsetof(struct SignalRequestPackage, second), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestPackage_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1 = { + sizeof(struct SignalRequestPackage), + offsetof(struct SignalRequestPackage, _asn_ctx), + asn_MAP_SignalRequestPackage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequestPackage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage = { + "SignalRequestPackage", + "SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestPackage_tags_1, + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequestPackage_1, + 5, /* Elements count */ + &asn_SPC_SignalRequestPackage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalRequesterInfo.c b/vcits/mapem/src/SignalRequesterInfo.c new file mode 100644 index 0000000..750981b --- /dev/null +++ b/vcits/mapem/src/SignalRequesterInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalRequesterInfo.h" + +#include "RequestorType.h" +asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, request), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequesterInfo, role), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequesterInfo, typeData), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeData" + }, +}; +static const int asn_MAP_SignalRequesterInfo_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequesterInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequesterInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* typeData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1 = { + sizeof(struct SignalRequesterInfo), + offsetof(struct SignalRequesterInfo, _asn_ctx), + asn_MAP_SignalRequesterInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequesterInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo = { + "SignalRequesterInfo", + "SignalRequesterInfo", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequesterInfo_tags_1, + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + asn_DEF_SignalRequesterInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequesterInfo_1, + 5, /* Elements count */ + &asn_SPC_SignalRequesterInfo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalStatus.c b/vcits/mapem/src/SignalStatus.c new file mode 100644 index 0000000..d48ee00 --- /dev/null +++ b/vcits/mapem/src/SignalStatus.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalStatus.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SignalStatus__regional), + offsetof(struct SignalStatus__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sigStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusPackageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sigStatus" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatus, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatus_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_SignalStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatus_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sigStatus */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1 = { + sizeof(struct SignalStatus), + offsetof(struct SignalStatus, _asn_ctx), + asn_MAP_SignalStatus_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SignalStatus_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatus = { + "SignalStatus", + "SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatus_tags_1, + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + asn_DEF_SignalStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatus_1, + 4, /* Elements count */ + &asn_SPC_SignalStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalStatusList.c b/vcits/mapem/src/SignalStatusList.c new file mode 100644 index 0000000..22807c0 --- /dev/null +++ b/vcits/mapem/src/SignalStatusList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalStatusList.h" + +#include "SignalStatus.h" +static asn_oer_constraints_t asn_OER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalStatusList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1 = { + sizeof(struct SignalStatusList), + offsetof(struct SignalStatusList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusList = { + "SignalStatusList", + "SignalStatusList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusList_tags_1, + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalStatusList_constr_1, &asn_PER_type_SignalStatusList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalStatusList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalStatusMessage.c b/vcits/mapem/src/SignalStatusMessage.c new file mode 100644 index 0000000..759b86f --- /dev/null +++ b/vcits/mapem/src/SignalStatusMessage.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalStatusMessage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalStatusMessage__regional), + offsetof(struct SignalStatusMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SignalStatusMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusMessage_oms_1[] = { 0, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SignalStatusMessage_specs_1 = { + sizeof(struct SignalStatusMessage), + offsetof(struct SignalStatusMessage, _asn_ctx), + asn_MAP_SignalStatusMessage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalStatusMessage_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage = { + "SignalStatusMessage", + "SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusMessage_tags_1, + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusMessage_1, + 5, /* Elements count */ + &asn_SPC_SignalStatusMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalStatusPackage-addGrpC.c b/vcits/mapem/src/SignalStatusPackage-addGrpC.c new file mode 100644 index 0000000..97f9088 --- /dev/null +++ b/vcits/mapem/src/SignalStatusPackage-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalStatusPackage-addGrpC.h" + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage_addGrpC, synchToSchedule), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "synchToSchedule" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage_addGrpC, rejectedReason), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RejectedReason, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rejectedReason" + }, +}; +static const int asn_MAP_SignalStatusPackage_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* synchToSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rejectedReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_addGrpC_specs_1 = { + sizeof(struct SignalStatusPackage_addGrpC), + offsetof(struct SignalStatusPackage_addGrpC, _asn_ctx), + asn_MAP_SignalStatusPackage_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage_addGrpC = { + "SignalStatusPackage-addGrpC", + "SignalStatusPackage-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_addGrpC_tags_1, + sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusPackage_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_SignalStatusPackage_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalStatusPackage.c b/vcits/mapem/src/SignalStatusPackage.c new file mode 100644 index 0000000..33e0ebc --- /dev/null +++ b/vcits/mapem/src/SignalStatusPackage.c @@ -0,0 +1,204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalStatusPackage.h" + +#include "SignalRequesterInfo.h" +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct SignalStatusPackage__regional), + offsetof(struct SignalStatusPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { &asn_OER_type_regional_constr_9, &asn_PER_type_regional_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, requester), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequesterInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requester" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, inboundOn), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inboundOn" + }, + { ATF_POINTER, 4, offsetof(struct SignalStatusPackage, outboundOn), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outboundOn" + }, + { ATF_POINTER, 3, offsetof(struct SignalStatusPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage, second), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, status), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { &asn_OER_memb_regional_constr_9, &asn_PER_memb_regional_constr_9, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusPackage_oms_1[] = { 0, 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requester */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* inboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* outboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1 = { + sizeof(struct SignalStatusPackage), + offsetof(struct SignalStatusPackage, _asn_ctx), + asn_MAP_SignalStatusPackage_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage = { + "SignalStatusPackage", + "SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_tags_1, + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusPackage_1, + 8, /* Elements count */ + &asn_SPC_SignalStatusPackage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalStatusPackageList.c b/vcits/mapem/src/SignalStatusPackageList.c new file mode 100644 index 0000000..9e979e4 --- /dev/null +++ b/vcits/mapem/src/SignalStatusPackageList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalStatusPackageList.h" + +#include "SignalStatusPackage.h" +static asn_oer_constraints_t asn_OER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1 = { + sizeof(struct SignalStatusPackageList), + offsetof(struct SignalStatusPackageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList = { + "SignalStatusPackageList", + "SignalStatusPackageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusPackageList_tags_1, + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackageList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalStatusPackageList_constr_1, &asn_PER_type_SignalStatusPackageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalStatusPackageList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusPackageList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SignalViolationSubCauseCode.c b/vcits/mapem/src/SignalViolationSubCauseCode.c new file mode 100644 index 0000000..2ae7e08 --- /dev/null +++ b/vcits/mapem/src/SignalViolationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SignalViolationSubCauseCode.h" + +int +SignalViolationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalViolationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode = { + "SignalViolationSubCauseCode", + "SignalViolationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SignalViolationSubCauseCode_tags_1, + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SignalViolationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalViolationSubCauseCode_constr_1, &asn_PER_type_SignalViolationSubCauseCode_constr_1, SignalViolationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SlowVehicleSubCauseCode.c b/vcits/mapem/src/SlowVehicleSubCauseCode.c new file mode 100644 index 0000000..38c2799 --- /dev/null +++ b/vcits/mapem/src/SlowVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SlowVehicleSubCauseCode.h" + +int +SlowVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SlowVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode = { + "SlowVehicleSubCauseCode", + "SlowVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SlowVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SlowVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SlowVehicleSubCauseCode_constr_1, &asn_PER_type_SlowVehicleSubCauseCode_constr_1, SlowVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SpecialTransportType.c b/vcits/mapem/src/SpecialTransportType.c new file mode 100644 index 0000000..d1ffa1f --- /dev/null +++ b/vcits/mapem/src/SpecialTransportType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SpecialTransportType.h" + +int +SpecialTransportType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpecialTransportType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpecialTransportType = { + "SpecialTransportType", + "SpecialTransportType", + &asn_OP_BIT_STRING, + asn_DEF_SpecialTransportType_tags_1, + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + asn_DEF_SpecialTransportType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpecialTransportType_constr_1, &asn_PER_type_SpecialTransportType_constr_1, SpecialTransportType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Speed.c b/vcits/mapem/src/Speed.c new file mode 100644 index 0000000..e1c674d --- /dev/null +++ b/vcits/mapem/src/Speed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Speed.h" + +static asn_TYPE_member_t asn_MBR_Speed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Speed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speedConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Speed_specs_1 = { + sizeof(struct Speed), + offsetof(struct Speed, _asn_ctx), + asn_MAP_Speed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Speed = { + "Speed", + "Speed", + &asn_OP_SEQUENCE, + asn_DEF_Speed_tags_1, + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + asn_DEF_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Speed_1, + 2, /* Elements count */ + &asn_SPC_Speed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SpeedAdvice.c b/vcits/mapem/src/SpeedAdvice.c new file mode 100644 index 0000000..d6980b0 --- /dev/null +++ b/vcits/mapem/src/SpeedAdvice.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SpeedAdvice.h" + +int +SpeedAdvice_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..500) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 500 } /* (0..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedAdvice_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedAdvice = { + "SpeedAdvice", + "SpeedAdvice", + &asn_OP_NativeInteger, + asn_DEF_SpeedAdvice_tags_1, + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + asn_DEF_SpeedAdvice_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedAdvice_constr_1, &asn_PER_type_SpeedAdvice_constr_1, SpeedAdvice_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SpeedConfidence.c b/vcits/mapem/src/SpeedConfidence.c new file mode 100644 index 0000000..adfef58 --- /dev/null +++ b/vcits/mapem/src/SpeedConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SpeedConfidence.h" + +int +SpeedConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeInteger, + asn_DEF_SpeedConfidence_tags_1, + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidence_constr_1, &asn_PER_type_SpeedConfidence_constr_1, SpeedConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SpeedConfidenceDSRC.c b/vcits/mapem/src/SpeedConfidenceDSRC.c new file mode 100644 index 0000000..4aba89e --- /dev/null +++ b/vcits/mapem/src/SpeedConfidenceDSRC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SpeedConfidenceDSRC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidenceDSRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidenceDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SpeedConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec100ms" }, + { 2, 8, "prec10ms" }, + { 3, 7, "prec5ms" }, + { 4, 7, "prec1ms" }, + { 5, 9, "prec0-1ms" }, + { 6, 10, "prec0-05ms" }, + { 7, 10, "prec0-01ms" } +}; +static const unsigned int asn_MAP_SpeedConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-01ms(7) */ + 6, /* prec0-05ms(6) */ + 5, /* prec0-1ms(5) */ + 1, /* prec100ms(1) */ + 2, /* prec10ms(2) */ + 4, /* prec1ms(4) */ + 3, /* prec5ms(3) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedConfidenceDSRC_specs_1 = { + asn_MAP_SpeedConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedConfidenceDSRC_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidenceDSRC = { + "SpeedConfidenceDSRC", + "SpeedConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedConfidenceDSRC_tags_1, + sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidenceDSRC_constr_1, &asn_PER_type_SpeedConfidenceDSRC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SpeedLimit.c b/vcits/mapem/src/SpeedLimit.c new file mode 100644 index 0000000..804b424 --- /dev/null +++ b/vcits/mapem/src/SpeedLimit.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SpeedLimit.h" + +int +SpeedLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_NativeInteger, + asn_DEF_SpeedLimit_tags_1, + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimit_constr_1, &asn_PER_type_SpeedLimit_constr_1, SpeedLimit_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SpeedLimitList.c b/vcits/mapem/src/SpeedLimitList.c new file mode 100644 index 0000000..b5fab33 --- /dev/null +++ b/vcits/mapem/src/SpeedLimitList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SpeedLimitList.h" + +#include "RegulatorySpeedLimit.h" +static asn_oer_constraints_t asn_OER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..9)) */}; +asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 9 } /* (SIZE(1..9)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SpeedLimitList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RegulatorySpeedLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1 = { + sizeof(struct SpeedLimitList), + offsetof(struct SpeedLimitList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitList = { + "SpeedLimitList", + "SpeedLimitList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SpeedLimitList_tags_1, + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitList_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimitList_constr_1, &asn_PER_type_SpeedLimitList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SpeedLimitList_1, + 1, /* Single element */ + &asn_SPC_SpeedLimitList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SpeedLimitType.c b/vcits/mapem/src/SpeedLimitType.c new file mode 100644 index 0000000..3b8fb6d --- /dev/null +++ b/vcits/mapem/src/SpeedLimitType.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SpeedLimitType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SpeedLimitType_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "maxSpeedInSchoolZone" }, + { 2, 42, "maxSpeedInSchoolZoneWhenChildrenArePresent" }, + { 3, 26, "maxSpeedInConstructionZone" }, + { 4, 15, "vehicleMinSpeed" }, + { 5, 15, "vehicleMaxSpeed" }, + { 6, 20, "vehicleNightMaxSpeed" }, + { 7, 13, "truckMinSpeed" }, + { 8, 13, "truckMaxSpeed" }, + { 9, 18, "truckNightMaxSpeed" }, + { 10, 28, "vehiclesWithTrailersMinSpeed" }, + { 11, 28, "vehiclesWithTrailersMaxSpeed" }, + { 12, 33, "vehiclesWithTrailersNightMaxSpeed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SpeedLimitType_enum2value_1[] = { + 3, /* maxSpeedInConstructionZone(3) */ + 1, /* maxSpeedInSchoolZone(1) */ + 2, /* maxSpeedInSchoolZoneWhenChildrenArePresent(2) */ + 8, /* truckMaxSpeed(8) */ + 7, /* truckMinSpeed(7) */ + 9, /* truckNightMaxSpeed(9) */ + 0, /* unknown(0) */ + 5, /* vehicleMaxSpeed(5) */ + 4, /* vehicleMinSpeed(4) */ + 6, /* vehicleNightMaxSpeed(6) */ + 11, /* vehiclesWithTrailersMaxSpeed(11) */ + 10, /* vehiclesWithTrailersMinSpeed(10) */ + 12 /* vehiclesWithTrailersNightMaxSpeed(12) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1 = { + asn_MAP_SpeedLimitType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedLimitType_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitType = { + "SpeedLimitType", + "SpeedLimitType", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedLimitType_tags_1, + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimitType_constr_1, &asn_PER_type_SpeedLimitType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedLimitType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SpeedValue.c b/vcits/mapem/src/SpeedValue.c new file mode 100644 index 0000000..77ba226 --- /dev/null +++ b/vcits/mapem/src/SpeedValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SpeedValue.h" + +int +SpeedValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedValue = { + "SpeedValue", + "SpeedValue", + &asn_OP_NativeInteger, + asn_DEF_SpeedValue_tags_1, + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + asn_DEF_SpeedValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedValue_constr_1, &asn_PER_type_SpeedValue_constr_1, SpeedValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SpeedandHeadingandThrottleConfidence.c b/vcits/mapem/src/SpeedandHeadingandThrottleConfidence.c new file mode 100644 index 0000000..080beea --- /dev/null +++ b/vcits/mapem/src/SpeedandHeadingandThrottleConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SpeedandHeadingandThrottleConfidence.h" + +asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, throttle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ThrottleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "throttle" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* throttle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 = { + sizeof(struct SpeedandHeadingandThrottleConfidence), + offsetof(struct SpeedandHeadingandThrottleConfidence, _asn_ctx), + asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence = { + "SpeedandHeadingandThrottleConfidence", + "SpeedandHeadingandThrottleConfidence", + &asn_OP_SEQUENCE, + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SpeedandHeadingandThrottleConfidence_1, + 3, /* Elements count */ + &asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/StartTime.c b/vcits/mapem/src/StartTime.c new file mode 100644 index 0000000..e03447d --- /dev/null +++ b/vcits/mapem/src/StartTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "StartTime.h" + +int +StartTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const AviEriDateTime_t *st = (const AviEriDateTime_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using AviEriDateTime, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StartTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_StartTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StartTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StartTime = { + "StartTime", + "StartTime", + &asn_OP_OCTET_STRING, + asn_DEF_StartTime_tags_1, + sizeof(asn_DEF_StartTime_tags_1) + /sizeof(asn_DEF_StartTime_tags_1[0]), /* 1 */ + asn_DEF_StartTime_tags_1, /* Same as above */ + sizeof(asn_DEF_StartTime_tags_1) + /sizeof(asn_DEF_StartTime_tags_1[0]), /* 1 */ + { &asn_OER_type_StartTime_constr_1, &asn_PER_type_StartTime_constr_1, StartTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/StationID.c b/vcits/mapem/src/StationID.c new file mode 100644 index 0000000..c392d8d --- /dev/null +++ b/vcits/mapem/src/StationID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "StationID.h" + +int +StationID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +asn_per_constraints_t asn_PER_type_StationID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_StationID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationID = { + "StationID", + "StationID", + &asn_OP_NativeInteger, + asn_DEF_StationID_tags_1, + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + asn_DEF_StationID_tags_1, /* Same as above */ + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + { &asn_OER_type_StationID_constr_1, &asn_PER_type_StationID_constr_1, StationID_constraint }, + 0, 0, /* No members */ + &asn_SPC_StationID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/StationType.c b/vcits/mapem/src/StationType.c new file mode 100644 index 0000000..101be56 --- /dev/null +++ b/vcits/mapem/src/StationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "StationType.h" + +int +StationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_StationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationType = { + "StationType", + "StationType", + &asn_OP_NativeInteger, + asn_DEF_StationType_tags_1, + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + asn_DEF_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + { &asn_OER_type_StationType_constr_1, &asn_PER_type_StationType_constr_1, StationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/StationarySince.c b/vcits/mapem/src/StationarySince.c new file mode 100644 index 0000000..610db01 --- /dev/null +++ b/vcits/mapem/src/StationarySince.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "StationarySince.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationarySince_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_StationarySince_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_StationarySince_value2enum_1[] = { + { 0, 15, "lessThan1Minute" }, + { 1, 16, "lessThan2Minutes" }, + { 2, 17, "lessThan15Minutes" }, + { 3, 23, "equalOrGreater15Minutes" } +}; +static const unsigned int asn_MAP_StationarySince_enum2value_1[] = { + 3, /* equalOrGreater15Minutes(3) */ + 2, /* lessThan15Minutes(2) */ + 0, /* lessThan1Minute(0) */ + 1 /* lessThan2Minutes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_StationarySince_specs_1 = { + asn_MAP_StationarySince_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_StationarySince_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_StationarySince_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationarySince = { + "StationarySince", + "StationarySince", + &asn_OP_NativeEnumerated, + asn_DEF_StationarySince_tags_1, + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + asn_DEF_StationarySince_tags_1, /* Same as above */ + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + { &asn_OER_type_StationarySince_constr_1, &asn_PER_type_StationarySince_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_StationarySince_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/StationaryVehicleSubCauseCode.c b/vcits/mapem/src/StationaryVehicleSubCauseCode.c new file mode 100644 index 0000000..2cf780e --- /dev/null +++ b/vcits/mapem/src/StationaryVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "StationaryVehicleSubCauseCode.h" + +int +StationaryVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationaryVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode = { + "StationaryVehicleSubCauseCode", + "StationaryVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_StationaryVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_StationaryVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_StationaryVehicleSubCauseCode_constr_1, &asn_PER_type_StationaryVehicleSubCauseCode_constr_1, StationaryVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SteeringWheelAngle.c b/vcits/mapem/src/SteeringWheelAngle.c new file mode 100644 index 0000000..4251342 --- /dev/null +++ b/vcits/mapem/src/SteeringWheelAngle.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SteeringWheelAngle.h" + +static asn_TYPE_member_t asn_MBR_SteeringWheelAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SteeringWheelAngle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* steeringWheelAngleValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* steeringWheelAngleConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SteeringWheelAngle_specs_1 = { + sizeof(struct SteeringWheelAngle), + offsetof(struct SteeringWheelAngle, _asn_ctx), + asn_MAP_SteeringWheelAngle_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_SEQUENCE, + asn_DEF_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SteeringWheelAngle_1, + 2, /* Elements count */ + &asn_SPC_SteeringWheelAngle_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SteeringWheelAngleConfidence.c b/vcits/mapem/src/SteeringWheelAngleConfidence.c new file mode 100644 index 0000000..db9dda6 --- /dev/null +++ b/vcits/mapem/src/SteeringWheelAngleConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SteeringWheelAngleConfidence.h" + +int +SteeringWheelAngleConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleConfidence_constr_1, &asn_PER_type_SteeringWheelAngleConfidence_constr_1, SteeringWheelAngleConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/SteeringWheelAngleValue.c b/vcits/mapem/src/SteeringWheelAngleValue.c new file mode 100644 index 0000000..da35962 --- /dev/null +++ b/vcits/mapem/src/SteeringWheelAngleValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SteeringWheelAngleValue.h" + +int +SteeringWheelAngleValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -511 && value <= 512)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-511..512) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -511, 512 } /* (-511..512) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue = { + "SteeringWheelAngleValue", + "SteeringWheelAngleValue", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleValue_tags_1, + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleValue_constr_1, &asn_PER_type_SteeringWheelAngleValue_constr_1, SteeringWheelAngleValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/StopTime.c b/vcits/mapem/src/StopTime.c new file mode 100644 index 0000000..1331f87 --- /dev/null +++ b/vcits/mapem/src/StopTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "StopTime.h" + +int +StopTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const AviEriDateTime_t *st = (const AviEriDateTime_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using AviEriDateTime, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StopTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_StopTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StopTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StopTime = { + "StopTime", + "StopTime", + &asn_OP_OCTET_STRING, + asn_DEF_StopTime_tags_1, + sizeof(asn_DEF_StopTime_tags_1) + /sizeof(asn_DEF_StopTime_tags_1[0]), /* 1 */ + asn_DEF_StopTime_tags_1, /* Same as above */ + sizeof(asn_DEF_StopTime_tags_1) + /sizeof(asn_DEF_StopTime_tags_1[0]), /* 1 */ + { &asn_OER_type_StopTime_constr_1, &asn_PER_type_StopTime_constr_1, StopTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/SubCauseCodeType.c b/vcits/mapem/src/SubCauseCodeType.c new file mode 100644 index 0000000..49e5bb6 --- /dev/null +++ b/vcits/mapem/src/SubCauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "SubCauseCodeType.h" + +int +SubCauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SubCauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType = { + "SubCauseCodeType", + "SubCauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_SubCauseCodeType_tags_1, + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_SubCauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_SubCauseCodeType_constr_1, &asn_PER_type_SubCauseCodeType_constr_1, SubCauseCodeType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/TaxCode.c b/vcits/mapem/src/TaxCode.c new file mode 100644 index 0000000..91795f7 --- /dev/null +++ b/vcits/mapem/src/TaxCode.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TaxCode.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_TaxCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TaxCode = { + "TaxCode", + "TaxCode", + &asn_OP_OCTET_STRING, + asn_DEF_TaxCode_tags_1, + sizeof(asn_DEF_TaxCode_tags_1) + /sizeof(asn_DEF_TaxCode_tags_1[0]), /* 1 */ + asn_DEF_TaxCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TaxCode_tags_1) + /sizeof(asn_DEF_TaxCode_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/Temperature.c b/vcits/mapem/src/Temperature.c new file mode 100644 index 0000000..c10dd64 --- /dev/null +++ b/vcits/mapem/src/Temperature.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Temperature.h" + +int +Temperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -60 && value <= 67)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Temperature_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-60..67) */, + -1}; +static asn_per_constraints_t asn_PER_type_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 67 } /* (-60..67) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_Temperature_tags_1, + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + asn_DEF_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + { &asn_OER_type_Temperature_constr_1, &asn_PER_type_Temperature_constr_1, Temperature_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/TemporaryID.c b/vcits/mapem/src/TemporaryID.c new file mode 100644 index 0000000..17c2498 --- /dev/null +++ b/vcits/mapem/src/TemporaryID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TemporaryID.h" + +int +TemporaryID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TemporaryID_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +asn_per_constraints_t asn_PER_type_TemporaryID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TemporaryID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TemporaryID = { + "TemporaryID", + "TemporaryID", + &asn_OP_OCTET_STRING, + asn_DEF_TemporaryID_tags_1, + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + asn_DEF_TemporaryID_tags_1, /* Same as above */ + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + { &asn_OER_type_TemporaryID_constr_1, &asn_PER_type_TemporaryID_constr_1, TemporaryID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/ThrottleConfidence.c b/vcits/mapem/src/ThrottleConfidence.c new file mode 100644 index 0000000..16aae73 --- /dev/null +++ b/vcits/mapem/src/ThrottleConfidence.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ThrottleConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ThrottleConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 13, "prec10percent" }, + { 2, 12, "prec1percent" }, + { 3, 14, "prec0-5percent" } +}; +static const unsigned int asn_MAP_ThrottleConfidence_enum2value_1[] = { + 3, /* prec0-5percent(3) */ + 1, /* prec10percent(1) */ + 2, /* prec1percent(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1 = { + asn_MAP_ThrottleConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ThrottleConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence = { + "ThrottleConfidence", + "ThrottleConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ThrottleConfidence_tags_1, + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_ThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ThrottleConfidence_constr_1, &asn_PER_type_ThrottleConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/TimeChangeDetails.c b/vcits/mapem/src/TimeChangeDetails.c new file mode 100644 index 0000000..a36b938 --- /dev/null +++ b/vcits/mapem/src/TimeChangeDetails.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TimeChangeDetails.h" + +asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[] = { + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct TimeChangeDetails, minEndTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minEndTime" + }, + { ATF_POINTER, 4, offsetof(struct TimeChangeDetails, maxEndTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxEndTime" + }, + { ATF_POINTER, 3, offsetof(struct TimeChangeDetails, likelyTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "likelyTime" + }, + { ATF_POINTER, 2, offsetof(struct TimeChangeDetails, confidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeIntervalConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, nextTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextTime" + }, +}; +static const int asn_MAP_TimeChangeDetails_oms_1[] = { 0, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_TimeChangeDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TimeChangeDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* likelyTime */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* nextTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1 = { + sizeof(struct TimeChangeDetails), + offsetof(struct TimeChangeDetails, _asn_ctx), + asn_MAP_TimeChangeDetails_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_TimeChangeDetails_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails = { + "TimeChangeDetails", + "TimeChangeDetails", + &asn_OP_SEQUENCE, + asn_DEF_TimeChangeDetails_tags_1, + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + asn_DEF_TimeChangeDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TimeChangeDetails_1, + 6, /* Elements count */ + &asn_SPC_TimeChangeDetails_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/TimeConfidence.c b/vcits/mapem/src/TimeConfidence.c new file mode 100644 index 0000000..a33d0f8 --- /dev/null +++ b/vcits/mapem/src/TimeConfidence.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TimeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TimeConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 12, "time-100-000" }, + { 2, 12, "time-050-000" }, + { 3, 12, "time-020-000" }, + { 4, 12, "time-010-000" }, + { 5, 12, "time-002-000" }, + { 6, 12, "time-001-000" }, + { 7, 12, "time-000-500" }, + { 8, 12, "time-000-200" }, + { 9, 12, "time-000-100" }, + { 10, 12, "time-000-050" }, + { 11, 12, "time-000-020" }, + { 12, 12, "time-000-010" }, + { 13, 12, "time-000-005" }, + { 14, 12, "time-000-002" }, + { 15, 12, "time-000-001" }, + { 16, 14, "time-000-000-5" }, + { 17, 14, "time-000-000-2" }, + { 18, 14, "time-000-000-1" }, + { 19, 15, "time-000-000-05" }, + { 20, 15, "time-000-000-02" }, + { 21, 15, "time-000-000-01" }, + { 22, 16, "time-000-000-005" }, + { 23, 16, "time-000-000-002" }, + { 24, 16, "time-000-000-001" }, + { 25, 18, "time-000-000-000-5" }, + { 26, 18, "time-000-000-000-2" }, + { 27, 18, "time-000-000-000-1" }, + { 28, 19, "time-000-000-000-05" }, + { 29, 19, "time-000-000-000-02" }, + { 30, 19, "time-000-000-000-01" }, + { 31, 20, "time-000-000-000-005" }, + { 32, 20, "time-000-000-000-002" }, + { 33, 20, "time-000-000-000-001" }, + { 34, 22, "time-000-000-000-000-5" }, + { 35, 22, "time-000-000-000-000-2" }, + { 36, 22, "time-000-000-000-000-1" }, + { 37, 23, "time-000-000-000-000-05" }, + { 38, 23, "time-000-000-000-000-02" }, + { 39, 23, "time-000-000-000-000-01" } +}; +static const unsigned int asn_MAP_TimeConfidence_enum2value_1[] = { + 39, /* time-000-000-000-000-01(39) */ + 38, /* time-000-000-000-000-02(38) */ + 37, /* time-000-000-000-000-05(37) */ + 36, /* time-000-000-000-000-1(36) */ + 35, /* time-000-000-000-000-2(35) */ + 34, /* time-000-000-000-000-5(34) */ + 33, /* time-000-000-000-001(33) */ + 32, /* time-000-000-000-002(32) */ + 31, /* time-000-000-000-005(31) */ + 30, /* time-000-000-000-01(30) */ + 29, /* time-000-000-000-02(29) */ + 28, /* time-000-000-000-05(28) */ + 27, /* time-000-000-000-1(27) */ + 26, /* time-000-000-000-2(26) */ + 25, /* time-000-000-000-5(25) */ + 24, /* time-000-000-001(24) */ + 23, /* time-000-000-002(23) */ + 22, /* time-000-000-005(22) */ + 21, /* time-000-000-01(21) */ + 20, /* time-000-000-02(20) */ + 19, /* time-000-000-05(19) */ + 18, /* time-000-000-1(18) */ + 17, /* time-000-000-2(17) */ + 16, /* time-000-000-5(16) */ + 15, /* time-000-001(15) */ + 14, /* time-000-002(14) */ + 13, /* time-000-005(13) */ + 12, /* time-000-010(12) */ + 11, /* time-000-020(11) */ + 10, /* time-000-050(10) */ + 9, /* time-000-100(9) */ + 8, /* time-000-200(8) */ + 7, /* time-000-500(7) */ + 6, /* time-001-000(6) */ + 5, /* time-002-000(5) */ + 4, /* time-010-000(4) */ + 3, /* time-020-000(3) */ + 2, /* time-050-000(2) */ + 1, /* time-100-000(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1 = { + asn_MAP_TimeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TimeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 40, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TimeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeConfidence = { + "TimeConfidence", + "TimeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_TimeConfidence_tags_1, + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeConfidence_constr_1, &asn_PER_type_TimeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TimeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/TimeIntervalConfidence.c b/vcits/mapem/src/TimeIntervalConfidence.c new file mode 100644 index 0000000..2ba9759 --- /dev/null +++ b/vcits/mapem/src/TimeIntervalConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TimeIntervalConfidence.h" + +int +TimeIntervalConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeIntervalConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence = { + "TimeIntervalConfidence", + "TimeIntervalConfidence", + &asn_OP_NativeInteger, + asn_DEF_TimeIntervalConfidence_tags_1, + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeIntervalConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeIntervalConfidence_constr_1, &asn_PER_type_TimeIntervalConfidence_constr_1, TimeIntervalConfidence_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/TimeMark.c b/vcits/mapem/src/TimeMark.c new file mode 100644 index 0000000..8a498cd --- /dev/null +++ b/vcits/mapem/src/TimeMark.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TimeMark.h" + +int +TimeMark_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 36001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeMark_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..36001) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeMark_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 36001 } /* (0..36001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeMark_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeMark = { + "TimeMark", + "TimeMark", + &asn_OP_NativeInteger, + asn_DEF_TimeMark_tags_1, + sizeof(asn_DEF_TimeMark_tags_1) + /sizeof(asn_DEF_TimeMark_tags_1[0]), /* 1 */ + asn_DEF_TimeMark_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeMark_tags_1) + /sizeof(asn_DEF_TimeMark_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeMark_constr_1, &asn_PER_type_TimeMark_constr_1, TimeMark_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/TimeReference.c b/vcits/mapem/src/TimeReference.c new file mode 100644 index 0000000..c577eb6 --- /dev/null +++ b/vcits/mapem/src/TimeReference.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TimeReference.h" + +int +TimeReference_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 60000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeReference_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..60000) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeReference_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 60000 } /* (0..60000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeReference = { + "TimeReference", + "TimeReference", + &asn_OP_NativeInteger, + asn_DEF_TimeReference_tags_1, + sizeof(asn_DEF_TimeReference_tags_1) + /sizeof(asn_DEF_TimeReference_tags_1[0]), /* 1 */ + asn_DEF_TimeReference_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeReference_tags_1) + /sizeof(asn_DEF_TimeReference_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeReference_constr_1, &asn_PER_type_TimeReference_constr_1, TimeReference_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/TimestampIts.c b/vcits/mapem/src/TimestampIts.c new file mode 100644 index 0000000..6da04c8 --- /dev/null +++ b/vcits/mapem/src/TimestampIts.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TimestampIts.h" + +int +TimestampIts_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0 && value <= 4398046511103)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimestampIts_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..4398046511103) */, + -1}; +asn_per_constraints_t asn_PER_type_TimestampIts_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 42, -1, 0, 4398046511103 } /* (0..4398046511103) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimestampIts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimestampIts = { + "TimestampIts", + "TimestampIts", + &asn_OP_INTEGER, + asn_DEF_TimestampIts_tags_1, + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + asn_DEF_TimestampIts_tags_1, /* Same as above */ + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + { &asn_OER_type_TimestampIts_constr_1, &asn_PER_type_TimestampIts_constr_1, TimestampIts_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Traces.c b/vcits/mapem/src/Traces.c new file mode 100644 index 0000000..990d6b4 --- /dev/null +++ b/vcits/mapem/src/Traces.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Traces.h" + +#include "PathHistory.h" +static asn_oer_constraints_t asn_OER_type_Traces_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..7)) */}; +static asn_per_constraints_t asn_PER_type_Traces_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_Traces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathHistory, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Traces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Traces_specs_1 = { + sizeof(struct Traces), + offsetof(struct Traces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Traces = { + "Traces", + "Traces", + &asn_OP_SEQUENCE_OF, + asn_DEF_Traces_tags_1, + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + asn_DEF_Traces_tags_1, /* Same as above */ + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + { &asn_OER_type_Traces_constr_1, &asn_PER_type_Traces_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Traces_1, + 1, /* Single element */ + &asn_SPC_Traces_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/TrafficConditionSubCauseCode.c b/vcits/mapem/src/TrafficConditionSubCauseCode.c new file mode 100644 index 0000000..4a2a34c --- /dev/null +++ b/vcits/mapem/src/TrafficConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TrafficConditionSubCauseCode.h" + +int +TrafficConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TrafficConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode = { + "TrafficConditionSubCauseCode", + "TrafficConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_TrafficConditionSubCauseCode_tags_1, + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_TrafficConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficConditionSubCauseCode_constr_1, &asn_PER_type_TrafficConditionSubCauseCode_constr_1, TrafficConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/TrafficRule.c b/vcits/mapem/src/TrafficRule.c new file mode 100644 index 0000000..19e5ad6 --- /dev/null +++ b/vcits/mapem/src/TrafficRule.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TrafficRule.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficRule_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficRule_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TrafficRule_value2enum_1[] = { + { 0, 9, "noPassing" }, + { 1, 18, "noPassingForTrucks" }, + { 2, 11, "passToRight" }, + { 3, 10, "passToLeft" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TrafficRule_enum2value_1[] = { + 0, /* noPassing(0) */ + 1, /* noPassingForTrucks(1) */ + 3, /* passToLeft(3) */ + 2 /* passToRight(2) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_TrafficRule_specs_1 = { + asn_MAP_TrafficRule_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TrafficRule_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TrafficRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficRule = { + "TrafficRule", + "TrafficRule", + &asn_OP_NativeEnumerated, + asn_DEF_TrafficRule_tags_1, + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + asn_DEF_TrafficRule_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficRule_constr_1, &asn_PER_type_TrafficRule_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TrafficRule_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/TransitVehicleOccupancy.c b/vcits/mapem/src/TransitVehicleOccupancy.c new file mode 100644 index 0000000..f02878f --- /dev/null +++ b/vcits/mapem/src/TransitVehicleOccupancy.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TransitVehicleOccupancy.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransitVehicleOccupancy_value2enum_1[] = { + { 0, 16, "occupancyUnknown" }, + { 1, 14, "occupancyEmpty" }, + { 2, 16, "occupancyVeryLow" }, + { 3, 12, "occupancyLow" }, + { 4, 12, "occupancyMed" }, + { 5, 13, "occupancyHigh" }, + { 6, 19, "occupancyNearlyFull" }, + { 7, 13, "occupancyFull" } +}; +static const unsigned int asn_MAP_TransitVehicleOccupancy_enum2value_1[] = { + 1, /* occupancyEmpty(1) */ + 7, /* occupancyFull(7) */ + 5, /* occupancyHigh(5) */ + 3, /* occupancyLow(3) */ + 4, /* occupancyMed(4) */ + 6, /* occupancyNearlyFull(6) */ + 0, /* occupancyUnknown(0) */ + 2 /* occupancyVeryLow(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1 = { + asn_MAP_TransitVehicleOccupancy_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransitVehicleOccupancy_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleOccupancy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy = { + "TransitVehicleOccupancy", + "TransitVehicleOccupancy", + &asn_OP_NativeEnumerated, + asn_DEF_TransitVehicleOccupancy_tags_1, + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleOccupancy_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + { &asn_OER_type_TransitVehicleOccupancy_constr_1, &asn_PER_type_TransitVehicleOccupancy_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransitVehicleOccupancy_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/TransitVehicleStatus.c b/vcits/mapem/src/TransitVehicleStatus.c new file mode 100644 index 0000000..6a20563 --- /dev/null +++ b/vcits/mapem/src/TransitVehicleStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TransitVehicleStatus.h" + +int +TransitVehicleStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus = { + "TransitVehicleStatus", + "TransitVehicleStatus", + &asn_OP_BIT_STRING, + asn_DEF_TransitVehicleStatus_tags_1, + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_TransitVehicleStatus_constr_1, &asn_PER_type_TransitVehicleStatus_constr_1, TransitVehicleStatus_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/mapem/src/TransmissionAndSpeed.c b/vcits/mapem/src/TransmissionAndSpeed.c new file mode 100644 index 0000000..f36c753 --- /dev/null +++ b/vcits/mapem/src/TransmissionAndSpeed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TransmissionAndSpeed.h" + +asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, transmisson), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transmisson" + }, + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_TransmissionAndSpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TransmissionAndSpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transmisson */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1 = { + sizeof(struct TransmissionAndSpeed), + offsetof(struct TransmissionAndSpeed, _asn_ctx), + asn_MAP_TransmissionAndSpeed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed = { + "TransmissionAndSpeed", + "TransmissionAndSpeed", + &asn_OP_SEQUENCE, + asn_DEF_TransmissionAndSpeed_tags_1, + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + asn_DEF_TransmissionAndSpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TransmissionAndSpeed_1, + 2, /* Elements count */ + &asn_SPC_TransmissionAndSpeed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/TransmissionInterval.c b/vcits/mapem/src/TransmissionInterval.c new file mode 100644 index 0000000..170bc6b --- /dev/null +++ b/vcits/mapem/src/TransmissionInterval.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TransmissionInterval.h" + +int +TransmissionInterval_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..10000) */, + -1}; +static asn_per_constraints_t asn_PER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 10000 } /* (1..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransmissionInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionInterval = { + "TransmissionInterval", + "TransmissionInterval", + &asn_OP_NativeInteger, + asn_DEF_TransmissionInterval_tags_1, + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + asn_DEF_TransmissionInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionInterval_constr_1, &asn_PER_type_TransmissionInterval_constr_1, TransmissionInterval_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/TransmissionState.c b/vcits/mapem/src/TransmissionState.c new file mode 100644 index 0000000..7c8756a --- /dev/null +++ b/vcits/mapem/src/TransmissionState.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TransmissionState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransmissionState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransmissionState_value2enum_1[] = { + { 0, 7, "neutral" }, + { 1, 4, "park" }, + { 2, 12, "forwardGears" }, + { 3, 12, "reverseGears" }, + { 4, 9, "reserved1" }, + { 5, 9, "reserved2" }, + { 6, 9, "reserved3" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_TransmissionState_enum2value_1[] = { + 2, /* forwardGears(2) */ + 0, /* neutral(0) */ + 1, /* park(1) */ + 4, /* reserved1(4) */ + 5, /* reserved2(5) */ + 6, /* reserved3(6) */ + 3, /* reverseGears(3) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1 = { + asn_MAP_TransmissionState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransmissionState_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransmissionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionState = { + "TransmissionState", + "TransmissionState", + &asn_OP_NativeEnumerated, + asn_DEF_TransmissionState_tags_1, + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + asn_DEF_TransmissionState_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionState_constr_1, &asn_PER_type_TransmissionState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransmissionState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/TurningRadius.c b/vcits/mapem/src/TurningRadius.c new file mode 100644 index 0000000..e9a8953 --- /dev/null +++ b/vcits/mapem/src/TurningRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "TurningRadius.h" + +int +TurningRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TurningRadius_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TurningRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TurningRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TurningRadius = { + "TurningRadius", + "TurningRadius", + &asn_OP_NativeInteger, + asn_DEF_TurningRadius_tags_1, + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + asn_DEF_TurningRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_TurningRadius_constr_1, &asn_PER_type_TurningRadius_constr_1, TurningRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/VDS.c b/vcits/mapem/src/VDS.c new file mode 100644 index 0000000..80d8908 --- /dev/null +++ b/vcits/mapem/src/VDS.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "VDS.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +VDS_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 6) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VDS_constr_1 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +asn_per_constraints_t asn_PER_type_VDS_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_VDS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VDS = { + "VDS", + "VDS", + &asn_OP_IA5String, + asn_DEF_VDS_tags_1, + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + asn_DEF_VDS_tags_1, /* Same as above */ + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + { &asn_OER_type_VDS_constr_1, &asn_PER_type_VDS_constr_1, VDS_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/ValidityDuration.c b/vcits/mapem/src/ValidityDuration.c new file mode 100644 index 0000000..b71c558 --- /dev/null +++ b/vcits/mapem/src/ValidityDuration.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ValidityDuration.h" + +int +ValidityDuration_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 86400)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..86400) */, + -1}; +static asn_per_constraints_t asn_PER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 0, 86400 } /* (0..86400) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ValidityDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ValidityDuration = { + "ValidityDuration", + "ValidityDuration", + &asn_OP_NativeInteger, + asn_DEF_ValidityDuration_tags_1, + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + asn_DEF_ValidityDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + { &asn_OER_type_ValidityDuration_constr_1, &asn_PER_type_ValidityDuration_constr_1, ValidityDuration_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/VehicleBreakdownSubCauseCode.c b/vcits/mapem/src/VehicleBreakdownSubCauseCode.c new file mode 100644 index 0000000..332806d --- /dev/null +++ b/vcits/mapem/src/VehicleBreakdownSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "VehicleBreakdownSubCauseCode.h" + +int +VehicleBreakdownSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleBreakdownSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode = { + "VehicleBreakdownSubCauseCode", + "VehicleBreakdownSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleBreakdownSubCauseCode_constr_1, &asn_PER_type_VehicleBreakdownSubCauseCode_constr_1, VehicleBreakdownSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/VehicleHeight.c b/vcits/mapem/src/VehicleHeight.c new file mode 100644 index 0000000..511d437 --- /dev/null +++ b/vcits/mapem/src/VehicleHeight.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "VehicleHeight.h" + +int +VehicleHeight_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleHeight = { + "VehicleHeight", + "VehicleHeight", + &asn_OP_NativeInteger, + asn_DEF_VehicleHeight_tags_1, + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + asn_DEF_VehicleHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleHeight_constr_1, &asn_PER_type_VehicleHeight_constr_1, VehicleHeight_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/VehicleID.c b/vcits/mapem/src/VehicleID.c new file mode 100644 index 0000000..c1a4d77 --- /dev/null +++ b/vcits/mapem/src/VehicleID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "VehicleID.h" + +static asn_oer_constraints_t asn_OER_type_VehicleID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_VehicleID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.entityID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TemporaryID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "entityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.stationID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* entityID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* stationID */ +}; +asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1 = { + sizeof(struct VehicleID), + offsetof(struct VehicleID, _asn_ctx), + offsetof(struct VehicleID, present), + sizeof(((struct VehicleID *)0)->present), + asn_MAP_VehicleID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleID = { + "VehicleID", + "VehicleID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_VehicleID_constr_1, &asn_PER_type_VehicleID_constr_1, CHOICE_constraint }, + asn_MBR_VehicleID_1, + 2, /* Elements count */ + &asn_SPC_VehicleID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/VehicleIdentification.c b/vcits/mapem/src/VehicleIdentification.c new file mode 100644 index 0000000..bbd3bb1 --- /dev/null +++ b/vcits/mapem/src/VehicleIdentification.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "VehicleIdentification.h" + +static asn_TYPE_member_t asn_MBR_VehicleIdentification_1[] = { + { ATF_POINTER, 2, offsetof(struct VehicleIdentification, wMInumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WMInumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wMInumber" + }, + { ATF_POINTER, 1, offsetof(struct VehicleIdentification, vDS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VDS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vDS" + }, +}; +static const int asn_MAP_VehicleIdentification_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_VehicleIdentification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleIdentification_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wMInumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vDS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleIdentification_specs_1 = { + sizeof(struct VehicleIdentification), + offsetof(struct VehicleIdentification, _asn_ctx), + asn_MAP_VehicleIdentification_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_VehicleIdentification_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleIdentification = { + "VehicleIdentification", + "VehicleIdentification", + &asn_OP_SEQUENCE, + asn_DEF_VehicleIdentification_tags_1, + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + asn_DEF_VehicleIdentification_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleIdentification_1, + 2, /* Elements count */ + &asn_SPC_VehicleIdentification_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/VehicleLength.c b/vcits/mapem/src/VehicleLength.c new file mode 100644 index 0000000..444eadd --- /dev/null +++ b/vcits/mapem/src/VehicleLength.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "VehicleLength.h" + +static asn_TYPE_member_t asn_MBR_VehicleLength_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthConfidenceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthConfidenceIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthConfidenceIndication" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleLength_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vehicleLengthConfidenceIndication */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleLength_specs_1 = { + sizeof(struct VehicleLength), + offsetof(struct VehicleLength, _asn_ctx), + asn_MAP_VehicleLength_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_SEQUENCE, + asn_DEF_VehicleLength_tags_1, + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleLength_1, + 2, /* Elements count */ + &asn_SPC_VehicleLength_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/VehicleLengthConfidenceIndication.c b/vcits/mapem/src/VehicleLengthConfidenceIndication.c new file mode 100644 index 0000000..76919ce --- /dev/null +++ b/vcits/mapem/src/VehicleLengthConfidenceIndication.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "VehicleLengthConfidenceIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleLengthConfidenceIndication_value2enum_1[] = { + { 0, 16, "noTrailerPresent" }, + { 1, 29, "trailerPresentWithKnownLength" }, + { 2, 31, "trailerPresentWithUnknownLength" }, + { 3, 24, "trailerPresenceIsUnknown" }, + { 4, 11, "unavailable" } +}; +static const unsigned int asn_MAP_VehicleLengthConfidenceIndication_enum2value_1[] = { + 0, /* noTrailerPresent(0) */ + 3, /* trailerPresenceIsUnknown(3) */ + 1, /* trailerPresentWithKnownLength(1) */ + 2, /* trailerPresentWithUnknownLength(2) */ + 4 /* unavailable(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1 = { + asn_MAP_VehicleLengthConfidenceIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleLengthConfidenceIndication_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthConfidenceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication = { + "VehicleLengthConfidenceIndication", + "VehicleLengthConfidenceIndication", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleLengthConfidenceIndication_tags_1, + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthConfidenceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthConfidenceIndication_constr_1, &asn_PER_type_VehicleLengthConfidenceIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleLengthConfidenceIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/VehicleLengthValue.c b/vcits/mapem/src/VehicleLengthValue.c new file mode 100644 index 0000000..0f0f670 --- /dev/null +++ b/vcits/mapem/src/VehicleLengthValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "VehicleLengthValue.h" + +int +VehicleLengthValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (1..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue = { + "VehicleLengthValue", + "VehicleLengthValue", + &asn_OP_NativeInteger, + asn_DEF_VehicleLengthValue_tags_1, + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthValue_constr_1, &asn_PER_type_VehicleLengthValue_constr_1, VehicleLengthValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/VehicleMass.c b/vcits/mapem/src/VehicleMass.c new file mode 100644 index 0000000..1b9daac --- /dev/null +++ b/vcits/mapem/src/VehicleMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "VehicleMass.h" + +int +VehicleMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1024)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleMass_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1024) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_VehicleMass_tags_1, + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleMass_constr_1, &asn_PER_type_VehicleMass_constr_1, VehicleMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/VehicleRole.c b/vcits/mapem/src/VehicleRole.c new file mode 100644 index 0000000..c2a1e86 --- /dev/null +++ b/vcits/mapem/src/VehicleRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "VehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleRole_value2enum_1[] = { + { 0, 7, "default" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 6, "rescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 11, "agriculture" }, + { 9, 10, "commercial" }, + { 10, 8, "military" }, + { 11, 12, "roadOperator" }, + { 12, 4, "taxi" }, + { 13, 9, "reserved1" }, + { 14, 9, "reserved2" }, + { 15, 9, "reserved3" } +}; +static const unsigned int asn_MAP_VehicleRole_enum2value_1[] = { + 8, /* agriculture(8) */ + 9, /* commercial(9) */ + 3, /* dangerousGoods(3) */ + 0, /* default(0) */ + 6, /* emergency(6) */ + 10, /* military(10) */ + 1, /* publicTransport(1) */ + 5, /* rescue(5) */ + 13, /* reserved1(13) */ + 14, /* reserved2(14) */ + 15, /* reserved3(15) */ + 11, /* roadOperator(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 2, /* specialTransport(2) */ + 12 /* taxi(12) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_VehicleRole_specs_1 = { + asn_MAP_VehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleRole = { + "VehicleRole", + "VehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleRole_tags_1, + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + asn_DEF_VehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleRole_constr_1, &asn_PER_type_VehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/VehicleType.c b/vcits/mapem/src/VehicleType.c new file mode 100644 index 0000000..50c338a --- /dev/null +++ b/vcits/mapem/src/VehicleType.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "VehicleType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 7, "unknown" }, + { 2, 7, "special" }, + { 3, 4, "moto" }, + { 4, 3, "car" }, + { 5, 8, "carOther" }, + { 6, 3, "bus" }, + { 7, 8, "axleCnt2" }, + { 8, 8, "axleCnt3" }, + { 9, 8, "axleCnt4" }, + { 10, 15, "axleCnt4Trailer" }, + { 11, 15, "axleCnt5Trailer" }, + { 12, 15, "axleCnt6Trailer" }, + { 13, 20, "axleCnt5MultiTrailer" }, + { 14, 20, "axleCnt6MultiTrailer" }, + { 15, 20, "axleCnt7MultiTrailer" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_VehicleType_enum2value_1[] = { + 7, /* axleCnt2(7) */ + 8, /* axleCnt3(8) */ + 9, /* axleCnt4(9) */ + 10, /* axleCnt4Trailer(10) */ + 13, /* axleCnt5MultiTrailer(13) */ + 11, /* axleCnt5Trailer(11) */ + 14, /* axleCnt6MultiTrailer(14) */ + 12, /* axleCnt6Trailer(12) */ + 15, /* axleCnt7MultiTrailer(15) */ + 6, /* bus(6) */ + 4, /* car(4) */ + 5, /* carOther(5) */ + 3, /* moto(3) */ + 0, /* none(0) */ + 2, /* special(2) */ + 1 /* unknown(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1 = { + asn_MAP_VehicleType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleType_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 17, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleType = { + "VehicleType", + "VehicleType", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleType_tags_1, + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + asn_DEF_VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleType_constr_1, &asn_PER_type_VehicleType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/VehicleWidth.c b/vcits/mapem/src/VehicleWidth.c new file mode 100644 index 0000000..1063c8c --- /dev/null +++ b/vcits/mapem/src/VehicleWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "VehicleWidth.h" + +int +VehicleWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 62)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..62) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 62 } /* (1..62) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_VehicleWidth_tags_1, + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleWidth_constr_1, &asn_PER_type_VehicleWidth_constr_1, VehicleWidth_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/Velocity.c b/vcits/mapem/src/Velocity.c new file mode 100644 index 0000000..b737232 --- /dev/null +++ b/vcits/mapem/src/Velocity.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "Velocity.h" + +int +Velocity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 8191)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Velocity_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..8191) */, + -1}; +asn_per_constraints_t asn_PER_type_Velocity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 8191 } /* (0..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Velocity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Velocity = { + "Velocity", + "Velocity", + &asn_OP_NativeInteger, + asn_DEF_Velocity_tags_1, + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + asn_DEF_Velocity_tags_1, /* Same as above */ + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + { &asn_OER_type_Velocity_constr_1, &asn_PER_type_Velocity_constr_1, Velocity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/VerticalAcceleration.c b/vcits/mapem/src/VerticalAcceleration.c new file mode 100644 index 0000000..423c88a --- /dev/null +++ b/vcits/mapem/src/VerticalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "VerticalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_VerticalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VerticalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* verticalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* verticalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VerticalAcceleration_specs_1 = { + sizeof(struct VerticalAcceleration), + offsetof(struct VerticalAcceleration, _asn_ctx), + asn_MAP_VerticalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_VerticalAcceleration_tags_1, + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VerticalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_VerticalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/VerticalAccelerationValue.c b/vcits/mapem/src/VerticalAccelerationValue.c new file mode 100644 index 0000000..77d389e --- /dev/null +++ b/vcits/mapem/src/VerticalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "VerticalAccelerationValue.h" + +int +VerticalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VerticalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue = { + "VerticalAccelerationValue", + "VerticalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_VerticalAccelerationValue_tags_1, + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_VerticalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VerticalAccelerationValue_constr_1, &asn_PER_type_VerticalAccelerationValue_constr_1, VerticalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/WMInumber.c b/vcits/mapem/src/WMInumber.c new file mode 100644 index 0000000..59b5f60 --- /dev/null +++ b/vcits/mapem/src/WMInumber.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "WMInumber.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +WMInumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 3) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WMInumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +asn_per_constraints_t asn_PER_type_WMInumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_WMInumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WMInumber = { + "WMInumber", + "WMInumber", + &asn_OP_IA5String, + asn_DEF_WMInumber_tags_1, + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + asn_DEF_WMInumber_tags_1, /* Same as above */ + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + { &asn_OER_type_WMInumber_constr_1, &asn_PER_type_WMInumber_constr_1, WMInumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/WaitOnStopline.c b/vcits/mapem/src/WaitOnStopline.c new file mode 100644 index 0000000..d36dece --- /dev/null +++ b/vcits/mapem/src/WaitOnStopline.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "WaitOnStopline.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_WaitOnStopline_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WaitOnStopline = { + "WaitOnStopline", + "WaitOnStopline", + &asn_OP_BOOLEAN, + asn_DEF_WaitOnStopline_tags_1, + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + asn_DEF_WaitOnStopline_tags_1, /* Same as above */ + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/WheelBaseVehicle.c b/vcits/mapem/src/WheelBaseVehicle.c new file mode 100644 index 0000000..c7a1514 --- /dev/null +++ b/vcits/mapem/src/WheelBaseVehicle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "WheelBaseVehicle.h" + +int +WheelBaseVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WheelBaseVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle = { + "WheelBaseVehicle", + "WheelBaseVehicle", + &asn_OP_NativeInteger, + asn_DEF_WheelBaseVehicle_tags_1, + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + asn_DEF_WheelBaseVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_WheelBaseVehicle_constr_1, &asn_PER_type_WheelBaseVehicle_constr_1, WheelBaseVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/WrongWayDrivingSubCauseCode.c b/vcits/mapem/src/WrongWayDrivingSubCauseCode.c new file mode 100644 index 0000000..3804045 --- /dev/null +++ b/vcits/mapem/src/WrongWayDrivingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "WrongWayDrivingSubCauseCode.h" + +int +WrongWayDrivingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WrongWayDrivingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode = { + "WrongWayDrivingSubCauseCode", + "WrongWayDrivingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_WrongWayDrivingSubCauseCode_constr_1, &asn_PER_type_WrongWayDrivingSubCauseCode_constr_1, WrongWayDrivingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/YawRate.c b/vcits/mapem/src/YawRate.c new file mode 100644 index 0000000..b90f12e --- /dev/null +++ b/vcits/mapem/src/YawRate.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "YawRate.h" + +static asn_TYPE_member_t asn_MBR_YawRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_YawRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yawRateValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* yawRateConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_YawRate_specs_1 = { + sizeof(struct YawRate), + offsetof(struct YawRate, _asn_ctx), + asn_MAP_YawRate_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_YawRate = { + "YawRate", + "YawRate", + &asn_OP_SEQUENCE, + asn_DEF_YawRate_tags_1, + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + asn_DEF_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_YawRate_1, + 2, /* Elements count */ + &asn_SPC_YawRate_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/YawRateConfidence.c b/vcits/mapem/src/YawRateConfidence.c new file mode 100644 index 0000000..64259fa --- /dev/null +++ b/vcits/mapem/src/YawRateConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "YawRateConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_YawRateConfidence_value2enum_1[] = { + { 0, 13, "degSec-000-01" }, + { 1, 13, "degSec-000-05" }, + { 2, 13, "degSec-000-10" }, + { 3, 13, "degSec-001-00" }, + { 4, 13, "degSec-005-00" }, + { 5, 13, "degSec-010-00" }, + { 6, 13, "degSec-100-00" }, + { 7, 10, "outOfRange" }, + { 8, 11, "unavailable" } +}; +static const unsigned int asn_MAP_YawRateConfidence_enum2value_1[] = { + 0, /* degSec-000-01(0) */ + 1, /* degSec-000-05(1) */ + 2, /* degSec-000-10(2) */ + 3, /* degSec-001-00(3) */ + 4, /* degSec-005-00(4) */ + 5, /* degSec-010-00(5) */ + 6, /* degSec-100-00(6) */ + 7, /* outOfRange(7) */ + 8 /* unavailable(8) */ +}; +const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1 = { + asn_MAP_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_YawRateConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 9, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_YawRateConfidence_tags_1, + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateConfidence_constr_1, &asn_PER_type_YawRateConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/mapem/src/YawRateValue.c b/vcits/mapem/src/YawRateValue.c new file mode 100644 index 0000000..1652cb6 --- /dev/null +++ b/vcits/mapem/src/YawRateValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "YawRateValue.h" + +int +YawRateValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32766 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32766..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_YawRateValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32766, 32767 } /* (-32766..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_YawRateValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateValue = { + "YawRateValue", + "YawRateValue", + &asn_OP_NativeInteger, + asn_DEF_YawRateValue_tags_1, + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + asn_DEF_YawRateValue_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateValue_constr_1, &asn_PER_type_YawRateValue_constr_1, YawRateValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/mapem/src/ZoneLength.c b/vcits/mapem/src/ZoneLength.c new file mode 100644 index 0000000..4995e15 --- /dev/null +++ b/vcits/mapem/src/ZoneLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/mapem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=MAPEM` + */ + +#include "ZoneLength.h" + +int +ZoneLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ZoneLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..10000) */, + -1}; +asn_per_constraints_t asn_PER_type_ZoneLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10000 } /* (0..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ZoneLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ZoneLength = { + "ZoneLength", + "ZoneLength", + &asn_OP_NativeInteger, + asn_DEF_ZoneLength_tags_1, + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + asn_DEF_ZoneLength_tags_1, /* Same as above */ + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + { &asn_OER_type_ZoneLength_constr_1, &asn_PER_type_ZoneLength_constr_1, ZoneLength_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/parser/CMakeLists.txt b/vcits/parser/CMakeLists.txt new file mode 100644 index 0000000..13643b8 --- /dev/null +++ b/vcits/parser/CMakeLists.txt @@ -0,0 +1,41 @@ +# This file is auto-generated by command-cxx.sh +cmake_minimum_required(VERSION 3.9) + +message(STATUS "--> Configure build of |-vcits-parser") + + +project(vcits-parser VERSION 0.2 DESCRIPTION "Parser of vc ITS Library") + +add_library(vcits-parser STATIC +src/Decoder.cpp +src/Encoder.cpp +) + +set_target_properties(vcits-parser PROPERTIES +COMPILE_FLAGS "-Wall -Wextra" +LINK_FLAGS "-Wall -Wextra" +) + +set_target_properties(vcits-parser PROPERTIES VERSION ${PROJECT_VERSION}) + +target_include_directories(vcits-parser PRIVATE .) +target_include_directories(vcits-parser PRIVATE ..) #for code readability +target_include_directories(vcits-parser PRIVATE ../asn1c) #for include dependencies + +target_link_libraries(vcits-parser PUBLIC +vcits-asn1c +vcits-cam +vcits-cpm +vcits-denm +vcits-exceptions +vcits-ivim +vcits-mapem +vcits-rtcmem +vcits-spatem +vcits-srem +vcits-ssem +vcits-vccontainer +) + +message(STATUS "--> Configure build of |-vcits-parser - done") + diff --git a/vcits/parser/Decoder.h b/vcits/parser/Decoder.h new file mode 100644 index 0000000..844d446 --- /dev/null +++ b/vcits/parser/Decoder.h @@ -0,0 +1,42 @@ +// +// Created by christophpilz on 19.05.2021. +// +// Description: +// Decoder Wrapper for C++ +// +// Author(s): "Christoph Pilz" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Thispointer.com"] +// License: "BSD 3-Clause" +// Version: "1.0" +// Maintainer: "Christoph Pilz" +// E-Mail: "christoph.pilz@v2c2.at" +// Status = "Production" +// +// Possible Improvements: +// - [] have a decode method without type descriptor -> automatically find out which type of message it is and decode the right one +// - [] refactor C++ style +// + +#ifndef VC_ITS_LIB_DECODER_H +#define VC_ITS_LIB_DECODER_H + +extern "C" { +#include "asn_application.h" +} + +class Decoder { +public: + /// decode an asn1 bitstream to receive a V2X message object + /// \param [in] type_descriptor V2X message type + /// \param [in] buffer V2X message as asn1 bitstream + /// \param [in] buffer_size the number of bytes in the buffer + /// \return [out] the V2X message struct + static void *decode(const asn_TYPE_descriptor_t *type_descriptor, const void *buffer, size_t buffer_size); + +private: + Decoder() {}; +}; + + +#endif //VC_ITS_LIB_DECODER_H diff --git a/vcits/parser/Encoder.h b/vcits/parser/Encoder.h new file mode 100644 index 0000000..a0b0acd --- /dev/null +++ b/vcits/parser/Encoder.h @@ -0,0 +1,49 @@ +// +// Created by christophpilz on 19.05.2021. +// +// Description: +// Decoder Wrapper for C++ +// +// Author(s): "Christoph Pilz" +// Copyright: "Copyright 2023, vehicleCAPTAIN toolbox" +// Credits: ["Thispointer.com"] +// License: "BSD 3-Clause" +// Version: "1.0" +// Maintainer: "Christoph Pilz" +// E-Mail: "christoph.pilz@v2c2.at" +// Status = "Production" +// +// Possible Improvements: +// - [] refactor C++ style +// + +#ifndef VC_ITS_LIB_ENCODER_H +#define VC_ITS_LIB_ENCODER_H + +extern "C" { +#include "asn_application.h" +} + +class Encoder { +public: + /// validate the given V2X message struct against the constraints defined for the message type + /// \param [in] type_descriptor V2X message type + /// \param [in] struct_ptr V2X message struct + /// \return [out] true on success + static bool validate_constraints(asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr); + + /// encode a V2X message struct into an asn1 bitstream + /// \param [in] type_descriptor V2X message type + /// \param [in] constraints V2X message constraints + /// \param [in] struct_ptr V2X message struct + /// \param [out] buffer V2X message as asn1 bitstream + /// \return [out] the number of bytes in the buffer + static ssize_t encode(const asn_TYPE_descriptor_t *type_descriptor, const asn_per_constraints_t *constraints, + const void *struct_ptr, void **buffer); + +private: + Encoder() {}; +}; + + +#endif //VC_ITS_LIB_ENCODER_H diff --git a/vcits/parser/src/Decoder.cpp b/vcits/parser/src/Decoder.cpp new file mode 100644 index 0000000..f9623c7 --- /dev/null +++ b/vcits/parser/src/Decoder.cpp @@ -0,0 +1,23 @@ +// +// Created by christophpilz on 19.05.2021. +// + +#include "Decoder.h" + +#include + +extern "C" { +#include "asn_application.h" +} + +#include "exceptions/V2XLibExceptions.h" + +void *Decoder::decode(const asn_TYPE_descriptor_t *type_descriptor, const void *buffer, size_t buffer_size) { + void *decoded_object = 0; + const asn_dec_rval_t return_value = uper_decode(0, type_descriptor, &decoded_object, buffer, buffer_size, 0, 0); + + if (return_value.code != RC_OK) + throw DecodingException(return_value.consumed); + + return decoded_object; +} \ No newline at end of file diff --git a/vcits/parser/src/Encoder.cpp b/vcits/parser/src/Encoder.cpp new file mode 100644 index 0000000..12bf52a --- /dev/null +++ b/vcits/parser/src/Encoder.cpp @@ -0,0 +1,34 @@ +// +// Created by christophpilz on 19.05.2021. +// + +#include "Encoder.h" + +#include + +extern "C" { +#include "asn_application.h" +} + +#include "exceptions/V2XLibExceptions.h" + +bool Encoder::validate_constraints(asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr) { + char error_buffer[128]; + size_t error_length = sizeof(error_buffer); + const int return_value = asn_check_constraints(type_descriptor, struct_ptr, error_buffer, &error_length); + + if (return_value != 0) + throw ValidateConstraintsException(); + + return (return_value == 0); +} + +ssize_t Encoder::encode(const asn_TYPE_descriptor_t *type_descriptor, const asn_per_constraints_t *constraints, + const void *struct_ptr, void **buffer) { + const ssize_t error_code = uper_encode_to_new_buffer(type_descriptor, constraints, struct_ptr, buffer); + + if (error_code == -1) + throw EncodingException(); + + return error_code; +} \ No newline at end of file diff --git a/vcits/rtcmem/AccelerationConfidence.h b/vcits/rtcmem/AccelerationConfidence.h new file mode 100644 index 0000000..a3c9b71 --- /dev/null +++ b/vcits/rtcmem/AccelerationConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AccelerationConfidence_H_ +#define _AccelerationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationConfidence { + AccelerationConfidence_pointOneMeterPerSecSquared = 1, + AccelerationConfidence_outOfRange = 101, + AccelerationConfidence_unavailable = 102 +} e_AccelerationConfidence; + +/* AccelerationConfidence */ +typedef long AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence; +asn_struct_free_f AccelerationConfidence_free; +asn_struct_print_f AccelerationConfidence_print; +asn_constr_check_f AccelerationConfidence_constraint; +ber_type_decoder_f AccelerationConfidence_decode_ber; +der_type_encoder_f AccelerationConfidence_encode_der; +xer_type_decoder_f AccelerationConfidence_decode_xer; +xer_type_encoder_f AccelerationConfidence_encode_xer; +oer_type_decoder_f AccelerationConfidence_decode_oer; +oer_type_encoder_f AccelerationConfidence_encode_oer; +per_type_decoder_f AccelerationConfidence_decode_uper; +per_type_encoder_f AccelerationConfidence_encode_uper; +per_type_decoder_f AccelerationConfidence_decode_aper; +per_type_encoder_f AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationConfidence_H_ */ +#include diff --git a/vcits/rtcmem/AccelerationControl.h b/vcits/rtcmem/AccelerationControl.h new file mode 100644 index 0000000..61a1978 --- /dev/null +++ b/vcits/rtcmem/AccelerationControl.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AccelerationControl_H_ +#define _AccelerationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationControl { + AccelerationControl_brakePedalEngaged = 0, + AccelerationControl_gasPedalEngaged = 1, + AccelerationControl_emergencyBrakeEngaged = 2, + AccelerationControl_collisionWarningEngaged = 3, + AccelerationControl_accEngaged = 4, + AccelerationControl_cruiseControlEngaged = 5, + AccelerationControl_speedLimiterEngaged = 6 +} e_AccelerationControl; + +/* AccelerationControl */ +typedef BIT_STRING_t AccelerationControl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccelerationControl; +asn_struct_free_f AccelerationControl_free; +asn_struct_print_f AccelerationControl_print; +asn_constr_check_f AccelerationControl_constraint; +ber_type_decoder_f AccelerationControl_decode_ber; +der_type_encoder_f AccelerationControl_encode_der; +xer_type_decoder_f AccelerationControl_decode_xer; +xer_type_encoder_f AccelerationControl_encode_xer; +oer_type_decoder_f AccelerationControl_decode_oer; +oer_type_encoder_f AccelerationControl_encode_oer; +per_type_decoder_f AccelerationControl_decode_uper; +per_type_encoder_f AccelerationControl_encode_uper; +per_type_decoder_f AccelerationControl_decode_aper; +per_type_encoder_f AccelerationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationControl_H_ */ +#include diff --git a/vcits/rtcmem/AccidentSubCauseCode.h b/vcits/rtcmem/AccidentSubCauseCode.h new file mode 100644 index 0000000..131d59e --- /dev/null +++ b/vcits/rtcmem/AccidentSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AccidentSubCauseCode_H_ +#define _AccidentSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccidentSubCauseCode { + AccidentSubCauseCode_unavailable = 0, + AccidentSubCauseCode_multiVehicleAccident = 1, + AccidentSubCauseCode_heavyAccident = 2, + AccidentSubCauseCode_accidentInvolvingLorry = 3, + AccidentSubCauseCode_accidentInvolvingBus = 4, + AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5, + AccidentSubCauseCode_accidentOnOppositeLane = 6, + AccidentSubCauseCode_unsecuredAccident = 7, + AccidentSubCauseCode_assistanceRequested = 8 +} e_AccidentSubCauseCode; + +/* AccidentSubCauseCode */ +typedef long AccidentSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode; +asn_struct_free_f AccidentSubCauseCode_free; +asn_struct_print_f AccidentSubCauseCode_print; +asn_constr_check_f AccidentSubCauseCode_constraint; +ber_type_decoder_f AccidentSubCauseCode_decode_ber; +der_type_encoder_f AccidentSubCauseCode_encode_der; +xer_type_decoder_f AccidentSubCauseCode_decode_xer; +xer_type_encoder_f AccidentSubCauseCode_encode_xer; +oer_type_decoder_f AccidentSubCauseCode_decode_oer; +oer_type_encoder_f AccidentSubCauseCode_encode_oer; +per_type_decoder_f AccidentSubCauseCode_decode_uper; +per_type_encoder_f AccidentSubCauseCode_encode_uper; +per_type_decoder_f AccidentSubCauseCode_decode_aper; +per_type_encoder_f AccidentSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccidentSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/ActionID.h b/vcits/rtcmem/ActionID.h new file mode 100644 index 0000000..e4bffbf --- /dev/null +++ b/vcits/rtcmem/ActionID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ActionID_H_ +#define _ActionID_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "SequenceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ActionID */ +typedef struct ActionID { + StationID_t originatingStationID; + SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ActionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ActionID; + +#ifdef __cplusplus +} +#endif + +#endif /* _ActionID_H_ */ +#include diff --git a/vcits/rtcmem/AdverseWeatherCondition-AdhesionSubCauseCode.h b/vcits/rtcmem/AdverseWeatherCondition-AdhesionSubCauseCode.h new file mode 100644 index 0000000..316a912 --- /dev/null +++ b/vcits/rtcmem/AdverseWeatherCondition-AdhesionSubCauseCode.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AdverseWeatherCondition_AdhesionSubCauseCode_H_ +#define _AdverseWeatherCondition_AdhesionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_AdhesionSubCauseCode { + AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1, + AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2, + AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3, + AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4, + AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5, + AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6, + AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7, + AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8, + AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9, + AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10 +} e_AdverseWeatherCondition_AdhesionSubCauseCode; + +/* AdverseWeatherCondition-AdhesionSubCauseCode */ +typedef long AdverseWeatherCondition_AdhesionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_AdhesionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_AdhesionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_AdhesionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_AdhesionSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h b/vcits/rtcmem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 0000000..fcd0662 --- /dev/null +++ b/vcits/rtcmem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ +#define _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode { + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6 +} e_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; + +/* AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */ +typedef long AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/AdverseWeatherCondition-PrecipitationSubCauseCode.h b/vcits/rtcmem/AdverseWeatherCondition-PrecipitationSubCauseCode.h new file mode 100644 index 0000000..3e4cde6 --- /dev/null +++ b/vcits/rtcmem/AdverseWeatherCondition-PrecipitationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ +#define _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_PrecipitationSubCauseCode { + AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2, + AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3 +} e_AdverseWeatherCondition_PrecipitationSubCauseCode; + +/* AdverseWeatherCondition-PrecipitationSubCauseCode */ +typedef long AdverseWeatherCondition_PrecipitationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_PrecipitationSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_PrecipitationSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_PrecipitationSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/AdverseWeatherCondition-VisibilitySubCauseCode.h b/vcits/rtcmem/AdverseWeatherCondition-VisibilitySubCauseCode.h new file mode 100644 index 0000000..4b892f2 --- /dev/null +++ b/vcits/rtcmem/AdverseWeatherCondition-VisibilitySubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AdverseWeatherCondition_VisibilitySubCauseCode_H_ +#define _AdverseWeatherCondition_VisibilitySubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_VisibilitySubCauseCode { + AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0, + AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1, + AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2, + AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5, + AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6, + AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7, + AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8 +} e_AdverseWeatherCondition_VisibilitySubCauseCode; + +/* AdverseWeatherCondition-VisibilitySubCauseCode */ +typedef long AdverseWeatherCondition_VisibilitySubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode; +asn_struct_free_f AdverseWeatherCondition_VisibilitySubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_VisibilitySubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_VisibilitySubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_VisibilitySubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/AdvisorySpeed.h b/vcits/rtcmem/AdvisorySpeed.h new file mode 100644 index 0000000..ee0e607 --- /dev/null +++ b/vcits/rtcmem/AdvisorySpeed.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AdvisorySpeed_H_ +#define _AdvisorySpeed_H_ + + +#include + +/* Including external dependencies */ +#include "AdvisorySpeedType.h" +#include "SpeedAdvice.h" +#include "SpeedConfidenceDSRC.h" +#include "ZoneLength.h" +#include "RestrictionClassID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_AdvisorySpeed; + +/* AdvisorySpeed */ +typedef struct AdvisorySpeed { + AdvisorySpeedType_t type; + SpeedAdvice_t *speed; /* OPTIONAL */ + SpeedConfidenceDSRC_t *confidence; /* OPTIONAL */ + ZoneLength_t *distance; /* OPTIONAL */ + RestrictionClassID_t *Class; /* OPTIONAL */ + struct AdvisorySpeed__regional { + A_SEQUENCE_OF(struct Reg_AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeed_H_ */ +#include diff --git a/vcits/rtcmem/AdvisorySpeedList.h b/vcits/rtcmem/AdvisorySpeedList.h new file mode 100644 index 0000000..0b80634 --- /dev/null +++ b/vcits/rtcmem/AdvisorySpeedList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AdvisorySpeedList_H_ +#define _AdvisorySpeedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AdvisorySpeed; + +/* AdvisorySpeedList */ +typedef struct AdvisorySpeedList { + A_SEQUENCE_OF(struct AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList; +extern asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[1]; +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedList_H_ */ +#include diff --git a/vcits/rtcmem/AdvisorySpeedType.h b/vcits/rtcmem/AdvisorySpeedType.h new file mode 100644 index 0000000..bba7f0f --- /dev/null +++ b/vcits/rtcmem/AdvisorySpeedType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AdvisorySpeedType_H_ +#define _AdvisorySpeedType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdvisorySpeedType { + AdvisorySpeedType_none = 0, + AdvisorySpeedType_greenwave = 1, + AdvisorySpeedType_ecoDrive = 2, + AdvisorySpeedType_transit = 3 + /* + * Enumeration is extensible + */ +} e_AdvisorySpeedType; + +/* AdvisorySpeedType */ +typedef long AdvisorySpeedType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType; +extern const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1; +asn_struct_free_f AdvisorySpeedType_free; +asn_struct_print_f AdvisorySpeedType_print; +asn_constr_check_f AdvisorySpeedType_constraint; +ber_type_decoder_f AdvisorySpeedType_decode_ber; +der_type_encoder_f AdvisorySpeedType_encode_der; +xer_type_decoder_f AdvisorySpeedType_decode_xer; +xer_type_encoder_f AdvisorySpeedType_encode_xer; +oer_type_decoder_f AdvisorySpeedType_decode_oer; +oer_type_encoder_f AdvisorySpeedType_encode_oer; +per_type_decoder_f AdvisorySpeedType_decode_uper; +per_type_encoder_f AdvisorySpeedType_encode_uper; +per_type_decoder_f AdvisorySpeedType_decode_aper; +per_type_encoder_f AdvisorySpeedType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedType_H_ */ +#include diff --git a/vcits/rtcmem/AllowedManeuvers.h b/vcits/rtcmem/AllowedManeuvers.h new file mode 100644 index 0000000..3837697 --- /dev/null +++ b/vcits/rtcmem/AllowedManeuvers.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AllowedManeuvers_H_ +#define _AllowedManeuvers_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AllowedManeuvers { + AllowedManeuvers_maneuverStraightAllowed = 0, + AllowedManeuvers_maneuverLeftAllowed = 1, + AllowedManeuvers_maneuverRightAllowed = 2, + AllowedManeuvers_maneuverUTurnAllowed = 3, + AllowedManeuvers_maneuverLeftTurnOnRedAllowed = 4, + AllowedManeuvers_maneuverRightTurnOnRedAllowed = 5, + AllowedManeuvers_maneuverLaneChangeAllowed = 6, + AllowedManeuvers_maneuverNoStoppingAllowed = 7, + AllowedManeuvers_yieldAllwaysRequired = 8, + AllowedManeuvers_goWithHalt = 9, + AllowedManeuvers_caution = 10, + AllowedManeuvers_reserved1 = 11 +} e_AllowedManeuvers; + +/* AllowedManeuvers */ +typedef BIT_STRING_t AllowedManeuvers_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers; +asn_struct_free_f AllowedManeuvers_free; +asn_struct_print_f AllowedManeuvers_print; +asn_constr_check_f AllowedManeuvers_constraint; +ber_type_decoder_f AllowedManeuvers_decode_ber; +der_type_encoder_f AllowedManeuvers_encode_der; +xer_type_decoder_f AllowedManeuvers_decode_xer; +xer_type_encoder_f AllowedManeuvers_encode_xer; +oer_type_decoder_f AllowedManeuvers_decode_oer; +oer_type_encoder_f AllowedManeuvers_encode_oer; +per_type_decoder_f AllowedManeuvers_decode_uper; +per_type_encoder_f AllowedManeuvers_encode_uper; +per_type_decoder_f AllowedManeuvers_decode_aper; +per_type_encoder_f AllowedManeuvers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AllowedManeuvers_H_ */ +#include diff --git a/vcits/rtcmem/AlphabetIndicator.h b/vcits/rtcmem/AlphabetIndicator.h new file mode 100644 index 0000000..cf83518 --- /dev/null +++ b/vcits/rtcmem/AlphabetIndicator.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AlphabetIndicator_H_ +#define _AlphabetIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AlphabetIndicator { + AlphabetIndicator_latinAlphabetNo1 = 0, + AlphabetIndicator_latinAlphabetNo2 = 1, + AlphabetIndicator_latinAlphabetNo3 = 2, + AlphabetIndicator_latinAlphabetNo4 = 3, + AlphabetIndicator_latinCyrillicAlphabet = 4, + AlphabetIndicator_latinArabicAlphabet = 5, + AlphabetIndicator_latinGreekAlphabet = 6, + AlphabetIndicator_latinHebrewAlphabet = 7, + AlphabetIndicator_latinAlphabetNo5 = 8, + AlphabetIndicator_latinAlphabetNo6 = 9, + AlphabetIndicator_twoOctetBMP = 10, + AlphabetIndicator_fourOctetCanonical = 11 +} e_AlphabetIndicator; + +/* AlphabetIndicator */ +typedef long AlphabetIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AlphabetIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AlphabetIndicator; +asn_struct_free_f AlphabetIndicator_free; +asn_struct_print_f AlphabetIndicator_print; +asn_constr_check_f AlphabetIndicator_constraint; +ber_type_decoder_f AlphabetIndicator_decode_ber; +der_type_encoder_f AlphabetIndicator_encode_der; +xer_type_decoder_f AlphabetIndicator_decode_xer; +xer_type_encoder_f AlphabetIndicator_encode_xer; +oer_type_decoder_f AlphabetIndicator_decode_oer; +oer_type_encoder_f AlphabetIndicator_encode_oer; +per_type_decoder_f AlphabetIndicator_decode_uper; +per_type_encoder_f AlphabetIndicator_encode_uper; +per_type_decoder_f AlphabetIndicator_decode_aper; +per_type_encoder_f AlphabetIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AlphabetIndicator_H_ */ +#include diff --git a/vcits/rtcmem/Altitude.h b/vcits/rtcmem/Altitude.h new file mode 100644 index 0000000..e5e0a2a --- /dev/null +++ b/vcits/rtcmem/Altitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Altitude_H_ +#define _Altitude_H_ + + +#include + +/* Including external dependencies */ +#include "AltitudeValue.h" +#include "AltitudeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Altitude */ +typedef struct Altitude { + AltitudeValue_t altitudeValue; + AltitudeConfidence_t altitudeConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Altitude_H_ */ +#include diff --git a/vcits/rtcmem/AltitudeConfidence.h b/vcits/rtcmem/AltitudeConfidence.h new file mode 100644 index 0000000..665312c --- /dev/null +++ b/vcits/rtcmem/AltitudeConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AltitudeConfidence_H_ +#define _AltitudeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeConfidence { + AltitudeConfidence_alt_000_01 = 0, + AltitudeConfidence_alt_000_02 = 1, + AltitudeConfidence_alt_000_05 = 2, + AltitudeConfidence_alt_000_10 = 3, + AltitudeConfidence_alt_000_20 = 4, + AltitudeConfidence_alt_000_50 = 5, + AltitudeConfidence_alt_001_00 = 6, + AltitudeConfidence_alt_002_00 = 7, + AltitudeConfidence_alt_005_00 = 8, + AltitudeConfidence_alt_010_00 = 9, + AltitudeConfidence_alt_020_00 = 10, + AltitudeConfidence_alt_050_00 = 11, + AltitudeConfidence_alt_100_00 = 12, + AltitudeConfidence_alt_200_00 = 13, + AltitudeConfidence_outOfRange = 14, + AltitudeConfidence_unavailable = 15 +} e_AltitudeConfidence; + +/* AltitudeConfidence */ +typedef long AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1; +asn_struct_free_f AltitudeConfidence_free; +asn_struct_print_f AltitudeConfidence_print; +asn_constr_check_f AltitudeConfidence_constraint; +ber_type_decoder_f AltitudeConfidence_decode_ber; +der_type_encoder_f AltitudeConfidence_encode_der; +xer_type_decoder_f AltitudeConfidence_decode_xer; +xer_type_encoder_f AltitudeConfidence_encode_xer; +oer_type_decoder_f AltitudeConfidence_decode_oer; +oer_type_encoder_f AltitudeConfidence_encode_oer; +per_type_decoder_f AltitudeConfidence_decode_uper; +per_type_encoder_f AltitudeConfidence_encode_uper; +per_type_decoder_f AltitudeConfidence_decode_aper; +per_type_encoder_f AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeConfidence_H_ */ +#include diff --git a/vcits/rtcmem/AltitudeValue.h b/vcits/rtcmem/AltitudeValue.h new file mode 100644 index 0000000..318be73 --- /dev/null +++ b/vcits/rtcmem/AltitudeValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AltitudeValue_H_ +#define _AltitudeValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeValue { + AltitudeValue_referenceEllipsoidSurface = 0, + AltitudeValue_oneCentimeter = 1, + AltitudeValue_unavailable = 800001 +} e_AltitudeValue; + +/* AltitudeValue */ +typedef long AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeValue; +asn_struct_free_f AltitudeValue_free; +asn_struct_print_f AltitudeValue_print; +asn_constr_check_f AltitudeValue_constraint; +ber_type_decoder_f AltitudeValue_decode_ber; +der_type_encoder_f AltitudeValue_encode_der; +xer_type_decoder_f AltitudeValue_decode_xer; +xer_type_encoder_f AltitudeValue_encode_xer; +oer_type_decoder_f AltitudeValue_decode_oer; +oer_type_encoder_f AltitudeValue_encode_oer; +per_type_decoder_f AltitudeValue_decode_uper; +per_type_encoder_f AltitudeValue_encode_uper; +per_type_decoder_f AltitudeValue_decode_aper; +per_type_encoder_f AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeValue_H_ */ +#include diff --git a/vcits/rtcmem/Angle.h b/vcits/rtcmem/Angle.h new file mode 100644 index 0000000..b67851a --- /dev/null +++ b/vcits/rtcmem/Angle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Angle_H_ +#define _Angle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Angle */ +typedef long Angle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Angle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Angle; +asn_struct_free_f Angle_free; +asn_struct_print_f Angle_print; +asn_constr_check_f Angle_constraint; +ber_type_decoder_f Angle_decode_ber; +der_type_encoder_f Angle_encode_der; +xer_type_decoder_f Angle_decode_xer; +xer_type_encoder_f Angle_encode_xer; +oer_type_decoder_f Angle_decode_oer; +oer_type_encoder_f Angle_encode_oer; +per_type_decoder_f Angle_decode_uper; +per_type_encoder_f Angle_encode_uper; +per_type_decoder_f Angle_decode_aper; +per_type_encoder_f Angle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Angle_H_ */ +#include diff --git a/vcits/rtcmem/AntennaOffsetSet.h b/vcits/rtcmem/AntennaOffsetSet.h new file mode 100644 index 0000000..d94d45b --- /dev/null +++ b/vcits/rtcmem/AntennaOffsetSet.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AntennaOffsetSet_H_ +#define _AntennaOffsetSet_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B12.h" +#include "Offset-B09.h" +#include "Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AntennaOffsetSet */ +typedef struct AntennaOffsetSet { + Offset_B12_t antOffsetX; + Offset_B09_t antOffsetY; + Offset_B10_t antOffsetZ; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AntennaOffsetSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet; +extern asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1; +extern asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AntennaOffsetSet_H_ */ +#include diff --git a/vcits/rtcmem/ApproachID.h b/vcits/rtcmem/ApproachID.h new file mode 100644 index 0000000..4760194 --- /dev/null +++ b/vcits/rtcmem/ApproachID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ApproachID_H_ +#define _ApproachID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ApproachID */ +typedef long ApproachID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ApproachID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ApproachID; +asn_struct_free_f ApproachID_free; +asn_struct_print_f ApproachID_print; +asn_constr_check_f ApproachID_constraint; +ber_type_decoder_f ApproachID_decode_ber; +der_type_encoder_f ApproachID_encode_der; +xer_type_decoder_f ApproachID_decode_xer; +xer_type_encoder_f ApproachID_encode_xer; +oer_type_decoder_f ApproachID_decode_oer; +oer_type_encoder_f ApproachID_encode_oer; +per_type_decoder_f ApproachID_decode_uper; +per_type_encoder_f ApproachID_encode_uper; +per_type_decoder_f ApproachID_decode_aper; +per_type_encoder_f ApproachID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ApproachID_H_ */ +#include diff --git a/vcits/rtcmem/AviEriDateTime.h b/vcits/rtcmem/AviEriDateTime.h new file mode 100644 index 0000000..709bf3f --- /dev/null +++ b/vcits/rtcmem/AviEriDateTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _AviEriDateTime_H_ +#define _AviEriDateTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AviEriDateTime */ +typedef OCTET_STRING_t AviEriDateTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AviEriDateTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AviEriDateTime; +asn_struct_free_f AviEriDateTime_free; +asn_struct_print_f AviEriDateTime_print; +asn_constr_check_f AviEriDateTime_constraint; +ber_type_decoder_f AviEriDateTime_decode_ber; +der_type_encoder_f AviEriDateTime_encode_der; +xer_type_decoder_f AviEriDateTime_decode_xer; +xer_type_encoder_f AviEriDateTime_encode_xer; +oer_type_decoder_f AviEriDateTime_decode_oer; +oer_type_encoder_f AviEriDateTime_encode_oer; +per_type_decoder_f AviEriDateTime_decode_uper; +per_type_encoder_f AviEriDateTime_encode_uper; +per_type_decoder_f AviEriDateTime_decode_aper; +per_type_encoder_f AviEriDateTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AviEriDateTime_H_ */ +#include diff --git a/vcits/rtcmem/BasicVehicleRole.h b/vcits/rtcmem/BasicVehicleRole.h new file mode 100644 index 0000000..c729bc3 --- /dev/null +++ b/vcits/rtcmem/BasicVehicleRole.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _BasicVehicleRole_H_ +#define _BasicVehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BasicVehicleRole { + BasicVehicleRole_basicVehicle = 0, + BasicVehicleRole_publicTransport = 1, + BasicVehicleRole_specialTransport = 2, + BasicVehicleRole_dangerousGoods = 3, + BasicVehicleRole_roadWork = 4, + BasicVehicleRole_roadRescue = 5, + BasicVehicleRole_emergency = 6, + BasicVehicleRole_safetyCar = 7, + BasicVehicleRole_none_unknown = 8, + BasicVehicleRole_truck = 9, + BasicVehicleRole_motorcycle = 10, + BasicVehicleRole_roadSideSource = 11, + BasicVehicleRole_police = 12, + BasicVehicleRole_fire = 13, + BasicVehicleRole_ambulance = 14, + BasicVehicleRole_dot = 15, + BasicVehicleRole_transit = 16, + BasicVehicleRole_slowMoving = 17, + BasicVehicleRole_stopNgo = 18, + BasicVehicleRole_cyclist = 19, + BasicVehicleRole_pedestrian = 20, + BasicVehicleRole_nonMotorized = 21, + BasicVehicleRole_military = 22 + /* + * Enumeration is extensible + */ +} e_BasicVehicleRole; + +/* BasicVehicleRole */ +typedef long BasicVehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1; +asn_struct_free_f BasicVehicleRole_free; +asn_struct_print_f BasicVehicleRole_print; +asn_constr_check_f BasicVehicleRole_constraint; +ber_type_decoder_f BasicVehicleRole_decode_ber; +der_type_encoder_f BasicVehicleRole_encode_der; +xer_type_decoder_f BasicVehicleRole_decode_xer; +xer_type_encoder_f BasicVehicleRole_encode_xer; +oer_type_decoder_f BasicVehicleRole_decode_oer; +oer_type_encoder_f BasicVehicleRole_encode_oer; +per_type_decoder_f BasicVehicleRole_decode_uper; +per_type_encoder_f BasicVehicleRole_encode_uper; +per_type_decoder_f BasicVehicleRole_decode_aper; +per_type_encoder_f BasicVehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicVehicleRole_H_ */ +#include diff --git a/vcits/rtcmem/BatteryStatus.h b/vcits/rtcmem/BatteryStatus.h new file mode 100644 index 0000000..c88fa12 --- /dev/null +++ b/vcits/rtcmem/BatteryStatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _BatteryStatus_H_ +#define _BatteryStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BatteryStatus { + BatteryStatus_unknown = 0, + BatteryStatus_critical = 1, + BatteryStatus_low = 2, + BatteryStatus_good = 3 + /* + * Enumeration is extensible + */ +} e_BatteryStatus; + +/* BatteryStatus */ +typedef long BatteryStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BatteryStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BatteryStatus; +extern const asn_INTEGER_specifics_t asn_SPC_BatteryStatus_specs_1; +asn_struct_free_f BatteryStatus_free; +asn_struct_print_f BatteryStatus_print; +asn_constr_check_f BatteryStatus_constraint; +ber_type_decoder_f BatteryStatus_decode_ber; +der_type_encoder_f BatteryStatus_encode_der; +xer_type_decoder_f BatteryStatus_decode_xer; +xer_type_encoder_f BatteryStatus_encode_xer; +oer_type_decoder_f BatteryStatus_decode_oer; +oer_type_encoder_f BatteryStatus_encode_oer; +per_type_decoder_f BatteryStatus_decode_uper; +per_type_encoder_f BatteryStatus_encode_uper; +per_type_decoder_f BatteryStatus_decode_aper; +per_type_encoder_f BatteryStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BatteryStatus_H_ */ +#include diff --git a/vcits/rtcmem/CMakeLists.txt b/vcits/rtcmem/CMakeLists.txt new file mode 100644 index 0000000..7eeb357 --- /dev/null +++ b/vcits/rtcmem/CMakeLists.txt @@ -0,0 +1,380 @@ +# This file is auto-generated by command-cxx.sh +cmake_minimum_required(VERSION 3.9) + +message(STATUS "--> Configure build of |-vcits-rtcmem") + +project(vcits-rtcmem VERSION 0.2 DESCRIPTION "rtcmem part of vcits") + +add_library(vcits-rtcmem STATIC +src/AccelerationConfidence.c +src/AccelerationControl.c +src/AccidentSubCauseCode.c +src/ActionID.c +src/AdverseWeatherCondition-AdhesionSubCauseCode.c +src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c +src/AdverseWeatherCondition-PrecipitationSubCauseCode.c +src/AdverseWeatherCondition-VisibilitySubCauseCode.c +src/AdvisorySpeed.c +src/AdvisorySpeedList.c +src/AdvisorySpeedType.c +src/AllowedManeuvers.c +src/AlphabetIndicator.c +src/Altitude.c +src/AltitudeConfidence.c +src/AltitudeValue.c +src/Angle.c +src/AntennaOffsetSet.c +src/ApproachID.c +src/AviEriDateTime.c +src/BasicVehicleRole.c +src/BatteryStatus.c +src/CS1.c +src/CS2.c +src/CS3.c +src/CS4.c +src/CS5.c +src/CS7.c +src/CS8.c +src/CauseCode.c +src/CauseCodeType.c +src/CenDsrcTollingZone.c +src/CenDsrcTollingZoneID.c +src/ClosedLanes.c +src/CollisionRiskSubCauseCode.c +src/ComputedLane.c +src/ConnectingLane.c +src/Connection.c +src/ConnectionManeuverAssist-addGrpC.c +src/ConnectionManeuverAssist.c +src/ConnectionTrajectory-addGrpC.c +src/ConnectsToList.c +src/CountryCode.c +src/Curvature.c +src/CurvatureCalculationMode.c +src/CurvatureConfidence.c +src/CurvatureValue.c +src/DDateTime.c +src/DDay.c +src/DHour.c +src/DMinute.c +src/DMonth.c +src/DOffset.c +src/DSRCmsgID.c +src/DSecond.c +src/DYear.c +src/DangerousEndOfQueueSubCauseCode.c +src/DangerousGoodsBasic.c +src/DangerousGoodsExtended.c +src/DangerousSituationSubCauseCode.c +src/DataParameters.c +src/DeltaAltitude.c +src/DeltaAngle.c +src/DeltaLatitude.c +src/DeltaLongitude.c +src/DeltaReferencePosition.c +src/DeltaTime.c +src/DescriptiveName.c +src/DigitalMap.c +src/DriveDirection.c +src/DrivenLineOffsetLg.c +src/DrivenLineOffsetSm.c +src/DrivingLaneStatus.c +src/Elevation.c +src/ElevationConfidence.c +src/EmbarkationStatus.c +src/EmergencyPriority.c +src/EmergencyVehicleApproachingSubCauseCode.c +src/EmissionType.c +src/EnabledLaneList.c +src/EnergyStorageType.c +src/EuVehicleCategoryCode.c +src/EuVehicleCategoryL.c +src/EuVehicleCategoryM.c +src/EuVehicleCategoryN.c +src/EuVehicleCategoryO.c +src/EventHistory.c +src/EventPoint.c +src/ExceptionalCondition.c +src/ExteriorLights.c +src/FreightContainerData.c +src/FuelType.c +src/FullPositionVector.c +src/GNSSstatus.c +src/GenericLane.c +src/GeoGraphicalLimit.c +src/HardShoulderStatus.c +src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c +src/HazardousLocation-DangerousCurveSubCauseCode.c +src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c +src/HazardousLocation-SurfaceConditionSubCauseCode.c +src/Heading.c +src/HeadingConfidence.c +src/HeadingConfidenceDSRC.c +src/HeadingDSRC.c +src/HeadingValue.c +src/HeightLonCarr.c +src/HumanPresenceOnTheRoadSubCauseCode.c +src/HumanProblemSubCauseCode.c +src/InformationQuality.c +src/IntersectionAccessPoint.c +src/IntersectionGeometry.c +src/IntersectionGeometryList.c +src/IntersectionID.c +src/IntersectionReferenceID.c +src/IntersectionState-addGrpC.c +src/IntersectionState.c +src/IntersectionStateList.c +src/IntersectionStatusObject.c +src/Iso3833VehicleType.c +src/IssuerIdentifier.c +src/ItineraryPath.c +src/ItsPduHeader.c +src/ItsStationPosition.c +src/ItsStationPositionList.c +src/LaneAttributes-Barrier.c +src/LaneAttributes-Bike.c +src/LaneAttributes-Crosswalk.c +src/LaneAttributes-Parking.c +src/LaneAttributes-Sidewalk.c +src/LaneAttributes-Striping.c +src/LaneAttributes-TrackedVehicle.c +src/LaneAttributes-Vehicle.c +src/LaneAttributes-addGrpC.c +src/LaneAttributes.c +src/LaneConnectionID.c +src/LaneDataAttribute.c +src/LaneDataAttributeList.c +src/LaneDirection.c +src/LaneID.c +src/LaneList.c +src/LanePosition.c +src/LaneSharing.c +src/LaneTypeAttributes.c +src/LaneWidth.c +src/LateralAcceleration.c +src/LateralAccelerationValue.c +src/Latitude.c +src/LayerID.c +src/LayerType.c +src/LicPlateNumber.c +src/LightBarSirenInUse.c +src/Longitude.c +src/LongitudinalAcceleration.c +src/LongitudinalAccelerationValue.c +src/ManeuverAssistList.c +src/ManufacturerIdentifier.c +src/MapData-addGrpC.c +src/MapData.c +src/MergeDivergeNodeAngle.c +src/MinuteOfTheYear.c +src/MovementEvent-addGrpC.c +src/MovementEvent.c +src/MovementEventList.c +src/MovementList.c +src/MovementPhaseState.c +src/MovementState.c +src/MsgCount.c +src/Node-LLmD-64b.c +src/Node-XY-20b.c +src/Node-XY-22b.c +src/Node-XY-24b.c +src/Node-XY-26b.c +src/Node-XY-28b.c +src/Node-XY-32b.c +src/Node.c +src/NodeAttributeSet-addGrpC.c +src/NodeAttributeSetXY.c +src/NodeAttributeXY.c +src/NodeAttributeXYList.c +src/NodeLink.c +src/NodeListXY.c +src/NodeOffsetPointXY.c +src/NodeSetXY.c +src/NodeXY.c +src/NumberOfOccupants.c +src/Offset-B09.c +src/Offset-B10.c +src/Offset-B11.c +src/Offset-B12.c +src/Offset-B13.c +src/Offset-B14.c +src/Offset-B16.c +src/OpeningDaysHours.c +src/OverlayLaneList.c +src/PathDeltaTime.c +src/PathHistory.c +src/PathPoint.c +src/PedestrianBicycleDetect.c +src/PerformanceClass.c +src/PhoneNumber.c +src/PosCentMass.c +src/PosConfidenceEllipse.c +src/PosFrontAx.c +src/PosLonCarr.c +src/PosPillar.c +src/Position3D-addGrpC.c +src/Position3D.c +src/PositionConfidence.c +src/PositionConfidenceSet.c +src/PositionOfOccupants.c +src/PositionOfPillars.c +src/PositionalAccuracy.c +src/PositioningSolutionType.c +src/PostCrashSubCauseCode.c +src/PreemptPriorityList.c +src/PrioritizationResponse.c +src/PrioritizationResponseList.c +src/PrioritizationResponseStatus.c +src/PriorityRequestType.c +src/ProtectedCommunicationZone.c +src/ProtectedCommunicationZonesRSU.c +src/ProtectedZoneID.c +src/ProtectedZoneRadius.c +src/ProtectedZoneType.c +src/PtActivation.c +src/PtActivationData.c +src/PtActivationType.c +src/PtvRequestType.c +src/RTCM-Revision.c +src/RTCMEM.c +src/RTCMcorrections.c +src/RTCMheader.c +src/RTCMmessage.c +src/RTCMmessageList.c +src/ReferencePosition.c +src/RegionId.c +src/RegionalExtension.c +src/RegulatorySpeedLimit.c +src/RejectedReason.c +src/RelevanceDistance.c +src/RelevanceTrafficDirection.c +src/RequestID.c +src/RequestImportanceLevel.c +src/RequestResponseIndication.c +src/RequestSubRole.c +src/RequestorDescription-addGrpC.c +src/RequestorDescription.c +src/RequestorPositionVector.c +src/RequestorType.c +src/RescueAndRecoveryWorkInProgressSubCauseCode.c +src/RestrictedTypes.c +src/RestrictionAppliesTo.c +src/RestrictionClassAssignment.c +src/RestrictionClassID.c +src/RestrictionClassList.c +src/RestrictionUserType-addGrpC.c +src/RestrictionUserType.c +src/RestrictionUserTypeList.c +src/RoadLaneSetList.c +src/RoadRegulatorID.c +src/RoadSegment.c +src/RoadSegmentID.c +src/RoadSegmentList.c +src/RoadSegmentReferenceID.c +src/RoadType.c +src/RoadwayCrownAngle.c +src/RoadworksSubCauseCode.c +src/SPAT.c +src/Scale-B12.c +src/SegmentAttributeXY.c +src/SegmentAttributeXYList.c +src/SemiAxisLength.c +src/SemiMajorAxisAccuracy.c +src/SemiMajorAxisOrientation.c +src/SemiMinorAxisAccuracy.c +src/SequenceNumber.c +src/ServiceApplicationLimit.c +src/ServiceNumber.c +src/SignalControlZone.c +src/SignalGroupID.c +src/SignalHeadLocation.c +src/SignalHeadLocationList.c +src/SignalRequest.c +src/SignalRequestList.c +src/SignalRequestMessage.c +src/SignalRequestPackage.c +src/SignalRequesterInfo.c +src/SignalStatus.c +src/SignalStatusList.c +src/SignalStatusMessage.c +src/SignalStatusPackage-addGrpC.c +src/SignalStatusPackage.c +src/SignalStatusPackageList.c +src/SignalViolationSubCauseCode.c +src/SlowVehicleSubCauseCode.c +src/SpecialTransportType.c +src/Speed.c +src/SpeedAdvice.c +src/SpeedConfidence.c +src/SpeedConfidenceDSRC.c +src/SpeedLimit.c +src/SpeedLimitList.c +src/SpeedLimitType.c +src/SpeedValue.c +src/SpeedandHeadingandThrottleConfidence.c +src/StartTime.c +src/StationID.c +src/StationType.c +src/StationarySince.c +src/StationaryVehicleSubCauseCode.c +src/SteeringWheelAngle.c +src/SteeringWheelAngleConfidence.c +src/SteeringWheelAngleValue.c +src/StopTime.c +src/SubCauseCodeType.c +src/TaxCode.c +src/Temperature.c +src/TemporaryID.c +src/ThrottleConfidence.c +src/TimeChangeDetails.c +src/TimeConfidence.c +src/TimeIntervalConfidence.c +src/TimeMark.c +src/TimeReference.c +src/TimestampIts.c +src/Traces.c +src/TrafficConditionSubCauseCode.c +src/TrafficRule.c +src/TransitVehicleOccupancy.c +src/TransitVehicleStatus.c +src/TransmissionAndSpeed.c +src/TransmissionInterval.c +src/TransmissionState.c +src/TurningRadius.c +src/VDS.c +src/ValidityDuration.c +src/VehicleBreakdownSubCauseCode.c +src/VehicleHeight.c +src/VehicleID.c +src/VehicleIdentification.c +src/VehicleLength.c +src/VehicleLengthConfidenceIndication.c +src/VehicleLengthValue.c +src/VehicleMass.c +src/VehicleRole.c +src/VehicleType.c +src/VehicleWidth.c +src/Velocity.c +src/VerticalAcceleration.c +src/VerticalAccelerationValue.c +src/WMInumber.c +src/WaitOnStopline.c +src/WheelBaseVehicle.c +src/WrongWayDrivingSubCauseCode.c +src/YawRate.c +src/YawRateConfidence.c +src/YawRateValue.c +src/ZoneLength.c +) + +set_target_properties(vcits-rtcmem PROPERTIES VERSION ${PROJECT_VERSION}) + +target_include_directories(vcits-rtcmem PRIVATE .) +target_include_directories(vcits-rtcmem PRIVATE ../asn1c) + +target_link_libraries(vcits-rtcmem PUBLIC +vcits-asn1c +) + +message(STATUS "--> Configure build of |-vcits-rtcmem - done") + diff --git a/vcits/rtcmem/CS1.h b/vcits/rtcmem/CS1.h new file mode 100644 index 0000000..9ae051f --- /dev/null +++ b/vcits/rtcmem/CS1.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CS1_H_ +#define _CS1_H_ + + +#include + +/* Including external dependencies */ +#include "CountryCode.h" +#include "IssuerIdentifier.h" +#include "ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS1 */ +typedef struct CS1 { + CountryCode_t countryCode; + IssuerIdentifier_t issuerIdentifier; + ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS1_H_ */ +#include diff --git a/vcits/rtcmem/CS2.h b/vcits/rtcmem/CS2.h new file mode 100644 index 0000000..81d633b --- /dev/null +++ b/vcits/rtcmem/CS2.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CS2_H_ +#define _CS2_H_ + + +#include + +/* Including external dependencies */ +#include "ManufacturerIdentifier.h" +#include "ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS2 */ +typedef struct CS2 { + ManufacturerIdentifier_t manufacturerIdentifier; + ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS2; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS2_H_ */ +#include diff --git a/vcits/rtcmem/CS3.h b/vcits/rtcmem/CS3.h new file mode 100644 index 0000000..0bbea69 --- /dev/null +++ b/vcits/rtcmem/CS3.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CS3_H_ +#define _CS3_H_ + + +#include + +/* Including external dependencies */ +#include "StartTime.h" +#include "StopTime.h" +#include "GeoGraphicalLimit.h" +#include "ServiceApplicationLimit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS3 */ +typedef struct CS3 { + StartTime_t startTime; + StopTime_t stopTime; + GeoGraphicalLimit_t geographLimit; + ServiceApplicationLimit_t serviceAppLimit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS3; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS3_H_ */ +#include diff --git a/vcits/rtcmem/CS4.h b/vcits/rtcmem/CS4.h new file mode 100644 index 0000000..90ed0c0 --- /dev/null +++ b/vcits/rtcmem/CS4.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CS4_H_ +#define _CS4_H_ + + +#include + +/* Including external dependencies */ +#include "CountryCode.h" +#include "AlphabetIndicator.h" +#include "LicPlateNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS4 */ +typedef struct CS4 { + CountryCode_t countryCode; + AlphabetIndicator_t alphabetIndicator; + LicPlateNumber_t licPlateNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS4_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS4; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS4_H_ */ +#include diff --git a/vcits/rtcmem/CS5.h b/vcits/rtcmem/CS5.h new file mode 100644 index 0000000..3a9ca01 --- /dev/null +++ b/vcits/rtcmem/CS5.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CS5_H_ +#define _CS5_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS5 */ +typedef struct CS5 { + VisibleString_t vin; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS5_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS5; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS5_H_ */ +#include diff --git a/vcits/rtcmem/CS7.h b/vcits/rtcmem/CS7.h new file mode 100644 index 0000000..70eb88d --- /dev/null +++ b/vcits/rtcmem/CS7.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CS7_H_ +#define _CS7_H_ + + +#include + +/* Including external dependencies */ +#include "FreightContainerData.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS7 */ +typedef FreightContainerData_t CS7_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS7; +asn_struct_free_f CS7_free; +asn_struct_print_f CS7_print; +asn_constr_check_f CS7_constraint; +ber_type_decoder_f CS7_decode_ber; +der_type_encoder_f CS7_encode_der; +xer_type_decoder_f CS7_decode_xer; +xer_type_encoder_f CS7_encode_xer; +oer_type_decoder_f CS7_decode_oer; +oer_type_encoder_f CS7_encode_oer; +per_type_decoder_f CS7_decode_uper; +per_type_encoder_f CS7_encode_uper; +per_type_decoder_f CS7_decode_aper; +per_type_encoder_f CS7_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS7_H_ */ +#include diff --git a/vcits/rtcmem/CS8.h b/vcits/rtcmem/CS8.h new file mode 100644 index 0000000..047d8be --- /dev/null +++ b/vcits/rtcmem/CS8.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CS8_H_ +#define _CS8_H_ + + +#include + +/* Including external dependencies */ +#include +#include "CountryCode.h" +#include "TaxCode.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS8 */ +typedef struct CS8 { + BIT_STRING_t fill; + CountryCode_t countryCode; + TaxCode_t taxCode; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS8_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS8; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS8_H_ */ +#include diff --git a/vcits/rtcmem/CauseCode.h b/vcits/rtcmem/CauseCode.h new file mode 100644 index 0000000..39e3ac2 --- /dev/null +++ b/vcits/rtcmem/CauseCode.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CauseCode_H_ +#define _CauseCode_H_ + + +#include + +/* Including external dependencies */ +#include "CauseCodeType.h" +#include "SubCauseCodeType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CauseCode */ +typedef struct CauseCode { + CauseCodeType_t causeCode; + SubCauseCodeType_t subCauseCode; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CauseCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCode_H_ */ +#include diff --git a/vcits/rtcmem/CauseCodeType.h b/vcits/rtcmem/CauseCodeType.h new file mode 100644 index 0000000..17372c7 --- /dev/null +++ b/vcits/rtcmem/CauseCodeType.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CauseCodeType_H_ +#define _CauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseCodeType { + CauseCodeType_reserved = 0, + CauseCodeType_trafficCondition = 1, + CauseCodeType_accident = 2, + CauseCodeType_roadworks = 3, + CauseCodeType_impassability = 5, + CauseCodeType_adverseWeatherCondition_Adhesion = 6, + CauseCodeType_aquaplannning = 7, + CauseCodeType_hazardousLocation_SurfaceCondition = 9, + CauseCodeType_hazardousLocation_ObstacleOnTheRoad = 10, + CauseCodeType_hazardousLocation_AnimalOnTheRoad = 11, + CauseCodeType_humanPresenceOnTheRoad = 12, + CauseCodeType_wrongWayDriving = 14, + CauseCodeType_rescueAndRecoveryWorkInProgress = 15, + CauseCodeType_adverseWeatherCondition_ExtremeWeatherCondition = 17, + CauseCodeType_adverseWeatherCondition_Visibility = 18, + CauseCodeType_adverseWeatherCondition_Precipitation = 19, + CauseCodeType_slowVehicle = 26, + CauseCodeType_dangerousEndOfQueue = 27, + CauseCodeType_vehicleBreakdown = 91, + CauseCodeType_postCrash = 92, + CauseCodeType_humanProblem = 93, + CauseCodeType_stationaryVehicle = 94, + CauseCodeType_emergencyVehicleApproaching = 95, + CauseCodeType_hazardousLocation_DangerousCurve = 96, + CauseCodeType_collisionRisk = 97, + CauseCodeType_signalViolation = 98, + CauseCodeType_dangerousSituation = 99 +} e_CauseCodeType; + +/* CauseCodeType */ +typedef long CauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseCodeType; +asn_struct_free_f CauseCodeType_free; +asn_struct_print_f CauseCodeType_print; +asn_constr_check_f CauseCodeType_constraint; +ber_type_decoder_f CauseCodeType_decode_ber; +der_type_encoder_f CauseCodeType_encode_der; +xer_type_decoder_f CauseCodeType_decode_xer; +xer_type_encoder_f CauseCodeType_encode_xer; +oer_type_decoder_f CauseCodeType_decode_oer; +oer_type_encoder_f CauseCodeType_encode_oer; +per_type_decoder_f CauseCodeType_decode_uper; +per_type_encoder_f CauseCodeType_encode_uper; +per_type_decoder_f CauseCodeType_decode_aper; +per_type_encoder_f CauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCodeType_H_ */ +#include diff --git a/vcits/rtcmem/CenDsrcTollingZone.h b/vcits/rtcmem/CenDsrcTollingZone.h new file mode 100644 index 0000000..fa2edec --- /dev/null +++ b/vcits/rtcmem/CenDsrcTollingZone.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CenDsrcTollingZone_H_ +#define _CenDsrcTollingZone_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "CenDsrcTollingZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZone */ +typedef struct CenDsrcTollingZone { + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + CenDsrcTollingZoneID_t *cenDsrcTollingZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CenDsrcTollingZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZone_H_ */ +#include diff --git a/vcits/rtcmem/CenDsrcTollingZoneID.h b/vcits/rtcmem/CenDsrcTollingZoneID.h new file mode 100644 index 0000000..301e370 --- /dev/null +++ b/vcits/rtcmem/CenDsrcTollingZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CenDsrcTollingZoneID_H_ +#define _CenDsrcTollingZoneID_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneID.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZoneID */ +typedef ProtectedZoneID_t CenDsrcTollingZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID; +asn_struct_free_f CenDsrcTollingZoneID_free; +asn_struct_print_f CenDsrcTollingZoneID_print; +asn_constr_check_f CenDsrcTollingZoneID_constraint; +ber_type_decoder_f CenDsrcTollingZoneID_decode_ber; +der_type_encoder_f CenDsrcTollingZoneID_encode_der; +xer_type_decoder_f CenDsrcTollingZoneID_decode_xer; +xer_type_encoder_f CenDsrcTollingZoneID_encode_xer; +oer_type_decoder_f CenDsrcTollingZoneID_decode_oer; +oer_type_encoder_f CenDsrcTollingZoneID_encode_oer; +per_type_decoder_f CenDsrcTollingZoneID_decode_uper; +per_type_encoder_f CenDsrcTollingZoneID_encode_uper; +per_type_decoder_f CenDsrcTollingZoneID_decode_aper; +per_type_encoder_f CenDsrcTollingZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZoneID_H_ */ +#include diff --git a/vcits/rtcmem/ClosedLanes.h b/vcits/rtcmem/ClosedLanes.h new file mode 100644 index 0000000..a24e92f --- /dev/null +++ b/vcits/rtcmem/ClosedLanes.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ClosedLanes_H_ +#define _ClosedLanes_H_ + + +#include + +/* Including external dependencies */ +#include "HardShoulderStatus.h" +#include "DrivingLaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ClosedLanes */ +typedef struct ClosedLanes { + HardShoulderStatus_t *innerhardShoulderStatus; /* OPTIONAL */ + HardShoulderStatus_t *outerhardShoulderStatus; /* OPTIONAL */ + DrivingLaneStatus_t *drivingLaneStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ClosedLanes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ClosedLanes; + +#ifdef __cplusplus +} +#endif + +#endif /* _ClosedLanes_H_ */ +#include diff --git a/vcits/rtcmem/CollisionRiskSubCauseCode.h b/vcits/rtcmem/CollisionRiskSubCauseCode.h new file mode 100644 index 0000000..a4e9565 --- /dev/null +++ b/vcits/rtcmem/CollisionRiskSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CollisionRiskSubCauseCode_H_ +#define _CollisionRiskSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CollisionRiskSubCauseCode { + CollisionRiskSubCauseCode_unavailable = 0, + CollisionRiskSubCauseCode_longitudinalCollisionRisk = 1, + CollisionRiskSubCauseCode_crossingCollisionRisk = 2, + CollisionRiskSubCauseCode_lateralCollisionRisk = 3, + CollisionRiskSubCauseCode_vulnerableRoadUser = 4 +} e_CollisionRiskSubCauseCode; + +/* CollisionRiskSubCauseCode */ +typedef long CollisionRiskSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode; +asn_struct_free_f CollisionRiskSubCauseCode_free; +asn_struct_print_f CollisionRiskSubCauseCode_print; +asn_constr_check_f CollisionRiskSubCauseCode_constraint; +ber_type_decoder_f CollisionRiskSubCauseCode_decode_ber; +der_type_encoder_f CollisionRiskSubCauseCode_encode_der; +xer_type_decoder_f CollisionRiskSubCauseCode_decode_xer; +xer_type_encoder_f CollisionRiskSubCauseCode_encode_xer; +oer_type_decoder_f CollisionRiskSubCauseCode_decode_oer; +oer_type_encoder_f CollisionRiskSubCauseCode_encode_oer; +per_type_decoder_f CollisionRiskSubCauseCode_decode_uper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_uper; +per_type_decoder_f CollisionRiskSubCauseCode_decode_aper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CollisionRiskSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/ComputedLane.h b/vcits/rtcmem/ComputedLane.h new file mode 100644 index 0000000..bd8b959 --- /dev/null +++ b/vcits/rtcmem/ComputedLane.h @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ComputedLane_H_ +#define _ComputedLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "Angle.h" +#include "Scale-B12.h" +#include "DrivenLineOffsetSm.h" +#include "DrivenLineOffsetLg.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ComputedLane__offsetXaxis_PR { + ComputedLane__offsetXaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetXaxis_PR_small, + ComputedLane__offsetXaxis_PR_large +} ComputedLane__offsetXaxis_PR; +typedef enum ComputedLane__offsetYaxis_PR { + ComputedLane__offsetYaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetYaxis_PR_small, + ComputedLane__offsetYaxis_PR_large +} ComputedLane__offsetYaxis_PR; + +/* Forward declarations */ +struct Reg_ComputedLane; + +/* ComputedLane */ +typedef struct ComputedLane { + LaneID_t referenceLaneId; + struct ComputedLane__offsetXaxis { + ComputedLane__offsetXaxis_PR present; + union ComputedLane__offsetXaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetXaxis; + struct ComputedLane__offsetYaxis { + ComputedLane__offsetYaxis_PR present; + union ComputedLane__offsetYaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetYaxis; + Angle_t *rotateXY; /* OPTIONAL */ + Scale_B12_t *scaleXaxis; /* OPTIONAL */ + Scale_B12_t *scaleYaxis; /* OPTIONAL */ + struct ComputedLane__regional { + A_SEQUENCE_OF(struct Reg_ComputedLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ComputedLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ComputedLane_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ComputedLane_H_ */ +#include diff --git a/vcits/rtcmem/ConnectingLane.h b/vcits/rtcmem/ConnectingLane.h new file mode 100644 index 0000000..88696fe --- /dev/null +++ b/vcits/rtcmem/ConnectingLane.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ConnectingLane_H_ +#define _ConnectingLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "AllowedManeuvers.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectingLane */ +typedef struct ConnectingLane { + LaneID_t lane; + AllowedManeuvers_t *maneuver; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectingLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectingLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectingLane_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectingLane_H_ */ +#include diff --git a/vcits/rtcmem/Connection.h b/vcits/rtcmem/Connection.h new file mode 100644 index 0000000..b7c2f52 --- /dev/null +++ b/vcits/rtcmem/Connection.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Connection_H_ +#define _Connection_H_ + + +#include + +/* Including external dependencies */ +#include "ConnectingLane.h" +#include "SignalGroupID.h" +#include "RestrictionClassID.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionReferenceID; + +/* Connection */ +typedef struct Connection { + ConnectingLane_t connectingLane; + struct IntersectionReferenceID *remoteIntersection; /* OPTIONAL */ + SignalGroupID_t *signalGroup; /* OPTIONAL */ + RestrictionClassID_t *userClass; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Connection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Connection; +extern asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1; +extern asn_TYPE_member_t asn_MBR_Connection_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Connection_H_ */ +#include diff --git a/vcits/rtcmem/ConnectionManeuverAssist-addGrpC.h b/vcits/rtcmem/ConnectionManeuverAssist-addGrpC.h new file mode 100644 index 0000000..3e67cfe --- /dev/null +++ b/vcits/rtcmem/ConnectionManeuverAssist-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ConnectionManeuverAssist_addGrpC_H_ +#define _ConnectionManeuverAssist_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ItsStationPositionList; + +/* ConnectionManeuverAssist-addGrpC */ +typedef struct ConnectionManeuverAssist_addGrpC { + struct ItsStationPositionList *itsStationPosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_addGrpC_H_ */ +#include diff --git a/vcits/rtcmem/ConnectionManeuverAssist.h b/vcits/rtcmem/ConnectionManeuverAssist.h new file mode 100644 index 0000000..c2fbaeb --- /dev/null +++ b/vcits/rtcmem/ConnectionManeuverAssist.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ConnectionManeuverAssist_H_ +#define _ConnectionManeuverAssist_H_ + + +#include + +/* Including external dependencies */ +#include "LaneConnectionID.h" +#include "ZoneLength.h" +#include "WaitOnStopline.h" +#include "PedestrianBicycleDetect.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_ConnectionManeuverAssist; + +/* ConnectionManeuverAssist */ +typedef struct ConnectionManeuverAssist { + LaneConnectionID_t connectionID; + ZoneLength_t *queueLength; /* OPTIONAL */ + ZoneLength_t *availableStorageLength; /* OPTIONAL */ + WaitOnStopline_t *waitOnStop; /* OPTIONAL */ + PedestrianBicycleDetect_t *pedBicycleDetect; /* OPTIONAL */ + struct ConnectionManeuverAssist__regional { + A_SEQUENCE_OF(struct Reg_ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_H_ */ +#include diff --git a/vcits/rtcmem/ConnectionTrajectory-addGrpC.h b/vcits/rtcmem/ConnectionTrajectory-addGrpC.h new file mode 100644 index 0000000..aeb0f6e --- /dev/null +++ b/vcits/rtcmem/ConnectionTrajectory-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ConnectionTrajectory_addGrpC_H_ +#define _ConnectionTrajectory_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectionTrajectory-addGrpC */ +typedef struct ConnectionTrajectory_addGrpC { + NodeSetXY_t nodes; + LaneConnectionID_t connectionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionTrajectory_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionTrajectory_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionTrajectory_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionTrajectory_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionTrajectory_addGrpC_H_ */ +#include diff --git a/vcits/rtcmem/ConnectsToList.h b/vcits/rtcmem/ConnectsToList.h new file mode 100644 index 0000000..8159403 --- /dev/null +++ b/vcits/rtcmem/ConnectsToList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ConnectsToList_H_ +#define _ConnectsToList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Connection; + +/* ConnectsToList */ +typedef struct ConnectsToList { + A_SEQUENCE_OF(struct Connection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectsToList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectsToList; +extern asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectsToList_1[1]; +extern asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectsToList_H_ */ +#include diff --git a/vcits/rtcmem/CountryCode.h b/vcits/rtcmem/CountryCode.h new file mode 100644 index 0000000..ba7dc63 --- /dev/null +++ b/vcits/rtcmem/CountryCode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CountryCode_H_ +#define _CountryCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CountryCode */ +typedef BIT_STRING_t CountryCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CountryCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CountryCode; +asn_struct_free_f CountryCode_free; +asn_struct_print_f CountryCode_print; +asn_constr_check_f CountryCode_constraint; +ber_type_decoder_f CountryCode_decode_ber; +der_type_encoder_f CountryCode_encode_der; +xer_type_decoder_f CountryCode_decode_xer; +xer_type_encoder_f CountryCode_encode_xer; +oer_type_decoder_f CountryCode_decode_oer; +oer_type_encoder_f CountryCode_encode_oer; +per_type_decoder_f CountryCode_decode_uper; +per_type_encoder_f CountryCode_encode_uper; +per_type_decoder_f CountryCode_decode_aper; +per_type_encoder_f CountryCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CountryCode_H_ */ +#include diff --git a/vcits/rtcmem/Curvature.h b/vcits/rtcmem/Curvature.h new file mode 100644 index 0000000..e042c50 --- /dev/null +++ b/vcits/rtcmem/Curvature.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Curvature_H_ +#define _Curvature_H_ + + +#include + +/* Including external dependencies */ +#include "CurvatureValue.h" +#include "CurvatureConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Curvature */ +typedef struct Curvature { + CurvatureValue_t curvatureValue; + CurvatureConfidence_t curvatureConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Curvature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Curvature; + +#ifdef __cplusplus +} +#endif + +#endif /* _Curvature_H_ */ +#include diff --git a/vcits/rtcmem/CurvatureCalculationMode.h b/vcits/rtcmem/CurvatureCalculationMode.h new file mode 100644 index 0000000..ad781ee --- /dev/null +++ b/vcits/rtcmem/CurvatureCalculationMode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CurvatureCalculationMode_H_ +#define _CurvatureCalculationMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureCalculationMode { + CurvatureCalculationMode_yawRateUsed = 0, + CurvatureCalculationMode_yawRateNotUsed = 1, + CurvatureCalculationMode_unavailable = 2 + /* + * Enumeration is extensible + */ +} e_CurvatureCalculationMode; + +/* CurvatureCalculationMode */ +typedef long CurvatureCalculationMode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode; +asn_struct_free_f CurvatureCalculationMode_free; +asn_struct_print_f CurvatureCalculationMode_print; +asn_constr_check_f CurvatureCalculationMode_constraint; +ber_type_decoder_f CurvatureCalculationMode_decode_ber; +der_type_encoder_f CurvatureCalculationMode_encode_der; +xer_type_decoder_f CurvatureCalculationMode_decode_xer; +xer_type_encoder_f CurvatureCalculationMode_encode_xer; +oer_type_decoder_f CurvatureCalculationMode_decode_oer; +oer_type_encoder_f CurvatureCalculationMode_encode_oer; +per_type_decoder_f CurvatureCalculationMode_decode_uper; +per_type_encoder_f CurvatureCalculationMode_encode_uper; +per_type_decoder_f CurvatureCalculationMode_decode_aper; +per_type_encoder_f CurvatureCalculationMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureCalculationMode_H_ */ +#include diff --git a/vcits/rtcmem/CurvatureConfidence.h b/vcits/rtcmem/CurvatureConfidence.h new file mode 100644 index 0000000..d8ad380 --- /dev/null +++ b/vcits/rtcmem/CurvatureConfidence.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CurvatureConfidence_H_ +#define _CurvatureConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureConfidence { + CurvatureConfidence_onePerMeter_0_00002 = 0, + CurvatureConfidence_onePerMeter_0_0001 = 1, + CurvatureConfidence_onePerMeter_0_0005 = 2, + CurvatureConfidence_onePerMeter_0_002 = 3, + CurvatureConfidence_onePerMeter_0_01 = 4, + CurvatureConfidence_onePerMeter_0_1 = 5, + CurvatureConfidence_outOfRange = 6, + CurvatureConfidence_unavailable = 7 +} e_CurvatureConfidence; + +/* CurvatureConfidence */ +typedef long CurvatureConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1; +asn_struct_free_f CurvatureConfidence_free; +asn_struct_print_f CurvatureConfidence_print; +asn_constr_check_f CurvatureConfidence_constraint; +ber_type_decoder_f CurvatureConfidence_decode_ber; +der_type_encoder_f CurvatureConfidence_encode_der; +xer_type_decoder_f CurvatureConfidence_decode_xer; +xer_type_encoder_f CurvatureConfidence_encode_xer; +oer_type_decoder_f CurvatureConfidence_decode_oer; +oer_type_encoder_f CurvatureConfidence_encode_oer; +per_type_decoder_f CurvatureConfidence_decode_uper; +per_type_encoder_f CurvatureConfidence_encode_uper; +per_type_decoder_f CurvatureConfidence_decode_aper; +per_type_encoder_f CurvatureConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureConfidence_H_ */ +#include diff --git a/vcits/rtcmem/CurvatureValue.h b/vcits/rtcmem/CurvatureValue.h new file mode 100644 index 0000000..8a75671 --- /dev/null +++ b/vcits/rtcmem/CurvatureValue.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _CurvatureValue_H_ +#define _CurvatureValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureValue { + CurvatureValue_straight = 0, + CurvatureValue_unavailable = 1023 +} e_CurvatureValue; + +/* CurvatureValue */ +typedef long CurvatureValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureValue; +asn_struct_free_f CurvatureValue_free; +asn_struct_print_f CurvatureValue_print; +asn_constr_check_f CurvatureValue_constraint; +ber_type_decoder_f CurvatureValue_decode_ber; +der_type_encoder_f CurvatureValue_encode_der; +xer_type_decoder_f CurvatureValue_decode_xer; +xer_type_encoder_f CurvatureValue_encode_xer; +oer_type_decoder_f CurvatureValue_decode_oer; +oer_type_encoder_f CurvatureValue_encode_oer; +per_type_decoder_f CurvatureValue_decode_uper; +per_type_encoder_f CurvatureValue_encode_uper; +per_type_decoder_f CurvatureValue_decode_aper; +per_type_encoder_f CurvatureValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureValue_H_ */ +#include diff --git a/vcits/rtcmem/DDateTime.h b/vcits/rtcmem/DDateTime.h new file mode 100644 index 0000000..b60d4d8 --- /dev/null +++ b/vcits/rtcmem/DDateTime.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DDateTime_H_ +#define _DDateTime_H_ + + +#include + +/* Including external dependencies */ +#include "DYear.h" +#include "DMonth.h" +#include "DDay.h" +#include "DHour.h" +#include "DMinute.h" +#include "DSecond.h" +#include "DOffset.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDateTime */ +typedef struct DDateTime { + DYear_t *year; /* OPTIONAL */ + DMonth_t *month; /* OPTIONAL */ + DDay_t *day; /* OPTIONAL */ + DHour_t *hour; /* OPTIONAL */ + DMinute_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DOffset_t *offset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DDateTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DDateTime; +extern asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1; +extern asn_TYPE_member_t asn_MBR_DDateTime_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDateTime_H_ */ +#include diff --git a/vcits/rtcmem/DDay.h b/vcits/rtcmem/DDay.h new file mode 100644 index 0000000..049e4cf --- /dev/null +++ b/vcits/rtcmem/DDay.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DDay_H_ +#define _DDay_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDay */ +typedef long DDay_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DDay_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DDay; +asn_struct_free_f DDay_free; +asn_struct_print_f DDay_print; +asn_constr_check_f DDay_constraint; +ber_type_decoder_f DDay_decode_ber; +der_type_encoder_f DDay_encode_der; +xer_type_decoder_f DDay_decode_xer; +xer_type_encoder_f DDay_encode_xer; +oer_type_decoder_f DDay_decode_oer; +oer_type_encoder_f DDay_encode_oer; +per_type_decoder_f DDay_decode_uper; +per_type_encoder_f DDay_encode_uper; +per_type_decoder_f DDay_decode_aper; +per_type_encoder_f DDay_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDay_H_ */ +#include diff --git a/vcits/rtcmem/DHour.h b/vcits/rtcmem/DHour.h new file mode 100644 index 0000000..f14b828 --- /dev/null +++ b/vcits/rtcmem/DHour.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DHour_H_ +#define _DHour_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DHour */ +typedef long DHour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DHour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DHour; +asn_struct_free_f DHour_free; +asn_struct_print_f DHour_print; +asn_constr_check_f DHour_constraint; +ber_type_decoder_f DHour_decode_ber; +der_type_encoder_f DHour_encode_der; +xer_type_decoder_f DHour_decode_xer; +xer_type_encoder_f DHour_encode_xer; +oer_type_decoder_f DHour_decode_oer; +oer_type_encoder_f DHour_encode_oer; +per_type_decoder_f DHour_decode_uper; +per_type_encoder_f DHour_encode_uper; +per_type_decoder_f DHour_decode_aper; +per_type_encoder_f DHour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DHour_H_ */ +#include diff --git a/vcits/rtcmem/DMinute.h b/vcits/rtcmem/DMinute.h new file mode 100644 index 0000000..8cd6ec3 --- /dev/null +++ b/vcits/rtcmem/DMinute.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DMinute_H_ +#define _DMinute_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMinute */ +typedef long DMinute_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMinute_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMinute; +asn_struct_free_f DMinute_free; +asn_struct_print_f DMinute_print; +asn_constr_check_f DMinute_constraint; +ber_type_decoder_f DMinute_decode_ber; +der_type_encoder_f DMinute_encode_der; +xer_type_decoder_f DMinute_decode_xer; +xer_type_encoder_f DMinute_encode_xer; +oer_type_decoder_f DMinute_decode_oer; +oer_type_encoder_f DMinute_encode_oer; +per_type_decoder_f DMinute_decode_uper; +per_type_encoder_f DMinute_encode_uper; +per_type_decoder_f DMinute_decode_aper; +per_type_encoder_f DMinute_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMinute_H_ */ +#include diff --git a/vcits/rtcmem/DMonth.h b/vcits/rtcmem/DMonth.h new file mode 100644 index 0000000..ee31795 --- /dev/null +++ b/vcits/rtcmem/DMonth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DMonth_H_ +#define _DMonth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMonth */ +typedef long DMonth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMonth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMonth; +asn_struct_free_f DMonth_free; +asn_struct_print_f DMonth_print; +asn_constr_check_f DMonth_constraint; +ber_type_decoder_f DMonth_decode_ber; +der_type_encoder_f DMonth_encode_der; +xer_type_decoder_f DMonth_decode_xer; +xer_type_encoder_f DMonth_encode_xer; +oer_type_decoder_f DMonth_decode_oer; +oer_type_encoder_f DMonth_encode_oer; +per_type_decoder_f DMonth_decode_uper; +per_type_encoder_f DMonth_encode_uper; +per_type_decoder_f DMonth_decode_aper; +per_type_encoder_f DMonth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMonth_H_ */ +#include diff --git a/vcits/rtcmem/DOffset.h b/vcits/rtcmem/DOffset.h new file mode 100644 index 0000000..284eddb --- /dev/null +++ b/vcits/rtcmem/DOffset.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DOffset_H_ +#define _DOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DOffset */ +typedef long DOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DOffset; +asn_struct_free_f DOffset_free; +asn_struct_print_f DOffset_print; +asn_constr_check_f DOffset_constraint; +ber_type_decoder_f DOffset_decode_ber; +der_type_encoder_f DOffset_encode_der; +xer_type_decoder_f DOffset_decode_xer; +xer_type_encoder_f DOffset_encode_xer; +oer_type_decoder_f DOffset_decode_oer; +oer_type_encoder_f DOffset_encode_oer; +per_type_decoder_f DOffset_decode_uper; +per_type_encoder_f DOffset_encode_uper; +per_type_decoder_f DOffset_decode_aper; +per_type_encoder_f DOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DOffset_H_ */ +#include diff --git a/vcits/rtcmem/DSRCmsgID.h b/vcits/rtcmem/DSRCmsgID.h new file mode 100644 index 0000000..d132dfc --- /dev/null +++ b/vcits/rtcmem/DSRCmsgID.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DSRCmsgID_H_ +#define _DSRCmsgID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSRCmsgID */ +typedef long DSRCmsgID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSRCmsgID; +asn_struct_free_f DSRCmsgID_free; +asn_struct_print_f DSRCmsgID_print; +asn_constr_check_f DSRCmsgID_constraint; +ber_type_decoder_f DSRCmsgID_decode_ber; +der_type_encoder_f DSRCmsgID_encode_der; +xer_type_decoder_f DSRCmsgID_decode_xer; +xer_type_encoder_f DSRCmsgID_encode_xer; +oer_type_decoder_f DSRCmsgID_decode_oer; +oer_type_encoder_f DSRCmsgID_encode_oer; +per_type_decoder_f DSRCmsgID_decode_uper; +per_type_encoder_f DSRCmsgID_encode_uper; +per_type_decoder_f DSRCmsgID_decode_aper; +per_type_encoder_f DSRCmsgID_encode_aper; +#define DSRCmsgID_mapData ((DSRCmsgID_t)18) +#define DSRCmsgID_rtcmCorrections ((DSRCmsgID_t)28) +#define DSRCmsgID_signalPhaseAndTimingMessage ((DSRCmsgID_t)19) +#define DSRCmsgID_signalRequestMessage ((DSRCmsgID_t)29) +#define DSRCmsgID_signalStatusMessage ((DSRCmsgID_t)30) + +#ifdef __cplusplus +} +#endif + +#endif /* _DSRCmsgID_H_ */ +#include diff --git a/vcits/rtcmem/DSecond.h b/vcits/rtcmem/DSecond.h new file mode 100644 index 0000000..ef8208d --- /dev/null +++ b/vcits/rtcmem/DSecond.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DSecond_H_ +#define _DSecond_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSecond */ +typedef long DSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSecond; +asn_struct_free_f DSecond_free; +asn_struct_print_f DSecond_print; +asn_constr_check_f DSecond_constraint; +ber_type_decoder_f DSecond_decode_ber; +der_type_encoder_f DSecond_encode_der; +xer_type_decoder_f DSecond_decode_xer; +xer_type_encoder_f DSecond_encode_xer; +oer_type_decoder_f DSecond_decode_oer; +oer_type_encoder_f DSecond_encode_oer; +per_type_decoder_f DSecond_decode_uper; +per_type_encoder_f DSecond_encode_uper; +per_type_decoder_f DSecond_decode_aper; +per_type_encoder_f DSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DSecond_H_ */ +#include diff --git a/vcits/rtcmem/DYear.h b/vcits/rtcmem/DYear.h new file mode 100644 index 0000000..ce7d71f --- /dev/null +++ b/vcits/rtcmem/DYear.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DYear_H_ +#define _DYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DYear */ +typedef long DYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DYear; +asn_struct_free_f DYear_free; +asn_struct_print_f DYear_print; +asn_constr_check_f DYear_constraint; +ber_type_decoder_f DYear_decode_ber; +der_type_encoder_f DYear_encode_der; +xer_type_decoder_f DYear_decode_xer; +xer_type_encoder_f DYear_encode_xer; +oer_type_decoder_f DYear_decode_oer; +oer_type_encoder_f DYear_encode_oer; +per_type_decoder_f DYear_decode_uper; +per_type_encoder_f DYear_encode_uper; +per_type_decoder_f DYear_decode_aper; +per_type_encoder_f DYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DYear_H_ */ +#include diff --git a/vcits/rtcmem/DangerousEndOfQueueSubCauseCode.h b/vcits/rtcmem/DangerousEndOfQueueSubCauseCode.h new file mode 100644 index 0000000..277cc21 --- /dev/null +++ b/vcits/rtcmem/DangerousEndOfQueueSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DangerousEndOfQueueSubCauseCode_H_ +#define _DangerousEndOfQueueSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousEndOfQueueSubCauseCode { + DangerousEndOfQueueSubCauseCode_unavailable = 0, + DangerousEndOfQueueSubCauseCode_suddenEndOfQueue = 1, + DangerousEndOfQueueSubCauseCode_queueOverHill = 2, + DangerousEndOfQueueSubCauseCode_queueAroundBend = 3, + DangerousEndOfQueueSubCauseCode_queueInTunnel = 4 +} e_DangerousEndOfQueueSubCauseCode; + +/* DangerousEndOfQueueSubCauseCode */ +typedef long DangerousEndOfQueueSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode; +asn_struct_free_f DangerousEndOfQueueSubCauseCode_free; +asn_struct_print_f DangerousEndOfQueueSubCauseCode_print; +asn_constr_check_f DangerousEndOfQueueSubCauseCode_constraint; +ber_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_ber; +der_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_der; +xer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_xer; +xer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_xer; +oer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_oer; +oer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_oer; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_uper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_uper; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_aper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousEndOfQueueSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/DangerousGoodsBasic.h b/vcits/rtcmem/DangerousGoodsBasic.h new file mode 100644 index 0000000..516133e --- /dev/null +++ b/vcits/rtcmem/DangerousGoodsBasic.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DangerousGoodsBasic_H_ +#define _DangerousGoodsBasic_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousGoodsBasic { + DangerousGoodsBasic_explosives1 = 0, + DangerousGoodsBasic_explosives2 = 1, + DangerousGoodsBasic_explosives3 = 2, + DangerousGoodsBasic_explosives4 = 3, + DangerousGoodsBasic_explosives5 = 4, + DangerousGoodsBasic_explosives6 = 5, + DangerousGoodsBasic_flammableGases = 6, + DangerousGoodsBasic_nonFlammableGases = 7, + DangerousGoodsBasic_toxicGases = 8, + DangerousGoodsBasic_flammableLiquids = 9, + DangerousGoodsBasic_flammableSolids = 10, + DangerousGoodsBasic_substancesLiableToSpontaneousCombustion = 11, + DangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater = 12, + DangerousGoodsBasic_oxidizingSubstances = 13, + DangerousGoodsBasic_organicPeroxides = 14, + DangerousGoodsBasic_toxicSubstances = 15, + DangerousGoodsBasic_infectiousSubstances = 16, + DangerousGoodsBasic_radioactiveMaterial = 17, + DangerousGoodsBasic_corrosiveSubstances = 18, + DangerousGoodsBasic_miscellaneousDangerousSubstances = 19 +} e_DangerousGoodsBasic; + +/* DangerousGoodsBasic */ +typedef long DangerousGoodsBasic_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic; +extern const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1; +asn_struct_free_f DangerousGoodsBasic_free; +asn_struct_print_f DangerousGoodsBasic_print; +asn_constr_check_f DangerousGoodsBasic_constraint; +ber_type_decoder_f DangerousGoodsBasic_decode_ber; +der_type_encoder_f DangerousGoodsBasic_encode_der; +xer_type_decoder_f DangerousGoodsBasic_decode_xer; +xer_type_encoder_f DangerousGoodsBasic_encode_xer; +oer_type_decoder_f DangerousGoodsBasic_decode_oer; +oer_type_encoder_f DangerousGoodsBasic_encode_oer; +per_type_decoder_f DangerousGoodsBasic_decode_uper; +per_type_encoder_f DangerousGoodsBasic_encode_uper; +per_type_decoder_f DangerousGoodsBasic_decode_aper; +per_type_encoder_f DangerousGoodsBasic_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsBasic_H_ */ +#include diff --git a/vcits/rtcmem/DangerousGoodsExtended.h b/vcits/rtcmem/DangerousGoodsExtended.h new file mode 100644 index 0000000..5e8f114 --- /dev/null +++ b/vcits/rtcmem/DangerousGoodsExtended.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DangerousGoodsExtended_H_ +#define _DangerousGoodsExtended_H_ + + +#include + +/* Including external dependencies */ +#include "DangerousGoodsBasic.h" +#include +#include +#include +#include "PhoneNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DangerousGoodsExtended */ +typedef struct DangerousGoodsExtended { + DangerousGoodsBasic_t dangerousGoodsType; + long unNumber; + BOOLEAN_t elevatedTemperature; + BOOLEAN_t tunnelsRestricted; + BOOLEAN_t limitedQuantity; + IA5String_t *emergencyActionCode; /* OPTIONAL */ + PhoneNumber_t *phoneNumber; /* OPTIONAL */ + UTF8String_t *companyName; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DangerousGoodsExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsExtended_H_ */ +#include diff --git a/vcits/rtcmem/DangerousSituationSubCauseCode.h b/vcits/rtcmem/DangerousSituationSubCauseCode.h new file mode 100644 index 0000000..6e53e8d --- /dev/null +++ b/vcits/rtcmem/DangerousSituationSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DangerousSituationSubCauseCode_H_ +#define _DangerousSituationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousSituationSubCauseCode { + DangerousSituationSubCauseCode_unavailable = 0, + DangerousSituationSubCauseCode_emergencyElectronicBrakeEngaged = 1, + DangerousSituationSubCauseCode_preCrashSystemEngaged = 2, + DangerousSituationSubCauseCode_espEngaged = 3, + DangerousSituationSubCauseCode_absEngaged = 4, + DangerousSituationSubCauseCode_aebEngaged = 5, + DangerousSituationSubCauseCode_brakeWarningEngaged = 6, + DangerousSituationSubCauseCode_collisionRiskWarningEngaged = 7 +} e_DangerousSituationSubCauseCode; + +/* DangerousSituationSubCauseCode */ +typedef long DangerousSituationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode; +asn_struct_free_f DangerousSituationSubCauseCode_free; +asn_struct_print_f DangerousSituationSubCauseCode_print; +asn_constr_check_f DangerousSituationSubCauseCode_constraint; +ber_type_decoder_f DangerousSituationSubCauseCode_decode_ber; +der_type_encoder_f DangerousSituationSubCauseCode_encode_der; +xer_type_decoder_f DangerousSituationSubCauseCode_decode_xer; +xer_type_encoder_f DangerousSituationSubCauseCode_encode_xer; +oer_type_decoder_f DangerousSituationSubCauseCode_decode_oer; +oer_type_encoder_f DangerousSituationSubCauseCode_encode_oer; +per_type_decoder_f DangerousSituationSubCauseCode_decode_uper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_uper; +per_type_decoder_f DangerousSituationSubCauseCode_decode_aper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousSituationSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/DataParameters.h b/vcits/rtcmem/DataParameters.h new file mode 100644 index 0000000..c2363ad --- /dev/null +++ b/vcits/rtcmem/DataParameters.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DataParameters_H_ +#define _DataParameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DataParameters */ +typedef struct DataParameters { + IA5String_t *processMethod; /* OPTIONAL */ + IA5String_t *processAgency; /* OPTIONAL */ + IA5String_t *lastCheckedDate; /* OPTIONAL */ + IA5String_t *geoidUsed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DataParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DataParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_DataParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DataParameters_H_ */ +#include diff --git a/vcits/rtcmem/DeltaAltitude.h b/vcits/rtcmem/DeltaAltitude.h new file mode 100644 index 0000000..c48c1dc --- /dev/null +++ b/vcits/rtcmem/DeltaAltitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DeltaAltitude_H_ +#define _DeltaAltitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaAltitude { + DeltaAltitude_oneCentimeterUp = 1, + DeltaAltitude_oneCentimeterDown = -1, + DeltaAltitude_unavailable = 12800 +} e_DeltaAltitude; + +/* DeltaAltitude */ +typedef long DeltaAltitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAltitude; +asn_struct_free_f DeltaAltitude_free; +asn_struct_print_f DeltaAltitude_print; +asn_constr_check_f DeltaAltitude_constraint; +ber_type_decoder_f DeltaAltitude_decode_ber; +der_type_encoder_f DeltaAltitude_encode_der; +xer_type_decoder_f DeltaAltitude_decode_xer; +xer_type_encoder_f DeltaAltitude_encode_xer; +oer_type_decoder_f DeltaAltitude_decode_oer; +oer_type_encoder_f DeltaAltitude_encode_oer; +per_type_decoder_f DeltaAltitude_decode_uper; +per_type_encoder_f DeltaAltitude_encode_uper; +per_type_decoder_f DeltaAltitude_decode_aper; +per_type_encoder_f DeltaAltitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAltitude_H_ */ +#include diff --git a/vcits/rtcmem/DeltaAngle.h b/vcits/rtcmem/DeltaAngle.h new file mode 100644 index 0000000..0195a23 --- /dev/null +++ b/vcits/rtcmem/DeltaAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DeltaAngle_H_ +#define _DeltaAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaAngle */ +typedef long DeltaAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAngle; +asn_struct_free_f DeltaAngle_free; +asn_struct_print_f DeltaAngle_print; +asn_constr_check_f DeltaAngle_constraint; +ber_type_decoder_f DeltaAngle_decode_ber; +der_type_encoder_f DeltaAngle_encode_der; +xer_type_decoder_f DeltaAngle_decode_xer; +xer_type_encoder_f DeltaAngle_encode_xer; +oer_type_decoder_f DeltaAngle_decode_oer; +oer_type_encoder_f DeltaAngle_encode_oer; +per_type_decoder_f DeltaAngle_decode_uper; +per_type_encoder_f DeltaAngle_encode_uper; +per_type_decoder_f DeltaAngle_decode_aper; +per_type_encoder_f DeltaAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAngle_H_ */ +#include diff --git a/vcits/rtcmem/DeltaLatitude.h b/vcits/rtcmem/DeltaLatitude.h new file mode 100644 index 0000000..a47dadc --- /dev/null +++ b/vcits/rtcmem/DeltaLatitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DeltaLatitude_H_ +#define _DeltaLatitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLatitude { + DeltaLatitude_oneMicrodegreeNorth = 10, + DeltaLatitude_oneMicrodegreeSouth = -10, + DeltaLatitude_unavailable = 131072 +} e_DeltaLatitude; + +/* DeltaLatitude */ +typedef long DeltaLatitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLatitude; +asn_struct_free_f DeltaLatitude_free; +asn_struct_print_f DeltaLatitude_print; +asn_constr_check_f DeltaLatitude_constraint; +ber_type_decoder_f DeltaLatitude_decode_ber; +der_type_encoder_f DeltaLatitude_encode_der; +xer_type_decoder_f DeltaLatitude_decode_xer; +xer_type_encoder_f DeltaLatitude_encode_xer; +oer_type_decoder_f DeltaLatitude_decode_oer; +oer_type_encoder_f DeltaLatitude_encode_oer; +per_type_decoder_f DeltaLatitude_decode_uper; +per_type_encoder_f DeltaLatitude_encode_uper; +per_type_decoder_f DeltaLatitude_decode_aper; +per_type_encoder_f DeltaLatitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLatitude_H_ */ +#include diff --git a/vcits/rtcmem/DeltaLongitude.h b/vcits/rtcmem/DeltaLongitude.h new file mode 100644 index 0000000..fe9320f --- /dev/null +++ b/vcits/rtcmem/DeltaLongitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DeltaLongitude_H_ +#define _DeltaLongitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLongitude { + DeltaLongitude_oneMicrodegreeEast = 10, + DeltaLongitude_oneMicrodegreeWest = -10, + DeltaLongitude_unavailable = 131072 +} e_DeltaLongitude; + +/* DeltaLongitude */ +typedef long DeltaLongitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLongitude; +asn_struct_free_f DeltaLongitude_free; +asn_struct_print_f DeltaLongitude_print; +asn_constr_check_f DeltaLongitude_constraint; +ber_type_decoder_f DeltaLongitude_decode_ber; +der_type_encoder_f DeltaLongitude_encode_der; +xer_type_decoder_f DeltaLongitude_decode_xer; +xer_type_encoder_f DeltaLongitude_encode_xer; +oer_type_decoder_f DeltaLongitude_decode_oer; +oer_type_encoder_f DeltaLongitude_encode_oer; +per_type_decoder_f DeltaLongitude_decode_uper; +per_type_encoder_f DeltaLongitude_encode_uper; +per_type_decoder_f DeltaLongitude_decode_aper; +per_type_encoder_f DeltaLongitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLongitude_H_ */ +#include diff --git a/vcits/rtcmem/DeltaReferencePosition.h b/vcits/rtcmem/DeltaReferencePosition.h new file mode 100644 index 0000000..70c55ec --- /dev/null +++ b/vcits/rtcmem/DeltaReferencePosition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DeltaReferencePosition_H_ +#define _DeltaReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaLatitude.h" +#include "DeltaLongitude.h" +#include "DeltaAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaReferencePosition */ +typedef struct DeltaReferencePosition { + DeltaLatitude_t deltaLatitude; + DeltaLongitude_t deltaLongitude; + DeltaAltitude_t deltaAltitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DeltaReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaReferencePosition_H_ */ +#include diff --git a/vcits/rtcmem/DeltaTime.h b/vcits/rtcmem/DeltaTime.h new file mode 100644 index 0000000..96e8ae9 --- /dev/null +++ b/vcits/rtcmem/DeltaTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DeltaTime_H_ +#define _DeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaTime */ +typedef long DeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaTime; +asn_struct_free_f DeltaTime_free; +asn_struct_print_f DeltaTime_print; +asn_constr_check_f DeltaTime_constraint; +ber_type_decoder_f DeltaTime_decode_ber; +der_type_encoder_f DeltaTime_encode_der; +xer_type_decoder_f DeltaTime_decode_xer; +xer_type_encoder_f DeltaTime_encode_xer; +oer_type_decoder_f DeltaTime_decode_oer; +oer_type_encoder_f DeltaTime_encode_oer; +per_type_decoder_f DeltaTime_decode_uper; +per_type_encoder_f DeltaTime_encode_uper; +per_type_decoder_f DeltaTime_decode_aper; +per_type_encoder_f DeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaTime_H_ */ +#include diff --git a/vcits/rtcmem/DescriptiveName.h b/vcits/rtcmem/DescriptiveName.h new file mode 100644 index 0000000..2b3c291 --- /dev/null +++ b/vcits/rtcmem/DescriptiveName.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DescriptiveName_H_ +#define _DescriptiveName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DescriptiveName */ +typedef IA5String_t DescriptiveName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DescriptiveName; +asn_struct_free_f DescriptiveName_free; +asn_struct_print_f DescriptiveName_print; +asn_constr_check_f DescriptiveName_constraint; +ber_type_decoder_f DescriptiveName_decode_ber; +der_type_encoder_f DescriptiveName_encode_der; +xer_type_decoder_f DescriptiveName_decode_xer; +xer_type_encoder_f DescriptiveName_encode_xer; +oer_type_decoder_f DescriptiveName_decode_oer; +oer_type_encoder_f DescriptiveName_encode_oer; +per_type_decoder_f DescriptiveName_decode_uper; +per_type_encoder_f DescriptiveName_encode_uper; +per_type_decoder_f DescriptiveName_decode_aper; +per_type_encoder_f DescriptiveName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DescriptiveName_H_ */ +#include diff --git a/vcits/rtcmem/DigitalMap.h b/vcits/rtcmem/DigitalMap.h new file mode 100644 index 0000000..4c1de6b --- /dev/null +++ b/vcits/rtcmem/DigitalMap.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DigitalMap_H_ +#define _DigitalMap_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* DigitalMap */ +typedef struct DigitalMap { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DigitalMap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DigitalMap; + +#ifdef __cplusplus +} +#endif + +#endif /* _DigitalMap_H_ */ +#include diff --git a/vcits/rtcmem/DriveDirection.h b/vcits/rtcmem/DriveDirection.h new file mode 100644 index 0000000..8777fd1 --- /dev/null +++ b/vcits/rtcmem/DriveDirection.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DriveDirection_H_ +#define _DriveDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DriveDirection { + DriveDirection_forward = 0, + DriveDirection_backward = 1, + DriveDirection_unavailable = 2 +} e_DriveDirection; + +/* DriveDirection */ +typedef long DriveDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DriveDirection; +asn_struct_free_f DriveDirection_free; +asn_struct_print_f DriveDirection_print; +asn_constr_check_f DriveDirection_constraint; +ber_type_decoder_f DriveDirection_decode_ber; +der_type_encoder_f DriveDirection_encode_der; +xer_type_decoder_f DriveDirection_decode_xer; +xer_type_encoder_f DriveDirection_encode_xer; +oer_type_decoder_f DriveDirection_decode_oer; +oer_type_encoder_f DriveDirection_encode_oer; +per_type_decoder_f DriveDirection_decode_uper; +per_type_encoder_f DriveDirection_encode_uper; +per_type_decoder_f DriveDirection_decode_aper; +per_type_encoder_f DriveDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DriveDirection_H_ */ +#include diff --git a/vcits/rtcmem/DrivenLineOffsetLg.h b/vcits/rtcmem/DrivenLineOffsetLg.h new file mode 100644 index 0000000..e06c99c --- /dev/null +++ b/vcits/rtcmem/DrivenLineOffsetLg.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DrivenLineOffsetLg_H_ +#define _DrivenLineOffsetLg_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetLg */ +typedef long DrivenLineOffsetLg_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg; +asn_struct_free_f DrivenLineOffsetLg_free; +asn_struct_print_f DrivenLineOffsetLg_print; +asn_constr_check_f DrivenLineOffsetLg_constraint; +ber_type_decoder_f DrivenLineOffsetLg_decode_ber; +der_type_encoder_f DrivenLineOffsetLg_encode_der; +xer_type_decoder_f DrivenLineOffsetLg_decode_xer; +xer_type_encoder_f DrivenLineOffsetLg_encode_xer; +oer_type_decoder_f DrivenLineOffsetLg_decode_oer; +oer_type_encoder_f DrivenLineOffsetLg_encode_oer; +per_type_decoder_f DrivenLineOffsetLg_decode_uper; +per_type_encoder_f DrivenLineOffsetLg_encode_uper; +per_type_decoder_f DrivenLineOffsetLg_decode_aper; +per_type_encoder_f DrivenLineOffsetLg_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetLg_H_ */ +#include diff --git a/vcits/rtcmem/DrivenLineOffsetSm.h b/vcits/rtcmem/DrivenLineOffsetSm.h new file mode 100644 index 0000000..614da3f --- /dev/null +++ b/vcits/rtcmem/DrivenLineOffsetSm.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DrivenLineOffsetSm_H_ +#define _DrivenLineOffsetSm_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetSm */ +typedef long DrivenLineOffsetSm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm; +asn_struct_free_f DrivenLineOffsetSm_free; +asn_struct_print_f DrivenLineOffsetSm_print; +asn_constr_check_f DrivenLineOffsetSm_constraint; +ber_type_decoder_f DrivenLineOffsetSm_decode_ber; +der_type_encoder_f DrivenLineOffsetSm_encode_der; +xer_type_decoder_f DrivenLineOffsetSm_decode_xer; +xer_type_encoder_f DrivenLineOffsetSm_encode_xer; +oer_type_decoder_f DrivenLineOffsetSm_decode_oer; +oer_type_encoder_f DrivenLineOffsetSm_encode_oer; +per_type_decoder_f DrivenLineOffsetSm_decode_uper; +per_type_encoder_f DrivenLineOffsetSm_encode_uper; +per_type_decoder_f DrivenLineOffsetSm_decode_aper; +per_type_encoder_f DrivenLineOffsetSm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetSm_H_ */ +#include diff --git a/vcits/rtcmem/DrivingLaneStatus.h b/vcits/rtcmem/DrivingLaneStatus.h new file mode 100644 index 0000000..f8e27f2 --- /dev/null +++ b/vcits/rtcmem/DrivingLaneStatus.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _DrivingLaneStatus_H_ +#define _DrivingLaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivingLaneStatus */ +typedef BIT_STRING_t DrivingLaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus; +asn_struct_free_f DrivingLaneStatus_free; +asn_struct_print_f DrivingLaneStatus_print; +asn_constr_check_f DrivingLaneStatus_constraint; +ber_type_decoder_f DrivingLaneStatus_decode_ber; +der_type_encoder_f DrivingLaneStatus_encode_der; +xer_type_decoder_f DrivingLaneStatus_decode_xer; +xer_type_encoder_f DrivingLaneStatus_encode_xer; +oer_type_decoder_f DrivingLaneStatus_decode_oer; +oer_type_encoder_f DrivingLaneStatus_encode_oer; +per_type_decoder_f DrivingLaneStatus_decode_uper; +per_type_encoder_f DrivingLaneStatus_encode_uper; +per_type_decoder_f DrivingLaneStatus_decode_aper; +per_type_encoder_f DrivingLaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivingLaneStatus_H_ */ +#include diff --git a/vcits/rtcmem/Elevation.h b/vcits/rtcmem/Elevation.h new file mode 100644 index 0000000..6f9e898 --- /dev/null +++ b/vcits/rtcmem/Elevation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Elevation_H_ +#define _Elevation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Elevation */ +typedef long Elevation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Elevation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Elevation; +asn_struct_free_f Elevation_free; +asn_struct_print_f Elevation_print; +asn_constr_check_f Elevation_constraint; +ber_type_decoder_f Elevation_decode_ber; +der_type_encoder_f Elevation_encode_der; +xer_type_decoder_f Elevation_decode_xer; +xer_type_encoder_f Elevation_encode_xer; +oer_type_decoder_f Elevation_decode_oer; +oer_type_encoder_f Elevation_encode_oer; +per_type_decoder_f Elevation_decode_uper; +per_type_encoder_f Elevation_encode_uper; +per_type_decoder_f Elevation_decode_aper; +per_type_encoder_f Elevation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Elevation_H_ */ +#include diff --git a/vcits/rtcmem/ElevationConfidence.h b/vcits/rtcmem/ElevationConfidence.h new file mode 100644 index 0000000..bf9a99a --- /dev/null +++ b/vcits/rtcmem/ElevationConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ElevationConfidence_H_ +#define _ElevationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ElevationConfidence { + ElevationConfidence_unavailable = 0, + ElevationConfidence_elev_500_00 = 1, + ElevationConfidence_elev_200_00 = 2, + ElevationConfidence_elev_100_00 = 3, + ElevationConfidence_elev_050_00 = 4, + ElevationConfidence_elev_020_00 = 5, + ElevationConfidence_elev_010_00 = 6, + ElevationConfidence_elev_005_00 = 7, + ElevationConfidence_elev_002_00 = 8, + ElevationConfidence_elev_001_00 = 9, + ElevationConfidence_elev_000_50 = 10, + ElevationConfidence_elev_000_20 = 11, + ElevationConfidence_elev_000_10 = 12, + ElevationConfidence_elev_000_05 = 13, + ElevationConfidence_elev_000_02 = 14, + ElevationConfidence_elev_000_01 = 15 +} e_ElevationConfidence; + +/* ElevationConfidence */ +typedef long ElevationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ElevationConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1; +asn_struct_free_f ElevationConfidence_free; +asn_struct_print_f ElevationConfidence_print; +asn_constr_check_f ElevationConfidence_constraint; +ber_type_decoder_f ElevationConfidence_decode_ber; +der_type_encoder_f ElevationConfidence_encode_der; +xer_type_decoder_f ElevationConfidence_decode_xer; +xer_type_encoder_f ElevationConfidence_encode_xer; +oer_type_decoder_f ElevationConfidence_decode_oer; +oer_type_encoder_f ElevationConfidence_encode_oer; +per_type_decoder_f ElevationConfidence_decode_uper; +per_type_encoder_f ElevationConfidence_encode_uper; +per_type_decoder_f ElevationConfidence_decode_aper; +per_type_encoder_f ElevationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ElevationConfidence_H_ */ +#include diff --git a/vcits/rtcmem/EmbarkationStatus.h b/vcits/rtcmem/EmbarkationStatus.h new file mode 100644 index 0000000..ec5971f --- /dev/null +++ b/vcits/rtcmem/EmbarkationStatus.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _EmbarkationStatus_H_ +#define _EmbarkationStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EmbarkationStatus */ +typedef BOOLEAN_t EmbarkationStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus; +asn_struct_free_f EmbarkationStatus_free; +asn_struct_print_f EmbarkationStatus_print; +asn_constr_check_f EmbarkationStatus_constraint; +ber_type_decoder_f EmbarkationStatus_decode_ber; +der_type_encoder_f EmbarkationStatus_encode_der; +xer_type_decoder_f EmbarkationStatus_decode_xer; +xer_type_encoder_f EmbarkationStatus_encode_xer; +oer_type_decoder_f EmbarkationStatus_decode_oer; +oer_type_encoder_f EmbarkationStatus_encode_oer; +per_type_decoder_f EmbarkationStatus_decode_uper; +per_type_encoder_f EmbarkationStatus_encode_uper; +per_type_decoder_f EmbarkationStatus_decode_aper; +per_type_encoder_f EmbarkationStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmbarkationStatus_H_ */ +#include diff --git a/vcits/rtcmem/EmergencyPriority.h b/vcits/rtcmem/EmergencyPriority.h new file mode 100644 index 0000000..97f8530 --- /dev/null +++ b/vcits/rtcmem/EmergencyPriority.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _EmergencyPriority_H_ +#define _EmergencyPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyPriority { + EmergencyPriority_requestForRightOfWay = 0, + EmergencyPriority_requestForFreeCrossingAtATrafficLight = 1 +} e_EmergencyPriority; + +/* EmergencyPriority */ +typedef BIT_STRING_t EmergencyPriority_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyPriority; +asn_struct_free_f EmergencyPriority_free; +asn_struct_print_f EmergencyPriority_print; +asn_constr_check_f EmergencyPriority_constraint; +ber_type_decoder_f EmergencyPriority_decode_ber; +der_type_encoder_f EmergencyPriority_encode_der; +xer_type_decoder_f EmergencyPriority_decode_xer; +xer_type_encoder_f EmergencyPriority_encode_xer; +oer_type_decoder_f EmergencyPriority_decode_oer; +oer_type_encoder_f EmergencyPriority_encode_oer; +per_type_decoder_f EmergencyPriority_decode_uper; +per_type_encoder_f EmergencyPriority_encode_uper; +per_type_decoder_f EmergencyPriority_decode_aper; +per_type_encoder_f EmergencyPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyPriority_H_ */ +#include diff --git a/vcits/rtcmem/EmergencyVehicleApproachingSubCauseCode.h b/vcits/rtcmem/EmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 0000000..e6c7cae --- /dev/null +++ b/vcits/rtcmem/EmergencyVehicleApproachingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _EmergencyVehicleApproachingSubCauseCode_H_ +#define _EmergencyVehicleApproachingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyVehicleApproachingSubCauseCode { + EmergencyVehicleApproachingSubCauseCode_unavailable = 0, + EmergencyVehicleApproachingSubCauseCode_emergencyVehicleApproaching = 1, + EmergencyVehicleApproachingSubCauseCode_prioritizedVehicleApproaching = 2 +} e_EmergencyVehicleApproachingSubCauseCode; + +/* EmergencyVehicleApproachingSubCauseCode */ +typedef long EmergencyVehicleApproachingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode; +asn_struct_free_f EmergencyVehicleApproachingSubCauseCode_free; +asn_struct_print_f EmergencyVehicleApproachingSubCauseCode_print; +asn_constr_check_f EmergencyVehicleApproachingSubCauseCode_constraint; +ber_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_ber; +der_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_der; +xer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_xer; +xer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_xer; +oer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_oer; +oer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_oer; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_uper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_uper; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_aper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyVehicleApproachingSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/EmissionType.h b/vcits/rtcmem/EmissionType.h new file mode 100644 index 0000000..22b930a --- /dev/null +++ b/vcits/rtcmem/EmissionType.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _EmissionType_H_ +#define _EmissionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmissionType { + EmissionType_euro1 = 0, + EmissionType_euro2 = 1, + EmissionType_euro3 = 2, + EmissionType_euro4 = 3, + EmissionType_euro5 = 4, + EmissionType_euro6 = 5 + /* + * Enumeration is extensible + */ +} e_EmissionType; + +/* EmissionType */ +typedef long EmissionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EmissionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EmissionType; +extern const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1; +asn_struct_free_f EmissionType_free; +asn_struct_print_f EmissionType_print; +asn_constr_check_f EmissionType_constraint; +ber_type_decoder_f EmissionType_decode_ber; +der_type_encoder_f EmissionType_encode_der; +xer_type_decoder_f EmissionType_decode_xer; +xer_type_encoder_f EmissionType_encode_xer; +oer_type_decoder_f EmissionType_decode_oer; +oer_type_encoder_f EmissionType_encode_oer; +per_type_decoder_f EmissionType_decode_uper; +per_type_encoder_f EmissionType_encode_uper; +per_type_decoder_f EmissionType_decode_aper; +per_type_encoder_f EmissionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmissionType_H_ */ +#include diff --git a/vcits/rtcmem/EnabledLaneList.h b/vcits/rtcmem/EnabledLaneList.h new file mode 100644 index 0000000..7fa6248 --- /dev/null +++ b/vcits/rtcmem/EnabledLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _EnabledLaneList_H_ +#define _EnabledLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EnabledLaneList */ +typedef struct EnabledLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EnabledLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnabledLaneList; +extern asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_EnabledLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnabledLaneList_H_ */ +#include diff --git a/vcits/rtcmem/EnergyStorageType.h b/vcits/rtcmem/EnergyStorageType.h new file mode 100644 index 0000000..e9de9f0 --- /dev/null +++ b/vcits/rtcmem/EnergyStorageType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _EnergyStorageType_H_ +#define _EnergyStorageType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EnergyStorageType { + EnergyStorageType_hydrogenStorage = 0, + EnergyStorageType_electricEnergyStorage = 1, + EnergyStorageType_liquidPropaneGas = 2, + EnergyStorageType_compressedNaturalGas = 3, + EnergyStorageType_diesel = 4, + EnergyStorageType_gasoline = 5, + EnergyStorageType_ammonia = 6 +} e_EnergyStorageType; + +/* EnergyStorageType */ +typedef BIT_STRING_t EnergyStorageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnergyStorageType; +asn_struct_free_f EnergyStorageType_free; +asn_struct_print_f EnergyStorageType_print; +asn_constr_check_f EnergyStorageType_constraint; +ber_type_decoder_f EnergyStorageType_decode_ber; +der_type_encoder_f EnergyStorageType_encode_der; +xer_type_decoder_f EnergyStorageType_decode_xer; +xer_type_encoder_f EnergyStorageType_encode_xer; +oer_type_decoder_f EnergyStorageType_decode_oer; +oer_type_encoder_f EnergyStorageType_encode_oer; +per_type_decoder_f EnergyStorageType_decode_uper; +per_type_encoder_f EnergyStorageType_encode_uper; +per_type_decoder_f EnergyStorageType_decode_aper; +per_type_encoder_f EnergyStorageType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnergyStorageType_H_ */ +#include diff --git a/vcits/rtcmem/EuVehicleCategoryCode.h b/vcits/rtcmem/EuVehicleCategoryCode.h new file mode 100644 index 0000000..cdc6529 --- /dev/null +++ b/vcits/rtcmem/EuVehicleCategoryCode.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _EuVehicleCategoryCode_H_ +#define _EuVehicleCategoryCode_H_ + + +#include + +/* Including external dependencies */ +#include "EuVehicleCategoryL.h" +#include "EuVehicleCategoryM.h" +#include "EuVehicleCategoryN.h" +#include "EuVehicleCategoryO.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryCode_PR { + EuVehicleCategoryCode_PR_NOTHING, /* No components present */ + EuVehicleCategoryCode_PR_euVehicleCategoryL, + EuVehicleCategoryCode_PR_euVehicleCategoryM, + EuVehicleCategoryCode_PR_euVehicleCategoryN, + EuVehicleCategoryCode_PR_euVehicleCategoryO, + EuVehicleCategoryCode_PR_euVehilcleCategoryT, + EuVehicleCategoryCode_PR_euVehilcleCategoryG +} EuVehicleCategoryCode_PR; + +/* EuVehicleCategoryCode */ +typedef struct EuVehicleCategoryCode { + EuVehicleCategoryCode_PR present; + union EuVehicleCategoryCode_u { + EuVehicleCategoryL_t euVehicleCategoryL; + EuVehicleCategoryM_t euVehicleCategoryM; + EuVehicleCategoryN_t euVehicleCategoryN; + EuVehicleCategoryO_t euVehicleCategoryO; + NULL_t euVehilcleCategoryT; + NULL_t euVehilcleCategoryG; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EuVehicleCategoryCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryCode_H_ */ +#include diff --git a/vcits/rtcmem/EuVehicleCategoryL.h b/vcits/rtcmem/EuVehicleCategoryL.h new file mode 100644 index 0000000..5c4ad25 --- /dev/null +++ b/vcits/rtcmem/EuVehicleCategoryL.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _EuVehicleCategoryL_H_ +#define _EuVehicleCategoryL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryL { + EuVehicleCategoryL_l1 = 0, + EuVehicleCategoryL_l2 = 1, + EuVehicleCategoryL_l3 = 2, + EuVehicleCategoryL_l4 = 3, + EuVehicleCategoryL_l5 = 4, + EuVehicleCategoryL_l6 = 5, + EuVehicleCategoryL_l7 = 6 +} e_EuVehicleCategoryL; + +/* EuVehicleCategoryL */ +typedef long EuVehicleCategoryL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryL; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryL_specs_1; +asn_struct_free_f EuVehicleCategoryL_free; +asn_struct_print_f EuVehicleCategoryL_print; +asn_constr_check_f EuVehicleCategoryL_constraint; +ber_type_decoder_f EuVehicleCategoryL_decode_ber; +der_type_encoder_f EuVehicleCategoryL_encode_der; +xer_type_decoder_f EuVehicleCategoryL_decode_xer; +xer_type_encoder_f EuVehicleCategoryL_encode_xer; +oer_type_decoder_f EuVehicleCategoryL_decode_oer; +oer_type_encoder_f EuVehicleCategoryL_encode_oer; +per_type_decoder_f EuVehicleCategoryL_decode_uper; +per_type_encoder_f EuVehicleCategoryL_encode_uper; +per_type_decoder_f EuVehicleCategoryL_decode_aper; +per_type_encoder_f EuVehicleCategoryL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryL_H_ */ +#include diff --git a/vcits/rtcmem/EuVehicleCategoryM.h b/vcits/rtcmem/EuVehicleCategoryM.h new file mode 100644 index 0000000..9590157 --- /dev/null +++ b/vcits/rtcmem/EuVehicleCategoryM.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _EuVehicleCategoryM_H_ +#define _EuVehicleCategoryM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryM { + EuVehicleCategoryM_m1 = 0, + EuVehicleCategoryM_m2 = 1, + EuVehicleCategoryM_m3 = 2 +} e_EuVehicleCategoryM; + +/* EuVehicleCategoryM */ +typedef long EuVehicleCategoryM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryM; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryM_specs_1; +asn_struct_free_f EuVehicleCategoryM_free; +asn_struct_print_f EuVehicleCategoryM_print; +asn_constr_check_f EuVehicleCategoryM_constraint; +ber_type_decoder_f EuVehicleCategoryM_decode_ber; +der_type_encoder_f EuVehicleCategoryM_encode_der; +xer_type_decoder_f EuVehicleCategoryM_decode_xer; +xer_type_encoder_f EuVehicleCategoryM_encode_xer; +oer_type_decoder_f EuVehicleCategoryM_decode_oer; +oer_type_encoder_f EuVehicleCategoryM_encode_oer; +per_type_decoder_f EuVehicleCategoryM_decode_uper; +per_type_encoder_f EuVehicleCategoryM_encode_uper; +per_type_decoder_f EuVehicleCategoryM_decode_aper; +per_type_encoder_f EuVehicleCategoryM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryM_H_ */ +#include diff --git a/vcits/rtcmem/EuVehicleCategoryN.h b/vcits/rtcmem/EuVehicleCategoryN.h new file mode 100644 index 0000000..0fae4d5 --- /dev/null +++ b/vcits/rtcmem/EuVehicleCategoryN.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _EuVehicleCategoryN_H_ +#define _EuVehicleCategoryN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryN { + EuVehicleCategoryN_n1 = 0, + EuVehicleCategoryN_n2 = 1, + EuVehicleCategoryN_n3 = 2 +} e_EuVehicleCategoryN; + +/* EuVehicleCategoryN */ +typedef long EuVehicleCategoryN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryN; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryN_specs_1; +asn_struct_free_f EuVehicleCategoryN_free; +asn_struct_print_f EuVehicleCategoryN_print; +asn_constr_check_f EuVehicleCategoryN_constraint; +ber_type_decoder_f EuVehicleCategoryN_decode_ber; +der_type_encoder_f EuVehicleCategoryN_encode_der; +xer_type_decoder_f EuVehicleCategoryN_decode_xer; +xer_type_encoder_f EuVehicleCategoryN_encode_xer; +oer_type_decoder_f EuVehicleCategoryN_decode_oer; +oer_type_encoder_f EuVehicleCategoryN_encode_oer; +per_type_decoder_f EuVehicleCategoryN_decode_uper; +per_type_encoder_f EuVehicleCategoryN_encode_uper; +per_type_decoder_f EuVehicleCategoryN_decode_aper; +per_type_encoder_f EuVehicleCategoryN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryN_H_ */ +#include diff --git a/vcits/rtcmem/EuVehicleCategoryO.h b/vcits/rtcmem/EuVehicleCategoryO.h new file mode 100644 index 0000000..5ca823f --- /dev/null +++ b/vcits/rtcmem/EuVehicleCategoryO.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _EuVehicleCategoryO_H_ +#define _EuVehicleCategoryO_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryO { + EuVehicleCategoryO_o1 = 0, + EuVehicleCategoryO_o2 = 1, + EuVehicleCategoryO_o3 = 2, + EuVehicleCategoryO_o4 = 3 +} e_EuVehicleCategoryO; + +/* EuVehicleCategoryO */ +typedef long EuVehicleCategoryO_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryO_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryO; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryO_specs_1; +asn_struct_free_f EuVehicleCategoryO_free; +asn_struct_print_f EuVehicleCategoryO_print; +asn_constr_check_f EuVehicleCategoryO_constraint; +ber_type_decoder_f EuVehicleCategoryO_decode_ber; +der_type_encoder_f EuVehicleCategoryO_encode_der; +xer_type_decoder_f EuVehicleCategoryO_decode_xer; +xer_type_encoder_f EuVehicleCategoryO_encode_xer; +oer_type_decoder_f EuVehicleCategoryO_decode_oer; +oer_type_encoder_f EuVehicleCategoryO_encode_oer; +per_type_decoder_f EuVehicleCategoryO_decode_uper; +per_type_encoder_f EuVehicleCategoryO_encode_uper; +per_type_decoder_f EuVehicleCategoryO_decode_aper; +per_type_encoder_f EuVehicleCategoryO_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryO_H_ */ +#include diff --git a/vcits/rtcmem/EventHistory.h b/vcits/rtcmem/EventHistory.h new file mode 100644 index 0000000..acdd079 --- /dev/null +++ b/vcits/rtcmem/EventHistory.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _EventHistory_H_ +#define _EventHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EventPoint; + +/* EventHistory */ +typedef struct EventHistory { + A_SEQUENCE_OF(struct EventPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventHistory; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventHistory_H_ */ +#include diff --git a/vcits/rtcmem/EventPoint.h b/vcits/rtcmem/EventPoint.h new file mode 100644 index 0000000..99e3561 --- /dev/null +++ b/vcits/rtcmem/EventPoint.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _EventPoint_H_ +#define _EventPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include "InformationQuality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EventPoint */ +typedef struct EventPoint { + DeltaReferencePosition_t eventPosition; + PathDeltaTime_t *eventDeltaTime; /* OPTIONAL */ + InformationQuality_t informationQuality; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_EventPoint_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventPoint_H_ */ +#include diff --git a/vcits/rtcmem/ExceptionalCondition.h b/vcits/rtcmem/ExceptionalCondition.h new file mode 100644 index 0000000..3341f06 --- /dev/null +++ b/vcits/rtcmem/ExceptionalCondition.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ExceptionalCondition_H_ +#define _ExceptionalCondition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExceptionalCondition { + ExceptionalCondition_unknown = 0, + ExceptionalCondition_publicTransportPriority = 1, + ExceptionalCondition_emergencyVehiclePriority = 2, + ExceptionalCondition_trainPriority = 3, + ExceptionalCondition_bridgeOpen = 4, + ExceptionalCondition_vehicleHeight = 5, + ExceptionalCondition_weather = 6, + ExceptionalCondition_trafficJam = 7, + ExceptionalCondition_tunnelClosure = 8, + ExceptionalCondition_meteringActive = 9, + ExceptionalCondition_truckPriority = 10, + ExceptionalCondition_bicyclePlatoonPriority = 11, + ExceptionalCondition_vehiclePlatoonPriority = 12 + /* + * Enumeration is extensible + */ +} e_ExceptionalCondition; + +/* ExceptionalCondition */ +typedef long ExceptionalCondition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ExceptionalCondition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ExceptionalCondition; +extern const asn_INTEGER_specifics_t asn_SPC_ExceptionalCondition_specs_1; +asn_struct_free_f ExceptionalCondition_free; +asn_struct_print_f ExceptionalCondition_print; +asn_constr_check_f ExceptionalCondition_constraint; +ber_type_decoder_f ExceptionalCondition_decode_ber; +der_type_encoder_f ExceptionalCondition_encode_der; +xer_type_decoder_f ExceptionalCondition_decode_xer; +xer_type_encoder_f ExceptionalCondition_encode_xer; +oer_type_decoder_f ExceptionalCondition_decode_oer; +oer_type_encoder_f ExceptionalCondition_encode_oer; +per_type_decoder_f ExceptionalCondition_decode_uper; +per_type_encoder_f ExceptionalCondition_encode_uper; +per_type_decoder_f ExceptionalCondition_decode_aper; +per_type_encoder_f ExceptionalCondition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExceptionalCondition_H_ */ +#include diff --git a/vcits/rtcmem/ExteriorLights.h b/vcits/rtcmem/ExteriorLights.h new file mode 100644 index 0000000..50270b0 --- /dev/null +++ b/vcits/rtcmem/ExteriorLights.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ExteriorLights_H_ +#define _ExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExteriorLights { + ExteriorLights_lowBeamHeadlightsOn = 0, + ExteriorLights_highBeamHeadlightsOn = 1, + ExteriorLights_leftTurnSignalOn = 2, + ExteriorLights_rightTurnSignalOn = 3, + ExteriorLights_daytimeRunningLightsOn = 4, + ExteriorLights_reverseLightOn = 5, + ExteriorLights_fogLightOn = 6, + ExteriorLights_parkingLightsOn = 7 +} e_ExteriorLights; + +/* ExteriorLights */ +typedef BIT_STRING_t ExteriorLights_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ExteriorLights; +asn_struct_free_f ExteriorLights_free; +asn_struct_print_f ExteriorLights_print; +asn_constr_check_f ExteriorLights_constraint; +ber_type_decoder_f ExteriorLights_decode_ber; +der_type_encoder_f ExteriorLights_encode_der; +xer_type_decoder_f ExteriorLights_decode_xer; +xer_type_encoder_f ExteriorLights_encode_xer; +oer_type_decoder_f ExteriorLights_decode_oer; +oer_type_encoder_f ExteriorLights_encode_oer; +per_type_decoder_f ExteriorLights_decode_uper; +per_type_encoder_f ExteriorLights_encode_uper; +per_type_decoder_f ExteriorLights_decode_aper; +per_type_encoder_f ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExteriorLights_H_ */ +#include diff --git a/vcits/rtcmem/FreightContainerData.h b/vcits/rtcmem/FreightContainerData.h new file mode 100644 index 0000000..494ca6c --- /dev/null +++ b/vcits/rtcmem/FreightContainerData.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _FreightContainerData_H_ +#define _FreightContainerData_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FreightContainerData */ +typedef struct FreightContainerData { + BIT_STRING_t ownerCode; + long serialNumber; + long checkDigit; + long length; + long height; + long width; + long containerTypeCode; + long maximumGrossMass; + long tareMass; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreightContainerData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreightContainerData; +extern asn_SEQUENCE_specifics_t asn_SPC_FreightContainerData_specs_1; +extern asn_TYPE_member_t asn_MBR_FreightContainerData_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreightContainerData_H_ */ +#include diff --git a/vcits/rtcmem/FuelType.h b/vcits/rtcmem/FuelType.h new file mode 100644 index 0000000..1c160d3 --- /dev/null +++ b/vcits/rtcmem/FuelType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _FuelType_H_ +#define _FuelType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FuelType */ +typedef long FuelType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FuelType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FuelType; +asn_struct_free_f FuelType_free; +asn_struct_print_f FuelType_print; +asn_constr_check_f FuelType_constraint; +ber_type_decoder_f FuelType_decode_ber; +der_type_encoder_f FuelType_encode_der; +xer_type_decoder_f FuelType_decode_xer; +xer_type_encoder_f FuelType_encode_xer; +oer_type_decoder_f FuelType_decode_oer; +oer_type_encoder_f FuelType_encode_oer; +per_type_decoder_f FuelType_decode_uper; +per_type_encoder_f FuelType_encode_uper; +per_type_decoder_f FuelType_decode_aper; +per_type_encoder_f FuelType_encode_aper; +#define FuelType_unknownFuel ((FuelType_t)0) +#define FuelType_gasoline ((FuelType_t)1) +#define FuelType_ethanol ((FuelType_t)2) +#define FuelType_diesel ((FuelType_t)3) +#define FuelType_electric ((FuelType_t)4) +#define FuelType_hybrid ((FuelType_t)5) +#define FuelType_hydrogen ((FuelType_t)6) +#define FuelType_natGasLiquid ((FuelType_t)7) +#define FuelType_natGasComp ((FuelType_t)8) +#define FuelType_propane ((FuelType_t)9) + +#ifdef __cplusplus +} +#endif + +#endif /* _FuelType_H_ */ +#include diff --git a/vcits/rtcmem/FullPositionVector.h b/vcits/rtcmem/FullPositionVector.h new file mode 100644 index 0000000..58ba0e1 --- /dev/null +++ b/vcits/rtcmem/FullPositionVector.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _FullPositionVector_H_ +#define _FullPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include "Elevation.h" +#include "HeadingDSRC.h" +#include "TimeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DDateTime; +struct TransmissionAndSpeed; +struct PositionalAccuracy; +struct PositionConfidenceSet; +struct SpeedandHeadingandThrottleConfidence; + +/* FullPositionVector */ +typedef struct FullPositionVector { + struct DDateTime *utcTime; /* OPTIONAL */ + Longitude_t Long; + Latitude_t lat; + Elevation_t *elevation; /* OPTIONAL */ + HeadingDSRC_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + struct PositionalAccuracy *posAccuracy; /* OPTIONAL */ + TimeConfidence_t *timeConfidence; /* OPTIONAL */ + struct PositionConfidenceSet *posConfidence; /* OPTIONAL */ + struct SpeedandHeadingandThrottleConfidence *speedConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FullPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FullPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_FullPositionVector_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FullPositionVector_H_ */ +#include diff --git a/vcits/rtcmem/GNSSstatus.h b/vcits/rtcmem/GNSSstatus.h new file mode 100644 index 0000000..54b2cb2 --- /dev/null +++ b/vcits/rtcmem/GNSSstatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _GNSSstatus_H_ +#define _GNSSstatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GNSSstatus { + GNSSstatus_unavailable = 0, + GNSSstatus_isHealthy = 1, + GNSSstatus_isMonitored = 2, + GNSSstatus_baseStationType = 3, + GNSSstatus_aPDOPofUnder5 = 4, + GNSSstatus_inViewOfUnder5 = 5, + GNSSstatus_localCorrectionsPresent = 6, + GNSSstatus_networkCorrectionsPresent = 7 +} e_GNSSstatus; + +/* GNSSstatus */ +typedef BIT_STRING_t GNSSstatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GNSSstatus; +asn_struct_free_f GNSSstatus_free; +asn_struct_print_f GNSSstatus_print; +asn_constr_check_f GNSSstatus_constraint; +ber_type_decoder_f GNSSstatus_decode_ber; +der_type_encoder_f GNSSstatus_encode_der; +xer_type_decoder_f GNSSstatus_decode_xer; +xer_type_encoder_f GNSSstatus_encode_xer; +oer_type_decoder_f GNSSstatus_decode_oer; +oer_type_encoder_f GNSSstatus_encode_oer; +per_type_decoder_f GNSSstatus_decode_uper; +per_type_encoder_f GNSSstatus_encode_uper; +per_type_decoder_f GNSSstatus_decode_aper; +per_type_encoder_f GNSSstatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNSSstatus_H_ */ +#include diff --git a/vcits/rtcmem/GenericLane.h b/vcits/rtcmem/GenericLane.h new file mode 100644 index 0000000..5b6a477 --- /dev/null +++ b/vcits/rtcmem/GenericLane.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _GenericLane_H_ +#define _GenericLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "DescriptiveName.h" +#include "ApproachID.h" +#include "LaneAttributes.h" +#include "AllowedManeuvers.h" +#include "NodeListXY.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectsToList; +struct OverlayLaneList; +struct Reg_GenericLane; + +/* GenericLane */ +typedef struct GenericLane { + LaneID_t laneID; + DescriptiveName_t *name; /* OPTIONAL */ + ApproachID_t *ingressApproach; /* OPTIONAL */ + ApproachID_t *egressApproach; /* OPTIONAL */ + LaneAttributes_t laneAttributes; + AllowedManeuvers_t *maneuvers; /* OPTIONAL */ + NodeListXY_t nodeList; + struct ConnectsToList *connectsTo; /* OPTIONAL */ + struct OverlayLaneList *overlays; /* OPTIONAL */ + struct GenericLane__regional { + A_SEQUENCE_OF(struct Reg_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GenericLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1; +extern asn_TYPE_member_t asn_MBR_GenericLane_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GenericLane_H_ */ +#include diff --git a/vcits/rtcmem/GeoGraphicalLimit.h b/vcits/rtcmem/GeoGraphicalLimit.h new file mode 100644 index 0000000..ac0f39c --- /dev/null +++ b/vcits/rtcmem/GeoGraphicalLimit.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _GeoGraphicalLimit_H_ +#define _GeoGraphicalLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GeoGraphicalLimit { + GeoGraphicalLimit_globalRestriction = 0, + GeoGraphicalLimit_regionalRestriction = 1, + GeoGraphicalLimit_nationalRestriction = 2, + GeoGraphicalLimit_district = 3, + GeoGraphicalLimit_issuerCoverageRestriction = 4, + GeoGraphicalLimit_reservedForCEN1 = 5, + GeoGraphicalLimit_reservedForCEN2 = 6, + GeoGraphicalLimit_issuerSpecificRestriction = 7 +} e_GeoGraphicalLimit; + +/* GeoGraphicalLimit */ +typedef BIT_STRING_t GeoGraphicalLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GeoGraphicalLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GeoGraphicalLimit; +asn_struct_free_f GeoGraphicalLimit_free; +asn_struct_print_f GeoGraphicalLimit_print; +asn_constr_check_f GeoGraphicalLimit_constraint; +ber_type_decoder_f GeoGraphicalLimit_decode_ber; +der_type_encoder_f GeoGraphicalLimit_encode_der; +xer_type_decoder_f GeoGraphicalLimit_decode_xer; +xer_type_encoder_f GeoGraphicalLimit_encode_xer; +oer_type_decoder_f GeoGraphicalLimit_decode_oer; +oer_type_encoder_f GeoGraphicalLimit_encode_oer; +per_type_decoder_f GeoGraphicalLimit_decode_uper; +per_type_encoder_f GeoGraphicalLimit_encode_uper; +per_type_decoder_f GeoGraphicalLimit_decode_aper; +per_type_encoder_f GeoGraphicalLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GeoGraphicalLimit_H_ */ +#include diff --git a/vcits/rtcmem/HardShoulderStatus.h b/vcits/rtcmem/HardShoulderStatus.h new file mode 100644 index 0000000..beab0e5 --- /dev/null +++ b/vcits/rtcmem/HardShoulderStatus.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _HardShoulderStatus_H_ +#define _HardShoulderStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HardShoulderStatus { + HardShoulderStatus_availableForStopping = 0, + HardShoulderStatus_closed = 1, + HardShoulderStatus_availableForDriving = 2 +} e_HardShoulderStatus; + +/* HardShoulderStatus */ +typedef long HardShoulderStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus; +extern const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1; +asn_struct_free_f HardShoulderStatus_free; +asn_struct_print_f HardShoulderStatus_print; +asn_constr_check_f HardShoulderStatus_constraint; +ber_type_decoder_f HardShoulderStatus_decode_ber; +der_type_encoder_f HardShoulderStatus_encode_der; +xer_type_decoder_f HardShoulderStatus_decode_xer; +xer_type_encoder_f HardShoulderStatus_encode_xer; +oer_type_decoder_f HardShoulderStatus_decode_oer; +oer_type_encoder_f HardShoulderStatus_encode_oer; +per_type_decoder_f HardShoulderStatus_decode_uper; +per_type_encoder_f HardShoulderStatus_encode_uper; +per_type_decoder_f HardShoulderStatus_decode_aper; +per_type_encoder_f HardShoulderStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HardShoulderStatus_H_ */ +#include diff --git a/vcits/rtcmem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h b/vcits/rtcmem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..7c1213d --- /dev/null +++ b/vcits/rtcmem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_AnimalOnTheRoadSubCauseCode { + HazardousLocation_AnimalOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimals = 1, + HazardousLocation_AnimalOnTheRoadSubCauseCode_herdOfAnimals = 2, + HazardousLocation_AnimalOnTheRoadSubCauseCode_smallAnimals = 3, + HazardousLocation_AnimalOnTheRoadSubCauseCode_largeAnimals = 4 +} e_HazardousLocation_AnimalOnTheRoadSubCauseCode; + +/* HazardousLocation-AnimalOnTheRoadSubCauseCode */ +typedef long HazardousLocation_AnimalOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_AnimalOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_AnimalOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/HazardousLocation-DangerousCurveSubCauseCode.h b/vcits/rtcmem/HazardousLocation-DangerousCurveSubCauseCode.h new file mode 100644 index 0000000..cc62fb5 --- /dev/null +++ b/vcits/rtcmem/HazardousLocation-DangerousCurveSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _HazardousLocation_DangerousCurveSubCauseCode_H_ +#define _HazardousLocation_DangerousCurveSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_DangerousCurveSubCauseCode { + HazardousLocation_DangerousCurveSubCauseCode_unavailable = 0, + HazardousLocation_DangerousCurveSubCauseCode_dangerousLeftTurnCurve = 1, + HazardousLocation_DangerousCurveSubCauseCode_dangerousRightTurnCurve = 2, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithUnknownTurningDirection = 3, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithLeftTurn = 4, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithRightTurn = 5 +} e_HazardousLocation_DangerousCurveSubCauseCode; + +/* HazardousLocation-DangerousCurveSubCauseCode */ +typedef long HazardousLocation_DangerousCurveSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode; +asn_struct_free_f HazardousLocation_DangerousCurveSubCauseCode_free; +asn_struct_print_f HazardousLocation_DangerousCurveSubCauseCode_print; +asn_constr_check_f HazardousLocation_DangerousCurveSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_DangerousCurveSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h b/vcits/rtcmem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..6b6e30e --- /dev/null +++ b/vcits/rtcmem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_ObstacleOnTheRoadSubCauseCode { + HazardousLocation_ObstacleOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_shedLoad = 1, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfVehicles = 2, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfTyres = 3, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_bigObjects = 4, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_fallenTrees = 5, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_hubCaps = 6, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_waitingVehicles = 7 +} e_HazardousLocation_ObstacleOnTheRoadSubCauseCode; + +/* HazardousLocation-ObstacleOnTheRoadSubCauseCode */ +typedef long HazardousLocation_ObstacleOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/HazardousLocation-SurfaceConditionSubCauseCode.h b/vcits/rtcmem/HazardousLocation-SurfaceConditionSubCauseCode.h new file mode 100644 index 0000000..25c8dab --- /dev/null +++ b/vcits/rtcmem/HazardousLocation-SurfaceConditionSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _HazardousLocation_SurfaceConditionSubCauseCode_H_ +#define _HazardousLocation_SurfaceConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_SurfaceConditionSubCauseCode { + HazardousLocation_SurfaceConditionSubCauseCode_unavailable = 0, + HazardousLocation_SurfaceConditionSubCauseCode_rockfalls = 1, + HazardousLocation_SurfaceConditionSubCauseCode_earthquakeDamage = 2, + HazardousLocation_SurfaceConditionSubCauseCode_sewerCollapse = 3, + HazardousLocation_SurfaceConditionSubCauseCode_subsidence = 4, + HazardousLocation_SurfaceConditionSubCauseCode_snowDrifts = 5, + HazardousLocation_SurfaceConditionSubCauseCode_stormDamage = 6, + HazardousLocation_SurfaceConditionSubCauseCode_burstPipe = 7, + HazardousLocation_SurfaceConditionSubCauseCode_volcanoEruption = 8, + HazardousLocation_SurfaceConditionSubCauseCode_fallingIce = 9 +} e_HazardousLocation_SurfaceConditionSubCauseCode; + +/* HazardousLocation-SurfaceConditionSubCauseCode */ +typedef long HazardousLocation_SurfaceConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode; +asn_struct_free_f HazardousLocation_SurfaceConditionSubCauseCode_free; +asn_struct_print_f HazardousLocation_SurfaceConditionSubCauseCode_print; +asn_constr_check_f HazardousLocation_SurfaceConditionSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_SurfaceConditionSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/Heading.h b/vcits/rtcmem/Heading.h new file mode 100644 index 0000000..6a66325 --- /dev/null +++ b/vcits/rtcmem/Heading.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Heading_H_ +#define _Heading_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingValue.h" +#include "HeadingConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Heading */ +typedef struct Heading { + HeadingValue_t headingValue; + HeadingConfidence_t headingConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Heading_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Heading; + +#ifdef __cplusplus +} +#endif + +#endif /* _Heading_H_ */ +#include diff --git a/vcits/rtcmem/HeadingConfidence.h b/vcits/rtcmem/HeadingConfidence.h new file mode 100644 index 0000000..736b38c --- /dev/null +++ b/vcits/rtcmem/HeadingConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _HeadingConfidence_H_ +#define _HeadingConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidence { + HeadingConfidence_equalOrWithinZeroPointOneDegree = 1, + HeadingConfidence_equalOrWithinOneDegree = 10, + HeadingConfidence_outOfRange = 126, + HeadingConfidence_unavailable = 127 +} e_HeadingConfidence; + +/* HeadingConfidence */ +typedef long HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidence; +asn_struct_free_f HeadingConfidence_free; +asn_struct_print_f HeadingConfidence_print; +asn_constr_check_f HeadingConfidence_constraint; +ber_type_decoder_f HeadingConfidence_decode_ber; +der_type_encoder_f HeadingConfidence_encode_der; +xer_type_decoder_f HeadingConfidence_decode_xer; +xer_type_encoder_f HeadingConfidence_encode_xer; +oer_type_decoder_f HeadingConfidence_decode_oer; +oer_type_encoder_f HeadingConfidence_encode_oer; +per_type_decoder_f HeadingConfidence_decode_uper; +per_type_encoder_f HeadingConfidence_encode_uper; +per_type_decoder_f HeadingConfidence_decode_aper; +per_type_encoder_f HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidence_H_ */ +#include diff --git a/vcits/rtcmem/HeadingConfidenceDSRC.h b/vcits/rtcmem/HeadingConfidenceDSRC.h new file mode 100644 index 0000000..6808f61 --- /dev/null +++ b/vcits/rtcmem/HeadingConfidenceDSRC.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _HeadingConfidenceDSRC_H_ +#define _HeadingConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidenceDSRC { + HeadingConfidenceDSRC_unavailable = 0, + HeadingConfidenceDSRC_prec10deg = 1, + HeadingConfidenceDSRC_prec05deg = 2, + HeadingConfidenceDSRC_prec01deg = 3, + HeadingConfidenceDSRC_prec0_1deg = 4, + HeadingConfidenceDSRC_prec0_05deg = 5, + HeadingConfidenceDSRC_prec0_01deg = 6, + HeadingConfidenceDSRC_prec0_0125deg = 7 +} e_HeadingConfidenceDSRC; + +/* HeadingConfidenceDSRC */ +typedef long HeadingConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_HeadingConfidenceDSRC_specs_1; +asn_struct_free_f HeadingConfidenceDSRC_free; +asn_struct_print_f HeadingConfidenceDSRC_print; +asn_constr_check_f HeadingConfidenceDSRC_constraint; +ber_type_decoder_f HeadingConfidenceDSRC_decode_ber; +der_type_encoder_f HeadingConfidenceDSRC_encode_der; +xer_type_decoder_f HeadingConfidenceDSRC_decode_xer; +xer_type_encoder_f HeadingConfidenceDSRC_encode_xer; +oer_type_decoder_f HeadingConfidenceDSRC_decode_oer; +oer_type_encoder_f HeadingConfidenceDSRC_encode_oer; +per_type_decoder_f HeadingConfidenceDSRC_decode_uper; +per_type_encoder_f HeadingConfidenceDSRC_encode_uper; +per_type_decoder_f HeadingConfidenceDSRC_decode_aper; +per_type_encoder_f HeadingConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidenceDSRC_H_ */ +#include diff --git a/vcits/rtcmem/HeadingDSRC.h b/vcits/rtcmem/HeadingDSRC.h new file mode 100644 index 0000000..074aebd --- /dev/null +++ b/vcits/rtcmem/HeadingDSRC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _HeadingDSRC_H_ +#define _HeadingDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HeadingDSRC */ +typedef long HeadingDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingDSRC; +asn_struct_free_f HeadingDSRC_free; +asn_struct_print_f HeadingDSRC_print; +asn_constr_check_f HeadingDSRC_constraint; +ber_type_decoder_f HeadingDSRC_decode_ber; +der_type_encoder_f HeadingDSRC_encode_der; +xer_type_decoder_f HeadingDSRC_decode_xer; +xer_type_encoder_f HeadingDSRC_encode_xer; +oer_type_decoder_f HeadingDSRC_decode_oer; +oer_type_encoder_f HeadingDSRC_encode_oer; +per_type_decoder_f HeadingDSRC_decode_uper; +per_type_encoder_f HeadingDSRC_encode_uper; +per_type_decoder_f HeadingDSRC_decode_aper; +per_type_encoder_f HeadingDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingDSRC_H_ */ +#include diff --git a/vcits/rtcmem/HeadingValue.h b/vcits/rtcmem/HeadingValue.h new file mode 100644 index 0000000..8fc9106 --- /dev/null +++ b/vcits/rtcmem/HeadingValue.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _HeadingValue_H_ +#define _HeadingValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingValue { + HeadingValue_wgs84North = 0, + HeadingValue_wgs84East = 900, + HeadingValue_wgs84South = 1800, + HeadingValue_wgs84West = 2700, + HeadingValue_unavailable = 3601 +} e_HeadingValue; + +/* HeadingValue */ +typedef long HeadingValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingValue; +asn_struct_free_f HeadingValue_free; +asn_struct_print_f HeadingValue_print; +asn_constr_check_f HeadingValue_constraint; +ber_type_decoder_f HeadingValue_decode_ber; +der_type_encoder_f HeadingValue_encode_der; +xer_type_decoder_f HeadingValue_decode_xer; +xer_type_encoder_f HeadingValue_encode_xer; +oer_type_decoder_f HeadingValue_decode_oer; +oer_type_encoder_f HeadingValue_encode_oer; +per_type_decoder_f HeadingValue_decode_uper; +per_type_encoder_f HeadingValue_encode_uper; +per_type_decoder_f HeadingValue_decode_aper; +per_type_encoder_f HeadingValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingValue_H_ */ +#include diff --git a/vcits/rtcmem/HeightLonCarr.h b/vcits/rtcmem/HeightLonCarr.h new file mode 100644 index 0000000..ef35298 --- /dev/null +++ b/vcits/rtcmem/HeightLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _HeightLonCarr_H_ +#define _HeightLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeightLonCarr { + HeightLonCarr_oneCentimeter = 1, + HeightLonCarr_unavailable = 100 +} e_HeightLonCarr; + +/* HeightLonCarr */ +typedef long HeightLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HeightLonCarr; +asn_struct_free_f HeightLonCarr_free; +asn_struct_print_f HeightLonCarr_print; +asn_constr_check_f HeightLonCarr_constraint; +ber_type_decoder_f HeightLonCarr_decode_ber; +der_type_encoder_f HeightLonCarr_encode_der; +xer_type_decoder_f HeightLonCarr_decode_xer; +xer_type_encoder_f HeightLonCarr_encode_xer; +oer_type_decoder_f HeightLonCarr_decode_oer; +oer_type_encoder_f HeightLonCarr_encode_oer; +per_type_decoder_f HeightLonCarr_decode_uper; +per_type_encoder_f HeightLonCarr_encode_uper; +per_type_decoder_f HeightLonCarr_decode_aper; +per_type_encoder_f HeightLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeightLonCarr_H_ */ +#include diff --git a/vcits/rtcmem/HumanPresenceOnTheRoadSubCauseCode.h b/vcits/rtcmem/HumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..d8a76a8 --- /dev/null +++ b/vcits/rtcmem/HumanPresenceOnTheRoadSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _HumanPresenceOnTheRoadSubCauseCode_H_ +#define _HumanPresenceOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanPresenceOnTheRoadSubCauseCode { + HumanPresenceOnTheRoadSubCauseCode_unavailable = 0, + HumanPresenceOnTheRoadSubCauseCode_childrenOnRoadway = 1, + HumanPresenceOnTheRoadSubCauseCode_cyclistOnRoadway = 2, + HumanPresenceOnTheRoadSubCauseCode_motorcyclistOnRoadway = 3 +} e_HumanPresenceOnTheRoadSubCauseCode; + +/* HumanPresenceOnTheRoadSubCauseCode */ +typedef long HumanPresenceOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode; +asn_struct_free_f HumanPresenceOnTheRoadSubCauseCode_free; +asn_struct_print_f HumanPresenceOnTheRoadSubCauseCode_print; +asn_constr_check_f HumanPresenceOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanPresenceOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/HumanProblemSubCauseCode.h b/vcits/rtcmem/HumanProblemSubCauseCode.h new file mode 100644 index 0000000..e17271a --- /dev/null +++ b/vcits/rtcmem/HumanProblemSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _HumanProblemSubCauseCode_H_ +#define _HumanProblemSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanProblemSubCauseCode { + HumanProblemSubCauseCode_unavailable = 0, + HumanProblemSubCauseCode_glycemiaProblem = 1, + HumanProblemSubCauseCode_heartProblem = 2 +} e_HumanProblemSubCauseCode; + +/* HumanProblemSubCauseCode */ +typedef long HumanProblemSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode; +asn_struct_free_f HumanProblemSubCauseCode_free; +asn_struct_print_f HumanProblemSubCauseCode_print; +asn_constr_check_f HumanProblemSubCauseCode_constraint; +ber_type_decoder_f HumanProblemSubCauseCode_decode_ber; +der_type_encoder_f HumanProblemSubCauseCode_encode_der; +xer_type_decoder_f HumanProblemSubCauseCode_decode_xer; +xer_type_encoder_f HumanProblemSubCauseCode_encode_xer; +oer_type_decoder_f HumanProblemSubCauseCode_decode_oer; +oer_type_encoder_f HumanProblemSubCauseCode_encode_oer; +per_type_decoder_f HumanProblemSubCauseCode_decode_uper; +per_type_encoder_f HumanProblemSubCauseCode_encode_uper; +per_type_decoder_f HumanProblemSubCauseCode_decode_aper; +per_type_encoder_f HumanProblemSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanProblemSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/InformationQuality.h b/vcits/rtcmem/InformationQuality.h new file mode 100644 index 0000000..b54bead --- /dev/null +++ b/vcits/rtcmem/InformationQuality.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _InformationQuality_H_ +#define _InformationQuality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InformationQuality { + InformationQuality_unavailable = 0, + InformationQuality_lowest = 1, + InformationQuality_highest = 7 +} e_InformationQuality; + +/* InformationQuality */ +typedef long InformationQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_InformationQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_InformationQuality; +asn_struct_free_f InformationQuality_free; +asn_struct_print_f InformationQuality_print; +asn_constr_check_f InformationQuality_constraint; +ber_type_decoder_f InformationQuality_decode_ber; +der_type_encoder_f InformationQuality_encode_der; +xer_type_decoder_f InformationQuality_decode_xer; +xer_type_encoder_f InformationQuality_encode_xer; +oer_type_decoder_f InformationQuality_decode_oer; +oer_type_encoder_f InformationQuality_encode_oer; +per_type_decoder_f InformationQuality_decode_uper; +per_type_encoder_f InformationQuality_encode_uper; +per_type_decoder_f InformationQuality_decode_aper; +per_type_encoder_f InformationQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InformationQuality_H_ */ +#include diff --git a/vcits/rtcmem/IntersectionAccessPoint.h b/vcits/rtcmem/IntersectionAccessPoint.h new file mode 100644 index 0000000..2600ffa --- /dev/null +++ b/vcits/rtcmem/IntersectionAccessPoint.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _IntersectionAccessPoint_H_ +#define _IntersectionAccessPoint_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "ApproachID.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionAccessPoint_PR { + IntersectionAccessPoint_PR_NOTHING, /* No components present */ + IntersectionAccessPoint_PR_lane, + IntersectionAccessPoint_PR_approach, + IntersectionAccessPoint_PR_connection + /* Extensions may appear below */ + +} IntersectionAccessPoint_PR; + +/* IntersectionAccessPoint */ +typedef struct IntersectionAccessPoint { + IntersectionAccessPoint_PR present; + union IntersectionAccessPoint_u { + LaneID_t lane; + ApproachID_t approach; + LaneConnectionID_t connection; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionAccessPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint; +extern asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[3]; +extern asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionAccessPoint_H_ */ +#include diff --git a/vcits/rtcmem/IntersectionGeometry.h b/vcits/rtcmem/IntersectionGeometry.h new file mode 100644 index 0000000..1ca9d3e --- /dev/null +++ b/vcits/rtcmem/IntersectionGeometry.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _IntersectionGeometry_H_ +#define _IntersectionGeometry_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "LaneList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct PreemptPriorityList; +struct Reg_IntersectionGeometry; + +/* IntersectionGeometry */ +typedef struct IntersectionGeometry { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + LaneList_t laneSet; + struct PreemptPriorityList *preemptPriorityData; /* OPTIONAL */ + struct IntersectionGeometry__regional { + A_SEQUENCE_OF(struct Reg_IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometry_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometry_H_ */ +#include diff --git a/vcits/rtcmem/IntersectionGeometryList.h b/vcits/rtcmem/IntersectionGeometryList.h new file mode 100644 index 0000000..46f29a4 --- /dev/null +++ b/vcits/rtcmem/IntersectionGeometryList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _IntersectionGeometryList_H_ +#define _IntersectionGeometryList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometry; + +/* IntersectionGeometryList */ +typedef struct IntersectionGeometryList { + A_SEQUENCE_OF(struct IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometryList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometryList_H_ */ +#include diff --git a/vcits/rtcmem/IntersectionID.h b/vcits/rtcmem/IntersectionID.h new file mode 100644 index 0000000..efbbf90 --- /dev/null +++ b/vcits/rtcmem/IntersectionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _IntersectionID_H_ +#define _IntersectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionID */ +typedef long IntersectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionID; +asn_struct_free_f IntersectionID_free; +asn_struct_print_f IntersectionID_print; +asn_constr_check_f IntersectionID_constraint; +ber_type_decoder_f IntersectionID_decode_ber; +der_type_encoder_f IntersectionID_encode_der; +xer_type_decoder_f IntersectionID_decode_xer; +xer_type_encoder_f IntersectionID_encode_xer; +oer_type_decoder_f IntersectionID_decode_oer; +oer_type_encoder_f IntersectionID_encode_oer; +per_type_decoder_f IntersectionID_decode_uper; +per_type_encoder_f IntersectionID_encode_uper; +per_type_decoder_f IntersectionID_decode_aper; +per_type_encoder_f IntersectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionID_H_ */ +#include diff --git a/vcits/rtcmem/IntersectionReferenceID.h b/vcits/rtcmem/IntersectionReferenceID.h new file mode 100644 index 0000000..ab835c6 --- /dev/null +++ b/vcits/rtcmem/IntersectionReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _IntersectionReferenceID_H_ +#define _IntersectionReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionReferenceID */ +typedef struct IntersectionReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + IntersectionID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionReferenceID_H_ */ +#include diff --git a/vcits/rtcmem/IntersectionState-addGrpC.h b/vcits/rtcmem/IntersectionState-addGrpC.h new file mode 100644 index 0000000..18f16a1 --- /dev/null +++ b/vcits/rtcmem/IntersectionState-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _IntersectionState_addGrpC_H_ +#define _IntersectionState_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponseList; + +/* IntersectionState-addGrpC */ +typedef struct IntersectionState_addGrpC { + struct PrioritizationResponseList *activePrioritizations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_addGrpC_H_ */ +#include diff --git a/vcits/rtcmem/IntersectionState.h b/vcits/rtcmem/IntersectionState.h new file mode 100644 index 0000000..09fb471 --- /dev/null +++ b/vcits/rtcmem/IntersectionState.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _IntersectionState_H_ +#define _IntersectionState_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "MsgCount.h" +#include "IntersectionStatusObject.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MovementList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EnabledLaneList; +struct ManeuverAssistList; +struct Reg_IntersectionState; + +/* IntersectionState */ +typedef struct IntersectionState { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + MsgCount_t revision; + IntersectionStatusObject_t status; + MinuteOfTheYear_t *moy; /* OPTIONAL */ + DSecond_t *timeStamp; /* OPTIONAL */ + struct EnabledLaneList *enabledLanes; /* OPTIONAL */ + MovementList_t states; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct IntersectionState__regional { + A_SEQUENCE_OF(struct Reg_IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_H_ */ +#include diff --git a/vcits/rtcmem/IntersectionStateList.h b/vcits/rtcmem/IntersectionStateList.h new file mode 100644 index 0000000..4ed44ba --- /dev/null +++ b/vcits/rtcmem/IntersectionStateList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _IntersectionStateList_H_ +#define _IntersectionStateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionState; + +/* IntersectionStateList */ +typedef struct IntersectionStateList { + A_SEQUENCE_OF(struct IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStateList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStateList_H_ */ +#include diff --git a/vcits/rtcmem/IntersectionStatusObject.h b/vcits/rtcmem/IntersectionStatusObject.h new file mode 100644 index 0000000..188fcf2 --- /dev/null +++ b/vcits/rtcmem/IntersectionStatusObject.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _IntersectionStatusObject_H_ +#define _IntersectionStatusObject_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionStatusObject { + IntersectionStatusObject_manualControlIsEnabled = 0, + IntersectionStatusObject_stopTimeIsActivated = 1, + IntersectionStatusObject_failureFlash = 2, + IntersectionStatusObject_preemptIsActive = 3, + IntersectionStatusObject_signalPriorityIsActive = 4, + IntersectionStatusObject_fixedTimeOperation = 5, + IntersectionStatusObject_trafficDependentOperation = 6, + IntersectionStatusObject_standbyOperation = 7, + IntersectionStatusObject_failureMode = 8, + IntersectionStatusObject_off = 9, + IntersectionStatusObject_recentMAPmessageUpdate = 10, + IntersectionStatusObject_recentChangeInMAPassignedLanesIDsUsed = 11, + IntersectionStatusObject_noValidMAPisAvailableAtThisTime = 12, + IntersectionStatusObject_noValidSPATisAvailableAtThisTime = 13 +} e_IntersectionStatusObject; + +/* IntersectionStatusObject */ +typedef BIT_STRING_t IntersectionStatusObject_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject; +asn_struct_free_f IntersectionStatusObject_free; +asn_struct_print_f IntersectionStatusObject_print; +asn_constr_check_f IntersectionStatusObject_constraint; +ber_type_decoder_f IntersectionStatusObject_decode_ber; +der_type_encoder_f IntersectionStatusObject_encode_der; +xer_type_decoder_f IntersectionStatusObject_decode_xer; +xer_type_encoder_f IntersectionStatusObject_encode_xer; +oer_type_decoder_f IntersectionStatusObject_decode_oer; +oer_type_encoder_f IntersectionStatusObject_encode_oer; +per_type_decoder_f IntersectionStatusObject_decode_uper; +per_type_encoder_f IntersectionStatusObject_encode_uper; +per_type_decoder_f IntersectionStatusObject_decode_aper; +per_type_encoder_f IntersectionStatusObject_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStatusObject_H_ */ +#include diff --git a/vcits/rtcmem/Iso3833VehicleType.h b/vcits/rtcmem/Iso3833VehicleType.h new file mode 100644 index 0000000..eb9cfa1 --- /dev/null +++ b/vcits/rtcmem/Iso3833VehicleType.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Iso3833VehicleType_H_ +#define _Iso3833VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Iso3833VehicleType { + Iso3833VehicleType_passengerCar = 0, + Iso3833VehicleType_saloon = 1, + Iso3833VehicleType_convertibleSaloon = 2, + Iso3833VehicleType_pullmanSaloon = 3, + Iso3833VehicleType_stationWagon = 4, + Iso3833VehicleType_truckStationWagon = 5, + Iso3833VehicleType_coupe = 6, + Iso3833VehicleType_convertible = 7, + Iso3833VehicleType_multipurposePassengerCar = 8, + Iso3833VehicleType_forwardControlPassengerCar = 9, + Iso3833VehicleType_specialPassengerCar = 10, + Iso3833VehicleType_bus = 11, + Iso3833VehicleType_minibus = 12, + Iso3833VehicleType_urbanBus = 13, + Iso3833VehicleType_interurbanCoach = 14, + Iso3833VehicleType_longDistanceCoach = 15, + Iso3833VehicleType_articulatedBus = 16, + Iso3833VehicleType_trolleyBus = 17, + Iso3833VehicleType_specialBus = 18, + Iso3833VehicleType_commercialVehicle = 19, + Iso3833VehicleType_specialCommercialVehicle = 20, + Iso3833VehicleType_specialVehicle = 21, + Iso3833VehicleType_trailingTowingVehicle = 22, + Iso3833VehicleType_semiTrailerTowingVehicle = 23, + Iso3833VehicleType_trailer = 24, + Iso3833VehicleType_busTrailer = 25, + Iso3833VehicleType_generalPurposeTrailer = 26, + Iso3833VehicleType_caravan = 27, + Iso3833VehicleType_specialTrailer = 28, + Iso3833VehicleType_semiTrailer = 29, + Iso3833VehicleType_busSemiTrailer = 30, + Iso3833VehicleType_generalPurposeSemiTrailer = 31, + Iso3833VehicleType_specialSemiTrailer = 32, + Iso3833VehicleType_roadTrain = 33, + Iso3833VehicleType_passengerRoadTrain = 34, + Iso3833VehicleType_articulatedRoadTrain = 35, + Iso3833VehicleType_doubleRoadTrain = 36, + Iso3833VehicleType_compositeRoadTrain = 37, + Iso3833VehicleType_specialRoadTrain = 38, + Iso3833VehicleType_moped = 39, + Iso3833VehicleType_motorCycle = 40 +} e_Iso3833VehicleType; + +/* Iso3833VehicleType */ +typedef long Iso3833VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType; +asn_struct_free_f Iso3833VehicleType_free; +asn_struct_print_f Iso3833VehicleType_print; +asn_constr_check_f Iso3833VehicleType_constraint; +ber_type_decoder_f Iso3833VehicleType_decode_ber; +der_type_encoder_f Iso3833VehicleType_encode_der; +xer_type_decoder_f Iso3833VehicleType_decode_xer; +xer_type_encoder_f Iso3833VehicleType_encode_xer; +oer_type_decoder_f Iso3833VehicleType_decode_oer; +oer_type_encoder_f Iso3833VehicleType_encode_oer; +per_type_decoder_f Iso3833VehicleType_decode_uper; +per_type_encoder_f Iso3833VehicleType_encode_uper; +per_type_decoder_f Iso3833VehicleType_decode_aper; +per_type_encoder_f Iso3833VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Iso3833VehicleType_H_ */ +#include diff --git a/vcits/rtcmem/IssuerIdentifier.h b/vcits/rtcmem/IssuerIdentifier.h new file mode 100644 index 0000000..e31a080 --- /dev/null +++ b/vcits/rtcmem/IssuerIdentifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _IssuerIdentifier_H_ +#define _IssuerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IssuerIdentifier */ +typedef long IssuerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IssuerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IssuerIdentifier; +asn_struct_free_f IssuerIdentifier_free; +asn_struct_print_f IssuerIdentifier_print; +asn_constr_check_f IssuerIdentifier_constraint; +ber_type_decoder_f IssuerIdentifier_decode_ber; +der_type_encoder_f IssuerIdentifier_encode_der; +xer_type_decoder_f IssuerIdentifier_decode_xer; +xer_type_encoder_f IssuerIdentifier_encode_xer; +oer_type_decoder_f IssuerIdentifier_decode_oer; +oer_type_encoder_f IssuerIdentifier_encode_oer; +per_type_decoder_f IssuerIdentifier_decode_uper; +per_type_encoder_f IssuerIdentifier_encode_uper; +per_type_decoder_f IssuerIdentifier_decode_aper; +per_type_encoder_f IssuerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IssuerIdentifier_H_ */ +#include diff --git a/vcits/rtcmem/ItineraryPath.h b/vcits/rtcmem/ItineraryPath.h new file mode 100644 index 0000000..4790d9c --- /dev/null +++ b/vcits/rtcmem/ItineraryPath.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ItineraryPath_H_ +#define _ItineraryPath_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* ItineraryPath */ +typedef struct ItineraryPath { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItineraryPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItineraryPath; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItineraryPath_H_ */ +#include diff --git a/vcits/rtcmem/ItsPduHeader.h b/vcits/rtcmem/ItsPduHeader.h new file mode 100644 index 0000000..b36735b --- /dev/null +++ b/vcits/rtcmem/ItsPduHeader.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ItsPduHeader_H_ +#define _ItsPduHeader_H_ + + +#include + +/* Including external dependencies */ +#include +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ItsPduHeader__messageID { + ItsPduHeader__messageID_denm = 1, + ItsPduHeader__messageID_cam = 2, + ItsPduHeader__messageID_poi = 3, + ItsPduHeader__messageID_spatem = 4, + ItsPduHeader__messageID_mapem = 5, + ItsPduHeader__messageID_ivim = 6, + ItsPduHeader__messageID_ev_rsr = 7, + ItsPduHeader__messageID_tistpgtransaction = 8, + ItsPduHeader__messageID_srem = 9, + ItsPduHeader__messageID_ssem = 10, + ItsPduHeader__messageID_evcsn = 11, + ItsPduHeader__messageID_saem = 12, + ItsPduHeader__messageID_rtcmem = 13 +} e_ItsPduHeader__messageID; + +/* ItsPduHeader */ +typedef struct ItsPduHeader { + long protocolVersion; + long messageID; + StationID_t stationID; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsPduHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsPduHeader; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsPduHeader_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsPduHeader_H_ */ +#include diff --git a/vcits/rtcmem/ItsStationPosition.h b/vcits/rtcmem/ItsStationPosition.h new file mode 100644 index 0000000..51a6917 --- /dev/null +++ b/vcits/rtcmem/ItsStationPosition.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ItsStationPosition_H_ +#define _ItsStationPosition_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "LaneID.h" +#include "TimeReference.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeOffsetPointXY; + +/* ItsStationPosition */ +typedef struct ItsStationPosition { + StationID_t stationID; + LaneID_t *laneID; /* OPTIONAL */ + struct NodeOffsetPointXY *nodeXY; /* OPTIONAL */ + TimeReference_t *timeReference; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsStationPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsStationPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsStationPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsStationPosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsStationPosition_H_ */ +#include diff --git a/vcits/rtcmem/ItsStationPositionList.h b/vcits/rtcmem/ItsStationPositionList.h new file mode 100644 index 0000000..2466bad --- /dev/null +++ b/vcits/rtcmem/ItsStationPositionList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ItsStationPositionList_H_ +#define _ItsStationPositionList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ItsStationPosition; + +/* ItsStationPositionList */ +typedef struct ItsStationPositionList { + A_SEQUENCE_OF(struct ItsStationPosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsStationPositionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsStationPositionList; +extern asn_SET_OF_specifics_t asn_SPC_ItsStationPositionList_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsStationPositionList_1[1]; +extern asn_per_constraints_t asn_PER_type_ItsStationPositionList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsStationPositionList_H_ */ +#include diff --git a/vcits/rtcmem/LaneAttributes-Barrier.h b/vcits/rtcmem/LaneAttributes-Barrier.h new file mode 100644 index 0000000..1f9ebb5 --- /dev/null +++ b/vcits/rtcmem/LaneAttributes-Barrier.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneAttributes_Barrier_H_ +#define _LaneAttributes_Barrier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Barrier { + LaneAttributes_Barrier_median_RevocableLane = 0, + LaneAttributes_Barrier_median = 1, + LaneAttributes_Barrier_whiteLineHashing = 2, + LaneAttributes_Barrier_stripedLines = 3, + LaneAttributes_Barrier_doubleStripedLines = 4, + LaneAttributes_Barrier_trafficCones = 5, + LaneAttributes_Barrier_constructionBarrier = 6, + LaneAttributes_Barrier_trafficChannels = 7, + LaneAttributes_Barrier_lowCurbs = 8, + LaneAttributes_Barrier_highCurbs = 9 +} e_LaneAttributes_Barrier; + +/* LaneAttributes-Barrier */ +typedef BIT_STRING_t LaneAttributes_Barrier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier; +asn_struct_free_f LaneAttributes_Barrier_free; +asn_struct_print_f LaneAttributes_Barrier_print; +asn_constr_check_f LaneAttributes_Barrier_constraint; +ber_type_decoder_f LaneAttributes_Barrier_decode_ber; +der_type_encoder_f LaneAttributes_Barrier_encode_der; +xer_type_decoder_f LaneAttributes_Barrier_decode_xer; +xer_type_encoder_f LaneAttributes_Barrier_encode_xer; +oer_type_decoder_f LaneAttributes_Barrier_decode_oer; +oer_type_encoder_f LaneAttributes_Barrier_encode_oer; +per_type_decoder_f LaneAttributes_Barrier_decode_uper; +per_type_encoder_f LaneAttributes_Barrier_encode_uper; +per_type_decoder_f LaneAttributes_Barrier_decode_aper; +per_type_encoder_f LaneAttributes_Barrier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Barrier_H_ */ +#include diff --git a/vcits/rtcmem/LaneAttributes-Bike.h b/vcits/rtcmem/LaneAttributes-Bike.h new file mode 100644 index 0000000..d732ef1 --- /dev/null +++ b/vcits/rtcmem/LaneAttributes-Bike.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneAttributes_Bike_H_ +#define _LaneAttributes_Bike_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Bike { + LaneAttributes_Bike_bikeRevocableLane = 0, + LaneAttributes_Bike_pedestrianUseAllowed = 1, + LaneAttributes_Bike_isBikeFlyOverLane = 2, + LaneAttributes_Bike_fixedCycleTime = 3, + LaneAttributes_Bike_biDirectionalCycleTimes = 4, + LaneAttributes_Bike_isolatedByBarrier = 5, + LaneAttributes_Bike_unsignalizedSegmentsPresent = 6 +} e_LaneAttributes_Bike; + +/* LaneAttributes-Bike */ +typedef BIT_STRING_t LaneAttributes_Bike_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike; +asn_struct_free_f LaneAttributes_Bike_free; +asn_struct_print_f LaneAttributes_Bike_print; +asn_constr_check_f LaneAttributes_Bike_constraint; +ber_type_decoder_f LaneAttributes_Bike_decode_ber; +der_type_encoder_f LaneAttributes_Bike_encode_der; +xer_type_decoder_f LaneAttributes_Bike_decode_xer; +xer_type_encoder_f LaneAttributes_Bike_encode_xer; +oer_type_decoder_f LaneAttributes_Bike_decode_oer; +oer_type_encoder_f LaneAttributes_Bike_encode_oer; +per_type_decoder_f LaneAttributes_Bike_decode_uper; +per_type_encoder_f LaneAttributes_Bike_encode_uper; +per_type_decoder_f LaneAttributes_Bike_decode_aper; +per_type_encoder_f LaneAttributes_Bike_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Bike_H_ */ +#include diff --git a/vcits/rtcmem/LaneAttributes-Crosswalk.h b/vcits/rtcmem/LaneAttributes-Crosswalk.h new file mode 100644 index 0000000..7237887 --- /dev/null +++ b/vcits/rtcmem/LaneAttributes-Crosswalk.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneAttributes_Crosswalk_H_ +#define _LaneAttributes_Crosswalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Crosswalk { + LaneAttributes_Crosswalk_crosswalkRevocableLane = 0, + LaneAttributes_Crosswalk_bicyleUseAllowed = 1, + LaneAttributes_Crosswalk_isXwalkFlyOverLane = 2, + LaneAttributes_Crosswalk_fixedCycleTime = 3, + LaneAttributes_Crosswalk_biDirectionalCycleTimes = 4, + LaneAttributes_Crosswalk_hasPushToWalkButton = 5, + LaneAttributes_Crosswalk_audioSupport = 6, + LaneAttributes_Crosswalk_rfSignalRequestPresent = 7, + LaneAttributes_Crosswalk_unsignalizedSegmentsPresent = 8 +} e_LaneAttributes_Crosswalk; + +/* LaneAttributes-Crosswalk */ +typedef BIT_STRING_t LaneAttributes_Crosswalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk; +asn_struct_free_f LaneAttributes_Crosswalk_free; +asn_struct_print_f LaneAttributes_Crosswalk_print; +asn_constr_check_f LaneAttributes_Crosswalk_constraint; +ber_type_decoder_f LaneAttributes_Crosswalk_decode_ber; +der_type_encoder_f LaneAttributes_Crosswalk_encode_der; +xer_type_decoder_f LaneAttributes_Crosswalk_decode_xer; +xer_type_encoder_f LaneAttributes_Crosswalk_encode_xer; +oer_type_decoder_f LaneAttributes_Crosswalk_decode_oer; +oer_type_encoder_f LaneAttributes_Crosswalk_encode_oer; +per_type_decoder_f LaneAttributes_Crosswalk_decode_uper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_uper; +per_type_decoder_f LaneAttributes_Crosswalk_decode_aper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Crosswalk_H_ */ +#include diff --git a/vcits/rtcmem/LaneAttributes-Parking.h b/vcits/rtcmem/LaneAttributes-Parking.h new file mode 100644 index 0000000..c6019c0 --- /dev/null +++ b/vcits/rtcmem/LaneAttributes-Parking.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneAttributes_Parking_H_ +#define _LaneAttributes_Parking_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Parking { + LaneAttributes_Parking_parkingRevocableLane = 0, + LaneAttributes_Parking_parallelParkingInUse = 1, + LaneAttributes_Parking_headInParkingInUse = 2, + LaneAttributes_Parking_doNotParkZone = 3, + LaneAttributes_Parking_parkingForBusUse = 4, + LaneAttributes_Parking_parkingForTaxiUse = 5, + LaneAttributes_Parking_noPublicParkingUse = 6 +} e_LaneAttributes_Parking; + +/* LaneAttributes-Parking */ +typedef BIT_STRING_t LaneAttributes_Parking_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking; +asn_struct_free_f LaneAttributes_Parking_free; +asn_struct_print_f LaneAttributes_Parking_print; +asn_constr_check_f LaneAttributes_Parking_constraint; +ber_type_decoder_f LaneAttributes_Parking_decode_ber; +der_type_encoder_f LaneAttributes_Parking_encode_der; +xer_type_decoder_f LaneAttributes_Parking_decode_xer; +xer_type_encoder_f LaneAttributes_Parking_encode_xer; +oer_type_decoder_f LaneAttributes_Parking_decode_oer; +oer_type_encoder_f LaneAttributes_Parking_encode_oer; +per_type_decoder_f LaneAttributes_Parking_decode_uper; +per_type_encoder_f LaneAttributes_Parking_encode_uper; +per_type_decoder_f LaneAttributes_Parking_decode_aper; +per_type_encoder_f LaneAttributes_Parking_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Parking_H_ */ +#include diff --git a/vcits/rtcmem/LaneAttributes-Sidewalk.h b/vcits/rtcmem/LaneAttributes-Sidewalk.h new file mode 100644 index 0000000..42f0da4 --- /dev/null +++ b/vcits/rtcmem/LaneAttributes-Sidewalk.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneAttributes_Sidewalk_H_ +#define _LaneAttributes_Sidewalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Sidewalk { + LaneAttributes_Sidewalk_sidewalk_RevocableLane = 0, + LaneAttributes_Sidewalk_bicyleUseAllowed = 1, + LaneAttributes_Sidewalk_isSidewalkFlyOverLane = 2, + LaneAttributes_Sidewalk_walkBikes = 3 +} e_LaneAttributes_Sidewalk; + +/* LaneAttributes-Sidewalk */ +typedef BIT_STRING_t LaneAttributes_Sidewalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk; +asn_struct_free_f LaneAttributes_Sidewalk_free; +asn_struct_print_f LaneAttributes_Sidewalk_print; +asn_constr_check_f LaneAttributes_Sidewalk_constraint; +ber_type_decoder_f LaneAttributes_Sidewalk_decode_ber; +der_type_encoder_f LaneAttributes_Sidewalk_encode_der; +xer_type_decoder_f LaneAttributes_Sidewalk_decode_xer; +xer_type_encoder_f LaneAttributes_Sidewalk_encode_xer; +oer_type_decoder_f LaneAttributes_Sidewalk_decode_oer; +oer_type_encoder_f LaneAttributes_Sidewalk_encode_oer; +per_type_decoder_f LaneAttributes_Sidewalk_decode_uper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_uper; +per_type_decoder_f LaneAttributes_Sidewalk_decode_aper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Sidewalk_H_ */ +#include diff --git a/vcits/rtcmem/LaneAttributes-Striping.h b/vcits/rtcmem/LaneAttributes-Striping.h new file mode 100644 index 0000000..ef12a19 --- /dev/null +++ b/vcits/rtcmem/LaneAttributes-Striping.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneAttributes_Striping_H_ +#define _LaneAttributes_Striping_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Striping { + LaneAttributes_Striping_stripeToConnectingLanesRevocableLane = 0, + LaneAttributes_Striping_stripeDrawOnLeft = 1, + LaneAttributes_Striping_stripeDrawOnRight = 2, + LaneAttributes_Striping_stripeToConnectingLanesLeft = 3, + LaneAttributes_Striping_stripeToConnectingLanesRight = 4, + LaneAttributes_Striping_stripeToConnectingLanesAhead = 5 +} e_LaneAttributes_Striping; + +/* LaneAttributes-Striping */ +typedef BIT_STRING_t LaneAttributes_Striping_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping; +asn_struct_free_f LaneAttributes_Striping_free; +asn_struct_print_f LaneAttributes_Striping_print; +asn_constr_check_f LaneAttributes_Striping_constraint; +ber_type_decoder_f LaneAttributes_Striping_decode_ber; +der_type_encoder_f LaneAttributes_Striping_encode_der; +xer_type_decoder_f LaneAttributes_Striping_decode_xer; +xer_type_encoder_f LaneAttributes_Striping_encode_xer; +oer_type_decoder_f LaneAttributes_Striping_decode_oer; +oer_type_encoder_f LaneAttributes_Striping_encode_oer; +per_type_decoder_f LaneAttributes_Striping_decode_uper; +per_type_encoder_f LaneAttributes_Striping_encode_uper; +per_type_decoder_f LaneAttributes_Striping_decode_aper; +per_type_encoder_f LaneAttributes_Striping_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Striping_H_ */ +#include diff --git a/vcits/rtcmem/LaneAttributes-TrackedVehicle.h b/vcits/rtcmem/LaneAttributes-TrackedVehicle.h new file mode 100644 index 0000000..ac081dd --- /dev/null +++ b/vcits/rtcmem/LaneAttributes-TrackedVehicle.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneAttributes_TrackedVehicle_H_ +#define _LaneAttributes_TrackedVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_TrackedVehicle { + LaneAttributes_TrackedVehicle_spec_RevocableLane = 0, + LaneAttributes_TrackedVehicle_spec_commuterRailRoadTrack = 1, + LaneAttributes_TrackedVehicle_spec_lightRailRoadTrack = 2, + LaneAttributes_TrackedVehicle_spec_heavyRailRoadTrack = 3, + LaneAttributes_TrackedVehicle_spec_otherRailType = 4 +} e_LaneAttributes_TrackedVehicle; + +/* LaneAttributes-TrackedVehicle */ +typedef BIT_STRING_t LaneAttributes_TrackedVehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle; +asn_struct_free_f LaneAttributes_TrackedVehicle_free; +asn_struct_print_f LaneAttributes_TrackedVehicle_print; +asn_constr_check_f LaneAttributes_TrackedVehicle_constraint; +ber_type_decoder_f LaneAttributes_TrackedVehicle_decode_ber; +der_type_encoder_f LaneAttributes_TrackedVehicle_encode_der; +xer_type_decoder_f LaneAttributes_TrackedVehicle_decode_xer; +xer_type_encoder_f LaneAttributes_TrackedVehicle_encode_xer; +oer_type_decoder_f LaneAttributes_TrackedVehicle_decode_oer; +oer_type_encoder_f LaneAttributes_TrackedVehicle_encode_oer; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_uper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_uper; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_aper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_TrackedVehicle_H_ */ +#include diff --git a/vcits/rtcmem/LaneAttributes-Vehicle.h b/vcits/rtcmem/LaneAttributes-Vehicle.h new file mode 100644 index 0000000..b9840de --- /dev/null +++ b/vcits/rtcmem/LaneAttributes-Vehicle.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneAttributes_Vehicle_H_ +#define _LaneAttributes_Vehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Vehicle { + LaneAttributes_Vehicle_isVehicleRevocableLane = 0, + LaneAttributes_Vehicle_isVehicleFlyOverLane = 1, + LaneAttributes_Vehicle_hovLaneUseOnly = 2, + LaneAttributes_Vehicle_restrictedToBusUse = 3, + LaneAttributes_Vehicle_restrictedToTaxiUse = 4, + LaneAttributes_Vehicle_restrictedFromPublicUse = 5, + LaneAttributes_Vehicle_hasIRbeaconCoverage = 6, + LaneAttributes_Vehicle_permissionOnRequest = 7 +} e_LaneAttributes_Vehicle; + +/* LaneAttributes-Vehicle */ +typedef BIT_STRING_t LaneAttributes_Vehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle; +asn_struct_free_f LaneAttributes_Vehicle_free; +asn_struct_print_f LaneAttributes_Vehicle_print; +asn_constr_check_f LaneAttributes_Vehicle_constraint; +ber_type_decoder_f LaneAttributes_Vehicle_decode_ber; +der_type_encoder_f LaneAttributes_Vehicle_encode_der; +xer_type_decoder_f LaneAttributes_Vehicle_decode_xer; +xer_type_encoder_f LaneAttributes_Vehicle_encode_xer; +oer_type_decoder_f LaneAttributes_Vehicle_decode_oer; +oer_type_encoder_f LaneAttributes_Vehicle_encode_oer; +per_type_decoder_f LaneAttributes_Vehicle_decode_uper; +per_type_encoder_f LaneAttributes_Vehicle_encode_uper; +per_type_decoder_f LaneAttributes_Vehicle_decode_aper; +per_type_encoder_f LaneAttributes_Vehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Vehicle_H_ */ +#include diff --git a/vcits/rtcmem/LaneAttributes-addGrpC.h b/vcits/rtcmem/LaneAttributes-addGrpC.h new file mode 100644 index 0000000..42fc23e --- /dev/null +++ b/vcits/rtcmem/LaneAttributes-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneAttributes_addGrpC_H_ +#define _LaneAttributes_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleHeight.h" +#include "VehicleMass.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneAttributes-addGrpC */ +typedef struct LaneAttributes_addGrpC { + VehicleHeight_t *maxVehicleHeight; /* OPTIONAL */ + VehicleMass_t *maxVehicleWeight; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_addGrpC_H_ */ +#include diff --git a/vcits/rtcmem/LaneAttributes.h b/vcits/rtcmem/LaneAttributes.h new file mode 100644 index 0000000..2040a31 --- /dev/null +++ b/vcits/rtcmem/LaneAttributes.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneAttributes_H_ +#define _LaneAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "LaneDirection.h" +#include "LaneSharing.h" +#include "LaneTypeAttributes.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_LaneAttributes; + +/* LaneAttributes */ +typedef struct LaneAttributes { + LaneDirection_t directionalUse; + LaneSharing_t sharedWith; + LaneTypeAttributes_t laneType; + struct Reg_LaneAttributes *regional; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_H_ */ +#include diff --git a/vcits/rtcmem/LaneConnectionID.h b/vcits/rtcmem/LaneConnectionID.h new file mode 100644 index 0000000..2b7751f --- /dev/null +++ b/vcits/rtcmem/LaneConnectionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneConnectionID_H_ +#define _LaneConnectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneConnectionID */ +typedef long LaneConnectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneConnectionID; +asn_struct_free_f LaneConnectionID_free; +asn_struct_print_f LaneConnectionID_print; +asn_constr_check_f LaneConnectionID_constraint; +ber_type_decoder_f LaneConnectionID_decode_ber; +der_type_encoder_f LaneConnectionID_encode_der; +xer_type_decoder_f LaneConnectionID_decode_xer; +xer_type_encoder_f LaneConnectionID_encode_xer; +oer_type_decoder_f LaneConnectionID_decode_oer; +oer_type_encoder_f LaneConnectionID_encode_oer; +per_type_decoder_f LaneConnectionID_decode_uper; +per_type_encoder_f LaneConnectionID_encode_uper; +per_type_decoder_f LaneConnectionID_decode_aper; +per_type_encoder_f LaneConnectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneConnectionID_H_ */ +#include diff --git a/vcits/rtcmem/LaneDataAttribute.h b/vcits/rtcmem/LaneDataAttribute.h new file mode 100644 index 0000000..f58d983 --- /dev/null +++ b/vcits/rtcmem/LaneDataAttribute.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneDataAttribute_H_ +#define _LaneDataAttribute_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaAngle.h" +#include "RoadwayCrownAngle.h" +#include "MergeDivergeNodeAngle.h" +#include "SpeedLimitList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDataAttribute_PR { + LaneDataAttribute_PR_NOTHING, /* No components present */ + LaneDataAttribute_PR_pathEndPointAngle, + LaneDataAttribute_PR_laneCrownPointCenter, + LaneDataAttribute_PR_laneCrownPointLeft, + LaneDataAttribute_PR_laneCrownPointRight, + LaneDataAttribute_PR_laneAngle, + LaneDataAttribute_PR_speedLimits, + LaneDataAttribute_PR_regional + /* Extensions may appear below */ + +} LaneDataAttribute_PR; + +/* Forward declarations */ +struct Reg_LaneDataAttribute; + +/* LaneDataAttribute */ +typedef struct LaneDataAttribute { + LaneDataAttribute_PR present; + union LaneDataAttribute_u { + DeltaAngle_t pathEndPointAngle; + RoadwayCrownAngle_t laneCrownPointCenter; + RoadwayCrownAngle_t laneCrownPointLeft; + RoadwayCrownAngle_t laneCrownPointRight; + MergeDivergeNodeAngle_t laneAngle; + SpeedLimitList_t speedLimits; + struct LaneDataAttribute__regional { + A_SEQUENCE_OF(struct Reg_LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute; +extern asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[7]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttribute_H_ */ +#include diff --git a/vcits/rtcmem/LaneDataAttributeList.h b/vcits/rtcmem/LaneDataAttributeList.h new file mode 100644 index 0000000..29a431a --- /dev/null +++ b/vcits/rtcmem/LaneDataAttributeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneDataAttributeList_H_ +#define _LaneDataAttributeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LaneDataAttribute; + +/* LaneDataAttributeList */ +typedef struct LaneDataAttributeList { + A_SEQUENCE_OF(struct LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttributeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList; +extern asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttributeList_H_ */ +#include diff --git a/vcits/rtcmem/LaneDirection.h b/vcits/rtcmem/LaneDirection.h new file mode 100644 index 0000000..6a0ed01 --- /dev/null +++ b/vcits/rtcmem/LaneDirection.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneDirection_H_ +#define _LaneDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDirection { + LaneDirection_ingressPath = 0, + LaneDirection_egressPath = 1 +} e_LaneDirection; + +/* LaneDirection */ +typedef BIT_STRING_t LaneDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneDirection; +asn_struct_free_f LaneDirection_free; +asn_struct_print_f LaneDirection_print; +asn_constr_check_f LaneDirection_constraint; +ber_type_decoder_f LaneDirection_decode_ber; +der_type_encoder_f LaneDirection_encode_der; +xer_type_decoder_f LaneDirection_decode_xer; +xer_type_encoder_f LaneDirection_encode_xer; +oer_type_decoder_f LaneDirection_decode_oer; +oer_type_encoder_f LaneDirection_encode_oer; +per_type_decoder_f LaneDirection_decode_uper; +per_type_encoder_f LaneDirection_encode_uper; +per_type_decoder_f LaneDirection_decode_aper; +per_type_encoder_f LaneDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDirection_H_ */ +#include diff --git a/vcits/rtcmem/LaneID.h b/vcits/rtcmem/LaneID.h new file mode 100644 index 0000000..41dbf7c --- /dev/null +++ b/vcits/rtcmem/LaneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneID_H_ +#define _LaneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneID */ +typedef long LaneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneID; +asn_struct_free_f LaneID_free; +asn_struct_print_f LaneID_print; +asn_constr_check_f LaneID_constraint; +ber_type_decoder_f LaneID_decode_ber; +der_type_encoder_f LaneID_encode_der; +xer_type_decoder_f LaneID_decode_xer; +xer_type_encoder_f LaneID_encode_xer; +oer_type_decoder_f LaneID_decode_oer; +oer_type_encoder_f LaneID_encode_oer; +per_type_decoder_f LaneID_decode_uper; +per_type_encoder_f LaneID_encode_uper; +per_type_decoder_f LaneID_decode_aper; +per_type_encoder_f LaneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneID_H_ */ +#include diff --git a/vcits/rtcmem/LaneList.h b/vcits/rtcmem/LaneList.h new file mode 100644 index 0000000..7971707 --- /dev/null +++ b/vcits/rtcmem/LaneList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneList_H_ +#define _LaneList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* LaneList */ +typedef struct LaneList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneList; +extern asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneList_H_ */ +#include diff --git a/vcits/rtcmem/LanePosition.h b/vcits/rtcmem/LanePosition.h new file mode 100644 index 0000000..bf637ed --- /dev/null +++ b/vcits/rtcmem/LanePosition.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LanePosition_H_ +#define _LanePosition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LanePosition { + LanePosition_offTheRoad = -1, + LanePosition_innerHardShoulder = 0, + LanePosition_innermostDrivingLane = 1, + LanePosition_secondLaneFromInside = 2, + LanePosition_outerHardShoulder = 14 +} e_LanePosition; + +/* LanePosition */ +typedef long LanePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LanePosition; +asn_struct_free_f LanePosition_free; +asn_struct_print_f LanePosition_print; +asn_constr_check_f LanePosition_constraint; +ber_type_decoder_f LanePosition_decode_ber; +der_type_encoder_f LanePosition_encode_der; +xer_type_decoder_f LanePosition_decode_xer; +xer_type_encoder_f LanePosition_encode_xer; +oer_type_decoder_f LanePosition_decode_oer; +oer_type_encoder_f LanePosition_encode_oer; +per_type_decoder_f LanePosition_decode_uper; +per_type_encoder_f LanePosition_encode_uper; +per_type_decoder_f LanePosition_decode_aper; +per_type_encoder_f LanePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LanePosition_H_ */ +#include diff --git a/vcits/rtcmem/LaneSharing.h b/vcits/rtcmem/LaneSharing.h new file mode 100644 index 0000000..2435c9e --- /dev/null +++ b/vcits/rtcmem/LaneSharing.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneSharing_H_ +#define _LaneSharing_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneSharing { + LaneSharing_overlappingLaneDescriptionProvided = 0, + LaneSharing_multipleLanesTreatedAsOneLane = 1, + LaneSharing_otherNonMotorizedTrafficTypes = 2, + LaneSharing_individualMotorizedVehicleTraffic = 3, + LaneSharing_busVehicleTraffic = 4, + LaneSharing_taxiVehicleTraffic = 5, + LaneSharing_pedestriansTraffic = 6, + LaneSharing_cyclistVehicleTraffic = 7, + LaneSharing_trackedVehicleTraffic = 8, + LaneSharing_pedestrianTraffic = 9 +} e_LaneSharing; + +/* LaneSharing */ +typedef BIT_STRING_t LaneSharing_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneSharing_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneSharing; +asn_struct_free_f LaneSharing_free; +asn_struct_print_f LaneSharing_print; +asn_constr_check_f LaneSharing_constraint; +ber_type_decoder_f LaneSharing_decode_ber; +der_type_encoder_f LaneSharing_encode_der; +xer_type_decoder_f LaneSharing_decode_xer; +xer_type_encoder_f LaneSharing_encode_xer; +oer_type_decoder_f LaneSharing_decode_oer; +oer_type_encoder_f LaneSharing_encode_oer; +per_type_decoder_f LaneSharing_decode_uper; +per_type_encoder_f LaneSharing_encode_uper; +per_type_decoder_f LaneSharing_decode_aper; +per_type_encoder_f LaneSharing_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneSharing_H_ */ +#include diff --git a/vcits/rtcmem/LaneTypeAttributes.h b/vcits/rtcmem/LaneTypeAttributes.h new file mode 100644 index 0000000..8153b7c --- /dev/null +++ b/vcits/rtcmem/LaneTypeAttributes.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneTypeAttributes_H_ +#define _LaneTypeAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "LaneAttributes-Vehicle.h" +#include "LaneAttributes-Crosswalk.h" +#include "LaneAttributes-Bike.h" +#include "LaneAttributes-Sidewalk.h" +#include "LaneAttributes-Barrier.h" +#include "LaneAttributes-Striping.h" +#include "LaneAttributes-TrackedVehicle.h" +#include "LaneAttributes-Parking.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneTypeAttributes_PR { + LaneTypeAttributes_PR_NOTHING, /* No components present */ + LaneTypeAttributes_PR_vehicle, + LaneTypeAttributes_PR_crosswalk, + LaneTypeAttributes_PR_bikeLane, + LaneTypeAttributes_PR_sidewalk, + LaneTypeAttributes_PR_median, + LaneTypeAttributes_PR_striping, + LaneTypeAttributes_PR_trackedVehicle, + LaneTypeAttributes_PR_parking + /* Extensions may appear below */ + +} LaneTypeAttributes_PR; + +/* LaneTypeAttributes */ +typedef struct LaneTypeAttributes { + LaneTypeAttributes_PR present; + union LaneTypeAttributes_u { + LaneAttributes_Vehicle_t vehicle; + LaneAttributes_Crosswalk_t crosswalk; + LaneAttributes_Bike_t bikeLane; + LaneAttributes_Sidewalk_t sidewalk; + LaneAttributes_Barrier_t median; + LaneAttributes_Striping_t striping; + LaneAttributes_TrackedVehicle_t trackedVehicle; + LaneAttributes_Parking_t parking; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneTypeAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes; +extern asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[8]; +extern asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneTypeAttributes_H_ */ +#include diff --git a/vcits/rtcmem/LaneWidth.h b/vcits/rtcmem/LaneWidth.h new file mode 100644 index 0000000..d332cdd --- /dev/null +++ b/vcits/rtcmem/LaneWidth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LaneWidth_H_ +#define _LaneWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneWidth */ +typedef long LaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneWidth; +asn_struct_free_f LaneWidth_free; +asn_struct_print_f LaneWidth_print; +asn_constr_check_f LaneWidth_constraint; +ber_type_decoder_f LaneWidth_decode_ber; +der_type_encoder_f LaneWidth_encode_der; +xer_type_decoder_f LaneWidth_decode_xer; +xer_type_encoder_f LaneWidth_encode_xer; +oer_type_decoder_f LaneWidth_decode_oer; +oer_type_encoder_f LaneWidth_encode_oer; +per_type_decoder_f LaneWidth_decode_uper; +per_type_encoder_f LaneWidth_encode_uper; +per_type_decoder_f LaneWidth_decode_aper; +per_type_encoder_f LaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneWidth_H_ */ +#include diff --git a/vcits/rtcmem/LateralAcceleration.h b/vcits/rtcmem/LateralAcceleration.h new file mode 100644 index 0000000..fbb3426 --- /dev/null +++ b/vcits/rtcmem/LateralAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LateralAcceleration_H_ +#define _LateralAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LateralAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LateralAcceleration */ +typedef struct LateralAcceleration { + LateralAccelerationValue_t lateralAccelerationValue; + AccelerationConfidence_t lateralAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LateralAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LateralAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAcceleration_H_ */ +#include diff --git a/vcits/rtcmem/LateralAccelerationValue.h b/vcits/rtcmem/LateralAccelerationValue.h new file mode 100644 index 0000000..259b8d5 --- /dev/null +++ b/vcits/rtcmem/LateralAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LateralAccelerationValue_H_ +#define _LateralAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LateralAccelerationValue { + LateralAccelerationValue_pointOneMeterPerSecSquaredToRight = -1, + LateralAccelerationValue_pointOneMeterPerSecSquaredToLeft = 1, + LateralAccelerationValue_unavailable = 161 +} e_LateralAccelerationValue; + +/* LateralAccelerationValue */ +typedef long LateralAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue; +asn_struct_free_f LateralAccelerationValue_free; +asn_struct_print_f LateralAccelerationValue_print; +asn_constr_check_f LateralAccelerationValue_constraint; +ber_type_decoder_f LateralAccelerationValue_decode_ber; +der_type_encoder_f LateralAccelerationValue_encode_der; +xer_type_decoder_f LateralAccelerationValue_decode_xer; +xer_type_encoder_f LateralAccelerationValue_encode_xer; +oer_type_decoder_f LateralAccelerationValue_decode_oer; +oer_type_encoder_f LateralAccelerationValue_encode_oer; +per_type_decoder_f LateralAccelerationValue_decode_uper; +per_type_encoder_f LateralAccelerationValue_encode_uper; +per_type_decoder_f LateralAccelerationValue_decode_aper; +per_type_encoder_f LateralAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAccelerationValue_H_ */ +#include diff --git a/vcits/rtcmem/Latitude.h b/vcits/rtcmem/Latitude.h new file mode 100644 index 0000000..53e4073 --- /dev/null +++ b/vcits/rtcmem/Latitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Latitude_H_ +#define _Latitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Latitude { + Latitude_oneMicrodegreeNorth = 10, + Latitude_oneMicrodegreeSouth = -10, + Latitude_unavailable = 900000001 +} e_Latitude; + +/* Latitude */ +typedef long Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Latitude; +asn_struct_free_f Latitude_free; +asn_struct_print_f Latitude_print; +asn_constr_check_f Latitude_constraint; +ber_type_decoder_f Latitude_decode_ber; +der_type_encoder_f Latitude_encode_der; +xer_type_decoder_f Latitude_decode_xer; +xer_type_encoder_f Latitude_encode_xer; +oer_type_decoder_f Latitude_decode_oer; +oer_type_encoder_f Latitude_encode_oer; +per_type_decoder_f Latitude_decode_uper; +per_type_encoder_f Latitude_encode_uper; +per_type_decoder_f Latitude_decode_aper; +per_type_encoder_f Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Latitude_H_ */ +#include diff --git a/vcits/rtcmem/LayerID.h b/vcits/rtcmem/LayerID.h new file mode 100644 index 0000000..7d926ea --- /dev/null +++ b/vcits/rtcmem/LayerID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LayerID_H_ +#define _LayerID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LayerID */ +typedef long LayerID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerID; +asn_struct_free_f LayerID_free; +asn_struct_print_f LayerID_print; +asn_constr_check_f LayerID_constraint; +ber_type_decoder_f LayerID_decode_ber; +der_type_encoder_f LayerID_encode_der; +xer_type_decoder_f LayerID_decode_xer; +xer_type_encoder_f LayerID_encode_xer; +oer_type_decoder_f LayerID_decode_oer; +oer_type_encoder_f LayerID_encode_oer; +per_type_decoder_f LayerID_decode_uper; +per_type_encoder_f LayerID_encode_uper; +per_type_decoder_f LayerID_decode_aper; +per_type_encoder_f LayerID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerID_H_ */ +#include diff --git a/vcits/rtcmem/LayerType.h b/vcits/rtcmem/LayerType.h new file mode 100644 index 0000000..af78ed4 --- /dev/null +++ b/vcits/rtcmem/LayerType.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LayerType_H_ +#define _LayerType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LayerType { + LayerType_none = 0, + LayerType_mixedContent = 1, + LayerType_generalMapData = 2, + LayerType_intersectionData = 3, + LayerType_curveData = 4, + LayerType_roadwaySectionData = 5, + LayerType_parkingAreaData = 6, + LayerType_sharedLaneData = 7 + /* + * Enumeration is extensible + */ +} e_LayerType; + +/* LayerType */ +typedef long LayerType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerType; +extern const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1; +asn_struct_free_f LayerType_free; +asn_struct_print_f LayerType_print; +asn_constr_check_f LayerType_constraint; +ber_type_decoder_f LayerType_decode_ber; +der_type_encoder_f LayerType_encode_der; +xer_type_decoder_f LayerType_decode_xer; +xer_type_encoder_f LayerType_encode_xer; +oer_type_decoder_f LayerType_decode_oer; +oer_type_encoder_f LayerType_encode_oer; +per_type_decoder_f LayerType_decode_uper; +per_type_encoder_f LayerType_encode_uper; +per_type_decoder_f LayerType_decode_aper; +per_type_encoder_f LayerType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerType_H_ */ +#include diff --git a/vcits/rtcmem/LicPlateNumber.h b/vcits/rtcmem/LicPlateNumber.h new file mode 100644 index 0000000..80619b5 --- /dev/null +++ b/vcits/rtcmem/LicPlateNumber.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LicPlateNumber_H_ +#define _LicPlateNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LicPlateNumber */ +typedef OCTET_STRING_t LicPlateNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LicPlateNumber; +asn_struct_free_f LicPlateNumber_free; +asn_struct_print_f LicPlateNumber_print; +asn_constr_check_f LicPlateNumber_constraint; +ber_type_decoder_f LicPlateNumber_decode_ber; +der_type_encoder_f LicPlateNumber_encode_der; +xer_type_decoder_f LicPlateNumber_decode_xer; +xer_type_encoder_f LicPlateNumber_encode_xer; +oer_type_decoder_f LicPlateNumber_decode_oer; +oer_type_encoder_f LicPlateNumber_encode_oer; +per_type_decoder_f LicPlateNumber_decode_uper; +per_type_encoder_f LicPlateNumber_encode_uper; +per_type_decoder_f LicPlateNumber_decode_aper; +per_type_encoder_f LicPlateNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LicPlateNumber_H_ */ +#include diff --git a/vcits/rtcmem/LightBarSirenInUse.h b/vcits/rtcmem/LightBarSirenInUse.h new file mode 100644 index 0000000..49f95ee --- /dev/null +++ b/vcits/rtcmem/LightBarSirenInUse.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LightBarSirenInUse_H_ +#define _LightBarSirenInUse_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LightBarSirenInUse { + LightBarSirenInUse_lightBarActivated = 0, + LightBarSirenInUse_sirenActivated = 1 +} e_LightBarSirenInUse; + +/* LightBarSirenInUse */ +typedef BIT_STRING_t LightBarSirenInUse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse; +asn_struct_free_f LightBarSirenInUse_free; +asn_struct_print_f LightBarSirenInUse_print; +asn_constr_check_f LightBarSirenInUse_constraint; +ber_type_decoder_f LightBarSirenInUse_decode_ber; +der_type_encoder_f LightBarSirenInUse_encode_der; +xer_type_decoder_f LightBarSirenInUse_decode_xer; +xer_type_encoder_f LightBarSirenInUse_encode_xer; +oer_type_decoder_f LightBarSirenInUse_decode_oer; +oer_type_encoder_f LightBarSirenInUse_encode_oer; +per_type_decoder_f LightBarSirenInUse_decode_uper; +per_type_encoder_f LightBarSirenInUse_encode_uper; +per_type_decoder_f LightBarSirenInUse_decode_aper; +per_type_encoder_f LightBarSirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LightBarSirenInUse_H_ */ +#include diff --git a/vcits/rtcmem/Longitude.h b/vcits/rtcmem/Longitude.h new file mode 100644 index 0000000..5778448 --- /dev/null +++ b/vcits/rtcmem/Longitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Longitude_H_ +#define _Longitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Longitude { + Longitude_oneMicrodegreeEast = 10, + Longitude_oneMicrodegreeWest = -10, + Longitude_unavailable = 1800000001 +} e_Longitude; + +/* Longitude */ +typedef long Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Longitude; +asn_struct_free_f Longitude_free; +asn_struct_print_f Longitude_print; +asn_constr_check_f Longitude_constraint; +ber_type_decoder_f Longitude_decode_ber; +der_type_encoder_f Longitude_encode_der; +xer_type_decoder_f Longitude_decode_xer; +xer_type_encoder_f Longitude_encode_xer; +oer_type_decoder_f Longitude_decode_oer; +oer_type_encoder_f Longitude_encode_oer; +per_type_decoder_f Longitude_decode_uper; +per_type_encoder_f Longitude_encode_uper; +per_type_decoder_f Longitude_decode_aper; +per_type_encoder_f Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Longitude_H_ */ +#include diff --git a/vcits/rtcmem/LongitudinalAcceleration.h b/vcits/rtcmem/LongitudinalAcceleration.h new file mode 100644 index 0000000..83e864f --- /dev/null +++ b/vcits/rtcmem/LongitudinalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LongitudinalAcceleration_H_ +#define _LongitudinalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LongitudinalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LongitudinalAcceleration */ +typedef struct LongitudinalAcceleration { + LongitudinalAccelerationValue_t longitudinalAccelerationValue; + AccelerationConfidence_t longitudinalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LongitudinalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAcceleration_H_ */ +#include diff --git a/vcits/rtcmem/LongitudinalAccelerationValue.h b/vcits/rtcmem/LongitudinalAccelerationValue.h new file mode 100644 index 0000000..2feb6fe --- /dev/null +++ b/vcits/rtcmem/LongitudinalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _LongitudinalAccelerationValue_H_ +#define _LongitudinalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LongitudinalAccelerationValue { + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredForward = 1, + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredBackward = -1, + LongitudinalAccelerationValue_unavailable = 161 +} e_LongitudinalAccelerationValue; + +/* LongitudinalAccelerationValue */ +typedef long LongitudinalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue; +asn_struct_free_f LongitudinalAccelerationValue_free; +asn_struct_print_f LongitudinalAccelerationValue_print; +asn_constr_check_f LongitudinalAccelerationValue_constraint; +ber_type_decoder_f LongitudinalAccelerationValue_decode_ber; +der_type_encoder_f LongitudinalAccelerationValue_encode_der; +xer_type_decoder_f LongitudinalAccelerationValue_decode_xer; +xer_type_encoder_f LongitudinalAccelerationValue_encode_xer; +oer_type_decoder_f LongitudinalAccelerationValue_decode_oer; +oer_type_encoder_f LongitudinalAccelerationValue_encode_oer; +per_type_decoder_f LongitudinalAccelerationValue_decode_uper; +per_type_encoder_f LongitudinalAccelerationValue_encode_uper; +per_type_decoder_f LongitudinalAccelerationValue_decode_aper; +per_type_encoder_f LongitudinalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAccelerationValue_H_ */ +#include diff --git a/vcits/rtcmem/ManeuverAssistList.h b/vcits/rtcmem/ManeuverAssistList.h new file mode 100644 index 0000000..b83c41b --- /dev/null +++ b/vcits/rtcmem/ManeuverAssistList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ManeuverAssistList_H_ +#define _ManeuverAssistList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectionManeuverAssist; + +/* ManeuverAssistList */ +typedef struct ManeuverAssistList { + A_SEQUENCE_OF(struct ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ManeuverAssistList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList; +extern asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1; +extern asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[1]; +extern asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManeuverAssistList_H_ */ +#include diff --git a/vcits/rtcmem/ManufacturerIdentifier.h b/vcits/rtcmem/ManufacturerIdentifier.h new file mode 100644 index 0000000..658b559 --- /dev/null +++ b/vcits/rtcmem/ManufacturerIdentifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ManufacturerIdentifier_H_ +#define _ManufacturerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ManufacturerIdentifier */ +typedef long ManufacturerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ManufacturerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ManufacturerIdentifier; +asn_struct_free_f ManufacturerIdentifier_free; +asn_struct_print_f ManufacturerIdentifier_print; +asn_constr_check_f ManufacturerIdentifier_constraint; +ber_type_decoder_f ManufacturerIdentifier_decode_ber; +der_type_encoder_f ManufacturerIdentifier_encode_der; +xer_type_decoder_f ManufacturerIdentifier_decode_xer; +xer_type_encoder_f ManufacturerIdentifier_encode_xer; +oer_type_decoder_f ManufacturerIdentifier_decode_oer; +oer_type_encoder_f ManufacturerIdentifier_encode_oer; +per_type_decoder_f ManufacturerIdentifier_decode_uper; +per_type_encoder_f ManufacturerIdentifier_encode_uper; +per_type_decoder_f ManufacturerIdentifier_decode_aper; +per_type_encoder_f ManufacturerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManufacturerIdentifier_H_ */ +#include diff --git a/vcits/rtcmem/MapData-addGrpC.h b/vcits/rtcmem/MapData-addGrpC.h new file mode 100644 index 0000000..5994836 --- /dev/null +++ b/vcits/rtcmem/MapData-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _MapData_addGrpC_H_ +#define _MapData_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocationList; + +/* MapData-addGrpC */ +typedef struct MapData_addGrpC { + struct SignalHeadLocationList *signalHeadLocations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_addGrpC_H_ */ +#include diff --git a/vcits/rtcmem/MapData.h b/vcits/rtcmem/MapData.h new file mode 100644 index 0000000..2b36af4 --- /dev/null +++ b/vcits/rtcmem/MapData.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _MapData_H_ +#define _MapData_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "MsgCount.h" +#include "LayerType.h" +#include "LayerID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometryList; +struct RoadSegmentList; +struct DataParameters; +struct RestrictionClassList; +struct Reg_MapData; + +/* MapData */ +typedef struct MapData { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + MsgCount_t msgIssueRevision; + LayerType_t *layerType; /* OPTIONAL */ + LayerID_t *layerID; /* OPTIONAL */ + struct IntersectionGeometryList *intersections; /* OPTIONAL */ + struct RoadSegmentList *roadSegments; /* OPTIONAL */ + struct DataParameters *dataParameters; /* OPTIONAL */ + struct RestrictionClassList *restrictionList; /* OPTIONAL */ + struct MapData__regional { + A_SEQUENCE_OF(struct Reg_MapData) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_H_ */ +#include diff --git a/vcits/rtcmem/MergeDivergeNodeAngle.h b/vcits/rtcmem/MergeDivergeNodeAngle.h new file mode 100644 index 0000000..9937e25 --- /dev/null +++ b/vcits/rtcmem/MergeDivergeNodeAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _MergeDivergeNodeAngle_H_ +#define _MergeDivergeNodeAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MergeDivergeNodeAngle */ +typedef long MergeDivergeNodeAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle; +asn_struct_free_f MergeDivergeNodeAngle_free; +asn_struct_print_f MergeDivergeNodeAngle_print; +asn_constr_check_f MergeDivergeNodeAngle_constraint; +ber_type_decoder_f MergeDivergeNodeAngle_decode_ber; +der_type_encoder_f MergeDivergeNodeAngle_encode_der; +xer_type_decoder_f MergeDivergeNodeAngle_decode_xer; +xer_type_encoder_f MergeDivergeNodeAngle_encode_xer; +oer_type_decoder_f MergeDivergeNodeAngle_decode_oer; +oer_type_encoder_f MergeDivergeNodeAngle_encode_oer; +per_type_decoder_f MergeDivergeNodeAngle_decode_uper; +per_type_encoder_f MergeDivergeNodeAngle_encode_uper; +per_type_decoder_f MergeDivergeNodeAngle_decode_aper; +per_type_encoder_f MergeDivergeNodeAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MergeDivergeNodeAngle_H_ */ +#include diff --git a/vcits/rtcmem/MinuteOfTheYear.h b/vcits/rtcmem/MinuteOfTheYear.h new file mode 100644 index 0000000..3084a19 --- /dev/null +++ b/vcits/rtcmem/MinuteOfTheYear.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _MinuteOfTheYear_H_ +#define _MinuteOfTheYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MinuteOfTheYear */ +typedef long MinuteOfTheYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear; +asn_struct_free_f MinuteOfTheYear_free; +asn_struct_print_f MinuteOfTheYear_print; +asn_constr_check_f MinuteOfTheYear_constraint; +ber_type_decoder_f MinuteOfTheYear_decode_ber; +der_type_encoder_f MinuteOfTheYear_encode_der; +xer_type_decoder_f MinuteOfTheYear_decode_xer; +xer_type_encoder_f MinuteOfTheYear_encode_xer; +oer_type_decoder_f MinuteOfTheYear_decode_oer; +oer_type_encoder_f MinuteOfTheYear_encode_oer; +per_type_decoder_f MinuteOfTheYear_decode_uper; +per_type_encoder_f MinuteOfTheYear_encode_uper; +per_type_decoder_f MinuteOfTheYear_decode_aper; +per_type_encoder_f MinuteOfTheYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MinuteOfTheYear_H_ */ +#include diff --git a/vcits/rtcmem/MovementEvent-addGrpC.h b/vcits/rtcmem/MovementEvent-addGrpC.h new file mode 100644 index 0000000..61a8806 --- /dev/null +++ b/vcits/rtcmem/MovementEvent-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _MovementEvent_addGrpC_H_ +#define _MovementEvent_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "ExceptionalCondition.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MovementEvent-addGrpC */ +typedef struct MovementEvent_addGrpC { + ExceptionalCondition_t *stateChangeReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_addGrpC_H_ */ +#include diff --git a/vcits/rtcmem/MovementEvent.h b/vcits/rtcmem/MovementEvent.h new file mode 100644 index 0000000..04b391b --- /dev/null +++ b/vcits/rtcmem/MovementEvent.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _MovementEvent_H_ +#define _MovementEvent_H_ + + +#include + +/* Including external dependencies */ +#include "MovementPhaseState.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TimeChangeDetails; +struct AdvisorySpeedList; +struct Reg_MovementEvent; + +/* MovementEvent */ +typedef struct MovementEvent { + MovementPhaseState_t eventState; + struct TimeChangeDetails *timing; /* OPTIONAL */ + struct AdvisorySpeedList *speeds; /* OPTIONAL */ + struct MovementEvent__regional { + A_SEQUENCE_OF(struct Reg_MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_H_ */ +#include diff --git a/vcits/rtcmem/MovementEventList.h b/vcits/rtcmem/MovementEventList.h new file mode 100644 index 0000000..28c6a3d --- /dev/null +++ b/vcits/rtcmem/MovementEventList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _MovementEventList_H_ +#define _MovementEventList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementEvent; + +/* MovementEventList */ +typedef struct MovementEventList { + A_SEQUENCE_OF(struct MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEventList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEventList; +extern asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEventList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementEventList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEventList_H_ */ +#include diff --git a/vcits/rtcmem/MovementList.h b/vcits/rtcmem/MovementList.h new file mode 100644 index 0000000..0ff95c1 --- /dev/null +++ b/vcits/rtcmem/MovementList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _MovementList_H_ +#define _MovementList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementState; + +/* MovementList */ +typedef struct MovementList { + A_SEQUENCE_OF(struct MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementList; +extern asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementList_H_ */ +#include diff --git a/vcits/rtcmem/MovementPhaseState.h b/vcits/rtcmem/MovementPhaseState.h new file mode 100644 index 0000000..b2f0c8d --- /dev/null +++ b/vcits/rtcmem/MovementPhaseState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _MovementPhaseState_H_ +#define _MovementPhaseState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MovementPhaseState { + MovementPhaseState_unavailable = 0, + MovementPhaseState_dark = 1, + MovementPhaseState_stop_Then_Proceed = 2, + MovementPhaseState_stop_And_Remain = 3, + MovementPhaseState_pre_Movement = 4, + MovementPhaseState_permissive_Movement_Allowed = 5, + MovementPhaseState_protected_Movement_Allowed = 6, + MovementPhaseState_permissive_clearance = 7, + MovementPhaseState_protected_clearance = 8, + MovementPhaseState_caution_Conflicting_Traffic = 9 +} e_MovementPhaseState; + +/* MovementPhaseState */ +typedef long MovementPhaseState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MovementPhaseState; +extern const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1; +asn_struct_free_f MovementPhaseState_free; +asn_struct_print_f MovementPhaseState_print; +asn_constr_check_f MovementPhaseState_constraint; +ber_type_decoder_f MovementPhaseState_decode_ber; +der_type_encoder_f MovementPhaseState_encode_der; +xer_type_decoder_f MovementPhaseState_decode_xer; +xer_type_encoder_f MovementPhaseState_encode_xer; +oer_type_decoder_f MovementPhaseState_decode_oer; +oer_type_encoder_f MovementPhaseState_encode_oer; +per_type_decoder_f MovementPhaseState_decode_uper; +per_type_encoder_f MovementPhaseState_encode_uper; +per_type_decoder_f MovementPhaseState_decode_aper; +per_type_encoder_f MovementPhaseState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementPhaseState_H_ */ +#include diff --git a/vcits/rtcmem/MovementState.h b/vcits/rtcmem/MovementState.h new file mode 100644 index 0000000..e6210ae --- /dev/null +++ b/vcits/rtcmem/MovementState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _MovementState_H_ +#define _MovementState_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "SignalGroupID.h" +#include "MovementEventList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ManeuverAssistList; +struct Reg_MovementState; + +/* MovementState */ +typedef struct MovementState { + DescriptiveName_t *movementName; /* OPTIONAL */ + SignalGroupID_t signalGroup; + MovementEventList_t state_time_speed; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct MovementState__regional { + A_SEQUENCE_OF(struct Reg_MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementState_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementState_H_ */ +#include diff --git a/vcits/rtcmem/MsgCount.h b/vcits/rtcmem/MsgCount.h new file mode 100644 index 0000000..69c33e0 --- /dev/null +++ b/vcits/rtcmem/MsgCount.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _MsgCount_H_ +#define _MsgCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MsgCount */ +typedef long MsgCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MsgCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MsgCount; +asn_struct_free_f MsgCount_free; +asn_struct_print_f MsgCount_print; +asn_constr_check_f MsgCount_constraint; +ber_type_decoder_f MsgCount_decode_ber; +der_type_encoder_f MsgCount_encode_der; +xer_type_decoder_f MsgCount_decode_xer; +xer_type_encoder_f MsgCount_encode_xer; +oer_type_decoder_f MsgCount_decode_oer; +oer_type_encoder_f MsgCount_encode_oer; +per_type_decoder_f MsgCount_decode_uper; +per_type_encoder_f MsgCount_encode_uper; +per_type_decoder_f MsgCount_decode_aper; +per_type_encoder_f MsgCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MsgCount_H_ */ +#include diff --git a/vcits/rtcmem/Node-LLmD-64b.h b/vcits/rtcmem/Node-LLmD-64b.h new file mode 100644 index 0000000..238544b --- /dev/null +++ b/vcits/rtcmem/Node-LLmD-64b.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Node_LLmD_64b_H_ +#define _Node_LLmD_64b_H_ + + +#include + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LLmD-64b */ +typedef struct Node_LLmD_64b { + Longitude_t lon; + Latitude_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LLmD_64b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LLmD_64b_H_ */ +#include diff --git a/vcits/rtcmem/Node-XY-20b.h b/vcits/rtcmem/Node-XY-20b.h new file mode 100644 index 0000000..6996673 --- /dev/null +++ b/vcits/rtcmem/Node-XY-20b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Node_XY_20b_H_ +#define _Node_XY_20b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-20b */ +typedef struct Node_XY_20b { + Offset_B10_t x; + Offset_B10_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_20b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_20b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_20b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_20b_H_ */ +#include diff --git a/vcits/rtcmem/Node-XY-22b.h b/vcits/rtcmem/Node-XY-22b.h new file mode 100644 index 0000000..891948c --- /dev/null +++ b/vcits/rtcmem/Node-XY-22b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Node_XY_22b_H_ +#define _Node_XY_22b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B11.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-22b */ +typedef struct Node_XY_22b { + Offset_B11_t x; + Offset_B11_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_22b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_22b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_22b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_22b_H_ */ +#include diff --git a/vcits/rtcmem/Node-XY-24b.h b/vcits/rtcmem/Node-XY-24b.h new file mode 100644 index 0000000..5ab33c3 --- /dev/null +++ b/vcits/rtcmem/Node-XY-24b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Node_XY_24b_H_ +#define _Node_XY_24b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B12.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-24b */ +typedef struct Node_XY_24b { + Offset_B12_t x; + Offset_B12_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_24b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_24b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_24b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_24b_H_ */ +#include diff --git a/vcits/rtcmem/Node-XY-26b.h b/vcits/rtcmem/Node-XY-26b.h new file mode 100644 index 0000000..b87f115 --- /dev/null +++ b/vcits/rtcmem/Node-XY-26b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Node_XY_26b_H_ +#define _Node_XY_26b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B13.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-26b */ +typedef struct Node_XY_26b { + Offset_B13_t x; + Offset_B13_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_26b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_26b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_26b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_26b_H_ */ +#include diff --git a/vcits/rtcmem/Node-XY-28b.h b/vcits/rtcmem/Node-XY-28b.h new file mode 100644 index 0000000..6092d2a --- /dev/null +++ b/vcits/rtcmem/Node-XY-28b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Node_XY_28b_H_ +#define _Node_XY_28b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B14.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-28b */ +typedef struct Node_XY_28b { + Offset_B14_t x; + Offset_B14_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_28b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_28b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_28b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_28b_H_ */ +#include diff --git a/vcits/rtcmem/Node-XY-32b.h b/vcits/rtcmem/Node-XY-32b.h new file mode 100644 index 0000000..00e2ab0 --- /dev/null +++ b/vcits/rtcmem/Node-XY-32b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Node_XY_32b_H_ +#define _Node_XY_32b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B16.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-32b */ +typedef struct Node_XY_32b { + Offset_B16_t x; + Offset_B16_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_32b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_32b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_32b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_32b_H_ */ +#include diff --git a/vcits/rtcmem/Node.h b/vcits/rtcmem/Node.h new file mode 100644 index 0000000..e1dbc58 --- /dev/null +++ b/vcits/rtcmem/Node.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Node_H_ +#define _Node_H_ + + +#include + +/* Including external dependencies */ +#include +#include "LaneID.h" +#include "LaneConnectionID.h" +#include "IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node */ +typedef struct Node { + long id; + LaneID_t *lane; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + IntersectionID_t *intersectionID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_H_ */ +#include diff --git a/vcits/rtcmem/NodeAttributeSet-addGrpC.h b/vcits/rtcmem/NodeAttributeSet-addGrpC.h new file mode 100644 index 0000000..c9074ba --- /dev/null +++ b/vcits/rtcmem/NodeAttributeSet-addGrpC.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _NodeAttributeSet_addGrpC_H_ +#define _NodeAttributeSet_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "PtvRequestType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeLink; +struct Node; + +/* NodeAttributeSet-addGrpC */ +typedef struct NodeAttributeSet_addGrpC { + PtvRequestType_t *ptvRequest; /* OPTIONAL */ + struct NodeLink *nodeLink; /* OPTIONAL */ + struct Node *node; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSet_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSet_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSet_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSet_addGrpC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSet_addGrpC_H_ */ +#include diff --git a/vcits/rtcmem/NodeAttributeSetXY.h b/vcits/rtcmem/NodeAttributeSetXY.h new file mode 100644 index 0000000..4006d74 --- /dev/null +++ b/vcits/rtcmem/NodeAttributeSetXY.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _NodeAttributeSetXY_H_ +#define _NodeAttributeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeXYList; +struct SegmentAttributeXYList; +struct LaneDataAttributeList; +struct Reg_NodeAttributeSetXY; + +/* NodeAttributeSetXY */ +typedef struct NodeAttributeSetXY { + struct NodeAttributeXYList *localNode; /* OPTIONAL */ + struct SegmentAttributeXYList *disabled; /* OPTIONAL */ + struct SegmentAttributeXYList *enabled; /* OPTIONAL */ + struct LaneDataAttributeList *data; /* OPTIONAL */ + Offset_B10_t *dWidth; /* OPTIONAL */ + Offset_B10_t *dElevation; /* OPTIONAL */ + struct NodeAttributeSetXY__regional { + A_SEQUENCE_OF(struct Reg_NodeAttributeSetXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSetXY_H_ */ +#include diff --git a/vcits/rtcmem/NodeAttributeXY.h b/vcits/rtcmem/NodeAttributeXY.h new file mode 100644 index 0000000..ad59fe7 --- /dev/null +++ b/vcits/rtcmem/NodeAttributeXY.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _NodeAttributeXY_H_ +#define _NodeAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeAttributeXY { + NodeAttributeXY_reserved = 0, + NodeAttributeXY_stopLine = 1, + NodeAttributeXY_roundedCapStyleA = 2, + NodeAttributeXY_roundedCapStyleB = 3, + NodeAttributeXY_mergePoint = 4, + NodeAttributeXY_divergePoint = 5, + NodeAttributeXY_downstreamStopLine = 6, + NodeAttributeXY_downstreamStartNode = 7, + NodeAttributeXY_closedToTraffic = 8, + NodeAttributeXY_safeIsland = 9, + NodeAttributeXY_curbPresentAtStepOff = 10, + NodeAttributeXY_hydrantPresent = 11 + /* + * Enumeration is extensible + */ +} e_NodeAttributeXY; + +/* NodeAttributeXY */ +typedef long NodeAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1; +asn_struct_free_f NodeAttributeXY_free; +asn_struct_print_f NodeAttributeXY_print; +asn_constr_check_f NodeAttributeXY_constraint; +ber_type_decoder_f NodeAttributeXY_decode_ber; +der_type_encoder_f NodeAttributeXY_encode_der; +xer_type_decoder_f NodeAttributeXY_decode_xer; +xer_type_encoder_f NodeAttributeXY_encode_xer; +oer_type_decoder_f NodeAttributeXY_decode_oer; +oer_type_encoder_f NodeAttributeXY_encode_oer; +per_type_decoder_f NodeAttributeXY_decode_uper; +per_type_encoder_f NodeAttributeXY_encode_uper; +per_type_decoder_f NodeAttributeXY_decode_aper; +per_type_encoder_f NodeAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXY_H_ */ +#include diff --git a/vcits/rtcmem/NodeAttributeXYList.h b/vcits/rtcmem/NodeAttributeXYList.h new file mode 100644 index 0000000..8fe97fb --- /dev/null +++ b/vcits/rtcmem/NodeAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _NodeAttributeXYList_H_ +#define _NodeAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "NodeAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NodeAttributeXYList */ +typedef struct NodeAttributeXYList { + A_SEQUENCE_OF(NodeAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXYList_H_ */ +#include diff --git a/vcits/rtcmem/NodeLink.h b/vcits/rtcmem/NodeLink.h new file mode 100644 index 0000000..64302cb --- /dev/null +++ b/vcits/rtcmem/NodeLink.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _NodeLink_H_ +#define _NodeLink_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Node; + +/* NodeLink */ +typedef struct NodeLink { + A_SEQUENCE_OF(struct Node) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeLink_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeLink; +extern asn_SET_OF_specifics_t asn_SPC_NodeLink_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeLink_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeLink_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeLink_H_ */ +#include diff --git a/vcits/rtcmem/NodeListXY.h b/vcits/rtcmem/NodeListXY.h new file mode 100644 index 0000000..6e69241 --- /dev/null +++ b/vcits/rtcmem/NodeListXY.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _NodeListXY_H_ +#define _NodeListXY_H_ + + +#include + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "ComputedLane.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeListXY_PR { + NodeListXY_PR_NOTHING, /* No components present */ + NodeListXY_PR_nodes, + NodeListXY_PR_computed + /* Extensions may appear below */ + +} NodeListXY_PR; + +/* NodeListXY */ +typedef struct NodeListXY { + NodeListXY_PR present; + union NodeListXY_u { + NodeSetXY_t nodes; + ComputedLane_t computed; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeListXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeListXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeListXY_1[2]; +extern asn_per_constraints_t asn_PER_type_NodeListXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeListXY_H_ */ +#include diff --git a/vcits/rtcmem/NodeOffsetPointXY.h b/vcits/rtcmem/NodeOffsetPointXY.h new file mode 100644 index 0000000..00f90fb --- /dev/null +++ b/vcits/rtcmem/NodeOffsetPointXY.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _NodeOffsetPointXY_H_ +#define _NodeOffsetPointXY_H_ + + +#include + +/* Including external dependencies */ +#include "Node-XY-20b.h" +#include "Node-XY-22b.h" +#include "Node-XY-24b.h" +#include "Node-XY-26b.h" +#include "Node-XY-28b.h" +#include "Node-XY-32b.h" +#include "Node-LLmD-64b.h" +#include "RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeOffsetPointXY_PR { + NodeOffsetPointXY_PR_NOTHING, /* No components present */ + NodeOffsetPointXY_PR_node_XY1, + NodeOffsetPointXY_PR_node_XY2, + NodeOffsetPointXY_PR_node_XY3, + NodeOffsetPointXY_PR_node_XY4, + NodeOffsetPointXY_PR_node_XY5, + NodeOffsetPointXY_PR_node_XY6, + NodeOffsetPointXY_PR_node_LatLon, + NodeOffsetPointXY_PR_regional +} NodeOffsetPointXY_PR; + +/* NodeOffsetPointXY */ +typedef struct NodeOffsetPointXY { + NodeOffsetPointXY_PR present; + union NodeOffsetPointXY_u { + Node_XY_20b_t node_XY1; + Node_XY_22b_t node_XY2; + Node_XY_24b_t node_XY3; + Node_XY_26b_t node_XY4; + Node_XY_28b_t node_XY5; + Node_XY_32b_t node_XY6; + Node_LLmD_64b_t node_LatLon; + Reg_NodeOffsetPointXY_t regional; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeOffsetPointXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[8]; +extern asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeOffsetPointXY_H_ */ +#include diff --git a/vcits/rtcmem/NodeSetXY.h b/vcits/rtcmem/NodeSetXY.h new file mode 100644 index 0000000..61641f9 --- /dev/null +++ b/vcits/rtcmem/NodeSetXY.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _NodeSetXY_H_ +#define _NodeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeXY; + +/* NodeSetXY */ +typedef struct NodeSetXY { + A_SEQUENCE_OF(struct NodeXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeSetXY; +extern asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeSetXY_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeSetXY_H_ */ +#include diff --git a/vcits/rtcmem/NodeXY.h b/vcits/rtcmem/NodeXY.h new file mode 100644 index 0000000..59a69d8 --- /dev/null +++ b/vcits/rtcmem/NodeXY.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _NodeXY_H_ +#define _NodeXY_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeSetXY; + +/* NodeXY */ +typedef struct NodeXY { + NodeOffsetPointXY_t delta; + struct NodeAttributeSetXY *attributes; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeXY_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeXY_H_ */ +#include diff --git a/vcits/rtcmem/NumberOfOccupants.h b/vcits/rtcmem/NumberOfOccupants.h new file mode 100644 index 0000000..c9efea4 --- /dev/null +++ b/vcits/rtcmem/NumberOfOccupants.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _NumberOfOccupants_H_ +#define _NumberOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NumberOfOccupants { + NumberOfOccupants_oneOccupant = 1, + NumberOfOccupants_unavailable = 127 +} e_NumberOfOccupants; + +/* NumberOfOccupants */ +typedef long NumberOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants; +asn_struct_free_f NumberOfOccupants_free; +asn_struct_print_f NumberOfOccupants_print; +asn_constr_check_f NumberOfOccupants_constraint; +ber_type_decoder_f NumberOfOccupants_decode_ber; +der_type_encoder_f NumberOfOccupants_encode_der; +xer_type_decoder_f NumberOfOccupants_decode_xer; +xer_type_encoder_f NumberOfOccupants_encode_xer; +oer_type_decoder_f NumberOfOccupants_decode_oer; +oer_type_encoder_f NumberOfOccupants_encode_oer; +per_type_decoder_f NumberOfOccupants_decode_uper; +per_type_encoder_f NumberOfOccupants_encode_uper; +per_type_decoder_f NumberOfOccupants_decode_aper; +per_type_encoder_f NumberOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NumberOfOccupants_H_ */ +#include diff --git a/vcits/rtcmem/Offset-B09.h b/vcits/rtcmem/Offset-B09.h new file mode 100644 index 0000000..9a855bd --- /dev/null +++ b/vcits/rtcmem/Offset-B09.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Offset_B09_H_ +#define _Offset_B09_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B09 */ +typedef long Offset_B09_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B09_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B09; +asn_struct_free_f Offset_B09_free; +asn_struct_print_f Offset_B09_print; +asn_constr_check_f Offset_B09_constraint; +ber_type_decoder_f Offset_B09_decode_ber; +der_type_encoder_f Offset_B09_encode_der; +xer_type_decoder_f Offset_B09_decode_xer; +xer_type_encoder_f Offset_B09_encode_xer; +oer_type_decoder_f Offset_B09_decode_oer; +oer_type_encoder_f Offset_B09_encode_oer; +per_type_decoder_f Offset_B09_decode_uper; +per_type_encoder_f Offset_B09_encode_uper; +per_type_decoder_f Offset_B09_decode_aper; +per_type_encoder_f Offset_B09_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B09_H_ */ +#include diff --git a/vcits/rtcmem/Offset-B10.h b/vcits/rtcmem/Offset-B10.h new file mode 100644 index 0000000..fbcb9ad --- /dev/null +++ b/vcits/rtcmem/Offset-B10.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Offset_B10_H_ +#define _Offset_B10_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B10 */ +typedef long Offset_B10_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B10_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B10; +asn_struct_free_f Offset_B10_free; +asn_struct_print_f Offset_B10_print; +asn_constr_check_f Offset_B10_constraint; +ber_type_decoder_f Offset_B10_decode_ber; +der_type_encoder_f Offset_B10_encode_der; +xer_type_decoder_f Offset_B10_decode_xer; +xer_type_encoder_f Offset_B10_encode_xer; +oer_type_decoder_f Offset_B10_decode_oer; +oer_type_encoder_f Offset_B10_encode_oer; +per_type_decoder_f Offset_B10_decode_uper; +per_type_encoder_f Offset_B10_encode_uper; +per_type_decoder_f Offset_B10_decode_aper; +per_type_encoder_f Offset_B10_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B10_H_ */ +#include diff --git a/vcits/rtcmem/Offset-B11.h b/vcits/rtcmem/Offset-B11.h new file mode 100644 index 0000000..592a7c1 --- /dev/null +++ b/vcits/rtcmem/Offset-B11.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Offset_B11_H_ +#define _Offset_B11_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B11 */ +typedef long Offset_B11_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B11_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B11; +asn_struct_free_f Offset_B11_free; +asn_struct_print_f Offset_B11_print; +asn_constr_check_f Offset_B11_constraint; +ber_type_decoder_f Offset_B11_decode_ber; +der_type_encoder_f Offset_B11_encode_der; +xer_type_decoder_f Offset_B11_decode_xer; +xer_type_encoder_f Offset_B11_encode_xer; +oer_type_decoder_f Offset_B11_decode_oer; +oer_type_encoder_f Offset_B11_encode_oer; +per_type_decoder_f Offset_B11_decode_uper; +per_type_encoder_f Offset_B11_encode_uper; +per_type_decoder_f Offset_B11_decode_aper; +per_type_encoder_f Offset_B11_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B11_H_ */ +#include diff --git a/vcits/rtcmem/Offset-B12.h b/vcits/rtcmem/Offset-B12.h new file mode 100644 index 0000000..19ef6be --- /dev/null +++ b/vcits/rtcmem/Offset-B12.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Offset_B12_H_ +#define _Offset_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B12 */ +typedef long Offset_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B12; +asn_struct_free_f Offset_B12_free; +asn_struct_print_f Offset_B12_print; +asn_constr_check_f Offset_B12_constraint; +ber_type_decoder_f Offset_B12_decode_ber; +der_type_encoder_f Offset_B12_encode_der; +xer_type_decoder_f Offset_B12_decode_xer; +xer_type_encoder_f Offset_B12_encode_xer; +oer_type_decoder_f Offset_B12_decode_oer; +oer_type_encoder_f Offset_B12_encode_oer; +per_type_decoder_f Offset_B12_decode_uper; +per_type_encoder_f Offset_B12_encode_uper; +per_type_decoder_f Offset_B12_decode_aper; +per_type_encoder_f Offset_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B12_H_ */ +#include diff --git a/vcits/rtcmem/Offset-B13.h b/vcits/rtcmem/Offset-B13.h new file mode 100644 index 0000000..9d9546d --- /dev/null +++ b/vcits/rtcmem/Offset-B13.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Offset_B13_H_ +#define _Offset_B13_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B13 */ +typedef long Offset_B13_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B13_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B13; +asn_struct_free_f Offset_B13_free; +asn_struct_print_f Offset_B13_print; +asn_constr_check_f Offset_B13_constraint; +ber_type_decoder_f Offset_B13_decode_ber; +der_type_encoder_f Offset_B13_encode_der; +xer_type_decoder_f Offset_B13_decode_xer; +xer_type_encoder_f Offset_B13_encode_xer; +oer_type_decoder_f Offset_B13_decode_oer; +oer_type_encoder_f Offset_B13_encode_oer; +per_type_decoder_f Offset_B13_decode_uper; +per_type_encoder_f Offset_B13_encode_uper; +per_type_decoder_f Offset_B13_decode_aper; +per_type_encoder_f Offset_B13_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B13_H_ */ +#include diff --git a/vcits/rtcmem/Offset-B14.h b/vcits/rtcmem/Offset-B14.h new file mode 100644 index 0000000..a2af429 --- /dev/null +++ b/vcits/rtcmem/Offset-B14.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Offset_B14_H_ +#define _Offset_B14_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B14 */ +typedef long Offset_B14_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B14_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B14; +asn_struct_free_f Offset_B14_free; +asn_struct_print_f Offset_B14_print; +asn_constr_check_f Offset_B14_constraint; +ber_type_decoder_f Offset_B14_decode_ber; +der_type_encoder_f Offset_B14_encode_der; +xer_type_decoder_f Offset_B14_decode_xer; +xer_type_encoder_f Offset_B14_encode_xer; +oer_type_decoder_f Offset_B14_decode_oer; +oer_type_encoder_f Offset_B14_encode_oer; +per_type_decoder_f Offset_B14_decode_uper; +per_type_encoder_f Offset_B14_encode_uper; +per_type_decoder_f Offset_B14_decode_aper; +per_type_encoder_f Offset_B14_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B14_H_ */ +#include diff --git a/vcits/rtcmem/Offset-B16.h b/vcits/rtcmem/Offset-B16.h new file mode 100644 index 0000000..2c9d3b7 --- /dev/null +++ b/vcits/rtcmem/Offset-B16.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Offset_B16_H_ +#define _Offset_B16_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B16 */ +typedef long Offset_B16_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B16_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B16; +asn_struct_free_f Offset_B16_free; +asn_struct_print_f Offset_B16_print; +asn_constr_check_f Offset_B16_constraint; +ber_type_decoder_f Offset_B16_decode_ber; +der_type_encoder_f Offset_B16_encode_der; +xer_type_decoder_f Offset_B16_decode_xer; +xer_type_encoder_f Offset_B16_encode_xer; +oer_type_decoder_f Offset_B16_decode_oer; +oer_type_encoder_f Offset_B16_encode_oer; +per_type_decoder_f Offset_B16_decode_uper; +per_type_encoder_f Offset_B16_encode_uper; +per_type_decoder_f Offset_B16_decode_aper; +per_type_encoder_f Offset_B16_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B16_H_ */ +#include diff --git a/vcits/rtcmem/OpeningDaysHours.h b/vcits/rtcmem/OpeningDaysHours.h new file mode 100644 index 0000000..80e5760 --- /dev/null +++ b/vcits/rtcmem/OpeningDaysHours.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _OpeningDaysHours_H_ +#define _OpeningDaysHours_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OpeningDaysHours */ +typedef UTF8String_t OpeningDaysHours_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours; +asn_struct_free_f OpeningDaysHours_free; +asn_struct_print_f OpeningDaysHours_print; +asn_constr_check_f OpeningDaysHours_constraint; +ber_type_decoder_f OpeningDaysHours_decode_ber; +der_type_encoder_f OpeningDaysHours_encode_der; +xer_type_decoder_f OpeningDaysHours_decode_xer; +xer_type_encoder_f OpeningDaysHours_encode_xer; +oer_type_decoder_f OpeningDaysHours_decode_oer; +oer_type_encoder_f OpeningDaysHours_encode_oer; +per_type_decoder_f OpeningDaysHours_decode_uper; +per_type_encoder_f OpeningDaysHours_encode_uper; +per_type_decoder_f OpeningDaysHours_decode_aper; +per_type_encoder_f OpeningDaysHours_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OpeningDaysHours_H_ */ +#include diff --git a/vcits/rtcmem/OverlayLaneList.h b/vcits/rtcmem/OverlayLaneList.h new file mode 100644 index 0000000..d5e7485 --- /dev/null +++ b/vcits/rtcmem/OverlayLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _OverlayLaneList_H_ +#define _OverlayLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OverlayLaneList */ +typedef struct OverlayLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} OverlayLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OverlayLaneList; +extern asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_OverlayLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _OverlayLaneList_H_ */ +#include diff --git a/vcits/rtcmem/PathDeltaTime.h b/vcits/rtcmem/PathDeltaTime.h new file mode 100644 index 0000000..e1bef90 --- /dev/null +++ b/vcits/rtcmem/PathDeltaTime.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PathDeltaTime_H_ +#define _PathDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PathDeltaTime { + PathDeltaTime_tenMilliSecondsInPast = 1 +} e_PathDeltaTime; + +/* PathDeltaTime */ +typedef long PathDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PathDeltaTime; +asn_struct_free_f PathDeltaTime_free; +asn_struct_print_f PathDeltaTime_print; +asn_constr_check_f PathDeltaTime_constraint; +ber_type_decoder_f PathDeltaTime_decode_ber; +der_type_encoder_f PathDeltaTime_encode_der; +xer_type_decoder_f PathDeltaTime_decode_xer; +xer_type_encoder_f PathDeltaTime_encode_xer; +oer_type_decoder_f PathDeltaTime_decode_oer; +oer_type_encoder_f PathDeltaTime_encode_oer; +per_type_decoder_f PathDeltaTime_decode_uper; +per_type_encoder_f PathDeltaTime_encode_uper; +per_type_decoder_f PathDeltaTime_decode_aper; +per_type_encoder_f PathDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathDeltaTime_H_ */ +#include diff --git a/vcits/rtcmem/PathHistory.h b/vcits/rtcmem/PathHistory.h new file mode 100644 index 0000000..e610db0 --- /dev/null +++ b/vcits/rtcmem/PathHistory.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PathHistory_H_ +#define _PathHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathPoint; + +/* PathHistory */ +typedef struct PathHistory { + A_SEQUENCE_OF(struct PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathHistory; +extern asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_PathHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_PathHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathHistory_H_ */ +#include diff --git a/vcits/rtcmem/PathPoint.h b/vcits/rtcmem/PathPoint.h new file mode 100644 index 0000000..ce8f5e3 --- /dev/null +++ b/vcits/rtcmem/PathPoint.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PathPoint_H_ +#define _PathPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PathPoint */ +typedef struct PathPoint { + DeltaReferencePosition_t pathPosition; + PathDeltaTime_t *pathDeltaTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_PathPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathPoint_H_ */ +#include diff --git a/vcits/rtcmem/PedestrianBicycleDetect.h b/vcits/rtcmem/PedestrianBicycleDetect.h new file mode 100644 index 0000000..b71e81d --- /dev/null +++ b/vcits/rtcmem/PedestrianBicycleDetect.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PedestrianBicycleDetect_H_ +#define _PedestrianBicycleDetect_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PedestrianBicycleDetect */ +typedef BOOLEAN_t PedestrianBicycleDetect_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect; +asn_struct_free_f PedestrianBicycleDetect_free; +asn_struct_print_f PedestrianBicycleDetect_print; +asn_constr_check_f PedestrianBicycleDetect_constraint; +ber_type_decoder_f PedestrianBicycleDetect_decode_ber; +der_type_encoder_f PedestrianBicycleDetect_encode_der; +xer_type_decoder_f PedestrianBicycleDetect_decode_xer; +xer_type_encoder_f PedestrianBicycleDetect_encode_xer; +oer_type_decoder_f PedestrianBicycleDetect_decode_oer; +oer_type_encoder_f PedestrianBicycleDetect_encode_oer; +per_type_decoder_f PedestrianBicycleDetect_decode_uper; +per_type_encoder_f PedestrianBicycleDetect_encode_uper; +per_type_decoder_f PedestrianBicycleDetect_decode_aper; +per_type_encoder_f PedestrianBicycleDetect_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PedestrianBicycleDetect_H_ */ +#include diff --git a/vcits/rtcmem/PerformanceClass.h b/vcits/rtcmem/PerformanceClass.h new file mode 100644 index 0000000..ec6c673 --- /dev/null +++ b/vcits/rtcmem/PerformanceClass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PerformanceClass_H_ +#define _PerformanceClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PerformanceClass { + PerformanceClass_unavailable = 0, + PerformanceClass_performanceClassA = 1, + PerformanceClass_performanceClassB = 2 +} e_PerformanceClass; + +/* PerformanceClass */ +typedef long PerformanceClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PerformanceClass; +asn_struct_free_f PerformanceClass_free; +asn_struct_print_f PerformanceClass_print; +asn_constr_check_f PerformanceClass_constraint; +ber_type_decoder_f PerformanceClass_decode_ber; +der_type_encoder_f PerformanceClass_encode_der; +xer_type_decoder_f PerformanceClass_decode_xer; +xer_type_encoder_f PerformanceClass_encode_xer; +oer_type_decoder_f PerformanceClass_decode_oer; +oer_type_encoder_f PerformanceClass_encode_oer; +per_type_decoder_f PerformanceClass_decode_uper; +per_type_encoder_f PerformanceClass_encode_uper; +per_type_decoder_f PerformanceClass_decode_aper; +per_type_encoder_f PerformanceClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PerformanceClass_H_ */ +#include diff --git a/vcits/rtcmem/PhoneNumber.h b/vcits/rtcmem/PhoneNumber.h new file mode 100644 index 0000000..06e3f7c --- /dev/null +++ b/vcits/rtcmem/PhoneNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PhoneNumber_H_ +#define _PhoneNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PhoneNumber */ +typedef NumericString_t PhoneNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PhoneNumber; +asn_struct_free_f PhoneNumber_free; +asn_struct_print_f PhoneNumber_print; +asn_constr_check_f PhoneNumber_constraint; +ber_type_decoder_f PhoneNumber_decode_ber; +der_type_encoder_f PhoneNumber_encode_der; +xer_type_decoder_f PhoneNumber_decode_xer; +xer_type_encoder_f PhoneNumber_encode_xer; +oer_type_decoder_f PhoneNumber_decode_oer; +oer_type_encoder_f PhoneNumber_encode_oer; +per_type_decoder_f PhoneNumber_decode_uper; +per_type_encoder_f PhoneNumber_encode_uper; +per_type_decoder_f PhoneNumber_decode_aper; +per_type_encoder_f PhoneNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PhoneNumber_H_ */ +#include diff --git a/vcits/rtcmem/PosCentMass.h b/vcits/rtcmem/PosCentMass.h new file mode 100644 index 0000000..a3a1f92 --- /dev/null +++ b/vcits/rtcmem/PosCentMass.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PosCentMass_H_ +#define _PosCentMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosCentMass { + PosCentMass_tenCentimeters = 1, + PosCentMass_unavailable = 63 +} e_PosCentMass; + +/* PosCentMass */ +typedef long PosCentMass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosCentMass; +asn_struct_free_f PosCentMass_free; +asn_struct_print_f PosCentMass_print; +asn_constr_check_f PosCentMass_constraint; +ber_type_decoder_f PosCentMass_decode_ber; +der_type_encoder_f PosCentMass_encode_der; +xer_type_decoder_f PosCentMass_decode_xer; +xer_type_encoder_f PosCentMass_encode_xer; +oer_type_decoder_f PosCentMass_decode_oer; +oer_type_encoder_f PosCentMass_encode_oer; +per_type_decoder_f PosCentMass_decode_uper; +per_type_encoder_f PosCentMass_encode_uper; +per_type_decoder_f PosCentMass_decode_aper; +per_type_encoder_f PosCentMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosCentMass_H_ */ +#include diff --git a/vcits/rtcmem/PosConfidenceEllipse.h b/vcits/rtcmem/PosConfidenceEllipse.h new file mode 100644 index 0000000..0afc73a --- /dev/null +++ b/vcits/rtcmem/PosConfidenceEllipse.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PosConfidenceEllipse_H_ +#define _PosConfidenceEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "SemiAxisLength.h" +#include "HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PosConfidenceEllipse */ +typedef struct PosConfidenceEllipse { + SemiAxisLength_t semiMajorConfidence; + SemiAxisLength_t semiMinorConfidence; + HeadingValue_t semiMajorOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PosConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosConfidenceEllipse_H_ */ +#include diff --git a/vcits/rtcmem/PosFrontAx.h b/vcits/rtcmem/PosFrontAx.h new file mode 100644 index 0000000..1adf2cf --- /dev/null +++ b/vcits/rtcmem/PosFrontAx.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PosFrontAx_H_ +#define _PosFrontAx_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosFrontAx { + PosFrontAx_tenCentimeters = 1, + PosFrontAx_unavailable = 20 +} e_PosFrontAx; + +/* PosFrontAx */ +typedef long PosFrontAx_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosFrontAx; +asn_struct_free_f PosFrontAx_free; +asn_struct_print_f PosFrontAx_print; +asn_constr_check_f PosFrontAx_constraint; +ber_type_decoder_f PosFrontAx_decode_ber; +der_type_encoder_f PosFrontAx_encode_der; +xer_type_decoder_f PosFrontAx_decode_xer; +xer_type_encoder_f PosFrontAx_encode_xer; +oer_type_decoder_f PosFrontAx_decode_oer; +oer_type_encoder_f PosFrontAx_encode_oer; +per_type_decoder_f PosFrontAx_decode_uper; +per_type_encoder_f PosFrontAx_encode_uper; +per_type_decoder_f PosFrontAx_decode_aper; +per_type_encoder_f PosFrontAx_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosFrontAx_H_ */ +#include diff --git a/vcits/rtcmem/PosLonCarr.h b/vcits/rtcmem/PosLonCarr.h new file mode 100644 index 0000000..4e8ee4d --- /dev/null +++ b/vcits/rtcmem/PosLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PosLonCarr_H_ +#define _PosLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosLonCarr { + PosLonCarr_oneCentimeter = 1, + PosLonCarr_unavailable = 127 +} e_PosLonCarr; + +/* PosLonCarr */ +typedef long PosLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosLonCarr; +asn_struct_free_f PosLonCarr_free; +asn_struct_print_f PosLonCarr_print; +asn_constr_check_f PosLonCarr_constraint; +ber_type_decoder_f PosLonCarr_decode_ber; +der_type_encoder_f PosLonCarr_encode_der; +xer_type_decoder_f PosLonCarr_decode_xer; +xer_type_encoder_f PosLonCarr_encode_xer; +oer_type_decoder_f PosLonCarr_decode_oer; +oer_type_encoder_f PosLonCarr_encode_oer; +per_type_decoder_f PosLonCarr_decode_uper; +per_type_encoder_f PosLonCarr_encode_uper; +per_type_decoder_f PosLonCarr_decode_aper; +per_type_encoder_f PosLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosLonCarr_H_ */ +#include diff --git a/vcits/rtcmem/PosPillar.h b/vcits/rtcmem/PosPillar.h new file mode 100644 index 0000000..980475f --- /dev/null +++ b/vcits/rtcmem/PosPillar.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PosPillar_H_ +#define _PosPillar_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosPillar { + PosPillar_tenCentimeters = 1, + PosPillar_unavailable = 30 +} e_PosPillar; + +/* PosPillar */ +typedef long PosPillar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PosPillar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PosPillar; +asn_struct_free_f PosPillar_free; +asn_struct_print_f PosPillar_print; +asn_constr_check_f PosPillar_constraint; +ber_type_decoder_f PosPillar_decode_ber; +der_type_encoder_f PosPillar_encode_der; +xer_type_decoder_f PosPillar_decode_xer; +xer_type_encoder_f PosPillar_encode_xer; +oer_type_decoder_f PosPillar_decode_oer; +oer_type_encoder_f PosPillar_encode_oer; +per_type_decoder_f PosPillar_decode_uper; +per_type_encoder_f PosPillar_encode_uper; +per_type_decoder_f PosPillar_decode_aper; +per_type_encoder_f PosPillar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosPillar_H_ */ +#include diff --git a/vcits/rtcmem/Position3D-addGrpC.h b/vcits/rtcmem/Position3D-addGrpC.h new file mode 100644 index 0000000..4a9e572 --- /dev/null +++ b/vcits/rtcmem/Position3D-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Position3D_addGrpC_H_ +#define _Position3D_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Position3D-addGrpC */ +typedef struct Position3D_addGrpC { + Altitude_t altitude; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_addGrpC_H_ */ +#include diff --git a/vcits/rtcmem/Position3D.h b/vcits/rtcmem/Position3D.h new file mode 100644 index 0000000..326a360 --- /dev/null +++ b/vcits/rtcmem/Position3D.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Position3D_H_ +#define _Position3D_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "Elevation.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_Position3D; + +/* Position3D */ +typedef struct Position3D { + Latitude_t lat; + Longitude_t Long; + Elevation_t *elevation; /* OPTIONAL */ + struct Position3D__regional { + A_SEQUENCE_OF(struct Reg_Position3D) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_H_ */ +#include diff --git a/vcits/rtcmem/PositionConfidence.h b/vcits/rtcmem/PositionConfidence.h new file mode 100644 index 0000000..6183734 --- /dev/null +++ b/vcits/rtcmem/PositionConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PositionConfidence_H_ +#define _PositionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionConfidence { + PositionConfidence_unavailable = 0, + PositionConfidence_a500m = 1, + PositionConfidence_a200m = 2, + PositionConfidence_a100m = 3, + PositionConfidence_a50m = 4, + PositionConfidence_a20m = 5, + PositionConfidence_a10m = 6, + PositionConfidence_a5m = 7, + PositionConfidence_a2m = 8, + PositionConfidence_a1m = 9, + PositionConfidence_a50cm = 10, + PositionConfidence_a20cm = 11, + PositionConfidence_a10cm = 12, + PositionConfidence_a5cm = 13, + PositionConfidence_a2cm = 14, + PositionConfidence_a1cm = 15 +} e_PositionConfidence; + +/* PositionConfidence */ +typedef long PositionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1; +asn_struct_free_f PositionConfidence_free; +asn_struct_print_f PositionConfidence_print; +asn_constr_check_f PositionConfidence_constraint; +ber_type_decoder_f PositionConfidence_decode_ber; +der_type_encoder_f PositionConfidence_encode_der; +xer_type_decoder_f PositionConfidence_decode_xer; +xer_type_encoder_f PositionConfidence_encode_xer; +oer_type_decoder_f PositionConfidence_decode_oer; +oer_type_encoder_f PositionConfidence_encode_oer; +per_type_decoder_f PositionConfidence_decode_uper; +per_type_encoder_f PositionConfidence_encode_uper; +per_type_decoder_f PositionConfidence_decode_aper; +per_type_encoder_f PositionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidence_H_ */ +#include diff --git a/vcits/rtcmem/PositionConfidenceSet.h b/vcits/rtcmem/PositionConfidenceSet.h new file mode 100644 index 0000000..87d21af --- /dev/null +++ b/vcits/rtcmem/PositionConfidenceSet.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PositionConfidenceSet_H_ +#define _PositionConfidenceSet_H_ + + +#include + +/* Including external dependencies */ +#include "PositionConfidence.h" +#include "ElevationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionConfidenceSet */ +typedef struct PositionConfidenceSet { + PositionConfidence_t pos; + ElevationConfidence_t elevation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionConfidenceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidenceSet_H_ */ +#include diff --git a/vcits/rtcmem/PositionOfOccupants.h b/vcits/rtcmem/PositionOfOccupants.h new file mode 100644 index 0000000..699de82 --- /dev/null +++ b/vcits/rtcmem/PositionOfOccupants.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PositionOfOccupants_H_ +#define _PositionOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionOfOccupants { + PositionOfOccupants_row1LeftOccupied = 0, + PositionOfOccupants_row1RightOccupied = 1, + PositionOfOccupants_row1MidOccupied = 2, + PositionOfOccupants_row1NotDetectable = 3, + PositionOfOccupants_row1NotPresent = 4, + PositionOfOccupants_row2LeftOccupied = 5, + PositionOfOccupants_row2RightOccupied = 6, + PositionOfOccupants_row2MidOccupied = 7, + PositionOfOccupants_row2NotDetectable = 8, + PositionOfOccupants_row2NotPresent = 9, + PositionOfOccupants_row3LeftOccupied = 10, + PositionOfOccupants_row3RightOccupied = 11, + PositionOfOccupants_row3MidOccupied = 12, + PositionOfOccupants_row3NotDetectable = 13, + PositionOfOccupants_row3NotPresent = 14, + PositionOfOccupants_row4LeftOccupied = 15, + PositionOfOccupants_row4RightOccupied = 16, + PositionOfOccupants_row4MidOccupied = 17, + PositionOfOccupants_row4NotDetectable = 18, + PositionOfOccupants_row4NotPresent = 19 +} e_PositionOfOccupants; + +/* PositionOfOccupants */ +typedef BIT_STRING_t PositionOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants; +asn_struct_free_f PositionOfOccupants_free; +asn_struct_print_f PositionOfOccupants_print; +asn_constr_check_f PositionOfOccupants_constraint; +ber_type_decoder_f PositionOfOccupants_decode_ber; +der_type_encoder_f PositionOfOccupants_encode_der; +xer_type_decoder_f PositionOfOccupants_decode_xer; +xer_type_encoder_f PositionOfOccupants_encode_xer; +oer_type_decoder_f PositionOfOccupants_decode_oer; +oer_type_encoder_f PositionOfOccupants_encode_oer; +per_type_decoder_f PositionOfOccupants_decode_uper; +per_type_encoder_f PositionOfOccupants_encode_uper; +per_type_decoder_f PositionOfOccupants_decode_aper; +per_type_encoder_f PositionOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfOccupants_H_ */ +#include diff --git a/vcits/rtcmem/PositionOfPillars.h b/vcits/rtcmem/PositionOfPillars.h new file mode 100644 index 0000000..67b9cf1 --- /dev/null +++ b/vcits/rtcmem/PositionOfPillars.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PositionOfPillars_H_ +#define _PositionOfPillars_H_ + + +#include + +/* Including external dependencies */ +#include "PosPillar.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionOfPillars */ +typedef struct PositionOfPillars { + A_SEQUENCE_OF(PosPillar_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionOfPillars_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfPillars; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfPillars_H_ */ +#include diff --git a/vcits/rtcmem/PositionalAccuracy.h b/vcits/rtcmem/PositionalAccuracy.h new file mode 100644 index 0000000..577afdc --- /dev/null +++ b/vcits/rtcmem/PositionalAccuracy.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PositionalAccuracy_H_ +#define _PositionalAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include "SemiMajorAxisAccuracy.h" +#include "SemiMinorAxisAccuracy.h" +#include "SemiMajorAxisOrientation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionalAccuracy */ +typedef struct PositionalAccuracy { + SemiMajorAxisAccuracy_t semiMajor; + SemiMinorAxisAccuracy_t semiMinor; + SemiMajorAxisOrientation_t orientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionalAccuracy_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionalAccuracy_H_ */ +#include diff --git a/vcits/rtcmem/PositioningSolutionType.h b/vcits/rtcmem/PositioningSolutionType.h new file mode 100644 index 0000000..883ac8c --- /dev/null +++ b/vcits/rtcmem/PositioningSolutionType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PositioningSolutionType_H_ +#define _PositioningSolutionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositioningSolutionType { + PositioningSolutionType_noPositioningSolution = 0, + PositioningSolutionType_sGNSS = 1, + PositioningSolutionType_dGNSS = 2, + PositioningSolutionType_sGNSSplusDR = 3, + PositioningSolutionType_dGNSSplusDR = 4, + PositioningSolutionType_dR = 5 + /* + * Enumeration is extensible + */ +} e_PositioningSolutionType; + +/* PositioningSolutionType */ +typedef long PositioningSolutionType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType; +asn_struct_free_f PositioningSolutionType_free; +asn_struct_print_f PositioningSolutionType_print; +asn_constr_check_f PositioningSolutionType_constraint; +ber_type_decoder_f PositioningSolutionType_decode_ber; +der_type_encoder_f PositioningSolutionType_encode_der; +xer_type_decoder_f PositioningSolutionType_decode_xer; +xer_type_encoder_f PositioningSolutionType_encode_xer; +oer_type_decoder_f PositioningSolutionType_decode_oer; +oer_type_encoder_f PositioningSolutionType_encode_oer; +per_type_decoder_f PositioningSolutionType_decode_uper; +per_type_encoder_f PositioningSolutionType_encode_uper; +per_type_decoder_f PositioningSolutionType_decode_aper; +per_type_encoder_f PositioningSolutionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositioningSolutionType_H_ */ +#include diff --git a/vcits/rtcmem/PostCrashSubCauseCode.h b/vcits/rtcmem/PostCrashSubCauseCode.h new file mode 100644 index 0000000..3362195 --- /dev/null +++ b/vcits/rtcmem/PostCrashSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PostCrashSubCauseCode_H_ +#define _PostCrashSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PostCrashSubCauseCode { + PostCrashSubCauseCode_unavailable = 0, + PostCrashSubCauseCode_accidentWithoutECallTriggered = 1, + PostCrashSubCauseCode_accidentWithECallManuallyTriggered = 2, + PostCrashSubCauseCode_accidentWithECallAutomaticallyTriggered = 3, + PostCrashSubCauseCode_accidentWithECallTriggeredWithoutAccessToCellularNetwork = 4 +} e_PostCrashSubCauseCode; + +/* PostCrashSubCauseCode */ +typedef long PostCrashSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode; +asn_struct_free_f PostCrashSubCauseCode_free; +asn_struct_print_f PostCrashSubCauseCode_print; +asn_constr_check_f PostCrashSubCauseCode_constraint; +ber_type_decoder_f PostCrashSubCauseCode_decode_ber; +der_type_encoder_f PostCrashSubCauseCode_encode_der; +xer_type_decoder_f PostCrashSubCauseCode_decode_xer; +xer_type_encoder_f PostCrashSubCauseCode_encode_xer; +oer_type_decoder_f PostCrashSubCauseCode_decode_oer; +oer_type_encoder_f PostCrashSubCauseCode_encode_oer; +per_type_decoder_f PostCrashSubCauseCode_decode_uper; +per_type_encoder_f PostCrashSubCauseCode_encode_uper; +per_type_decoder_f PostCrashSubCauseCode_decode_aper; +per_type_encoder_f PostCrashSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PostCrashSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/PreemptPriorityList.h b/vcits/rtcmem/PreemptPriorityList.h new file mode 100644 index 0000000..af7727a --- /dev/null +++ b/vcits/rtcmem/PreemptPriorityList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PreemptPriorityList_H_ +#define _PreemptPriorityList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalControlZone; + +/* PreemptPriorityList */ +typedef struct PreemptPriorityList { + A_SEQUENCE_OF(struct SignalControlZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PreemptPriorityList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList; +extern asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1; +extern asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[1]; +extern asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PreemptPriorityList_H_ */ +#include diff --git a/vcits/rtcmem/PrioritizationResponse.h b/vcits/rtcmem/PrioritizationResponse.h new file mode 100644 index 0000000..08bda87 --- /dev/null +++ b/vcits/rtcmem/PrioritizationResponse.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PrioritizationResponse_H_ +#define _PrioritizationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "PrioritizationResponseStatus.h" +#include "SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PrioritizationResponse */ +typedef struct PrioritizationResponse { + StationID_t stationID; + PrioritizationResponseStatus_t priorState; + SignalGroupID_t signalGroup; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponse_H_ */ +#include diff --git a/vcits/rtcmem/PrioritizationResponseList.h b/vcits/rtcmem/PrioritizationResponseList.h new file mode 100644 index 0000000..5fe732b --- /dev/null +++ b/vcits/rtcmem/PrioritizationResponseList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PrioritizationResponseList_H_ +#define _PrioritizationResponseList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponse; + +/* PrioritizationResponseList */ +typedef struct PrioritizationResponseList { + A_SEQUENCE_OF(struct PrioritizationResponse) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList; +extern asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[1]; +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseList_H_ */ +#include diff --git a/vcits/rtcmem/PrioritizationResponseStatus.h b/vcits/rtcmem/PrioritizationResponseStatus.h new file mode 100644 index 0000000..0aec8fb --- /dev/null +++ b/vcits/rtcmem/PrioritizationResponseStatus.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PrioritizationResponseStatus_H_ +#define _PrioritizationResponseStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PrioritizationResponseStatus { + PrioritizationResponseStatus_unknown = 0, + PrioritizationResponseStatus_requested = 1, + PrioritizationResponseStatus_processing = 2, + PrioritizationResponseStatus_watchOtherTraffic = 3, + PrioritizationResponseStatus_granted = 4, + PrioritizationResponseStatus_rejected = 5, + PrioritizationResponseStatus_maxPresence = 6, + PrioritizationResponseStatus_reserviceLocked = 7 + /* + * Enumeration is extensible + */ +} e_PrioritizationResponseStatus; + +/* PrioritizationResponseStatus */ +typedef long PrioritizationResponseStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus; +extern const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1; +asn_struct_free_f PrioritizationResponseStatus_free; +asn_struct_print_f PrioritizationResponseStatus_print; +asn_constr_check_f PrioritizationResponseStatus_constraint; +ber_type_decoder_f PrioritizationResponseStatus_decode_ber; +der_type_encoder_f PrioritizationResponseStatus_encode_der; +xer_type_decoder_f PrioritizationResponseStatus_decode_xer; +xer_type_encoder_f PrioritizationResponseStatus_encode_xer; +oer_type_decoder_f PrioritizationResponseStatus_decode_oer; +oer_type_encoder_f PrioritizationResponseStatus_encode_oer; +per_type_decoder_f PrioritizationResponseStatus_decode_uper; +per_type_encoder_f PrioritizationResponseStatus_encode_uper; +per_type_decoder_f PrioritizationResponseStatus_decode_aper; +per_type_encoder_f PrioritizationResponseStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseStatus_H_ */ +#include diff --git a/vcits/rtcmem/PriorityRequestType.h b/vcits/rtcmem/PriorityRequestType.h new file mode 100644 index 0000000..6bfd978 --- /dev/null +++ b/vcits/rtcmem/PriorityRequestType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PriorityRequestType_H_ +#define _PriorityRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PriorityRequestType { + PriorityRequestType_priorityRequestTypeReserved = 0, + PriorityRequestType_priorityRequest = 1, + PriorityRequestType_priorityRequestUpdate = 2, + PriorityRequestType_priorityCancellation = 3 + /* + * Enumeration is extensible + */ +} e_PriorityRequestType; + +/* PriorityRequestType */ +typedef long PriorityRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PriorityRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1; +asn_struct_free_f PriorityRequestType_free; +asn_struct_print_f PriorityRequestType_print; +asn_constr_check_f PriorityRequestType_constraint; +ber_type_decoder_f PriorityRequestType_decode_ber; +der_type_encoder_f PriorityRequestType_encode_der; +xer_type_decoder_f PriorityRequestType_decode_xer; +xer_type_encoder_f PriorityRequestType_encode_xer; +oer_type_decoder_f PriorityRequestType_decode_oer; +oer_type_encoder_f PriorityRequestType_encode_oer; +per_type_decoder_f PriorityRequestType_decode_uper; +per_type_encoder_f PriorityRequestType_encode_uper; +per_type_decoder_f PriorityRequestType_decode_aper; +per_type_encoder_f PriorityRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PriorityRequestType_H_ */ +#include diff --git a/vcits/rtcmem/ProtectedCommunicationZone.h b/vcits/rtcmem/ProtectedCommunicationZone.h new file mode 100644 index 0000000..c318a2e --- /dev/null +++ b/vcits/rtcmem/ProtectedCommunicationZone.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ProtectedCommunicationZone_H_ +#define _ProtectedCommunicationZone_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneType.h" +#include "TimestampIts.h" +#include "Latitude.h" +#include "Longitude.h" +#include "ProtectedZoneRadius.h" +#include "ProtectedZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedCommunicationZone */ +typedef struct ProtectedCommunicationZone { + ProtectedZoneType_t protectedZoneType; + TimestampIts_t *expiryTime; /* OPTIONAL */ + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + ProtectedZoneRadius_t *protectedZoneRadius; /* OPTIONAL */ + ProtectedZoneID_t *protectedZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone; +extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZone_H_ */ +#include diff --git a/vcits/rtcmem/ProtectedCommunicationZonesRSU.h b/vcits/rtcmem/ProtectedCommunicationZonesRSU.h new file mode 100644 index 0000000..194a05a --- /dev/null +++ b/vcits/rtcmem/ProtectedCommunicationZonesRSU.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ProtectedCommunicationZonesRSU_H_ +#define _ProtectedCommunicationZonesRSU_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtectedCommunicationZone; + +/* ProtectedCommunicationZonesRSU */ +typedef struct ProtectedCommunicationZonesRSU { + A_SEQUENCE_OF(struct ProtectedCommunicationZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZonesRSU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZonesRSU_H_ */ +#include diff --git a/vcits/rtcmem/ProtectedZoneID.h b/vcits/rtcmem/ProtectedZoneID.h new file mode 100644 index 0000000..e60a67c --- /dev/null +++ b/vcits/rtcmem/ProtectedZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ProtectedZoneID_H_ +#define _ProtectedZoneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedZoneID */ +typedef long ProtectedZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID; +asn_struct_free_f ProtectedZoneID_free; +asn_struct_print_f ProtectedZoneID_print; +asn_constr_check_f ProtectedZoneID_constraint; +ber_type_decoder_f ProtectedZoneID_decode_ber; +der_type_encoder_f ProtectedZoneID_encode_der; +xer_type_decoder_f ProtectedZoneID_decode_xer; +xer_type_encoder_f ProtectedZoneID_encode_xer; +oer_type_decoder_f ProtectedZoneID_decode_oer; +oer_type_encoder_f ProtectedZoneID_encode_oer; +per_type_decoder_f ProtectedZoneID_decode_uper; +per_type_encoder_f ProtectedZoneID_encode_uper; +per_type_decoder_f ProtectedZoneID_decode_aper; +per_type_encoder_f ProtectedZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneID_H_ */ +#include diff --git a/vcits/rtcmem/ProtectedZoneRadius.h b/vcits/rtcmem/ProtectedZoneRadius.h new file mode 100644 index 0000000..d8f8c73 --- /dev/null +++ b/vcits/rtcmem/ProtectedZoneRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ProtectedZoneRadius_H_ +#define _ProtectedZoneRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneRadius { + ProtectedZoneRadius_oneMeter = 1 +} e_ProtectedZoneRadius; + +/* ProtectedZoneRadius */ +typedef long ProtectedZoneRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius; +asn_struct_free_f ProtectedZoneRadius_free; +asn_struct_print_f ProtectedZoneRadius_print; +asn_constr_check_f ProtectedZoneRadius_constraint; +ber_type_decoder_f ProtectedZoneRadius_decode_ber; +der_type_encoder_f ProtectedZoneRadius_encode_der; +xer_type_decoder_f ProtectedZoneRadius_decode_xer; +xer_type_encoder_f ProtectedZoneRadius_encode_xer; +oer_type_decoder_f ProtectedZoneRadius_decode_oer; +oer_type_encoder_f ProtectedZoneRadius_encode_oer; +per_type_decoder_f ProtectedZoneRadius_decode_uper; +per_type_encoder_f ProtectedZoneRadius_encode_uper; +per_type_decoder_f ProtectedZoneRadius_decode_aper; +per_type_encoder_f ProtectedZoneRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneRadius_H_ */ +#include diff --git a/vcits/rtcmem/ProtectedZoneType.h b/vcits/rtcmem/ProtectedZoneType.h new file mode 100644 index 0000000..149cd2d --- /dev/null +++ b/vcits/rtcmem/ProtectedZoneType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ProtectedZoneType_H_ +#define _ProtectedZoneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneType { + ProtectedZoneType_permanentCenDsrcTolling = 0, + /* + * Enumeration is extensible + */ + ProtectedZoneType_temporaryCenDsrcTolling = 1 +} e_ProtectedZoneType; + +/* ProtectedZoneType */ +typedef long ProtectedZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1; +asn_struct_free_f ProtectedZoneType_free; +asn_struct_print_f ProtectedZoneType_print; +asn_constr_check_f ProtectedZoneType_constraint; +ber_type_decoder_f ProtectedZoneType_decode_ber; +der_type_encoder_f ProtectedZoneType_encode_der; +xer_type_decoder_f ProtectedZoneType_decode_xer; +xer_type_encoder_f ProtectedZoneType_encode_xer; +oer_type_decoder_f ProtectedZoneType_decode_oer; +oer_type_encoder_f ProtectedZoneType_encode_oer; +per_type_decoder_f ProtectedZoneType_decode_uper; +per_type_encoder_f ProtectedZoneType_encode_uper; +per_type_decoder_f ProtectedZoneType_decode_aper; +per_type_encoder_f ProtectedZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneType_H_ */ +#include diff --git a/vcits/rtcmem/PtActivation.h b/vcits/rtcmem/PtActivation.h new file mode 100644 index 0000000..0fe97d1 --- /dev/null +++ b/vcits/rtcmem/PtActivation.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PtActivation_H_ +#define _PtActivation_H_ + + +#include + +/* Including external dependencies */ +#include "PtActivationType.h" +#include "PtActivationData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivation */ +typedef struct PtActivation { + PtActivationType_t ptActivationType; + PtActivationData_t ptActivationData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PtActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PtActivation; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivation_H_ */ +#include diff --git a/vcits/rtcmem/PtActivationData.h b/vcits/rtcmem/PtActivationData.h new file mode 100644 index 0000000..2209ac6 --- /dev/null +++ b/vcits/rtcmem/PtActivationData.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PtActivationData_H_ +#define _PtActivationData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivationData */ +typedef OCTET_STRING_t PtActivationData_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationData_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationData; +asn_struct_free_f PtActivationData_free; +asn_struct_print_f PtActivationData_print; +asn_constr_check_f PtActivationData_constraint; +ber_type_decoder_f PtActivationData_decode_ber; +der_type_encoder_f PtActivationData_encode_der; +xer_type_decoder_f PtActivationData_decode_xer; +xer_type_encoder_f PtActivationData_encode_xer; +oer_type_decoder_f PtActivationData_decode_oer; +oer_type_encoder_f PtActivationData_encode_oer; +per_type_decoder_f PtActivationData_decode_uper; +per_type_encoder_f PtActivationData_encode_uper; +per_type_decoder_f PtActivationData_decode_aper; +per_type_encoder_f PtActivationData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationData_H_ */ +#include diff --git a/vcits/rtcmem/PtActivationType.h b/vcits/rtcmem/PtActivationType.h new file mode 100644 index 0000000..2d9b1fb --- /dev/null +++ b/vcits/rtcmem/PtActivationType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PtActivationType_H_ +#define _PtActivationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtActivationType { + PtActivationType_undefinedCodingType = 0, + PtActivationType_r09_16CodingType = 1, + PtActivationType_vdv_50149CodingType = 2 +} e_PtActivationType; + +/* PtActivationType */ +typedef long PtActivationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationType; +asn_struct_free_f PtActivationType_free; +asn_struct_print_f PtActivationType_print; +asn_constr_check_f PtActivationType_constraint; +ber_type_decoder_f PtActivationType_decode_ber; +der_type_encoder_f PtActivationType_encode_der; +xer_type_decoder_f PtActivationType_decode_xer; +xer_type_encoder_f PtActivationType_encode_xer; +oer_type_decoder_f PtActivationType_decode_oer; +oer_type_encoder_f PtActivationType_encode_oer; +per_type_decoder_f PtActivationType_decode_uper; +per_type_encoder_f PtActivationType_encode_uper; +per_type_decoder_f PtActivationType_decode_aper; +per_type_encoder_f PtActivationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationType_H_ */ +#include diff --git a/vcits/rtcmem/PtvRequestType.h b/vcits/rtcmem/PtvRequestType.h new file mode 100644 index 0000000..7b6fc0c --- /dev/null +++ b/vcits/rtcmem/PtvRequestType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _PtvRequestType_H_ +#define _PtvRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtvRequestType { + PtvRequestType_preRequest = 0, + PtvRequestType_mainRequest = 1, + PtvRequestType_doorCloseRequest = 2, + PtvRequestType_cancelRequest = 3, + PtvRequestType_emergencyRequest = 4 + /* + * Enumeration is extensible + */ +} e_PtvRequestType; + +/* PtvRequestType */ +typedef long PtvRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtvRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtvRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PtvRequestType_specs_1; +asn_struct_free_f PtvRequestType_free; +asn_struct_print_f PtvRequestType_print; +asn_constr_check_f PtvRequestType_constraint; +ber_type_decoder_f PtvRequestType_decode_ber; +der_type_encoder_f PtvRequestType_encode_der; +xer_type_decoder_f PtvRequestType_decode_xer; +xer_type_encoder_f PtvRequestType_encode_xer; +oer_type_decoder_f PtvRequestType_decode_oer; +oer_type_encoder_f PtvRequestType_encode_oer; +per_type_decoder_f PtvRequestType_decode_uper; +per_type_encoder_f PtvRequestType_encode_uper; +per_type_decoder_f PtvRequestType_decode_aper; +per_type_encoder_f PtvRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtvRequestType_H_ */ +#include diff --git a/vcits/rtcmem/RTCM-Revision.h b/vcits/rtcmem/RTCM-Revision.h new file mode 100644 index 0000000..4e0b97f --- /dev/null +++ b/vcits/rtcmem/RTCM-Revision.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RTCM_Revision_H_ +#define _RTCM_Revision_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RTCM_Revision { + RTCM_Revision_unknown = 0, + RTCM_Revision_rtcmRev2 = 1, + RTCM_Revision_rtcmRev3 = 2, + RTCM_Revision_reserved = 3 + /* + * Enumeration is extensible + */ +} e_RTCM_Revision; + +/* RTCM-Revision */ +typedef long RTCM_Revision_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCM_Revision; +extern const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1; +asn_struct_free_f RTCM_Revision_free; +asn_struct_print_f RTCM_Revision_print; +asn_constr_check_f RTCM_Revision_constraint; +ber_type_decoder_f RTCM_Revision_decode_ber; +der_type_encoder_f RTCM_Revision_encode_der; +xer_type_decoder_f RTCM_Revision_decode_xer; +xer_type_encoder_f RTCM_Revision_encode_xer; +oer_type_decoder_f RTCM_Revision_decode_oer; +oer_type_encoder_f RTCM_Revision_encode_oer; +per_type_decoder_f RTCM_Revision_decode_uper; +per_type_encoder_f RTCM_Revision_encode_uper; +per_type_decoder_f RTCM_Revision_decode_aper; +per_type_encoder_f RTCM_Revision_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCM_Revision_H_ */ +#include diff --git a/vcits/rtcmem/RTCMEM.h b/vcits/rtcmem/RTCMEM.h new file mode 100644 index 0000000..5bd8552 --- /dev/null +++ b/vcits/rtcmem/RTCMEM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "RTCMEM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/RTCMEM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RTCMEM_H_ +#define _RTCMEM_H_ + + +#include + +/* Including external dependencies */ +#include "ItsPduHeader.h" +#include "RTCMcorrections.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMEM */ +typedef struct RTCMEM { + ItsPduHeader_t header; + RTCMcorrections_t rtcmc; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMEM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMEM; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMEM_H_ */ +#include diff --git a/vcits/rtcmem/RTCMcorrections.h b/vcits/rtcmem/RTCMcorrections.h new file mode 100644 index 0000000..d80822e --- /dev/null +++ b/vcits/rtcmem/RTCMcorrections.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RTCMcorrections_H_ +#define _RTCMcorrections_H_ + + +#include + +/* Including external dependencies */ +#include "MsgCount.h" +#include "RTCM-Revision.h" +#include "MinuteOfTheYear.h" +#include "RTCMmessageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FullPositionVector; +struct RTCMheader; +struct Reg_RTCMcorrections; + +/* RTCMcorrections */ +typedef struct RTCMcorrections { + MsgCount_t msgCnt; + RTCM_Revision_t rev; + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + struct FullPositionVector *anchorPoint; /* OPTIONAL */ + struct RTCMheader *rtcmHeader; /* OPTIONAL */ + RTCMmessageList_t msgs; + struct RTCMcorrections__regional { + A_SEQUENCE_OF(struct Reg_RTCMcorrections) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMcorrections_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_RTCMcorrections_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMcorrections_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMcorrections_H_ */ +#include diff --git a/vcits/rtcmem/RTCMheader.h b/vcits/rtcmem/RTCMheader.h new file mode 100644 index 0000000..b55f612 --- /dev/null +++ b/vcits/rtcmem/RTCMheader.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RTCMheader_H_ +#define _RTCMheader_H_ + + +#include + +/* Including external dependencies */ +#include "GNSSstatus.h" +#include "AntennaOffsetSet.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMheader */ +typedef struct RTCMheader { + GNSSstatus_t status; + AntennaOffsetSet_t offsetSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMheader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMheader; +extern asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMheader_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMheader_H_ */ +#include diff --git a/vcits/rtcmem/RTCMmessage.h b/vcits/rtcmem/RTCMmessage.h new file mode 100644 index 0000000..39f316d --- /dev/null +++ b/vcits/rtcmem/RTCMmessage.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RTCMmessage_H_ +#define _RTCMmessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessage */ +typedef OCTET_STRING_t RTCMmessage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessage; +asn_struct_free_f RTCMmessage_free; +asn_struct_print_f RTCMmessage_print; +asn_constr_check_f RTCMmessage_constraint; +ber_type_decoder_f RTCMmessage_decode_ber; +der_type_encoder_f RTCMmessage_encode_der; +xer_type_decoder_f RTCMmessage_decode_xer; +xer_type_encoder_f RTCMmessage_encode_xer; +oer_type_decoder_f RTCMmessage_decode_oer; +oer_type_encoder_f RTCMmessage_encode_oer; +per_type_decoder_f RTCMmessage_decode_uper; +per_type_encoder_f RTCMmessage_encode_uper; +per_type_decoder_f RTCMmessage_decode_aper; +per_type_encoder_f RTCMmessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessage_H_ */ +#include diff --git a/vcits/rtcmem/RTCMmessageList.h b/vcits/rtcmem/RTCMmessageList.h new file mode 100644 index 0000000..21375c9 --- /dev/null +++ b/vcits/rtcmem/RTCMmessageList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RTCMmessageList_H_ +#define _RTCMmessageList_H_ + + +#include + +/* Including external dependencies */ +#include "RTCMmessage.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessageList */ +typedef struct RTCMmessageList { + A_SEQUENCE_OF(RTCMmessage_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMmessageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessageList; +extern asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMmessageList_1[1]; +extern asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessageList_H_ */ +#include diff --git a/vcits/rtcmem/ReferencePosition.h b/vcits/rtcmem/ReferencePosition.h new file mode 100644 index 0000000..c812715 --- /dev/null +++ b/vcits/rtcmem/ReferencePosition.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ReferencePosition_H_ +#define _ReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "PosConfidenceEllipse.h" +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReferencePosition */ +typedef struct ReferencePosition { + Latitude_t latitude; + Longitude_t longitude; + PosConfidenceEllipse_t positionConfidenceEllipse; + Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ReferencePosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReferencePosition_H_ */ +#include diff --git a/vcits/rtcmem/RegionId.h b/vcits/rtcmem/RegionId.h new file mode 100644 index 0000000..d5e5805 --- /dev/null +++ b/vcits/rtcmem/RegionId.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RegionId_H_ +#define _RegionId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegionId */ +typedef long RegionId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RegionId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RegionId; +asn_struct_free_f RegionId_free; +asn_struct_print_f RegionId_print; +asn_constr_check_f RegionId_constraint; +ber_type_decoder_f RegionId_decode_ber; +der_type_encoder_f RegionId_encode_der; +xer_type_decoder_f RegionId_decode_xer; +xer_type_encoder_f RegionId_encode_xer; +oer_type_decoder_f RegionId_decode_oer; +oer_type_encoder_f RegionId_encode_oer; +per_type_decoder_f RegionId_decode_uper; +per_type_encoder_f RegionId_encode_uper; +per_type_decoder_f RegionId_decode_aper; +per_type_encoder_f RegionId_encode_aper; +#define RegionId_noRegion ((RegionId_t)0) +#define RegionId_addGrpA ((RegionId_t)1) +#define RegionId_addGrpB ((RegionId_t)2) +#define RegionId_addGrpC ((RegionId_t)3) + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionId_H_ */ +#include diff --git a/vcits/rtcmem/RegionalExtension.h b/vcits/rtcmem/RegionalExtension.h new file mode 100644 index 0000000..28381d6 --- /dev/null +++ b/vcits/rtcmem/RegionalExtension.h @@ -0,0 +1,626 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RegionalExtension_H_ +#define _RegionalExtension_H_ + + +#include + +/* Including external dependencies */ +#include "RegionId.h" +#include +#include +#include "MapData-addGrpC.h" +#include +#include +#include +#include "ConnectionManeuverAssist-addGrpC.h" +#include "ConnectionTrajectory-addGrpC.h" +#include "IntersectionState-addGrpC.h" +#include "LaneAttributes-addGrpC.h" +#include "MovementEvent-addGrpC.h" +#include "NodeAttributeSet-addGrpC.h" +#include "Position3D-addGrpC.h" +#include "RequestorDescription-addGrpC.h" +#include "RestrictionUserType-addGrpC.h" +#include "SignalStatusPackage-addGrpC.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Reg_MapData__regExtValue_PR { + Reg_MapData__regExtValue_PR_NOTHING, /* No components present */ + Reg_MapData__regExtValue_PR_MapData_addGrpC +} Reg_MapData__regExtValue_PR; +typedef enum Reg_RTCMcorrections__regExtValue_PR { + Reg_RTCMcorrections__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RTCMcorrections__regExtValue_PR; +typedef enum Reg_SPAT__regExtValue_PR { + Reg_SPAT__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SPAT__regExtValue_PR; +typedef enum Reg_SignalRequestMessage__regExtValue_PR { + Reg_SignalRequestMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestMessage__regExtValue_PR; +typedef enum Reg_SignalStatusMessage__regExtValue_PR { + Reg_SignalStatusMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatusMessage__regExtValue_PR; +typedef enum Reg_AdvisorySpeed__regExtValue_PR { + Reg_AdvisorySpeed__regExtValue_PR_NOTHING /* No components present */ + +} Reg_AdvisorySpeed__regExtValue_PR; +typedef enum Reg_ComputedLane__regExtValue_PR { + Reg_ComputedLane__regExtValue_PR_NOTHING /* No components present */ + +} Reg_ComputedLane__regExtValue_PR; +typedef enum Reg_ConnectionManeuverAssist__regExtValue_PR { + Reg_ConnectionManeuverAssist__regExtValue_PR_NOTHING, /* No components present */ + Reg_ConnectionManeuverAssist__regExtValue_PR_ConnectionManeuverAssist_addGrpC +} Reg_ConnectionManeuverAssist__regExtValue_PR; +typedef enum Reg_GenericLane__regExtValue_PR { + Reg_GenericLane__regExtValue_PR_NOTHING, /* No components present */ + Reg_GenericLane__regExtValue_PR_ConnectionTrajectory_addGrpC +} Reg_GenericLane__regExtValue_PR; +typedef enum Reg_IntersectionGeometry__regExtValue_PR { + Reg_IntersectionGeometry__regExtValue_PR_NOTHING /* No components present */ + +} Reg_IntersectionGeometry__regExtValue_PR; +typedef enum Reg_IntersectionState__regExtValue_PR { + Reg_IntersectionState__regExtValue_PR_NOTHING, /* No components present */ + Reg_IntersectionState__regExtValue_PR_IntersectionState_addGrpC +} Reg_IntersectionState__regExtValue_PR; +typedef enum Reg_LaneAttributes__regExtValue_PR { + Reg_LaneAttributes__regExtValue_PR_NOTHING, /* No components present */ + Reg_LaneAttributes__regExtValue_PR_LaneAttributes_addGrpC +} Reg_LaneAttributes__regExtValue_PR; +typedef enum Reg_LaneDataAttribute__regExtValue_PR { + Reg_LaneDataAttribute__regExtValue_PR_NOTHING /* No components present */ + +} Reg_LaneDataAttribute__regExtValue_PR; +typedef enum Reg_MovementEvent__regExtValue_PR { + Reg_MovementEvent__regExtValue_PR_NOTHING, /* No components present */ + Reg_MovementEvent__regExtValue_PR_MovementEvent_addGrpC +} Reg_MovementEvent__regExtValue_PR; +typedef enum Reg_MovementState__regExtValue_PR { + Reg_MovementState__regExtValue_PR_NOTHING /* No components present */ + +} Reg_MovementState__regExtValue_PR; +typedef enum Reg_NodeAttributeSetXY__regExtValue_PR { + Reg_NodeAttributeSetXY__regExtValue_PR_NOTHING, /* No components present */ + Reg_NodeAttributeSetXY__regExtValue_PR_NodeAttributeSet_addGrpC +} Reg_NodeAttributeSetXY__regExtValue_PR; +typedef enum Reg_NodeOffsetPointXY__regExtValue_PR { + Reg_NodeOffsetPointXY__regExtValue_PR_NOTHING /* No components present */ + +} Reg_NodeOffsetPointXY__regExtValue_PR; +typedef enum Reg_Position3D__regExtValue_PR { + Reg_Position3D__regExtValue_PR_NOTHING, /* No components present */ + Reg_Position3D__regExtValue_PR_Position3D_addGrpC +} Reg_Position3D__regExtValue_PR; +typedef enum Reg_RequestorDescription__regExtValue_PR { + Reg_RequestorDescription__regExtValue_PR_NOTHING, /* No components present */ + Reg_RequestorDescription__regExtValue_PR_RequestorDescription_addGrpC +} Reg_RequestorDescription__regExtValue_PR; +typedef enum Reg_RequestorType__regExtValue_PR { + Reg_RequestorType__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RequestorType__regExtValue_PR; +typedef enum Reg_RestrictionUserType__regExtValue_PR { + Reg_RestrictionUserType__regExtValue_PR_NOTHING, /* No components present */ + Reg_RestrictionUserType__regExtValue_PR_RestrictionUserType_addGrpC +} Reg_RestrictionUserType__regExtValue_PR; +typedef enum Reg_RoadSegment__regExtValue_PR { + Reg_RoadSegment__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RoadSegment__regExtValue_PR; +typedef enum Reg_SignalControlZone__regExtValue_PR { + Reg_SignalControlZone__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalControlZone__regExtValue_PR; +typedef enum Reg_SignalRequest__regExtValue_PR { + Reg_SignalRequest__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequest__regExtValue_PR; +typedef enum Reg_SignalRequestPackage__regExtValue_PR { + Reg_SignalRequestPackage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestPackage__regExtValue_PR; +typedef enum Reg_SignalStatus__regExtValue_PR { + Reg_SignalStatus__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatus__regExtValue_PR; +typedef enum Reg_SignalStatusPackage__regExtValue_PR { + Reg_SignalStatusPackage__regExtValue_PR_NOTHING, /* No components present */ + Reg_SignalStatusPackage__regExtValue_PR_SignalStatusPackage_addGrpC +} Reg_SignalStatusPackage__regExtValue_PR; + +/* RegionalExtension */ +typedef struct Reg_MapData { + RegionId_t regionId; + struct Reg_MapData__regExtValue { + Reg_MapData__regExtValue_PR present; + union Reg_MapData__regExtValue_u { + MapData_addGrpC_t MapData_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MapData_t; +typedef struct Reg_RTCMcorrections { + RegionId_t regionId; + struct Reg_RTCMcorrections__regExtValue { + Reg_RTCMcorrections__regExtValue_PR present; + union Reg_RTCMcorrections__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RTCMcorrections_t; +typedef struct Reg_SPAT { + RegionId_t regionId; + struct Reg_SPAT__regExtValue { + Reg_SPAT__regExtValue_PR present; + union Reg_SPAT__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SPAT_t; +typedef struct Reg_SignalRequestMessage { + RegionId_t regionId; + struct Reg_SignalRequestMessage__regExtValue { + Reg_SignalRequestMessage__regExtValue_PR present; + union Reg_SignalRequestMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestMessage_t; +typedef struct Reg_SignalStatusMessage { + RegionId_t regionId; + struct Reg_SignalStatusMessage__regExtValue { + Reg_SignalStatusMessage__regExtValue_PR present; + union Reg_SignalStatusMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusMessage_t; +typedef struct Reg_AdvisorySpeed { + RegionId_t regionId; + struct Reg_AdvisorySpeed__regExtValue { + Reg_AdvisorySpeed__regExtValue_PR present; + union Reg_AdvisorySpeed__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_AdvisorySpeed_t; +typedef struct Reg_ComputedLane { + RegionId_t regionId; + struct Reg_ComputedLane__regExtValue { + Reg_ComputedLane__regExtValue_PR present; + union Reg_ComputedLane__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ComputedLane_t; +typedef struct Reg_ConnectionManeuverAssist { + RegionId_t regionId; + struct Reg_ConnectionManeuverAssist__regExtValue { + Reg_ConnectionManeuverAssist__regExtValue_PR present; + union Reg_ConnectionManeuverAssist__regExtValue_u { + ConnectionManeuverAssist_addGrpC_t ConnectionManeuverAssist_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ConnectionManeuverAssist_t; +typedef struct Reg_GenericLane { + RegionId_t regionId; + struct Reg_GenericLane__regExtValue { + Reg_GenericLane__regExtValue_PR present; + union Reg_GenericLane__regExtValue_u { + ConnectionTrajectory_addGrpC_t ConnectionTrajectory_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_GenericLane_t; +typedef struct Reg_IntersectionGeometry { + RegionId_t regionId; + struct Reg_IntersectionGeometry__regExtValue { + Reg_IntersectionGeometry__regExtValue_PR present; + union Reg_IntersectionGeometry__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionGeometry_t; +typedef struct Reg_IntersectionState { + RegionId_t regionId; + struct Reg_IntersectionState__regExtValue { + Reg_IntersectionState__regExtValue_PR present; + union Reg_IntersectionState__regExtValue_u { + IntersectionState_addGrpC_t IntersectionState_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionState_t; +typedef struct Reg_LaneAttributes { + RegionId_t regionId; + struct Reg_LaneAttributes__regExtValue { + Reg_LaneAttributes__regExtValue_PR present; + union Reg_LaneAttributes__regExtValue_u { + LaneAttributes_addGrpC_t LaneAttributes_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneAttributes_t; +typedef struct Reg_LaneDataAttribute { + RegionId_t regionId; + struct Reg_LaneDataAttribute__regExtValue { + Reg_LaneDataAttribute__regExtValue_PR present; + union Reg_LaneDataAttribute__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneDataAttribute_t; +typedef struct Reg_MovementEvent { + RegionId_t regionId; + struct Reg_MovementEvent__regExtValue { + Reg_MovementEvent__regExtValue_PR present; + union Reg_MovementEvent__regExtValue_u { + MovementEvent_addGrpC_t MovementEvent_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementEvent_t; +typedef struct Reg_MovementState { + RegionId_t regionId; + struct Reg_MovementState__regExtValue { + Reg_MovementState__regExtValue_PR present; + union Reg_MovementState__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementState_t; +typedef struct Reg_NodeAttributeSetXY { + RegionId_t regionId; + struct Reg_NodeAttributeSetXY__regExtValue { + Reg_NodeAttributeSetXY__regExtValue_PR present; + union Reg_NodeAttributeSetXY__regExtValue_u { + NodeAttributeSet_addGrpC_t NodeAttributeSet_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeAttributeSetXY_t; +typedef struct Reg_NodeOffsetPointXY { + RegionId_t regionId; + struct Reg_NodeOffsetPointXY__regExtValue { + Reg_NodeOffsetPointXY__regExtValue_PR present; + union Reg_NodeOffsetPointXY__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeOffsetPointXY_t; +typedef struct Reg_Position3D { + RegionId_t regionId; + struct Reg_Position3D__regExtValue { + Reg_Position3D__regExtValue_PR present; + union Reg_Position3D__regExtValue_u { + Position3D_addGrpC_t Position3D_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_Position3D_t; +typedef struct Reg_RequestorDescription { + RegionId_t regionId; + struct Reg_RequestorDescription__regExtValue { + Reg_RequestorDescription__regExtValue_PR present; + union Reg_RequestorDescription__regExtValue_u { + RequestorDescription_addGrpC_t RequestorDescription_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorDescription_t; +typedef struct Reg_RequestorType { + RegionId_t regionId; + struct Reg_RequestorType__regExtValue { + Reg_RequestorType__regExtValue_PR present; + union Reg_RequestorType__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorType_t; +typedef struct Reg_RestrictionUserType { + RegionId_t regionId; + struct Reg_RestrictionUserType__regExtValue { + Reg_RestrictionUserType__regExtValue_PR present; + union Reg_RestrictionUserType__regExtValue_u { + RestrictionUserType_addGrpC_t RestrictionUserType_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RestrictionUserType_t; +typedef struct Reg_RoadSegment { + RegionId_t regionId; + struct Reg_RoadSegment__regExtValue { + Reg_RoadSegment__regExtValue_PR present; + union Reg_RoadSegment__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RoadSegment_t; +typedef struct Reg_SignalControlZone { + RegionId_t regionId; + struct Reg_SignalControlZone__regExtValue { + Reg_SignalControlZone__regExtValue_PR present; + union Reg_SignalControlZone__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalControlZone_t; +typedef struct Reg_SignalRequest { + RegionId_t regionId; + struct Reg_SignalRequest__regExtValue { + Reg_SignalRequest__regExtValue_PR present; + union Reg_SignalRequest__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequest_t; +typedef struct Reg_SignalRequestPackage { + RegionId_t regionId; + struct Reg_SignalRequestPackage__regExtValue { + Reg_SignalRequestPackage__regExtValue_PR present; + union Reg_SignalRequestPackage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestPackage_t; +typedef struct Reg_SignalStatus { + RegionId_t regionId; + struct Reg_SignalStatus__regExtValue { + Reg_SignalStatus__regExtValue_PR present; + union Reg_SignalStatus__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatus_t; +typedef struct Reg_SignalStatusPackage { + RegionId_t regionId; + struct Reg_SignalStatusPackage__regExtValue { + Reg_SignalStatusPackage__regExtValue_PR present; + union Reg_SignalStatusPackage__regExtValue_u { + SignalStatusPackage_addGrpC_t SignalStatusPackage_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Reg_MapData; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_1; +extern asn_TYPE_member_t asn_MBR_Reg_MapData_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_4; +extern asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_4[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SPAT; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_7; +extern asn_TYPE_member_t asn_MBR_Reg_SPAT_7[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_10; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_10[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_13; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_13[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_16; +extern asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_16[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_19; +extern asn_TYPE_member_t asn_MBR_Reg_ComputedLane_19[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_22; +extern asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_22[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_25; +extern asn_TYPE_member_t asn_MBR_Reg_GenericLane_25[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_28; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_28[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_31; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionState_31[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_34; +extern asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_34[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_37; +extern asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_37[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_40; +extern asn_TYPE_member_t asn_MBR_Reg_MovementEvent_40[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_43; +extern asn_TYPE_member_t asn_MBR_Reg_MovementState_43[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_46; +extern asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_46[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_49; +extern asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_49[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_52; +extern asn_TYPE_member_t asn_MBR_Reg_Position3D_52[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_55; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_55[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_58; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorType_58[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_61; +extern asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_61[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_64; +extern asn_TYPE_member_t asn_MBR_Reg_RoadSegment_64[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_67; +extern asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_67[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_70; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequest_70[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_73; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_73[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_76; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatus_76[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_79; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_79[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionalExtension_H_ */ +#include diff --git a/vcits/rtcmem/RegulatorySpeedLimit.h b/vcits/rtcmem/RegulatorySpeedLimit.h new file mode 100644 index 0000000..f4b005e --- /dev/null +++ b/vcits/rtcmem/RegulatorySpeedLimit.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RegulatorySpeedLimit_H_ +#define _RegulatorySpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedLimitType.h" +#include "Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegulatorySpeedLimit */ +typedef struct RegulatorySpeedLimit { + SpeedLimitType_t type; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RegulatorySpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit; +extern asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1; +extern asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegulatorySpeedLimit_H_ */ +#include diff --git a/vcits/rtcmem/RejectedReason.h b/vcits/rtcmem/RejectedReason.h new file mode 100644 index 0000000..3ba5a2b --- /dev/null +++ b/vcits/rtcmem/RejectedReason.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RejectedReason_H_ +#define _RejectedReason_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RejectedReason { + RejectedReason_unknown = 0, + RejectedReason_exceptionalCondition = 1, + RejectedReason_maxWaitingTimeExceeded = 2, + RejectedReason_ptPriorityDisabled = 3, + RejectedReason_higherPTPriorityGranted = 4, + RejectedReason_vehicleTrackingUnknown = 5 + /* + * Enumeration is extensible + */ +} e_RejectedReason; + +/* RejectedReason */ +typedef long RejectedReason_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RejectedReason_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RejectedReason; +extern const asn_INTEGER_specifics_t asn_SPC_RejectedReason_specs_1; +asn_struct_free_f RejectedReason_free; +asn_struct_print_f RejectedReason_print; +asn_constr_check_f RejectedReason_constraint; +ber_type_decoder_f RejectedReason_decode_ber; +der_type_encoder_f RejectedReason_encode_der; +xer_type_decoder_f RejectedReason_decode_xer; +xer_type_encoder_f RejectedReason_encode_xer; +oer_type_decoder_f RejectedReason_decode_oer; +oer_type_encoder_f RejectedReason_encode_oer; +per_type_decoder_f RejectedReason_decode_uper; +per_type_encoder_f RejectedReason_encode_uper; +per_type_decoder_f RejectedReason_decode_aper; +per_type_encoder_f RejectedReason_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RejectedReason_H_ */ +#include diff --git a/vcits/rtcmem/RelevanceDistance.h b/vcits/rtcmem/RelevanceDistance.h new file mode 100644 index 0000000..462596e --- /dev/null +++ b/vcits/rtcmem/RelevanceDistance.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RelevanceDistance_H_ +#define _RelevanceDistance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceDistance { + RelevanceDistance_lessThan50m = 0, + RelevanceDistance_lessThan100m = 1, + RelevanceDistance_lessThan200m = 2, + RelevanceDistance_lessThan500m = 3, + RelevanceDistance_lessThan1000m = 4, + RelevanceDistance_lessThan5km = 5, + RelevanceDistance_lessThan10km = 6, + RelevanceDistance_over10km = 7 +} e_RelevanceDistance; + +/* RelevanceDistance */ +typedef long RelevanceDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceDistance; +asn_struct_free_f RelevanceDistance_free; +asn_struct_print_f RelevanceDistance_print; +asn_constr_check_f RelevanceDistance_constraint; +ber_type_decoder_f RelevanceDistance_decode_ber; +der_type_encoder_f RelevanceDistance_encode_der; +xer_type_decoder_f RelevanceDistance_decode_xer; +xer_type_encoder_f RelevanceDistance_encode_xer; +oer_type_decoder_f RelevanceDistance_decode_oer; +oer_type_encoder_f RelevanceDistance_encode_oer; +per_type_decoder_f RelevanceDistance_decode_uper; +per_type_encoder_f RelevanceDistance_encode_uper; +per_type_decoder_f RelevanceDistance_decode_aper; +per_type_encoder_f RelevanceDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceDistance_H_ */ +#include diff --git a/vcits/rtcmem/RelevanceTrafficDirection.h b/vcits/rtcmem/RelevanceTrafficDirection.h new file mode 100644 index 0000000..81ded8b --- /dev/null +++ b/vcits/rtcmem/RelevanceTrafficDirection.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RelevanceTrafficDirection_H_ +#define _RelevanceTrafficDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceTrafficDirection { + RelevanceTrafficDirection_allTrafficDirections = 0, + RelevanceTrafficDirection_upstreamTraffic = 1, + RelevanceTrafficDirection_downstreamTraffic = 2, + RelevanceTrafficDirection_oppositeTraffic = 3 +} e_RelevanceTrafficDirection; + +/* RelevanceTrafficDirection */ +typedef long RelevanceTrafficDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection; +asn_struct_free_f RelevanceTrafficDirection_free; +asn_struct_print_f RelevanceTrafficDirection_print; +asn_constr_check_f RelevanceTrafficDirection_constraint; +ber_type_decoder_f RelevanceTrafficDirection_decode_ber; +der_type_encoder_f RelevanceTrafficDirection_encode_der; +xer_type_decoder_f RelevanceTrafficDirection_decode_xer; +xer_type_encoder_f RelevanceTrafficDirection_encode_xer; +oer_type_decoder_f RelevanceTrafficDirection_decode_oer; +oer_type_encoder_f RelevanceTrafficDirection_encode_oer; +per_type_decoder_f RelevanceTrafficDirection_decode_uper; +per_type_encoder_f RelevanceTrafficDirection_encode_uper; +per_type_decoder_f RelevanceTrafficDirection_decode_aper; +per_type_encoder_f RelevanceTrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceTrafficDirection_H_ */ +#include diff --git a/vcits/rtcmem/RequestID.h b/vcits/rtcmem/RequestID.h new file mode 100644 index 0000000..ba97c80 --- /dev/null +++ b/vcits/rtcmem/RequestID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RequestID_H_ +#define _RequestID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestID */ +typedef long RequestID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestID; +asn_struct_free_f RequestID_free; +asn_struct_print_f RequestID_print; +asn_constr_check_f RequestID_constraint; +ber_type_decoder_f RequestID_decode_ber; +der_type_encoder_f RequestID_encode_der; +xer_type_decoder_f RequestID_decode_xer; +xer_type_encoder_f RequestID_encode_xer; +oer_type_decoder_f RequestID_decode_oer; +oer_type_encoder_f RequestID_encode_oer; +per_type_decoder_f RequestID_decode_uper; +per_type_encoder_f RequestID_encode_uper; +per_type_decoder_f RequestID_decode_aper; +per_type_encoder_f RequestID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestID_H_ */ +#include diff --git a/vcits/rtcmem/RequestImportanceLevel.h b/vcits/rtcmem/RequestImportanceLevel.h new file mode 100644 index 0000000..e066c91 --- /dev/null +++ b/vcits/rtcmem/RequestImportanceLevel.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RequestImportanceLevel_H_ +#define _RequestImportanceLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestImportanceLevel { + RequestImportanceLevel_requestImportanceLevelUnKnown = 0, + RequestImportanceLevel_requestImportanceLevel1 = 1, + RequestImportanceLevel_requestImportanceLevel2 = 2, + RequestImportanceLevel_requestImportanceLevel3 = 3, + RequestImportanceLevel_requestImportanceLevel4 = 4, + RequestImportanceLevel_requestImportanceLevel5 = 5, + RequestImportanceLevel_requestImportanceLevel6 = 6, + RequestImportanceLevel_requestImportanceLevel7 = 7, + RequestImportanceLevel_requestImportanceLevel8 = 8, + RequestImportanceLevel_requestImportanceLevel9 = 9, + RequestImportanceLevel_requestImportanceLevel10 = 10, + RequestImportanceLevel_requestImportanceLevel11 = 11, + RequestImportanceLevel_requestImportanceLevel12 = 12, + RequestImportanceLevel_requestImportanceLevel13 = 13, + RequestImportanceLevel_requestImportanceLevel14 = 14, + RequestImportanceLevel_requestImportanceReserved = 15 +} e_RequestImportanceLevel; + +/* RequestImportanceLevel */ +typedef long RequestImportanceLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel; +extern const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1; +asn_struct_free_f RequestImportanceLevel_free; +asn_struct_print_f RequestImportanceLevel_print; +asn_constr_check_f RequestImportanceLevel_constraint; +ber_type_decoder_f RequestImportanceLevel_decode_ber; +der_type_encoder_f RequestImportanceLevel_encode_der; +xer_type_decoder_f RequestImportanceLevel_decode_xer; +xer_type_encoder_f RequestImportanceLevel_encode_xer; +oer_type_decoder_f RequestImportanceLevel_decode_oer; +oer_type_encoder_f RequestImportanceLevel_encode_oer; +per_type_decoder_f RequestImportanceLevel_decode_uper; +per_type_encoder_f RequestImportanceLevel_encode_uper; +per_type_decoder_f RequestImportanceLevel_decode_aper; +per_type_encoder_f RequestImportanceLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestImportanceLevel_H_ */ +#include diff --git a/vcits/rtcmem/RequestResponseIndication.h b/vcits/rtcmem/RequestResponseIndication.h new file mode 100644 index 0000000..a0e01fc --- /dev/null +++ b/vcits/rtcmem/RequestResponseIndication.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RequestResponseIndication_H_ +#define _RequestResponseIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestResponseIndication { + RequestResponseIndication_request = 0, + RequestResponseIndication_response = 1 +} e_RequestResponseIndication; + +/* RequestResponseIndication */ +typedef long RequestResponseIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication; +asn_struct_free_f RequestResponseIndication_free; +asn_struct_print_f RequestResponseIndication_print; +asn_constr_check_f RequestResponseIndication_constraint; +ber_type_decoder_f RequestResponseIndication_decode_ber; +der_type_encoder_f RequestResponseIndication_encode_der; +xer_type_decoder_f RequestResponseIndication_decode_xer; +xer_type_encoder_f RequestResponseIndication_encode_xer; +oer_type_decoder_f RequestResponseIndication_decode_oer; +oer_type_encoder_f RequestResponseIndication_encode_oer; +per_type_decoder_f RequestResponseIndication_decode_uper; +per_type_encoder_f RequestResponseIndication_encode_uper; +per_type_decoder_f RequestResponseIndication_decode_aper; +per_type_encoder_f RequestResponseIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestResponseIndication_H_ */ +#include diff --git a/vcits/rtcmem/RequestSubRole.h b/vcits/rtcmem/RequestSubRole.h new file mode 100644 index 0000000..6b3ee9a --- /dev/null +++ b/vcits/rtcmem/RequestSubRole.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RequestSubRole_H_ +#define _RequestSubRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestSubRole { + RequestSubRole_requestSubRoleUnKnown = 0, + RequestSubRole_requestSubRole1 = 1, + RequestSubRole_requestSubRole2 = 2, + RequestSubRole_requestSubRole3 = 3, + RequestSubRole_requestSubRole4 = 4, + RequestSubRole_requestSubRole5 = 5, + RequestSubRole_requestSubRole6 = 6, + RequestSubRole_requestSubRole7 = 7, + RequestSubRole_requestSubRole8 = 8, + RequestSubRole_requestSubRole9 = 9, + RequestSubRole_requestSubRole10 = 10, + RequestSubRole_requestSubRole11 = 11, + RequestSubRole_requestSubRole12 = 12, + RequestSubRole_requestSubRole13 = 13, + RequestSubRole_requestSubRole14 = 14, + RequestSubRole_requestSubRoleReserved = 15 +} e_RequestSubRole; + +/* RequestSubRole */ +typedef long RequestSubRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestSubRole; +extern const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1; +asn_struct_free_f RequestSubRole_free; +asn_struct_print_f RequestSubRole_print; +asn_constr_check_f RequestSubRole_constraint; +ber_type_decoder_f RequestSubRole_decode_ber; +der_type_encoder_f RequestSubRole_encode_der; +xer_type_decoder_f RequestSubRole_decode_xer; +xer_type_encoder_f RequestSubRole_encode_xer; +oer_type_decoder_f RequestSubRole_decode_oer; +oer_type_encoder_f RequestSubRole_encode_oer; +per_type_decoder_f RequestSubRole_decode_uper; +per_type_encoder_f RequestSubRole_encode_uper; +per_type_decoder_f RequestSubRole_decode_aper; +per_type_encoder_f RequestSubRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestSubRole_H_ */ +#include diff --git a/vcits/rtcmem/RequestorDescription-addGrpC.h b/vcits/rtcmem/RequestorDescription-addGrpC.h new file mode 100644 index 0000000..bf2137b --- /dev/null +++ b/vcits/rtcmem/RequestorDescription-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RequestorDescription_addGrpC_H_ +#define _RequestorDescription_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "FuelType.h" +#include "BatteryStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestorDescription-addGrpC */ +typedef struct RequestorDescription_addGrpC { + FuelType_t *fuel; /* OPTIONAL */ + BatteryStatus_t *batteryStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_addGrpC_H_ */ +#include diff --git a/vcits/rtcmem/RequestorDescription.h b/vcits/rtcmem/RequestorDescription.h new file mode 100644 index 0000000..2cff3e3 --- /dev/null +++ b/vcits/rtcmem/RequestorDescription.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RequestorDescription_H_ +#define _RequestorDescription_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleID.h" +#include "DescriptiveName.h" +#include "TransitVehicleStatus.h" +#include "TransitVehicleOccupancy.h" +#include "DeltaTime.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; +struct RequestorPositionVector; +struct Reg_RequestorDescription; + +/* RequestorDescription */ +typedef struct RequestorDescription { + VehicleID_t id; + struct RequestorType *type; /* OPTIONAL */ + struct RequestorPositionVector *position; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + DescriptiveName_t *routeName; /* OPTIONAL */ + TransitVehicleStatus_t *transitStatus; /* OPTIONAL */ + TransitVehicleOccupancy_t *transitOccupancy; /* OPTIONAL */ + DeltaTime_t *transitSchedule; /* OPTIONAL */ + struct RequestorDescription__regional { + A_SEQUENCE_OF(struct Reg_RequestorDescription) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_H_ */ +#include diff --git a/vcits/rtcmem/RequestorPositionVector.h b/vcits/rtcmem/RequestorPositionVector.h new file mode 100644 index 0000000..1d547d3 --- /dev/null +++ b/vcits/rtcmem/RequestorPositionVector.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RequestorPositionVector_H_ +#define _RequestorPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "Position3D.h" +#include "Angle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TransmissionAndSpeed; + +/* RequestorPositionVector */ +typedef struct RequestorPositionVector { + Position3D_t position; + Angle_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorPositionVector_H_ */ +#include diff --git a/vcits/rtcmem/RequestorType.h b/vcits/rtcmem/RequestorType.h new file mode 100644 index 0000000..b5ea533 --- /dev/null +++ b/vcits/rtcmem/RequestorType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RequestorType_H_ +#define _RequestorType_H_ + + +#include + +/* Including external dependencies */ +#include "BasicVehicleRole.h" +#include "RequestSubRole.h" +#include "RequestImportanceLevel.h" +#include "Iso3833VehicleType.h" +#include "VehicleType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_RequestorType; + +/* RequestorType */ +typedef struct RequestorType { + BasicVehicleRole_t role; + RequestSubRole_t *subrole; /* OPTIONAL */ + RequestImportanceLevel_t *request; /* OPTIONAL */ + Iso3833VehicleType_t *iso3883; /* OPTIONAL */ + VehicleType_t *hpmsType; /* OPTIONAL */ + struct Reg_RequestorType *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorType_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorType_H_ */ +#include diff --git a/vcits/rtcmem/RescueAndRecoveryWorkInProgressSubCauseCode.h b/vcits/rtcmem/RescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 0000000..bae620d --- /dev/null +++ b/vcits/rtcmem/RescueAndRecoveryWorkInProgressSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RescueAndRecoveryWorkInProgressSubCauseCode_H_ +#define _RescueAndRecoveryWorkInProgressSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RescueAndRecoveryWorkInProgressSubCauseCode { + RescueAndRecoveryWorkInProgressSubCauseCode_unavailable = 0, + RescueAndRecoveryWorkInProgressSubCauseCode_emergencyVehicles = 1, + RescueAndRecoveryWorkInProgressSubCauseCode_rescueHelicopterLanding = 2, + RescueAndRecoveryWorkInProgressSubCauseCode_policeActivityOngoing = 3, + RescueAndRecoveryWorkInProgressSubCauseCode_medicalEmergencyOngoing = 4, + RescueAndRecoveryWorkInProgressSubCauseCode_childAbductionInProgress = 5 +} e_RescueAndRecoveryWorkInProgressSubCauseCode; + +/* RescueAndRecoveryWorkInProgressSubCauseCode */ +typedef long RescueAndRecoveryWorkInProgressSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode; +asn_struct_free_f RescueAndRecoveryWorkInProgressSubCauseCode_free; +asn_struct_print_f RescueAndRecoveryWorkInProgressSubCauseCode_print; +asn_constr_check_f RescueAndRecoveryWorkInProgressSubCauseCode_constraint; +ber_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_ber; +der_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_der; +xer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_xer; +xer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_xer; +oer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_oer; +oer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_oer; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_uper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_uper; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_aper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RescueAndRecoveryWorkInProgressSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/RestrictedTypes.h b/vcits/rtcmem/RestrictedTypes.h new file mode 100644 index 0000000..b862812 --- /dev/null +++ b/vcits/rtcmem/RestrictedTypes.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RestrictedTypes_H_ +#define _RestrictedTypes_H_ + + +#include + +/* Including external dependencies */ +#include "StationType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictedTypes */ +typedef struct RestrictedTypes { + A_SEQUENCE_OF(StationType_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictedTypes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictedTypes; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictedTypes_H_ */ +#include diff --git a/vcits/rtcmem/RestrictionAppliesTo.h b/vcits/rtcmem/RestrictionAppliesTo.h new file mode 100644 index 0000000..6a493f0 --- /dev/null +++ b/vcits/rtcmem/RestrictionAppliesTo.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RestrictionAppliesTo_H_ +#define _RestrictionAppliesTo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionAppliesTo { + RestrictionAppliesTo_none = 0, + RestrictionAppliesTo_equippedTransit = 1, + RestrictionAppliesTo_equippedTaxis = 2, + RestrictionAppliesTo_equippedOther = 3, + RestrictionAppliesTo_emissionCompliant = 4, + RestrictionAppliesTo_equippedBicycle = 5, + RestrictionAppliesTo_weightCompliant = 6, + RestrictionAppliesTo_heightCompliant = 7, + RestrictionAppliesTo_pedestrians = 8, + RestrictionAppliesTo_slowMovingPersons = 9, + RestrictionAppliesTo_wheelchairUsers = 10, + RestrictionAppliesTo_visualDisabilities = 11, + RestrictionAppliesTo_audioDisabilities = 12, + RestrictionAppliesTo_otherUnknownDisabilities = 13 + /* + * Enumeration is extensible + */ +} e_RestrictionAppliesTo; + +/* RestrictionAppliesTo */ +typedef long RestrictionAppliesTo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo; +extern const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1; +asn_struct_free_f RestrictionAppliesTo_free; +asn_struct_print_f RestrictionAppliesTo_print; +asn_constr_check_f RestrictionAppliesTo_constraint; +ber_type_decoder_f RestrictionAppliesTo_decode_ber; +der_type_encoder_f RestrictionAppliesTo_encode_der; +xer_type_decoder_f RestrictionAppliesTo_decode_xer; +xer_type_encoder_f RestrictionAppliesTo_encode_xer; +oer_type_decoder_f RestrictionAppliesTo_decode_oer; +oer_type_encoder_f RestrictionAppliesTo_encode_oer; +per_type_decoder_f RestrictionAppliesTo_decode_uper; +per_type_encoder_f RestrictionAppliesTo_encode_uper; +per_type_decoder_f RestrictionAppliesTo_decode_aper; +per_type_encoder_f RestrictionAppliesTo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionAppliesTo_H_ */ +#include diff --git a/vcits/rtcmem/RestrictionClassAssignment.h b/vcits/rtcmem/RestrictionClassAssignment.h new file mode 100644 index 0000000..fb2dadd --- /dev/null +++ b/vcits/rtcmem/RestrictionClassAssignment.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RestrictionClassAssignment_H_ +#define _RestrictionClassAssignment_H_ + + +#include + +/* Including external dependencies */ +#include "RestrictionClassID.h" +#include "RestrictionUserTypeList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassAssignment */ +typedef struct RestrictionClassAssignment { + RestrictionClassID_t id; + RestrictionUserTypeList_t users; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassAssignment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassAssignment_H_ */ +#include diff --git a/vcits/rtcmem/RestrictionClassID.h b/vcits/rtcmem/RestrictionClassID.h new file mode 100644 index 0000000..f71bf08 --- /dev/null +++ b/vcits/rtcmem/RestrictionClassID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RestrictionClassID_H_ +#define _RestrictionClassID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassID */ +typedef long RestrictionClassID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassID; +asn_struct_free_f RestrictionClassID_free; +asn_struct_print_f RestrictionClassID_print; +asn_constr_check_f RestrictionClassID_constraint; +ber_type_decoder_f RestrictionClassID_decode_ber; +der_type_encoder_f RestrictionClassID_encode_der; +xer_type_decoder_f RestrictionClassID_decode_xer; +xer_type_encoder_f RestrictionClassID_encode_xer; +oer_type_decoder_f RestrictionClassID_decode_oer; +oer_type_encoder_f RestrictionClassID_encode_oer; +per_type_decoder_f RestrictionClassID_decode_uper; +per_type_encoder_f RestrictionClassID_encode_uper; +per_type_decoder_f RestrictionClassID_decode_aper; +per_type_encoder_f RestrictionClassID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassID_H_ */ +#include diff --git a/vcits/rtcmem/RestrictionClassList.h b/vcits/rtcmem/RestrictionClassList.h new file mode 100644 index 0000000..62d90f5 --- /dev/null +++ b/vcits/rtcmem/RestrictionClassList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RestrictionClassList_H_ +#define _RestrictionClassList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionClassAssignment; + +/* RestrictionClassList */ +typedef struct RestrictionClassList { + A_SEQUENCE_OF(struct RestrictionClassAssignment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassList_H_ */ +#include diff --git a/vcits/rtcmem/RestrictionUserType-addGrpC.h b/vcits/rtcmem/RestrictionUserType-addGrpC.h new file mode 100644 index 0000000..da84683 --- /dev/null +++ b/vcits/rtcmem/RestrictionUserType-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RestrictionUserType_addGrpC_H_ +#define _RestrictionUserType_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "EmissionType.h" +#include "FuelType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionUserType-addGrpC */ +typedef struct RestrictionUserType_addGrpC { + EmissionType_t *emission; /* OPTIONAL */ + FuelType_t *fuel; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_addGrpC_H_ */ +#include diff --git a/vcits/rtcmem/RestrictionUserType.h b/vcits/rtcmem/RestrictionUserType.h new file mode 100644 index 0000000..933f2ca --- /dev/null +++ b/vcits/rtcmem/RestrictionUserType.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RestrictionUserType_H_ +#define _RestrictionUserType_H_ + + +#include + +/* Including external dependencies */ +#include "RestrictionAppliesTo.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionUserType_PR { + RestrictionUserType_PR_NOTHING, /* No components present */ + RestrictionUserType_PR_basicType, + RestrictionUserType_PR_regional + /* Extensions may appear below */ + +} RestrictionUserType_PR; + +/* Forward declarations */ +struct Reg_RestrictionUserType; + +/* RestrictionUserType */ +typedef struct RestrictionUserType { + RestrictionUserType_PR present; + union RestrictionUserType_u { + RestrictionAppliesTo_t basicType; + struct RestrictionUserType__regional { + A_SEQUENCE_OF(struct Reg_RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType; +extern asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_1[2]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_H_ */ +#include diff --git a/vcits/rtcmem/RestrictionUserTypeList.h b/vcits/rtcmem/RestrictionUserTypeList.h new file mode 100644 index 0000000..3d71946 --- /dev/null +++ b/vcits/rtcmem/RestrictionUserTypeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RestrictionUserTypeList_H_ +#define _RestrictionUserTypeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionUserType; + +/* RestrictionUserTypeList */ +typedef struct RestrictionUserTypeList { + A_SEQUENCE_OF(struct RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserTypeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserTypeList_H_ */ +#include diff --git a/vcits/rtcmem/RoadLaneSetList.h b/vcits/rtcmem/RoadLaneSetList.h new file mode 100644 index 0000000..d1320eb --- /dev/null +++ b/vcits/rtcmem/RoadLaneSetList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RoadLaneSetList_H_ +#define _RoadLaneSetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* RoadLaneSetList */ +typedef struct RoadLaneSetList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadLaneSetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList; +extern asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadLaneSetList_H_ */ +#include diff --git a/vcits/rtcmem/RoadRegulatorID.h b/vcits/rtcmem/RoadRegulatorID.h new file mode 100644 index 0000000..f3a3374 --- /dev/null +++ b/vcits/rtcmem/RoadRegulatorID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RoadRegulatorID_H_ +#define _RoadRegulatorID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadRegulatorID */ +typedef long RoadRegulatorID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID; +asn_struct_free_f RoadRegulatorID_free; +asn_struct_print_f RoadRegulatorID_print; +asn_constr_check_f RoadRegulatorID_constraint; +ber_type_decoder_f RoadRegulatorID_decode_ber; +der_type_encoder_f RoadRegulatorID_encode_der; +xer_type_decoder_f RoadRegulatorID_decode_xer; +xer_type_encoder_f RoadRegulatorID_encode_xer; +oer_type_decoder_f RoadRegulatorID_decode_oer; +oer_type_encoder_f RoadRegulatorID_encode_oer; +per_type_decoder_f RoadRegulatorID_decode_uper; +per_type_encoder_f RoadRegulatorID_encode_uper; +per_type_decoder_f RoadRegulatorID_decode_aper; +per_type_encoder_f RoadRegulatorID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadRegulatorID_H_ */ +#include diff --git a/vcits/rtcmem/RoadSegment.h b/vcits/rtcmem/RoadSegment.h new file mode 100644 index 0000000..c0564b0 --- /dev/null +++ b/vcits/rtcmem/RoadSegment.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RoadSegment_H_ +#define _RoadSegment_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "RoadSegmentReferenceID.h" +#include "MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "RoadLaneSetList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct Reg_RoadSegment; + +/* RoadSegment */ +typedef struct RoadSegment { + DescriptiveName_t *name; /* OPTIONAL */ + RoadSegmentReferenceID_t id; + MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + RoadLaneSetList_t roadLaneSet; + struct RoadSegment__regional { + A_SEQUENCE_OF(struct Reg_RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegment_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegment_H_ */ +#include diff --git a/vcits/rtcmem/RoadSegmentID.h b/vcits/rtcmem/RoadSegmentID.h new file mode 100644 index 0000000..ea71846 --- /dev/null +++ b/vcits/rtcmem/RoadSegmentID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RoadSegmentID_H_ +#define _RoadSegmentID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentID */ +typedef long RoadSegmentID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentID; +asn_struct_free_f RoadSegmentID_free; +asn_struct_print_f RoadSegmentID_print; +asn_constr_check_f RoadSegmentID_constraint; +ber_type_decoder_f RoadSegmentID_decode_ber; +der_type_encoder_f RoadSegmentID_encode_der; +xer_type_decoder_f RoadSegmentID_decode_xer; +xer_type_encoder_f RoadSegmentID_encode_xer; +oer_type_decoder_f RoadSegmentID_decode_oer; +oer_type_encoder_f RoadSegmentID_encode_oer; +per_type_decoder_f RoadSegmentID_decode_uper; +per_type_encoder_f RoadSegmentID_encode_uper; +per_type_decoder_f RoadSegmentID_decode_aper; +per_type_encoder_f RoadSegmentID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentID_H_ */ +#include diff --git a/vcits/rtcmem/RoadSegmentList.h b/vcits/rtcmem/RoadSegmentList.h new file mode 100644 index 0000000..54c0544 --- /dev/null +++ b/vcits/rtcmem/RoadSegmentList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RoadSegmentList_H_ +#define _RoadSegmentList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RoadSegment; + +/* RoadSegmentList */ +typedef struct RoadSegmentList { + A_SEQUENCE_OF(struct RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentList; +extern asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentList_H_ */ +#include diff --git a/vcits/rtcmem/RoadSegmentReferenceID.h b/vcits/rtcmem/RoadSegmentReferenceID.h new file mode 100644 index 0000000..d76f756 --- /dev/null +++ b/vcits/rtcmem/RoadSegmentReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RoadSegmentReferenceID_H_ +#define _RoadSegmentReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "RoadSegmentID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentReferenceID */ +typedef struct RoadSegmentReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + RoadSegmentID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentReferenceID_H_ */ +#include diff --git a/vcits/rtcmem/RoadType.h b/vcits/rtcmem/RoadType.h new file mode 100644 index 0000000..37f5f33 --- /dev/null +++ b/vcits/rtcmem/RoadType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RoadType_H_ +#define _RoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadType { + RoadType_urban_NoStructuralSeparationToOppositeLanes = 0, + RoadType_urban_WithStructuralSeparationToOppositeLanes = 1, + RoadType_nonUrban_NoStructuralSeparationToOppositeLanes = 2, + RoadType_nonUrban_WithStructuralSeparationToOppositeLanes = 3 +} e_RoadType; + +/* RoadType */ +typedef long RoadType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadType; +asn_struct_free_f RoadType_free; +asn_struct_print_f RoadType_print; +asn_constr_check_f RoadType_constraint; +ber_type_decoder_f RoadType_decode_ber; +der_type_encoder_f RoadType_encode_der; +xer_type_decoder_f RoadType_decode_xer; +xer_type_encoder_f RoadType_encode_xer; +oer_type_decoder_f RoadType_decode_oer; +oer_type_encoder_f RoadType_encode_oer; +per_type_decoder_f RoadType_decode_uper; +per_type_encoder_f RoadType_encode_uper; +per_type_decoder_f RoadType_decode_aper; +per_type_encoder_f RoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadType_H_ */ +#include diff --git a/vcits/rtcmem/RoadwayCrownAngle.h b/vcits/rtcmem/RoadwayCrownAngle.h new file mode 100644 index 0000000..26aa78b --- /dev/null +++ b/vcits/rtcmem/RoadwayCrownAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RoadwayCrownAngle_H_ +#define _RoadwayCrownAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadwayCrownAngle */ +typedef long RoadwayCrownAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle; +asn_struct_free_f RoadwayCrownAngle_free; +asn_struct_print_f RoadwayCrownAngle_print; +asn_constr_check_f RoadwayCrownAngle_constraint; +ber_type_decoder_f RoadwayCrownAngle_decode_ber; +der_type_encoder_f RoadwayCrownAngle_encode_der; +xer_type_decoder_f RoadwayCrownAngle_decode_xer; +xer_type_encoder_f RoadwayCrownAngle_encode_xer; +oer_type_decoder_f RoadwayCrownAngle_decode_oer; +oer_type_encoder_f RoadwayCrownAngle_encode_oer; +per_type_decoder_f RoadwayCrownAngle_decode_uper; +per_type_encoder_f RoadwayCrownAngle_encode_uper; +per_type_decoder_f RoadwayCrownAngle_decode_aper; +per_type_encoder_f RoadwayCrownAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadwayCrownAngle_H_ */ +#include diff --git a/vcits/rtcmem/RoadworksSubCauseCode.h b/vcits/rtcmem/RoadworksSubCauseCode.h new file mode 100644 index 0000000..0de99ba --- /dev/null +++ b/vcits/rtcmem/RoadworksSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _RoadworksSubCauseCode_H_ +#define _RoadworksSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadworksSubCauseCode { + RoadworksSubCauseCode_unavailable = 0, + RoadworksSubCauseCode_majorRoadworks = 1, + RoadworksSubCauseCode_roadMarkingWork = 2, + RoadworksSubCauseCode_slowMovingRoadMaintenance = 3, + RoadworksSubCauseCode_shortTermStationaryRoadworks = 4, + RoadworksSubCauseCode_streetCleaning = 5, + RoadworksSubCauseCode_winterService = 6 +} e_RoadworksSubCauseCode; + +/* RoadworksSubCauseCode */ +typedef long RoadworksSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode; +asn_struct_free_f RoadworksSubCauseCode_free; +asn_struct_print_f RoadworksSubCauseCode_print; +asn_constr_check_f RoadworksSubCauseCode_constraint; +ber_type_decoder_f RoadworksSubCauseCode_decode_ber; +der_type_encoder_f RoadworksSubCauseCode_encode_der; +xer_type_decoder_f RoadworksSubCauseCode_decode_xer; +xer_type_encoder_f RoadworksSubCauseCode_encode_xer; +oer_type_decoder_f RoadworksSubCauseCode_decode_oer; +oer_type_encoder_f RoadworksSubCauseCode_encode_oer; +per_type_decoder_f RoadworksSubCauseCode_decode_uper; +per_type_encoder_f RoadworksSubCauseCode_encode_uper; +per_type_decoder_f RoadworksSubCauseCode_decode_aper; +per_type_encoder_f RoadworksSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadworksSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/SPAT.h b/vcits/rtcmem/SPAT.h new file mode 100644 index 0000000..81d1e70 --- /dev/null +++ b/vcits/rtcmem/SPAT.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SPAT_H_ +#define _SPAT_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DescriptiveName.h" +#include "IntersectionStateList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SPAT; + +/* SPAT */ +typedef struct SPAT { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionStateList_t intersections; + struct SPAT__regional { + A_SEQUENCE_OF(struct Reg_SPAT) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SPAT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SPAT; + +#ifdef __cplusplus +} +#endif + +#endif /* _SPAT_H_ */ +#include diff --git a/vcits/rtcmem/Scale-B12.h b/vcits/rtcmem/Scale-B12.h new file mode 100644 index 0000000..836b703 --- /dev/null +++ b/vcits/rtcmem/Scale-B12.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Scale_B12_H_ +#define _Scale_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Scale-B12 */ +typedef long Scale_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Scale_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Scale_B12; +asn_struct_free_f Scale_B12_free; +asn_struct_print_f Scale_B12_print; +asn_constr_check_f Scale_B12_constraint; +ber_type_decoder_f Scale_B12_decode_ber; +der_type_encoder_f Scale_B12_encode_der; +xer_type_decoder_f Scale_B12_decode_xer; +xer_type_encoder_f Scale_B12_encode_xer; +oer_type_decoder_f Scale_B12_decode_oer; +oer_type_encoder_f Scale_B12_encode_oer; +per_type_decoder_f Scale_B12_decode_uper; +per_type_encoder_f Scale_B12_encode_uper; +per_type_decoder_f Scale_B12_decode_aper; +per_type_encoder_f Scale_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Scale_B12_H_ */ +#include diff --git a/vcits/rtcmem/SegmentAttributeXY.h b/vcits/rtcmem/SegmentAttributeXY.h new file mode 100644 index 0000000..de4c725 --- /dev/null +++ b/vcits/rtcmem/SegmentAttributeXY.h @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SegmentAttributeXY_H_ +#define _SegmentAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SegmentAttributeXY { + SegmentAttributeXY_reserved = 0, + SegmentAttributeXY_doNotBlock = 1, + SegmentAttributeXY_whiteLine = 2, + SegmentAttributeXY_mergingLaneLeft = 3, + SegmentAttributeXY_mergingLaneRight = 4, + SegmentAttributeXY_curbOnLeft = 5, + SegmentAttributeXY_curbOnRight = 6, + SegmentAttributeXY_loadingzoneOnLeft = 7, + SegmentAttributeXY_loadingzoneOnRight = 8, + SegmentAttributeXY_turnOutPointOnLeft = 9, + SegmentAttributeXY_turnOutPointOnRight = 10, + SegmentAttributeXY_adjacentParkingOnLeft = 11, + SegmentAttributeXY_adjacentParkingOnRight = 12, + SegmentAttributeXY_adjacentBikeLaneOnLeft = 13, + SegmentAttributeXY_adjacentBikeLaneOnRight = 14, + SegmentAttributeXY_sharedBikeLane = 15, + SegmentAttributeXY_bikeBoxInFront = 16, + SegmentAttributeXY_transitStopOnLeft = 17, + SegmentAttributeXY_transitStopOnRight = 18, + SegmentAttributeXY_transitStopInLane = 19, + SegmentAttributeXY_sharedWithTrackedVehicle = 20, + SegmentAttributeXY_safeIsland = 21, + SegmentAttributeXY_lowCurbsPresent = 22, + SegmentAttributeXY_rumbleStripPresent = 23, + SegmentAttributeXY_audibleSignalingPresent = 24, + SegmentAttributeXY_adaptiveTimingPresent = 25, + SegmentAttributeXY_rfSignalRequestPresent = 26, + SegmentAttributeXY_partialCurbIntrusion = 27, + SegmentAttributeXY_taperToLeft = 28, + SegmentAttributeXY_taperToRight = 29, + SegmentAttributeXY_taperToCenterLine = 30, + SegmentAttributeXY_parallelParking = 31, + SegmentAttributeXY_headInParking = 32, + SegmentAttributeXY_freeParking = 33, + SegmentAttributeXY_timeRestrictionsOnParking = 34, + SegmentAttributeXY_costToPark = 35, + SegmentAttributeXY_midBlockCurbPresent = 36, + SegmentAttributeXY_unEvenPavementPresent = 37 + /* + * Enumeration is extensible + */ +} e_SegmentAttributeXY; + +/* SegmentAttributeXY */ +typedef long SegmentAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1; +asn_struct_free_f SegmentAttributeXY_free; +asn_struct_print_f SegmentAttributeXY_print; +asn_constr_check_f SegmentAttributeXY_constraint; +ber_type_decoder_f SegmentAttributeXY_decode_ber; +der_type_encoder_f SegmentAttributeXY_encode_der; +xer_type_decoder_f SegmentAttributeXY_decode_xer; +xer_type_encoder_f SegmentAttributeXY_encode_xer; +oer_type_decoder_f SegmentAttributeXY_decode_oer; +oer_type_encoder_f SegmentAttributeXY_encode_oer; +per_type_decoder_f SegmentAttributeXY_decode_uper; +per_type_encoder_f SegmentAttributeXY_encode_uper; +per_type_decoder_f SegmentAttributeXY_decode_aper; +per_type_encoder_f SegmentAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXY_H_ */ +#include diff --git a/vcits/rtcmem/SegmentAttributeXYList.h b/vcits/rtcmem/SegmentAttributeXYList.h new file mode 100644 index 0000000..7662b0f --- /dev/null +++ b/vcits/rtcmem/SegmentAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SegmentAttributeXYList_H_ +#define _SegmentAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "SegmentAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SegmentAttributeXYList */ +typedef struct SegmentAttributeXYList { + A_SEQUENCE_OF(SegmentAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SegmentAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXYList_H_ */ +#include diff --git a/vcits/rtcmem/SemiAxisLength.h b/vcits/rtcmem/SemiAxisLength.h new file mode 100644 index 0000000..e62243f --- /dev/null +++ b/vcits/rtcmem/SemiAxisLength.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SemiAxisLength_H_ +#define _SemiAxisLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SemiAxisLength { + SemiAxisLength_oneCentimeter = 1, + SemiAxisLength_outOfRange = 4094, + SemiAxisLength_unavailable = 4095 +} e_SemiAxisLength; + +/* SemiAxisLength */ +typedef long SemiAxisLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiAxisLength; +asn_struct_free_f SemiAxisLength_free; +asn_struct_print_f SemiAxisLength_print; +asn_constr_check_f SemiAxisLength_constraint; +ber_type_decoder_f SemiAxisLength_decode_ber; +der_type_encoder_f SemiAxisLength_encode_der; +xer_type_decoder_f SemiAxisLength_decode_xer; +xer_type_encoder_f SemiAxisLength_encode_xer; +oer_type_decoder_f SemiAxisLength_decode_oer; +oer_type_encoder_f SemiAxisLength_encode_oer; +per_type_decoder_f SemiAxisLength_decode_uper; +per_type_encoder_f SemiAxisLength_encode_uper; +per_type_decoder_f SemiAxisLength_decode_aper; +per_type_encoder_f SemiAxisLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiAxisLength_H_ */ +#include diff --git a/vcits/rtcmem/SemiMajorAxisAccuracy.h b/vcits/rtcmem/SemiMajorAxisAccuracy.h new file mode 100644 index 0000000..de38ed6 --- /dev/null +++ b/vcits/rtcmem/SemiMajorAxisAccuracy.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SemiMajorAxisAccuracy_H_ +#define _SemiMajorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisAccuracy */ +typedef long SemiMajorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy; +asn_struct_free_f SemiMajorAxisAccuracy_free; +asn_struct_print_f SemiMajorAxisAccuracy_print; +asn_constr_check_f SemiMajorAxisAccuracy_constraint; +ber_type_decoder_f SemiMajorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMajorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMajorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMajorAxisAccuracy_encode_xer; +oer_type_decoder_f SemiMajorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMajorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMajorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMajorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisAccuracy_H_ */ +#include diff --git a/vcits/rtcmem/SemiMajorAxisOrientation.h b/vcits/rtcmem/SemiMajorAxisOrientation.h new file mode 100644 index 0000000..87c510c --- /dev/null +++ b/vcits/rtcmem/SemiMajorAxisOrientation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SemiMajorAxisOrientation_H_ +#define _SemiMajorAxisOrientation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisOrientation */ +typedef long SemiMajorAxisOrientation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation; +asn_struct_free_f SemiMajorAxisOrientation_free; +asn_struct_print_f SemiMajorAxisOrientation_print; +asn_constr_check_f SemiMajorAxisOrientation_constraint; +ber_type_decoder_f SemiMajorAxisOrientation_decode_ber; +der_type_encoder_f SemiMajorAxisOrientation_encode_der; +xer_type_decoder_f SemiMajorAxisOrientation_decode_xer; +xer_type_encoder_f SemiMajorAxisOrientation_encode_xer; +oer_type_decoder_f SemiMajorAxisOrientation_decode_oer; +oer_type_encoder_f SemiMajorAxisOrientation_encode_oer; +per_type_decoder_f SemiMajorAxisOrientation_decode_uper; +per_type_encoder_f SemiMajorAxisOrientation_encode_uper; +per_type_decoder_f SemiMajorAxisOrientation_decode_aper; +per_type_encoder_f SemiMajorAxisOrientation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisOrientation_H_ */ +#include diff --git a/vcits/rtcmem/SemiMinorAxisAccuracy.h b/vcits/rtcmem/SemiMinorAxisAccuracy.h new file mode 100644 index 0000000..093e86b --- /dev/null +++ b/vcits/rtcmem/SemiMinorAxisAccuracy.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SemiMinorAxisAccuracy_H_ +#define _SemiMinorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMinorAxisAccuracy */ +typedef long SemiMinorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy; +asn_struct_free_f SemiMinorAxisAccuracy_free; +asn_struct_print_f SemiMinorAxisAccuracy_print; +asn_constr_check_f SemiMinorAxisAccuracy_constraint; +ber_type_decoder_f SemiMinorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMinorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMinorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMinorAxisAccuracy_encode_xer; +oer_type_decoder_f SemiMinorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMinorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMinorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMinorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMinorAxisAccuracy_H_ */ +#include diff --git a/vcits/rtcmem/SequenceNumber.h b/vcits/rtcmem/SequenceNumber.h new file mode 100644 index 0000000..b1bd875 --- /dev/null +++ b/vcits/rtcmem/SequenceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SequenceNumber_H_ +#define _SequenceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SequenceNumber */ +typedef long SequenceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SequenceNumber; +asn_struct_free_f SequenceNumber_free; +asn_struct_print_f SequenceNumber_print; +asn_constr_check_f SequenceNumber_constraint; +ber_type_decoder_f SequenceNumber_decode_ber; +der_type_encoder_f SequenceNumber_encode_der; +xer_type_decoder_f SequenceNumber_decode_xer; +xer_type_encoder_f SequenceNumber_encode_xer; +oer_type_decoder_f SequenceNumber_decode_oer; +oer_type_encoder_f SequenceNumber_encode_oer; +per_type_decoder_f SequenceNumber_decode_uper; +per_type_encoder_f SequenceNumber_encode_uper; +per_type_decoder_f SequenceNumber_decode_aper; +per_type_encoder_f SequenceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SequenceNumber_H_ */ +#include diff --git a/vcits/rtcmem/ServiceApplicationLimit.h b/vcits/rtcmem/ServiceApplicationLimit.h new file mode 100644 index 0000000..1f582e9 --- /dev/null +++ b/vcits/rtcmem/ServiceApplicationLimit.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ServiceApplicationLimit_H_ +#define _ServiceApplicationLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ServiceApplicationLimit { + ServiceApplicationLimit_notForPostpayment = 0, + ServiceApplicationLimit_notForPrepayment = 1, + ServiceApplicationLimit_notForVehicleaccess = 2, + ServiceApplicationLimit_notForFleetcontrol = 3, + ServiceApplicationLimit_issuerSpecificRestriction1 = 4, + ServiceApplicationLimit_issuerSpecificRestriction2 = 5, + ServiceApplicationLimit_issuerSpecificRestriction3 = 6, + ServiceApplicationLimit_issuerSpecificRestriction4 = 7 +} e_ServiceApplicationLimit; + +/* ServiceApplicationLimit */ +typedef BIT_STRING_t ServiceApplicationLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ServiceApplicationLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ServiceApplicationLimit; +asn_struct_free_f ServiceApplicationLimit_free; +asn_struct_print_f ServiceApplicationLimit_print; +asn_constr_check_f ServiceApplicationLimit_constraint; +ber_type_decoder_f ServiceApplicationLimit_decode_ber; +der_type_encoder_f ServiceApplicationLimit_encode_der; +xer_type_decoder_f ServiceApplicationLimit_decode_xer; +xer_type_encoder_f ServiceApplicationLimit_encode_xer; +oer_type_decoder_f ServiceApplicationLimit_decode_oer; +oer_type_encoder_f ServiceApplicationLimit_encode_oer; +per_type_decoder_f ServiceApplicationLimit_decode_uper; +per_type_encoder_f ServiceApplicationLimit_encode_uper; +per_type_decoder_f ServiceApplicationLimit_decode_aper; +per_type_encoder_f ServiceApplicationLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServiceApplicationLimit_H_ */ +#include diff --git a/vcits/rtcmem/ServiceNumber.h b/vcits/rtcmem/ServiceNumber.h new file mode 100644 index 0000000..b24845d --- /dev/null +++ b/vcits/rtcmem/ServiceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ServiceNumber_H_ +#define _ServiceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ServiceNumber */ +typedef BIT_STRING_t ServiceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ServiceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ServiceNumber; +asn_struct_free_f ServiceNumber_free; +asn_struct_print_f ServiceNumber_print; +asn_constr_check_f ServiceNumber_constraint; +ber_type_decoder_f ServiceNumber_decode_ber; +der_type_encoder_f ServiceNumber_encode_der; +xer_type_decoder_f ServiceNumber_decode_xer; +xer_type_encoder_f ServiceNumber_encode_xer; +oer_type_decoder_f ServiceNumber_decode_oer; +oer_type_encoder_f ServiceNumber_encode_oer; +per_type_decoder_f ServiceNumber_decode_uper; +per_type_encoder_f ServiceNumber_encode_uper; +per_type_decoder_f ServiceNumber_decode_aper; +per_type_encoder_f ServiceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServiceNumber_H_ */ +#include diff --git a/vcits/rtcmem/SignalControlZone.h b/vcits/rtcmem/SignalControlZone.h new file mode 100644 index 0000000..481a361 --- /dev/null +++ b/vcits/rtcmem/SignalControlZone.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalControlZone_H_ +#define _SignalControlZone_H_ + + +#include + +/* Including external dependencies */ +#include "RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalControlZone */ +typedef struct SignalControlZone { + Reg_SignalControlZone_t zone; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalControlZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalControlZone_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalControlZone_H_ */ +#include diff --git a/vcits/rtcmem/SignalGroupID.h b/vcits/rtcmem/SignalGroupID.h new file mode 100644 index 0000000..90b9f6c --- /dev/null +++ b/vcits/rtcmem/SignalGroupID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalGroupID_H_ +#define _SignalGroupID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalGroupID */ +typedef long SignalGroupID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SignalGroupID; +asn_struct_free_f SignalGroupID_free; +asn_struct_print_f SignalGroupID_print; +asn_constr_check_f SignalGroupID_constraint; +ber_type_decoder_f SignalGroupID_decode_ber; +der_type_encoder_f SignalGroupID_encode_der; +xer_type_decoder_f SignalGroupID_decode_xer; +xer_type_encoder_f SignalGroupID_encode_xer; +oer_type_decoder_f SignalGroupID_decode_oer; +oer_type_encoder_f SignalGroupID_encode_oer; +per_type_decoder_f SignalGroupID_decode_uper; +per_type_encoder_f SignalGroupID_encode_uper; +per_type_decoder_f SignalGroupID_decode_aper; +per_type_encoder_f SignalGroupID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalGroupID_H_ */ +#include diff --git a/vcits/rtcmem/SignalHeadLocation.h b/vcits/rtcmem/SignalHeadLocation.h new file mode 100644 index 0000000..96fa004 --- /dev/null +++ b/vcits/rtcmem/SignalHeadLocation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalHeadLocation_H_ +#define _SignalHeadLocation_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include "DeltaAltitude.h" +#include "SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalHeadLocation */ +typedef struct SignalHeadLocation { + NodeOffsetPointXY_t nodeXY; + DeltaAltitude_t nodeZ; + SignalGroupID_t signalGroupID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocation_H_ */ +#include diff --git a/vcits/rtcmem/SignalHeadLocationList.h b/vcits/rtcmem/SignalHeadLocationList.h new file mode 100644 index 0000000..935730b --- /dev/null +++ b/vcits/rtcmem/SignalHeadLocationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalHeadLocationList_H_ +#define _SignalHeadLocationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocation; + +/* SignalHeadLocationList */ +typedef struct SignalHeadLocationList { + A_SEQUENCE_OF(struct SignalHeadLocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList; +extern asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocationList_H_ */ +#include diff --git a/vcits/rtcmem/SignalRequest.h b/vcits/rtcmem/SignalRequest.h new file mode 100644 index 0000000..e7fdebd --- /dev/null +++ b/vcits/rtcmem/SignalRequest.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalRequest_H_ +#define _SignalRequest_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionReferenceID.h" +#include "RequestID.h" +#include "PriorityRequestType.h" +#include "IntersectionAccessPoint.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionAccessPoint; +struct Reg_SignalRequest; + +/* SignalRequest */ +typedef struct SignalRequest { + IntersectionReferenceID_t id; + RequestID_t requestID; + PriorityRequestType_t requestType; + IntersectionAccessPoint_t inBoundLane; + struct IntersectionAccessPoint *outBoundLane; /* OPTIONAL */ + struct SignalRequest__regional { + A_SEQUENCE_OF(struct Reg_SignalRequest) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequest_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequest_H_ */ +#include diff --git a/vcits/rtcmem/SignalRequestList.h b/vcits/rtcmem/SignalRequestList.h new file mode 100644 index 0000000..d504ffc --- /dev/null +++ b/vcits/rtcmem/SignalRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalRequestList_H_ +#define _SignalRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestPackage; + +/* SignalRequestList */ +typedef struct SignalRequestList { + A_SEQUENCE_OF(struct SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestList; +extern asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestList_H_ */ +#include diff --git a/vcits/rtcmem/SignalRequestMessage.h b/vcits/rtcmem/SignalRequestMessage.h new file mode 100644 index 0000000..491ca62 --- /dev/null +++ b/vcits/rtcmem/SignalRequestMessage.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalRequestMessage_H_ +#define _SignalRequestMessage_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MsgCount.h" +#include "RequestorDescription.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestList; +struct Reg_SignalRequestMessage; + +/* SignalRequestMessage */ +typedef struct SignalRequestMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + MsgCount_t *sequenceNumber; /* OPTIONAL */ + struct SignalRequestList *requests; /* OPTIONAL */ + RequestorDescription_t requestor; + struct SignalRequestMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestMessage_H_ */ +#include diff --git a/vcits/rtcmem/SignalRequestPackage.h b/vcits/rtcmem/SignalRequestPackage.h new file mode 100644 index 0000000..7ef689e --- /dev/null +++ b/vcits/rtcmem/SignalRequestPackage.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalRequestPackage_H_ +#define _SignalRequestPackage_H_ + + +#include + +/* Including external dependencies */ +#include "SignalRequest.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalRequestPackage; + +/* SignalRequestPackage */ +typedef struct SignalRequestPackage { + SignalRequest_t request; + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + struct SignalRequestPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestPackage_H_ */ +#include diff --git a/vcits/rtcmem/SignalRequesterInfo.h b/vcits/rtcmem/SignalRequesterInfo.h new file mode 100644 index 0000000..4ed9315 --- /dev/null +++ b/vcits/rtcmem/SignalRequesterInfo.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalRequesterInfo_H_ +#define _SignalRequesterInfo_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleID.h" +#include "RequestID.h" +#include "MsgCount.h" +#include "BasicVehicleRole.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; + +/* SignalRequesterInfo */ +typedef struct SignalRequesterInfo { + VehicleID_t id; + RequestID_t request; + MsgCount_t sequenceNumber; + BasicVehicleRole_t *role; /* OPTIONAL */ + struct RequestorType *typeData; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequesterInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequesterInfo_H_ */ +#include diff --git a/vcits/rtcmem/SignalStatus.h b/vcits/rtcmem/SignalStatus.h new file mode 100644 index 0000000..6a51304 --- /dev/null +++ b/vcits/rtcmem/SignalStatus.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalStatus_H_ +#define _SignalStatus_H_ + + +#include + +/* Including external dependencies */ +#include "MsgCount.h" +#include "IntersectionReferenceID.h" +#include "SignalStatusPackageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatus; + +/* SignalStatus */ +typedef struct SignalStatus { + MsgCount_t sequenceNumber; + IntersectionReferenceID_t id; + SignalStatusPackageList_t sigStatus; + struct SignalStatus__regional { + A_SEQUENCE_OF(struct Reg_SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatus_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatus_H_ */ +#include diff --git a/vcits/rtcmem/SignalStatusList.h b/vcits/rtcmem/SignalStatusList.h new file mode 100644 index 0000000..3f3f0d0 --- /dev/null +++ b/vcits/rtcmem/SignalStatusList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalStatusList_H_ +#define _SignalStatusList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatus; + +/* SignalStatusList */ +typedef struct SignalStatusList { + A_SEQUENCE_OF(struct SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusList_H_ */ +#include diff --git a/vcits/rtcmem/SignalStatusMessage.h b/vcits/rtcmem/SignalStatusMessage.h new file mode 100644 index 0000000..3e458b2 --- /dev/null +++ b/vcits/rtcmem/SignalStatusMessage.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalStatusMessage_H_ +#define _SignalStatusMessage_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MsgCount.h" +#include "SignalStatusList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatusMessage; + +/* SignalStatusMessage */ +typedef struct SignalStatusMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + MsgCount_t *sequenceNumber; /* OPTIONAL */ + SignalStatusList_t status; + struct SignalStatusMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusMessage_H_ */ +#include diff --git a/vcits/rtcmem/SignalStatusPackage-addGrpC.h b/vcits/rtcmem/SignalStatusPackage-addGrpC.h new file mode 100644 index 0000000..e4ce5c7 --- /dev/null +++ b/vcits/rtcmem/SignalStatusPackage-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalStatusPackage_addGrpC_H_ +#define _SignalStatusPackage_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaTime.h" +#include "RejectedReason.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalStatusPackage-addGrpC */ +typedef struct SignalStatusPackage_addGrpC { + DeltaTime_t *synchToSchedule; /* OPTIONAL */ + RejectedReason_t *rejectedReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_addGrpC_H_ */ +#include diff --git a/vcits/rtcmem/SignalStatusPackage.h b/vcits/rtcmem/SignalStatusPackage.h new file mode 100644 index 0000000..f820bf5 --- /dev/null +++ b/vcits/rtcmem/SignalStatusPackage.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalStatusPackage_H_ +#define _SignalStatusPackage_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionAccessPoint.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "PrioritizationResponseStatus.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequesterInfo; +struct IntersectionAccessPoint; +struct Reg_SignalStatusPackage; + +/* SignalStatusPackage */ +typedef struct SignalStatusPackage { + struct SignalRequesterInfo *requester; /* OPTIONAL */ + IntersectionAccessPoint_t inboundOn; + struct IntersectionAccessPoint *outboundOn; /* OPTIONAL */ + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + PrioritizationResponseStatus_t status; + struct SignalStatusPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_H_ */ +#include diff --git a/vcits/rtcmem/SignalStatusPackageList.h b/vcits/rtcmem/SignalStatusPackageList.h new file mode 100644 index 0000000..3f3e47f --- /dev/null +++ b/vcits/rtcmem/SignalStatusPackageList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalStatusPackageList_H_ +#define _SignalStatusPackageList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatusPackage; + +/* SignalStatusPackageList */ +typedef struct SignalStatusPackageList { + A_SEQUENCE_OF(struct SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackageList_H_ */ +#include diff --git a/vcits/rtcmem/SignalViolationSubCauseCode.h b/vcits/rtcmem/SignalViolationSubCauseCode.h new file mode 100644 index 0000000..f54eb51 --- /dev/null +++ b/vcits/rtcmem/SignalViolationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SignalViolationSubCauseCode_H_ +#define _SignalViolationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SignalViolationSubCauseCode { + SignalViolationSubCauseCode_unavailable = 0, + SignalViolationSubCauseCode_stopSignViolation = 1, + SignalViolationSubCauseCode_trafficLightViolation = 2, + SignalViolationSubCauseCode_turningRegulationViolation = 3 +} e_SignalViolationSubCauseCode; + +/* SignalViolationSubCauseCode */ +typedef long SignalViolationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode; +asn_struct_free_f SignalViolationSubCauseCode_free; +asn_struct_print_f SignalViolationSubCauseCode_print; +asn_constr_check_f SignalViolationSubCauseCode_constraint; +ber_type_decoder_f SignalViolationSubCauseCode_decode_ber; +der_type_encoder_f SignalViolationSubCauseCode_encode_der; +xer_type_decoder_f SignalViolationSubCauseCode_decode_xer; +xer_type_encoder_f SignalViolationSubCauseCode_encode_xer; +oer_type_decoder_f SignalViolationSubCauseCode_decode_oer; +oer_type_encoder_f SignalViolationSubCauseCode_encode_oer; +per_type_decoder_f SignalViolationSubCauseCode_decode_uper; +per_type_encoder_f SignalViolationSubCauseCode_encode_uper; +per_type_decoder_f SignalViolationSubCauseCode_decode_aper; +per_type_encoder_f SignalViolationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalViolationSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/SlowVehicleSubCauseCode.h b/vcits/rtcmem/SlowVehicleSubCauseCode.h new file mode 100644 index 0000000..2fad426 --- /dev/null +++ b/vcits/rtcmem/SlowVehicleSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SlowVehicleSubCauseCode_H_ +#define _SlowVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SlowVehicleSubCauseCode { + SlowVehicleSubCauseCode_unavailable = 0, + SlowVehicleSubCauseCode_maintenanceVehicle = 1, + SlowVehicleSubCauseCode_vehiclesSlowingToLookAtAccident = 2, + SlowVehicleSubCauseCode_abnormalLoad = 3, + SlowVehicleSubCauseCode_abnormalWideLoad = 4, + SlowVehicleSubCauseCode_convoy = 5, + SlowVehicleSubCauseCode_snowplough = 6, + SlowVehicleSubCauseCode_deicing = 7, + SlowVehicleSubCauseCode_saltingVehicles = 8 +} e_SlowVehicleSubCauseCode; + +/* SlowVehicleSubCauseCode */ +typedef long SlowVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode; +asn_struct_free_f SlowVehicleSubCauseCode_free; +asn_struct_print_f SlowVehicleSubCauseCode_print; +asn_constr_check_f SlowVehicleSubCauseCode_constraint; +ber_type_decoder_f SlowVehicleSubCauseCode_decode_ber; +der_type_encoder_f SlowVehicleSubCauseCode_encode_der; +xer_type_decoder_f SlowVehicleSubCauseCode_decode_xer; +xer_type_encoder_f SlowVehicleSubCauseCode_encode_xer; +oer_type_decoder_f SlowVehicleSubCauseCode_decode_oer; +oer_type_encoder_f SlowVehicleSubCauseCode_encode_oer; +per_type_decoder_f SlowVehicleSubCauseCode_decode_uper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_uper; +per_type_decoder_f SlowVehicleSubCauseCode_decode_aper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SlowVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/SpecialTransportType.h b/vcits/rtcmem/SpecialTransportType.h new file mode 100644 index 0000000..0afb547 --- /dev/null +++ b/vcits/rtcmem/SpecialTransportType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SpecialTransportType_H_ +#define _SpecialTransportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpecialTransportType { + SpecialTransportType_heavyLoad = 0, + SpecialTransportType_excessWidth = 1, + SpecialTransportType_excessLength = 2, + SpecialTransportType_excessHeight = 3 +} e_SpecialTransportType; + +/* SpecialTransportType */ +typedef BIT_STRING_t SpecialTransportType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpecialTransportType; +asn_struct_free_f SpecialTransportType_free; +asn_struct_print_f SpecialTransportType_print; +asn_constr_check_f SpecialTransportType_constraint; +ber_type_decoder_f SpecialTransportType_decode_ber; +der_type_encoder_f SpecialTransportType_encode_der; +xer_type_decoder_f SpecialTransportType_decode_xer; +xer_type_encoder_f SpecialTransportType_encode_xer; +oer_type_decoder_f SpecialTransportType_decode_oer; +oer_type_encoder_f SpecialTransportType_encode_oer; +per_type_decoder_f SpecialTransportType_decode_uper; +per_type_encoder_f SpecialTransportType_encode_uper; +per_type_decoder_f SpecialTransportType_decode_aper; +per_type_encoder_f SpecialTransportType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpecialTransportType_H_ */ +#include diff --git a/vcits/rtcmem/Speed.h b/vcits/rtcmem/Speed.h new file mode 100644 index 0000000..141cc99 --- /dev/null +++ b/vcits/rtcmem/Speed.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Speed_H_ +#define _Speed_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedValue.h" +#include "SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Speed */ +typedef struct Speed { + SpeedValue_t speedValue; + SpeedConfidence_t speedConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Speed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Speed; + +#ifdef __cplusplus +} +#endif + +#endif /* _Speed_H_ */ +#include diff --git a/vcits/rtcmem/SpeedAdvice.h b/vcits/rtcmem/SpeedAdvice.h new file mode 100644 index 0000000..e80d1d1 --- /dev/null +++ b/vcits/rtcmem/SpeedAdvice.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SpeedAdvice_H_ +#define _SpeedAdvice_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedAdvice */ +typedef long SpeedAdvice_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedAdvice; +asn_struct_free_f SpeedAdvice_free; +asn_struct_print_f SpeedAdvice_print; +asn_constr_check_f SpeedAdvice_constraint; +ber_type_decoder_f SpeedAdvice_decode_ber; +der_type_encoder_f SpeedAdvice_encode_der; +xer_type_decoder_f SpeedAdvice_decode_xer; +xer_type_encoder_f SpeedAdvice_encode_xer; +oer_type_decoder_f SpeedAdvice_decode_oer; +oer_type_encoder_f SpeedAdvice_encode_oer; +per_type_decoder_f SpeedAdvice_decode_uper; +per_type_encoder_f SpeedAdvice_encode_uper; +per_type_decoder_f SpeedAdvice_decode_aper; +per_type_encoder_f SpeedAdvice_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedAdvice_H_ */ +#include diff --git a/vcits/rtcmem/SpeedConfidence.h b/vcits/rtcmem/SpeedConfidence.h new file mode 100644 index 0000000..471c149 --- /dev/null +++ b/vcits/rtcmem/SpeedConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SpeedConfidence_H_ +#define _SpeedConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidence { + SpeedConfidence_equalOrWithinOneCentimeterPerSec = 1, + SpeedConfidence_equalOrWithinOneMeterPerSec = 100, + SpeedConfidence_outOfRange = 126, + SpeedConfidence_unavailable = 127 +} e_SpeedConfidence; + +/* SpeedConfidence */ +typedef long SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidence; +asn_struct_free_f SpeedConfidence_free; +asn_struct_print_f SpeedConfidence_print; +asn_constr_check_f SpeedConfidence_constraint; +ber_type_decoder_f SpeedConfidence_decode_ber; +der_type_encoder_f SpeedConfidence_encode_der; +xer_type_decoder_f SpeedConfidence_decode_xer; +xer_type_encoder_f SpeedConfidence_encode_xer; +oer_type_decoder_f SpeedConfidence_decode_oer; +oer_type_encoder_f SpeedConfidence_encode_oer; +per_type_decoder_f SpeedConfidence_decode_uper; +per_type_encoder_f SpeedConfidence_encode_uper; +per_type_decoder_f SpeedConfidence_decode_aper; +per_type_encoder_f SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidence_H_ */ +#include diff --git a/vcits/rtcmem/SpeedConfidenceDSRC.h b/vcits/rtcmem/SpeedConfidenceDSRC.h new file mode 100644 index 0000000..410fc98 --- /dev/null +++ b/vcits/rtcmem/SpeedConfidenceDSRC.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SpeedConfidenceDSRC_H_ +#define _SpeedConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidenceDSRC { + SpeedConfidenceDSRC_unavailable = 0, + SpeedConfidenceDSRC_prec100ms = 1, + SpeedConfidenceDSRC_prec10ms = 2, + SpeedConfidenceDSRC_prec5ms = 3, + SpeedConfidenceDSRC_prec1ms = 4, + SpeedConfidenceDSRC_prec0_1ms = 5, + SpeedConfidenceDSRC_prec0_05ms = 6, + SpeedConfidenceDSRC_prec0_01ms = 7 +} e_SpeedConfidenceDSRC; + +/* SpeedConfidenceDSRC */ +typedef long SpeedConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedConfidenceDSRC_specs_1; +asn_struct_free_f SpeedConfidenceDSRC_free; +asn_struct_print_f SpeedConfidenceDSRC_print; +asn_constr_check_f SpeedConfidenceDSRC_constraint; +ber_type_decoder_f SpeedConfidenceDSRC_decode_ber; +der_type_encoder_f SpeedConfidenceDSRC_encode_der; +xer_type_decoder_f SpeedConfidenceDSRC_decode_xer; +xer_type_encoder_f SpeedConfidenceDSRC_encode_xer; +oer_type_decoder_f SpeedConfidenceDSRC_decode_oer; +oer_type_encoder_f SpeedConfidenceDSRC_encode_oer; +per_type_decoder_f SpeedConfidenceDSRC_decode_uper; +per_type_encoder_f SpeedConfidenceDSRC_encode_uper; +per_type_decoder_f SpeedConfidenceDSRC_decode_aper; +per_type_encoder_f SpeedConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidenceDSRC_H_ */ +#include diff --git a/vcits/rtcmem/SpeedLimit.h b/vcits/rtcmem/SpeedLimit.h new file mode 100644 index 0000000..56d5f63 --- /dev/null +++ b/vcits/rtcmem/SpeedLimit.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SpeedLimit_H_ +#define _SpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimit { + SpeedLimit_oneKmPerHour = 1 +} e_SpeedLimit; + +/* SpeedLimit */ +typedef long SpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimit; +asn_struct_free_f SpeedLimit_free; +asn_struct_print_f SpeedLimit_print; +asn_constr_check_f SpeedLimit_constraint; +ber_type_decoder_f SpeedLimit_decode_ber; +der_type_encoder_f SpeedLimit_encode_der; +xer_type_decoder_f SpeedLimit_decode_xer; +xer_type_encoder_f SpeedLimit_encode_xer; +oer_type_decoder_f SpeedLimit_decode_oer; +oer_type_encoder_f SpeedLimit_encode_oer; +per_type_decoder_f SpeedLimit_decode_uper; +per_type_encoder_f SpeedLimit_encode_uper; +per_type_decoder_f SpeedLimit_decode_aper; +per_type_encoder_f SpeedLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimit_H_ */ +#include diff --git a/vcits/rtcmem/SpeedLimitList.h b/vcits/rtcmem/SpeedLimitList.h new file mode 100644 index 0000000..f404705 --- /dev/null +++ b/vcits/rtcmem/SpeedLimitList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SpeedLimitList_H_ +#define _SpeedLimitList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RegulatorySpeedLimit; + +/* SpeedLimitList */ +typedef struct SpeedLimitList { + A_SEQUENCE_OF(struct RegulatorySpeedLimit) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedLimitList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitList; +extern asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedLimitList_1[1]; +extern asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitList_H_ */ +#include diff --git a/vcits/rtcmem/SpeedLimitType.h b/vcits/rtcmem/SpeedLimitType.h new file mode 100644 index 0000000..94f0cc0 --- /dev/null +++ b/vcits/rtcmem/SpeedLimitType.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SpeedLimitType_H_ +#define _SpeedLimitType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimitType { + SpeedLimitType_unknown = 0, + SpeedLimitType_maxSpeedInSchoolZone = 1, + SpeedLimitType_maxSpeedInSchoolZoneWhenChildrenArePresent = 2, + SpeedLimitType_maxSpeedInConstructionZone = 3, + SpeedLimitType_vehicleMinSpeed = 4, + SpeedLimitType_vehicleMaxSpeed = 5, + SpeedLimitType_vehicleNightMaxSpeed = 6, + SpeedLimitType_truckMinSpeed = 7, + SpeedLimitType_truckMaxSpeed = 8, + SpeedLimitType_truckNightMaxSpeed = 9, + SpeedLimitType_vehiclesWithTrailersMinSpeed = 10, + SpeedLimitType_vehiclesWithTrailersMaxSpeed = 11, + SpeedLimitType_vehiclesWithTrailersNightMaxSpeed = 12 + /* + * Enumeration is extensible + */ +} e_SpeedLimitType; + +/* SpeedLimitType */ +typedef long SpeedLimitType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitType; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1; +asn_struct_free_f SpeedLimitType_free; +asn_struct_print_f SpeedLimitType_print; +asn_constr_check_f SpeedLimitType_constraint; +ber_type_decoder_f SpeedLimitType_decode_ber; +der_type_encoder_f SpeedLimitType_encode_der; +xer_type_decoder_f SpeedLimitType_decode_xer; +xer_type_encoder_f SpeedLimitType_encode_xer; +oer_type_decoder_f SpeedLimitType_decode_oer; +oer_type_encoder_f SpeedLimitType_encode_oer; +per_type_decoder_f SpeedLimitType_decode_uper; +per_type_encoder_f SpeedLimitType_encode_uper; +per_type_decoder_f SpeedLimitType_decode_aper; +per_type_encoder_f SpeedLimitType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitType_H_ */ +#include diff --git a/vcits/rtcmem/SpeedValue.h b/vcits/rtcmem/SpeedValue.h new file mode 100644 index 0000000..fde1be3 --- /dev/null +++ b/vcits/rtcmem/SpeedValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SpeedValue_H_ +#define _SpeedValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedValue { + SpeedValue_standstill = 0, + SpeedValue_oneCentimeterPerSec = 1, + SpeedValue_unavailable = 16383 +} e_SpeedValue; + +/* SpeedValue */ +typedef long SpeedValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedValue; +asn_struct_free_f SpeedValue_free; +asn_struct_print_f SpeedValue_print; +asn_constr_check_f SpeedValue_constraint; +ber_type_decoder_f SpeedValue_decode_ber; +der_type_encoder_f SpeedValue_encode_der; +xer_type_decoder_f SpeedValue_decode_xer; +xer_type_encoder_f SpeedValue_encode_xer; +oer_type_decoder_f SpeedValue_decode_oer; +oer_type_encoder_f SpeedValue_encode_oer; +per_type_decoder_f SpeedValue_decode_uper; +per_type_encoder_f SpeedValue_encode_uper; +per_type_decoder_f SpeedValue_decode_aper; +per_type_encoder_f SpeedValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedValue_H_ */ +#include diff --git a/vcits/rtcmem/SpeedandHeadingandThrottleConfidence.h b/vcits/rtcmem/SpeedandHeadingandThrottleConfidence.h new file mode 100644 index 0000000..67641f7 --- /dev/null +++ b/vcits/rtcmem/SpeedandHeadingandThrottleConfidence.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SpeedandHeadingandThrottleConfidence_H_ +#define _SpeedandHeadingandThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingConfidenceDSRC.h" +#include "SpeedConfidenceDSRC.h" +#include "ThrottleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedandHeadingandThrottleConfidence */ +typedef struct SpeedandHeadingandThrottleConfidence { + HeadingConfidenceDSRC_t heading; + SpeedConfidenceDSRC_t speed; + ThrottleConfidence_t throttle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedandHeadingandThrottleConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedandHeadingandThrottleConfidence_H_ */ +#include diff --git a/vcits/rtcmem/StartTime.h b/vcits/rtcmem/StartTime.h new file mode 100644 index 0000000..61f3ff6 --- /dev/null +++ b/vcits/rtcmem/StartTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _StartTime_H_ +#define _StartTime_H_ + + +#include + +/* Including external dependencies */ +#include "AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* StartTime */ +typedef AviEriDateTime_t StartTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StartTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StartTime; +asn_struct_free_f StartTime_free; +asn_struct_print_f StartTime_print; +asn_constr_check_f StartTime_constraint; +ber_type_decoder_f StartTime_decode_ber; +der_type_encoder_f StartTime_encode_der; +xer_type_decoder_f StartTime_decode_xer; +xer_type_encoder_f StartTime_encode_xer; +oer_type_decoder_f StartTime_decode_oer; +oer_type_encoder_f StartTime_encode_oer; +per_type_decoder_f StartTime_decode_uper; +per_type_encoder_f StartTime_encode_uper; +per_type_decoder_f StartTime_decode_aper; +per_type_encoder_f StartTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StartTime_H_ */ +#include diff --git a/vcits/rtcmem/StationID.h b/vcits/rtcmem/StationID.h new file mode 100644 index 0000000..3af7426 --- /dev/null +++ b/vcits/rtcmem/StationID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _StationID_H_ +#define _StationID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* StationID */ +typedef unsigned long StationID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationID; +extern const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1; +asn_struct_free_f StationID_free; +asn_struct_print_f StationID_print; +asn_constr_check_f StationID_constraint; +ber_type_decoder_f StationID_decode_ber; +der_type_encoder_f StationID_encode_der; +xer_type_decoder_f StationID_decode_xer; +xer_type_encoder_f StationID_encode_xer; +oer_type_decoder_f StationID_decode_oer; +oer_type_encoder_f StationID_encode_oer; +per_type_decoder_f StationID_decode_uper; +per_type_encoder_f StationID_encode_uper; +per_type_decoder_f StationID_decode_aper; +per_type_encoder_f StationID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationID_H_ */ +#include diff --git a/vcits/rtcmem/StationType.h b/vcits/rtcmem/StationType.h new file mode 100644 index 0000000..abc5da4 --- /dev/null +++ b/vcits/rtcmem/StationType.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _StationType_H_ +#define _StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationType { + StationType_unknown = 0, + StationType_pedestrian = 1, + StationType_cyclist = 2, + StationType_moped = 3, + StationType_motorcycle = 4, + StationType_passengerCar = 5, + StationType_bus = 6, + StationType_lightTruck = 7, + StationType_heavyTruck = 8, + StationType_trailer = 9, + StationType_specialVehicles = 10, + StationType_tram = 11, + StationType_roadSideUnit = 15 +} e_StationType; + +/* StationType */ +typedef long StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationType; +asn_struct_free_f StationType_free; +asn_struct_print_f StationType_print; +asn_constr_check_f StationType_constraint; +ber_type_decoder_f StationType_decode_ber; +der_type_encoder_f StationType_encode_der; +xer_type_decoder_f StationType_decode_xer; +xer_type_encoder_f StationType_encode_xer; +oer_type_decoder_f StationType_decode_oer; +oer_type_encoder_f StationType_encode_oer; +per_type_decoder_f StationType_decode_uper; +per_type_encoder_f StationType_encode_uper; +per_type_decoder_f StationType_decode_aper; +per_type_encoder_f StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationType_H_ */ +#include diff --git a/vcits/rtcmem/StationarySince.h b/vcits/rtcmem/StationarySince.h new file mode 100644 index 0000000..1091023 --- /dev/null +++ b/vcits/rtcmem/StationarySince.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _StationarySince_H_ +#define _StationarySince_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationarySince { + StationarySince_lessThan1Minute = 0, + StationarySince_lessThan2Minutes = 1, + StationarySince_lessThan15Minutes = 2, + StationarySince_equalOrGreater15Minutes = 3 +} e_StationarySince; + +/* StationarySince */ +typedef long StationarySince_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationarySince; +asn_struct_free_f StationarySince_free; +asn_struct_print_f StationarySince_print; +asn_constr_check_f StationarySince_constraint; +ber_type_decoder_f StationarySince_decode_ber; +der_type_encoder_f StationarySince_encode_der; +xer_type_decoder_f StationarySince_decode_xer; +xer_type_encoder_f StationarySince_encode_xer; +oer_type_decoder_f StationarySince_decode_oer; +oer_type_encoder_f StationarySince_encode_oer; +per_type_decoder_f StationarySince_decode_uper; +per_type_encoder_f StationarySince_encode_uper; +per_type_decoder_f StationarySince_decode_aper; +per_type_encoder_f StationarySince_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationarySince_H_ */ +#include diff --git a/vcits/rtcmem/StationaryVehicleSubCauseCode.h b/vcits/rtcmem/StationaryVehicleSubCauseCode.h new file mode 100644 index 0000000..e295ff5 --- /dev/null +++ b/vcits/rtcmem/StationaryVehicleSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _StationaryVehicleSubCauseCode_H_ +#define _StationaryVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationaryVehicleSubCauseCode { + StationaryVehicleSubCauseCode_unavailable = 0, + StationaryVehicleSubCauseCode_humanProblem = 1, + StationaryVehicleSubCauseCode_vehicleBreakdown = 2, + StationaryVehicleSubCauseCode_postCrash = 3, + StationaryVehicleSubCauseCode_publicTransportStop = 4, + StationaryVehicleSubCauseCode_carryingDangerousGoods = 5 +} e_StationaryVehicleSubCauseCode; + +/* StationaryVehicleSubCauseCode */ +typedef long StationaryVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode; +asn_struct_free_f StationaryVehicleSubCauseCode_free; +asn_struct_print_f StationaryVehicleSubCauseCode_print; +asn_constr_check_f StationaryVehicleSubCauseCode_constraint; +ber_type_decoder_f StationaryVehicleSubCauseCode_decode_ber; +der_type_encoder_f StationaryVehicleSubCauseCode_encode_der; +xer_type_decoder_f StationaryVehicleSubCauseCode_decode_xer; +xer_type_encoder_f StationaryVehicleSubCauseCode_encode_xer; +oer_type_decoder_f StationaryVehicleSubCauseCode_decode_oer; +oer_type_encoder_f StationaryVehicleSubCauseCode_encode_oer; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_uper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_uper; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_aper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationaryVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/SteeringWheelAngle.h b/vcits/rtcmem/SteeringWheelAngle.h new file mode 100644 index 0000000..b541d96 --- /dev/null +++ b/vcits/rtcmem/SteeringWheelAngle.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SteeringWheelAngle_H_ +#define _SteeringWheelAngle_H_ + + +#include + +/* Including external dependencies */ +#include "SteeringWheelAngleValue.h" +#include "SteeringWheelAngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SteeringWheelAngle */ +typedef struct SteeringWheelAngle { + SteeringWheelAngleValue_t steeringWheelAngleValue; + SteeringWheelAngleConfidence_t steeringWheelAngleConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SteeringWheelAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngle_H_ */ +#include diff --git a/vcits/rtcmem/SteeringWheelAngleConfidence.h b/vcits/rtcmem/SteeringWheelAngleConfidence.h new file mode 100644 index 0000000..84566ef --- /dev/null +++ b/vcits/rtcmem/SteeringWheelAngleConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SteeringWheelAngleConfidence_H_ +#define _SteeringWheelAngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleConfidence { + SteeringWheelAngleConfidence_equalOrWithinOnePointFiveDegree = 1, + SteeringWheelAngleConfidence_outOfRange = 126, + SteeringWheelAngleConfidence_unavailable = 127 +} e_SteeringWheelAngleConfidence; + +/* SteeringWheelAngleConfidence */ +typedef long SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence; +asn_struct_free_f SteeringWheelAngleConfidence_free; +asn_struct_print_f SteeringWheelAngleConfidence_print; +asn_constr_check_f SteeringWheelAngleConfidence_constraint; +ber_type_decoder_f SteeringWheelAngleConfidence_decode_ber; +der_type_encoder_f SteeringWheelAngleConfidence_encode_der; +xer_type_decoder_f SteeringWheelAngleConfidence_decode_xer; +xer_type_encoder_f SteeringWheelAngleConfidence_encode_xer; +oer_type_decoder_f SteeringWheelAngleConfidence_decode_oer; +oer_type_encoder_f SteeringWheelAngleConfidence_encode_oer; +per_type_decoder_f SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleConfidence_H_ */ +#include diff --git a/vcits/rtcmem/SteeringWheelAngleValue.h b/vcits/rtcmem/SteeringWheelAngleValue.h new file mode 100644 index 0000000..9574768 --- /dev/null +++ b/vcits/rtcmem/SteeringWheelAngleValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SteeringWheelAngleValue_H_ +#define _SteeringWheelAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleValue { + SteeringWheelAngleValue_straight = 0, + SteeringWheelAngleValue_onePointFiveDegreesToRight = -1, + SteeringWheelAngleValue_onePointFiveDegreesToLeft = 1, + SteeringWheelAngleValue_unavailable = 512 +} e_SteeringWheelAngleValue; + +/* SteeringWheelAngleValue */ +typedef long SteeringWheelAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue; +asn_struct_free_f SteeringWheelAngleValue_free; +asn_struct_print_f SteeringWheelAngleValue_print; +asn_constr_check_f SteeringWheelAngleValue_constraint; +ber_type_decoder_f SteeringWheelAngleValue_decode_ber; +der_type_encoder_f SteeringWheelAngleValue_encode_der; +xer_type_decoder_f SteeringWheelAngleValue_decode_xer; +xer_type_encoder_f SteeringWheelAngleValue_encode_xer; +oer_type_decoder_f SteeringWheelAngleValue_decode_oer; +oer_type_encoder_f SteeringWheelAngleValue_encode_oer; +per_type_decoder_f SteeringWheelAngleValue_decode_uper; +per_type_encoder_f SteeringWheelAngleValue_encode_uper; +per_type_decoder_f SteeringWheelAngleValue_decode_aper; +per_type_encoder_f SteeringWheelAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleValue_H_ */ +#include diff --git a/vcits/rtcmem/StopTime.h b/vcits/rtcmem/StopTime.h new file mode 100644 index 0000000..d5df607 --- /dev/null +++ b/vcits/rtcmem/StopTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _StopTime_H_ +#define _StopTime_H_ + + +#include + +/* Including external dependencies */ +#include "AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* StopTime */ +typedef AviEriDateTime_t StopTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StopTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StopTime; +asn_struct_free_f StopTime_free; +asn_struct_print_f StopTime_print; +asn_constr_check_f StopTime_constraint; +ber_type_decoder_f StopTime_decode_ber; +der_type_encoder_f StopTime_encode_der; +xer_type_decoder_f StopTime_decode_xer; +xer_type_encoder_f StopTime_encode_xer; +oer_type_decoder_f StopTime_decode_oer; +oer_type_encoder_f StopTime_encode_oer; +per_type_decoder_f StopTime_decode_uper; +per_type_encoder_f StopTime_encode_uper; +per_type_decoder_f StopTime_decode_aper; +per_type_encoder_f StopTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StopTime_H_ */ +#include diff --git a/vcits/rtcmem/SubCauseCodeType.h b/vcits/rtcmem/SubCauseCodeType.h new file mode 100644 index 0000000..ba1d34c --- /dev/null +++ b/vcits/rtcmem/SubCauseCodeType.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _SubCauseCodeType_H_ +#define _SubCauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SubCauseCodeType */ +typedef long SubCauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType; +asn_struct_free_f SubCauseCodeType_free; +asn_struct_print_f SubCauseCodeType_print; +asn_constr_check_f SubCauseCodeType_constraint; +ber_type_decoder_f SubCauseCodeType_decode_ber; +der_type_encoder_f SubCauseCodeType_encode_der; +xer_type_decoder_f SubCauseCodeType_decode_xer; +xer_type_encoder_f SubCauseCodeType_encode_xer; +oer_type_decoder_f SubCauseCodeType_decode_oer; +oer_type_encoder_f SubCauseCodeType_encode_oer; +per_type_decoder_f SubCauseCodeType_decode_uper; +per_type_encoder_f SubCauseCodeType_encode_uper; +per_type_decoder_f SubCauseCodeType_decode_aper; +per_type_encoder_f SubCauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SubCauseCodeType_H_ */ +#include diff --git a/vcits/rtcmem/TaxCode.h b/vcits/rtcmem/TaxCode.h new file mode 100644 index 0000000..7614872 --- /dev/null +++ b/vcits/rtcmem/TaxCode.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TaxCode_H_ +#define _TaxCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TaxCode */ +typedef OCTET_STRING_t TaxCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TaxCode; +asn_struct_free_f TaxCode_free; +asn_struct_print_f TaxCode_print; +asn_constr_check_f TaxCode_constraint; +ber_type_decoder_f TaxCode_decode_ber; +der_type_encoder_f TaxCode_encode_der; +xer_type_decoder_f TaxCode_decode_xer; +xer_type_encoder_f TaxCode_encode_xer; +oer_type_decoder_f TaxCode_decode_oer; +oer_type_encoder_f TaxCode_encode_oer; +per_type_decoder_f TaxCode_decode_uper; +per_type_encoder_f TaxCode_encode_uper; +per_type_decoder_f TaxCode_decode_aper; +per_type_encoder_f TaxCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TaxCode_H_ */ +#include diff --git a/vcits/rtcmem/Temperature.h b/vcits/rtcmem/Temperature.h new file mode 100644 index 0000000..3d9de5d --- /dev/null +++ b/vcits/rtcmem/Temperature.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Temperature_H_ +#define _Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Temperature { + Temperature_equalOrSmallerThanMinus60Deg = -60, + Temperature_oneDegreeCelsius = 1, + Temperature_equalOrGreaterThan67Deg = 67 +} e_Temperature; + +/* Temperature */ +typedef long Temperature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Temperature; +asn_struct_free_f Temperature_free; +asn_struct_print_f Temperature_print; +asn_constr_check_f Temperature_constraint; +ber_type_decoder_f Temperature_decode_ber; +der_type_encoder_f Temperature_encode_der; +xer_type_decoder_f Temperature_decode_xer; +xer_type_encoder_f Temperature_encode_xer; +oer_type_decoder_f Temperature_decode_oer; +oer_type_encoder_f Temperature_encode_oer; +per_type_decoder_f Temperature_decode_uper; +per_type_encoder_f Temperature_encode_uper; +per_type_decoder_f Temperature_decode_aper; +per_type_encoder_f Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Temperature_H_ */ +#include diff --git a/vcits/rtcmem/TemporaryID.h b/vcits/rtcmem/TemporaryID.h new file mode 100644 index 0000000..0728808 --- /dev/null +++ b/vcits/rtcmem/TemporaryID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TemporaryID_H_ +#define _TemporaryID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TemporaryID */ +typedef OCTET_STRING_t TemporaryID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TemporaryID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TemporaryID; +asn_struct_free_f TemporaryID_free; +asn_struct_print_f TemporaryID_print; +asn_constr_check_f TemporaryID_constraint; +ber_type_decoder_f TemporaryID_decode_ber; +der_type_encoder_f TemporaryID_encode_der; +xer_type_decoder_f TemporaryID_decode_xer; +xer_type_encoder_f TemporaryID_encode_xer; +oer_type_decoder_f TemporaryID_decode_oer; +oer_type_encoder_f TemporaryID_encode_oer; +per_type_decoder_f TemporaryID_decode_uper; +per_type_encoder_f TemporaryID_encode_uper; +per_type_decoder_f TemporaryID_decode_aper; +per_type_encoder_f TemporaryID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TemporaryID_H_ */ +#include diff --git a/vcits/rtcmem/ThrottleConfidence.h b/vcits/rtcmem/ThrottleConfidence.h new file mode 100644 index 0000000..249e554 --- /dev/null +++ b/vcits/rtcmem/ThrottleConfidence.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ThrottleConfidence_H_ +#define _ThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ThrottleConfidence { + ThrottleConfidence_unavailable = 0, + ThrottleConfidence_prec10percent = 1, + ThrottleConfidence_prec1percent = 2, + ThrottleConfidence_prec0_5percent = 3 +} e_ThrottleConfidence; + +/* ThrottleConfidence */ +typedef long ThrottleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1; +asn_struct_free_f ThrottleConfidence_free; +asn_struct_print_f ThrottleConfidence_print; +asn_constr_check_f ThrottleConfidence_constraint; +ber_type_decoder_f ThrottleConfidence_decode_ber; +der_type_encoder_f ThrottleConfidence_encode_der; +xer_type_decoder_f ThrottleConfidence_decode_xer; +xer_type_encoder_f ThrottleConfidence_encode_xer; +oer_type_decoder_f ThrottleConfidence_decode_oer; +oer_type_encoder_f ThrottleConfidence_encode_oer; +per_type_decoder_f ThrottleConfidence_decode_uper; +per_type_encoder_f ThrottleConfidence_encode_uper; +per_type_decoder_f ThrottleConfidence_decode_aper; +per_type_encoder_f ThrottleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ThrottleConfidence_H_ */ +#include diff --git a/vcits/rtcmem/TimeChangeDetails.h b/vcits/rtcmem/TimeChangeDetails.h new file mode 100644 index 0000000..52feefb --- /dev/null +++ b/vcits/rtcmem/TimeChangeDetails.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TimeChangeDetails_H_ +#define _TimeChangeDetails_H_ + + +#include + +/* Including external dependencies */ +#include "TimeMark.h" +#include "TimeIntervalConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeChangeDetails */ +typedef struct TimeChangeDetails { + TimeMark_t *startTime; /* OPTIONAL */ + TimeMark_t minEndTime; + TimeMark_t *maxEndTime; /* OPTIONAL */ + TimeMark_t *likelyTime; /* OPTIONAL */ + TimeIntervalConfidence_t *confidence; /* OPTIONAL */ + TimeMark_t *nextTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TimeChangeDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeChangeDetails_H_ */ +#include diff --git a/vcits/rtcmem/TimeConfidence.h b/vcits/rtcmem/TimeConfidence.h new file mode 100644 index 0000000..c0ce267 --- /dev/null +++ b/vcits/rtcmem/TimeConfidence.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TimeConfidence_H_ +#define _TimeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeConfidence { + TimeConfidence_unavailable = 0, + TimeConfidence_time_100_000 = 1, + TimeConfidence_time_050_000 = 2, + TimeConfidence_time_020_000 = 3, + TimeConfidence_time_010_000 = 4, + TimeConfidence_time_002_000 = 5, + TimeConfidence_time_001_000 = 6, + TimeConfidence_time_000_500 = 7, + TimeConfidence_time_000_200 = 8, + TimeConfidence_time_000_100 = 9, + TimeConfidence_time_000_050 = 10, + TimeConfidence_time_000_020 = 11, + TimeConfidence_time_000_010 = 12, + TimeConfidence_time_000_005 = 13, + TimeConfidence_time_000_002 = 14, + TimeConfidence_time_000_001 = 15, + TimeConfidence_time_000_000_5 = 16, + TimeConfidence_time_000_000_2 = 17, + TimeConfidence_time_000_000_1 = 18, + TimeConfidence_time_000_000_05 = 19, + TimeConfidence_time_000_000_02 = 20, + TimeConfidence_time_000_000_01 = 21, + TimeConfidence_time_000_000_005 = 22, + TimeConfidence_time_000_000_002 = 23, + TimeConfidence_time_000_000_001 = 24, + TimeConfidence_time_000_000_000_5 = 25, + TimeConfidence_time_000_000_000_2 = 26, + TimeConfidence_time_000_000_000_1 = 27, + TimeConfidence_time_000_000_000_05 = 28, + TimeConfidence_time_000_000_000_02 = 29, + TimeConfidence_time_000_000_000_01 = 30, + TimeConfidence_time_000_000_000_005 = 31, + TimeConfidence_time_000_000_000_002 = 32, + TimeConfidence_time_000_000_000_001 = 33, + TimeConfidence_time_000_000_000_000_5 = 34, + TimeConfidence_time_000_000_000_000_2 = 35, + TimeConfidence_time_000_000_000_000_1 = 36, + TimeConfidence_time_000_000_000_000_05 = 37, + TimeConfidence_time_000_000_000_000_02 = 38, + TimeConfidence_time_000_000_000_000_01 = 39 +} e_TimeConfidence; + +/* TimeConfidence */ +typedef long TimeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1; +asn_struct_free_f TimeConfidence_free; +asn_struct_print_f TimeConfidence_print; +asn_constr_check_f TimeConfidence_constraint; +ber_type_decoder_f TimeConfidence_decode_ber; +der_type_encoder_f TimeConfidence_encode_der; +xer_type_decoder_f TimeConfidence_decode_xer; +xer_type_encoder_f TimeConfidence_encode_xer; +oer_type_decoder_f TimeConfidence_decode_oer; +oer_type_encoder_f TimeConfidence_encode_oer; +per_type_decoder_f TimeConfidence_decode_uper; +per_type_encoder_f TimeConfidence_encode_uper; +per_type_decoder_f TimeConfidence_decode_aper; +per_type_encoder_f TimeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeConfidence_H_ */ +#include diff --git a/vcits/rtcmem/TimeIntervalConfidence.h b/vcits/rtcmem/TimeIntervalConfidence.h new file mode 100644 index 0000000..82b0ec2 --- /dev/null +++ b/vcits/rtcmem/TimeIntervalConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TimeIntervalConfidence_H_ +#define _TimeIntervalConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeIntervalConfidence */ +typedef long TimeIntervalConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence; +asn_struct_free_f TimeIntervalConfidence_free; +asn_struct_print_f TimeIntervalConfidence_print; +asn_constr_check_f TimeIntervalConfidence_constraint; +ber_type_decoder_f TimeIntervalConfidence_decode_ber; +der_type_encoder_f TimeIntervalConfidence_encode_der; +xer_type_decoder_f TimeIntervalConfidence_decode_xer; +xer_type_encoder_f TimeIntervalConfidence_encode_xer; +oer_type_decoder_f TimeIntervalConfidence_decode_oer; +oer_type_encoder_f TimeIntervalConfidence_encode_oer; +per_type_decoder_f TimeIntervalConfidence_decode_uper; +per_type_encoder_f TimeIntervalConfidence_encode_uper; +per_type_decoder_f TimeIntervalConfidence_decode_aper; +per_type_encoder_f TimeIntervalConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeIntervalConfidence_H_ */ +#include diff --git a/vcits/rtcmem/TimeMark.h b/vcits/rtcmem/TimeMark.h new file mode 100644 index 0000000..1ea0bb0 --- /dev/null +++ b/vcits/rtcmem/TimeMark.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TimeMark_H_ +#define _TimeMark_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeMark */ +typedef long TimeMark_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeMark_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeMark; +asn_struct_free_f TimeMark_free; +asn_struct_print_f TimeMark_print; +asn_constr_check_f TimeMark_constraint; +ber_type_decoder_f TimeMark_decode_ber; +der_type_encoder_f TimeMark_encode_der; +xer_type_decoder_f TimeMark_decode_xer; +xer_type_encoder_f TimeMark_encode_xer; +oer_type_decoder_f TimeMark_decode_oer; +oer_type_encoder_f TimeMark_encode_oer; +per_type_decoder_f TimeMark_decode_uper; +per_type_encoder_f TimeMark_encode_uper; +per_type_decoder_f TimeMark_decode_aper; +per_type_encoder_f TimeMark_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeMark_H_ */ +#include diff --git a/vcits/rtcmem/TimeReference.h b/vcits/rtcmem/TimeReference.h new file mode 100644 index 0000000..05463d7 --- /dev/null +++ b/vcits/rtcmem/TimeReference.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TimeReference_H_ +#define _TimeReference_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeReference { + TimeReference_oneMilliSec = 1 +} e_TimeReference; + +/* TimeReference */ +typedef long TimeReference_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeReference_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeReference; +asn_struct_free_f TimeReference_free; +asn_struct_print_f TimeReference_print; +asn_constr_check_f TimeReference_constraint; +ber_type_decoder_f TimeReference_decode_ber; +der_type_encoder_f TimeReference_encode_der; +xer_type_decoder_f TimeReference_decode_xer; +xer_type_encoder_f TimeReference_encode_xer; +oer_type_decoder_f TimeReference_decode_oer; +oer_type_encoder_f TimeReference_encode_oer; +per_type_decoder_f TimeReference_decode_uper; +per_type_encoder_f TimeReference_encode_uper; +per_type_decoder_f TimeReference_decode_aper; +per_type_encoder_f TimeReference_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeReference_H_ */ +#include diff --git a/vcits/rtcmem/TimestampIts.h b/vcits/rtcmem/TimestampIts.h new file mode 100644 index 0000000..d270d39 --- /dev/null +++ b/vcits/rtcmem/TimestampIts.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TimestampIts_H_ +#define _TimestampIts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimestampIts { + TimestampIts_utcStartOf2004 = 0, + TimestampIts_oneMillisecAfterUTCStartOf2004 = 1 +} e_TimestampIts; + +/* TimestampIts */ +typedef INTEGER_t TimestampIts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimestampIts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimestampIts; +asn_struct_free_f TimestampIts_free; +asn_struct_print_f TimestampIts_print; +asn_constr_check_f TimestampIts_constraint; +ber_type_decoder_f TimestampIts_decode_ber; +der_type_encoder_f TimestampIts_encode_der; +xer_type_decoder_f TimestampIts_decode_xer; +xer_type_encoder_f TimestampIts_encode_xer; +oer_type_decoder_f TimestampIts_decode_oer; +oer_type_encoder_f TimestampIts_encode_oer; +per_type_decoder_f TimestampIts_decode_uper; +per_type_encoder_f TimestampIts_encode_uper; +per_type_decoder_f TimestampIts_decode_aper; +per_type_encoder_f TimestampIts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimestampIts_H_ */ +#include diff --git a/vcits/rtcmem/Traces.h b/vcits/rtcmem/Traces.h new file mode 100644 index 0000000..9686414 --- /dev/null +++ b/vcits/rtcmem/Traces.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Traces_H_ +#define _Traces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathHistory; + +/* Traces */ +typedef struct Traces { + A_SEQUENCE_OF(struct PathHistory) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Traces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Traces; + +#ifdef __cplusplus +} +#endif + +#endif /* _Traces_H_ */ +#include diff --git a/vcits/rtcmem/TrafficConditionSubCauseCode.h b/vcits/rtcmem/TrafficConditionSubCauseCode.h new file mode 100644 index 0000000..de8dd7e --- /dev/null +++ b/vcits/rtcmem/TrafficConditionSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TrafficConditionSubCauseCode_H_ +#define _TrafficConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficConditionSubCauseCode { + TrafficConditionSubCauseCode_unavailable = 0, + TrafficConditionSubCauseCode_increasedVolumeOfTraffic = 1, + TrafficConditionSubCauseCode_trafficJamSlowlyIncreasing = 2, + TrafficConditionSubCauseCode_trafficJamIncreasing = 3, + TrafficConditionSubCauseCode_trafficJamStronglyIncreasing = 4, + TrafficConditionSubCauseCode_trafficStationary = 5, + TrafficConditionSubCauseCode_trafficJamSlightlyDecreasing = 6, + TrafficConditionSubCauseCode_trafficJamDecreasing = 7, + TrafficConditionSubCauseCode_trafficJamStronglyDecreasing = 8 +} e_TrafficConditionSubCauseCode; + +/* TrafficConditionSubCauseCode */ +typedef long TrafficConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode; +asn_struct_free_f TrafficConditionSubCauseCode_free; +asn_struct_print_f TrafficConditionSubCauseCode_print; +asn_constr_check_f TrafficConditionSubCauseCode_constraint; +ber_type_decoder_f TrafficConditionSubCauseCode_decode_ber; +der_type_encoder_f TrafficConditionSubCauseCode_encode_der; +xer_type_decoder_f TrafficConditionSubCauseCode_decode_xer; +xer_type_encoder_f TrafficConditionSubCauseCode_encode_xer; +oer_type_decoder_f TrafficConditionSubCauseCode_decode_oer; +oer_type_encoder_f TrafficConditionSubCauseCode_encode_oer; +per_type_decoder_f TrafficConditionSubCauseCode_decode_uper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_uper; +per_type_decoder_f TrafficConditionSubCauseCode_decode_aper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficConditionSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/TrafficRule.h b/vcits/rtcmem/TrafficRule.h new file mode 100644 index 0000000..111272f --- /dev/null +++ b/vcits/rtcmem/TrafficRule.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TrafficRule_H_ +#define _TrafficRule_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficRule { + TrafficRule_noPassing = 0, + TrafficRule_noPassingForTrucks = 1, + TrafficRule_passToRight = 2, + TrafficRule_passToLeft = 3 + /* + * Enumeration is extensible + */ +} e_TrafficRule; + +/* TrafficRule */ +typedef long TrafficRule_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficRule; +asn_struct_free_f TrafficRule_free; +asn_struct_print_f TrafficRule_print; +asn_constr_check_f TrafficRule_constraint; +ber_type_decoder_f TrafficRule_decode_ber; +der_type_encoder_f TrafficRule_encode_der; +xer_type_decoder_f TrafficRule_decode_xer; +xer_type_encoder_f TrafficRule_encode_xer; +oer_type_decoder_f TrafficRule_decode_oer; +oer_type_encoder_f TrafficRule_encode_oer; +per_type_decoder_f TrafficRule_decode_uper; +per_type_encoder_f TrafficRule_encode_uper; +per_type_decoder_f TrafficRule_decode_aper; +per_type_encoder_f TrafficRule_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficRule_H_ */ +#include diff --git a/vcits/rtcmem/TransitVehicleOccupancy.h b/vcits/rtcmem/TransitVehicleOccupancy.h new file mode 100644 index 0000000..8482372 --- /dev/null +++ b/vcits/rtcmem/TransitVehicleOccupancy.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TransitVehicleOccupancy_H_ +#define _TransitVehicleOccupancy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleOccupancy { + TransitVehicleOccupancy_occupancyUnknown = 0, + TransitVehicleOccupancy_occupancyEmpty = 1, + TransitVehicleOccupancy_occupancyVeryLow = 2, + TransitVehicleOccupancy_occupancyLow = 3, + TransitVehicleOccupancy_occupancyMed = 4, + TransitVehicleOccupancy_occupancyHigh = 5, + TransitVehicleOccupancy_occupancyNearlyFull = 6, + TransitVehicleOccupancy_occupancyFull = 7 +} e_TransitVehicleOccupancy; + +/* TransitVehicleOccupancy */ +typedef long TransitVehicleOccupancy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy; +extern const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1; +asn_struct_free_f TransitVehicleOccupancy_free; +asn_struct_print_f TransitVehicleOccupancy_print; +asn_constr_check_f TransitVehicleOccupancy_constraint; +ber_type_decoder_f TransitVehicleOccupancy_decode_ber; +der_type_encoder_f TransitVehicleOccupancy_encode_der; +xer_type_decoder_f TransitVehicleOccupancy_decode_xer; +xer_type_encoder_f TransitVehicleOccupancy_encode_xer; +oer_type_decoder_f TransitVehicleOccupancy_decode_oer; +oer_type_encoder_f TransitVehicleOccupancy_encode_oer; +per_type_decoder_f TransitVehicleOccupancy_decode_uper; +per_type_encoder_f TransitVehicleOccupancy_encode_uper; +per_type_decoder_f TransitVehicleOccupancy_decode_aper; +per_type_encoder_f TransitVehicleOccupancy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleOccupancy_H_ */ +#include diff --git a/vcits/rtcmem/TransitVehicleStatus.h b/vcits/rtcmem/TransitVehicleStatus.h new file mode 100644 index 0000000..4f87c20 --- /dev/null +++ b/vcits/rtcmem/TransitVehicleStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TransitVehicleStatus_H_ +#define _TransitVehicleStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleStatus { + TransitVehicleStatus_loading = 0, + TransitVehicleStatus_anADAuse = 1, + TransitVehicleStatus_aBikeLoad = 2, + TransitVehicleStatus_doorOpen = 3, + TransitVehicleStatus_charging = 4, + TransitVehicleStatus_atStopLine = 5 +} e_TransitVehicleStatus; + +/* TransitVehicleStatus */ +typedef BIT_STRING_t TransitVehicleStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus; +asn_struct_free_f TransitVehicleStatus_free; +asn_struct_print_f TransitVehicleStatus_print; +asn_constr_check_f TransitVehicleStatus_constraint; +ber_type_decoder_f TransitVehicleStatus_decode_ber; +der_type_encoder_f TransitVehicleStatus_encode_der; +xer_type_decoder_f TransitVehicleStatus_decode_xer; +xer_type_encoder_f TransitVehicleStatus_encode_xer; +oer_type_decoder_f TransitVehicleStatus_decode_oer; +oer_type_encoder_f TransitVehicleStatus_encode_oer; +per_type_decoder_f TransitVehicleStatus_decode_uper; +per_type_encoder_f TransitVehicleStatus_encode_uper; +per_type_decoder_f TransitVehicleStatus_decode_aper; +per_type_encoder_f TransitVehicleStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleStatus_H_ */ +#include diff --git a/vcits/rtcmem/TransmissionAndSpeed.h b/vcits/rtcmem/TransmissionAndSpeed.h new file mode 100644 index 0000000..22b193a --- /dev/null +++ b/vcits/rtcmem/TransmissionAndSpeed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TransmissionAndSpeed_H_ +#define _TransmissionAndSpeed_H_ + + +#include + +/* Including external dependencies */ +#include "TransmissionState.h" +#include "Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TransmissionAndSpeed */ +typedef struct TransmissionAndSpeed { + TransmissionState_t transmisson; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TransmissionAndSpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionAndSpeed_H_ */ +#include diff --git a/vcits/rtcmem/TransmissionInterval.h b/vcits/rtcmem/TransmissionInterval.h new file mode 100644 index 0000000..dc2cf95 --- /dev/null +++ b/vcits/rtcmem/TransmissionInterval.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TransmissionInterval_H_ +#define _TransmissionInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionInterval { + TransmissionInterval_oneMilliSecond = 1, + TransmissionInterval_tenSeconds = 10000 +} e_TransmissionInterval; + +/* TransmissionInterval */ +typedef long TransmissionInterval_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionInterval; +asn_struct_free_f TransmissionInterval_free; +asn_struct_print_f TransmissionInterval_print; +asn_constr_check_f TransmissionInterval_constraint; +ber_type_decoder_f TransmissionInterval_decode_ber; +der_type_encoder_f TransmissionInterval_encode_der; +xer_type_decoder_f TransmissionInterval_decode_xer; +xer_type_encoder_f TransmissionInterval_encode_xer; +oer_type_decoder_f TransmissionInterval_decode_oer; +oer_type_encoder_f TransmissionInterval_encode_oer; +per_type_decoder_f TransmissionInterval_decode_uper; +per_type_encoder_f TransmissionInterval_encode_uper; +per_type_decoder_f TransmissionInterval_decode_aper; +per_type_encoder_f TransmissionInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionInterval_H_ */ +#include diff --git a/vcits/rtcmem/TransmissionState.h b/vcits/rtcmem/TransmissionState.h new file mode 100644 index 0000000..d87de2d --- /dev/null +++ b/vcits/rtcmem/TransmissionState.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TransmissionState_H_ +#define _TransmissionState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionState { + TransmissionState_neutral = 0, + TransmissionState_park = 1, + TransmissionState_forwardGears = 2, + TransmissionState_reverseGears = 3, + TransmissionState_reserved1 = 4, + TransmissionState_reserved2 = 5, + TransmissionState_reserved3 = 6, + TransmissionState_unavailable = 7 +} e_TransmissionState; + +/* TransmissionState */ +typedef long TransmissionState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransmissionState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransmissionState; +extern const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1; +asn_struct_free_f TransmissionState_free; +asn_struct_print_f TransmissionState_print; +asn_constr_check_f TransmissionState_constraint; +ber_type_decoder_f TransmissionState_decode_ber; +der_type_encoder_f TransmissionState_encode_der; +xer_type_decoder_f TransmissionState_decode_xer; +xer_type_encoder_f TransmissionState_encode_xer; +oer_type_decoder_f TransmissionState_decode_oer; +oer_type_encoder_f TransmissionState_encode_oer; +per_type_decoder_f TransmissionState_decode_uper; +per_type_encoder_f TransmissionState_encode_uper; +per_type_decoder_f TransmissionState_decode_aper; +per_type_encoder_f TransmissionState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionState_H_ */ +#include diff --git a/vcits/rtcmem/TurningRadius.h b/vcits/rtcmem/TurningRadius.h new file mode 100644 index 0000000..ebf5240 --- /dev/null +++ b/vcits/rtcmem/TurningRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _TurningRadius_H_ +#define _TurningRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TurningRadius { + TurningRadius_point4Meters = 1, + TurningRadius_unavailable = 255 +} e_TurningRadius; + +/* TurningRadius */ +typedef long TurningRadius_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TurningRadius; +asn_struct_free_f TurningRadius_free; +asn_struct_print_f TurningRadius_print; +asn_constr_check_f TurningRadius_constraint; +ber_type_decoder_f TurningRadius_decode_ber; +der_type_encoder_f TurningRadius_encode_der; +xer_type_decoder_f TurningRadius_decode_xer; +xer_type_encoder_f TurningRadius_encode_xer; +oer_type_decoder_f TurningRadius_decode_oer; +oer_type_encoder_f TurningRadius_encode_oer; +per_type_decoder_f TurningRadius_decode_uper; +per_type_encoder_f TurningRadius_encode_uper; +per_type_decoder_f TurningRadius_decode_aper; +per_type_encoder_f TurningRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TurningRadius_H_ */ +#include diff --git a/vcits/rtcmem/VDS.h b/vcits/rtcmem/VDS.h new file mode 100644 index 0000000..1bbec0e --- /dev/null +++ b/vcits/rtcmem/VDS.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _VDS_H_ +#define _VDS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VDS */ +typedef IA5String_t VDS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VDS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VDS; +asn_struct_free_f VDS_free; +asn_struct_print_f VDS_print; +asn_constr_check_f VDS_constraint; +ber_type_decoder_f VDS_decode_ber; +der_type_encoder_f VDS_encode_der; +xer_type_decoder_f VDS_decode_xer; +xer_type_encoder_f VDS_encode_xer; +oer_type_decoder_f VDS_decode_oer; +oer_type_encoder_f VDS_encode_oer; +per_type_decoder_f VDS_decode_uper; +per_type_encoder_f VDS_encode_uper; +per_type_decoder_f VDS_decode_aper; +per_type_encoder_f VDS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VDS_H_ */ +#include diff --git a/vcits/rtcmem/ValidityDuration.h b/vcits/rtcmem/ValidityDuration.h new file mode 100644 index 0000000..92dd5c9 --- /dev/null +++ b/vcits/rtcmem/ValidityDuration.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ValidityDuration_H_ +#define _ValidityDuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ValidityDuration { + ValidityDuration_timeOfDetection = 0, + ValidityDuration_oneSecondAfterDetection = 1 +} e_ValidityDuration; + +/* ValidityDuration */ +typedef long ValidityDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ValidityDuration; +asn_struct_free_f ValidityDuration_free; +asn_struct_print_f ValidityDuration_print; +asn_constr_check_f ValidityDuration_constraint; +ber_type_decoder_f ValidityDuration_decode_ber; +der_type_encoder_f ValidityDuration_encode_der; +xer_type_decoder_f ValidityDuration_decode_xer; +xer_type_encoder_f ValidityDuration_encode_xer; +oer_type_decoder_f ValidityDuration_decode_oer; +oer_type_encoder_f ValidityDuration_encode_oer; +per_type_decoder_f ValidityDuration_decode_uper; +per_type_encoder_f ValidityDuration_encode_uper; +per_type_decoder_f ValidityDuration_decode_aper; +per_type_encoder_f ValidityDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ValidityDuration_H_ */ +#include diff --git a/vcits/rtcmem/VehicleBreakdownSubCauseCode.h b/vcits/rtcmem/VehicleBreakdownSubCauseCode.h new file mode 100644 index 0000000..5e3467e --- /dev/null +++ b/vcits/rtcmem/VehicleBreakdownSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _VehicleBreakdownSubCauseCode_H_ +#define _VehicleBreakdownSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleBreakdownSubCauseCode { + VehicleBreakdownSubCauseCode_unavailable = 0, + VehicleBreakdownSubCauseCode_lackOfFuel = 1, + VehicleBreakdownSubCauseCode_lackOfBatteryPower = 2, + VehicleBreakdownSubCauseCode_engineProblem = 3, + VehicleBreakdownSubCauseCode_transmissionProblem = 4, + VehicleBreakdownSubCauseCode_engineCoolingProblem = 5, + VehicleBreakdownSubCauseCode_brakingSystemProblem = 6, + VehicleBreakdownSubCauseCode_steeringProblem = 7, + VehicleBreakdownSubCauseCode_tyrePuncture = 8, + VehicleBreakdownSubCauseCode_tyrePressureProblem = 9 +} e_VehicleBreakdownSubCauseCode; + +/* VehicleBreakdownSubCauseCode */ +typedef long VehicleBreakdownSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode; +asn_struct_free_f VehicleBreakdownSubCauseCode_free; +asn_struct_print_f VehicleBreakdownSubCauseCode_print; +asn_constr_check_f VehicleBreakdownSubCauseCode_constraint; +ber_type_decoder_f VehicleBreakdownSubCauseCode_decode_ber; +der_type_encoder_f VehicleBreakdownSubCauseCode_encode_der; +xer_type_decoder_f VehicleBreakdownSubCauseCode_decode_xer; +xer_type_encoder_f VehicleBreakdownSubCauseCode_encode_xer; +oer_type_decoder_f VehicleBreakdownSubCauseCode_decode_oer; +oer_type_encoder_f VehicleBreakdownSubCauseCode_encode_oer; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_uper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_uper; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_aper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleBreakdownSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/VehicleHeight.h b/vcits/rtcmem/VehicleHeight.h new file mode 100644 index 0000000..53fd0b9 --- /dev/null +++ b/vcits/rtcmem/VehicleHeight.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _VehicleHeight_H_ +#define _VehicleHeight_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleHeight */ +typedef long VehicleHeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleHeight; +asn_struct_free_f VehicleHeight_free; +asn_struct_print_f VehicleHeight_print; +asn_constr_check_f VehicleHeight_constraint; +ber_type_decoder_f VehicleHeight_decode_ber; +der_type_encoder_f VehicleHeight_encode_der; +xer_type_decoder_f VehicleHeight_decode_xer; +xer_type_encoder_f VehicleHeight_encode_xer; +oer_type_decoder_f VehicleHeight_decode_oer; +oer_type_encoder_f VehicleHeight_encode_oer; +per_type_decoder_f VehicleHeight_decode_uper; +per_type_encoder_f VehicleHeight_encode_uper; +per_type_decoder_f VehicleHeight_decode_aper; +per_type_encoder_f VehicleHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleHeight_H_ */ +#include diff --git a/vcits/rtcmem/VehicleID.h b/vcits/rtcmem/VehicleID.h new file mode 100644 index 0000000..b1e7f68 --- /dev/null +++ b/vcits/rtcmem/VehicleID.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _VehicleID_H_ +#define _VehicleID_H_ + + +#include + +/* Including external dependencies */ +#include "TemporaryID.h" +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleID_PR { + VehicleID_PR_NOTHING, /* No components present */ + VehicleID_PR_entityID, + VehicleID_PR_stationID +} VehicleID_PR; + +/* VehicleID */ +typedef struct VehicleID { + VehicleID_PR present; + union VehicleID_u { + TemporaryID_t entityID; + StationID_t stationID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleID; +extern asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleID_1[2]; +extern asn_per_constraints_t asn_PER_type_VehicleID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleID_H_ */ +#include diff --git a/vcits/rtcmem/VehicleIdentification.h b/vcits/rtcmem/VehicleIdentification.h new file mode 100644 index 0000000..18e5965 --- /dev/null +++ b/vcits/rtcmem/VehicleIdentification.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _VehicleIdentification_H_ +#define _VehicleIdentification_H_ + + +#include + +/* Including external dependencies */ +#include "WMInumber.h" +#include "VDS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleIdentification */ +typedef struct VehicleIdentification { + WMInumber_t *wMInumber; /* OPTIONAL */ + VDS_t *vDS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleIdentification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleIdentification; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleIdentification_H_ */ +#include diff --git a/vcits/rtcmem/VehicleLength.h b/vcits/rtcmem/VehicleLength.h new file mode 100644 index 0000000..23bfc4c --- /dev/null +++ b/vcits/rtcmem/VehicleLength.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _VehicleLength_H_ +#define _VehicleLength_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleLengthValue.h" +#include "VehicleLengthConfidenceIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleLength */ +typedef struct VehicleLength { + VehicleLengthValue_t vehicleLengthValue; + VehicleLengthConfidenceIndication_t vehicleLengthConfidenceIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleLength; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLength_H_ */ +#include diff --git a/vcits/rtcmem/VehicleLengthConfidenceIndication.h b/vcits/rtcmem/VehicleLengthConfidenceIndication.h new file mode 100644 index 0000000..ad7fbb3 --- /dev/null +++ b/vcits/rtcmem/VehicleLengthConfidenceIndication.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _VehicleLengthConfidenceIndication_H_ +#define _VehicleLengthConfidenceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthConfidenceIndication { + VehicleLengthConfidenceIndication_noTrailerPresent = 0, + VehicleLengthConfidenceIndication_trailerPresentWithKnownLength = 1, + VehicleLengthConfidenceIndication_trailerPresentWithUnknownLength = 2, + VehicleLengthConfidenceIndication_trailerPresenceIsUnknown = 3, + VehicleLengthConfidenceIndication_unavailable = 4 +} e_VehicleLengthConfidenceIndication; + +/* VehicleLengthConfidenceIndication */ +typedef long VehicleLengthConfidenceIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1; +asn_struct_free_f VehicleLengthConfidenceIndication_free; +asn_struct_print_f VehicleLengthConfidenceIndication_print; +asn_constr_check_f VehicleLengthConfidenceIndication_constraint; +ber_type_decoder_f VehicleLengthConfidenceIndication_decode_ber; +der_type_encoder_f VehicleLengthConfidenceIndication_encode_der; +xer_type_decoder_f VehicleLengthConfidenceIndication_decode_xer; +xer_type_encoder_f VehicleLengthConfidenceIndication_encode_xer; +oer_type_decoder_f VehicleLengthConfidenceIndication_decode_oer; +oer_type_encoder_f VehicleLengthConfidenceIndication_encode_oer; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_uper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_uper; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_aper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthConfidenceIndication_H_ */ +#include diff --git a/vcits/rtcmem/VehicleLengthValue.h b/vcits/rtcmem/VehicleLengthValue.h new file mode 100644 index 0000000..565aaf5 --- /dev/null +++ b/vcits/rtcmem/VehicleLengthValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _VehicleLengthValue_H_ +#define _VehicleLengthValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthValue { + VehicleLengthValue_tenCentimeters = 1, + VehicleLengthValue_outOfRange = 1022, + VehicleLengthValue_unavailable = 1023 +} e_VehicleLengthValue; + +/* VehicleLengthValue */ +typedef long VehicleLengthValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue; +asn_struct_free_f VehicleLengthValue_free; +asn_struct_print_f VehicleLengthValue_print; +asn_constr_check_f VehicleLengthValue_constraint; +ber_type_decoder_f VehicleLengthValue_decode_ber; +der_type_encoder_f VehicleLengthValue_encode_der; +xer_type_decoder_f VehicleLengthValue_decode_xer; +xer_type_encoder_f VehicleLengthValue_encode_xer; +oer_type_decoder_f VehicleLengthValue_decode_oer; +oer_type_encoder_f VehicleLengthValue_encode_oer; +per_type_decoder_f VehicleLengthValue_decode_uper; +per_type_encoder_f VehicleLengthValue_encode_uper; +per_type_decoder_f VehicleLengthValue_decode_aper; +per_type_encoder_f VehicleLengthValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthValue_H_ */ +#include diff --git a/vcits/rtcmem/VehicleMass.h b/vcits/rtcmem/VehicleMass.h new file mode 100644 index 0000000..ffbee0f --- /dev/null +++ b/vcits/rtcmem/VehicleMass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _VehicleMass_H_ +#define _VehicleMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleMass { + VehicleMass_hundredKg = 1, + VehicleMass_unavailable = 1024 +} e_VehicleMass; + +/* VehicleMass */ +typedef long VehicleMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleMass; +asn_struct_free_f VehicleMass_free; +asn_struct_print_f VehicleMass_print; +asn_constr_check_f VehicleMass_constraint; +ber_type_decoder_f VehicleMass_decode_ber; +der_type_encoder_f VehicleMass_encode_der; +xer_type_decoder_f VehicleMass_decode_xer; +xer_type_encoder_f VehicleMass_encode_xer; +oer_type_decoder_f VehicleMass_decode_oer; +oer_type_encoder_f VehicleMass_encode_oer; +per_type_decoder_f VehicleMass_decode_uper; +per_type_encoder_f VehicleMass_encode_uper; +per_type_decoder_f VehicleMass_decode_aper; +per_type_encoder_f VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleMass_H_ */ +#include diff --git a/vcits/rtcmem/VehicleRole.h b/vcits/rtcmem/VehicleRole.h new file mode 100644 index 0000000..f9eba3a --- /dev/null +++ b/vcits/rtcmem/VehicleRole.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _VehicleRole_H_ +#define _VehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleRole { + VehicleRole_default = 0, + VehicleRole_publicTransport = 1, + VehicleRole_specialTransport = 2, + VehicleRole_dangerousGoods = 3, + VehicleRole_roadWork = 4, + VehicleRole_rescue = 5, + VehicleRole_emergency = 6, + VehicleRole_safetyCar = 7, + VehicleRole_agriculture = 8, + VehicleRole_commercial = 9, + VehicleRole_military = 10, + VehicleRole_roadOperator = 11, + VehicleRole_taxi = 12, + VehicleRole_reserved1 = 13, + VehicleRole_reserved2 = 14, + VehicleRole_reserved3 = 15 +} e_VehicleRole; + +/* VehicleRole */ +typedef long VehicleRole_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleRole; +asn_struct_free_f VehicleRole_free; +asn_struct_print_f VehicleRole_print; +asn_constr_check_f VehicleRole_constraint; +ber_type_decoder_f VehicleRole_decode_ber; +der_type_encoder_f VehicleRole_encode_der; +xer_type_decoder_f VehicleRole_decode_xer; +xer_type_encoder_f VehicleRole_encode_xer; +oer_type_decoder_f VehicleRole_decode_oer; +oer_type_encoder_f VehicleRole_encode_oer; +per_type_decoder_f VehicleRole_decode_uper; +per_type_encoder_f VehicleRole_encode_uper; +per_type_decoder_f VehicleRole_decode_aper; +per_type_encoder_f VehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleRole_H_ */ +#include diff --git a/vcits/rtcmem/VehicleType.h b/vcits/rtcmem/VehicleType.h new file mode 100644 index 0000000..6323a96 --- /dev/null +++ b/vcits/rtcmem/VehicleType.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _VehicleType_H_ +#define _VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleType { + VehicleType_none = 0, + VehicleType_unknown = 1, + VehicleType_special = 2, + VehicleType_moto = 3, + VehicleType_car = 4, + VehicleType_carOther = 5, + VehicleType_bus = 6, + VehicleType_axleCnt2 = 7, + VehicleType_axleCnt3 = 8, + VehicleType_axleCnt4 = 9, + VehicleType_axleCnt4Trailer = 10, + VehicleType_axleCnt5Trailer = 11, + VehicleType_axleCnt6Trailer = 12, + VehicleType_axleCnt5MultiTrailer = 13, + VehicleType_axleCnt6MultiTrailer = 14, + VehicleType_axleCnt7MultiTrailer = 15 + /* + * Enumeration is extensible + */ +} e_VehicleType; + +/* VehicleType */ +typedef long VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleType; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1; +asn_struct_free_f VehicleType_free; +asn_struct_print_f VehicleType_print; +asn_constr_check_f VehicleType_constraint; +ber_type_decoder_f VehicleType_decode_ber; +der_type_encoder_f VehicleType_encode_der; +xer_type_decoder_f VehicleType_decode_xer; +xer_type_encoder_f VehicleType_encode_xer; +oer_type_decoder_f VehicleType_decode_oer; +oer_type_encoder_f VehicleType_encode_oer; +per_type_decoder_f VehicleType_decode_uper; +per_type_encoder_f VehicleType_encode_uper; +per_type_decoder_f VehicleType_decode_aper; +per_type_encoder_f VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleType_H_ */ +#include diff --git a/vcits/rtcmem/VehicleWidth.h b/vcits/rtcmem/VehicleWidth.h new file mode 100644 index 0000000..3cb96ea --- /dev/null +++ b/vcits/rtcmem/VehicleWidth.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _VehicleWidth_H_ +#define _VehicleWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleWidth { + VehicleWidth_tenCentimeters = 1, + VehicleWidth_outOfRange = 61, + VehicleWidth_unavailable = 62 +} e_VehicleWidth; + +/* VehicleWidth */ +typedef long VehicleWidth_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleWidth; +asn_struct_free_f VehicleWidth_free; +asn_struct_print_f VehicleWidth_print; +asn_constr_check_f VehicleWidth_constraint; +ber_type_decoder_f VehicleWidth_decode_ber; +der_type_encoder_f VehicleWidth_encode_der; +xer_type_decoder_f VehicleWidth_decode_xer; +xer_type_encoder_f VehicleWidth_encode_xer; +oer_type_decoder_f VehicleWidth_decode_oer; +oer_type_encoder_f VehicleWidth_encode_oer; +per_type_decoder_f VehicleWidth_decode_uper; +per_type_encoder_f VehicleWidth_encode_uper; +per_type_decoder_f VehicleWidth_decode_aper; +per_type_encoder_f VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleWidth_H_ */ +#include diff --git a/vcits/rtcmem/Velocity.h b/vcits/rtcmem/Velocity.h new file mode 100644 index 0000000..2b2e0ac --- /dev/null +++ b/vcits/rtcmem/Velocity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _Velocity_H_ +#define _Velocity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Velocity */ +typedef long Velocity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Velocity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Velocity; +asn_struct_free_f Velocity_free; +asn_struct_print_f Velocity_print; +asn_constr_check_f Velocity_constraint; +ber_type_decoder_f Velocity_decode_ber; +der_type_encoder_f Velocity_encode_der; +xer_type_decoder_f Velocity_decode_xer; +xer_type_encoder_f Velocity_encode_xer; +oer_type_decoder_f Velocity_decode_oer; +oer_type_encoder_f Velocity_encode_oer; +per_type_decoder_f Velocity_decode_uper; +per_type_encoder_f Velocity_encode_uper; +per_type_decoder_f Velocity_decode_aper; +per_type_encoder_f Velocity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Velocity_H_ */ +#include diff --git a/vcits/rtcmem/VerticalAcceleration.h b/vcits/rtcmem/VerticalAcceleration.h new file mode 100644 index 0000000..594e98a --- /dev/null +++ b/vcits/rtcmem/VerticalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _VerticalAcceleration_H_ +#define _VerticalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "VerticalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VerticalAcceleration */ +typedef struct VerticalAcceleration { + VerticalAccelerationValue_t verticalAccelerationValue; + AccelerationConfidence_t verticalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VerticalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAcceleration_H_ */ +#include diff --git a/vcits/rtcmem/VerticalAccelerationValue.h b/vcits/rtcmem/VerticalAccelerationValue.h new file mode 100644 index 0000000..0fd1244 --- /dev/null +++ b/vcits/rtcmem/VerticalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _VerticalAccelerationValue_H_ +#define _VerticalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VerticalAccelerationValue { + VerticalAccelerationValue_pointOneMeterPerSecSquaredUp = 1, + VerticalAccelerationValue_pointOneMeterPerSecSquaredDown = -1, + VerticalAccelerationValue_unavailable = 161 +} e_VerticalAccelerationValue; + +/* VerticalAccelerationValue */ +typedef long VerticalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue; +asn_struct_free_f VerticalAccelerationValue_free; +asn_struct_print_f VerticalAccelerationValue_print; +asn_constr_check_f VerticalAccelerationValue_constraint; +ber_type_decoder_f VerticalAccelerationValue_decode_ber; +der_type_encoder_f VerticalAccelerationValue_encode_der; +xer_type_decoder_f VerticalAccelerationValue_decode_xer; +xer_type_encoder_f VerticalAccelerationValue_encode_xer; +oer_type_decoder_f VerticalAccelerationValue_decode_oer; +oer_type_encoder_f VerticalAccelerationValue_encode_oer; +per_type_decoder_f VerticalAccelerationValue_decode_uper; +per_type_encoder_f VerticalAccelerationValue_encode_uper; +per_type_decoder_f VerticalAccelerationValue_decode_aper; +per_type_encoder_f VerticalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAccelerationValue_H_ */ +#include diff --git a/vcits/rtcmem/WMInumber.h b/vcits/rtcmem/WMInumber.h new file mode 100644 index 0000000..69ed8e9 --- /dev/null +++ b/vcits/rtcmem/WMInumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _WMInumber_H_ +#define _WMInumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WMInumber */ +typedef IA5String_t WMInumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WMInumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WMInumber; +asn_struct_free_f WMInumber_free; +asn_struct_print_f WMInumber_print; +asn_constr_check_f WMInumber_constraint; +ber_type_decoder_f WMInumber_decode_ber; +der_type_encoder_f WMInumber_encode_der; +xer_type_decoder_f WMInumber_decode_xer; +xer_type_encoder_f WMInumber_encode_xer; +oer_type_decoder_f WMInumber_decode_oer; +oer_type_encoder_f WMInumber_encode_oer; +per_type_decoder_f WMInumber_decode_uper; +per_type_encoder_f WMInumber_encode_uper; +per_type_decoder_f WMInumber_decode_aper; +per_type_encoder_f WMInumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WMInumber_H_ */ +#include diff --git a/vcits/rtcmem/WaitOnStopline.h b/vcits/rtcmem/WaitOnStopline.h new file mode 100644 index 0000000..3093fb7 --- /dev/null +++ b/vcits/rtcmem/WaitOnStopline.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _WaitOnStopline_H_ +#define _WaitOnStopline_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WaitOnStopline */ +typedef BOOLEAN_t WaitOnStopline_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WaitOnStopline; +asn_struct_free_f WaitOnStopline_free; +asn_struct_print_f WaitOnStopline_print; +asn_constr_check_f WaitOnStopline_constraint; +ber_type_decoder_f WaitOnStopline_decode_ber; +der_type_encoder_f WaitOnStopline_encode_der; +xer_type_decoder_f WaitOnStopline_decode_xer; +xer_type_encoder_f WaitOnStopline_encode_xer; +oer_type_decoder_f WaitOnStopline_decode_oer; +oer_type_encoder_f WaitOnStopline_encode_oer; +per_type_decoder_f WaitOnStopline_decode_uper; +per_type_encoder_f WaitOnStopline_encode_uper; +per_type_decoder_f WaitOnStopline_decode_aper; +per_type_encoder_f WaitOnStopline_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WaitOnStopline_H_ */ +#include diff --git a/vcits/rtcmem/WheelBaseVehicle.h b/vcits/rtcmem/WheelBaseVehicle.h new file mode 100644 index 0000000..f0f1266 --- /dev/null +++ b/vcits/rtcmem/WheelBaseVehicle.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _WheelBaseVehicle_H_ +#define _WheelBaseVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WheelBaseVehicle { + WheelBaseVehicle_tenCentimeters = 1, + WheelBaseVehicle_unavailable = 127 +} e_WheelBaseVehicle; + +/* WheelBaseVehicle */ +typedef long WheelBaseVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle; +asn_struct_free_f WheelBaseVehicle_free; +asn_struct_print_f WheelBaseVehicle_print; +asn_constr_check_f WheelBaseVehicle_constraint; +ber_type_decoder_f WheelBaseVehicle_decode_ber; +der_type_encoder_f WheelBaseVehicle_encode_der; +xer_type_decoder_f WheelBaseVehicle_decode_xer; +xer_type_encoder_f WheelBaseVehicle_encode_xer; +oer_type_decoder_f WheelBaseVehicle_decode_oer; +oer_type_encoder_f WheelBaseVehicle_encode_oer; +per_type_decoder_f WheelBaseVehicle_decode_uper; +per_type_encoder_f WheelBaseVehicle_encode_uper; +per_type_decoder_f WheelBaseVehicle_decode_aper; +per_type_encoder_f WheelBaseVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WheelBaseVehicle_H_ */ +#include diff --git a/vcits/rtcmem/WrongWayDrivingSubCauseCode.h b/vcits/rtcmem/WrongWayDrivingSubCauseCode.h new file mode 100644 index 0000000..7dacab8 --- /dev/null +++ b/vcits/rtcmem/WrongWayDrivingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _WrongWayDrivingSubCauseCode_H_ +#define _WrongWayDrivingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WrongWayDrivingSubCauseCode { + WrongWayDrivingSubCauseCode_unavailable = 0, + WrongWayDrivingSubCauseCode_wrongLane = 1, + WrongWayDrivingSubCauseCode_wrongDirection = 2 +} e_WrongWayDrivingSubCauseCode; + +/* WrongWayDrivingSubCauseCode */ +typedef long WrongWayDrivingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode; +asn_struct_free_f WrongWayDrivingSubCauseCode_free; +asn_struct_print_f WrongWayDrivingSubCauseCode_print; +asn_constr_check_f WrongWayDrivingSubCauseCode_constraint; +ber_type_decoder_f WrongWayDrivingSubCauseCode_decode_ber; +der_type_encoder_f WrongWayDrivingSubCauseCode_encode_der; +xer_type_decoder_f WrongWayDrivingSubCauseCode_decode_xer; +xer_type_encoder_f WrongWayDrivingSubCauseCode_encode_xer; +oer_type_decoder_f WrongWayDrivingSubCauseCode_decode_oer; +oer_type_encoder_f WrongWayDrivingSubCauseCode_encode_oer; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_uper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_uper; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_aper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WrongWayDrivingSubCauseCode_H_ */ +#include diff --git a/vcits/rtcmem/YawRate.h b/vcits/rtcmem/YawRate.h new file mode 100644 index 0000000..df3d595 --- /dev/null +++ b/vcits/rtcmem/YawRate.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _YawRate_H_ +#define _YawRate_H_ + + +#include + +/* Including external dependencies */ +#include "YawRateValue.h" +#include "YawRateConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* YawRate */ +typedef struct YawRate { + YawRateValue_t yawRateValue; + YawRateConfidence_t yawRateConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} YawRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_YawRate; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRate_H_ */ +#include diff --git a/vcits/rtcmem/YawRateConfidence.h b/vcits/rtcmem/YawRateConfidence.h new file mode 100644 index 0000000..c3576a7 --- /dev/null +++ b/vcits/rtcmem/YawRateConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _YawRateConfidence_H_ +#define _YawRateConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateConfidence { + YawRateConfidence_degSec_000_01 = 0, + YawRateConfidence_degSec_000_05 = 1, + YawRateConfidence_degSec_000_10 = 2, + YawRateConfidence_degSec_001_00 = 3, + YawRateConfidence_degSec_005_00 = 4, + YawRateConfidence_degSec_010_00 = 5, + YawRateConfidence_degSec_100_00 = 6, + YawRateConfidence_outOfRange = 7, + YawRateConfidence_unavailable = 8 +} e_YawRateConfidence; + +/* YawRateConfidence */ +typedef long YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1; +asn_struct_free_f YawRateConfidence_free; +asn_struct_print_f YawRateConfidence_print; +asn_constr_check_f YawRateConfidence_constraint; +ber_type_decoder_f YawRateConfidence_decode_ber; +der_type_encoder_f YawRateConfidence_encode_der; +xer_type_decoder_f YawRateConfidence_decode_xer; +xer_type_encoder_f YawRateConfidence_encode_xer; +oer_type_decoder_f YawRateConfidence_decode_oer; +oer_type_encoder_f YawRateConfidence_encode_oer; +per_type_decoder_f YawRateConfidence_decode_uper; +per_type_encoder_f YawRateConfidence_encode_uper; +per_type_decoder_f YawRateConfidence_decode_aper; +per_type_encoder_f YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateConfidence_H_ */ +#include diff --git a/vcits/rtcmem/YawRateValue.h b/vcits/rtcmem/YawRateValue.h new file mode 100644 index 0000000..b778246 --- /dev/null +++ b/vcits/rtcmem/YawRateValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _YawRateValue_H_ +#define _YawRateValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateValue { + YawRateValue_straight = 0, + YawRateValue_degSec_000_01ToRight = -1, + YawRateValue_degSec_000_01ToLeft = 1, + YawRateValue_unavailable = 32767 +} e_YawRateValue; + +/* YawRateValue */ +typedef long YawRateValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateValue; +asn_struct_free_f YawRateValue_free; +asn_struct_print_f YawRateValue_print; +asn_constr_check_f YawRateValue_constraint; +ber_type_decoder_f YawRateValue_decode_ber; +der_type_encoder_f YawRateValue_encode_der; +xer_type_decoder_f YawRateValue_decode_xer; +xer_type_encoder_f YawRateValue_encode_xer; +oer_type_decoder_f YawRateValue_decode_oer; +oer_type_encoder_f YawRateValue_encode_oer; +per_type_decoder_f YawRateValue_decode_uper; +per_type_encoder_f YawRateValue_encode_uper; +per_type_decoder_f YawRateValue_decode_aper; +per_type_encoder_f YawRateValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateValue_H_ */ +#include diff --git a/vcits/rtcmem/ZoneLength.h b/vcits/rtcmem/ZoneLength.h new file mode 100644 index 0000000..08106af --- /dev/null +++ b/vcits/rtcmem/ZoneLength.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#ifndef _ZoneLength_H_ +#define _ZoneLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ZoneLength */ +typedef long ZoneLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ZoneLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ZoneLength; +asn_struct_free_f ZoneLength_free; +asn_struct_print_f ZoneLength_print; +asn_constr_check_f ZoneLength_constraint; +ber_type_decoder_f ZoneLength_decode_ber; +der_type_encoder_f ZoneLength_encode_der; +xer_type_decoder_f ZoneLength_decode_xer; +xer_type_encoder_f ZoneLength_encode_xer; +oer_type_decoder_f ZoneLength_decode_oer; +oer_type_encoder_f ZoneLength_encode_oer; +per_type_decoder_f ZoneLength_decode_uper; +per_type_encoder_f ZoneLength_encode_uper; +per_type_decoder_f ZoneLength_decode_aper; +per_type_encoder_f ZoneLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ZoneLength_H_ */ +#include diff --git a/vcits/rtcmem/asn_constant.h b/vcits/rtcmem/asn_constant.h new file mode 100644 index 0000000..9214f13 --- /dev/null +++ b/vcits/rtcmem/asn_constant.h @@ -0,0 +1,265 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_StationID (0) +#define max_val_StationID (4294967295) +#define min_val_Longitude (-1800000000) +#define max_val_Longitude (1800000001) +#define min_val_Latitude (-900000000) +#define max_val_Latitude (900000001) +#define min_val_AltitudeValue (-100000) +#define max_val_AltitudeValue (800001) +#define min_val_DeltaLongitude (-131071) +#define max_val_DeltaLongitude (131072) +#define min_val_DeltaLatitude (-131071) +#define max_val_DeltaLatitude (131072) +#define min_val_DeltaAltitude (-12700) +#define max_val_DeltaAltitude (12800) +#define min_val_PtActivationType (0) +#define max_val_PtActivationType (255) +#define min_val_SemiAxisLength (0) +#define max_val_SemiAxisLength (4095) +#define min_val_CauseCodeType (0) +#define max_val_CauseCodeType (255) +#define min_val_SubCauseCodeType (0) +#define max_val_SubCauseCodeType (255) +#define min_val_TrafficConditionSubCauseCode (0) +#define max_val_TrafficConditionSubCauseCode (255) +#define min_val_AccidentSubCauseCode (0) +#define max_val_AccidentSubCauseCode (255) +#define min_val_RoadworksSubCauseCode (0) +#define max_val_RoadworksSubCauseCode (255) +#define min_val_HumanPresenceOnTheRoadSubCauseCode (0) +#define max_val_HumanPresenceOnTheRoadSubCauseCode (255) +#define min_val_WrongWayDrivingSubCauseCode (0) +#define max_val_WrongWayDrivingSubCauseCode (255) +#define min_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_AdhesionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_AdhesionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_VisibilitySubCauseCode (0) +#define max_val_AdverseWeatherCondition_VisibilitySubCauseCode (255) +#define min_val_AdverseWeatherCondition_PrecipitationSubCauseCode (0) +#define max_val_AdverseWeatherCondition_PrecipitationSubCauseCode (255) +#define min_val_SlowVehicleSubCauseCode (0) +#define max_val_SlowVehicleSubCauseCode (255) +#define min_val_StationaryVehicleSubCauseCode (0) +#define max_val_StationaryVehicleSubCauseCode (255) +#define min_val_HumanProblemSubCauseCode (0) +#define max_val_HumanProblemSubCauseCode (255) +#define min_val_EmergencyVehicleApproachingSubCauseCode (0) +#define max_val_EmergencyVehicleApproachingSubCauseCode (255) +#define min_val_HazardousLocation_DangerousCurveSubCauseCode (0) +#define max_val_HazardousLocation_DangerousCurveSubCauseCode (255) +#define min_val_HazardousLocation_SurfaceConditionSubCauseCode (0) +#define max_val_HazardousLocation_SurfaceConditionSubCauseCode (255) +#define min_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (255) +#define min_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (255) +#define min_val_CollisionRiskSubCauseCode (0) +#define max_val_CollisionRiskSubCauseCode (255) +#define min_val_SignalViolationSubCauseCode (0) +#define max_val_SignalViolationSubCauseCode (255) +#define min_val_RescueAndRecoveryWorkInProgressSubCauseCode (0) +#define max_val_RescueAndRecoveryWorkInProgressSubCauseCode (255) +#define min_val_DangerousEndOfQueueSubCauseCode (0) +#define max_val_DangerousEndOfQueueSubCauseCode (255) +#define min_val_DangerousSituationSubCauseCode (0) +#define max_val_DangerousSituationSubCauseCode (255) +#define min_val_VehicleBreakdownSubCauseCode (0) +#define max_val_VehicleBreakdownSubCauseCode (255) +#define min_val_PostCrashSubCauseCode (0) +#define max_val_PostCrashSubCauseCode (255) +#define min_val_CurvatureValue (-1023) +#define max_val_CurvatureValue (1023) +#define min_val_HeadingValue (0) +#define max_val_HeadingValue (3601) +#define min_val_HeadingConfidence (1) +#define max_val_HeadingConfidence (127) +#define min_val_LanePosition (-1) +#define max_val_LanePosition (14) +#define min_val_PerformanceClass (0) +#define max_val_PerformanceClass (7) +#define min_val_SpeedValue (0) +#define max_val_SpeedValue (16383) +#define min_val_SpeedConfidence (1) +#define max_val_SpeedConfidence (127) +#define min_val_VehicleMass (1) +#define max_val_VehicleMass (1024) +#define min_val_LongitudinalAccelerationValue (-160) +#define max_val_LongitudinalAccelerationValue (161) +#define min_val_AccelerationConfidence (0) +#define max_val_AccelerationConfidence (102) +#define min_val_LateralAccelerationValue (-160) +#define max_val_LateralAccelerationValue (161) +#define min_val_VerticalAccelerationValue (-160) +#define max_val_VerticalAccelerationValue (161) +#define min_val_StationType (0) +#define max_val_StationType (255) +#define min_val_HeightLonCarr (1) +#define max_val_HeightLonCarr (100) +#define min_val_PosLonCarr (1) +#define max_val_PosLonCarr (127) +#define min_val_PosPillar (1) +#define max_val_PosPillar (30) +#define min_val_PosCentMass (1) +#define max_val_PosCentMass (63) +#define min_val_SpeedLimit (1) +#define max_val_SpeedLimit (255) +#define min_val_Temperature (-60) +#define max_val_Temperature (67) +#define min_val_WheelBaseVehicle (1) +#define max_val_WheelBaseVehicle (127) +#define min_val_TurningRadius (1) +#define max_val_TurningRadius (255) +#define min_val_PosFrontAx (1) +#define max_val_PosFrontAx (20) +#define min_val_VehicleLengthValue (1) +#define max_val_VehicleLengthValue (1023) +#define min_val_VehicleWidth (1) +#define max_val_VehicleWidth (62) +#define min_val_InformationQuality (0) +#define max_val_InformationQuality (7) +#define min_val_SteeringWheelAngleValue (-511) +#define max_val_SteeringWheelAngleValue (512) +#define min_val_SteeringWheelAngleConfidence (1) +#define max_val_SteeringWheelAngleConfidence (127) +#define min_val_TimestampIts (0) +#define max_val_TimestampIts (4398046511103) +#define min_val_YawRateValue (-32766) +#define max_val_YawRateValue (32767) +#define min_val_TransmissionInterval (1) +#define max_val_TransmissionInterval (10000) +#define min_val_ValidityDuration (0) +#define max_val_ValidityDuration (86400) +#define min_val_NumberOfOccupants (0) +#define max_val_NumberOfOccupants (127) +#define min_val_SequenceNumber (0) +#define max_val_SequenceNumber (65535) +#define min_val_ProtectedZoneID (0) +#define max_val_ProtectedZoneID (134217727) +#define min_val_Iso3833VehicleType (0) +#define max_val_Iso3833VehicleType (255) +#define min_val_TimeReference (0) +#define max_val_TimeReference (60000) +#define min_val_TimeMark (0) +#define max_val_TimeMark (36001) +#define min_val_Angle (0) +#define max_val_Angle (28800) +#define min_val_ApproachID (0) +#define max_val_ApproachID (15) +#define min_val_DDay (0) +#define max_val_DDay (31) +#define min_val_DeltaAngle (-150) +#define max_val_DeltaAngle (150) +#define min_val_DeltaTime (-122) +#define max_val_DeltaTime (121) +#define min_val_DHour (0) +#define max_val_DHour (31) +#define min_val_DMinute (0) +#define max_val_DMinute (60) +#define min_val_DMonth (0) +#define max_val_DMonth (12) +#define min_val_DOffset (-840) +#define max_val_DOffset (840) +#define min_val_DrivenLineOffsetLg (-32767) +#define max_val_DrivenLineOffsetLg (32767) +#define min_val_DrivenLineOffsetSm (-2047) +#define max_val_DrivenLineOffsetSm (2047) +#define min_val_DSecond (0) +#define max_val_DSecond (65535) +#define min_val_DSRCmsgID (0) +#define max_val_DSRCmsgID (32767) +#define min_val_DYear (0) +#define max_val_DYear (4095) +#define min_val_Elevation (-4096) +#define max_val_Elevation (61439) +#define min_val_FuelType (0) +#define max_val_FuelType (15) +#define min_val_HeadingDSRC (0) +#define max_val_HeadingDSRC (28800) +#define min_val_IntersectionID (0) +#define max_val_IntersectionID (65535) +#define min_val_LaneConnectionID (0) +#define max_val_LaneConnectionID (255) +#define min_val_LaneID (0) +#define max_val_LaneID (255) +#define min_val_LayerID (0) +#define max_val_LayerID (100) +#define min_val_LaneWidth (0) +#define max_val_LaneWidth (32767) +#define min_val_MergeDivergeNodeAngle (-180) +#define max_val_MergeDivergeNodeAngle (180) +#define min_val_MinuteOfTheYear (0) +#define max_val_MinuteOfTheYear (527040) +#define min_val_MsgCount (0) +#define max_val_MsgCount (127) +#define min_val_Offset_B09 (-256) +#define max_val_Offset_B09 (255) +#define min_val_Offset_B10 (-512) +#define max_val_Offset_B10 (511) +#define min_val_Offset_B11 (-1024) +#define max_val_Offset_B11 (1023) +#define min_val_Offset_B12 (-2048) +#define max_val_Offset_B12 (2047) +#define min_val_Offset_B13 (-4096) +#define max_val_Offset_B13 (4095) +#define min_val_Offset_B14 (-8192) +#define max_val_Offset_B14 (8191) +#define min_val_Offset_B16 (-32768) +#define max_val_Offset_B16 (32767) +#define min_val_RegionId (0) +#define max_val_RegionId (255) +#define min_val_RequestID (0) +#define max_val_RequestID (255) +#define min_val_RestrictionClassID (0) +#define max_val_RestrictionClassID (255) +#define min_val_RoadRegulatorID (0) +#define max_val_RoadRegulatorID (65535) +#define min_val_RoadSegmentID (0) +#define max_val_RoadSegmentID (65535) +#define min_val_RoadwayCrownAngle (-128) +#define max_val_RoadwayCrownAngle (127) +#define min_val_Scale_B12 (-2048) +#define max_val_Scale_B12 (2047) +#define min_val_SignalGroupID (0) +#define max_val_SignalGroupID (255) +#define min_val_SemiMajorAxisAccuracy (0) +#define max_val_SemiMajorAxisAccuracy (255) +#define min_val_SemiMajorAxisOrientation (0) +#define max_val_SemiMajorAxisOrientation (65535) +#define min_val_SemiMinorAxisAccuracy (0) +#define max_val_SemiMinorAxisAccuracy (255) +#define min_val_SpeedAdvice (0) +#define max_val_SpeedAdvice (500) +#define min_val_TimeIntervalConfidence (0) +#define max_val_TimeIntervalConfidence (15) +#define min_val_VehicleHeight (0) +#define max_val_VehicleHeight (127) +#define min_val_Velocity (0) +#define max_val_Velocity (8191) +#define min_val_ZoneLength (0) +#define max_val_ZoneLength (10000) +#define min_val_IssuerIdentifier (0) +#define max_val_IssuerIdentifier (16383) +#define min_val_ManufacturerIdentifier (0) +#define max_val_ManufacturerIdentifier (65535) +#define min_val_AlphabetIndicator (0) +#define max_val_AlphabetIndicator (63) +#define version (1) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/vcits/rtcmem/src/AccelerationConfidence.c b/vcits/rtcmem/src/AccelerationConfidence.c new file mode 100644 index 0000000..7a2d971 --- /dev/null +++ b/vcits/rtcmem/src/AccelerationConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AccelerationConfidence.h" + +int +AccelerationConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 102)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..102) */, + -1}; +asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 102 } /* (0..102) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeInteger, + asn_DEF_AccelerationConfidence_tags_1, + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationConfidence_constr_1, &asn_PER_type_AccelerationConfidence_constr_1, AccelerationConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/AccelerationControl.c b/vcits/rtcmem/src/AccelerationControl.c new file mode 100644 index 0000000..c612262 --- /dev/null +++ b/vcits/rtcmem/src/AccelerationControl.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AccelerationControl.h" + +int +AccelerationControl_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationControl = { + "AccelerationControl", + "AccelerationControl", + &asn_OP_BIT_STRING, + asn_DEF_AccelerationControl_tags_1, + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + asn_DEF_AccelerationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationControl_constr_1, &asn_PER_type_AccelerationControl_constr_1, AccelerationControl_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/AccidentSubCauseCode.c b/vcits/rtcmem/src/AccidentSubCauseCode.c new file mode 100644 index 0000000..ca5d068 --- /dev/null +++ b/vcits/rtcmem/src/AccidentSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AccidentSubCauseCode.h" + +int +AccidentSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccidentSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode = { + "AccidentSubCauseCode", + "AccidentSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AccidentSubCauseCode_tags_1, + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AccidentSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AccidentSubCauseCode_constr_1, &asn_PER_type_AccidentSubCauseCode_constr_1, AccidentSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/ActionID.c b/vcits/rtcmem/src/ActionID.c new file mode 100644 index 0000000..a4129af --- /dev/null +++ b/vcits/rtcmem/src/ActionID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ActionID.h" + +static asn_TYPE_member_t asn_MBR_ActionID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ActionID, originatingStationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "originatingStationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ActionID, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SequenceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ActionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ActionID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingStationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sequenceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ActionID_specs_1 = { + sizeof(struct ActionID), + offsetof(struct ActionID, _asn_ctx), + asn_MAP_ActionID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ActionID = { + "ActionID", + "ActionID", + &asn_OP_SEQUENCE, + asn_DEF_ActionID_tags_1, + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + asn_DEF_ActionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ActionID_1, + 2, /* Elements count */ + &asn_SPC_ActionID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c b/vcits/rtcmem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c new file mode 100644 index 0000000..0004e49 --- /dev/null +++ b/vcits/rtcmem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AdverseWeatherCondition-AdhesionSubCauseCode.h" + +int +AdverseWeatherCondition_AdhesionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode = { + "AdverseWeatherCondition-AdhesionSubCauseCode", + "AdverseWeatherCondition-AdhesionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, AdverseWeatherCondition_AdhesionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c b/vcits/rtcmem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c new file mode 100644 index 0000000..fe03200 --- /dev/null +++ b/vcits/rtcmem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" + +int +AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = { + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c b/vcits/rtcmem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c new file mode 100644 index 0000000..e29cfac --- /dev/null +++ b/vcits/rtcmem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AdverseWeatherCondition-PrecipitationSubCauseCode.h" + +int +AdverseWeatherCondition_PrecipitationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode = { + "AdverseWeatherCondition-PrecipitationSubCauseCode", + "AdverseWeatherCondition-PrecipitationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, AdverseWeatherCondition_PrecipitationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c b/vcits/rtcmem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c new file mode 100644 index 0000000..3b3dcfc --- /dev/null +++ b/vcits/rtcmem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AdverseWeatherCondition-VisibilitySubCauseCode.h" + +int +AdverseWeatherCondition_VisibilitySubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode = { + "AdverseWeatherCondition-VisibilitySubCauseCode", + "AdverseWeatherCondition-VisibilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, AdverseWeatherCondition_VisibilitySubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/AdvisorySpeed.c b/vcits/rtcmem/src/AdvisorySpeed.c new file mode 100644 index 0000000..8ecf229 --- /dev/null +++ b/vcits/rtcmem/src/AdvisorySpeed.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AdvisorySpeed.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_AdvisorySpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct AdvisorySpeed__regional), + offsetof(struct AdvisorySpeed__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AdvisorySpeed, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 5, offsetof(struct AdvisorySpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedAdvice, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct AdvisorySpeed, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 3, offsetof(struct AdvisorySpeed, distance), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "distance" + }, + { ATF_POINTER, 2, offsetof(struct AdvisorySpeed, Class), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "class" + }, + { ATF_POINTER, 1, offsetof(struct AdvisorySpeed, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_AdvisorySpeed_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AdvisorySpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* distance */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* class */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1 = { + sizeof(struct AdvisorySpeed), + offsetof(struct AdvisorySpeed, _asn_ctx), + asn_MAP_AdvisorySpeed_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_AdvisorySpeed_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed = { + "AdvisorySpeed", + "AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_AdvisorySpeed_tags_1, + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AdvisorySpeed_1, + 6, /* Elements count */ + &asn_SPC_AdvisorySpeed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/AdvisorySpeedList.c b/vcits/rtcmem/src/AdvisorySpeedList.c new file mode 100644 index 0000000..fa7012b --- /dev/null +++ b/vcits/rtcmem/src/AdvisorySpeedList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AdvisorySpeedList.h" + +#include "AdvisorySpeed.h" +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AdvisorySpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1 = { + sizeof(struct AdvisorySpeedList), + offsetof(struct AdvisorySpeedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList = { + "AdvisorySpeedList", + "AdvisorySpeedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_AdvisorySpeedList_tags_1, + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedList_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + { &asn_OER_type_AdvisorySpeedList_constr_1, &asn_PER_type_AdvisorySpeedList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AdvisorySpeedList_1, + 1, /* Single element */ + &asn_SPC_AdvisorySpeedList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/AdvisorySpeedType.c b/vcits/rtcmem/src/AdvisorySpeedType.c new file mode 100644 index 0000000..aac861e --- /dev/null +++ b/vcits/rtcmem/src/AdvisorySpeedType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AdvisorySpeedType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AdvisorySpeedType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 9, "greenwave" }, + { 2, 8, "ecoDrive" }, + { 3, 7, "transit" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_AdvisorySpeedType_enum2value_1[] = { + 2, /* ecoDrive(2) */ + 1, /* greenwave(1) */ + 0, /* none(0) */ + 3 /* transit(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1 = { + asn_MAP_AdvisorySpeedType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AdvisorySpeedType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType = { + "AdvisorySpeedType", + "AdvisorySpeedType", + &asn_OP_NativeEnumerated, + asn_DEF_AdvisorySpeedType_tags_1, + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedType_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + { &asn_OER_type_AdvisorySpeedType_constr_1, &asn_PER_type_AdvisorySpeedType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AdvisorySpeedType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/AllowedManeuvers.c b/vcits/rtcmem/src/AllowedManeuvers.c new file mode 100644 index 0000000..78ab20b --- /dev/null +++ b/vcits/rtcmem/src/AllowedManeuvers.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AllowedManeuvers.h" + +int +AllowedManeuvers_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { 0, 0 }, + 12 /* (SIZE(12..12)) */}; +asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 12, 12 } /* (SIZE(12..12)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AllowedManeuvers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers = { + "AllowedManeuvers", + "AllowedManeuvers", + &asn_OP_BIT_STRING, + asn_DEF_AllowedManeuvers_tags_1, + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + asn_DEF_AllowedManeuvers_tags_1, /* Same as above */ + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + { &asn_OER_type_AllowedManeuvers_constr_1, &asn_PER_type_AllowedManeuvers_constr_1, AllowedManeuvers_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/AlphabetIndicator.c b/vcits/rtcmem/src/AlphabetIndicator.c new file mode 100644 index 0000000..015373b --- /dev/null +++ b/vcits/rtcmem/src/AlphabetIndicator.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AlphabetIndicator.h" + +int +AlphabetIndicator_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AlphabetIndicator_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +asn_per_constraints_t asn_PER_type_AlphabetIndicator_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AlphabetIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AlphabetIndicator = { + "AlphabetIndicator", + "AlphabetIndicator", + &asn_OP_NativeInteger, + asn_DEF_AlphabetIndicator_tags_1, + sizeof(asn_DEF_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_AlphabetIndicator_tags_1[0]), /* 1 */ + asn_DEF_AlphabetIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_AlphabetIndicator_tags_1[0]), /* 1 */ + { &asn_OER_type_AlphabetIndicator_constr_1, &asn_PER_type_AlphabetIndicator_constr_1, AlphabetIndicator_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Altitude.c b/vcits/rtcmem/src/Altitude.c new file mode 100644 index 0000000..72c1a96 --- /dev/null +++ b/vcits/rtcmem/src/Altitude.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Altitude.h" + +asn_TYPE_member_t asn_MBR_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Altitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altitudeValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altitudeConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1 = { + sizeof(struct Altitude), + offsetof(struct Altitude, _asn_ctx), + asn_MAP_Altitude_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_Altitude_tags_1, + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + asn_DEF_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Altitude_1, + 2, /* Elements count */ + &asn_SPC_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/AltitudeConfidence.c b/vcits/rtcmem/src/AltitudeConfidence.c new file mode 100644 index 0000000..9b6043f --- /dev/null +++ b/vcits/rtcmem/src/AltitudeConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AltitudeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AltitudeConfidence_value2enum_1[] = { + { 0, 10, "alt-000-01" }, + { 1, 10, "alt-000-02" }, + { 2, 10, "alt-000-05" }, + { 3, 10, "alt-000-10" }, + { 4, 10, "alt-000-20" }, + { 5, 10, "alt-000-50" }, + { 6, 10, "alt-001-00" }, + { 7, 10, "alt-002-00" }, + { 8, 10, "alt-005-00" }, + { 9, 10, "alt-010-00" }, + { 10, 10, "alt-020-00" }, + { 11, 10, "alt-050-00" }, + { 12, 10, "alt-100-00" }, + { 13, 10, "alt-200-00" }, + { 14, 10, "outOfRange" }, + { 15, 11, "unavailable" } +}; +static const unsigned int asn_MAP_AltitudeConfidence_enum2value_1[] = { + 0, /* alt-000-01(0) */ + 1, /* alt-000-02(1) */ + 2, /* alt-000-05(2) */ + 3, /* alt-000-10(3) */ + 4, /* alt-000-20(4) */ + 5, /* alt-000-50(5) */ + 6, /* alt-001-00(6) */ + 7, /* alt-002-00(7) */ + 8, /* alt-005-00(8) */ + 9, /* alt-010-00(9) */ + 10, /* alt-020-00(10) */ + 11, /* alt-050-00(11) */ + 12, /* alt-100-00(12) */ + 13, /* alt-200-00(13) */ + 14, /* outOfRange(14) */ + 15 /* unavailable(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1 = { + asn_MAP_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AltitudeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_AltitudeConfidence_tags_1, + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeConfidence_constr_1, &asn_PER_type_AltitudeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/AltitudeValue.c b/vcits/rtcmem/src/AltitudeValue.c new file mode 100644 index 0000000..d63dc9a --- /dev/null +++ b/vcits/rtcmem/src/AltitudeValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AltitudeValue.h" + +int +AltitudeValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -100000 && value <= 800001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-100000..800001) */, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, -100000, 800001 } /* (-100000..800001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_AltitudeValue_tags_1, + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeValue_constr_1, &asn_PER_type_AltitudeValue_constr_1, AltitudeValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Angle.c b/vcits/rtcmem/src/Angle.c new file mode 100644 index 0000000..93f0f9a --- /dev/null +++ b/vcits/rtcmem/src/Angle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Angle.h" + +int +Angle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 28800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Angle_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +asn_per_constraints_t asn_PER_type_Angle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Angle = { + "Angle", + "Angle", + &asn_OP_NativeInteger, + asn_DEF_Angle_tags_1, + sizeof(asn_DEF_Angle_tags_1) + /sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */ + asn_DEF_Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_Angle_tags_1) + /sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */ + { &asn_OER_type_Angle_constr_1, &asn_PER_type_Angle_constr_1, Angle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/AntennaOffsetSet.c b/vcits/rtcmem/src/AntennaOffsetSet.c new file mode 100644 index 0000000..ad85caa --- /dev/null +++ b/vcits/rtcmem/src/AntennaOffsetSet.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AntennaOffsetSet.h" + +asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetX), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetX" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetY), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B09, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetY" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetZ), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetZ" + }, +}; +static const ber_tlv_tag_t asn_DEF_AntennaOffsetSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AntennaOffsetSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* antOffsetX */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* antOffsetY */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* antOffsetZ */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1 = { + sizeof(struct AntennaOffsetSet), + offsetof(struct AntennaOffsetSet, _asn_ctx), + asn_MAP_AntennaOffsetSet_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet = { + "AntennaOffsetSet", + "AntennaOffsetSet", + &asn_OP_SEQUENCE, + asn_DEF_AntennaOffsetSet_tags_1, + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + asn_DEF_AntennaOffsetSet_tags_1, /* Same as above */ + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AntennaOffsetSet_1, + 3, /* Elements count */ + &asn_SPC_AntennaOffsetSet_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ApproachID.c b/vcits/rtcmem/src/ApproachID.c new file mode 100644 index 0000000..9c28bdd --- /dev/null +++ b/vcits/rtcmem/src/ApproachID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ApproachID.h" + +int +ApproachID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ApproachID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_ApproachID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ApproachID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ApproachID = { + "ApproachID", + "ApproachID", + &asn_OP_NativeInteger, + asn_DEF_ApproachID_tags_1, + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + asn_DEF_ApproachID_tags_1, /* Same as above */ + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + { &asn_OER_type_ApproachID_constr_1, &asn_PER_type_ApproachID_constr_1, ApproachID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/AviEriDateTime.c b/vcits/rtcmem/src/AviEriDateTime.c new file mode 100644 index 0000000..0379667 --- /dev/null +++ b/vcits/rtcmem/src/AviEriDateTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "AviEriDateTime.h" + +int +AviEriDateTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AviEriDateTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_AviEriDateTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AviEriDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AviEriDateTime = { + "AviEriDateTime", + "AviEriDateTime", + &asn_OP_OCTET_STRING, + asn_DEF_AviEriDateTime_tags_1, + sizeof(asn_DEF_AviEriDateTime_tags_1) + /sizeof(asn_DEF_AviEriDateTime_tags_1[0]), /* 1 */ + asn_DEF_AviEriDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_AviEriDateTime_tags_1) + /sizeof(asn_DEF_AviEriDateTime_tags_1[0]), /* 1 */ + { &asn_OER_type_AviEriDateTime_constr_1, &asn_PER_type_AviEriDateTime_constr_1, AviEriDateTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/BasicVehicleRole.c b/vcits/rtcmem/src/BasicVehicleRole.c new file mode 100644 index 0000000..e37eefc --- /dev/null +++ b/vcits/rtcmem/src/BasicVehicleRole.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "BasicVehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 22 } /* (0..22,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BasicVehicleRole_value2enum_1[] = { + { 0, 12, "basicVehicle" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 10, "roadRescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 12, "none-unknown" }, + { 9, 5, "truck" }, + { 10, 10, "motorcycle" }, + { 11, 14, "roadSideSource" }, + { 12, 6, "police" }, + { 13, 4, "fire" }, + { 14, 9, "ambulance" }, + { 15, 3, "dot" }, + { 16, 7, "transit" }, + { 17, 10, "slowMoving" }, + { 18, 7, "stopNgo" }, + { 19, 7, "cyclist" }, + { 20, 10, "pedestrian" }, + { 21, 12, "nonMotorized" }, + { 22, 8, "military" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BasicVehicleRole_enum2value_1[] = { + 14, /* ambulance(14) */ + 0, /* basicVehicle(0) */ + 19, /* cyclist(19) */ + 3, /* dangerousGoods(3) */ + 15, /* dot(15) */ + 6, /* emergency(6) */ + 13, /* fire(13) */ + 22, /* military(22) */ + 10, /* motorcycle(10) */ + 21, /* nonMotorized(21) */ + 8, /* none-unknown(8) */ + 20, /* pedestrian(20) */ + 12, /* police(12) */ + 1, /* publicTransport(1) */ + 5, /* roadRescue(5) */ + 11, /* roadSideSource(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 17, /* slowMoving(17) */ + 2, /* specialTransport(2) */ + 18, /* stopNgo(18) */ + 16, /* transit(16) */ + 9 /* truck(9) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1 = { + asn_MAP_BasicVehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BasicVehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 23, /* Number of elements in the maps */ + 24, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BasicVehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole = { + "BasicVehicleRole", + "BasicVehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_BasicVehicleRole_tags_1, + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + asn_DEF_BasicVehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_BasicVehicleRole_constr_1, &asn_PER_type_BasicVehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BasicVehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/BatteryStatus.c b/vcits/rtcmem/src/BatteryStatus.c new file mode 100644 index 0000000..911f429 --- /dev/null +++ b/vcits/rtcmem/src/BatteryStatus.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "BatteryStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BatteryStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BatteryStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BatteryStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "critical" }, + { 2, 3, "low" }, + { 3, 4, "good" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BatteryStatus_enum2value_1[] = { + 1, /* critical(1) */ + 3, /* good(3) */ + 2, /* low(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BatteryStatus_specs_1 = { + asn_MAP_BatteryStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BatteryStatus_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BatteryStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BatteryStatus = { + "BatteryStatus", + "BatteryStatus", + &asn_OP_NativeEnumerated, + asn_DEF_BatteryStatus_tags_1, + sizeof(asn_DEF_BatteryStatus_tags_1) + /sizeof(asn_DEF_BatteryStatus_tags_1[0]), /* 1 */ + asn_DEF_BatteryStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_BatteryStatus_tags_1) + /sizeof(asn_DEF_BatteryStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_BatteryStatus_constr_1, &asn_PER_type_BatteryStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BatteryStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CS1.c b/vcits/rtcmem/src/CS1.c new file mode 100644 index 0000000..b64a750 --- /dev/null +++ b/vcits/rtcmem/src/CS1.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CS1.h" + +static asn_TYPE_member_t asn_MBR_CS1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS1, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS1, issuerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IssuerIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "issuerIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS1, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* issuerIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* serviceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS1_specs_1 = { + sizeof(struct CS1), + offsetof(struct CS1, _asn_ctx), + asn_MAP_CS1_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS1 = { + "CS1", + "CS1", + &asn_OP_SEQUENCE, + asn_DEF_CS1_tags_1, + sizeof(asn_DEF_CS1_tags_1) + /sizeof(asn_DEF_CS1_tags_1[0]), /* 1 */ + asn_DEF_CS1_tags_1, /* Same as above */ + sizeof(asn_DEF_CS1_tags_1) + /sizeof(asn_DEF_CS1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS1_1, + 3, /* Elements count */ + &asn_SPC_CS1_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CS2.c b/vcits/rtcmem/src/CS2.c new file mode 100644 index 0000000..462c523 --- /dev/null +++ b/vcits/rtcmem/src/CS2.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CS2.h" + +static asn_TYPE_member_t asn_MBR_CS2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS2, manufacturerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManufacturerIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "manufacturerIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS2, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* manufacturerIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* serviceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS2_specs_1 = { + sizeof(struct CS2), + offsetof(struct CS2, _asn_ctx), + asn_MAP_CS2_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS2 = { + "CS2", + "CS2", + &asn_OP_SEQUENCE, + asn_DEF_CS2_tags_1, + sizeof(asn_DEF_CS2_tags_1) + /sizeof(asn_DEF_CS2_tags_1[0]), /* 1 */ + asn_DEF_CS2_tags_1, /* Same as above */ + sizeof(asn_DEF_CS2_tags_1) + /sizeof(asn_DEF_CS2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS2_1, + 2, /* Elements count */ + &asn_SPC_CS2_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CS3.c b/vcits/rtcmem/src/CS3.c new file mode 100644 index 0000000..e63bde5 --- /dev/null +++ b/vcits/rtcmem/src/CS3.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CS3.h" + +static asn_TYPE_member_t asn_MBR_CS3_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS3, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StartTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, stopTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StopTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stopTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, geographLimit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GeoGraphicalLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "geographLimit" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, serviceAppLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceApplicationLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceAppLimit" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS3_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* stopTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* geographLimit */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* serviceAppLimit */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS3_specs_1 = { + sizeof(struct CS3), + offsetof(struct CS3, _asn_ctx), + asn_MAP_CS3_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS3 = { + "CS3", + "CS3", + &asn_OP_SEQUENCE, + asn_DEF_CS3_tags_1, + sizeof(asn_DEF_CS3_tags_1) + /sizeof(asn_DEF_CS3_tags_1[0]), /* 1 */ + asn_DEF_CS3_tags_1, /* Same as above */ + sizeof(asn_DEF_CS3_tags_1) + /sizeof(asn_DEF_CS3_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS3_1, + 4, /* Elements count */ + &asn_SPC_CS3_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CS4.c b/vcits/rtcmem/src/CS4.c new file mode 100644 index 0000000..d32f04d --- /dev/null +++ b/vcits/rtcmem/src/CS4.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CS4.h" + +static asn_oer_constraints_t asn_OER_type_CS4_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_CS4_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS4_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS4, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS4, alphabetIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AlphabetIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "alphabetIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS4, licPlateNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LicPlateNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "licPlateNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS4_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* alphabetIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* licPlateNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS4_specs_1 = { + sizeof(struct CS4), + offsetof(struct CS4, _asn_ctx), + asn_MAP_CS4_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS4 = { + "CS4", + "CS4", + &asn_OP_SEQUENCE, + asn_DEF_CS4_tags_1, + sizeof(asn_DEF_CS4_tags_1) + /sizeof(asn_DEF_CS4_tags_1[0]), /* 1 */ + asn_DEF_CS4_tags_1, /* Same as above */ + sizeof(asn_DEF_CS4_tags_1) + /sizeof(asn_DEF_CS4_tags_1[0]), /* 1 */ + { &asn_OER_type_CS4_constr_1, &asn_PER_type_CS4_constr_1, SEQUENCE_constraint }, + asn_MBR_CS4_1, + 3, /* Elements count */ + &asn_SPC_CS4_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CS5.c b/vcits/rtcmem/src/CS5.c new file mode 100644 index 0000000..d4fb4f8 --- /dev/null +++ b/vcits/rtcmem/src/CS5.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CS5.h" + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 9)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_fill_constr_3 CC_NOTUSED = { + { 0, 0 }, + 9 /* (SIZE(9..9)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 9, 9 } /* (SIZE(9..9)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS5_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS5, vin), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VisibleString, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vin" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS5, fill), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_3, &asn_PER_memb_fill_constr_3, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS5_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS5_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vin */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fill */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS5_specs_1 = { + sizeof(struct CS5), + offsetof(struct CS5, _asn_ctx), + asn_MAP_CS5_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS5 = { + "CS5", + "CS5", + &asn_OP_SEQUENCE, + asn_DEF_CS5_tags_1, + sizeof(asn_DEF_CS5_tags_1) + /sizeof(asn_DEF_CS5_tags_1[0]), /* 1 */ + asn_DEF_CS5_tags_1, /* Same as above */ + sizeof(asn_DEF_CS5_tags_1) + /sizeof(asn_DEF_CS5_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS5_1, + 2, /* Elements count */ + &asn_SPC_CS5_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CS7.c b/vcits/rtcmem/src/CS7.c new file mode 100644 index 0000000..b9255a5 --- /dev/null +++ b/vcits/rtcmem/src/CS7.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CS7.h" + +/* + * This type is implemented using FreightContainerData, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_CS7_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CS7 = { + "CS7", + "CS7", + &asn_OP_SEQUENCE, + asn_DEF_CS7_tags_1, + sizeof(asn_DEF_CS7_tags_1) + /sizeof(asn_DEF_CS7_tags_1[0]), /* 1 */ + asn_DEF_CS7_tags_1, /* Same as above */ + sizeof(asn_DEF_CS7_tags_1) + /sizeof(asn_DEF_CS7_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CS8.c b/vcits/rtcmem/src/CS8.c new file mode 100644 index 0000000..2d56cc6 --- /dev/null +++ b/vcits/rtcmem/src/CS8.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CS8.h" + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 6)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_fill_constr_2 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS8_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS8, fill), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_2, &asn_PER_memb_fill_constr_2, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS8, countryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS8, taxCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TaxCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "taxCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS8_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS8_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fill */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* taxCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS8_specs_1 = { + sizeof(struct CS8), + offsetof(struct CS8, _asn_ctx), + asn_MAP_CS8_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS8 = { + "CS8", + "CS8", + &asn_OP_SEQUENCE, + asn_DEF_CS8_tags_1, + sizeof(asn_DEF_CS8_tags_1) + /sizeof(asn_DEF_CS8_tags_1[0]), /* 1 */ + asn_DEF_CS8_tags_1, /* Same as above */ + sizeof(asn_DEF_CS8_tags_1) + /sizeof(asn_DEF_CS8_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS8_1, + 3, /* Elements count */ + &asn_SPC_CS8_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CauseCode.c b/vcits/rtcmem/src/CauseCode.c new file mode 100644 index 0000000..364ab3a --- /dev/null +++ b/vcits/rtcmem/src/CauseCode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CauseCode.h" + +static asn_TYPE_member_t asn_MBR_CauseCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, causeCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "causeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, subCauseCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubCauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subCauseCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CauseCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* causeCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* subCauseCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CauseCode_specs_1 = { + sizeof(struct CauseCode), + offsetof(struct CauseCode, _asn_ctx), + asn_MAP_CauseCode_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CauseCode = { + "CauseCode", + "CauseCode", + &asn_OP_SEQUENCE, + asn_DEF_CauseCode_tags_1, + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + asn_DEF_CauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CauseCode_1, + 2, /* Elements count */ + &asn_SPC_CauseCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CauseCodeType.c b/vcits/rtcmem/src/CauseCodeType.c new file mode 100644 index 0000000..1b47f66 --- /dev/null +++ b/vcits/rtcmem/src/CauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CauseCodeType.h" + +int +CauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseCodeType = { + "CauseCodeType", + "CauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_CauseCodeType_tags_1, + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_CauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseCodeType_constr_1, &asn_PER_type_CauseCodeType_constr_1, CauseCodeType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/CenDsrcTollingZone.c b/vcits/rtcmem/src/CenDsrcTollingZone.c new file mode 100644 index 0000000..7963a50 --- /dev/null +++ b/vcits/rtcmem/src/CenDsrcTollingZone.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CenDsrcTollingZone.h" + +static asn_TYPE_member_t asn_MBR_CenDsrcTollingZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 1, offsetof(struct CenDsrcTollingZone, cenDsrcTollingZoneID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CenDsrcTollingZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cenDsrcTollingZoneID" + }, +}; +static const int asn_MAP_CenDsrcTollingZone_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CenDsrcTollingZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cenDsrcTollingZoneID */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CenDsrcTollingZone_specs_1 = { + sizeof(struct CenDsrcTollingZone), + offsetof(struct CenDsrcTollingZone, _asn_ctx), + asn_MAP_CenDsrcTollingZone_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CenDsrcTollingZone_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone = { + "CenDsrcTollingZone", + "CenDsrcTollingZone", + &asn_OP_SEQUENCE, + asn_DEF_CenDsrcTollingZone_tags_1, + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZone_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CenDsrcTollingZone_1, + 3, /* Elements count */ + &asn_SPC_CenDsrcTollingZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CenDsrcTollingZoneID.c b/vcits/rtcmem/src/CenDsrcTollingZoneID.c new file mode 100644 index 0000000..bf8da43 --- /dev/null +++ b/vcits/rtcmem/src/CenDsrcTollingZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CenDsrcTollingZoneID.h" + +int +CenDsrcTollingZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using ProtectedZoneID, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID = { + "CenDsrcTollingZoneID", + "CenDsrcTollingZoneID", + &asn_OP_NativeInteger, + asn_DEF_CenDsrcTollingZoneID_tags_1, + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_CenDsrcTollingZoneID_constr_1, &asn_PER_type_CenDsrcTollingZoneID_constr_1, CenDsrcTollingZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/ClosedLanes.c b/vcits/rtcmem/src/ClosedLanes.c new file mode 100644 index 0000000..2b9a8e5 --- /dev/null +++ b/vcits/rtcmem/src/ClosedLanes.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ClosedLanes.h" + +static asn_TYPE_member_t asn_MBR_ClosedLanes_1[] = { + { ATF_POINTER, 3, offsetof(struct ClosedLanes, innerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "innerhardShoulderStatus" + }, + { ATF_POINTER, 2, offsetof(struct ClosedLanes, outerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outerhardShoulderStatus" + }, + { ATF_POINTER, 1, offsetof(struct ClosedLanes, drivingLaneStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivingLaneStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drivingLaneStatus" + }, +}; +static const int asn_MAP_ClosedLanes_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ClosedLanes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ClosedLanes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* innerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* outerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* drivingLaneStatus */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ClosedLanes_specs_1 = { + sizeof(struct ClosedLanes), + offsetof(struct ClosedLanes, _asn_ctx), + asn_MAP_ClosedLanes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ClosedLanes_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ClosedLanes = { + "ClosedLanes", + "ClosedLanes", + &asn_OP_SEQUENCE, + asn_DEF_ClosedLanes_tags_1, + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + asn_DEF_ClosedLanes_tags_1, /* Same as above */ + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ClosedLanes_1, + 3, /* Elements count */ + &asn_SPC_ClosedLanes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CollisionRiskSubCauseCode.c b/vcits/rtcmem/src/CollisionRiskSubCauseCode.c new file mode 100644 index 0000000..9fd68bf --- /dev/null +++ b/vcits/rtcmem/src/CollisionRiskSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CollisionRiskSubCauseCode.h" + +int +CollisionRiskSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CollisionRiskSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode = { + "CollisionRiskSubCauseCode", + "CollisionRiskSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_CollisionRiskSubCauseCode_tags_1, + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_CollisionRiskSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CollisionRiskSubCauseCode_constr_1, &asn_PER_type_CollisionRiskSubCauseCode_constr_1, CollisionRiskSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/ComputedLane.c b/vcits/rtcmem/src/ComputedLane.c new file mode 100644 index 0000000..67611c4 --- /dev/null +++ b/vcits/rtcmem/src/ComputedLane.c @@ -0,0 +1,306 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ComputedLane.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_offsetXaxis_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetXaxis_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetXaxis_specs_3 = { + sizeof(struct ComputedLane__offsetXaxis), + offsetof(struct ComputedLane__offsetXaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetXaxis, present), + sizeof(((struct ComputedLane__offsetXaxis *)0)->present), + asn_MAP_offsetXaxis_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetXaxis_3 = { + "offsetXaxis", + "offsetXaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_offsetXaxis_constr_3, &asn_PER_type_offsetXaxis_constr_3, CHOICE_constraint }, + asn_MBR_offsetXaxis_3, + 2, /* Elements count */ + &asn_SPC_offsetXaxis_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_offsetYaxis_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetYaxis_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetYaxis_specs_6 = { + sizeof(struct ComputedLane__offsetYaxis), + offsetof(struct ComputedLane__offsetYaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetYaxis, present), + sizeof(((struct ComputedLane__offsetYaxis *)0)->present), + asn_MAP_offsetYaxis_tag2el_6, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetYaxis_6 = { + "offsetYaxis", + "offsetYaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_offsetYaxis_constr_6, &asn_PER_type_offsetYaxis_constr_6, CHOICE_constraint }, + asn_MBR_offsetYaxis_6, + 2, /* Elements count */ + &asn_SPC_offsetYaxis_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regional_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ComputedLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_12 = { + sizeof(struct ComputedLane__regional), + offsetof(struct ComputedLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_12 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_12, + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]) - 1, /* 1 */ + asn_DEF_regional_tags_12, /* Same as above */ + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]), /* 2 */ + { &asn_OER_type_regional_constr_12, &asn_PER_type_regional_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_regional_12, + 1, /* Single element */ + &asn_SPC_regional_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ComputedLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, referenceLaneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceLaneId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetXaxis), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetXaxis_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetXaxis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetYaxis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetYaxis_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetYaxis" + }, + { ATF_POINTER, 4, offsetof(struct ComputedLane, rotateXY), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rotateXY" + }, + { ATF_POINTER, 3, offsetof(struct ComputedLane, scaleXaxis), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaleXaxis" + }, + { ATF_POINTER, 2, offsetof(struct ComputedLane, scaleYaxis), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaleYaxis" + }, + { ATF_POINTER, 1, offsetof(struct ComputedLane, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_12, + 0, + { &asn_OER_memb_regional_constr_12, &asn_PER_memb_regional_constr_12, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ComputedLane_oms_1[] = { 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ComputedLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ComputedLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceLaneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* offsetXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* offsetYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rotateXY */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* scaleXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* scaleYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1 = { + sizeof(struct ComputedLane), + offsetof(struct ComputedLane, _asn_ctx), + asn_MAP_ComputedLane_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ComputedLane_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ComputedLane = { + "ComputedLane", + "ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_ComputedLane_tags_1, + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + asn_DEF_ComputedLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ComputedLane_1, + 7, /* Elements count */ + &asn_SPC_ComputedLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ConnectingLane.c b/vcits/rtcmem/src/ConnectingLane.c new file mode 100644 index 0000000..44ebf40 --- /dev/null +++ b/vcits/rtcmem/src/ConnectingLane.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ConnectingLane.h" + +asn_TYPE_member_t asn_MBR_ConnectingLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectingLane, lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 1, offsetof(struct ConnectingLane, maneuver), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuver" + }, +}; +static const int asn_MAP_ConnectingLane_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ConnectingLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectingLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maneuver */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1 = { + sizeof(struct ConnectingLane), + offsetof(struct ConnectingLane, _asn_ctx), + asn_MAP_ConnectingLane_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ConnectingLane_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectingLane = { + "ConnectingLane", + "ConnectingLane", + &asn_OP_SEQUENCE, + asn_DEF_ConnectingLane_tags_1, + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + asn_DEF_ConnectingLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectingLane_1, + 2, /* Elements count */ + &asn_SPC_ConnectingLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Connection.c b/vcits/rtcmem/src/Connection.c new file mode 100644 index 0000000..24265a9 --- /dev/null +++ b/vcits/rtcmem/src/Connection.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Connection.h" + +#include "IntersectionReferenceID.h" +asn_TYPE_member_t asn_MBR_Connection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Connection, connectingLane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectingLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectingLane" + }, + { ATF_POINTER, 4, offsetof(struct Connection, remoteIntersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "remoteIntersection" + }, + { ATF_POINTER, 3, offsetof(struct Connection, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_POINTER, 2, offsetof(struct Connection, userClass), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "userClass" + }, + { ATF_POINTER, 1, offsetof(struct Connection, connectionID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const int asn_MAP_Connection_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Connection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Connection_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectingLane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* remoteIntersection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* userClass */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1 = { + sizeof(struct Connection), + offsetof(struct Connection, _asn_ctx), + asn_MAP_Connection_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Connection_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Connection = { + "Connection", + "Connection", + &asn_OP_SEQUENCE, + asn_DEF_Connection_tags_1, + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + asn_DEF_Connection_tags_1, /* Same as above */ + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Connection_1, + 5, /* Elements count */ + &asn_SPC_Connection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ConnectionManeuverAssist-addGrpC.c b/vcits/rtcmem/src/ConnectionManeuverAssist-addGrpC.c new file mode 100644 index 0000000..3e1d7c2 --- /dev/null +++ b/vcits/rtcmem/src/ConnectionManeuverAssist-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ConnectionManeuverAssist-addGrpC.h" + +#include "ItsStationPositionList.h" +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist_addGrpC, itsStationPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsStationPositionList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "itsStationPosition" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* itsStationPosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 = { + sizeof(struct ConnectionManeuverAssist_addGrpC), + offsetof(struct ConnectionManeuverAssist_addGrpC, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC = { + "ConnectionManeuverAssist-addGrpC", + "ConnectionManeuverAssist-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionManeuverAssist_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ConnectionManeuverAssist.c b/vcits/rtcmem/src/ConnectionManeuverAssist.c new file mode 100644 index 0000000..74f356a --- /dev/null +++ b/vcits/rtcmem/src/ConnectionManeuverAssist.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ConnectionManeuverAssist.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ConnectionManeuverAssist, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct ConnectionManeuverAssist__regional), + offsetof(struct ConnectionManeuverAssist__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionManeuverAssist, connectionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 5, offsetof(struct ConnectionManeuverAssist, queueLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "queueLength" + }, + { ATF_POINTER, 4, offsetof(struct ConnectionManeuverAssist, availableStorageLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "availableStorageLength" + }, + { ATF_POINTER, 3, offsetof(struct ConnectionManeuverAssist, waitOnStop), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WaitOnStopline, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "waitOnStop" + }, + { ATF_POINTER, 2, offsetof(struct ConnectionManeuverAssist, pedBicycleDetect), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PedestrianBicycleDetect, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pedBicycleDetect" + }, + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* queueLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* availableStorageLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* waitOnStop */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pedBicycleDetect */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1 = { + sizeof(struct ConnectionManeuverAssist), + offsetof(struct ConnectionManeuverAssist, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist = { + "ConnectionManeuverAssist", + "ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionManeuverAssist_1, + 6, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ConnectionTrajectory-addGrpC.c b/vcits/rtcmem/src/ConnectionTrajectory-addGrpC.c new file mode 100644 index 0000000..84a60c9 --- /dev/null +++ b/vcits/rtcmem/src/ConnectionTrajectory-addGrpC.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ConnectionTrajectory-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ConnectionTrajectory_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionTrajectory_addGrpC, nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConnectionTrajectory_addGrpC, connectionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectionTrajectory_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionTrajectory_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionTrajectory_addGrpC_specs_1 = { + sizeof(struct ConnectionTrajectory_addGrpC), + offsetof(struct ConnectionTrajectory_addGrpC, _asn_ctx), + asn_MAP_ConnectionTrajectory_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionTrajectory_addGrpC = { + "ConnectionTrajectory-addGrpC", + "ConnectionTrajectory-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionTrajectory_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionTrajectory_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionTrajectory_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_ConnectionTrajectory_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ConnectsToList.c b/vcits/rtcmem/src/ConnectsToList.c new file mode 100644 index 0000000..57c3f13 --- /dev/null +++ b/vcits/rtcmem/src/ConnectsToList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ConnectsToList.h" + +#include "Connection.h" +static asn_oer_constraints_t asn_OER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ConnectsToList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Connection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectsToList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1 = { + sizeof(struct ConnectsToList), + offsetof(struct ConnectsToList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectsToList = { + "ConnectsToList", + "ConnectsToList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ConnectsToList_tags_1, + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + asn_DEF_ConnectsToList_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + { &asn_OER_type_ConnectsToList_constr_1, &asn_PER_type_ConnectsToList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ConnectsToList_1, + 1, /* Single element */ + &asn_SPC_ConnectsToList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CountryCode.c b/vcits/rtcmem/src/CountryCode.c new file mode 100644 index 0000000..1947f69 --- /dev/null +++ b/vcits/rtcmem/src/CountryCode.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CountryCode.h" + +int +CountryCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CountryCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_CountryCode_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CountryCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CountryCode = { + "CountryCode", + "CountryCode", + &asn_OP_BIT_STRING, + asn_DEF_CountryCode_tags_1, + sizeof(asn_DEF_CountryCode_tags_1) + /sizeof(asn_DEF_CountryCode_tags_1[0]), /* 1 */ + asn_DEF_CountryCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CountryCode_tags_1) + /sizeof(asn_DEF_CountryCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CountryCode_constr_1, &asn_PER_type_CountryCode_constr_1, CountryCode_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Curvature.c b/vcits/rtcmem/src/Curvature.c new file mode 100644 index 0000000..5ef1ffc --- /dev/null +++ b/vcits/rtcmem/src/Curvature.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Curvature.h" + +static asn_TYPE_member_t asn_MBR_Curvature_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Curvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Curvature_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* curvatureValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* curvatureConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Curvature_specs_1 = { + sizeof(struct Curvature), + offsetof(struct Curvature, _asn_ctx), + asn_MAP_Curvature_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Curvature = { + "Curvature", + "Curvature", + &asn_OP_SEQUENCE, + asn_DEF_Curvature_tags_1, + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + asn_DEF_Curvature_tags_1, /* Same as above */ + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Curvature_1, + 2, /* Elements count */ + &asn_SPC_Curvature_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CurvatureCalculationMode.c b/vcits/rtcmem/src/CurvatureCalculationMode.c new file mode 100644 index 0000000..43c0972 --- /dev/null +++ b/vcits/rtcmem/src/CurvatureCalculationMode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CurvatureCalculationMode.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureCalculationMode_value2enum_1[] = { + { 0, 11, "yawRateUsed" }, + { 1, 14, "yawRateNotUsed" }, + { 2, 11, "unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CurvatureCalculationMode_enum2value_1[] = { + 2, /* unavailable(2) */ + 1, /* yawRateNotUsed(1) */ + 0 /* yawRateUsed(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_CurvatureCalculationMode_specs_1 = { + asn_MAP_CurvatureCalculationMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureCalculationMode_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureCalculationMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode = { + "CurvatureCalculationMode", + "CurvatureCalculationMode", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureCalculationMode_tags_1, + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + asn_DEF_CurvatureCalculationMode_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureCalculationMode_constr_1, &asn_PER_type_CurvatureCalculationMode_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureCalculationMode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CurvatureConfidence.c b/vcits/rtcmem/src/CurvatureConfidence.c new file mode 100644 index 0000000..ea01319 --- /dev/null +++ b/vcits/rtcmem/src/CurvatureConfidence.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CurvatureConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureConfidence_value2enum_1[] = { + { 0, 19, "onePerMeter-0-00002" }, + { 1, 18, "onePerMeter-0-0001" }, + { 2, 18, "onePerMeter-0-0005" }, + { 3, 17, "onePerMeter-0-002" }, + { 4, 16, "onePerMeter-0-01" }, + { 5, 15, "onePerMeter-0-1" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_CurvatureConfidence_enum2value_1[] = { + 0, /* onePerMeter-0-00002(0) */ + 1, /* onePerMeter-0-0001(1) */ + 2, /* onePerMeter-0-0005(2) */ + 3, /* onePerMeter-0-002(3) */ + 4, /* onePerMeter-0-01(4) */ + 5, /* onePerMeter-0-1(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1 = { + asn_MAP_CurvatureConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence = { + "CurvatureConfidence", + "CurvatureConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureConfidence_tags_1, + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + asn_DEF_CurvatureConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureConfidence_constr_1, &asn_PER_type_CurvatureConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/CurvatureValue.c b/vcits/rtcmem/src/CurvatureValue.c new file mode 100644 index 0000000..dea8fbc --- /dev/null +++ b/vcits/rtcmem/src/CurvatureValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "CurvatureValue.h" + +int +CurvatureValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1023 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1023..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1023, 1023 } /* (-1023..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CurvatureValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureValue = { + "CurvatureValue", + "CurvatureValue", + &asn_OP_NativeInteger, + asn_DEF_CurvatureValue_tags_1, + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + asn_DEF_CurvatureValue_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureValue_constr_1, &asn_PER_type_CurvatureValue_constr_1, CurvatureValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DDateTime.c b/vcits/rtcmem/src/DDateTime.c new file mode 100644 index 0000000..0a789d7 --- /dev/null +++ b/vcits/rtcmem/src/DDateTime.c @@ -0,0 +1,112 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DDateTime.h" + +asn_TYPE_member_t asn_MBR_DDateTime_1[] = { + { ATF_POINTER, 7, offsetof(struct DDateTime, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "year" + }, + { ATF_POINTER, 6, offsetof(struct DDateTime, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMonth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "month" + }, + { ATF_POINTER, 5, offsetof(struct DDateTime, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDay, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "day" + }, + { ATF_POINTER, 4, offsetof(struct DDateTime, hour), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DHour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hour" + }, + { ATF_POINTER, 3, offsetof(struct DDateTime, minute), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMinute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct DDateTime, second), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct DDateTime, offset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offset" + }, +}; +static const int asn_MAP_DDateTime_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_DDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DDateTime_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* day */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hour */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* offset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1 = { + sizeof(struct DDateTime), + offsetof(struct DDateTime, _asn_ctx), + asn_MAP_DDateTime_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_DDateTime_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DDateTime = { + "DDateTime", + "DDateTime", + &asn_OP_SEQUENCE, + asn_DEF_DDateTime_tags_1, + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + asn_DEF_DDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DDateTime_1, + 7, /* Elements count */ + &asn_SPC_DDateTime_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/DDay.c b/vcits/rtcmem/src/DDay.c new file mode 100644 index 0000000..6b7d93a --- /dev/null +++ b/vcits/rtcmem/src/DDay.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DDay.h" + +int +DDay_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DDay_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_DDay_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DDay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DDay = { + "DDay", + "DDay", + &asn_OP_NativeInteger, + asn_DEF_DDay_tags_1, + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + asn_DEF_DDay_tags_1, /* Same as above */ + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + { &asn_OER_type_DDay_constr_1, &asn_PER_type_DDay_constr_1, DDay_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DHour.c b/vcits/rtcmem/src/DHour.c new file mode 100644 index 0000000..423b01f --- /dev/null +++ b/vcits/rtcmem/src/DHour.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DHour.h" + +int +DHour_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DHour_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_DHour_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DHour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DHour = { + "DHour", + "DHour", + &asn_OP_NativeInteger, + asn_DEF_DHour_tags_1, + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + asn_DEF_DHour_tags_1, /* Same as above */ + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + { &asn_OER_type_DHour_constr_1, &asn_PER_type_DHour_constr_1, DHour_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DMinute.c b/vcits/rtcmem/src/DMinute.c new file mode 100644 index 0000000..758c4a6 --- /dev/null +++ b/vcits/rtcmem/src/DMinute.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DMinute.h" + +int +DMinute_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 60)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DMinute_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..60) */, + -1}; +asn_per_constraints_t asn_PER_type_DMinute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 60 } /* (0..60) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DMinute_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMinute = { + "DMinute", + "DMinute", + &asn_OP_NativeInteger, + asn_DEF_DMinute_tags_1, + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + asn_DEF_DMinute_tags_1, /* Same as above */ + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + { &asn_OER_type_DMinute_constr_1, &asn_PER_type_DMinute_constr_1, DMinute_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DMonth.c b/vcits/rtcmem/src/DMonth.c new file mode 100644 index 0000000..cfed0e3 --- /dev/null +++ b/vcits/rtcmem/src/DMonth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DMonth.h" + +int +DMonth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DMonth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..12) */, + -1}; +asn_per_constraints_t asn_PER_type_DMonth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DMonth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMonth = { + "DMonth", + "DMonth", + &asn_OP_NativeInteger, + asn_DEF_DMonth_tags_1, + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + asn_DEF_DMonth_tags_1, /* Same as above */ + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + { &asn_OER_type_DMonth_constr_1, &asn_PER_type_DMonth_constr_1, DMonth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DOffset.c b/vcits/rtcmem/src/DOffset.c new file mode 100644 index 0000000..c3e88dc --- /dev/null +++ b/vcits/rtcmem/src/DOffset.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DOffset.h" + +int +DOffset_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -840 && value <= 840)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DOffset_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-840..840) */, + -1}; +asn_per_constraints_t asn_PER_type_DOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -840, 840 } /* (-840..840) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DOffset = { + "DOffset", + "DOffset", + &asn_OP_NativeInteger, + asn_DEF_DOffset_tags_1, + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + asn_DEF_DOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + { &asn_OER_type_DOffset_constr_1, &asn_PER_type_DOffset_constr_1, DOffset_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DSRCmsgID.c b/vcits/rtcmem/src/DSRCmsgID.c new file mode 100644 index 0000000..11836e8 --- /dev/null +++ b/vcits/rtcmem/src/DSRCmsgID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DSRCmsgID.h" + +int +DSRCmsgID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DSRCmsgID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSRCmsgID = { + "DSRCmsgID", + "DSRCmsgID", + &asn_OP_NativeInteger, + asn_DEF_DSRCmsgID_tags_1, + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + asn_DEF_DSRCmsgID_tags_1, /* Same as above */ + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + { &asn_OER_type_DSRCmsgID_constr_1, &asn_PER_type_DSRCmsgID_constr_1, DSRCmsgID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DSecond.c b/vcits/rtcmem/src/DSecond.c new file mode 100644 index 0000000..6fcf332 --- /dev/null +++ b/vcits/rtcmem/src/DSecond.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DSecond.h" + +int +DSecond_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DSecond_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_DSecond_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSecond = { + "DSecond", + "DSecond", + &asn_OP_NativeInteger, + asn_DEF_DSecond_tags_1, + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + asn_DEF_DSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + { &asn_OER_type_DSecond_constr_1, &asn_PER_type_DSecond_constr_1, DSecond_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DYear.c b/vcits/rtcmem/src/DYear.c new file mode 100644 index 0000000..223ef9f --- /dev/null +++ b/vcits/rtcmem/src/DYear.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DYear.h" + +int +DYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DYear_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_DYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DYear = { + "DYear", + "DYear", + &asn_OP_NativeInteger, + asn_DEF_DYear_tags_1, + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + asn_DEF_DYear_tags_1, /* Same as above */ + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + { &asn_OER_type_DYear_constr_1, &asn_PER_type_DYear_constr_1, DYear_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DangerousEndOfQueueSubCauseCode.c b/vcits/rtcmem/src/DangerousEndOfQueueSubCauseCode.c new file mode 100644 index 0000000..d4cbfec --- /dev/null +++ b/vcits/rtcmem/src/DangerousEndOfQueueSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DangerousEndOfQueueSubCauseCode.h" + +int +DangerousEndOfQueueSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode = { + "DangerousEndOfQueueSubCauseCode", + "DangerousEndOfQueueSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1, &asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1, DangerousEndOfQueueSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DangerousGoodsBasic.c b/vcits/rtcmem/src/DangerousGoodsBasic.c new file mode 100644 index 0000000..f9d0c3d --- /dev/null +++ b/vcits/rtcmem/src/DangerousGoodsBasic.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DangerousGoodsBasic.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DangerousGoodsBasic_value2enum_1[] = { + { 0, 11, "explosives1" }, + { 1, 11, "explosives2" }, + { 2, 11, "explosives3" }, + { 3, 11, "explosives4" }, + { 4, 11, "explosives5" }, + { 5, 11, "explosives6" }, + { 6, 14, "flammableGases" }, + { 7, 17, "nonFlammableGases" }, + { 8, 10, "toxicGases" }, + { 9, 16, "flammableLiquids" }, + { 10, 15, "flammableSolids" }, + { 11, 39, "substancesLiableToSpontaneousCombustion" }, + { 12, 52, "substancesEmittingFlammableGasesUponContactWithWater" }, + { 13, 19, "oxidizingSubstances" }, + { 14, 16, "organicPeroxides" }, + { 15, 15, "toxicSubstances" }, + { 16, 20, "infectiousSubstances" }, + { 17, 19, "radioactiveMaterial" }, + { 18, 19, "corrosiveSubstances" }, + { 19, 32, "miscellaneousDangerousSubstances" } +}; +static const unsigned int asn_MAP_DangerousGoodsBasic_enum2value_1[] = { + 18, /* corrosiveSubstances(18) */ + 0, /* explosives1(0) */ + 1, /* explosives2(1) */ + 2, /* explosives3(2) */ + 3, /* explosives4(3) */ + 4, /* explosives5(4) */ + 5, /* explosives6(5) */ + 6, /* flammableGases(6) */ + 9, /* flammableLiquids(9) */ + 10, /* flammableSolids(10) */ + 16, /* infectiousSubstances(16) */ + 19, /* miscellaneousDangerousSubstances(19) */ + 7, /* nonFlammableGases(7) */ + 14, /* organicPeroxides(14) */ + 13, /* oxidizingSubstances(13) */ + 17, /* radioactiveMaterial(17) */ + 12, /* substancesEmittingFlammableGasesUponContactWithWater(12) */ + 11, /* substancesLiableToSpontaneousCombustion(11) */ + 8, /* toxicGases(8) */ + 15 /* toxicSubstances(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1 = { + asn_MAP_DangerousGoodsBasic_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DangerousGoodsBasic_enum2value_1, /* N => "tag"; sorted by N */ + 20, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic = { + "DangerousGoodsBasic", + "DangerousGoodsBasic", + &asn_OP_NativeEnumerated, + asn_DEF_DangerousGoodsBasic_tags_1, + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousGoodsBasic_constr_1, &asn_PER_type_DangerousGoodsBasic_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DangerousGoodsBasic_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/DangerousGoodsExtended.c b/vcits/rtcmem/src/DangerousGoodsExtended.c new file mode 100644 index 0000000..10c895e --- /dev/null +++ b/vcits/rtcmem/src/DangerousGoodsExtended.c @@ -0,0 +1,243 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DangerousGoodsExtended.h" + +static int check_permitted_alphabet_7(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_unNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 9999)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_emergencyActionCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 24) + && !check_permitted_alphabet_7(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_companyName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const UTF8String_t *st = (const UTF8String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = UTF8String_length(st); + if((ssize_t)size < 0) { + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((size >= 1 && size <= 24)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_unNumber_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..9999) */, + -1}; +static asn_per_constraints_t asn_PER_memb_unNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 9999 } /* (0..9999) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..24)) */}; +static asn_per_constraints_t asn_PER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 5, 5, 1, 24 } /* (SIZE(1..24)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_companyName_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_companyName_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DangerousGoodsExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsBasic, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dangerousGoodsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, unNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_unNumber_constr_3, &asn_PER_memb_unNumber_constr_3, memb_unNumber_constraint_1 }, + 0, 0, /* No default value */ + "unNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, elevatedTemperature), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevatedTemperature" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, tunnelsRestricted), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tunnelsRestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, limitedQuantity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "limitedQuantity" + }, + { ATF_POINTER, 3, offsetof(struct DangerousGoodsExtended, emergencyActionCode), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_emergencyActionCode_constr_7, &asn_PER_memb_emergencyActionCode_constr_7, memb_emergencyActionCode_constraint_1 }, + 0, 0, /* No default value */ + "emergencyActionCode" + }, + { ATF_POINTER, 2, offsetof(struct DangerousGoodsExtended, phoneNumber), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhoneNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phoneNumber" + }, + { ATF_POINTER, 1, offsetof(struct DangerousGoodsExtended, companyName), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { &asn_OER_memb_companyName_constr_9, &asn_PER_memb_companyName_constr_9, memb_companyName_constraint_1 }, + 0, 0, /* No default value */ + "companyName" + }, +}; +static const int asn_MAP_DangerousGoodsExtended_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DangerousGoodsExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dangerousGoodsType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* unNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevatedTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tunnelsRestricted */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* limitedQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyActionCode */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* phoneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* companyName */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DangerousGoodsExtended_specs_1 = { + sizeof(struct DangerousGoodsExtended), + offsetof(struct DangerousGoodsExtended, _asn_ctx), + asn_MAP_DangerousGoodsExtended_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_DangerousGoodsExtended_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended = { + "DangerousGoodsExtended", + "DangerousGoodsExtended", + &asn_OP_SEQUENCE, + asn_DEF_DangerousGoodsExtended_tags_1, + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DangerousGoodsExtended_1, + 8, /* Elements count */ + &asn_SPC_DangerousGoodsExtended_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/DangerousSituationSubCauseCode.c b/vcits/rtcmem/src/DangerousSituationSubCauseCode.c new file mode 100644 index 0000000..8d9c224 --- /dev/null +++ b/vcits/rtcmem/src/DangerousSituationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DangerousSituationSubCauseCode.h" + +int +DangerousSituationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousSituationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode = { + "DangerousSituationSubCauseCode", + "DangerousSituationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousSituationSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousSituationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousSituationSubCauseCode_constr_1, &asn_PER_type_DangerousSituationSubCauseCode_constr_1, DangerousSituationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DataParameters.c b/vcits/rtcmem/src/DataParameters.c new file mode 100644 index 0000000..b5d30c6 --- /dev/null +++ b/vcits/rtcmem/src/DataParameters.c @@ -0,0 +1,274 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DataParameters.h" + +static int check_permitted_alphabet_2(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_3(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_4(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_5(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_processMethod_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_2(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_processAgency_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_3(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_lastCheckedDate_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_4(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_geoidUsed_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_5(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_processMethod_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_processMethod_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_processAgency_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_processAgency_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +asn_TYPE_member_t asn_MBR_DataParameters_1[] = { + { ATF_POINTER, 4, offsetof(struct DataParameters, processMethod), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_processMethod_constr_2, &asn_PER_memb_processMethod_constr_2, memb_processMethod_constraint_1 }, + 0, 0, /* No default value */ + "processMethod" + }, + { ATF_POINTER, 3, offsetof(struct DataParameters, processAgency), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_processAgency_constr_3, &asn_PER_memb_processAgency_constr_3, memb_processAgency_constraint_1 }, + 0, 0, /* No default value */ + "processAgency" + }, + { ATF_POINTER, 2, offsetof(struct DataParameters, lastCheckedDate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_lastCheckedDate_constr_4, &asn_PER_memb_lastCheckedDate_constr_4, memb_lastCheckedDate_constraint_1 }, + 0, 0, /* No default value */ + "lastCheckedDate" + }, + { ATF_POINTER, 1, offsetof(struct DataParameters, geoidUsed), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_geoidUsed_constr_5, &asn_PER_memb_geoidUsed_constr_5, memb_geoidUsed_constraint_1 }, + 0, 0, /* No default value */ + "geoidUsed" + }, +}; +static const int asn_MAP_DataParameters_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_DataParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DataParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* processMethod */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* processAgency */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lastCheckedDate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* geoidUsed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1 = { + sizeof(struct DataParameters), + offsetof(struct DataParameters, _asn_ctx), + asn_MAP_DataParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DataParameters_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DataParameters = { + "DataParameters", + "DataParameters", + &asn_OP_SEQUENCE, + asn_DEF_DataParameters_tags_1, + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + asn_DEF_DataParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DataParameters_1, + 4, /* Elements count */ + &asn_SPC_DataParameters_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/DeltaAltitude.c b/vcits/rtcmem/src/DeltaAltitude.c new file mode 100644 index 0000000..7b69dc0 --- /dev/null +++ b/vcits/rtcmem/src/DeltaAltitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DeltaAltitude.h" + +int +DeltaAltitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -12700 && value <= 12800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-12700..12800) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, -12700, 12800 } /* (-12700..12800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAltitude = { + "DeltaAltitude", + "DeltaAltitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaAltitude_tags_1, + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAltitude_constr_1, &asn_PER_type_DeltaAltitude_constr_1, DeltaAltitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DeltaAngle.c b/vcits/rtcmem/src/DeltaAngle.c new file mode 100644 index 0000000..5c37526 --- /dev/null +++ b/vcits/rtcmem/src/DeltaAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DeltaAngle.h" + +int +DeltaAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -150 && value <= 150)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-150..150) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -150, 150 } /* (-150..150) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAngle = { + "DeltaAngle", + "DeltaAngle", + &asn_OP_NativeInteger, + asn_DEF_DeltaAngle_tags_1, + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + asn_DEF_DeltaAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAngle_constr_1, &asn_PER_type_DeltaAngle_constr_1, DeltaAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DeltaLatitude.c b/vcits/rtcmem/src/DeltaLatitude.c new file mode 100644 index 0000000..630641d --- /dev/null +++ b/vcits/rtcmem/src/DeltaLatitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DeltaLatitude.h" + +int +DeltaLatitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLatitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLatitude = { + "DeltaLatitude", + "DeltaLatitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLatitude_tags_1, + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLatitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLatitude_constr_1, &asn_PER_type_DeltaLatitude_constr_1, DeltaLatitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DeltaLongitude.c b/vcits/rtcmem/src/DeltaLongitude.c new file mode 100644 index 0000000..15b3d2a --- /dev/null +++ b/vcits/rtcmem/src/DeltaLongitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DeltaLongitude.h" + +int +DeltaLongitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLongitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLongitude = { + "DeltaLongitude", + "DeltaLongitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLongitude_tags_1, + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLongitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLongitude_constr_1, &asn_PER_type_DeltaLongitude_constr_1, DeltaLongitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DeltaReferencePosition.c b/vcits/rtcmem/src/DeltaReferencePosition.c new file mode 100644 index 0000000..20c7a29 --- /dev/null +++ b/vcits/rtcmem/src/DeltaReferencePosition.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DeltaReferencePosition.h" + +asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLatitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLongitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLongitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaAltitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_DeltaReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DeltaReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* deltaAltitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1 = { + sizeof(struct DeltaReferencePosition), + offsetof(struct DeltaReferencePosition, _asn_ctx), + asn_MAP_DeltaReferencePosition_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition = { + "DeltaReferencePosition", + "DeltaReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_DeltaReferencePosition_tags_1, + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_DeltaReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DeltaReferencePosition_1, + 3, /* Elements count */ + &asn_SPC_DeltaReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/DeltaTime.c b/vcits/rtcmem/src/DeltaTime.c new file mode 100644 index 0000000..acef77a --- /dev/null +++ b/vcits/rtcmem/src/DeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DeltaTime.h" + +int +DeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -122 && value <= 121)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaTime_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-122..121) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -122, 121 } /* (-122..121) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaTime = { + "DeltaTime", + "DeltaTime", + &asn_OP_NativeInteger, + asn_DEF_DeltaTime_tags_1, + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + asn_DEF_DeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaTime_constr_1, &asn_PER_type_DeltaTime_constr_1, DeltaTime_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DescriptiveName.c b/vcits/rtcmem/src/DescriptiveName.c new file mode 100644 index 0000000..b09e607 --- /dev/null +++ b/vcits/rtcmem/src/DescriptiveName.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DescriptiveName.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +DescriptiveName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 63) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_DescriptiveName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DescriptiveName = { + "DescriptiveName", + "DescriptiveName", + &asn_OP_IA5String, + asn_DEF_DescriptiveName_tags_1, + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + asn_DEF_DescriptiveName_tags_1, /* Same as above */ + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + { &asn_OER_type_DescriptiveName_constr_1, &asn_PER_type_DescriptiveName_constr_1, DescriptiveName_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DigitalMap.c b/vcits/rtcmem/src/DigitalMap.c new file mode 100644 index 0000000..4e31cf3 --- /dev/null +++ b/vcits/rtcmem/src/DigitalMap.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DigitalMap.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_DigitalMap_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_DigitalMap_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DigitalMap_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DigitalMap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DigitalMap_specs_1 = { + sizeof(struct DigitalMap), + offsetof(struct DigitalMap, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DigitalMap = { + "DigitalMap", + "DigitalMap", + &asn_OP_SEQUENCE_OF, + asn_DEF_DigitalMap_tags_1, + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + asn_DEF_DigitalMap_tags_1, /* Same as above */ + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + { &asn_OER_type_DigitalMap_constr_1, &asn_PER_type_DigitalMap_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DigitalMap_1, + 1, /* Single element */ + &asn_SPC_DigitalMap_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/DriveDirection.c b/vcits/rtcmem/src/DriveDirection.c new file mode 100644 index 0000000..98cfb37 --- /dev/null +++ b/vcits/rtcmem/src/DriveDirection.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DriveDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DriveDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_DriveDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DriveDirection_value2enum_1[] = { + { 0, 7, "forward" }, + { 1, 8, "backward" }, + { 2, 11, "unavailable" } +}; +static const unsigned int asn_MAP_DriveDirection_enum2value_1[] = { + 1, /* backward(1) */ + 0, /* forward(0) */ + 2 /* unavailable(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_DriveDirection_specs_1 = { + asn_MAP_DriveDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DriveDirection_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DriveDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DriveDirection = { + "DriveDirection", + "DriveDirection", + &asn_OP_NativeEnumerated, + asn_DEF_DriveDirection_tags_1, + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + asn_DEF_DriveDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_DriveDirection_constr_1, &asn_PER_type_DriveDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DriveDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/DrivenLineOffsetLg.c b/vcits/rtcmem/src/DrivenLineOffsetLg.c new file mode 100644 index 0000000..126d819 --- /dev/null +++ b/vcits/rtcmem/src/DrivenLineOffsetLg.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DrivenLineOffsetLg.h" + +int +DrivenLineOffsetLg_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32767 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32767..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32767, 32767 } /* (-32767..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetLg_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg = { + "DrivenLineOffsetLg", + "DrivenLineOffsetLg", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetLg_tags_1, + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetLg_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivenLineOffsetLg_constr_1, &asn_PER_type_DrivenLineOffsetLg_constr_1, DrivenLineOffsetLg_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DrivenLineOffsetSm.c b/vcits/rtcmem/src/DrivenLineOffsetSm.c new file mode 100644 index 0000000..729bb12 --- /dev/null +++ b/vcits/rtcmem/src/DrivenLineOffsetSm.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DrivenLineOffsetSm.h" + +int +DrivenLineOffsetSm_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2047 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2047..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2047, 2047 } /* (-2047..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetSm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm = { + "DrivenLineOffsetSm", + "DrivenLineOffsetSm", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetSm_tags_1, + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetSm_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivenLineOffsetSm_constr_1, &asn_PER_type_DrivenLineOffsetSm_constr_1, DrivenLineOffsetSm_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/DrivingLaneStatus.c b/vcits/rtcmem/src/DrivingLaneStatus.c new file mode 100644 index 0000000..876c3c7 --- /dev/null +++ b/vcits/rtcmem/src/DrivingLaneStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "DrivingLaneStatus.h" + +int +DrivingLaneStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size >= 1 && size <= 13)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..13)) */}; +asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 13 } /* (SIZE(1..13)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivingLaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus = { + "DrivingLaneStatus", + "DrivingLaneStatus", + &asn_OP_BIT_STRING, + asn_DEF_DrivingLaneStatus_tags_1, + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + asn_DEF_DrivingLaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivingLaneStatus_constr_1, &asn_PER_type_DrivingLaneStatus_constr_1, DrivingLaneStatus_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Elevation.c b/vcits/rtcmem/src/Elevation.c new file mode 100644 index 0000000..a2acf6a --- /dev/null +++ b/vcits/rtcmem/src/Elevation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Elevation.h" + +int +Elevation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096 && value <= 61439)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Elevation_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-4096..61439) */, + -1}; +asn_per_constraints_t asn_PER_type_Elevation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -4096, 61439 } /* (-4096..61439) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Elevation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Elevation = { + "Elevation", + "Elevation", + &asn_OP_NativeInteger, + asn_DEF_Elevation_tags_1, + sizeof(asn_DEF_Elevation_tags_1) + /sizeof(asn_DEF_Elevation_tags_1[0]), /* 1 */ + asn_DEF_Elevation_tags_1, /* Same as above */ + sizeof(asn_DEF_Elevation_tags_1) + /sizeof(asn_DEF_Elevation_tags_1[0]), /* 1 */ + { &asn_OER_type_Elevation_constr_1, &asn_PER_type_Elevation_constr_1, Elevation_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/ElevationConfidence.c b/vcits/rtcmem/src/ElevationConfidence.c new file mode 100644 index 0000000..d318cf8 --- /dev/null +++ b/vcits/rtcmem/src/ElevationConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ElevationConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ElevationConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 11, "elev-500-00" }, + { 2, 11, "elev-200-00" }, + { 3, 11, "elev-100-00" }, + { 4, 11, "elev-050-00" }, + { 5, 11, "elev-020-00" }, + { 6, 11, "elev-010-00" }, + { 7, 11, "elev-005-00" }, + { 8, 11, "elev-002-00" }, + { 9, 11, "elev-001-00" }, + { 10, 11, "elev-000-50" }, + { 11, 11, "elev-000-20" }, + { 12, 11, "elev-000-10" }, + { 13, 11, "elev-000-05" }, + { 14, 11, "elev-000-02" }, + { 15, 11, "elev-000-01" } +}; +static const unsigned int asn_MAP_ElevationConfidence_enum2value_1[] = { + 15, /* elev-000-01(15) */ + 14, /* elev-000-02(14) */ + 13, /* elev-000-05(13) */ + 12, /* elev-000-10(12) */ + 11, /* elev-000-20(11) */ + 10, /* elev-000-50(10) */ + 9, /* elev-001-00(9) */ + 8, /* elev-002-00(8) */ + 7, /* elev-005-00(7) */ + 6, /* elev-010-00(6) */ + 5, /* elev-020-00(5) */ + 4, /* elev-050-00(4) */ + 3, /* elev-100-00(3) */ + 2, /* elev-200-00(2) */ + 1, /* elev-500-00(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1 = { + asn_MAP_ElevationConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ElevationConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ElevationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ElevationConfidence = { + "ElevationConfidence", + "ElevationConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ElevationConfidence_tags_1, + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + asn_DEF_ElevationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ElevationConfidence_constr_1, &asn_PER_type_ElevationConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ElevationConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/EmbarkationStatus.c b/vcits/rtcmem/src/EmbarkationStatus.c new file mode 100644 index 0000000..7c358f5 --- /dev/null +++ b/vcits/rtcmem/src/EmbarkationStatus.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "EmbarkationStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_EmbarkationStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus = { + "EmbarkationStatus", + "EmbarkationStatus", + &asn_OP_BOOLEAN, + asn_DEF_EmbarkationStatus_tags_1, + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + asn_DEF_EmbarkationStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/EmergencyPriority.c b/vcits/rtcmem/src/EmergencyPriority.c new file mode 100644 index 0000000..bb7b12d --- /dev/null +++ b/vcits/rtcmem/src/EmergencyPriority.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "EmergencyPriority.h" + +int +EmergencyPriority_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyPriority = { + "EmergencyPriority", + "EmergencyPriority", + &asn_OP_BIT_STRING, + asn_DEF_EmergencyPriority_tags_1, + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + asn_DEF_EmergencyPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyPriority_constr_1, &asn_PER_type_EmergencyPriority_constr_1, EmergencyPriority_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/EmergencyVehicleApproachingSubCauseCode.c b/vcits/rtcmem/src/EmergencyVehicleApproachingSubCauseCode.c new file mode 100644 index 0000000..79ff389 --- /dev/null +++ b/vcits/rtcmem/src/EmergencyVehicleApproachingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "EmergencyVehicleApproachingSubCauseCode.h" + +int +EmergencyVehicleApproachingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode = { + "EmergencyVehicleApproachingSubCauseCode", + "EmergencyVehicleApproachingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, &asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, EmergencyVehicleApproachingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/EmissionType.c b/vcits/rtcmem/src/EmissionType.c new file mode 100644 index 0000000..9b6eda6 --- /dev/null +++ b/vcits/rtcmem/src/EmissionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "EmissionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmissionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EmissionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EmissionType_value2enum_1[] = { + { 0, 5, "euro1" }, + { 1, 5, "euro2" }, + { 2, 5, "euro3" }, + { 3, 5, "euro4" }, + { 4, 5, "euro5" }, + { 5, 5, "euro6" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_EmissionType_enum2value_1[] = { + 0, /* euro1(0) */ + 1, /* euro2(1) */ + 2, /* euro3(2) */ + 3, /* euro4(3) */ + 4, /* euro5(4) */ + 5 /* euro6(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1 = { + asn_MAP_EmissionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EmissionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EmissionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmissionType = { + "EmissionType", + "EmissionType", + &asn_OP_NativeEnumerated, + asn_DEF_EmissionType_tags_1, + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + asn_DEF_EmissionType_tags_1, /* Same as above */ + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + { &asn_OER_type_EmissionType_constr_1, &asn_PER_type_EmissionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EmissionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/EnabledLaneList.c b/vcits/rtcmem/src/EnabledLaneList.c new file mode 100644 index 0000000..5e9636a --- /dev/null +++ b/vcits/rtcmem/src/EnabledLaneList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "EnabledLaneList.h" + +static asn_oer_constraints_t asn_OER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_EnabledLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EnabledLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1 = { + sizeof(struct EnabledLaneList), + offsetof(struct EnabledLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EnabledLaneList = { + "EnabledLaneList", + "EnabledLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EnabledLaneList_tags_1, + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + asn_DEF_EnabledLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_EnabledLaneList_constr_1, &asn_PER_type_EnabledLaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EnabledLaneList_1, + 1, /* Single element */ + &asn_SPC_EnabledLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/EnergyStorageType.c b/vcits/rtcmem/src/EnergyStorageType.c new file mode 100644 index 0000000..e643903 --- /dev/null +++ b/vcits/rtcmem/src/EnergyStorageType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "EnergyStorageType.h" + +int +EnergyStorageType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EnergyStorageType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EnergyStorageType = { + "EnergyStorageType", + "EnergyStorageType", + &asn_OP_BIT_STRING, + asn_DEF_EnergyStorageType_tags_1, + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + asn_DEF_EnergyStorageType_tags_1, /* Same as above */ + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + { &asn_OER_type_EnergyStorageType_constr_1, &asn_PER_type_EnergyStorageType_constr_1, EnergyStorageType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/EuVehicleCategoryCode.c b/vcits/rtcmem/src/EuVehicleCategoryCode.c new file mode 100644 index 0000000..ad0c79e --- /dev/null +++ b/vcits/rtcmem/src/EuVehicleCategoryCode.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "EuVehicleCategoryCode.h" + +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EuVehicleCategoryCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryL" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryM" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryN" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryO" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehilcleCategoryT), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehilcleCategoryT" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehilcleCategoryG), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehilcleCategoryG" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_EuVehicleCategoryCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* euVehicleCategoryL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* euVehicleCategoryM */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* euVehicleCategoryN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* euVehicleCategoryO */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* euVehilcleCategoryT */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* euVehilcleCategoryG */ +}; +static asn_CHOICE_specifics_t asn_SPC_EuVehicleCategoryCode_specs_1 = { + sizeof(struct EuVehicleCategoryCode), + offsetof(struct EuVehicleCategoryCode, _asn_ctx), + offsetof(struct EuVehicleCategoryCode, present), + sizeof(((struct EuVehicleCategoryCode *)0)->present), + asn_MAP_EuVehicleCategoryCode_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryCode = { + "EuVehicleCategoryCode", + "EuVehicleCategoryCode", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_EuVehicleCategoryCode_constr_1, &asn_PER_type_EuVehicleCategoryCode_constr_1, CHOICE_constraint }, + asn_MBR_EuVehicleCategoryCode_1, + 6, /* Elements count */ + &asn_SPC_EuVehicleCategoryCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/EuVehicleCategoryL.c b/vcits/rtcmem/src/EuVehicleCategoryL.c new file mode 100644 index 0000000..d424cfd --- /dev/null +++ b/vcits/rtcmem/src/EuVehicleCategoryL.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "EuVehicleCategoryL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryL_value2enum_1[] = { + { 0, 2, "l1" }, + { 1, 2, "l2" }, + { 2, 2, "l3" }, + { 3, 2, "l4" }, + { 4, 2, "l5" }, + { 5, 2, "l6" }, + { 6, 2, "l7" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryL_enum2value_1[] = { + 0, /* l1(0) */ + 1, /* l2(1) */ + 2, /* l3(2) */ + 3, /* l4(3) */ + 4, /* l5(4) */ + 5, /* l6(5) */ + 6 /* l7(6) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryL_specs_1 = { + asn_MAP_EuVehicleCategoryL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryL_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryL = { + "EuVehicleCategoryL", + "EuVehicleCategoryL", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryL_tags_1, + sizeof(asn_DEF_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryL_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryL_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryL_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryL_constr_1, &asn_PER_type_EuVehicleCategoryL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryL_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/EuVehicleCategoryM.c b/vcits/rtcmem/src/EuVehicleCategoryM.c new file mode 100644 index 0000000..8f171e0 --- /dev/null +++ b/vcits/rtcmem/src/EuVehicleCategoryM.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "EuVehicleCategoryM.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryM_value2enum_1[] = { + { 0, 2, "m1" }, + { 1, 2, "m2" }, + { 2, 2, "m3" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryM_enum2value_1[] = { + 0, /* m1(0) */ + 1, /* m2(1) */ + 2 /* m3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryM_specs_1 = { + asn_MAP_EuVehicleCategoryM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryM_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryM = { + "EuVehicleCategoryM", + "EuVehicleCategoryM", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryM_tags_1, + sizeof(asn_DEF_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryM_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryM_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryM_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryM_constr_1, &asn_PER_type_EuVehicleCategoryM_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/EuVehicleCategoryN.c b/vcits/rtcmem/src/EuVehicleCategoryN.c new file mode 100644 index 0000000..250965e --- /dev/null +++ b/vcits/rtcmem/src/EuVehicleCategoryN.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "EuVehicleCategoryN.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryN_value2enum_1[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryN_enum2value_1[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryN_specs_1 = { + asn_MAP_EuVehicleCategoryN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryN_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryN = { + "EuVehicleCategoryN", + "EuVehicleCategoryN", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryN_tags_1, + sizeof(asn_DEF_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryN_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryN_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryN_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryN_constr_1, &asn_PER_type_EuVehicleCategoryN_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryN_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/EuVehicleCategoryO.c b/vcits/rtcmem/src/EuVehicleCategoryO.c new file mode 100644 index 0000000..5328b52 --- /dev/null +++ b/vcits/rtcmem/src/EuVehicleCategoryO.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "EuVehicleCategoryO.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryO_value2enum_1[] = { + { 0, 2, "o1" }, + { 1, 2, "o2" }, + { 2, 2, "o3" }, + { 3, 2, "o4" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryO_enum2value_1[] = { + 0, /* o1(0) */ + 1, /* o2(1) */ + 2, /* o3(2) */ + 3 /* o4(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryO_specs_1 = { + asn_MAP_EuVehicleCategoryO_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryO_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryO = { + "EuVehicleCategoryO", + "EuVehicleCategoryO", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryO_tags_1, + sizeof(asn_DEF_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryO_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryO_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryO_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryO_constr_1, &asn_PER_type_EuVehicleCategoryO_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryO_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/EventHistory.c b/vcits/rtcmem/src/EventHistory.c new file mode 100644 index 0000000..65c147e --- /dev/null +++ b/vcits/rtcmem/src/EventHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "EventHistory.h" + +#include "EventPoint.h" +static asn_oer_constraints_t asn_OER_type_EventHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..23)) */}; +static asn_per_constraints_t asn_PER_type_EventHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (SIZE(1..23)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EventHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EventPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EventHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_EventHistory_specs_1 = { + sizeof(struct EventHistory), + offsetof(struct EventHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EventHistory = { + "EventHistory", + "EventHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_EventHistory_tags_1, + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + asn_DEF_EventHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_EventHistory_constr_1, &asn_PER_type_EventHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EventHistory_1, + 1, /* Single element */ + &asn_SPC_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/EventPoint.c b/vcits/rtcmem/src/EventPoint.c new file mode 100644 index 0000000..4e44eb0 --- /dev/null +++ b/vcits/rtcmem/src/EventPoint.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "EventPoint.h" + +asn_TYPE_member_t asn_MBR_EventPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventPosition" + }, + { ATF_POINTER, 1, offsetof(struct EventPoint, eventDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InformationQuality, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "informationQuality" + }, +}; +static const int asn_MAP_EventPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_EventPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EventPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* informationQuality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1 = { + sizeof(struct EventPoint), + offsetof(struct EventPoint, _asn_ctx), + asn_MAP_EventPoint_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_EventPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EventPoint = { + "EventPoint", + "EventPoint", + &asn_OP_SEQUENCE, + asn_DEF_EventPoint_tags_1, + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + asn_DEF_EventPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EventPoint_1, + 3, /* Elements count */ + &asn_SPC_EventPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ExceptionalCondition.c b/vcits/rtcmem/src/ExceptionalCondition.c new file mode 100644 index 0000000..5c23bb5 --- /dev/null +++ b/vcits/rtcmem/src/ExceptionalCondition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ExceptionalCondition.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExceptionalCondition_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ExceptionalCondition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ExceptionalCondition_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 23, "publicTransportPriority" }, + { 2, 24, "emergencyVehiclePriority" }, + { 3, 13, "trainPriority" }, + { 4, 10, "bridgeOpen" }, + { 5, 13, "vehicleHeight" }, + { 6, 7, "weather" }, + { 7, 10, "trafficJam" }, + { 8, 13, "tunnelClosure" }, + { 9, 14, "meteringActive" }, + { 10, 13, "truckPriority" }, + { 11, 22, "bicyclePlatoonPriority" }, + { 12, 22, "vehiclePlatoonPriority" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ExceptionalCondition_enum2value_1[] = { + 11, /* bicyclePlatoonPriority(11) */ + 4, /* bridgeOpen(4) */ + 2, /* emergencyVehiclePriority(2) */ + 9, /* meteringActive(9) */ + 1, /* publicTransportPriority(1) */ + 7, /* trafficJam(7) */ + 3, /* trainPriority(3) */ + 10, /* truckPriority(10) */ + 8, /* tunnelClosure(8) */ + 0, /* unknown(0) */ + 5, /* vehicleHeight(5) */ + 12, /* vehiclePlatoonPriority(12) */ + 6 /* weather(6) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ExceptionalCondition_specs_1 = { + asn_MAP_ExceptionalCondition_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ExceptionalCondition_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ExceptionalCondition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExceptionalCondition = { + "ExceptionalCondition", + "ExceptionalCondition", + &asn_OP_NativeEnumerated, + asn_DEF_ExceptionalCondition_tags_1, + sizeof(asn_DEF_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ExceptionalCondition_tags_1[0]), /* 1 */ + asn_DEF_ExceptionalCondition_tags_1, /* Same as above */ + sizeof(asn_DEF_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ExceptionalCondition_tags_1[0]), /* 1 */ + { &asn_OER_type_ExceptionalCondition_constr_1, &asn_PER_type_ExceptionalCondition_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ExceptionalCondition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ExteriorLights.c b/vcits/rtcmem/src/ExteriorLights.c new file mode 100644 index 0000000..fc31a81 --- /dev/null +++ b/vcits/rtcmem/src/ExteriorLights.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ExteriorLights.h" + +int +ExteriorLights_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_ExteriorLights_tags_1, + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + { &asn_OER_type_ExteriorLights_constr_1, &asn_PER_type_ExteriorLights_constr_1, ExteriorLights_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/FreightContainerData.c b/vcits/rtcmem/src/FreightContainerData.c new file mode 100644 index 0000000..2bee93f --- /dev/null +++ b/vcits/rtcmem/src/FreightContainerData.c @@ -0,0 +1,482 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "FreightContainerData.h" + +static int +memb_ownerCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_serialNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1000000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_checkDigit_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_length_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 2000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_height_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_width_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 200 && value <= 300)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_containerTypeCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_maximumGrossMass_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 19 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_tareMass_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 99)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_ownerCode_constr_2 CC_NOTUSED = { + { 0, 0 }, + 19 /* (SIZE(19..19)) */}; +static asn_per_constraints_t asn_PER_memb_ownerCode_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 19, 19 } /* (SIZE(19..19)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_serialNumber_constr_3 CC_NOTUSED = { + { 4, 1 } /* (0..1000000) */, + -1}; +static asn_per_constraints_t asn_PER_memb_serialNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 1000000 } /* (0..1000000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_checkDigit_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..10) */, + -1}; +static asn_per_constraints_t asn_PER_memb_checkDigit_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 10 } /* (0..10) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_length_constr_5 CC_NOTUSED = { + { 2, 1 } /* (1..2000) */, + -1}; +static asn_per_constraints_t asn_PER_memb_length_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 1, 2000 } /* (1..2000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_height_constr_6 CC_NOTUSED = { + { 2, 1 } /* (1..500) */, + -1}; +static asn_per_constraints_t asn_PER_memb_height_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 500 } /* (1..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_width_constr_7 CC_NOTUSED = { + { 2, 1 } /* (200..300) */, + -1}; +static asn_per_constraints_t asn_PER_memb_width_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 200, 300 } /* (200..300) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_containerTypeCode_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_containerTypeCode_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_maximumGrossMass_constr_9 CC_NOTUSED = { + { 2, 1 } /* (19..500) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maximumGrossMass_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 19, 500 } /* (19..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_tareMass_constr_10 CC_NOTUSED = { + { 1, 1 } /* (0..99) */, + -1}; +static asn_per_constraints_t asn_PER_memb_tareMass_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 99 } /* (0..99) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_fill_constr_11 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_FreightContainerData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, ownerCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_ownerCode_constr_2, &asn_PER_memb_ownerCode_constr_2, memb_ownerCode_constraint_1 }, + 0, 0, /* No default value */ + "ownerCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, serialNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_serialNumber_constr_3, &asn_PER_memb_serialNumber_constr_3, memb_serialNumber_constraint_1 }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, checkDigit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_checkDigit_constr_4, &asn_PER_memb_checkDigit_constr_4, memb_checkDigit_constraint_1 }, + 0, 0, /* No default value */ + "checkDigit" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, length), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_length_constr_5, &asn_PER_memb_length_constr_5, memb_length_constraint_1 }, + 0, 0, /* No default value */ + "length" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, height), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_height_constr_6, &asn_PER_memb_height_constr_6, memb_height_constraint_1 }, + 0, 0, /* No default value */ + "height" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, width), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_width_constr_7, &asn_PER_memb_width_constr_7, memb_width_constraint_1 }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, containerTypeCode), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_containerTypeCode_constr_8, &asn_PER_memb_containerTypeCode_constr_8, memb_containerTypeCode_constraint_1 }, + 0, 0, /* No default value */ + "containerTypeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, maximumGrossMass), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maximumGrossMass_constr_9, &asn_PER_memb_maximumGrossMass_constr_9, memb_maximumGrossMass_constraint_1 }, + 0, 0, /* No default value */ + "maximumGrossMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, tareMass), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_tareMass_constr_10, &asn_PER_memb_tareMass_constr_10, memb_tareMass_constraint_1 }, + 0, 0, /* No default value */ + "tareMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, fill), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_11, &asn_PER_memb_fill_constr_11, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_FreightContainerData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FreightContainerData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ownerCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serialNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* checkDigit */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* length */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* height */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* width */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* containerTypeCode */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* maximumGrossMass */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* tareMass */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* fill */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FreightContainerData_specs_1 = { + sizeof(struct FreightContainerData), + offsetof(struct FreightContainerData, _asn_ctx), + asn_MAP_FreightContainerData_tag2el_1, + 10, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FreightContainerData = { + "FreightContainerData", + "FreightContainerData", + &asn_OP_SEQUENCE, + asn_DEF_FreightContainerData_tags_1, + sizeof(asn_DEF_FreightContainerData_tags_1) + /sizeof(asn_DEF_FreightContainerData_tags_1[0]), /* 1 */ + asn_DEF_FreightContainerData_tags_1, /* Same as above */ + sizeof(asn_DEF_FreightContainerData_tags_1) + /sizeof(asn_DEF_FreightContainerData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/FuelType.c b/vcits/rtcmem/src/FuelType.c new file mode 100644 index 0000000..16e8d43 --- /dev/null +++ b/vcits/rtcmem/src/FuelType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "FuelType.h" + +int +FuelType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FuelType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_FuelType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_FuelType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FuelType = { + "FuelType", + "FuelType", + &asn_OP_NativeInteger, + asn_DEF_FuelType_tags_1, + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + asn_DEF_FuelType_tags_1, /* Same as above */ + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + { &asn_OER_type_FuelType_constr_1, &asn_PER_type_FuelType_constr_1, FuelType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/FullPositionVector.c b/vcits/rtcmem/src/FullPositionVector.c new file mode 100644 index 0000000..733c7c2 --- /dev/null +++ b/vcits/rtcmem/src/FullPositionVector.c @@ -0,0 +1,147 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "FullPositionVector.h" + +#include "DDateTime.h" +#include "TransmissionAndSpeed.h" +#include "PositionalAccuracy.h" +#include "PositionConfidenceSet.h" +#include "SpeedandHeadingandThrottleConfidence.h" +asn_TYPE_member_t asn_MBR_FullPositionVector_1[] = { + { ATF_POINTER, 1, offsetof(struct FullPositionVector, utcTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDateTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "utcTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "long" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, lat), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_POINTER, 7, offsetof(struct FullPositionVector, elevation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Elevation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 6, offsetof(struct FullPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 5, offsetof(struct FullPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct FullPositionVector, posAccuracy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionalAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posAccuracy" + }, + { ATF_POINTER, 3, offsetof(struct FullPositionVector, timeConfidence), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeConfidence" + }, + { ATF_POINTER, 2, offsetof(struct FullPositionVector, posConfidence), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidenceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posConfidence" + }, + { ATF_POINTER, 1, offsetof(struct FullPositionVector, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedandHeadingandThrottleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const int asn_MAP_FullPositionVector_oms_1[] = { 0, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_FullPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FullPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* utcTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* posAccuracy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* timeConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* posConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1 = { + sizeof(struct FullPositionVector), + offsetof(struct FullPositionVector, _asn_ctx), + asn_MAP_FullPositionVector_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_FullPositionVector_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FullPositionVector = { + "FullPositionVector", + "FullPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_FullPositionVector_tags_1, + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + asn_DEF_FullPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FullPositionVector_1, + 10, /* Elements count */ + &asn_SPC_FullPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/GNSSstatus.c b/vcits/rtcmem/src/GNSSstatus.c new file mode 100644 index 0000000..eabeb4b --- /dev/null +++ b/vcits/rtcmem/src/GNSSstatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "GNSSstatus.h" + +int +GNSSstatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GNSSstatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNSSstatus = { + "GNSSstatus", + "GNSSstatus", + &asn_OP_BIT_STRING, + asn_DEF_GNSSstatus_tags_1, + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + asn_DEF_GNSSstatus_tags_1, /* Same as above */ + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + { &asn_OER_type_GNSSstatus_constr_1, &asn_PER_type_GNSSstatus_constr_1, GNSSstatus_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/GenericLane.c b/vcits/rtcmem/src/GenericLane.c new file mode 100644 index 0000000..b40d4b4 --- /dev/null +++ b/vcits/rtcmem/src/GenericLane.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "GenericLane.h" + +#include "ConnectsToList.h" +#include "OverlayLaneList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct GenericLane__regional), + offsetof(struct GenericLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { &asn_OER_type_regional_constr_11, &asn_PER_type_regional_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GenericLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, ingressApproach), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ingressApproach" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, egressApproach), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "egressApproach" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneAttributes), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneAttributes" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, maneuvers), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuvers" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, nodeList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeListXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeList" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, connectsTo), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectsToList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectsTo" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, overlays), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OverlayLaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "overlays" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { &asn_OER_memb_regional_constr_11, &asn_PER_memb_regional_constr_11, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_GenericLane_oms_1[] = { 1, 2, 3, 5, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_GenericLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GenericLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ingressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* egressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAttributes */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maneuvers */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* nodeList */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* connectsTo */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* overlays */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1 = { + sizeof(struct GenericLane), + offsetof(struct GenericLane, _asn_ctx), + asn_MAP_GenericLane_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_GenericLane_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GenericLane = { + "GenericLane", + "GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_GenericLane_tags_1, + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + asn_DEF_GenericLane_tags_1, /* Same as above */ + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GenericLane_1, + 10, /* Elements count */ + &asn_SPC_GenericLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/GeoGraphicalLimit.c b/vcits/rtcmem/src/GeoGraphicalLimit.c new file mode 100644 index 0000000..b6b6206 --- /dev/null +++ b/vcits/rtcmem/src/GeoGraphicalLimit.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "GeoGraphicalLimit.h" + +int +GeoGraphicalLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GeoGraphicalLimit_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_GeoGraphicalLimit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GeoGraphicalLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GeoGraphicalLimit = { + "GeoGraphicalLimit", + "GeoGraphicalLimit", + &asn_OP_BIT_STRING, + asn_DEF_GeoGraphicalLimit_tags_1, + sizeof(asn_DEF_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_GeoGraphicalLimit_tags_1[0]), /* 1 */ + asn_DEF_GeoGraphicalLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_GeoGraphicalLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_GeoGraphicalLimit_constr_1, &asn_PER_type_GeoGraphicalLimit_constr_1, GeoGraphicalLimit_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/HardShoulderStatus.c b/vcits/rtcmem/src/HardShoulderStatus.c new file mode 100644 index 0000000..0a9bdc4 --- /dev/null +++ b/vcits/rtcmem/src/HardShoulderStatus.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "HardShoulderStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HardShoulderStatus_value2enum_1[] = { + { 0, 20, "availableForStopping" }, + { 1, 6, "closed" }, + { 2, 19, "availableForDriving" } +}; +static const unsigned int asn_MAP_HardShoulderStatus_enum2value_1[] = { + 2, /* availableForDriving(2) */ + 0, /* availableForStopping(0) */ + 1 /* closed(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1 = { + asn_MAP_HardShoulderStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HardShoulderStatus_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HardShoulderStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus = { + "HardShoulderStatus", + "HardShoulderStatus", + &asn_OP_NativeEnumerated, + asn_DEF_HardShoulderStatus_tags_1, + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + asn_DEF_HardShoulderStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_HardShoulderStatus_constr_1, &asn_PER_type_HardShoulderStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HardShoulderStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c b/vcits/rtcmem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..618161d --- /dev/null +++ b/vcits/rtcmem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "HazardousLocation-AnimalOnTheRoadSubCauseCode.h" + +int +HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode = { + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/HazardousLocation-DangerousCurveSubCauseCode.c b/vcits/rtcmem/src/HazardousLocation-DangerousCurveSubCauseCode.c new file mode 100644 index 0000000..8a4e5b7 --- /dev/null +++ b/vcits/rtcmem/src/HazardousLocation-DangerousCurveSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "HazardousLocation-DangerousCurveSubCauseCode.h" + +int +HazardousLocation_DangerousCurveSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode = { + "HazardousLocation-DangerousCurveSubCauseCode", + "HazardousLocation-DangerousCurveSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, HazardousLocation_DangerousCurveSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c b/vcits/rtcmem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..c8abe40 --- /dev/null +++ b/vcits/rtcmem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" + +int +HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode = { + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/HazardousLocation-SurfaceConditionSubCauseCode.c b/vcits/rtcmem/src/HazardousLocation-SurfaceConditionSubCauseCode.c new file mode 100644 index 0000000..55c7c4b --- /dev/null +++ b/vcits/rtcmem/src/HazardousLocation-SurfaceConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "HazardousLocation-SurfaceConditionSubCauseCode.h" + +int +HazardousLocation_SurfaceConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode = { + "HazardousLocation-SurfaceConditionSubCauseCode", + "HazardousLocation-SurfaceConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, HazardousLocation_SurfaceConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Heading.c b/vcits/rtcmem/src/Heading.c new file mode 100644 index 0000000..808f171 --- /dev/null +++ b/vcits/rtcmem/src/Heading.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Heading.h" + +static asn_TYPE_member_t asn_MBR_Heading_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Heading_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* headingValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* headingConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Heading_specs_1 = { + sizeof(struct Heading), + offsetof(struct Heading, _asn_ctx), + asn_MAP_Heading_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Heading = { + "Heading", + "Heading", + &asn_OP_SEQUENCE, + asn_DEF_Heading_tags_1, + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + asn_DEF_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Heading_1, + 2, /* Elements count */ + &asn_SPC_Heading_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/HeadingConfidence.c b/vcits/rtcmem/src/HeadingConfidence.c new file mode 100644 index 0000000..208f698 --- /dev/null +++ b/vcits/rtcmem/src/HeadingConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "HeadingConfidence.h" + +int +HeadingConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeInteger, + asn_DEF_HeadingConfidence_tags_1, + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidence_constr_1, &asn_PER_type_HeadingConfidence_constr_1, HeadingConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/HeadingConfidenceDSRC.c b/vcits/rtcmem/src/HeadingConfidenceDSRC.c new file mode 100644 index 0000000..cbcafb0 --- /dev/null +++ b/vcits/rtcmem/src/HeadingConfidenceDSRC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "HeadingConfidenceDSRC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidenceDSRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidenceDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HeadingConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec10deg" }, + { 2, 9, "prec05deg" }, + { 3, 9, "prec01deg" }, + { 4, 10, "prec0-1deg" }, + { 5, 11, "prec0-05deg" }, + { 6, 11, "prec0-01deg" }, + { 7, 13, "prec0-0125deg" } +}; +static const unsigned int asn_MAP_HeadingConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-0125deg(7) */ + 6, /* prec0-01deg(6) */ + 5, /* prec0-05deg(5) */ + 4, /* prec0-1deg(4) */ + 3, /* prec01deg(3) */ + 2, /* prec05deg(2) */ + 1, /* prec10deg(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HeadingConfidenceDSRC_specs_1 = { + asn_MAP_HeadingConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HeadingConfidenceDSRC_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidenceDSRC = { + "HeadingConfidenceDSRC", + "HeadingConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_HeadingConfidenceDSRC_tags_1, + sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidenceDSRC_constr_1, &asn_PER_type_HeadingConfidenceDSRC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HeadingConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/HeadingDSRC.c b/vcits/rtcmem/src/HeadingDSRC.c new file mode 100644 index 0000000..35ff1e1 --- /dev/null +++ b/vcits/rtcmem/src/HeadingDSRC.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "HeadingDSRC.h" + +int +HeadingDSRC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 28800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingDSRC_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingDSRC = { + "HeadingDSRC", + "HeadingDSRC", + &asn_OP_NativeInteger, + asn_DEF_HeadingDSRC_tags_1, + sizeof(asn_DEF_HeadingDSRC_tags_1) + /sizeof(asn_DEF_HeadingDSRC_tags_1[0]), /* 1 */ + asn_DEF_HeadingDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingDSRC_tags_1) + /sizeof(asn_DEF_HeadingDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingDSRC_constr_1, &asn_PER_type_HeadingDSRC_constr_1, HeadingDSRC_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/HeadingValue.c b/vcits/rtcmem/src/HeadingValue.c new file mode 100644 index 0000000..5174d92 --- /dev/null +++ b/vcits/rtcmem/src/HeadingValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "HeadingValue.h" + +int +HeadingValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3601)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3601) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingValue = { + "HeadingValue", + "HeadingValue", + &asn_OP_NativeInteger, + asn_DEF_HeadingValue_tags_1, + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + asn_DEF_HeadingValue_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingValue_constr_1, &asn_PER_type_HeadingValue_constr_1, HeadingValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/HeightLonCarr.c b/vcits/rtcmem/src/HeightLonCarr.c new file mode 100644 index 0000000..7632df6 --- /dev/null +++ b/vcits/rtcmem/src/HeightLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "HeightLonCarr.h" + +int +HeightLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..100) */, + -1}; +static asn_per_constraints_t asn_PER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 100 } /* (1..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeightLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeightLonCarr = { + "HeightLonCarr", + "HeightLonCarr", + &asn_OP_NativeInteger, + asn_DEF_HeightLonCarr_tags_1, + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + asn_DEF_HeightLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_HeightLonCarr_constr_1, &asn_PER_type_HeightLonCarr_constr_1, HeightLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/HumanPresenceOnTheRoadSubCauseCode.c b/vcits/rtcmem/src/HumanPresenceOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..1ef82fb --- /dev/null +++ b/vcits/rtcmem/src/HumanPresenceOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "HumanPresenceOnTheRoadSubCauseCode.h" + +int +HumanPresenceOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode = { + "HumanPresenceOnTheRoadSubCauseCode", + "HumanPresenceOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, HumanPresenceOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/HumanProblemSubCauseCode.c b/vcits/rtcmem/src/HumanProblemSubCauseCode.c new file mode 100644 index 0000000..50c085a --- /dev/null +++ b/vcits/rtcmem/src/HumanProblemSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "HumanProblemSubCauseCode.h" + +int +HumanProblemSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanProblemSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode = { + "HumanProblemSubCauseCode", + "HumanProblemSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanProblemSubCauseCode_tags_1, + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanProblemSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanProblemSubCauseCode_constr_1, &asn_PER_type_HumanProblemSubCauseCode_constr_1, HumanProblemSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/InformationQuality.c b/vcits/rtcmem/src/InformationQuality.c new file mode 100644 index 0000000..5663579 --- /dev/null +++ b/vcits/rtcmem/src/InformationQuality.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "InformationQuality.h" + +int +InformationQuality_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_InformationQuality_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_InformationQuality_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_InformationQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InformationQuality = { + "InformationQuality", + "InformationQuality", + &asn_OP_NativeInteger, + asn_DEF_InformationQuality_tags_1, + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + asn_DEF_InformationQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + { &asn_OER_type_InformationQuality_constr_1, &asn_PER_type_InformationQuality_constr_1, InformationQuality_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/IntersectionAccessPoint.c b/vcits/rtcmem/src/IntersectionAccessPoint.c new file mode 100644 index 0000000..0ac7fd4 --- /dev/null +++ b/vcits/rtcmem/src/IntersectionAccessPoint.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "IntersectionAccessPoint.h" + +static asn_oer_constraints_t asn_OER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.approach), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "approach" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.connection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionAccessPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* approach */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* connection */ +}; +asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1 = { + sizeof(struct IntersectionAccessPoint), + offsetof(struct IntersectionAccessPoint, _asn_ctx), + offsetof(struct IntersectionAccessPoint, present), + sizeof(((struct IntersectionAccessPoint *)0)->present), + asn_MAP_IntersectionAccessPoint_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint = { + "IntersectionAccessPoint", + "IntersectionAccessPoint", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_IntersectionAccessPoint_constr_1, &asn_PER_type_IntersectionAccessPoint_constr_1, CHOICE_constraint }, + asn_MBR_IntersectionAccessPoint_1, + 3, /* Elements count */ + &asn_SPC_IntersectionAccessPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/IntersectionGeometry.c b/vcits/rtcmem/src/IntersectionGeometry.c new file mode 100644 index 0000000..38bb3fd --- /dev/null +++ b/vcits/rtcmem/src/IntersectionGeometry.c @@ -0,0 +1,214 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "IntersectionGeometry.h" + +#include "SpeedLimitList.h" +#include "PreemptPriorityList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionGeometry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct IntersectionGeometry__regional), + offsetof(struct IntersectionGeometry__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, laneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneSet" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, preemptPriorityData), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PreemptPriorityList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "preemptPriorityData" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionGeometry_oms_1[] = { 0, 4, 5, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionGeometry_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* laneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* preemptPriorityData */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1 = { + sizeof(struct IntersectionGeometry), + offsetof(struct IntersectionGeometry, _asn_ctx), + asn_MAP_IntersectionGeometry_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_IntersectionGeometry_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry = { + "IntersectionGeometry", + "IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionGeometry_tags_1, + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometry_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionGeometry_1, + 9, /* Elements count */ + &asn_SPC_IntersectionGeometry_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/IntersectionGeometryList.c b/vcits/rtcmem/src/IntersectionGeometryList.c new file mode 100644 index 0000000..f166c65 --- /dev/null +++ b/vcits/rtcmem/src/IntersectionGeometryList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "IntersectionGeometryList.h" + +#include "IntersectionGeometry.h" +static asn_oer_constraints_t asn_OER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionGeometry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometryList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1 = { + sizeof(struct IntersectionGeometryList), + offsetof(struct IntersectionGeometryList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList = { + "IntersectionGeometryList", + "IntersectionGeometryList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionGeometryList_tags_1, + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometryList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionGeometryList_constr_1, &asn_PER_type_IntersectionGeometryList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntersectionGeometryList_1, + 1, /* Single element */ + &asn_SPC_IntersectionGeometryList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/IntersectionID.c b/vcits/rtcmem/src/IntersectionID.c new file mode 100644 index 0000000..d420781 --- /dev/null +++ b/vcits/rtcmem/src/IntersectionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "IntersectionID.h" + +int +IntersectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntersectionID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_IntersectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IntersectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionID = { + "IntersectionID", + "IntersectionID", + &asn_OP_NativeInteger, + asn_DEF_IntersectionID_tags_1, + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionID_constr_1, &asn_PER_type_IntersectionID_constr_1, IntersectionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/IntersectionReferenceID.c b/vcits/rtcmem/src/IntersectionReferenceID.c new file mode 100644 index 0000000..819b604 --- /dev/null +++ b/vcits/rtcmem/src/IntersectionReferenceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "IntersectionReferenceID.h" + +asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_IntersectionReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1 = { + sizeof(struct IntersectionReferenceID), + offsetof(struct IntersectionReferenceID, _asn_ctx), + asn_MAP_IntersectionReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_IntersectionReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID = { + "IntersectionReferenceID", + "IntersectionReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionReferenceID_tags_1, + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionReferenceID_1, + 2, /* Elements count */ + &asn_SPC_IntersectionReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/IntersectionState-addGrpC.c b/vcits/rtcmem/src/IntersectionState-addGrpC.c new file mode 100644 index 0000000..e222f45 --- /dev/null +++ b/vcits/rtcmem/src/IntersectionState-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "IntersectionState-addGrpC.h" + +#include "PrioritizationResponseList.h" +asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState_addGrpC, activePrioritizations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "activePrioritizations" + }, +}; +static const int asn_MAP_IntersectionState_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* activePrioritizations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1 = { + sizeof(struct IntersectionState_addGrpC), + offsetof(struct IntersectionState_addGrpC, _asn_ctx), + asn_MAP_IntersectionState_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_IntersectionState_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC = { + "IntersectionState-addGrpC", + "IntersectionState-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_addGrpC_tags_1, + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionState_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_IntersectionState_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/IntersectionState.c b/vcits/rtcmem/src/IntersectionState.c new file mode 100644 index 0000000..3eda722 --- /dev/null +++ b/vcits/rtcmem/src/IntersectionState.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "IntersectionState.h" + +#include "EnabledLaneList.h" +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct IntersectionState__regional), + offsetof(struct IntersectionState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { &asn_OER_type_regional_constr_11, &asn_PER_type_regional_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionState_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStatusObject, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 3, offsetof(struct IntersectionState, moy), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "moy" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, enabledLanes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EnabledLaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabledLanes" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, states), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "states" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { &asn_OER_memb_regional_constr_11, &asn_PER_memb_regional_constr_11, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionState_oms_1[] = { 0, 4, 5, 6, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* moy */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* enabledLanes */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* states */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1 = { + sizeof(struct IntersectionState), + offsetof(struct IntersectionState, _asn_ctx), + asn_MAP_IntersectionState_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_IntersectionState_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState = { + "IntersectionState", + "IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_tags_1, + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionState_1, + 10, /* Elements count */ + &asn_SPC_IntersectionState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/IntersectionStateList.c b/vcits/rtcmem/src/IntersectionStateList.c new file mode 100644 index 0000000..3136455 --- /dev/null +++ b/vcits/rtcmem/src/IntersectionStateList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "IntersectionStateList.h" + +#include "IntersectionState.h" +static asn_oer_constraints_t asn_OER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1 = { + sizeof(struct IntersectionStateList), + offsetof(struct IntersectionStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStateList = { + "IntersectionStateList", + "IntersectionStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionStateList_tags_1, + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionStateList_constr_1, &asn_PER_type_IntersectionStateList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntersectionStateList_1, + 1, /* Single element */ + &asn_SPC_IntersectionStateList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/IntersectionStatusObject.c b/vcits/rtcmem/src/IntersectionStatusObject.c new file mode 100644 index 0000000..19823cc --- /dev/null +++ b/vcits/rtcmem/src/IntersectionStatusObject.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "IntersectionStatusObject.h" + +int +IntersectionStatusObject_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStatusObject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject = { + "IntersectionStatusObject", + "IntersectionStatusObject", + &asn_OP_BIT_STRING, + asn_DEF_IntersectionStatusObject_tags_1, + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStatusObject_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionStatusObject_constr_1, &asn_PER_type_IntersectionStatusObject_constr_1, IntersectionStatusObject_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Iso3833VehicleType.c b/vcits/rtcmem/src/Iso3833VehicleType.c new file mode 100644 index 0000000..ba97576 --- /dev/null +++ b/vcits/rtcmem/src/Iso3833VehicleType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Iso3833VehicleType.h" + +int +Iso3833VehicleType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Iso3833VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType = { + "Iso3833VehicleType", + "Iso3833VehicleType", + &asn_OP_NativeInteger, + asn_DEF_Iso3833VehicleType_tags_1, + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + asn_DEF_Iso3833VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + { &asn_OER_type_Iso3833VehicleType_constr_1, &asn_PER_type_Iso3833VehicleType_constr_1, Iso3833VehicleType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/IssuerIdentifier.c b/vcits/rtcmem/src/IssuerIdentifier.c new file mode 100644 index 0000000..ffa6fc2 --- /dev/null +++ b/vcits/rtcmem/src/IssuerIdentifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "IssuerIdentifier.h" + +int +IssuerIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IssuerIdentifier_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_IssuerIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IssuerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IssuerIdentifier = { + "IssuerIdentifier", + "IssuerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_IssuerIdentifier_tags_1, + sizeof(asn_DEF_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_IssuerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_IssuerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_IssuerIdentifier_tags_1[0]), /* 1 */ + { &asn_OER_type_IssuerIdentifier_constr_1, &asn_PER_type_IssuerIdentifier_constr_1, IssuerIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/ItineraryPath.c b/vcits/rtcmem/src/ItineraryPath.c new file mode 100644 index 0000000..58026a5 --- /dev/null +++ b/vcits/rtcmem/src/ItineraryPath.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ItineraryPath.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..40)) */}; +static asn_per_constraints_t asn_PER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 40 } /* (SIZE(1..40)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ItineraryPath_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItineraryPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ItineraryPath_specs_1 = { + sizeof(struct ItineraryPath), + offsetof(struct ItineraryPath, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItineraryPath = { + "ItineraryPath", + "ItineraryPath", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItineraryPath_tags_1, + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + asn_DEF_ItineraryPath_tags_1, /* Same as above */ + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + { &asn_OER_type_ItineraryPath_constr_1, &asn_PER_type_ItineraryPath_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItineraryPath_1, + 1, /* Single element */ + &asn_SPC_ItineraryPath_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ItsPduHeader.c b/vcits/rtcmem/src/ItsPduHeader.c new file mode 100644 index 0000000..254885c --- /dev/null +++ b/vcits/rtcmem/src/ItsPduHeader.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ItsPduHeader.h" + +static int +memb_protocolVersion_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_messageID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_messageID_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_messageID_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsPduHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, protocolVersion), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_protocolVersion_constr_2, &asn_PER_memb_protocolVersion_constr_2, memb_protocolVersion_constraint_1 }, + 0, 0, /* No default value */ + "protocolVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, messageID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_messageID_constr_3, &asn_PER_memb_messageID_constr_3, memb_messageID_constraint_1 }, + 0, 0, /* No default value */ + "messageID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, stationID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsPduHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsPduHeader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolVersion */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* messageID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* stationID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1 = { + sizeof(struct ItsPduHeader), + offsetof(struct ItsPduHeader, _asn_ctx), + asn_MAP_ItsPduHeader_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsPduHeader = { + "ItsPduHeader", + "ItsPduHeader", + &asn_OP_SEQUENCE, + asn_DEF_ItsPduHeader_tags_1, + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + asn_DEF_ItsPduHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsPduHeader_1, + 3, /* Elements count */ + &asn_SPC_ItsPduHeader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ItsStationPosition.c b/vcits/rtcmem/src/ItsStationPosition.c new file mode 100644 index 0000000..85cccf3 --- /dev/null +++ b/vcits/rtcmem/src/ItsStationPosition.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ItsStationPosition.h" + +#include "NodeOffsetPointXY.h" +asn_TYPE_member_t asn_MBR_ItsStationPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsStationPosition, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_POINTER, 3, offsetof(struct ItsStationPosition, laneID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 2, offsetof(struct ItsStationPosition, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_POINTER, 1, offsetof(struct ItsStationPosition, timeReference), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeReference, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeReference" + }, +}; +static const int asn_MAP_ItsStationPosition_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ItsStationPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsStationPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* timeReference */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsStationPosition_specs_1 = { + sizeof(struct ItsStationPosition), + offsetof(struct ItsStationPosition, _asn_ctx), + asn_MAP_ItsStationPosition_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ItsStationPosition_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsStationPosition = { + "ItsStationPosition", + "ItsStationPosition", + &asn_OP_SEQUENCE, + asn_DEF_ItsStationPosition_tags_1, + sizeof(asn_DEF_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ItsStationPosition_tags_1[0]), /* 1 */ + asn_DEF_ItsStationPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ItsStationPosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsStationPosition_1, + 4, /* Elements count */ + &asn_SPC_ItsStationPosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ItsStationPositionList.c b/vcits/rtcmem/src/ItsStationPositionList.c new file mode 100644 index 0000000..fd8160b --- /dev/null +++ b/vcits/rtcmem/src/ItsStationPositionList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ItsStationPositionList.h" + +#include "ItsStationPosition.h" +static asn_oer_constraints_t asn_OER_type_ItsStationPositionList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_ItsStationPositionList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsStationPositionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ItsStationPosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsStationPositionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ItsStationPositionList_specs_1 = { + sizeof(struct ItsStationPositionList), + offsetof(struct ItsStationPositionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsStationPositionList = { + "ItsStationPositionList", + "ItsStationPositionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItsStationPositionList_tags_1, + sizeof(asn_DEF_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ItsStationPositionList_tags_1[0]), /* 1 */ + asn_DEF_ItsStationPositionList_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ItsStationPositionList_tags_1[0]), /* 1 */ + { &asn_OER_type_ItsStationPositionList_constr_1, &asn_PER_type_ItsStationPositionList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItsStationPositionList_1, + 1, /* Single element */ + &asn_SPC_ItsStationPositionList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneAttributes-Barrier.c b/vcits/rtcmem/src/LaneAttributes-Barrier.c new file mode 100644 index 0000000..97d8408 --- /dev/null +++ b/vcits/rtcmem/src/LaneAttributes-Barrier.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneAttributes-Barrier.h" + +int +LaneAttributes_Barrier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Barrier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier = { + "LaneAttributes-Barrier", + "LaneAttributes-Barrier", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Barrier_tags_1, + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Barrier_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Barrier_constr_1, &asn_PER_type_LaneAttributes_Barrier_constr_1, LaneAttributes_Barrier_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneAttributes-Bike.c b/vcits/rtcmem/src/LaneAttributes-Bike.c new file mode 100644 index 0000000..60accdd --- /dev/null +++ b/vcits/rtcmem/src/LaneAttributes-Bike.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneAttributes-Bike.h" + +int +LaneAttributes_Bike_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Bike_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike = { + "LaneAttributes-Bike", + "LaneAttributes-Bike", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Bike_tags_1, + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Bike_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Bike_constr_1, &asn_PER_type_LaneAttributes_Bike_constr_1, LaneAttributes_Bike_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneAttributes-Crosswalk.c b/vcits/rtcmem/src/LaneAttributes-Crosswalk.c new file mode 100644 index 0000000..30efa5f --- /dev/null +++ b/vcits/rtcmem/src/LaneAttributes-Crosswalk.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneAttributes-Crosswalk.h" + +int +LaneAttributes_Crosswalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Crosswalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk = { + "LaneAttributes-Crosswalk", + "LaneAttributes-Crosswalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Crosswalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Crosswalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Crosswalk_constr_1, &asn_PER_type_LaneAttributes_Crosswalk_constr_1, LaneAttributes_Crosswalk_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneAttributes-Parking.c b/vcits/rtcmem/src/LaneAttributes-Parking.c new file mode 100644 index 0000000..d5ac17b --- /dev/null +++ b/vcits/rtcmem/src/LaneAttributes-Parking.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneAttributes-Parking.h" + +int +LaneAttributes_Parking_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Parking_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking = { + "LaneAttributes-Parking", + "LaneAttributes-Parking", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Parking_tags_1, + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Parking_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Parking_constr_1, &asn_PER_type_LaneAttributes_Parking_constr_1, LaneAttributes_Parking_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneAttributes-Sidewalk.c b/vcits/rtcmem/src/LaneAttributes-Sidewalk.c new file mode 100644 index 0000000..14643d8 --- /dev/null +++ b/vcits/rtcmem/src/LaneAttributes-Sidewalk.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneAttributes-Sidewalk.h" + +int +LaneAttributes_Sidewalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Sidewalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk = { + "LaneAttributes-Sidewalk", + "LaneAttributes-Sidewalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Sidewalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Sidewalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Sidewalk_constr_1, &asn_PER_type_LaneAttributes_Sidewalk_constr_1, LaneAttributes_Sidewalk_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneAttributes-Striping.c b/vcits/rtcmem/src/LaneAttributes-Striping.c new file mode 100644 index 0000000..47ea115 --- /dev/null +++ b/vcits/rtcmem/src/LaneAttributes-Striping.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneAttributes-Striping.h" + +int +LaneAttributes_Striping_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Striping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping = { + "LaneAttributes-Striping", + "LaneAttributes-Striping", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Striping_tags_1, + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Striping_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Striping_constr_1, &asn_PER_type_LaneAttributes_Striping_constr_1, LaneAttributes_Striping_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneAttributes-TrackedVehicle.c b/vcits/rtcmem/src/LaneAttributes-TrackedVehicle.c new file mode 100644 index 0000000..991e0b4 --- /dev/null +++ b/vcits/rtcmem/src/LaneAttributes-TrackedVehicle.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneAttributes-TrackedVehicle.h" + +int +LaneAttributes_TrackedVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_TrackedVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle = { + "LaneAttributes-TrackedVehicle", + "LaneAttributes-TrackedVehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_TrackedVehicle_constr_1, &asn_PER_type_LaneAttributes_TrackedVehicle_constr_1, LaneAttributes_TrackedVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneAttributes-Vehicle.c b/vcits/rtcmem/src/LaneAttributes-Vehicle.c new file mode 100644 index 0000000..562700f --- /dev/null +++ b/vcits/rtcmem/src/LaneAttributes-Vehicle.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneAttributes-Vehicle.h" + +int +LaneAttributes_Vehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 8, 8 } /* (SIZE(8..8,...)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Vehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle = { + "LaneAttributes-Vehicle", + "LaneAttributes-Vehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Vehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Vehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Vehicle_constr_1, &asn_PER_type_LaneAttributes_Vehicle_constr_1, LaneAttributes_Vehicle_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneAttributes-addGrpC.c b/vcits/rtcmem/src/LaneAttributes-addGrpC.c new file mode 100644 index 0000000..e5e48d9 --- /dev/null +++ b/vcits/rtcmem/src/LaneAttributes-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneAttributes-addGrpC.h" + +asn_TYPE_member_t asn_MBR_LaneAttributes_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct LaneAttributes_addGrpC, maxVehicleHeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleHeight, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxVehicleHeight" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes_addGrpC, maxVehicleWeight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleMass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxVehicleWeight" + }, +}; +static const int asn_MAP_LaneAttributes_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxVehicleHeight */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maxVehicleWeight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_addGrpC_specs_1 = { + sizeof(struct LaneAttributes_addGrpC), + offsetof(struct LaneAttributes_addGrpC, _asn_ctx), + asn_MAP_LaneAttributes_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_LaneAttributes_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_addGrpC = { + "LaneAttributes-addGrpC", + "LaneAttributes-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_addGrpC_tags_1, + sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneAttributes_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_LaneAttributes_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneAttributes.c b/vcits/rtcmem/src/LaneAttributes.c new file mode 100644 index 0000000..9731b6a --- /dev/null +++ b/vcits/rtcmem/src/LaneAttributes.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneAttributes.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_LaneAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, directionalUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDirection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "directionalUse" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, sharedWith), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneSharing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sharedWith" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, laneType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_LaneTypeAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneType" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_LaneAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_LaneAttributes_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* directionalUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sharedWith */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1 = { + sizeof(struct LaneAttributes), + offsetof(struct LaneAttributes, _asn_ctx), + asn_MAP_LaneAttributes_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_LaneAttributes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes = { + "LaneAttributes", + "LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_tags_1, + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneAttributes_1, + 4, /* Elements count */ + &asn_SPC_LaneAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneConnectionID.c b/vcits/rtcmem/src/LaneConnectionID.c new file mode 100644 index 0000000..b0e1027 --- /dev/null +++ b/vcits/rtcmem/src/LaneConnectionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneConnectionID.h" + +int +LaneConnectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneConnectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneConnectionID = { + "LaneConnectionID", + "LaneConnectionID", + &asn_OP_NativeInteger, + asn_DEF_LaneConnectionID_tags_1, + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + asn_DEF_LaneConnectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneConnectionID_constr_1, &asn_PER_type_LaneConnectionID_constr_1, LaneConnectionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/LaneDataAttribute.c b/vcits/rtcmem/src/LaneDataAttribute.c new file mode 100644 index 0000000..47f5b6c --- /dev/null +++ b/vcits/rtcmem/src/LaneDataAttribute.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneDataAttribute.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_LaneDataAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct LaneDataAttribute__regional), + offsetof(struct LaneDataAttribute__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.pathEndPointAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathEndPointAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointCenter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointCenter" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointLeft), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointRight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneAngle), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MergeDivergeNodeAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneDataAttribute_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathEndPointAngle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneCrownPointCenter */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneCrownPointLeft */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneCrownPointRight */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAngle */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1 = { + sizeof(struct LaneDataAttribute), + offsetof(struct LaneDataAttribute, _asn_ctx), + offsetof(struct LaneDataAttribute, present), + sizeof(((struct LaneDataAttribute *)0)->present), + asn_MAP_LaneDataAttribute_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute = { + "LaneDataAttribute", + "LaneDataAttribute", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LaneDataAttribute_constr_1, &asn_PER_type_LaneDataAttribute_constr_1, CHOICE_constraint }, + asn_MBR_LaneDataAttribute_1, + 7, /* Elements count */ + &asn_SPC_LaneDataAttribute_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneDataAttributeList.c b/vcits/rtcmem/src/LaneDataAttributeList.c new file mode 100644 index 0000000..284d10e --- /dev/null +++ b/vcits/rtcmem/src/LaneDataAttributeList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneDataAttributeList.h" + +#include "LaneDataAttribute.h" +static asn_oer_constraints_t asn_OER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_LaneDataAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneDataAttributeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1 = { + sizeof(struct LaneDataAttributeList), + offsetof(struct LaneDataAttributeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList = { + "LaneDataAttributeList", + "LaneDataAttributeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneDataAttributeList_tags_1, + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + asn_DEF_LaneDataAttributeList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDataAttributeList_constr_1, &asn_PER_type_LaneDataAttributeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneDataAttributeList_1, + 1, /* Single element */ + &asn_SPC_LaneDataAttributeList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneDirection.c b/vcits/rtcmem/src/LaneDirection.c new file mode 100644 index 0000000..d3c4b0a --- /dev/null +++ b/vcits/rtcmem/src/LaneDirection.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneDirection.h" + +int +LaneDirection_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +asn_per_constraints_t asn_PER_type_LaneDirection_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneDirection = { + "LaneDirection", + "LaneDirection", + &asn_OP_BIT_STRING, + asn_DEF_LaneDirection_tags_1, + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + asn_DEF_LaneDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDirection_constr_1, &asn_PER_type_LaneDirection_constr_1, LaneDirection_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneID.c b/vcits/rtcmem/src/LaneID.c new file mode 100644 index 0000000..4f26784 --- /dev/null +++ b/vcits/rtcmem/src/LaneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneID.h" + +int +LaneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneID = { + "LaneID", + "LaneID", + &asn_OP_NativeInteger, + asn_DEF_LaneID_tags_1, + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + asn_DEF_LaneID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneID_constr_1, &asn_PER_type_LaneID_constr_1, LaneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/LaneList.c b/vcits/rtcmem/src/LaneList.c new file mode 100644 index 0000000..1601037 --- /dev/null +++ b/vcits/rtcmem/src/LaneList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneList.h" + +#include "GenericLane.h" +static asn_oer_constraints_t asn_OER_type_LaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_LaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1 = { + sizeof(struct LaneList), + offsetof(struct LaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneList = { + "LaneList", + "LaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneList_tags_1, + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + asn_DEF_LaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneList_constr_1, &asn_PER_type_LaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneList_1, + 1, /* Single element */ + &asn_SPC_LaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LanePosition.c b/vcits/rtcmem/src/LanePosition.c new file mode 100644 index 0000000..95ab6ab --- /dev/null +++ b/vcits/rtcmem/src/LanePosition.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LanePosition.h" + +int +LanePosition_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1 && value <= 14)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LanePosition_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-1..14) */, + -1}; +static asn_per_constraints_t asn_PER_type_LanePosition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, -1, 14 } /* (-1..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LanePosition = { + "LanePosition", + "LanePosition", + &asn_OP_NativeInteger, + asn_DEF_LanePosition_tags_1, + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + asn_DEF_LanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + { &asn_OER_type_LanePosition_constr_1, &asn_PER_type_LanePosition_constr_1, LanePosition_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/LaneSharing.c b/vcits/rtcmem/src/LaneSharing.c new file mode 100644 index 0000000..f0c5938 --- /dev/null +++ b/vcits/rtcmem/src/LaneSharing.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneSharing.h" + +int +LaneSharing_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneSharing_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_LaneSharing_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneSharing_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneSharing = { + "LaneSharing", + "LaneSharing", + &asn_OP_BIT_STRING, + asn_DEF_LaneSharing_tags_1, + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + asn_DEF_LaneSharing_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneSharing_constr_1, &asn_PER_type_LaneSharing_constr_1, LaneSharing_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneTypeAttributes.c b/vcits/rtcmem/src/LaneTypeAttributes.c new file mode 100644 index 0000000..388171f --- /dev/null +++ b/vcits/rtcmem/src/LaneTypeAttributes.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneTypeAttributes.h" + +static asn_oer_constraints_t asn_OER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.vehicle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Vehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.crosswalk), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Crosswalk, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crosswalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.bikeLane), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Bike, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bikeLane" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.sidewalk), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Sidewalk, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sidewalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.median), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Barrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "median" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.striping), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Striping, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "striping" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.trackedVehicle), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_TrackedVehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trackedVehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.parking), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Parking, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "parking" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneTypeAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* crosswalk */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bikeLane */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sidewalk */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* median */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* striping */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* trackedVehicle */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* parking */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1 = { + sizeof(struct LaneTypeAttributes), + offsetof(struct LaneTypeAttributes, _asn_ctx), + offsetof(struct LaneTypeAttributes, present), + sizeof(((struct LaneTypeAttributes *)0)->present), + asn_MAP_LaneTypeAttributes_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + 8 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes = { + "LaneTypeAttributes", + "LaneTypeAttributes", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LaneTypeAttributes_constr_1, &asn_PER_type_LaneTypeAttributes_constr_1, CHOICE_constraint }, + asn_MBR_LaneTypeAttributes_1, + 8, /* Elements count */ + &asn_SPC_LaneTypeAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LaneWidth.c b/vcits/rtcmem/src/LaneWidth.c new file mode 100644 index 0000000..6df60c1 --- /dev/null +++ b/vcits/rtcmem/src/LaneWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LaneWidth.h" + +int +LaneWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneWidth_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneWidth = { + "LaneWidth", + "LaneWidth", + &asn_OP_NativeInteger, + asn_DEF_LaneWidth_tags_1, + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + asn_DEF_LaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneWidth_constr_1, &asn_PER_type_LaneWidth_constr_1, LaneWidth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/LateralAcceleration.c b/vcits/rtcmem/src/LateralAcceleration.c new file mode 100644 index 0000000..ea4481e --- /dev/null +++ b/vcits/rtcmem/src/LateralAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LateralAcceleration.h" + +static asn_TYPE_member_t asn_MBR_LateralAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LateralAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LateralAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LateralAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateralAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lateralAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_LateralAcceleration_specs_1 = { + sizeof(struct LateralAcceleration), + offsetof(struct LateralAcceleration, _asn_ctx), + asn_MAP_LateralAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LateralAcceleration = { + "LateralAcceleration", + "LateralAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LateralAcceleration_tags_1, + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LateralAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LateralAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LateralAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LateralAccelerationValue.c b/vcits/rtcmem/src/LateralAccelerationValue.c new file mode 100644 index 0000000..80378ea --- /dev/null +++ b/vcits/rtcmem/src/LateralAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LateralAccelerationValue.h" + +int +LateralAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LateralAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue = { + "LateralAccelerationValue", + "LateralAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LateralAccelerationValue_tags_1, + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LateralAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LateralAccelerationValue_constr_1, &asn_PER_type_LateralAccelerationValue_constr_1, LateralAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Latitude.c b/vcits/rtcmem/src/Latitude.c new file mode 100644 index 0000000..c042df7 --- /dev/null +++ b/vcits/rtcmem/src/Latitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Latitude.h" + +int +Latitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -900000000 && value <= 900000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Latitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-900000000..900000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Latitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 31, -1, -900000000, 900000001 } /* (-900000000..900000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_Latitude_tags_1, + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + asn_DEF_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Latitude_constr_1, &asn_PER_type_Latitude_constr_1, Latitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/LayerID.c b/vcits/rtcmem/src/LayerID.c new file mode 100644 index 0000000..902b529 --- /dev/null +++ b/vcits/rtcmem/src/LayerID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LayerID.h" + +int +LayerID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LayerID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..100) */, + -1}; +asn_per_constraints_t asn_PER_type_LayerID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LayerID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerID = { + "LayerID", + "LayerID", + &asn_OP_NativeInteger, + asn_DEF_LayerID_tags_1, + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + asn_DEF_LayerID_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + { &asn_OER_type_LayerID_constr_1, &asn_PER_type_LayerID_constr_1, LayerID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/LayerType.c b/vcits/rtcmem/src/LayerType.c new file mode 100644 index 0000000..aa04fcd --- /dev/null +++ b/vcits/rtcmem/src/LayerType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LayerType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LayerType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LayerType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_LayerType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 12, "mixedContent" }, + { 2, 14, "generalMapData" }, + { 3, 16, "intersectionData" }, + { 4, 9, "curveData" }, + { 5, 18, "roadwaySectionData" }, + { 6, 15, "parkingAreaData" }, + { 7, 14, "sharedLaneData" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_LayerType_enum2value_1[] = { + 4, /* curveData(4) */ + 2, /* generalMapData(2) */ + 3, /* intersectionData(3) */ + 1, /* mixedContent(1) */ + 0, /* none(0) */ + 6, /* parkingAreaData(6) */ + 5, /* roadwaySectionData(5) */ + 7 /* sharedLaneData(7) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1 = { + asn_MAP_LayerType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_LayerType_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_LayerType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerType = { + "LayerType", + "LayerType", + &asn_OP_NativeEnumerated, + asn_DEF_LayerType_tags_1, + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + asn_DEF_LayerType_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + { &asn_OER_type_LayerType_constr_1, &asn_PER_type_LayerType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_LayerType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LicPlateNumber.c b/vcits/rtcmem/src/LicPlateNumber.c new file mode 100644 index 0000000..bc441b8 --- /dev/null +++ b/vcits/rtcmem/src/LicPlateNumber.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LicPlateNumber.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_LicPlateNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LicPlateNumber = { + "LicPlateNumber", + "LicPlateNumber", + &asn_OP_OCTET_STRING, + asn_DEF_LicPlateNumber_tags_1, + sizeof(asn_DEF_LicPlateNumber_tags_1) + /sizeof(asn_DEF_LicPlateNumber_tags_1[0]), /* 1 */ + asn_DEF_LicPlateNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_LicPlateNumber_tags_1) + /sizeof(asn_DEF_LicPlateNumber_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LightBarSirenInUse.c b/vcits/rtcmem/src/LightBarSirenInUse.c new file mode 100644 index 0000000..3e74bcc --- /dev/null +++ b/vcits/rtcmem/src/LightBarSirenInUse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LightBarSirenInUse.h" + +int +LightBarSirenInUse_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LightBarSirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse = { + "LightBarSirenInUse", + "LightBarSirenInUse", + &asn_OP_BIT_STRING, + asn_DEF_LightBarSirenInUse_tags_1, + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + asn_DEF_LightBarSirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + { &asn_OER_type_LightBarSirenInUse_constr_1, &asn_PER_type_LightBarSirenInUse_constr_1, LightBarSirenInUse_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Longitude.c b/vcits/rtcmem/src/Longitude.c new file mode 100644 index 0000000..d692ef9 --- /dev/null +++ b/vcits/rtcmem/src/Longitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Longitude.h" + +int +Longitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1800000000 && value <= 1800000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Longitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-1800000000..1800000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Longitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, -1800000000, 1800000001 } /* (-1800000000..1800000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_Longitude_tags_1, + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + asn_DEF_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Longitude_constr_1, &asn_PER_type_Longitude_constr_1, Longitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/LongitudinalAcceleration.c b/vcits/rtcmem/src/LongitudinalAcceleration.c new file mode 100644 index 0000000..32b7502 --- /dev/null +++ b/vcits/rtcmem/src/LongitudinalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LongitudinalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_LongitudinalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LongitudinalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longitudinalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_LongitudinalAcceleration_specs_1 = { + sizeof(struct LongitudinalAcceleration), + offsetof(struct LongitudinalAcceleration, _asn_ctx), + asn_MAP_LongitudinalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration = { + "LongitudinalAcceleration", + "LongitudinalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LongitudinalAcceleration_tags_1, + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LongitudinalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LongitudinalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/LongitudinalAccelerationValue.c b/vcits/rtcmem/src/LongitudinalAccelerationValue.c new file mode 100644 index 0000000..e057bca --- /dev/null +++ b/vcits/rtcmem/src/LongitudinalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "LongitudinalAccelerationValue.h" + +int +LongitudinalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue = { + "LongitudinalAccelerationValue", + "LongitudinalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LongitudinalAccelerationValue_tags_1, + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LongitudinalAccelerationValue_constr_1, &asn_PER_type_LongitudinalAccelerationValue_constr_1, LongitudinalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/ManeuverAssistList.c b/vcits/rtcmem/src/ManeuverAssistList.c new file mode 100644 index 0000000..1487b16 --- /dev/null +++ b/vcits/rtcmem/src/ManeuverAssistList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ManeuverAssistList.h" + +#include "ConnectionManeuverAssist.h" +static asn_oer_constraints_t asn_OER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ManeuverAssistList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1 = { + sizeof(struct ManeuverAssistList), + offsetof(struct ManeuverAssistList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList = { + "ManeuverAssistList", + "ManeuverAssistList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ManeuverAssistList_tags_1, + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + asn_DEF_ManeuverAssistList_tags_1, /* Same as above */ + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + { &asn_OER_type_ManeuverAssistList_constr_1, &asn_PER_type_ManeuverAssistList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ManeuverAssistList_1, + 1, /* Single element */ + &asn_SPC_ManeuverAssistList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ManufacturerIdentifier.c b/vcits/rtcmem/src/ManufacturerIdentifier.c new file mode 100644 index 0000000..7175135 --- /dev/null +++ b/vcits/rtcmem/src/ManufacturerIdentifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ManufacturerIdentifier.h" + +int +ManufacturerIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ManufacturerIdentifier_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_ManufacturerIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ManufacturerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ManufacturerIdentifier = { + "ManufacturerIdentifier", + "ManufacturerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_ManufacturerIdentifier_tags_1, + sizeof(asn_DEF_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_ManufacturerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_ManufacturerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_ManufacturerIdentifier_tags_1[0]), /* 1 */ + { &asn_OER_type_ManufacturerIdentifier_constr_1, &asn_PER_type_ManufacturerIdentifier_constr_1, ManufacturerIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/MapData-addGrpC.c b/vcits/rtcmem/src/MapData-addGrpC.c new file mode 100644 index 0000000..6e33c54 --- /dev/null +++ b/vcits/rtcmem/src/MapData-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "MapData-addGrpC.h" + +#include "SignalHeadLocationList.h" +asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData_addGrpC, signalHeadLocations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalHeadLocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalHeadLocations" + }, +}; +static const int asn_MAP_MapData_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MapData_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* signalHeadLocations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1 = { + sizeof(struct MapData_addGrpC), + offsetof(struct MapData_addGrpC, _asn_ctx), + asn_MAP_MapData_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MapData_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC = { + "MapData-addGrpC", + "MapData-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MapData_addGrpC_tags_1, + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MapData_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapData_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MapData_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/MapData.c b/vcits/rtcmem/src/MapData.c new file mode 100644 index 0000000..02e35b4 --- /dev/null +++ b/vcits/rtcmem/src/MapData.c @@ -0,0 +1,216 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "MapData.h" + +#include "IntersectionGeometryList.h" +#include "RoadSegmentList.h" +#include "DataParameters.h" +#include "RestrictionClassList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MapData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct MapData__regional), + offsetof(struct MapData__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_MapData_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct MapData, msgIssueRevision), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgIssueRevision" + }, + { ATF_POINTER, 7, offsetof(struct MapData, layerType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layerType" + }, + { ATF_POINTER, 6, offsetof(struct MapData, layerID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layerID" + }, + { ATF_POINTER, 5, offsetof(struct MapData, intersections), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionGeometryList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 4, offsetof(struct MapData, roadSegments), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadSegments" + }, + { ATF_POINTER, 3, offsetof(struct MapData, dataParameters), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DataParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dataParameters" + }, + { ATF_POINTER, 2, offsetof(struct MapData, restrictionList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "restrictionList" + }, + { ATF_POINTER, 1, offsetof(struct MapData, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MapData_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* msgIssueRevision */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* layerType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* layerID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* roadSegments */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dataParameters */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* restrictionList */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_MapData_specs_1 = { + sizeof(struct MapData), + offsetof(struct MapData, _asn_ctx), + asn_MAP_MapData_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_MapData_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData = { + "MapData", + "MapData", + &asn_OP_SEQUENCE, + asn_DEF_MapData_tags_1, + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + asn_DEF_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapData_1, + 9, /* Elements count */ + &asn_SPC_MapData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/MergeDivergeNodeAngle.c b/vcits/rtcmem/src/MergeDivergeNodeAngle.c new file mode 100644 index 0000000..98a4140 --- /dev/null +++ b/vcits/rtcmem/src/MergeDivergeNodeAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "MergeDivergeNodeAngle.h" + +int +MergeDivergeNodeAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -180 && value <= 180)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-180..180) */, + -1}; +asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -180, 180 } /* (-180..180) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MergeDivergeNodeAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle = { + "MergeDivergeNodeAngle", + "MergeDivergeNodeAngle", + &asn_OP_NativeInteger, + asn_DEF_MergeDivergeNodeAngle_tags_1, + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + asn_DEF_MergeDivergeNodeAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_MergeDivergeNodeAngle_constr_1, &asn_PER_type_MergeDivergeNodeAngle_constr_1, MergeDivergeNodeAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/MinuteOfTheYear.c b/vcits/rtcmem/src/MinuteOfTheYear.c new file mode 100644 index 0000000..68055ed --- /dev/null +++ b/vcits/rtcmem/src/MinuteOfTheYear.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "MinuteOfTheYear.h" + +int +MinuteOfTheYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 527040)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..527040) */, + -1}; +asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 527040 } /* (0..527040) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MinuteOfTheYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear = { + "MinuteOfTheYear", + "MinuteOfTheYear", + &asn_OP_NativeInteger, + asn_DEF_MinuteOfTheYear_tags_1, + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + asn_DEF_MinuteOfTheYear_tags_1, /* Same as above */ + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + { &asn_OER_type_MinuteOfTheYear_constr_1, &asn_PER_type_MinuteOfTheYear_constr_1, MinuteOfTheYear_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/MovementEvent-addGrpC.c b/vcits/rtcmem/src/MovementEvent-addGrpC.c new file mode 100644 index 0000000..2791fb8 --- /dev/null +++ b/vcits/rtcmem/src/MovementEvent-addGrpC.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "MovementEvent-addGrpC.h" + +asn_TYPE_member_t asn_MBR_MovementEvent_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementEvent_addGrpC, stateChangeReason), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExceptionalCondition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stateChangeReason" + }, +}; +static const int asn_MAP_MovementEvent_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* stateChangeReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpC_specs_1 = { + sizeof(struct MovementEvent_addGrpC), + offsetof(struct MovementEvent_addGrpC, _asn_ctx), + asn_MAP_MovementEvent_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MovementEvent_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpC = { + "MovementEvent-addGrpC", + "MovementEvent-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_addGrpC_tags_1, + sizeof(asn_DEF_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementEvent_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MovementEvent_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/MovementEvent.c b/vcits/rtcmem/src/MovementEvent.c new file mode 100644 index 0000000..c086d84 --- /dev/null +++ b/vcits/rtcmem/src/MovementEvent.c @@ -0,0 +1,164 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "MovementEvent.h" + +#include "TimeChangeDetails.h" +#include "AdvisorySpeedList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct MovementEvent__regional), + offsetof(struct MovementEvent__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementEvent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MovementEvent, eventState), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementPhaseState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventState" + }, + { ATF_POINTER, 3, offsetof(struct MovementEvent, timing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeChangeDetails, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timing" + }, + { ATF_POINTER, 2, offsetof(struct MovementEvent, speeds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speeds" + }, + { ATF_POINTER, 1, offsetof(struct MovementEvent, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementEvent_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventState */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* speeds */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1 = { + sizeof(struct MovementEvent), + offsetof(struct MovementEvent, _asn_ctx), + asn_MAP_MovementEvent_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_MovementEvent_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent = { + "MovementEvent", + "MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_tags_1, + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementEvent_1, + 4, /* Elements count */ + &asn_SPC_MovementEvent_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/MovementEventList.c b/vcits/rtcmem/src/MovementEventList.c new file mode 100644 index 0000000..09c0cd4 --- /dev/null +++ b/vcits/rtcmem/src/MovementEventList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "MovementEventList.h" + +#include "MovementEvent.h" +static asn_oer_constraints_t asn_OER_type_MovementEventList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_MovementEventList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MovementEventList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementEventList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1 = { + sizeof(struct MovementEventList), + offsetof(struct MovementEventList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEventList = { + "MovementEventList", + "MovementEventList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementEventList_tags_1, + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + asn_DEF_MovementEventList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementEventList_constr_1, &asn_PER_type_MovementEventList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MovementEventList_1, + 1, /* Single element */ + &asn_SPC_MovementEventList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/MovementList.c b/vcits/rtcmem/src/MovementList.c new file mode 100644 index 0000000..80f6b58 --- /dev/null +++ b/vcits/rtcmem/src/MovementList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "MovementList.h" + +#include "MovementState.h" +static asn_oer_constraints_t asn_OER_type_MovementList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_MovementList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MovementList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1 = { + sizeof(struct MovementList), + offsetof(struct MovementList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementList = { + "MovementList", + "MovementList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementList_tags_1, + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + asn_DEF_MovementList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementList_constr_1, &asn_PER_type_MovementList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MovementList_1, + 1, /* Single element */ + &asn_SPC_MovementList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/MovementPhaseState.c b/vcits/rtcmem/src/MovementPhaseState.c new file mode 100644 index 0000000..5bc9c71 --- /dev/null +++ b/vcits/rtcmem/src/MovementPhaseState.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "MovementPhaseState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_MovementPhaseState_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 4, "dark" }, + { 2, 17, "stop-Then-Proceed" }, + { 3, 15, "stop-And-Remain" }, + { 4, 12, "pre-Movement" }, + { 5, 27, "permissive-Movement-Allowed" }, + { 6, 26, "protected-Movement-Allowed" }, + { 7, 20, "permissive-clearance" }, + { 8, 19, "protected-clearance" }, + { 9, 27, "caution-Conflicting-Traffic" } +}; +static const unsigned int asn_MAP_MovementPhaseState_enum2value_1[] = { + 9, /* caution-Conflicting-Traffic(9) */ + 1, /* dark(1) */ + 5, /* permissive-Movement-Allowed(5) */ + 7, /* permissive-clearance(7) */ + 4, /* pre-Movement(4) */ + 6, /* protected-Movement-Allowed(6) */ + 8, /* protected-clearance(8) */ + 3, /* stop-And-Remain(3) */ + 2, /* stop-Then-Proceed(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1 = { + asn_MAP_MovementPhaseState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_MovementPhaseState_enum2value_1, /* N => "tag"; sorted by N */ + 10, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_MovementPhaseState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MovementPhaseState = { + "MovementPhaseState", + "MovementPhaseState", + &asn_OP_NativeEnumerated, + asn_DEF_MovementPhaseState_tags_1, + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + asn_DEF_MovementPhaseState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementPhaseState_constr_1, &asn_PER_type_MovementPhaseState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MovementPhaseState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/MovementState.c b/vcits/rtcmem/src/MovementState.c new file mode 100644 index 0000000..68241de --- /dev/null +++ b/vcits/rtcmem/src/MovementState.c @@ -0,0 +1,173 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "MovementState.h" + +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct MovementState__regional), + offsetof(struct MovementState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementState_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementState, movementName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "movementName" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, state_time_speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementEventList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "state-time-speed" + }, + { ATF_POINTER, 2, offsetof(struct MovementState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct MovementState, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementState_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_MovementState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* movementName */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* state-time-speed */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1 = { + sizeof(struct MovementState), + offsetof(struct MovementState, _asn_ctx), + asn_MAP_MovementState_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_MovementState_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementState = { + "MovementState", + "MovementState", + &asn_OP_SEQUENCE, + asn_DEF_MovementState_tags_1, + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + asn_DEF_MovementState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementState_1, + 5, /* Elements count */ + &asn_SPC_MovementState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/MsgCount.c b/vcits/rtcmem/src/MsgCount.c new file mode 100644 index 0000000..c39fbca --- /dev/null +++ b/vcits/rtcmem/src/MsgCount.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "MsgCount.h" + +int +MsgCount_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MsgCount_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_MsgCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MsgCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MsgCount = { + "MsgCount", + "MsgCount", + &asn_OP_NativeInteger, + asn_DEF_MsgCount_tags_1, + sizeof(asn_DEF_MsgCount_tags_1) + /sizeof(asn_DEF_MsgCount_tags_1[0]), /* 1 */ + asn_DEF_MsgCount_tags_1, /* Same as above */ + sizeof(asn_DEF_MsgCount_tags_1) + /sizeof(asn_DEF_MsgCount_tags_1[0]), /* 1 */ + { &asn_OER_type_MsgCount_constr_1, &asn_PER_type_MsgCount_constr_1, MsgCount_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Node-LLmD-64b.c b/vcits/rtcmem/src/Node-LLmD-64b.c new file mode 100644 index 0000000..c80655b --- /dev/null +++ b/vcits/rtcmem/src/Node-LLmD-64b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Node-LLmD-64b.h" + +asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LLmD_64b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LLmD_64b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1 = { + sizeof(struct Node_LLmD_64b), + offsetof(struct Node_LLmD_64b, _asn_ctx), + asn_MAP_Node_LLmD_64b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b = { + "Node-LLmD-64b", + "Node-LLmD-64b", + &asn_OP_SEQUENCE, + asn_DEF_Node_LLmD_64b_tags_1, + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + asn_DEF_Node_LLmD_64b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_LLmD_64b_1, + 2, /* Elements count */ + &asn_SPC_Node_LLmD_64b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Node-XY-20b.c b/vcits/rtcmem/src/Node-XY-20b.c new file mode 100644 index 0000000..b884686 --- /dev/null +++ b/vcits/rtcmem/src/Node-XY-20b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Node-XY-20b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_20b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_20b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_20b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1 = { + sizeof(struct Node_XY_20b), + offsetof(struct Node_XY_20b, _asn_ctx), + asn_MAP_Node_XY_20b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_20b = { + "Node-XY-20b", + "Node-XY-20b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_20b_tags_1, + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_20b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_20b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_20b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Node-XY-22b.c b/vcits/rtcmem/src/Node-XY-22b.c new file mode 100644 index 0000000..64c2950 --- /dev/null +++ b/vcits/rtcmem/src/Node-XY-22b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Node-XY-22b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_22b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_22b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_22b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1 = { + sizeof(struct Node_XY_22b), + offsetof(struct Node_XY_22b, _asn_ctx), + asn_MAP_Node_XY_22b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_22b = { + "Node-XY-22b", + "Node-XY-22b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_22b_tags_1, + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_22b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_22b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_22b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Node-XY-24b.c b/vcits/rtcmem/src/Node-XY-24b.c new file mode 100644 index 0000000..bb62545 --- /dev/null +++ b/vcits/rtcmem/src/Node-XY-24b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Node-XY-24b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_24b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_24b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_24b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1 = { + sizeof(struct Node_XY_24b), + offsetof(struct Node_XY_24b, _asn_ctx), + asn_MAP_Node_XY_24b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_24b = { + "Node-XY-24b", + "Node-XY-24b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_24b_tags_1, + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_24b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_24b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_24b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Node-XY-26b.c b/vcits/rtcmem/src/Node-XY-26b.c new file mode 100644 index 0000000..fb6242b --- /dev/null +++ b/vcits/rtcmem/src/Node-XY-26b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Node-XY-26b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_26b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_26b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_26b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1 = { + sizeof(struct Node_XY_26b), + offsetof(struct Node_XY_26b, _asn_ctx), + asn_MAP_Node_XY_26b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_26b = { + "Node-XY-26b", + "Node-XY-26b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_26b_tags_1, + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_26b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_26b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_26b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Node-XY-28b.c b/vcits/rtcmem/src/Node-XY-28b.c new file mode 100644 index 0000000..33d4cae --- /dev/null +++ b/vcits/rtcmem/src/Node-XY-28b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Node-XY-28b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_28b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_28b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_28b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1 = { + sizeof(struct Node_XY_28b), + offsetof(struct Node_XY_28b, _asn_ctx), + asn_MAP_Node_XY_28b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_28b = { + "Node-XY-28b", + "Node-XY-28b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_28b_tags_1, + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_28b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_28b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_28b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Node-XY-32b.c b/vcits/rtcmem/src/Node-XY-32b.c new file mode 100644 index 0000000..dc317f5 --- /dev/null +++ b/vcits/rtcmem/src/Node-XY-32b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Node-XY-32b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_32b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_32b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_32b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1 = { + sizeof(struct Node_XY_32b), + offsetof(struct Node_XY_32b, _asn_ctx), + asn_MAP_Node_XY_32b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_32b = { + "Node-XY-32b", + "Node-XY-32b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_32b_tags_1, + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_32b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_32b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_32b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Node.c b/vcits/rtcmem/src/Node.c new file mode 100644 index 0000000..2797db3 --- /dev/null +++ b/vcits/rtcmem/src/Node.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Node.h" + +asn_TYPE_member_t asn_MBR_Node_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 3, offsetof(struct Node, lane), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 2, offsetof(struct Node, connectionID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 1, offsetof(struct Node, intersectionID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersectionID" + }, +}; +static const int asn_MAP_Node_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Node_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* intersectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_specs_1 = { + sizeof(struct Node), + offsetof(struct Node, _asn_ctx), + asn_MAP_Node_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Node_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node = { + "Node", + "Node", + &asn_OP_SEQUENCE, + asn_DEF_Node_tags_1, + sizeof(asn_DEF_Node_tags_1) + /sizeof(asn_DEF_Node_tags_1[0]), /* 1 */ + asn_DEF_Node_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_tags_1) + /sizeof(asn_DEF_Node_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_1, + 4, /* Elements count */ + &asn_SPC_Node_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/NodeAttributeSet-addGrpC.c b/vcits/rtcmem/src/NodeAttributeSet-addGrpC.c new file mode 100644 index 0000000..4213999 --- /dev/null +++ b/vcits/rtcmem/src/NodeAttributeSet-addGrpC.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "NodeAttributeSet-addGrpC.h" + +#include "NodeLink.h" +#include "Node.h" +asn_TYPE_member_t asn_MBR_NodeAttributeSet_addGrpC_1[] = { + { ATF_POINTER, 3, offsetof(struct NodeAttributeSet_addGrpC, ptvRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtvRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptvRequest" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSet_addGrpC, nodeLink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeLink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeLink" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSet_addGrpC, node), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node" + }, +}; +static const int asn_MAP_NodeAttributeSet_addGrpC_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSet_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSet_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptvRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeLink */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* node */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSet_addGrpC_specs_1 = { + sizeof(struct NodeAttributeSet_addGrpC), + offsetof(struct NodeAttributeSet_addGrpC, _asn_ctx), + asn_MAP_NodeAttributeSet_addGrpC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_NodeAttributeSet_addGrpC_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSet_addGrpC = { + "NodeAttributeSet-addGrpC", + "NodeAttributeSet-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSet_addGrpC_tags_1, + sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSet_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeAttributeSet_addGrpC_1, + 3, /* Elements count */ + &asn_SPC_NodeAttributeSet_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/NodeAttributeSetXY.c b/vcits/rtcmem/src/NodeAttributeSetXY.c new file mode 100644 index 0000000..4d7ab2f --- /dev/null +++ b/vcits/rtcmem/src/NodeAttributeSetXY.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "NodeAttributeSetXY.h" + +#include "NodeAttributeXYList.h" +#include "SegmentAttributeXYList.h" +#include "LaneDataAttributeList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_NodeAttributeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct NodeAttributeSetXY__regional), + offsetof(struct NodeAttributeSetXY__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[] = { + { ATF_POINTER, 7, offsetof(struct NodeAttributeSetXY, localNode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "localNode" + }, + { ATF_POINTER, 6, offsetof(struct NodeAttributeSetXY, disabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "disabled" + }, + { ATF_POINTER, 5, offsetof(struct NodeAttributeSetXY, enabled), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabled" + }, + { ATF_POINTER, 4, offsetof(struct NodeAttributeSetXY, data), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDataAttributeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "data" + }, + { ATF_POINTER, 3, offsetof(struct NodeAttributeSetXY, dWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dWidth" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSetXY, dElevation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dElevation" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSetXY, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_NodeAttributeSetXY_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSetXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* localNode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* disabled */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* enabled */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* data */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dElevation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1 = { + sizeof(struct NodeAttributeSetXY), + offsetof(struct NodeAttributeSetXY, _asn_ctx), + asn_MAP_NodeAttributeSetXY_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_NodeAttributeSetXY_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY = { + "NodeAttributeSetXY", + "NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSetXY_tags_1, + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeAttributeSetXY_1, + 7, /* Elements count */ + &asn_SPC_NodeAttributeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/NodeAttributeXY.c b/vcits/rtcmem/src/NodeAttributeXY.c new file mode 100644 index 0000000..da5fe5c --- /dev/null +++ b/vcits/rtcmem/src/NodeAttributeXY.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "NodeAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 11 } /* (0..11,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_NodeAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 8, "stopLine" }, + { 2, 16, "roundedCapStyleA" }, + { 3, 16, "roundedCapStyleB" }, + { 4, 10, "mergePoint" }, + { 5, 12, "divergePoint" }, + { 6, 18, "downstreamStopLine" }, + { 7, 19, "downstreamStartNode" }, + { 8, 15, "closedToTraffic" }, + { 9, 10, "safeIsland" }, + { 10, 20, "curbPresentAtStepOff" }, + { 11, 14, "hydrantPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NodeAttributeXY_enum2value_1[] = { + 8, /* closedToTraffic(8) */ + 10, /* curbPresentAtStepOff(10) */ + 5, /* divergePoint(5) */ + 7, /* downstreamStartNode(7) */ + 6, /* downstreamStopLine(6) */ + 11, /* hydrantPresent(11) */ + 4, /* mergePoint(4) */ + 0, /* reserved(0) */ + 2, /* roundedCapStyleA(2) */ + 3, /* roundedCapStyleB(3) */ + 9, /* safeIsland(9) */ + 1 /* stopLine(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1 = { + asn_MAP_NodeAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NodeAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 12, /* Number of elements in the maps */ + 13, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY = { + "NodeAttributeXY", + "NodeAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_NodeAttributeXY_tags_1, + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeAttributeXY_constr_1, &asn_PER_type_NodeAttributeXY_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NodeAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/NodeAttributeXYList.c b/vcits/rtcmem/src/NodeAttributeXYList.c new file mode 100644 index 0000000..fc22fe6 --- /dev/null +++ b/vcits/rtcmem/src/NodeAttributeXYList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "NodeAttributeXYList.h" + +static asn_oer_constraints_t asn_OER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_NodeAttributeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1 = { + sizeof(struct NodeAttributeXYList), + offsetof(struct NodeAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList = { + "NodeAttributeXYList", + "NodeAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeAttributeXYList_tags_1, + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeAttributeXYList_constr_1, &asn_PER_type_NodeAttributeXYList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_NodeAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/NodeLink.c b/vcits/rtcmem/src/NodeLink.c new file mode 100644 index 0000000..4c585a4 --- /dev/null +++ b/vcits/rtcmem/src/NodeLink.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "NodeLink.h" + +#include "Node.h" +static asn_oer_constraints_t asn_OER_type_NodeLink_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_NodeLink_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeLink_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeLink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeLink_specs_1 = { + sizeof(struct NodeLink), + offsetof(struct NodeLink, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeLink = { + "NodeLink", + "NodeLink", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeLink_tags_1, + sizeof(asn_DEF_NodeLink_tags_1) + /sizeof(asn_DEF_NodeLink_tags_1[0]), /* 1 */ + asn_DEF_NodeLink_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeLink_tags_1) + /sizeof(asn_DEF_NodeLink_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeLink_constr_1, &asn_PER_type_NodeLink_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeLink_1, + 1, /* Single element */ + &asn_SPC_NodeLink_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/NodeListXY.c b/vcits/rtcmem/src/NodeListXY.c new file mode 100644 index 0000000..bce607b --- /dev/null +++ b/vcits/rtcmem/src/NodeListXY.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "NodeListXY.h" + +static asn_oer_constraints_t asn_OER_type_NodeListXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeListXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeListXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.computed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ComputedLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "computed" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeListXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* computed */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1 = { + sizeof(struct NodeListXY), + offsetof(struct NodeListXY, _asn_ctx), + offsetof(struct NodeListXY, present), + sizeof(((struct NodeListXY *)0)->present), + asn_MAP_NodeListXY_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeListXY = { + "NodeListXY", + "NodeListXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeListXY_constr_1, &asn_PER_type_NodeListXY_constr_1, CHOICE_constraint }, + asn_MBR_NodeListXY_1, + 2, /* Elements count */ + &asn_SPC_NodeListXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/NodeOffsetPointXY.c b/vcits/rtcmem/src/NodeOffsetPointXY.c new file mode 100644 index 0000000..03e3411 --- /dev/null +++ b/vcits/rtcmem/src/NodeOffsetPointXY.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "NodeOffsetPointXY.h" + +static asn_oer_constraints_t asn_OER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_20b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY1" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_22b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY2" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_24b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY3" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_26b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY4" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_28b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY5" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_32b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY6" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_LatLon), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LLmD_64b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-LatLon" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeOffsetPointXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* node-XY1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* node-XY2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* node-XY3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* node-XY4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* node-XY5 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* node-XY6 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* node-LatLon */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1 = { + sizeof(struct NodeOffsetPointXY), + offsetof(struct NodeOffsetPointXY, _asn_ctx), + offsetof(struct NodeOffsetPointXY, present), + sizeof(((struct NodeOffsetPointXY *)0)->present), + asn_MAP_NodeOffsetPointXY_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY = { + "NodeOffsetPointXY", + "NodeOffsetPointXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeOffsetPointXY_constr_1, &asn_PER_type_NodeOffsetPointXY_constr_1, CHOICE_constraint }, + asn_MBR_NodeOffsetPointXY_1, + 8, /* Elements count */ + &asn_SPC_NodeOffsetPointXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/NodeSetXY.c b/vcits/rtcmem/src/NodeSetXY.c new file mode 100644 index 0000000..4b27059 --- /dev/null +++ b/vcits/rtcmem/src/NodeSetXY.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "NodeSetXY.h" + +#include "NodeXY.h" +static asn_oer_constraints_t asn_OER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(2..63)) */}; +asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 2, 63 } /* (SIZE(2..63)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeSetXY_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1 = { + sizeof(struct NodeSetXY), + offsetof(struct NodeSetXY, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeSetXY = { + "NodeSetXY", + "NodeSetXY", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeSetXY_tags_1, + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeSetXY_constr_1, &asn_PER_type_NodeSetXY_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeSetXY_1, + 1, /* Single element */ + &asn_SPC_NodeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/NodeXY.c b/vcits/rtcmem/src/NodeXY.c new file mode 100644 index 0000000..a20b454 --- /dev/null +++ b/vcits/rtcmem/src/NodeXY.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "NodeXY.h" + +#include "NodeAttributeSetXY.h" +asn_TYPE_member_t asn_MBR_NodeXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeXY, delta), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delta" + }, + { ATF_POINTER, 1, offsetof(struct NodeXY, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_NodeXY_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_NodeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* delta */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1 = { + sizeof(struct NodeXY), + offsetof(struct NodeXY, _asn_ctx), + asn_MAP_NodeXY_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_NodeXY_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeXY = { + "NodeXY", + "NodeXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeXY_tags_1, + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeXY_1, + 2, /* Elements count */ + &asn_SPC_NodeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/NumberOfOccupants.c b/vcits/rtcmem/src/NumberOfOccupants.c new file mode 100644 index 0000000..cfb4ad7 --- /dev/null +++ b/vcits/rtcmem/src/NumberOfOccupants.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "NumberOfOccupants.h" + +int +NumberOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_NumberOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants = { + "NumberOfOccupants", + "NumberOfOccupants", + &asn_OP_NativeInteger, + asn_DEF_NumberOfOccupants_tags_1, + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_NumberOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_NumberOfOccupants_constr_1, &asn_PER_type_NumberOfOccupants_constr_1, NumberOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Offset-B09.c b/vcits/rtcmem/src/Offset-B09.c new file mode 100644 index 0000000..73a6edf --- /dev/null +++ b/vcits/rtcmem/src/Offset-B09.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Offset-B09.h" + +int +Offset_B09_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -256 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B09_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-256..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B09_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -256, 255 } /* (-256..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B09_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B09 = { + "Offset-B09", + "Offset-B09", + &asn_OP_NativeInteger, + asn_DEF_Offset_B09_tags_1, + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + asn_DEF_Offset_B09_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B09_constr_1, &asn_PER_type_Offset_B09_constr_1, Offset_B09_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Offset-B10.c b/vcits/rtcmem/src/Offset-B10.c new file mode 100644 index 0000000..8ff8d1a --- /dev/null +++ b/vcits/rtcmem/src/Offset-B10.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Offset-B10.h" + +int +Offset_B10_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -512 && value <= 511)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B10_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-512..511) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B10_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -512, 511 } /* (-512..511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B10_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B10 = { + "Offset-B10", + "Offset-B10", + &asn_OP_NativeInteger, + asn_DEF_Offset_B10_tags_1, + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + asn_DEF_Offset_B10_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B10_constr_1, &asn_PER_type_Offset_B10_constr_1, Offset_B10_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Offset-B11.c b/vcits/rtcmem/src/Offset-B11.c new file mode 100644 index 0000000..c49c5de --- /dev/null +++ b/vcits/rtcmem/src/Offset-B11.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Offset-B11.h" + +int +Offset_B11_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1024 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B11_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1024..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B11_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B11_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B11 = { + "Offset-B11", + "Offset-B11", + &asn_OP_NativeInteger, + asn_DEF_Offset_B11_tags_1, + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + asn_DEF_Offset_B11_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B11_constr_1, &asn_PER_type_Offset_B11_constr_1, Offset_B11_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Offset-B12.c b/vcits/rtcmem/src/Offset-B12.c new file mode 100644 index 0000000..748ce4b --- /dev/null +++ b/vcits/rtcmem/src/Offset-B12.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Offset-B12.h" + +int +Offset_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B12 = { + "Offset-B12", + "Offset-B12", + &asn_OP_NativeInteger, + asn_DEF_Offset_B12_tags_1, + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + asn_DEF_Offset_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B12_constr_1, &asn_PER_type_Offset_B12_constr_1, Offset_B12_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Offset-B13.c b/vcits/rtcmem/src/Offset-B13.c new file mode 100644 index 0000000..ea9a516 --- /dev/null +++ b/vcits/rtcmem/src/Offset-B13.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Offset-B13.h" + +int +Offset_B13_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B13_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-4096..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B13_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, -4096, 4095 } /* (-4096..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B13_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B13 = { + "Offset-B13", + "Offset-B13", + &asn_OP_NativeInteger, + asn_DEF_Offset_B13_tags_1, + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + asn_DEF_Offset_B13_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B13_constr_1, &asn_PER_type_Offset_B13_constr_1, Offset_B13_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Offset-B14.c b/vcits/rtcmem/src/Offset-B14.c new file mode 100644 index 0000000..4423fa3 --- /dev/null +++ b/vcits/rtcmem/src/Offset-B14.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Offset-B14.h" + +int +Offset_B14_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -8192 && value <= 8191)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B14_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-8192..8191) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B14_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, -8192, 8191 } /* (-8192..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B14_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B14 = { + "Offset-B14", + "Offset-B14", + &asn_OP_NativeInteger, + asn_DEF_Offset_B14_tags_1, + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + asn_DEF_Offset_B14_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B14_constr_1, &asn_PER_type_Offset_B14_constr_1, Offset_B14_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Offset-B16.c b/vcits/rtcmem/src/Offset-B16.c new file mode 100644 index 0000000..80a3420 --- /dev/null +++ b/vcits/rtcmem/src/Offset-B16.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Offset-B16.h" + +int +Offset_B16_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32768 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B16_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32768..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B16_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B16_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B16 = { + "Offset-B16", + "Offset-B16", + &asn_OP_NativeInteger, + asn_DEF_Offset_B16_tags_1, + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + asn_DEF_Offset_B16_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B16_constr_1, &asn_PER_type_Offset_B16_constr_1, Offset_B16_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/OpeningDaysHours.c b/vcits/rtcmem/src/OpeningDaysHours.c new file mode 100644 index 0000000..d15ab44 --- /dev/null +++ b/vcits/rtcmem/src/OpeningDaysHours.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "OpeningDaysHours.h" + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_OpeningDaysHours_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours = { + "OpeningDaysHours", + "OpeningDaysHours", + &asn_OP_UTF8String, + asn_DEF_OpeningDaysHours_tags_1, + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + asn_DEF_OpeningDaysHours_tags_1, /* Same as above */ + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + { 0, 0, UTF8String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/OverlayLaneList.c b/vcits/rtcmem/src/OverlayLaneList.c new file mode 100644 index 0000000..2866d93 --- /dev/null +++ b/vcits/rtcmem/src/OverlayLaneList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "OverlayLaneList.h" + +static asn_oer_constraints_t asn_OER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_OverlayLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_OverlayLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1 = { + sizeof(struct OverlayLaneList), + offsetof(struct OverlayLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_OverlayLaneList = { + "OverlayLaneList", + "OverlayLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_OverlayLaneList_tags_1, + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + asn_DEF_OverlayLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_OverlayLaneList_constr_1, &asn_PER_type_OverlayLaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_OverlayLaneList_1, + 1, /* Single element */ + &asn_SPC_OverlayLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PathDeltaTime.c b/vcits/rtcmem/src/PathDeltaTime.c new file mode 100644 index 0000000..4a921be --- /dev/null +++ b/vcits/rtcmem/src/PathDeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PathDeltaTime.h" + +int +PathDeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PathDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PathDeltaTime = { + "PathDeltaTime", + "PathDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_PathDeltaTime_tags_1, + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_PathDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_PathDeltaTime_constr_1, &asn_PER_type_PathDeltaTime_constr_1, PathDeltaTime_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/PathHistory.c b/vcits/rtcmem/src/PathHistory.c new file mode 100644 index 0000000..45be67b --- /dev/null +++ b/vcits/rtcmem/src/PathHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PathHistory.h" + +#include "PathPoint.h" +static asn_oer_constraints_t asn_OER_type_PathHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..40)) */}; +asn_per_constraints_t asn_PER_type_PathHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 40 } /* (SIZE(0..40)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PathHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1 = { + sizeof(struct PathHistory), + offsetof(struct PathHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_PathHistory_tags_1, + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_PathHistory_constr_1, &asn_PER_type_PathHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PathHistory_1, + 1, /* Single element */ + &asn_SPC_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PathPoint.c b/vcits/rtcmem/src/PathPoint.c new file mode 100644 index 0000000..3231180 --- /dev/null +++ b/vcits/rtcmem/src/PathPoint.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PathPoint.h" + +asn_TYPE_member_t asn_MBR_PathPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PathPoint, pathPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathPosition" + }, + { ATF_POINTER, 1, offsetof(struct PathPoint, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathDeltaTime" + }, +}; +static const int asn_MAP_PathPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PathPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PathPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pathDeltaTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1 = { + sizeof(struct PathPoint), + offsetof(struct PathPoint, _asn_ctx), + asn_MAP_PathPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PathPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PathPoint = { + "PathPoint", + "PathPoint", + &asn_OP_SEQUENCE, + asn_DEF_PathPoint_tags_1, + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + asn_DEF_PathPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PathPoint_1, + 2, /* Elements count */ + &asn_SPC_PathPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PedestrianBicycleDetect.c b/vcits/rtcmem/src/PedestrianBicycleDetect.c new file mode 100644 index 0000000..6e20690 --- /dev/null +++ b/vcits/rtcmem/src/PedestrianBicycleDetect.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PedestrianBicycleDetect.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_PedestrianBicycleDetect_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect = { + "PedestrianBicycleDetect", + "PedestrianBicycleDetect", + &asn_OP_BOOLEAN, + asn_DEF_PedestrianBicycleDetect_tags_1, + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + asn_DEF_PedestrianBicycleDetect_tags_1, /* Same as above */ + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/PerformanceClass.c b/vcits/rtcmem/src/PerformanceClass.c new file mode 100644 index 0000000..a79159e --- /dev/null +++ b/vcits/rtcmem/src/PerformanceClass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PerformanceClass.h" + +int +PerformanceClass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PerformanceClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PerformanceClass = { + "PerformanceClass", + "PerformanceClass", + &asn_OP_NativeInteger, + asn_DEF_PerformanceClass_tags_1, + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + asn_DEF_PerformanceClass_tags_1, /* Same as above */ + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + { &asn_OER_type_PerformanceClass_constr_1, &asn_PER_type_PerformanceClass_constr_1, PerformanceClass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/PhoneNumber.c b/vcits/rtcmem/src/PhoneNumber.c new file mode 100644 index 0000000..599ff3b --- /dev/null +++ b/vcits/rtcmem/src/PhoneNumber.c @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PhoneNumber.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* . */ + 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */ +}; +static const int permitted_alphabet_code2value_1[11] = { +32,48,49,50,51,52,53,54,55,56,57,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is NumericString */ + const NumericString_t *st = (const NumericString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +PhoneNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const NumericString_t *st = (const NumericString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 16) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_PhoneNumber_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_PhoneNumber_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using NumericString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 32, 57 } /* (32..57) */, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + asn_PER_MAP_PhoneNumber_1_v2c, /* Value to PER code map */ + asn_PER_MAP_PhoneNumber_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_PhoneNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PhoneNumber = { + "PhoneNumber", + "PhoneNumber", + &asn_OP_NumericString, + asn_DEF_PhoneNumber_tags_1, + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + asn_DEF_PhoneNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_PhoneNumber_constr_1, &asn_PER_type_PhoneNumber_constr_1, PhoneNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/PosCentMass.c b/vcits/rtcmem/src/PosCentMass.c new file mode 100644 index 0000000..9134ee9 --- /dev/null +++ b/vcits/rtcmem/src/PosCentMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PosCentMass.h" + +int +PosCentMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosCentMass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..63) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosCentMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosCentMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosCentMass = { + "PosCentMass", + "PosCentMass", + &asn_OP_NativeInteger, + asn_DEF_PosCentMass_tags_1, + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + asn_DEF_PosCentMass_tags_1, /* Same as above */ + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + { &asn_OER_type_PosCentMass_constr_1, &asn_PER_type_PosCentMass_constr_1, PosCentMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/PosConfidenceEllipse.c b/vcits/rtcmem/src/PosConfidenceEllipse.c new file mode 100644 index 0000000..3f80354 --- /dev/null +++ b/vcits/rtcmem/src/PosConfidenceEllipse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PosConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMinorConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorOrientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PosConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PosConfidenceEllipse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* semiMajorOrientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1 = { + sizeof(struct PosConfidenceEllipse), + offsetof(struct PosConfidenceEllipse, _asn_ctx), + asn_MAP_PosConfidenceEllipse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse = { + "PosConfidenceEllipse", + "PosConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_PosConfidenceEllipse_tags_1, + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_PosConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PosConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_PosConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PosFrontAx.c b/vcits/rtcmem/src/PosFrontAx.c new file mode 100644 index 0000000..fddf0b5 --- /dev/null +++ b/vcits/rtcmem/src/PosFrontAx.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PosFrontAx.h" + +int +PosFrontAx_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..20) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (1..20) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosFrontAx_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosFrontAx = { + "PosFrontAx", + "PosFrontAx", + &asn_OP_NativeInteger, + asn_DEF_PosFrontAx_tags_1, + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + asn_DEF_PosFrontAx_tags_1, /* Same as above */ + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + { &asn_OER_type_PosFrontAx_constr_1, &asn_PER_type_PosFrontAx_constr_1, PosFrontAx_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/PosLonCarr.c b/vcits/rtcmem/src/PosLonCarr.c new file mode 100644 index 0000000..2d23897 --- /dev/null +++ b/vcits/rtcmem/src/PosLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PosLonCarr.h" + +int +PosLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosLonCarr = { + "PosLonCarr", + "PosLonCarr", + &asn_OP_NativeInteger, + asn_DEF_PosLonCarr_tags_1, + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + asn_DEF_PosLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_PosLonCarr_constr_1, &asn_PER_type_PosLonCarr_constr_1, PosLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/PosPillar.c b/vcits/rtcmem/src/PosPillar.c new file mode 100644 index 0000000..0ae52fe --- /dev/null +++ b/vcits/rtcmem/src/PosPillar.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PosPillar.h" + +int +PosPillar_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 30)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosPillar_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..30) */, + -1}; +asn_per_constraints_t asn_PER_type_PosPillar_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 30 } /* (1..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosPillar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosPillar = { + "PosPillar", + "PosPillar", + &asn_OP_NativeInteger, + asn_DEF_PosPillar_tags_1, + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + asn_DEF_PosPillar_tags_1, /* Same as above */ + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + { &asn_OER_type_PosPillar_constr_1, &asn_PER_type_PosPillar_constr_1, PosPillar_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Position3D-addGrpC.c b/vcits/rtcmem/src/Position3D-addGrpC.c new file mode 100644 index 0000000..33ca39c --- /dev/null +++ b/vcits/rtcmem/src/Position3D-addGrpC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Position3D-addGrpC.h" + +asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D_addGrpC, altitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_Position3D_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1 = { + sizeof(struct Position3D_addGrpC), + offsetof(struct Position3D_addGrpC, _asn_ctx), + asn_MAP_Position3D_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC = { + "Position3D-addGrpC", + "Position3D-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_addGrpC_tags_1, + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_Position3D_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Position3D_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_Position3D_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Position3D.c b/vcits/rtcmem/src/Position3D.c new file mode 100644 index 0000000..8d5d067 --- /dev/null +++ b/vcits/rtcmem/src/Position3D.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Position3D.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct Position3D__regional), + offsetof(struct Position3D__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Position3D_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D, lat), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_NOFLAGS, 0, offsetof(struct Position3D, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "long" + }, + { ATF_POINTER, 2, offsetof(struct Position3D, elevation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Elevation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 1, offsetof(struct Position3D, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_Position3D_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Position3D_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1 = { + sizeof(struct Position3D), + offsetof(struct Position3D, _asn_ctx), + asn_MAP_Position3D_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Position3D_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D = { + "Position3D", + "Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_tags_1, + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + asn_DEF_Position3D_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Position3D_1, + 4, /* Elements count */ + &asn_SPC_Position3D_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PositionConfidence.c b/vcits/rtcmem/src/PositionConfidence.c new file mode 100644 index 0000000..99c0fc4 --- /dev/null +++ b/vcits/rtcmem/src/PositionConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PositionConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositionConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 5, "a500m" }, + { 2, 5, "a200m" }, + { 3, 5, "a100m" }, + { 4, 4, "a50m" }, + { 5, 4, "a20m" }, + { 6, 4, "a10m" }, + { 7, 3, "a5m" }, + { 8, 3, "a2m" }, + { 9, 3, "a1m" }, + { 10, 5, "a50cm" }, + { 11, 5, "a20cm" }, + { 12, 5, "a10cm" }, + { 13, 4, "a5cm" }, + { 14, 4, "a2cm" }, + { 15, 4, "a1cm" } +}; +static const unsigned int asn_MAP_PositionConfidence_enum2value_1[] = { + 3, /* a100m(3) */ + 12, /* a10cm(12) */ + 6, /* a10m(6) */ + 15, /* a1cm(15) */ + 9, /* a1m(9) */ + 2, /* a200m(2) */ + 11, /* a20cm(11) */ + 5, /* a20m(5) */ + 14, /* a2cm(14) */ + 8, /* a2m(8) */ + 1, /* a500m(1) */ + 10, /* a50cm(10) */ + 4, /* a50m(4) */ + 13, /* a5cm(13) */ + 7, /* a5m(7) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1 = { + asn_MAP_PositionConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositionConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidence = { + "PositionConfidence", + "PositionConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_PositionConfidence_tags_1, + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionConfidence_constr_1, &asn_PER_type_PositionConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositionConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PositionConfidenceSet.c b/vcits/rtcmem/src/PositionConfidenceSet.c new file mode 100644 index 0000000..240837e --- /dev/null +++ b/vcits/rtcmem/src/PositionConfidenceSet.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PositionConfidenceSet.h" + +asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, pos), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pos" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, elevation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ElevationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidenceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionConfidenceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pos */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* elevation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1 = { + sizeof(struct PositionConfidenceSet), + offsetof(struct PositionConfidenceSet, _asn_ctx), + asn_MAP_PositionConfidenceSet_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet = { + "PositionConfidenceSet", + "PositionConfidenceSet", + &asn_OP_SEQUENCE, + asn_DEF_PositionConfidenceSet_tags_1, + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidenceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionConfidenceSet_1, + 2, /* Elements count */ + &asn_SPC_PositionConfidenceSet_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PositionOfOccupants.c b/vcits/rtcmem/src/PositionOfOccupants.c new file mode 100644 index 0000000..338da9c --- /dev/null +++ b/vcits/rtcmem/src/PositionOfOccupants.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PositionOfOccupants.h" + +int +PositionOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { 0, 0 }, + 20 /* (SIZE(20..20)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PositionOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants = { + "PositionOfOccupants", + "PositionOfOccupants", + &asn_OP_BIT_STRING, + asn_DEF_PositionOfOccupants_tags_1, + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_PositionOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfOccupants_constr_1, &asn_PER_type_PositionOfOccupants_constr_1, PositionOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PositionOfPillars.c b/vcits/rtcmem/src/PositionOfPillars.c new file mode 100644 index 0000000..67c0608 --- /dev/null +++ b/vcits/rtcmem/src/PositionOfPillars.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PositionOfPillars.h" + +static asn_oer_constraints_t asn_OER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_PositionOfPillars_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PosPillar, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionOfPillars_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_PositionOfPillars_specs_1 = { + sizeof(struct PositionOfPillars), + offsetof(struct PositionOfPillars, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfPillars = { + "PositionOfPillars", + "PositionOfPillars", + &asn_OP_SEQUENCE_OF, + asn_DEF_PositionOfPillars_tags_1, + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + asn_DEF_PositionOfPillars_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfPillars_constr_1, &asn_PER_type_PositionOfPillars_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PositionOfPillars_1, + 1, /* Single element */ + &asn_SPC_PositionOfPillars_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PositionalAccuracy.c b/vcits/rtcmem/src/PositionalAccuracy.c new file mode 100644 index 0000000..70c234c --- /dev/null +++ b/vcits/rtcmem/src/PositionalAccuracy.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PositionalAccuracy.h" + +asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMajor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMinor), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMinorAxisAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, orientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisOrientation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "orientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionalAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionalAccuracy_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinor */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* orientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1 = { + sizeof(struct PositionalAccuracy), + offsetof(struct PositionalAccuracy, _asn_ctx), + asn_MAP_PositionalAccuracy_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy = { + "PositionalAccuracy", + "PositionalAccuracy", + &asn_OP_SEQUENCE, + asn_DEF_PositionalAccuracy_tags_1, + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + asn_DEF_PositionalAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionalAccuracy_1, + 3, /* Elements count */ + &asn_SPC_PositionalAccuracy_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PositioningSolutionType.c b/vcits/rtcmem/src/PositioningSolutionType.c new file mode 100644 index 0000000..abc3a64 --- /dev/null +++ b/vcits/rtcmem/src/PositioningSolutionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PositioningSolutionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositioningSolutionType_value2enum_1[] = { + { 0, 21, "noPositioningSolution" }, + { 1, 5, "sGNSS" }, + { 2, 5, "dGNSS" }, + { 3, 11, "sGNSSplusDR" }, + { 4, 11, "dGNSSplusDR" }, + { 5, 2, "dR" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PositioningSolutionType_enum2value_1[] = { + 2, /* dGNSS(2) */ + 4, /* dGNSSplusDR(4) */ + 5, /* dR(5) */ + 0, /* noPositioningSolution(0) */ + 1, /* sGNSS(1) */ + 3 /* sGNSSplusDR(3) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_PositioningSolutionType_specs_1 = { + asn_MAP_PositioningSolutionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositioningSolutionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositioningSolutionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType = { + "PositioningSolutionType", + "PositioningSolutionType", + &asn_OP_NativeEnumerated, + asn_DEF_PositioningSolutionType_tags_1, + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + asn_DEF_PositioningSolutionType_tags_1, /* Same as above */ + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + { &asn_OER_type_PositioningSolutionType_constr_1, &asn_PER_type_PositioningSolutionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositioningSolutionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PostCrashSubCauseCode.c b/vcits/rtcmem/src/PostCrashSubCauseCode.c new file mode 100644 index 0000000..058a605 --- /dev/null +++ b/vcits/rtcmem/src/PostCrashSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PostCrashSubCauseCode.h" + +int +PostCrashSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PostCrashSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode = { + "PostCrashSubCauseCode", + "PostCrashSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_PostCrashSubCauseCode_tags_1, + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_PostCrashSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_PostCrashSubCauseCode_constr_1, &asn_PER_type_PostCrashSubCauseCode_constr_1, PostCrashSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/PreemptPriorityList.c b/vcits/rtcmem/src/PreemptPriorityList.c new file mode 100644 index 0000000..e88bcf3 --- /dev/null +++ b/vcits/rtcmem/src/PreemptPriorityList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PreemptPriorityList.h" + +#include "SignalControlZone.h" +static asn_oer_constraints_t asn_OER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalControlZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PreemptPriorityList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1 = { + sizeof(struct PreemptPriorityList), + offsetof(struct PreemptPriorityList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList = { + "PreemptPriorityList", + "PreemptPriorityList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PreemptPriorityList_tags_1, + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + asn_DEF_PreemptPriorityList_tags_1, /* Same as above */ + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + { &asn_OER_type_PreemptPriorityList_constr_1, &asn_PER_type_PreemptPriorityList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PreemptPriorityList_1, + 1, /* Single element */ + &asn_SPC_PreemptPriorityList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PrioritizationResponse.c b/vcits/rtcmem/src/PrioritizationResponse.c new file mode 100644 index 0000000..532fb79 --- /dev/null +++ b/vcits/rtcmem/src/PrioritizationResponse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PrioritizationResponse.h" + +asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, priorState), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "priorState" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PrioritizationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* priorState */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroup */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1 = { + sizeof(struct PrioritizationResponse), + offsetof(struct PrioritizationResponse, _asn_ctx), + asn_MAP_PrioritizationResponse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse = { + "PrioritizationResponse", + "PrioritizationResponse", + &asn_OP_SEQUENCE, + asn_DEF_PrioritizationResponse_tags_1, + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PrioritizationResponse_1, + 3, /* Elements count */ + &asn_SPC_PrioritizationResponse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PrioritizationResponseList.c b/vcits/rtcmem/src/PrioritizationResponseList.c new file mode 100644 index 0000000..34fdaa5 --- /dev/null +++ b/vcits/rtcmem/src/PrioritizationResponseList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PrioritizationResponseList.h" + +#include "PrioritizationResponse.h" +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PrioritizationResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1 = { + sizeof(struct PrioritizationResponseList), + offsetof(struct PrioritizationResponseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList = { + "PrioritizationResponseList", + "PrioritizationResponseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PrioritizationResponseList_tags_1, + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseList_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + { &asn_OER_type_PrioritizationResponseList_constr_1, &asn_PER_type_PrioritizationResponseList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PrioritizationResponseList_1, + 1, /* Single element */ + &asn_SPC_PrioritizationResponseList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PrioritizationResponseStatus.c b/vcits/rtcmem/src/PrioritizationResponseStatus.c new file mode 100644 index 0000000..d8a0f1c --- /dev/null +++ b/vcits/rtcmem/src/PrioritizationResponseStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PrioritizationResponseStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PrioritizationResponseStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 9, "requested" }, + { 2, 10, "processing" }, + { 3, 17, "watchOtherTraffic" }, + { 4, 7, "granted" }, + { 5, 8, "rejected" }, + { 6, 11, "maxPresence" }, + { 7, 15, "reserviceLocked" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PrioritizationResponseStatus_enum2value_1[] = { + 4, /* granted(4) */ + 6, /* maxPresence(6) */ + 2, /* processing(2) */ + 5, /* rejected(5) */ + 1, /* requested(1) */ + 7, /* reserviceLocked(7) */ + 0, /* unknown(0) */ + 3 /* watchOtherTraffic(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1 = { + asn_MAP_PrioritizationResponseStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PrioritizationResponseStatus_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus = { + "PrioritizationResponseStatus", + "PrioritizationResponseStatus", + &asn_OP_NativeEnumerated, + asn_DEF_PrioritizationResponseStatus_tags_1, + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_PrioritizationResponseStatus_constr_1, &asn_PER_type_PrioritizationResponseStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PrioritizationResponseStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PriorityRequestType.c b/vcits/rtcmem/src/PriorityRequestType.c new file mode 100644 index 0000000..496177e --- /dev/null +++ b/vcits/rtcmem/src/PriorityRequestType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PriorityRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PriorityRequestType_value2enum_1[] = { + { 0, 27, "priorityRequestTypeReserved" }, + { 1, 15, "priorityRequest" }, + { 2, 21, "priorityRequestUpdate" }, + { 3, 20, "priorityCancellation" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PriorityRequestType_enum2value_1[] = { + 3, /* priorityCancellation(3) */ + 1, /* priorityRequest(1) */ + 0, /* priorityRequestTypeReserved(0) */ + 2 /* priorityRequestUpdate(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1 = { + asn_MAP_PriorityRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PriorityRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PriorityRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PriorityRequestType = { + "PriorityRequestType", + "PriorityRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PriorityRequestType_tags_1, + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + asn_DEF_PriorityRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_PriorityRequestType_constr_1, &asn_PER_type_PriorityRequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PriorityRequestType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ProtectedCommunicationZone.c b/vcits/rtcmem/src/ProtectedCommunicationZone.c new file mode 100644 index 0000000..91c610b --- /dev/null +++ b/vcits/rtcmem/src/ProtectedCommunicationZone.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ProtectedCommunicationZone.h" + +asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneType" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expiryTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 2, offsetof(struct ProtectedCommunicationZone, protectedZoneRadius), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneRadius, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneRadius" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, protectedZoneID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneID" + }, +}; +static const int asn_MAP_ProtectedCommunicationZone_oms_1[] = { 1, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ProtectedCommunicationZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expiryTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protectedZoneRadius */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* protectedZoneID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1 = { + sizeof(struct ProtectedCommunicationZone), + offsetof(struct ProtectedCommunicationZone, _asn_ctx), + asn_MAP_ProtectedCommunicationZone_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ProtectedCommunicationZone_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone = { + "ProtectedCommunicationZone", + "ProtectedCommunicationZone", + &asn_OP_SEQUENCE, + asn_DEF_ProtectedCommunicationZone_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZone_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ProtectedCommunicationZone_1, + 6, /* Elements count */ + &asn_SPC_ProtectedCommunicationZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ProtectedCommunicationZonesRSU.c b/vcits/rtcmem/src/ProtectedCommunicationZonesRSU.c new file mode 100644 index 0000000..f554bf3 --- /dev/null +++ b/vcits/rtcmem/src/ProtectedCommunicationZonesRSU.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ProtectedCommunicationZonesRSU.h" + +#include "ProtectedCommunicationZone.h" +static asn_oer_constraints_t asn_OER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ProtectedCommunicationZonesRSU_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtectedCommunicationZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZonesRSU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ProtectedCommunicationZonesRSU_specs_1 = { + sizeof(struct ProtectedCommunicationZonesRSU), + offsetof(struct ProtectedCommunicationZonesRSU, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU = { + "ProtectedCommunicationZonesRSU", + "ProtectedCommunicationZonesRSU", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedCommunicationZonesRSU_constr_1, &asn_PER_type_ProtectedCommunicationZonesRSU_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtectedCommunicationZonesRSU_1, + 1, /* Single element */ + &asn_SPC_ProtectedCommunicationZonesRSU_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ProtectedZoneID.c b/vcits/rtcmem/src/ProtectedZoneID.c new file mode 100644 index 0000000..c32d975 --- /dev/null +++ b/vcits/rtcmem/src/ProtectedZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ProtectedZoneID.h" + +int +ProtectedZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID = { + "ProtectedZoneID", + "ProtectedZoneID", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneID_tags_1, + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneID_constr_1, &asn_PER_type_ProtectedZoneID_constr_1, ProtectedZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/ProtectedZoneRadius.c b/vcits/rtcmem/src/ProtectedZoneRadius.c new file mode 100644 index 0000000..881fb95 --- /dev/null +++ b/vcits/rtcmem/src/ProtectedZoneRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ProtectedZoneRadius.h" + +int +ProtectedZoneRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 255 } /* (1..255,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius = { + "ProtectedZoneRadius", + "ProtectedZoneRadius", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneRadius_tags_1, + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneRadius_constr_1, &asn_PER_type_ProtectedZoneRadius_constr_1, ProtectedZoneRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/ProtectedZoneType.c b/vcits/rtcmem/src/ProtectedZoneType.c new file mode 100644 index 0000000..e420e05 --- /dev/null +++ b/vcits/rtcmem/src/ProtectedZoneType.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ProtectedZoneType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ProtectedZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ProtectedZoneType_enum2value_1[] = { + 0, /* permanentCenDsrcTolling(0) */ + 1 /* temporaryCenDsrcTolling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1 = { + asn_MAP_ProtectedZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ProtectedZoneType_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType = { + "ProtectedZoneType", + "ProtectedZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_ProtectedZoneType_tags_1, + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneType_constr_1, &asn_PER_type_ProtectedZoneType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ProtectedZoneType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PtActivation.c b/vcits/rtcmem/src/PtActivation.c new file mode 100644 index 0000000..ff79542 --- /dev/null +++ b/vcits/rtcmem/src/PtActivation.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PtActivation.h" + +static asn_TYPE_member_t asn_MBR_PtActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationData" + }, +}; +static const ber_tlv_tag_t asn_DEF_PtActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PtActivation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptActivationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivationData */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_PtActivation_specs_1 = { + sizeof(struct PtActivation), + offsetof(struct PtActivation, _asn_ctx), + asn_MAP_PtActivation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PtActivation = { + "PtActivation", + "PtActivation", + &asn_OP_SEQUENCE, + asn_DEF_PtActivation_tags_1, + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + asn_DEF_PtActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PtActivation_1, + 2, /* Elements count */ + &asn_SPC_PtActivation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PtActivationData.c b/vcits/rtcmem/src/PtActivationData.c new file mode 100644 index 0000000..775fe73 --- /dev/null +++ b/vcits/rtcmem/src/PtActivationData.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PtActivationData.h" + +int +PtActivationData_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationData_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..20)) */}; +asn_per_constraints_t asn_PER_type_PtActivationData_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (SIZE(1..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationData = { + "PtActivationData", + "PtActivationData", + &asn_OP_OCTET_STRING, + asn_DEF_PtActivationData_tags_1, + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + asn_DEF_PtActivationData_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationData_constr_1, &asn_PER_type_PtActivationData_constr_1, PtActivationData_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/PtActivationType.c b/vcits/rtcmem/src/PtActivationType.c new file mode 100644 index 0000000..cf10e8f --- /dev/null +++ b/vcits/rtcmem/src/PtActivationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PtActivationType.h" + +int +PtActivationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_PtActivationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationType = { + "PtActivationType", + "PtActivationType", + &asn_OP_NativeInteger, + asn_DEF_PtActivationType_tags_1, + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + asn_DEF_PtActivationType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationType_constr_1, &asn_PER_type_PtActivationType_constr_1, PtActivationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/PtvRequestType.c b/vcits/rtcmem/src/PtvRequestType.c new file mode 100644 index 0000000..206c414 --- /dev/null +++ b/vcits/rtcmem/src/PtvRequestType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "PtvRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtvRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PtvRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PtvRequestType_value2enum_1[] = { + { 0, 10, "preRequest" }, + { 1, 11, "mainRequest" }, + { 2, 16, "doorCloseRequest" }, + { 3, 13, "cancelRequest" }, + { 4, 16, "emergencyRequest" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PtvRequestType_enum2value_1[] = { + 3, /* cancelRequest(3) */ + 2, /* doorCloseRequest(2) */ + 4, /* emergencyRequest(4) */ + 1, /* mainRequest(1) */ + 0 /* preRequest(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PtvRequestType_specs_1 = { + asn_MAP_PtvRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PtvRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 6, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PtvRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtvRequestType = { + "PtvRequestType", + "PtvRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PtvRequestType_tags_1, + sizeof(asn_DEF_PtvRequestType_tags_1) + /sizeof(asn_DEF_PtvRequestType_tags_1[0]), /* 1 */ + asn_DEF_PtvRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtvRequestType_tags_1) + /sizeof(asn_DEF_PtvRequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtvRequestType_constr_1, &asn_PER_type_PtvRequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PtvRequestType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RTCM-Revision.c b/vcits/rtcmem/src/RTCM-Revision.c new file mode 100644 index 0000000..ec0948d --- /dev/null +++ b/vcits/rtcmem/src/RTCM-Revision.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RTCM-Revision.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RTCM_Revision_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "rtcmRev2" }, + { 2, 8, "rtcmRev3" }, + { 3, 8, "reserved" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RTCM_Revision_enum2value_1[] = { + 3, /* reserved(3) */ + 1, /* rtcmRev2(1) */ + 2, /* rtcmRev3(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1 = { + asn_MAP_RTCM_Revision_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RTCM_Revision_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RTCM_Revision_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCM_Revision = { + "RTCM-Revision", + "RTCM-Revision", + &asn_OP_NativeEnumerated, + asn_DEF_RTCM_Revision_tags_1, + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + asn_DEF_RTCM_Revision_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCM_Revision_constr_1, &asn_PER_type_RTCM_Revision_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RTCM_Revision_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RTCMEM.c b/vcits/rtcmem/src/RTCMEM.c new file mode 100644 index 0000000..1619b89 --- /dev/null +++ b/vcits/rtcmem/src/RTCMEM.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "RTCMEM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/RTCMEM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RTCMEM.h" + +static asn_TYPE_member_t asn_MBR_RTCMEM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMEM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsPduHeader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMEM, rtcmc), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMcorrections, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rtcmc" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMEM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMEM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rtcmc */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RTCMEM_specs_1 = { + sizeof(struct RTCMEM), + offsetof(struct RTCMEM, _asn_ctx), + asn_MAP_RTCMEM_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMEM = { + "RTCMEM", + "RTCMEM", + &asn_OP_SEQUENCE, + asn_DEF_RTCMEM_tags_1, + sizeof(asn_DEF_RTCMEM_tags_1) + /sizeof(asn_DEF_RTCMEM_tags_1[0]), /* 1 */ + asn_DEF_RTCMEM_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMEM_tags_1) + /sizeof(asn_DEF_RTCMEM_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMEM_1, + 2, /* Elements count */ + &asn_SPC_RTCMEM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RTCMcorrections.c b/vcits/rtcmem/src/RTCMcorrections.c new file mode 100644 index 0000000..f7543fa --- /dev/null +++ b/vcits/rtcmem/src/RTCMcorrections.c @@ -0,0 +1,194 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RTCMcorrections.h" + +#include "FullPositionVector.h" +#include "RTCMheader.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RTCMcorrections, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct RTCMcorrections__regional), + offsetof(struct RTCMcorrections__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RTCMcorrections_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, rev), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCM_Revision, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rev" + }, + { ATF_POINTER, 3, offsetof(struct RTCMcorrections, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 2, offsetof(struct RTCMcorrections, anchorPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FullPositionVector, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "anchorPoint" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, rtcmHeader), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMheader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rtcmHeader" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgs), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMmessageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgs" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RTCMcorrections_oms_1[] = { 2, 3, 4, 6 }; +static const ber_tlv_tag_t asn_DEF_RTCMcorrections_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMcorrections_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rev */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* anchorPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rtcmHeader */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* msgs */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RTCMcorrections_specs_1 = { + sizeof(struct RTCMcorrections), + offsetof(struct RTCMcorrections, _asn_ctx), + asn_MAP_RTCMcorrections_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_RTCMcorrections_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMcorrections = { + "RTCMcorrections", + "RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_RTCMcorrections_tags_1, + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + asn_DEF_RTCMcorrections_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMcorrections_1, + 7, /* Elements count */ + &asn_SPC_RTCMcorrections_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RTCMheader.c b/vcits/rtcmem/src/RTCMheader.c new file mode 100644 index 0000000..e9052bc --- /dev/null +++ b/vcits/rtcmem/src/RTCMheader.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RTCMheader.h" + +asn_TYPE_member_t asn_MBR_RTCMheader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, status), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNSSstatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, offsetSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AntennaOffsetSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMheader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMheader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* offsetSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1 = { + sizeof(struct RTCMheader), + offsetof(struct RTCMheader, _asn_ctx), + asn_MAP_RTCMheader_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMheader = { + "RTCMheader", + "RTCMheader", + &asn_OP_SEQUENCE, + asn_DEF_RTCMheader_tags_1, + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + asn_DEF_RTCMheader_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMheader_1, + 2, /* Elements count */ + &asn_SPC_RTCMheader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RTCMmessage.c b/vcits/rtcmem/src/RTCMmessage.c new file mode 100644 index 0000000..bda938d --- /dev/null +++ b/vcits/rtcmem/src/RTCMmessage.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RTCMmessage.h" + +int +RTCMmessage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1023)) */}; +asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (SIZE(1..1023)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessage = { + "RTCMmessage", + "RTCMmessage", + &asn_OP_OCTET_STRING, + asn_DEF_RTCMmessage_tags_1, + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCMmessage_constr_1, &asn_PER_type_RTCMmessage_constr_1, RTCMmessage_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RTCMmessageList.c b/vcits/rtcmem/src/RTCMmessageList.c new file mode 100644 index 0000000..6651b12 --- /dev/null +++ b/vcits/rtcmem/src/RTCMmessageList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RTCMmessageList.h" + +static asn_oer_constraints_t asn_OER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RTCMmessageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RTCMmessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1 = { + sizeof(struct RTCMmessageList), + offsetof(struct RTCMmessageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessageList = { + "RTCMmessageList", + "RTCMmessageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RTCMmessageList_tags_1, + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessageList_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCMmessageList_constr_1, &asn_PER_type_RTCMmessageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RTCMmessageList_1, + 1, /* Single element */ + &asn_SPC_RTCMmessageList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ReferencePosition.c b/vcits/rtcmem/src/ReferencePosition.c new file mode 100644 index 0000000..39266fa --- /dev/null +++ b/vcits/rtcmem/src/ReferencePosition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ReferencePosition.h" + +asn_TYPE_member_t asn_MBR_ReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PosConfidenceEllipse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionConfidenceEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* longitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* positionConfidenceEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1 = { + sizeof(struct ReferencePosition), + offsetof(struct ReferencePosition, _asn_ctx), + asn_MAP_ReferencePosition_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReferencePosition = { + "ReferencePosition", + "ReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_ReferencePosition_tags_1, + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_ReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReferencePosition_1, + 4, /* Elements count */ + &asn_SPC_ReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RegionId.c b/vcits/rtcmem/src/RegionId.c new file mode 100644 index 0000000..af6c4f0 --- /dev/null +++ b/vcits/rtcmem/src/RegionId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RegionId.h" + +int +RegionId_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RegionId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RegionId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RegionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RegionId = { + "RegionId", + "RegionId", + &asn_OP_NativeInteger, + asn_DEF_RegionId_tags_1, + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + asn_DEF_RegionId_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + { &asn_OER_type_RegionId_constr_1, &asn_PER_type_RegionId_constr_1, RegionId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/RegionalExtension.c b/vcits/rtcmem/src/RegionalExtension.c new file mode 100644 index 0000000..0e63353 --- /dev/null +++ b/vcits/rtcmem/src/RegionalExtension.c @@ -0,0 +1,4204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RegionalExtension.h" + +static const long asn_VAL_5_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MapData_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_5_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MapData_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MapData_1[] = { + { 1, 2, asn_IOS_Reg_MapData_1_rows } +}; +static const long asn_VAL_1_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_ConnectionManeuverAssist_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_1_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionManeuverAssist_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_ConnectionManeuverAssist_1[] = { + { 1, 2, asn_IOS_Reg_ConnectionManeuverAssist_1_rows } +}; +static const long asn_VAL_2_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_GenericLane_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_2_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionTrajectory_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_GenericLane_1[] = { + { 1, 2, asn_IOS_Reg_GenericLane_1_rows } +}; +static const long asn_VAL_3_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_IntersectionState_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_3_addGrpC }, + { "&Type", aioc__type, &asn_DEF_IntersectionState_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_IntersectionState_1[] = { + { 1, 2, asn_IOS_Reg_IntersectionState_1_rows } +}; +static const long asn_VAL_4_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_LaneAttributes_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_4_addGrpC }, + { "&Type", aioc__type, &asn_DEF_LaneAttributes_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_LaneAttributes_1[] = { + { 1, 2, asn_IOS_Reg_LaneAttributes_1_rows } +}; +static const long asn_VAL_6_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MovementEvent_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_6_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MovementEvent_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MovementEvent_1[] = { + { 1, 2, asn_IOS_Reg_MovementEvent_1_rows } +}; +static const long asn_VAL_7_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_NodeAttributeSetXY_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_7_addGrpC }, + { "&Type", aioc__type, &asn_DEF_NodeAttributeSet_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_NodeAttributeSetXY_1[] = { + { 1, 2, asn_IOS_Reg_NodeAttributeSetXY_1_rows } +}; +static const long asn_VAL_8_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_Position3D_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_8_addGrpC }, + { "&Type", aioc__type, &asn_DEF_Position3D_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_Position3D_1[] = { + { 1, 2, asn_IOS_Reg_Position3D_1_rows } +}; +static const long asn_VAL_9_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RequestorDescription_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_9_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RequestorDescription_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RequestorDescription_1[] = { + { 1, 2, asn_IOS_Reg_RequestorDescription_1_rows } +}; +static const long asn_VAL_10_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RestrictionUserType_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_10_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RestrictionUserType_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RestrictionUserType_1[] = { + { 1, 2, asn_IOS_Reg_RestrictionUserType_1_rows } +}; +static const long asn_VAL_11_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_SignalStatusPackage_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_11_addGrpC }, + { "&Type", aioc__type, &asn_DEF_SignalStatusPackage_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_SignalStatusPackage_1[] = { + { 1, 2, asn_IOS_Reg_SignalStatusPackage_1_rows } +}; +static int +memb_regionId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MapData_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MapData_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MapData, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_ConnectionManeuverAssist_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_ConnectionManeuverAssist_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_ConnectionManeuverAssist, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_GenericLane_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_GenericLane_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_GenericLane, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_IntersectionState_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_IntersectionState_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_IntersectionState, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_LaneAttributes_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_LaneAttributes_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_LaneAttributes, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MovementEvent_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MovementEvent_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MovementEvent, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_NodeAttributeSetXY_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_NodeAttributeSetXY_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_NodeAttributeSetXY, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_Position3D_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_Position3D_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_Position3D, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RequestorDescription_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RequestorDescription_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RequestorDescription, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RestrictionUserType_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RestrictionUserType_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RestrictionUserType, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_SignalStatusPackage_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_SignalStatusPackage_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_SignalStatusPackage, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_regionId_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_11 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_14 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_15 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_17 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_18 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_20 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_21 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_23 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_26 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_27 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_29 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_30 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_30 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_32 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_33 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_35 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_36 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_38 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_39 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_41 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_42 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_42 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_44 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_44 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_45 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_47 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_47 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_48 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_50 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_51 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_53 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_53 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_54 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_54 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_56 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_56 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_57 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_57 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_59 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_60 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_62 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_63 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_63 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_65 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_65 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_66 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_66 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_68 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_68 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_69 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_69 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_71 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_71 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_72 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_74 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_74 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_75 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_75 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_77 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_77 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_78 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_78 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_80 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_80 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_81 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_81 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regExtValue_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData__regExtValue, choice.MapData_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MapData_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MapData-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_3[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MapData-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_3 = { + sizeof(struct Reg_MapData__regExtValue), + offsetof(struct Reg_MapData__regExtValue, _asn_ctx), + offsetof(struct Reg_MapData__regExtValue, present), + sizeof(((struct Reg_MapData__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_3, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_3 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_3, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MapData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_2, &asn_PER_memb_regionId_constr_2, memb_regionId_constraint_1 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_3, + select_Reg_MapData_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_3, &asn_PER_memb_regExtValue_constr_3, memb_regExtValue_constraint_1 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_1 = { + sizeof(struct Reg_MapData), + offsetof(struct Reg_MapData, _asn_ctx), + asn_MAP_Reg_MapData_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MapData = { + "Reg-MapData", + "Reg-MapData", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MapData_tags_1, + sizeof(asn_DEF_Reg_MapData_tags_1) + /sizeof(asn_DEF_Reg_MapData_tags_1[0]), /* 1 */ + asn_DEF_Reg_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_Reg_MapData_tags_1) + /sizeof(asn_DEF_Reg_MapData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MapData_1, + 2, /* Elements count */ + &asn_SPC_Reg_MapData_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_6 = { + sizeof(struct Reg_RTCMcorrections__regExtValue), + offsetof(struct Reg_RTCMcorrections__regExtValue, _asn_ctx), + offsetof(struct Reg_RTCMcorrections__regExtValue, present), + sizeof(((struct Reg_RTCMcorrections__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_6 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_5, &asn_PER_memb_regionId_constr_5, memb_regionId_constraint_4 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_6, + 0, + { &asn_OER_memb_regExtValue_constr_6, &asn_PER_memb_regExtValue_constr_6, memb_regExtValue_constraint_4 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RTCMcorrections_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RTCMcorrections_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_4 = { + sizeof(struct Reg_RTCMcorrections), + offsetof(struct Reg_RTCMcorrections, _asn_ctx), + asn_MAP_Reg_RTCMcorrections_tag2el_4, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections = { + "Reg-RTCMcorrections", + "Reg-RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RTCMcorrections_tags_4, + sizeof(asn_DEF_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + asn_DEF_Reg_RTCMcorrections_tags_4, /* Same as above */ + sizeof(asn_DEF_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RTCMcorrections_4, + 2, /* Elements count */ + &asn_SPC_Reg_RTCMcorrections_specs_4 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_9 = { + sizeof(struct Reg_SPAT__regExtValue), + offsetof(struct Reg_SPAT__regExtValue, _asn_ctx), + offsetof(struct Reg_SPAT__regExtValue, present), + sizeof(((struct Reg_SPAT__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_9 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SPAT_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_8, &asn_PER_memb_regionId_constr_8, memb_regionId_constraint_7 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_9, + 0, + { &asn_OER_memb_regExtValue_constr_9, &asn_PER_memb_regExtValue_constr_9, memb_regExtValue_constraint_7 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SPAT_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SPAT_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_7 = { + sizeof(struct Reg_SPAT), + offsetof(struct Reg_SPAT, _asn_ctx), + asn_MAP_Reg_SPAT_tag2el_7, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SPAT = { + "Reg-SPAT", + "Reg-SPAT", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SPAT_tags_7, + sizeof(asn_DEF_Reg_SPAT_tags_7) + /sizeof(asn_DEF_Reg_SPAT_tags_7[0]), /* 1 */ + asn_DEF_Reg_SPAT_tags_7, /* Same as above */ + sizeof(asn_DEF_Reg_SPAT_tags_7) + /sizeof(asn_DEF_Reg_SPAT_tags_7[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SPAT_7, + 2, /* Elements count */ + &asn_SPC_Reg_SPAT_specs_7 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_12 = { + sizeof(struct Reg_SignalRequestMessage__regExtValue), + offsetof(struct Reg_SignalRequestMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestMessage__regExtValue, present), + sizeof(((struct Reg_SignalRequestMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_12 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_11, &asn_PER_memb_regionId_constr_11, memb_regionId_constraint_10 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_12, + 0, + { &asn_OER_memb_regExtValue_constr_12, &asn_PER_memb_regExtValue_constr_12, memb_regExtValue_constraint_10 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestMessage_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestMessage_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_10 = { + sizeof(struct Reg_SignalRequestMessage), + offsetof(struct Reg_SignalRequestMessage, _asn_ctx), + asn_MAP_Reg_SignalRequestMessage_tag2el_10, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage = { + "Reg-SignalRequestMessage", + "Reg-SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestMessage_tags_10, + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + asn_DEF_Reg_SignalRequestMessage_tags_10, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequestMessage_10, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestMessage_specs_10 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_15 = { + sizeof(struct Reg_SignalStatusMessage__regExtValue), + offsetof(struct Reg_SignalStatusMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusMessage__regExtValue, present), + sizeof(((struct Reg_SignalStatusMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_15 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_14, &asn_PER_memb_regionId_constr_14, memb_regionId_constraint_13 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_15, + 0, + { &asn_OER_memb_regExtValue_constr_15, &asn_PER_memb_regExtValue_constr_15, memb_regExtValue_constraint_13 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusMessage_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusMessage_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_13 = { + sizeof(struct Reg_SignalStatusMessage), + offsetof(struct Reg_SignalStatusMessage, _asn_ctx), + asn_MAP_Reg_SignalStatusMessage_tag2el_13, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage = { + "Reg-SignalStatusMessage", + "Reg-SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusMessage_tags_13, + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + asn_DEF_Reg_SignalStatusMessage_tags_13, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatusMessage_13, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusMessage_specs_13 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_18 = { + sizeof(struct Reg_AdvisorySpeed__regExtValue), + offsetof(struct Reg_AdvisorySpeed__regExtValue, _asn_ctx), + offsetof(struct Reg_AdvisorySpeed__regExtValue, present), + sizeof(((struct Reg_AdvisorySpeed__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_18 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_17, &asn_PER_memb_regionId_constr_17, memb_regionId_constraint_16 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_18, + 0, + { &asn_OER_memb_regExtValue_constr_18, &asn_PER_memb_regExtValue_constr_18, memb_regExtValue_constraint_16 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_AdvisorySpeed_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_AdvisorySpeed_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_16 = { + sizeof(struct Reg_AdvisorySpeed), + offsetof(struct Reg_AdvisorySpeed, _asn_ctx), + asn_MAP_Reg_AdvisorySpeed_tag2el_16, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed = { + "Reg-AdvisorySpeed", + "Reg-AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_Reg_AdvisorySpeed_tags_16, + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + asn_DEF_Reg_AdvisorySpeed_tags_16, /* Same as above */ + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_AdvisorySpeed_16, + 2, /* Elements count */ + &asn_SPC_Reg_AdvisorySpeed_specs_16 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_21 = { + sizeof(struct Reg_ComputedLane__regExtValue), + offsetof(struct Reg_ComputedLane__regExtValue, _asn_ctx), + offsetof(struct Reg_ComputedLane__regExtValue, present), + sizeof(((struct Reg_ComputedLane__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_21 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ComputedLane_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_20, &asn_PER_memb_regionId_constr_20, memb_regionId_constraint_19 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_21, + 0, + { &asn_OER_memb_regExtValue_constr_21, &asn_PER_memb_regExtValue_constr_21, memb_regExtValue_constraint_19 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ComputedLane_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ComputedLane_tag2el_19[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_19 = { + sizeof(struct Reg_ComputedLane), + offsetof(struct Reg_ComputedLane, _asn_ctx), + asn_MAP_Reg_ComputedLane_tag2el_19, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane = { + "Reg-ComputedLane", + "Reg-ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ComputedLane_tags_19, + sizeof(asn_DEF_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_Reg_ComputedLane_tags_19[0]), /* 1 */ + asn_DEF_Reg_ComputedLane_tags_19, /* Same as above */ + sizeof(asn_DEF_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_Reg_ComputedLane_tags_19[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_ComputedLane_19, + 2, /* Elements count */ + &asn_SPC_Reg_ComputedLane_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, choice.ConnectionManeuverAssist_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionManeuverAssist-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionManeuverAssist-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_24 = { + sizeof(struct Reg_ConnectionManeuverAssist__regExtValue), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, _asn_ctx), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, present), + sizeof(((struct Reg_ConnectionManeuverAssist__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_24, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_24 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_24, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_23, &asn_PER_memb_regionId_constr_23, memb_regionId_constraint_22 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_24, + select_Reg_ConnectionManeuverAssist_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_24, &asn_PER_memb_regExtValue_constr_24, memb_regExtValue_constraint_22 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ConnectionManeuverAssist_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ConnectionManeuverAssist_tag2el_22[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_22 = { + sizeof(struct Reg_ConnectionManeuverAssist), + offsetof(struct Reg_ConnectionManeuverAssist, _asn_ctx), + asn_MAP_Reg_ConnectionManeuverAssist_tag2el_22, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist = { + "Reg-ConnectionManeuverAssist", + "Reg-ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ConnectionManeuverAssist_tags_22, + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + asn_DEF_Reg_ConnectionManeuverAssist_tags_22, /* Same as above */ + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_ConnectionManeuverAssist_22, + 2, /* Elements count */ + &asn_SPC_Reg_ConnectionManeuverAssist_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_27[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane__regExtValue, choice.ConnectionTrajectory_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionTrajectory_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionTrajectory-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_27[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionTrajectory-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_27 = { + sizeof(struct Reg_GenericLane__regExtValue), + offsetof(struct Reg_GenericLane__regExtValue, _asn_ctx), + offsetof(struct Reg_GenericLane__regExtValue, present), + sizeof(((struct Reg_GenericLane__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_27, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_27 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_27, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_GenericLane_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_26, &asn_PER_memb_regionId_constr_26, memb_regionId_constraint_25 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_27, + select_Reg_GenericLane_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_27, &asn_PER_memb_regExtValue_constr_27, memb_regExtValue_constraint_25 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_GenericLane_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_GenericLane_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_25 = { + sizeof(struct Reg_GenericLane), + offsetof(struct Reg_GenericLane, _asn_ctx), + asn_MAP_Reg_GenericLane_tag2el_25, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane = { + "Reg-GenericLane", + "Reg-GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_GenericLane_tags_25, + sizeof(asn_DEF_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_Reg_GenericLane_tags_25[0]), /* 1 */ + asn_DEF_Reg_GenericLane_tags_25, /* Same as above */ + sizeof(asn_DEF_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_Reg_GenericLane_tags_25[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_GenericLane_25, + 2, /* Elements count */ + &asn_SPC_Reg_GenericLane_specs_25 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_30 = { + sizeof(struct Reg_IntersectionGeometry__regExtValue), + offsetof(struct Reg_IntersectionGeometry__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionGeometry__regExtValue, present), + sizeof(((struct Reg_IntersectionGeometry__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_30 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_30 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_29, &asn_PER_memb_regionId_constr_29, memb_regionId_constraint_28 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_30, + 0, + { &asn_OER_memb_regExtValue_constr_30, &asn_PER_memb_regExtValue_constr_30, memb_regExtValue_constraint_28 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionGeometry_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionGeometry_tag2el_28[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_28 = { + sizeof(struct Reg_IntersectionGeometry), + offsetof(struct Reg_IntersectionGeometry, _asn_ctx), + asn_MAP_Reg_IntersectionGeometry_tag2el_28, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry = { + "Reg-IntersectionGeometry", + "Reg-IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionGeometry_tags_28, + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + asn_DEF_Reg_IntersectionGeometry_tags_28, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_IntersectionGeometry_28, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionGeometry_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState__regExtValue, choice.IntersectionState_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IntersectionState-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_33[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* IntersectionState-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_33 = { + sizeof(struct Reg_IntersectionState__regExtValue), + offsetof(struct Reg_IntersectionState__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionState__regExtValue, present), + sizeof(((struct Reg_IntersectionState__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_33, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_33 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_33, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionState_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_32, &asn_PER_memb_regionId_constr_32, memb_regionId_constraint_31 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_33, + select_Reg_IntersectionState_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_33, &asn_PER_memb_regExtValue_constr_33, memb_regExtValue_constraint_31 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionState_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionState_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_31 = { + sizeof(struct Reg_IntersectionState), + offsetof(struct Reg_IntersectionState, _asn_ctx), + asn_MAP_Reg_IntersectionState_tag2el_31, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState = { + "Reg-IntersectionState", + "Reg-IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionState_tags_31, + sizeof(asn_DEF_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_Reg_IntersectionState_tags_31[0]), /* 1 */ + asn_DEF_Reg_IntersectionState_tags_31, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_Reg_IntersectionState_tags_31[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_IntersectionState_31, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionState_specs_31 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes__regExtValue, choice.LaneAttributes_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_LaneAttributes_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LaneAttributes-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* LaneAttributes-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_36 = { + sizeof(struct Reg_LaneAttributes__regExtValue), + offsetof(struct Reg_LaneAttributes__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneAttributes__regExtValue, present), + sizeof(((struct Reg_LaneAttributes__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_36, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_36 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_36, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_34[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_35, &asn_PER_memb_regionId_constr_35, memb_regionId_constraint_34 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_36, + select_Reg_LaneAttributes_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_36, &asn_PER_memb_regExtValue_constr_36, memb_regExtValue_constraint_34 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneAttributes_tags_34[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneAttributes_tag2el_34[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_34 = { + sizeof(struct Reg_LaneAttributes), + offsetof(struct Reg_LaneAttributes, _asn_ctx), + asn_MAP_Reg_LaneAttributes_tag2el_34, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes = { + "Reg-LaneAttributes", + "Reg-LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneAttributes_tags_34, + sizeof(asn_DEF_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_34[0]), /* 1 */ + asn_DEF_Reg_LaneAttributes_tags_34, /* Same as above */ + sizeof(asn_DEF_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_34[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_LaneAttributes_34, + 2, /* Elements count */ + &asn_SPC_Reg_LaneAttributes_specs_34 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_39 = { + sizeof(struct Reg_LaneDataAttribute__regExtValue), + offsetof(struct Reg_LaneDataAttribute__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneDataAttribute__regExtValue, present), + sizeof(((struct Reg_LaneDataAttribute__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_39 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_38, &asn_PER_memb_regionId_constr_38, memb_regionId_constraint_37 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_39, + 0, + { &asn_OER_memb_regExtValue_constr_39, &asn_PER_memb_regExtValue_constr_39, memb_regExtValue_constraint_37 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneDataAttribute_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneDataAttribute_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_37 = { + sizeof(struct Reg_LaneDataAttribute), + offsetof(struct Reg_LaneDataAttribute, _asn_ctx), + asn_MAP_Reg_LaneDataAttribute_tag2el_37, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute = { + "Reg-LaneDataAttribute", + "Reg-LaneDataAttribute", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneDataAttribute_tags_37, + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + asn_DEF_Reg_LaneDataAttribute_tags_37, /* Same as above */ + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_LaneDataAttribute_37, + 2, /* Elements count */ + &asn_SPC_Reg_LaneDataAttribute_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_42[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent__regExtValue, choice.MovementEvent_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MovementEvent-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_42[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MovementEvent-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_42 = { + sizeof(struct Reg_MovementEvent__regExtValue), + offsetof(struct Reg_MovementEvent__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementEvent__regExtValue, present), + sizeof(((struct Reg_MovementEvent__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_42, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_42 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_42, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_42 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementEvent_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_41, &asn_PER_memb_regionId_constr_41, memb_regionId_constraint_40 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_42, + select_Reg_MovementEvent_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_42, &asn_PER_memb_regExtValue_constr_42, memb_regExtValue_constraint_40 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementEvent_tags_40[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementEvent_tag2el_40[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_40 = { + sizeof(struct Reg_MovementEvent), + offsetof(struct Reg_MovementEvent, _asn_ctx), + asn_MAP_Reg_MovementEvent_tag2el_40, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent = { + "Reg-MovementEvent", + "Reg-MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementEvent_tags_40, + sizeof(asn_DEF_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_Reg_MovementEvent_tags_40[0]), /* 1 */ + asn_DEF_Reg_MovementEvent_tags_40, /* Same as above */ + sizeof(asn_DEF_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_Reg_MovementEvent_tags_40[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MovementEvent_40, + 2, /* Elements count */ + &asn_SPC_Reg_MovementEvent_specs_40 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_45 = { + sizeof(struct Reg_MovementState__regExtValue), + offsetof(struct Reg_MovementState__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementState__regExtValue, present), + sizeof(((struct Reg_MovementState__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_45 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementState_43[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_44, &asn_PER_memb_regionId_constr_44, memb_regionId_constraint_43 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_45, + 0, + { &asn_OER_memb_regExtValue_constr_45, &asn_PER_memb_regExtValue_constr_45, memb_regExtValue_constraint_43 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementState_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementState_tag2el_43[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_43 = { + sizeof(struct Reg_MovementState), + offsetof(struct Reg_MovementState, _asn_ctx), + asn_MAP_Reg_MovementState_tag2el_43, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementState = { + "Reg-MovementState", + "Reg-MovementState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementState_tags_43, + sizeof(asn_DEF_Reg_MovementState_tags_43) + /sizeof(asn_DEF_Reg_MovementState_tags_43[0]), /* 1 */ + asn_DEF_Reg_MovementState_tags_43, /* Same as above */ + sizeof(asn_DEF_Reg_MovementState_tags_43) + /sizeof(asn_DEF_Reg_MovementState_tags_43[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MovementState_43, + 2, /* Elements count */ + &asn_SPC_Reg_MovementState_specs_43 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY__regExtValue, choice.NodeAttributeSet_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeAttributeSet_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NodeAttributeSet-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NodeAttributeSet-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_48 = { + sizeof(struct Reg_NodeAttributeSetXY__regExtValue), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, present), + sizeof(((struct Reg_NodeAttributeSetXY__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_48, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_48 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_48, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_46[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_47, &asn_PER_memb_regionId_constr_47, memb_regionId_constraint_46 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_48, + select_Reg_NodeAttributeSetXY_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_48, &asn_PER_memb_regExtValue_constr_48, memb_regExtValue_constraint_46 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeAttributeSetXY_tags_46[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeAttributeSetXY_tag2el_46[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_46 = { + sizeof(struct Reg_NodeAttributeSetXY), + offsetof(struct Reg_NodeAttributeSetXY, _asn_ctx), + asn_MAP_Reg_NodeAttributeSetXY_tag2el_46, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY = { + "Reg-NodeAttributeSetXY", + "Reg-NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeAttributeSetXY_tags_46, + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + asn_DEF_Reg_NodeAttributeSetXY_tags_46, /* Same as above */ + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_NodeAttributeSetXY_46, + 2, /* Elements count */ + &asn_SPC_Reg_NodeAttributeSetXY_specs_46 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_51 = { + sizeof(struct Reg_NodeOffsetPointXY__regExtValue), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, present), + sizeof(((struct Reg_NodeOffsetPointXY__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_51 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_50, &asn_PER_memb_regionId_constr_50, memb_regionId_constraint_49 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_51, + 0, + { &asn_OER_memb_regExtValue_constr_51, &asn_PER_memb_regExtValue_constr_51, memb_regExtValue_constraint_49 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeOffsetPointXY_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeOffsetPointXY_tag2el_49[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_49 = { + sizeof(struct Reg_NodeOffsetPointXY), + offsetof(struct Reg_NodeOffsetPointXY, _asn_ctx), + asn_MAP_Reg_NodeOffsetPointXY_tag2el_49, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY = { + "Reg-NodeOffsetPointXY", + "Reg-NodeOffsetPointXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeOffsetPointXY_tags_49, + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + asn_DEF_Reg_NodeOffsetPointXY_tags_49, /* Same as above */ + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_NodeOffsetPointXY_49, + 2, /* Elements count */ + &asn_SPC_Reg_NodeOffsetPointXY_specs_49 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_54[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D__regExtValue, choice.Position3D_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Position3D_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Position3D-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_54[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Position3D-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_54 = { + sizeof(struct Reg_Position3D__regExtValue), + offsetof(struct Reg_Position3D__regExtValue, _asn_ctx), + offsetof(struct Reg_Position3D__regExtValue, present), + sizeof(((struct Reg_Position3D__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_54, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_54 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_54, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_54 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_Position3D_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_53, &asn_PER_memb_regionId_constr_53, memb_regionId_constraint_52 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_54, + select_Reg_Position3D_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_54, &asn_PER_memb_regExtValue_constr_54, memb_regExtValue_constraint_52 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_Position3D_tags_52[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_Position3D_tag2el_52[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_52 = { + sizeof(struct Reg_Position3D), + offsetof(struct Reg_Position3D, _asn_ctx), + asn_MAP_Reg_Position3D_tag2el_52, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_Position3D = { + "Reg-Position3D", + "Reg-Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Reg_Position3D_tags_52, + sizeof(asn_DEF_Reg_Position3D_tags_52) + /sizeof(asn_DEF_Reg_Position3D_tags_52[0]), /* 1 */ + asn_DEF_Reg_Position3D_tags_52, /* Same as above */ + sizeof(asn_DEF_Reg_Position3D_tags_52) + /sizeof(asn_DEF_Reg_Position3D_tags_52[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_Position3D_52, + 2, /* Elements count */ + &asn_SPC_Reg_Position3D_specs_52 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription__regExtValue, choice.RequestorDescription_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RequestorDescription_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RequestorDescription-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_57[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RequestorDescription-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_57 = { + sizeof(struct Reg_RequestorDescription__regExtValue), + offsetof(struct Reg_RequestorDescription__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorDescription__regExtValue, present), + sizeof(((struct Reg_RequestorDescription__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_57, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_57 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_57, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_55[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_56, &asn_PER_memb_regionId_constr_56, memb_regionId_constraint_55 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_57, + select_Reg_RequestorDescription_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_57, &asn_PER_memb_regExtValue_constr_57, memb_regExtValue_constraint_55 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorDescription_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorDescription_tag2el_55[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_55 = { + sizeof(struct Reg_RequestorDescription), + offsetof(struct Reg_RequestorDescription, _asn_ctx), + asn_MAP_Reg_RequestorDescription_tag2el_55, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription = { + "Reg-RequestorDescription", + "Reg-RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorDescription_tags_55, + sizeof(asn_DEF_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_55[0]), /* 1 */ + asn_DEF_Reg_RequestorDescription_tags_55, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_55[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RequestorDescription_55, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorDescription_specs_55 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_60 = { + sizeof(struct Reg_RequestorType__regExtValue), + offsetof(struct Reg_RequestorType__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorType__regExtValue, present), + sizeof(((struct Reg_RequestorType__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_60 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorType_58[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_59, &asn_PER_memb_regionId_constr_59, memb_regionId_constraint_58 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_60, + 0, + { &asn_OER_memb_regExtValue_constr_60, &asn_PER_memb_regExtValue_constr_60, memb_regExtValue_constraint_58 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorType_tags_58[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorType_tag2el_58[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_58 = { + sizeof(struct Reg_RequestorType), + offsetof(struct Reg_RequestorType, _asn_ctx), + asn_MAP_Reg_RequestorType_tag2el_58, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType = { + "Reg-RequestorType", + "Reg-RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorType_tags_58, + sizeof(asn_DEF_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_Reg_RequestorType_tags_58[0]), /* 1 */ + asn_DEF_Reg_RequestorType_tags_58, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_Reg_RequestorType_tags_58[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RequestorType_58, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorType_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_63[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType__regExtValue, choice.RestrictionUserType_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionUserType_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RestrictionUserType-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_63[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RestrictionUserType-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_63 = { + sizeof(struct Reg_RestrictionUserType__regExtValue), + offsetof(struct Reg_RestrictionUserType__regExtValue, _asn_ctx), + offsetof(struct Reg_RestrictionUserType__regExtValue, present), + sizeof(((struct Reg_RestrictionUserType__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_63, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_63 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_63, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_62, &asn_PER_memb_regionId_constr_62, memb_regionId_constraint_61 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_63, + select_Reg_RestrictionUserType_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_63, &asn_PER_memb_regExtValue_constr_63, memb_regExtValue_constraint_61 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RestrictionUserType_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RestrictionUserType_tag2el_61[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_61 = { + sizeof(struct Reg_RestrictionUserType), + offsetof(struct Reg_RestrictionUserType, _asn_ctx), + asn_MAP_Reg_RestrictionUserType_tag2el_61, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType = { + "Reg-RestrictionUserType", + "Reg-RestrictionUserType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RestrictionUserType_tags_61, + sizeof(asn_DEF_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + asn_DEF_Reg_RestrictionUserType_tags_61, /* Same as above */ + sizeof(asn_DEF_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RestrictionUserType_61, + 2, /* Elements count */ + &asn_SPC_Reg_RestrictionUserType_specs_61 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_66 = { + sizeof(struct Reg_RoadSegment__regExtValue), + offsetof(struct Reg_RoadSegment__regExtValue, _asn_ctx), + offsetof(struct Reg_RoadSegment__regExtValue, present), + sizeof(((struct Reg_RoadSegment__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_66 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_66 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RoadSegment_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_65, &asn_PER_memb_regionId_constr_65, memb_regionId_constraint_64 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_66, + 0, + { &asn_OER_memb_regExtValue_constr_66, &asn_PER_memb_regExtValue_constr_66, memb_regExtValue_constraint_64 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RoadSegment_tags_64[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RoadSegment_tag2el_64[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_64 = { + sizeof(struct Reg_RoadSegment), + offsetof(struct Reg_RoadSegment, _asn_ctx), + asn_MAP_Reg_RoadSegment_tag2el_64, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment = { + "Reg-RoadSegment", + "Reg-RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RoadSegment_tags_64, + sizeof(asn_DEF_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_Reg_RoadSegment_tags_64[0]), /* 1 */ + asn_DEF_Reg_RoadSegment_tags_64, /* Same as above */ + sizeof(asn_DEF_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_Reg_RoadSegment_tags_64[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RoadSegment_64, + 2, /* Elements count */ + &asn_SPC_Reg_RoadSegment_specs_64 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_69 = { + sizeof(struct Reg_SignalControlZone__regExtValue), + offsetof(struct Reg_SignalControlZone__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalControlZone__regExtValue, present), + sizeof(((struct Reg_SignalControlZone__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_69 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_67[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_68, &asn_PER_memb_regionId_constr_68, memb_regionId_constraint_67 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_69, + 0, + { &asn_OER_memb_regExtValue_constr_69, &asn_PER_memb_regExtValue_constr_69, memb_regExtValue_constraint_67 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalControlZone_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalControlZone_tag2el_67[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_67 = { + sizeof(struct Reg_SignalControlZone), + offsetof(struct Reg_SignalControlZone, _asn_ctx), + asn_MAP_Reg_SignalControlZone_tag2el_67, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone = { + "Reg-SignalControlZone", + "Reg-SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalControlZone_tags_67, + sizeof(asn_DEF_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_67[0]), /* 1 */ + asn_DEF_Reg_SignalControlZone_tags_67, /* Same as above */ + sizeof(asn_DEF_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_67[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalControlZone_67, + 2, /* Elements count */ + &asn_SPC_Reg_SignalControlZone_specs_67 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_72 = { + sizeof(struct Reg_SignalRequest__regExtValue), + offsetof(struct Reg_SignalRequest__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequest__regExtValue, present), + sizeof(((struct Reg_SignalRequest__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_72 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequest_70[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_71, &asn_PER_memb_regionId_constr_71, memb_regionId_constraint_70 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_72, + 0, + { &asn_OER_memb_regExtValue_constr_72, &asn_PER_memb_regExtValue_constr_72, memb_regExtValue_constraint_70 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequest_tags_70[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequest_tag2el_70[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_70 = { + sizeof(struct Reg_SignalRequest), + offsetof(struct Reg_SignalRequest, _asn_ctx), + asn_MAP_Reg_SignalRequest_tag2el_70, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest = { + "Reg-SignalRequest", + "Reg-SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequest_tags_70, + sizeof(asn_DEF_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_Reg_SignalRequest_tags_70[0]), /* 1 */ + asn_DEF_Reg_SignalRequest_tags_70, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_Reg_SignalRequest_tags_70[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequest_70, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequest_specs_70 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_75 = { + sizeof(struct Reg_SignalRequestPackage__regExtValue), + offsetof(struct Reg_SignalRequestPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestPackage__regExtValue, present), + sizeof(((struct Reg_SignalRequestPackage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_75 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_74, &asn_PER_memb_regionId_constr_74, memb_regionId_constraint_73 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_75, + 0, + { &asn_OER_memb_regExtValue_constr_75, &asn_PER_memb_regExtValue_constr_75, memb_regExtValue_constraint_73 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestPackage_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestPackage_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_73 = { + sizeof(struct Reg_SignalRequestPackage), + offsetof(struct Reg_SignalRequestPackage, _asn_ctx), + asn_MAP_Reg_SignalRequestPackage_tag2el_73, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage = { + "Reg-SignalRequestPackage", + "Reg-SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestPackage_tags_73, + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + asn_DEF_Reg_SignalRequestPackage_tags_73, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequestPackage_73, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestPackage_specs_73 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_78 = { + sizeof(struct Reg_SignalStatus__regExtValue), + offsetof(struct Reg_SignalStatus__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatus__regExtValue, present), + sizeof(((struct Reg_SignalStatus__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_78 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_78 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatus_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_77, &asn_PER_memb_regionId_constr_77, memb_regionId_constraint_76 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_78, + 0, + { &asn_OER_memb_regExtValue_constr_78, &asn_PER_memb_regExtValue_constr_78, memb_regExtValue_constraint_76 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatus_tags_76[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatus_tag2el_76[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_76 = { + sizeof(struct Reg_SignalStatus), + offsetof(struct Reg_SignalStatus, _asn_ctx), + asn_MAP_Reg_SignalStatus_tag2el_76, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus = { + "Reg-SignalStatus", + "Reg-SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatus_tags_76, + sizeof(asn_DEF_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_Reg_SignalStatus_tags_76[0]), /* 1 */ + asn_DEF_Reg_SignalStatus_tags_76, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_Reg_SignalStatus_tags_76[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatus_76, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatus_specs_76 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage__regExtValue, choice.SignalStatusPackage_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SignalStatusPackage-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_81[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SignalStatusPackage-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_81 = { + sizeof(struct Reg_SignalStatusPackage__regExtValue), + offsetof(struct Reg_SignalStatusPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusPackage__regExtValue, present), + sizeof(((struct Reg_SignalStatusPackage__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_81, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_81 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_81, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_79[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_80, &asn_PER_memb_regionId_constr_80, memb_regionId_constraint_79 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_81, + select_Reg_SignalStatusPackage_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_81, &asn_PER_memb_regExtValue_constr_81, memb_regExtValue_constraint_79 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusPackage_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusPackage_tag2el_79[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_79 = { + sizeof(struct Reg_SignalStatusPackage), + offsetof(struct Reg_SignalStatusPackage, _asn_ctx), + asn_MAP_Reg_SignalStatusPackage_tag2el_79, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage = { + "Reg-SignalStatusPackage", + "Reg-SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusPackage_tags_79, + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + asn_DEF_Reg_SignalStatusPackage_tags_79, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatusPackage_79, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusPackage_specs_79 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RegulatorySpeedLimit.c b/vcits/rtcmem/src/RegulatorySpeedLimit.c new file mode 100644 index 0000000..51f3b8a --- /dev/null +++ b/vcits/rtcmem/src/RegulatorySpeedLimit.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RegulatorySpeedLimit.h" + +asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_RegulatorySpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RegulatorySpeedLimit_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1 = { + sizeof(struct RegulatorySpeedLimit), + offsetof(struct RegulatorySpeedLimit, _asn_ctx), + asn_MAP_RegulatorySpeedLimit_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit = { + "RegulatorySpeedLimit", + "RegulatorySpeedLimit", + &asn_OP_SEQUENCE, + asn_DEF_RegulatorySpeedLimit_tags_1, + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_RegulatorySpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RegulatorySpeedLimit_1, + 2, /* Elements count */ + &asn_SPC_RegulatorySpeedLimit_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RejectedReason.c b/vcits/rtcmem/src/RejectedReason.c new file mode 100644 index 0000000..5748043 --- /dev/null +++ b/vcits/rtcmem/src/RejectedReason.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RejectedReason.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RejectedReason_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RejectedReason_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RejectedReason_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "exceptionalCondition" }, + { 2, 22, "maxWaitingTimeExceeded" }, + { 3, 18, "ptPriorityDisabled" }, + { 4, 23, "higherPTPriorityGranted" }, + { 5, 22, "vehicleTrackingUnknown" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RejectedReason_enum2value_1[] = { + 1, /* exceptionalCondition(1) */ + 4, /* higherPTPriorityGranted(4) */ + 2, /* maxWaitingTimeExceeded(2) */ + 3, /* ptPriorityDisabled(3) */ + 0, /* unknown(0) */ + 5 /* vehicleTrackingUnknown(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RejectedReason_specs_1 = { + asn_MAP_RejectedReason_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RejectedReason_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RejectedReason_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RejectedReason = { + "RejectedReason", + "RejectedReason", + &asn_OP_NativeEnumerated, + asn_DEF_RejectedReason_tags_1, + sizeof(asn_DEF_RejectedReason_tags_1) + /sizeof(asn_DEF_RejectedReason_tags_1[0]), /* 1 */ + asn_DEF_RejectedReason_tags_1, /* Same as above */ + sizeof(asn_DEF_RejectedReason_tags_1) + /sizeof(asn_DEF_RejectedReason_tags_1[0]), /* 1 */ + { &asn_OER_type_RejectedReason_constr_1, &asn_PER_type_RejectedReason_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RejectedReason_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RelevanceDistance.c b/vcits/rtcmem/src/RelevanceDistance.c new file mode 100644 index 0000000..a9e784a --- /dev/null +++ b/vcits/rtcmem/src/RelevanceDistance.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RelevanceDistance.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceDistance_value2enum_1[] = { + { 0, 11, "lessThan50m" }, + { 1, 12, "lessThan100m" }, + { 2, 12, "lessThan200m" }, + { 3, 12, "lessThan500m" }, + { 4, 13, "lessThan1000m" }, + { 5, 11, "lessThan5km" }, + { 6, 12, "lessThan10km" }, + { 7, 8, "over10km" } +}; +static const unsigned int asn_MAP_RelevanceDistance_enum2value_1[] = { + 4, /* lessThan1000m(4) */ + 1, /* lessThan100m(1) */ + 6, /* lessThan10km(6) */ + 2, /* lessThan200m(2) */ + 3, /* lessThan500m(3) */ + 0, /* lessThan50m(0) */ + 5, /* lessThan5km(5) */ + 7 /* over10km(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceDistance_specs_1 = { + asn_MAP_RelevanceDistance_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceDistance_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceDistance = { + "RelevanceDistance", + "RelevanceDistance", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceDistance_tags_1, + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + asn_DEF_RelevanceDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceDistance_constr_1, &asn_PER_type_RelevanceDistance_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceDistance_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RelevanceTrafficDirection.c b/vcits/rtcmem/src/RelevanceTrafficDirection.c new file mode 100644 index 0000000..62a4041 --- /dev/null +++ b/vcits/rtcmem/src/RelevanceTrafficDirection.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RelevanceTrafficDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceTrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 15, "upstreamTraffic" }, + { 2, 17, "downstreamTraffic" }, + { 3, 15, "oppositeTraffic" } +}; +static const unsigned int asn_MAP_RelevanceTrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 2, /* downstreamTraffic(2) */ + 3, /* oppositeTraffic(3) */ + 1 /* upstreamTraffic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceTrafficDirection_specs_1 = { + asn_MAP_RelevanceTrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceTrafficDirection_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceTrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection = { + "RelevanceTrafficDirection", + "RelevanceTrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceTrafficDirection_tags_1, + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_RelevanceTrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceTrafficDirection_constr_1, &asn_PER_type_RelevanceTrafficDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceTrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RequestID.c b/vcits/rtcmem/src/RequestID.c new file mode 100644 index 0000000..0d6bf51 --- /dev/null +++ b/vcits/rtcmem/src/RequestID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RequestID.h" + +int +RequestID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RequestID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RequestID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestID = { + "RequestID", + "RequestID", + &asn_OP_NativeInteger, + asn_DEF_RequestID_tags_1, + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + asn_DEF_RequestID_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestID_constr_1, &asn_PER_type_RequestID_constr_1, RequestID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/RequestImportanceLevel.c b/vcits/rtcmem/src/RequestImportanceLevel.c new file mode 100644 index 0000000..fe441b2 --- /dev/null +++ b/vcits/rtcmem/src/RequestImportanceLevel.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RequestImportanceLevel.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestImportanceLevel_value2enum_1[] = { + { 0, 29, "requestImportanceLevelUnKnown" }, + { 1, 23, "requestImportanceLevel1" }, + { 2, 23, "requestImportanceLevel2" }, + { 3, 23, "requestImportanceLevel3" }, + { 4, 23, "requestImportanceLevel4" }, + { 5, 23, "requestImportanceLevel5" }, + { 6, 23, "requestImportanceLevel6" }, + { 7, 23, "requestImportanceLevel7" }, + { 8, 23, "requestImportanceLevel8" }, + { 9, 23, "requestImportanceLevel9" }, + { 10, 24, "requestImportanceLevel10" }, + { 11, 24, "requestImportanceLevel11" }, + { 12, 24, "requestImportanceLevel12" }, + { 13, 24, "requestImportanceLevel13" }, + { 14, 24, "requestImportanceLevel14" }, + { 15, 25, "requestImportanceReserved" } +}; +static const unsigned int asn_MAP_RequestImportanceLevel_enum2value_1[] = { + 1, /* requestImportanceLevel1(1) */ + 10, /* requestImportanceLevel10(10) */ + 11, /* requestImportanceLevel11(11) */ + 12, /* requestImportanceLevel12(12) */ + 13, /* requestImportanceLevel13(13) */ + 14, /* requestImportanceLevel14(14) */ + 2, /* requestImportanceLevel2(2) */ + 3, /* requestImportanceLevel3(3) */ + 4, /* requestImportanceLevel4(4) */ + 5, /* requestImportanceLevel5(5) */ + 6, /* requestImportanceLevel6(6) */ + 7, /* requestImportanceLevel7(7) */ + 8, /* requestImportanceLevel8(8) */ + 9, /* requestImportanceLevel9(9) */ + 0, /* requestImportanceLevelUnKnown(0) */ + 15 /* requestImportanceReserved(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1 = { + asn_MAP_RequestImportanceLevel_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestImportanceLevel_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestImportanceLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel = { + "RequestImportanceLevel", + "RequestImportanceLevel", + &asn_OP_NativeEnumerated, + asn_DEF_RequestImportanceLevel_tags_1, + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + asn_DEF_RequestImportanceLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestImportanceLevel_constr_1, &asn_PER_type_RequestImportanceLevel_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestImportanceLevel_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RequestResponseIndication.c b/vcits/rtcmem/src/RequestResponseIndication.c new file mode 100644 index 0000000..ebebc14 --- /dev/null +++ b/vcits/rtcmem/src/RequestResponseIndication.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RequestResponseIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestResponseIndication_value2enum_1[] = { + { 0, 7, "request" }, + { 1, 8, "response" } +}; +static const unsigned int asn_MAP_RequestResponseIndication_enum2value_1[] = { + 0, /* request(0) */ + 1 /* response(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RequestResponseIndication_specs_1 = { + asn_MAP_RequestResponseIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestResponseIndication_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestResponseIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication = { + "RequestResponseIndication", + "RequestResponseIndication", + &asn_OP_NativeEnumerated, + asn_DEF_RequestResponseIndication_tags_1, + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + asn_DEF_RequestResponseIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestResponseIndication_constr_1, &asn_PER_type_RequestResponseIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestResponseIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RequestSubRole.c b/vcits/rtcmem/src/RequestSubRole.c new file mode 100644 index 0000000..92f2577 --- /dev/null +++ b/vcits/rtcmem/src/RequestSubRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RequestSubRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestSubRole_value2enum_1[] = { + { 0, 21, "requestSubRoleUnKnown" }, + { 1, 15, "requestSubRole1" }, + { 2, 15, "requestSubRole2" }, + { 3, 15, "requestSubRole3" }, + { 4, 15, "requestSubRole4" }, + { 5, 15, "requestSubRole5" }, + { 6, 15, "requestSubRole6" }, + { 7, 15, "requestSubRole7" }, + { 8, 15, "requestSubRole8" }, + { 9, 15, "requestSubRole9" }, + { 10, 16, "requestSubRole10" }, + { 11, 16, "requestSubRole11" }, + { 12, 16, "requestSubRole12" }, + { 13, 16, "requestSubRole13" }, + { 14, 16, "requestSubRole14" }, + { 15, 22, "requestSubRoleReserved" } +}; +static const unsigned int asn_MAP_RequestSubRole_enum2value_1[] = { + 1, /* requestSubRole1(1) */ + 10, /* requestSubRole10(10) */ + 11, /* requestSubRole11(11) */ + 12, /* requestSubRole12(12) */ + 13, /* requestSubRole13(13) */ + 14, /* requestSubRole14(14) */ + 2, /* requestSubRole2(2) */ + 3, /* requestSubRole3(3) */ + 4, /* requestSubRole4(4) */ + 5, /* requestSubRole5(5) */ + 6, /* requestSubRole6(6) */ + 7, /* requestSubRole7(7) */ + 8, /* requestSubRole8(8) */ + 9, /* requestSubRole9(9) */ + 15, /* requestSubRoleReserved(15) */ + 0 /* requestSubRoleUnKnown(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1 = { + asn_MAP_RequestSubRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestSubRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestSubRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestSubRole = { + "RequestSubRole", + "RequestSubRole", + &asn_OP_NativeEnumerated, + asn_DEF_RequestSubRole_tags_1, + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + asn_DEF_RequestSubRole_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestSubRole_constr_1, &asn_PER_type_RequestSubRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestSubRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RequestorDescription-addGrpC.c b/vcits/rtcmem/src/RequestorDescription-addGrpC.c new file mode 100644 index 0000000..d32a091 --- /dev/null +++ b/vcits/rtcmem/src/RequestorDescription-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RequestorDescription-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RequestorDescription_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct RequestorDescription_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fuel" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription_addGrpC, batteryStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BatteryStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "batteryStatus" + }, +}; +static const int asn_MAP_RequestorDescription_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fuel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* batteryStatus */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_addGrpC_specs_1 = { + sizeof(struct RequestorDescription_addGrpC), + offsetof(struct RequestorDescription_addGrpC, _asn_ctx), + asn_MAP_RequestorDescription_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RequestorDescription_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription_addGrpC = { + "RequestorDescription-addGrpC", + "RequestorDescription-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_addGrpC_tags_1, + sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorDescription_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_RequestorDescription_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RequestorDescription.c b/vcits/rtcmem/src/RequestorDescription.c new file mode 100644 index 0000000..c91292d --- /dev/null +++ b/vcits/rtcmem/src/RequestorDescription.c @@ -0,0 +1,214 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RequestorDescription.h" + +#include "RequestorType.h" +#include "RequestorPositionVector.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RequestorDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct RequestorDescription__regional), + offsetof(struct RequestorDescription__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RequestorDescription_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorDescription, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 8, offsetof(struct RequestorDescription, type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 7, offsetof(struct RequestorDescription, position), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorPositionVector, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 6, offsetof(struct RequestorDescription, name), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 5, offsetof(struct RequestorDescription, routeName), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "routeName" + }, + { ATF_POINTER, 4, offsetof(struct RequestorDescription, transitStatus), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitStatus" + }, + { ATF_POINTER, 3, offsetof(struct RequestorDescription, transitOccupancy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleOccupancy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitOccupancy" + }, + { ATF_POINTER, 2, offsetof(struct RequestorDescription, transitSchedule), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitSchedule" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorDescription_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* routeName */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* transitStatus */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* transitOccupancy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* transitSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1 = { + sizeof(struct RequestorDescription), + offsetof(struct RequestorDescription, _asn_ctx), + asn_MAP_RequestorDescription_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_RequestorDescription_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription = { + "RequestorDescription", + "RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_tags_1, + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorDescription_1, + 9, /* Elements count */ + &asn_SPC_RequestorDescription_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RequestorPositionVector.c b/vcits/rtcmem/src/RequestorPositionVector.c new file mode 100644 index 0000000..83d5a46 --- /dev/null +++ b/vcits/rtcmem/src/RequestorPositionVector.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RequestorPositionVector.h" + +#include "TransmissionAndSpeed.h" +asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorPositionVector, position), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 2, offsetof(struct RequestorPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 1, offsetof(struct RequestorPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const int asn_MAP_RequestorPositionVector_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_RequestorPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1 = { + sizeof(struct RequestorPositionVector), + offsetof(struct RequestorPositionVector, _asn_ctx), + asn_MAP_RequestorPositionVector_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RequestorPositionVector_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector = { + "RequestorPositionVector", + "RequestorPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_RequestorPositionVector_tags_1, + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + asn_DEF_RequestorPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorPositionVector_1, + 3, /* Elements count */ + &asn_SPC_RequestorPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RequestorType.c b/vcits/rtcmem/src/RequestorType.c new file mode 100644 index 0000000..00f3a7f --- /dev/null +++ b/vcits/rtcmem/src/RequestorType.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RequestorType.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_RequestorType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorType, role), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 5, offsetof(struct RequestorType, subrole), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestSubRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subrole" + }, + { ATF_POINTER, 4, offsetof(struct RequestorType, request), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestImportanceLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 3, offsetof(struct RequestorType, iso3883), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Iso3833VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iso3883" + }, + { ATF_POINTER, 2, offsetof(struct RequestorType, hpmsType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hpmsType" + }, + { ATF_POINTER, 1, offsetof(struct RequestorType, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorType_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_RequestorType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subrole */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* iso3883 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* hpmsType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1 = { + sizeof(struct RequestorType), + offsetof(struct RequestorType, _asn_ctx), + asn_MAP_RequestorType_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_RequestorType_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorType = { + "RequestorType", + "RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_RequestorType_tags_1, + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + asn_DEF_RequestorType_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorType_1, + 6, /* Elements count */ + &asn_SPC_RequestorType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c b/vcits/rtcmem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c new file mode 100644 index 0000000..85e5b2a --- /dev/null +++ b/vcits/rtcmem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RescueAndRecoveryWorkInProgressSubCauseCode.h" + +int +RescueAndRecoveryWorkInProgressSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode = { + "RescueAndRecoveryWorkInProgressSubCauseCode", + "RescueAndRecoveryWorkInProgressSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, &asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, RescueAndRecoveryWorkInProgressSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/RestrictedTypes.c b/vcits/rtcmem/src/RestrictedTypes.c new file mode 100644 index 0000000..69c4a4b --- /dev/null +++ b/vcits/rtcmem/src/RestrictedTypes.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RestrictedTypes.h" + +static asn_oer_constraints_t asn_OER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RestrictedTypes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictedTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_RestrictedTypes_specs_1 = { + sizeof(struct RestrictedTypes), + offsetof(struct RestrictedTypes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictedTypes = { + "RestrictedTypes", + "RestrictedTypes", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictedTypes_tags_1, + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + asn_DEF_RestrictedTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictedTypes_constr_1, &asn_PER_type_RestrictedTypes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictedTypes_1, + 1, /* Single element */ + &asn_SPC_RestrictedTypes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RestrictionAppliesTo.c b/vcits/rtcmem/src/RestrictionAppliesTo.c new file mode 100644 index 0000000..62a40c5 --- /dev/null +++ b/vcits/rtcmem/src/RestrictionAppliesTo.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RestrictionAppliesTo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RestrictionAppliesTo_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 15, "equippedTransit" }, + { 2, 13, "equippedTaxis" }, + { 3, 13, "equippedOther" }, + { 4, 17, "emissionCompliant" }, + { 5, 15, "equippedBicycle" }, + { 6, 15, "weightCompliant" }, + { 7, 15, "heightCompliant" }, + { 8, 11, "pedestrians" }, + { 9, 17, "slowMovingPersons" }, + { 10, 15, "wheelchairUsers" }, + { 11, 18, "visualDisabilities" }, + { 12, 17, "audioDisabilities" }, + { 13, 24, "otherUnknownDisabilities" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RestrictionAppliesTo_enum2value_1[] = { + 12, /* audioDisabilities(12) */ + 4, /* emissionCompliant(4) */ + 5, /* equippedBicycle(5) */ + 3, /* equippedOther(3) */ + 2, /* equippedTaxis(2) */ + 1, /* equippedTransit(1) */ + 7, /* heightCompliant(7) */ + 0, /* none(0) */ + 13, /* otherUnknownDisabilities(13) */ + 8, /* pedestrians(8) */ + 9, /* slowMovingPersons(9) */ + 11, /* visualDisabilities(11) */ + 6, /* weightCompliant(6) */ + 10 /* wheelchairUsers(10) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1 = { + asn_MAP_RestrictionAppliesTo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RestrictionAppliesTo_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RestrictionAppliesTo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo = { + "RestrictionAppliesTo", + "RestrictionAppliesTo", + &asn_OP_NativeEnumerated, + asn_DEF_RestrictionAppliesTo_tags_1, + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + asn_DEF_RestrictionAppliesTo_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionAppliesTo_constr_1, &asn_PER_type_RestrictionAppliesTo_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RestrictionAppliesTo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RestrictionClassAssignment.c b/vcits/rtcmem/src/RestrictionClassAssignment.c new file mode 100644 index 0000000..c0c04a5 --- /dev/null +++ b/vcits/rtcmem/src/RestrictionClassAssignment.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RestrictionClassAssignment.h" + +asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, users), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionUserTypeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "users" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassAssignment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionClassAssignment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* users */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1 = { + sizeof(struct RestrictionClassAssignment), + offsetof(struct RestrictionClassAssignment, _asn_ctx), + asn_MAP_RestrictionClassAssignment_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment = { + "RestrictionClassAssignment", + "RestrictionClassAssignment", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionClassAssignment_tags_1, + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassAssignment_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RestrictionClassAssignment_1, + 2, /* Elements count */ + &asn_SPC_RestrictionClassAssignment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RestrictionClassID.c b/vcits/rtcmem/src/RestrictionClassID.c new file mode 100644 index 0000000..8877c52 --- /dev/null +++ b/vcits/rtcmem/src/RestrictionClassID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RestrictionClassID.h" + +int +RestrictionClassID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassID = { + "RestrictionClassID", + "RestrictionClassID", + &asn_OP_NativeInteger, + asn_DEF_RestrictionClassID_tags_1, + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassID_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionClassID_constr_1, &asn_PER_type_RestrictionClassID_constr_1, RestrictionClassID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/RestrictionClassList.c b/vcits/rtcmem/src/RestrictionClassList.c new file mode 100644 index 0000000..af3bd9e --- /dev/null +++ b/vcits/rtcmem/src/RestrictionClassList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RestrictionClassList.h" + +#include "RestrictionClassAssignment.h" +static asn_oer_constraints_t asn_OER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..254)) */}; +asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 254 } /* (SIZE(1..254)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictionClassList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionClassAssignment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1 = { + sizeof(struct RestrictionClassList), + offsetof(struct RestrictionClassList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassList = { + "RestrictionClassList", + "RestrictionClassList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionClassList_tags_1, + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionClassList_constr_1, &asn_PER_type_RestrictionClassList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictionClassList_1, + 1, /* Single element */ + &asn_SPC_RestrictionClassList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RestrictionUserType-addGrpC.c b/vcits/rtcmem/src/RestrictionUserType-addGrpC.c new file mode 100644 index 0000000..82a8304 --- /dev/null +++ b/vcits/rtcmem/src/RestrictionUserType-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RestrictionUserType-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct RestrictionUserType_addGrpC, emission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmissionType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emission" + }, + { ATF_POINTER, 1, offsetof(struct RestrictionUserType_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fuel" + }, +}; +static const int asn_MAP_RestrictionUserType_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RestrictionUserType_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* emission */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fuel */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1 = { + sizeof(struct RestrictionUserType_addGrpC), + offsetof(struct RestrictionUserType_addGrpC, _asn_ctx), + asn_MAP_RestrictionUserType_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RestrictionUserType_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC = { + "RestrictionUserType-addGrpC", + "RestrictionUserType-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionUserType_addGrpC_tags_1, + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserType_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RestrictionUserType_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RestrictionUserType.c b/vcits/rtcmem/src/RestrictionUserType.c new file mode 100644 index 0000000..66ae556 --- /dev/null +++ b/vcits/rtcmem/src/RestrictionUserType.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RestrictionUserType.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RestrictionUserType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_3 = { + sizeof(struct RestrictionUserType__regional), + offsetof(struct RestrictionUserType__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_3 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_3, + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]) - 1, /* 1 */ + asn_DEF_regional_tags_3, /* Same as above */ + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]), /* 2 */ + { &asn_OER_type_regional_constr_3, &asn_PER_type_regional_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_regional_3, + 1, /* Single element */ + &asn_SPC_regional_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RestrictionUserType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.basicType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionAppliesTo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "basicType" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_regional_3, + 0, + { &asn_OER_memb_regional_constr_3, &asn_PER_memb_regional_constr_3, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1 = { + sizeof(struct RestrictionUserType), + offsetof(struct RestrictionUserType, _asn_ctx), + offsetof(struct RestrictionUserType, present), + sizeof(((struct RestrictionUserType *)0)->present), + asn_MAP_RestrictionUserType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType = { + "RestrictionUserType", + "RestrictionUserType", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_RestrictionUserType_constr_1, &asn_PER_type_RestrictionUserType_constr_1, CHOICE_constraint }, + asn_MBR_RestrictionUserType_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RestrictionUserTypeList.c b/vcits/rtcmem/src/RestrictionUserTypeList.c new file mode 100644 index 0000000..99b5ab6 --- /dev/null +++ b/vcits/rtcmem/src/RestrictionUserTypeList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RestrictionUserTypeList.h" + +#include "RestrictionUserType.h" +static asn_oer_constraints_t asn_OER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RestrictionUserType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionUserTypeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1 = { + sizeof(struct RestrictionUserTypeList), + offsetof(struct RestrictionUserTypeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList = { + "RestrictionUserTypeList", + "RestrictionUserTypeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionUserTypeList_tags_1, + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserTypeList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionUserTypeList_constr_1, &asn_PER_type_RestrictionUserTypeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictionUserTypeList_1, + 1, /* Single element */ + &asn_SPC_RestrictionUserTypeList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RoadLaneSetList.c b/vcits/rtcmem/src/RoadLaneSetList.c new file mode 100644 index 0000000..b5c50b6 --- /dev/null +++ b/vcits/rtcmem/src/RoadLaneSetList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RoadLaneSetList.h" + +#include "GenericLane.h" +static asn_oer_constraints_t asn_OER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadLaneSetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1 = { + sizeof(struct RoadLaneSetList), + offsetof(struct RoadLaneSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList = { + "RoadLaneSetList", + "RoadLaneSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadLaneSetList_tags_1, + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + asn_DEF_RoadLaneSetList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadLaneSetList_constr_1, &asn_PER_type_RoadLaneSetList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadLaneSetList_1, + 1, /* Single element */ + &asn_SPC_RoadLaneSetList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RoadRegulatorID.c b/vcits/rtcmem/src/RoadRegulatorID.c new file mode 100644 index 0000000..875e882 --- /dev/null +++ b/vcits/rtcmem/src/RoadRegulatorID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RoadRegulatorID.h" + +int +RoadRegulatorID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadRegulatorID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID = { + "RoadRegulatorID", + "RoadRegulatorID", + &asn_OP_NativeInteger, + asn_DEF_RoadRegulatorID_tags_1, + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + asn_DEF_RoadRegulatorID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadRegulatorID_constr_1, &asn_PER_type_RoadRegulatorID_constr_1, RoadRegulatorID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/RoadSegment.c b/vcits/rtcmem/src/RoadSegment.c new file mode 100644 index 0000000..b22a6a0 --- /dev/null +++ b/vcits/rtcmem/src/RoadSegment.c @@ -0,0 +1,203 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RoadSegment.h" + +#include "SpeedLimitList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RoadSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct RoadSegment__regional), + offsetof(struct RoadSegment__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { &asn_OER_type_regional_constr_9, &asn_PER_type_regional_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RoadSegment_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegment, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct RoadSegment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, roadLaneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadLaneSetList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadLaneSet" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { &asn_OER_memb_regional_constr_9, &asn_PER_memb_regional_constr_9, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RoadSegment_oms_1[] = { 0, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_RoadSegment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* roadLaneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1 = { + sizeof(struct RoadSegment), + offsetof(struct RoadSegment, _asn_ctx), + asn_MAP_RoadSegment_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_RoadSegment_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegment = { + "RoadSegment", + "RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegment_tags_1, + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + asn_DEF_RoadSegment_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSegment_1, + 8, /* Elements count */ + &asn_SPC_RoadSegment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RoadSegmentID.c b/vcits/rtcmem/src/RoadSegmentID.c new file mode 100644 index 0000000..2e08a76 --- /dev/null +++ b/vcits/rtcmem/src/RoadSegmentID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RoadSegmentID.h" + +int +RoadSegmentID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentID = { + "RoadSegmentID", + "RoadSegmentID", + &asn_OP_NativeInteger, + asn_DEF_RoadSegmentID_tags_1, + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSegmentID_constr_1, &asn_PER_type_RoadSegmentID_constr_1, RoadSegmentID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/RoadSegmentList.c b/vcits/rtcmem/src/RoadSegmentList.c new file mode 100644 index 0000000..f50063b --- /dev/null +++ b/vcits/rtcmem/src/RoadSegmentList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RoadSegmentList.h" + +#include "RoadSegment.h" +static asn_oer_constraints_t asn_OER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadSegmentList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RoadSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1 = { + sizeof(struct RoadSegmentList), + offsetof(struct RoadSegmentList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentList = { + "RoadSegmentList", + "RoadSegmentList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadSegmentList_tags_1, + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSegmentList_constr_1, &asn_PER_type_RoadSegmentList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadSegmentList_1, + 1, /* Single element */ + &asn_SPC_RoadSegmentList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RoadSegmentReferenceID.c b/vcits/rtcmem/src/RoadSegmentReferenceID.c new file mode 100644 index 0000000..2969c46 --- /dev/null +++ b/vcits/rtcmem/src/RoadSegmentReferenceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RoadSegmentReferenceID.h" + +asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegmentReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegmentReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_RoadSegmentReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_RoadSegmentReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegmentReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1 = { + sizeof(struct RoadSegmentReferenceID), + offsetof(struct RoadSegmentReferenceID, _asn_ctx), + asn_MAP_RoadSegmentReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RoadSegmentReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID = { + "RoadSegmentReferenceID", + "RoadSegmentReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegmentReferenceID_tags_1, + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSegmentReferenceID_1, + 2, /* Elements count */ + &asn_SPC_RoadSegmentReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RoadType.c b/vcits/rtcmem/src/RoadType.c new file mode 100644 index 0000000..e59d36b --- /dev/null +++ b/vcits/rtcmem/src/RoadType.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RoadType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RoadType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RoadType_value2enum_1[] = { + { 0, 43, "urban-NoStructuralSeparationToOppositeLanes" }, + { 1, 45, "urban-WithStructuralSeparationToOppositeLanes" }, + { 2, 46, "nonUrban-NoStructuralSeparationToOppositeLanes" }, + { 3, 48, "nonUrban-WithStructuralSeparationToOppositeLanes" } +}; +static const unsigned int asn_MAP_RoadType_enum2value_1[] = { + 2, /* nonUrban-NoStructuralSeparationToOppositeLanes(2) */ + 3, /* nonUrban-WithStructuralSeparationToOppositeLanes(3) */ + 0, /* urban-NoStructuralSeparationToOppositeLanes(0) */ + 1 /* urban-WithStructuralSeparationToOppositeLanes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RoadType_specs_1 = { + asn_MAP_RoadType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RoadType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadType = { + "RoadType", + "RoadType", + &asn_OP_NativeEnumerated, + asn_DEF_RoadType_tags_1, + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + asn_DEF_RoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadType_constr_1, &asn_PER_type_RoadType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RoadType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/RoadwayCrownAngle.c b/vcits/rtcmem/src/RoadwayCrownAngle.c new file mode 100644 index 0000000..c925210 --- /dev/null +++ b/vcits/rtcmem/src/RoadwayCrownAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RoadwayCrownAngle.h" + +int +RoadwayCrownAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -128 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-128..127) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -128, 127 } /* (-128..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadwayCrownAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle = { + "RoadwayCrownAngle", + "RoadwayCrownAngle", + &asn_OP_NativeInteger, + asn_DEF_RoadwayCrownAngle_tags_1, + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + asn_DEF_RoadwayCrownAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadwayCrownAngle_constr_1, &asn_PER_type_RoadwayCrownAngle_constr_1, RoadwayCrownAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/RoadworksSubCauseCode.c b/vcits/rtcmem/src/RoadworksSubCauseCode.c new file mode 100644 index 0000000..4590757 --- /dev/null +++ b/vcits/rtcmem/src/RoadworksSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "RoadworksSubCauseCode.h" + +int +RoadworksSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadworksSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode = { + "RoadworksSubCauseCode", + "RoadworksSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RoadworksSubCauseCode_tags_1, + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RoadworksSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadworksSubCauseCode_constr_1, &asn_PER_type_RoadworksSubCauseCode_constr_1, RoadworksSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SPAT.c b/vcits/rtcmem/src/SPAT.c new file mode 100644 index 0000000..7432c12 --- /dev/null +++ b/vcits/rtcmem/src/SPAT.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SPAT.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SPAT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SPAT__regional), + offsetof(struct SPAT__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SPAT_1[] = { + { ATF_POINTER, 2, offsetof(struct SPAT, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct SPAT, intersections), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SPAT_oms_1[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_SPAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SPAT_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SPAT_specs_1 = { + sizeof(struct SPAT), + offsetof(struct SPAT, _asn_ctx), + asn_MAP_SPAT_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SPAT_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SPAT = { + "SPAT", + "SPAT", + &asn_OP_SEQUENCE, + asn_DEF_SPAT_tags_1, + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + asn_DEF_SPAT_tags_1, /* Same as above */ + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SPAT_1, + 4, /* Elements count */ + &asn_SPC_SPAT_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Scale-B12.c b/vcits/rtcmem/src/Scale-B12.c new file mode 100644 index 0000000..9ef4502 --- /dev/null +++ b/vcits/rtcmem/src/Scale-B12.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Scale-B12.h" + +int +Scale_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Scale_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_Scale_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Scale_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Scale_B12 = { + "Scale-B12", + "Scale-B12", + &asn_OP_NativeInteger, + asn_DEF_Scale_B12_tags_1, + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + asn_DEF_Scale_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + { &asn_OER_type_Scale_B12_constr_1, &asn_PER_type_Scale_B12_constr_1, Scale_B12_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SegmentAttributeXY.c b/vcits/rtcmem/src/SegmentAttributeXY.c new file mode 100644 index 0000000..62c6286 --- /dev/null +++ b/vcits/rtcmem/src/SegmentAttributeXY.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SegmentAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 37 } /* (0..37,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SegmentAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 10, "doNotBlock" }, + { 2, 9, "whiteLine" }, + { 3, 15, "mergingLaneLeft" }, + { 4, 16, "mergingLaneRight" }, + { 5, 10, "curbOnLeft" }, + { 6, 11, "curbOnRight" }, + { 7, 17, "loadingzoneOnLeft" }, + { 8, 18, "loadingzoneOnRight" }, + { 9, 18, "turnOutPointOnLeft" }, + { 10, 19, "turnOutPointOnRight" }, + { 11, 21, "adjacentParkingOnLeft" }, + { 12, 22, "adjacentParkingOnRight" }, + { 13, 22, "adjacentBikeLaneOnLeft" }, + { 14, 23, "adjacentBikeLaneOnRight" }, + { 15, 14, "sharedBikeLane" }, + { 16, 14, "bikeBoxInFront" }, + { 17, 17, "transitStopOnLeft" }, + { 18, 18, "transitStopOnRight" }, + { 19, 17, "transitStopInLane" }, + { 20, 24, "sharedWithTrackedVehicle" }, + { 21, 10, "safeIsland" }, + { 22, 15, "lowCurbsPresent" }, + { 23, 18, "rumbleStripPresent" }, + { 24, 23, "audibleSignalingPresent" }, + { 25, 21, "adaptiveTimingPresent" }, + { 26, 22, "rfSignalRequestPresent" }, + { 27, 20, "partialCurbIntrusion" }, + { 28, 11, "taperToLeft" }, + { 29, 12, "taperToRight" }, + { 30, 17, "taperToCenterLine" }, + { 31, 15, "parallelParking" }, + { 32, 13, "headInParking" }, + { 33, 11, "freeParking" }, + { 34, 25, "timeRestrictionsOnParking" }, + { 35, 10, "costToPark" }, + { 36, 19, "midBlockCurbPresent" }, + { 37, 21, "unEvenPavementPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SegmentAttributeXY_enum2value_1[] = { + 25, /* adaptiveTimingPresent(25) */ + 13, /* adjacentBikeLaneOnLeft(13) */ + 14, /* adjacentBikeLaneOnRight(14) */ + 11, /* adjacentParkingOnLeft(11) */ + 12, /* adjacentParkingOnRight(12) */ + 24, /* audibleSignalingPresent(24) */ + 16, /* bikeBoxInFront(16) */ + 35, /* costToPark(35) */ + 5, /* curbOnLeft(5) */ + 6, /* curbOnRight(6) */ + 1, /* doNotBlock(1) */ + 33, /* freeParking(33) */ + 32, /* headInParking(32) */ + 7, /* loadingzoneOnLeft(7) */ + 8, /* loadingzoneOnRight(8) */ + 22, /* lowCurbsPresent(22) */ + 3, /* mergingLaneLeft(3) */ + 4, /* mergingLaneRight(4) */ + 36, /* midBlockCurbPresent(36) */ + 31, /* parallelParking(31) */ + 27, /* partialCurbIntrusion(27) */ + 0, /* reserved(0) */ + 26, /* rfSignalRequestPresent(26) */ + 23, /* rumbleStripPresent(23) */ + 21, /* safeIsland(21) */ + 15, /* sharedBikeLane(15) */ + 20, /* sharedWithTrackedVehicle(20) */ + 30, /* taperToCenterLine(30) */ + 28, /* taperToLeft(28) */ + 29, /* taperToRight(29) */ + 34, /* timeRestrictionsOnParking(34) */ + 19, /* transitStopInLane(19) */ + 17, /* transitStopOnLeft(17) */ + 18, /* transitStopOnRight(18) */ + 9, /* turnOutPointOnLeft(9) */ + 10, /* turnOutPointOnRight(10) */ + 37, /* unEvenPavementPresent(37) */ + 2 /* whiteLine(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1 = { + asn_MAP_SegmentAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SegmentAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 38, /* Number of elements in the maps */ + 39, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY = { + "SegmentAttributeXY", + "SegmentAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_SegmentAttributeXY_tags_1, + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentAttributeXY_constr_1, &asn_PER_type_SegmentAttributeXY_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SegmentAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SegmentAttributeXYList.c b/vcits/rtcmem/src/SegmentAttributeXYList.c new file mode 100644 index 0000000..377aabd --- /dev/null +++ b/vcits/rtcmem/src/SegmentAttributeXYList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SegmentAttributeXYList.h" + +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_SegmentAttributeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1 = { + sizeof(struct SegmentAttributeXYList), + offsetof(struct SegmentAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList = { + "SegmentAttributeXYList", + "SegmentAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SegmentAttributeXYList_tags_1, + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentAttributeXYList_constr_1, &asn_PER_type_SegmentAttributeXYList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SegmentAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_SegmentAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SemiAxisLength.c b/vcits/rtcmem/src/SemiAxisLength.c new file mode 100644 index 0000000..9fbb57d --- /dev/null +++ b/vcits/rtcmem/src/SemiAxisLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SemiAxisLength.h" + +int +SemiAxisLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiAxisLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiAxisLength = { + "SemiAxisLength", + "SemiAxisLength", + &asn_OP_NativeInteger, + asn_DEF_SemiAxisLength_tags_1, + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + asn_DEF_SemiAxisLength_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiAxisLength_constr_1, &asn_PER_type_SemiAxisLength_constr_1, SemiAxisLength_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SemiMajorAxisAccuracy.c b/vcits/rtcmem/src/SemiMajorAxisAccuracy.c new file mode 100644 index 0000000..f1c0655 --- /dev/null +++ b/vcits/rtcmem/src/SemiMajorAxisAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SemiMajorAxisAccuracy.h" + +int +SemiMajorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy = { + "SemiMajorAxisAccuracy", + "SemiMajorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMajorAxisAccuracy_constr_1, &asn_PER_type_SemiMajorAxisAccuracy_constr_1, SemiMajorAxisAccuracy_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SemiMajorAxisOrientation.c b/vcits/rtcmem/src/SemiMajorAxisOrientation.c new file mode 100644 index 0000000..75330bf --- /dev/null +++ b/vcits/rtcmem/src/SemiMajorAxisOrientation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SemiMajorAxisOrientation.h" + +int +SemiMajorAxisOrientation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisOrientation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation = { + "SemiMajorAxisOrientation", + "SemiMajorAxisOrientation", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisOrientation_tags_1, + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisOrientation_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMajorAxisOrientation_constr_1, &asn_PER_type_SemiMajorAxisOrientation_constr_1, SemiMajorAxisOrientation_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SemiMinorAxisAccuracy.c b/vcits/rtcmem/src/SemiMinorAxisAccuracy.c new file mode 100644 index 0000000..984c205 --- /dev/null +++ b/vcits/rtcmem/src/SemiMinorAxisAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SemiMinorAxisAccuracy.h" + +int +SemiMinorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMinorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy = { + "SemiMinorAxisAccuracy", + "SemiMinorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMinorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMinorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMinorAxisAccuracy_constr_1, &asn_PER_type_SemiMinorAxisAccuracy_constr_1, SemiMinorAxisAccuracy_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SequenceNumber.c b/vcits/rtcmem/src/SequenceNumber.c new file mode 100644 index 0000000..5ebbf30 --- /dev/null +++ b/vcits/rtcmem/src/SequenceNumber.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SequenceNumber.h" + +int +SequenceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SequenceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SequenceNumber = { + "SequenceNumber", + "SequenceNumber", + &asn_OP_NativeInteger, + asn_DEF_SequenceNumber_tags_1, + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + asn_DEF_SequenceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_SequenceNumber_constr_1, &asn_PER_type_SequenceNumber_constr_1, SequenceNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/ServiceApplicationLimit.c b/vcits/rtcmem/src/ServiceApplicationLimit.c new file mode 100644 index 0000000..9e51b3a --- /dev/null +++ b/vcits/rtcmem/src/ServiceApplicationLimit.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ServiceApplicationLimit.h" + +int +ServiceApplicationLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ServiceApplicationLimit_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_ServiceApplicationLimit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ServiceApplicationLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServiceApplicationLimit = { + "ServiceApplicationLimit", + "ServiceApplicationLimit", + &asn_OP_BIT_STRING, + asn_DEF_ServiceApplicationLimit_tags_1, + sizeof(asn_DEF_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_ServiceApplicationLimit_tags_1[0]), /* 1 */ + asn_DEF_ServiceApplicationLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_ServiceApplicationLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_ServiceApplicationLimit_constr_1, &asn_PER_type_ServiceApplicationLimit_constr_1, ServiceApplicationLimit_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ServiceNumber.c b/vcits/rtcmem/src/ServiceNumber.c new file mode 100644 index 0000000..2b16a9b --- /dev/null +++ b/vcits/rtcmem/src/ServiceNumber.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ServiceNumber.h" + +int +ServiceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 32)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ServiceNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + 32 /* (SIZE(32..32)) */}; +asn_per_constraints_t asn_PER_type_ServiceNumber_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ServiceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServiceNumber = { + "ServiceNumber", + "ServiceNumber", + &asn_OP_BIT_STRING, + asn_DEF_ServiceNumber_tags_1, + sizeof(asn_DEF_ServiceNumber_tags_1) + /sizeof(asn_DEF_ServiceNumber_tags_1[0]), /* 1 */ + asn_DEF_ServiceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ServiceNumber_tags_1) + /sizeof(asn_DEF_ServiceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_ServiceNumber_constr_1, &asn_PER_type_ServiceNumber_constr_1, ServiceNumber_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalControlZone.c b/vcits/rtcmem/src/SignalControlZone.c new file mode 100644 index 0000000..837e125 --- /dev/null +++ b/vcits/rtcmem/src/SignalControlZone.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalControlZone.h" + +asn_TYPE_member_t asn_MBR_SignalControlZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalControlZone, zone), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_SignalControlZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zone" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalControlZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalControlZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* zone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1 = { + sizeof(struct SignalControlZone), + offsetof(struct SignalControlZone, _asn_ctx), + asn_MAP_SignalControlZone_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalControlZone = { + "SignalControlZone", + "SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_SignalControlZone_tags_1, + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + asn_DEF_SignalControlZone_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalControlZone_1, + 1, /* Elements count */ + &asn_SPC_SignalControlZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalGroupID.c b/vcits/rtcmem/src/SignalGroupID.c new file mode 100644 index 0000000..e56fcbb --- /dev/null +++ b/vcits/rtcmem/src/SignalGroupID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalGroupID.h" + +int +SignalGroupID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalGroupID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalGroupID = { + "SignalGroupID", + "SignalGroupID", + &asn_OP_NativeInteger, + asn_DEF_SignalGroupID_tags_1, + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + asn_DEF_SignalGroupID_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalGroupID_constr_1, &asn_PER_type_SignalGroupID_constr_1, SignalGroupID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SignalHeadLocation.c b/vcits/rtcmem/src/SignalHeadLocation.c new file mode 100644 index 0000000..800e8b2 --- /dev/null +++ b/vcits/rtcmem/src/SignalHeadLocation.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalHeadLocation.h" + +asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, nodeZ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeZ" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, signalGroupID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroupID" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalHeadLocation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeZ */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroupID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1 = { + sizeof(struct SignalHeadLocation), + offsetof(struct SignalHeadLocation, _asn_ctx), + asn_MAP_SignalHeadLocation_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation = { + "SignalHeadLocation", + "SignalHeadLocation", + &asn_OP_SEQUENCE, + asn_DEF_SignalHeadLocation_tags_1, + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalHeadLocation_1, + 3, /* Elements count */ + &asn_SPC_SignalHeadLocation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalHeadLocationList.c b/vcits/rtcmem/src/SignalHeadLocationList.c new file mode 100644 index 0000000..e7c194b --- /dev/null +++ b/vcits/rtcmem/src/SignalHeadLocationList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalHeadLocationList.h" + +#include "SignalHeadLocation.h" +static asn_oer_constraints_t asn_OER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalHeadLocation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1 = { + sizeof(struct SignalHeadLocationList), + offsetof(struct SignalHeadLocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList = { + "SignalHeadLocationList", + "SignalHeadLocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalHeadLocationList_tags_1, + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalHeadLocationList_constr_1, &asn_PER_type_SignalHeadLocationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalHeadLocationList_1, + 1, /* Single element */ + &asn_SPC_SignalHeadLocationList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalRequest.c b/vcits/rtcmem/src/SignalRequest.c new file mode 100644 index 0000000..dcadabb --- /dev/null +++ b/vcits/rtcmem/src/SignalRequest.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalRequest.h" + +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequest__regional), + offsetof(struct SignalRequest__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PriorityRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestType" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, inBoundLane), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inBoundLane" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequest, outBoundLane), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outBoundLane" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequest, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequest_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* requestID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* requestType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* inBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* outBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1 = { + sizeof(struct SignalRequest), + offsetof(struct SignalRequest, _asn_ctx), + asn_MAP_SignalRequest_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequest_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequest = { + "SignalRequest", + "SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequest_tags_1, + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + asn_DEF_SignalRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequest_1, + 6, /* Elements count */ + &asn_SPC_SignalRequest_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalRequestList.c b/vcits/rtcmem/src/SignalRequestList.c new file mode 100644 index 0000000..0d3af94 --- /dev/null +++ b/vcits/rtcmem/src/SignalRequestList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalRequestList.h" + +#include "SignalRequestPackage.h" +static asn_oer_constraints_t asn_OER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalRequestPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1 = { + sizeof(struct SignalRequestList), + offsetof(struct SignalRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestList = { + "SignalRequestList", + "SignalRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalRequestList_tags_1, + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalRequestList_constr_1, &asn_PER_type_SignalRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalRequestList_1, + 1, /* Single element */ + &asn_SPC_SignalRequestList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalRequestMessage.c b/vcits/rtcmem/src/SignalRequestMessage.c new file mode 100644 index 0000000..966bbab --- /dev/null +++ b/vcits/rtcmem/src/SignalRequestMessage.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalRequestMessage.h" + +#include "SignalRequestList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequestMessage__regional), + offsetof(struct SignalRequestMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SignalRequestMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, requests), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requests" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, requestor), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestor" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestMessage_oms_1[] = { 0, 2, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* requests */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* requestor */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SignalRequestMessage_specs_1 = { + sizeof(struct SignalRequestMessage), + offsetof(struct SignalRequestMessage, _asn_ctx), + asn_MAP_SignalRequestMessage_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequestMessage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage = { + "SignalRequestMessage", + "SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestMessage_tags_1, + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequestMessage_1, + 6, /* Elements count */ + &asn_SPC_SignalRequestMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalRequestPackage.c b/vcits/rtcmem/src/SignalRequestPackage.c new file mode 100644 index 0000000..0152800 --- /dev/null +++ b/vcits/rtcmem/src/SignalRequestPackage.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalRequestPackage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalRequestPackage__regional), + offsetof(struct SignalRequestPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestPackage, request), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 4, offsetof(struct SignalRequestPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 3, offsetof(struct SignalRequestPackage, second), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestPackage_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1 = { + sizeof(struct SignalRequestPackage), + offsetof(struct SignalRequestPackage, _asn_ctx), + asn_MAP_SignalRequestPackage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequestPackage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage = { + "SignalRequestPackage", + "SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestPackage_tags_1, + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequestPackage_1, + 5, /* Elements count */ + &asn_SPC_SignalRequestPackage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalRequesterInfo.c b/vcits/rtcmem/src/SignalRequesterInfo.c new file mode 100644 index 0000000..8197a40 --- /dev/null +++ b/vcits/rtcmem/src/SignalRequesterInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalRequesterInfo.h" + +#include "RequestorType.h" +asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, request), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequesterInfo, role), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequesterInfo, typeData), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeData" + }, +}; +static const int asn_MAP_SignalRequesterInfo_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequesterInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequesterInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* typeData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1 = { + sizeof(struct SignalRequesterInfo), + offsetof(struct SignalRequesterInfo, _asn_ctx), + asn_MAP_SignalRequesterInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequesterInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo = { + "SignalRequesterInfo", + "SignalRequesterInfo", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequesterInfo_tags_1, + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + asn_DEF_SignalRequesterInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequesterInfo_1, + 5, /* Elements count */ + &asn_SPC_SignalRequesterInfo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalStatus.c b/vcits/rtcmem/src/SignalStatus.c new file mode 100644 index 0000000..d056e6d --- /dev/null +++ b/vcits/rtcmem/src/SignalStatus.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalStatus.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SignalStatus__regional), + offsetof(struct SignalStatus__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sigStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusPackageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sigStatus" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatus, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatus_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_SignalStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatus_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sigStatus */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1 = { + sizeof(struct SignalStatus), + offsetof(struct SignalStatus, _asn_ctx), + asn_MAP_SignalStatus_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SignalStatus_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatus = { + "SignalStatus", + "SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatus_tags_1, + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + asn_DEF_SignalStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatus_1, + 4, /* Elements count */ + &asn_SPC_SignalStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalStatusList.c b/vcits/rtcmem/src/SignalStatusList.c new file mode 100644 index 0000000..da28801 --- /dev/null +++ b/vcits/rtcmem/src/SignalStatusList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalStatusList.h" + +#include "SignalStatus.h" +static asn_oer_constraints_t asn_OER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalStatusList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1 = { + sizeof(struct SignalStatusList), + offsetof(struct SignalStatusList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusList = { + "SignalStatusList", + "SignalStatusList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusList_tags_1, + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalStatusList_constr_1, &asn_PER_type_SignalStatusList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalStatusList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalStatusMessage.c b/vcits/rtcmem/src/SignalStatusMessage.c new file mode 100644 index 0000000..8ef7093 --- /dev/null +++ b/vcits/rtcmem/src/SignalStatusMessage.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalStatusMessage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalStatusMessage__regional), + offsetof(struct SignalStatusMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SignalStatusMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusMessage_oms_1[] = { 0, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SignalStatusMessage_specs_1 = { + sizeof(struct SignalStatusMessage), + offsetof(struct SignalStatusMessage, _asn_ctx), + asn_MAP_SignalStatusMessage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalStatusMessage_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage = { + "SignalStatusMessage", + "SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusMessage_tags_1, + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusMessage_1, + 5, /* Elements count */ + &asn_SPC_SignalStatusMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalStatusPackage-addGrpC.c b/vcits/rtcmem/src/SignalStatusPackage-addGrpC.c new file mode 100644 index 0000000..221855d --- /dev/null +++ b/vcits/rtcmem/src/SignalStatusPackage-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalStatusPackage-addGrpC.h" + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage_addGrpC, synchToSchedule), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "synchToSchedule" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage_addGrpC, rejectedReason), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RejectedReason, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rejectedReason" + }, +}; +static const int asn_MAP_SignalStatusPackage_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* synchToSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rejectedReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_addGrpC_specs_1 = { + sizeof(struct SignalStatusPackage_addGrpC), + offsetof(struct SignalStatusPackage_addGrpC, _asn_ctx), + asn_MAP_SignalStatusPackage_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage_addGrpC = { + "SignalStatusPackage-addGrpC", + "SignalStatusPackage-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_addGrpC_tags_1, + sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusPackage_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_SignalStatusPackage_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalStatusPackage.c b/vcits/rtcmem/src/SignalStatusPackage.c new file mode 100644 index 0000000..8711dab --- /dev/null +++ b/vcits/rtcmem/src/SignalStatusPackage.c @@ -0,0 +1,204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalStatusPackage.h" + +#include "SignalRequesterInfo.h" +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct SignalStatusPackage__regional), + offsetof(struct SignalStatusPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { &asn_OER_type_regional_constr_9, &asn_PER_type_regional_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, requester), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequesterInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requester" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, inboundOn), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inboundOn" + }, + { ATF_POINTER, 4, offsetof(struct SignalStatusPackage, outboundOn), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outboundOn" + }, + { ATF_POINTER, 3, offsetof(struct SignalStatusPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage, second), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, status), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { &asn_OER_memb_regional_constr_9, &asn_PER_memb_regional_constr_9, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusPackage_oms_1[] = { 0, 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requester */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* inboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* outboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1 = { + sizeof(struct SignalStatusPackage), + offsetof(struct SignalStatusPackage, _asn_ctx), + asn_MAP_SignalStatusPackage_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage = { + "SignalStatusPackage", + "SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_tags_1, + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusPackage_1, + 8, /* Elements count */ + &asn_SPC_SignalStatusPackage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalStatusPackageList.c b/vcits/rtcmem/src/SignalStatusPackageList.c new file mode 100644 index 0000000..f6a6dad --- /dev/null +++ b/vcits/rtcmem/src/SignalStatusPackageList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalStatusPackageList.h" + +#include "SignalStatusPackage.h" +static asn_oer_constraints_t asn_OER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1 = { + sizeof(struct SignalStatusPackageList), + offsetof(struct SignalStatusPackageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList = { + "SignalStatusPackageList", + "SignalStatusPackageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusPackageList_tags_1, + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackageList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalStatusPackageList_constr_1, &asn_PER_type_SignalStatusPackageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalStatusPackageList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusPackageList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SignalViolationSubCauseCode.c b/vcits/rtcmem/src/SignalViolationSubCauseCode.c new file mode 100644 index 0000000..32b669b --- /dev/null +++ b/vcits/rtcmem/src/SignalViolationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SignalViolationSubCauseCode.h" + +int +SignalViolationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalViolationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode = { + "SignalViolationSubCauseCode", + "SignalViolationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SignalViolationSubCauseCode_tags_1, + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SignalViolationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalViolationSubCauseCode_constr_1, &asn_PER_type_SignalViolationSubCauseCode_constr_1, SignalViolationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SlowVehicleSubCauseCode.c b/vcits/rtcmem/src/SlowVehicleSubCauseCode.c new file mode 100644 index 0000000..bffcd76 --- /dev/null +++ b/vcits/rtcmem/src/SlowVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SlowVehicleSubCauseCode.h" + +int +SlowVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SlowVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode = { + "SlowVehicleSubCauseCode", + "SlowVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SlowVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SlowVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SlowVehicleSubCauseCode_constr_1, &asn_PER_type_SlowVehicleSubCauseCode_constr_1, SlowVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SpecialTransportType.c b/vcits/rtcmem/src/SpecialTransportType.c new file mode 100644 index 0000000..788410a --- /dev/null +++ b/vcits/rtcmem/src/SpecialTransportType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SpecialTransportType.h" + +int +SpecialTransportType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpecialTransportType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpecialTransportType = { + "SpecialTransportType", + "SpecialTransportType", + &asn_OP_BIT_STRING, + asn_DEF_SpecialTransportType_tags_1, + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + asn_DEF_SpecialTransportType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpecialTransportType_constr_1, &asn_PER_type_SpecialTransportType_constr_1, SpecialTransportType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Speed.c b/vcits/rtcmem/src/Speed.c new file mode 100644 index 0000000..dee2862 --- /dev/null +++ b/vcits/rtcmem/src/Speed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Speed.h" + +static asn_TYPE_member_t asn_MBR_Speed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Speed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speedConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Speed_specs_1 = { + sizeof(struct Speed), + offsetof(struct Speed, _asn_ctx), + asn_MAP_Speed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Speed = { + "Speed", + "Speed", + &asn_OP_SEQUENCE, + asn_DEF_Speed_tags_1, + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + asn_DEF_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Speed_1, + 2, /* Elements count */ + &asn_SPC_Speed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SpeedAdvice.c b/vcits/rtcmem/src/SpeedAdvice.c new file mode 100644 index 0000000..013778f --- /dev/null +++ b/vcits/rtcmem/src/SpeedAdvice.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SpeedAdvice.h" + +int +SpeedAdvice_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..500) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 500 } /* (0..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedAdvice_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedAdvice = { + "SpeedAdvice", + "SpeedAdvice", + &asn_OP_NativeInteger, + asn_DEF_SpeedAdvice_tags_1, + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + asn_DEF_SpeedAdvice_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedAdvice_constr_1, &asn_PER_type_SpeedAdvice_constr_1, SpeedAdvice_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SpeedConfidence.c b/vcits/rtcmem/src/SpeedConfidence.c new file mode 100644 index 0000000..eafb125 --- /dev/null +++ b/vcits/rtcmem/src/SpeedConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SpeedConfidence.h" + +int +SpeedConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeInteger, + asn_DEF_SpeedConfidence_tags_1, + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidence_constr_1, &asn_PER_type_SpeedConfidence_constr_1, SpeedConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SpeedConfidenceDSRC.c b/vcits/rtcmem/src/SpeedConfidenceDSRC.c new file mode 100644 index 0000000..656fc72 --- /dev/null +++ b/vcits/rtcmem/src/SpeedConfidenceDSRC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SpeedConfidenceDSRC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidenceDSRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidenceDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SpeedConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec100ms" }, + { 2, 8, "prec10ms" }, + { 3, 7, "prec5ms" }, + { 4, 7, "prec1ms" }, + { 5, 9, "prec0-1ms" }, + { 6, 10, "prec0-05ms" }, + { 7, 10, "prec0-01ms" } +}; +static const unsigned int asn_MAP_SpeedConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-01ms(7) */ + 6, /* prec0-05ms(6) */ + 5, /* prec0-1ms(5) */ + 1, /* prec100ms(1) */ + 2, /* prec10ms(2) */ + 4, /* prec1ms(4) */ + 3, /* prec5ms(3) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedConfidenceDSRC_specs_1 = { + asn_MAP_SpeedConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedConfidenceDSRC_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidenceDSRC = { + "SpeedConfidenceDSRC", + "SpeedConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedConfidenceDSRC_tags_1, + sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidenceDSRC_constr_1, &asn_PER_type_SpeedConfidenceDSRC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SpeedLimit.c b/vcits/rtcmem/src/SpeedLimit.c new file mode 100644 index 0000000..d1dfb4c --- /dev/null +++ b/vcits/rtcmem/src/SpeedLimit.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SpeedLimit.h" + +int +SpeedLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_NativeInteger, + asn_DEF_SpeedLimit_tags_1, + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimit_constr_1, &asn_PER_type_SpeedLimit_constr_1, SpeedLimit_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SpeedLimitList.c b/vcits/rtcmem/src/SpeedLimitList.c new file mode 100644 index 0000000..08b39e8 --- /dev/null +++ b/vcits/rtcmem/src/SpeedLimitList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SpeedLimitList.h" + +#include "RegulatorySpeedLimit.h" +static asn_oer_constraints_t asn_OER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..9)) */}; +asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 9 } /* (SIZE(1..9)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SpeedLimitList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RegulatorySpeedLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1 = { + sizeof(struct SpeedLimitList), + offsetof(struct SpeedLimitList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitList = { + "SpeedLimitList", + "SpeedLimitList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SpeedLimitList_tags_1, + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitList_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimitList_constr_1, &asn_PER_type_SpeedLimitList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SpeedLimitList_1, + 1, /* Single element */ + &asn_SPC_SpeedLimitList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SpeedLimitType.c b/vcits/rtcmem/src/SpeedLimitType.c new file mode 100644 index 0000000..5533928 --- /dev/null +++ b/vcits/rtcmem/src/SpeedLimitType.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SpeedLimitType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SpeedLimitType_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "maxSpeedInSchoolZone" }, + { 2, 42, "maxSpeedInSchoolZoneWhenChildrenArePresent" }, + { 3, 26, "maxSpeedInConstructionZone" }, + { 4, 15, "vehicleMinSpeed" }, + { 5, 15, "vehicleMaxSpeed" }, + { 6, 20, "vehicleNightMaxSpeed" }, + { 7, 13, "truckMinSpeed" }, + { 8, 13, "truckMaxSpeed" }, + { 9, 18, "truckNightMaxSpeed" }, + { 10, 28, "vehiclesWithTrailersMinSpeed" }, + { 11, 28, "vehiclesWithTrailersMaxSpeed" }, + { 12, 33, "vehiclesWithTrailersNightMaxSpeed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SpeedLimitType_enum2value_1[] = { + 3, /* maxSpeedInConstructionZone(3) */ + 1, /* maxSpeedInSchoolZone(1) */ + 2, /* maxSpeedInSchoolZoneWhenChildrenArePresent(2) */ + 8, /* truckMaxSpeed(8) */ + 7, /* truckMinSpeed(7) */ + 9, /* truckNightMaxSpeed(9) */ + 0, /* unknown(0) */ + 5, /* vehicleMaxSpeed(5) */ + 4, /* vehicleMinSpeed(4) */ + 6, /* vehicleNightMaxSpeed(6) */ + 11, /* vehiclesWithTrailersMaxSpeed(11) */ + 10, /* vehiclesWithTrailersMinSpeed(10) */ + 12 /* vehiclesWithTrailersNightMaxSpeed(12) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1 = { + asn_MAP_SpeedLimitType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedLimitType_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitType = { + "SpeedLimitType", + "SpeedLimitType", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedLimitType_tags_1, + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimitType_constr_1, &asn_PER_type_SpeedLimitType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedLimitType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SpeedValue.c b/vcits/rtcmem/src/SpeedValue.c new file mode 100644 index 0000000..14e010a --- /dev/null +++ b/vcits/rtcmem/src/SpeedValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SpeedValue.h" + +int +SpeedValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedValue = { + "SpeedValue", + "SpeedValue", + &asn_OP_NativeInteger, + asn_DEF_SpeedValue_tags_1, + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + asn_DEF_SpeedValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedValue_constr_1, &asn_PER_type_SpeedValue_constr_1, SpeedValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SpeedandHeadingandThrottleConfidence.c b/vcits/rtcmem/src/SpeedandHeadingandThrottleConfidence.c new file mode 100644 index 0000000..2c39275 --- /dev/null +++ b/vcits/rtcmem/src/SpeedandHeadingandThrottleConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SpeedandHeadingandThrottleConfidence.h" + +asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, throttle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ThrottleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "throttle" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* throttle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 = { + sizeof(struct SpeedandHeadingandThrottleConfidence), + offsetof(struct SpeedandHeadingandThrottleConfidence, _asn_ctx), + asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence = { + "SpeedandHeadingandThrottleConfidence", + "SpeedandHeadingandThrottleConfidence", + &asn_OP_SEQUENCE, + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SpeedandHeadingandThrottleConfidence_1, + 3, /* Elements count */ + &asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/StartTime.c b/vcits/rtcmem/src/StartTime.c new file mode 100644 index 0000000..adfb93d --- /dev/null +++ b/vcits/rtcmem/src/StartTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "StartTime.h" + +int +StartTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const AviEriDateTime_t *st = (const AviEriDateTime_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using AviEriDateTime, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StartTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_StartTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StartTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StartTime = { + "StartTime", + "StartTime", + &asn_OP_OCTET_STRING, + asn_DEF_StartTime_tags_1, + sizeof(asn_DEF_StartTime_tags_1) + /sizeof(asn_DEF_StartTime_tags_1[0]), /* 1 */ + asn_DEF_StartTime_tags_1, /* Same as above */ + sizeof(asn_DEF_StartTime_tags_1) + /sizeof(asn_DEF_StartTime_tags_1[0]), /* 1 */ + { &asn_OER_type_StartTime_constr_1, &asn_PER_type_StartTime_constr_1, StartTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/StationID.c b/vcits/rtcmem/src/StationID.c new file mode 100644 index 0000000..8c535ed --- /dev/null +++ b/vcits/rtcmem/src/StationID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "StationID.h" + +int +StationID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +asn_per_constraints_t asn_PER_type_StationID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_StationID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationID = { + "StationID", + "StationID", + &asn_OP_NativeInteger, + asn_DEF_StationID_tags_1, + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + asn_DEF_StationID_tags_1, /* Same as above */ + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + { &asn_OER_type_StationID_constr_1, &asn_PER_type_StationID_constr_1, StationID_constraint }, + 0, 0, /* No members */ + &asn_SPC_StationID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/StationType.c b/vcits/rtcmem/src/StationType.c new file mode 100644 index 0000000..7e98660 --- /dev/null +++ b/vcits/rtcmem/src/StationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "StationType.h" + +int +StationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_StationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationType = { + "StationType", + "StationType", + &asn_OP_NativeInteger, + asn_DEF_StationType_tags_1, + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + asn_DEF_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + { &asn_OER_type_StationType_constr_1, &asn_PER_type_StationType_constr_1, StationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/StationarySince.c b/vcits/rtcmem/src/StationarySince.c new file mode 100644 index 0000000..5fb1b3d --- /dev/null +++ b/vcits/rtcmem/src/StationarySince.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "StationarySince.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationarySince_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_StationarySince_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_StationarySince_value2enum_1[] = { + { 0, 15, "lessThan1Minute" }, + { 1, 16, "lessThan2Minutes" }, + { 2, 17, "lessThan15Minutes" }, + { 3, 23, "equalOrGreater15Minutes" } +}; +static const unsigned int asn_MAP_StationarySince_enum2value_1[] = { + 3, /* equalOrGreater15Minutes(3) */ + 2, /* lessThan15Minutes(2) */ + 0, /* lessThan1Minute(0) */ + 1 /* lessThan2Minutes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_StationarySince_specs_1 = { + asn_MAP_StationarySince_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_StationarySince_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_StationarySince_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationarySince = { + "StationarySince", + "StationarySince", + &asn_OP_NativeEnumerated, + asn_DEF_StationarySince_tags_1, + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + asn_DEF_StationarySince_tags_1, /* Same as above */ + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + { &asn_OER_type_StationarySince_constr_1, &asn_PER_type_StationarySince_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_StationarySince_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/StationaryVehicleSubCauseCode.c b/vcits/rtcmem/src/StationaryVehicleSubCauseCode.c new file mode 100644 index 0000000..00b646c --- /dev/null +++ b/vcits/rtcmem/src/StationaryVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "StationaryVehicleSubCauseCode.h" + +int +StationaryVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationaryVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode = { + "StationaryVehicleSubCauseCode", + "StationaryVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_StationaryVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_StationaryVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_StationaryVehicleSubCauseCode_constr_1, &asn_PER_type_StationaryVehicleSubCauseCode_constr_1, StationaryVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SteeringWheelAngle.c b/vcits/rtcmem/src/SteeringWheelAngle.c new file mode 100644 index 0000000..578d152 --- /dev/null +++ b/vcits/rtcmem/src/SteeringWheelAngle.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SteeringWheelAngle.h" + +static asn_TYPE_member_t asn_MBR_SteeringWheelAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SteeringWheelAngle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* steeringWheelAngleValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* steeringWheelAngleConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SteeringWheelAngle_specs_1 = { + sizeof(struct SteeringWheelAngle), + offsetof(struct SteeringWheelAngle, _asn_ctx), + asn_MAP_SteeringWheelAngle_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_SEQUENCE, + asn_DEF_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SteeringWheelAngle_1, + 2, /* Elements count */ + &asn_SPC_SteeringWheelAngle_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SteeringWheelAngleConfidence.c b/vcits/rtcmem/src/SteeringWheelAngleConfidence.c new file mode 100644 index 0000000..d837ff9 --- /dev/null +++ b/vcits/rtcmem/src/SteeringWheelAngleConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SteeringWheelAngleConfidence.h" + +int +SteeringWheelAngleConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleConfidence_constr_1, &asn_PER_type_SteeringWheelAngleConfidence_constr_1, SteeringWheelAngleConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/SteeringWheelAngleValue.c b/vcits/rtcmem/src/SteeringWheelAngleValue.c new file mode 100644 index 0000000..583f1ae --- /dev/null +++ b/vcits/rtcmem/src/SteeringWheelAngleValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SteeringWheelAngleValue.h" + +int +SteeringWheelAngleValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -511 && value <= 512)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-511..512) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -511, 512 } /* (-511..512) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue = { + "SteeringWheelAngleValue", + "SteeringWheelAngleValue", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleValue_tags_1, + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleValue_constr_1, &asn_PER_type_SteeringWheelAngleValue_constr_1, SteeringWheelAngleValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/StopTime.c b/vcits/rtcmem/src/StopTime.c new file mode 100644 index 0000000..213ad12 --- /dev/null +++ b/vcits/rtcmem/src/StopTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "StopTime.h" + +int +StopTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const AviEriDateTime_t *st = (const AviEriDateTime_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using AviEriDateTime, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StopTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_StopTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StopTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StopTime = { + "StopTime", + "StopTime", + &asn_OP_OCTET_STRING, + asn_DEF_StopTime_tags_1, + sizeof(asn_DEF_StopTime_tags_1) + /sizeof(asn_DEF_StopTime_tags_1[0]), /* 1 */ + asn_DEF_StopTime_tags_1, /* Same as above */ + sizeof(asn_DEF_StopTime_tags_1) + /sizeof(asn_DEF_StopTime_tags_1[0]), /* 1 */ + { &asn_OER_type_StopTime_constr_1, &asn_PER_type_StopTime_constr_1, StopTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/SubCauseCodeType.c b/vcits/rtcmem/src/SubCauseCodeType.c new file mode 100644 index 0000000..be4e7e2 --- /dev/null +++ b/vcits/rtcmem/src/SubCauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "SubCauseCodeType.h" + +int +SubCauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SubCauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType = { + "SubCauseCodeType", + "SubCauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_SubCauseCodeType_tags_1, + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_SubCauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_SubCauseCodeType_constr_1, &asn_PER_type_SubCauseCodeType_constr_1, SubCauseCodeType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/TaxCode.c b/vcits/rtcmem/src/TaxCode.c new file mode 100644 index 0000000..e5b0c6c --- /dev/null +++ b/vcits/rtcmem/src/TaxCode.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TaxCode.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_TaxCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TaxCode = { + "TaxCode", + "TaxCode", + &asn_OP_OCTET_STRING, + asn_DEF_TaxCode_tags_1, + sizeof(asn_DEF_TaxCode_tags_1) + /sizeof(asn_DEF_TaxCode_tags_1[0]), /* 1 */ + asn_DEF_TaxCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TaxCode_tags_1) + /sizeof(asn_DEF_TaxCode_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/Temperature.c b/vcits/rtcmem/src/Temperature.c new file mode 100644 index 0000000..b8a340f --- /dev/null +++ b/vcits/rtcmem/src/Temperature.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Temperature.h" + +int +Temperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -60 && value <= 67)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Temperature_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-60..67) */, + -1}; +static asn_per_constraints_t asn_PER_type_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 67 } /* (-60..67) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_Temperature_tags_1, + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + asn_DEF_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + { &asn_OER_type_Temperature_constr_1, &asn_PER_type_Temperature_constr_1, Temperature_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/TemporaryID.c b/vcits/rtcmem/src/TemporaryID.c new file mode 100644 index 0000000..56bb57e --- /dev/null +++ b/vcits/rtcmem/src/TemporaryID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TemporaryID.h" + +int +TemporaryID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TemporaryID_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +asn_per_constraints_t asn_PER_type_TemporaryID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TemporaryID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TemporaryID = { + "TemporaryID", + "TemporaryID", + &asn_OP_OCTET_STRING, + asn_DEF_TemporaryID_tags_1, + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + asn_DEF_TemporaryID_tags_1, /* Same as above */ + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + { &asn_OER_type_TemporaryID_constr_1, &asn_PER_type_TemporaryID_constr_1, TemporaryID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/ThrottleConfidence.c b/vcits/rtcmem/src/ThrottleConfidence.c new file mode 100644 index 0000000..75373dd --- /dev/null +++ b/vcits/rtcmem/src/ThrottleConfidence.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ThrottleConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ThrottleConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 13, "prec10percent" }, + { 2, 12, "prec1percent" }, + { 3, 14, "prec0-5percent" } +}; +static const unsigned int asn_MAP_ThrottleConfidence_enum2value_1[] = { + 3, /* prec0-5percent(3) */ + 1, /* prec10percent(1) */ + 2, /* prec1percent(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1 = { + asn_MAP_ThrottleConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ThrottleConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence = { + "ThrottleConfidence", + "ThrottleConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ThrottleConfidence_tags_1, + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_ThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ThrottleConfidence_constr_1, &asn_PER_type_ThrottleConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/TimeChangeDetails.c b/vcits/rtcmem/src/TimeChangeDetails.c new file mode 100644 index 0000000..b948d8b --- /dev/null +++ b/vcits/rtcmem/src/TimeChangeDetails.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TimeChangeDetails.h" + +asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[] = { + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct TimeChangeDetails, minEndTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minEndTime" + }, + { ATF_POINTER, 4, offsetof(struct TimeChangeDetails, maxEndTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxEndTime" + }, + { ATF_POINTER, 3, offsetof(struct TimeChangeDetails, likelyTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "likelyTime" + }, + { ATF_POINTER, 2, offsetof(struct TimeChangeDetails, confidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeIntervalConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, nextTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextTime" + }, +}; +static const int asn_MAP_TimeChangeDetails_oms_1[] = { 0, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_TimeChangeDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TimeChangeDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* likelyTime */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* nextTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1 = { + sizeof(struct TimeChangeDetails), + offsetof(struct TimeChangeDetails, _asn_ctx), + asn_MAP_TimeChangeDetails_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_TimeChangeDetails_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails = { + "TimeChangeDetails", + "TimeChangeDetails", + &asn_OP_SEQUENCE, + asn_DEF_TimeChangeDetails_tags_1, + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + asn_DEF_TimeChangeDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TimeChangeDetails_1, + 6, /* Elements count */ + &asn_SPC_TimeChangeDetails_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/TimeConfidence.c b/vcits/rtcmem/src/TimeConfidence.c new file mode 100644 index 0000000..3a1bb94 --- /dev/null +++ b/vcits/rtcmem/src/TimeConfidence.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TimeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TimeConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 12, "time-100-000" }, + { 2, 12, "time-050-000" }, + { 3, 12, "time-020-000" }, + { 4, 12, "time-010-000" }, + { 5, 12, "time-002-000" }, + { 6, 12, "time-001-000" }, + { 7, 12, "time-000-500" }, + { 8, 12, "time-000-200" }, + { 9, 12, "time-000-100" }, + { 10, 12, "time-000-050" }, + { 11, 12, "time-000-020" }, + { 12, 12, "time-000-010" }, + { 13, 12, "time-000-005" }, + { 14, 12, "time-000-002" }, + { 15, 12, "time-000-001" }, + { 16, 14, "time-000-000-5" }, + { 17, 14, "time-000-000-2" }, + { 18, 14, "time-000-000-1" }, + { 19, 15, "time-000-000-05" }, + { 20, 15, "time-000-000-02" }, + { 21, 15, "time-000-000-01" }, + { 22, 16, "time-000-000-005" }, + { 23, 16, "time-000-000-002" }, + { 24, 16, "time-000-000-001" }, + { 25, 18, "time-000-000-000-5" }, + { 26, 18, "time-000-000-000-2" }, + { 27, 18, "time-000-000-000-1" }, + { 28, 19, "time-000-000-000-05" }, + { 29, 19, "time-000-000-000-02" }, + { 30, 19, "time-000-000-000-01" }, + { 31, 20, "time-000-000-000-005" }, + { 32, 20, "time-000-000-000-002" }, + { 33, 20, "time-000-000-000-001" }, + { 34, 22, "time-000-000-000-000-5" }, + { 35, 22, "time-000-000-000-000-2" }, + { 36, 22, "time-000-000-000-000-1" }, + { 37, 23, "time-000-000-000-000-05" }, + { 38, 23, "time-000-000-000-000-02" }, + { 39, 23, "time-000-000-000-000-01" } +}; +static const unsigned int asn_MAP_TimeConfidence_enum2value_1[] = { + 39, /* time-000-000-000-000-01(39) */ + 38, /* time-000-000-000-000-02(38) */ + 37, /* time-000-000-000-000-05(37) */ + 36, /* time-000-000-000-000-1(36) */ + 35, /* time-000-000-000-000-2(35) */ + 34, /* time-000-000-000-000-5(34) */ + 33, /* time-000-000-000-001(33) */ + 32, /* time-000-000-000-002(32) */ + 31, /* time-000-000-000-005(31) */ + 30, /* time-000-000-000-01(30) */ + 29, /* time-000-000-000-02(29) */ + 28, /* time-000-000-000-05(28) */ + 27, /* time-000-000-000-1(27) */ + 26, /* time-000-000-000-2(26) */ + 25, /* time-000-000-000-5(25) */ + 24, /* time-000-000-001(24) */ + 23, /* time-000-000-002(23) */ + 22, /* time-000-000-005(22) */ + 21, /* time-000-000-01(21) */ + 20, /* time-000-000-02(20) */ + 19, /* time-000-000-05(19) */ + 18, /* time-000-000-1(18) */ + 17, /* time-000-000-2(17) */ + 16, /* time-000-000-5(16) */ + 15, /* time-000-001(15) */ + 14, /* time-000-002(14) */ + 13, /* time-000-005(13) */ + 12, /* time-000-010(12) */ + 11, /* time-000-020(11) */ + 10, /* time-000-050(10) */ + 9, /* time-000-100(9) */ + 8, /* time-000-200(8) */ + 7, /* time-000-500(7) */ + 6, /* time-001-000(6) */ + 5, /* time-002-000(5) */ + 4, /* time-010-000(4) */ + 3, /* time-020-000(3) */ + 2, /* time-050-000(2) */ + 1, /* time-100-000(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1 = { + asn_MAP_TimeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TimeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 40, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TimeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeConfidence = { + "TimeConfidence", + "TimeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_TimeConfidence_tags_1, + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeConfidence_constr_1, &asn_PER_type_TimeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TimeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/TimeIntervalConfidence.c b/vcits/rtcmem/src/TimeIntervalConfidence.c new file mode 100644 index 0000000..55ed4bd --- /dev/null +++ b/vcits/rtcmem/src/TimeIntervalConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TimeIntervalConfidence.h" + +int +TimeIntervalConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeIntervalConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence = { + "TimeIntervalConfidence", + "TimeIntervalConfidence", + &asn_OP_NativeInteger, + asn_DEF_TimeIntervalConfidence_tags_1, + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeIntervalConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeIntervalConfidence_constr_1, &asn_PER_type_TimeIntervalConfidence_constr_1, TimeIntervalConfidence_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/TimeMark.c b/vcits/rtcmem/src/TimeMark.c new file mode 100644 index 0000000..ead8431 --- /dev/null +++ b/vcits/rtcmem/src/TimeMark.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TimeMark.h" + +int +TimeMark_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 36001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeMark_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..36001) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeMark_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 36001 } /* (0..36001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeMark_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeMark = { + "TimeMark", + "TimeMark", + &asn_OP_NativeInteger, + asn_DEF_TimeMark_tags_1, + sizeof(asn_DEF_TimeMark_tags_1) + /sizeof(asn_DEF_TimeMark_tags_1[0]), /* 1 */ + asn_DEF_TimeMark_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeMark_tags_1) + /sizeof(asn_DEF_TimeMark_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeMark_constr_1, &asn_PER_type_TimeMark_constr_1, TimeMark_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/TimeReference.c b/vcits/rtcmem/src/TimeReference.c new file mode 100644 index 0000000..07bac81 --- /dev/null +++ b/vcits/rtcmem/src/TimeReference.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TimeReference.h" + +int +TimeReference_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 60000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeReference_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..60000) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeReference_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 60000 } /* (0..60000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeReference = { + "TimeReference", + "TimeReference", + &asn_OP_NativeInteger, + asn_DEF_TimeReference_tags_1, + sizeof(asn_DEF_TimeReference_tags_1) + /sizeof(asn_DEF_TimeReference_tags_1[0]), /* 1 */ + asn_DEF_TimeReference_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeReference_tags_1) + /sizeof(asn_DEF_TimeReference_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeReference_constr_1, &asn_PER_type_TimeReference_constr_1, TimeReference_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/TimestampIts.c b/vcits/rtcmem/src/TimestampIts.c new file mode 100644 index 0000000..d072a91 --- /dev/null +++ b/vcits/rtcmem/src/TimestampIts.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TimestampIts.h" + +int +TimestampIts_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0 && value <= 4398046511103)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimestampIts_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..4398046511103) */, + -1}; +asn_per_constraints_t asn_PER_type_TimestampIts_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 42, -1, 0, 4398046511103 } /* (0..4398046511103) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimestampIts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimestampIts = { + "TimestampIts", + "TimestampIts", + &asn_OP_INTEGER, + asn_DEF_TimestampIts_tags_1, + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + asn_DEF_TimestampIts_tags_1, /* Same as above */ + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + { &asn_OER_type_TimestampIts_constr_1, &asn_PER_type_TimestampIts_constr_1, TimestampIts_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Traces.c b/vcits/rtcmem/src/Traces.c new file mode 100644 index 0000000..79d95d4 --- /dev/null +++ b/vcits/rtcmem/src/Traces.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Traces.h" + +#include "PathHistory.h" +static asn_oer_constraints_t asn_OER_type_Traces_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..7)) */}; +static asn_per_constraints_t asn_PER_type_Traces_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_Traces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathHistory, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Traces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Traces_specs_1 = { + sizeof(struct Traces), + offsetof(struct Traces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Traces = { + "Traces", + "Traces", + &asn_OP_SEQUENCE_OF, + asn_DEF_Traces_tags_1, + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + asn_DEF_Traces_tags_1, /* Same as above */ + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + { &asn_OER_type_Traces_constr_1, &asn_PER_type_Traces_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Traces_1, + 1, /* Single element */ + &asn_SPC_Traces_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/TrafficConditionSubCauseCode.c b/vcits/rtcmem/src/TrafficConditionSubCauseCode.c new file mode 100644 index 0000000..a4493ef --- /dev/null +++ b/vcits/rtcmem/src/TrafficConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TrafficConditionSubCauseCode.h" + +int +TrafficConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TrafficConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode = { + "TrafficConditionSubCauseCode", + "TrafficConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_TrafficConditionSubCauseCode_tags_1, + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_TrafficConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficConditionSubCauseCode_constr_1, &asn_PER_type_TrafficConditionSubCauseCode_constr_1, TrafficConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/TrafficRule.c b/vcits/rtcmem/src/TrafficRule.c new file mode 100644 index 0000000..c577c82 --- /dev/null +++ b/vcits/rtcmem/src/TrafficRule.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TrafficRule.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficRule_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficRule_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TrafficRule_value2enum_1[] = { + { 0, 9, "noPassing" }, + { 1, 18, "noPassingForTrucks" }, + { 2, 11, "passToRight" }, + { 3, 10, "passToLeft" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TrafficRule_enum2value_1[] = { + 0, /* noPassing(0) */ + 1, /* noPassingForTrucks(1) */ + 3, /* passToLeft(3) */ + 2 /* passToRight(2) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_TrafficRule_specs_1 = { + asn_MAP_TrafficRule_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TrafficRule_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TrafficRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficRule = { + "TrafficRule", + "TrafficRule", + &asn_OP_NativeEnumerated, + asn_DEF_TrafficRule_tags_1, + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + asn_DEF_TrafficRule_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficRule_constr_1, &asn_PER_type_TrafficRule_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TrafficRule_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/TransitVehicleOccupancy.c b/vcits/rtcmem/src/TransitVehicleOccupancy.c new file mode 100644 index 0000000..9704ae7 --- /dev/null +++ b/vcits/rtcmem/src/TransitVehicleOccupancy.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TransitVehicleOccupancy.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransitVehicleOccupancy_value2enum_1[] = { + { 0, 16, "occupancyUnknown" }, + { 1, 14, "occupancyEmpty" }, + { 2, 16, "occupancyVeryLow" }, + { 3, 12, "occupancyLow" }, + { 4, 12, "occupancyMed" }, + { 5, 13, "occupancyHigh" }, + { 6, 19, "occupancyNearlyFull" }, + { 7, 13, "occupancyFull" } +}; +static const unsigned int asn_MAP_TransitVehicleOccupancy_enum2value_1[] = { + 1, /* occupancyEmpty(1) */ + 7, /* occupancyFull(7) */ + 5, /* occupancyHigh(5) */ + 3, /* occupancyLow(3) */ + 4, /* occupancyMed(4) */ + 6, /* occupancyNearlyFull(6) */ + 0, /* occupancyUnknown(0) */ + 2 /* occupancyVeryLow(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1 = { + asn_MAP_TransitVehicleOccupancy_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransitVehicleOccupancy_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleOccupancy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy = { + "TransitVehicleOccupancy", + "TransitVehicleOccupancy", + &asn_OP_NativeEnumerated, + asn_DEF_TransitVehicleOccupancy_tags_1, + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleOccupancy_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + { &asn_OER_type_TransitVehicleOccupancy_constr_1, &asn_PER_type_TransitVehicleOccupancy_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransitVehicleOccupancy_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/TransitVehicleStatus.c b/vcits/rtcmem/src/TransitVehicleStatus.c new file mode 100644 index 0000000..83a6f3b --- /dev/null +++ b/vcits/rtcmem/src/TransitVehicleStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TransitVehicleStatus.h" + +int +TransitVehicleStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus = { + "TransitVehicleStatus", + "TransitVehicleStatus", + &asn_OP_BIT_STRING, + asn_DEF_TransitVehicleStatus_tags_1, + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_TransitVehicleStatus_constr_1, &asn_PER_type_TransitVehicleStatus_constr_1, TransitVehicleStatus_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/TransmissionAndSpeed.c b/vcits/rtcmem/src/TransmissionAndSpeed.c new file mode 100644 index 0000000..375321b --- /dev/null +++ b/vcits/rtcmem/src/TransmissionAndSpeed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TransmissionAndSpeed.h" + +asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, transmisson), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transmisson" + }, + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_TransmissionAndSpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TransmissionAndSpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transmisson */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1 = { + sizeof(struct TransmissionAndSpeed), + offsetof(struct TransmissionAndSpeed, _asn_ctx), + asn_MAP_TransmissionAndSpeed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed = { + "TransmissionAndSpeed", + "TransmissionAndSpeed", + &asn_OP_SEQUENCE, + asn_DEF_TransmissionAndSpeed_tags_1, + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + asn_DEF_TransmissionAndSpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TransmissionAndSpeed_1, + 2, /* Elements count */ + &asn_SPC_TransmissionAndSpeed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/TransmissionInterval.c b/vcits/rtcmem/src/TransmissionInterval.c new file mode 100644 index 0000000..c564cb8 --- /dev/null +++ b/vcits/rtcmem/src/TransmissionInterval.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TransmissionInterval.h" + +int +TransmissionInterval_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..10000) */, + -1}; +static asn_per_constraints_t asn_PER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 10000 } /* (1..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransmissionInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionInterval = { + "TransmissionInterval", + "TransmissionInterval", + &asn_OP_NativeInteger, + asn_DEF_TransmissionInterval_tags_1, + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + asn_DEF_TransmissionInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionInterval_constr_1, &asn_PER_type_TransmissionInterval_constr_1, TransmissionInterval_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/TransmissionState.c b/vcits/rtcmem/src/TransmissionState.c new file mode 100644 index 0000000..0cbc3aa --- /dev/null +++ b/vcits/rtcmem/src/TransmissionState.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TransmissionState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransmissionState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransmissionState_value2enum_1[] = { + { 0, 7, "neutral" }, + { 1, 4, "park" }, + { 2, 12, "forwardGears" }, + { 3, 12, "reverseGears" }, + { 4, 9, "reserved1" }, + { 5, 9, "reserved2" }, + { 6, 9, "reserved3" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_TransmissionState_enum2value_1[] = { + 2, /* forwardGears(2) */ + 0, /* neutral(0) */ + 1, /* park(1) */ + 4, /* reserved1(4) */ + 5, /* reserved2(5) */ + 6, /* reserved3(6) */ + 3, /* reverseGears(3) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1 = { + asn_MAP_TransmissionState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransmissionState_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransmissionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionState = { + "TransmissionState", + "TransmissionState", + &asn_OP_NativeEnumerated, + asn_DEF_TransmissionState_tags_1, + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + asn_DEF_TransmissionState_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionState_constr_1, &asn_PER_type_TransmissionState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransmissionState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/TurningRadius.c b/vcits/rtcmem/src/TurningRadius.c new file mode 100644 index 0000000..86ccf4e --- /dev/null +++ b/vcits/rtcmem/src/TurningRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "TurningRadius.h" + +int +TurningRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TurningRadius_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TurningRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TurningRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TurningRadius = { + "TurningRadius", + "TurningRadius", + &asn_OP_NativeInteger, + asn_DEF_TurningRadius_tags_1, + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + asn_DEF_TurningRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_TurningRadius_constr_1, &asn_PER_type_TurningRadius_constr_1, TurningRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/VDS.c b/vcits/rtcmem/src/VDS.c new file mode 100644 index 0000000..05c6d11 --- /dev/null +++ b/vcits/rtcmem/src/VDS.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "VDS.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +VDS_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 6) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VDS_constr_1 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +asn_per_constraints_t asn_PER_type_VDS_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_VDS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VDS = { + "VDS", + "VDS", + &asn_OP_IA5String, + asn_DEF_VDS_tags_1, + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + asn_DEF_VDS_tags_1, /* Same as above */ + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + { &asn_OER_type_VDS_constr_1, &asn_PER_type_VDS_constr_1, VDS_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/ValidityDuration.c b/vcits/rtcmem/src/ValidityDuration.c new file mode 100644 index 0000000..aa17550 --- /dev/null +++ b/vcits/rtcmem/src/ValidityDuration.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ValidityDuration.h" + +int +ValidityDuration_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 86400)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..86400) */, + -1}; +static asn_per_constraints_t asn_PER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 0, 86400 } /* (0..86400) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ValidityDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ValidityDuration = { + "ValidityDuration", + "ValidityDuration", + &asn_OP_NativeInteger, + asn_DEF_ValidityDuration_tags_1, + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + asn_DEF_ValidityDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + { &asn_OER_type_ValidityDuration_constr_1, &asn_PER_type_ValidityDuration_constr_1, ValidityDuration_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/VehicleBreakdownSubCauseCode.c b/vcits/rtcmem/src/VehicleBreakdownSubCauseCode.c new file mode 100644 index 0000000..14e2d51 --- /dev/null +++ b/vcits/rtcmem/src/VehicleBreakdownSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "VehicleBreakdownSubCauseCode.h" + +int +VehicleBreakdownSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleBreakdownSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode = { + "VehicleBreakdownSubCauseCode", + "VehicleBreakdownSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleBreakdownSubCauseCode_constr_1, &asn_PER_type_VehicleBreakdownSubCauseCode_constr_1, VehicleBreakdownSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/VehicleHeight.c b/vcits/rtcmem/src/VehicleHeight.c new file mode 100644 index 0000000..d9366c9 --- /dev/null +++ b/vcits/rtcmem/src/VehicleHeight.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "VehicleHeight.h" + +int +VehicleHeight_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleHeight = { + "VehicleHeight", + "VehicleHeight", + &asn_OP_NativeInteger, + asn_DEF_VehicleHeight_tags_1, + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + asn_DEF_VehicleHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleHeight_constr_1, &asn_PER_type_VehicleHeight_constr_1, VehicleHeight_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/VehicleID.c b/vcits/rtcmem/src/VehicleID.c new file mode 100644 index 0000000..8bf72ab --- /dev/null +++ b/vcits/rtcmem/src/VehicleID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "VehicleID.h" + +static asn_oer_constraints_t asn_OER_type_VehicleID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_VehicleID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.entityID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TemporaryID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "entityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.stationID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* entityID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* stationID */ +}; +asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1 = { + sizeof(struct VehicleID), + offsetof(struct VehicleID, _asn_ctx), + offsetof(struct VehicleID, present), + sizeof(((struct VehicleID *)0)->present), + asn_MAP_VehicleID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleID = { + "VehicleID", + "VehicleID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_VehicleID_constr_1, &asn_PER_type_VehicleID_constr_1, CHOICE_constraint }, + asn_MBR_VehicleID_1, + 2, /* Elements count */ + &asn_SPC_VehicleID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/VehicleIdentification.c b/vcits/rtcmem/src/VehicleIdentification.c new file mode 100644 index 0000000..80482c5 --- /dev/null +++ b/vcits/rtcmem/src/VehicleIdentification.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "VehicleIdentification.h" + +static asn_TYPE_member_t asn_MBR_VehicleIdentification_1[] = { + { ATF_POINTER, 2, offsetof(struct VehicleIdentification, wMInumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WMInumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wMInumber" + }, + { ATF_POINTER, 1, offsetof(struct VehicleIdentification, vDS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VDS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vDS" + }, +}; +static const int asn_MAP_VehicleIdentification_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_VehicleIdentification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleIdentification_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wMInumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vDS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleIdentification_specs_1 = { + sizeof(struct VehicleIdentification), + offsetof(struct VehicleIdentification, _asn_ctx), + asn_MAP_VehicleIdentification_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_VehicleIdentification_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleIdentification = { + "VehicleIdentification", + "VehicleIdentification", + &asn_OP_SEQUENCE, + asn_DEF_VehicleIdentification_tags_1, + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + asn_DEF_VehicleIdentification_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleIdentification_1, + 2, /* Elements count */ + &asn_SPC_VehicleIdentification_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/VehicleLength.c b/vcits/rtcmem/src/VehicleLength.c new file mode 100644 index 0000000..cec7703 --- /dev/null +++ b/vcits/rtcmem/src/VehicleLength.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "VehicleLength.h" + +static asn_TYPE_member_t asn_MBR_VehicleLength_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthConfidenceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthConfidenceIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthConfidenceIndication" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleLength_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vehicleLengthConfidenceIndication */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleLength_specs_1 = { + sizeof(struct VehicleLength), + offsetof(struct VehicleLength, _asn_ctx), + asn_MAP_VehicleLength_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_SEQUENCE, + asn_DEF_VehicleLength_tags_1, + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleLength_1, + 2, /* Elements count */ + &asn_SPC_VehicleLength_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/VehicleLengthConfidenceIndication.c b/vcits/rtcmem/src/VehicleLengthConfidenceIndication.c new file mode 100644 index 0000000..6dc20b7 --- /dev/null +++ b/vcits/rtcmem/src/VehicleLengthConfidenceIndication.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "VehicleLengthConfidenceIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleLengthConfidenceIndication_value2enum_1[] = { + { 0, 16, "noTrailerPresent" }, + { 1, 29, "trailerPresentWithKnownLength" }, + { 2, 31, "trailerPresentWithUnknownLength" }, + { 3, 24, "trailerPresenceIsUnknown" }, + { 4, 11, "unavailable" } +}; +static const unsigned int asn_MAP_VehicleLengthConfidenceIndication_enum2value_1[] = { + 0, /* noTrailerPresent(0) */ + 3, /* trailerPresenceIsUnknown(3) */ + 1, /* trailerPresentWithKnownLength(1) */ + 2, /* trailerPresentWithUnknownLength(2) */ + 4 /* unavailable(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1 = { + asn_MAP_VehicleLengthConfidenceIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleLengthConfidenceIndication_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthConfidenceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication = { + "VehicleLengthConfidenceIndication", + "VehicleLengthConfidenceIndication", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleLengthConfidenceIndication_tags_1, + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthConfidenceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthConfidenceIndication_constr_1, &asn_PER_type_VehicleLengthConfidenceIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleLengthConfidenceIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/VehicleLengthValue.c b/vcits/rtcmem/src/VehicleLengthValue.c new file mode 100644 index 0000000..b34703c --- /dev/null +++ b/vcits/rtcmem/src/VehicleLengthValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "VehicleLengthValue.h" + +int +VehicleLengthValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (1..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue = { + "VehicleLengthValue", + "VehicleLengthValue", + &asn_OP_NativeInteger, + asn_DEF_VehicleLengthValue_tags_1, + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthValue_constr_1, &asn_PER_type_VehicleLengthValue_constr_1, VehicleLengthValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/VehicleMass.c b/vcits/rtcmem/src/VehicleMass.c new file mode 100644 index 0000000..8bfcd3e --- /dev/null +++ b/vcits/rtcmem/src/VehicleMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "VehicleMass.h" + +int +VehicleMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1024)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleMass_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1024) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_VehicleMass_tags_1, + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleMass_constr_1, &asn_PER_type_VehicleMass_constr_1, VehicleMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/VehicleRole.c b/vcits/rtcmem/src/VehicleRole.c new file mode 100644 index 0000000..b082445 --- /dev/null +++ b/vcits/rtcmem/src/VehicleRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "VehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleRole_value2enum_1[] = { + { 0, 7, "default" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 6, "rescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 11, "agriculture" }, + { 9, 10, "commercial" }, + { 10, 8, "military" }, + { 11, 12, "roadOperator" }, + { 12, 4, "taxi" }, + { 13, 9, "reserved1" }, + { 14, 9, "reserved2" }, + { 15, 9, "reserved3" } +}; +static const unsigned int asn_MAP_VehicleRole_enum2value_1[] = { + 8, /* agriculture(8) */ + 9, /* commercial(9) */ + 3, /* dangerousGoods(3) */ + 0, /* default(0) */ + 6, /* emergency(6) */ + 10, /* military(10) */ + 1, /* publicTransport(1) */ + 5, /* rescue(5) */ + 13, /* reserved1(13) */ + 14, /* reserved2(14) */ + 15, /* reserved3(15) */ + 11, /* roadOperator(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 2, /* specialTransport(2) */ + 12 /* taxi(12) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_VehicleRole_specs_1 = { + asn_MAP_VehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleRole = { + "VehicleRole", + "VehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleRole_tags_1, + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + asn_DEF_VehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleRole_constr_1, &asn_PER_type_VehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/VehicleType.c b/vcits/rtcmem/src/VehicleType.c new file mode 100644 index 0000000..1ae23e4 --- /dev/null +++ b/vcits/rtcmem/src/VehicleType.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "VehicleType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 7, "unknown" }, + { 2, 7, "special" }, + { 3, 4, "moto" }, + { 4, 3, "car" }, + { 5, 8, "carOther" }, + { 6, 3, "bus" }, + { 7, 8, "axleCnt2" }, + { 8, 8, "axleCnt3" }, + { 9, 8, "axleCnt4" }, + { 10, 15, "axleCnt4Trailer" }, + { 11, 15, "axleCnt5Trailer" }, + { 12, 15, "axleCnt6Trailer" }, + { 13, 20, "axleCnt5MultiTrailer" }, + { 14, 20, "axleCnt6MultiTrailer" }, + { 15, 20, "axleCnt7MultiTrailer" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_VehicleType_enum2value_1[] = { + 7, /* axleCnt2(7) */ + 8, /* axleCnt3(8) */ + 9, /* axleCnt4(9) */ + 10, /* axleCnt4Trailer(10) */ + 13, /* axleCnt5MultiTrailer(13) */ + 11, /* axleCnt5Trailer(11) */ + 14, /* axleCnt6MultiTrailer(14) */ + 12, /* axleCnt6Trailer(12) */ + 15, /* axleCnt7MultiTrailer(15) */ + 6, /* bus(6) */ + 4, /* car(4) */ + 5, /* carOther(5) */ + 3, /* moto(3) */ + 0, /* none(0) */ + 2, /* special(2) */ + 1 /* unknown(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1 = { + asn_MAP_VehicleType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleType_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 17, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleType = { + "VehicleType", + "VehicleType", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleType_tags_1, + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + asn_DEF_VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleType_constr_1, &asn_PER_type_VehicleType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/VehicleWidth.c b/vcits/rtcmem/src/VehicleWidth.c new file mode 100644 index 0000000..4b0db73 --- /dev/null +++ b/vcits/rtcmem/src/VehicleWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "VehicleWidth.h" + +int +VehicleWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 62)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..62) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 62 } /* (1..62) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_VehicleWidth_tags_1, + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleWidth_constr_1, &asn_PER_type_VehicleWidth_constr_1, VehicleWidth_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/Velocity.c b/vcits/rtcmem/src/Velocity.c new file mode 100644 index 0000000..5c4360b --- /dev/null +++ b/vcits/rtcmem/src/Velocity.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "Velocity.h" + +int +Velocity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 8191)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Velocity_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..8191) */, + -1}; +asn_per_constraints_t asn_PER_type_Velocity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 8191 } /* (0..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Velocity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Velocity = { + "Velocity", + "Velocity", + &asn_OP_NativeInteger, + asn_DEF_Velocity_tags_1, + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + asn_DEF_Velocity_tags_1, /* Same as above */ + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + { &asn_OER_type_Velocity_constr_1, &asn_PER_type_Velocity_constr_1, Velocity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/VerticalAcceleration.c b/vcits/rtcmem/src/VerticalAcceleration.c new file mode 100644 index 0000000..227dbf3 --- /dev/null +++ b/vcits/rtcmem/src/VerticalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "VerticalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_VerticalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VerticalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* verticalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* verticalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VerticalAcceleration_specs_1 = { + sizeof(struct VerticalAcceleration), + offsetof(struct VerticalAcceleration, _asn_ctx), + asn_MAP_VerticalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_VerticalAcceleration_tags_1, + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VerticalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_VerticalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/VerticalAccelerationValue.c b/vcits/rtcmem/src/VerticalAccelerationValue.c new file mode 100644 index 0000000..f3ee415 --- /dev/null +++ b/vcits/rtcmem/src/VerticalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "VerticalAccelerationValue.h" + +int +VerticalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VerticalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue = { + "VerticalAccelerationValue", + "VerticalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_VerticalAccelerationValue_tags_1, + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_VerticalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VerticalAccelerationValue_constr_1, &asn_PER_type_VerticalAccelerationValue_constr_1, VerticalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/WMInumber.c b/vcits/rtcmem/src/WMInumber.c new file mode 100644 index 0000000..2fe0da3 --- /dev/null +++ b/vcits/rtcmem/src/WMInumber.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "WMInumber.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +WMInumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 3) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WMInumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +asn_per_constraints_t asn_PER_type_WMInumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_WMInumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WMInumber = { + "WMInumber", + "WMInumber", + &asn_OP_IA5String, + asn_DEF_WMInumber_tags_1, + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + asn_DEF_WMInumber_tags_1, /* Same as above */ + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + { &asn_OER_type_WMInumber_constr_1, &asn_PER_type_WMInumber_constr_1, WMInumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/WaitOnStopline.c b/vcits/rtcmem/src/WaitOnStopline.c new file mode 100644 index 0000000..fcd4846 --- /dev/null +++ b/vcits/rtcmem/src/WaitOnStopline.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "WaitOnStopline.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_WaitOnStopline_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WaitOnStopline = { + "WaitOnStopline", + "WaitOnStopline", + &asn_OP_BOOLEAN, + asn_DEF_WaitOnStopline_tags_1, + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + asn_DEF_WaitOnStopline_tags_1, /* Same as above */ + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/WheelBaseVehicle.c b/vcits/rtcmem/src/WheelBaseVehicle.c new file mode 100644 index 0000000..ce5247a --- /dev/null +++ b/vcits/rtcmem/src/WheelBaseVehicle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "WheelBaseVehicle.h" + +int +WheelBaseVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WheelBaseVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle = { + "WheelBaseVehicle", + "WheelBaseVehicle", + &asn_OP_NativeInteger, + asn_DEF_WheelBaseVehicle_tags_1, + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + asn_DEF_WheelBaseVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_WheelBaseVehicle_constr_1, &asn_PER_type_WheelBaseVehicle_constr_1, WheelBaseVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/WrongWayDrivingSubCauseCode.c b/vcits/rtcmem/src/WrongWayDrivingSubCauseCode.c new file mode 100644 index 0000000..1ae39aa --- /dev/null +++ b/vcits/rtcmem/src/WrongWayDrivingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "WrongWayDrivingSubCauseCode.h" + +int +WrongWayDrivingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WrongWayDrivingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode = { + "WrongWayDrivingSubCauseCode", + "WrongWayDrivingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_WrongWayDrivingSubCauseCode_constr_1, &asn_PER_type_WrongWayDrivingSubCauseCode_constr_1, WrongWayDrivingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/YawRate.c b/vcits/rtcmem/src/YawRate.c new file mode 100644 index 0000000..6b71e89 --- /dev/null +++ b/vcits/rtcmem/src/YawRate.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "YawRate.h" + +static asn_TYPE_member_t asn_MBR_YawRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_YawRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yawRateValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* yawRateConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_YawRate_specs_1 = { + sizeof(struct YawRate), + offsetof(struct YawRate, _asn_ctx), + asn_MAP_YawRate_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_YawRate = { + "YawRate", + "YawRate", + &asn_OP_SEQUENCE, + asn_DEF_YawRate_tags_1, + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + asn_DEF_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_YawRate_1, + 2, /* Elements count */ + &asn_SPC_YawRate_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/YawRateConfidence.c b/vcits/rtcmem/src/YawRateConfidence.c new file mode 100644 index 0000000..ad07e05 --- /dev/null +++ b/vcits/rtcmem/src/YawRateConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "YawRateConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_YawRateConfidence_value2enum_1[] = { + { 0, 13, "degSec-000-01" }, + { 1, 13, "degSec-000-05" }, + { 2, 13, "degSec-000-10" }, + { 3, 13, "degSec-001-00" }, + { 4, 13, "degSec-005-00" }, + { 5, 13, "degSec-010-00" }, + { 6, 13, "degSec-100-00" }, + { 7, 10, "outOfRange" }, + { 8, 11, "unavailable" } +}; +static const unsigned int asn_MAP_YawRateConfidence_enum2value_1[] = { + 0, /* degSec-000-01(0) */ + 1, /* degSec-000-05(1) */ + 2, /* degSec-000-10(2) */ + 3, /* degSec-001-00(3) */ + 4, /* degSec-005-00(4) */ + 5, /* degSec-010-00(5) */ + 6, /* degSec-100-00(6) */ + 7, /* outOfRange(7) */ + 8 /* unavailable(8) */ +}; +const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1 = { + asn_MAP_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_YawRateConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 9, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_YawRateConfidence_tags_1, + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateConfidence_constr_1, &asn_PER_type_YawRateConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/rtcmem/src/YawRateValue.c b/vcits/rtcmem/src/YawRateValue.c new file mode 100644 index 0000000..de0b66d --- /dev/null +++ b/vcits/rtcmem/src/YawRateValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "YawRateValue.h" + +int +YawRateValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32766 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32766..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_YawRateValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32766, 32767 } /* (-32766..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_YawRateValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateValue = { + "YawRateValue", + "YawRateValue", + &asn_OP_NativeInteger, + asn_DEF_YawRateValue_tags_1, + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + asn_DEF_YawRateValue_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateValue_constr_1, &asn_PER_type_YawRateValue_constr_1, YawRateValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/rtcmem/src/ZoneLength.c b/vcits/rtcmem/src/ZoneLength.c new file mode 100644 index 0000000..48d748e --- /dev/null +++ b/vcits/rtcmem/src/ZoneLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/rtcmem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RTCMEM` + */ + +#include "ZoneLength.h" + +int +ZoneLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ZoneLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..10000) */, + -1}; +asn_per_constraints_t asn_PER_type_ZoneLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10000 } /* (0..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ZoneLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ZoneLength = { + "ZoneLength", + "ZoneLength", + &asn_OP_NativeInteger, + asn_DEF_ZoneLength_tags_1, + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + asn_DEF_ZoneLength_tags_1, /* Same as above */ + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + { &asn_OER_type_ZoneLength_constr_1, &asn_PER_type_ZoneLength_constr_1, ZoneLength_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/AccelerationConfidence.h b/vcits/spatem/AccelerationConfidence.h new file mode 100644 index 0000000..68b2b96 --- /dev/null +++ b/vcits/spatem/AccelerationConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AccelerationConfidence_H_ +#define _AccelerationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationConfidence { + AccelerationConfidence_pointOneMeterPerSecSquared = 1, + AccelerationConfidence_outOfRange = 101, + AccelerationConfidence_unavailable = 102 +} e_AccelerationConfidence; + +/* AccelerationConfidence */ +typedef long AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence; +asn_struct_free_f AccelerationConfidence_free; +asn_struct_print_f AccelerationConfidence_print; +asn_constr_check_f AccelerationConfidence_constraint; +ber_type_decoder_f AccelerationConfidence_decode_ber; +der_type_encoder_f AccelerationConfidence_encode_der; +xer_type_decoder_f AccelerationConfidence_decode_xer; +xer_type_encoder_f AccelerationConfidence_encode_xer; +oer_type_decoder_f AccelerationConfidence_decode_oer; +oer_type_encoder_f AccelerationConfidence_encode_oer; +per_type_decoder_f AccelerationConfidence_decode_uper; +per_type_encoder_f AccelerationConfidence_encode_uper; +per_type_decoder_f AccelerationConfidence_decode_aper; +per_type_encoder_f AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationConfidence_H_ */ +#include diff --git a/vcits/spatem/AccelerationControl.h b/vcits/spatem/AccelerationControl.h new file mode 100644 index 0000000..3e9547f --- /dev/null +++ b/vcits/spatem/AccelerationControl.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AccelerationControl_H_ +#define _AccelerationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationControl { + AccelerationControl_brakePedalEngaged = 0, + AccelerationControl_gasPedalEngaged = 1, + AccelerationControl_emergencyBrakeEngaged = 2, + AccelerationControl_collisionWarningEngaged = 3, + AccelerationControl_accEngaged = 4, + AccelerationControl_cruiseControlEngaged = 5, + AccelerationControl_speedLimiterEngaged = 6 +} e_AccelerationControl; + +/* AccelerationControl */ +typedef BIT_STRING_t AccelerationControl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccelerationControl; +asn_struct_free_f AccelerationControl_free; +asn_struct_print_f AccelerationControl_print; +asn_constr_check_f AccelerationControl_constraint; +ber_type_decoder_f AccelerationControl_decode_ber; +der_type_encoder_f AccelerationControl_encode_der; +xer_type_decoder_f AccelerationControl_decode_xer; +xer_type_encoder_f AccelerationControl_encode_xer; +oer_type_decoder_f AccelerationControl_decode_oer; +oer_type_encoder_f AccelerationControl_encode_oer; +per_type_decoder_f AccelerationControl_decode_uper; +per_type_encoder_f AccelerationControl_encode_uper; +per_type_decoder_f AccelerationControl_decode_aper; +per_type_encoder_f AccelerationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationControl_H_ */ +#include diff --git a/vcits/spatem/AccidentSubCauseCode.h b/vcits/spatem/AccidentSubCauseCode.h new file mode 100644 index 0000000..15f248b --- /dev/null +++ b/vcits/spatem/AccidentSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AccidentSubCauseCode_H_ +#define _AccidentSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccidentSubCauseCode { + AccidentSubCauseCode_unavailable = 0, + AccidentSubCauseCode_multiVehicleAccident = 1, + AccidentSubCauseCode_heavyAccident = 2, + AccidentSubCauseCode_accidentInvolvingLorry = 3, + AccidentSubCauseCode_accidentInvolvingBus = 4, + AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5, + AccidentSubCauseCode_accidentOnOppositeLane = 6, + AccidentSubCauseCode_unsecuredAccident = 7, + AccidentSubCauseCode_assistanceRequested = 8 +} e_AccidentSubCauseCode; + +/* AccidentSubCauseCode */ +typedef long AccidentSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode; +asn_struct_free_f AccidentSubCauseCode_free; +asn_struct_print_f AccidentSubCauseCode_print; +asn_constr_check_f AccidentSubCauseCode_constraint; +ber_type_decoder_f AccidentSubCauseCode_decode_ber; +der_type_encoder_f AccidentSubCauseCode_encode_der; +xer_type_decoder_f AccidentSubCauseCode_decode_xer; +xer_type_encoder_f AccidentSubCauseCode_encode_xer; +oer_type_decoder_f AccidentSubCauseCode_decode_oer; +oer_type_encoder_f AccidentSubCauseCode_encode_oer; +per_type_decoder_f AccidentSubCauseCode_decode_uper; +per_type_encoder_f AccidentSubCauseCode_encode_uper; +per_type_decoder_f AccidentSubCauseCode_decode_aper; +per_type_encoder_f AccidentSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccidentSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/ActionID.h b/vcits/spatem/ActionID.h new file mode 100644 index 0000000..8e4bbe0 --- /dev/null +++ b/vcits/spatem/ActionID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ActionID_H_ +#define _ActionID_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "SequenceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ActionID */ +typedef struct ActionID { + StationID_t originatingStationID; + SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ActionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ActionID; + +#ifdef __cplusplus +} +#endif + +#endif /* _ActionID_H_ */ +#include diff --git a/vcits/spatem/AdverseWeatherCondition-AdhesionSubCauseCode.h b/vcits/spatem/AdverseWeatherCondition-AdhesionSubCauseCode.h new file mode 100644 index 0000000..d292569 --- /dev/null +++ b/vcits/spatem/AdverseWeatherCondition-AdhesionSubCauseCode.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AdverseWeatherCondition_AdhesionSubCauseCode_H_ +#define _AdverseWeatherCondition_AdhesionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_AdhesionSubCauseCode { + AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1, + AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2, + AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3, + AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4, + AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5, + AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6, + AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7, + AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8, + AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9, + AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10 +} e_AdverseWeatherCondition_AdhesionSubCauseCode; + +/* AdverseWeatherCondition-AdhesionSubCauseCode */ +typedef long AdverseWeatherCondition_AdhesionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_AdhesionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_AdhesionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_AdhesionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_AdhesionSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h b/vcits/spatem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 0000000..30b2070 --- /dev/null +++ b/vcits/spatem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ +#define _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode { + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6 +} e_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; + +/* AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */ +typedef long AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/AdverseWeatherCondition-PrecipitationSubCauseCode.h b/vcits/spatem/AdverseWeatherCondition-PrecipitationSubCauseCode.h new file mode 100644 index 0000000..b1d8bf6 --- /dev/null +++ b/vcits/spatem/AdverseWeatherCondition-PrecipitationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ +#define _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_PrecipitationSubCauseCode { + AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2, + AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3 +} e_AdverseWeatherCondition_PrecipitationSubCauseCode; + +/* AdverseWeatherCondition-PrecipitationSubCauseCode */ +typedef long AdverseWeatherCondition_PrecipitationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_PrecipitationSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_PrecipitationSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_PrecipitationSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/AdverseWeatherCondition-VisibilitySubCauseCode.h b/vcits/spatem/AdverseWeatherCondition-VisibilitySubCauseCode.h new file mode 100644 index 0000000..bbce2e0 --- /dev/null +++ b/vcits/spatem/AdverseWeatherCondition-VisibilitySubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AdverseWeatherCondition_VisibilitySubCauseCode_H_ +#define _AdverseWeatherCondition_VisibilitySubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_VisibilitySubCauseCode { + AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0, + AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1, + AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2, + AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5, + AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6, + AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7, + AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8 +} e_AdverseWeatherCondition_VisibilitySubCauseCode; + +/* AdverseWeatherCondition-VisibilitySubCauseCode */ +typedef long AdverseWeatherCondition_VisibilitySubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode; +asn_struct_free_f AdverseWeatherCondition_VisibilitySubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_VisibilitySubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_VisibilitySubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_VisibilitySubCauseCode_H_ */ +#include diff --git a/vcits/spatem/AdvisorySpeed.h b/vcits/spatem/AdvisorySpeed.h new file mode 100644 index 0000000..de7e7e5 --- /dev/null +++ b/vcits/spatem/AdvisorySpeed.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AdvisorySpeed_H_ +#define _AdvisorySpeed_H_ + + +#include + +/* Including external dependencies */ +#include "AdvisorySpeedType.h" +#include "SpeedAdvice.h" +#include "SpeedConfidenceDSRC.h" +#include "ZoneLength.h" +#include "RestrictionClassID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_AdvisorySpeed; + +/* AdvisorySpeed */ +typedef struct AdvisorySpeed { + AdvisorySpeedType_t type; + SpeedAdvice_t *speed; /* OPTIONAL */ + SpeedConfidenceDSRC_t *confidence; /* OPTIONAL */ + ZoneLength_t *distance; /* OPTIONAL */ + RestrictionClassID_t *Class; /* OPTIONAL */ + struct AdvisorySpeed__regional { + A_SEQUENCE_OF(struct Reg_AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeed_H_ */ +#include diff --git a/vcits/spatem/AdvisorySpeedList.h b/vcits/spatem/AdvisorySpeedList.h new file mode 100644 index 0000000..f2d2639 --- /dev/null +++ b/vcits/spatem/AdvisorySpeedList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AdvisorySpeedList_H_ +#define _AdvisorySpeedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AdvisorySpeed; + +/* AdvisorySpeedList */ +typedef struct AdvisorySpeedList { + A_SEQUENCE_OF(struct AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList; +extern asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[1]; +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedList_H_ */ +#include diff --git a/vcits/spatem/AdvisorySpeedType.h b/vcits/spatem/AdvisorySpeedType.h new file mode 100644 index 0000000..8083647 --- /dev/null +++ b/vcits/spatem/AdvisorySpeedType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AdvisorySpeedType_H_ +#define _AdvisorySpeedType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdvisorySpeedType { + AdvisorySpeedType_none = 0, + AdvisorySpeedType_greenwave = 1, + AdvisorySpeedType_ecoDrive = 2, + AdvisorySpeedType_transit = 3 + /* + * Enumeration is extensible + */ +} e_AdvisorySpeedType; + +/* AdvisorySpeedType */ +typedef long AdvisorySpeedType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType; +extern const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1; +asn_struct_free_f AdvisorySpeedType_free; +asn_struct_print_f AdvisorySpeedType_print; +asn_constr_check_f AdvisorySpeedType_constraint; +ber_type_decoder_f AdvisorySpeedType_decode_ber; +der_type_encoder_f AdvisorySpeedType_encode_der; +xer_type_decoder_f AdvisorySpeedType_decode_xer; +xer_type_encoder_f AdvisorySpeedType_encode_xer; +oer_type_decoder_f AdvisorySpeedType_decode_oer; +oer_type_encoder_f AdvisorySpeedType_encode_oer; +per_type_decoder_f AdvisorySpeedType_decode_uper; +per_type_encoder_f AdvisorySpeedType_encode_uper; +per_type_decoder_f AdvisorySpeedType_decode_aper; +per_type_encoder_f AdvisorySpeedType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedType_H_ */ +#include diff --git a/vcits/spatem/AllowedManeuvers.h b/vcits/spatem/AllowedManeuvers.h new file mode 100644 index 0000000..27a363b --- /dev/null +++ b/vcits/spatem/AllowedManeuvers.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AllowedManeuvers_H_ +#define _AllowedManeuvers_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AllowedManeuvers { + AllowedManeuvers_maneuverStraightAllowed = 0, + AllowedManeuvers_maneuverLeftAllowed = 1, + AllowedManeuvers_maneuverRightAllowed = 2, + AllowedManeuvers_maneuverUTurnAllowed = 3, + AllowedManeuvers_maneuverLeftTurnOnRedAllowed = 4, + AllowedManeuvers_maneuverRightTurnOnRedAllowed = 5, + AllowedManeuvers_maneuverLaneChangeAllowed = 6, + AllowedManeuvers_maneuverNoStoppingAllowed = 7, + AllowedManeuvers_yieldAllwaysRequired = 8, + AllowedManeuvers_goWithHalt = 9, + AllowedManeuvers_caution = 10, + AllowedManeuvers_reserved1 = 11 +} e_AllowedManeuvers; + +/* AllowedManeuvers */ +typedef BIT_STRING_t AllowedManeuvers_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers; +asn_struct_free_f AllowedManeuvers_free; +asn_struct_print_f AllowedManeuvers_print; +asn_constr_check_f AllowedManeuvers_constraint; +ber_type_decoder_f AllowedManeuvers_decode_ber; +der_type_encoder_f AllowedManeuvers_encode_der; +xer_type_decoder_f AllowedManeuvers_decode_xer; +xer_type_encoder_f AllowedManeuvers_encode_xer; +oer_type_decoder_f AllowedManeuvers_decode_oer; +oer_type_encoder_f AllowedManeuvers_encode_oer; +per_type_decoder_f AllowedManeuvers_decode_uper; +per_type_encoder_f AllowedManeuvers_encode_uper; +per_type_decoder_f AllowedManeuvers_decode_aper; +per_type_encoder_f AllowedManeuvers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AllowedManeuvers_H_ */ +#include diff --git a/vcits/spatem/AlphabetIndicator.h b/vcits/spatem/AlphabetIndicator.h new file mode 100644 index 0000000..8cb2dfa --- /dev/null +++ b/vcits/spatem/AlphabetIndicator.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AlphabetIndicator_H_ +#define _AlphabetIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AlphabetIndicator { + AlphabetIndicator_latinAlphabetNo1 = 0, + AlphabetIndicator_latinAlphabetNo2 = 1, + AlphabetIndicator_latinAlphabetNo3 = 2, + AlphabetIndicator_latinAlphabetNo4 = 3, + AlphabetIndicator_latinCyrillicAlphabet = 4, + AlphabetIndicator_latinArabicAlphabet = 5, + AlphabetIndicator_latinGreekAlphabet = 6, + AlphabetIndicator_latinHebrewAlphabet = 7, + AlphabetIndicator_latinAlphabetNo5 = 8, + AlphabetIndicator_latinAlphabetNo6 = 9, + AlphabetIndicator_twoOctetBMP = 10, + AlphabetIndicator_fourOctetCanonical = 11 +} e_AlphabetIndicator; + +/* AlphabetIndicator */ +typedef long AlphabetIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AlphabetIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AlphabetIndicator; +asn_struct_free_f AlphabetIndicator_free; +asn_struct_print_f AlphabetIndicator_print; +asn_constr_check_f AlphabetIndicator_constraint; +ber_type_decoder_f AlphabetIndicator_decode_ber; +der_type_encoder_f AlphabetIndicator_encode_der; +xer_type_decoder_f AlphabetIndicator_decode_xer; +xer_type_encoder_f AlphabetIndicator_encode_xer; +oer_type_decoder_f AlphabetIndicator_decode_oer; +oer_type_encoder_f AlphabetIndicator_encode_oer; +per_type_decoder_f AlphabetIndicator_decode_uper; +per_type_encoder_f AlphabetIndicator_encode_uper; +per_type_decoder_f AlphabetIndicator_decode_aper; +per_type_encoder_f AlphabetIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AlphabetIndicator_H_ */ +#include diff --git a/vcits/spatem/Altitude.h b/vcits/spatem/Altitude.h new file mode 100644 index 0000000..bee44c5 --- /dev/null +++ b/vcits/spatem/Altitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Altitude_H_ +#define _Altitude_H_ + + +#include + +/* Including external dependencies */ +#include "AltitudeValue.h" +#include "AltitudeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Altitude */ +typedef struct Altitude { + AltitudeValue_t altitudeValue; + AltitudeConfidence_t altitudeConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Altitude_H_ */ +#include diff --git a/vcits/spatem/AltitudeConfidence.h b/vcits/spatem/AltitudeConfidence.h new file mode 100644 index 0000000..a33a096 --- /dev/null +++ b/vcits/spatem/AltitudeConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AltitudeConfidence_H_ +#define _AltitudeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeConfidence { + AltitudeConfidence_alt_000_01 = 0, + AltitudeConfidence_alt_000_02 = 1, + AltitudeConfidence_alt_000_05 = 2, + AltitudeConfidence_alt_000_10 = 3, + AltitudeConfidence_alt_000_20 = 4, + AltitudeConfidence_alt_000_50 = 5, + AltitudeConfidence_alt_001_00 = 6, + AltitudeConfidence_alt_002_00 = 7, + AltitudeConfidence_alt_005_00 = 8, + AltitudeConfidence_alt_010_00 = 9, + AltitudeConfidence_alt_020_00 = 10, + AltitudeConfidence_alt_050_00 = 11, + AltitudeConfidence_alt_100_00 = 12, + AltitudeConfidence_alt_200_00 = 13, + AltitudeConfidence_outOfRange = 14, + AltitudeConfidence_unavailable = 15 +} e_AltitudeConfidence; + +/* AltitudeConfidence */ +typedef long AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1; +asn_struct_free_f AltitudeConfidence_free; +asn_struct_print_f AltitudeConfidence_print; +asn_constr_check_f AltitudeConfidence_constraint; +ber_type_decoder_f AltitudeConfidence_decode_ber; +der_type_encoder_f AltitudeConfidence_encode_der; +xer_type_decoder_f AltitudeConfidence_decode_xer; +xer_type_encoder_f AltitudeConfidence_encode_xer; +oer_type_decoder_f AltitudeConfidence_decode_oer; +oer_type_encoder_f AltitudeConfidence_encode_oer; +per_type_decoder_f AltitudeConfidence_decode_uper; +per_type_encoder_f AltitudeConfidence_encode_uper; +per_type_decoder_f AltitudeConfidence_decode_aper; +per_type_encoder_f AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeConfidence_H_ */ +#include diff --git a/vcits/spatem/AltitudeValue.h b/vcits/spatem/AltitudeValue.h new file mode 100644 index 0000000..9e1c5e6 --- /dev/null +++ b/vcits/spatem/AltitudeValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AltitudeValue_H_ +#define _AltitudeValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeValue { + AltitudeValue_referenceEllipsoidSurface = 0, + AltitudeValue_oneCentimeter = 1, + AltitudeValue_unavailable = 800001 +} e_AltitudeValue; + +/* AltitudeValue */ +typedef long AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeValue; +asn_struct_free_f AltitudeValue_free; +asn_struct_print_f AltitudeValue_print; +asn_constr_check_f AltitudeValue_constraint; +ber_type_decoder_f AltitudeValue_decode_ber; +der_type_encoder_f AltitudeValue_encode_der; +xer_type_decoder_f AltitudeValue_decode_xer; +xer_type_encoder_f AltitudeValue_encode_xer; +oer_type_decoder_f AltitudeValue_decode_oer; +oer_type_encoder_f AltitudeValue_encode_oer; +per_type_decoder_f AltitudeValue_decode_uper; +per_type_encoder_f AltitudeValue_encode_uper; +per_type_decoder_f AltitudeValue_decode_aper; +per_type_encoder_f AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeValue_H_ */ +#include diff --git a/vcits/spatem/Angle.h b/vcits/spatem/Angle.h new file mode 100644 index 0000000..7401ebc --- /dev/null +++ b/vcits/spatem/Angle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Angle_H_ +#define _Angle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Angle */ +typedef long Angle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Angle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Angle; +asn_struct_free_f Angle_free; +asn_struct_print_f Angle_print; +asn_constr_check_f Angle_constraint; +ber_type_decoder_f Angle_decode_ber; +der_type_encoder_f Angle_encode_der; +xer_type_decoder_f Angle_decode_xer; +xer_type_encoder_f Angle_encode_xer; +oer_type_decoder_f Angle_decode_oer; +oer_type_encoder_f Angle_encode_oer; +per_type_decoder_f Angle_decode_uper; +per_type_encoder_f Angle_encode_uper; +per_type_decoder_f Angle_decode_aper; +per_type_encoder_f Angle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Angle_H_ */ +#include diff --git a/vcits/spatem/AntennaOffsetSet.h b/vcits/spatem/AntennaOffsetSet.h new file mode 100644 index 0000000..66f5dac --- /dev/null +++ b/vcits/spatem/AntennaOffsetSet.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AntennaOffsetSet_H_ +#define _AntennaOffsetSet_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B12.h" +#include "Offset-B09.h" +#include "Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AntennaOffsetSet */ +typedef struct AntennaOffsetSet { + Offset_B12_t antOffsetX; + Offset_B09_t antOffsetY; + Offset_B10_t antOffsetZ; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AntennaOffsetSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet; +extern asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1; +extern asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AntennaOffsetSet_H_ */ +#include diff --git a/vcits/spatem/ApproachID.h b/vcits/spatem/ApproachID.h new file mode 100644 index 0000000..5d5bb75 --- /dev/null +++ b/vcits/spatem/ApproachID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ApproachID_H_ +#define _ApproachID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ApproachID */ +typedef long ApproachID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ApproachID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ApproachID; +asn_struct_free_f ApproachID_free; +asn_struct_print_f ApproachID_print; +asn_constr_check_f ApproachID_constraint; +ber_type_decoder_f ApproachID_decode_ber; +der_type_encoder_f ApproachID_encode_der; +xer_type_decoder_f ApproachID_decode_xer; +xer_type_encoder_f ApproachID_encode_xer; +oer_type_decoder_f ApproachID_decode_oer; +oer_type_encoder_f ApproachID_encode_oer; +per_type_decoder_f ApproachID_decode_uper; +per_type_encoder_f ApproachID_encode_uper; +per_type_decoder_f ApproachID_decode_aper; +per_type_encoder_f ApproachID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ApproachID_H_ */ +#include diff --git a/vcits/spatem/AviEriDateTime.h b/vcits/spatem/AviEriDateTime.h new file mode 100644 index 0000000..4580565 --- /dev/null +++ b/vcits/spatem/AviEriDateTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _AviEriDateTime_H_ +#define _AviEriDateTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AviEriDateTime */ +typedef OCTET_STRING_t AviEriDateTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AviEriDateTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AviEriDateTime; +asn_struct_free_f AviEriDateTime_free; +asn_struct_print_f AviEriDateTime_print; +asn_constr_check_f AviEriDateTime_constraint; +ber_type_decoder_f AviEriDateTime_decode_ber; +der_type_encoder_f AviEriDateTime_encode_der; +xer_type_decoder_f AviEriDateTime_decode_xer; +xer_type_encoder_f AviEriDateTime_encode_xer; +oer_type_decoder_f AviEriDateTime_decode_oer; +oer_type_encoder_f AviEriDateTime_encode_oer; +per_type_decoder_f AviEriDateTime_decode_uper; +per_type_encoder_f AviEriDateTime_encode_uper; +per_type_decoder_f AviEriDateTime_decode_aper; +per_type_encoder_f AviEriDateTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AviEriDateTime_H_ */ +#include diff --git a/vcits/spatem/BasicVehicleRole.h b/vcits/spatem/BasicVehicleRole.h new file mode 100644 index 0000000..084c818 --- /dev/null +++ b/vcits/spatem/BasicVehicleRole.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _BasicVehicleRole_H_ +#define _BasicVehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BasicVehicleRole { + BasicVehicleRole_basicVehicle = 0, + BasicVehicleRole_publicTransport = 1, + BasicVehicleRole_specialTransport = 2, + BasicVehicleRole_dangerousGoods = 3, + BasicVehicleRole_roadWork = 4, + BasicVehicleRole_roadRescue = 5, + BasicVehicleRole_emergency = 6, + BasicVehicleRole_safetyCar = 7, + BasicVehicleRole_none_unknown = 8, + BasicVehicleRole_truck = 9, + BasicVehicleRole_motorcycle = 10, + BasicVehicleRole_roadSideSource = 11, + BasicVehicleRole_police = 12, + BasicVehicleRole_fire = 13, + BasicVehicleRole_ambulance = 14, + BasicVehicleRole_dot = 15, + BasicVehicleRole_transit = 16, + BasicVehicleRole_slowMoving = 17, + BasicVehicleRole_stopNgo = 18, + BasicVehicleRole_cyclist = 19, + BasicVehicleRole_pedestrian = 20, + BasicVehicleRole_nonMotorized = 21, + BasicVehicleRole_military = 22 + /* + * Enumeration is extensible + */ +} e_BasicVehicleRole; + +/* BasicVehicleRole */ +typedef long BasicVehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1; +asn_struct_free_f BasicVehicleRole_free; +asn_struct_print_f BasicVehicleRole_print; +asn_constr_check_f BasicVehicleRole_constraint; +ber_type_decoder_f BasicVehicleRole_decode_ber; +der_type_encoder_f BasicVehicleRole_encode_der; +xer_type_decoder_f BasicVehicleRole_decode_xer; +xer_type_encoder_f BasicVehicleRole_encode_xer; +oer_type_decoder_f BasicVehicleRole_decode_oer; +oer_type_encoder_f BasicVehicleRole_encode_oer; +per_type_decoder_f BasicVehicleRole_decode_uper; +per_type_encoder_f BasicVehicleRole_encode_uper; +per_type_decoder_f BasicVehicleRole_decode_aper; +per_type_encoder_f BasicVehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicVehicleRole_H_ */ +#include diff --git a/vcits/spatem/BatteryStatus.h b/vcits/spatem/BatteryStatus.h new file mode 100644 index 0000000..98720d6 --- /dev/null +++ b/vcits/spatem/BatteryStatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _BatteryStatus_H_ +#define _BatteryStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BatteryStatus { + BatteryStatus_unknown = 0, + BatteryStatus_critical = 1, + BatteryStatus_low = 2, + BatteryStatus_good = 3 + /* + * Enumeration is extensible + */ +} e_BatteryStatus; + +/* BatteryStatus */ +typedef long BatteryStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BatteryStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BatteryStatus; +extern const asn_INTEGER_specifics_t asn_SPC_BatteryStatus_specs_1; +asn_struct_free_f BatteryStatus_free; +asn_struct_print_f BatteryStatus_print; +asn_constr_check_f BatteryStatus_constraint; +ber_type_decoder_f BatteryStatus_decode_ber; +der_type_encoder_f BatteryStatus_encode_der; +xer_type_decoder_f BatteryStatus_decode_xer; +xer_type_encoder_f BatteryStatus_encode_xer; +oer_type_decoder_f BatteryStatus_decode_oer; +oer_type_encoder_f BatteryStatus_encode_oer; +per_type_decoder_f BatteryStatus_decode_uper; +per_type_encoder_f BatteryStatus_encode_uper; +per_type_decoder_f BatteryStatus_decode_aper; +per_type_encoder_f BatteryStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BatteryStatus_H_ */ +#include diff --git a/vcits/spatem/CMakeLists.txt b/vcits/spatem/CMakeLists.txt new file mode 100644 index 0000000..83f4c6a --- /dev/null +++ b/vcits/spatem/CMakeLists.txt @@ -0,0 +1,382 @@ +# This file is auto-generated by command-cxx.sh +cmake_minimum_required(VERSION 3.9) + +message(STATUS "--> Configure build of |-vcits-spatem") + +project(vcits-spatem VERSION 0.2 DESCRIPTION "spatem part of vcits") + +add_library(vcits-spatem STATIC +src/AccelerationConfidence.c +src/AccelerationControl.c +src/AccidentSubCauseCode.c +src/ActionID.c +src/AdverseWeatherCondition-AdhesionSubCauseCode.c +src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c +src/AdverseWeatherCondition-PrecipitationSubCauseCode.c +src/AdverseWeatherCondition-VisibilitySubCauseCode.c +src/AdvisorySpeed.c +src/AdvisorySpeedList.c +src/AdvisorySpeedType.c +src/AllowedManeuvers.c +src/AlphabetIndicator.c +src/Altitude.c +src/AltitudeConfidence.c +src/AltitudeValue.c +src/Angle.c +src/AntennaOffsetSet.c +src/ApproachID.c +src/AviEriDateTime.c +src/BasicVehicleRole.c +src/BatteryStatus.c +src/CS1.c +src/CS2.c +src/CS3.c +src/CS4.c +src/CS5.c +src/CS7.c +src/CS8.c +src/CauseCode.c +src/CauseCodeType.c +src/CenDsrcTollingZone.c +src/CenDsrcTollingZoneID.c +src/ClosedLanes.c +src/CollisionRiskSubCauseCode.c +src/ComputedLane.c +src/ConnectingLane.c +src/Connection.c +src/ConnectionManeuverAssist-addGrpC.c +src/ConnectionManeuverAssist.c +src/ConnectionTrajectory-addGrpC.c +src/ConnectsToList.c +src/CountryCode.c +src/Curvature.c +src/CurvatureCalculationMode.c +src/CurvatureConfidence.c +src/CurvatureValue.c +src/DDateTime.c +src/DDay.c +src/DHour.c +src/DMinute.c +src/DMonth.c +src/DOffset.c +src/DSRCmsgID.c +src/DSecond.c +src/DYear.c +src/DangerousEndOfQueueSubCauseCode.c +src/DangerousGoodsBasic.c +src/DangerousGoodsExtended.c +src/DangerousSituationSubCauseCode.c +src/DataParameters.c +src/DeltaAltitude.c +src/DeltaAngle.c +src/DeltaLatitude.c +src/DeltaLongitude.c +src/DeltaReferencePosition.c +src/DeltaTime.c +src/DescriptiveName.c +src/DigitalMap.c +src/DriveDirection.c +src/DrivenLineOffsetLg.c +src/DrivenLineOffsetSm.c +src/DrivingLaneStatus.c +src/Elevation.c +src/ElevationConfidence.c +src/EmbarkationStatus.c +src/EmergencyPriority.c +src/EmergencyVehicleApproachingSubCauseCode.c +src/EmissionType.c +src/EnabledLaneList.c +src/EnergyStorageType.c +src/EuVehicleCategoryCode.c +src/EuVehicleCategoryL.c +src/EuVehicleCategoryM.c +src/EuVehicleCategoryN.c +src/EuVehicleCategoryO.c +src/EventHistory.c +src/EventPoint.c +src/ExceptionalCondition.c +src/ExteriorLights.c +src/FreightContainerData.c +src/FuelType.c +src/FullPositionVector.c +src/GNSSstatus.c +src/GenericLane.c +src/GeoGraphicalLimit.c +src/HardShoulderStatus.c +src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c +src/HazardousLocation-DangerousCurveSubCauseCode.c +src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c +src/HazardousLocation-SurfaceConditionSubCauseCode.c +src/Heading.c +src/HeadingConfidence.c +src/HeadingConfidenceDSRC.c +src/HeadingDSRC.c +src/HeadingValue.c +src/HeightLonCarr.c +src/HumanPresenceOnTheRoadSubCauseCode.c +src/HumanProblemSubCauseCode.c +src/InformationQuality.c +src/IntersectionAccessPoint.c +src/IntersectionGeometry.c +src/IntersectionGeometryList.c +src/IntersectionID.c +src/IntersectionReferenceID.c +src/IntersectionState-addGrpC.c +src/IntersectionState.c +src/IntersectionStateList.c +src/IntersectionStatusObject.c +src/Iso3833VehicleType.c +src/IssuerIdentifier.c +src/ItineraryPath.c +src/ItsPduHeader.c +src/ItsStationPosition.c +src/ItsStationPositionList.c +src/LaneAttributes-Barrier.c +src/LaneAttributes-Bike.c +src/LaneAttributes-Crosswalk.c +src/LaneAttributes-Parking.c +src/LaneAttributes-Sidewalk.c +src/LaneAttributes-Striping.c +src/LaneAttributes-TrackedVehicle.c +src/LaneAttributes-Vehicle.c +src/LaneAttributes-addGrpC.c +src/LaneAttributes.c +src/LaneConnectionID.c +src/LaneDataAttribute.c +src/LaneDataAttributeList.c +src/LaneDirection.c +src/LaneID.c +src/LaneList.c +src/LanePosition.c +src/LaneSharing.c +src/LaneTypeAttributes.c +src/LaneWidth.c +src/LateralAcceleration.c +src/LateralAccelerationValue.c +src/Latitude.c +src/LayerID.c +src/LayerType.c +src/LicPlateNumber.c +src/LightBarSirenInUse.c +src/Longitude.c +src/LongitudinalAcceleration.c +src/LongitudinalAccelerationValue.c +src/ManeuverAssistList.c +src/ManufacturerIdentifier.c +src/MapData-addGrpC.c +src/MapData.c +src/MergeDivergeNodeAngle.c +src/MinuteOfTheYear.c +src/MovementEvent-addGrpC.c +src/MovementEvent.c +src/MovementEventList.c +src/MovementList.c +src/MovementPhaseState.c +src/MovementState.c +src/MsgCount.c +src/Node-LLmD-64b.c +src/Node-XY-20b.c +src/Node-XY-22b.c +src/Node-XY-24b.c +src/Node-XY-26b.c +src/Node-XY-28b.c +src/Node-XY-32b.c +src/Node.c +src/NodeAttributeSet-addGrpC.c +src/NodeAttributeSetXY.c +src/NodeAttributeXY.c +src/NodeAttributeXYList.c +src/NodeLink.c +src/NodeListXY.c +src/NodeOffsetPointXY.c +src/NodeSetXY.c +src/NodeXY.c +src/NumberOfOccupants.c +src/Offset-B09.c +src/Offset-B10.c +src/Offset-B11.c +src/Offset-B12.c +src/Offset-B13.c +src/Offset-B14.c +src/Offset-B16.c +src/OpeningDaysHours.c +src/OverlayLaneList.c +src/PathDeltaTime.c +src/PathHistory.c +src/PathPoint.c +src/PedestrianBicycleDetect.c +src/PerformanceClass.c +src/PhoneNumber.c +src/PosCentMass.c +src/PosConfidenceEllipse.c +src/PosFrontAx.c +src/PosLonCarr.c +src/PosPillar.c +src/Position3D-addGrpC.c +src/Position3D.c +src/PositionConfidence.c +src/PositionConfidenceSet.c +src/PositionOfOccupants.c +src/PositionOfPillars.c +src/PositionalAccuracy.c +src/PositioningSolutionType.c +src/PostCrashSubCauseCode.c +src/PreemptPriorityList.c +src/PrioritizationResponse.c +src/PrioritizationResponseList.c +src/PrioritizationResponseStatus.c +src/PriorityRequestType.c +src/ProtectedCommunicationZone.c +src/ProtectedCommunicationZonesRSU.c +src/ProtectedZoneID.c +src/ProtectedZoneRadius.c +src/ProtectedZoneType.c +src/PtActivation.c +src/PtActivationData.c +src/PtActivationType.c +src/PtvRequestType.c +src/RTCM-Revision.c +src/RTCMcorrections.c +src/RTCMheader.c +src/RTCMmessage.c +src/RTCMmessageList.c +src/ReferencePosition.c +src/RegionId.c +src/RegionalExtension.c +src/RegulatorySpeedLimit.c +src/RejectedReason.c +src/RelevanceDistance.c +src/RelevanceTrafficDirection.c +src/RequestID.c +src/RequestImportanceLevel.c +src/RequestResponseIndication.c +src/RequestSubRole.c +src/RequestorDescription-addGrpC.c +src/RequestorDescription.c +src/RequestorPositionVector.c +src/RequestorType.c +src/RescueAndRecoveryWorkInProgressSubCauseCode.c +src/RestrictedTypes.c +src/RestrictionAppliesTo.c +src/RestrictionClassAssignment.c +src/RestrictionClassID.c +src/RestrictionClassList.c +src/RestrictionUserType-addGrpC.c +src/RestrictionUserType.c +src/RestrictionUserTypeList.c +src/RoadLaneSetList.c +src/RoadRegulatorID.c +src/RoadSegment.c +src/RoadSegmentID.c +src/RoadSegmentList.c +src/RoadSegmentReferenceID.c +src/RoadType.c +src/RoadwayCrownAngle.c +src/RoadworksSubCauseCode.c +src/SPAT.c +src/SPATEM.c +src/Scale-B12.c +src/SegmentAttributeXY.c +src/SegmentAttributeXYList.c +src/SemiAxisLength.c +src/SemiMajorAxisAccuracy.c +src/SemiMajorAxisOrientation.c +src/SemiMinorAxisAccuracy.c +src/SequenceNumber.c +src/ServiceApplicationLimit.c +src/ServiceNumber.c +src/SignalControlZone.c +src/SignalGroupID.c +src/SignalHeadLocation.c +src/SignalHeadLocationList.c +src/SignalRequest.c +src/SignalRequestList.c +src/SignalRequestMessage.c +src/SignalRequestPackage.c +src/SignalRequesterInfo.c +src/SignalStatus.c +src/SignalStatusList.c +src/SignalStatusMessage.c +src/SignalStatusPackage-addGrpC.c +src/SignalStatusPackage.c +src/SignalStatusPackageList.c +src/SignalViolationSubCauseCode.c +src/SlowVehicleSubCauseCode.c +src/SpecialTransportType.c +src/Speed.c +src/SpeedAdvice.c +src/SpeedConfidence.c +src/SpeedConfidenceDSRC.c +src/SpeedLimit.c +src/SpeedLimitList.c +src/SpeedLimitType.c +src/SpeedValue.c +src/SpeedandHeadingandThrottleConfidence.c +src/StartTime.c +src/StationID.c +src/StationType.c +src/StationarySince.c +src/StationaryVehicleSubCauseCode.c +src/SteeringWheelAngle.c +src/SteeringWheelAngleConfidence.c +src/SteeringWheelAngleValue.c +src/StopTime.c +src/SubCauseCodeType.c +src/TaxCode.c +src/Temperature.c +src/TemporaryID.c +src/ThrottleConfidence.c +src/TimeChangeDetails.c +src/TimeConfidence.c +src/TimeIntervalConfidence.c +src/TimeMark.c +src/TimeReference.c +src/TimestampIts.c +src/Traces.c +src/TrafficConditionSubCauseCode.c +src/TrafficRule.c +src/TransitVehicleOccupancy.c +src/TransitVehicleStatus.c +src/TransmissionAndSpeed.c +src/TransmissionInterval.c +src/TransmissionState.c +src/TurningRadius.c +src/VDS.c +src/ValidityDuration.c +src/VehicleBreakdownSubCauseCode.c +src/VehicleHeight.c +src/VehicleID.c +src/VehicleIdentification.c +src/VehicleLength.c +src/VehicleLengthConfidenceIndication.c +src/VehicleLengthValue.c +src/VehicleMass.c +src/VehicleRole.c +src/VehicleType.c +src/VehicleWidth.c +src/Velocity.c +src/VerticalAcceleration.c +src/VerticalAccelerationValue.c +src/WMInumber.c +src/WaitOnStopline.c +src/WheelBaseVehicle.c +src/WrongWayDrivingSubCauseCode.c +src/YawRate.c +src/YawRateConfidence.c +src/YawRateValue.c +src/ZoneLength.c +) + +set_target_properties(vcits-spatem PROPERTIES VERSION ${PROJECT_VERSION}) + +target_include_directories(vcits-spatem PRIVATE .) +target_include_directories(vcits-spatem PRIVATE ../asn1c) + + + +target_link_libraries(vcits-spatem PUBLIC +vcits-asn1c +) + +message(STATUS "--> Configure build of |-vcits-spatem - done") + diff --git a/vcits/spatem/CS1.h b/vcits/spatem/CS1.h new file mode 100644 index 0000000..2957c03 --- /dev/null +++ b/vcits/spatem/CS1.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CS1_H_ +#define _CS1_H_ + + +#include + +/* Including external dependencies */ +#include "CountryCode.h" +#include "IssuerIdentifier.h" +#include "ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS1 */ +typedef struct CS1 { + CountryCode_t countryCode; + IssuerIdentifier_t issuerIdentifier; + ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS1_H_ */ +#include diff --git a/vcits/spatem/CS2.h b/vcits/spatem/CS2.h new file mode 100644 index 0000000..a3b8e61 --- /dev/null +++ b/vcits/spatem/CS2.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CS2_H_ +#define _CS2_H_ + + +#include + +/* Including external dependencies */ +#include "ManufacturerIdentifier.h" +#include "ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS2 */ +typedef struct CS2 { + ManufacturerIdentifier_t manufacturerIdentifier; + ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS2; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS2_H_ */ +#include diff --git a/vcits/spatem/CS3.h b/vcits/spatem/CS3.h new file mode 100644 index 0000000..f641f0c --- /dev/null +++ b/vcits/spatem/CS3.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CS3_H_ +#define _CS3_H_ + + +#include + +/* Including external dependencies */ +#include "StartTime.h" +#include "StopTime.h" +#include "GeoGraphicalLimit.h" +#include "ServiceApplicationLimit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS3 */ +typedef struct CS3 { + StartTime_t startTime; + StopTime_t stopTime; + GeoGraphicalLimit_t geographLimit; + ServiceApplicationLimit_t serviceAppLimit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS3; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS3_H_ */ +#include diff --git a/vcits/spatem/CS4.h b/vcits/spatem/CS4.h new file mode 100644 index 0000000..097de83 --- /dev/null +++ b/vcits/spatem/CS4.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CS4_H_ +#define _CS4_H_ + + +#include + +/* Including external dependencies */ +#include "CountryCode.h" +#include "AlphabetIndicator.h" +#include "LicPlateNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS4 */ +typedef struct CS4 { + CountryCode_t countryCode; + AlphabetIndicator_t alphabetIndicator; + LicPlateNumber_t licPlateNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS4_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS4; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS4_H_ */ +#include diff --git a/vcits/spatem/CS5.h b/vcits/spatem/CS5.h new file mode 100644 index 0000000..d5ce058 --- /dev/null +++ b/vcits/spatem/CS5.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CS5_H_ +#define _CS5_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS5 */ +typedef struct CS5 { + VisibleString_t vin; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS5_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS5; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS5_H_ */ +#include diff --git a/vcits/spatem/CS7.h b/vcits/spatem/CS7.h new file mode 100644 index 0000000..d949614 --- /dev/null +++ b/vcits/spatem/CS7.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CS7_H_ +#define _CS7_H_ + + +#include + +/* Including external dependencies */ +#include "FreightContainerData.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS7 */ +typedef FreightContainerData_t CS7_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS7; +asn_struct_free_f CS7_free; +asn_struct_print_f CS7_print; +asn_constr_check_f CS7_constraint; +ber_type_decoder_f CS7_decode_ber; +der_type_encoder_f CS7_encode_der; +xer_type_decoder_f CS7_decode_xer; +xer_type_encoder_f CS7_encode_xer; +oer_type_decoder_f CS7_decode_oer; +oer_type_encoder_f CS7_encode_oer; +per_type_decoder_f CS7_decode_uper; +per_type_encoder_f CS7_encode_uper; +per_type_decoder_f CS7_decode_aper; +per_type_encoder_f CS7_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS7_H_ */ +#include diff --git a/vcits/spatem/CS8.h b/vcits/spatem/CS8.h new file mode 100644 index 0000000..eb51d4d --- /dev/null +++ b/vcits/spatem/CS8.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CS8_H_ +#define _CS8_H_ + + +#include + +/* Including external dependencies */ +#include +#include "CountryCode.h" +#include "TaxCode.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS8 */ +typedef struct CS8 { + BIT_STRING_t fill; + CountryCode_t countryCode; + TaxCode_t taxCode; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS8_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS8; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS8_H_ */ +#include diff --git a/vcits/spatem/CauseCode.h b/vcits/spatem/CauseCode.h new file mode 100644 index 0000000..a45d9f6 --- /dev/null +++ b/vcits/spatem/CauseCode.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CauseCode_H_ +#define _CauseCode_H_ + + +#include + +/* Including external dependencies */ +#include "CauseCodeType.h" +#include "SubCauseCodeType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CauseCode */ +typedef struct CauseCode { + CauseCodeType_t causeCode; + SubCauseCodeType_t subCauseCode; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CauseCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCode_H_ */ +#include diff --git a/vcits/spatem/CauseCodeType.h b/vcits/spatem/CauseCodeType.h new file mode 100644 index 0000000..87120f0 --- /dev/null +++ b/vcits/spatem/CauseCodeType.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CauseCodeType_H_ +#define _CauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseCodeType { + CauseCodeType_reserved = 0, + CauseCodeType_trafficCondition = 1, + CauseCodeType_accident = 2, + CauseCodeType_roadworks = 3, + CauseCodeType_impassability = 5, + CauseCodeType_adverseWeatherCondition_Adhesion = 6, + CauseCodeType_aquaplannning = 7, + CauseCodeType_hazardousLocation_SurfaceCondition = 9, + CauseCodeType_hazardousLocation_ObstacleOnTheRoad = 10, + CauseCodeType_hazardousLocation_AnimalOnTheRoad = 11, + CauseCodeType_humanPresenceOnTheRoad = 12, + CauseCodeType_wrongWayDriving = 14, + CauseCodeType_rescueAndRecoveryWorkInProgress = 15, + CauseCodeType_adverseWeatherCondition_ExtremeWeatherCondition = 17, + CauseCodeType_adverseWeatherCondition_Visibility = 18, + CauseCodeType_adverseWeatherCondition_Precipitation = 19, + CauseCodeType_slowVehicle = 26, + CauseCodeType_dangerousEndOfQueue = 27, + CauseCodeType_vehicleBreakdown = 91, + CauseCodeType_postCrash = 92, + CauseCodeType_humanProblem = 93, + CauseCodeType_stationaryVehicle = 94, + CauseCodeType_emergencyVehicleApproaching = 95, + CauseCodeType_hazardousLocation_DangerousCurve = 96, + CauseCodeType_collisionRisk = 97, + CauseCodeType_signalViolation = 98, + CauseCodeType_dangerousSituation = 99 +} e_CauseCodeType; + +/* CauseCodeType */ +typedef long CauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseCodeType; +asn_struct_free_f CauseCodeType_free; +asn_struct_print_f CauseCodeType_print; +asn_constr_check_f CauseCodeType_constraint; +ber_type_decoder_f CauseCodeType_decode_ber; +der_type_encoder_f CauseCodeType_encode_der; +xer_type_decoder_f CauseCodeType_decode_xer; +xer_type_encoder_f CauseCodeType_encode_xer; +oer_type_decoder_f CauseCodeType_decode_oer; +oer_type_encoder_f CauseCodeType_encode_oer; +per_type_decoder_f CauseCodeType_decode_uper; +per_type_encoder_f CauseCodeType_encode_uper; +per_type_decoder_f CauseCodeType_decode_aper; +per_type_encoder_f CauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCodeType_H_ */ +#include diff --git a/vcits/spatem/CenDsrcTollingZone.h b/vcits/spatem/CenDsrcTollingZone.h new file mode 100644 index 0000000..5184e81 --- /dev/null +++ b/vcits/spatem/CenDsrcTollingZone.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CenDsrcTollingZone_H_ +#define _CenDsrcTollingZone_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "CenDsrcTollingZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZone */ +typedef struct CenDsrcTollingZone { + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + CenDsrcTollingZoneID_t *cenDsrcTollingZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CenDsrcTollingZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZone_H_ */ +#include diff --git a/vcits/spatem/CenDsrcTollingZoneID.h b/vcits/spatem/CenDsrcTollingZoneID.h new file mode 100644 index 0000000..1c65b15 --- /dev/null +++ b/vcits/spatem/CenDsrcTollingZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CenDsrcTollingZoneID_H_ +#define _CenDsrcTollingZoneID_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneID.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZoneID */ +typedef ProtectedZoneID_t CenDsrcTollingZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID; +asn_struct_free_f CenDsrcTollingZoneID_free; +asn_struct_print_f CenDsrcTollingZoneID_print; +asn_constr_check_f CenDsrcTollingZoneID_constraint; +ber_type_decoder_f CenDsrcTollingZoneID_decode_ber; +der_type_encoder_f CenDsrcTollingZoneID_encode_der; +xer_type_decoder_f CenDsrcTollingZoneID_decode_xer; +xer_type_encoder_f CenDsrcTollingZoneID_encode_xer; +oer_type_decoder_f CenDsrcTollingZoneID_decode_oer; +oer_type_encoder_f CenDsrcTollingZoneID_encode_oer; +per_type_decoder_f CenDsrcTollingZoneID_decode_uper; +per_type_encoder_f CenDsrcTollingZoneID_encode_uper; +per_type_decoder_f CenDsrcTollingZoneID_decode_aper; +per_type_encoder_f CenDsrcTollingZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZoneID_H_ */ +#include diff --git a/vcits/spatem/ClosedLanes.h b/vcits/spatem/ClosedLanes.h new file mode 100644 index 0000000..1d8c1bc --- /dev/null +++ b/vcits/spatem/ClosedLanes.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ClosedLanes_H_ +#define _ClosedLanes_H_ + + +#include + +/* Including external dependencies */ +#include "HardShoulderStatus.h" +#include "DrivingLaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ClosedLanes */ +typedef struct ClosedLanes { + HardShoulderStatus_t *innerhardShoulderStatus; /* OPTIONAL */ + HardShoulderStatus_t *outerhardShoulderStatus; /* OPTIONAL */ + DrivingLaneStatus_t *drivingLaneStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ClosedLanes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ClosedLanes; + +#ifdef __cplusplus +} +#endif + +#endif /* _ClosedLanes_H_ */ +#include diff --git a/vcits/spatem/CollisionRiskSubCauseCode.h b/vcits/spatem/CollisionRiskSubCauseCode.h new file mode 100644 index 0000000..837e670 --- /dev/null +++ b/vcits/spatem/CollisionRiskSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CollisionRiskSubCauseCode_H_ +#define _CollisionRiskSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CollisionRiskSubCauseCode { + CollisionRiskSubCauseCode_unavailable = 0, + CollisionRiskSubCauseCode_longitudinalCollisionRisk = 1, + CollisionRiskSubCauseCode_crossingCollisionRisk = 2, + CollisionRiskSubCauseCode_lateralCollisionRisk = 3, + CollisionRiskSubCauseCode_vulnerableRoadUser = 4 +} e_CollisionRiskSubCauseCode; + +/* CollisionRiskSubCauseCode */ +typedef long CollisionRiskSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode; +asn_struct_free_f CollisionRiskSubCauseCode_free; +asn_struct_print_f CollisionRiskSubCauseCode_print; +asn_constr_check_f CollisionRiskSubCauseCode_constraint; +ber_type_decoder_f CollisionRiskSubCauseCode_decode_ber; +der_type_encoder_f CollisionRiskSubCauseCode_encode_der; +xer_type_decoder_f CollisionRiskSubCauseCode_decode_xer; +xer_type_encoder_f CollisionRiskSubCauseCode_encode_xer; +oer_type_decoder_f CollisionRiskSubCauseCode_decode_oer; +oer_type_encoder_f CollisionRiskSubCauseCode_encode_oer; +per_type_decoder_f CollisionRiskSubCauseCode_decode_uper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_uper; +per_type_decoder_f CollisionRiskSubCauseCode_decode_aper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CollisionRiskSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/ComputedLane.h b/vcits/spatem/ComputedLane.h new file mode 100644 index 0000000..95d84aa --- /dev/null +++ b/vcits/spatem/ComputedLane.h @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ComputedLane_H_ +#define _ComputedLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "Angle.h" +#include "Scale-B12.h" +#include "DrivenLineOffsetSm.h" +#include "DrivenLineOffsetLg.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ComputedLane__offsetXaxis_PR { + ComputedLane__offsetXaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetXaxis_PR_small, + ComputedLane__offsetXaxis_PR_large +} ComputedLane__offsetXaxis_PR; +typedef enum ComputedLane__offsetYaxis_PR { + ComputedLane__offsetYaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetYaxis_PR_small, + ComputedLane__offsetYaxis_PR_large +} ComputedLane__offsetYaxis_PR; + +/* Forward declarations */ +struct Reg_ComputedLane; + +/* ComputedLane */ +typedef struct ComputedLane { + LaneID_t referenceLaneId; + struct ComputedLane__offsetXaxis { + ComputedLane__offsetXaxis_PR present; + union ComputedLane__offsetXaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetXaxis; + struct ComputedLane__offsetYaxis { + ComputedLane__offsetYaxis_PR present; + union ComputedLane__offsetYaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetYaxis; + Angle_t *rotateXY; /* OPTIONAL */ + Scale_B12_t *scaleXaxis; /* OPTIONAL */ + Scale_B12_t *scaleYaxis; /* OPTIONAL */ + struct ComputedLane__regional { + A_SEQUENCE_OF(struct Reg_ComputedLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ComputedLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ComputedLane_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ComputedLane_H_ */ +#include diff --git a/vcits/spatem/ConnectingLane.h b/vcits/spatem/ConnectingLane.h new file mode 100644 index 0000000..c2b4549 --- /dev/null +++ b/vcits/spatem/ConnectingLane.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ConnectingLane_H_ +#define _ConnectingLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "AllowedManeuvers.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectingLane */ +typedef struct ConnectingLane { + LaneID_t lane; + AllowedManeuvers_t *maneuver; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectingLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectingLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectingLane_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectingLane_H_ */ +#include diff --git a/vcits/spatem/Connection.h b/vcits/spatem/Connection.h new file mode 100644 index 0000000..ff8e5cd --- /dev/null +++ b/vcits/spatem/Connection.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Connection_H_ +#define _Connection_H_ + + +#include + +/* Including external dependencies */ +#include "ConnectingLane.h" +#include "SignalGroupID.h" +#include "RestrictionClassID.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionReferenceID; + +/* Connection */ +typedef struct Connection { + ConnectingLane_t connectingLane; + struct IntersectionReferenceID *remoteIntersection; /* OPTIONAL */ + SignalGroupID_t *signalGroup; /* OPTIONAL */ + RestrictionClassID_t *userClass; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Connection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Connection; +extern asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1; +extern asn_TYPE_member_t asn_MBR_Connection_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Connection_H_ */ +#include diff --git a/vcits/spatem/ConnectionManeuverAssist-addGrpC.h b/vcits/spatem/ConnectionManeuverAssist-addGrpC.h new file mode 100644 index 0000000..e928787 --- /dev/null +++ b/vcits/spatem/ConnectionManeuverAssist-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ConnectionManeuverAssist_addGrpC_H_ +#define _ConnectionManeuverAssist_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ItsStationPositionList; + +/* ConnectionManeuverAssist-addGrpC */ +typedef struct ConnectionManeuverAssist_addGrpC { + struct ItsStationPositionList *itsStationPosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_addGrpC_H_ */ +#include diff --git a/vcits/spatem/ConnectionManeuverAssist.h b/vcits/spatem/ConnectionManeuverAssist.h new file mode 100644 index 0000000..af8aed4 --- /dev/null +++ b/vcits/spatem/ConnectionManeuverAssist.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ConnectionManeuverAssist_H_ +#define _ConnectionManeuverAssist_H_ + + +#include + +/* Including external dependencies */ +#include "LaneConnectionID.h" +#include "ZoneLength.h" +#include "WaitOnStopline.h" +#include "PedestrianBicycleDetect.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_ConnectionManeuverAssist; + +/* ConnectionManeuverAssist */ +typedef struct ConnectionManeuverAssist { + LaneConnectionID_t connectionID; + ZoneLength_t *queueLength; /* OPTIONAL */ + ZoneLength_t *availableStorageLength; /* OPTIONAL */ + WaitOnStopline_t *waitOnStop; /* OPTIONAL */ + PedestrianBicycleDetect_t *pedBicycleDetect; /* OPTIONAL */ + struct ConnectionManeuverAssist__regional { + A_SEQUENCE_OF(struct Reg_ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_H_ */ +#include diff --git a/vcits/spatem/ConnectionTrajectory-addGrpC.h b/vcits/spatem/ConnectionTrajectory-addGrpC.h new file mode 100644 index 0000000..8388779 --- /dev/null +++ b/vcits/spatem/ConnectionTrajectory-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ConnectionTrajectory_addGrpC_H_ +#define _ConnectionTrajectory_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectionTrajectory-addGrpC */ +typedef struct ConnectionTrajectory_addGrpC { + NodeSetXY_t nodes; + LaneConnectionID_t connectionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionTrajectory_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionTrajectory_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionTrajectory_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionTrajectory_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionTrajectory_addGrpC_H_ */ +#include diff --git a/vcits/spatem/ConnectsToList.h b/vcits/spatem/ConnectsToList.h new file mode 100644 index 0000000..dfb72aa --- /dev/null +++ b/vcits/spatem/ConnectsToList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ConnectsToList_H_ +#define _ConnectsToList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Connection; + +/* ConnectsToList */ +typedef struct ConnectsToList { + A_SEQUENCE_OF(struct Connection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectsToList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectsToList; +extern asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectsToList_1[1]; +extern asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectsToList_H_ */ +#include diff --git a/vcits/spatem/CountryCode.h b/vcits/spatem/CountryCode.h new file mode 100644 index 0000000..2aa6f3a --- /dev/null +++ b/vcits/spatem/CountryCode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CountryCode_H_ +#define _CountryCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CountryCode */ +typedef BIT_STRING_t CountryCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CountryCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CountryCode; +asn_struct_free_f CountryCode_free; +asn_struct_print_f CountryCode_print; +asn_constr_check_f CountryCode_constraint; +ber_type_decoder_f CountryCode_decode_ber; +der_type_encoder_f CountryCode_encode_der; +xer_type_decoder_f CountryCode_decode_xer; +xer_type_encoder_f CountryCode_encode_xer; +oer_type_decoder_f CountryCode_decode_oer; +oer_type_encoder_f CountryCode_encode_oer; +per_type_decoder_f CountryCode_decode_uper; +per_type_encoder_f CountryCode_encode_uper; +per_type_decoder_f CountryCode_decode_aper; +per_type_encoder_f CountryCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CountryCode_H_ */ +#include diff --git a/vcits/spatem/Curvature.h b/vcits/spatem/Curvature.h new file mode 100644 index 0000000..7b8e4fe --- /dev/null +++ b/vcits/spatem/Curvature.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Curvature_H_ +#define _Curvature_H_ + + +#include + +/* Including external dependencies */ +#include "CurvatureValue.h" +#include "CurvatureConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Curvature */ +typedef struct Curvature { + CurvatureValue_t curvatureValue; + CurvatureConfidence_t curvatureConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Curvature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Curvature; + +#ifdef __cplusplus +} +#endif + +#endif /* _Curvature_H_ */ +#include diff --git a/vcits/spatem/CurvatureCalculationMode.h b/vcits/spatem/CurvatureCalculationMode.h new file mode 100644 index 0000000..b6ff5ee --- /dev/null +++ b/vcits/spatem/CurvatureCalculationMode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CurvatureCalculationMode_H_ +#define _CurvatureCalculationMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureCalculationMode { + CurvatureCalculationMode_yawRateUsed = 0, + CurvatureCalculationMode_yawRateNotUsed = 1, + CurvatureCalculationMode_unavailable = 2 + /* + * Enumeration is extensible + */ +} e_CurvatureCalculationMode; + +/* CurvatureCalculationMode */ +typedef long CurvatureCalculationMode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode; +asn_struct_free_f CurvatureCalculationMode_free; +asn_struct_print_f CurvatureCalculationMode_print; +asn_constr_check_f CurvatureCalculationMode_constraint; +ber_type_decoder_f CurvatureCalculationMode_decode_ber; +der_type_encoder_f CurvatureCalculationMode_encode_der; +xer_type_decoder_f CurvatureCalculationMode_decode_xer; +xer_type_encoder_f CurvatureCalculationMode_encode_xer; +oer_type_decoder_f CurvatureCalculationMode_decode_oer; +oer_type_encoder_f CurvatureCalculationMode_encode_oer; +per_type_decoder_f CurvatureCalculationMode_decode_uper; +per_type_encoder_f CurvatureCalculationMode_encode_uper; +per_type_decoder_f CurvatureCalculationMode_decode_aper; +per_type_encoder_f CurvatureCalculationMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureCalculationMode_H_ */ +#include diff --git a/vcits/spatem/CurvatureConfidence.h b/vcits/spatem/CurvatureConfidence.h new file mode 100644 index 0000000..bdcc110 --- /dev/null +++ b/vcits/spatem/CurvatureConfidence.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CurvatureConfidence_H_ +#define _CurvatureConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureConfidence { + CurvatureConfidence_onePerMeter_0_00002 = 0, + CurvatureConfidence_onePerMeter_0_0001 = 1, + CurvatureConfidence_onePerMeter_0_0005 = 2, + CurvatureConfidence_onePerMeter_0_002 = 3, + CurvatureConfidence_onePerMeter_0_01 = 4, + CurvatureConfidence_onePerMeter_0_1 = 5, + CurvatureConfidence_outOfRange = 6, + CurvatureConfidence_unavailable = 7 +} e_CurvatureConfidence; + +/* CurvatureConfidence */ +typedef long CurvatureConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1; +asn_struct_free_f CurvatureConfidence_free; +asn_struct_print_f CurvatureConfidence_print; +asn_constr_check_f CurvatureConfidence_constraint; +ber_type_decoder_f CurvatureConfidence_decode_ber; +der_type_encoder_f CurvatureConfidence_encode_der; +xer_type_decoder_f CurvatureConfidence_decode_xer; +xer_type_encoder_f CurvatureConfidence_encode_xer; +oer_type_decoder_f CurvatureConfidence_decode_oer; +oer_type_encoder_f CurvatureConfidence_encode_oer; +per_type_decoder_f CurvatureConfidence_decode_uper; +per_type_encoder_f CurvatureConfidence_encode_uper; +per_type_decoder_f CurvatureConfidence_decode_aper; +per_type_encoder_f CurvatureConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureConfidence_H_ */ +#include diff --git a/vcits/spatem/CurvatureValue.h b/vcits/spatem/CurvatureValue.h new file mode 100644 index 0000000..f892b66 --- /dev/null +++ b/vcits/spatem/CurvatureValue.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _CurvatureValue_H_ +#define _CurvatureValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureValue { + CurvatureValue_straight = 0, + CurvatureValue_unavailable = 1023 +} e_CurvatureValue; + +/* CurvatureValue */ +typedef long CurvatureValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureValue; +asn_struct_free_f CurvatureValue_free; +asn_struct_print_f CurvatureValue_print; +asn_constr_check_f CurvatureValue_constraint; +ber_type_decoder_f CurvatureValue_decode_ber; +der_type_encoder_f CurvatureValue_encode_der; +xer_type_decoder_f CurvatureValue_decode_xer; +xer_type_encoder_f CurvatureValue_encode_xer; +oer_type_decoder_f CurvatureValue_decode_oer; +oer_type_encoder_f CurvatureValue_encode_oer; +per_type_decoder_f CurvatureValue_decode_uper; +per_type_encoder_f CurvatureValue_encode_uper; +per_type_decoder_f CurvatureValue_decode_aper; +per_type_encoder_f CurvatureValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureValue_H_ */ +#include diff --git a/vcits/spatem/DDateTime.h b/vcits/spatem/DDateTime.h new file mode 100644 index 0000000..8b3b0f0 --- /dev/null +++ b/vcits/spatem/DDateTime.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DDateTime_H_ +#define _DDateTime_H_ + + +#include + +/* Including external dependencies */ +#include "DYear.h" +#include "DMonth.h" +#include "DDay.h" +#include "DHour.h" +#include "DMinute.h" +#include "DSecond.h" +#include "DOffset.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDateTime */ +typedef struct DDateTime { + DYear_t *year; /* OPTIONAL */ + DMonth_t *month; /* OPTIONAL */ + DDay_t *day; /* OPTIONAL */ + DHour_t *hour; /* OPTIONAL */ + DMinute_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DOffset_t *offset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DDateTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DDateTime; +extern asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1; +extern asn_TYPE_member_t asn_MBR_DDateTime_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDateTime_H_ */ +#include diff --git a/vcits/spatem/DDay.h b/vcits/spatem/DDay.h new file mode 100644 index 0000000..128b313 --- /dev/null +++ b/vcits/spatem/DDay.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DDay_H_ +#define _DDay_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDay */ +typedef long DDay_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DDay_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DDay; +asn_struct_free_f DDay_free; +asn_struct_print_f DDay_print; +asn_constr_check_f DDay_constraint; +ber_type_decoder_f DDay_decode_ber; +der_type_encoder_f DDay_encode_der; +xer_type_decoder_f DDay_decode_xer; +xer_type_encoder_f DDay_encode_xer; +oer_type_decoder_f DDay_decode_oer; +oer_type_encoder_f DDay_encode_oer; +per_type_decoder_f DDay_decode_uper; +per_type_encoder_f DDay_encode_uper; +per_type_decoder_f DDay_decode_aper; +per_type_encoder_f DDay_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDay_H_ */ +#include diff --git a/vcits/spatem/DHour.h b/vcits/spatem/DHour.h new file mode 100644 index 0000000..2a5350d --- /dev/null +++ b/vcits/spatem/DHour.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DHour_H_ +#define _DHour_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DHour */ +typedef long DHour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DHour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DHour; +asn_struct_free_f DHour_free; +asn_struct_print_f DHour_print; +asn_constr_check_f DHour_constraint; +ber_type_decoder_f DHour_decode_ber; +der_type_encoder_f DHour_encode_der; +xer_type_decoder_f DHour_decode_xer; +xer_type_encoder_f DHour_encode_xer; +oer_type_decoder_f DHour_decode_oer; +oer_type_encoder_f DHour_encode_oer; +per_type_decoder_f DHour_decode_uper; +per_type_encoder_f DHour_encode_uper; +per_type_decoder_f DHour_decode_aper; +per_type_encoder_f DHour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DHour_H_ */ +#include diff --git a/vcits/spatem/DMinute.h b/vcits/spatem/DMinute.h new file mode 100644 index 0000000..48224ba --- /dev/null +++ b/vcits/spatem/DMinute.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DMinute_H_ +#define _DMinute_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMinute */ +typedef long DMinute_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMinute_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMinute; +asn_struct_free_f DMinute_free; +asn_struct_print_f DMinute_print; +asn_constr_check_f DMinute_constraint; +ber_type_decoder_f DMinute_decode_ber; +der_type_encoder_f DMinute_encode_der; +xer_type_decoder_f DMinute_decode_xer; +xer_type_encoder_f DMinute_encode_xer; +oer_type_decoder_f DMinute_decode_oer; +oer_type_encoder_f DMinute_encode_oer; +per_type_decoder_f DMinute_decode_uper; +per_type_encoder_f DMinute_encode_uper; +per_type_decoder_f DMinute_decode_aper; +per_type_encoder_f DMinute_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMinute_H_ */ +#include diff --git a/vcits/spatem/DMonth.h b/vcits/spatem/DMonth.h new file mode 100644 index 0000000..a3226f3 --- /dev/null +++ b/vcits/spatem/DMonth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DMonth_H_ +#define _DMonth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMonth */ +typedef long DMonth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMonth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMonth; +asn_struct_free_f DMonth_free; +asn_struct_print_f DMonth_print; +asn_constr_check_f DMonth_constraint; +ber_type_decoder_f DMonth_decode_ber; +der_type_encoder_f DMonth_encode_der; +xer_type_decoder_f DMonth_decode_xer; +xer_type_encoder_f DMonth_encode_xer; +oer_type_decoder_f DMonth_decode_oer; +oer_type_encoder_f DMonth_encode_oer; +per_type_decoder_f DMonth_decode_uper; +per_type_encoder_f DMonth_encode_uper; +per_type_decoder_f DMonth_decode_aper; +per_type_encoder_f DMonth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMonth_H_ */ +#include diff --git a/vcits/spatem/DOffset.h b/vcits/spatem/DOffset.h new file mode 100644 index 0000000..f2c207e --- /dev/null +++ b/vcits/spatem/DOffset.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DOffset_H_ +#define _DOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DOffset */ +typedef long DOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DOffset; +asn_struct_free_f DOffset_free; +asn_struct_print_f DOffset_print; +asn_constr_check_f DOffset_constraint; +ber_type_decoder_f DOffset_decode_ber; +der_type_encoder_f DOffset_encode_der; +xer_type_decoder_f DOffset_decode_xer; +xer_type_encoder_f DOffset_encode_xer; +oer_type_decoder_f DOffset_decode_oer; +oer_type_encoder_f DOffset_encode_oer; +per_type_decoder_f DOffset_decode_uper; +per_type_encoder_f DOffset_encode_uper; +per_type_decoder_f DOffset_decode_aper; +per_type_encoder_f DOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DOffset_H_ */ +#include diff --git a/vcits/spatem/DSRCmsgID.h b/vcits/spatem/DSRCmsgID.h new file mode 100644 index 0000000..9504042 --- /dev/null +++ b/vcits/spatem/DSRCmsgID.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DSRCmsgID_H_ +#define _DSRCmsgID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSRCmsgID */ +typedef long DSRCmsgID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSRCmsgID; +asn_struct_free_f DSRCmsgID_free; +asn_struct_print_f DSRCmsgID_print; +asn_constr_check_f DSRCmsgID_constraint; +ber_type_decoder_f DSRCmsgID_decode_ber; +der_type_encoder_f DSRCmsgID_encode_der; +xer_type_decoder_f DSRCmsgID_decode_xer; +xer_type_encoder_f DSRCmsgID_encode_xer; +oer_type_decoder_f DSRCmsgID_decode_oer; +oer_type_encoder_f DSRCmsgID_encode_oer; +per_type_decoder_f DSRCmsgID_decode_uper; +per_type_encoder_f DSRCmsgID_encode_uper; +per_type_decoder_f DSRCmsgID_decode_aper; +per_type_encoder_f DSRCmsgID_encode_aper; +#define DSRCmsgID_mapData ((DSRCmsgID_t)18) +#define DSRCmsgID_rtcmCorrections ((DSRCmsgID_t)28) +#define DSRCmsgID_signalPhaseAndTimingMessage ((DSRCmsgID_t)19) +#define DSRCmsgID_signalRequestMessage ((DSRCmsgID_t)29) +#define DSRCmsgID_signalStatusMessage ((DSRCmsgID_t)30) + +#ifdef __cplusplus +} +#endif + +#endif /* _DSRCmsgID_H_ */ +#include diff --git a/vcits/spatem/DSecond.h b/vcits/spatem/DSecond.h new file mode 100644 index 0000000..450fd7d --- /dev/null +++ b/vcits/spatem/DSecond.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DSecond_H_ +#define _DSecond_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSecond */ +typedef long DSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSecond; +asn_struct_free_f DSecond_free; +asn_struct_print_f DSecond_print; +asn_constr_check_f DSecond_constraint; +ber_type_decoder_f DSecond_decode_ber; +der_type_encoder_f DSecond_encode_der; +xer_type_decoder_f DSecond_decode_xer; +xer_type_encoder_f DSecond_encode_xer; +oer_type_decoder_f DSecond_decode_oer; +oer_type_encoder_f DSecond_encode_oer; +per_type_decoder_f DSecond_decode_uper; +per_type_encoder_f DSecond_encode_uper; +per_type_decoder_f DSecond_decode_aper; +per_type_encoder_f DSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DSecond_H_ */ +#include diff --git a/vcits/spatem/DYear.h b/vcits/spatem/DYear.h new file mode 100644 index 0000000..fc2f8bd --- /dev/null +++ b/vcits/spatem/DYear.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DYear_H_ +#define _DYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DYear */ +typedef long DYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DYear; +asn_struct_free_f DYear_free; +asn_struct_print_f DYear_print; +asn_constr_check_f DYear_constraint; +ber_type_decoder_f DYear_decode_ber; +der_type_encoder_f DYear_encode_der; +xer_type_decoder_f DYear_decode_xer; +xer_type_encoder_f DYear_encode_xer; +oer_type_decoder_f DYear_decode_oer; +oer_type_encoder_f DYear_encode_oer; +per_type_decoder_f DYear_decode_uper; +per_type_encoder_f DYear_encode_uper; +per_type_decoder_f DYear_decode_aper; +per_type_encoder_f DYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DYear_H_ */ +#include diff --git a/vcits/spatem/DangerousEndOfQueueSubCauseCode.h b/vcits/spatem/DangerousEndOfQueueSubCauseCode.h new file mode 100644 index 0000000..832c8d5 --- /dev/null +++ b/vcits/spatem/DangerousEndOfQueueSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DangerousEndOfQueueSubCauseCode_H_ +#define _DangerousEndOfQueueSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousEndOfQueueSubCauseCode { + DangerousEndOfQueueSubCauseCode_unavailable = 0, + DangerousEndOfQueueSubCauseCode_suddenEndOfQueue = 1, + DangerousEndOfQueueSubCauseCode_queueOverHill = 2, + DangerousEndOfQueueSubCauseCode_queueAroundBend = 3, + DangerousEndOfQueueSubCauseCode_queueInTunnel = 4 +} e_DangerousEndOfQueueSubCauseCode; + +/* DangerousEndOfQueueSubCauseCode */ +typedef long DangerousEndOfQueueSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode; +asn_struct_free_f DangerousEndOfQueueSubCauseCode_free; +asn_struct_print_f DangerousEndOfQueueSubCauseCode_print; +asn_constr_check_f DangerousEndOfQueueSubCauseCode_constraint; +ber_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_ber; +der_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_der; +xer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_xer; +xer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_xer; +oer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_oer; +oer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_oer; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_uper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_uper; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_aper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousEndOfQueueSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/DangerousGoodsBasic.h b/vcits/spatem/DangerousGoodsBasic.h new file mode 100644 index 0000000..7345922 --- /dev/null +++ b/vcits/spatem/DangerousGoodsBasic.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DangerousGoodsBasic_H_ +#define _DangerousGoodsBasic_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousGoodsBasic { + DangerousGoodsBasic_explosives1 = 0, + DangerousGoodsBasic_explosives2 = 1, + DangerousGoodsBasic_explosives3 = 2, + DangerousGoodsBasic_explosives4 = 3, + DangerousGoodsBasic_explosives5 = 4, + DangerousGoodsBasic_explosives6 = 5, + DangerousGoodsBasic_flammableGases = 6, + DangerousGoodsBasic_nonFlammableGases = 7, + DangerousGoodsBasic_toxicGases = 8, + DangerousGoodsBasic_flammableLiquids = 9, + DangerousGoodsBasic_flammableSolids = 10, + DangerousGoodsBasic_substancesLiableToSpontaneousCombustion = 11, + DangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater = 12, + DangerousGoodsBasic_oxidizingSubstances = 13, + DangerousGoodsBasic_organicPeroxides = 14, + DangerousGoodsBasic_toxicSubstances = 15, + DangerousGoodsBasic_infectiousSubstances = 16, + DangerousGoodsBasic_radioactiveMaterial = 17, + DangerousGoodsBasic_corrosiveSubstances = 18, + DangerousGoodsBasic_miscellaneousDangerousSubstances = 19 +} e_DangerousGoodsBasic; + +/* DangerousGoodsBasic */ +typedef long DangerousGoodsBasic_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic; +extern const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1; +asn_struct_free_f DangerousGoodsBasic_free; +asn_struct_print_f DangerousGoodsBasic_print; +asn_constr_check_f DangerousGoodsBasic_constraint; +ber_type_decoder_f DangerousGoodsBasic_decode_ber; +der_type_encoder_f DangerousGoodsBasic_encode_der; +xer_type_decoder_f DangerousGoodsBasic_decode_xer; +xer_type_encoder_f DangerousGoodsBasic_encode_xer; +oer_type_decoder_f DangerousGoodsBasic_decode_oer; +oer_type_encoder_f DangerousGoodsBasic_encode_oer; +per_type_decoder_f DangerousGoodsBasic_decode_uper; +per_type_encoder_f DangerousGoodsBasic_encode_uper; +per_type_decoder_f DangerousGoodsBasic_decode_aper; +per_type_encoder_f DangerousGoodsBasic_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsBasic_H_ */ +#include diff --git a/vcits/spatem/DangerousGoodsExtended.h b/vcits/spatem/DangerousGoodsExtended.h new file mode 100644 index 0000000..e965b09 --- /dev/null +++ b/vcits/spatem/DangerousGoodsExtended.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DangerousGoodsExtended_H_ +#define _DangerousGoodsExtended_H_ + + +#include + +/* Including external dependencies */ +#include "DangerousGoodsBasic.h" +#include +#include +#include +#include "PhoneNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DangerousGoodsExtended */ +typedef struct DangerousGoodsExtended { + DangerousGoodsBasic_t dangerousGoodsType; + long unNumber; + BOOLEAN_t elevatedTemperature; + BOOLEAN_t tunnelsRestricted; + BOOLEAN_t limitedQuantity; + IA5String_t *emergencyActionCode; /* OPTIONAL */ + PhoneNumber_t *phoneNumber; /* OPTIONAL */ + UTF8String_t *companyName; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DangerousGoodsExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsExtended_H_ */ +#include diff --git a/vcits/spatem/DangerousSituationSubCauseCode.h b/vcits/spatem/DangerousSituationSubCauseCode.h new file mode 100644 index 0000000..ec0a676 --- /dev/null +++ b/vcits/spatem/DangerousSituationSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DangerousSituationSubCauseCode_H_ +#define _DangerousSituationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousSituationSubCauseCode { + DangerousSituationSubCauseCode_unavailable = 0, + DangerousSituationSubCauseCode_emergencyElectronicBrakeEngaged = 1, + DangerousSituationSubCauseCode_preCrashSystemEngaged = 2, + DangerousSituationSubCauseCode_espEngaged = 3, + DangerousSituationSubCauseCode_absEngaged = 4, + DangerousSituationSubCauseCode_aebEngaged = 5, + DangerousSituationSubCauseCode_brakeWarningEngaged = 6, + DangerousSituationSubCauseCode_collisionRiskWarningEngaged = 7 +} e_DangerousSituationSubCauseCode; + +/* DangerousSituationSubCauseCode */ +typedef long DangerousSituationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode; +asn_struct_free_f DangerousSituationSubCauseCode_free; +asn_struct_print_f DangerousSituationSubCauseCode_print; +asn_constr_check_f DangerousSituationSubCauseCode_constraint; +ber_type_decoder_f DangerousSituationSubCauseCode_decode_ber; +der_type_encoder_f DangerousSituationSubCauseCode_encode_der; +xer_type_decoder_f DangerousSituationSubCauseCode_decode_xer; +xer_type_encoder_f DangerousSituationSubCauseCode_encode_xer; +oer_type_decoder_f DangerousSituationSubCauseCode_decode_oer; +oer_type_encoder_f DangerousSituationSubCauseCode_encode_oer; +per_type_decoder_f DangerousSituationSubCauseCode_decode_uper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_uper; +per_type_decoder_f DangerousSituationSubCauseCode_decode_aper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousSituationSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/DataParameters.h b/vcits/spatem/DataParameters.h new file mode 100644 index 0000000..59f1cdd --- /dev/null +++ b/vcits/spatem/DataParameters.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DataParameters_H_ +#define _DataParameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DataParameters */ +typedef struct DataParameters { + IA5String_t *processMethod; /* OPTIONAL */ + IA5String_t *processAgency; /* OPTIONAL */ + IA5String_t *lastCheckedDate; /* OPTIONAL */ + IA5String_t *geoidUsed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DataParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DataParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_DataParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DataParameters_H_ */ +#include diff --git a/vcits/spatem/DeltaAltitude.h b/vcits/spatem/DeltaAltitude.h new file mode 100644 index 0000000..22f4844 --- /dev/null +++ b/vcits/spatem/DeltaAltitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DeltaAltitude_H_ +#define _DeltaAltitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaAltitude { + DeltaAltitude_oneCentimeterUp = 1, + DeltaAltitude_oneCentimeterDown = -1, + DeltaAltitude_unavailable = 12800 +} e_DeltaAltitude; + +/* DeltaAltitude */ +typedef long DeltaAltitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAltitude; +asn_struct_free_f DeltaAltitude_free; +asn_struct_print_f DeltaAltitude_print; +asn_constr_check_f DeltaAltitude_constraint; +ber_type_decoder_f DeltaAltitude_decode_ber; +der_type_encoder_f DeltaAltitude_encode_der; +xer_type_decoder_f DeltaAltitude_decode_xer; +xer_type_encoder_f DeltaAltitude_encode_xer; +oer_type_decoder_f DeltaAltitude_decode_oer; +oer_type_encoder_f DeltaAltitude_encode_oer; +per_type_decoder_f DeltaAltitude_decode_uper; +per_type_encoder_f DeltaAltitude_encode_uper; +per_type_decoder_f DeltaAltitude_decode_aper; +per_type_encoder_f DeltaAltitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAltitude_H_ */ +#include diff --git a/vcits/spatem/DeltaAngle.h b/vcits/spatem/DeltaAngle.h new file mode 100644 index 0000000..81fdfed --- /dev/null +++ b/vcits/spatem/DeltaAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DeltaAngle_H_ +#define _DeltaAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaAngle */ +typedef long DeltaAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAngle; +asn_struct_free_f DeltaAngle_free; +asn_struct_print_f DeltaAngle_print; +asn_constr_check_f DeltaAngle_constraint; +ber_type_decoder_f DeltaAngle_decode_ber; +der_type_encoder_f DeltaAngle_encode_der; +xer_type_decoder_f DeltaAngle_decode_xer; +xer_type_encoder_f DeltaAngle_encode_xer; +oer_type_decoder_f DeltaAngle_decode_oer; +oer_type_encoder_f DeltaAngle_encode_oer; +per_type_decoder_f DeltaAngle_decode_uper; +per_type_encoder_f DeltaAngle_encode_uper; +per_type_decoder_f DeltaAngle_decode_aper; +per_type_encoder_f DeltaAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAngle_H_ */ +#include diff --git a/vcits/spatem/DeltaLatitude.h b/vcits/spatem/DeltaLatitude.h new file mode 100644 index 0000000..4124842 --- /dev/null +++ b/vcits/spatem/DeltaLatitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DeltaLatitude_H_ +#define _DeltaLatitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLatitude { + DeltaLatitude_oneMicrodegreeNorth = 10, + DeltaLatitude_oneMicrodegreeSouth = -10, + DeltaLatitude_unavailable = 131072 +} e_DeltaLatitude; + +/* DeltaLatitude */ +typedef long DeltaLatitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLatitude; +asn_struct_free_f DeltaLatitude_free; +asn_struct_print_f DeltaLatitude_print; +asn_constr_check_f DeltaLatitude_constraint; +ber_type_decoder_f DeltaLatitude_decode_ber; +der_type_encoder_f DeltaLatitude_encode_der; +xer_type_decoder_f DeltaLatitude_decode_xer; +xer_type_encoder_f DeltaLatitude_encode_xer; +oer_type_decoder_f DeltaLatitude_decode_oer; +oer_type_encoder_f DeltaLatitude_encode_oer; +per_type_decoder_f DeltaLatitude_decode_uper; +per_type_encoder_f DeltaLatitude_encode_uper; +per_type_decoder_f DeltaLatitude_decode_aper; +per_type_encoder_f DeltaLatitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLatitude_H_ */ +#include diff --git a/vcits/spatem/DeltaLongitude.h b/vcits/spatem/DeltaLongitude.h new file mode 100644 index 0000000..6a51c4f --- /dev/null +++ b/vcits/spatem/DeltaLongitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DeltaLongitude_H_ +#define _DeltaLongitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLongitude { + DeltaLongitude_oneMicrodegreeEast = 10, + DeltaLongitude_oneMicrodegreeWest = -10, + DeltaLongitude_unavailable = 131072 +} e_DeltaLongitude; + +/* DeltaLongitude */ +typedef long DeltaLongitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLongitude; +asn_struct_free_f DeltaLongitude_free; +asn_struct_print_f DeltaLongitude_print; +asn_constr_check_f DeltaLongitude_constraint; +ber_type_decoder_f DeltaLongitude_decode_ber; +der_type_encoder_f DeltaLongitude_encode_der; +xer_type_decoder_f DeltaLongitude_decode_xer; +xer_type_encoder_f DeltaLongitude_encode_xer; +oer_type_decoder_f DeltaLongitude_decode_oer; +oer_type_encoder_f DeltaLongitude_encode_oer; +per_type_decoder_f DeltaLongitude_decode_uper; +per_type_encoder_f DeltaLongitude_encode_uper; +per_type_decoder_f DeltaLongitude_decode_aper; +per_type_encoder_f DeltaLongitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLongitude_H_ */ +#include diff --git a/vcits/spatem/DeltaReferencePosition.h b/vcits/spatem/DeltaReferencePosition.h new file mode 100644 index 0000000..0defd05 --- /dev/null +++ b/vcits/spatem/DeltaReferencePosition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DeltaReferencePosition_H_ +#define _DeltaReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaLatitude.h" +#include "DeltaLongitude.h" +#include "DeltaAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaReferencePosition */ +typedef struct DeltaReferencePosition { + DeltaLatitude_t deltaLatitude; + DeltaLongitude_t deltaLongitude; + DeltaAltitude_t deltaAltitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DeltaReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaReferencePosition_H_ */ +#include diff --git a/vcits/spatem/DeltaTime.h b/vcits/spatem/DeltaTime.h new file mode 100644 index 0000000..fd3b2c9 --- /dev/null +++ b/vcits/spatem/DeltaTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DeltaTime_H_ +#define _DeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaTime */ +typedef long DeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaTime; +asn_struct_free_f DeltaTime_free; +asn_struct_print_f DeltaTime_print; +asn_constr_check_f DeltaTime_constraint; +ber_type_decoder_f DeltaTime_decode_ber; +der_type_encoder_f DeltaTime_encode_der; +xer_type_decoder_f DeltaTime_decode_xer; +xer_type_encoder_f DeltaTime_encode_xer; +oer_type_decoder_f DeltaTime_decode_oer; +oer_type_encoder_f DeltaTime_encode_oer; +per_type_decoder_f DeltaTime_decode_uper; +per_type_encoder_f DeltaTime_encode_uper; +per_type_decoder_f DeltaTime_decode_aper; +per_type_encoder_f DeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaTime_H_ */ +#include diff --git a/vcits/spatem/DescriptiveName.h b/vcits/spatem/DescriptiveName.h new file mode 100644 index 0000000..89ebcd8 --- /dev/null +++ b/vcits/spatem/DescriptiveName.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DescriptiveName_H_ +#define _DescriptiveName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DescriptiveName */ +typedef IA5String_t DescriptiveName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DescriptiveName; +asn_struct_free_f DescriptiveName_free; +asn_struct_print_f DescriptiveName_print; +asn_constr_check_f DescriptiveName_constraint; +ber_type_decoder_f DescriptiveName_decode_ber; +der_type_encoder_f DescriptiveName_encode_der; +xer_type_decoder_f DescriptiveName_decode_xer; +xer_type_encoder_f DescriptiveName_encode_xer; +oer_type_decoder_f DescriptiveName_decode_oer; +oer_type_encoder_f DescriptiveName_encode_oer; +per_type_decoder_f DescriptiveName_decode_uper; +per_type_encoder_f DescriptiveName_encode_uper; +per_type_decoder_f DescriptiveName_decode_aper; +per_type_encoder_f DescriptiveName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DescriptiveName_H_ */ +#include diff --git a/vcits/spatem/DigitalMap.h b/vcits/spatem/DigitalMap.h new file mode 100644 index 0000000..f51d178 --- /dev/null +++ b/vcits/spatem/DigitalMap.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DigitalMap_H_ +#define _DigitalMap_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* DigitalMap */ +typedef struct DigitalMap { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DigitalMap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DigitalMap; + +#ifdef __cplusplus +} +#endif + +#endif /* _DigitalMap_H_ */ +#include diff --git a/vcits/spatem/DriveDirection.h b/vcits/spatem/DriveDirection.h new file mode 100644 index 0000000..7bb21c3 --- /dev/null +++ b/vcits/spatem/DriveDirection.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DriveDirection_H_ +#define _DriveDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DriveDirection { + DriveDirection_forward = 0, + DriveDirection_backward = 1, + DriveDirection_unavailable = 2 +} e_DriveDirection; + +/* DriveDirection */ +typedef long DriveDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DriveDirection; +asn_struct_free_f DriveDirection_free; +asn_struct_print_f DriveDirection_print; +asn_constr_check_f DriveDirection_constraint; +ber_type_decoder_f DriveDirection_decode_ber; +der_type_encoder_f DriveDirection_encode_der; +xer_type_decoder_f DriveDirection_decode_xer; +xer_type_encoder_f DriveDirection_encode_xer; +oer_type_decoder_f DriveDirection_decode_oer; +oer_type_encoder_f DriveDirection_encode_oer; +per_type_decoder_f DriveDirection_decode_uper; +per_type_encoder_f DriveDirection_encode_uper; +per_type_decoder_f DriveDirection_decode_aper; +per_type_encoder_f DriveDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DriveDirection_H_ */ +#include diff --git a/vcits/spatem/DrivenLineOffsetLg.h b/vcits/spatem/DrivenLineOffsetLg.h new file mode 100644 index 0000000..0010da8 --- /dev/null +++ b/vcits/spatem/DrivenLineOffsetLg.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DrivenLineOffsetLg_H_ +#define _DrivenLineOffsetLg_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetLg */ +typedef long DrivenLineOffsetLg_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg; +asn_struct_free_f DrivenLineOffsetLg_free; +asn_struct_print_f DrivenLineOffsetLg_print; +asn_constr_check_f DrivenLineOffsetLg_constraint; +ber_type_decoder_f DrivenLineOffsetLg_decode_ber; +der_type_encoder_f DrivenLineOffsetLg_encode_der; +xer_type_decoder_f DrivenLineOffsetLg_decode_xer; +xer_type_encoder_f DrivenLineOffsetLg_encode_xer; +oer_type_decoder_f DrivenLineOffsetLg_decode_oer; +oer_type_encoder_f DrivenLineOffsetLg_encode_oer; +per_type_decoder_f DrivenLineOffsetLg_decode_uper; +per_type_encoder_f DrivenLineOffsetLg_encode_uper; +per_type_decoder_f DrivenLineOffsetLg_decode_aper; +per_type_encoder_f DrivenLineOffsetLg_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetLg_H_ */ +#include diff --git a/vcits/spatem/DrivenLineOffsetSm.h b/vcits/spatem/DrivenLineOffsetSm.h new file mode 100644 index 0000000..0f56f15 --- /dev/null +++ b/vcits/spatem/DrivenLineOffsetSm.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DrivenLineOffsetSm_H_ +#define _DrivenLineOffsetSm_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetSm */ +typedef long DrivenLineOffsetSm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm; +asn_struct_free_f DrivenLineOffsetSm_free; +asn_struct_print_f DrivenLineOffsetSm_print; +asn_constr_check_f DrivenLineOffsetSm_constraint; +ber_type_decoder_f DrivenLineOffsetSm_decode_ber; +der_type_encoder_f DrivenLineOffsetSm_encode_der; +xer_type_decoder_f DrivenLineOffsetSm_decode_xer; +xer_type_encoder_f DrivenLineOffsetSm_encode_xer; +oer_type_decoder_f DrivenLineOffsetSm_decode_oer; +oer_type_encoder_f DrivenLineOffsetSm_encode_oer; +per_type_decoder_f DrivenLineOffsetSm_decode_uper; +per_type_encoder_f DrivenLineOffsetSm_encode_uper; +per_type_decoder_f DrivenLineOffsetSm_decode_aper; +per_type_encoder_f DrivenLineOffsetSm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetSm_H_ */ +#include diff --git a/vcits/spatem/DrivingLaneStatus.h b/vcits/spatem/DrivingLaneStatus.h new file mode 100644 index 0000000..eb469bf --- /dev/null +++ b/vcits/spatem/DrivingLaneStatus.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _DrivingLaneStatus_H_ +#define _DrivingLaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivingLaneStatus */ +typedef BIT_STRING_t DrivingLaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus; +asn_struct_free_f DrivingLaneStatus_free; +asn_struct_print_f DrivingLaneStatus_print; +asn_constr_check_f DrivingLaneStatus_constraint; +ber_type_decoder_f DrivingLaneStatus_decode_ber; +der_type_encoder_f DrivingLaneStatus_encode_der; +xer_type_decoder_f DrivingLaneStatus_decode_xer; +xer_type_encoder_f DrivingLaneStatus_encode_xer; +oer_type_decoder_f DrivingLaneStatus_decode_oer; +oer_type_encoder_f DrivingLaneStatus_encode_oer; +per_type_decoder_f DrivingLaneStatus_decode_uper; +per_type_encoder_f DrivingLaneStatus_encode_uper; +per_type_decoder_f DrivingLaneStatus_decode_aper; +per_type_encoder_f DrivingLaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivingLaneStatus_H_ */ +#include diff --git a/vcits/spatem/Elevation.h b/vcits/spatem/Elevation.h new file mode 100644 index 0000000..9b80400 --- /dev/null +++ b/vcits/spatem/Elevation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Elevation_H_ +#define _Elevation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Elevation */ +typedef long Elevation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Elevation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Elevation; +asn_struct_free_f Elevation_free; +asn_struct_print_f Elevation_print; +asn_constr_check_f Elevation_constraint; +ber_type_decoder_f Elevation_decode_ber; +der_type_encoder_f Elevation_encode_der; +xer_type_decoder_f Elevation_decode_xer; +xer_type_encoder_f Elevation_encode_xer; +oer_type_decoder_f Elevation_decode_oer; +oer_type_encoder_f Elevation_encode_oer; +per_type_decoder_f Elevation_decode_uper; +per_type_encoder_f Elevation_encode_uper; +per_type_decoder_f Elevation_decode_aper; +per_type_encoder_f Elevation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Elevation_H_ */ +#include diff --git a/vcits/spatem/ElevationConfidence.h b/vcits/spatem/ElevationConfidence.h new file mode 100644 index 0000000..905537e --- /dev/null +++ b/vcits/spatem/ElevationConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ElevationConfidence_H_ +#define _ElevationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ElevationConfidence { + ElevationConfidence_unavailable = 0, + ElevationConfidence_elev_500_00 = 1, + ElevationConfidence_elev_200_00 = 2, + ElevationConfidence_elev_100_00 = 3, + ElevationConfidence_elev_050_00 = 4, + ElevationConfidence_elev_020_00 = 5, + ElevationConfidence_elev_010_00 = 6, + ElevationConfidence_elev_005_00 = 7, + ElevationConfidence_elev_002_00 = 8, + ElevationConfidence_elev_001_00 = 9, + ElevationConfidence_elev_000_50 = 10, + ElevationConfidence_elev_000_20 = 11, + ElevationConfidence_elev_000_10 = 12, + ElevationConfidence_elev_000_05 = 13, + ElevationConfidence_elev_000_02 = 14, + ElevationConfidence_elev_000_01 = 15 +} e_ElevationConfidence; + +/* ElevationConfidence */ +typedef long ElevationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ElevationConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1; +asn_struct_free_f ElevationConfidence_free; +asn_struct_print_f ElevationConfidence_print; +asn_constr_check_f ElevationConfidence_constraint; +ber_type_decoder_f ElevationConfidence_decode_ber; +der_type_encoder_f ElevationConfidence_encode_der; +xer_type_decoder_f ElevationConfidence_decode_xer; +xer_type_encoder_f ElevationConfidence_encode_xer; +oer_type_decoder_f ElevationConfidence_decode_oer; +oer_type_encoder_f ElevationConfidence_encode_oer; +per_type_decoder_f ElevationConfidence_decode_uper; +per_type_encoder_f ElevationConfidence_encode_uper; +per_type_decoder_f ElevationConfidence_decode_aper; +per_type_encoder_f ElevationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ElevationConfidence_H_ */ +#include diff --git a/vcits/spatem/EmbarkationStatus.h b/vcits/spatem/EmbarkationStatus.h new file mode 100644 index 0000000..0453787 --- /dev/null +++ b/vcits/spatem/EmbarkationStatus.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _EmbarkationStatus_H_ +#define _EmbarkationStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EmbarkationStatus */ +typedef BOOLEAN_t EmbarkationStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus; +asn_struct_free_f EmbarkationStatus_free; +asn_struct_print_f EmbarkationStatus_print; +asn_constr_check_f EmbarkationStatus_constraint; +ber_type_decoder_f EmbarkationStatus_decode_ber; +der_type_encoder_f EmbarkationStatus_encode_der; +xer_type_decoder_f EmbarkationStatus_decode_xer; +xer_type_encoder_f EmbarkationStatus_encode_xer; +oer_type_decoder_f EmbarkationStatus_decode_oer; +oer_type_encoder_f EmbarkationStatus_encode_oer; +per_type_decoder_f EmbarkationStatus_decode_uper; +per_type_encoder_f EmbarkationStatus_encode_uper; +per_type_decoder_f EmbarkationStatus_decode_aper; +per_type_encoder_f EmbarkationStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmbarkationStatus_H_ */ +#include diff --git a/vcits/spatem/EmergencyPriority.h b/vcits/spatem/EmergencyPriority.h new file mode 100644 index 0000000..6b9070d --- /dev/null +++ b/vcits/spatem/EmergencyPriority.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _EmergencyPriority_H_ +#define _EmergencyPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyPriority { + EmergencyPriority_requestForRightOfWay = 0, + EmergencyPriority_requestForFreeCrossingAtATrafficLight = 1 +} e_EmergencyPriority; + +/* EmergencyPriority */ +typedef BIT_STRING_t EmergencyPriority_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyPriority; +asn_struct_free_f EmergencyPriority_free; +asn_struct_print_f EmergencyPriority_print; +asn_constr_check_f EmergencyPriority_constraint; +ber_type_decoder_f EmergencyPriority_decode_ber; +der_type_encoder_f EmergencyPriority_encode_der; +xer_type_decoder_f EmergencyPriority_decode_xer; +xer_type_encoder_f EmergencyPriority_encode_xer; +oer_type_decoder_f EmergencyPriority_decode_oer; +oer_type_encoder_f EmergencyPriority_encode_oer; +per_type_decoder_f EmergencyPriority_decode_uper; +per_type_encoder_f EmergencyPriority_encode_uper; +per_type_decoder_f EmergencyPriority_decode_aper; +per_type_encoder_f EmergencyPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyPriority_H_ */ +#include diff --git a/vcits/spatem/EmergencyVehicleApproachingSubCauseCode.h b/vcits/spatem/EmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 0000000..ba3c01c --- /dev/null +++ b/vcits/spatem/EmergencyVehicleApproachingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _EmergencyVehicleApproachingSubCauseCode_H_ +#define _EmergencyVehicleApproachingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyVehicleApproachingSubCauseCode { + EmergencyVehicleApproachingSubCauseCode_unavailable = 0, + EmergencyVehicleApproachingSubCauseCode_emergencyVehicleApproaching = 1, + EmergencyVehicleApproachingSubCauseCode_prioritizedVehicleApproaching = 2 +} e_EmergencyVehicleApproachingSubCauseCode; + +/* EmergencyVehicleApproachingSubCauseCode */ +typedef long EmergencyVehicleApproachingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode; +asn_struct_free_f EmergencyVehicleApproachingSubCauseCode_free; +asn_struct_print_f EmergencyVehicleApproachingSubCauseCode_print; +asn_constr_check_f EmergencyVehicleApproachingSubCauseCode_constraint; +ber_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_ber; +der_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_der; +xer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_xer; +xer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_xer; +oer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_oer; +oer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_oer; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_uper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_uper; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_aper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyVehicleApproachingSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/EmissionType.h b/vcits/spatem/EmissionType.h new file mode 100644 index 0000000..9210639 --- /dev/null +++ b/vcits/spatem/EmissionType.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _EmissionType_H_ +#define _EmissionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmissionType { + EmissionType_euro1 = 0, + EmissionType_euro2 = 1, + EmissionType_euro3 = 2, + EmissionType_euro4 = 3, + EmissionType_euro5 = 4, + EmissionType_euro6 = 5 + /* + * Enumeration is extensible + */ +} e_EmissionType; + +/* EmissionType */ +typedef long EmissionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EmissionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EmissionType; +extern const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1; +asn_struct_free_f EmissionType_free; +asn_struct_print_f EmissionType_print; +asn_constr_check_f EmissionType_constraint; +ber_type_decoder_f EmissionType_decode_ber; +der_type_encoder_f EmissionType_encode_der; +xer_type_decoder_f EmissionType_decode_xer; +xer_type_encoder_f EmissionType_encode_xer; +oer_type_decoder_f EmissionType_decode_oer; +oer_type_encoder_f EmissionType_encode_oer; +per_type_decoder_f EmissionType_decode_uper; +per_type_encoder_f EmissionType_encode_uper; +per_type_decoder_f EmissionType_decode_aper; +per_type_encoder_f EmissionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmissionType_H_ */ +#include diff --git a/vcits/spatem/EnabledLaneList.h b/vcits/spatem/EnabledLaneList.h new file mode 100644 index 0000000..131ea3b --- /dev/null +++ b/vcits/spatem/EnabledLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _EnabledLaneList_H_ +#define _EnabledLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EnabledLaneList */ +typedef struct EnabledLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EnabledLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnabledLaneList; +extern asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_EnabledLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnabledLaneList_H_ */ +#include diff --git a/vcits/spatem/EnergyStorageType.h b/vcits/spatem/EnergyStorageType.h new file mode 100644 index 0000000..2c79ca9 --- /dev/null +++ b/vcits/spatem/EnergyStorageType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _EnergyStorageType_H_ +#define _EnergyStorageType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EnergyStorageType { + EnergyStorageType_hydrogenStorage = 0, + EnergyStorageType_electricEnergyStorage = 1, + EnergyStorageType_liquidPropaneGas = 2, + EnergyStorageType_compressedNaturalGas = 3, + EnergyStorageType_diesel = 4, + EnergyStorageType_gasoline = 5, + EnergyStorageType_ammonia = 6 +} e_EnergyStorageType; + +/* EnergyStorageType */ +typedef BIT_STRING_t EnergyStorageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnergyStorageType; +asn_struct_free_f EnergyStorageType_free; +asn_struct_print_f EnergyStorageType_print; +asn_constr_check_f EnergyStorageType_constraint; +ber_type_decoder_f EnergyStorageType_decode_ber; +der_type_encoder_f EnergyStorageType_encode_der; +xer_type_decoder_f EnergyStorageType_decode_xer; +xer_type_encoder_f EnergyStorageType_encode_xer; +oer_type_decoder_f EnergyStorageType_decode_oer; +oer_type_encoder_f EnergyStorageType_encode_oer; +per_type_decoder_f EnergyStorageType_decode_uper; +per_type_encoder_f EnergyStorageType_encode_uper; +per_type_decoder_f EnergyStorageType_decode_aper; +per_type_encoder_f EnergyStorageType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnergyStorageType_H_ */ +#include diff --git a/vcits/spatem/EuVehicleCategoryCode.h b/vcits/spatem/EuVehicleCategoryCode.h new file mode 100644 index 0000000..76745ad --- /dev/null +++ b/vcits/spatem/EuVehicleCategoryCode.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _EuVehicleCategoryCode_H_ +#define _EuVehicleCategoryCode_H_ + + +#include + +/* Including external dependencies */ +#include "EuVehicleCategoryL.h" +#include "EuVehicleCategoryM.h" +#include "EuVehicleCategoryN.h" +#include "EuVehicleCategoryO.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryCode_PR { + EuVehicleCategoryCode_PR_NOTHING, /* No components present */ + EuVehicleCategoryCode_PR_euVehicleCategoryL, + EuVehicleCategoryCode_PR_euVehicleCategoryM, + EuVehicleCategoryCode_PR_euVehicleCategoryN, + EuVehicleCategoryCode_PR_euVehicleCategoryO, + EuVehicleCategoryCode_PR_euVehilcleCategoryT, + EuVehicleCategoryCode_PR_euVehilcleCategoryG +} EuVehicleCategoryCode_PR; + +/* EuVehicleCategoryCode */ +typedef struct EuVehicleCategoryCode { + EuVehicleCategoryCode_PR present; + union EuVehicleCategoryCode_u { + EuVehicleCategoryL_t euVehicleCategoryL; + EuVehicleCategoryM_t euVehicleCategoryM; + EuVehicleCategoryN_t euVehicleCategoryN; + EuVehicleCategoryO_t euVehicleCategoryO; + NULL_t euVehilcleCategoryT; + NULL_t euVehilcleCategoryG; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EuVehicleCategoryCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryCode_H_ */ +#include diff --git a/vcits/spatem/EuVehicleCategoryL.h b/vcits/spatem/EuVehicleCategoryL.h new file mode 100644 index 0000000..7be7bb3 --- /dev/null +++ b/vcits/spatem/EuVehicleCategoryL.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _EuVehicleCategoryL_H_ +#define _EuVehicleCategoryL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryL { + EuVehicleCategoryL_l1 = 0, + EuVehicleCategoryL_l2 = 1, + EuVehicleCategoryL_l3 = 2, + EuVehicleCategoryL_l4 = 3, + EuVehicleCategoryL_l5 = 4, + EuVehicleCategoryL_l6 = 5, + EuVehicleCategoryL_l7 = 6 +} e_EuVehicleCategoryL; + +/* EuVehicleCategoryL */ +typedef long EuVehicleCategoryL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryL; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryL_specs_1; +asn_struct_free_f EuVehicleCategoryL_free; +asn_struct_print_f EuVehicleCategoryL_print; +asn_constr_check_f EuVehicleCategoryL_constraint; +ber_type_decoder_f EuVehicleCategoryL_decode_ber; +der_type_encoder_f EuVehicleCategoryL_encode_der; +xer_type_decoder_f EuVehicleCategoryL_decode_xer; +xer_type_encoder_f EuVehicleCategoryL_encode_xer; +oer_type_decoder_f EuVehicleCategoryL_decode_oer; +oer_type_encoder_f EuVehicleCategoryL_encode_oer; +per_type_decoder_f EuVehicleCategoryL_decode_uper; +per_type_encoder_f EuVehicleCategoryL_encode_uper; +per_type_decoder_f EuVehicleCategoryL_decode_aper; +per_type_encoder_f EuVehicleCategoryL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryL_H_ */ +#include diff --git a/vcits/spatem/EuVehicleCategoryM.h b/vcits/spatem/EuVehicleCategoryM.h new file mode 100644 index 0000000..53ee0ff --- /dev/null +++ b/vcits/spatem/EuVehicleCategoryM.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _EuVehicleCategoryM_H_ +#define _EuVehicleCategoryM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryM { + EuVehicleCategoryM_m1 = 0, + EuVehicleCategoryM_m2 = 1, + EuVehicleCategoryM_m3 = 2 +} e_EuVehicleCategoryM; + +/* EuVehicleCategoryM */ +typedef long EuVehicleCategoryM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryM; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryM_specs_1; +asn_struct_free_f EuVehicleCategoryM_free; +asn_struct_print_f EuVehicleCategoryM_print; +asn_constr_check_f EuVehicleCategoryM_constraint; +ber_type_decoder_f EuVehicleCategoryM_decode_ber; +der_type_encoder_f EuVehicleCategoryM_encode_der; +xer_type_decoder_f EuVehicleCategoryM_decode_xer; +xer_type_encoder_f EuVehicleCategoryM_encode_xer; +oer_type_decoder_f EuVehicleCategoryM_decode_oer; +oer_type_encoder_f EuVehicleCategoryM_encode_oer; +per_type_decoder_f EuVehicleCategoryM_decode_uper; +per_type_encoder_f EuVehicleCategoryM_encode_uper; +per_type_decoder_f EuVehicleCategoryM_decode_aper; +per_type_encoder_f EuVehicleCategoryM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryM_H_ */ +#include diff --git a/vcits/spatem/EuVehicleCategoryN.h b/vcits/spatem/EuVehicleCategoryN.h new file mode 100644 index 0000000..c39e75c --- /dev/null +++ b/vcits/spatem/EuVehicleCategoryN.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _EuVehicleCategoryN_H_ +#define _EuVehicleCategoryN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryN { + EuVehicleCategoryN_n1 = 0, + EuVehicleCategoryN_n2 = 1, + EuVehicleCategoryN_n3 = 2 +} e_EuVehicleCategoryN; + +/* EuVehicleCategoryN */ +typedef long EuVehicleCategoryN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryN; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryN_specs_1; +asn_struct_free_f EuVehicleCategoryN_free; +asn_struct_print_f EuVehicleCategoryN_print; +asn_constr_check_f EuVehicleCategoryN_constraint; +ber_type_decoder_f EuVehicleCategoryN_decode_ber; +der_type_encoder_f EuVehicleCategoryN_encode_der; +xer_type_decoder_f EuVehicleCategoryN_decode_xer; +xer_type_encoder_f EuVehicleCategoryN_encode_xer; +oer_type_decoder_f EuVehicleCategoryN_decode_oer; +oer_type_encoder_f EuVehicleCategoryN_encode_oer; +per_type_decoder_f EuVehicleCategoryN_decode_uper; +per_type_encoder_f EuVehicleCategoryN_encode_uper; +per_type_decoder_f EuVehicleCategoryN_decode_aper; +per_type_encoder_f EuVehicleCategoryN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryN_H_ */ +#include diff --git a/vcits/spatem/EuVehicleCategoryO.h b/vcits/spatem/EuVehicleCategoryO.h new file mode 100644 index 0000000..dbfbce7 --- /dev/null +++ b/vcits/spatem/EuVehicleCategoryO.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _EuVehicleCategoryO_H_ +#define _EuVehicleCategoryO_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryO { + EuVehicleCategoryO_o1 = 0, + EuVehicleCategoryO_o2 = 1, + EuVehicleCategoryO_o3 = 2, + EuVehicleCategoryO_o4 = 3 +} e_EuVehicleCategoryO; + +/* EuVehicleCategoryO */ +typedef long EuVehicleCategoryO_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryO_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryO; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryO_specs_1; +asn_struct_free_f EuVehicleCategoryO_free; +asn_struct_print_f EuVehicleCategoryO_print; +asn_constr_check_f EuVehicleCategoryO_constraint; +ber_type_decoder_f EuVehicleCategoryO_decode_ber; +der_type_encoder_f EuVehicleCategoryO_encode_der; +xer_type_decoder_f EuVehicleCategoryO_decode_xer; +xer_type_encoder_f EuVehicleCategoryO_encode_xer; +oer_type_decoder_f EuVehicleCategoryO_decode_oer; +oer_type_encoder_f EuVehicleCategoryO_encode_oer; +per_type_decoder_f EuVehicleCategoryO_decode_uper; +per_type_encoder_f EuVehicleCategoryO_encode_uper; +per_type_decoder_f EuVehicleCategoryO_decode_aper; +per_type_encoder_f EuVehicleCategoryO_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryO_H_ */ +#include diff --git a/vcits/spatem/EventHistory.h b/vcits/spatem/EventHistory.h new file mode 100644 index 0000000..9a590db --- /dev/null +++ b/vcits/spatem/EventHistory.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _EventHistory_H_ +#define _EventHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EventPoint; + +/* EventHistory */ +typedef struct EventHistory { + A_SEQUENCE_OF(struct EventPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventHistory; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventHistory_H_ */ +#include diff --git a/vcits/spatem/EventPoint.h b/vcits/spatem/EventPoint.h new file mode 100644 index 0000000..0d05568 --- /dev/null +++ b/vcits/spatem/EventPoint.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _EventPoint_H_ +#define _EventPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include "InformationQuality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EventPoint */ +typedef struct EventPoint { + DeltaReferencePosition_t eventPosition; + PathDeltaTime_t *eventDeltaTime; /* OPTIONAL */ + InformationQuality_t informationQuality; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_EventPoint_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventPoint_H_ */ +#include diff --git a/vcits/spatem/ExceptionalCondition.h b/vcits/spatem/ExceptionalCondition.h new file mode 100644 index 0000000..70d6610 --- /dev/null +++ b/vcits/spatem/ExceptionalCondition.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ExceptionalCondition_H_ +#define _ExceptionalCondition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExceptionalCondition { + ExceptionalCondition_unknown = 0, + ExceptionalCondition_publicTransportPriority = 1, + ExceptionalCondition_emergencyVehiclePriority = 2, + ExceptionalCondition_trainPriority = 3, + ExceptionalCondition_bridgeOpen = 4, + ExceptionalCondition_vehicleHeight = 5, + ExceptionalCondition_weather = 6, + ExceptionalCondition_trafficJam = 7, + ExceptionalCondition_tunnelClosure = 8, + ExceptionalCondition_meteringActive = 9, + ExceptionalCondition_truckPriority = 10, + ExceptionalCondition_bicyclePlatoonPriority = 11, + ExceptionalCondition_vehiclePlatoonPriority = 12 + /* + * Enumeration is extensible + */ +} e_ExceptionalCondition; + +/* ExceptionalCondition */ +typedef long ExceptionalCondition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ExceptionalCondition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ExceptionalCondition; +extern const asn_INTEGER_specifics_t asn_SPC_ExceptionalCondition_specs_1; +asn_struct_free_f ExceptionalCondition_free; +asn_struct_print_f ExceptionalCondition_print; +asn_constr_check_f ExceptionalCondition_constraint; +ber_type_decoder_f ExceptionalCondition_decode_ber; +der_type_encoder_f ExceptionalCondition_encode_der; +xer_type_decoder_f ExceptionalCondition_decode_xer; +xer_type_encoder_f ExceptionalCondition_encode_xer; +oer_type_decoder_f ExceptionalCondition_decode_oer; +oer_type_encoder_f ExceptionalCondition_encode_oer; +per_type_decoder_f ExceptionalCondition_decode_uper; +per_type_encoder_f ExceptionalCondition_encode_uper; +per_type_decoder_f ExceptionalCondition_decode_aper; +per_type_encoder_f ExceptionalCondition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExceptionalCondition_H_ */ +#include diff --git a/vcits/spatem/ExteriorLights.h b/vcits/spatem/ExteriorLights.h new file mode 100644 index 0000000..09ac5cf --- /dev/null +++ b/vcits/spatem/ExteriorLights.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ExteriorLights_H_ +#define _ExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExteriorLights { + ExteriorLights_lowBeamHeadlightsOn = 0, + ExteriorLights_highBeamHeadlightsOn = 1, + ExteriorLights_leftTurnSignalOn = 2, + ExteriorLights_rightTurnSignalOn = 3, + ExteriorLights_daytimeRunningLightsOn = 4, + ExteriorLights_reverseLightOn = 5, + ExteriorLights_fogLightOn = 6, + ExteriorLights_parkingLightsOn = 7 +} e_ExteriorLights; + +/* ExteriorLights */ +typedef BIT_STRING_t ExteriorLights_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ExteriorLights; +asn_struct_free_f ExteriorLights_free; +asn_struct_print_f ExteriorLights_print; +asn_constr_check_f ExteriorLights_constraint; +ber_type_decoder_f ExteriorLights_decode_ber; +der_type_encoder_f ExteriorLights_encode_der; +xer_type_decoder_f ExteriorLights_decode_xer; +xer_type_encoder_f ExteriorLights_encode_xer; +oer_type_decoder_f ExteriorLights_decode_oer; +oer_type_encoder_f ExteriorLights_encode_oer; +per_type_decoder_f ExteriorLights_decode_uper; +per_type_encoder_f ExteriorLights_encode_uper; +per_type_decoder_f ExteriorLights_decode_aper; +per_type_encoder_f ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExteriorLights_H_ */ +#include diff --git a/vcits/spatem/FreightContainerData.h b/vcits/spatem/FreightContainerData.h new file mode 100644 index 0000000..62ae22d --- /dev/null +++ b/vcits/spatem/FreightContainerData.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _FreightContainerData_H_ +#define _FreightContainerData_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FreightContainerData */ +typedef struct FreightContainerData { + BIT_STRING_t ownerCode; + long serialNumber; + long checkDigit; + long length; + long height; + long width; + long containerTypeCode; + long maximumGrossMass; + long tareMass; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreightContainerData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreightContainerData; +extern asn_SEQUENCE_specifics_t asn_SPC_FreightContainerData_specs_1; +extern asn_TYPE_member_t asn_MBR_FreightContainerData_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreightContainerData_H_ */ +#include diff --git a/vcits/spatem/FuelType.h b/vcits/spatem/FuelType.h new file mode 100644 index 0000000..d78dc37 --- /dev/null +++ b/vcits/spatem/FuelType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _FuelType_H_ +#define _FuelType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FuelType */ +typedef long FuelType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FuelType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FuelType; +asn_struct_free_f FuelType_free; +asn_struct_print_f FuelType_print; +asn_constr_check_f FuelType_constraint; +ber_type_decoder_f FuelType_decode_ber; +der_type_encoder_f FuelType_encode_der; +xer_type_decoder_f FuelType_decode_xer; +xer_type_encoder_f FuelType_encode_xer; +oer_type_decoder_f FuelType_decode_oer; +oer_type_encoder_f FuelType_encode_oer; +per_type_decoder_f FuelType_decode_uper; +per_type_encoder_f FuelType_encode_uper; +per_type_decoder_f FuelType_decode_aper; +per_type_encoder_f FuelType_encode_aper; +#define FuelType_unknownFuel ((FuelType_t)0) +#define FuelType_gasoline ((FuelType_t)1) +#define FuelType_ethanol ((FuelType_t)2) +#define FuelType_diesel ((FuelType_t)3) +#define FuelType_electric ((FuelType_t)4) +#define FuelType_hybrid ((FuelType_t)5) +#define FuelType_hydrogen ((FuelType_t)6) +#define FuelType_natGasLiquid ((FuelType_t)7) +#define FuelType_natGasComp ((FuelType_t)8) +#define FuelType_propane ((FuelType_t)9) + +#ifdef __cplusplus +} +#endif + +#endif /* _FuelType_H_ */ +#include diff --git a/vcits/spatem/FullPositionVector.h b/vcits/spatem/FullPositionVector.h new file mode 100644 index 0000000..18001b5 --- /dev/null +++ b/vcits/spatem/FullPositionVector.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _FullPositionVector_H_ +#define _FullPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include "Elevation.h" +#include "HeadingDSRC.h" +#include "TimeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DDateTime; +struct TransmissionAndSpeed; +struct PositionalAccuracy; +struct PositionConfidenceSet; +struct SpeedandHeadingandThrottleConfidence; + +/* FullPositionVector */ +typedef struct FullPositionVector { + struct DDateTime *utcTime; /* OPTIONAL */ + Longitude_t Long; + Latitude_t lat; + Elevation_t *elevation; /* OPTIONAL */ + HeadingDSRC_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + struct PositionalAccuracy *posAccuracy; /* OPTIONAL */ + TimeConfidence_t *timeConfidence; /* OPTIONAL */ + struct PositionConfidenceSet *posConfidence; /* OPTIONAL */ + struct SpeedandHeadingandThrottleConfidence *speedConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FullPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FullPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_FullPositionVector_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FullPositionVector_H_ */ +#include diff --git a/vcits/spatem/GNSSstatus.h b/vcits/spatem/GNSSstatus.h new file mode 100644 index 0000000..5ae5588 --- /dev/null +++ b/vcits/spatem/GNSSstatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _GNSSstatus_H_ +#define _GNSSstatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GNSSstatus { + GNSSstatus_unavailable = 0, + GNSSstatus_isHealthy = 1, + GNSSstatus_isMonitored = 2, + GNSSstatus_baseStationType = 3, + GNSSstatus_aPDOPofUnder5 = 4, + GNSSstatus_inViewOfUnder5 = 5, + GNSSstatus_localCorrectionsPresent = 6, + GNSSstatus_networkCorrectionsPresent = 7 +} e_GNSSstatus; + +/* GNSSstatus */ +typedef BIT_STRING_t GNSSstatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GNSSstatus; +asn_struct_free_f GNSSstatus_free; +asn_struct_print_f GNSSstatus_print; +asn_constr_check_f GNSSstatus_constraint; +ber_type_decoder_f GNSSstatus_decode_ber; +der_type_encoder_f GNSSstatus_encode_der; +xer_type_decoder_f GNSSstatus_decode_xer; +xer_type_encoder_f GNSSstatus_encode_xer; +oer_type_decoder_f GNSSstatus_decode_oer; +oer_type_encoder_f GNSSstatus_encode_oer; +per_type_decoder_f GNSSstatus_decode_uper; +per_type_encoder_f GNSSstatus_encode_uper; +per_type_decoder_f GNSSstatus_decode_aper; +per_type_encoder_f GNSSstatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNSSstatus_H_ */ +#include diff --git a/vcits/spatem/GenericLane.h b/vcits/spatem/GenericLane.h new file mode 100644 index 0000000..19c0835 --- /dev/null +++ b/vcits/spatem/GenericLane.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _GenericLane_H_ +#define _GenericLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "DescriptiveName.h" +#include "ApproachID.h" +#include "LaneAttributes.h" +#include "AllowedManeuvers.h" +#include "NodeListXY.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectsToList; +struct OverlayLaneList; +struct Reg_GenericLane; + +/* GenericLane */ +typedef struct GenericLane { + LaneID_t laneID; + DescriptiveName_t *name; /* OPTIONAL */ + ApproachID_t *ingressApproach; /* OPTIONAL */ + ApproachID_t *egressApproach; /* OPTIONAL */ + LaneAttributes_t laneAttributes; + AllowedManeuvers_t *maneuvers; /* OPTIONAL */ + NodeListXY_t nodeList; + struct ConnectsToList *connectsTo; /* OPTIONAL */ + struct OverlayLaneList *overlays; /* OPTIONAL */ + struct GenericLane__regional { + A_SEQUENCE_OF(struct Reg_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GenericLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1; +extern asn_TYPE_member_t asn_MBR_GenericLane_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GenericLane_H_ */ +#include diff --git a/vcits/spatem/GeoGraphicalLimit.h b/vcits/spatem/GeoGraphicalLimit.h new file mode 100644 index 0000000..995f065 --- /dev/null +++ b/vcits/spatem/GeoGraphicalLimit.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _GeoGraphicalLimit_H_ +#define _GeoGraphicalLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GeoGraphicalLimit { + GeoGraphicalLimit_globalRestriction = 0, + GeoGraphicalLimit_regionalRestriction = 1, + GeoGraphicalLimit_nationalRestriction = 2, + GeoGraphicalLimit_district = 3, + GeoGraphicalLimit_issuerCoverageRestriction = 4, + GeoGraphicalLimit_reservedForCEN1 = 5, + GeoGraphicalLimit_reservedForCEN2 = 6, + GeoGraphicalLimit_issuerSpecificRestriction = 7 +} e_GeoGraphicalLimit; + +/* GeoGraphicalLimit */ +typedef BIT_STRING_t GeoGraphicalLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GeoGraphicalLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GeoGraphicalLimit; +asn_struct_free_f GeoGraphicalLimit_free; +asn_struct_print_f GeoGraphicalLimit_print; +asn_constr_check_f GeoGraphicalLimit_constraint; +ber_type_decoder_f GeoGraphicalLimit_decode_ber; +der_type_encoder_f GeoGraphicalLimit_encode_der; +xer_type_decoder_f GeoGraphicalLimit_decode_xer; +xer_type_encoder_f GeoGraphicalLimit_encode_xer; +oer_type_decoder_f GeoGraphicalLimit_decode_oer; +oer_type_encoder_f GeoGraphicalLimit_encode_oer; +per_type_decoder_f GeoGraphicalLimit_decode_uper; +per_type_encoder_f GeoGraphicalLimit_encode_uper; +per_type_decoder_f GeoGraphicalLimit_decode_aper; +per_type_encoder_f GeoGraphicalLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GeoGraphicalLimit_H_ */ +#include diff --git a/vcits/spatem/HardShoulderStatus.h b/vcits/spatem/HardShoulderStatus.h new file mode 100644 index 0000000..3150e0f --- /dev/null +++ b/vcits/spatem/HardShoulderStatus.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _HardShoulderStatus_H_ +#define _HardShoulderStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HardShoulderStatus { + HardShoulderStatus_availableForStopping = 0, + HardShoulderStatus_closed = 1, + HardShoulderStatus_availableForDriving = 2 +} e_HardShoulderStatus; + +/* HardShoulderStatus */ +typedef long HardShoulderStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus; +extern const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1; +asn_struct_free_f HardShoulderStatus_free; +asn_struct_print_f HardShoulderStatus_print; +asn_constr_check_f HardShoulderStatus_constraint; +ber_type_decoder_f HardShoulderStatus_decode_ber; +der_type_encoder_f HardShoulderStatus_encode_der; +xer_type_decoder_f HardShoulderStatus_decode_xer; +xer_type_encoder_f HardShoulderStatus_encode_xer; +oer_type_decoder_f HardShoulderStatus_decode_oer; +oer_type_encoder_f HardShoulderStatus_encode_oer; +per_type_decoder_f HardShoulderStatus_decode_uper; +per_type_encoder_f HardShoulderStatus_encode_uper; +per_type_decoder_f HardShoulderStatus_decode_aper; +per_type_encoder_f HardShoulderStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HardShoulderStatus_H_ */ +#include diff --git a/vcits/spatem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h b/vcits/spatem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..91ddbf7 --- /dev/null +++ b/vcits/spatem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_AnimalOnTheRoadSubCauseCode { + HazardousLocation_AnimalOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimals = 1, + HazardousLocation_AnimalOnTheRoadSubCauseCode_herdOfAnimals = 2, + HazardousLocation_AnimalOnTheRoadSubCauseCode_smallAnimals = 3, + HazardousLocation_AnimalOnTheRoadSubCauseCode_largeAnimals = 4 +} e_HazardousLocation_AnimalOnTheRoadSubCauseCode; + +/* HazardousLocation-AnimalOnTheRoadSubCauseCode */ +typedef long HazardousLocation_AnimalOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_AnimalOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_AnimalOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/HazardousLocation-DangerousCurveSubCauseCode.h b/vcits/spatem/HazardousLocation-DangerousCurveSubCauseCode.h new file mode 100644 index 0000000..dc8df3a --- /dev/null +++ b/vcits/spatem/HazardousLocation-DangerousCurveSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _HazardousLocation_DangerousCurveSubCauseCode_H_ +#define _HazardousLocation_DangerousCurveSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_DangerousCurveSubCauseCode { + HazardousLocation_DangerousCurveSubCauseCode_unavailable = 0, + HazardousLocation_DangerousCurveSubCauseCode_dangerousLeftTurnCurve = 1, + HazardousLocation_DangerousCurveSubCauseCode_dangerousRightTurnCurve = 2, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithUnknownTurningDirection = 3, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithLeftTurn = 4, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithRightTurn = 5 +} e_HazardousLocation_DangerousCurveSubCauseCode; + +/* HazardousLocation-DangerousCurveSubCauseCode */ +typedef long HazardousLocation_DangerousCurveSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode; +asn_struct_free_f HazardousLocation_DangerousCurveSubCauseCode_free; +asn_struct_print_f HazardousLocation_DangerousCurveSubCauseCode_print; +asn_constr_check_f HazardousLocation_DangerousCurveSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_DangerousCurveSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h b/vcits/spatem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..91ac867 --- /dev/null +++ b/vcits/spatem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_ObstacleOnTheRoadSubCauseCode { + HazardousLocation_ObstacleOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_shedLoad = 1, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfVehicles = 2, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfTyres = 3, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_bigObjects = 4, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_fallenTrees = 5, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_hubCaps = 6, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_waitingVehicles = 7 +} e_HazardousLocation_ObstacleOnTheRoadSubCauseCode; + +/* HazardousLocation-ObstacleOnTheRoadSubCauseCode */ +typedef long HazardousLocation_ObstacleOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/HazardousLocation-SurfaceConditionSubCauseCode.h b/vcits/spatem/HazardousLocation-SurfaceConditionSubCauseCode.h new file mode 100644 index 0000000..46debf9 --- /dev/null +++ b/vcits/spatem/HazardousLocation-SurfaceConditionSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _HazardousLocation_SurfaceConditionSubCauseCode_H_ +#define _HazardousLocation_SurfaceConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_SurfaceConditionSubCauseCode { + HazardousLocation_SurfaceConditionSubCauseCode_unavailable = 0, + HazardousLocation_SurfaceConditionSubCauseCode_rockfalls = 1, + HazardousLocation_SurfaceConditionSubCauseCode_earthquakeDamage = 2, + HazardousLocation_SurfaceConditionSubCauseCode_sewerCollapse = 3, + HazardousLocation_SurfaceConditionSubCauseCode_subsidence = 4, + HazardousLocation_SurfaceConditionSubCauseCode_snowDrifts = 5, + HazardousLocation_SurfaceConditionSubCauseCode_stormDamage = 6, + HazardousLocation_SurfaceConditionSubCauseCode_burstPipe = 7, + HazardousLocation_SurfaceConditionSubCauseCode_volcanoEruption = 8, + HazardousLocation_SurfaceConditionSubCauseCode_fallingIce = 9 +} e_HazardousLocation_SurfaceConditionSubCauseCode; + +/* HazardousLocation-SurfaceConditionSubCauseCode */ +typedef long HazardousLocation_SurfaceConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode; +asn_struct_free_f HazardousLocation_SurfaceConditionSubCauseCode_free; +asn_struct_print_f HazardousLocation_SurfaceConditionSubCauseCode_print; +asn_constr_check_f HazardousLocation_SurfaceConditionSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_SurfaceConditionSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/Heading.h b/vcits/spatem/Heading.h new file mode 100644 index 0000000..711306f --- /dev/null +++ b/vcits/spatem/Heading.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Heading_H_ +#define _Heading_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingValue.h" +#include "HeadingConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Heading */ +typedef struct Heading { + HeadingValue_t headingValue; + HeadingConfidence_t headingConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Heading_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Heading; + +#ifdef __cplusplus +} +#endif + +#endif /* _Heading_H_ */ +#include diff --git a/vcits/spatem/HeadingConfidence.h b/vcits/spatem/HeadingConfidence.h new file mode 100644 index 0000000..b8ccdc0 --- /dev/null +++ b/vcits/spatem/HeadingConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _HeadingConfidence_H_ +#define _HeadingConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidence { + HeadingConfidence_equalOrWithinZeroPointOneDegree = 1, + HeadingConfidence_equalOrWithinOneDegree = 10, + HeadingConfidence_outOfRange = 126, + HeadingConfidence_unavailable = 127 +} e_HeadingConfidence; + +/* HeadingConfidence */ +typedef long HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidence; +asn_struct_free_f HeadingConfidence_free; +asn_struct_print_f HeadingConfidence_print; +asn_constr_check_f HeadingConfidence_constraint; +ber_type_decoder_f HeadingConfidence_decode_ber; +der_type_encoder_f HeadingConfidence_encode_der; +xer_type_decoder_f HeadingConfidence_decode_xer; +xer_type_encoder_f HeadingConfidence_encode_xer; +oer_type_decoder_f HeadingConfidence_decode_oer; +oer_type_encoder_f HeadingConfidence_encode_oer; +per_type_decoder_f HeadingConfidence_decode_uper; +per_type_encoder_f HeadingConfidence_encode_uper; +per_type_decoder_f HeadingConfidence_decode_aper; +per_type_encoder_f HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidence_H_ */ +#include diff --git a/vcits/spatem/HeadingConfidenceDSRC.h b/vcits/spatem/HeadingConfidenceDSRC.h new file mode 100644 index 0000000..01a0e4b --- /dev/null +++ b/vcits/spatem/HeadingConfidenceDSRC.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _HeadingConfidenceDSRC_H_ +#define _HeadingConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidenceDSRC { + HeadingConfidenceDSRC_unavailable = 0, + HeadingConfidenceDSRC_prec10deg = 1, + HeadingConfidenceDSRC_prec05deg = 2, + HeadingConfidenceDSRC_prec01deg = 3, + HeadingConfidenceDSRC_prec0_1deg = 4, + HeadingConfidenceDSRC_prec0_05deg = 5, + HeadingConfidenceDSRC_prec0_01deg = 6, + HeadingConfidenceDSRC_prec0_0125deg = 7 +} e_HeadingConfidenceDSRC; + +/* HeadingConfidenceDSRC */ +typedef long HeadingConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_HeadingConfidenceDSRC_specs_1; +asn_struct_free_f HeadingConfidenceDSRC_free; +asn_struct_print_f HeadingConfidenceDSRC_print; +asn_constr_check_f HeadingConfidenceDSRC_constraint; +ber_type_decoder_f HeadingConfidenceDSRC_decode_ber; +der_type_encoder_f HeadingConfidenceDSRC_encode_der; +xer_type_decoder_f HeadingConfidenceDSRC_decode_xer; +xer_type_encoder_f HeadingConfidenceDSRC_encode_xer; +oer_type_decoder_f HeadingConfidenceDSRC_decode_oer; +oer_type_encoder_f HeadingConfidenceDSRC_encode_oer; +per_type_decoder_f HeadingConfidenceDSRC_decode_uper; +per_type_encoder_f HeadingConfidenceDSRC_encode_uper; +per_type_decoder_f HeadingConfidenceDSRC_decode_aper; +per_type_encoder_f HeadingConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidenceDSRC_H_ */ +#include diff --git a/vcits/spatem/HeadingDSRC.h b/vcits/spatem/HeadingDSRC.h new file mode 100644 index 0000000..de2cf6f --- /dev/null +++ b/vcits/spatem/HeadingDSRC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _HeadingDSRC_H_ +#define _HeadingDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HeadingDSRC */ +typedef long HeadingDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingDSRC; +asn_struct_free_f HeadingDSRC_free; +asn_struct_print_f HeadingDSRC_print; +asn_constr_check_f HeadingDSRC_constraint; +ber_type_decoder_f HeadingDSRC_decode_ber; +der_type_encoder_f HeadingDSRC_encode_der; +xer_type_decoder_f HeadingDSRC_decode_xer; +xer_type_encoder_f HeadingDSRC_encode_xer; +oer_type_decoder_f HeadingDSRC_decode_oer; +oer_type_encoder_f HeadingDSRC_encode_oer; +per_type_decoder_f HeadingDSRC_decode_uper; +per_type_encoder_f HeadingDSRC_encode_uper; +per_type_decoder_f HeadingDSRC_decode_aper; +per_type_encoder_f HeadingDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingDSRC_H_ */ +#include diff --git a/vcits/spatem/HeadingValue.h b/vcits/spatem/HeadingValue.h new file mode 100644 index 0000000..e2dafb3 --- /dev/null +++ b/vcits/spatem/HeadingValue.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _HeadingValue_H_ +#define _HeadingValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingValue { + HeadingValue_wgs84North = 0, + HeadingValue_wgs84East = 900, + HeadingValue_wgs84South = 1800, + HeadingValue_wgs84West = 2700, + HeadingValue_unavailable = 3601 +} e_HeadingValue; + +/* HeadingValue */ +typedef long HeadingValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingValue; +asn_struct_free_f HeadingValue_free; +asn_struct_print_f HeadingValue_print; +asn_constr_check_f HeadingValue_constraint; +ber_type_decoder_f HeadingValue_decode_ber; +der_type_encoder_f HeadingValue_encode_der; +xer_type_decoder_f HeadingValue_decode_xer; +xer_type_encoder_f HeadingValue_encode_xer; +oer_type_decoder_f HeadingValue_decode_oer; +oer_type_encoder_f HeadingValue_encode_oer; +per_type_decoder_f HeadingValue_decode_uper; +per_type_encoder_f HeadingValue_encode_uper; +per_type_decoder_f HeadingValue_decode_aper; +per_type_encoder_f HeadingValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingValue_H_ */ +#include diff --git a/vcits/spatem/HeightLonCarr.h b/vcits/spatem/HeightLonCarr.h new file mode 100644 index 0000000..d5d91a5 --- /dev/null +++ b/vcits/spatem/HeightLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _HeightLonCarr_H_ +#define _HeightLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeightLonCarr { + HeightLonCarr_oneCentimeter = 1, + HeightLonCarr_unavailable = 100 +} e_HeightLonCarr; + +/* HeightLonCarr */ +typedef long HeightLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HeightLonCarr; +asn_struct_free_f HeightLonCarr_free; +asn_struct_print_f HeightLonCarr_print; +asn_constr_check_f HeightLonCarr_constraint; +ber_type_decoder_f HeightLonCarr_decode_ber; +der_type_encoder_f HeightLonCarr_encode_der; +xer_type_decoder_f HeightLonCarr_decode_xer; +xer_type_encoder_f HeightLonCarr_encode_xer; +oer_type_decoder_f HeightLonCarr_decode_oer; +oer_type_encoder_f HeightLonCarr_encode_oer; +per_type_decoder_f HeightLonCarr_decode_uper; +per_type_encoder_f HeightLonCarr_encode_uper; +per_type_decoder_f HeightLonCarr_decode_aper; +per_type_encoder_f HeightLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeightLonCarr_H_ */ +#include diff --git a/vcits/spatem/HumanPresenceOnTheRoadSubCauseCode.h b/vcits/spatem/HumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..3e6da83 --- /dev/null +++ b/vcits/spatem/HumanPresenceOnTheRoadSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _HumanPresenceOnTheRoadSubCauseCode_H_ +#define _HumanPresenceOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanPresenceOnTheRoadSubCauseCode { + HumanPresenceOnTheRoadSubCauseCode_unavailable = 0, + HumanPresenceOnTheRoadSubCauseCode_childrenOnRoadway = 1, + HumanPresenceOnTheRoadSubCauseCode_cyclistOnRoadway = 2, + HumanPresenceOnTheRoadSubCauseCode_motorcyclistOnRoadway = 3 +} e_HumanPresenceOnTheRoadSubCauseCode; + +/* HumanPresenceOnTheRoadSubCauseCode */ +typedef long HumanPresenceOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode; +asn_struct_free_f HumanPresenceOnTheRoadSubCauseCode_free; +asn_struct_print_f HumanPresenceOnTheRoadSubCauseCode_print; +asn_constr_check_f HumanPresenceOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanPresenceOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/HumanProblemSubCauseCode.h b/vcits/spatem/HumanProblemSubCauseCode.h new file mode 100644 index 0000000..1c5fc2e --- /dev/null +++ b/vcits/spatem/HumanProblemSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _HumanProblemSubCauseCode_H_ +#define _HumanProblemSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanProblemSubCauseCode { + HumanProblemSubCauseCode_unavailable = 0, + HumanProblemSubCauseCode_glycemiaProblem = 1, + HumanProblemSubCauseCode_heartProblem = 2 +} e_HumanProblemSubCauseCode; + +/* HumanProblemSubCauseCode */ +typedef long HumanProblemSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode; +asn_struct_free_f HumanProblemSubCauseCode_free; +asn_struct_print_f HumanProblemSubCauseCode_print; +asn_constr_check_f HumanProblemSubCauseCode_constraint; +ber_type_decoder_f HumanProblemSubCauseCode_decode_ber; +der_type_encoder_f HumanProblemSubCauseCode_encode_der; +xer_type_decoder_f HumanProblemSubCauseCode_decode_xer; +xer_type_encoder_f HumanProblemSubCauseCode_encode_xer; +oer_type_decoder_f HumanProblemSubCauseCode_decode_oer; +oer_type_encoder_f HumanProblemSubCauseCode_encode_oer; +per_type_decoder_f HumanProblemSubCauseCode_decode_uper; +per_type_encoder_f HumanProblemSubCauseCode_encode_uper; +per_type_decoder_f HumanProblemSubCauseCode_decode_aper; +per_type_encoder_f HumanProblemSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanProblemSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/InformationQuality.h b/vcits/spatem/InformationQuality.h new file mode 100644 index 0000000..cf6a282 --- /dev/null +++ b/vcits/spatem/InformationQuality.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _InformationQuality_H_ +#define _InformationQuality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InformationQuality { + InformationQuality_unavailable = 0, + InformationQuality_lowest = 1, + InformationQuality_highest = 7 +} e_InformationQuality; + +/* InformationQuality */ +typedef long InformationQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_InformationQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_InformationQuality; +asn_struct_free_f InformationQuality_free; +asn_struct_print_f InformationQuality_print; +asn_constr_check_f InformationQuality_constraint; +ber_type_decoder_f InformationQuality_decode_ber; +der_type_encoder_f InformationQuality_encode_der; +xer_type_decoder_f InformationQuality_decode_xer; +xer_type_encoder_f InformationQuality_encode_xer; +oer_type_decoder_f InformationQuality_decode_oer; +oer_type_encoder_f InformationQuality_encode_oer; +per_type_decoder_f InformationQuality_decode_uper; +per_type_encoder_f InformationQuality_encode_uper; +per_type_decoder_f InformationQuality_decode_aper; +per_type_encoder_f InformationQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InformationQuality_H_ */ +#include diff --git a/vcits/spatem/IntersectionAccessPoint.h b/vcits/spatem/IntersectionAccessPoint.h new file mode 100644 index 0000000..5c5e3ef --- /dev/null +++ b/vcits/spatem/IntersectionAccessPoint.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _IntersectionAccessPoint_H_ +#define _IntersectionAccessPoint_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "ApproachID.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionAccessPoint_PR { + IntersectionAccessPoint_PR_NOTHING, /* No components present */ + IntersectionAccessPoint_PR_lane, + IntersectionAccessPoint_PR_approach, + IntersectionAccessPoint_PR_connection + /* Extensions may appear below */ + +} IntersectionAccessPoint_PR; + +/* IntersectionAccessPoint */ +typedef struct IntersectionAccessPoint { + IntersectionAccessPoint_PR present; + union IntersectionAccessPoint_u { + LaneID_t lane; + ApproachID_t approach; + LaneConnectionID_t connection; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionAccessPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint; +extern asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[3]; +extern asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionAccessPoint_H_ */ +#include diff --git a/vcits/spatem/IntersectionGeometry.h b/vcits/spatem/IntersectionGeometry.h new file mode 100644 index 0000000..6d055ed --- /dev/null +++ b/vcits/spatem/IntersectionGeometry.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _IntersectionGeometry_H_ +#define _IntersectionGeometry_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "LaneList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct PreemptPriorityList; +struct Reg_IntersectionGeometry; + +/* IntersectionGeometry */ +typedef struct IntersectionGeometry { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + LaneList_t laneSet; + struct PreemptPriorityList *preemptPriorityData; /* OPTIONAL */ + struct IntersectionGeometry__regional { + A_SEQUENCE_OF(struct Reg_IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometry_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometry_H_ */ +#include diff --git a/vcits/spatem/IntersectionGeometryList.h b/vcits/spatem/IntersectionGeometryList.h new file mode 100644 index 0000000..a4a968e --- /dev/null +++ b/vcits/spatem/IntersectionGeometryList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _IntersectionGeometryList_H_ +#define _IntersectionGeometryList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometry; + +/* IntersectionGeometryList */ +typedef struct IntersectionGeometryList { + A_SEQUENCE_OF(struct IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometryList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometryList_H_ */ +#include diff --git a/vcits/spatem/IntersectionID.h b/vcits/spatem/IntersectionID.h new file mode 100644 index 0000000..273f1f0 --- /dev/null +++ b/vcits/spatem/IntersectionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _IntersectionID_H_ +#define _IntersectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionID */ +typedef long IntersectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionID; +asn_struct_free_f IntersectionID_free; +asn_struct_print_f IntersectionID_print; +asn_constr_check_f IntersectionID_constraint; +ber_type_decoder_f IntersectionID_decode_ber; +der_type_encoder_f IntersectionID_encode_der; +xer_type_decoder_f IntersectionID_decode_xer; +xer_type_encoder_f IntersectionID_encode_xer; +oer_type_decoder_f IntersectionID_decode_oer; +oer_type_encoder_f IntersectionID_encode_oer; +per_type_decoder_f IntersectionID_decode_uper; +per_type_encoder_f IntersectionID_encode_uper; +per_type_decoder_f IntersectionID_decode_aper; +per_type_encoder_f IntersectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionID_H_ */ +#include diff --git a/vcits/spatem/IntersectionReferenceID.h b/vcits/spatem/IntersectionReferenceID.h new file mode 100644 index 0000000..5221250 --- /dev/null +++ b/vcits/spatem/IntersectionReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _IntersectionReferenceID_H_ +#define _IntersectionReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionReferenceID */ +typedef struct IntersectionReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + IntersectionID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionReferenceID_H_ */ +#include diff --git a/vcits/spatem/IntersectionState-addGrpC.h b/vcits/spatem/IntersectionState-addGrpC.h new file mode 100644 index 0000000..ec1f4bf --- /dev/null +++ b/vcits/spatem/IntersectionState-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _IntersectionState_addGrpC_H_ +#define _IntersectionState_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponseList; + +/* IntersectionState-addGrpC */ +typedef struct IntersectionState_addGrpC { + struct PrioritizationResponseList *activePrioritizations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_addGrpC_H_ */ +#include diff --git a/vcits/spatem/IntersectionState.h b/vcits/spatem/IntersectionState.h new file mode 100644 index 0000000..acbfe57 --- /dev/null +++ b/vcits/spatem/IntersectionState.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _IntersectionState_H_ +#define _IntersectionState_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "MsgCount.h" +#include "IntersectionStatusObject.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MovementList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EnabledLaneList; +struct ManeuverAssistList; +struct Reg_IntersectionState; + +/* IntersectionState */ +typedef struct IntersectionState { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + MsgCount_t revision; + IntersectionStatusObject_t status; + MinuteOfTheYear_t *moy; /* OPTIONAL */ + DSecond_t *timeStamp; /* OPTIONAL */ + struct EnabledLaneList *enabledLanes; /* OPTIONAL */ + MovementList_t states; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct IntersectionState__regional { + A_SEQUENCE_OF(struct Reg_IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_H_ */ +#include diff --git a/vcits/spatem/IntersectionStateList.h b/vcits/spatem/IntersectionStateList.h new file mode 100644 index 0000000..4dac9be --- /dev/null +++ b/vcits/spatem/IntersectionStateList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _IntersectionStateList_H_ +#define _IntersectionStateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionState; + +/* IntersectionStateList */ +typedef struct IntersectionStateList { + A_SEQUENCE_OF(struct IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStateList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStateList_H_ */ +#include diff --git a/vcits/spatem/IntersectionStatusObject.h b/vcits/spatem/IntersectionStatusObject.h new file mode 100644 index 0000000..ed7abcb --- /dev/null +++ b/vcits/spatem/IntersectionStatusObject.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _IntersectionStatusObject_H_ +#define _IntersectionStatusObject_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionStatusObject { + IntersectionStatusObject_manualControlIsEnabled = 0, + IntersectionStatusObject_stopTimeIsActivated = 1, + IntersectionStatusObject_failureFlash = 2, + IntersectionStatusObject_preemptIsActive = 3, + IntersectionStatusObject_signalPriorityIsActive = 4, + IntersectionStatusObject_fixedTimeOperation = 5, + IntersectionStatusObject_trafficDependentOperation = 6, + IntersectionStatusObject_standbyOperation = 7, + IntersectionStatusObject_failureMode = 8, + IntersectionStatusObject_off = 9, + IntersectionStatusObject_recentMAPmessageUpdate = 10, + IntersectionStatusObject_recentChangeInMAPassignedLanesIDsUsed = 11, + IntersectionStatusObject_noValidMAPisAvailableAtThisTime = 12, + IntersectionStatusObject_noValidSPATisAvailableAtThisTime = 13 +} e_IntersectionStatusObject; + +/* IntersectionStatusObject */ +typedef BIT_STRING_t IntersectionStatusObject_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject; +asn_struct_free_f IntersectionStatusObject_free; +asn_struct_print_f IntersectionStatusObject_print; +asn_constr_check_f IntersectionStatusObject_constraint; +ber_type_decoder_f IntersectionStatusObject_decode_ber; +der_type_encoder_f IntersectionStatusObject_encode_der; +xer_type_decoder_f IntersectionStatusObject_decode_xer; +xer_type_encoder_f IntersectionStatusObject_encode_xer; +oer_type_decoder_f IntersectionStatusObject_decode_oer; +oer_type_encoder_f IntersectionStatusObject_encode_oer; +per_type_decoder_f IntersectionStatusObject_decode_uper; +per_type_encoder_f IntersectionStatusObject_encode_uper; +per_type_decoder_f IntersectionStatusObject_decode_aper; +per_type_encoder_f IntersectionStatusObject_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStatusObject_H_ */ +#include diff --git a/vcits/spatem/Iso3833VehicleType.h b/vcits/spatem/Iso3833VehicleType.h new file mode 100644 index 0000000..97dac6c --- /dev/null +++ b/vcits/spatem/Iso3833VehicleType.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Iso3833VehicleType_H_ +#define _Iso3833VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Iso3833VehicleType { + Iso3833VehicleType_passengerCar = 0, + Iso3833VehicleType_saloon = 1, + Iso3833VehicleType_convertibleSaloon = 2, + Iso3833VehicleType_pullmanSaloon = 3, + Iso3833VehicleType_stationWagon = 4, + Iso3833VehicleType_truckStationWagon = 5, + Iso3833VehicleType_coupe = 6, + Iso3833VehicleType_convertible = 7, + Iso3833VehicleType_multipurposePassengerCar = 8, + Iso3833VehicleType_forwardControlPassengerCar = 9, + Iso3833VehicleType_specialPassengerCar = 10, + Iso3833VehicleType_bus = 11, + Iso3833VehicleType_minibus = 12, + Iso3833VehicleType_urbanBus = 13, + Iso3833VehicleType_interurbanCoach = 14, + Iso3833VehicleType_longDistanceCoach = 15, + Iso3833VehicleType_articulatedBus = 16, + Iso3833VehicleType_trolleyBus = 17, + Iso3833VehicleType_specialBus = 18, + Iso3833VehicleType_commercialVehicle = 19, + Iso3833VehicleType_specialCommercialVehicle = 20, + Iso3833VehicleType_specialVehicle = 21, + Iso3833VehicleType_trailingTowingVehicle = 22, + Iso3833VehicleType_semiTrailerTowingVehicle = 23, + Iso3833VehicleType_trailer = 24, + Iso3833VehicleType_busTrailer = 25, + Iso3833VehicleType_generalPurposeTrailer = 26, + Iso3833VehicleType_caravan = 27, + Iso3833VehicleType_specialTrailer = 28, + Iso3833VehicleType_semiTrailer = 29, + Iso3833VehicleType_busSemiTrailer = 30, + Iso3833VehicleType_generalPurposeSemiTrailer = 31, + Iso3833VehicleType_specialSemiTrailer = 32, + Iso3833VehicleType_roadTrain = 33, + Iso3833VehicleType_passengerRoadTrain = 34, + Iso3833VehicleType_articulatedRoadTrain = 35, + Iso3833VehicleType_doubleRoadTrain = 36, + Iso3833VehicleType_compositeRoadTrain = 37, + Iso3833VehicleType_specialRoadTrain = 38, + Iso3833VehicleType_moped = 39, + Iso3833VehicleType_motorCycle = 40 +} e_Iso3833VehicleType; + +/* Iso3833VehicleType */ +typedef long Iso3833VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType; +asn_struct_free_f Iso3833VehicleType_free; +asn_struct_print_f Iso3833VehicleType_print; +asn_constr_check_f Iso3833VehicleType_constraint; +ber_type_decoder_f Iso3833VehicleType_decode_ber; +der_type_encoder_f Iso3833VehicleType_encode_der; +xer_type_decoder_f Iso3833VehicleType_decode_xer; +xer_type_encoder_f Iso3833VehicleType_encode_xer; +oer_type_decoder_f Iso3833VehicleType_decode_oer; +oer_type_encoder_f Iso3833VehicleType_encode_oer; +per_type_decoder_f Iso3833VehicleType_decode_uper; +per_type_encoder_f Iso3833VehicleType_encode_uper; +per_type_decoder_f Iso3833VehicleType_decode_aper; +per_type_encoder_f Iso3833VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Iso3833VehicleType_H_ */ +#include diff --git a/vcits/spatem/IssuerIdentifier.h b/vcits/spatem/IssuerIdentifier.h new file mode 100644 index 0000000..366bb10 --- /dev/null +++ b/vcits/spatem/IssuerIdentifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _IssuerIdentifier_H_ +#define _IssuerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IssuerIdentifier */ +typedef long IssuerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IssuerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IssuerIdentifier; +asn_struct_free_f IssuerIdentifier_free; +asn_struct_print_f IssuerIdentifier_print; +asn_constr_check_f IssuerIdentifier_constraint; +ber_type_decoder_f IssuerIdentifier_decode_ber; +der_type_encoder_f IssuerIdentifier_encode_der; +xer_type_decoder_f IssuerIdentifier_decode_xer; +xer_type_encoder_f IssuerIdentifier_encode_xer; +oer_type_decoder_f IssuerIdentifier_decode_oer; +oer_type_encoder_f IssuerIdentifier_encode_oer; +per_type_decoder_f IssuerIdentifier_decode_uper; +per_type_encoder_f IssuerIdentifier_encode_uper; +per_type_decoder_f IssuerIdentifier_decode_aper; +per_type_encoder_f IssuerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IssuerIdentifier_H_ */ +#include diff --git a/vcits/spatem/ItineraryPath.h b/vcits/spatem/ItineraryPath.h new file mode 100644 index 0000000..cfaa6b6 --- /dev/null +++ b/vcits/spatem/ItineraryPath.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ItineraryPath_H_ +#define _ItineraryPath_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* ItineraryPath */ +typedef struct ItineraryPath { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItineraryPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItineraryPath; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItineraryPath_H_ */ +#include diff --git a/vcits/spatem/ItsPduHeader.h b/vcits/spatem/ItsPduHeader.h new file mode 100644 index 0000000..4ada4e7 --- /dev/null +++ b/vcits/spatem/ItsPduHeader.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ItsPduHeader_H_ +#define _ItsPduHeader_H_ + + +#include + +/* Including external dependencies */ +#include +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ItsPduHeader__messageID { + ItsPduHeader__messageID_denm = 1, + ItsPduHeader__messageID_cam = 2, + ItsPduHeader__messageID_poi = 3, + ItsPduHeader__messageID_spatem = 4, + ItsPduHeader__messageID_mapem = 5, + ItsPduHeader__messageID_ivim = 6, + ItsPduHeader__messageID_ev_rsr = 7, + ItsPduHeader__messageID_tistpgtransaction = 8, + ItsPduHeader__messageID_srem = 9, + ItsPduHeader__messageID_ssem = 10, + ItsPduHeader__messageID_evcsn = 11, + ItsPduHeader__messageID_saem = 12, + ItsPduHeader__messageID_rtcmem = 13 +} e_ItsPduHeader__messageID; + +/* ItsPduHeader */ +typedef struct ItsPduHeader { + long protocolVersion; + long messageID; + StationID_t stationID; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsPduHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsPduHeader; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsPduHeader_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsPduHeader_H_ */ +#include diff --git a/vcits/spatem/ItsStationPosition.h b/vcits/spatem/ItsStationPosition.h new file mode 100644 index 0000000..df30da9 --- /dev/null +++ b/vcits/spatem/ItsStationPosition.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ItsStationPosition_H_ +#define _ItsStationPosition_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "LaneID.h" +#include "TimeReference.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeOffsetPointXY; + +/* ItsStationPosition */ +typedef struct ItsStationPosition { + StationID_t stationID; + LaneID_t *laneID; /* OPTIONAL */ + struct NodeOffsetPointXY *nodeXY; /* OPTIONAL */ + TimeReference_t *timeReference; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsStationPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsStationPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsStationPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsStationPosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsStationPosition_H_ */ +#include diff --git a/vcits/spatem/ItsStationPositionList.h b/vcits/spatem/ItsStationPositionList.h new file mode 100644 index 0000000..2a45ed8 --- /dev/null +++ b/vcits/spatem/ItsStationPositionList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ItsStationPositionList_H_ +#define _ItsStationPositionList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ItsStationPosition; + +/* ItsStationPositionList */ +typedef struct ItsStationPositionList { + A_SEQUENCE_OF(struct ItsStationPosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsStationPositionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsStationPositionList; +extern asn_SET_OF_specifics_t asn_SPC_ItsStationPositionList_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsStationPositionList_1[1]; +extern asn_per_constraints_t asn_PER_type_ItsStationPositionList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsStationPositionList_H_ */ +#include diff --git a/vcits/spatem/LaneAttributes-Barrier.h b/vcits/spatem/LaneAttributes-Barrier.h new file mode 100644 index 0000000..a48889f --- /dev/null +++ b/vcits/spatem/LaneAttributes-Barrier.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneAttributes_Barrier_H_ +#define _LaneAttributes_Barrier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Barrier { + LaneAttributes_Barrier_median_RevocableLane = 0, + LaneAttributes_Barrier_median = 1, + LaneAttributes_Barrier_whiteLineHashing = 2, + LaneAttributes_Barrier_stripedLines = 3, + LaneAttributes_Barrier_doubleStripedLines = 4, + LaneAttributes_Barrier_trafficCones = 5, + LaneAttributes_Barrier_constructionBarrier = 6, + LaneAttributes_Barrier_trafficChannels = 7, + LaneAttributes_Barrier_lowCurbs = 8, + LaneAttributes_Barrier_highCurbs = 9 +} e_LaneAttributes_Barrier; + +/* LaneAttributes-Barrier */ +typedef BIT_STRING_t LaneAttributes_Barrier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier; +asn_struct_free_f LaneAttributes_Barrier_free; +asn_struct_print_f LaneAttributes_Barrier_print; +asn_constr_check_f LaneAttributes_Barrier_constraint; +ber_type_decoder_f LaneAttributes_Barrier_decode_ber; +der_type_encoder_f LaneAttributes_Barrier_encode_der; +xer_type_decoder_f LaneAttributes_Barrier_decode_xer; +xer_type_encoder_f LaneAttributes_Barrier_encode_xer; +oer_type_decoder_f LaneAttributes_Barrier_decode_oer; +oer_type_encoder_f LaneAttributes_Barrier_encode_oer; +per_type_decoder_f LaneAttributes_Barrier_decode_uper; +per_type_encoder_f LaneAttributes_Barrier_encode_uper; +per_type_decoder_f LaneAttributes_Barrier_decode_aper; +per_type_encoder_f LaneAttributes_Barrier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Barrier_H_ */ +#include diff --git a/vcits/spatem/LaneAttributes-Bike.h b/vcits/spatem/LaneAttributes-Bike.h new file mode 100644 index 0000000..6be57aa --- /dev/null +++ b/vcits/spatem/LaneAttributes-Bike.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneAttributes_Bike_H_ +#define _LaneAttributes_Bike_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Bike { + LaneAttributes_Bike_bikeRevocableLane = 0, + LaneAttributes_Bike_pedestrianUseAllowed = 1, + LaneAttributes_Bike_isBikeFlyOverLane = 2, + LaneAttributes_Bike_fixedCycleTime = 3, + LaneAttributes_Bike_biDirectionalCycleTimes = 4, + LaneAttributes_Bike_isolatedByBarrier = 5, + LaneAttributes_Bike_unsignalizedSegmentsPresent = 6 +} e_LaneAttributes_Bike; + +/* LaneAttributes-Bike */ +typedef BIT_STRING_t LaneAttributes_Bike_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike; +asn_struct_free_f LaneAttributes_Bike_free; +asn_struct_print_f LaneAttributes_Bike_print; +asn_constr_check_f LaneAttributes_Bike_constraint; +ber_type_decoder_f LaneAttributes_Bike_decode_ber; +der_type_encoder_f LaneAttributes_Bike_encode_der; +xer_type_decoder_f LaneAttributes_Bike_decode_xer; +xer_type_encoder_f LaneAttributes_Bike_encode_xer; +oer_type_decoder_f LaneAttributes_Bike_decode_oer; +oer_type_encoder_f LaneAttributes_Bike_encode_oer; +per_type_decoder_f LaneAttributes_Bike_decode_uper; +per_type_encoder_f LaneAttributes_Bike_encode_uper; +per_type_decoder_f LaneAttributes_Bike_decode_aper; +per_type_encoder_f LaneAttributes_Bike_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Bike_H_ */ +#include diff --git a/vcits/spatem/LaneAttributes-Crosswalk.h b/vcits/spatem/LaneAttributes-Crosswalk.h new file mode 100644 index 0000000..51f70fb --- /dev/null +++ b/vcits/spatem/LaneAttributes-Crosswalk.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneAttributes_Crosswalk_H_ +#define _LaneAttributes_Crosswalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Crosswalk { + LaneAttributes_Crosswalk_crosswalkRevocableLane = 0, + LaneAttributes_Crosswalk_bicyleUseAllowed = 1, + LaneAttributes_Crosswalk_isXwalkFlyOverLane = 2, + LaneAttributes_Crosswalk_fixedCycleTime = 3, + LaneAttributes_Crosswalk_biDirectionalCycleTimes = 4, + LaneAttributes_Crosswalk_hasPushToWalkButton = 5, + LaneAttributes_Crosswalk_audioSupport = 6, + LaneAttributes_Crosswalk_rfSignalRequestPresent = 7, + LaneAttributes_Crosswalk_unsignalizedSegmentsPresent = 8 +} e_LaneAttributes_Crosswalk; + +/* LaneAttributes-Crosswalk */ +typedef BIT_STRING_t LaneAttributes_Crosswalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk; +asn_struct_free_f LaneAttributes_Crosswalk_free; +asn_struct_print_f LaneAttributes_Crosswalk_print; +asn_constr_check_f LaneAttributes_Crosswalk_constraint; +ber_type_decoder_f LaneAttributes_Crosswalk_decode_ber; +der_type_encoder_f LaneAttributes_Crosswalk_encode_der; +xer_type_decoder_f LaneAttributes_Crosswalk_decode_xer; +xer_type_encoder_f LaneAttributes_Crosswalk_encode_xer; +oer_type_decoder_f LaneAttributes_Crosswalk_decode_oer; +oer_type_encoder_f LaneAttributes_Crosswalk_encode_oer; +per_type_decoder_f LaneAttributes_Crosswalk_decode_uper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_uper; +per_type_decoder_f LaneAttributes_Crosswalk_decode_aper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Crosswalk_H_ */ +#include diff --git a/vcits/spatem/LaneAttributes-Parking.h b/vcits/spatem/LaneAttributes-Parking.h new file mode 100644 index 0000000..642f554 --- /dev/null +++ b/vcits/spatem/LaneAttributes-Parking.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneAttributes_Parking_H_ +#define _LaneAttributes_Parking_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Parking { + LaneAttributes_Parking_parkingRevocableLane = 0, + LaneAttributes_Parking_parallelParkingInUse = 1, + LaneAttributes_Parking_headInParkingInUse = 2, + LaneAttributes_Parking_doNotParkZone = 3, + LaneAttributes_Parking_parkingForBusUse = 4, + LaneAttributes_Parking_parkingForTaxiUse = 5, + LaneAttributes_Parking_noPublicParkingUse = 6 +} e_LaneAttributes_Parking; + +/* LaneAttributes-Parking */ +typedef BIT_STRING_t LaneAttributes_Parking_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking; +asn_struct_free_f LaneAttributes_Parking_free; +asn_struct_print_f LaneAttributes_Parking_print; +asn_constr_check_f LaneAttributes_Parking_constraint; +ber_type_decoder_f LaneAttributes_Parking_decode_ber; +der_type_encoder_f LaneAttributes_Parking_encode_der; +xer_type_decoder_f LaneAttributes_Parking_decode_xer; +xer_type_encoder_f LaneAttributes_Parking_encode_xer; +oer_type_decoder_f LaneAttributes_Parking_decode_oer; +oer_type_encoder_f LaneAttributes_Parking_encode_oer; +per_type_decoder_f LaneAttributes_Parking_decode_uper; +per_type_encoder_f LaneAttributes_Parking_encode_uper; +per_type_decoder_f LaneAttributes_Parking_decode_aper; +per_type_encoder_f LaneAttributes_Parking_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Parking_H_ */ +#include diff --git a/vcits/spatem/LaneAttributes-Sidewalk.h b/vcits/spatem/LaneAttributes-Sidewalk.h new file mode 100644 index 0000000..7e4f934 --- /dev/null +++ b/vcits/spatem/LaneAttributes-Sidewalk.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneAttributes_Sidewalk_H_ +#define _LaneAttributes_Sidewalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Sidewalk { + LaneAttributes_Sidewalk_sidewalk_RevocableLane = 0, + LaneAttributes_Sidewalk_bicyleUseAllowed = 1, + LaneAttributes_Sidewalk_isSidewalkFlyOverLane = 2, + LaneAttributes_Sidewalk_walkBikes = 3 +} e_LaneAttributes_Sidewalk; + +/* LaneAttributes-Sidewalk */ +typedef BIT_STRING_t LaneAttributes_Sidewalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk; +asn_struct_free_f LaneAttributes_Sidewalk_free; +asn_struct_print_f LaneAttributes_Sidewalk_print; +asn_constr_check_f LaneAttributes_Sidewalk_constraint; +ber_type_decoder_f LaneAttributes_Sidewalk_decode_ber; +der_type_encoder_f LaneAttributes_Sidewalk_encode_der; +xer_type_decoder_f LaneAttributes_Sidewalk_decode_xer; +xer_type_encoder_f LaneAttributes_Sidewalk_encode_xer; +oer_type_decoder_f LaneAttributes_Sidewalk_decode_oer; +oer_type_encoder_f LaneAttributes_Sidewalk_encode_oer; +per_type_decoder_f LaneAttributes_Sidewalk_decode_uper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_uper; +per_type_decoder_f LaneAttributes_Sidewalk_decode_aper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Sidewalk_H_ */ +#include diff --git a/vcits/spatem/LaneAttributes-Striping.h b/vcits/spatem/LaneAttributes-Striping.h new file mode 100644 index 0000000..e23c9ce --- /dev/null +++ b/vcits/spatem/LaneAttributes-Striping.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneAttributes_Striping_H_ +#define _LaneAttributes_Striping_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Striping { + LaneAttributes_Striping_stripeToConnectingLanesRevocableLane = 0, + LaneAttributes_Striping_stripeDrawOnLeft = 1, + LaneAttributes_Striping_stripeDrawOnRight = 2, + LaneAttributes_Striping_stripeToConnectingLanesLeft = 3, + LaneAttributes_Striping_stripeToConnectingLanesRight = 4, + LaneAttributes_Striping_stripeToConnectingLanesAhead = 5 +} e_LaneAttributes_Striping; + +/* LaneAttributes-Striping */ +typedef BIT_STRING_t LaneAttributes_Striping_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping; +asn_struct_free_f LaneAttributes_Striping_free; +asn_struct_print_f LaneAttributes_Striping_print; +asn_constr_check_f LaneAttributes_Striping_constraint; +ber_type_decoder_f LaneAttributes_Striping_decode_ber; +der_type_encoder_f LaneAttributes_Striping_encode_der; +xer_type_decoder_f LaneAttributes_Striping_decode_xer; +xer_type_encoder_f LaneAttributes_Striping_encode_xer; +oer_type_decoder_f LaneAttributes_Striping_decode_oer; +oer_type_encoder_f LaneAttributes_Striping_encode_oer; +per_type_decoder_f LaneAttributes_Striping_decode_uper; +per_type_encoder_f LaneAttributes_Striping_encode_uper; +per_type_decoder_f LaneAttributes_Striping_decode_aper; +per_type_encoder_f LaneAttributes_Striping_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Striping_H_ */ +#include diff --git a/vcits/spatem/LaneAttributes-TrackedVehicle.h b/vcits/spatem/LaneAttributes-TrackedVehicle.h new file mode 100644 index 0000000..5b22bd0 --- /dev/null +++ b/vcits/spatem/LaneAttributes-TrackedVehicle.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneAttributes_TrackedVehicle_H_ +#define _LaneAttributes_TrackedVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_TrackedVehicle { + LaneAttributes_TrackedVehicle_spec_RevocableLane = 0, + LaneAttributes_TrackedVehicle_spec_commuterRailRoadTrack = 1, + LaneAttributes_TrackedVehicle_spec_lightRailRoadTrack = 2, + LaneAttributes_TrackedVehicle_spec_heavyRailRoadTrack = 3, + LaneAttributes_TrackedVehicle_spec_otherRailType = 4 +} e_LaneAttributes_TrackedVehicle; + +/* LaneAttributes-TrackedVehicle */ +typedef BIT_STRING_t LaneAttributes_TrackedVehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle; +asn_struct_free_f LaneAttributes_TrackedVehicle_free; +asn_struct_print_f LaneAttributes_TrackedVehicle_print; +asn_constr_check_f LaneAttributes_TrackedVehicle_constraint; +ber_type_decoder_f LaneAttributes_TrackedVehicle_decode_ber; +der_type_encoder_f LaneAttributes_TrackedVehicle_encode_der; +xer_type_decoder_f LaneAttributes_TrackedVehicle_decode_xer; +xer_type_encoder_f LaneAttributes_TrackedVehicle_encode_xer; +oer_type_decoder_f LaneAttributes_TrackedVehicle_decode_oer; +oer_type_encoder_f LaneAttributes_TrackedVehicle_encode_oer; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_uper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_uper; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_aper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_TrackedVehicle_H_ */ +#include diff --git a/vcits/spatem/LaneAttributes-Vehicle.h b/vcits/spatem/LaneAttributes-Vehicle.h new file mode 100644 index 0000000..bac02f6 --- /dev/null +++ b/vcits/spatem/LaneAttributes-Vehicle.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneAttributes_Vehicle_H_ +#define _LaneAttributes_Vehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Vehicle { + LaneAttributes_Vehicle_isVehicleRevocableLane = 0, + LaneAttributes_Vehicle_isVehicleFlyOverLane = 1, + LaneAttributes_Vehicle_hovLaneUseOnly = 2, + LaneAttributes_Vehicle_restrictedToBusUse = 3, + LaneAttributes_Vehicle_restrictedToTaxiUse = 4, + LaneAttributes_Vehicle_restrictedFromPublicUse = 5, + LaneAttributes_Vehicle_hasIRbeaconCoverage = 6, + LaneAttributes_Vehicle_permissionOnRequest = 7 +} e_LaneAttributes_Vehicle; + +/* LaneAttributes-Vehicle */ +typedef BIT_STRING_t LaneAttributes_Vehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle; +asn_struct_free_f LaneAttributes_Vehicle_free; +asn_struct_print_f LaneAttributes_Vehicle_print; +asn_constr_check_f LaneAttributes_Vehicle_constraint; +ber_type_decoder_f LaneAttributes_Vehicle_decode_ber; +der_type_encoder_f LaneAttributes_Vehicle_encode_der; +xer_type_decoder_f LaneAttributes_Vehicle_decode_xer; +xer_type_encoder_f LaneAttributes_Vehicle_encode_xer; +oer_type_decoder_f LaneAttributes_Vehicle_decode_oer; +oer_type_encoder_f LaneAttributes_Vehicle_encode_oer; +per_type_decoder_f LaneAttributes_Vehicle_decode_uper; +per_type_encoder_f LaneAttributes_Vehicle_encode_uper; +per_type_decoder_f LaneAttributes_Vehicle_decode_aper; +per_type_encoder_f LaneAttributes_Vehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Vehicle_H_ */ +#include diff --git a/vcits/spatem/LaneAttributes-addGrpC.h b/vcits/spatem/LaneAttributes-addGrpC.h new file mode 100644 index 0000000..92261ec --- /dev/null +++ b/vcits/spatem/LaneAttributes-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneAttributes_addGrpC_H_ +#define _LaneAttributes_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleHeight.h" +#include "VehicleMass.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneAttributes-addGrpC */ +typedef struct LaneAttributes_addGrpC { + VehicleHeight_t *maxVehicleHeight; /* OPTIONAL */ + VehicleMass_t *maxVehicleWeight; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_addGrpC_H_ */ +#include diff --git a/vcits/spatem/LaneAttributes.h b/vcits/spatem/LaneAttributes.h new file mode 100644 index 0000000..90ff17d --- /dev/null +++ b/vcits/spatem/LaneAttributes.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneAttributes_H_ +#define _LaneAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "LaneDirection.h" +#include "LaneSharing.h" +#include "LaneTypeAttributes.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_LaneAttributes; + +/* LaneAttributes */ +typedef struct LaneAttributes { + LaneDirection_t directionalUse; + LaneSharing_t sharedWith; + LaneTypeAttributes_t laneType; + struct Reg_LaneAttributes *regional; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_H_ */ +#include diff --git a/vcits/spatem/LaneConnectionID.h b/vcits/spatem/LaneConnectionID.h new file mode 100644 index 0000000..c5495dc --- /dev/null +++ b/vcits/spatem/LaneConnectionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneConnectionID_H_ +#define _LaneConnectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneConnectionID */ +typedef long LaneConnectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneConnectionID; +asn_struct_free_f LaneConnectionID_free; +asn_struct_print_f LaneConnectionID_print; +asn_constr_check_f LaneConnectionID_constraint; +ber_type_decoder_f LaneConnectionID_decode_ber; +der_type_encoder_f LaneConnectionID_encode_der; +xer_type_decoder_f LaneConnectionID_decode_xer; +xer_type_encoder_f LaneConnectionID_encode_xer; +oer_type_decoder_f LaneConnectionID_decode_oer; +oer_type_encoder_f LaneConnectionID_encode_oer; +per_type_decoder_f LaneConnectionID_decode_uper; +per_type_encoder_f LaneConnectionID_encode_uper; +per_type_decoder_f LaneConnectionID_decode_aper; +per_type_encoder_f LaneConnectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneConnectionID_H_ */ +#include diff --git a/vcits/spatem/LaneDataAttribute.h b/vcits/spatem/LaneDataAttribute.h new file mode 100644 index 0000000..98bb6ef --- /dev/null +++ b/vcits/spatem/LaneDataAttribute.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneDataAttribute_H_ +#define _LaneDataAttribute_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaAngle.h" +#include "RoadwayCrownAngle.h" +#include "MergeDivergeNodeAngle.h" +#include "SpeedLimitList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDataAttribute_PR { + LaneDataAttribute_PR_NOTHING, /* No components present */ + LaneDataAttribute_PR_pathEndPointAngle, + LaneDataAttribute_PR_laneCrownPointCenter, + LaneDataAttribute_PR_laneCrownPointLeft, + LaneDataAttribute_PR_laneCrownPointRight, + LaneDataAttribute_PR_laneAngle, + LaneDataAttribute_PR_speedLimits, + LaneDataAttribute_PR_regional + /* Extensions may appear below */ + +} LaneDataAttribute_PR; + +/* Forward declarations */ +struct Reg_LaneDataAttribute; + +/* LaneDataAttribute */ +typedef struct LaneDataAttribute { + LaneDataAttribute_PR present; + union LaneDataAttribute_u { + DeltaAngle_t pathEndPointAngle; + RoadwayCrownAngle_t laneCrownPointCenter; + RoadwayCrownAngle_t laneCrownPointLeft; + RoadwayCrownAngle_t laneCrownPointRight; + MergeDivergeNodeAngle_t laneAngle; + SpeedLimitList_t speedLimits; + struct LaneDataAttribute__regional { + A_SEQUENCE_OF(struct Reg_LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute; +extern asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[7]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttribute_H_ */ +#include diff --git a/vcits/spatem/LaneDataAttributeList.h b/vcits/spatem/LaneDataAttributeList.h new file mode 100644 index 0000000..0b61c76 --- /dev/null +++ b/vcits/spatem/LaneDataAttributeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneDataAttributeList_H_ +#define _LaneDataAttributeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LaneDataAttribute; + +/* LaneDataAttributeList */ +typedef struct LaneDataAttributeList { + A_SEQUENCE_OF(struct LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttributeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList; +extern asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttributeList_H_ */ +#include diff --git a/vcits/spatem/LaneDirection.h b/vcits/spatem/LaneDirection.h new file mode 100644 index 0000000..b23f0f3 --- /dev/null +++ b/vcits/spatem/LaneDirection.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneDirection_H_ +#define _LaneDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDirection { + LaneDirection_ingressPath = 0, + LaneDirection_egressPath = 1 +} e_LaneDirection; + +/* LaneDirection */ +typedef BIT_STRING_t LaneDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneDirection; +asn_struct_free_f LaneDirection_free; +asn_struct_print_f LaneDirection_print; +asn_constr_check_f LaneDirection_constraint; +ber_type_decoder_f LaneDirection_decode_ber; +der_type_encoder_f LaneDirection_encode_der; +xer_type_decoder_f LaneDirection_decode_xer; +xer_type_encoder_f LaneDirection_encode_xer; +oer_type_decoder_f LaneDirection_decode_oer; +oer_type_encoder_f LaneDirection_encode_oer; +per_type_decoder_f LaneDirection_decode_uper; +per_type_encoder_f LaneDirection_encode_uper; +per_type_decoder_f LaneDirection_decode_aper; +per_type_encoder_f LaneDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDirection_H_ */ +#include diff --git a/vcits/spatem/LaneID.h b/vcits/spatem/LaneID.h new file mode 100644 index 0000000..32ce27c --- /dev/null +++ b/vcits/spatem/LaneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneID_H_ +#define _LaneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneID */ +typedef long LaneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneID; +asn_struct_free_f LaneID_free; +asn_struct_print_f LaneID_print; +asn_constr_check_f LaneID_constraint; +ber_type_decoder_f LaneID_decode_ber; +der_type_encoder_f LaneID_encode_der; +xer_type_decoder_f LaneID_decode_xer; +xer_type_encoder_f LaneID_encode_xer; +oer_type_decoder_f LaneID_decode_oer; +oer_type_encoder_f LaneID_encode_oer; +per_type_decoder_f LaneID_decode_uper; +per_type_encoder_f LaneID_encode_uper; +per_type_decoder_f LaneID_decode_aper; +per_type_encoder_f LaneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneID_H_ */ +#include diff --git a/vcits/spatem/LaneList.h b/vcits/spatem/LaneList.h new file mode 100644 index 0000000..48cb529 --- /dev/null +++ b/vcits/spatem/LaneList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneList_H_ +#define _LaneList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* LaneList */ +typedef struct LaneList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneList; +extern asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneList_H_ */ +#include diff --git a/vcits/spatem/LanePosition.h b/vcits/spatem/LanePosition.h new file mode 100644 index 0000000..bbf4ee2 --- /dev/null +++ b/vcits/spatem/LanePosition.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LanePosition_H_ +#define _LanePosition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LanePosition { + LanePosition_offTheRoad = -1, + LanePosition_innerHardShoulder = 0, + LanePosition_innermostDrivingLane = 1, + LanePosition_secondLaneFromInside = 2, + LanePosition_outerHardShoulder = 14 +} e_LanePosition; + +/* LanePosition */ +typedef long LanePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LanePosition; +asn_struct_free_f LanePosition_free; +asn_struct_print_f LanePosition_print; +asn_constr_check_f LanePosition_constraint; +ber_type_decoder_f LanePosition_decode_ber; +der_type_encoder_f LanePosition_encode_der; +xer_type_decoder_f LanePosition_decode_xer; +xer_type_encoder_f LanePosition_encode_xer; +oer_type_decoder_f LanePosition_decode_oer; +oer_type_encoder_f LanePosition_encode_oer; +per_type_decoder_f LanePosition_decode_uper; +per_type_encoder_f LanePosition_encode_uper; +per_type_decoder_f LanePosition_decode_aper; +per_type_encoder_f LanePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LanePosition_H_ */ +#include diff --git a/vcits/spatem/LaneSharing.h b/vcits/spatem/LaneSharing.h new file mode 100644 index 0000000..0df153c --- /dev/null +++ b/vcits/spatem/LaneSharing.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneSharing_H_ +#define _LaneSharing_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneSharing { + LaneSharing_overlappingLaneDescriptionProvided = 0, + LaneSharing_multipleLanesTreatedAsOneLane = 1, + LaneSharing_otherNonMotorizedTrafficTypes = 2, + LaneSharing_individualMotorizedVehicleTraffic = 3, + LaneSharing_busVehicleTraffic = 4, + LaneSharing_taxiVehicleTraffic = 5, + LaneSharing_pedestriansTraffic = 6, + LaneSharing_cyclistVehicleTraffic = 7, + LaneSharing_trackedVehicleTraffic = 8, + LaneSharing_pedestrianTraffic = 9 +} e_LaneSharing; + +/* LaneSharing */ +typedef BIT_STRING_t LaneSharing_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneSharing_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneSharing; +asn_struct_free_f LaneSharing_free; +asn_struct_print_f LaneSharing_print; +asn_constr_check_f LaneSharing_constraint; +ber_type_decoder_f LaneSharing_decode_ber; +der_type_encoder_f LaneSharing_encode_der; +xer_type_decoder_f LaneSharing_decode_xer; +xer_type_encoder_f LaneSharing_encode_xer; +oer_type_decoder_f LaneSharing_decode_oer; +oer_type_encoder_f LaneSharing_encode_oer; +per_type_decoder_f LaneSharing_decode_uper; +per_type_encoder_f LaneSharing_encode_uper; +per_type_decoder_f LaneSharing_decode_aper; +per_type_encoder_f LaneSharing_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneSharing_H_ */ +#include diff --git a/vcits/spatem/LaneTypeAttributes.h b/vcits/spatem/LaneTypeAttributes.h new file mode 100644 index 0000000..85c96f8 --- /dev/null +++ b/vcits/spatem/LaneTypeAttributes.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneTypeAttributes_H_ +#define _LaneTypeAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "LaneAttributes-Vehicle.h" +#include "LaneAttributes-Crosswalk.h" +#include "LaneAttributes-Bike.h" +#include "LaneAttributes-Sidewalk.h" +#include "LaneAttributes-Barrier.h" +#include "LaneAttributes-Striping.h" +#include "LaneAttributes-TrackedVehicle.h" +#include "LaneAttributes-Parking.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneTypeAttributes_PR { + LaneTypeAttributes_PR_NOTHING, /* No components present */ + LaneTypeAttributes_PR_vehicle, + LaneTypeAttributes_PR_crosswalk, + LaneTypeAttributes_PR_bikeLane, + LaneTypeAttributes_PR_sidewalk, + LaneTypeAttributes_PR_median, + LaneTypeAttributes_PR_striping, + LaneTypeAttributes_PR_trackedVehicle, + LaneTypeAttributes_PR_parking + /* Extensions may appear below */ + +} LaneTypeAttributes_PR; + +/* LaneTypeAttributes */ +typedef struct LaneTypeAttributes { + LaneTypeAttributes_PR present; + union LaneTypeAttributes_u { + LaneAttributes_Vehicle_t vehicle; + LaneAttributes_Crosswalk_t crosswalk; + LaneAttributes_Bike_t bikeLane; + LaneAttributes_Sidewalk_t sidewalk; + LaneAttributes_Barrier_t median; + LaneAttributes_Striping_t striping; + LaneAttributes_TrackedVehicle_t trackedVehicle; + LaneAttributes_Parking_t parking; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneTypeAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes; +extern asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[8]; +extern asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneTypeAttributes_H_ */ +#include diff --git a/vcits/spatem/LaneWidth.h b/vcits/spatem/LaneWidth.h new file mode 100644 index 0000000..fcad088 --- /dev/null +++ b/vcits/spatem/LaneWidth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LaneWidth_H_ +#define _LaneWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneWidth */ +typedef long LaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneWidth; +asn_struct_free_f LaneWidth_free; +asn_struct_print_f LaneWidth_print; +asn_constr_check_f LaneWidth_constraint; +ber_type_decoder_f LaneWidth_decode_ber; +der_type_encoder_f LaneWidth_encode_der; +xer_type_decoder_f LaneWidth_decode_xer; +xer_type_encoder_f LaneWidth_encode_xer; +oer_type_decoder_f LaneWidth_decode_oer; +oer_type_encoder_f LaneWidth_encode_oer; +per_type_decoder_f LaneWidth_decode_uper; +per_type_encoder_f LaneWidth_encode_uper; +per_type_decoder_f LaneWidth_decode_aper; +per_type_encoder_f LaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneWidth_H_ */ +#include diff --git a/vcits/spatem/LateralAcceleration.h b/vcits/spatem/LateralAcceleration.h new file mode 100644 index 0000000..77b621e --- /dev/null +++ b/vcits/spatem/LateralAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LateralAcceleration_H_ +#define _LateralAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LateralAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LateralAcceleration */ +typedef struct LateralAcceleration { + LateralAccelerationValue_t lateralAccelerationValue; + AccelerationConfidence_t lateralAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LateralAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LateralAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAcceleration_H_ */ +#include diff --git a/vcits/spatem/LateralAccelerationValue.h b/vcits/spatem/LateralAccelerationValue.h new file mode 100644 index 0000000..3380779 --- /dev/null +++ b/vcits/spatem/LateralAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LateralAccelerationValue_H_ +#define _LateralAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LateralAccelerationValue { + LateralAccelerationValue_pointOneMeterPerSecSquaredToRight = -1, + LateralAccelerationValue_pointOneMeterPerSecSquaredToLeft = 1, + LateralAccelerationValue_unavailable = 161 +} e_LateralAccelerationValue; + +/* LateralAccelerationValue */ +typedef long LateralAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue; +asn_struct_free_f LateralAccelerationValue_free; +asn_struct_print_f LateralAccelerationValue_print; +asn_constr_check_f LateralAccelerationValue_constraint; +ber_type_decoder_f LateralAccelerationValue_decode_ber; +der_type_encoder_f LateralAccelerationValue_encode_der; +xer_type_decoder_f LateralAccelerationValue_decode_xer; +xer_type_encoder_f LateralAccelerationValue_encode_xer; +oer_type_decoder_f LateralAccelerationValue_decode_oer; +oer_type_encoder_f LateralAccelerationValue_encode_oer; +per_type_decoder_f LateralAccelerationValue_decode_uper; +per_type_encoder_f LateralAccelerationValue_encode_uper; +per_type_decoder_f LateralAccelerationValue_decode_aper; +per_type_encoder_f LateralAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAccelerationValue_H_ */ +#include diff --git a/vcits/spatem/Latitude.h b/vcits/spatem/Latitude.h new file mode 100644 index 0000000..c45202a --- /dev/null +++ b/vcits/spatem/Latitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Latitude_H_ +#define _Latitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Latitude { + Latitude_oneMicrodegreeNorth = 10, + Latitude_oneMicrodegreeSouth = -10, + Latitude_unavailable = 900000001 +} e_Latitude; + +/* Latitude */ +typedef long Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Latitude; +asn_struct_free_f Latitude_free; +asn_struct_print_f Latitude_print; +asn_constr_check_f Latitude_constraint; +ber_type_decoder_f Latitude_decode_ber; +der_type_encoder_f Latitude_encode_der; +xer_type_decoder_f Latitude_decode_xer; +xer_type_encoder_f Latitude_encode_xer; +oer_type_decoder_f Latitude_decode_oer; +oer_type_encoder_f Latitude_encode_oer; +per_type_decoder_f Latitude_decode_uper; +per_type_encoder_f Latitude_encode_uper; +per_type_decoder_f Latitude_decode_aper; +per_type_encoder_f Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Latitude_H_ */ +#include diff --git a/vcits/spatem/LayerID.h b/vcits/spatem/LayerID.h new file mode 100644 index 0000000..2c6794a --- /dev/null +++ b/vcits/spatem/LayerID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LayerID_H_ +#define _LayerID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LayerID */ +typedef long LayerID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerID; +asn_struct_free_f LayerID_free; +asn_struct_print_f LayerID_print; +asn_constr_check_f LayerID_constraint; +ber_type_decoder_f LayerID_decode_ber; +der_type_encoder_f LayerID_encode_der; +xer_type_decoder_f LayerID_decode_xer; +xer_type_encoder_f LayerID_encode_xer; +oer_type_decoder_f LayerID_decode_oer; +oer_type_encoder_f LayerID_encode_oer; +per_type_decoder_f LayerID_decode_uper; +per_type_encoder_f LayerID_encode_uper; +per_type_decoder_f LayerID_decode_aper; +per_type_encoder_f LayerID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerID_H_ */ +#include diff --git a/vcits/spatem/LayerType.h b/vcits/spatem/LayerType.h new file mode 100644 index 0000000..cac5f3c --- /dev/null +++ b/vcits/spatem/LayerType.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LayerType_H_ +#define _LayerType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LayerType { + LayerType_none = 0, + LayerType_mixedContent = 1, + LayerType_generalMapData = 2, + LayerType_intersectionData = 3, + LayerType_curveData = 4, + LayerType_roadwaySectionData = 5, + LayerType_parkingAreaData = 6, + LayerType_sharedLaneData = 7 + /* + * Enumeration is extensible + */ +} e_LayerType; + +/* LayerType */ +typedef long LayerType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerType; +extern const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1; +asn_struct_free_f LayerType_free; +asn_struct_print_f LayerType_print; +asn_constr_check_f LayerType_constraint; +ber_type_decoder_f LayerType_decode_ber; +der_type_encoder_f LayerType_encode_der; +xer_type_decoder_f LayerType_decode_xer; +xer_type_encoder_f LayerType_encode_xer; +oer_type_decoder_f LayerType_decode_oer; +oer_type_encoder_f LayerType_encode_oer; +per_type_decoder_f LayerType_decode_uper; +per_type_encoder_f LayerType_encode_uper; +per_type_decoder_f LayerType_decode_aper; +per_type_encoder_f LayerType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerType_H_ */ +#include diff --git a/vcits/spatem/LicPlateNumber.h b/vcits/spatem/LicPlateNumber.h new file mode 100644 index 0000000..8ed02ab --- /dev/null +++ b/vcits/spatem/LicPlateNumber.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LicPlateNumber_H_ +#define _LicPlateNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LicPlateNumber */ +typedef OCTET_STRING_t LicPlateNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LicPlateNumber; +asn_struct_free_f LicPlateNumber_free; +asn_struct_print_f LicPlateNumber_print; +asn_constr_check_f LicPlateNumber_constraint; +ber_type_decoder_f LicPlateNumber_decode_ber; +der_type_encoder_f LicPlateNumber_encode_der; +xer_type_decoder_f LicPlateNumber_decode_xer; +xer_type_encoder_f LicPlateNumber_encode_xer; +oer_type_decoder_f LicPlateNumber_decode_oer; +oer_type_encoder_f LicPlateNumber_encode_oer; +per_type_decoder_f LicPlateNumber_decode_uper; +per_type_encoder_f LicPlateNumber_encode_uper; +per_type_decoder_f LicPlateNumber_decode_aper; +per_type_encoder_f LicPlateNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LicPlateNumber_H_ */ +#include diff --git a/vcits/spatem/LightBarSirenInUse.h b/vcits/spatem/LightBarSirenInUse.h new file mode 100644 index 0000000..7066944 --- /dev/null +++ b/vcits/spatem/LightBarSirenInUse.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LightBarSirenInUse_H_ +#define _LightBarSirenInUse_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LightBarSirenInUse { + LightBarSirenInUse_lightBarActivated = 0, + LightBarSirenInUse_sirenActivated = 1 +} e_LightBarSirenInUse; + +/* LightBarSirenInUse */ +typedef BIT_STRING_t LightBarSirenInUse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse; +asn_struct_free_f LightBarSirenInUse_free; +asn_struct_print_f LightBarSirenInUse_print; +asn_constr_check_f LightBarSirenInUse_constraint; +ber_type_decoder_f LightBarSirenInUse_decode_ber; +der_type_encoder_f LightBarSirenInUse_encode_der; +xer_type_decoder_f LightBarSirenInUse_decode_xer; +xer_type_encoder_f LightBarSirenInUse_encode_xer; +oer_type_decoder_f LightBarSirenInUse_decode_oer; +oer_type_encoder_f LightBarSirenInUse_encode_oer; +per_type_decoder_f LightBarSirenInUse_decode_uper; +per_type_encoder_f LightBarSirenInUse_encode_uper; +per_type_decoder_f LightBarSirenInUse_decode_aper; +per_type_encoder_f LightBarSirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LightBarSirenInUse_H_ */ +#include diff --git a/vcits/spatem/Longitude.h b/vcits/spatem/Longitude.h new file mode 100644 index 0000000..c127eb8 --- /dev/null +++ b/vcits/spatem/Longitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Longitude_H_ +#define _Longitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Longitude { + Longitude_oneMicrodegreeEast = 10, + Longitude_oneMicrodegreeWest = -10, + Longitude_unavailable = 1800000001 +} e_Longitude; + +/* Longitude */ +typedef long Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Longitude; +asn_struct_free_f Longitude_free; +asn_struct_print_f Longitude_print; +asn_constr_check_f Longitude_constraint; +ber_type_decoder_f Longitude_decode_ber; +der_type_encoder_f Longitude_encode_der; +xer_type_decoder_f Longitude_decode_xer; +xer_type_encoder_f Longitude_encode_xer; +oer_type_decoder_f Longitude_decode_oer; +oer_type_encoder_f Longitude_encode_oer; +per_type_decoder_f Longitude_decode_uper; +per_type_encoder_f Longitude_encode_uper; +per_type_decoder_f Longitude_decode_aper; +per_type_encoder_f Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Longitude_H_ */ +#include diff --git a/vcits/spatem/LongitudinalAcceleration.h b/vcits/spatem/LongitudinalAcceleration.h new file mode 100644 index 0000000..51d2bea --- /dev/null +++ b/vcits/spatem/LongitudinalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LongitudinalAcceleration_H_ +#define _LongitudinalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LongitudinalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LongitudinalAcceleration */ +typedef struct LongitudinalAcceleration { + LongitudinalAccelerationValue_t longitudinalAccelerationValue; + AccelerationConfidence_t longitudinalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LongitudinalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAcceleration_H_ */ +#include diff --git a/vcits/spatem/LongitudinalAccelerationValue.h b/vcits/spatem/LongitudinalAccelerationValue.h new file mode 100644 index 0000000..3f7dd07 --- /dev/null +++ b/vcits/spatem/LongitudinalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _LongitudinalAccelerationValue_H_ +#define _LongitudinalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LongitudinalAccelerationValue { + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredForward = 1, + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredBackward = -1, + LongitudinalAccelerationValue_unavailable = 161 +} e_LongitudinalAccelerationValue; + +/* LongitudinalAccelerationValue */ +typedef long LongitudinalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue; +asn_struct_free_f LongitudinalAccelerationValue_free; +asn_struct_print_f LongitudinalAccelerationValue_print; +asn_constr_check_f LongitudinalAccelerationValue_constraint; +ber_type_decoder_f LongitudinalAccelerationValue_decode_ber; +der_type_encoder_f LongitudinalAccelerationValue_encode_der; +xer_type_decoder_f LongitudinalAccelerationValue_decode_xer; +xer_type_encoder_f LongitudinalAccelerationValue_encode_xer; +oer_type_decoder_f LongitudinalAccelerationValue_decode_oer; +oer_type_encoder_f LongitudinalAccelerationValue_encode_oer; +per_type_decoder_f LongitudinalAccelerationValue_decode_uper; +per_type_encoder_f LongitudinalAccelerationValue_encode_uper; +per_type_decoder_f LongitudinalAccelerationValue_decode_aper; +per_type_encoder_f LongitudinalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAccelerationValue_H_ */ +#include diff --git a/vcits/spatem/ManeuverAssistList.h b/vcits/spatem/ManeuverAssistList.h new file mode 100644 index 0000000..8f4e1fc --- /dev/null +++ b/vcits/spatem/ManeuverAssistList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ManeuverAssistList_H_ +#define _ManeuverAssistList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectionManeuverAssist; + +/* ManeuverAssistList */ +typedef struct ManeuverAssistList { + A_SEQUENCE_OF(struct ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ManeuverAssistList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList; +extern asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1; +extern asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[1]; +extern asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManeuverAssistList_H_ */ +#include diff --git a/vcits/spatem/ManufacturerIdentifier.h b/vcits/spatem/ManufacturerIdentifier.h new file mode 100644 index 0000000..fcd5d5a --- /dev/null +++ b/vcits/spatem/ManufacturerIdentifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ManufacturerIdentifier_H_ +#define _ManufacturerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ManufacturerIdentifier */ +typedef long ManufacturerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ManufacturerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ManufacturerIdentifier; +asn_struct_free_f ManufacturerIdentifier_free; +asn_struct_print_f ManufacturerIdentifier_print; +asn_constr_check_f ManufacturerIdentifier_constraint; +ber_type_decoder_f ManufacturerIdentifier_decode_ber; +der_type_encoder_f ManufacturerIdentifier_encode_der; +xer_type_decoder_f ManufacturerIdentifier_decode_xer; +xer_type_encoder_f ManufacturerIdentifier_encode_xer; +oer_type_decoder_f ManufacturerIdentifier_decode_oer; +oer_type_encoder_f ManufacturerIdentifier_encode_oer; +per_type_decoder_f ManufacturerIdentifier_decode_uper; +per_type_encoder_f ManufacturerIdentifier_encode_uper; +per_type_decoder_f ManufacturerIdentifier_decode_aper; +per_type_encoder_f ManufacturerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManufacturerIdentifier_H_ */ +#include diff --git a/vcits/spatem/MapData-addGrpC.h b/vcits/spatem/MapData-addGrpC.h new file mode 100644 index 0000000..6351d73 --- /dev/null +++ b/vcits/spatem/MapData-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _MapData_addGrpC_H_ +#define _MapData_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocationList; + +/* MapData-addGrpC */ +typedef struct MapData_addGrpC { + struct SignalHeadLocationList *signalHeadLocations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_addGrpC_H_ */ +#include diff --git a/vcits/spatem/MapData.h b/vcits/spatem/MapData.h new file mode 100644 index 0000000..0f66f97 --- /dev/null +++ b/vcits/spatem/MapData.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _MapData_H_ +#define _MapData_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "MsgCount.h" +#include "LayerType.h" +#include "LayerID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometryList; +struct RoadSegmentList; +struct DataParameters; +struct RestrictionClassList; +struct Reg_MapData; + +/* MapData */ +typedef struct MapData { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + MsgCount_t msgIssueRevision; + LayerType_t *layerType; /* OPTIONAL */ + LayerID_t *layerID; /* OPTIONAL */ + struct IntersectionGeometryList *intersections; /* OPTIONAL */ + struct RoadSegmentList *roadSegments; /* OPTIONAL */ + struct DataParameters *dataParameters; /* OPTIONAL */ + struct RestrictionClassList *restrictionList; /* OPTIONAL */ + struct MapData__regional { + A_SEQUENCE_OF(struct Reg_MapData) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_H_ */ +#include diff --git a/vcits/spatem/MergeDivergeNodeAngle.h b/vcits/spatem/MergeDivergeNodeAngle.h new file mode 100644 index 0000000..5a82a96 --- /dev/null +++ b/vcits/spatem/MergeDivergeNodeAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _MergeDivergeNodeAngle_H_ +#define _MergeDivergeNodeAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MergeDivergeNodeAngle */ +typedef long MergeDivergeNodeAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle; +asn_struct_free_f MergeDivergeNodeAngle_free; +asn_struct_print_f MergeDivergeNodeAngle_print; +asn_constr_check_f MergeDivergeNodeAngle_constraint; +ber_type_decoder_f MergeDivergeNodeAngle_decode_ber; +der_type_encoder_f MergeDivergeNodeAngle_encode_der; +xer_type_decoder_f MergeDivergeNodeAngle_decode_xer; +xer_type_encoder_f MergeDivergeNodeAngle_encode_xer; +oer_type_decoder_f MergeDivergeNodeAngle_decode_oer; +oer_type_encoder_f MergeDivergeNodeAngle_encode_oer; +per_type_decoder_f MergeDivergeNodeAngle_decode_uper; +per_type_encoder_f MergeDivergeNodeAngle_encode_uper; +per_type_decoder_f MergeDivergeNodeAngle_decode_aper; +per_type_encoder_f MergeDivergeNodeAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MergeDivergeNodeAngle_H_ */ +#include diff --git a/vcits/spatem/MinuteOfTheYear.h b/vcits/spatem/MinuteOfTheYear.h new file mode 100644 index 0000000..17c32aa --- /dev/null +++ b/vcits/spatem/MinuteOfTheYear.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _MinuteOfTheYear_H_ +#define _MinuteOfTheYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MinuteOfTheYear */ +typedef long MinuteOfTheYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear; +asn_struct_free_f MinuteOfTheYear_free; +asn_struct_print_f MinuteOfTheYear_print; +asn_constr_check_f MinuteOfTheYear_constraint; +ber_type_decoder_f MinuteOfTheYear_decode_ber; +der_type_encoder_f MinuteOfTheYear_encode_der; +xer_type_decoder_f MinuteOfTheYear_decode_xer; +xer_type_encoder_f MinuteOfTheYear_encode_xer; +oer_type_decoder_f MinuteOfTheYear_decode_oer; +oer_type_encoder_f MinuteOfTheYear_encode_oer; +per_type_decoder_f MinuteOfTheYear_decode_uper; +per_type_encoder_f MinuteOfTheYear_encode_uper; +per_type_decoder_f MinuteOfTheYear_decode_aper; +per_type_encoder_f MinuteOfTheYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MinuteOfTheYear_H_ */ +#include diff --git a/vcits/spatem/MovementEvent-addGrpC.h b/vcits/spatem/MovementEvent-addGrpC.h new file mode 100644 index 0000000..8ed12b7 --- /dev/null +++ b/vcits/spatem/MovementEvent-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _MovementEvent_addGrpC_H_ +#define _MovementEvent_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "ExceptionalCondition.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MovementEvent-addGrpC */ +typedef struct MovementEvent_addGrpC { + ExceptionalCondition_t *stateChangeReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_addGrpC_H_ */ +#include diff --git a/vcits/spatem/MovementEvent.h b/vcits/spatem/MovementEvent.h new file mode 100644 index 0000000..7cea1af --- /dev/null +++ b/vcits/spatem/MovementEvent.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _MovementEvent_H_ +#define _MovementEvent_H_ + + +#include + +/* Including external dependencies */ +#include "MovementPhaseState.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TimeChangeDetails; +struct AdvisorySpeedList; +struct Reg_MovementEvent; + +/* MovementEvent */ +typedef struct MovementEvent { + MovementPhaseState_t eventState; + struct TimeChangeDetails *timing; /* OPTIONAL */ + struct AdvisorySpeedList *speeds; /* OPTIONAL */ + struct MovementEvent__regional { + A_SEQUENCE_OF(struct Reg_MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_H_ */ +#include diff --git a/vcits/spatem/MovementEventList.h b/vcits/spatem/MovementEventList.h new file mode 100644 index 0000000..7e26eb3 --- /dev/null +++ b/vcits/spatem/MovementEventList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _MovementEventList_H_ +#define _MovementEventList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementEvent; + +/* MovementEventList */ +typedef struct MovementEventList { + A_SEQUENCE_OF(struct MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEventList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEventList; +extern asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEventList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementEventList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEventList_H_ */ +#include diff --git a/vcits/spatem/MovementList.h b/vcits/spatem/MovementList.h new file mode 100644 index 0000000..cebd31b --- /dev/null +++ b/vcits/spatem/MovementList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _MovementList_H_ +#define _MovementList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementState; + +/* MovementList */ +typedef struct MovementList { + A_SEQUENCE_OF(struct MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementList; +extern asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementList_H_ */ +#include diff --git a/vcits/spatem/MovementPhaseState.h b/vcits/spatem/MovementPhaseState.h new file mode 100644 index 0000000..3fc6234 --- /dev/null +++ b/vcits/spatem/MovementPhaseState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _MovementPhaseState_H_ +#define _MovementPhaseState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MovementPhaseState { + MovementPhaseState_unavailable = 0, + MovementPhaseState_dark = 1, + MovementPhaseState_stop_Then_Proceed = 2, + MovementPhaseState_stop_And_Remain = 3, + MovementPhaseState_pre_Movement = 4, + MovementPhaseState_permissive_Movement_Allowed = 5, + MovementPhaseState_protected_Movement_Allowed = 6, + MovementPhaseState_permissive_clearance = 7, + MovementPhaseState_protected_clearance = 8, + MovementPhaseState_caution_Conflicting_Traffic = 9 +} e_MovementPhaseState; + +/* MovementPhaseState */ +typedef long MovementPhaseState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MovementPhaseState; +extern const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1; +asn_struct_free_f MovementPhaseState_free; +asn_struct_print_f MovementPhaseState_print; +asn_constr_check_f MovementPhaseState_constraint; +ber_type_decoder_f MovementPhaseState_decode_ber; +der_type_encoder_f MovementPhaseState_encode_der; +xer_type_decoder_f MovementPhaseState_decode_xer; +xer_type_encoder_f MovementPhaseState_encode_xer; +oer_type_decoder_f MovementPhaseState_decode_oer; +oer_type_encoder_f MovementPhaseState_encode_oer; +per_type_decoder_f MovementPhaseState_decode_uper; +per_type_encoder_f MovementPhaseState_encode_uper; +per_type_decoder_f MovementPhaseState_decode_aper; +per_type_encoder_f MovementPhaseState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementPhaseState_H_ */ +#include diff --git a/vcits/spatem/MovementState.h b/vcits/spatem/MovementState.h new file mode 100644 index 0000000..79809bb --- /dev/null +++ b/vcits/spatem/MovementState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _MovementState_H_ +#define _MovementState_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "SignalGroupID.h" +#include "MovementEventList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ManeuverAssistList; +struct Reg_MovementState; + +/* MovementState */ +typedef struct MovementState { + DescriptiveName_t *movementName; /* OPTIONAL */ + SignalGroupID_t signalGroup; + MovementEventList_t state_time_speed; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct MovementState__regional { + A_SEQUENCE_OF(struct Reg_MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementState_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementState_H_ */ +#include diff --git a/vcits/spatem/MsgCount.h b/vcits/spatem/MsgCount.h new file mode 100644 index 0000000..628cdff --- /dev/null +++ b/vcits/spatem/MsgCount.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _MsgCount_H_ +#define _MsgCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MsgCount */ +typedef long MsgCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MsgCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MsgCount; +asn_struct_free_f MsgCount_free; +asn_struct_print_f MsgCount_print; +asn_constr_check_f MsgCount_constraint; +ber_type_decoder_f MsgCount_decode_ber; +der_type_encoder_f MsgCount_encode_der; +xer_type_decoder_f MsgCount_decode_xer; +xer_type_encoder_f MsgCount_encode_xer; +oer_type_decoder_f MsgCount_decode_oer; +oer_type_encoder_f MsgCount_encode_oer; +per_type_decoder_f MsgCount_decode_uper; +per_type_encoder_f MsgCount_encode_uper; +per_type_decoder_f MsgCount_decode_aper; +per_type_encoder_f MsgCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MsgCount_H_ */ +#include diff --git a/vcits/spatem/Node-LLmD-64b.h b/vcits/spatem/Node-LLmD-64b.h new file mode 100644 index 0000000..43a34bf --- /dev/null +++ b/vcits/spatem/Node-LLmD-64b.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Node_LLmD_64b_H_ +#define _Node_LLmD_64b_H_ + + +#include + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LLmD-64b */ +typedef struct Node_LLmD_64b { + Longitude_t lon; + Latitude_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LLmD_64b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LLmD_64b_H_ */ +#include diff --git a/vcits/spatem/Node-XY-20b.h b/vcits/spatem/Node-XY-20b.h new file mode 100644 index 0000000..374bf1a --- /dev/null +++ b/vcits/spatem/Node-XY-20b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Node_XY_20b_H_ +#define _Node_XY_20b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-20b */ +typedef struct Node_XY_20b { + Offset_B10_t x; + Offset_B10_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_20b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_20b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_20b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_20b_H_ */ +#include diff --git a/vcits/spatem/Node-XY-22b.h b/vcits/spatem/Node-XY-22b.h new file mode 100644 index 0000000..33f930f --- /dev/null +++ b/vcits/spatem/Node-XY-22b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Node_XY_22b_H_ +#define _Node_XY_22b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B11.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-22b */ +typedef struct Node_XY_22b { + Offset_B11_t x; + Offset_B11_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_22b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_22b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_22b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_22b_H_ */ +#include diff --git a/vcits/spatem/Node-XY-24b.h b/vcits/spatem/Node-XY-24b.h new file mode 100644 index 0000000..a7ac365 --- /dev/null +++ b/vcits/spatem/Node-XY-24b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Node_XY_24b_H_ +#define _Node_XY_24b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B12.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-24b */ +typedef struct Node_XY_24b { + Offset_B12_t x; + Offset_B12_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_24b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_24b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_24b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_24b_H_ */ +#include diff --git a/vcits/spatem/Node-XY-26b.h b/vcits/spatem/Node-XY-26b.h new file mode 100644 index 0000000..38fc17f --- /dev/null +++ b/vcits/spatem/Node-XY-26b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Node_XY_26b_H_ +#define _Node_XY_26b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B13.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-26b */ +typedef struct Node_XY_26b { + Offset_B13_t x; + Offset_B13_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_26b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_26b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_26b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_26b_H_ */ +#include diff --git a/vcits/spatem/Node-XY-28b.h b/vcits/spatem/Node-XY-28b.h new file mode 100644 index 0000000..b0ce59a --- /dev/null +++ b/vcits/spatem/Node-XY-28b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Node_XY_28b_H_ +#define _Node_XY_28b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B14.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-28b */ +typedef struct Node_XY_28b { + Offset_B14_t x; + Offset_B14_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_28b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_28b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_28b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_28b_H_ */ +#include diff --git a/vcits/spatem/Node-XY-32b.h b/vcits/spatem/Node-XY-32b.h new file mode 100644 index 0000000..25d67e8 --- /dev/null +++ b/vcits/spatem/Node-XY-32b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Node_XY_32b_H_ +#define _Node_XY_32b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B16.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-32b */ +typedef struct Node_XY_32b { + Offset_B16_t x; + Offset_B16_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_32b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_32b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_32b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_32b_H_ */ +#include diff --git a/vcits/spatem/Node.h b/vcits/spatem/Node.h new file mode 100644 index 0000000..67bc303 --- /dev/null +++ b/vcits/spatem/Node.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Node_H_ +#define _Node_H_ + + +#include + +/* Including external dependencies */ +#include +#include "LaneID.h" +#include "LaneConnectionID.h" +#include "IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node */ +typedef struct Node { + long id; + LaneID_t *lane; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + IntersectionID_t *intersectionID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_H_ */ +#include diff --git a/vcits/spatem/NodeAttributeSet-addGrpC.h b/vcits/spatem/NodeAttributeSet-addGrpC.h new file mode 100644 index 0000000..d517094 --- /dev/null +++ b/vcits/spatem/NodeAttributeSet-addGrpC.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _NodeAttributeSet_addGrpC_H_ +#define _NodeAttributeSet_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "PtvRequestType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeLink; +struct Node; + +/* NodeAttributeSet-addGrpC */ +typedef struct NodeAttributeSet_addGrpC { + PtvRequestType_t *ptvRequest; /* OPTIONAL */ + struct NodeLink *nodeLink; /* OPTIONAL */ + struct Node *node; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSet_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSet_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSet_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSet_addGrpC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSet_addGrpC_H_ */ +#include diff --git a/vcits/spatem/NodeAttributeSetXY.h b/vcits/spatem/NodeAttributeSetXY.h new file mode 100644 index 0000000..eecb2c5 --- /dev/null +++ b/vcits/spatem/NodeAttributeSetXY.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _NodeAttributeSetXY_H_ +#define _NodeAttributeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeXYList; +struct SegmentAttributeXYList; +struct LaneDataAttributeList; +struct Reg_NodeAttributeSetXY; + +/* NodeAttributeSetXY */ +typedef struct NodeAttributeSetXY { + struct NodeAttributeXYList *localNode; /* OPTIONAL */ + struct SegmentAttributeXYList *disabled; /* OPTIONAL */ + struct SegmentAttributeXYList *enabled; /* OPTIONAL */ + struct LaneDataAttributeList *data; /* OPTIONAL */ + Offset_B10_t *dWidth; /* OPTIONAL */ + Offset_B10_t *dElevation; /* OPTIONAL */ + struct NodeAttributeSetXY__regional { + A_SEQUENCE_OF(struct Reg_NodeAttributeSetXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSetXY_H_ */ +#include diff --git a/vcits/spatem/NodeAttributeXY.h b/vcits/spatem/NodeAttributeXY.h new file mode 100644 index 0000000..b5c9b5a --- /dev/null +++ b/vcits/spatem/NodeAttributeXY.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _NodeAttributeXY_H_ +#define _NodeAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeAttributeXY { + NodeAttributeXY_reserved = 0, + NodeAttributeXY_stopLine = 1, + NodeAttributeXY_roundedCapStyleA = 2, + NodeAttributeXY_roundedCapStyleB = 3, + NodeAttributeXY_mergePoint = 4, + NodeAttributeXY_divergePoint = 5, + NodeAttributeXY_downstreamStopLine = 6, + NodeAttributeXY_downstreamStartNode = 7, + NodeAttributeXY_closedToTraffic = 8, + NodeAttributeXY_safeIsland = 9, + NodeAttributeXY_curbPresentAtStepOff = 10, + NodeAttributeXY_hydrantPresent = 11 + /* + * Enumeration is extensible + */ +} e_NodeAttributeXY; + +/* NodeAttributeXY */ +typedef long NodeAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1; +asn_struct_free_f NodeAttributeXY_free; +asn_struct_print_f NodeAttributeXY_print; +asn_constr_check_f NodeAttributeXY_constraint; +ber_type_decoder_f NodeAttributeXY_decode_ber; +der_type_encoder_f NodeAttributeXY_encode_der; +xer_type_decoder_f NodeAttributeXY_decode_xer; +xer_type_encoder_f NodeAttributeXY_encode_xer; +oer_type_decoder_f NodeAttributeXY_decode_oer; +oer_type_encoder_f NodeAttributeXY_encode_oer; +per_type_decoder_f NodeAttributeXY_decode_uper; +per_type_encoder_f NodeAttributeXY_encode_uper; +per_type_decoder_f NodeAttributeXY_decode_aper; +per_type_encoder_f NodeAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXY_H_ */ +#include diff --git a/vcits/spatem/NodeAttributeXYList.h b/vcits/spatem/NodeAttributeXYList.h new file mode 100644 index 0000000..791cd09 --- /dev/null +++ b/vcits/spatem/NodeAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _NodeAttributeXYList_H_ +#define _NodeAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "NodeAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NodeAttributeXYList */ +typedef struct NodeAttributeXYList { + A_SEQUENCE_OF(NodeAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXYList_H_ */ +#include diff --git a/vcits/spatem/NodeLink.h b/vcits/spatem/NodeLink.h new file mode 100644 index 0000000..d12b813 --- /dev/null +++ b/vcits/spatem/NodeLink.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _NodeLink_H_ +#define _NodeLink_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Node; + +/* NodeLink */ +typedef struct NodeLink { + A_SEQUENCE_OF(struct Node) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeLink_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeLink; +extern asn_SET_OF_specifics_t asn_SPC_NodeLink_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeLink_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeLink_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeLink_H_ */ +#include diff --git a/vcits/spatem/NodeListXY.h b/vcits/spatem/NodeListXY.h new file mode 100644 index 0000000..12bd49d --- /dev/null +++ b/vcits/spatem/NodeListXY.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _NodeListXY_H_ +#define _NodeListXY_H_ + + +#include + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "ComputedLane.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeListXY_PR { + NodeListXY_PR_NOTHING, /* No components present */ + NodeListXY_PR_nodes, + NodeListXY_PR_computed + /* Extensions may appear below */ + +} NodeListXY_PR; + +/* NodeListXY */ +typedef struct NodeListXY { + NodeListXY_PR present; + union NodeListXY_u { + NodeSetXY_t nodes; + ComputedLane_t computed; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeListXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeListXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeListXY_1[2]; +extern asn_per_constraints_t asn_PER_type_NodeListXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeListXY_H_ */ +#include diff --git a/vcits/spatem/NodeOffsetPointXY.h b/vcits/spatem/NodeOffsetPointXY.h new file mode 100644 index 0000000..f404fca --- /dev/null +++ b/vcits/spatem/NodeOffsetPointXY.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _NodeOffsetPointXY_H_ +#define _NodeOffsetPointXY_H_ + + +#include + +/* Including external dependencies */ +#include "Node-XY-20b.h" +#include "Node-XY-22b.h" +#include "Node-XY-24b.h" +#include "Node-XY-26b.h" +#include "Node-XY-28b.h" +#include "Node-XY-32b.h" +#include "Node-LLmD-64b.h" +#include "RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeOffsetPointXY_PR { + NodeOffsetPointXY_PR_NOTHING, /* No components present */ + NodeOffsetPointXY_PR_node_XY1, + NodeOffsetPointXY_PR_node_XY2, + NodeOffsetPointXY_PR_node_XY3, + NodeOffsetPointXY_PR_node_XY4, + NodeOffsetPointXY_PR_node_XY5, + NodeOffsetPointXY_PR_node_XY6, + NodeOffsetPointXY_PR_node_LatLon, + NodeOffsetPointXY_PR_regional +} NodeOffsetPointXY_PR; + +/* NodeOffsetPointXY */ +typedef struct NodeOffsetPointXY { + NodeOffsetPointXY_PR present; + union NodeOffsetPointXY_u { + Node_XY_20b_t node_XY1; + Node_XY_22b_t node_XY2; + Node_XY_24b_t node_XY3; + Node_XY_26b_t node_XY4; + Node_XY_28b_t node_XY5; + Node_XY_32b_t node_XY6; + Node_LLmD_64b_t node_LatLon; + Reg_NodeOffsetPointXY_t regional; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeOffsetPointXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[8]; +extern asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeOffsetPointXY_H_ */ +#include diff --git a/vcits/spatem/NodeSetXY.h b/vcits/spatem/NodeSetXY.h new file mode 100644 index 0000000..cabe13e --- /dev/null +++ b/vcits/spatem/NodeSetXY.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _NodeSetXY_H_ +#define _NodeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeXY; + +/* NodeSetXY */ +typedef struct NodeSetXY { + A_SEQUENCE_OF(struct NodeXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeSetXY; +extern asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeSetXY_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeSetXY_H_ */ +#include diff --git a/vcits/spatem/NodeXY.h b/vcits/spatem/NodeXY.h new file mode 100644 index 0000000..9abed7e --- /dev/null +++ b/vcits/spatem/NodeXY.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _NodeXY_H_ +#define _NodeXY_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeSetXY; + +/* NodeXY */ +typedef struct NodeXY { + NodeOffsetPointXY_t delta; + struct NodeAttributeSetXY *attributes; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeXY_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeXY_H_ */ +#include diff --git a/vcits/spatem/NumberOfOccupants.h b/vcits/spatem/NumberOfOccupants.h new file mode 100644 index 0000000..2c0efd5 --- /dev/null +++ b/vcits/spatem/NumberOfOccupants.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _NumberOfOccupants_H_ +#define _NumberOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NumberOfOccupants { + NumberOfOccupants_oneOccupant = 1, + NumberOfOccupants_unavailable = 127 +} e_NumberOfOccupants; + +/* NumberOfOccupants */ +typedef long NumberOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants; +asn_struct_free_f NumberOfOccupants_free; +asn_struct_print_f NumberOfOccupants_print; +asn_constr_check_f NumberOfOccupants_constraint; +ber_type_decoder_f NumberOfOccupants_decode_ber; +der_type_encoder_f NumberOfOccupants_encode_der; +xer_type_decoder_f NumberOfOccupants_decode_xer; +xer_type_encoder_f NumberOfOccupants_encode_xer; +oer_type_decoder_f NumberOfOccupants_decode_oer; +oer_type_encoder_f NumberOfOccupants_encode_oer; +per_type_decoder_f NumberOfOccupants_decode_uper; +per_type_encoder_f NumberOfOccupants_encode_uper; +per_type_decoder_f NumberOfOccupants_decode_aper; +per_type_encoder_f NumberOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NumberOfOccupants_H_ */ +#include diff --git a/vcits/spatem/Offset-B09.h b/vcits/spatem/Offset-B09.h new file mode 100644 index 0000000..9f410df --- /dev/null +++ b/vcits/spatem/Offset-B09.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Offset_B09_H_ +#define _Offset_B09_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B09 */ +typedef long Offset_B09_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B09_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B09; +asn_struct_free_f Offset_B09_free; +asn_struct_print_f Offset_B09_print; +asn_constr_check_f Offset_B09_constraint; +ber_type_decoder_f Offset_B09_decode_ber; +der_type_encoder_f Offset_B09_encode_der; +xer_type_decoder_f Offset_B09_decode_xer; +xer_type_encoder_f Offset_B09_encode_xer; +oer_type_decoder_f Offset_B09_decode_oer; +oer_type_encoder_f Offset_B09_encode_oer; +per_type_decoder_f Offset_B09_decode_uper; +per_type_encoder_f Offset_B09_encode_uper; +per_type_decoder_f Offset_B09_decode_aper; +per_type_encoder_f Offset_B09_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B09_H_ */ +#include diff --git a/vcits/spatem/Offset-B10.h b/vcits/spatem/Offset-B10.h new file mode 100644 index 0000000..d237dbb --- /dev/null +++ b/vcits/spatem/Offset-B10.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Offset_B10_H_ +#define _Offset_B10_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B10 */ +typedef long Offset_B10_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B10_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B10; +asn_struct_free_f Offset_B10_free; +asn_struct_print_f Offset_B10_print; +asn_constr_check_f Offset_B10_constraint; +ber_type_decoder_f Offset_B10_decode_ber; +der_type_encoder_f Offset_B10_encode_der; +xer_type_decoder_f Offset_B10_decode_xer; +xer_type_encoder_f Offset_B10_encode_xer; +oer_type_decoder_f Offset_B10_decode_oer; +oer_type_encoder_f Offset_B10_encode_oer; +per_type_decoder_f Offset_B10_decode_uper; +per_type_encoder_f Offset_B10_encode_uper; +per_type_decoder_f Offset_B10_decode_aper; +per_type_encoder_f Offset_B10_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B10_H_ */ +#include diff --git a/vcits/spatem/Offset-B11.h b/vcits/spatem/Offset-B11.h new file mode 100644 index 0000000..f94ad54 --- /dev/null +++ b/vcits/spatem/Offset-B11.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Offset_B11_H_ +#define _Offset_B11_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B11 */ +typedef long Offset_B11_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B11_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B11; +asn_struct_free_f Offset_B11_free; +asn_struct_print_f Offset_B11_print; +asn_constr_check_f Offset_B11_constraint; +ber_type_decoder_f Offset_B11_decode_ber; +der_type_encoder_f Offset_B11_encode_der; +xer_type_decoder_f Offset_B11_decode_xer; +xer_type_encoder_f Offset_B11_encode_xer; +oer_type_decoder_f Offset_B11_decode_oer; +oer_type_encoder_f Offset_B11_encode_oer; +per_type_decoder_f Offset_B11_decode_uper; +per_type_encoder_f Offset_B11_encode_uper; +per_type_decoder_f Offset_B11_decode_aper; +per_type_encoder_f Offset_B11_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B11_H_ */ +#include diff --git a/vcits/spatem/Offset-B12.h b/vcits/spatem/Offset-B12.h new file mode 100644 index 0000000..48db822 --- /dev/null +++ b/vcits/spatem/Offset-B12.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Offset_B12_H_ +#define _Offset_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B12 */ +typedef long Offset_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B12; +asn_struct_free_f Offset_B12_free; +asn_struct_print_f Offset_B12_print; +asn_constr_check_f Offset_B12_constraint; +ber_type_decoder_f Offset_B12_decode_ber; +der_type_encoder_f Offset_B12_encode_der; +xer_type_decoder_f Offset_B12_decode_xer; +xer_type_encoder_f Offset_B12_encode_xer; +oer_type_decoder_f Offset_B12_decode_oer; +oer_type_encoder_f Offset_B12_encode_oer; +per_type_decoder_f Offset_B12_decode_uper; +per_type_encoder_f Offset_B12_encode_uper; +per_type_decoder_f Offset_B12_decode_aper; +per_type_encoder_f Offset_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B12_H_ */ +#include diff --git a/vcits/spatem/Offset-B13.h b/vcits/spatem/Offset-B13.h new file mode 100644 index 0000000..a3cf7ae --- /dev/null +++ b/vcits/spatem/Offset-B13.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Offset_B13_H_ +#define _Offset_B13_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B13 */ +typedef long Offset_B13_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B13_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B13; +asn_struct_free_f Offset_B13_free; +asn_struct_print_f Offset_B13_print; +asn_constr_check_f Offset_B13_constraint; +ber_type_decoder_f Offset_B13_decode_ber; +der_type_encoder_f Offset_B13_encode_der; +xer_type_decoder_f Offset_B13_decode_xer; +xer_type_encoder_f Offset_B13_encode_xer; +oer_type_decoder_f Offset_B13_decode_oer; +oer_type_encoder_f Offset_B13_encode_oer; +per_type_decoder_f Offset_B13_decode_uper; +per_type_encoder_f Offset_B13_encode_uper; +per_type_decoder_f Offset_B13_decode_aper; +per_type_encoder_f Offset_B13_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B13_H_ */ +#include diff --git a/vcits/spatem/Offset-B14.h b/vcits/spatem/Offset-B14.h new file mode 100644 index 0000000..ed7d35e --- /dev/null +++ b/vcits/spatem/Offset-B14.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Offset_B14_H_ +#define _Offset_B14_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B14 */ +typedef long Offset_B14_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B14_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B14; +asn_struct_free_f Offset_B14_free; +asn_struct_print_f Offset_B14_print; +asn_constr_check_f Offset_B14_constraint; +ber_type_decoder_f Offset_B14_decode_ber; +der_type_encoder_f Offset_B14_encode_der; +xer_type_decoder_f Offset_B14_decode_xer; +xer_type_encoder_f Offset_B14_encode_xer; +oer_type_decoder_f Offset_B14_decode_oer; +oer_type_encoder_f Offset_B14_encode_oer; +per_type_decoder_f Offset_B14_decode_uper; +per_type_encoder_f Offset_B14_encode_uper; +per_type_decoder_f Offset_B14_decode_aper; +per_type_encoder_f Offset_B14_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B14_H_ */ +#include diff --git a/vcits/spatem/Offset-B16.h b/vcits/spatem/Offset-B16.h new file mode 100644 index 0000000..a23a062 --- /dev/null +++ b/vcits/spatem/Offset-B16.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Offset_B16_H_ +#define _Offset_B16_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B16 */ +typedef long Offset_B16_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B16_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B16; +asn_struct_free_f Offset_B16_free; +asn_struct_print_f Offset_B16_print; +asn_constr_check_f Offset_B16_constraint; +ber_type_decoder_f Offset_B16_decode_ber; +der_type_encoder_f Offset_B16_encode_der; +xer_type_decoder_f Offset_B16_decode_xer; +xer_type_encoder_f Offset_B16_encode_xer; +oer_type_decoder_f Offset_B16_decode_oer; +oer_type_encoder_f Offset_B16_encode_oer; +per_type_decoder_f Offset_B16_decode_uper; +per_type_encoder_f Offset_B16_encode_uper; +per_type_decoder_f Offset_B16_decode_aper; +per_type_encoder_f Offset_B16_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B16_H_ */ +#include diff --git a/vcits/spatem/OpeningDaysHours.h b/vcits/spatem/OpeningDaysHours.h new file mode 100644 index 0000000..6432f2c --- /dev/null +++ b/vcits/spatem/OpeningDaysHours.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _OpeningDaysHours_H_ +#define _OpeningDaysHours_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OpeningDaysHours */ +typedef UTF8String_t OpeningDaysHours_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours; +asn_struct_free_f OpeningDaysHours_free; +asn_struct_print_f OpeningDaysHours_print; +asn_constr_check_f OpeningDaysHours_constraint; +ber_type_decoder_f OpeningDaysHours_decode_ber; +der_type_encoder_f OpeningDaysHours_encode_der; +xer_type_decoder_f OpeningDaysHours_decode_xer; +xer_type_encoder_f OpeningDaysHours_encode_xer; +oer_type_decoder_f OpeningDaysHours_decode_oer; +oer_type_encoder_f OpeningDaysHours_encode_oer; +per_type_decoder_f OpeningDaysHours_decode_uper; +per_type_encoder_f OpeningDaysHours_encode_uper; +per_type_decoder_f OpeningDaysHours_decode_aper; +per_type_encoder_f OpeningDaysHours_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OpeningDaysHours_H_ */ +#include diff --git a/vcits/spatem/OverlayLaneList.h b/vcits/spatem/OverlayLaneList.h new file mode 100644 index 0000000..84a14f2 --- /dev/null +++ b/vcits/spatem/OverlayLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _OverlayLaneList_H_ +#define _OverlayLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OverlayLaneList */ +typedef struct OverlayLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} OverlayLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OverlayLaneList; +extern asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_OverlayLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _OverlayLaneList_H_ */ +#include diff --git a/vcits/spatem/PathDeltaTime.h b/vcits/spatem/PathDeltaTime.h new file mode 100644 index 0000000..0471487 --- /dev/null +++ b/vcits/spatem/PathDeltaTime.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PathDeltaTime_H_ +#define _PathDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PathDeltaTime { + PathDeltaTime_tenMilliSecondsInPast = 1 +} e_PathDeltaTime; + +/* PathDeltaTime */ +typedef long PathDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PathDeltaTime; +asn_struct_free_f PathDeltaTime_free; +asn_struct_print_f PathDeltaTime_print; +asn_constr_check_f PathDeltaTime_constraint; +ber_type_decoder_f PathDeltaTime_decode_ber; +der_type_encoder_f PathDeltaTime_encode_der; +xer_type_decoder_f PathDeltaTime_decode_xer; +xer_type_encoder_f PathDeltaTime_encode_xer; +oer_type_decoder_f PathDeltaTime_decode_oer; +oer_type_encoder_f PathDeltaTime_encode_oer; +per_type_decoder_f PathDeltaTime_decode_uper; +per_type_encoder_f PathDeltaTime_encode_uper; +per_type_decoder_f PathDeltaTime_decode_aper; +per_type_encoder_f PathDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathDeltaTime_H_ */ +#include diff --git a/vcits/spatem/PathHistory.h b/vcits/spatem/PathHistory.h new file mode 100644 index 0000000..3bef656 --- /dev/null +++ b/vcits/spatem/PathHistory.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PathHistory_H_ +#define _PathHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathPoint; + +/* PathHistory */ +typedef struct PathHistory { + A_SEQUENCE_OF(struct PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathHistory; +extern asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_PathHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_PathHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathHistory_H_ */ +#include diff --git a/vcits/spatem/PathPoint.h b/vcits/spatem/PathPoint.h new file mode 100644 index 0000000..4debc5e --- /dev/null +++ b/vcits/spatem/PathPoint.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PathPoint_H_ +#define _PathPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PathPoint */ +typedef struct PathPoint { + DeltaReferencePosition_t pathPosition; + PathDeltaTime_t *pathDeltaTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_PathPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathPoint_H_ */ +#include diff --git a/vcits/spatem/PedestrianBicycleDetect.h b/vcits/spatem/PedestrianBicycleDetect.h new file mode 100644 index 0000000..82679da --- /dev/null +++ b/vcits/spatem/PedestrianBicycleDetect.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PedestrianBicycleDetect_H_ +#define _PedestrianBicycleDetect_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PedestrianBicycleDetect */ +typedef BOOLEAN_t PedestrianBicycleDetect_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect; +asn_struct_free_f PedestrianBicycleDetect_free; +asn_struct_print_f PedestrianBicycleDetect_print; +asn_constr_check_f PedestrianBicycleDetect_constraint; +ber_type_decoder_f PedestrianBicycleDetect_decode_ber; +der_type_encoder_f PedestrianBicycleDetect_encode_der; +xer_type_decoder_f PedestrianBicycleDetect_decode_xer; +xer_type_encoder_f PedestrianBicycleDetect_encode_xer; +oer_type_decoder_f PedestrianBicycleDetect_decode_oer; +oer_type_encoder_f PedestrianBicycleDetect_encode_oer; +per_type_decoder_f PedestrianBicycleDetect_decode_uper; +per_type_encoder_f PedestrianBicycleDetect_encode_uper; +per_type_decoder_f PedestrianBicycleDetect_decode_aper; +per_type_encoder_f PedestrianBicycleDetect_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PedestrianBicycleDetect_H_ */ +#include diff --git a/vcits/spatem/PerformanceClass.h b/vcits/spatem/PerformanceClass.h new file mode 100644 index 0000000..0cd5940 --- /dev/null +++ b/vcits/spatem/PerformanceClass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PerformanceClass_H_ +#define _PerformanceClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PerformanceClass { + PerformanceClass_unavailable = 0, + PerformanceClass_performanceClassA = 1, + PerformanceClass_performanceClassB = 2 +} e_PerformanceClass; + +/* PerformanceClass */ +typedef long PerformanceClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PerformanceClass; +asn_struct_free_f PerformanceClass_free; +asn_struct_print_f PerformanceClass_print; +asn_constr_check_f PerformanceClass_constraint; +ber_type_decoder_f PerformanceClass_decode_ber; +der_type_encoder_f PerformanceClass_encode_der; +xer_type_decoder_f PerformanceClass_decode_xer; +xer_type_encoder_f PerformanceClass_encode_xer; +oer_type_decoder_f PerformanceClass_decode_oer; +oer_type_encoder_f PerformanceClass_encode_oer; +per_type_decoder_f PerformanceClass_decode_uper; +per_type_encoder_f PerformanceClass_encode_uper; +per_type_decoder_f PerformanceClass_decode_aper; +per_type_encoder_f PerformanceClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PerformanceClass_H_ */ +#include diff --git a/vcits/spatem/PhoneNumber.h b/vcits/spatem/PhoneNumber.h new file mode 100644 index 0000000..2e72ed7 --- /dev/null +++ b/vcits/spatem/PhoneNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PhoneNumber_H_ +#define _PhoneNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PhoneNumber */ +typedef NumericString_t PhoneNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PhoneNumber; +asn_struct_free_f PhoneNumber_free; +asn_struct_print_f PhoneNumber_print; +asn_constr_check_f PhoneNumber_constraint; +ber_type_decoder_f PhoneNumber_decode_ber; +der_type_encoder_f PhoneNumber_encode_der; +xer_type_decoder_f PhoneNumber_decode_xer; +xer_type_encoder_f PhoneNumber_encode_xer; +oer_type_decoder_f PhoneNumber_decode_oer; +oer_type_encoder_f PhoneNumber_encode_oer; +per_type_decoder_f PhoneNumber_decode_uper; +per_type_encoder_f PhoneNumber_encode_uper; +per_type_decoder_f PhoneNumber_decode_aper; +per_type_encoder_f PhoneNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PhoneNumber_H_ */ +#include diff --git a/vcits/spatem/PosCentMass.h b/vcits/spatem/PosCentMass.h new file mode 100644 index 0000000..30e81ec --- /dev/null +++ b/vcits/spatem/PosCentMass.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PosCentMass_H_ +#define _PosCentMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosCentMass { + PosCentMass_tenCentimeters = 1, + PosCentMass_unavailable = 63 +} e_PosCentMass; + +/* PosCentMass */ +typedef long PosCentMass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosCentMass; +asn_struct_free_f PosCentMass_free; +asn_struct_print_f PosCentMass_print; +asn_constr_check_f PosCentMass_constraint; +ber_type_decoder_f PosCentMass_decode_ber; +der_type_encoder_f PosCentMass_encode_der; +xer_type_decoder_f PosCentMass_decode_xer; +xer_type_encoder_f PosCentMass_encode_xer; +oer_type_decoder_f PosCentMass_decode_oer; +oer_type_encoder_f PosCentMass_encode_oer; +per_type_decoder_f PosCentMass_decode_uper; +per_type_encoder_f PosCentMass_encode_uper; +per_type_decoder_f PosCentMass_decode_aper; +per_type_encoder_f PosCentMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosCentMass_H_ */ +#include diff --git a/vcits/spatem/PosConfidenceEllipse.h b/vcits/spatem/PosConfidenceEllipse.h new file mode 100644 index 0000000..bd2ef98 --- /dev/null +++ b/vcits/spatem/PosConfidenceEllipse.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PosConfidenceEllipse_H_ +#define _PosConfidenceEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "SemiAxisLength.h" +#include "HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PosConfidenceEllipse */ +typedef struct PosConfidenceEllipse { + SemiAxisLength_t semiMajorConfidence; + SemiAxisLength_t semiMinorConfidence; + HeadingValue_t semiMajorOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PosConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosConfidenceEllipse_H_ */ +#include diff --git a/vcits/spatem/PosFrontAx.h b/vcits/spatem/PosFrontAx.h new file mode 100644 index 0000000..cfa7fd8 --- /dev/null +++ b/vcits/spatem/PosFrontAx.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PosFrontAx_H_ +#define _PosFrontAx_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosFrontAx { + PosFrontAx_tenCentimeters = 1, + PosFrontAx_unavailable = 20 +} e_PosFrontAx; + +/* PosFrontAx */ +typedef long PosFrontAx_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosFrontAx; +asn_struct_free_f PosFrontAx_free; +asn_struct_print_f PosFrontAx_print; +asn_constr_check_f PosFrontAx_constraint; +ber_type_decoder_f PosFrontAx_decode_ber; +der_type_encoder_f PosFrontAx_encode_der; +xer_type_decoder_f PosFrontAx_decode_xer; +xer_type_encoder_f PosFrontAx_encode_xer; +oer_type_decoder_f PosFrontAx_decode_oer; +oer_type_encoder_f PosFrontAx_encode_oer; +per_type_decoder_f PosFrontAx_decode_uper; +per_type_encoder_f PosFrontAx_encode_uper; +per_type_decoder_f PosFrontAx_decode_aper; +per_type_encoder_f PosFrontAx_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosFrontAx_H_ */ +#include diff --git a/vcits/spatem/PosLonCarr.h b/vcits/spatem/PosLonCarr.h new file mode 100644 index 0000000..eb83023 --- /dev/null +++ b/vcits/spatem/PosLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PosLonCarr_H_ +#define _PosLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosLonCarr { + PosLonCarr_oneCentimeter = 1, + PosLonCarr_unavailable = 127 +} e_PosLonCarr; + +/* PosLonCarr */ +typedef long PosLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosLonCarr; +asn_struct_free_f PosLonCarr_free; +asn_struct_print_f PosLonCarr_print; +asn_constr_check_f PosLonCarr_constraint; +ber_type_decoder_f PosLonCarr_decode_ber; +der_type_encoder_f PosLonCarr_encode_der; +xer_type_decoder_f PosLonCarr_decode_xer; +xer_type_encoder_f PosLonCarr_encode_xer; +oer_type_decoder_f PosLonCarr_decode_oer; +oer_type_encoder_f PosLonCarr_encode_oer; +per_type_decoder_f PosLonCarr_decode_uper; +per_type_encoder_f PosLonCarr_encode_uper; +per_type_decoder_f PosLonCarr_decode_aper; +per_type_encoder_f PosLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosLonCarr_H_ */ +#include diff --git a/vcits/spatem/PosPillar.h b/vcits/spatem/PosPillar.h new file mode 100644 index 0000000..c634436 --- /dev/null +++ b/vcits/spatem/PosPillar.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PosPillar_H_ +#define _PosPillar_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosPillar { + PosPillar_tenCentimeters = 1, + PosPillar_unavailable = 30 +} e_PosPillar; + +/* PosPillar */ +typedef long PosPillar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PosPillar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PosPillar; +asn_struct_free_f PosPillar_free; +asn_struct_print_f PosPillar_print; +asn_constr_check_f PosPillar_constraint; +ber_type_decoder_f PosPillar_decode_ber; +der_type_encoder_f PosPillar_encode_der; +xer_type_decoder_f PosPillar_decode_xer; +xer_type_encoder_f PosPillar_encode_xer; +oer_type_decoder_f PosPillar_decode_oer; +oer_type_encoder_f PosPillar_encode_oer; +per_type_decoder_f PosPillar_decode_uper; +per_type_encoder_f PosPillar_encode_uper; +per_type_decoder_f PosPillar_decode_aper; +per_type_encoder_f PosPillar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosPillar_H_ */ +#include diff --git a/vcits/spatem/Position3D-addGrpC.h b/vcits/spatem/Position3D-addGrpC.h new file mode 100644 index 0000000..427ff7a --- /dev/null +++ b/vcits/spatem/Position3D-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Position3D_addGrpC_H_ +#define _Position3D_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Position3D-addGrpC */ +typedef struct Position3D_addGrpC { + Altitude_t altitude; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_addGrpC_H_ */ +#include diff --git a/vcits/spatem/Position3D.h b/vcits/spatem/Position3D.h new file mode 100644 index 0000000..6e930a6 --- /dev/null +++ b/vcits/spatem/Position3D.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Position3D_H_ +#define _Position3D_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "Elevation.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_Position3D; + +/* Position3D */ +typedef struct Position3D { + Latitude_t lat; + Longitude_t Long; + Elevation_t *elevation; /* OPTIONAL */ + struct Position3D__regional { + A_SEQUENCE_OF(struct Reg_Position3D) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_H_ */ +#include diff --git a/vcits/spatem/PositionConfidence.h b/vcits/spatem/PositionConfidence.h new file mode 100644 index 0000000..504c1c0 --- /dev/null +++ b/vcits/spatem/PositionConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PositionConfidence_H_ +#define _PositionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionConfidence { + PositionConfidence_unavailable = 0, + PositionConfidence_a500m = 1, + PositionConfidence_a200m = 2, + PositionConfidence_a100m = 3, + PositionConfidence_a50m = 4, + PositionConfidence_a20m = 5, + PositionConfidence_a10m = 6, + PositionConfidence_a5m = 7, + PositionConfidence_a2m = 8, + PositionConfidence_a1m = 9, + PositionConfidence_a50cm = 10, + PositionConfidence_a20cm = 11, + PositionConfidence_a10cm = 12, + PositionConfidence_a5cm = 13, + PositionConfidence_a2cm = 14, + PositionConfidence_a1cm = 15 +} e_PositionConfidence; + +/* PositionConfidence */ +typedef long PositionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1; +asn_struct_free_f PositionConfidence_free; +asn_struct_print_f PositionConfidence_print; +asn_constr_check_f PositionConfidence_constraint; +ber_type_decoder_f PositionConfidence_decode_ber; +der_type_encoder_f PositionConfidence_encode_der; +xer_type_decoder_f PositionConfidence_decode_xer; +xer_type_encoder_f PositionConfidence_encode_xer; +oer_type_decoder_f PositionConfidence_decode_oer; +oer_type_encoder_f PositionConfidence_encode_oer; +per_type_decoder_f PositionConfidence_decode_uper; +per_type_encoder_f PositionConfidence_encode_uper; +per_type_decoder_f PositionConfidence_decode_aper; +per_type_encoder_f PositionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidence_H_ */ +#include diff --git a/vcits/spatem/PositionConfidenceSet.h b/vcits/spatem/PositionConfidenceSet.h new file mode 100644 index 0000000..12b7e18 --- /dev/null +++ b/vcits/spatem/PositionConfidenceSet.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PositionConfidenceSet_H_ +#define _PositionConfidenceSet_H_ + + +#include + +/* Including external dependencies */ +#include "PositionConfidence.h" +#include "ElevationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionConfidenceSet */ +typedef struct PositionConfidenceSet { + PositionConfidence_t pos; + ElevationConfidence_t elevation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionConfidenceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidenceSet_H_ */ +#include diff --git a/vcits/spatem/PositionOfOccupants.h b/vcits/spatem/PositionOfOccupants.h new file mode 100644 index 0000000..84e29fd --- /dev/null +++ b/vcits/spatem/PositionOfOccupants.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PositionOfOccupants_H_ +#define _PositionOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionOfOccupants { + PositionOfOccupants_row1LeftOccupied = 0, + PositionOfOccupants_row1RightOccupied = 1, + PositionOfOccupants_row1MidOccupied = 2, + PositionOfOccupants_row1NotDetectable = 3, + PositionOfOccupants_row1NotPresent = 4, + PositionOfOccupants_row2LeftOccupied = 5, + PositionOfOccupants_row2RightOccupied = 6, + PositionOfOccupants_row2MidOccupied = 7, + PositionOfOccupants_row2NotDetectable = 8, + PositionOfOccupants_row2NotPresent = 9, + PositionOfOccupants_row3LeftOccupied = 10, + PositionOfOccupants_row3RightOccupied = 11, + PositionOfOccupants_row3MidOccupied = 12, + PositionOfOccupants_row3NotDetectable = 13, + PositionOfOccupants_row3NotPresent = 14, + PositionOfOccupants_row4LeftOccupied = 15, + PositionOfOccupants_row4RightOccupied = 16, + PositionOfOccupants_row4MidOccupied = 17, + PositionOfOccupants_row4NotDetectable = 18, + PositionOfOccupants_row4NotPresent = 19 +} e_PositionOfOccupants; + +/* PositionOfOccupants */ +typedef BIT_STRING_t PositionOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants; +asn_struct_free_f PositionOfOccupants_free; +asn_struct_print_f PositionOfOccupants_print; +asn_constr_check_f PositionOfOccupants_constraint; +ber_type_decoder_f PositionOfOccupants_decode_ber; +der_type_encoder_f PositionOfOccupants_encode_der; +xer_type_decoder_f PositionOfOccupants_decode_xer; +xer_type_encoder_f PositionOfOccupants_encode_xer; +oer_type_decoder_f PositionOfOccupants_decode_oer; +oer_type_encoder_f PositionOfOccupants_encode_oer; +per_type_decoder_f PositionOfOccupants_decode_uper; +per_type_encoder_f PositionOfOccupants_encode_uper; +per_type_decoder_f PositionOfOccupants_decode_aper; +per_type_encoder_f PositionOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfOccupants_H_ */ +#include diff --git a/vcits/spatem/PositionOfPillars.h b/vcits/spatem/PositionOfPillars.h new file mode 100644 index 0000000..a0c3f23 --- /dev/null +++ b/vcits/spatem/PositionOfPillars.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PositionOfPillars_H_ +#define _PositionOfPillars_H_ + + +#include + +/* Including external dependencies */ +#include "PosPillar.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionOfPillars */ +typedef struct PositionOfPillars { + A_SEQUENCE_OF(PosPillar_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionOfPillars_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfPillars; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfPillars_H_ */ +#include diff --git a/vcits/spatem/PositionalAccuracy.h b/vcits/spatem/PositionalAccuracy.h new file mode 100644 index 0000000..9f8e786 --- /dev/null +++ b/vcits/spatem/PositionalAccuracy.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PositionalAccuracy_H_ +#define _PositionalAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include "SemiMajorAxisAccuracy.h" +#include "SemiMinorAxisAccuracy.h" +#include "SemiMajorAxisOrientation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionalAccuracy */ +typedef struct PositionalAccuracy { + SemiMajorAxisAccuracy_t semiMajor; + SemiMinorAxisAccuracy_t semiMinor; + SemiMajorAxisOrientation_t orientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionalAccuracy_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionalAccuracy_H_ */ +#include diff --git a/vcits/spatem/PositioningSolutionType.h b/vcits/spatem/PositioningSolutionType.h new file mode 100644 index 0000000..2b06390 --- /dev/null +++ b/vcits/spatem/PositioningSolutionType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PositioningSolutionType_H_ +#define _PositioningSolutionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositioningSolutionType { + PositioningSolutionType_noPositioningSolution = 0, + PositioningSolutionType_sGNSS = 1, + PositioningSolutionType_dGNSS = 2, + PositioningSolutionType_sGNSSplusDR = 3, + PositioningSolutionType_dGNSSplusDR = 4, + PositioningSolutionType_dR = 5 + /* + * Enumeration is extensible + */ +} e_PositioningSolutionType; + +/* PositioningSolutionType */ +typedef long PositioningSolutionType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType; +asn_struct_free_f PositioningSolutionType_free; +asn_struct_print_f PositioningSolutionType_print; +asn_constr_check_f PositioningSolutionType_constraint; +ber_type_decoder_f PositioningSolutionType_decode_ber; +der_type_encoder_f PositioningSolutionType_encode_der; +xer_type_decoder_f PositioningSolutionType_decode_xer; +xer_type_encoder_f PositioningSolutionType_encode_xer; +oer_type_decoder_f PositioningSolutionType_decode_oer; +oer_type_encoder_f PositioningSolutionType_encode_oer; +per_type_decoder_f PositioningSolutionType_decode_uper; +per_type_encoder_f PositioningSolutionType_encode_uper; +per_type_decoder_f PositioningSolutionType_decode_aper; +per_type_encoder_f PositioningSolutionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositioningSolutionType_H_ */ +#include diff --git a/vcits/spatem/PostCrashSubCauseCode.h b/vcits/spatem/PostCrashSubCauseCode.h new file mode 100644 index 0000000..ea5465a --- /dev/null +++ b/vcits/spatem/PostCrashSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PostCrashSubCauseCode_H_ +#define _PostCrashSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PostCrashSubCauseCode { + PostCrashSubCauseCode_unavailable = 0, + PostCrashSubCauseCode_accidentWithoutECallTriggered = 1, + PostCrashSubCauseCode_accidentWithECallManuallyTriggered = 2, + PostCrashSubCauseCode_accidentWithECallAutomaticallyTriggered = 3, + PostCrashSubCauseCode_accidentWithECallTriggeredWithoutAccessToCellularNetwork = 4 +} e_PostCrashSubCauseCode; + +/* PostCrashSubCauseCode */ +typedef long PostCrashSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode; +asn_struct_free_f PostCrashSubCauseCode_free; +asn_struct_print_f PostCrashSubCauseCode_print; +asn_constr_check_f PostCrashSubCauseCode_constraint; +ber_type_decoder_f PostCrashSubCauseCode_decode_ber; +der_type_encoder_f PostCrashSubCauseCode_encode_der; +xer_type_decoder_f PostCrashSubCauseCode_decode_xer; +xer_type_encoder_f PostCrashSubCauseCode_encode_xer; +oer_type_decoder_f PostCrashSubCauseCode_decode_oer; +oer_type_encoder_f PostCrashSubCauseCode_encode_oer; +per_type_decoder_f PostCrashSubCauseCode_decode_uper; +per_type_encoder_f PostCrashSubCauseCode_encode_uper; +per_type_decoder_f PostCrashSubCauseCode_decode_aper; +per_type_encoder_f PostCrashSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PostCrashSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/PreemptPriorityList.h b/vcits/spatem/PreemptPriorityList.h new file mode 100644 index 0000000..29780d7 --- /dev/null +++ b/vcits/spatem/PreemptPriorityList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PreemptPriorityList_H_ +#define _PreemptPriorityList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalControlZone; + +/* PreemptPriorityList */ +typedef struct PreemptPriorityList { + A_SEQUENCE_OF(struct SignalControlZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PreemptPriorityList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList; +extern asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1; +extern asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[1]; +extern asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PreemptPriorityList_H_ */ +#include diff --git a/vcits/spatem/PrioritizationResponse.h b/vcits/spatem/PrioritizationResponse.h new file mode 100644 index 0000000..0714a57 --- /dev/null +++ b/vcits/spatem/PrioritizationResponse.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PrioritizationResponse_H_ +#define _PrioritizationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "PrioritizationResponseStatus.h" +#include "SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PrioritizationResponse */ +typedef struct PrioritizationResponse { + StationID_t stationID; + PrioritizationResponseStatus_t priorState; + SignalGroupID_t signalGroup; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponse_H_ */ +#include diff --git a/vcits/spatem/PrioritizationResponseList.h b/vcits/spatem/PrioritizationResponseList.h new file mode 100644 index 0000000..6357273 --- /dev/null +++ b/vcits/spatem/PrioritizationResponseList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PrioritizationResponseList_H_ +#define _PrioritizationResponseList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponse; + +/* PrioritizationResponseList */ +typedef struct PrioritizationResponseList { + A_SEQUENCE_OF(struct PrioritizationResponse) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList; +extern asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[1]; +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseList_H_ */ +#include diff --git a/vcits/spatem/PrioritizationResponseStatus.h b/vcits/spatem/PrioritizationResponseStatus.h new file mode 100644 index 0000000..ddcef91 --- /dev/null +++ b/vcits/spatem/PrioritizationResponseStatus.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PrioritizationResponseStatus_H_ +#define _PrioritizationResponseStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PrioritizationResponseStatus { + PrioritizationResponseStatus_unknown = 0, + PrioritizationResponseStatus_requested = 1, + PrioritizationResponseStatus_processing = 2, + PrioritizationResponseStatus_watchOtherTraffic = 3, + PrioritizationResponseStatus_granted = 4, + PrioritizationResponseStatus_rejected = 5, + PrioritizationResponseStatus_maxPresence = 6, + PrioritizationResponseStatus_reserviceLocked = 7 + /* + * Enumeration is extensible + */ +} e_PrioritizationResponseStatus; + +/* PrioritizationResponseStatus */ +typedef long PrioritizationResponseStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus; +extern const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1; +asn_struct_free_f PrioritizationResponseStatus_free; +asn_struct_print_f PrioritizationResponseStatus_print; +asn_constr_check_f PrioritizationResponseStatus_constraint; +ber_type_decoder_f PrioritizationResponseStatus_decode_ber; +der_type_encoder_f PrioritizationResponseStatus_encode_der; +xer_type_decoder_f PrioritizationResponseStatus_decode_xer; +xer_type_encoder_f PrioritizationResponseStatus_encode_xer; +oer_type_decoder_f PrioritizationResponseStatus_decode_oer; +oer_type_encoder_f PrioritizationResponseStatus_encode_oer; +per_type_decoder_f PrioritizationResponseStatus_decode_uper; +per_type_encoder_f PrioritizationResponseStatus_encode_uper; +per_type_decoder_f PrioritizationResponseStatus_decode_aper; +per_type_encoder_f PrioritizationResponseStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseStatus_H_ */ +#include diff --git a/vcits/spatem/PriorityRequestType.h b/vcits/spatem/PriorityRequestType.h new file mode 100644 index 0000000..7c82c38 --- /dev/null +++ b/vcits/spatem/PriorityRequestType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PriorityRequestType_H_ +#define _PriorityRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PriorityRequestType { + PriorityRequestType_priorityRequestTypeReserved = 0, + PriorityRequestType_priorityRequest = 1, + PriorityRequestType_priorityRequestUpdate = 2, + PriorityRequestType_priorityCancellation = 3 + /* + * Enumeration is extensible + */ +} e_PriorityRequestType; + +/* PriorityRequestType */ +typedef long PriorityRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PriorityRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1; +asn_struct_free_f PriorityRequestType_free; +asn_struct_print_f PriorityRequestType_print; +asn_constr_check_f PriorityRequestType_constraint; +ber_type_decoder_f PriorityRequestType_decode_ber; +der_type_encoder_f PriorityRequestType_encode_der; +xer_type_decoder_f PriorityRequestType_decode_xer; +xer_type_encoder_f PriorityRequestType_encode_xer; +oer_type_decoder_f PriorityRequestType_decode_oer; +oer_type_encoder_f PriorityRequestType_encode_oer; +per_type_decoder_f PriorityRequestType_decode_uper; +per_type_encoder_f PriorityRequestType_encode_uper; +per_type_decoder_f PriorityRequestType_decode_aper; +per_type_encoder_f PriorityRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PriorityRequestType_H_ */ +#include diff --git a/vcits/spatem/ProtectedCommunicationZone.h b/vcits/spatem/ProtectedCommunicationZone.h new file mode 100644 index 0000000..6ef71aa --- /dev/null +++ b/vcits/spatem/ProtectedCommunicationZone.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ProtectedCommunicationZone_H_ +#define _ProtectedCommunicationZone_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneType.h" +#include "TimestampIts.h" +#include "Latitude.h" +#include "Longitude.h" +#include "ProtectedZoneRadius.h" +#include "ProtectedZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedCommunicationZone */ +typedef struct ProtectedCommunicationZone { + ProtectedZoneType_t protectedZoneType; + TimestampIts_t *expiryTime; /* OPTIONAL */ + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + ProtectedZoneRadius_t *protectedZoneRadius; /* OPTIONAL */ + ProtectedZoneID_t *protectedZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone; +extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZone_H_ */ +#include diff --git a/vcits/spatem/ProtectedCommunicationZonesRSU.h b/vcits/spatem/ProtectedCommunicationZonesRSU.h new file mode 100644 index 0000000..83d5e57 --- /dev/null +++ b/vcits/spatem/ProtectedCommunicationZonesRSU.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ProtectedCommunicationZonesRSU_H_ +#define _ProtectedCommunicationZonesRSU_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtectedCommunicationZone; + +/* ProtectedCommunicationZonesRSU */ +typedef struct ProtectedCommunicationZonesRSU { + A_SEQUENCE_OF(struct ProtectedCommunicationZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZonesRSU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZonesRSU_H_ */ +#include diff --git a/vcits/spatem/ProtectedZoneID.h b/vcits/spatem/ProtectedZoneID.h new file mode 100644 index 0000000..0cb6d09 --- /dev/null +++ b/vcits/spatem/ProtectedZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ProtectedZoneID_H_ +#define _ProtectedZoneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedZoneID */ +typedef long ProtectedZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID; +asn_struct_free_f ProtectedZoneID_free; +asn_struct_print_f ProtectedZoneID_print; +asn_constr_check_f ProtectedZoneID_constraint; +ber_type_decoder_f ProtectedZoneID_decode_ber; +der_type_encoder_f ProtectedZoneID_encode_der; +xer_type_decoder_f ProtectedZoneID_decode_xer; +xer_type_encoder_f ProtectedZoneID_encode_xer; +oer_type_decoder_f ProtectedZoneID_decode_oer; +oer_type_encoder_f ProtectedZoneID_encode_oer; +per_type_decoder_f ProtectedZoneID_decode_uper; +per_type_encoder_f ProtectedZoneID_encode_uper; +per_type_decoder_f ProtectedZoneID_decode_aper; +per_type_encoder_f ProtectedZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneID_H_ */ +#include diff --git a/vcits/spatem/ProtectedZoneRadius.h b/vcits/spatem/ProtectedZoneRadius.h new file mode 100644 index 0000000..05f95df --- /dev/null +++ b/vcits/spatem/ProtectedZoneRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ProtectedZoneRadius_H_ +#define _ProtectedZoneRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneRadius { + ProtectedZoneRadius_oneMeter = 1 +} e_ProtectedZoneRadius; + +/* ProtectedZoneRadius */ +typedef long ProtectedZoneRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius; +asn_struct_free_f ProtectedZoneRadius_free; +asn_struct_print_f ProtectedZoneRadius_print; +asn_constr_check_f ProtectedZoneRadius_constraint; +ber_type_decoder_f ProtectedZoneRadius_decode_ber; +der_type_encoder_f ProtectedZoneRadius_encode_der; +xer_type_decoder_f ProtectedZoneRadius_decode_xer; +xer_type_encoder_f ProtectedZoneRadius_encode_xer; +oer_type_decoder_f ProtectedZoneRadius_decode_oer; +oer_type_encoder_f ProtectedZoneRadius_encode_oer; +per_type_decoder_f ProtectedZoneRadius_decode_uper; +per_type_encoder_f ProtectedZoneRadius_encode_uper; +per_type_decoder_f ProtectedZoneRadius_decode_aper; +per_type_encoder_f ProtectedZoneRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneRadius_H_ */ +#include diff --git a/vcits/spatem/ProtectedZoneType.h b/vcits/spatem/ProtectedZoneType.h new file mode 100644 index 0000000..7b1c660 --- /dev/null +++ b/vcits/spatem/ProtectedZoneType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ProtectedZoneType_H_ +#define _ProtectedZoneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneType { + ProtectedZoneType_permanentCenDsrcTolling = 0, + /* + * Enumeration is extensible + */ + ProtectedZoneType_temporaryCenDsrcTolling = 1 +} e_ProtectedZoneType; + +/* ProtectedZoneType */ +typedef long ProtectedZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1; +asn_struct_free_f ProtectedZoneType_free; +asn_struct_print_f ProtectedZoneType_print; +asn_constr_check_f ProtectedZoneType_constraint; +ber_type_decoder_f ProtectedZoneType_decode_ber; +der_type_encoder_f ProtectedZoneType_encode_der; +xer_type_decoder_f ProtectedZoneType_decode_xer; +xer_type_encoder_f ProtectedZoneType_encode_xer; +oer_type_decoder_f ProtectedZoneType_decode_oer; +oer_type_encoder_f ProtectedZoneType_encode_oer; +per_type_decoder_f ProtectedZoneType_decode_uper; +per_type_encoder_f ProtectedZoneType_encode_uper; +per_type_decoder_f ProtectedZoneType_decode_aper; +per_type_encoder_f ProtectedZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneType_H_ */ +#include diff --git a/vcits/spatem/PtActivation.h b/vcits/spatem/PtActivation.h new file mode 100644 index 0000000..fd975c9 --- /dev/null +++ b/vcits/spatem/PtActivation.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PtActivation_H_ +#define _PtActivation_H_ + + +#include + +/* Including external dependencies */ +#include "PtActivationType.h" +#include "PtActivationData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivation */ +typedef struct PtActivation { + PtActivationType_t ptActivationType; + PtActivationData_t ptActivationData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PtActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PtActivation; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivation_H_ */ +#include diff --git a/vcits/spatem/PtActivationData.h b/vcits/spatem/PtActivationData.h new file mode 100644 index 0000000..2f306e8 --- /dev/null +++ b/vcits/spatem/PtActivationData.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PtActivationData_H_ +#define _PtActivationData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivationData */ +typedef OCTET_STRING_t PtActivationData_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationData_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationData; +asn_struct_free_f PtActivationData_free; +asn_struct_print_f PtActivationData_print; +asn_constr_check_f PtActivationData_constraint; +ber_type_decoder_f PtActivationData_decode_ber; +der_type_encoder_f PtActivationData_encode_der; +xer_type_decoder_f PtActivationData_decode_xer; +xer_type_encoder_f PtActivationData_encode_xer; +oer_type_decoder_f PtActivationData_decode_oer; +oer_type_encoder_f PtActivationData_encode_oer; +per_type_decoder_f PtActivationData_decode_uper; +per_type_encoder_f PtActivationData_encode_uper; +per_type_decoder_f PtActivationData_decode_aper; +per_type_encoder_f PtActivationData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationData_H_ */ +#include diff --git a/vcits/spatem/PtActivationType.h b/vcits/spatem/PtActivationType.h new file mode 100644 index 0000000..1fc4395 --- /dev/null +++ b/vcits/spatem/PtActivationType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PtActivationType_H_ +#define _PtActivationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtActivationType { + PtActivationType_undefinedCodingType = 0, + PtActivationType_r09_16CodingType = 1, + PtActivationType_vdv_50149CodingType = 2 +} e_PtActivationType; + +/* PtActivationType */ +typedef long PtActivationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationType; +asn_struct_free_f PtActivationType_free; +asn_struct_print_f PtActivationType_print; +asn_constr_check_f PtActivationType_constraint; +ber_type_decoder_f PtActivationType_decode_ber; +der_type_encoder_f PtActivationType_encode_der; +xer_type_decoder_f PtActivationType_decode_xer; +xer_type_encoder_f PtActivationType_encode_xer; +oer_type_decoder_f PtActivationType_decode_oer; +oer_type_encoder_f PtActivationType_encode_oer; +per_type_decoder_f PtActivationType_decode_uper; +per_type_encoder_f PtActivationType_encode_uper; +per_type_decoder_f PtActivationType_decode_aper; +per_type_encoder_f PtActivationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationType_H_ */ +#include diff --git a/vcits/spatem/PtvRequestType.h b/vcits/spatem/PtvRequestType.h new file mode 100644 index 0000000..fc7628a --- /dev/null +++ b/vcits/spatem/PtvRequestType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _PtvRequestType_H_ +#define _PtvRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtvRequestType { + PtvRequestType_preRequest = 0, + PtvRequestType_mainRequest = 1, + PtvRequestType_doorCloseRequest = 2, + PtvRequestType_cancelRequest = 3, + PtvRequestType_emergencyRequest = 4 + /* + * Enumeration is extensible + */ +} e_PtvRequestType; + +/* PtvRequestType */ +typedef long PtvRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtvRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtvRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PtvRequestType_specs_1; +asn_struct_free_f PtvRequestType_free; +asn_struct_print_f PtvRequestType_print; +asn_constr_check_f PtvRequestType_constraint; +ber_type_decoder_f PtvRequestType_decode_ber; +der_type_encoder_f PtvRequestType_encode_der; +xer_type_decoder_f PtvRequestType_decode_xer; +xer_type_encoder_f PtvRequestType_encode_xer; +oer_type_decoder_f PtvRequestType_decode_oer; +oer_type_encoder_f PtvRequestType_encode_oer; +per_type_decoder_f PtvRequestType_decode_uper; +per_type_encoder_f PtvRequestType_encode_uper; +per_type_decoder_f PtvRequestType_decode_aper; +per_type_encoder_f PtvRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtvRequestType_H_ */ +#include diff --git a/vcits/spatem/RTCM-Revision.h b/vcits/spatem/RTCM-Revision.h new file mode 100644 index 0000000..bd53ba6 --- /dev/null +++ b/vcits/spatem/RTCM-Revision.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RTCM_Revision_H_ +#define _RTCM_Revision_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RTCM_Revision { + RTCM_Revision_unknown = 0, + RTCM_Revision_rtcmRev2 = 1, + RTCM_Revision_rtcmRev3 = 2, + RTCM_Revision_reserved = 3 + /* + * Enumeration is extensible + */ +} e_RTCM_Revision; + +/* RTCM-Revision */ +typedef long RTCM_Revision_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCM_Revision; +extern const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1; +asn_struct_free_f RTCM_Revision_free; +asn_struct_print_f RTCM_Revision_print; +asn_constr_check_f RTCM_Revision_constraint; +ber_type_decoder_f RTCM_Revision_decode_ber; +der_type_encoder_f RTCM_Revision_encode_der; +xer_type_decoder_f RTCM_Revision_decode_xer; +xer_type_encoder_f RTCM_Revision_encode_xer; +oer_type_decoder_f RTCM_Revision_decode_oer; +oer_type_encoder_f RTCM_Revision_encode_oer; +per_type_decoder_f RTCM_Revision_decode_uper; +per_type_encoder_f RTCM_Revision_encode_uper; +per_type_decoder_f RTCM_Revision_decode_aper; +per_type_encoder_f RTCM_Revision_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCM_Revision_H_ */ +#include diff --git a/vcits/spatem/RTCMcorrections.h b/vcits/spatem/RTCMcorrections.h new file mode 100644 index 0000000..2a10de0 --- /dev/null +++ b/vcits/spatem/RTCMcorrections.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RTCMcorrections_H_ +#define _RTCMcorrections_H_ + + +#include + +/* Including external dependencies */ +#include "MsgCount.h" +#include "RTCM-Revision.h" +#include "MinuteOfTheYear.h" +#include "RTCMmessageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FullPositionVector; +struct RTCMheader; +struct Reg_RTCMcorrections; + +/* RTCMcorrections */ +typedef struct RTCMcorrections { + MsgCount_t msgCnt; + RTCM_Revision_t rev; + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + struct FullPositionVector *anchorPoint; /* OPTIONAL */ + struct RTCMheader *rtcmHeader; /* OPTIONAL */ + RTCMmessageList_t msgs; + struct RTCMcorrections__regional { + A_SEQUENCE_OF(struct Reg_RTCMcorrections) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMcorrections_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMcorrections; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMcorrections_H_ */ +#include diff --git a/vcits/spatem/RTCMheader.h b/vcits/spatem/RTCMheader.h new file mode 100644 index 0000000..64da035 --- /dev/null +++ b/vcits/spatem/RTCMheader.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RTCMheader_H_ +#define _RTCMheader_H_ + + +#include + +/* Including external dependencies */ +#include "GNSSstatus.h" +#include "AntennaOffsetSet.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMheader */ +typedef struct RTCMheader { + GNSSstatus_t status; + AntennaOffsetSet_t offsetSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMheader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMheader; +extern asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMheader_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMheader_H_ */ +#include diff --git a/vcits/spatem/RTCMmessage.h b/vcits/spatem/RTCMmessage.h new file mode 100644 index 0000000..c100624 --- /dev/null +++ b/vcits/spatem/RTCMmessage.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RTCMmessage_H_ +#define _RTCMmessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessage */ +typedef OCTET_STRING_t RTCMmessage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessage; +asn_struct_free_f RTCMmessage_free; +asn_struct_print_f RTCMmessage_print; +asn_constr_check_f RTCMmessage_constraint; +ber_type_decoder_f RTCMmessage_decode_ber; +der_type_encoder_f RTCMmessage_encode_der; +xer_type_decoder_f RTCMmessage_decode_xer; +xer_type_encoder_f RTCMmessage_encode_xer; +oer_type_decoder_f RTCMmessage_decode_oer; +oer_type_encoder_f RTCMmessage_encode_oer; +per_type_decoder_f RTCMmessage_decode_uper; +per_type_encoder_f RTCMmessage_encode_uper; +per_type_decoder_f RTCMmessage_decode_aper; +per_type_encoder_f RTCMmessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessage_H_ */ +#include diff --git a/vcits/spatem/RTCMmessageList.h b/vcits/spatem/RTCMmessageList.h new file mode 100644 index 0000000..6cd5fcd --- /dev/null +++ b/vcits/spatem/RTCMmessageList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RTCMmessageList_H_ +#define _RTCMmessageList_H_ + + +#include + +/* Including external dependencies */ +#include "RTCMmessage.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessageList */ +typedef struct RTCMmessageList { + A_SEQUENCE_OF(RTCMmessage_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMmessageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessageList; +extern asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMmessageList_1[1]; +extern asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessageList_H_ */ +#include diff --git a/vcits/spatem/ReferencePosition.h b/vcits/spatem/ReferencePosition.h new file mode 100644 index 0000000..17851cf --- /dev/null +++ b/vcits/spatem/ReferencePosition.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ReferencePosition_H_ +#define _ReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "PosConfidenceEllipse.h" +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReferencePosition */ +typedef struct ReferencePosition { + Latitude_t latitude; + Longitude_t longitude; + PosConfidenceEllipse_t positionConfidenceEllipse; + Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ReferencePosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReferencePosition_H_ */ +#include diff --git a/vcits/spatem/RegionId.h b/vcits/spatem/RegionId.h new file mode 100644 index 0000000..4209986 --- /dev/null +++ b/vcits/spatem/RegionId.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RegionId_H_ +#define _RegionId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegionId */ +typedef long RegionId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RegionId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RegionId; +asn_struct_free_f RegionId_free; +asn_struct_print_f RegionId_print; +asn_constr_check_f RegionId_constraint; +ber_type_decoder_f RegionId_decode_ber; +der_type_encoder_f RegionId_encode_der; +xer_type_decoder_f RegionId_decode_xer; +xer_type_encoder_f RegionId_encode_xer; +oer_type_decoder_f RegionId_decode_oer; +oer_type_encoder_f RegionId_encode_oer; +per_type_decoder_f RegionId_decode_uper; +per_type_encoder_f RegionId_encode_uper; +per_type_decoder_f RegionId_decode_aper; +per_type_encoder_f RegionId_encode_aper; +#define RegionId_noRegion ((RegionId_t)0) +#define RegionId_addGrpA ((RegionId_t)1) +#define RegionId_addGrpB ((RegionId_t)2) +#define RegionId_addGrpC ((RegionId_t)3) + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionId_H_ */ +#include diff --git a/vcits/spatem/RegionalExtension.h b/vcits/spatem/RegionalExtension.h new file mode 100644 index 0000000..aa274b0 --- /dev/null +++ b/vcits/spatem/RegionalExtension.h @@ -0,0 +1,626 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RegionalExtension_H_ +#define _RegionalExtension_H_ + + +#include + +/* Including external dependencies */ +#include "RegionId.h" +#include +#include +#include "MapData-addGrpC.h" +#include +#include +#include +#include "ConnectionManeuverAssist-addGrpC.h" +#include "ConnectionTrajectory-addGrpC.h" +#include "IntersectionState-addGrpC.h" +#include "LaneAttributes-addGrpC.h" +#include "MovementEvent-addGrpC.h" +#include "NodeAttributeSet-addGrpC.h" +#include "Position3D-addGrpC.h" +#include "RequestorDescription-addGrpC.h" +#include "RestrictionUserType-addGrpC.h" +#include "SignalStatusPackage-addGrpC.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Reg_MapData__regExtValue_PR { + Reg_MapData__regExtValue_PR_NOTHING, /* No components present */ + Reg_MapData__regExtValue_PR_MapData_addGrpC +} Reg_MapData__regExtValue_PR; +typedef enum Reg_RTCMcorrections__regExtValue_PR { + Reg_RTCMcorrections__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RTCMcorrections__regExtValue_PR; +typedef enum Reg_SPAT__regExtValue_PR { + Reg_SPAT__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SPAT__regExtValue_PR; +typedef enum Reg_SignalRequestMessage__regExtValue_PR { + Reg_SignalRequestMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestMessage__regExtValue_PR; +typedef enum Reg_SignalStatusMessage__regExtValue_PR { + Reg_SignalStatusMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatusMessage__regExtValue_PR; +typedef enum Reg_AdvisorySpeed__regExtValue_PR { + Reg_AdvisorySpeed__regExtValue_PR_NOTHING /* No components present */ + +} Reg_AdvisorySpeed__regExtValue_PR; +typedef enum Reg_ComputedLane__regExtValue_PR { + Reg_ComputedLane__regExtValue_PR_NOTHING /* No components present */ + +} Reg_ComputedLane__regExtValue_PR; +typedef enum Reg_ConnectionManeuverAssist__regExtValue_PR { + Reg_ConnectionManeuverAssist__regExtValue_PR_NOTHING, /* No components present */ + Reg_ConnectionManeuverAssist__regExtValue_PR_ConnectionManeuverAssist_addGrpC +} Reg_ConnectionManeuverAssist__regExtValue_PR; +typedef enum Reg_GenericLane__regExtValue_PR { + Reg_GenericLane__regExtValue_PR_NOTHING, /* No components present */ + Reg_GenericLane__regExtValue_PR_ConnectionTrajectory_addGrpC +} Reg_GenericLane__regExtValue_PR; +typedef enum Reg_IntersectionGeometry__regExtValue_PR { + Reg_IntersectionGeometry__regExtValue_PR_NOTHING /* No components present */ + +} Reg_IntersectionGeometry__regExtValue_PR; +typedef enum Reg_IntersectionState__regExtValue_PR { + Reg_IntersectionState__regExtValue_PR_NOTHING, /* No components present */ + Reg_IntersectionState__regExtValue_PR_IntersectionState_addGrpC +} Reg_IntersectionState__regExtValue_PR; +typedef enum Reg_LaneAttributes__regExtValue_PR { + Reg_LaneAttributes__regExtValue_PR_NOTHING, /* No components present */ + Reg_LaneAttributes__regExtValue_PR_LaneAttributes_addGrpC +} Reg_LaneAttributes__regExtValue_PR; +typedef enum Reg_LaneDataAttribute__regExtValue_PR { + Reg_LaneDataAttribute__regExtValue_PR_NOTHING /* No components present */ + +} Reg_LaneDataAttribute__regExtValue_PR; +typedef enum Reg_MovementEvent__regExtValue_PR { + Reg_MovementEvent__regExtValue_PR_NOTHING, /* No components present */ + Reg_MovementEvent__regExtValue_PR_MovementEvent_addGrpC +} Reg_MovementEvent__regExtValue_PR; +typedef enum Reg_MovementState__regExtValue_PR { + Reg_MovementState__regExtValue_PR_NOTHING /* No components present */ + +} Reg_MovementState__regExtValue_PR; +typedef enum Reg_NodeAttributeSetXY__regExtValue_PR { + Reg_NodeAttributeSetXY__regExtValue_PR_NOTHING, /* No components present */ + Reg_NodeAttributeSetXY__regExtValue_PR_NodeAttributeSet_addGrpC +} Reg_NodeAttributeSetXY__regExtValue_PR; +typedef enum Reg_NodeOffsetPointXY__regExtValue_PR { + Reg_NodeOffsetPointXY__regExtValue_PR_NOTHING /* No components present */ + +} Reg_NodeOffsetPointXY__regExtValue_PR; +typedef enum Reg_Position3D__regExtValue_PR { + Reg_Position3D__regExtValue_PR_NOTHING, /* No components present */ + Reg_Position3D__regExtValue_PR_Position3D_addGrpC +} Reg_Position3D__regExtValue_PR; +typedef enum Reg_RequestorDescription__regExtValue_PR { + Reg_RequestorDescription__regExtValue_PR_NOTHING, /* No components present */ + Reg_RequestorDescription__regExtValue_PR_RequestorDescription_addGrpC +} Reg_RequestorDescription__regExtValue_PR; +typedef enum Reg_RequestorType__regExtValue_PR { + Reg_RequestorType__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RequestorType__regExtValue_PR; +typedef enum Reg_RestrictionUserType__regExtValue_PR { + Reg_RestrictionUserType__regExtValue_PR_NOTHING, /* No components present */ + Reg_RestrictionUserType__regExtValue_PR_RestrictionUserType_addGrpC +} Reg_RestrictionUserType__regExtValue_PR; +typedef enum Reg_RoadSegment__regExtValue_PR { + Reg_RoadSegment__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RoadSegment__regExtValue_PR; +typedef enum Reg_SignalControlZone__regExtValue_PR { + Reg_SignalControlZone__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalControlZone__regExtValue_PR; +typedef enum Reg_SignalRequest__regExtValue_PR { + Reg_SignalRequest__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequest__regExtValue_PR; +typedef enum Reg_SignalRequestPackage__regExtValue_PR { + Reg_SignalRequestPackage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestPackage__regExtValue_PR; +typedef enum Reg_SignalStatus__regExtValue_PR { + Reg_SignalStatus__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatus__regExtValue_PR; +typedef enum Reg_SignalStatusPackage__regExtValue_PR { + Reg_SignalStatusPackage__regExtValue_PR_NOTHING, /* No components present */ + Reg_SignalStatusPackage__regExtValue_PR_SignalStatusPackage_addGrpC +} Reg_SignalStatusPackage__regExtValue_PR; + +/* RegionalExtension */ +typedef struct Reg_MapData { + RegionId_t regionId; + struct Reg_MapData__regExtValue { + Reg_MapData__regExtValue_PR present; + union Reg_MapData__regExtValue_u { + MapData_addGrpC_t MapData_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MapData_t; +typedef struct Reg_RTCMcorrections { + RegionId_t regionId; + struct Reg_RTCMcorrections__regExtValue { + Reg_RTCMcorrections__regExtValue_PR present; + union Reg_RTCMcorrections__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RTCMcorrections_t; +typedef struct Reg_SPAT { + RegionId_t regionId; + struct Reg_SPAT__regExtValue { + Reg_SPAT__regExtValue_PR present; + union Reg_SPAT__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SPAT_t; +typedef struct Reg_SignalRequestMessage { + RegionId_t regionId; + struct Reg_SignalRequestMessage__regExtValue { + Reg_SignalRequestMessage__regExtValue_PR present; + union Reg_SignalRequestMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestMessage_t; +typedef struct Reg_SignalStatusMessage { + RegionId_t regionId; + struct Reg_SignalStatusMessage__regExtValue { + Reg_SignalStatusMessage__regExtValue_PR present; + union Reg_SignalStatusMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusMessage_t; +typedef struct Reg_AdvisorySpeed { + RegionId_t regionId; + struct Reg_AdvisorySpeed__regExtValue { + Reg_AdvisorySpeed__regExtValue_PR present; + union Reg_AdvisorySpeed__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_AdvisorySpeed_t; +typedef struct Reg_ComputedLane { + RegionId_t regionId; + struct Reg_ComputedLane__regExtValue { + Reg_ComputedLane__regExtValue_PR present; + union Reg_ComputedLane__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ComputedLane_t; +typedef struct Reg_ConnectionManeuverAssist { + RegionId_t regionId; + struct Reg_ConnectionManeuverAssist__regExtValue { + Reg_ConnectionManeuverAssist__regExtValue_PR present; + union Reg_ConnectionManeuverAssist__regExtValue_u { + ConnectionManeuverAssist_addGrpC_t ConnectionManeuverAssist_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ConnectionManeuverAssist_t; +typedef struct Reg_GenericLane { + RegionId_t regionId; + struct Reg_GenericLane__regExtValue { + Reg_GenericLane__regExtValue_PR present; + union Reg_GenericLane__regExtValue_u { + ConnectionTrajectory_addGrpC_t ConnectionTrajectory_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_GenericLane_t; +typedef struct Reg_IntersectionGeometry { + RegionId_t regionId; + struct Reg_IntersectionGeometry__regExtValue { + Reg_IntersectionGeometry__regExtValue_PR present; + union Reg_IntersectionGeometry__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionGeometry_t; +typedef struct Reg_IntersectionState { + RegionId_t regionId; + struct Reg_IntersectionState__regExtValue { + Reg_IntersectionState__regExtValue_PR present; + union Reg_IntersectionState__regExtValue_u { + IntersectionState_addGrpC_t IntersectionState_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionState_t; +typedef struct Reg_LaneAttributes { + RegionId_t regionId; + struct Reg_LaneAttributes__regExtValue { + Reg_LaneAttributes__regExtValue_PR present; + union Reg_LaneAttributes__regExtValue_u { + LaneAttributes_addGrpC_t LaneAttributes_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneAttributes_t; +typedef struct Reg_LaneDataAttribute { + RegionId_t regionId; + struct Reg_LaneDataAttribute__regExtValue { + Reg_LaneDataAttribute__regExtValue_PR present; + union Reg_LaneDataAttribute__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneDataAttribute_t; +typedef struct Reg_MovementEvent { + RegionId_t regionId; + struct Reg_MovementEvent__regExtValue { + Reg_MovementEvent__regExtValue_PR present; + union Reg_MovementEvent__regExtValue_u { + MovementEvent_addGrpC_t MovementEvent_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementEvent_t; +typedef struct Reg_MovementState { + RegionId_t regionId; + struct Reg_MovementState__regExtValue { + Reg_MovementState__regExtValue_PR present; + union Reg_MovementState__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementState_t; +typedef struct Reg_NodeAttributeSetXY { + RegionId_t regionId; + struct Reg_NodeAttributeSetXY__regExtValue { + Reg_NodeAttributeSetXY__regExtValue_PR present; + union Reg_NodeAttributeSetXY__regExtValue_u { + NodeAttributeSet_addGrpC_t NodeAttributeSet_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeAttributeSetXY_t; +typedef struct Reg_NodeOffsetPointXY { + RegionId_t regionId; + struct Reg_NodeOffsetPointXY__regExtValue { + Reg_NodeOffsetPointXY__regExtValue_PR present; + union Reg_NodeOffsetPointXY__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeOffsetPointXY_t; +typedef struct Reg_Position3D { + RegionId_t regionId; + struct Reg_Position3D__regExtValue { + Reg_Position3D__regExtValue_PR present; + union Reg_Position3D__regExtValue_u { + Position3D_addGrpC_t Position3D_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_Position3D_t; +typedef struct Reg_RequestorDescription { + RegionId_t regionId; + struct Reg_RequestorDescription__regExtValue { + Reg_RequestorDescription__regExtValue_PR present; + union Reg_RequestorDescription__regExtValue_u { + RequestorDescription_addGrpC_t RequestorDescription_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorDescription_t; +typedef struct Reg_RequestorType { + RegionId_t regionId; + struct Reg_RequestorType__regExtValue { + Reg_RequestorType__regExtValue_PR present; + union Reg_RequestorType__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorType_t; +typedef struct Reg_RestrictionUserType { + RegionId_t regionId; + struct Reg_RestrictionUserType__regExtValue { + Reg_RestrictionUserType__regExtValue_PR present; + union Reg_RestrictionUserType__regExtValue_u { + RestrictionUserType_addGrpC_t RestrictionUserType_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RestrictionUserType_t; +typedef struct Reg_RoadSegment { + RegionId_t regionId; + struct Reg_RoadSegment__regExtValue { + Reg_RoadSegment__regExtValue_PR present; + union Reg_RoadSegment__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RoadSegment_t; +typedef struct Reg_SignalControlZone { + RegionId_t regionId; + struct Reg_SignalControlZone__regExtValue { + Reg_SignalControlZone__regExtValue_PR present; + union Reg_SignalControlZone__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalControlZone_t; +typedef struct Reg_SignalRequest { + RegionId_t regionId; + struct Reg_SignalRequest__regExtValue { + Reg_SignalRequest__regExtValue_PR present; + union Reg_SignalRequest__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequest_t; +typedef struct Reg_SignalRequestPackage { + RegionId_t regionId; + struct Reg_SignalRequestPackage__regExtValue { + Reg_SignalRequestPackage__regExtValue_PR present; + union Reg_SignalRequestPackage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestPackage_t; +typedef struct Reg_SignalStatus { + RegionId_t regionId; + struct Reg_SignalStatus__regExtValue { + Reg_SignalStatus__regExtValue_PR present; + union Reg_SignalStatus__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatus_t; +typedef struct Reg_SignalStatusPackage { + RegionId_t regionId; + struct Reg_SignalStatusPackage__regExtValue { + Reg_SignalStatusPackage__regExtValue_PR present; + union Reg_SignalStatusPackage__regExtValue_u { + SignalStatusPackage_addGrpC_t SignalStatusPackage_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Reg_MapData; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_1; +extern asn_TYPE_member_t asn_MBR_Reg_MapData_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_4; +extern asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_4[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SPAT; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_7; +extern asn_TYPE_member_t asn_MBR_Reg_SPAT_7[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_10; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_10[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_13; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_13[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_16; +extern asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_16[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_19; +extern asn_TYPE_member_t asn_MBR_Reg_ComputedLane_19[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_22; +extern asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_22[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_25; +extern asn_TYPE_member_t asn_MBR_Reg_GenericLane_25[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_28; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_28[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_31; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionState_31[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_34; +extern asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_34[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_37; +extern asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_37[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_40; +extern asn_TYPE_member_t asn_MBR_Reg_MovementEvent_40[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_43; +extern asn_TYPE_member_t asn_MBR_Reg_MovementState_43[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_46; +extern asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_46[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_49; +extern asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_49[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_52; +extern asn_TYPE_member_t asn_MBR_Reg_Position3D_52[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_55; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_55[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_58; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorType_58[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_61; +extern asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_61[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_64; +extern asn_TYPE_member_t asn_MBR_Reg_RoadSegment_64[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_67; +extern asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_67[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_70; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequest_70[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_73; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_73[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_76; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatus_76[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_79; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_79[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionalExtension_H_ */ +#include diff --git a/vcits/spatem/RegulatorySpeedLimit.h b/vcits/spatem/RegulatorySpeedLimit.h new file mode 100644 index 0000000..c54e7d7 --- /dev/null +++ b/vcits/spatem/RegulatorySpeedLimit.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RegulatorySpeedLimit_H_ +#define _RegulatorySpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedLimitType.h" +#include "Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegulatorySpeedLimit */ +typedef struct RegulatorySpeedLimit { + SpeedLimitType_t type; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RegulatorySpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit; +extern asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1; +extern asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegulatorySpeedLimit_H_ */ +#include diff --git a/vcits/spatem/RejectedReason.h b/vcits/spatem/RejectedReason.h new file mode 100644 index 0000000..9c53d6b --- /dev/null +++ b/vcits/spatem/RejectedReason.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RejectedReason_H_ +#define _RejectedReason_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RejectedReason { + RejectedReason_unknown = 0, + RejectedReason_exceptionalCondition = 1, + RejectedReason_maxWaitingTimeExceeded = 2, + RejectedReason_ptPriorityDisabled = 3, + RejectedReason_higherPTPriorityGranted = 4, + RejectedReason_vehicleTrackingUnknown = 5 + /* + * Enumeration is extensible + */ +} e_RejectedReason; + +/* RejectedReason */ +typedef long RejectedReason_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RejectedReason_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RejectedReason; +extern const asn_INTEGER_specifics_t asn_SPC_RejectedReason_specs_1; +asn_struct_free_f RejectedReason_free; +asn_struct_print_f RejectedReason_print; +asn_constr_check_f RejectedReason_constraint; +ber_type_decoder_f RejectedReason_decode_ber; +der_type_encoder_f RejectedReason_encode_der; +xer_type_decoder_f RejectedReason_decode_xer; +xer_type_encoder_f RejectedReason_encode_xer; +oer_type_decoder_f RejectedReason_decode_oer; +oer_type_encoder_f RejectedReason_encode_oer; +per_type_decoder_f RejectedReason_decode_uper; +per_type_encoder_f RejectedReason_encode_uper; +per_type_decoder_f RejectedReason_decode_aper; +per_type_encoder_f RejectedReason_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RejectedReason_H_ */ +#include diff --git a/vcits/spatem/RelevanceDistance.h b/vcits/spatem/RelevanceDistance.h new file mode 100644 index 0000000..ebb0d87 --- /dev/null +++ b/vcits/spatem/RelevanceDistance.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RelevanceDistance_H_ +#define _RelevanceDistance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceDistance { + RelevanceDistance_lessThan50m = 0, + RelevanceDistance_lessThan100m = 1, + RelevanceDistance_lessThan200m = 2, + RelevanceDistance_lessThan500m = 3, + RelevanceDistance_lessThan1000m = 4, + RelevanceDistance_lessThan5km = 5, + RelevanceDistance_lessThan10km = 6, + RelevanceDistance_over10km = 7 +} e_RelevanceDistance; + +/* RelevanceDistance */ +typedef long RelevanceDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceDistance; +asn_struct_free_f RelevanceDistance_free; +asn_struct_print_f RelevanceDistance_print; +asn_constr_check_f RelevanceDistance_constraint; +ber_type_decoder_f RelevanceDistance_decode_ber; +der_type_encoder_f RelevanceDistance_encode_der; +xer_type_decoder_f RelevanceDistance_decode_xer; +xer_type_encoder_f RelevanceDistance_encode_xer; +oer_type_decoder_f RelevanceDistance_decode_oer; +oer_type_encoder_f RelevanceDistance_encode_oer; +per_type_decoder_f RelevanceDistance_decode_uper; +per_type_encoder_f RelevanceDistance_encode_uper; +per_type_decoder_f RelevanceDistance_decode_aper; +per_type_encoder_f RelevanceDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceDistance_H_ */ +#include diff --git a/vcits/spatem/RelevanceTrafficDirection.h b/vcits/spatem/RelevanceTrafficDirection.h new file mode 100644 index 0000000..708a36d --- /dev/null +++ b/vcits/spatem/RelevanceTrafficDirection.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RelevanceTrafficDirection_H_ +#define _RelevanceTrafficDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceTrafficDirection { + RelevanceTrafficDirection_allTrafficDirections = 0, + RelevanceTrafficDirection_upstreamTraffic = 1, + RelevanceTrafficDirection_downstreamTraffic = 2, + RelevanceTrafficDirection_oppositeTraffic = 3 +} e_RelevanceTrafficDirection; + +/* RelevanceTrafficDirection */ +typedef long RelevanceTrafficDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection; +asn_struct_free_f RelevanceTrafficDirection_free; +asn_struct_print_f RelevanceTrafficDirection_print; +asn_constr_check_f RelevanceTrafficDirection_constraint; +ber_type_decoder_f RelevanceTrafficDirection_decode_ber; +der_type_encoder_f RelevanceTrafficDirection_encode_der; +xer_type_decoder_f RelevanceTrafficDirection_decode_xer; +xer_type_encoder_f RelevanceTrafficDirection_encode_xer; +oer_type_decoder_f RelevanceTrafficDirection_decode_oer; +oer_type_encoder_f RelevanceTrafficDirection_encode_oer; +per_type_decoder_f RelevanceTrafficDirection_decode_uper; +per_type_encoder_f RelevanceTrafficDirection_encode_uper; +per_type_decoder_f RelevanceTrafficDirection_decode_aper; +per_type_encoder_f RelevanceTrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceTrafficDirection_H_ */ +#include diff --git a/vcits/spatem/RequestID.h b/vcits/spatem/RequestID.h new file mode 100644 index 0000000..187a943 --- /dev/null +++ b/vcits/spatem/RequestID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RequestID_H_ +#define _RequestID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestID */ +typedef long RequestID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestID; +asn_struct_free_f RequestID_free; +asn_struct_print_f RequestID_print; +asn_constr_check_f RequestID_constraint; +ber_type_decoder_f RequestID_decode_ber; +der_type_encoder_f RequestID_encode_der; +xer_type_decoder_f RequestID_decode_xer; +xer_type_encoder_f RequestID_encode_xer; +oer_type_decoder_f RequestID_decode_oer; +oer_type_encoder_f RequestID_encode_oer; +per_type_decoder_f RequestID_decode_uper; +per_type_encoder_f RequestID_encode_uper; +per_type_decoder_f RequestID_decode_aper; +per_type_encoder_f RequestID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestID_H_ */ +#include diff --git a/vcits/spatem/RequestImportanceLevel.h b/vcits/spatem/RequestImportanceLevel.h new file mode 100644 index 0000000..84ecbc2 --- /dev/null +++ b/vcits/spatem/RequestImportanceLevel.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RequestImportanceLevel_H_ +#define _RequestImportanceLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestImportanceLevel { + RequestImportanceLevel_requestImportanceLevelUnKnown = 0, + RequestImportanceLevel_requestImportanceLevel1 = 1, + RequestImportanceLevel_requestImportanceLevel2 = 2, + RequestImportanceLevel_requestImportanceLevel3 = 3, + RequestImportanceLevel_requestImportanceLevel4 = 4, + RequestImportanceLevel_requestImportanceLevel5 = 5, + RequestImportanceLevel_requestImportanceLevel6 = 6, + RequestImportanceLevel_requestImportanceLevel7 = 7, + RequestImportanceLevel_requestImportanceLevel8 = 8, + RequestImportanceLevel_requestImportanceLevel9 = 9, + RequestImportanceLevel_requestImportanceLevel10 = 10, + RequestImportanceLevel_requestImportanceLevel11 = 11, + RequestImportanceLevel_requestImportanceLevel12 = 12, + RequestImportanceLevel_requestImportanceLevel13 = 13, + RequestImportanceLevel_requestImportanceLevel14 = 14, + RequestImportanceLevel_requestImportanceReserved = 15 +} e_RequestImportanceLevel; + +/* RequestImportanceLevel */ +typedef long RequestImportanceLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel; +extern const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1; +asn_struct_free_f RequestImportanceLevel_free; +asn_struct_print_f RequestImportanceLevel_print; +asn_constr_check_f RequestImportanceLevel_constraint; +ber_type_decoder_f RequestImportanceLevel_decode_ber; +der_type_encoder_f RequestImportanceLevel_encode_der; +xer_type_decoder_f RequestImportanceLevel_decode_xer; +xer_type_encoder_f RequestImportanceLevel_encode_xer; +oer_type_decoder_f RequestImportanceLevel_decode_oer; +oer_type_encoder_f RequestImportanceLevel_encode_oer; +per_type_decoder_f RequestImportanceLevel_decode_uper; +per_type_encoder_f RequestImportanceLevel_encode_uper; +per_type_decoder_f RequestImportanceLevel_decode_aper; +per_type_encoder_f RequestImportanceLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestImportanceLevel_H_ */ +#include diff --git a/vcits/spatem/RequestResponseIndication.h b/vcits/spatem/RequestResponseIndication.h new file mode 100644 index 0000000..9ab262c --- /dev/null +++ b/vcits/spatem/RequestResponseIndication.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RequestResponseIndication_H_ +#define _RequestResponseIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestResponseIndication { + RequestResponseIndication_request = 0, + RequestResponseIndication_response = 1 +} e_RequestResponseIndication; + +/* RequestResponseIndication */ +typedef long RequestResponseIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication; +asn_struct_free_f RequestResponseIndication_free; +asn_struct_print_f RequestResponseIndication_print; +asn_constr_check_f RequestResponseIndication_constraint; +ber_type_decoder_f RequestResponseIndication_decode_ber; +der_type_encoder_f RequestResponseIndication_encode_der; +xer_type_decoder_f RequestResponseIndication_decode_xer; +xer_type_encoder_f RequestResponseIndication_encode_xer; +oer_type_decoder_f RequestResponseIndication_decode_oer; +oer_type_encoder_f RequestResponseIndication_encode_oer; +per_type_decoder_f RequestResponseIndication_decode_uper; +per_type_encoder_f RequestResponseIndication_encode_uper; +per_type_decoder_f RequestResponseIndication_decode_aper; +per_type_encoder_f RequestResponseIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestResponseIndication_H_ */ +#include diff --git a/vcits/spatem/RequestSubRole.h b/vcits/spatem/RequestSubRole.h new file mode 100644 index 0000000..5aecef7 --- /dev/null +++ b/vcits/spatem/RequestSubRole.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RequestSubRole_H_ +#define _RequestSubRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestSubRole { + RequestSubRole_requestSubRoleUnKnown = 0, + RequestSubRole_requestSubRole1 = 1, + RequestSubRole_requestSubRole2 = 2, + RequestSubRole_requestSubRole3 = 3, + RequestSubRole_requestSubRole4 = 4, + RequestSubRole_requestSubRole5 = 5, + RequestSubRole_requestSubRole6 = 6, + RequestSubRole_requestSubRole7 = 7, + RequestSubRole_requestSubRole8 = 8, + RequestSubRole_requestSubRole9 = 9, + RequestSubRole_requestSubRole10 = 10, + RequestSubRole_requestSubRole11 = 11, + RequestSubRole_requestSubRole12 = 12, + RequestSubRole_requestSubRole13 = 13, + RequestSubRole_requestSubRole14 = 14, + RequestSubRole_requestSubRoleReserved = 15 +} e_RequestSubRole; + +/* RequestSubRole */ +typedef long RequestSubRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestSubRole; +extern const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1; +asn_struct_free_f RequestSubRole_free; +asn_struct_print_f RequestSubRole_print; +asn_constr_check_f RequestSubRole_constraint; +ber_type_decoder_f RequestSubRole_decode_ber; +der_type_encoder_f RequestSubRole_encode_der; +xer_type_decoder_f RequestSubRole_decode_xer; +xer_type_encoder_f RequestSubRole_encode_xer; +oer_type_decoder_f RequestSubRole_decode_oer; +oer_type_encoder_f RequestSubRole_encode_oer; +per_type_decoder_f RequestSubRole_decode_uper; +per_type_encoder_f RequestSubRole_encode_uper; +per_type_decoder_f RequestSubRole_decode_aper; +per_type_encoder_f RequestSubRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestSubRole_H_ */ +#include diff --git a/vcits/spatem/RequestorDescription-addGrpC.h b/vcits/spatem/RequestorDescription-addGrpC.h new file mode 100644 index 0000000..1b86d54 --- /dev/null +++ b/vcits/spatem/RequestorDescription-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RequestorDescription_addGrpC_H_ +#define _RequestorDescription_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "FuelType.h" +#include "BatteryStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestorDescription-addGrpC */ +typedef struct RequestorDescription_addGrpC { + FuelType_t *fuel; /* OPTIONAL */ + BatteryStatus_t *batteryStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_addGrpC_H_ */ +#include diff --git a/vcits/spatem/RequestorDescription.h b/vcits/spatem/RequestorDescription.h new file mode 100644 index 0000000..248175f --- /dev/null +++ b/vcits/spatem/RequestorDescription.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RequestorDescription_H_ +#define _RequestorDescription_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleID.h" +#include "DescriptiveName.h" +#include "TransitVehicleStatus.h" +#include "TransitVehicleOccupancy.h" +#include "DeltaTime.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; +struct RequestorPositionVector; +struct Reg_RequestorDescription; + +/* RequestorDescription */ +typedef struct RequestorDescription { + VehicleID_t id; + struct RequestorType *type; /* OPTIONAL */ + struct RequestorPositionVector *position; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + DescriptiveName_t *routeName; /* OPTIONAL */ + TransitVehicleStatus_t *transitStatus; /* OPTIONAL */ + TransitVehicleOccupancy_t *transitOccupancy; /* OPTIONAL */ + DeltaTime_t *transitSchedule; /* OPTIONAL */ + struct RequestorDescription__regional { + A_SEQUENCE_OF(struct Reg_RequestorDescription) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_H_ */ +#include diff --git a/vcits/spatem/RequestorPositionVector.h b/vcits/spatem/RequestorPositionVector.h new file mode 100644 index 0000000..7514ecf --- /dev/null +++ b/vcits/spatem/RequestorPositionVector.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RequestorPositionVector_H_ +#define _RequestorPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "Position3D.h" +#include "Angle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TransmissionAndSpeed; + +/* RequestorPositionVector */ +typedef struct RequestorPositionVector { + Position3D_t position; + Angle_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorPositionVector_H_ */ +#include diff --git a/vcits/spatem/RequestorType.h b/vcits/spatem/RequestorType.h new file mode 100644 index 0000000..56c9c26 --- /dev/null +++ b/vcits/spatem/RequestorType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RequestorType_H_ +#define _RequestorType_H_ + + +#include + +/* Including external dependencies */ +#include "BasicVehicleRole.h" +#include "RequestSubRole.h" +#include "RequestImportanceLevel.h" +#include "Iso3833VehicleType.h" +#include "VehicleType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_RequestorType; + +/* RequestorType */ +typedef struct RequestorType { + BasicVehicleRole_t role; + RequestSubRole_t *subrole; /* OPTIONAL */ + RequestImportanceLevel_t *request; /* OPTIONAL */ + Iso3833VehicleType_t *iso3883; /* OPTIONAL */ + VehicleType_t *hpmsType; /* OPTIONAL */ + struct Reg_RequestorType *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorType_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorType_H_ */ +#include diff --git a/vcits/spatem/RescueAndRecoveryWorkInProgressSubCauseCode.h b/vcits/spatem/RescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 0000000..37ad527 --- /dev/null +++ b/vcits/spatem/RescueAndRecoveryWorkInProgressSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RescueAndRecoveryWorkInProgressSubCauseCode_H_ +#define _RescueAndRecoveryWorkInProgressSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RescueAndRecoveryWorkInProgressSubCauseCode { + RescueAndRecoveryWorkInProgressSubCauseCode_unavailable = 0, + RescueAndRecoveryWorkInProgressSubCauseCode_emergencyVehicles = 1, + RescueAndRecoveryWorkInProgressSubCauseCode_rescueHelicopterLanding = 2, + RescueAndRecoveryWorkInProgressSubCauseCode_policeActivityOngoing = 3, + RescueAndRecoveryWorkInProgressSubCauseCode_medicalEmergencyOngoing = 4, + RescueAndRecoveryWorkInProgressSubCauseCode_childAbductionInProgress = 5 +} e_RescueAndRecoveryWorkInProgressSubCauseCode; + +/* RescueAndRecoveryWorkInProgressSubCauseCode */ +typedef long RescueAndRecoveryWorkInProgressSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode; +asn_struct_free_f RescueAndRecoveryWorkInProgressSubCauseCode_free; +asn_struct_print_f RescueAndRecoveryWorkInProgressSubCauseCode_print; +asn_constr_check_f RescueAndRecoveryWorkInProgressSubCauseCode_constraint; +ber_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_ber; +der_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_der; +xer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_xer; +xer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_xer; +oer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_oer; +oer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_oer; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_uper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_uper; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_aper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RescueAndRecoveryWorkInProgressSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/RestrictedTypes.h b/vcits/spatem/RestrictedTypes.h new file mode 100644 index 0000000..ae6c71f --- /dev/null +++ b/vcits/spatem/RestrictedTypes.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RestrictedTypes_H_ +#define _RestrictedTypes_H_ + + +#include + +/* Including external dependencies */ +#include "StationType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictedTypes */ +typedef struct RestrictedTypes { + A_SEQUENCE_OF(StationType_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictedTypes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictedTypes; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictedTypes_H_ */ +#include diff --git a/vcits/spatem/RestrictionAppliesTo.h b/vcits/spatem/RestrictionAppliesTo.h new file mode 100644 index 0000000..d01114e --- /dev/null +++ b/vcits/spatem/RestrictionAppliesTo.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RestrictionAppliesTo_H_ +#define _RestrictionAppliesTo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionAppliesTo { + RestrictionAppliesTo_none = 0, + RestrictionAppliesTo_equippedTransit = 1, + RestrictionAppliesTo_equippedTaxis = 2, + RestrictionAppliesTo_equippedOther = 3, + RestrictionAppliesTo_emissionCompliant = 4, + RestrictionAppliesTo_equippedBicycle = 5, + RestrictionAppliesTo_weightCompliant = 6, + RestrictionAppliesTo_heightCompliant = 7, + RestrictionAppliesTo_pedestrians = 8, + RestrictionAppliesTo_slowMovingPersons = 9, + RestrictionAppliesTo_wheelchairUsers = 10, + RestrictionAppliesTo_visualDisabilities = 11, + RestrictionAppliesTo_audioDisabilities = 12, + RestrictionAppliesTo_otherUnknownDisabilities = 13 + /* + * Enumeration is extensible + */ +} e_RestrictionAppliesTo; + +/* RestrictionAppliesTo */ +typedef long RestrictionAppliesTo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo; +extern const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1; +asn_struct_free_f RestrictionAppliesTo_free; +asn_struct_print_f RestrictionAppliesTo_print; +asn_constr_check_f RestrictionAppliesTo_constraint; +ber_type_decoder_f RestrictionAppliesTo_decode_ber; +der_type_encoder_f RestrictionAppliesTo_encode_der; +xer_type_decoder_f RestrictionAppliesTo_decode_xer; +xer_type_encoder_f RestrictionAppliesTo_encode_xer; +oer_type_decoder_f RestrictionAppliesTo_decode_oer; +oer_type_encoder_f RestrictionAppliesTo_encode_oer; +per_type_decoder_f RestrictionAppliesTo_decode_uper; +per_type_encoder_f RestrictionAppliesTo_encode_uper; +per_type_decoder_f RestrictionAppliesTo_decode_aper; +per_type_encoder_f RestrictionAppliesTo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionAppliesTo_H_ */ +#include diff --git a/vcits/spatem/RestrictionClassAssignment.h b/vcits/spatem/RestrictionClassAssignment.h new file mode 100644 index 0000000..349bf92 --- /dev/null +++ b/vcits/spatem/RestrictionClassAssignment.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RestrictionClassAssignment_H_ +#define _RestrictionClassAssignment_H_ + + +#include + +/* Including external dependencies */ +#include "RestrictionClassID.h" +#include "RestrictionUserTypeList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassAssignment */ +typedef struct RestrictionClassAssignment { + RestrictionClassID_t id; + RestrictionUserTypeList_t users; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassAssignment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassAssignment_H_ */ +#include diff --git a/vcits/spatem/RestrictionClassID.h b/vcits/spatem/RestrictionClassID.h new file mode 100644 index 0000000..0da934e --- /dev/null +++ b/vcits/spatem/RestrictionClassID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RestrictionClassID_H_ +#define _RestrictionClassID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassID */ +typedef long RestrictionClassID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassID; +asn_struct_free_f RestrictionClassID_free; +asn_struct_print_f RestrictionClassID_print; +asn_constr_check_f RestrictionClassID_constraint; +ber_type_decoder_f RestrictionClassID_decode_ber; +der_type_encoder_f RestrictionClassID_encode_der; +xer_type_decoder_f RestrictionClassID_decode_xer; +xer_type_encoder_f RestrictionClassID_encode_xer; +oer_type_decoder_f RestrictionClassID_decode_oer; +oer_type_encoder_f RestrictionClassID_encode_oer; +per_type_decoder_f RestrictionClassID_decode_uper; +per_type_encoder_f RestrictionClassID_encode_uper; +per_type_decoder_f RestrictionClassID_decode_aper; +per_type_encoder_f RestrictionClassID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassID_H_ */ +#include diff --git a/vcits/spatem/RestrictionClassList.h b/vcits/spatem/RestrictionClassList.h new file mode 100644 index 0000000..2a6b69a --- /dev/null +++ b/vcits/spatem/RestrictionClassList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RestrictionClassList_H_ +#define _RestrictionClassList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionClassAssignment; + +/* RestrictionClassList */ +typedef struct RestrictionClassList { + A_SEQUENCE_OF(struct RestrictionClassAssignment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassList_H_ */ +#include diff --git a/vcits/spatem/RestrictionUserType-addGrpC.h b/vcits/spatem/RestrictionUserType-addGrpC.h new file mode 100644 index 0000000..4ba9ccf --- /dev/null +++ b/vcits/spatem/RestrictionUserType-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RestrictionUserType_addGrpC_H_ +#define _RestrictionUserType_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "EmissionType.h" +#include "FuelType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionUserType-addGrpC */ +typedef struct RestrictionUserType_addGrpC { + EmissionType_t *emission; /* OPTIONAL */ + FuelType_t *fuel; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_addGrpC_H_ */ +#include diff --git a/vcits/spatem/RestrictionUserType.h b/vcits/spatem/RestrictionUserType.h new file mode 100644 index 0000000..96c81e6 --- /dev/null +++ b/vcits/spatem/RestrictionUserType.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RestrictionUserType_H_ +#define _RestrictionUserType_H_ + + +#include + +/* Including external dependencies */ +#include "RestrictionAppliesTo.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionUserType_PR { + RestrictionUserType_PR_NOTHING, /* No components present */ + RestrictionUserType_PR_basicType, + RestrictionUserType_PR_regional + /* Extensions may appear below */ + +} RestrictionUserType_PR; + +/* Forward declarations */ +struct Reg_RestrictionUserType; + +/* RestrictionUserType */ +typedef struct RestrictionUserType { + RestrictionUserType_PR present; + union RestrictionUserType_u { + RestrictionAppliesTo_t basicType; + struct RestrictionUserType__regional { + A_SEQUENCE_OF(struct Reg_RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType; +extern asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_1[2]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_H_ */ +#include diff --git a/vcits/spatem/RestrictionUserTypeList.h b/vcits/spatem/RestrictionUserTypeList.h new file mode 100644 index 0000000..a919daa --- /dev/null +++ b/vcits/spatem/RestrictionUserTypeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RestrictionUserTypeList_H_ +#define _RestrictionUserTypeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionUserType; + +/* RestrictionUserTypeList */ +typedef struct RestrictionUserTypeList { + A_SEQUENCE_OF(struct RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserTypeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserTypeList_H_ */ +#include diff --git a/vcits/spatem/RoadLaneSetList.h b/vcits/spatem/RoadLaneSetList.h new file mode 100644 index 0000000..6ff2654 --- /dev/null +++ b/vcits/spatem/RoadLaneSetList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RoadLaneSetList_H_ +#define _RoadLaneSetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* RoadLaneSetList */ +typedef struct RoadLaneSetList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadLaneSetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList; +extern asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadLaneSetList_H_ */ +#include diff --git a/vcits/spatem/RoadRegulatorID.h b/vcits/spatem/RoadRegulatorID.h new file mode 100644 index 0000000..3b788c1 --- /dev/null +++ b/vcits/spatem/RoadRegulatorID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RoadRegulatorID_H_ +#define _RoadRegulatorID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadRegulatorID */ +typedef long RoadRegulatorID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID; +asn_struct_free_f RoadRegulatorID_free; +asn_struct_print_f RoadRegulatorID_print; +asn_constr_check_f RoadRegulatorID_constraint; +ber_type_decoder_f RoadRegulatorID_decode_ber; +der_type_encoder_f RoadRegulatorID_encode_der; +xer_type_decoder_f RoadRegulatorID_decode_xer; +xer_type_encoder_f RoadRegulatorID_encode_xer; +oer_type_decoder_f RoadRegulatorID_decode_oer; +oer_type_encoder_f RoadRegulatorID_encode_oer; +per_type_decoder_f RoadRegulatorID_decode_uper; +per_type_encoder_f RoadRegulatorID_encode_uper; +per_type_decoder_f RoadRegulatorID_decode_aper; +per_type_encoder_f RoadRegulatorID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadRegulatorID_H_ */ +#include diff --git a/vcits/spatem/RoadSegment.h b/vcits/spatem/RoadSegment.h new file mode 100644 index 0000000..4c3062e --- /dev/null +++ b/vcits/spatem/RoadSegment.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RoadSegment_H_ +#define _RoadSegment_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "RoadSegmentReferenceID.h" +#include "MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "RoadLaneSetList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct Reg_RoadSegment; + +/* RoadSegment */ +typedef struct RoadSegment { + DescriptiveName_t *name; /* OPTIONAL */ + RoadSegmentReferenceID_t id; + MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + RoadLaneSetList_t roadLaneSet; + struct RoadSegment__regional { + A_SEQUENCE_OF(struct Reg_RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegment_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegment_H_ */ +#include diff --git a/vcits/spatem/RoadSegmentID.h b/vcits/spatem/RoadSegmentID.h new file mode 100644 index 0000000..664d0f5 --- /dev/null +++ b/vcits/spatem/RoadSegmentID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RoadSegmentID_H_ +#define _RoadSegmentID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentID */ +typedef long RoadSegmentID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentID; +asn_struct_free_f RoadSegmentID_free; +asn_struct_print_f RoadSegmentID_print; +asn_constr_check_f RoadSegmentID_constraint; +ber_type_decoder_f RoadSegmentID_decode_ber; +der_type_encoder_f RoadSegmentID_encode_der; +xer_type_decoder_f RoadSegmentID_decode_xer; +xer_type_encoder_f RoadSegmentID_encode_xer; +oer_type_decoder_f RoadSegmentID_decode_oer; +oer_type_encoder_f RoadSegmentID_encode_oer; +per_type_decoder_f RoadSegmentID_decode_uper; +per_type_encoder_f RoadSegmentID_encode_uper; +per_type_decoder_f RoadSegmentID_decode_aper; +per_type_encoder_f RoadSegmentID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentID_H_ */ +#include diff --git a/vcits/spatem/RoadSegmentList.h b/vcits/spatem/RoadSegmentList.h new file mode 100644 index 0000000..a03b22d --- /dev/null +++ b/vcits/spatem/RoadSegmentList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RoadSegmentList_H_ +#define _RoadSegmentList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RoadSegment; + +/* RoadSegmentList */ +typedef struct RoadSegmentList { + A_SEQUENCE_OF(struct RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentList; +extern asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentList_H_ */ +#include diff --git a/vcits/spatem/RoadSegmentReferenceID.h b/vcits/spatem/RoadSegmentReferenceID.h new file mode 100644 index 0000000..0c12927 --- /dev/null +++ b/vcits/spatem/RoadSegmentReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RoadSegmentReferenceID_H_ +#define _RoadSegmentReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "RoadSegmentID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentReferenceID */ +typedef struct RoadSegmentReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + RoadSegmentID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentReferenceID_H_ */ +#include diff --git a/vcits/spatem/RoadType.h b/vcits/spatem/RoadType.h new file mode 100644 index 0000000..447b6b0 --- /dev/null +++ b/vcits/spatem/RoadType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RoadType_H_ +#define _RoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadType { + RoadType_urban_NoStructuralSeparationToOppositeLanes = 0, + RoadType_urban_WithStructuralSeparationToOppositeLanes = 1, + RoadType_nonUrban_NoStructuralSeparationToOppositeLanes = 2, + RoadType_nonUrban_WithStructuralSeparationToOppositeLanes = 3 +} e_RoadType; + +/* RoadType */ +typedef long RoadType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadType; +asn_struct_free_f RoadType_free; +asn_struct_print_f RoadType_print; +asn_constr_check_f RoadType_constraint; +ber_type_decoder_f RoadType_decode_ber; +der_type_encoder_f RoadType_encode_der; +xer_type_decoder_f RoadType_decode_xer; +xer_type_encoder_f RoadType_encode_xer; +oer_type_decoder_f RoadType_decode_oer; +oer_type_encoder_f RoadType_encode_oer; +per_type_decoder_f RoadType_decode_uper; +per_type_encoder_f RoadType_encode_uper; +per_type_decoder_f RoadType_decode_aper; +per_type_encoder_f RoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadType_H_ */ +#include diff --git a/vcits/spatem/RoadwayCrownAngle.h b/vcits/spatem/RoadwayCrownAngle.h new file mode 100644 index 0000000..32b1c55 --- /dev/null +++ b/vcits/spatem/RoadwayCrownAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RoadwayCrownAngle_H_ +#define _RoadwayCrownAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadwayCrownAngle */ +typedef long RoadwayCrownAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle; +asn_struct_free_f RoadwayCrownAngle_free; +asn_struct_print_f RoadwayCrownAngle_print; +asn_constr_check_f RoadwayCrownAngle_constraint; +ber_type_decoder_f RoadwayCrownAngle_decode_ber; +der_type_encoder_f RoadwayCrownAngle_encode_der; +xer_type_decoder_f RoadwayCrownAngle_decode_xer; +xer_type_encoder_f RoadwayCrownAngle_encode_xer; +oer_type_decoder_f RoadwayCrownAngle_decode_oer; +oer_type_encoder_f RoadwayCrownAngle_encode_oer; +per_type_decoder_f RoadwayCrownAngle_decode_uper; +per_type_encoder_f RoadwayCrownAngle_encode_uper; +per_type_decoder_f RoadwayCrownAngle_decode_aper; +per_type_encoder_f RoadwayCrownAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadwayCrownAngle_H_ */ +#include diff --git a/vcits/spatem/RoadworksSubCauseCode.h b/vcits/spatem/RoadworksSubCauseCode.h new file mode 100644 index 0000000..58dca13 --- /dev/null +++ b/vcits/spatem/RoadworksSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _RoadworksSubCauseCode_H_ +#define _RoadworksSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadworksSubCauseCode { + RoadworksSubCauseCode_unavailable = 0, + RoadworksSubCauseCode_majorRoadworks = 1, + RoadworksSubCauseCode_roadMarkingWork = 2, + RoadworksSubCauseCode_slowMovingRoadMaintenance = 3, + RoadworksSubCauseCode_shortTermStationaryRoadworks = 4, + RoadworksSubCauseCode_streetCleaning = 5, + RoadworksSubCauseCode_winterService = 6 +} e_RoadworksSubCauseCode; + +/* RoadworksSubCauseCode */ +typedef long RoadworksSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode; +asn_struct_free_f RoadworksSubCauseCode_free; +asn_struct_print_f RoadworksSubCauseCode_print; +asn_constr_check_f RoadworksSubCauseCode_constraint; +ber_type_decoder_f RoadworksSubCauseCode_decode_ber; +der_type_encoder_f RoadworksSubCauseCode_encode_der; +xer_type_decoder_f RoadworksSubCauseCode_decode_xer; +xer_type_encoder_f RoadworksSubCauseCode_encode_xer; +oer_type_decoder_f RoadworksSubCauseCode_decode_oer; +oer_type_encoder_f RoadworksSubCauseCode_encode_oer; +per_type_decoder_f RoadworksSubCauseCode_decode_uper; +per_type_encoder_f RoadworksSubCauseCode_encode_uper; +per_type_decoder_f RoadworksSubCauseCode_decode_aper; +per_type_encoder_f RoadworksSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadworksSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/SPAT.h b/vcits/spatem/SPAT.h new file mode 100644 index 0000000..c983d19 --- /dev/null +++ b/vcits/spatem/SPAT.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SPAT_H_ +#define _SPAT_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DescriptiveName.h" +#include "IntersectionStateList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SPAT; + +/* SPAT */ +typedef struct SPAT { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionStateList_t intersections; + struct SPAT__regional { + A_SEQUENCE_OF(struct Reg_SPAT) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SPAT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SPAT; +extern asn_SEQUENCE_specifics_t asn_SPC_SPAT_specs_1; +extern asn_TYPE_member_t asn_MBR_SPAT_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SPAT_H_ */ +#include diff --git a/vcits/spatem/SPATEM.h b/vcits/spatem/SPATEM.h new file mode 100644 index 0000000..40dbe0f --- /dev/null +++ b/vcits/spatem/SPATEM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPATEM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/SPATEM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SPATEM_H_ +#define _SPATEM_H_ + + +#include + +/* Including external dependencies */ +#include "ItsPduHeader.h" +#include "SPAT.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SPATEM */ +typedef struct SPATEM { + ItsPduHeader_t header; + SPAT_t spat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SPATEM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SPATEM; + +#ifdef __cplusplus +} +#endif + +#endif /* _SPATEM_H_ */ +#include diff --git a/vcits/spatem/Scale-B12.h b/vcits/spatem/Scale-B12.h new file mode 100644 index 0000000..309f216 --- /dev/null +++ b/vcits/spatem/Scale-B12.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Scale_B12_H_ +#define _Scale_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Scale-B12 */ +typedef long Scale_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Scale_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Scale_B12; +asn_struct_free_f Scale_B12_free; +asn_struct_print_f Scale_B12_print; +asn_constr_check_f Scale_B12_constraint; +ber_type_decoder_f Scale_B12_decode_ber; +der_type_encoder_f Scale_B12_encode_der; +xer_type_decoder_f Scale_B12_decode_xer; +xer_type_encoder_f Scale_B12_encode_xer; +oer_type_decoder_f Scale_B12_decode_oer; +oer_type_encoder_f Scale_B12_encode_oer; +per_type_decoder_f Scale_B12_decode_uper; +per_type_encoder_f Scale_B12_encode_uper; +per_type_decoder_f Scale_B12_decode_aper; +per_type_encoder_f Scale_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Scale_B12_H_ */ +#include diff --git a/vcits/spatem/SegmentAttributeXY.h b/vcits/spatem/SegmentAttributeXY.h new file mode 100644 index 0000000..36a92ea --- /dev/null +++ b/vcits/spatem/SegmentAttributeXY.h @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SegmentAttributeXY_H_ +#define _SegmentAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SegmentAttributeXY { + SegmentAttributeXY_reserved = 0, + SegmentAttributeXY_doNotBlock = 1, + SegmentAttributeXY_whiteLine = 2, + SegmentAttributeXY_mergingLaneLeft = 3, + SegmentAttributeXY_mergingLaneRight = 4, + SegmentAttributeXY_curbOnLeft = 5, + SegmentAttributeXY_curbOnRight = 6, + SegmentAttributeXY_loadingzoneOnLeft = 7, + SegmentAttributeXY_loadingzoneOnRight = 8, + SegmentAttributeXY_turnOutPointOnLeft = 9, + SegmentAttributeXY_turnOutPointOnRight = 10, + SegmentAttributeXY_adjacentParkingOnLeft = 11, + SegmentAttributeXY_adjacentParkingOnRight = 12, + SegmentAttributeXY_adjacentBikeLaneOnLeft = 13, + SegmentAttributeXY_adjacentBikeLaneOnRight = 14, + SegmentAttributeXY_sharedBikeLane = 15, + SegmentAttributeXY_bikeBoxInFront = 16, + SegmentAttributeXY_transitStopOnLeft = 17, + SegmentAttributeXY_transitStopOnRight = 18, + SegmentAttributeXY_transitStopInLane = 19, + SegmentAttributeXY_sharedWithTrackedVehicle = 20, + SegmentAttributeXY_safeIsland = 21, + SegmentAttributeXY_lowCurbsPresent = 22, + SegmentAttributeXY_rumbleStripPresent = 23, + SegmentAttributeXY_audibleSignalingPresent = 24, + SegmentAttributeXY_adaptiveTimingPresent = 25, + SegmentAttributeXY_rfSignalRequestPresent = 26, + SegmentAttributeXY_partialCurbIntrusion = 27, + SegmentAttributeXY_taperToLeft = 28, + SegmentAttributeXY_taperToRight = 29, + SegmentAttributeXY_taperToCenterLine = 30, + SegmentAttributeXY_parallelParking = 31, + SegmentAttributeXY_headInParking = 32, + SegmentAttributeXY_freeParking = 33, + SegmentAttributeXY_timeRestrictionsOnParking = 34, + SegmentAttributeXY_costToPark = 35, + SegmentAttributeXY_midBlockCurbPresent = 36, + SegmentAttributeXY_unEvenPavementPresent = 37 + /* + * Enumeration is extensible + */ +} e_SegmentAttributeXY; + +/* SegmentAttributeXY */ +typedef long SegmentAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1; +asn_struct_free_f SegmentAttributeXY_free; +asn_struct_print_f SegmentAttributeXY_print; +asn_constr_check_f SegmentAttributeXY_constraint; +ber_type_decoder_f SegmentAttributeXY_decode_ber; +der_type_encoder_f SegmentAttributeXY_encode_der; +xer_type_decoder_f SegmentAttributeXY_decode_xer; +xer_type_encoder_f SegmentAttributeXY_encode_xer; +oer_type_decoder_f SegmentAttributeXY_decode_oer; +oer_type_encoder_f SegmentAttributeXY_encode_oer; +per_type_decoder_f SegmentAttributeXY_decode_uper; +per_type_encoder_f SegmentAttributeXY_encode_uper; +per_type_decoder_f SegmentAttributeXY_decode_aper; +per_type_encoder_f SegmentAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXY_H_ */ +#include diff --git a/vcits/spatem/SegmentAttributeXYList.h b/vcits/spatem/SegmentAttributeXYList.h new file mode 100644 index 0000000..c034f90 --- /dev/null +++ b/vcits/spatem/SegmentAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SegmentAttributeXYList_H_ +#define _SegmentAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "SegmentAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SegmentAttributeXYList */ +typedef struct SegmentAttributeXYList { + A_SEQUENCE_OF(SegmentAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SegmentAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXYList_H_ */ +#include diff --git a/vcits/spatem/SemiAxisLength.h b/vcits/spatem/SemiAxisLength.h new file mode 100644 index 0000000..53698be --- /dev/null +++ b/vcits/spatem/SemiAxisLength.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SemiAxisLength_H_ +#define _SemiAxisLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SemiAxisLength { + SemiAxisLength_oneCentimeter = 1, + SemiAxisLength_outOfRange = 4094, + SemiAxisLength_unavailable = 4095 +} e_SemiAxisLength; + +/* SemiAxisLength */ +typedef long SemiAxisLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiAxisLength; +asn_struct_free_f SemiAxisLength_free; +asn_struct_print_f SemiAxisLength_print; +asn_constr_check_f SemiAxisLength_constraint; +ber_type_decoder_f SemiAxisLength_decode_ber; +der_type_encoder_f SemiAxisLength_encode_der; +xer_type_decoder_f SemiAxisLength_decode_xer; +xer_type_encoder_f SemiAxisLength_encode_xer; +oer_type_decoder_f SemiAxisLength_decode_oer; +oer_type_encoder_f SemiAxisLength_encode_oer; +per_type_decoder_f SemiAxisLength_decode_uper; +per_type_encoder_f SemiAxisLength_encode_uper; +per_type_decoder_f SemiAxisLength_decode_aper; +per_type_encoder_f SemiAxisLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiAxisLength_H_ */ +#include diff --git a/vcits/spatem/SemiMajorAxisAccuracy.h b/vcits/spatem/SemiMajorAxisAccuracy.h new file mode 100644 index 0000000..d5f7c6f --- /dev/null +++ b/vcits/spatem/SemiMajorAxisAccuracy.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SemiMajorAxisAccuracy_H_ +#define _SemiMajorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisAccuracy */ +typedef long SemiMajorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy; +asn_struct_free_f SemiMajorAxisAccuracy_free; +asn_struct_print_f SemiMajorAxisAccuracy_print; +asn_constr_check_f SemiMajorAxisAccuracy_constraint; +ber_type_decoder_f SemiMajorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMajorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMajorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMajorAxisAccuracy_encode_xer; +oer_type_decoder_f SemiMajorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMajorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMajorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMajorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisAccuracy_H_ */ +#include diff --git a/vcits/spatem/SemiMajorAxisOrientation.h b/vcits/spatem/SemiMajorAxisOrientation.h new file mode 100644 index 0000000..3cbe223 --- /dev/null +++ b/vcits/spatem/SemiMajorAxisOrientation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SemiMajorAxisOrientation_H_ +#define _SemiMajorAxisOrientation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisOrientation */ +typedef long SemiMajorAxisOrientation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation; +asn_struct_free_f SemiMajorAxisOrientation_free; +asn_struct_print_f SemiMajorAxisOrientation_print; +asn_constr_check_f SemiMajorAxisOrientation_constraint; +ber_type_decoder_f SemiMajorAxisOrientation_decode_ber; +der_type_encoder_f SemiMajorAxisOrientation_encode_der; +xer_type_decoder_f SemiMajorAxisOrientation_decode_xer; +xer_type_encoder_f SemiMajorAxisOrientation_encode_xer; +oer_type_decoder_f SemiMajorAxisOrientation_decode_oer; +oer_type_encoder_f SemiMajorAxisOrientation_encode_oer; +per_type_decoder_f SemiMajorAxisOrientation_decode_uper; +per_type_encoder_f SemiMajorAxisOrientation_encode_uper; +per_type_decoder_f SemiMajorAxisOrientation_decode_aper; +per_type_encoder_f SemiMajorAxisOrientation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisOrientation_H_ */ +#include diff --git a/vcits/spatem/SemiMinorAxisAccuracy.h b/vcits/spatem/SemiMinorAxisAccuracy.h new file mode 100644 index 0000000..d41dbf3 --- /dev/null +++ b/vcits/spatem/SemiMinorAxisAccuracy.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SemiMinorAxisAccuracy_H_ +#define _SemiMinorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMinorAxisAccuracy */ +typedef long SemiMinorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy; +asn_struct_free_f SemiMinorAxisAccuracy_free; +asn_struct_print_f SemiMinorAxisAccuracy_print; +asn_constr_check_f SemiMinorAxisAccuracy_constraint; +ber_type_decoder_f SemiMinorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMinorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMinorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMinorAxisAccuracy_encode_xer; +oer_type_decoder_f SemiMinorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMinorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMinorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMinorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMinorAxisAccuracy_H_ */ +#include diff --git a/vcits/spatem/SequenceNumber.h b/vcits/spatem/SequenceNumber.h new file mode 100644 index 0000000..807b2e9 --- /dev/null +++ b/vcits/spatem/SequenceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SequenceNumber_H_ +#define _SequenceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SequenceNumber */ +typedef long SequenceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SequenceNumber; +asn_struct_free_f SequenceNumber_free; +asn_struct_print_f SequenceNumber_print; +asn_constr_check_f SequenceNumber_constraint; +ber_type_decoder_f SequenceNumber_decode_ber; +der_type_encoder_f SequenceNumber_encode_der; +xer_type_decoder_f SequenceNumber_decode_xer; +xer_type_encoder_f SequenceNumber_encode_xer; +oer_type_decoder_f SequenceNumber_decode_oer; +oer_type_encoder_f SequenceNumber_encode_oer; +per_type_decoder_f SequenceNumber_decode_uper; +per_type_encoder_f SequenceNumber_encode_uper; +per_type_decoder_f SequenceNumber_decode_aper; +per_type_encoder_f SequenceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SequenceNumber_H_ */ +#include diff --git a/vcits/spatem/ServiceApplicationLimit.h b/vcits/spatem/ServiceApplicationLimit.h new file mode 100644 index 0000000..f5ee63a --- /dev/null +++ b/vcits/spatem/ServiceApplicationLimit.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ServiceApplicationLimit_H_ +#define _ServiceApplicationLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ServiceApplicationLimit { + ServiceApplicationLimit_notForPostpayment = 0, + ServiceApplicationLimit_notForPrepayment = 1, + ServiceApplicationLimit_notForVehicleaccess = 2, + ServiceApplicationLimit_notForFleetcontrol = 3, + ServiceApplicationLimit_issuerSpecificRestriction1 = 4, + ServiceApplicationLimit_issuerSpecificRestriction2 = 5, + ServiceApplicationLimit_issuerSpecificRestriction3 = 6, + ServiceApplicationLimit_issuerSpecificRestriction4 = 7 +} e_ServiceApplicationLimit; + +/* ServiceApplicationLimit */ +typedef BIT_STRING_t ServiceApplicationLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ServiceApplicationLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ServiceApplicationLimit; +asn_struct_free_f ServiceApplicationLimit_free; +asn_struct_print_f ServiceApplicationLimit_print; +asn_constr_check_f ServiceApplicationLimit_constraint; +ber_type_decoder_f ServiceApplicationLimit_decode_ber; +der_type_encoder_f ServiceApplicationLimit_encode_der; +xer_type_decoder_f ServiceApplicationLimit_decode_xer; +xer_type_encoder_f ServiceApplicationLimit_encode_xer; +oer_type_decoder_f ServiceApplicationLimit_decode_oer; +oer_type_encoder_f ServiceApplicationLimit_encode_oer; +per_type_decoder_f ServiceApplicationLimit_decode_uper; +per_type_encoder_f ServiceApplicationLimit_encode_uper; +per_type_decoder_f ServiceApplicationLimit_decode_aper; +per_type_encoder_f ServiceApplicationLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServiceApplicationLimit_H_ */ +#include diff --git a/vcits/spatem/ServiceNumber.h b/vcits/spatem/ServiceNumber.h new file mode 100644 index 0000000..6432863 --- /dev/null +++ b/vcits/spatem/ServiceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ServiceNumber_H_ +#define _ServiceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ServiceNumber */ +typedef BIT_STRING_t ServiceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ServiceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ServiceNumber; +asn_struct_free_f ServiceNumber_free; +asn_struct_print_f ServiceNumber_print; +asn_constr_check_f ServiceNumber_constraint; +ber_type_decoder_f ServiceNumber_decode_ber; +der_type_encoder_f ServiceNumber_encode_der; +xer_type_decoder_f ServiceNumber_decode_xer; +xer_type_encoder_f ServiceNumber_encode_xer; +oer_type_decoder_f ServiceNumber_decode_oer; +oer_type_encoder_f ServiceNumber_encode_oer; +per_type_decoder_f ServiceNumber_decode_uper; +per_type_encoder_f ServiceNumber_encode_uper; +per_type_decoder_f ServiceNumber_decode_aper; +per_type_encoder_f ServiceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServiceNumber_H_ */ +#include diff --git a/vcits/spatem/SignalControlZone.h b/vcits/spatem/SignalControlZone.h new file mode 100644 index 0000000..11451c7 --- /dev/null +++ b/vcits/spatem/SignalControlZone.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalControlZone_H_ +#define _SignalControlZone_H_ + + +#include + +/* Including external dependencies */ +#include "RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalControlZone */ +typedef struct SignalControlZone { + Reg_SignalControlZone_t zone; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalControlZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalControlZone_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalControlZone_H_ */ +#include diff --git a/vcits/spatem/SignalGroupID.h b/vcits/spatem/SignalGroupID.h new file mode 100644 index 0000000..9ed4ce0 --- /dev/null +++ b/vcits/spatem/SignalGroupID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalGroupID_H_ +#define _SignalGroupID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalGroupID */ +typedef long SignalGroupID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SignalGroupID; +asn_struct_free_f SignalGroupID_free; +asn_struct_print_f SignalGroupID_print; +asn_constr_check_f SignalGroupID_constraint; +ber_type_decoder_f SignalGroupID_decode_ber; +der_type_encoder_f SignalGroupID_encode_der; +xer_type_decoder_f SignalGroupID_decode_xer; +xer_type_encoder_f SignalGroupID_encode_xer; +oer_type_decoder_f SignalGroupID_decode_oer; +oer_type_encoder_f SignalGroupID_encode_oer; +per_type_decoder_f SignalGroupID_decode_uper; +per_type_encoder_f SignalGroupID_encode_uper; +per_type_decoder_f SignalGroupID_decode_aper; +per_type_encoder_f SignalGroupID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalGroupID_H_ */ +#include diff --git a/vcits/spatem/SignalHeadLocation.h b/vcits/spatem/SignalHeadLocation.h new file mode 100644 index 0000000..7171f54 --- /dev/null +++ b/vcits/spatem/SignalHeadLocation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalHeadLocation_H_ +#define _SignalHeadLocation_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include "DeltaAltitude.h" +#include "SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalHeadLocation */ +typedef struct SignalHeadLocation { + NodeOffsetPointXY_t nodeXY; + DeltaAltitude_t nodeZ; + SignalGroupID_t signalGroupID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocation_H_ */ +#include diff --git a/vcits/spatem/SignalHeadLocationList.h b/vcits/spatem/SignalHeadLocationList.h new file mode 100644 index 0000000..72a249e --- /dev/null +++ b/vcits/spatem/SignalHeadLocationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalHeadLocationList_H_ +#define _SignalHeadLocationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocation; + +/* SignalHeadLocationList */ +typedef struct SignalHeadLocationList { + A_SEQUENCE_OF(struct SignalHeadLocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList; +extern asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocationList_H_ */ +#include diff --git a/vcits/spatem/SignalRequest.h b/vcits/spatem/SignalRequest.h new file mode 100644 index 0000000..4da9213 --- /dev/null +++ b/vcits/spatem/SignalRequest.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalRequest_H_ +#define _SignalRequest_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionReferenceID.h" +#include "RequestID.h" +#include "PriorityRequestType.h" +#include "IntersectionAccessPoint.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionAccessPoint; +struct Reg_SignalRequest; + +/* SignalRequest */ +typedef struct SignalRequest { + IntersectionReferenceID_t id; + RequestID_t requestID; + PriorityRequestType_t requestType; + IntersectionAccessPoint_t inBoundLane; + struct IntersectionAccessPoint *outBoundLane; /* OPTIONAL */ + struct SignalRequest__regional { + A_SEQUENCE_OF(struct Reg_SignalRequest) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequest_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequest_H_ */ +#include diff --git a/vcits/spatem/SignalRequestList.h b/vcits/spatem/SignalRequestList.h new file mode 100644 index 0000000..4862c96 --- /dev/null +++ b/vcits/spatem/SignalRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalRequestList_H_ +#define _SignalRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestPackage; + +/* SignalRequestList */ +typedef struct SignalRequestList { + A_SEQUENCE_OF(struct SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestList; +extern asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestList_H_ */ +#include diff --git a/vcits/spatem/SignalRequestMessage.h b/vcits/spatem/SignalRequestMessage.h new file mode 100644 index 0000000..0483802 --- /dev/null +++ b/vcits/spatem/SignalRequestMessage.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalRequestMessage_H_ +#define _SignalRequestMessage_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MsgCount.h" +#include "RequestorDescription.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestList; +struct Reg_SignalRequestMessage; + +/* SignalRequestMessage */ +typedef struct SignalRequestMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + MsgCount_t *sequenceNumber; /* OPTIONAL */ + struct SignalRequestList *requests; /* OPTIONAL */ + RequestorDescription_t requestor; + struct SignalRequestMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestMessage_H_ */ +#include diff --git a/vcits/spatem/SignalRequestPackage.h b/vcits/spatem/SignalRequestPackage.h new file mode 100644 index 0000000..5628132 --- /dev/null +++ b/vcits/spatem/SignalRequestPackage.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalRequestPackage_H_ +#define _SignalRequestPackage_H_ + + +#include + +/* Including external dependencies */ +#include "SignalRequest.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalRequestPackage; + +/* SignalRequestPackage */ +typedef struct SignalRequestPackage { + SignalRequest_t request; + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + struct SignalRequestPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestPackage_H_ */ +#include diff --git a/vcits/spatem/SignalRequesterInfo.h b/vcits/spatem/SignalRequesterInfo.h new file mode 100644 index 0000000..593e726 --- /dev/null +++ b/vcits/spatem/SignalRequesterInfo.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalRequesterInfo_H_ +#define _SignalRequesterInfo_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleID.h" +#include "RequestID.h" +#include "MsgCount.h" +#include "BasicVehicleRole.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; + +/* SignalRequesterInfo */ +typedef struct SignalRequesterInfo { + VehicleID_t id; + RequestID_t request; + MsgCount_t sequenceNumber; + BasicVehicleRole_t *role; /* OPTIONAL */ + struct RequestorType *typeData; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequesterInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequesterInfo_H_ */ +#include diff --git a/vcits/spatem/SignalStatus.h b/vcits/spatem/SignalStatus.h new file mode 100644 index 0000000..6659f42 --- /dev/null +++ b/vcits/spatem/SignalStatus.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalStatus_H_ +#define _SignalStatus_H_ + + +#include + +/* Including external dependencies */ +#include "MsgCount.h" +#include "IntersectionReferenceID.h" +#include "SignalStatusPackageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatus; + +/* SignalStatus */ +typedef struct SignalStatus { + MsgCount_t sequenceNumber; + IntersectionReferenceID_t id; + SignalStatusPackageList_t sigStatus; + struct SignalStatus__regional { + A_SEQUENCE_OF(struct Reg_SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatus_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatus_H_ */ +#include diff --git a/vcits/spatem/SignalStatusList.h b/vcits/spatem/SignalStatusList.h new file mode 100644 index 0000000..30990c9 --- /dev/null +++ b/vcits/spatem/SignalStatusList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalStatusList_H_ +#define _SignalStatusList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatus; + +/* SignalStatusList */ +typedef struct SignalStatusList { + A_SEQUENCE_OF(struct SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusList_H_ */ +#include diff --git a/vcits/spatem/SignalStatusMessage.h b/vcits/spatem/SignalStatusMessage.h new file mode 100644 index 0000000..3fc1433 --- /dev/null +++ b/vcits/spatem/SignalStatusMessage.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalStatusMessage_H_ +#define _SignalStatusMessage_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MsgCount.h" +#include "SignalStatusList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatusMessage; + +/* SignalStatusMessage */ +typedef struct SignalStatusMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + MsgCount_t *sequenceNumber; /* OPTIONAL */ + SignalStatusList_t status; + struct SignalStatusMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusMessage_H_ */ +#include diff --git a/vcits/spatem/SignalStatusPackage-addGrpC.h b/vcits/spatem/SignalStatusPackage-addGrpC.h new file mode 100644 index 0000000..b0ebf50 --- /dev/null +++ b/vcits/spatem/SignalStatusPackage-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalStatusPackage_addGrpC_H_ +#define _SignalStatusPackage_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaTime.h" +#include "RejectedReason.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalStatusPackage-addGrpC */ +typedef struct SignalStatusPackage_addGrpC { + DeltaTime_t *synchToSchedule; /* OPTIONAL */ + RejectedReason_t *rejectedReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_addGrpC_H_ */ +#include diff --git a/vcits/spatem/SignalStatusPackage.h b/vcits/spatem/SignalStatusPackage.h new file mode 100644 index 0000000..53b0bb2 --- /dev/null +++ b/vcits/spatem/SignalStatusPackage.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalStatusPackage_H_ +#define _SignalStatusPackage_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionAccessPoint.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "PrioritizationResponseStatus.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequesterInfo; +struct IntersectionAccessPoint; +struct Reg_SignalStatusPackage; + +/* SignalStatusPackage */ +typedef struct SignalStatusPackage { + struct SignalRequesterInfo *requester; /* OPTIONAL */ + IntersectionAccessPoint_t inboundOn; + struct IntersectionAccessPoint *outboundOn; /* OPTIONAL */ + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + PrioritizationResponseStatus_t status; + struct SignalStatusPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_H_ */ +#include diff --git a/vcits/spatem/SignalStatusPackageList.h b/vcits/spatem/SignalStatusPackageList.h new file mode 100644 index 0000000..2e32790 --- /dev/null +++ b/vcits/spatem/SignalStatusPackageList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalStatusPackageList_H_ +#define _SignalStatusPackageList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatusPackage; + +/* SignalStatusPackageList */ +typedef struct SignalStatusPackageList { + A_SEQUENCE_OF(struct SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackageList_H_ */ +#include diff --git a/vcits/spatem/SignalViolationSubCauseCode.h b/vcits/spatem/SignalViolationSubCauseCode.h new file mode 100644 index 0000000..222d7dc --- /dev/null +++ b/vcits/spatem/SignalViolationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SignalViolationSubCauseCode_H_ +#define _SignalViolationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SignalViolationSubCauseCode { + SignalViolationSubCauseCode_unavailable = 0, + SignalViolationSubCauseCode_stopSignViolation = 1, + SignalViolationSubCauseCode_trafficLightViolation = 2, + SignalViolationSubCauseCode_turningRegulationViolation = 3 +} e_SignalViolationSubCauseCode; + +/* SignalViolationSubCauseCode */ +typedef long SignalViolationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode; +asn_struct_free_f SignalViolationSubCauseCode_free; +asn_struct_print_f SignalViolationSubCauseCode_print; +asn_constr_check_f SignalViolationSubCauseCode_constraint; +ber_type_decoder_f SignalViolationSubCauseCode_decode_ber; +der_type_encoder_f SignalViolationSubCauseCode_encode_der; +xer_type_decoder_f SignalViolationSubCauseCode_decode_xer; +xer_type_encoder_f SignalViolationSubCauseCode_encode_xer; +oer_type_decoder_f SignalViolationSubCauseCode_decode_oer; +oer_type_encoder_f SignalViolationSubCauseCode_encode_oer; +per_type_decoder_f SignalViolationSubCauseCode_decode_uper; +per_type_encoder_f SignalViolationSubCauseCode_encode_uper; +per_type_decoder_f SignalViolationSubCauseCode_decode_aper; +per_type_encoder_f SignalViolationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalViolationSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/SlowVehicleSubCauseCode.h b/vcits/spatem/SlowVehicleSubCauseCode.h new file mode 100644 index 0000000..c1a4804 --- /dev/null +++ b/vcits/spatem/SlowVehicleSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SlowVehicleSubCauseCode_H_ +#define _SlowVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SlowVehicleSubCauseCode { + SlowVehicleSubCauseCode_unavailable = 0, + SlowVehicleSubCauseCode_maintenanceVehicle = 1, + SlowVehicleSubCauseCode_vehiclesSlowingToLookAtAccident = 2, + SlowVehicleSubCauseCode_abnormalLoad = 3, + SlowVehicleSubCauseCode_abnormalWideLoad = 4, + SlowVehicleSubCauseCode_convoy = 5, + SlowVehicleSubCauseCode_snowplough = 6, + SlowVehicleSubCauseCode_deicing = 7, + SlowVehicleSubCauseCode_saltingVehicles = 8 +} e_SlowVehicleSubCauseCode; + +/* SlowVehicleSubCauseCode */ +typedef long SlowVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode; +asn_struct_free_f SlowVehicleSubCauseCode_free; +asn_struct_print_f SlowVehicleSubCauseCode_print; +asn_constr_check_f SlowVehicleSubCauseCode_constraint; +ber_type_decoder_f SlowVehicleSubCauseCode_decode_ber; +der_type_encoder_f SlowVehicleSubCauseCode_encode_der; +xer_type_decoder_f SlowVehicleSubCauseCode_decode_xer; +xer_type_encoder_f SlowVehicleSubCauseCode_encode_xer; +oer_type_decoder_f SlowVehicleSubCauseCode_decode_oer; +oer_type_encoder_f SlowVehicleSubCauseCode_encode_oer; +per_type_decoder_f SlowVehicleSubCauseCode_decode_uper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_uper; +per_type_decoder_f SlowVehicleSubCauseCode_decode_aper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SlowVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/SpecialTransportType.h b/vcits/spatem/SpecialTransportType.h new file mode 100644 index 0000000..7bf5be0 --- /dev/null +++ b/vcits/spatem/SpecialTransportType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SpecialTransportType_H_ +#define _SpecialTransportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpecialTransportType { + SpecialTransportType_heavyLoad = 0, + SpecialTransportType_excessWidth = 1, + SpecialTransportType_excessLength = 2, + SpecialTransportType_excessHeight = 3 +} e_SpecialTransportType; + +/* SpecialTransportType */ +typedef BIT_STRING_t SpecialTransportType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpecialTransportType; +asn_struct_free_f SpecialTransportType_free; +asn_struct_print_f SpecialTransportType_print; +asn_constr_check_f SpecialTransportType_constraint; +ber_type_decoder_f SpecialTransportType_decode_ber; +der_type_encoder_f SpecialTransportType_encode_der; +xer_type_decoder_f SpecialTransportType_decode_xer; +xer_type_encoder_f SpecialTransportType_encode_xer; +oer_type_decoder_f SpecialTransportType_decode_oer; +oer_type_encoder_f SpecialTransportType_encode_oer; +per_type_decoder_f SpecialTransportType_decode_uper; +per_type_encoder_f SpecialTransportType_encode_uper; +per_type_decoder_f SpecialTransportType_decode_aper; +per_type_encoder_f SpecialTransportType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpecialTransportType_H_ */ +#include diff --git a/vcits/spatem/Speed.h b/vcits/spatem/Speed.h new file mode 100644 index 0000000..55df208 --- /dev/null +++ b/vcits/spatem/Speed.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Speed_H_ +#define _Speed_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedValue.h" +#include "SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Speed */ +typedef struct Speed { + SpeedValue_t speedValue; + SpeedConfidence_t speedConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Speed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Speed; + +#ifdef __cplusplus +} +#endif + +#endif /* _Speed_H_ */ +#include diff --git a/vcits/spatem/SpeedAdvice.h b/vcits/spatem/SpeedAdvice.h new file mode 100644 index 0000000..01d3760 --- /dev/null +++ b/vcits/spatem/SpeedAdvice.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SpeedAdvice_H_ +#define _SpeedAdvice_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedAdvice */ +typedef long SpeedAdvice_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedAdvice; +asn_struct_free_f SpeedAdvice_free; +asn_struct_print_f SpeedAdvice_print; +asn_constr_check_f SpeedAdvice_constraint; +ber_type_decoder_f SpeedAdvice_decode_ber; +der_type_encoder_f SpeedAdvice_encode_der; +xer_type_decoder_f SpeedAdvice_decode_xer; +xer_type_encoder_f SpeedAdvice_encode_xer; +oer_type_decoder_f SpeedAdvice_decode_oer; +oer_type_encoder_f SpeedAdvice_encode_oer; +per_type_decoder_f SpeedAdvice_decode_uper; +per_type_encoder_f SpeedAdvice_encode_uper; +per_type_decoder_f SpeedAdvice_decode_aper; +per_type_encoder_f SpeedAdvice_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedAdvice_H_ */ +#include diff --git a/vcits/spatem/SpeedConfidence.h b/vcits/spatem/SpeedConfidence.h new file mode 100644 index 0000000..5c63361 --- /dev/null +++ b/vcits/spatem/SpeedConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SpeedConfidence_H_ +#define _SpeedConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidence { + SpeedConfidence_equalOrWithinOneCentimeterPerSec = 1, + SpeedConfidence_equalOrWithinOneMeterPerSec = 100, + SpeedConfidence_outOfRange = 126, + SpeedConfidence_unavailable = 127 +} e_SpeedConfidence; + +/* SpeedConfidence */ +typedef long SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidence; +asn_struct_free_f SpeedConfidence_free; +asn_struct_print_f SpeedConfidence_print; +asn_constr_check_f SpeedConfidence_constraint; +ber_type_decoder_f SpeedConfidence_decode_ber; +der_type_encoder_f SpeedConfidence_encode_der; +xer_type_decoder_f SpeedConfidence_decode_xer; +xer_type_encoder_f SpeedConfidence_encode_xer; +oer_type_decoder_f SpeedConfidence_decode_oer; +oer_type_encoder_f SpeedConfidence_encode_oer; +per_type_decoder_f SpeedConfidence_decode_uper; +per_type_encoder_f SpeedConfidence_encode_uper; +per_type_decoder_f SpeedConfidence_decode_aper; +per_type_encoder_f SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidence_H_ */ +#include diff --git a/vcits/spatem/SpeedConfidenceDSRC.h b/vcits/spatem/SpeedConfidenceDSRC.h new file mode 100644 index 0000000..74bb488 --- /dev/null +++ b/vcits/spatem/SpeedConfidenceDSRC.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SpeedConfidenceDSRC_H_ +#define _SpeedConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidenceDSRC { + SpeedConfidenceDSRC_unavailable = 0, + SpeedConfidenceDSRC_prec100ms = 1, + SpeedConfidenceDSRC_prec10ms = 2, + SpeedConfidenceDSRC_prec5ms = 3, + SpeedConfidenceDSRC_prec1ms = 4, + SpeedConfidenceDSRC_prec0_1ms = 5, + SpeedConfidenceDSRC_prec0_05ms = 6, + SpeedConfidenceDSRC_prec0_01ms = 7 +} e_SpeedConfidenceDSRC; + +/* SpeedConfidenceDSRC */ +typedef long SpeedConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedConfidenceDSRC_specs_1; +asn_struct_free_f SpeedConfidenceDSRC_free; +asn_struct_print_f SpeedConfidenceDSRC_print; +asn_constr_check_f SpeedConfidenceDSRC_constraint; +ber_type_decoder_f SpeedConfidenceDSRC_decode_ber; +der_type_encoder_f SpeedConfidenceDSRC_encode_der; +xer_type_decoder_f SpeedConfidenceDSRC_decode_xer; +xer_type_encoder_f SpeedConfidenceDSRC_encode_xer; +oer_type_decoder_f SpeedConfidenceDSRC_decode_oer; +oer_type_encoder_f SpeedConfidenceDSRC_encode_oer; +per_type_decoder_f SpeedConfidenceDSRC_decode_uper; +per_type_encoder_f SpeedConfidenceDSRC_encode_uper; +per_type_decoder_f SpeedConfidenceDSRC_decode_aper; +per_type_encoder_f SpeedConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidenceDSRC_H_ */ +#include diff --git a/vcits/spatem/SpeedLimit.h b/vcits/spatem/SpeedLimit.h new file mode 100644 index 0000000..bf273a3 --- /dev/null +++ b/vcits/spatem/SpeedLimit.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SpeedLimit_H_ +#define _SpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimit { + SpeedLimit_oneKmPerHour = 1 +} e_SpeedLimit; + +/* SpeedLimit */ +typedef long SpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimit; +asn_struct_free_f SpeedLimit_free; +asn_struct_print_f SpeedLimit_print; +asn_constr_check_f SpeedLimit_constraint; +ber_type_decoder_f SpeedLimit_decode_ber; +der_type_encoder_f SpeedLimit_encode_der; +xer_type_decoder_f SpeedLimit_decode_xer; +xer_type_encoder_f SpeedLimit_encode_xer; +oer_type_decoder_f SpeedLimit_decode_oer; +oer_type_encoder_f SpeedLimit_encode_oer; +per_type_decoder_f SpeedLimit_decode_uper; +per_type_encoder_f SpeedLimit_encode_uper; +per_type_decoder_f SpeedLimit_decode_aper; +per_type_encoder_f SpeedLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimit_H_ */ +#include diff --git a/vcits/spatem/SpeedLimitList.h b/vcits/spatem/SpeedLimitList.h new file mode 100644 index 0000000..2441b3a --- /dev/null +++ b/vcits/spatem/SpeedLimitList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SpeedLimitList_H_ +#define _SpeedLimitList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RegulatorySpeedLimit; + +/* SpeedLimitList */ +typedef struct SpeedLimitList { + A_SEQUENCE_OF(struct RegulatorySpeedLimit) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedLimitList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitList; +extern asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedLimitList_1[1]; +extern asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitList_H_ */ +#include diff --git a/vcits/spatem/SpeedLimitType.h b/vcits/spatem/SpeedLimitType.h new file mode 100644 index 0000000..cc4049b --- /dev/null +++ b/vcits/spatem/SpeedLimitType.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SpeedLimitType_H_ +#define _SpeedLimitType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimitType { + SpeedLimitType_unknown = 0, + SpeedLimitType_maxSpeedInSchoolZone = 1, + SpeedLimitType_maxSpeedInSchoolZoneWhenChildrenArePresent = 2, + SpeedLimitType_maxSpeedInConstructionZone = 3, + SpeedLimitType_vehicleMinSpeed = 4, + SpeedLimitType_vehicleMaxSpeed = 5, + SpeedLimitType_vehicleNightMaxSpeed = 6, + SpeedLimitType_truckMinSpeed = 7, + SpeedLimitType_truckMaxSpeed = 8, + SpeedLimitType_truckNightMaxSpeed = 9, + SpeedLimitType_vehiclesWithTrailersMinSpeed = 10, + SpeedLimitType_vehiclesWithTrailersMaxSpeed = 11, + SpeedLimitType_vehiclesWithTrailersNightMaxSpeed = 12 + /* + * Enumeration is extensible + */ +} e_SpeedLimitType; + +/* SpeedLimitType */ +typedef long SpeedLimitType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitType; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1; +asn_struct_free_f SpeedLimitType_free; +asn_struct_print_f SpeedLimitType_print; +asn_constr_check_f SpeedLimitType_constraint; +ber_type_decoder_f SpeedLimitType_decode_ber; +der_type_encoder_f SpeedLimitType_encode_der; +xer_type_decoder_f SpeedLimitType_decode_xer; +xer_type_encoder_f SpeedLimitType_encode_xer; +oer_type_decoder_f SpeedLimitType_decode_oer; +oer_type_encoder_f SpeedLimitType_encode_oer; +per_type_decoder_f SpeedLimitType_decode_uper; +per_type_encoder_f SpeedLimitType_encode_uper; +per_type_decoder_f SpeedLimitType_decode_aper; +per_type_encoder_f SpeedLimitType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitType_H_ */ +#include diff --git a/vcits/spatem/SpeedValue.h b/vcits/spatem/SpeedValue.h new file mode 100644 index 0000000..7a3abb5 --- /dev/null +++ b/vcits/spatem/SpeedValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SpeedValue_H_ +#define _SpeedValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedValue { + SpeedValue_standstill = 0, + SpeedValue_oneCentimeterPerSec = 1, + SpeedValue_unavailable = 16383 +} e_SpeedValue; + +/* SpeedValue */ +typedef long SpeedValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedValue; +asn_struct_free_f SpeedValue_free; +asn_struct_print_f SpeedValue_print; +asn_constr_check_f SpeedValue_constraint; +ber_type_decoder_f SpeedValue_decode_ber; +der_type_encoder_f SpeedValue_encode_der; +xer_type_decoder_f SpeedValue_decode_xer; +xer_type_encoder_f SpeedValue_encode_xer; +oer_type_decoder_f SpeedValue_decode_oer; +oer_type_encoder_f SpeedValue_encode_oer; +per_type_decoder_f SpeedValue_decode_uper; +per_type_encoder_f SpeedValue_encode_uper; +per_type_decoder_f SpeedValue_decode_aper; +per_type_encoder_f SpeedValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedValue_H_ */ +#include diff --git a/vcits/spatem/SpeedandHeadingandThrottleConfidence.h b/vcits/spatem/SpeedandHeadingandThrottleConfidence.h new file mode 100644 index 0000000..fe33ad0 --- /dev/null +++ b/vcits/spatem/SpeedandHeadingandThrottleConfidence.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SpeedandHeadingandThrottleConfidence_H_ +#define _SpeedandHeadingandThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingConfidenceDSRC.h" +#include "SpeedConfidenceDSRC.h" +#include "ThrottleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedandHeadingandThrottleConfidence */ +typedef struct SpeedandHeadingandThrottleConfidence { + HeadingConfidenceDSRC_t heading; + SpeedConfidenceDSRC_t speed; + ThrottleConfidence_t throttle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedandHeadingandThrottleConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedandHeadingandThrottleConfidence_H_ */ +#include diff --git a/vcits/spatem/StartTime.h b/vcits/spatem/StartTime.h new file mode 100644 index 0000000..2881a4f --- /dev/null +++ b/vcits/spatem/StartTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _StartTime_H_ +#define _StartTime_H_ + + +#include + +/* Including external dependencies */ +#include "AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* StartTime */ +typedef AviEriDateTime_t StartTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StartTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StartTime; +asn_struct_free_f StartTime_free; +asn_struct_print_f StartTime_print; +asn_constr_check_f StartTime_constraint; +ber_type_decoder_f StartTime_decode_ber; +der_type_encoder_f StartTime_encode_der; +xer_type_decoder_f StartTime_decode_xer; +xer_type_encoder_f StartTime_encode_xer; +oer_type_decoder_f StartTime_decode_oer; +oer_type_encoder_f StartTime_encode_oer; +per_type_decoder_f StartTime_decode_uper; +per_type_encoder_f StartTime_encode_uper; +per_type_decoder_f StartTime_decode_aper; +per_type_encoder_f StartTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StartTime_H_ */ +#include diff --git a/vcits/spatem/StationID.h b/vcits/spatem/StationID.h new file mode 100644 index 0000000..d179cfe --- /dev/null +++ b/vcits/spatem/StationID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _StationID_H_ +#define _StationID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* StationID */ +typedef unsigned long StationID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationID; +extern const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1; +asn_struct_free_f StationID_free; +asn_struct_print_f StationID_print; +asn_constr_check_f StationID_constraint; +ber_type_decoder_f StationID_decode_ber; +der_type_encoder_f StationID_encode_der; +xer_type_decoder_f StationID_decode_xer; +xer_type_encoder_f StationID_encode_xer; +oer_type_decoder_f StationID_decode_oer; +oer_type_encoder_f StationID_encode_oer; +per_type_decoder_f StationID_decode_uper; +per_type_encoder_f StationID_encode_uper; +per_type_decoder_f StationID_decode_aper; +per_type_encoder_f StationID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationID_H_ */ +#include diff --git a/vcits/spatem/StationType.h b/vcits/spatem/StationType.h new file mode 100644 index 0000000..39ef436 --- /dev/null +++ b/vcits/spatem/StationType.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _StationType_H_ +#define _StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationType { + StationType_unknown = 0, + StationType_pedestrian = 1, + StationType_cyclist = 2, + StationType_moped = 3, + StationType_motorcycle = 4, + StationType_passengerCar = 5, + StationType_bus = 6, + StationType_lightTruck = 7, + StationType_heavyTruck = 8, + StationType_trailer = 9, + StationType_specialVehicles = 10, + StationType_tram = 11, + StationType_roadSideUnit = 15 +} e_StationType; + +/* StationType */ +typedef long StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationType; +asn_struct_free_f StationType_free; +asn_struct_print_f StationType_print; +asn_constr_check_f StationType_constraint; +ber_type_decoder_f StationType_decode_ber; +der_type_encoder_f StationType_encode_der; +xer_type_decoder_f StationType_decode_xer; +xer_type_encoder_f StationType_encode_xer; +oer_type_decoder_f StationType_decode_oer; +oer_type_encoder_f StationType_encode_oer; +per_type_decoder_f StationType_decode_uper; +per_type_encoder_f StationType_encode_uper; +per_type_decoder_f StationType_decode_aper; +per_type_encoder_f StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationType_H_ */ +#include diff --git a/vcits/spatem/StationarySince.h b/vcits/spatem/StationarySince.h new file mode 100644 index 0000000..7410a2f --- /dev/null +++ b/vcits/spatem/StationarySince.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _StationarySince_H_ +#define _StationarySince_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationarySince { + StationarySince_lessThan1Minute = 0, + StationarySince_lessThan2Minutes = 1, + StationarySince_lessThan15Minutes = 2, + StationarySince_equalOrGreater15Minutes = 3 +} e_StationarySince; + +/* StationarySince */ +typedef long StationarySince_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationarySince; +asn_struct_free_f StationarySince_free; +asn_struct_print_f StationarySince_print; +asn_constr_check_f StationarySince_constraint; +ber_type_decoder_f StationarySince_decode_ber; +der_type_encoder_f StationarySince_encode_der; +xer_type_decoder_f StationarySince_decode_xer; +xer_type_encoder_f StationarySince_encode_xer; +oer_type_decoder_f StationarySince_decode_oer; +oer_type_encoder_f StationarySince_encode_oer; +per_type_decoder_f StationarySince_decode_uper; +per_type_encoder_f StationarySince_encode_uper; +per_type_decoder_f StationarySince_decode_aper; +per_type_encoder_f StationarySince_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationarySince_H_ */ +#include diff --git a/vcits/spatem/StationaryVehicleSubCauseCode.h b/vcits/spatem/StationaryVehicleSubCauseCode.h new file mode 100644 index 0000000..eca7074 --- /dev/null +++ b/vcits/spatem/StationaryVehicleSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _StationaryVehicleSubCauseCode_H_ +#define _StationaryVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationaryVehicleSubCauseCode { + StationaryVehicleSubCauseCode_unavailable = 0, + StationaryVehicleSubCauseCode_humanProblem = 1, + StationaryVehicleSubCauseCode_vehicleBreakdown = 2, + StationaryVehicleSubCauseCode_postCrash = 3, + StationaryVehicleSubCauseCode_publicTransportStop = 4, + StationaryVehicleSubCauseCode_carryingDangerousGoods = 5 +} e_StationaryVehicleSubCauseCode; + +/* StationaryVehicleSubCauseCode */ +typedef long StationaryVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode; +asn_struct_free_f StationaryVehicleSubCauseCode_free; +asn_struct_print_f StationaryVehicleSubCauseCode_print; +asn_constr_check_f StationaryVehicleSubCauseCode_constraint; +ber_type_decoder_f StationaryVehicleSubCauseCode_decode_ber; +der_type_encoder_f StationaryVehicleSubCauseCode_encode_der; +xer_type_decoder_f StationaryVehicleSubCauseCode_decode_xer; +xer_type_encoder_f StationaryVehicleSubCauseCode_encode_xer; +oer_type_decoder_f StationaryVehicleSubCauseCode_decode_oer; +oer_type_encoder_f StationaryVehicleSubCauseCode_encode_oer; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_uper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_uper; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_aper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationaryVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/SteeringWheelAngle.h b/vcits/spatem/SteeringWheelAngle.h new file mode 100644 index 0000000..a59a9e2 --- /dev/null +++ b/vcits/spatem/SteeringWheelAngle.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SteeringWheelAngle_H_ +#define _SteeringWheelAngle_H_ + + +#include + +/* Including external dependencies */ +#include "SteeringWheelAngleValue.h" +#include "SteeringWheelAngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SteeringWheelAngle */ +typedef struct SteeringWheelAngle { + SteeringWheelAngleValue_t steeringWheelAngleValue; + SteeringWheelAngleConfidence_t steeringWheelAngleConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SteeringWheelAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngle_H_ */ +#include diff --git a/vcits/spatem/SteeringWheelAngleConfidence.h b/vcits/spatem/SteeringWheelAngleConfidence.h new file mode 100644 index 0000000..803600d --- /dev/null +++ b/vcits/spatem/SteeringWheelAngleConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SteeringWheelAngleConfidence_H_ +#define _SteeringWheelAngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleConfidence { + SteeringWheelAngleConfidence_equalOrWithinOnePointFiveDegree = 1, + SteeringWheelAngleConfidence_outOfRange = 126, + SteeringWheelAngleConfidence_unavailable = 127 +} e_SteeringWheelAngleConfidence; + +/* SteeringWheelAngleConfidence */ +typedef long SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence; +asn_struct_free_f SteeringWheelAngleConfidence_free; +asn_struct_print_f SteeringWheelAngleConfidence_print; +asn_constr_check_f SteeringWheelAngleConfidence_constraint; +ber_type_decoder_f SteeringWheelAngleConfidence_decode_ber; +der_type_encoder_f SteeringWheelAngleConfidence_encode_der; +xer_type_decoder_f SteeringWheelAngleConfidence_decode_xer; +xer_type_encoder_f SteeringWheelAngleConfidence_encode_xer; +oer_type_decoder_f SteeringWheelAngleConfidence_decode_oer; +oer_type_encoder_f SteeringWheelAngleConfidence_encode_oer; +per_type_decoder_f SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleConfidence_H_ */ +#include diff --git a/vcits/spatem/SteeringWheelAngleValue.h b/vcits/spatem/SteeringWheelAngleValue.h new file mode 100644 index 0000000..7e857ec --- /dev/null +++ b/vcits/spatem/SteeringWheelAngleValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SteeringWheelAngleValue_H_ +#define _SteeringWheelAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleValue { + SteeringWheelAngleValue_straight = 0, + SteeringWheelAngleValue_onePointFiveDegreesToRight = -1, + SteeringWheelAngleValue_onePointFiveDegreesToLeft = 1, + SteeringWheelAngleValue_unavailable = 512 +} e_SteeringWheelAngleValue; + +/* SteeringWheelAngleValue */ +typedef long SteeringWheelAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue; +asn_struct_free_f SteeringWheelAngleValue_free; +asn_struct_print_f SteeringWheelAngleValue_print; +asn_constr_check_f SteeringWheelAngleValue_constraint; +ber_type_decoder_f SteeringWheelAngleValue_decode_ber; +der_type_encoder_f SteeringWheelAngleValue_encode_der; +xer_type_decoder_f SteeringWheelAngleValue_decode_xer; +xer_type_encoder_f SteeringWheelAngleValue_encode_xer; +oer_type_decoder_f SteeringWheelAngleValue_decode_oer; +oer_type_encoder_f SteeringWheelAngleValue_encode_oer; +per_type_decoder_f SteeringWheelAngleValue_decode_uper; +per_type_encoder_f SteeringWheelAngleValue_encode_uper; +per_type_decoder_f SteeringWheelAngleValue_decode_aper; +per_type_encoder_f SteeringWheelAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleValue_H_ */ +#include diff --git a/vcits/spatem/StopTime.h b/vcits/spatem/StopTime.h new file mode 100644 index 0000000..2e1984e --- /dev/null +++ b/vcits/spatem/StopTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _StopTime_H_ +#define _StopTime_H_ + + +#include + +/* Including external dependencies */ +#include "AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* StopTime */ +typedef AviEriDateTime_t StopTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StopTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StopTime; +asn_struct_free_f StopTime_free; +asn_struct_print_f StopTime_print; +asn_constr_check_f StopTime_constraint; +ber_type_decoder_f StopTime_decode_ber; +der_type_encoder_f StopTime_encode_der; +xer_type_decoder_f StopTime_decode_xer; +xer_type_encoder_f StopTime_encode_xer; +oer_type_decoder_f StopTime_decode_oer; +oer_type_encoder_f StopTime_encode_oer; +per_type_decoder_f StopTime_decode_uper; +per_type_encoder_f StopTime_encode_uper; +per_type_decoder_f StopTime_decode_aper; +per_type_encoder_f StopTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StopTime_H_ */ +#include diff --git a/vcits/spatem/SubCauseCodeType.h b/vcits/spatem/SubCauseCodeType.h new file mode 100644 index 0000000..6698cd0 --- /dev/null +++ b/vcits/spatem/SubCauseCodeType.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _SubCauseCodeType_H_ +#define _SubCauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SubCauseCodeType */ +typedef long SubCauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType; +asn_struct_free_f SubCauseCodeType_free; +asn_struct_print_f SubCauseCodeType_print; +asn_constr_check_f SubCauseCodeType_constraint; +ber_type_decoder_f SubCauseCodeType_decode_ber; +der_type_encoder_f SubCauseCodeType_encode_der; +xer_type_decoder_f SubCauseCodeType_decode_xer; +xer_type_encoder_f SubCauseCodeType_encode_xer; +oer_type_decoder_f SubCauseCodeType_decode_oer; +oer_type_encoder_f SubCauseCodeType_encode_oer; +per_type_decoder_f SubCauseCodeType_decode_uper; +per_type_encoder_f SubCauseCodeType_encode_uper; +per_type_decoder_f SubCauseCodeType_decode_aper; +per_type_encoder_f SubCauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SubCauseCodeType_H_ */ +#include diff --git a/vcits/spatem/TaxCode.h b/vcits/spatem/TaxCode.h new file mode 100644 index 0000000..20f7846 --- /dev/null +++ b/vcits/spatem/TaxCode.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TaxCode_H_ +#define _TaxCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TaxCode */ +typedef OCTET_STRING_t TaxCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TaxCode; +asn_struct_free_f TaxCode_free; +asn_struct_print_f TaxCode_print; +asn_constr_check_f TaxCode_constraint; +ber_type_decoder_f TaxCode_decode_ber; +der_type_encoder_f TaxCode_encode_der; +xer_type_decoder_f TaxCode_decode_xer; +xer_type_encoder_f TaxCode_encode_xer; +oer_type_decoder_f TaxCode_decode_oer; +oer_type_encoder_f TaxCode_encode_oer; +per_type_decoder_f TaxCode_decode_uper; +per_type_encoder_f TaxCode_encode_uper; +per_type_decoder_f TaxCode_decode_aper; +per_type_encoder_f TaxCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TaxCode_H_ */ +#include diff --git a/vcits/spatem/Temperature.h b/vcits/spatem/Temperature.h new file mode 100644 index 0000000..e2562f9 --- /dev/null +++ b/vcits/spatem/Temperature.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Temperature_H_ +#define _Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Temperature { + Temperature_equalOrSmallerThanMinus60Deg = -60, + Temperature_oneDegreeCelsius = 1, + Temperature_equalOrGreaterThan67Deg = 67 +} e_Temperature; + +/* Temperature */ +typedef long Temperature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Temperature; +asn_struct_free_f Temperature_free; +asn_struct_print_f Temperature_print; +asn_constr_check_f Temperature_constraint; +ber_type_decoder_f Temperature_decode_ber; +der_type_encoder_f Temperature_encode_der; +xer_type_decoder_f Temperature_decode_xer; +xer_type_encoder_f Temperature_encode_xer; +oer_type_decoder_f Temperature_decode_oer; +oer_type_encoder_f Temperature_encode_oer; +per_type_decoder_f Temperature_decode_uper; +per_type_encoder_f Temperature_encode_uper; +per_type_decoder_f Temperature_decode_aper; +per_type_encoder_f Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Temperature_H_ */ +#include diff --git a/vcits/spatem/TemporaryID.h b/vcits/spatem/TemporaryID.h new file mode 100644 index 0000000..e47006a --- /dev/null +++ b/vcits/spatem/TemporaryID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TemporaryID_H_ +#define _TemporaryID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TemporaryID */ +typedef OCTET_STRING_t TemporaryID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TemporaryID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TemporaryID; +asn_struct_free_f TemporaryID_free; +asn_struct_print_f TemporaryID_print; +asn_constr_check_f TemporaryID_constraint; +ber_type_decoder_f TemporaryID_decode_ber; +der_type_encoder_f TemporaryID_encode_der; +xer_type_decoder_f TemporaryID_decode_xer; +xer_type_encoder_f TemporaryID_encode_xer; +oer_type_decoder_f TemporaryID_decode_oer; +oer_type_encoder_f TemporaryID_encode_oer; +per_type_decoder_f TemporaryID_decode_uper; +per_type_encoder_f TemporaryID_encode_uper; +per_type_decoder_f TemporaryID_decode_aper; +per_type_encoder_f TemporaryID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TemporaryID_H_ */ +#include diff --git a/vcits/spatem/ThrottleConfidence.h b/vcits/spatem/ThrottleConfidence.h new file mode 100644 index 0000000..e4d0ee9 --- /dev/null +++ b/vcits/spatem/ThrottleConfidence.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ThrottleConfidence_H_ +#define _ThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ThrottleConfidence { + ThrottleConfidence_unavailable = 0, + ThrottleConfidence_prec10percent = 1, + ThrottleConfidence_prec1percent = 2, + ThrottleConfidence_prec0_5percent = 3 +} e_ThrottleConfidence; + +/* ThrottleConfidence */ +typedef long ThrottleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1; +asn_struct_free_f ThrottleConfidence_free; +asn_struct_print_f ThrottleConfidence_print; +asn_constr_check_f ThrottleConfidence_constraint; +ber_type_decoder_f ThrottleConfidence_decode_ber; +der_type_encoder_f ThrottleConfidence_encode_der; +xer_type_decoder_f ThrottleConfidence_decode_xer; +xer_type_encoder_f ThrottleConfidence_encode_xer; +oer_type_decoder_f ThrottleConfidence_decode_oer; +oer_type_encoder_f ThrottleConfidence_encode_oer; +per_type_decoder_f ThrottleConfidence_decode_uper; +per_type_encoder_f ThrottleConfidence_encode_uper; +per_type_decoder_f ThrottleConfidence_decode_aper; +per_type_encoder_f ThrottleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ThrottleConfidence_H_ */ +#include diff --git a/vcits/spatem/TimeChangeDetails.h b/vcits/spatem/TimeChangeDetails.h new file mode 100644 index 0000000..a29e48a --- /dev/null +++ b/vcits/spatem/TimeChangeDetails.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TimeChangeDetails_H_ +#define _TimeChangeDetails_H_ + + +#include + +/* Including external dependencies */ +#include "TimeMark.h" +#include "TimeIntervalConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeChangeDetails */ +typedef struct TimeChangeDetails { + TimeMark_t *startTime; /* OPTIONAL */ + TimeMark_t minEndTime; + TimeMark_t *maxEndTime; /* OPTIONAL */ + TimeMark_t *likelyTime; /* OPTIONAL */ + TimeIntervalConfidence_t *confidence; /* OPTIONAL */ + TimeMark_t *nextTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TimeChangeDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeChangeDetails_H_ */ +#include diff --git a/vcits/spatem/TimeConfidence.h b/vcits/spatem/TimeConfidence.h new file mode 100644 index 0000000..cac1696 --- /dev/null +++ b/vcits/spatem/TimeConfidence.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TimeConfidence_H_ +#define _TimeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeConfidence { + TimeConfidence_unavailable = 0, + TimeConfidence_time_100_000 = 1, + TimeConfidence_time_050_000 = 2, + TimeConfidence_time_020_000 = 3, + TimeConfidence_time_010_000 = 4, + TimeConfidence_time_002_000 = 5, + TimeConfidence_time_001_000 = 6, + TimeConfidence_time_000_500 = 7, + TimeConfidence_time_000_200 = 8, + TimeConfidence_time_000_100 = 9, + TimeConfidence_time_000_050 = 10, + TimeConfidence_time_000_020 = 11, + TimeConfidence_time_000_010 = 12, + TimeConfidence_time_000_005 = 13, + TimeConfidence_time_000_002 = 14, + TimeConfidence_time_000_001 = 15, + TimeConfidence_time_000_000_5 = 16, + TimeConfidence_time_000_000_2 = 17, + TimeConfidence_time_000_000_1 = 18, + TimeConfidence_time_000_000_05 = 19, + TimeConfidence_time_000_000_02 = 20, + TimeConfidence_time_000_000_01 = 21, + TimeConfidence_time_000_000_005 = 22, + TimeConfidence_time_000_000_002 = 23, + TimeConfidence_time_000_000_001 = 24, + TimeConfidence_time_000_000_000_5 = 25, + TimeConfidence_time_000_000_000_2 = 26, + TimeConfidence_time_000_000_000_1 = 27, + TimeConfidence_time_000_000_000_05 = 28, + TimeConfidence_time_000_000_000_02 = 29, + TimeConfidence_time_000_000_000_01 = 30, + TimeConfidence_time_000_000_000_005 = 31, + TimeConfidence_time_000_000_000_002 = 32, + TimeConfidence_time_000_000_000_001 = 33, + TimeConfidence_time_000_000_000_000_5 = 34, + TimeConfidence_time_000_000_000_000_2 = 35, + TimeConfidence_time_000_000_000_000_1 = 36, + TimeConfidence_time_000_000_000_000_05 = 37, + TimeConfidence_time_000_000_000_000_02 = 38, + TimeConfidence_time_000_000_000_000_01 = 39 +} e_TimeConfidence; + +/* TimeConfidence */ +typedef long TimeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1; +asn_struct_free_f TimeConfidence_free; +asn_struct_print_f TimeConfidence_print; +asn_constr_check_f TimeConfidence_constraint; +ber_type_decoder_f TimeConfidence_decode_ber; +der_type_encoder_f TimeConfidence_encode_der; +xer_type_decoder_f TimeConfidence_decode_xer; +xer_type_encoder_f TimeConfidence_encode_xer; +oer_type_decoder_f TimeConfidence_decode_oer; +oer_type_encoder_f TimeConfidence_encode_oer; +per_type_decoder_f TimeConfidence_decode_uper; +per_type_encoder_f TimeConfidence_encode_uper; +per_type_decoder_f TimeConfidence_decode_aper; +per_type_encoder_f TimeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeConfidence_H_ */ +#include diff --git a/vcits/spatem/TimeIntervalConfidence.h b/vcits/spatem/TimeIntervalConfidence.h new file mode 100644 index 0000000..9222343 --- /dev/null +++ b/vcits/spatem/TimeIntervalConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TimeIntervalConfidence_H_ +#define _TimeIntervalConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeIntervalConfidence */ +typedef long TimeIntervalConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence; +asn_struct_free_f TimeIntervalConfidence_free; +asn_struct_print_f TimeIntervalConfidence_print; +asn_constr_check_f TimeIntervalConfidence_constraint; +ber_type_decoder_f TimeIntervalConfidence_decode_ber; +der_type_encoder_f TimeIntervalConfidence_encode_der; +xer_type_decoder_f TimeIntervalConfidence_decode_xer; +xer_type_encoder_f TimeIntervalConfidence_encode_xer; +oer_type_decoder_f TimeIntervalConfidence_decode_oer; +oer_type_encoder_f TimeIntervalConfidence_encode_oer; +per_type_decoder_f TimeIntervalConfidence_decode_uper; +per_type_encoder_f TimeIntervalConfidence_encode_uper; +per_type_decoder_f TimeIntervalConfidence_decode_aper; +per_type_encoder_f TimeIntervalConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeIntervalConfidence_H_ */ +#include diff --git a/vcits/spatem/TimeMark.h b/vcits/spatem/TimeMark.h new file mode 100644 index 0000000..32d29ea --- /dev/null +++ b/vcits/spatem/TimeMark.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TimeMark_H_ +#define _TimeMark_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeMark */ +typedef long TimeMark_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeMark_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeMark; +asn_struct_free_f TimeMark_free; +asn_struct_print_f TimeMark_print; +asn_constr_check_f TimeMark_constraint; +ber_type_decoder_f TimeMark_decode_ber; +der_type_encoder_f TimeMark_encode_der; +xer_type_decoder_f TimeMark_decode_xer; +xer_type_encoder_f TimeMark_encode_xer; +oer_type_decoder_f TimeMark_decode_oer; +oer_type_encoder_f TimeMark_encode_oer; +per_type_decoder_f TimeMark_decode_uper; +per_type_encoder_f TimeMark_encode_uper; +per_type_decoder_f TimeMark_decode_aper; +per_type_encoder_f TimeMark_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeMark_H_ */ +#include diff --git a/vcits/spatem/TimeReference.h b/vcits/spatem/TimeReference.h new file mode 100644 index 0000000..ee0d2b8 --- /dev/null +++ b/vcits/spatem/TimeReference.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TimeReference_H_ +#define _TimeReference_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeReference { + TimeReference_oneMilliSec = 1 +} e_TimeReference; + +/* TimeReference */ +typedef long TimeReference_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeReference_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeReference; +asn_struct_free_f TimeReference_free; +asn_struct_print_f TimeReference_print; +asn_constr_check_f TimeReference_constraint; +ber_type_decoder_f TimeReference_decode_ber; +der_type_encoder_f TimeReference_encode_der; +xer_type_decoder_f TimeReference_decode_xer; +xer_type_encoder_f TimeReference_encode_xer; +oer_type_decoder_f TimeReference_decode_oer; +oer_type_encoder_f TimeReference_encode_oer; +per_type_decoder_f TimeReference_decode_uper; +per_type_encoder_f TimeReference_encode_uper; +per_type_decoder_f TimeReference_decode_aper; +per_type_encoder_f TimeReference_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeReference_H_ */ +#include diff --git a/vcits/spatem/TimestampIts.h b/vcits/spatem/TimestampIts.h new file mode 100644 index 0000000..2e9fa70 --- /dev/null +++ b/vcits/spatem/TimestampIts.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TimestampIts_H_ +#define _TimestampIts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimestampIts { + TimestampIts_utcStartOf2004 = 0, + TimestampIts_oneMillisecAfterUTCStartOf2004 = 1 +} e_TimestampIts; + +/* TimestampIts */ +typedef INTEGER_t TimestampIts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimestampIts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimestampIts; +asn_struct_free_f TimestampIts_free; +asn_struct_print_f TimestampIts_print; +asn_constr_check_f TimestampIts_constraint; +ber_type_decoder_f TimestampIts_decode_ber; +der_type_encoder_f TimestampIts_encode_der; +xer_type_decoder_f TimestampIts_decode_xer; +xer_type_encoder_f TimestampIts_encode_xer; +oer_type_decoder_f TimestampIts_decode_oer; +oer_type_encoder_f TimestampIts_encode_oer; +per_type_decoder_f TimestampIts_decode_uper; +per_type_encoder_f TimestampIts_encode_uper; +per_type_decoder_f TimestampIts_decode_aper; +per_type_encoder_f TimestampIts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimestampIts_H_ */ +#include diff --git a/vcits/spatem/Traces.h b/vcits/spatem/Traces.h new file mode 100644 index 0000000..e77c3e7 --- /dev/null +++ b/vcits/spatem/Traces.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Traces_H_ +#define _Traces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathHistory; + +/* Traces */ +typedef struct Traces { + A_SEQUENCE_OF(struct PathHistory) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Traces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Traces; + +#ifdef __cplusplus +} +#endif + +#endif /* _Traces_H_ */ +#include diff --git a/vcits/spatem/TrafficConditionSubCauseCode.h b/vcits/spatem/TrafficConditionSubCauseCode.h new file mode 100644 index 0000000..536a93c --- /dev/null +++ b/vcits/spatem/TrafficConditionSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TrafficConditionSubCauseCode_H_ +#define _TrafficConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficConditionSubCauseCode { + TrafficConditionSubCauseCode_unavailable = 0, + TrafficConditionSubCauseCode_increasedVolumeOfTraffic = 1, + TrafficConditionSubCauseCode_trafficJamSlowlyIncreasing = 2, + TrafficConditionSubCauseCode_trafficJamIncreasing = 3, + TrafficConditionSubCauseCode_trafficJamStronglyIncreasing = 4, + TrafficConditionSubCauseCode_trafficStationary = 5, + TrafficConditionSubCauseCode_trafficJamSlightlyDecreasing = 6, + TrafficConditionSubCauseCode_trafficJamDecreasing = 7, + TrafficConditionSubCauseCode_trafficJamStronglyDecreasing = 8 +} e_TrafficConditionSubCauseCode; + +/* TrafficConditionSubCauseCode */ +typedef long TrafficConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode; +asn_struct_free_f TrafficConditionSubCauseCode_free; +asn_struct_print_f TrafficConditionSubCauseCode_print; +asn_constr_check_f TrafficConditionSubCauseCode_constraint; +ber_type_decoder_f TrafficConditionSubCauseCode_decode_ber; +der_type_encoder_f TrafficConditionSubCauseCode_encode_der; +xer_type_decoder_f TrafficConditionSubCauseCode_decode_xer; +xer_type_encoder_f TrafficConditionSubCauseCode_encode_xer; +oer_type_decoder_f TrafficConditionSubCauseCode_decode_oer; +oer_type_encoder_f TrafficConditionSubCauseCode_encode_oer; +per_type_decoder_f TrafficConditionSubCauseCode_decode_uper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_uper; +per_type_decoder_f TrafficConditionSubCauseCode_decode_aper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficConditionSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/TrafficRule.h b/vcits/spatem/TrafficRule.h new file mode 100644 index 0000000..6f398e8 --- /dev/null +++ b/vcits/spatem/TrafficRule.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TrafficRule_H_ +#define _TrafficRule_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficRule { + TrafficRule_noPassing = 0, + TrafficRule_noPassingForTrucks = 1, + TrafficRule_passToRight = 2, + TrafficRule_passToLeft = 3 + /* + * Enumeration is extensible + */ +} e_TrafficRule; + +/* TrafficRule */ +typedef long TrafficRule_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficRule; +asn_struct_free_f TrafficRule_free; +asn_struct_print_f TrafficRule_print; +asn_constr_check_f TrafficRule_constraint; +ber_type_decoder_f TrafficRule_decode_ber; +der_type_encoder_f TrafficRule_encode_der; +xer_type_decoder_f TrafficRule_decode_xer; +xer_type_encoder_f TrafficRule_encode_xer; +oer_type_decoder_f TrafficRule_decode_oer; +oer_type_encoder_f TrafficRule_encode_oer; +per_type_decoder_f TrafficRule_decode_uper; +per_type_encoder_f TrafficRule_encode_uper; +per_type_decoder_f TrafficRule_decode_aper; +per_type_encoder_f TrafficRule_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficRule_H_ */ +#include diff --git a/vcits/spatem/TransitVehicleOccupancy.h b/vcits/spatem/TransitVehicleOccupancy.h new file mode 100644 index 0000000..28ef09f --- /dev/null +++ b/vcits/spatem/TransitVehicleOccupancy.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TransitVehicleOccupancy_H_ +#define _TransitVehicleOccupancy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleOccupancy { + TransitVehicleOccupancy_occupancyUnknown = 0, + TransitVehicleOccupancy_occupancyEmpty = 1, + TransitVehicleOccupancy_occupancyVeryLow = 2, + TransitVehicleOccupancy_occupancyLow = 3, + TransitVehicleOccupancy_occupancyMed = 4, + TransitVehicleOccupancy_occupancyHigh = 5, + TransitVehicleOccupancy_occupancyNearlyFull = 6, + TransitVehicleOccupancy_occupancyFull = 7 +} e_TransitVehicleOccupancy; + +/* TransitVehicleOccupancy */ +typedef long TransitVehicleOccupancy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy; +extern const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1; +asn_struct_free_f TransitVehicleOccupancy_free; +asn_struct_print_f TransitVehicleOccupancy_print; +asn_constr_check_f TransitVehicleOccupancy_constraint; +ber_type_decoder_f TransitVehicleOccupancy_decode_ber; +der_type_encoder_f TransitVehicleOccupancy_encode_der; +xer_type_decoder_f TransitVehicleOccupancy_decode_xer; +xer_type_encoder_f TransitVehicleOccupancy_encode_xer; +oer_type_decoder_f TransitVehicleOccupancy_decode_oer; +oer_type_encoder_f TransitVehicleOccupancy_encode_oer; +per_type_decoder_f TransitVehicleOccupancy_decode_uper; +per_type_encoder_f TransitVehicleOccupancy_encode_uper; +per_type_decoder_f TransitVehicleOccupancy_decode_aper; +per_type_encoder_f TransitVehicleOccupancy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleOccupancy_H_ */ +#include diff --git a/vcits/spatem/TransitVehicleStatus.h b/vcits/spatem/TransitVehicleStatus.h new file mode 100644 index 0000000..f35e5e8 --- /dev/null +++ b/vcits/spatem/TransitVehicleStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TransitVehicleStatus_H_ +#define _TransitVehicleStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleStatus { + TransitVehicleStatus_loading = 0, + TransitVehicleStatus_anADAuse = 1, + TransitVehicleStatus_aBikeLoad = 2, + TransitVehicleStatus_doorOpen = 3, + TransitVehicleStatus_charging = 4, + TransitVehicleStatus_atStopLine = 5 +} e_TransitVehicleStatus; + +/* TransitVehicleStatus */ +typedef BIT_STRING_t TransitVehicleStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus; +asn_struct_free_f TransitVehicleStatus_free; +asn_struct_print_f TransitVehicleStatus_print; +asn_constr_check_f TransitVehicleStatus_constraint; +ber_type_decoder_f TransitVehicleStatus_decode_ber; +der_type_encoder_f TransitVehicleStatus_encode_der; +xer_type_decoder_f TransitVehicleStatus_decode_xer; +xer_type_encoder_f TransitVehicleStatus_encode_xer; +oer_type_decoder_f TransitVehicleStatus_decode_oer; +oer_type_encoder_f TransitVehicleStatus_encode_oer; +per_type_decoder_f TransitVehicleStatus_decode_uper; +per_type_encoder_f TransitVehicleStatus_encode_uper; +per_type_decoder_f TransitVehicleStatus_decode_aper; +per_type_encoder_f TransitVehicleStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleStatus_H_ */ +#include diff --git a/vcits/spatem/TransmissionAndSpeed.h b/vcits/spatem/TransmissionAndSpeed.h new file mode 100644 index 0000000..645d9c5 --- /dev/null +++ b/vcits/spatem/TransmissionAndSpeed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TransmissionAndSpeed_H_ +#define _TransmissionAndSpeed_H_ + + +#include + +/* Including external dependencies */ +#include "TransmissionState.h" +#include "Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TransmissionAndSpeed */ +typedef struct TransmissionAndSpeed { + TransmissionState_t transmisson; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TransmissionAndSpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionAndSpeed_H_ */ +#include diff --git a/vcits/spatem/TransmissionInterval.h b/vcits/spatem/TransmissionInterval.h new file mode 100644 index 0000000..7bca90c --- /dev/null +++ b/vcits/spatem/TransmissionInterval.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TransmissionInterval_H_ +#define _TransmissionInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionInterval { + TransmissionInterval_oneMilliSecond = 1, + TransmissionInterval_tenSeconds = 10000 +} e_TransmissionInterval; + +/* TransmissionInterval */ +typedef long TransmissionInterval_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionInterval; +asn_struct_free_f TransmissionInterval_free; +asn_struct_print_f TransmissionInterval_print; +asn_constr_check_f TransmissionInterval_constraint; +ber_type_decoder_f TransmissionInterval_decode_ber; +der_type_encoder_f TransmissionInterval_encode_der; +xer_type_decoder_f TransmissionInterval_decode_xer; +xer_type_encoder_f TransmissionInterval_encode_xer; +oer_type_decoder_f TransmissionInterval_decode_oer; +oer_type_encoder_f TransmissionInterval_encode_oer; +per_type_decoder_f TransmissionInterval_decode_uper; +per_type_encoder_f TransmissionInterval_encode_uper; +per_type_decoder_f TransmissionInterval_decode_aper; +per_type_encoder_f TransmissionInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionInterval_H_ */ +#include diff --git a/vcits/spatem/TransmissionState.h b/vcits/spatem/TransmissionState.h new file mode 100644 index 0000000..8fc012c --- /dev/null +++ b/vcits/spatem/TransmissionState.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TransmissionState_H_ +#define _TransmissionState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionState { + TransmissionState_neutral = 0, + TransmissionState_park = 1, + TransmissionState_forwardGears = 2, + TransmissionState_reverseGears = 3, + TransmissionState_reserved1 = 4, + TransmissionState_reserved2 = 5, + TransmissionState_reserved3 = 6, + TransmissionState_unavailable = 7 +} e_TransmissionState; + +/* TransmissionState */ +typedef long TransmissionState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransmissionState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransmissionState; +extern const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1; +asn_struct_free_f TransmissionState_free; +asn_struct_print_f TransmissionState_print; +asn_constr_check_f TransmissionState_constraint; +ber_type_decoder_f TransmissionState_decode_ber; +der_type_encoder_f TransmissionState_encode_der; +xer_type_decoder_f TransmissionState_decode_xer; +xer_type_encoder_f TransmissionState_encode_xer; +oer_type_decoder_f TransmissionState_decode_oer; +oer_type_encoder_f TransmissionState_encode_oer; +per_type_decoder_f TransmissionState_decode_uper; +per_type_encoder_f TransmissionState_encode_uper; +per_type_decoder_f TransmissionState_decode_aper; +per_type_encoder_f TransmissionState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionState_H_ */ +#include diff --git a/vcits/spatem/TurningRadius.h b/vcits/spatem/TurningRadius.h new file mode 100644 index 0000000..181cc3f --- /dev/null +++ b/vcits/spatem/TurningRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _TurningRadius_H_ +#define _TurningRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TurningRadius { + TurningRadius_point4Meters = 1, + TurningRadius_unavailable = 255 +} e_TurningRadius; + +/* TurningRadius */ +typedef long TurningRadius_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TurningRadius; +asn_struct_free_f TurningRadius_free; +asn_struct_print_f TurningRadius_print; +asn_constr_check_f TurningRadius_constraint; +ber_type_decoder_f TurningRadius_decode_ber; +der_type_encoder_f TurningRadius_encode_der; +xer_type_decoder_f TurningRadius_decode_xer; +xer_type_encoder_f TurningRadius_encode_xer; +oer_type_decoder_f TurningRadius_decode_oer; +oer_type_encoder_f TurningRadius_encode_oer; +per_type_decoder_f TurningRadius_decode_uper; +per_type_encoder_f TurningRadius_encode_uper; +per_type_decoder_f TurningRadius_decode_aper; +per_type_encoder_f TurningRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TurningRadius_H_ */ +#include diff --git a/vcits/spatem/VDS.h b/vcits/spatem/VDS.h new file mode 100644 index 0000000..8452f7a --- /dev/null +++ b/vcits/spatem/VDS.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _VDS_H_ +#define _VDS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VDS */ +typedef IA5String_t VDS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VDS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VDS; +asn_struct_free_f VDS_free; +asn_struct_print_f VDS_print; +asn_constr_check_f VDS_constraint; +ber_type_decoder_f VDS_decode_ber; +der_type_encoder_f VDS_encode_der; +xer_type_decoder_f VDS_decode_xer; +xer_type_encoder_f VDS_encode_xer; +oer_type_decoder_f VDS_decode_oer; +oer_type_encoder_f VDS_encode_oer; +per_type_decoder_f VDS_decode_uper; +per_type_encoder_f VDS_encode_uper; +per_type_decoder_f VDS_decode_aper; +per_type_encoder_f VDS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VDS_H_ */ +#include diff --git a/vcits/spatem/ValidityDuration.h b/vcits/spatem/ValidityDuration.h new file mode 100644 index 0000000..c433b9b --- /dev/null +++ b/vcits/spatem/ValidityDuration.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ValidityDuration_H_ +#define _ValidityDuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ValidityDuration { + ValidityDuration_timeOfDetection = 0, + ValidityDuration_oneSecondAfterDetection = 1 +} e_ValidityDuration; + +/* ValidityDuration */ +typedef long ValidityDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ValidityDuration; +asn_struct_free_f ValidityDuration_free; +asn_struct_print_f ValidityDuration_print; +asn_constr_check_f ValidityDuration_constraint; +ber_type_decoder_f ValidityDuration_decode_ber; +der_type_encoder_f ValidityDuration_encode_der; +xer_type_decoder_f ValidityDuration_decode_xer; +xer_type_encoder_f ValidityDuration_encode_xer; +oer_type_decoder_f ValidityDuration_decode_oer; +oer_type_encoder_f ValidityDuration_encode_oer; +per_type_decoder_f ValidityDuration_decode_uper; +per_type_encoder_f ValidityDuration_encode_uper; +per_type_decoder_f ValidityDuration_decode_aper; +per_type_encoder_f ValidityDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ValidityDuration_H_ */ +#include diff --git a/vcits/spatem/VehicleBreakdownSubCauseCode.h b/vcits/spatem/VehicleBreakdownSubCauseCode.h new file mode 100644 index 0000000..4c09bcf --- /dev/null +++ b/vcits/spatem/VehicleBreakdownSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _VehicleBreakdownSubCauseCode_H_ +#define _VehicleBreakdownSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleBreakdownSubCauseCode { + VehicleBreakdownSubCauseCode_unavailable = 0, + VehicleBreakdownSubCauseCode_lackOfFuel = 1, + VehicleBreakdownSubCauseCode_lackOfBatteryPower = 2, + VehicleBreakdownSubCauseCode_engineProblem = 3, + VehicleBreakdownSubCauseCode_transmissionProblem = 4, + VehicleBreakdownSubCauseCode_engineCoolingProblem = 5, + VehicleBreakdownSubCauseCode_brakingSystemProblem = 6, + VehicleBreakdownSubCauseCode_steeringProblem = 7, + VehicleBreakdownSubCauseCode_tyrePuncture = 8, + VehicleBreakdownSubCauseCode_tyrePressureProblem = 9 +} e_VehicleBreakdownSubCauseCode; + +/* VehicleBreakdownSubCauseCode */ +typedef long VehicleBreakdownSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode; +asn_struct_free_f VehicleBreakdownSubCauseCode_free; +asn_struct_print_f VehicleBreakdownSubCauseCode_print; +asn_constr_check_f VehicleBreakdownSubCauseCode_constraint; +ber_type_decoder_f VehicleBreakdownSubCauseCode_decode_ber; +der_type_encoder_f VehicleBreakdownSubCauseCode_encode_der; +xer_type_decoder_f VehicleBreakdownSubCauseCode_decode_xer; +xer_type_encoder_f VehicleBreakdownSubCauseCode_encode_xer; +oer_type_decoder_f VehicleBreakdownSubCauseCode_decode_oer; +oer_type_encoder_f VehicleBreakdownSubCauseCode_encode_oer; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_uper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_uper; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_aper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleBreakdownSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/VehicleHeight.h b/vcits/spatem/VehicleHeight.h new file mode 100644 index 0000000..44ff297 --- /dev/null +++ b/vcits/spatem/VehicleHeight.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _VehicleHeight_H_ +#define _VehicleHeight_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleHeight */ +typedef long VehicleHeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleHeight; +asn_struct_free_f VehicleHeight_free; +asn_struct_print_f VehicleHeight_print; +asn_constr_check_f VehicleHeight_constraint; +ber_type_decoder_f VehicleHeight_decode_ber; +der_type_encoder_f VehicleHeight_encode_der; +xer_type_decoder_f VehicleHeight_decode_xer; +xer_type_encoder_f VehicleHeight_encode_xer; +oer_type_decoder_f VehicleHeight_decode_oer; +oer_type_encoder_f VehicleHeight_encode_oer; +per_type_decoder_f VehicleHeight_decode_uper; +per_type_encoder_f VehicleHeight_encode_uper; +per_type_decoder_f VehicleHeight_decode_aper; +per_type_encoder_f VehicleHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleHeight_H_ */ +#include diff --git a/vcits/spatem/VehicleID.h b/vcits/spatem/VehicleID.h new file mode 100644 index 0000000..68100db --- /dev/null +++ b/vcits/spatem/VehicleID.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _VehicleID_H_ +#define _VehicleID_H_ + + +#include + +/* Including external dependencies */ +#include "TemporaryID.h" +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleID_PR { + VehicleID_PR_NOTHING, /* No components present */ + VehicleID_PR_entityID, + VehicleID_PR_stationID +} VehicleID_PR; + +/* VehicleID */ +typedef struct VehicleID { + VehicleID_PR present; + union VehicleID_u { + TemporaryID_t entityID; + StationID_t stationID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleID; +extern asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleID_1[2]; +extern asn_per_constraints_t asn_PER_type_VehicleID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleID_H_ */ +#include diff --git a/vcits/spatem/VehicleIdentification.h b/vcits/spatem/VehicleIdentification.h new file mode 100644 index 0000000..27805a3 --- /dev/null +++ b/vcits/spatem/VehicleIdentification.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _VehicleIdentification_H_ +#define _VehicleIdentification_H_ + + +#include + +/* Including external dependencies */ +#include "WMInumber.h" +#include "VDS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleIdentification */ +typedef struct VehicleIdentification { + WMInumber_t *wMInumber; /* OPTIONAL */ + VDS_t *vDS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleIdentification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleIdentification; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleIdentification_H_ */ +#include diff --git a/vcits/spatem/VehicleLength.h b/vcits/spatem/VehicleLength.h new file mode 100644 index 0000000..f9d0eb0 --- /dev/null +++ b/vcits/spatem/VehicleLength.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _VehicleLength_H_ +#define _VehicleLength_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleLengthValue.h" +#include "VehicleLengthConfidenceIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleLength */ +typedef struct VehicleLength { + VehicleLengthValue_t vehicleLengthValue; + VehicleLengthConfidenceIndication_t vehicleLengthConfidenceIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleLength; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLength_H_ */ +#include diff --git a/vcits/spatem/VehicleLengthConfidenceIndication.h b/vcits/spatem/VehicleLengthConfidenceIndication.h new file mode 100644 index 0000000..4541c9e --- /dev/null +++ b/vcits/spatem/VehicleLengthConfidenceIndication.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _VehicleLengthConfidenceIndication_H_ +#define _VehicleLengthConfidenceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthConfidenceIndication { + VehicleLengthConfidenceIndication_noTrailerPresent = 0, + VehicleLengthConfidenceIndication_trailerPresentWithKnownLength = 1, + VehicleLengthConfidenceIndication_trailerPresentWithUnknownLength = 2, + VehicleLengthConfidenceIndication_trailerPresenceIsUnknown = 3, + VehicleLengthConfidenceIndication_unavailable = 4 +} e_VehicleLengthConfidenceIndication; + +/* VehicleLengthConfidenceIndication */ +typedef long VehicleLengthConfidenceIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1; +asn_struct_free_f VehicleLengthConfidenceIndication_free; +asn_struct_print_f VehicleLengthConfidenceIndication_print; +asn_constr_check_f VehicleLengthConfidenceIndication_constraint; +ber_type_decoder_f VehicleLengthConfidenceIndication_decode_ber; +der_type_encoder_f VehicleLengthConfidenceIndication_encode_der; +xer_type_decoder_f VehicleLengthConfidenceIndication_decode_xer; +xer_type_encoder_f VehicleLengthConfidenceIndication_encode_xer; +oer_type_decoder_f VehicleLengthConfidenceIndication_decode_oer; +oer_type_encoder_f VehicleLengthConfidenceIndication_encode_oer; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_uper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_uper; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_aper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthConfidenceIndication_H_ */ +#include diff --git a/vcits/spatem/VehicleLengthValue.h b/vcits/spatem/VehicleLengthValue.h new file mode 100644 index 0000000..6c517dc --- /dev/null +++ b/vcits/spatem/VehicleLengthValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _VehicleLengthValue_H_ +#define _VehicleLengthValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthValue { + VehicleLengthValue_tenCentimeters = 1, + VehicleLengthValue_outOfRange = 1022, + VehicleLengthValue_unavailable = 1023 +} e_VehicleLengthValue; + +/* VehicleLengthValue */ +typedef long VehicleLengthValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue; +asn_struct_free_f VehicleLengthValue_free; +asn_struct_print_f VehicleLengthValue_print; +asn_constr_check_f VehicleLengthValue_constraint; +ber_type_decoder_f VehicleLengthValue_decode_ber; +der_type_encoder_f VehicleLengthValue_encode_der; +xer_type_decoder_f VehicleLengthValue_decode_xer; +xer_type_encoder_f VehicleLengthValue_encode_xer; +oer_type_decoder_f VehicleLengthValue_decode_oer; +oer_type_encoder_f VehicleLengthValue_encode_oer; +per_type_decoder_f VehicleLengthValue_decode_uper; +per_type_encoder_f VehicleLengthValue_encode_uper; +per_type_decoder_f VehicleLengthValue_decode_aper; +per_type_encoder_f VehicleLengthValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthValue_H_ */ +#include diff --git a/vcits/spatem/VehicleMass.h b/vcits/spatem/VehicleMass.h new file mode 100644 index 0000000..1aba525 --- /dev/null +++ b/vcits/spatem/VehicleMass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _VehicleMass_H_ +#define _VehicleMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleMass { + VehicleMass_hundredKg = 1, + VehicleMass_unavailable = 1024 +} e_VehicleMass; + +/* VehicleMass */ +typedef long VehicleMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleMass; +asn_struct_free_f VehicleMass_free; +asn_struct_print_f VehicleMass_print; +asn_constr_check_f VehicleMass_constraint; +ber_type_decoder_f VehicleMass_decode_ber; +der_type_encoder_f VehicleMass_encode_der; +xer_type_decoder_f VehicleMass_decode_xer; +xer_type_encoder_f VehicleMass_encode_xer; +oer_type_decoder_f VehicleMass_decode_oer; +oer_type_encoder_f VehicleMass_encode_oer; +per_type_decoder_f VehicleMass_decode_uper; +per_type_encoder_f VehicleMass_encode_uper; +per_type_decoder_f VehicleMass_decode_aper; +per_type_encoder_f VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleMass_H_ */ +#include diff --git a/vcits/spatem/VehicleRole.h b/vcits/spatem/VehicleRole.h new file mode 100644 index 0000000..1a26496 --- /dev/null +++ b/vcits/spatem/VehicleRole.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _VehicleRole_H_ +#define _VehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleRole { + VehicleRole_default = 0, + VehicleRole_publicTransport = 1, + VehicleRole_specialTransport = 2, + VehicleRole_dangerousGoods = 3, + VehicleRole_roadWork = 4, + VehicleRole_rescue = 5, + VehicleRole_emergency = 6, + VehicleRole_safetyCar = 7, + VehicleRole_agriculture = 8, + VehicleRole_commercial = 9, + VehicleRole_military = 10, + VehicleRole_roadOperator = 11, + VehicleRole_taxi = 12, + VehicleRole_reserved1 = 13, + VehicleRole_reserved2 = 14, + VehicleRole_reserved3 = 15 +} e_VehicleRole; + +/* VehicleRole */ +typedef long VehicleRole_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleRole; +asn_struct_free_f VehicleRole_free; +asn_struct_print_f VehicleRole_print; +asn_constr_check_f VehicleRole_constraint; +ber_type_decoder_f VehicleRole_decode_ber; +der_type_encoder_f VehicleRole_encode_der; +xer_type_decoder_f VehicleRole_decode_xer; +xer_type_encoder_f VehicleRole_encode_xer; +oer_type_decoder_f VehicleRole_decode_oer; +oer_type_encoder_f VehicleRole_encode_oer; +per_type_decoder_f VehicleRole_decode_uper; +per_type_encoder_f VehicleRole_encode_uper; +per_type_decoder_f VehicleRole_decode_aper; +per_type_encoder_f VehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleRole_H_ */ +#include diff --git a/vcits/spatem/VehicleType.h b/vcits/spatem/VehicleType.h new file mode 100644 index 0000000..a3910f0 --- /dev/null +++ b/vcits/spatem/VehicleType.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _VehicleType_H_ +#define _VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleType { + VehicleType_none = 0, + VehicleType_unknown = 1, + VehicleType_special = 2, + VehicleType_moto = 3, + VehicleType_car = 4, + VehicleType_carOther = 5, + VehicleType_bus = 6, + VehicleType_axleCnt2 = 7, + VehicleType_axleCnt3 = 8, + VehicleType_axleCnt4 = 9, + VehicleType_axleCnt4Trailer = 10, + VehicleType_axleCnt5Trailer = 11, + VehicleType_axleCnt6Trailer = 12, + VehicleType_axleCnt5MultiTrailer = 13, + VehicleType_axleCnt6MultiTrailer = 14, + VehicleType_axleCnt7MultiTrailer = 15 + /* + * Enumeration is extensible + */ +} e_VehicleType; + +/* VehicleType */ +typedef long VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleType; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1; +asn_struct_free_f VehicleType_free; +asn_struct_print_f VehicleType_print; +asn_constr_check_f VehicleType_constraint; +ber_type_decoder_f VehicleType_decode_ber; +der_type_encoder_f VehicleType_encode_der; +xer_type_decoder_f VehicleType_decode_xer; +xer_type_encoder_f VehicleType_encode_xer; +oer_type_decoder_f VehicleType_decode_oer; +oer_type_encoder_f VehicleType_encode_oer; +per_type_decoder_f VehicleType_decode_uper; +per_type_encoder_f VehicleType_encode_uper; +per_type_decoder_f VehicleType_decode_aper; +per_type_encoder_f VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleType_H_ */ +#include diff --git a/vcits/spatem/VehicleWidth.h b/vcits/spatem/VehicleWidth.h new file mode 100644 index 0000000..dcbe17e --- /dev/null +++ b/vcits/spatem/VehicleWidth.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _VehicleWidth_H_ +#define _VehicleWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleWidth { + VehicleWidth_tenCentimeters = 1, + VehicleWidth_outOfRange = 61, + VehicleWidth_unavailable = 62 +} e_VehicleWidth; + +/* VehicleWidth */ +typedef long VehicleWidth_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleWidth; +asn_struct_free_f VehicleWidth_free; +asn_struct_print_f VehicleWidth_print; +asn_constr_check_f VehicleWidth_constraint; +ber_type_decoder_f VehicleWidth_decode_ber; +der_type_encoder_f VehicleWidth_encode_der; +xer_type_decoder_f VehicleWidth_decode_xer; +xer_type_encoder_f VehicleWidth_encode_xer; +oer_type_decoder_f VehicleWidth_decode_oer; +oer_type_encoder_f VehicleWidth_encode_oer; +per_type_decoder_f VehicleWidth_decode_uper; +per_type_encoder_f VehicleWidth_encode_uper; +per_type_decoder_f VehicleWidth_decode_aper; +per_type_encoder_f VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleWidth_H_ */ +#include diff --git a/vcits/spatem/Velocity.h b/vcits/spatem/Velocity.h new file mode 100644 index 0000000..cdd60d1 --- /dev/null +++ b/vcits/spatem/Velocity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _Velocity_H_ +#define _Velocity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Velocity */ +typedef long Velocity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Velocity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Velocity; +asn_struct_free_f Velocity_free; +asn_struct_print_f Velocity_print; +asn_constr_check_f Velocity_constraint; +ber_type_decoder_f Velocity_decode_ber; +der_type_encoder_f Velocity_encode_der; +xer_type_decoder_f Velocity_decode_xer; +xer_type_encoder_f Velocity_encode_xer; +oer_type_decoder_f Velocity_decode_oer; +oer_type_encoder_f Velocity_encode_oer; +per_type_decoder_f Velocity_decode_uper; +per_type_encoder_f Velocity_encode_uper; +per_type_decoder_f Velocity_decode_aper; +per_type_encoder_f Velocity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Velocity_H_ */ +#include diff --git a/vcits/spatem/VerticalAcceleration.h b/vcits/spatem/VerticalAcceleration.h new file mode 100644 index 0000000..20989f3 --- /dev/null +++ b/vcits/spatem/VerticalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _VerticalAcceleration_H_ +#define _VerticalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "VerticalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VerticalAcceleration */ +typedef struct VerticalAcceleration { + VerticalAccelerationValue_t verticalAccelerationValue; + AccelerationConfidence_t verticalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VerticalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAcceleration_H_ */ +#include diff --git a/vcits/spatem/VerticalAccelerationValue.h b/vcits/spatem/VerticalAccelerationValue.h new file mode 100644 index 0000000..a1ecbf3 --- /dev/null +++ b/vcits/spatem/VerticalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _VerticalAccelerationValue_H_ +#define _VerticalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VerticalAccelerationValue { + VerticalAccelerationValue_pointOneMeterPerSecSquaredUp = 1, + VerticalAccelerationValue_pointOneMeterPerSecSquaredDown = -1, + VerticalAccelerationValue_unavailable = 161 +} e_VerticalAccelerationValue; + +/* VerticalAccelerationValue */ +typedef long VerticalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue; +asn_struct_free_f VerticalAccelerationValue_free; +asn_struct_print_f VerticalAccelerationValue_print; +asn_constr_check_f VerticalAccelerationValue_constraint; +ber_type_decoder_f VerticalAccelerationValue_decode_ber; +der_type_encoder_f VerticalAccelerationValue_encode_der; +xer_type_decoder_f VerticalAccelerationValue_decode_xer; +xer_type_encoder_f VerticalAccelerationValue_encode_xer; +oer_type_decoder_f VerticalAccelerationValue_decode_oer; +oer_type_encoder_f VerticalAccelerationValue_encode_oer; +per_type_decoder_f VerticalAccelerationValue_decode_uper; +per_type_encoder_f VerticalAccelerationValue_encode_uper; +per_type_decoder_f VerticalAccelerationValue_decode_aper; +per_type_encoder_f VerticalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAccelerationValue_H_ */ +#include diff --git a/vcits/spatem/WMInumber.h b/vcits/spatem/WMInumber.h new file mode 100644 index 0000000..d3edd03 --- /dev/null +++ b/vcits/spatem/WMInumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _WMInumber_H_ +#define _WMInumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WMInumber */ +typedef IA5String_t WMInumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WMInumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WMInumber; +asn_struct_free_f WMInumber_free; +asn_struct_print_f WMInumber_print; +asn_constr_check_f WMInumber_constraint; +ber_type_decoder_f WMInumber_decode_ber; +der_type_encoder_f WMInumber_encode_der; +xer_type_decoder_f WMInumber_decode_xer; +xer_type_encoder_f WMInumber_encode_xer; +oer_type_decoder_f WMInumber_decode_oer; +oer_type_encoder_f WMInumber_encode_oer; +per_type_decoder_f WMInumber_decode_uper; +per_type_encoder_f WMInumber_encode_uper; +per_type_decoder_f WMInumber_decode_aper; +per_type_encoder_f WMInumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WMInumber_H_ */ +#include diff --git a/vcits/spatem/WaitOnStopline.h b/vcits/spatem/WaitOnStopline.h new file mode 100644 index 0000000..de6e501 --- /dev/null +++ b/vcits/spatem/WaitOnStopline.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _WaitOnStopline_H_ +#define _WaitOnStopline_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WaitOnStopline */ +typedef BOOLEAN_t WaitOnStopline_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WaitOnStopline; +asn_struct_free_f WaitOnStopline_free; +asn_struct_print_f WaitOnStopline_print; +asn_constr_check_f WaitOnStopline_constraint; +ber_type_decoder_f WaitOnStopline_decode_ber; +der_type_encoder_f WaitOnStopline_encode_der; +xer_type_decoder_f WaitOnStopline_decode_xer; +xer_type_encoder_f WaitOnStopline_encode_xer; +oer_type_decoder_f WaitOnStopline_decode_oer; +oer_type_encoder_f WaitOnStopline_encode_oer; +per_type_decoder_f WaitOnStopline_decode_uper; +per_type_encoder_f WaitOnStopline_encode_uper; +per_type_decoder_f WaitOnStopline_decode_aper; +per_type_encoder_f WaitOnStopline_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WaitOnStopline_H_ */ +#include diff --git a/vcits/spatem/WheelBaseVehicle.h b/vcits/spatem/WheelBaseVehicle.h new file mode 100644 index 0000000..f7acae7 --- /dev/null +++ b/vcits/spatem/WheelBaseVehicle.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _WheelBaseVehicle_H_ +#define _WheelBaseVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WheelBaseVehicle { + WheelBaseVehicle_tenCentimeters = 1, + WheelBaseVehicle_unavailable = 127 +} e_WheelBaseVehicle; + +/* WheelBaseVehicle */ +typedef long WheelBaseVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle; +asn_struct_free_f WheelBaseVehicle_free; +asn_struct_print_f WheelBaseVehicle_print; +asn_constr_check_f WheelBaseVehicle_constraint; +ber_type_decoder_f WheelBaseVehicle_decode_ber; +der_type_encoder_f WheelBaseVehicle_encode_der; +xer_type_decoder_f WheelBaseVehicle_decode_xer; +xer_type_encoder_f WheelBaseVehicle_encode_xer; +oer_type_decoder_f WheelBaseVehicle_decode_oer; +oer_type_encoder_f WheelBaseVehicle_encode_oer; +per_type_decoder_f WheelBaseVehicle_decode_uper; +per_type_encoder_f WheelBaseVehicle_encode_uper; +per_type_decoder_f WheelBaseVehicle_decode_aper; +per_type_encoder_f WheelBaseVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WheelBaseVehicle_H_ */ +#include diff --git a/vcits/spatem/WrongWayDrivingSubCauseCode.h b/vcits/spatem/WrongWayDrivingSubCauseCode.h new file mode 100644 index 0000000..7a0a931 --- /dev/null +++ b/vcits/spatem/WrongWayDrivingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _WrongWayDrivingSubCauseCode_H_ +#define _WrongWayDrivingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WrongWayDrivingSubCauseCode { + WrongWayDrivingSubCauseCode_unavailable = 0, + WrongWayDrivingSubCauseCode_wrongLane = 1, + WrongWayDrivingSubCauseCode_wrongDirection = 2 +} e_WrongWayDrivingSubCauseCode; + +/* WrongWayDrivingSubCauseCode */ +typedef long WrongWayDrivingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode; +asn_struct_free_f WrongWayDrivingSubCauseCode_free; +asn_struct_print_f WrongWayDrivingSubCauseCode_print; +asn_constr_check_f WrongWayDrivingSubCauseCode_constraint; +ber_type_decoder_f WrongWayDrivingSubCauseCode_decode_ber; +der_type_encoder_f WrongWayDrivingSubCauseCode_encode_der; +xer_type_decoder_f WrongWayDrivingSubCauseCode_decode_xer; +xer_type_encoder_f WrongWayDrivingSubCauseCode_encode_xer; +oer_type_decoder_f WrongWayDrivingSubCauseCode_decode_oer; +oer_type_encoder_f WrongWayDrivingSubCauseCode_encode_oer; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_uper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_uper; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_aper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WrongWayDrivingSubCauseCode_H_ */ +#include diff --git a/vcits/spatem/YawRate.h b/vcits/spatem/YawRate.h new file mode 100644 index 0000000..0316123 --- /dev/null +++ b/vcits/spatem/YawRate.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _YawRate_H_ +#define _YawRate_H_ + + +#include + +/* Including external dependencies */ +#include "YawRateValue.h" +#include "YawRateConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* YawRate */ +typedef struct YawRate { + YawRateValue_t yawRateValue; + YawRateConfidence_t yawRateConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} YawRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_YawRate; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRate_H_ */ +#include diff --git a/vcits/spatem/YawRateConfidence.h b/vcits/spatem/YawRateConfidence.h new file mode 100644 index 0000000..ec6323d --- /dev/null +++ b/vcits/spatem/YawRateConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _YawRateConfidence_H_ +#define _YawRateConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateConfidence { + YawRateConfidence_degSec_000_01 = 0, + YawRateConfidence_degSec_000_05 = 1, + YawRateConfidence_degSec_000_10 = 2, + YawRateConfidence_degSec_001_00 = 3, + YawRateConfidence_degSec_005_00 = 4, + YawRateConfidence_degSec_010_00 = 5, + YawRateConfidence_degSec_100_00 = 6, + YawRateConfidence_outOfRange = 7, + YawRateConfidence_unavailable = 8 +} e_YawRateConfidence; + +/* YawRateConfidence */ +typedef long YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1; +asn_struct_free_f YawRateConfidence_free; +asn_struct_print_f YawRateConfidence_print; +asn_constr_check_f YawRateConfidence_constraint; +ber_type_decoder_f YawRateConfidence_decode_ber; +der_type_encoder_f YawRateConfidence_encode_der; +xer_type_decoder_f YawRateConfidence_decode_xer; +xer_type_encoder_f YawRateConfidence_encode_xer; +oer_type_decoder_f YawRateConfidence_decode_oer; +oer_type_encoder_f YawRateConfidence_encode_oer; +per_type_decoder_f YawRateConfidence_decode_uper; +per_type_encoder_f YawRateConfidence_encode_uper; +per_type_decoder_f YawRateConfidence_decode_aper; +per_type_encoder_f YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateConfidence_H_ */ +#include diff --git a/vcits/spatem/YawRateValue.h b/vcits/spatem/YawRateValue.h new file mode 100644 index 0000000..3d8012e --- /dev/null +++ b/vcits/spatem/YawRateValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _YawRateValue_H_ +#define _YawRateValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateValue { + YawRateValue_straight = 0, + YawRateValue_degSec_000_01ToRight = -1, + YawRateValue_degSec_000_01ToLeft = 1, + YawRateValue_unavailable = 32767 +} e_YawRateValue; + +/* YawRateValue */ +typedef long YawRateValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateValue; +asn_struct_free_f YawRateValue_free; +asn_struct_print_f YawRateValue_print; +asn_constr_check_f YawRateValue_constraint; +ber_type_decoder_f YawRateValue_decode_ber; +der_type_encoder_f YawRateValue_encode_der; +xer_type_decoder_f YawRateValue_decode_xer; +xer_type_encoder_f YawRateValue_encode_xer; +oer_type_decoder_f YawRateValue_decode_oer; +oer_type_encoder_f YawRateValue_encode_oer; +per_type_decoder_f YawRateValue_decode_uper; +per_type_encoder_f YawRateValue_encode_uper; +per_type_decoder_f YawRateValue_decode_aper; +per_type_encoder_f YawRateValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateValue_H_ */ +#include diff --git a/vcits/spatem/ZoneLength.h b/vcits/spatem/ZoneLength.h new file mode 100644 index 0000000..f7f2f8f --- /dev/null +++ b/vcits/spatem/ZoneLength.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#ifndef _ZoneLength_H_ +#define _ZoneLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ZoneLength */ +typedef long ZoneLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ZoneLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ZoneLength; +asn_struct_free_f ZoneLength_free; +asn_struct_print_f ZoneLength_print; +asn_constr_check_f ZoneLength_constraint; +ber_type_decoder_f ZoneLength_decode_ber; +der_type_encoder_f ZoneLength_encode_der; +xer_type_decoder_f ZoneLength_decode_xer; +xer_type_encoder_f ZoneLength_encode_xer; +oer_type_decoder_f ZoneLength_decode_oer; +oer_type_encoder_f ZoneLength_encode_oer; +per_type_decoder_f ZoneLength_decode_uper; +per_type_encoder_f ZoneLength_encode_uper; +per_type_decoder_f ZoneLength_decode_aper; +per_type_encoder_f ZoneLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ZoneLength_H_ */ +#include diff --git a/vcits/spatem/asn_constant.h b/vcits/spatem/asn_constant.h new file mode 100644 index 0000000..9214f13 --- /dev/null +++ b/vcits/spatem/asn_constant.h @@ -0,0 +1,265 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_StationID (0) +#define max_val_StationID (4294967295) +#define min_val_Longitude (-1800000000) +#define max_val_Longitude (1800000001) +#define min_val_Latitude (-900000000) +#define max_val_Latitude (900000001) +#define min_val_AltitudeValue (-100000) +#define max_val_AltitudeValue (800001) +#define min_val_DeltaLongitude (-131071) +#define max_val_DeltaLongitude (131072) +#define min_val_DeltaLatitude (-131071) +#define max_val_DeltaLatitude (131072) +#define min_val_DeltaAltitude (-12700) +#define max_val_DeltaAltitude (12800) +#define min_val_PtActivationType (0) +#define max_val_PtActivationType (255) +#define min_val_SemiAxisLength (0) +#define max_val_SemiAxisLength (4095) +#define min_val_CauseCodeType (0) +#define max_val_CauseCodeType (255) +#define min_val_SubCauseCodeType (0) +#define max_val_SubCauseCodeType (255) +#define min_val_TrafficConditionSubCauseCode (0) +#define max_val_TrafficConditionSubCauseCode (255) +#define min_val_AccidentSubCauseCode (0) +#define max_val_AccidentSubCauseCode (255) +#define min_val_RoadworksSubCauseCode (0) +#define max_val_RoadworksSubCauseCode (255) +#define min_val_HumanPresenceOnTheRoadSubCauseCode (0) +#define max_val_HumanPresenceOnTheRoadSubCauseCode (255) +#define min_val_WrongWayDrivingSubCauseCode (0) +#define max_val_WrongWayDrivingSubCauseCode (255) +#define min_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_AdhesionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_AdhesionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_VisibilitySubCauseCode (0) +#define max_val_AdverseWeatherCondition_VisibilitySubCauseCode (255) +#define min_val_AdverseWeatherCondition_PrecipitationSubCauseCode (0) +#define max_val_AdverseWeatherCondition_PrecipitationSubCauseCode (255) +#define min_val_SlowVehicleSubCauseCode (0) +#define max_val_SlowVehicleSubCauseCode (255) +#define min_val_StationaryVehicleSubCauseCode (0) +#define max_val_StationaryVehicleSubCauseCode (255) +#define min_val_HumanProblemSubCauseCode (0) +#define max_val_HumanProblemSubCauseCode (255) +#define min_val_EmergencyVehicleApproachingSubCauseCode (0) +#define max_val_EmergencyVehicleApproachingSubCauseCode (255) +#define min_val_HazardousLocation_DangerousCurveSubCauseCode (0) +#define max_val_HazardousLocation_DangerousCurveSubCauseCode (255) +#define min_val_HazardousLocation_SurfaceConditionSubCauseCode (0) +#define max_val_HazardousLocation_SurfaceConditionSubCauseCode (255) +#define min_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (255) +#define min_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (255) +#define min_val_CollisionRiskSubCauseCode (0) +#define max_val_CollisionRiskSubCauseCode (255) +#define min_val_SignalViolationSubCauseCode (0) +#define max_val_SignalViolationSubCauseCode (255) +#define min_val_RescueAndRecoveryWorkInProgressSubCauseCode (0) +#define max_val_RescueAndRecoveryWorkInProgressSubCauseCode (255) +#define min_val_DangerousEndOfQueueSubCauseCode (0) +#define max_val_DangerousEndOfQueueSubCauseCode (255) +#define min_val_DangerousSituationSubCauseCode (0) +#define max_val_DangerousSituationSubCauseCode (255) +#define min_val_VehicleBreakdownSubCauseCode (0) +#define max_val_VehicleBreakdownSubCauseCode (255) +#define min_val_PostCrashSubCauseCode (0) +#define max_val_PostCrashSubCauseCode (255) +#define min_val_CurvatureValue (-1023) +#define max_val_CurvatureValue (1023) +#define min_val_HeadingValue (0) +#define max_val_HeadingValue (3601) +#define min_val_HeadingConfidence (1) +#define max_val_HeadingConfidence (127) +#define min_val_LanePosition (-1) +#define max_val_LanePosition (14) +#define min_val_PerformanceClass (0) +#define max_val_PerformanceClass (7) +#define min_val_SpeedValue (0) +#define max_val_SpeedValue (16383) +#define min_val_SpeedConfidence (1) +#define max_val_SpeedConfidence (127) +#define min_val_VehicleMass (1) +#define max_val_VehicleMass (1024) +#define min_val_LongitudinalAccelerationValue (-160) +#define max_val_LongitudinalAccelerationValue (161) +#define min_val_AccelerationConfidence (0) +#define max_val_AccelerationConfidence (102) +#define min_val_LateralAccelerationValue (-160) +#define max_val_LateralAccelerationValue (161) +#define min_val_VerticalAccelerationValue (-160) +#define max_val_VerticalAccelerationValue (161) +#define min_val_StationType (0) +#define max_val_StationType (255) +#define min_val_HeightLonCarr (1) +#define max_val_HeightLonCarr (100) +#define min_val_PosLonCarr (1) +#define max_val_PosLonCarr (127) +#define min_val_PosPillar (1) +#define max_val_PosPillar (30) +#define min_val_PosCentMass (1) +#define max_val_PosCentMass (63) +#define min_val_SpeedLimit (1) +#define max_val_SpeedLimit (255) +#define min_val_Temperature (-60) +#define max_val_Temperature (67) +#define min_val_WheelBaseVehicle (1) +#define max_val_WheelBaseVehicle (127) +#define min_val_TurningRadius (1) +#define max_val_TurningRadius (255) +#define min_val_PosFrontAx (1) +#define max_val_PosFrontAx (20) +#define min_val_VehicleLengthValue (1) +#define max_val_VehicleLengthValue (1023) +#define min_val_VehicleWidth (1) +#define max_val_VehicleWidth (62) +#define min_val_InformationQuality (0) +#define max_val_InformationQuality (7) +#define min_val_SteeringWheelAngleValue (-511) +#define max_val_SteeringWheelAngleValue (512) +#define min_val_SteeringWheelAngleConfidence (1) +#define max_val_SteeringWheelAngleConfidence (127) +#define min_val_TimestampIts (0) +#define max_val_TimestampIts (4398046511103) +#define min_val_YawRateValue (-32766) +#define max_val_YawRateValue (32767) +#define min_val_TransmissionInterval (1) +#define max_val_TransmissionInterval (10000) +#define min_val_ValidityDuration (0) +#define max_val_ValidityDuration (86400) +#define min_val_NumberOfOccupants (0) +#define max_val_NumberOfOccupants (127) +#define min_val_SequenceNumber (0) +#define max_val_SequenceNumber (65535) +#define min_val_ProtectedZoneID (0) +#define max_val_ProtectedZoneID (134217727) +#define min_val_Iso3833VehicleType (0) +#define max_val_Iso3833VehicleType (255) +#define min_val_TimeReference (0) +#define max_val_TimeReference (60000) +#define min_val_TimeMark (0) +#define max_val_TimeMark (36001) +#define min_val_Angle (0) +#define max_val_Angle (28800) +#define min_val_ApproachID (0) +#define max_val_ApproachID (15) +#define min_val_DDay (0) +#define max_val_DDay (31) +#define min_val_DeltaAngle (-150) +#define max_val_DeltaAngle (150) +#define min_val_DeltaTime (-122) +#define max_val_DeltaTime (121) +#define min_val_DHour (0) +#define max_val_DHour (31) +#define min_val_DMinute (0) +#define max_val_DMinute (60) +#define min_val_DMonth (0) +#define max_val_DMonth (12) +#define min_val_DOffset (-840) +#define max_val_DOffset (840) +#define min_val_DrivenLineOffsetLg (-32767) +#define max_val_DrivenLineOffsetLg (32767) +#define min_val_DrivenLineOffsetSm (-2047) +#define max_val_DrivenLineOffsetSm (2047) +#define min_val_DSecond (0) +#define max_val_DSecond (65535) +#define min_val_DSRCmsgID (0) +#define max_val_DSRCmsgID (32767) +#define min_val_DYear (0) +#define max_val_DYear (4095) +#define min_val_Elevation (-4096) +#define max_val_Elevation (61439) +#define min_val_FuelType (0) +#define max_val_FuelType (15) +#define min_val_HeadingDSRC (0) +#define max_val_HeadingDSRC (28800) +#define min_val_IntersectionID (0) +#define max_val_IntersectionID (65535) +#define min_val_LaneConnectionID (0) +#define max_val_LaneConnectionID (255) +#define min_val_LaneID (0) +#define max_val_LaneID (255) +#define min_val_LayerID (0) +#define max_val_LayerID (100) +#define min_val_LaneWidth (0) +#define max_val_LaneWidth (32767) +#define min_val_MergeDivergeNodeAngle (-180) +#define max_val_MergeDivergeNodeAngle (180) +#define min_val_MinuteOfTheYear (0) +#define max_val_MinuteOfTheYear (527040) +#define min_val_MsgCount (0) +#define max_val_MsgCount (127) +#define min_val_Offset_B09 (-256) +#define max_val_Offset_B09 (255) +#define min_val_Offset_B10 (-512) +#define max_val_Offset_B10 (511) +#define min_val_Offset_B11 (-1024) +#define max_val_Offset_B11 (1023) +#define min_val_Offset_B12 (-2048) +#define max_val_Offset_B12 (2047) +#define min_val_Offset_B13 (-4096) +#define max_val_Offset_B13 (4095) +#define min_val_Offset_B14 (-8192) +#define max_val_Offset_B14 (8191) +#define min_val_Offset_B16 (-32768) +#define max_val_Offset_B16 (32767) +#define min_val_RegionId (0) +#define max_val_RegionId (255) +#define min_val_RequestID (0) +#define max_val_RequestID (255) +#define min_val_RestrictionClassID (0) +#define max_val_RestrictionClassID (255) +#define min_val_RoadRegulatorID (0) +#define max_val_RoadRegulatorID (65535) +#define min_val_RoadSegmentID (0) +#define max_val_RoadSegmentID (65535) +#define min_val_RoadwayCrownAngle (-128) +#define max_val_RoadwayCrownAngle (127) +#define min_val_Scale_B12 (-2048) +#define max_val_Scale_B12 (2047) +#define min_val_SignalGroupID (0) +#define max_val_SignalGroupID (255) +#define min_val_SemiMajorAxisAccuracy (0) +#define max_val_SemiMajorAxisAccuracy (255) +#define min_val_SemiMajorAxisOrientation (0) +#define max_val_SemiMajorAxisOrientation (65535) +#define min_val_SemiMinorAxisAccuracy (0) +#define max_val_SemiMinorAxisAccuracy (255) +#define min_val_SpeedAdvice (0) +#define max_val_SpeedAdvice (500) +#define min_val_TimeIntervalConfidence (0) +#define max_val_TimeIntervalConfidence (15) +#define min_val_VehicleHeight (0) +#define max_val_VehicleHeight (127) +#define min_val_Velocity (0) +#define max_val_Velocity (8191) +#define min_val_ZoneLength (0) +#define max_val_ZoneLength (10000) +#define min_val_IssuerIdentifier (0) +#define max_val_IssuerIdentifier (16383) +#define min_val_ManufacturerIdentifier (0) +#define max_val_ManufacturerIdentifier (65535) +#define min_val_AlphabetIndicator (0) +#define max_val_AlphabetIndicator (63) +#define version (1) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/vcits/spatem/src/AccelerationConfidence.c b/vcits/spatem/src/AccelerationConfidence.c new file mode 100644 index 0000000..d166249 --- /dev/null +++ b/vcits/spatem/src/AccelerationConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AccelerationConfidence.h" + +int +AccelerationConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 102)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..102) */, + -1}; +asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 102 } /* (0..102) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeInteger, + asn_DEF_AccelerationConfidence_tags_1, + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationConfidence_constr_1, &asn_PER_type_AccelerationConfidence_constr_1, AccelerationConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/AccelerationControl.c b/vcits/spatem/src/AccelerationControl.c new file mode 100644 index 0000000..f30dfad --- /dev/null +++ b/vcits/spatem/src/AccelerationControl.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AccelerationControl.h" + +int +AccelerationControl_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationControl = { + "AccelerationControl", + "AccelerationControl", + &asn_OP_BIT_STRING, + asn_DEF_AccelerationControl_tags_1, + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + asn_DEF_AccelerationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationControl_constr_1, &asn_PER_type_AccelerationControl_constr_1, AccelerationControl_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/AccidentSubCauseCode.c b/vcits/spatem/src/AccidentSubCauseCode.c new file mode 100644 index 0000000..869fa03 --- /dev/null +++ b/vcits/spatem/src/AccidentSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AccidentSubCauseCode.h" + +int +AccidentSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccidentSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode = { + "AccidentSubCauseCode", + "AccidentSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AccidentSubCauseCode_tags_1, + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AccidentSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AccidentSubCauseCode_constr_1, &asn_PER_type_AccidentSubCauseCode_constr_1, AccidentSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/ActionID.c b/vcits/spatem/src/ActionID.c new file mode 100644 index 0000000..33caa45 --- /dev/null +++ b/vcits/spatem/src/ActionID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ActionID.h" + +static asn_TYPE_member_t asn_MBR_ActionID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ActionID, originatingStationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "originatingStationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ActionID, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SequenceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ActionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ActionID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingStationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sequenceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ActionID_specs_1 = { + sizeof(struct ActionID), + offsetof(struct ActionID, _asn_ctx), + asn_MAP_ActionID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ActionID = { + "ActionID", + "ActionID", + &asn_OP_SEQUENCE, + asn_DEF_ActionID_tags_1, + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + asn_DEF_ActionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ActionID_1, + 2, /* Elements count */ + &asn_SPC_ActionID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c b/vcits/spatem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c new file mode 100644 index 0000000..f11e2e2 --- /dev/null +++ b/vcits/spatem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AdverseWeatherCondition-AdhesionSubCauseCode.h" + +int +AdverseWeatherCondition_AdhesionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode = { + "AdverseWeatherCondition-AdhesionSubCauseCode", + "AdverseWeatherCondition-AdhesionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, AdverseWeatherCondition_AdhesionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c b/vcits/spatem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c new file mode 100644 index 0000000..b75e234 --- /dev/null +++ b/vcits/spatem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" + +int +AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = { + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c b/vcits/spatem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c new file mode 100644 index 0000000..e53d48b --- /dev/null +++ b/vcits/spatem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AdverseWeatherCondition-PrecipitationSubCauseCode.h" + +int +AdverseWeatherCondition_PrecipitationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode = { + "AdverseWeatherCondition-PrecipitationSubCauseCode", + "AdverseWeatherCondition-PrecipitationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, AdverseWeatherCondition_PrecipitationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c b/vcits/spatem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c new file mode 100644 index 0000000..c75a80b --- /dev/null +++ b/vcits/spatem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AdverseWeatherCondition-VisibilitySubCauseCode.h" + +int +AdverseWeatherCondition_VisibilitySubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode = { + "AdverseWeatherCondition-VisibilitySubCauseCode", + "AdverseWeatherCondition-VisibilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, AdverseWeatherCondition_VisibilitySubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/AdvisorySpeed.c b/vcits/spatem/src/AdvisorySpeed.c new file mode 100644 index 0000000..2116aa2 --- /dev/null +++ b/vcits/spatem/src/AdvisorySpeed.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AdvisorySpeed.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_AdvisorySpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct AdvisorySpeed__regional), + offsetof(struct AdvisorySpeed__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AdvisorySpeed, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 5, offsetof(struct AdvisorySpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedAdvice, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct AdvisorySpeed, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 3, offsetof(struct AdvisorySpeed, distance), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "distance" + }, + { ATF_POINTER, 2, offsetof(struct AdvisorySpeed, Class), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "class" + }, + { ATF_POINTER, 1, offsetof(struct AdvisorySpeed, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_AdvisorySpeed_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AdvisorySpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* distance */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* class */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1 = { + sizeof(struct AdvisorySpeed), + offsetof(struct AdvisorySpeed, _asn_ctx), + asn_MAP_AdvisorySpeed_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_AdvisorySpeed_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed = { + "AdvisorySpeed", + "AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_AdvisorySpeed_tags_1, + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AdvisorySpeed_1, + 6, /* Elements count */ + &asn_SPC_AdvisorySpeed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/AdvisorySpeedList.c b/vcits/spatem/src/AdvisorySpeedList.c new file mode 100644 index 0000000..2f876b9 --- /dev/null +++ b/vcits/spatem/src/AdvisorySpeedList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AdvisorySpeedList.h" + +#include "AdvisorySpeed.h" +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AdvisorySpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1 = { + sizeof(struct AdvisorySpeedList), + offsetof(struct AdvisorySpeedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList = { + "AdvisorySpeedList", + "AdvisorySpeedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_AdvisorySpeedList_tags_1, + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedList_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + { &asn_OER_type_AdvisorySpeedList_constr_1, &asn_PER_type_AdvisorySpeedList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AdvisorySpeedList_1, + 1, /* Single element */ + &asn_SPC_AdvisorySpeedList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/AdvisorySpeedType.c b/vcits/spatem/src/AdvisorySpeedType.c new file mode 100644 index 0000000..eea1a7c --- /dev/null +++ b/vcits/spatem/src/AdvisorySpeedType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AdvisorySpeedType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AdvisorySpeedType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 9, "greenwave" }, + { 2, 8, "ecoDrive" }, + { 3, 7, "transit" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_AdvisorySpeedType_enum2value_1[] = { + 2, /* ecoDrive(2) */ + 1, /* greenwave(1) */ + 0, /* none(0) */ + 3 /* transit(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1 = { + asn_MAP_AdvisorySpeedType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AdvisorySpeedType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType = { + "AdvisorySpeedType", + "AdvisorySpeedType", + &asn_OP_NativeEnumerated, + asn_DEF_AdvisorySpeedType_tags_1, + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedType_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + { &asn_OER_type_AdvisorySpeedType_constr_1, &asn_PER_type_AdvisorySpeedType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AdvisorySpeedType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/AllowedManeuvers.c b/vcits/spatem/src/AllowedManeuvers.c new file mode 100644 index 0000000..35087a6 --- /dev/null +++ b/vcits/spatem/src/AllowedManeuvers.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AllowedManeuvers.h" + +int +AllowedManeuvers_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { 0, 0 }, + 12 /* (SIZE(12..12)) */}; +asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 12, 12 } /* (SIZE(12..12)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AllowedManeuvers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers = { + "AllowedManeuvers", + "AllowedManeuvers", + &asn_OP_BIT_STRING, + asn_DEF_AllowedManeuvers_tags_1, + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + asn_DEF_AllowedManeuvers_tags_1, /* Same as above */ + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + { &asn_OER_type_AllowedManeuvers_constr_1, &asn_PER_type_AllowedManeuvers_constr_1, AllowedManeuvers_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/AlphabetIndicator.c b/vcits/spatem/src/AlphabetIndicator.c new file mode 100644 index 0000000..a0c0f32 --- /dev/null +++ b/vcits/spatem/src/AlphabetIndicator.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AlphabetIndicator.h" + +int +AlphabetIndicator_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AlphabetIndicator_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +asn_per_constraints_t asn_PER_type_AlphabetIndicator_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AlphabetIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AlphabetIndicator = { + "AlphabetIndicator", + "AlphabetIndicator", + &asn_OP_NativeInteger, + asn_DEF_AlphabetIndicator_tags_1, + sizeof(asn_DEF_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_AlphabetIndicator_tags_1[0]), /* 1 */ + asn_DEF_AlphabetIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_AlphabetIndicator_tags_1[0]), /* 1 */ + { &asn_OER_type_AlphabetIndicator_constr_1, &asn_PER_type_AlphabetIndicator_constr_1, AlphabetIndicator_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Altitude.c b/vcits/spatem/src/Altitude.c new file mode 100644 index 0000000..f264583 --- /dev/null +++ b/vcits/spatem/src/Altitude.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Altitude.h" + +asn_TYPE_member_t asn_MBR_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Altitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altitudeValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altitudeConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1 = { + sizeof(struct Altitude), + offsetof(struct Altitude, _asn_ctx), + asn_MAP_Altitude_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_Altitude_tags_1, + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + asn_DEF_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Altitude_1, + 2, /* Elements count */ + &asn_SPC_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/AltitudeConfidence.c b/vcits/spatem/src/AltitudeConfidence.c new file mode 100644 index 0000000..5a4758d --- /dev/null +++ b/vcits/spatem/src/AltitudeConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AltitudeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AltitudeConfidence_value2enum_1[] = { + { 0, 10, "alt-000-01" }, + { 1, 10, "alt-000-02" }, + { 2, 10, "alt-000-05" }, + { 3, 10, "alt-000-10" }, + { 4, 10, "alt-000-20" }, + { 5, 10, "alt-000-50" }, + { 6, 10, "alt-001-00" }, + { 7, 10, "alt-002-00" }, + { 8, 10, "alt-005-00" }, + { 9, 10, "alt-010-00" }, + { 10, 10, "alt-020-00" }, + { 11, 10, "alt-050-00" }, + { 12, 10, "alt-100-00" }, + { 13, 10, "alt-200-00" }, + { 14, 10, "outOfRange" }, + { 15, 11, "unavailable" } +}; +static const unsigned int asn_MAP_AltitudeConfidence_enum2value_1[] = { + 0, /* alt-000-01(0) */ + 1, /* alt-000-02(1) */ + 2, /* alt-000-05(2) */ + 3, /* alt-000-10(3) */ + 4, /* alt-000-20(4) */ + 5, /* alt-000-50(5) */ + 6, /* alt-001-00(6) */ + 7, /* alt-002-00(7) */ + 8, /* alt-005-00(8) */ + 9, /* alt-010-00(9) */ + 10, /* alt-020-00(10) */ + 11, /* alt-050-00(11) */ + 12, /* alt-100-00(12) */ + 13, /* alt-200-00(13) */ + 14, /* outOfRange(14) */ + 15 /* unavailable(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1 = { + asn_MAP_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AltitudeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_AltitudeConfidence_tags_1, + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeConfidence_constr_1, &asn_PER_type_AltitudeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/AltitudeValue.c b/vcits/spatem/src/AltitudeValue.c new file mode 100644 index 0000000..aa11b67 --- /dev/null +++ b/vcits/spatem/src/AltitudeValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AltitudeValue.h" + +int +AltitudeValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -100000 && value <= 800001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-100000..800001) */, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, -100000, 800001 } /* (-100000..800001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_AltitudeValue_tags_1, + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeValue_constr_1, &asn_PER_type_AltitudeValue_constr_1, AltitudeValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Angle.c b/vcits/spatem/src/Angle.c new file mode 100644 index 0000000..324d365 --- /dev/null +++ b/vcits/spatem/src/Angle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Angle.h" + +int +Angle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 28800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Angle_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +asn_per_constraints_t asn_PER_type_Angle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Angle = { + "Angle", + "Angle", + &asn_OP_NativeInteger, + asn_DEF_Angle_tags_1, + sizeof(asn_DEF_Angle_tags_1) + /sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */ + asn_DEF_Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_Angle_tags_1) + /sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */ + { &asn_OER_type_Angle_constr_1, &asn_PER_type_Angle_constr_1, Angle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/AntennaOffsetSet.c b/vcits/spatem/src/AntennaOffsetSet.c new file mode 100644 index 0000000..61b94e4 --- /dev/null +++ b/vcits/spatem/src/AntennaOffsetSet.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AntennaOffsetSet.h" + +asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetX), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetX" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetY), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B09, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetY" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetZ), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetZ" + }, +}; +static const ber_tlv_tag_t asn_DEF_AntennaOffsetSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AntennaOffsetSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* antOffsetX */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* antOffsetY */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* antOffsetZ */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1 = { + sizeof(struct AntennaOffsetSet), + offsetof(struct AntennaOffsetSet, _asn_ctx), + asn_MAP_AntennaOffsetSet_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet = { + "AntennaOffsetSet", + "AntennaOffsetSet", + &asn_OP_SEQUENCE, + asn_DEF_AntennaOffsetSet_tags_1, + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + asn_DEF_AntennaOffsetSet_tags_1, /* Same as above */ + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AntennaOffsetSet_1, + 3, /* Elements count */ + &asn_SPC_AntennaOffsetSet_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ApproachID.c b/vcits/spatem/src/ApproachID.c new file mode 100644 index 0000000..383613d --- /dev/null +++ b/vcits/spatem/src/ApproachID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ApproachID.h" + +int +ApproachID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ApproachID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_ApproachID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ApproachID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ApproachID = { + "ApproachID", + "ApproachID", + &asn_OP_NativeInteger, + asn_DEF_ApproachID_tags_1, + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + asn_DEF_ApproachID_tags_1, /* Same as above */ + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + { &asn_OER_type_ApproachID_constr_1, &asn_PER_type_ApproachID_constr_1, ApproachID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/AviEriDateTime.c b/vcits/spatem/src/AviEriDateTime.c new file mode 100644 index 0000000..78a56db --- /dev/null +++ b/vcits/spatem/src/AviEriDateTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "AviEriDateTime.h" + +int +AviEriDateTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AviEriDateTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_AviEriDateTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AviEriDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AviEriDateTime = { + "AviEriDateTime", + "AviEriDateTime", + &asn_OP_OCTET_STRING, + asn_DEF_AviEriDateTime_tags_1, + sizeof(asn_DEF_AviEriDateTime_tags_1) + /sizeof(asn_DEF_AviEriDateTime_tags_1[0]), /* 1 */ + asn_DEF_AviEriDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_AviEriDateTime_tags_1) + /sizeof(asn_DEF_AviEriDateTime_tags_1[0]), /* 1 */ + { &asn_OER_type_AviEriDateTime_constr_1, &asn_PER_type_AviEriDateTime_constr_1, AviEriDateTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/BasicVehicleRole.c b/vcits/spatem/src/BasicVehicleRole.c new file mode 100644 index 0000000..c929584 --- /dev/null +++ b/vcits/spatem/src/BasicVehicleRole.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "BasicVehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 22 } /* (0..22,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BasicVehicleRole_value2enum_1[] = { + { 0, 12, "basicVehicle" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 10, "roadRescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 12, "none-unknown" }, + { 9, 5, "truck" }, + { 10, 10, "motorcycle" }, + { 11, 14, "roadSideSource" }, + { 12, 6, "police" }, + { 13, 4, "fire" }, + { 14, 9, "ambulance" }, + { 15, 3, "dot" }, + { 16, 7, "transit" }, + { 17, 10, "slowMoving" }, + { 18, 7, "stopNgo" }, + { 19, 7, "cyclist" }, + { 20, 10, "pedestrian" }, + { 21, 12, "nonMotorized" }, + { 22, 8, "military" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BasicVehicleRole_enum2value_1[] = { + 14, /* ambulance(14) */ + 0, /* basicVehicle(0) */ + 19, /* cyclist(19) */ + 3, /* dangerousGoods(3) */ + 15, /* dot(15) */ + 6, /* emergency(6) */ + 13, /* fire(13) */ + 22, /* military(22) */ + 10, /* motorcycle(10) */ + 21, /* nonMotorized(21) */ + 8, /* none-unknown(8) */ + 20, /* pedestrian(20) */ + 12, /* police(12) */ + 1, /* publicTransport(1) */ + 5, /* roadRescue(5) */ + 11, /* roadSideSource(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 17, /* slowMoving(17) */ + 2, /* specialTransport(2) */ + 18, /* stopNgo(18) */ + 16, /* transit(16) */ + 9 /* truck(9) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1 = { + asn_MAP_BasicVehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BasicVehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 23, /* Number of elements in the maps */ + 24, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BasicVehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole = { + "BasicVehicleRole", + "BasicVehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_BasicVehicleRole_tags_1, + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + asn_DEF_BasicVehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_BasicVehicleRole_constr_1, &asn_PER_type_BasicVehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BasicVehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/BatteryStatus.c b/vcits/spatem/src/BatteryStatus.c new file mode 100644 index 0000000..0fcd95d --- /dev/null +++ b/vcits/spatem/src/BatteryStatus.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "BatteryStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BatteryStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BatteryStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BatteryStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "critical" }, + { 2, 3, "low" }, + { 3, 4, "good" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BatteryStatus_enum2value_1[] = { + 1, /* critical(1) */ + 3, /* good(3) */ + 2, /* low(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BatteryStatus_specs_1 = { + asn_MAP_BatteryStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BatteryStatus_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BatteryStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BatteryStatus = { + "BatteryStatus", + "BatteryStatus", + &asn_OP_NativeEnumerated, + asn_DEF_BatteryStatus_tags_1, + sizeof(asn_DEF_BatteryStatus_tags_1) + /sizeof(asn_DEF_BatteryStatus_tags_1[0]), /* 1 */ + asn_DEF_BatteryStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_BatteryStatus_tags_1) + /sizeof(asn_DEF_BatteryStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_BatteryStatus_constr_1, &asn_PER_type_BatteryStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BatteryStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CS1.c b/vcits/spatem/src/CS1.c new file mode 100644 index 0000000..2630c6a --- /dev/null +++ b/vcits/spatem/src/CS1.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CS1.h" + +static asn_TYPE_member_t asn_MBR_CS1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS1, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS1, issuerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IssuerIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "issuerIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS1, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* issuerIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* serviceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS1_specs_1 = { + sizeof(struct CS1), + offsetof(struct CS1, _asn_ctx), + asn_MAP_CS1_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS1 = { + "CS1", + "CS1", + &asn_OP_SEQUENCE, + asn_DEF_CS1_tags_1, + sizeof(asn_DEF_CS1_tags_1) + /sizeof(asn_DEF_CS1_tags_1[0]), /* 1 */ + asn_DEF_CS1_tags_1, /* Same as above */ + sizeof(asn_DEF_CS1_tags_1) + /sizeof(asn_DEF_CS1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS1_1, + 3, /* Elements count */ + &asn_SPC_CS1_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CS2.c b/vcits/spatem/src/CS2.c new file mode 100644 index 0000000..e3917d1 --- /dev/null +++ b/vcits/spatem/src/CS2.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CS2.h" + +static asn_TYPE_member_t asn_MBR_CS2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS2, manufacturerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManufacturerIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "manufacturerIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS2, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* manufacturerIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* serviceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS2_specs_1 = { + sizeof(struct CS2), + offsetof(struct CS2, _asn_ctx), + asn_MAP_CS2_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS2 = { + "CS2", + "CS2", + &asn_OP_SEQUENCE, + asn_DEF_CS2_tags_1, + sizeof(asn_DEF_CS2_tags_1) + /sizeof(asn_DEF_CS2_tags_1[0]), /* 1 */ + asn_DEF_CS2_tags_1, /* Same as above */ + sizeof(asn_DEF_CS2_tags_1) + /sizeof(asn_DEF_CS2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS2_1, + 2, /* Elements count */ + &asn_SPC_CS2_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CS3.c b/vcits/spatem/src/CS3.c new file mode 100644 index 0000000..5972b32 --- /dev/null +++ b/vcits/spatem/src/CS3.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CS3.h" + +static asn_TYPE_member_t asn_MBR_CS3_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS3, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StartTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, stopTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StopTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stopTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, geographLimit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GeoGraphicalLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "geographLimit" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, serviceAppLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceApplicationLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceAppLimit" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS3_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* stopTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* geographLimit */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* serviceAppLimit */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS3_specs_1 = { + sizeof(struct CS3), + offsetof(struct CS3, _asn_ctx), + asn_MAP_CS3_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS3 = { + "CS3", + "CS3", + &asn_OP_SEQUENCE, + asn_DEF_CS3_tags_1, + sizeof(asn_DEF_CS3_tags_1) + /sizeof(asn_DEF_CS3_tags_1[0]), /* 1 */ + asn_DEF_CS3_tags_1, /* Same as above */ + sizeof(asn_DEF_CS3_tags_1) + /sizeof(asn_DEF_CS3_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS3_1, + 4, /* Elements count */ + &asn_SPC_CS3_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CS4.c b/vcits/spatem/src/CS4.c new file mode 100644 index 0000000..b14a587 --- /dev/null +++ b/vcits/spatem/src/CS4.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CS4.h" + +static asn_oer_constraints_t asn_OER_type_CS4_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_CS4_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS4_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS4, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS4, alphabetIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AlphabetIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "alphabetIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS4, licPlateNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LicPlateNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "licPlateNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS4_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* alphabetIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* licPlateNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS4_specs_1 = { + sizeof(struct CS4), + offsetof(struct CS4, _asn_ctx), + asn_MAP_CS4_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS4 = { + "CS4", + "CS4", + &asn_OP_SEQUENCE, + asn_DEF_CS4_tags_1, + sizeof(asn_DEF_CS4_tags_1) + /sizeof(asn_DEF_CS4_tags_1[0]), /* 1 */ + asn_DEF_CS4_tags_1, /* Same as above */ + sizeof(asn_DEF_CS4_tags_1) + /sizeof(asn_DEF_CS4_tags_1[0]), /* 1 */ + { &asn_OER_type_CS4_constr_1, &asn_PER_type_CS4_constr_1, SEQUENCE_constraint }, + asn_MBR_CS4_1, + 3, /* Elements count */ + &asn_SPC_CS4_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CS5.c b/vcits/spatem/src/CS5.c new file mode 100644 index 0000000..9a4e031 --- /dev/null +++ b/vcits/spatem/src/CS5.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CS5.h" + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 9)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_fill_constr_3 CC_NOTUSED = { + { 0, 0 }, + 9 /* (SIZE(9..9)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 9, 9 } /* (SIZE(9..9)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS5_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS5, vin), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VisibleString, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vin" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS5, fill), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_3, &asn_PER_memb_fill_constr_3, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS5_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS5_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vin */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fill */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS5_specs_1 = { + sizeof(struct CS5), + offsetof(struct CS5, _asn_ctx), + asn_MAP_CS5_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS5 = { + "CS5", + "CS5", + &asn_OP_SEQUENCE, + asn_DEF_CS5_tags_1, + sizeof(asn_DEF_CS5_tags_1) + /sizeof(asn_DEF_CS5_tags_1[0]), /* 1 */ + asn_DEF_CS5_tags_1, /* Same as above */ + sizeof(asn_DEF_CS5_tags_1) + /sizeof(asn_DEF_CS5_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS5_1, + 2, /* Elements count */ + &asn_SPC_CS5_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CS7.c b/vcits/spatem/src/CS7.c new file mode 100644 index 0000000..d999af6 --- /dev/null +++ b/vcits/spatem/src/CS7.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CS7.h" + +/* + * This type is implemented using FreightContainerData, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_CS7_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CS7 = { + "CS7", + "CS7", + &asn_OP_SEQUENCE, + asn_DEF_CS7_tags_1, + sizeof(asn_DEF_CS7_tags_1) + /sizeof(asn_DEF_CS7_tags_1[0]), /* 1 */ + asn_DEF_CS7_tags_1, /* Same as above */ + sizeof(asn_DEF_CS7_tags_1) + /sizeof(asn_DEF_CS7_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CS8.c b/vcits/spatem/src/CS8.c new file mode 100644 index 0000000..d6cb90b --- /dev/null +++ b/vcits/spatem/src/CS8.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CS8.h" + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 6)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_fill_constr_2 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS8_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS8, fill), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_2, &asn_PER_memb_fill_constr_2, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS8, countryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS8, taxCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TaxCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "taxCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS8_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS8_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fill */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* taxCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS8_specs_1 = { + sizeof(struct CS8), + offsetof(struct CS8, _asn_ctx), + asn_MAP_CS8_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS8 = { + "CS8", + "CS8", + &asn_OP_SEQUENCE, + asn_DEF_CS8_tags_1, + sizeof(asn_DEF_CS8_tags_1) + /sizeof(asn_DEF_CS8_tags_1[0]), /* 1 */ + asn_DEF_CS8_tags_1, /* Same as above */ + sizeof(asn_DEF_CS8_tags_1) + /sizeof(asn_DEF_CS8_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS8_1, + 3, /* Elements count */ + &asn_SPC_CS8_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CauseCode.c b/vcits/spatem/src/CauseCode.c new file mode 100644 index 0000000..355c161 --- /dev/null +++ b/vcits/spatem/src/CauseCode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CauseCode.h" + +static asn_TYPE_member_t asn_MBR_CauseCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, causeCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "causeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, subCauseCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubCauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subCauseCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CauseCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* causeCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* subCauseCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CauseCode_specs_1 = { + sizeof(struct CauseCode), + offsetof(struct CauseCode, _asn_ctx), + asn_MAP_CauseCode_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CauseCode = { + "CauseCode", + "CauseCode", + &asn_OP_SEQUENCE, + asn_DEF_CauseCode_tags_1, + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + asn_DEF_CauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CauseCode_1, + 2, /* Elements count */ + &asn_SPC_CauseCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CauseCodeType.c b/vcits/spatem/src/CauseCodeType.c new file mode 100644 index 0000000..0b64c57 --- /dev/null +++ b/vcits/spatem/src/CauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CauseCodeType.h" + +int +CauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseCodeType = { + "CauseCodeType", + "CauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_CauseCodeType_tags_1, + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_CauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseCodeType_constr_1, &asn_PER_type_CauseCodeType_constr_1, CauseCodeType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/CenDsrcTollingZone.c b/vcits/spatem/src/CenDsrcTollingZone.c new file mode 100644 index 0000000..3afd974 --- /dev/null +++ b/vcits/spatem/src/CenDsrcTollingZone.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CenDsrcTollingZone.h" + +static asn_TYPE_member_t asn_MBR_CenDsrcTollingZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 1, offsetof(struct CenDsrcTollingZone, cenDsrcTollingZoneID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CenDsrcTollingZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cenDsrcTollingZoneID" + }, +}; +static const int asn_MAP_CenDsrcTollingZone_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CenDsrcTollingZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cenDsrcTollingZoneID */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CenDsrcTollingZone_specs_1 = { + sizeof(struct CenDsrcTollingZone), + offsetof(struct CenDsrcTollingZone, _asn_ctx), + asn_MAP_CenDsrcTollingZone_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CenDsrcTollingZone_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone = { + "CenDsrcTollingZone", + "CenDsrcTollingZone", + &asn_OP_SEQUENCE, + asn_DEF_CenDsrcTollingZone_tags_1, + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZone_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CenDsrcTollingZone_1, + 3, /* Elements count */ + &asn_SPC_CenDsrcTollingZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CenDsrcTollingZoneID.c b/vcits/spatem/src/CenDsrcTollingZoneID.c new file mode 100644 index 0000000..3818087 --- /dev/null +++ b/vcits/spatem/src/CenDsrcTollingZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CenDsrcTollingZoneID.h" + +int +CenDsrcTollingZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using ProtectedZoneID, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID = { + "CenDsrcTollingZoneID", + "CenDsrcTollingZoneID", + &asn_OP_NativeInteger, + asn_DEF_CenDsrcTollingZoneID_tags_1, + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_CenDsrcTollingZoneID_constr_1, &asn_PER_type_CenDsrcTollingZoneID_constr_1, CenDsrcTollingZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/ClosedLanes.c b/vcits/spatem/src/ClosedLanes.c new file mode 100644 index 0000000..29cba9e --- /dev/null +++ b/vcits/spatem/src/ClosedLanes.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ClosedLanes.h" + +static asn_TYPE_member_t asn_MBR_ClosedLanes_1[] = { + { ATF_POINTER, 3, offsetof(struct ClosedLanes, innerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "innerhardShoulderStatus" + }, + { ATF_POINTER, 2, offsetof(struct ClosedLanes, outerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outerhardShoulderStatus" + }, + { ATF_POINTER, 1, offsetof(struct ClosedLanes, drivingLaneStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivingLaneStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drivingLaneStatus" + }, +}; +static const int asn_MAP_ClosedLanes_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ClosedLanes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ClosedLanes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* innerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* outerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* drivingLaneStatus */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ClosedLanes_specs_1 = { + sizeof(struct ClosedLanes), + offsetof(struct ClosedLanes, _asn_ctx), + asn_MAP_ClosedLanes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ClosedLanes_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ClosedLanes = { + "ClosedLanes", + "ClosedLanes", + &asn_OP_SEQUENCE, + asn_DEF_ClosedLanes_tags_1, + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + asn_DEF_ClosedLanes_tags_1, /* Same as above */ + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ClosedLanes_1, + 3, /* Elements count */ + &asn_SPC_ClosedLanes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CollisionRiskSubCauseCode.c b/vcits/spatem/src/CollisionRiskSubCauseCode.c new file mode 100644 index 0000000..9867d27 --- /dev/null +++ b/vcits/spatem/src/CollisionRiskSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CollisionRiskSubCauseCode.h" + +int +CollisionRiskSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CollisionRiskSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode = { + "CollisionRiskSubCauseCode", + "CollisionRiskSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_CollisionRiskSubCauseCode_tags_1, + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_CollisionRiskSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CollisionRiskSubCauseCode_constr_1, &asn_PER_type_CollisionRiskSubCauseCode_constr_1, CollisionRiskSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/ComputedLane.c b/vcits/spatem/src/ComputedLane.c new file mode 100644 index 0000000..b600f25 --- /dev/null +++ b/vcits/spatem/src/ComputedLane.c @@ -0,0 +1,306 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ComputedLane.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_offsetXaxis_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetXaxis_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetXaxis_specs_3 = { + sizeof(struct ComputedLane__offsetXaxis), + offsetof(struct ComputedLane__offsetXaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetXaxis, present), + sizeof(((struct ComputedLane__offsetXaxis *)0)->present), + asn_MAP_offsetXaxis_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetXaxis_3 = { + "offsetXaxis", + "offsetXaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_offsetXaxis_constr_3, &asn_PER_type_offsetXaxis_constr_3, CHOICE_constraint }, + asn_MBR_offsetXaxis_3, + 2, /* Elements count */ + &asn_SPC_offsetXaxis_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_offsetYaxis_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetYaxis_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetYaxis_specs_6 = { + sizeof(struct ComputedLane__offsetYaxis), + offsetof(struct ComputedLane__offsetYaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetYaxis, present), + sizeof(((struct ComputedLane__offsetYaxis *)0)->present), + asn_MAP_offsetYaxis_tag2el_6, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetYaxis_6 = { + "offsetYaxis", + "offsetYaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_offsetYaxis_constr_6, &asn_PER_type_offsetYaxis_constr_6, CHOICE_constraint }, + asn_MBR_offsetYaxis_6, + 2, /* Elements count */ + &asn_SPC_offsetYaxis_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regional_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ComputedLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_12 = { + sizeof(struct ComputedLane__regional), + offsetof(struct ComputedLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_12 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_12, + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]) - 1, /* 1 */ + asn_DEF_regional_tags_12, /* Same as above */ + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]), /* 2 */ + { &asn_OER_type_regional_constr_12, &asn_PER_type_regional_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_regional_12, + 1, /* Single element */ + &asn_SPC_regional_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ComputedLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, referenceLaneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceLaneId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetXaxis), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetXaxis_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetXaxis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetYaxis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetYaxis_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetYaxis" + }, + { ATF_POINTER, 4, offsetof(struct ComputedLane, rotateXY), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rotateXY" + }, + { ATF_POINTER, 3, offsetof(struct ComputedLane, scaleXaxis), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaleXaxis" + }, + { ATF_POINTER, 2, offsetof(struct ComputedLane, scaleYaxis), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaleYaxis" + }, + { ATF_POINTER, 1, offsetof(struct ComputedLane, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_12, + 0, + { &asn_OER_memb_regional_constr_12, &asn_PER_memb_regional_constr_12, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ComputedLane_oms_1[] = { 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ComputedLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ComputedLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceLaneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* offsetXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* offsetYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rotateXY */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* scaleXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* scaleYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1 = { + sizeof(struct ComputedLane), + offsetof(struct ComputedLane, _asn_ctx), + asn_MAP_ComputedLane_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ComputedLane_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ComputedLane = { + "ComputedLane", + "ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_ComputedLane_tags_1, + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + asn_DEF_ComputedLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ComputedLane_1, + 7, /* Elements count */ + &asn_SPC_ComputedLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ConnectingLane.c b/vcits/spatem/src/ConnectingLane.c new file mode 100644 index 0000000..4b6f052 --- /dev/null +++ b/vcits/spatem/src/ConnectingLane.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ConnectingLane.h" + +asn_TYPE_member_t asn_MBR_ConnectingLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectingLane, lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 1, offsetof(struct ConnectingLane, maneuver), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuver" + }, +}; +static const int asn_MAP_ConnectingLane_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ConnectingLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectingLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maneuver */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1 = { + sizeof(struct ConnectingLane), + offsetof(struct ConnectingLane, _asn_ctx), + asn_MAP_ConnectingLane_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ConnectingLane_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectingLane = { + "ConnectingLane", + "ConnectingLane", + &asn_OP_SEQUENCE, + asn_DEF_ConnectingLane_tags_1, + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + asn_DEF_ConnectingLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectingLane_1, + 2, /* Elements count */ + &asn_SPC_ConnectingLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Connection.c b/vcits/spatem/src/Connection.c new file mode 100644 index 0000000..017f5c9 --- /dev/null +++ b/vcits/spatem/src/Connection.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Connection.h" + +#include "IntersectionReferenceID.h" +asn_TYPE_member_t asn_MBR_Connection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Connection, connectingLane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectingLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectingLane" + }, + { ATF_POINTER, 4, offsetof(struct Connection, remoteIntersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "remoteIntersection" + }, + { ATF_POINTER, 3, offsetof(struct Connection, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_POINTER, 2, offsetof(struct Connection, userClass), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "userClass" + }, + { ATF_POINTER, 1, offsetof(struct Connection, connectionID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const int asn_MAP_Connection_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Connection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Connection_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectingLane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* remoteIntersection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* userClass */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1 = { + sizeof(struct Connection), + offsetof(struct Connection, _asn_ctx), + asn_MAP_Connection_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Connection_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Connection = { + "Connection", + "Connection", + &asn_OP_SEQUENCE, + asn_DEF_Connection_tags_1, + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + asn_DEF_Connection_tags_1, /* Same as above */ + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Connection_1, + 5, /* Elements count */ + &asn_SPC_Connection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ConnectionManeuverAssist-addGrpC.c b/vcits/spatem/src/ConnectionManeuverAssist-addGrpC.c new file mode 100644 index 0000000..37c74a8 --- /dev/null +++ b/vcits/spatem/src/ConnectionManeuverAssist-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ConnectionManeuverAssist-addGrpC.h" + +#include "ItsStationPositionList.h" +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist_addGrpC, itsStationPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsStationPositionList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "itsStationPosition" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* itsStationPosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 = { + sizeof(struct ConnectionManeuverAssist_addGrpC), + offsetof(struct ConnectionManeuverAssist_addGrpC, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC = { + "ConnectionManeuverAssist-addGrpC", + "ConnectionManeuverAssist-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionManeuverAssist_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ConnectionManeuverAssist.c b/vcits/spatem/src/ConnectionManeuverAssist.c new file mode 100644 index 0000000..1dba7f5 --- /dev/null +++ b/vcits/spatem/src/ConnectionManeuverAssist.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ConnectionManeuverAssist.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ConnectionManeuverAssist, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct ConnectionManeuverAssist__regional), + offsetof(struct ConnectionManeuverAssist__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionManeuverAssist, connectionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 5, offsetof(struct ConnectionManeuverAssist, queueLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "queueLength" + }, + { ATF_POINTER, 4, offsetof(struct ConnectionManeuverAssist, availableStorageLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "availableStorageLength" + }, + { ATF_POINTER, 3, offsetof(struct ConnectionManeuverAssist, waitOnStop), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WaitOnStopline, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "waitOnStop" + }, + { ATF_POINTER, 2, offsetof(struct ConnectionManeuverAssist, pedBicycleDetect), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PedestrianBicycleDetect, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pedBicycleDetect" + }, + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* queueLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* availableStorageLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* waitOnStop */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pedBicycleDetect */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1 = { + sizeof(struct ConnectionManeuverAssist), + offsetof(struct ConnectionManeuverAssist, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist = { + "ConnectionManeuverAssist", + "ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionManeuverAssist_1, + 6, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ConnectionTrajectory-addGrpC.c b/vcits/spatem/src/ConnectionTrajectory-addGrpC.c new file mode 100644 index 0000000..35c7adf --- /dev/null +++ b/vcits/spatem/src/ConnectionTrajectory-addGrpC.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ConnectionTrajectory-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ConnectionTrajectory_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionTrajectory_addGrpC, nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConnectionTrajectory_addGrpC, connectionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectionTrajectory_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionTrajectory_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionTrajectory_addGrpC_specs_1 = { + sizeof(struct ConnectionTrajectory_addGrpC), + offsetof(struct ConnectionTrajectory_addGrpC, _asn_ctx), + asn_MAP_ConnectionTrajectory_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionTrajectory_addGrpC = { + "ConnectionTrajectory-addGrpC", + "ConnectionTrajectory-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionTrajectory_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionTrajectory_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionTrajectory_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_ConnectionTrajectory_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ConnectsToList.c b/vcits/spatem/src/ConnectsToList.c new file mode 100644 index 0000000..d65656a --- /dev/null +++ b/vcits/spatem/src/ConnectsToList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ConnectsToList.h" + +#include "Connection.h" +static asn_oer_constraints_t asn_OER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ConnectsToList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Connection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectsToList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1 = { + sizeof(struct ConnectsToList), + offsetof(struct ConnectsToList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectsToList = { + "ConnectsToList", + "ConnectsToList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ConnectsToList_tags_1, + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + asn_DEF_ConnectsToList_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + { &asn_OER_type_ConnectsToList_constr_1, &asn_PER_type_ConnectsToList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ConnectsToList_1, + 1, /* Single element */ + &asn_SPC_ConnectsToList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CountryCode.c b/vcits/spatem/src/CountryCode.c new file mode 100644 index 0000000..4dd6b80 --- /dev/null +++ b/vcits/spatem/src/CountryCode.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CountryCode.h" + +int +CountryCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CountryCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_CountryCode_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CountryCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CountryCode = { + "CountryCode", + "CountryCode", + &asn_OP_BIT_STRING, + asn_DEF_CountryCode_tags_1, + sizeof(asn_DEF_CountryCode_tags_1) + /sizeof(asn_DEF_CountryCode_tags_1[0]), /* 1 */ + asn_DEF_CountryCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CountryCode_tags_1) + /sizeof(asn_DEF_CountryCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CountryCode_constr_1, &asn_PER_type_CountryCode_constr_1, CountryCode_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Curvature.c b/vcits/spatem/src/Curvature.c new file mode 100644 index 0000000..682effa --- /dev/null +++ b/vcits/spatem/src/Curvature.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Curvature.h" + +static asn_TYPE_member_t asn_MBR_Curvature_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Curvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Curvature_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* curvatureValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* curvatureConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Curvature_specs_1 = { + sizeof(struct Curvature), + offsetof(struct Curvature, _asn_ctx), + asn_MAP_Curvature_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Curvature = { + "Curvature", + "Curvature", + &asn_OP_SEQUENCE, + asn_DEF_Curvature_tags_1, + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + asn_DEF_Curvature_tags_1, /* Same as above */ + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Curvature_1, + 2, /* Elements count */ + &asn_SPC_Curvature_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CurvatureCalculationMode.c b/vcits/spatem/src/CurvatureCalculationMode.c new file mode 100644 index 0000000..f7b3a06 --- /dev/null +++ b/vcits/spatem/src/CurvatureCalculationMode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CurvatureCalculationMode.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureCalculationMode_value2enum_1[] = { + { 0, 11, "yawRateUsed" }, + { 1, 14, "yawRateNotUsed" }, + { 2, 11, "unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CurvatureCalculationMode_enum2value_1[] = { + 2, /* unavailable(2) */ + 1, /* yawRateNotUsed(1) */ + 0 /* yawRateUsed(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_CurvatureCalculationMode_specs_1 = { + asn_MAP_CurvatureCalculationMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureCalculationMode_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureCalculationMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode = { + "CurvatureCalculationMode", + "CurvatureCalculationMode", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureCalculationMode_tags_1, + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + asn_DEF_CurvatureCalculationMode_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureCalculationMode_constr_1, &asn_PER_type_CurvatureCalculationMode_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureCalculationMode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CurvatureConfidence.c b/vcits/spatem/src/CurvatureConfidence.c new file mode 100644 index 0000000..8200499 --- /dev/null +++ b/vcits/spatem/src/CurvatureConfidence.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CurvatureConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureConfidence_value2enum_1[] = { + { 0, 19, "onePerMeter-0-00002" }, + { 1, 18, "onePerMeter-0-0001" }, + { 2, 18, "onePerMeter-0-0005" }, + { 3, 17, "onePerMeter-0-002" }, + { 4, 16, "onePerMeter-0-01" }, + { 5, 15, "onePerMeter-0-1" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_CurvatureConfidence_enum2value_1[] = { + 0, /* onePerMeter-0-00002(0) */ + 1, /* onePerMeter-0-0001(1) */ + 2, /* onePerMeter-0-0005(2) */ + 3, /* onePerMeter-0-002(3) */ + 4, /* onePerMeter-0-01(4) */ + 5, /* onePerMeter-0-1(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1 = { + asn_MAP_CurvatureConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence = { + "CurvatureConfidence", + "CurvatureConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureConfidence_tags_1, + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + asn_DEF_CurvatureConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureConfidence_constr_1, &asn_PER_type_CurvatureConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/CurvatureValue.c b/vcits/spatem/src/CurvatureValue.c new file mode 100644 index 0000000..08d00cd --- /dev/null +++ b/vcits/spatem/src/CurvatureValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "CurvatureValue.h" + +int +CurvatureValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1023 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1023..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1023, 1023 } /* (-1023..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CurvatureValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureValue = { + "CurvatureValue", + "CurvatureValue", + &asn_OP_NativeInteger, + asn_DEF_CurvatureValue_tags_1, + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + asn_DEF_CurvatureValue_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureValue_constr_1, &asn_PER_type_CurvatureValue_constr_1, CurvatureValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DDateTime.c b/vcits/spatem/src/DDateTime.c new file mode 100644 index 0000000..bf1309b --- /dev/null +++ b/vcits/spatem/src/DDateTime.c @@ -0,0 +1,112 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DDateTime.h" + +asn_TYPE_member_t asn_MBR_DDateTime_1[] = { + { ATF_POINTER, 7, offsetof(struct DDateTime, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "year" + }, + { ATF_POINTER, 6, offsetof(struct DDateTime, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMonth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "month" + }, + { ATF_POINTER, 5, offsetof(struct DDateTime, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDay, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "day" + }, + { ATF_POINTER, 4, offsetof(struct DDateTime, hour), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DHour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hour" + }, + { ATF_POINTER, 3, offsetof(struct DDateTime, minute), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMinute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct DDateTime, second), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct DDateTime, offset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offset" + }, +}; +static const int asn_MAP_DDateTime_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_DDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DDateTime_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* day */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hour */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* offset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1 = { + sizeof(struct DDateTime), + offsetof(struct DDateTime, _asn_ctx), + asn_MAP_DDateTime_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_DDateTime_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DDateTime = { + "DDateTime", + "DDateTime", + &asn_OP_SEQUENCE, + asn_DEF_DDateTime_tags_1, + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + asn_DEF_DDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DDateTime_1, + 7, /* Elements count */ + &asn_SPC_DDateTime_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/DDay.c b/vcits/spatem/src/DDay.c new file mode 100644 index 0000000..0164ddc --- /dev/null +++ b/vcits/spatem/src/DDay.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DDay.h" + +int +DDay_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DDay_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_DDay_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DDay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DDay = { + "DDay", + "DDay", + &asn_OP_NativeInteger, + asn_DEF_DDay_tags_1, + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + asn_DEF_DDay_tags_1, /* Same as above */ + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + { &asn_OER_type_DDay_constr_1, &asn_PER_type_DDay_constr_1, DDay_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DHour.c b/vcits/spatem/src/DHour.c new file mode 100644 index 0000000..a62e356 --- /dev/null +++ b/vcits/spatem/src/DHour.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DHour.h" + +int +DHour_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DHour_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_DHour_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DHour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DHour = { + "DHour", + "DHour", + &asn_OP_NativeInteger, + asn_DEF_DHour_tags_1, + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + asn_DEF_DHour_tags_1, /* Same as above */ + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + { &asn_OER_type_DHour_constr_1, &asn_PER_type_DHour_constr_1, DHour_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DMinute.c b/vcits/spatem/src/DMinute.c new file mode 100644 index 0000000..66b8b3e --- /dev/null +++ b/vcits/spatem/src/DMinute.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DMinute.h" + +int +DMinute_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 60)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DMinute_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..60) */, + -1}; +asn_per_constraints_t asn_PER_type_DMinute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 60 } /* (0..60) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DMinute_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMinute = { + "DMinute", + "DMinute", + &asn_OP_NativeInteger, + asn_DEF_DMinute_tags_1, + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + asn_DEF_DMinute_tags_1, /* Same as above */ + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + { &asn_OER_type_DMinute_constr_1, &asn_PER_type_DMinute_constr_1, DMinute_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DMonth.c b/vcits/spatem/src/DMonth.c new file mode 100644 index 0000000..4b7d896 --- /dev/null +++ b/vcits/spatem/src/DMonth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DMonth.h" + +int +DMonth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DMonth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..12) */, + -1}; +asn_per_constraints_t asn_PER_type_DMonth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DMonth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMonth = { + "DMonth", + "DMonth", + &asn_OP_NativeInteger, + asn_DEF_DMonth_tags_1, + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + asn_DEF_DMonth_tags_1, /* Same as above */ + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + { &asn_OER_type_DMonth_constr_1, &asn_PER_type_DMonth_constr_1, DMonth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DOffset.c b/vcits/spatem/src/DOffset.c new file mode 100644 index 0000000..da91532 --- /dev/null +++ b/vcits/spatem/src/DOffset.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DOffset.h" + +int +DOffset_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -840 && value <= 840)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DOffset_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-840..840) */, + -1}; +asn_per_constraints_t asn_PER_type_DOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -840, 840 } /* (-840..840) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DOffset = { + "DOffset", + "DOffset", + &asn_OP_NativeInteger, + asn_DEF_DOffset_tags_1, + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + asn_DEF_DOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + { &asn_OER_type_DOffset_constr_1, &asn_PER_type_DOffset_constr_1, DOffset_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DSRCmsgID.c b/vcits/spatem/src/DSRCmsgID.c new file mode 100644 index 0000000..c942215 --- /dev/null +++ b/vcits/spatem/src/DSRCmsgID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DSRCmsgID.h" + +int +DSRCmsgID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DSRCmsgID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSRCmsgID = { + "DSRCmsgID", + "DSRCmsgID", + &asn_OP_NativeInteger, + asn_DEF_DSRCmsgID_tags_1, + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + asn_DEF_DSRCmsgID_tags_1, /* Same as above */ + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + { &asn_OER_type_DSRCmsgID_constr_1, &asn_PER_type_DSRCmsgID_constr_1, DSRCmsgID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DSecond.c b/vcits/spatem/src/DSecond.c new file mode 100644 index 0000000..0ca63d7 --- /dev/null +++ b/vcits/spatem/src/DSecond.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DSecond.h" + +int +DSecond_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DSecond_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_DSecond_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSecond = { + "DSecond", + "DSecond", + &asn_OP_NativeInteger, + asn_DEF_DSecond_tags_1, + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + asn_DEF_DSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + { &asn_OER_type_DSecond_constr_1, &asn_PER_type_DSecond_constr_1, DSecond_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DYear.c b/vcits/spatem/src/DYear.c new file mode 100644 index 0000000..98487b4 --- /dev/null +++ b/vcits/spatem/src/DYear.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DYear.h" + +int +DYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DYear_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_DYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DYear = { + "DYear", + "DYear", + &asn_OP_NativeInteger, + asn_DEF_DYear_tags_1, + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + asn_DEF_DYear_tags_1, /* Same as above */ + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + { &asn_OER_type_DYear_constr_1, &asn_PER_type_DYear_constr_1, DYear_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DangerousEndOfQueueSubCauseCode.c b/vcits/spatem/src/DangerousEndOfQueueSubCauseCode.c new file mode 100644 index 0000000..b9f86ae --- /dev/null +++ b/vcits/spatem/src/DangerousEndOfQueueSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DangerousEndOfQueueSubCauseCode.h" + +int +DangerousEndOfQueueSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode = { + "DangerousEndOfQueueSubCauseCode", + "DangerousEndOfQueueSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1, &asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1, DangerousEndOfQueueSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DangerousGoodsBasic.c b/vcits/spatem/src/DangerousGoodsBasic.c new file mode 100644 index 0000000..483646e --- /dev/null +++ b/vcits/spatem/src/DangerousGoodsBasic.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DangerousGoodsBasic.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DangerousGoodsBasic_value2enum_1[] = { + { 0, 11, "explosives1" }, + { 1, 11, "explosives2" }, + { 2, 11, "explosives3" }, + { 3, 11, "explosives4" }, + { 4, 11, "explosives5" }, + { 5, 11, "explosives6" }, + { 6, 14, "flammableGases" }, + { 7, 17, "nonFlammableGases" }, + { 8, 10, "toxicGases" }, + { 9, 16, "flammableLiquids" }, + { 10, 15, "flammableSolids" }, + { 11, 39, "substancesLiableToSpontaneousCombustion" }, + { 12, 52, "substancesEmittingFlammableGasesUponContactWithWater" }, + { 13, 19, "oxidizingSubstances" }, + { 14, 16, "organicPeroxides" }, + { 15, 15, "toxicSubstances" }, + { 16, 20, "infectiousSubstances" }, + { 17, 19, "radioactiveMaterial" }, + { 18, 19, "corrosiveSubstances" }, + { 19, 32, "miscellaneousDangerousSubstances" } +}; +static const unsigned int asn_MAP_DangerousGoodsBasic_enum2value_1[] = { + 18, /* corrosiveSubstances(18) */ + 0, /* explosives1(0) */ + 1, /* explosives2(1) */ + 2, /* explosives3(2) */ + 3, /* explosives4(3) */ + 4, /* explosives5(4) */ + 5, /* explosives6(5) */ + 6, /* flammableGases(6) */ + 9, /* flammableLiquids(9) */ + 10, /* flammableSolids(10) */ + 16, /* infectiousSubstances(16) */ + 19, /* miscellaneousDangerousSubstances(19) */ + 7, /* nonFlammableGases(7) */ + 14, /* organicPeroxides(14) */ + 13, /* oxidizingSubstances(13) */ + 17, /* radioactiveMaterial(17) */ + 12, /* substancesEmittingFlammableGasesUponContactWithWater(12) */ + 11, /* substancesLiableToSpontaneousCombustion(11) */ + 8, /* toxicGases(8) */ + 15 /* toxicSubstances(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1 = { + asn_MAP_DangerousGoodsBasic_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DangerousGoodsBasic_enum2value_1, /* N => "tag"; sorted by N */ + 20, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic = { + "DangerousGoodsBasic", + "DangerousGoodsBasic", + &asn_OP_NativeEnumerated, + asn_DEF_DangerousGoodsBasic_tags_1, + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousGoodsBasic_constr_1, &asn_PER_type_DangerousGoodsBasic_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DangerousGoodsBasic_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/DangerousGoodsExtended.c b/vcits/spatem/src/DangerousGoodsExtended.c new file mode 100644 index 0000000..6f3a82b --- /dev/null +++ b/vcits/spatem/src/DangerousGoodsExtended.c @@ -0,0 +1,243 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DangerousGoodsExtended.h" + +static int check_permitted_alphabet_7(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_unNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 9999)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_emergencyActionCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 24) + && !check_permitted_alphabet_7(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_companyName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const UTF8String_t *st = (const UTF8String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = UTF8String_length(st); + if((ssize_t)size < 0) { + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((size >= 1 && size <= 24)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_unNumber_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..9999) */, + -1}; +static asn_per_constraints_t asn_PER_memb_unNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 9999 } /* (0..9999) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..24)) */}; +static asn_per_constraints_t asn_PER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 5, 5, 1, 24 } /* (SIZE(1..24)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_companyName_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_companyName_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DangerousGoodsExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsBasic, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dangerousGoodsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, unNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_unNumber_constr_3, &asn_PER_memb_unNumber_constr_3, memb_unNumber_constraint_1 }, + 0, 0, /* No default value */ + "unNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, elevatedTemperature), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevatedTemperature" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, tunnelsRestricted), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tunnelsRestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, limitedQuantity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "limitedQuantity" + }, + { ATF_POINTER, 3, offsetof(struct DangerousGoodsExtended, emergencyActionCode), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_emergencyActionCode_constr_7, &asn_PER_memb_emergencyActionCode_constr_7, memb_emergencyActionCode_constraint_1 }, + 0, 0, /* No default value */ + "emergencyActionCode" + }, + { ATF_POINTER, 2, offsetof(struct DangerousGoodsExtended, phoneNumber), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhoneNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phoneNumber" + }, + { ATF_POINTER, 1, offsetof(struct DangerousGoodsExtended, companyName), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { &asn_OER_memb_companyName_constr_9, &asn_PER_memb_companyName_constr_9, memb_companyName_constraint_1 }, + 0, 0, /* No default value */ + "companyName" + }, +}; +static const int asn_MAP_DangerousGoodsExtended_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DangerousGoodsExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dangerousGoodsType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* unNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevatedTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tunnelsRestricted */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* limitedQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyActionCode */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* phoneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* companyName */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DangerousGoodsExtended_specs_1 = { + sizeof(struct DangerousGoodsExtended), + offsetof(struct DangerousGoodsExtended, _asn_ctx), + asn_MAP_DangerousGoodsExtended_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_DangerousGoodsExtended_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended = { + "DangerousGoodsExtended", + "DangerousGoodsExtended", + &asn_OP_SEQUENCE, + asn_DEF_DangerousGoodsExtended_tags_1, + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DangerousGoodsExtended_1, + 8, /* Elements count */ + &asn_SPC_DangerousGoodsExtended_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/DangerousSituationSubCauseCode.c b/vcits/spatem/src/DangerousSituationSubCauseCode.c new file mode 100644 index 0000000..473872b --- /dev/null +++ b/vcits/spatem/src/DangerousSituationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DangerousSituationSubCauseCode.h" + +int +DangerousSituationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousSituationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode = { + "DangerousSituationSubCauseCode", + "DangerousSituationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousSituationSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousSituationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousSituationSubCauseCode_constr_1, &asn_PER_type_DangerousSituationSubCauseCode_constr_1, DangerousSituationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DataParameters.c b/vcits/spatem/src/DataParameters.c new file mode 100644 index 0000000..b102b80 --- /dev/null +++ b/vcits/spatem/src/DataParameters.c @@ -0,0 +1,274 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DataParameters.h" + +static int check_permitted_alphabet_2(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_3(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_4(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_5(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_processMethod_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_2(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_processAgency_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_3(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_lastCheckedDate_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_4(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_geoidUsed_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_5(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_processMethod_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_processMethod_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_processAgency_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_processAgency_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +asn_TYPE_member_t asn_MBR_DataParameters_1[] = { + { ATF_POINTER, 4, offsetof(struct DataParameters, processMethod), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_processMethod_constr_2, &asn_PER_memb_processMethod_constr_2, memb_processMethod_constraint_1 }, + 0, 0, /* No default value */ + "processMethod" + }, + { ATF_POINTER, 3, offsetof(struct DataParameters, processAgency), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_processAgency_constr_3, &asn_PER_memb_processAgency_constr_3, memb_processAgency_constraint_1 }, + 0, 0, /* No default value */ + "processAgency" + }, + { ATF_POINTER, 2, offsetof(struct DataParameters, lastCheckedDate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_lastCheckedDate_constr_4, &asn_PER_memb_lastCheckedDate_constr_4, memb_lastCheckedDate_constraint_1 }, + 0, 0, /* No default value */ + "lastCheckedDate" + }, + { ATF_POINTER, 1, offsetof(struct DataParameters, geoidUsed), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_geoidUsed_constr_5, &asn_PER_memb_geoidUsed_constr_5, memb_geoidUsed_constraint_1 }, + 0, 0, /* No default value */ + "geoidUsed" + }, +}; +static const int asn_MAP_DataParameters_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_DataParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DataParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* processMethod */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* processAgency */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lastCheckedDate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* geoidUsed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1 = { + sizeof(struct DataParameters), + offsetof(struct DataParameters, _asn_ctx), + asn_MAP_DataParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DataParameters_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DataParameters = { + "DataParameters", + "DataParameters", + &asn_OP_SEQUENCE, + asn_DEF_DataParameters_tags_1, + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + asn_DEF_DataParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DataParameters_1, + 4, /* Elements count */ + &asn_SPC_DataParameters_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/DeltaAltitude.c b/vcits/spatem/src/DeltaAltitude.c new file mode 100644 index 0000000..2b753ba --- /dev/null +++ b/vcits/spatem/src/DeltaAltitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DeltaAltitude.h" + +int +DeltaAltitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -12700 && value <= 12800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-12700..12800) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, -12700, 12800 } /* (-12700..12800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAltitude = { + "DeltaAltitude", + "DeltaAltitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaAltitude_tags_1, + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAltitude_constr_1, &asn_PER_type_DeltaAltitude_constr_1, DeltaAltitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DeltaAngle.c b/vcits/spatem/src/DeltaAngle.c new file mode 100644 index 0000000..bcfb49b --- /dev/null +++ b/vcits/spatem/src/DeltaAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DeltaAngle.h" + +int +DeltaAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -150 && value <= 150)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-150..150) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -150, 150 } /* (-150..150) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAngle = { + "DeltaAngle", + "DeltaAngle", + &asn_OP_NativeInteger, + asn_DEF_DeltaAngle_tags_1, + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + asn_DEF_DeltaAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAngle_constr_1, &asn_PER_type_DeltaAngle_constr_1, DeltaAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DeltaLatitude.c b/vcits/spatem/src/DeltaLatitude.c new file mode 100644 index 0000000..fa469be --- /dev/null +++ b/vcits/spatem/src/DeltaLatitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DeltaLatitude.h" + +int +DeltaLatitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLatitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLatitude = { + "DeltaLatitude", + "DeltaLatitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLatitude_tags_1, + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLatitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLatitude_constr_1, &asn_PER_type_DeltaLatitude_constr_1, DeltaLatitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DeltaLongitude.c b/vcits/spatem/src/DeltaLongitude.c new file mode 100644 index 0000000..d4e30f3 --- /dev/null +++ b/vcits/spatem/src/DeltaLongitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DeltaLongitude.h" + +int +DeltaLongitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLongitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLongitude = { + "DeltaLongitude", + "DeltaLongitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLongitude_tags_1, + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLongitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLongitude_constr_1, &asn_PER_type_DeltaLongitude_constr_1, DeltaLongitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DeltaReferencePosition.c b/vcits/spatem/src/DeltaReferencePosition.c new file mode 100644 index 0000000..d6a6e3a --- /dev/null +++ b/vcits/spatem/src/DeltaReferencePosition.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DeltaReferencePosition.h" + +asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLatitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLongitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLongitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaAltitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_DeltaReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DeltaReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* deltaAltitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1 = { + sizeof(struct DeltaReferencePosition), + offsetof(struct DeltaReferencePosition, _asn_ctx), + asn_MAP_DeltaReferencePosition_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition = { + "DeltaReferencePosition", + "DeltaReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_DeltaReferencePosition_tags_1, + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_DeltaReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DeltaReferencePosition_1, + 3, /* Elements count */ + &asn_SPC_DeltaReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/DeltaTime.c b/vcits/spatem/src/DeltaTime.c new file mode 100644 index 0000000..5da9668 --- /dev/null +++ b/vcits/spatem/src/DeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DeltaTime.h" + +int +DeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -122 && value <= 121)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaTime_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-122..121) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -122, 121 } /* (-122..121) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaTime = { + "DeltaTime", + "DeltaTime", + &asn_OP_NativeInteger, + asn_DEF_DeltaTime_tags_1, + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + asn_DEF_DeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaTime_constr_1, &asn_PER_type_DeltaTime_constr_1, DeltaTime_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DescriptiveName.c b/vcits/spatem/src/DescriptiveName.c new file mode 100644 index 0000000..9748b0d --- /dev/null +++ b/vcits/spatem/src/DescriptiveName.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DescriptiveName.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +DescriptiveName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 63) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_DescriptiveName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DescriptiveName = { + "DescriptiveName", + "DescriptiveName", + &asn_OP_IA5String, + asn_DEF_DescriptiveName_tags_1, + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + asn_DEF_DescriptiveName_tags_1, /* Same as above */ + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + { &asn_OER_type_DescriptiveName_constr_1, &asn_PER_type_DescriptiveName_constr_1, DescriptiveName_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DigitalMap.c b/vcits/spatem/src/DigitalMap.c new file mode 100644 index 0000000..ab26ac0 --- /dev/null +++ b/vcits/spatem/src/DigitalMap.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DigitalMap.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_DigitalMap_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_DigitalMap_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DigitalMap_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DigitalMap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DigitalMap_specs_1 = { + sizeof(struct DigitalMap), + offsetof(struct DigitalMap, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DigitalMap = { + "DigitalMap", + "DigitalMap", + &asn_OP_SEQUENCE_OF, + asn_DEF_DigitalMap_tags_1, + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + asn_DEF_DigitalMap_tags_1, /* Same as above */ + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + { &asn_OER_type_DigitalMap_constr_1, &asn_PER_type_DigitalMap_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DigitalMap_1, + 1, /* Single element */ + &asn_SPC_DigitalMap_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/DriveDirection.c b/vcits/spatem/src/DriveDirection.c new file mode 100644 index 0000000..7ed52c5 --- /dev/null +++ b/vcits/spatem/src/DriveDirection.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DriveDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DriveDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_DriveDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DriveDirection_value2enum_1[] = { + { 0, 7, "forward" }, + { 1, 8, "backward" }, + { 2, 11, "unavailable" } +}; +static const unsigned int asn_MAP_DriveDirection_enum2value_1[] = { + 1, /* backward(1) */ + 0, /* forward(0) */ + 2 /* unavailable(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_DriveDirection_specs_1 = { + asn_MAP_DriveDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DriveDirection_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DriveDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DriveDirection = { + "DriveDirection", + "DriveDirection", + &asn_OP_NativeEnumerated, + asn_DEF_DriveDirection_tags_1, + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + asn_DEF_DriveDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_DriveDirection_constr_1, &asn_PER_type_DriveDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DriveDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/DrivenLineOffsetLg.c b/vcits/spatem/src/DrivenLineOffsetLg.c new file mode 100644 index 0000000..27dc6a8 --- /dev/null +++ b/vcits/spatem/src/DrivenLineOffsetLg.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DrivenLineOffsetLg.h" + +int +DrivenLineOffsetLg_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32767 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32767..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32767, 32767 } /* (-32767..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetLg_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg = { + "DrivenLineOffsetLg", + "DrivenLineOffsetLg", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetLg_tags_1, + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetLg_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivenLineOffsetLg_constr_1, &asn_PER_type_DrivenLineOffsetLg_constr_1, DrivenLineOffsetLg_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DrivenLineOffsetSm.c b/vcits/spatem/src/DrivenLineOffsetSm.c new file mode 100644 index 0000000..906b4f3 --- /dev/null +++ b/vcits/spatem/src/DrivenLineOffsetSm.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DrivenLineOffsetSm.h" + +int +DrivenLineOffsetSm_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2047 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2047..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2047, 2047 } /* (-2047..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetSm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm = { + "DrivenLineOffsetSm", + "DrivenLineOffsetSm", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetSm_tags_1, + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetSm_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivenLineOffsetSm_constr_1, &asn_PER_type_DrivenLineOffsetSm_constr_1, DrivenLineOffsetSm_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/DrivingLaneStatus.c b/vcits/spatem/src/DrivingLaneStatus.c new file mode 100644 index 0000000..8306510 --- /dev/null +++ b/vcits/spatem/src/DrivingLaneStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "DrivingLaneStatus.h" + +int +DrivingLaneStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size >= 1 && size <= 13)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..13)) */}; +asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 13 } /* (SIZE(1..13)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivingLaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus = { + "DrivingLaneStatus", + "DrivingLaneStatus", + &asn_OP_BIT_STRING, + asn_DEF_DrivingLaneStatus_tags_1, + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + asn_DEF_DrivingLaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivingLaneStatus_constr_1, &asn_PER_type_DrivingLaneStatus_constr_1, DrivingLaneStatus_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Elevation.c b/vcits/spatem/src/Elevation.c new file mode 100644 index 0000000..4c615d4 --- /dev/null +++ b/vcits/spatem/src/Elevation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Elevation.h" + +int +Elevation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096 && value <= 61439)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Elevation_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-4096..61439) */, + -1}; +asn_per_constraints_t asn_PER_type_Elevation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -4096, 61439 } /* (-4096..61439) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Elevation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Elevation = { + "Elevation", + "Elevation", + &asn_OP_NativeInteger, + asn_DEF_Elevation_tags_1, + sizeof(asn_DEF_Elevation_tags_1) + /sizeof(asn_DEF_Elevation_tags_1[0]), /* 1 */ + asn_DEF_Elevation_tags_1, /* Same as above */ + sizeof(asn_DEF_Elevation_tags_1) + /sizeof(asn_DEF_Elevation_tags_1[0]), /* 1 */ + { &asn_OER_type_Elevation_constr_1, &asn_PER_type_Elevation_constr_1, Elevation_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/ElevationConfidence.c b/vcits/spatem/src/ElevationConfidence.c new file mode 100644 index 0000000..ea4d720 --- /dev/null +++ b/vcits/spatem/src/ElevationConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ElevationConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ElevationConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 11, "elev-500-00" }, + { 2, 11, "elev-200-00" }, + { 3, 11, "elev-100-00" }, + { 4, 11, "elev-050-00" }, + { 5, 11, "elev-020-00" }, + { 6, 11, "elev-010-00" }, + { 7, 11, "elev-005-00" }, + { 8, 11, "elev-002-00" }, + { 9, 11, "elev-001-00" }, + { 10, 11, "elev-000-50" }, + { 11, 11, "elev-000-20" }, + { 12, 11, "elev-000-10" }, + { 13, 11, "elev-000-05" }, + { 14, 11, "elev-000-02" }, + { 15, 11, "elev-000-01" } +}; +static const unsigned int asn_MAP_ElevationConfidence_enum2value_1[] = { + 15, /* elev-000-01(15) */ + 14, /* elev-000-02(14) */ + 13, /* elev-000-05(13) */ + 12, /* elev-000-10(12) */ + 11, /* elev-000-20(11) */ + 10, /* elev-000-50(10) */ + 9, /* elev-001-00(9) */ + 8, /* elev-002-00(8) */ + 7, /* elev-005-00(7) */ + 6, /* elev-010-00(6) */ + 5, /* elev-020-00(5) */ + 4, /* elev-050-00(4) */ + 3, /* elev-100-00(3) */ + 2, /* elev-200-00(2) */ + 1, /* elev-500-00(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1 = { + asn_MAP_ElevationConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ElevationConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ElevationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ElevationConfidence = { + "ElevationConfidence", + "ElevationConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ElevationConfidence_tags_1, + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + asn_DEF_ElevationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ElevationConfidence_constr_1, &asn_PER_type_ElevationConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ElevationConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/EmbarkationStatus.c b/vcits/spatem/src/EmbarkationStatus.c new file mode 100644 index 0000000..963fe42 --- /dev/null +++ b/vcits/spatem/src/EmbarkationStatus.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "EmbarkationStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_EmbarkationStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus = { + "EmbarkationStatus", + "EmbarkationStatus", + &asn_OP_BOOLEAN, + asn_DEF_EmbarkationStatus_tags_1, + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + asn_DEF_EmbarkationStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/EmergencyPriority.c b/vcits/spatem/src/EmergencyPriority.c new file mode 100644 index 0000000..cde39be --- /dev/null +++ b/vcits/spatem/src/EmergencyPriority.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "EmergencyPriority.h" + +int +EmergencyPriority_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyPriority = { + "EmergencyPriority", + "EmergencyPriority", + &asn_OP_BIT_STRING, + asn_DEF_EmergencyPriority_tags_1, + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + asn_DEF_EmergencyPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyPriority_constr_1, &asn_PER_type_EmergencyPriority_constr_1, EmergencyPriority_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/EmergencyVehicleApproachingSubCauseCode.c b/vcits/spatem/src/EmergencyVehicleApproachingSubCauseCode.c new file mode 100644 index 0000000..baac798 --- /dev/null +++ b/vcits/spatem/src/EmergencyVehicleApproachingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "EmergencyVehicleApproachingSubCauseCode.h" + +int +EmergencyVehicleApproachingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode = { + "EmergencyVehicleApproachingSubCauseCode", + "EmergencyVehicleApproachingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, &asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, EmergencyVehicleApproachingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/EmissionType.c b/vcits/spatem/src/EmissionType.c new file mode 100644 index 0000000..4587944 --- /dev/null +++ b/vcits/spatem/src/EmissionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "EmissionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmissionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EmissionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EmissionType_value2enum_1[] = { + { 0, 5, "euro1" }, + { 1, 5, "euro2" }, + { 2, 5, "euro3" }, + { 3, 5, "euro4" }, + { 4, 5, "euro5" }, + { 5, 5, "euro6" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_EmissionType_enum2value_1[] = { + 0, /* euro1(0) */ + 1, /* euro2(1) */ + 2, /* euro3(2) */ + 3, /* euro4(3) */ + 4, /* euro5(4) */ + 5 /* euro6(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1 = { + asn_MAP_EmissionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EmissionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EmissionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmissionType = { + "EmissionType", + "EmissionType", + &asn_OP_NativeEnumerated, + asn_DEF_EmissionType_tags_1, + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + asn_DEF_EmissionType_tags_1, /* Same as above */ + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + { &asn_OER_type_EmissionType_constr_1, &asn_PER_type_EmissionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EmissionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/EnabledLaneList.c b/vcits/spatem/src/EnabledLaneList.c new file mode 100644 index 0000000..112bbf1 --- /dev/null +++ b/vcits/spatem/src/EnabledLaneList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "EnabledLaneList.h" + +static asn_oer_constraints_t asn_OER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_EnabledLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EnabledLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1 = { + sizeof(struct EnabledLaneList), + offsetof(struct EnabledLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EnabledLaneList = { + "EnabledLaneList", + "EnabledLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EnabledLaneList_tags_1, + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + asn_DEF_EnabledLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_EnabledLaneList_constr_1, &asn_PER_type_EnabledLaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EnabledLaneList_1, + 1, /* Single element */ + &asn_SPC_EnabledLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/EnergyStorageType.c b/vcits/spatem/src/EnergyStorageType.c new file mode 100644 index 0000000..4ee0221 --- /dev/null +++ b/vcits/spatem/src/EnergyStorageType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "EnergyStorageType.h" + +int +EnergyStorageType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EnergyStorageType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EnergyStorageType = { + "EnergyStorageType", + "EnergyStorageType", + &asn_OP_BIT_STRING, + asn_DEF_EnergyStorageType_tags_1, + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + asn_DEF_EnergyStorageType_tags_1, /* Same as above */ + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + { &asn_OER_type_EnergyStorageType_constr_1, &asn_PER_type_EnergyStorageType_constr_1, EnergyStorageType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/EuVehicleCategoryCode.c b/vcits/spatem/src/EuVehicleCategoryCode.c new file mode 100644 index 0000000..f907a72 --- /dev/null +++ b/vcits/spatem/src/EuVehicleCategoryCode.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "EuVehicleCategoryCode.h" + +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EuVehicleCategoryCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryL" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryM" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryN" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryO" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehilcleCategoryT), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehilcleCategoryT" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehilcleCategoryG), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehilcleCategoryG" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_EuVehicleCategoryCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* euVehicleCategoryL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* euVehicleCategoryM */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* euVehicleCategoryN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* euVehicleCategoryO */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* euVehilcleCategoryT */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* euVehilcleCategoryG */ +}; +static asn_CHOICE_specifics_t asn_SPC_EuVehicleCategoryCode_specs_1 = { + sizeof(struct EuVehicleCategoryCode), + offsetof(struct EuVehicleCategoryCode, _asn_ctx), + offsetof(struct EuVehicleCategoryCode, present), + sizeof(((struct EuVehicleCategoryCode *)0)->present), + asn_MAP_EuVehicleCategoryCode_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryCode = { + "EuVehicleCategoryCode", + "EuVehicleCategoryCode", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_EuVehicleCategoryCode_constr_1, &asn_PER_type_EuVehicleCategoryCode_constr_1, CHOICE_constraint }, + asn_MBR_EuVehicleCategoryCode_1, + 6, /* Elements count */ + &asn_SPC_EuVehicleCategoryCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/EuVehicleCategoryL.c b/vcits/spatem/src/EuVehicleCategoryL.c new file mode 100644 index 0000000..a493840 --- /dev/null +++ b/vcits/spatem/src/EuVehicleCategoryL.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "EuVehicleCategoryL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryL_value2enum_1[] = { + { 0, 2, "l1" }, + { 1, 2, "l2" }, + { 2, 2, "l3" }, + { 3, 2, "l4" }, + { 4, 2, "l5" }, + { 5, 2, "l6" }, + { 6, 2, "l7" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryL_enum2value_1[] = { + 0, /* l1(0) */ + 1, /* l2(1) */ + 2, /* l3(2) */ + 3, /* l4(3) */ + 4, /* l5(4) */ + 5, /* l6(5) */ + 6 /* l7(6) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryL_specs_1 = { + asn_MAP_EuVehicleCategoryL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryL_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryL = { + "EuVehicleCategoryL", + "EuVehicleCategoryL", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryL_tags_1, + sizeof(asn_DEF_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryL_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryL_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryL_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryL_constr_1, &asn_PER_type_EuVehicleCategoryL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryL_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/EuVehicleCategoryM.c b/vcits/spatem/src/EuVehicleCategoryM.c new file mode 100644 index 0000000..cc6e2a3 --- /dev/null +++ b/vcits/spatem/src/EuVehicleCategoryM.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "EuVehicleCategoryM.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryM_value2enum_1[] = { + { 0, 2, "m1" }, + { 1, 2, "m2" }, + { 2, 2, "m3" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryM_enum2value_1[] = { + 0, /* m1(0) */ + 1, /* m2(1) */ + 2 /* m3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryM_specs_1 = { + asn_MAP_EuVehicleCategoryM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryM_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryM = { + "EuVehicleCategoryM", + "EuVehicleCategoryM", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryM_tags_1, + sizeof(asn_DEF_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryM_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryM_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryM_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryM_constr_1, &asn_PER_type_EuVehicleCategoryM_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/EuVehicleCategoryN.c b/vcits/spatem/src/EuVehicleCategoryN.c new file mode 100644 index 0000000..e34ae70 --- /dev/null +++ b/vcits/spatem/src/EuVehicleCategoryN.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "EuVehicleCategoryN.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryN_value2enum_1[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryN_enum2value_1[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryN_specs_1 = { + asn_MAP_EuVehicleCategoryN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryN_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryN = { + "EuVehicleCategoryN", + "EuVehicleCategoryN", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryN_tags_1, + sizeof(asn_DEF_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryN_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryN_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryN_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryN_constr_1, &asn_PER_type_EuVehicleCategoryN_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryN_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/EuVehicleCategoryO.c b/vcits/spatem/src/EuVehicleCategoryO.c new file mode 100644 index 0000000..8cc32a3 --- /dev/null +++ b/vcits/spatem/src/EuVehicleCategoryO.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "EuVehicleCategoryO.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryO_value2enum_1[] = { + { 0, 2, "o1" }, + { 1, 2, "o2" }, + { 2, 2, "o3" }, + { 3, 2, "o4" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryO_enum2value_1[] = { + 0, /* o1(0) */ + 1, /* o2(1) */ + 2, /* o3(2) */ + 3 /* o4(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryO_specs_1 = { + asn_MAP_EuVehicleCategoryO_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryO_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryO = { + "EuVehicleCategoryO", + "EuVehicleCategoryO", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryO_tags_1, + sizeof(asn_DEF_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryO_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryO_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryO_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryO_constr_1, &asn_PER_type_EuVehicleCategoryO_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryO_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/EventHistory.c b/vcits/spatem/src/EventHistory.c new file mode 100644 index 0000000..1530d42 --- /dev/null +++ b/vcits/spatem/src/EventHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "EventHistory.h" + +#include "EventPoint.h" +static asn_oer_constraints_t asn_OER_type_EventHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..23)) */}; +static asn_per_constraints_t asn_PER_type_EventHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (SIZE(1..23)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EventHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EventPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EventHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_EventHistory_specs_1 = { + sizeof(struct EventHistory), + offsetof(struct EventHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EventHistory = { + "EventHistory", + "EventHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_EventHistory_tags_1, + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + asn_DEF_EventHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_EventHistory_constr_1, &asn_PER_type_EventHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EventHistory_1, + 1, /* Single element */ + &asn_SPC_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/EventPoint.c b/vcits/spatem/src/EventPoint.c new file mode 100644 index 0000000..2c276e4 --- /dev/null +++ b/vcits/spatem/src/EventPoint.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "EventPoint.h" + +asn_TYPE_member_t asn_MBR_EventPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventPosition" + }, + { ATF_POINTER, 1, offsetof(struct EventPoint, eventDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InformationQuality, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "informationQuality" + }, +}; +static const int asn_MAP_EventPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_EventPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EventPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* informationQuality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1 = { + sizeof(struct EventPoint), + offsetof(struct EventPoint, _asn_ctx), + asn_MAP_EventPoint_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_EventPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EventPoint = { + "EventPoint", + "EventPoint", + &asn_OP_SEQUENCE, + asn_DEF_EventPoint_tags_1, + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + asn_DEF_EventPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EventPoint_1, + 3, /* Elements count */ + &asn_SPC_EventPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ExceptionalCondition.c b/vcits/spatem/src/ExceptionalCondition.c new file mode 100644 index 0000000..a2c93a1 --- /dev/null +++ b/vcits/spatem/src/ExceptionalCondition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ExceptionalCondition.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExceptionalCondition_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ExceptionalCondition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ExceptionalCondition_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 23, "publicTransportPriority" }, + { 2, 24, "emergencyVehiclePriority" }, + { 3, 13, "trainPriority" }, + { 4, 10, "bridgeOpen" }, + { 5, 13, "vehicleHeight" }, + { 6, 7, "weather" }, + { 7, 10, "trafficJam" }, + { 8, 13, "tunnelClosure" }, + { 9, 14, "meteringActive" }, + { 10, 13, "truckPriority" }, + { 11, 22, "bicyclePlatoonPriority" }, + { 12, 22, "vehiclePlatoonPriority" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ExceptionalCondition_enum2value_1[] = { + 11, /* bicyclePlatoonPriority(11) */ + 4, /* bridgeOpen(4) */ + 2, /* emergencyVehiclePriority(2) */ + 9, /* meteringActive(9) */ + 1, /* publicTransportPriority(1) */ + 7, /* trafficJam(7) */ + 3, /* trainPriority(3) */ + 10, /* truckPriority(10) */ + 8, /* tunnelClosure(8) */ + 0, /* unknown(0) */ + 5, /* vehicleHeight(5) */ + 12, /* vehiclePlatoonPriority(12) */ + 6 /* weather(6) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ExceptionalCondition_specs_1 = { + asn_MAP_ExceptionalCondition_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ExceptionalCondition_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ExceptionalCondition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExceptionalCondition = { + "ExceptionalCondition", + "ExceptionalCondition", + &asn_OP_NativeEnumerated, + asn_DEF_ExceptionalCondition_tags_1, + sizeof(asn_DEF_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ExceptionalCondition_tags_1[0]), /* 1 */ + asn_DEF_ExceptionalCondition_tags_1, /* Same as above */ + sizeof(asn_DEF_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ExceptionalCondition_tags_1[0]), /* 1 */ + { &asn_OER_type_ExceptionalCondition_constr_1, &asn_PER_type_ExceptionalCondition_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ExceptionalCondition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ExteriorLights.c b/vcits/spatem/src/ExteriorLights.c new file mode 100644 index 0000000..c4d70ed --- /dev/null +++ b/vcits/spatem/src/ExteriorLights.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ExteriorLights.h" + +int +ExteriorLights_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_ExteriorLights_tags_1, + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + { &asn_OER_type_ExteriorLights_constr_1, &asn_PER_type_ExteriorLights_constr_1, ExteriorLights_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/FreightContainerData.c b/vcits/spatem/src/FreightContainerData.c new file mode 100644 index 0000000..3ce1da0 --- /dev/null +++ b/vcits/spatem/src/FreightContainerData.c @@ -0,0 +1,482 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "FreightContainerData.h" + +static int +memb_ownerCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_serialNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1000000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_checkDigit_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_length_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 2000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_height_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_width_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 200 && value <= 300)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_containerTypeCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_maximumGrossMass_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 19 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_tareMass_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 99)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_ownerCode_constr_2 CC_NOTUSED = { + { 0, 0 }, + 19 /* (SIZE(19..19)) */}; +static asn_per_constraints_t asn_PER_memb_ownerCode_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 19, 19 } /* (SIZE(19..19)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_serialNumber_constr_3 CC_NOTUSED = { + { 4, 1 } /* (0..1000000) */, + -1}; +static asn_per_constraints_t asn_PER_memb_serialNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 1000000 } /* (0..1000000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_checkDigit_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..10) */, + -1}; +static asn_per_constraints_t asn_PER_memb_checkDigit_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 10 } /* (0..10) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_length_constr_5 CC_NOTUSED = { + { 2, 1 } /* (1..2000) */, + -1}; +static asn_per_constraints_t asn_PER_memb_length_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 1, 2000 } /* (1..2000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_height_constr_6 CC_NOTUSED = { + { 2, 1 } /* (1..500) */, + -1}; +static asn_per_constraints_t asn_PER_memb_height_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 500 } /* (1..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_width_constr_7 CC_NOTUSED = { + { 2, 1 } /* (200..300) */, + -1}; +static asn_per_constraints_t asn_PER_memb_width_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 200, 300 } /* (200..300) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_containerTypeCode_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_containerTypeCode_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_maximumGrossMass_constr_9 CC_NOTUSED = { + { 2, 1 } /* (19..500) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maximumGrossMass_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 19, 500 } /* (19..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_tareMass_constr_10 CC_NOTUSED = { + { 1, 1 } /* (0..99) */, + -1}; +static asn_per_constraints_t asn_PER_memb_tareMass_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 99 } /* (0..99) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_fill_constr_11 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_FreightContainerData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, ownerCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_ownerCode_constr_2, &asn_PER_memb_ownerCode_constr_2, memb_ownerCode_constraint_1 }, + 0, 0, /* No default value */ + "ownerCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, serialNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_serialNumber_constr_3, &asn_PER_memb_serialNumber_constr_3, memb_serialNumber_constraint_1 }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, checkDigit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_checkDigit_constr_4, &asn_PER_memb_checkDigit_constr_4, memb_checkDigit_constraint_1 }, + 0, 0, /* No default value */ + "checkDigit" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, length), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_length_constr_5, &asn_PER_memb_length_constr_5, memb_length_constraint_1 }, + 0, 0, /* No default value */ + "length" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, height), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_height_constr_6, &asn_PER_memb_height_constr_6, memb_height_constraint_1 }, + 0, 0, /* No default value */ + "height" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, width), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_width_constr_7, &asn_PER_memb_width_constr_7, memb_width_constraint_1 }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, containerTypeCode), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_containerTypeCode_constr_8, &asn_PER_memb_containerTypeCode_constr_8, memb_containerTypeCode_constraint_1 }, + 0, 0, /* No default value */ + "containerTypeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, maximumGrossMass), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maximumGrossMass_constr_9, &asn_PER_memb_maximumGrossMass_constr_9, memb_maximumGrossMass_constraint_1 }, + 0, 0, /* No default value */ + "maximumGrossMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, tareMass), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_tareMass_constr_10, &asn_PER_memb_tareMass_constr_10, memb_tareMass_constraint_1 }, + 0, 0, /* No default value */ + "tareMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, fill), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_11, &asn_PER_memb_fill_constr_11, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_FreightContainerData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FreightContainerData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ownerCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serialNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* checkDigit */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* length */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* height */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* width */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* containerTypeCode */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* maximumGrossMass */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* tareMass */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* fill */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FreightContainerData_specs_1 = { + sizeof(struct FreightContainerData), + offsetof(struct FreightContainerData, _asn_ctx), + asn_MAP_FreightContainerData_tag2el_1, + 10, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FreightContainerData = { + "FreightContainerData", + "FreightContainerData", + &asn_OP_SEQUENCE, + asn_DEF_FreightContainerData_tags_1, + sizeof(asn_DEF_FreightContainerData_tags_1) + /sizeof(asn_DEF_FreightContainerData_tags_1[0]), /* 1 */ + asn_DEF_FreightContainerData_tags_1, /* Same as above */ + sizeof(asn_DEF_FreightContainerData_tags_1) + /sizeof(asn_DEF_FreightContainerData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/FuelType.c b/vcits/spatem/src/FuelType.c new file mode 100644 index 0000000..f1ee2cb --- /dev/null +++ b/vcits/spatem/src/FuelType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "FuelType.h" + +int +FuelType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FuelType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_FuelType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_FuelType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FuelType = { + "FuelType", + "FuelType", + &asn_OP_NativeInteger, + asn_DEF_FuelType_tags_1, + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + asn_DEF_FuelType_tags_1, /* Same as above */ + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + { &asn_OER_type_FuelType_constr_1, &asn_PER_type_FuelType_constr_1, FuelType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/FullPositionVector.c b/vcits/spatem/src/FullPositionVector.c new file mode 100644 index 0000000..17eb4c8 --- /dev/null +++ b/vcits/spatem/src/FullPositionVector.c @@ -0,0 +1,147 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "FullPositionVector.h" + +#include "DDateTime.h" +#include "TransmissionAndSpeed.h" +#include "PositionalAccuracy.h" +#include "PositionConfidenceSet.h" +#include "SpeedandHeadingandThrottleConfidence.h" +asn_TYPE_member_t asn_MBR_FullPositionVector_1[] = { + { ATF_POINTER, 1, offsetof(struct FullPositionVector, utcTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDateTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "utcTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "long" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, lat), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_POINTER, 7, offsetof(struct FullPositionVector, elevation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Elevation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 6, offsetof(struct FullPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 5, offsetof(struct FullPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct FullPositionVector, posAccuracy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionalAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posAccuracy" + }, + { ATF_POINTER, 3, offsetof(struct FullPositionVector, timeConfidence), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeConfidence" + }, + { ATF_POINTER, 2, offsetof(struct FullPositionVector, posConfidence), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidenceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posConfidence" + }, + { ATF_POINTER, 1, offsetof(struct FullPositionVector, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedandHeadingandThrottleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const int asn_MAP_FullPositionVector_oms_1[] = { 0, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_FullPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FullPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* utcTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* posAccuracy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* timeConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* posConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1 = { + sizeof(struct FullPositionVector), + offsetof(struct FullPositionVector, _asn_ctx), + asn_MAP_FullPositionVector_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_FullPositionVector_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FullPositionVector = { + "FullPositionVector", + "FullPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_FullPositionVector_tags_1, + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + asn_DEF_FullPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FullPositionVector_1, + 10, /* Elements count */ + &asn_SPC_FullPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/GNSSstatus.c b/vcits/spatem/src/GNSSstatus.c new file mode 100644 index 0000000..1b2a6dd --- /dev/null +++ b/vcits/spatem/src/GNSSstatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "GNSSstatus.h" + +int +GNSSstatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GNSSstatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNSSstatus = { + "GNSSstatus", + "GNSSstatus", + &asn_OP_BIT_STRING, + asn_DEF_GNSSstatus_tags_1, + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + asn_DEF_GNSSstatus_tags_1, /* Same as above */ + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + { &asn_OER_type_GNSSstatus_constr_1, &asn_PER_type_GNSSstatus_constr_1, GNSSstatus_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/GenericLane.c b/vcits/spatem/src/GenericLane.c new file mode 100644 index 0000000..a1a8871 --- /dev/null +++ b/vcits/spatem/src/GenericLane.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "GenericLane.h" + +#include "ConnectsToList.h" +#include "OverlayLaneList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct GenericLane__regional), + offsetof(struct GenericLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { &asn_OER_type_regional_constr_11, &asn_PER_type_regional_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GenericLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, ingressApproach), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ingressApproach" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, egressApproach), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "egressApproach" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneAttributes), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneAttributes" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, maneuvers), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuvers" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, nodeList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeListXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeList" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, connectsTo), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectsToList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectsTo" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, overlays), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OverlayLaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "overlays" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { &asn_OER_memb_regional_constr_11, &asn_PER_memb_regional_constr_11, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_GenericLane_oms_1[] = { 1, 2, 3, 5, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_GenericLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GenericLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ingressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* egressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAttributes */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maneuvers */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* nodeList */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* connectsTo */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* overlays */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1 = { + sizeof(struct GenericLane), + offsetof(struct GenericLane, _asn_ctx), + asn_MAP_GenericLane_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_GenericLane_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GenericLane = { + "GenericLane", + "GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_GenericLane_tags_1, + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + asn_DEF_GenericLane_tags_1, /* Same as above */ + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GenericLane_1, + 10, /* Elements count */ + &asn_SPC_GenericLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/GeoGraphicalLimit.c b/vcits/spatem/src/GeoGraphicalLimit.c new file mode 100644 index 0000000..75b68d3 --- /dev/null +++ b/vcits/spatem/src/GeoGraphicalLimit.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "GeoGraphicalLimit.h" + +int +GeoGraphicalLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GeoGraphicalLimit_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_GeoGraphicalLimit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GeoGraphicalLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GeoGraphicalLimit = { + "GeoGraphicalLimit", + "GeoGraphicalLimit", + &asn_OP_BIT_STRING, + asn_DEF_GeoGraphicalLimit_tags_1, + sizeof(asn_DEF_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_GeoGraphicalLimit_tags_1[0]), /* 1 */ + asn_DEF_GeoGraphicalLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_GeoGraphicalLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_GeoGraphicalLimit_constr_1, &asn_PER_type_GeoGraphicalLimit_constr_1, GeoGraphicalLimit_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/HardShoulderStatus.c b/vcits/spatem/src/HardShoulderStatus.c new file mode 100644 index 0000000..7355b1e --- /dev/null +++ b/vcits/spatem/src/HardShoulderStatus.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "HardShoulderStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HardShoulderStatus_value2enum_1[] = { + { 0, 20, "availableForStopping" }, + { 1, 6, "closed" }, + { 2, 19, "availableForDriving" } +}; +static const unsigned int asn_MAP_HardShoulderStatus_enum2value_1[] = { + 2, /* availableForDriving(2) */ + 0, /* availableForStopping(0) */ + 1 /* closed(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1 = { + asn_MAP_HardShoulderStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HardShoulderStatus_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HardShoulderStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus = { + "HardShoulderStatus", + "HardShoulderStatus", + &asn_OP_NativeEnumerated, + asn_DEF_HardShoulderStatus_tags_1, + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + asn_DEF_HardShoulderStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_HardShoulderStatus_constr_1, &asn_PER_type_HardShoulderStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HardShoulderStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c b/vcits/spatem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..a0efa94 --- /dev/null +++ b/vcits/spatem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "HazardousLocation-AnimalOnTheRoadSubCauseCode.h" + +int +HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode = { + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/HazardousLocation-DangerousCurveSubCauseCode.c b/vcits/spatem/src/HazardousLocation-DangerousCurveSubCauseCode.c new file mode 100644 index 0000000..49fb4e2 --- /dev/null +++ b/vcits/spatem/src/HazardousLocation-DangerousCurveSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "HazardousLocation-DangerousCurveSubCauseCode.h" + +int +HazardousLocation_DangerousCurveSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode = { + "HazardousLocation-DangerousCurveSubCauseCode", + "HazardousLocation-DangerousCurveSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, HazardousLocation_DangerousCurveSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c b/vcits/spatem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..7792eea --- /dev/null +++ b/vcits/spatem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" + +int +HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode = { + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/HazardousLocation-SurfaceConditionSubCauseCode.c b/vcits/spatem/src/HazardousLocation-SurfaceConditionSubCauseCode.c new file mode 100644 index 0000000..744f541 --- /dev/null +++ b/vcits/spatem/src/HazardousLocation-SurfaceConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "HazardousLocation-SurfaceConditionSubCauseCode.h" + +int +HazardousLocation_SurfaceConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode = { + "HazardousLocation-SurfaceConditionSubCauseCode", + "HazardousLocation-SurfaceConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, HazardousLocation_SurfaceConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Heading.c b/vcits/spatem/src/Heading.c new file mode 100644 index 0000000..989f50c --- /dev/null +++ b/vcits/spatem/src/Heading.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Heading.h" + +static asn_TYPE_member_t asn_MBR_Heading_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Heading_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* headingValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* headingConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Heading_specs_1 = { + sizeof(struct Heading), + offsetof(struct Heading, _asn_ctx), + asn_MAP_Heading_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Heading = { + "Heading", + "Heading", + &asn_OP_SEQUENCE, + asn_DEF_Heading_tags_1, + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + asn_DEF_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Heading_1, + 2, /* Elements count */ + &asn_SPC_Heading_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/HeadingConfidence.c b/vcits/spatem/src/HeadingConfidence.c new file mode 100644 index 0000000..3db36f7 --- /dev/null +++ b/vcits/spatem/src/HeadingConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "HeadingConfidence.h" + +int +HeadingConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeInteger, + asn_DEF_HeadingConfidence_tags_1, + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidence_constr_1, &asn_PER_type_HeadingConfidence_constr_1, HeadingConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/HeadingConfidenceDSRC.c b/vcits/spatem/src/HeadingConfidenceDSRC.c new file mode 100644 index 0000000..6ee7d10 --- /dev/null +++ b/vcits/spatem/src/HeadingConfidenceDSRC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "HeadingConfidenceDSRC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidenceDSRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidenceDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HeadingConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec10deg" }, + { 2, 9, "prec05deg" }, + { 3, 9, "prec01deg" }, + { 4, 10, "prec0-1deg" }, + { 5, 11, "prec0-05deg" }, + { 6, 11, "prec0-01deg" }, + { 7, 13, "prec0-0125deg" } +}; +static const unsigned int asn_MAP_HeadingConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-0125deg(7) */ + 6, /* prec0-01deg(6) */ + 5, /* prec0-05deg(5) */ + 4, /* prec0-1deg(4) */ + 3, /* prec01deg(3) */ + 2, /* prec05deg(2) */ + 1, /* prec10deg(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HeadingConfidenceDSRC_specs_1 = { + asn_MAP_HeadingConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HeadingConfidenceDSRC_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidenceDSRC = { + "HeadingConfidenceDSRC", + "HeadingConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_HeadingConfidenceDSRC_tags_1, + sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidenceDSRC_constr_1, &asn_PER_type_HeadingConfidenceDSRC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HeadingConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/HeadingDSRC.c b/vcits/spatem/src/HeadingDSRC.c new file mode 100644 index 0000000..1f685d2 --- /dev/null +++ b/vcits/spatem/src/HeadingDSRC.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "HeadingDSRC.h" + +int +HeadingDSRC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 28800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingDSRC_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingDSRC = { + "HeadingDSRC", + "HeadingDSRC", + &asn_OP_NativeInteger, + asn_DEF_HeadingDSRC_tags_1, + sizeof(asn_DEF_HeadingDSRC_tags_1) + /sizeof(asn_DEF_HeadingDSRC_tags_1[0]), /* 1 */ + asn_DEF_HeadingDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingDSRC_tags_1) + /sizeof(asn_DEF_HeadingDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingDSRC_constr_1, &asn_PER_type_HeadingDSRC_constr_1, HeadingDSRC_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/HeadingValue.c b/vcits/spatem/src/HeadingValue.c new file mode 100644 index 0000000..676caeb --- /dev/null +++ b/vcits/spatem/src/HeadingValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "HeadingValue.h" + +int +HeadingValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3601)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3601) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingValue = { + "HeadingValue", + "HeadingValue", + &asn_OP_NativeInteger, + asn_DEF_HeadingValue_tags_1, + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + asn_DEF_HeadingValue_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingValue_constr_1, &asn_PER_type_HeadingValue_constr_1, HeadingValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/HeightLonCarr.c b/vcits/spatem/src/HeightLonCarr.c new file mode 100644 index 0000000..9149b54 --- /dev/null +++ b/vcits/spatem/src/HeightLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "HeightLonCarr.h" + +int +HeightLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..100) */, + -1}; +static asn_per_constraints_t asn_PER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 100 } /* (1..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeightLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeightLonCarr = { + "HeightLonCarr", + "HeightLonCarr", + &asn_OP_NativeInteger, + asn_DEF_HeightLonCarr_tags_1, + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + asn_DEF_HeightLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_HeightLonCarr_constr_1, &asn_PER_type_HeightLonCarr_constr_1, HeightLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/HumanPresenceOnTheRoadSubCauseCode.c b/vcits/spatem/src/HumanPresenceOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..dac3c78 --- /dev/null +++ b/vcits/spatem/src/HumanPresenceOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "HumanPresenceOnTheRoadSubCauseCode.h" + +int +HumanPresenceOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode = { + "HumanPresenceOnTheRoadSubCauseCode", + "HumanPresenceOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, HumanPresenceOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/HumanProblemSubCauseCode.c b/vcits/spatem/src/HumanProblemSubCauseCode.c new file mode 100644 index 0000000..a8910c3 --- /dev/null +++ b/vcits/spatem/src/HumanProblemSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "HumanProblemSubCauseCode.h" + +int +HumanProblemSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanProblemSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode = { + "HumanProblemSubCauseCode", + "HumanProblemSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanProblemSubCauseCode_tags_1, + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanProblemSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanProblemSubCauseCode_constr_1, &asn_PER_type_HumanProblemSubCauseCode_constr_1, HumanProblemSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/InformationQuality.c b/vcits/spatem/src/InformationQuality.c new file mode 100644 index 0000000..ecd8e81 --- /dev/null +++ b/vcits/spatem/src/InformationQuality.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "InformationQuality.h" + +int +InformationQuality_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_InformationQuality_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_InformationQuality_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_InformationQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InformationQuality = { + "InformationQuality", + "InformationQuality", + &asn_OP_NativeInteger, + asn_DEF_InformationQuality_tags_1, + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + asn_DEF_InformationQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + { &asn_OER_type_InformationQuality_constr_1, &asn_PER_type_InformationQuality_constr_1, InformationQuality_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/IntersectionAccessPoint.c b/vcits/spatem/src/IntersectionAccessPoint.c new file mode 100644 index 0000000..31a58e7 --- /dev/null +++ b/vcits/spatem/src/IntersectionAccessPoint.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "IntersectionAccessPoint.h" + +static asn_oer_constraints_t asn_OER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.approach), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "approach" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.connection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionAccessPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* approach */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* connection */ +}; +asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1 = { + sizeof(struct IntersectionAccessPoint), + offsetof(struct IntersectionAccessPoint, _asn_ctx), + offsetof(struct IntersectionAccessPoint, present), + sizeof(((struct IntersectionAccessPoint *)0)->present), + asn_MAP_IntersectionAccessPoint_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint = { + "IntersectionAccessPoint", + "IntersectionAccessPoint", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_IntersectionAccessPoint_constr_1, &asn_PER_type_IntersectionAccessPoint_constr_1, CHOICE_constraint }, + asn_MBR_IntersectionAccessPoint_1, + 3, /* Elements count */ + &asn_SPC_IntersectionAccessPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/IntersectionGeometry.c b/vcits/spatem/src/IntersectionGeometry.c new file mode 100644 index 0000000..94f9988 --- /dev/null +++ b/vcits/spatem/src/IntersectionGeometry.c @@ -0,0 +1,214 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "IntersectionGeometry.h" + +#include "SpeedLimitList.h" +#include "PreemptPriorityList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionGeometry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct IntersectionGeometry__regional), + offsetof(struct IntersectionGeometry__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, laneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneSet" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, preemptPriorityData), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PreemptPriorityList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "preemptPriorityData" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionGeometry_oms_1[] = { 0, 4, 5, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionGeometry_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* laneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* preemptPriorityData */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1 = { + sizeof(struct IntersectionGeometry), + offsetof(struct IntersectionGeometry, _asn_ctx), + asn_MAP_IntersectionGeometry_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_IntersectionGeometry_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry = { + "IntersectionGeometry", + "IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionGeometry_tags_1, + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometry_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionGeometry_1, + 9, /* Elements count */ + &asn_SPC_IntersectionGeometry_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/IntersectionGeometryList.c b/vcits/spatem/src/IntersectionGeometryList.c new file mode 100644 index 0000000..ba3035a --- /dev/null +++ b/vcits/spatem/src/IntersectionGeometryList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "IntersectionGeometryList.h" + +#include "IntersectionGeometry.h" +static asn_oer_constraints_t asn_OER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionGeometry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometryList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1 = { + sizeof(struct IntersectionGeometryList), + offsetof(struct IntersectionGeometryList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList = { + "IntersectionGeometryList", + "IntersectionGeometryList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionGeometryList_tags_1, + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometryList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionGeometryList_constr_1, &asn_PER_type_IntersectionGeometryList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntersectionGeometryList_1, + 1, /* Single element */ + &asn_SPC_IntersectionGeometryList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/IntersectionID.c b/vcits/spatem/src/IntersectionID.c new file mode 100644 index 0000000..1ca75f3 --- /dev/null +++ b/vcits/spatem/src/IntersectionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "IntersectionID.h" + +int +IntersectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntersectionID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_IntersectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IntersectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionID = { + "IntersectionID", + "IntersectionID", + &asn_OP_NativeInteger, + asn_DEF_IntersectionID_tags_1, + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionID_constr_1, &asn_PER_type_IntersectionID_constr_1, IntersectionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/IntersectionReferenceID.c b/vcits/spatem/src/IntersectionReferenceID.c new file mode 100644 index 0000000..3986374 --- /dev/null +++ b/vcits/spatem/src/IntersectionReferenceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "IntersectionReferenceID.h" + +asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_IntersectionReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1 = { + sizeof(struct IntersectionReferenceID), + offsetof(struct IntersectionReferenceID, _asn_ctx), + asn_MAP_IntersectionReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_IntersectionReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID = { + "IntersectionReferenceID", + "IntersectionReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionReferenceID_tags_1, + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionReferenceID_1, + 2, /* Elements count */ + &asn_SPC_IntersectionReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/IntersectionState-addGrpC.c b/vcits/spatem/src/IntersectionState-addGrpC.c new file mode 100644 index 0000000..b40c6d8 --- /dev/null +++ b/vcits/spatem/src/IntersectionState-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "IntersectionState-addGrpC.h" + +#include "PrioritizationResponseList.h" +asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState_addGrpC, activePrioritizations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "activePrioritizations" + }, +}; +static const int asn_MAP_IntersectionState_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* activePrioritizations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1 = { + sizeof(struct IntersectionState_addGrpC), + offsetof(struct IntersectionState_addGrpC, _asn_ctx), + asn_MAP_IntersectionState_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_IntersectionState_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC = { + "IntersectionState-addGrpC", + "IntersectionState-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_addGrpC_tags_1, + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionState_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_IntersectionState_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/IntersectionState.c b/vcits/spatem/src/IntersectionState.c new file mode 100644 index 0000000..2229ae9 --- /dev/null +++ b/vcits/spatem/src/IntersectionState.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "IntersectionState.h" + +#include "EnabledLaneList.h" +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct IntersectionState__regional), + offsetof(struct IntersectionState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { &asn_OER_type_regional_constr_11, &asn_PER_type_regional_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionState_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStatusObject, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 3, offsetof(struct IntersectionState, moy), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "moy" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, enabledLanes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EnabledLaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabledLanes" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, states), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "states" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { &asn_OER_memb_regional_constr_11, &asn_PER_memb_regional_constr_11, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionState_oms_1[] = { 0, 4, 5, 6, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* moy */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* enabledLanes */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* states */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1 = { + sizeof(struct IntersectionState), + offsetof(struct IntersectionState, _asn_ctx), + asn_MAP_IntersectionState_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_IntersectionState_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState = { + "IntersectionState", + "IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_tags_1, + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionState_1, + 10, /* Elements count */ + &asn_SPC_IntersectionState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/IntersectionStateList.c b/vcits/spatem/src/IntersectionStateList.c new file mode 100644 index 0000000..029669e --- /dev/null +++ b/vcits/spatem/src/IntersectionStateList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "IntersectionStateList.h" + +#include "IntersectionState.h" +static asn_oer_constraints_t asn_OER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1 = { + sizeof(struct IntersectionStateList), + offsetof(struct IntersectionStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStateList = { + "IntersectionStateList", + "IntersectionStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionStateList_tags_1, + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionStateList_constr_1, &asn_PER_type_IntersectionStateList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntersectionStateList_1, + 1, /* Single element */ + &asn_SPC_IntersectionStateList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/IntersectionStatusObject.c b/vcits/spatem/src/IntersectionStatusObject.c new file mode 100644 index 0000000..e8f835f --- /dev/null +++ b/vcits/spatem/src/IntersectionStatusObject.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "IntersectionStatusObject.h" + +int +IntersectionStatusObject_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStatusObject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject = { + "IntersectionStatusObject", + "IntersectionStatusObject", + &asn_OP_BIT_STRING, + asn_DEF_IntersectionStatusObject_tags_1, + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStatusObject_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionStatusObject_constr_1, &asn_PER_type_IntersectionStatusObject_constr_1, IntersectionStatusObject_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Iso3833VehicleType.c b/vcits/spatem/src/Iso3833VehicleType.c new file mode 100644 index 0000000..9a942f9 --- /dev/null +++ b/vcits/spatem/src/Iso3833VehicleType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Iso3833VehicleType.h" + +int +Iso3833VehicleType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Iso3833VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType = { + "Iso3833VehicleType", + "Iso3833VehicleType", + &asn_OP_NativeInteger, + asn_DEF_Iso3833VehicleType_tags_1, + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + asn_DEF_Iso3833VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + { &asn_OER_type_Iso3833VehicleType_constr_1, &asn_PER_type_Iso3833VehicleType_constr_1, Iso3833VehicleType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/IssuerIdentifier.c b/vcits/spatem/src/IssuerIdentifier.c new file mode 100644 index 0000000..aff5f27 --- /dev/null +++ b/vcits/spatem/src/IssuerIdentifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "IssuerIdentifier.h" + +int +IssuerIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IssuerIdentifier_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_IssuerIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IssuerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IssuerIdentifier = { + "IssuerIdentifier", + "IssuerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_IssuerIdentifier_tags_1, + sizeof(asn_DEF_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_IssuerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_IssuerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_IssuerIdentifier_tags_1[0]), /* 1 */ + { &asn_OER_type_IssuerIdentifier_constr_1, &asn_PER_type_IssuerIdentifier_constr_1, IssuerIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/ItineraryPath.c b/vcits/spatem/src/ItineraryPath.c new file mode 100644 index 0000000..1a30a65 --- /dev/null +++ b/vcits/spatem/src/ItineraryPath.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ItineraryPath.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..40)) */}; +static asn_per_constraints_t asn_PER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 40 } /* (SIZE(1..40)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ItineraryPath_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItineraryPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ItineraryPath_specs_1 = { + sizeof(struct ItineraryPath), + offsetof(struct ItineraryPath, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItineraryPath = { + "ItineraryPath", + "ItineraryPath", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItineraryPath_tags_1, + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + asn_DEF_ItineraryPath_tags_1, /* Same as above */ + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + { &asn_OER_type_ItineraryPath_constr_1, &asn_PER_type_ItineraryPath_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItineraryPath_1, + 1, /* Single element */ + &asn_SPC_ItineraryPath_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ItsPduHeader.c b/vcits/spatem/src/ItsPduHeader.c new file mode 100644 index 0000000..956adb0 --- /dev/null +++ b/vcits/spatem/src/ItsPduHeader.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ItsPduHeader.h" + +static int +memb_protocolVersion_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_messageID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_messageID_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_messageID_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsPduHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, protocolVersion), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_protocolVersion_constr_2, &asn_PER_memb_protocolVersion_constr_2, memb_protocolVersion_constraint_1 }, + 0, 0, /* No default value */ + "protocolVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, messageID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_messageID_constr_3, &asn_PER_memb_messageID_constr_3, memb_messageID_constraint_1 }, + 0, 0, /* No default value */ + "messageID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, stationID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsPduHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsPduHeader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolVersion */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* messageID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* stationID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1 = { + sizeof(struct ItsPduHeader), + offsetof(struct ItsPduHeader, _asn_ctx), + asn_MAP_ItsPduHeader_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsPduHeader = { + "ItsPduHeader", + "ItsPduHeader", + &asn_OP_SEQUENCE, + asn_DEF_ItsPduHeader_tags_1, + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + asn_DEF_ItsPduHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsPduHeader_1, + 3, /* Elements count */ + &asn_SPC_ItsPduHeader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ItsStationPosition.c b/vcits/spatem/src/ItsStationPosition.c new file mode 100644 index 0000000..fa4d93d --- /dev/null +++ b/vcits/spatem/src/ItsStationPosition.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ItsStationPosition.h" + +#include "NodeOffsetPointXY.h" +asn_TYPE_member_t asn_MBR_ItsStationPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsStationPosition, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_POINTER, 3, offsetof(struct ItsStationPosition, laneID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 2, offsetof(struct ItsStationPosition, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_POINTER, 1, offsetof(struct ItsStationPosition, timeReference), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeReference, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeReference" + }, +}; +static const int asn_MAP_ItsStationPosition_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ItsStationPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsStationPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* timeReference */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsStationPosition_specs_1 = { + sizeof(struct ItsStationPosition), + offsetof(struct ItsStationPosition, _asn_ctx), + asn_MAP_ItsStationPosition_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ItsStationPosition_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsStationPosition = { + "ItsStationPosition", + "ItsStationPosition", + &asn_OP_SEQUENCE, + asn_DEF_ItsStationPosition_tags_1, + sizeof(asn_DEF_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ItsStationPosition_tags_1[0]), /* 1 */ + asn_DEF_ItsStationPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ItsStationPosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsStationPosition_1, + 4, /* Elements count */ + &asn_SPC_ItsStationPosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ItsStationPositionList.c b/vcits/spatem/src/ItsStationPositionList.c new file mode 100644 index 0000000..ba4c487 --- /dev/null +++ b/vcits/spatem/src/ItsStationPositionList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ItsStationPositionList.h" + +#include "ItsStationPosition.h" +static asn_oer_constraints_t asn_OER_type_ItsStationPositionList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_ItsStationPositionList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsStationPositionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ItsStationPosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsStationPositionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ItsStationPositionList_specs_1 = { + sizeof(struct ItsStationPositionList), + offsetof(struct ItsStationPositionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsStationPositionList = { + "ItsStationPositionList", + "ItsStationPositionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItsStationPositionList_tags_1, + sizeof(asn_DEF_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ItsStationPositionList_tags_1[0]), /* 1 */ + asn_DEF_ItsStationPositionList_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ItsStationPositionList_tags_1[0]), /* 1 */ + { &asn_OER_type_ItsStationPositionList_constr_1, &asn_PER_type_ItsStationPositionList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItsStationPositionList_1, + 1, /* Single element */ + &asn_SPC_ItsStationPositionList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneAttributes-Barrier.c b/vcits/spatem/src/LaneAttributes-Barrier.c new file mode 100644 index 0000000..a92cf54 --- /dev/null +++ b/vcits/spatem/src/LaneAttributes-Barrier.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneAttributes-Barrier.h" + +int +LaneAttributes_Barrier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Barrier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier = { + "LaneAttributes-Barrier", + "LaneAttributes-Barrier", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Barrier_tags_1, + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Barrier_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Barrier_constr_1, &asn_PER_type_LaneAttributes_Barrier_constr_1, LaneAttributes_Barrier_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneAttributes-Bike.c b/vcits/spatem/src/LaneAttributes-Bike.c new file mode 100644 index 0000000..8d281ef --- /dev/null +++ b/vcits/spatem/src/LaneAttributes-Bike.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneAttributes-Bike.h" + +int +LaneAttributes_Bike_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Bike_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike = { + "LaneAttributes-Bike", + "LaneAttributes-Bike", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Bike_tags_1, + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Bike_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Bike_constr_1, &asn_PER_type_LaneAttributes_Bike_constr_1, LaneAttributes_Bike_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneAttributes-Crosswalk.c b/vcits/spatem/src/LaneAttributes-Crosswalk.c new file mode 100644 index 0000000..ecbd219 --- /dev/null +++ b/vcits/spatem/src/LaneAttributes-Crosswalk.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneAttributes-Crosswalk.h" + +int +LaneAttributes_Crosswalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Crosswalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk = { + "LaneAttributes-Crosswalk", + "LaneAttributes-Crosswalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Crosswalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Crosswalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Crosswalk_constr_1, &asn_PER_type_LaneAttributes_Crosswalk_constr_1, LaneAttributes_Crosswalk_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneAttributes-Parking.c b/vcits/spatem/src/LaneAttributes-Parking.c new file mode 100644 index 0000000..894b273 --- /dev/null +++ b/vcits/spatem/src/LaneAttributes-Parking.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneAttributes-Parking.h" + +int +LaneAttributes_Parking_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Parking_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking = { + "LaneAttributes-Parking", + "LaneAttributes-Parking", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Parking_tags_1, + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Parking_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Parking_constr_1, &asn_PER_type_LaneAttributes_Parking_constr_1, LaneAttributes_Parking_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneAttributes-Sidewalk.c b/vcits/spatem/src/LaneAttributes-Sidewalk.c new file mode 100644 index 0000000..10df91e --- /dev/null +++ b/vcits/spatem/src/LaneAttributes-Sidewalk.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneAttributes-Sidewalk.h" + +int +LaneAttributes_Sidewalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Sidewalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk = { + "LaneAttributes-Sidewalk", + "LaneAttributes-Sidewalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Sidewalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Sidewalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Sidewalk_constr_1, &asn_PER_type_LaneAttributes_Sidewalk_constr_1, LaneAttributes_Sidewalk_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneAttributes-Striping.c b/vcits/spatem/src/LaneAttributes-Striping.c new file mode 100644 index 0000000..2863bcf --- /dev/null +++ b/vcits/spatem/src/LaneAttributes-Striping.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneAttributes-Striping.h" + +int +LaneAttributes_Striping_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Striping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping = { + "LaneAttributes-Striping", + "LaneAttributes-Striping", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Striping_tags_1, + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Striping_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Striping_constr_1, &asn_PER_type_LaneAttributes_Striping_constr_1, LaneAttributes_Striping_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneAttributes-TrackedVehicle.c b/vcits/spatem/src/LaneAttributes-TrackedVehicle.c new file mode 100644 index 0000000..07ba4a2 --- /dev/null +++ b/vcits/spatem/src/LaneAttributes-TrackedVehicle.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneAttributes-TrackedVehicle.h" + +int +LaneAttributes_TrackedVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_TrackedVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle = { + "LaneAttributes-TrackedVehicle", + "LaneAttributes-TrackedVehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_TrackedVehicle_constr_1, &asn_PER_type_LaneAttributes_TrackedVehicle_constr_1, LaneAttributes_TrackedVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneAttributes-Vehicle.c b/vcits/spatem/src/LaneAttributes-Vehicle.c new file mode 100644 index 0000000..e210322 --- /dev/null +++ b/vcits/spatem/src/LaneAttributes-Vehicle.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneAttributes-Vehicle.h" + +int +LaneAttributes_Vehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 8, 8 } /* (SIZE(8..8,...)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Vehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle = { + "LaneAttributes-Vehicle", + "LaneAttributes-Vehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Vehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Vehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Vehicle_constr_1, &asn_PER_type_LaneAttributes_Vehicle_constr_1, LaneAttributes_Vehicle_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneAttributes-addGrpC.c b/vcits/spatem/src/LaneAttributes-addGrpC.c new file mode 100644 index 0000000..42e6efb --- /dev/null +++ b/vcits/spatem/src/LaneAttributes-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneAttributes-addGrpC.h" + +asn_TYPE_member_t asn_MBR_LaneAttributes_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct LaneAttributes_addGrpC, maxVehicleHeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleHeight, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxVehicleHeight" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes_addGrpC, maxVehicleWeight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleMass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxVehicleWeight" + }, +}; +static const int asn_MAP_LaneAttributes_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxVehicleHeight */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maxVehicleWeight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_addGrpC_specs_1 = { + sizeof(struct LaneAttributes_addGrpC), + offsetof(struct LaneAttributes_addGrpC, _asn_ctx), + asn_MAP_LaneAttributes_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_LaneAttributes_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_addGrpC = { + "LaneAttributes-addGrpC", + "LaneAttributes-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_addGrpC_tags_1, + sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneAttributes_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_LaneAttributes_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneAttributes.c b/vcits/spatem/src/LaneAttributes.c new file mode 100644 index 0000000..b5fc426 --- /dev/null +++ b/vcits/spatem/src/LaneAttributes.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneAttributes.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_LaneAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, directionalUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDirection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "directionalUse" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, sharedWith), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneSharing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sharedWith" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, laneType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_LaneTypeAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneType" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_LaneAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_LaneAttributes_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* directionalUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sharedWith */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1 = { + sizeof(struct LaneAttributes), + offsetof(struct LaneAttributes, _asn_ctx), + asn_MAP_LaneAttributes_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_LaneAttributes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes = { + "LaneAttributes", + "LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_tags_1, + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneAttributes_1, + 4, /* Elements count */ + &asn_SPC_LaneAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneConnectionID.c b/vcits/spatem/src/LaneConnectionID.c new file mode 100644 index 0000000..f914b53 --- /dev/null +++ b/vcits/spatem/src/LaneConnectionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneConnectionID.h" + +int +LaneConnectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneConnectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneConnectionID = { + "LaneConnectionID", + "LaneConnectionID", + &asn_OP_NativeInteger, + asn_DEF_LaneConnectionID_tags_1, + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + asn_DEF_LaneConnectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneConnectionID_constr_1, &asn_PER_type_LaneConnectionID_constr_1, LaneConnectionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/LaneDataAttribute.c b/vcits/spatem/src/LaneDataAttribute.c new file mode 100644 index 0000000..057d3b3 --- /dev/null +++ b/vcits/spatem/src/LaneDataAttribute.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneDataAttribute.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_LaneDataAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct LaneDataAttribute__regional), + offsetof(struct LaneDataAttribute__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.pathEndPointAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathEndPointAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointCenter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointCenter" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointLeft), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointRight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneAngle), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MergeDivergeNodeAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneDataAttribute_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathEndPointAngle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneCrownPointCenter */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneCrownPointLeft */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneCrownPointRight */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAngle */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1 = { + sizeof(struct LaneDataAttribute), + offsetof(struct LaneDataAttribute, _asn_ctx), + offsetof(struct LaneDataAttribute, present), + sizeof(((struct LaneDataAttribute *)0)->present), + asn_MAP_LaneDataAttribute_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute = { + "LaneDataAttribute", + "LaneDataAttribute", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LaneDataAttribute_constr_1, &asn_PER_type_LaneDataAttribute_constr_1, CHOICE_constraint }, + asn_MBR_LaneDataAttribute_1, + 7, /* Elements count */ + &asn_SPC_LaneDataAttribute_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneDataAttributeList.c b/vcits/spatem/src/LaneDataAttributeList.c new file mode 100644 index 0000000..275bd3a --- /dev/null +++ b/vcits/spatem/src/LaneDataAttributeList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneDataAttributeList.h" + +#include "LaneDataAttribute.h" +static asn_oer_constraints_t asn_OER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_LaneDataAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneDataAttributeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1 = { + sizeof(struct LaneDataAttributeList), + offsetof(struct LaneDataAttributeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList = { + "LaneDataAttributeList", + "LaneDataAttributeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneDataAttributeList_tags_1, + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + asn_DEF_LaneDataAttributeList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDataAttributeList_constr_1, &asn_PER_type_LaneDataAttributeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneDataAttributeList_1, + 1, /* Single element */ + &asn_SPC_LaneDataAttributeList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneDirection.c b/vcits/spatem/src/LaneDirection.c new file mode 100644 index 0000000..9b88304 --- /dev/null +++ b/vcits/spatem/src/LaneDirection.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneDirection.h" + +int +LaneDirection_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +asn_per_constraints_t asn_PER_type_LaneDirection_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneDirection = { + "LaneDirection", + "LaneDirection", + &asn_OP_BIT_STRING, + asn_DEF_LaneDirection_tags_1, + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + asn_DEF_LaneDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDirection_constr_1, &asn_PER_type_LaneDirection_constr_1, LaneDirection_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneID.c b/vcits/spatem/src/LaneID.c new file mode 100644 index 0000000..09de132 --- /dev/null +++ b/vcits/spatem/src/LaneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneID.h" + +int +LaneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneID = { + "LaneID", + "LaneID", + &asn_OP_NativeInteger, + asn_DEF_LaneID_tags_1, + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + asn_DEF_LaneID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneID_constr_1, &asn_PER_type_LaneID_constr_1, LaneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/LaneList.c b/vcits/spatem/src/LaneList.c new file mode 100644 index 0000000..9244438 --- /dev/null +++ b/vcits/spatem/src/LaneList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneList.h" + +#include "GenericLane.h" +static asn_oer_constraints_t asn_OER_type_LaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_LaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1 = { + sizeof(struct LaneList), + offsetof(struct LaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneList = { + "LaneList", + "LaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneList_tags_1, + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + asn_DEF_LaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneList_constr_1, &asn_PER_type_LaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneList_1, + 1, /* Single element */ + &asn_SPC_LaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LanePosition.c b/vcits/spatem/src/LanePosition.c new file mode 100644 index 0000000..8f1728a --- /dev/null +++ b/vcits/spatem/src/LanePosition.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LanePosition.h" + +int +LanePosition_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1 && value <= 14)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LanePosition_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-1..14) */, + -1}; +static asn_per_constraints_t asn_PER_type_LanePosition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, -1, 14 } /* (-1..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LanePosition = { + "LanePosition", + "LanePosition", + &asn_OP_NativeInteger, + asn_DEF_LanePosition_tags_1, + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + asn_DEF_LanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + { &asn_OER_type_LanePosition_constr_1, &asn_PER_type_LanePosition_constr_1, LanePosition_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/LaneSharing.c b/vcits/spatem/src/LaneSharing.c new file mode 100644 index 0000000..e14225f --- /dev/null +++ b/vcits/spatem/src/LaneSharing.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneSharing.h" + +int +LaneSharing_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneSharing_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_LaneSharing_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneSharing_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneSharing = { + "LaneSharing", + "LaneSharing", + &asn_OP_BIT_STRING, + asn_DEF_LaneSharing_tags_1, + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + asn_DEF_LaneSharing_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneSharing_constr_1, &asn_PER_type_LaneSharing_constr_1, LaneSharing_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneTypeAttributes.c b/vcits/spatem/src/LaneTypeAttributes.c new file mode 100644 index 0000000..5c71e5a --- /dev/null +++ b/vcits/spatem/src/LaneTypeAttributes.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneTypeAttributes.h" + +static asn_oer_constraints_t asn_OER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.vehicle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Vehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.crosswalk), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Crosswalk, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crosswalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.bikeLane), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Bike, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bikeLane" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.sidewalk), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Sidewalk, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sidewalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.median), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Barrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "median" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.striping), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Striping, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "striping" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.trackedVehicle), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_TrackedVehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trackedVehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.parking), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Parking, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "parking" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneTypeAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* crosswalk */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bikeLane */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sidewalk */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* median */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* striping */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* trackedVehicle */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* parking */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1 = { + sizeof(struct LaneTypeAttributes), + offsetof(struct LaneTypeAttributes, _asn_ctx), + offsetof(struct LaneTypeAttributes, present), + sizeof(((struct LaneTypeAttributes *)0)->present), + asn_MAP_LaneTypeAttributes_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + 8 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes = { + "LaneTypeAttributes", + "LaneTypeAttributes", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LaneTypeAttributes_constr_1, &asn_PER_type_LaneTypeAttributes_constr_1, CHOICE_constraint }, + asn_MBR_LaneTypeAttributes_1, + 8, /* Elements count */ + &asn_SPC_LaneTypeAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LaneWidth.c b/vcits/spatem/src/LaneWidth.c new file mode 100644 index 0000000..772a7ec --- /dev/null +++ b/vcits/spatem/src/LaneWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LaneWidth.h" + +int +LaneWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneWidth_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneWidth = { + "LaneWidth", + "LaneWidth", + &asn_OP_NativeInteger, + asn_DEF_LaneWidth_tags_1, + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + asn_DEF_LaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneWidth_constr_1, &asn_PER_type_LaneWidth_constr_1, LaneWidth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/LateralAcceleration.c b/vcits/spatem/src/LateralAcceleration.c new file mode 100644 index 0000000..034fd35 --- /dev/null +++ b/vcits/spatem/src/LateralAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LateralAcceleration.h" + +static asn_TYPE_member_t asn_MBR_LateralAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LateralAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LateralAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LateralAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateralAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lateralAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_LateralAcceleration_specs_1 = { + sizeof(struct LateralAcceleration), + offsetof(struct LateralAcceleration, _asn_ctx), + asn_MAP_LateralAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LateralAcceleration = { + "LateralAcceleration", + "LateralAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LateralAcceleration_tags_1, + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LateralAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LateralAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LateralAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LateralAccelerationValue.c b/vcits/spatem/src/LateralAccelerationValue.c new file mode 100644 index 0000000..7ed89ac --- /dev/null +++ b/vcits/spatem/src/LateralAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LateralAccelerationValue.h" + +int +LateralAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LateralAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue = { + "LateralAccelerationValue", + "LateralAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LateralAccelerationValue_tags_1, + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LateralAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LateralAccelerationValue_constr_1, &asn_PER_type_LateralAccelerationValue_constr_1, LateralAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Latitude.c b/vcits/spatem/src/Latitude.c new file mode 100644 index 0000000..629a8c5 --- /dev/null +++ b/vcits/spatem/src/Latitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Latitude.h" + +int +Latitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -900000000 && value <= 900000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Latitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-900000000..900000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Latitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 31, -1, -900000000, 900000001 } /* (-900000000..900000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_Latitude_tags_1, + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + asn_DEF_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Latitude_constr_1, &asn_PER_type_Latitude_constr_1, Latitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/LayerID.c b/vcits/spatem/src/LayerID.c new file mode 100644 index 0000000..59d0b07 --- /dev/null +++ b/vcits/spatem/src/LayerID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LayerID.h" + +int +LayerID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LayerID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..100) */, + -1}; +asn_per_constraints_t asn_PER_type_LayerID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LayerID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerID = { + "LayerID", + "LayerID", + &asn_OP_NativeInteger, + asn_DEF_LayerID_tags_1, + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + asn_DEF_LayerID_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + { &asn_OER_type_LayerID_constr_1, &asn_PER_type_LayerID_constr_1, LayerID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/LayerType.c b/vcits/spatem/src/LayerType.c new file mode 100644 index 0000000..9ad8455 --- /dev/null +++ b/vcits/spatem/src/LayerType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LayerType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LayerType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LayerType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_LayerType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 12, "mixedContent" }, + { 2, 14, "generalMapData" }, + { 3, 16, "intersectionData" }, + { 4, 9, "curveData" }, + { 5, 18, "roadwaySectionData" }, + { 6, 15, "parkingAreaData" }, + { 7, 14, "sharedLaneData" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_LayerType_enum2value_1[] = { + 4, /* curveData(4) */ + 2, /* generalMapData(2) */ + 3, /* intersectionData(3) */ + 1, /* mixedContent(1) */ + 0, /* none(0) */ + 6, /* parkingAreaData(6) */ + 5, /* roadwaySectionData(5) */ + 7 /* sharedLaneData(7) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1 = { + asn_MAP_LayerType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_LayerType_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_LayerType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerType = { + "LayerType", + "LayerType", + &asn_OP_NativeEnumerated, + asn_DEF_LayerType_tags_1, + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + asn_DEF_LayerType_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + { &asn_OER_type_LayerType_constr_1, &asn_PER_type_LayerType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_LayerType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LicPlateNumber.c b/vcits/spatem/src/LicPlateNumber.c new file mode 100644 index 0000000..40ac958 --- /dev/null +++ b/vcits/spatem/src/LicPlateNumber.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LicPlateNumber.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_LicPlateNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LicPlateNumber = { + "LicPlateNumber", + "LicPlateNumber", + &asn_OP_OCTET_STRING, + asn_DEF_LicPlateNumber_tags_1, + sizeof(asn_DEF_LicPlateNumber_tags_1) + /sizeof(asn_DEF_LicPlateNumber_tags_1[0]), /* 1 */ + asn_DEF_LicPlateNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_LicPlateNumber_tags_1) + /sizeof(asn_DEF_LicPlateNumber_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LightBarSirenInUse.c b/vcits/spatem/src/LightBarSirenInUse.c new file mode 100644 index 0000000..83a537d --- /dev/null +++ b/vcits/spatem/src/LightBarSirenInUse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LightBarSirenInUse.h" + +int +LightBarSirenInUse_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LightBarSirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse = { + "LightBarSirenInUse", + "LightBarSirenInUse", + &asn_OP_BIT_STRING, + asn_DEF_LightBarSirenInUse_tags_1, + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + asn_DEF_LightBarSirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + { &asn_OER_type_LightBarSirenInUse_constr_1, &asn_PER_type_LightBarSirenInUse_constr_1, LightBarSirenInUse_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Longitude.c b/vcits/spatem/src/Longitude.c new file mode 100644 index 0000000..4940021 --- /dev/null +++ b/vcits/spatem/src/Longitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Longitude.h" + +int +Longitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1800000000 && value <= 1800000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Longitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-1800000000..1800000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Longitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, -1800000000, 1800000001 } /* (-1800000000..1800000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_Longitude_tags_1, + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + asn_DEF_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Longitude_constr_1, &asn_PER_type_Longitude_constr_1, Longitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/LongitudinalAcceleration.c b/vcits/spatem/src/LongitudinalAcceleration.c new file mode 100644 index 0000000..33a8af4 --- /dev/null +++ b/vcits/spatem/src/LongitudinalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LongitudinalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_LongitudinalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LongitudinalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longitudinalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_LongitudinalAcceleration_specs_1 = { + sizeof(struct LongitudinalAcceleration), + offsetof(struct LongitudinalAcceleration, _asn_ctx), + asn_MAP_LongitudinalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration = { + "LongitudinalAcceleration", + "LongitudinalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LongitudinalAcceleration_tags_1, + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LongitudinalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LongitudinalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/LongitudinalAccelerationValue.c b/vcits/spatem/src/LongitudinalAccelerationValue.c new file mode 100644 index 0000000..47b7810 --- /dev/null +++ b/vcits/spatem/src/LongitudinalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "LongitudinalAccelerationValue.h" + +int +LongitudinalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue = { + "LongitudinalAccelerationValue", + "LongitudinalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LongitudinalAccelerationValue_tags_1, + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LongitudinalAccelerationValue_constr_1, &asn_PER_type_LongitudinalAccelerationValue_constr_1, LongitudinalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/ManeuverAssistList.c b/vcits/spatem/src/ManeuverAssistList.c new file mode 100644 index 0000000..88c4343 --- /dev/null +++ b/vcits/spatem/src/ManeuverAssistList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ManeuverAssistList.h" + +#include "ConnectionManeuverAssist.h" +static asn_oer_constraints_t asn_OER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ManeuverAssistList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1 = { + sizeof(struct ManeuverAssistList), + offsetof(struct ManeuverAssistList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList = { + "ManeuverAssistList", + "ManeuverAssistList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ManeuverAssistList_tags_1, + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + asn_DEF_ManeuverAssistList_tags_1, /* Same as above */ + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + { &asn_OER_type_ManeuverAssistList_constr_1, &asn_PER_type_ManeuverAssistList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ManeuverAssistList_1, + 1, /* Single element */ + &asn_SPC_ManeuverAssistList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ManufacturerIdentifier.c b/vcits/spatem/src/ManufacturerIdentifier.c new file mode 100644 index 0000000..55d8899 --- /dev/null +++ b/vcits/spatem/src/ManufacturerIdentifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ManufacturerIdentifier.h" + +int +ManufacturerIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ManufacturerIdentifier_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_ManufacturerIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ManufacturerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ManufacturerIdentifier = { + "ManufacturerIdentifier", + "ManufacturerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_ManufacturerIdentifier_tags_1, + sizeof(asn_DEF_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_ManufacturerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_ManufacturerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_ManufacturerIdentifier_tags_1[0]), /* 1 */ + { &asn_OER_type_ManufacturerIdentifier_constr_1, &asn_PER_type_ManufacturerIdentifier_constr_1, ManufacturerIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/MapData-addGrpC.c b/vcits/spatem/src/MapData-addGrpC.c new file mode 100644 index 0000000..b3b81e6 --- /dev/null +++ b/vcits/spatem/src/MapData-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "MapData-addGrpC.h" + +#include "SignalHeadLocationList.h" +asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData_addGrpC, signalHeadLocations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalHeadLocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalHeadLocations" + }, +}; +static const int asn_MAP_MapData_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MapData_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* signalHeadLocations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1 = { + sizeof(struct MapData_addGrpC), + offsetof(struct MapData_addGrpC, _asn_ctx), + asn_MAP_MapData_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MapData_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC = { + "MapData-addGrpC", + "MapData-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MapData_addGrpC_tags_1, + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MapData_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapData_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MapData_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/MapData.c b/vcits/spatem/src/MapData.c new file mode 100644 index 0000000..b962e3c --- /dev/null +++ b/vcits/spatem/src/MapData.c @@ -0,0 +1,216 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "MapData.h" + +#include "IntersectionGeometryList.h" +#include "RoadSegmentList.h" +#include "DataParameters.h" +#include "RestrictionClassList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MapData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct MapData__regional), + offsetof(struct MapData__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_MapData_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct MapData, msgIssueRevision), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgIssueRevision" + }, + { ATF_POINTER, 7, offsetof(struct MapData, layerType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layerType" + }, + { ATF_POINTER, 6, offsetof(struct MapData, layerID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layerID" + }, + { ATF_POINTER, 5, offsetof(struct MapData, intersections), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionGeometryList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 4, offsetof(struct MapData, roadSegments), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadSegments" + }, + { ATF_POINTER, 3, offsetof(struct MapData, dataParameters), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DataParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dataParameters" + }, + { ATF_POINTER, 2, offsetof(struct MapData, restrictionList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "restrictionList" + }, + { ATF_POINTER, 1, offsetof(struct MapData, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MapData_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* msgIssueRevision */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* layerType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* layerID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* roadSegments */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dataParameters */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* restrictionList */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_MapData_specs_1 = { + sizeof(struct MapData), + offsetof(struct MapData, _asn_ctx), + asn_MAP_MapData_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_MapData_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData = { + "MapData", + "MapData", + &asn_OP_SEQUENCE, + asn_DEF_MapData_tags_1, + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + asn_DEF_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapData_1, + 9, /* Elements count */ + &asn_SPC_MapData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/MergeDivergeNodeAngle.c b/vcits/spatem/src/MergeDivergeNodeAngle.c new file mode 100644 index 0000000..cbb175b --- /dev/null +++ b/vcits/spatem/src/MergeDivergeNodeAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "MergeDivergeNodeAngle.h" + +int +MergeDivergeNodeAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -180 && value <= 180)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-180..180) */, + -1}; +asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -180, 180 } /* (-180..180) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MergeDivergeNodeAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle = { + "MergeDivergeNodeAngle", + "MergeDivergeNodeAngle", + &asn_OP_NativeInteger, + asn_DEF_MergeDivergeNodeAngle_tags_1, + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + asn_DEF_MergeDivergeNodeAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_MergeDivergeNodeAngle_constr_1, &asn_PER_type_MergeDivergeNodeAngle_constr_1, MergeDivergeNodeAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/MinuteOfTheYear.c b/vcits/spatem/src/MinuteOfTheYear.c new file mode 100644 index 0000000..d66c903 --- /dev/null +++ b/vcits/spatem/src/MinuteOfTheYear.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "MinuteOfTheYear.h" + +int +MinuteOfTheYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 527040)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..527040) */, + -1}; +asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 527040 } /* (0..527040) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MinuteOfTheYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear = { + "MinuteOfTheYear", + "MinuteOfTheYear", + &asn_OP_NativeInteger, + asn_DEF_MinuteOfTheYear_tags_1, + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + asn_DEF_MinuteOfTheYear_tags_1, /* Same as above */ + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + { &asn_OER_type_MinuteOfTheYear_constr_1, &asn_PER_type_MinuteOfTheYear_constr_1, MinuteOfTheYear_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/MovementEvent-addGrpC.c b/vcits/spatem/src/MovementEvent-addGrpC.c new file mode 100644 index 0000000..0908c07 --- /dev/null +++ b/vcits/spatem/src/MovementEvent-addGrpC.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "MovementEvent-addGrpC.h" + +asn_TYPE_member_t asn_MBR_MovementEvent_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementEvent_addGrpC, stateChangeReason), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExceptionalCondition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stateChangeReason" + }, +}; +static const int asn_MAP_MovementEvent_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* stateChangeReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpC_specs_1 = { + sizeof(struct MovementEvent_addGrpC), + offsetof(struct MovementEvent_addGrpC, _asn_ctx), + asn_MAP_MovementEvent_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MovementEvent_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpC = { + "MovementEvent-addGrpC", + "MovementEvent-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_addGrpC_tags_1, + sizeof(asn_DEF_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementEvent_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MovementEvent_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/MovementEvent.c b/vcits/spatem/src/MovementEvent.c new file mode 100644 index 0000000..4809bb6 --- /dev/null +++ b/vcits/spatem/src/MovementEvent.c @@ -0,0 +1,164 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "MovementEvent.h" + +#include "TimeChangeDetails.h" +#include "AdvisorySpeedList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct MovementEvent__regional), + offsetof(struct MovementEvent__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementEvent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MovementEvent, eventState), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementPhaseState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventState" + }, + { ATF_POINTER, 3, offsetof(struct MovementEvent, timing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeChangeDetails, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timing" + }, + { ATF_POINTER, 2, offsetof(struct MovementEvent, speeds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speeds" + }, + { ATF_POINTER, 1, offsetof(struct MovementEvent, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementEvent_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventState */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* speeds */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1 = { + sizeof(struct MovementEvent), + offsetof(struct MovementEvent, _asn_ctx), + asn_MAP_MovementEvent_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_MovementEvent_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent = { + "MovementEvent", + "MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_tags_1, + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementEvent_1, + 4, /* Elements count */ + &asn_SPC_MovementEvent_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/MovementEventList.c b/vcits/spatem/src/MovementEventList.c new file mode 100644 index 0000000..c76cc77 --- /dev/null +++ b/vcits/spatem/src/MovementEventList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "MovementEventList.h" + +#include "MovementEvent.h" +static asn_oer_constraints_t asn_OER_type_MovementEventList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_MovementEventList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MovementEventList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementEventList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1 = { + sizeof(struct MovementEventList), + offsetof(struct MovementEventList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEventList = { + "MovementEventList", + "MovementEventList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementEventList_tags_1, + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + asn_DEF_MovementEventList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementEventList_constr_1, &asn_PER_type_MovementEventList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MovementEventList_1, + 1, /* Single element */ + &asn_SPC_MovementEventList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/MovementList.c b/vcits/spatem/src/MovementList.c new file mode 100644 index 0000000..1476e06 --- /dev/null +++ b/vcits/spatem/src/MovementList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "MovementList.h" + +#include "MovementState.h" +static asn_oer_constraints_t asn_OER_type_MovementList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_MovementList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MovementList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1 = { + sizeof(struct MovementList), + offsetof(struct MovementList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementList = { + "MovementList", + "MovementList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementList_tags_1, + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + asn_DEF_MovementList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementList_constr_1, &asn_PER_type_MovementList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MovementList_1, + 1, /* Single element */ + &asn_SPC_MovementList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/MovementPhaseState.c b/vcits/spatem/src/MovementPhaseState.c new file mode 100644 index 0000000..561b4b3 --- /dev/null +++ b/vcits/spatem/src/MovementPhaseState.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "MovementPhaseState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_MovementPhaseState_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 4, "dark" }, + { 2, 17, "stop-Then-Proceed" }, + { 3, 15, "stop-And-Remain" }, + { 4, 12, "pre-Movement" }, + { 5, 27, "permissive-Movement-Allowed" }, + { 6, 26, "protected-Movement-Allowed" }, + { 7, 20, "permissive-clearance" }, + { 8, 19, "protected-clearance" }, + { 9, 27, "caution-Conflicting-Traffic" } +}; +static const unsigned int asn_MAP_MovementPhaseState_enum2value_1[] = { + 9, /* caution-Conflicting-Traffic(9) */ + 1, /* dark(1) */ + 5, /* permissive-Movement-Allowed(5) */ + 7, /* permissive-clearance(7) */ + 4, /* pre-Movement(4) */ + 6, /* protected-Movement-Allowed(6) */ + 8, /* protected-clearance(8) */ + 3, /* stop-And-Remain(3) */ + 2, /* stop-Then-Proceed(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1 = { + asn_MAP_MovementPhaseState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_MovementPhaseState_enum2value_1, /* N => "tag"; sorted by N */ + 10, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_MovementPhaseState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MovementPhaseState = { + "MovementPhaseState", + "MovementPhaseState", + &asn_OP_NativeEnumerated, + asn_DEF_MovementPhaseState_tags_1, + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + asn_DEF_MovementPhaseState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementPhaseState_constr_1, &asn_PER_type_MovementPhaseState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MovementPhaseState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/MovementState.c b/vcits/spatem/src/MovementState.c new file mode 100644 index 0000000..7e676e6 --- /dev/null +++ b/vcits/spatem/src/MovementState.c @@ -0,0 +1,173 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "MovementState.h" + +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct MovementState__regional), + offsetof(struct MovementState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementState_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementState, movementName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "movementName" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, state_time_speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementEventList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "state-time-speed" + }, + { ATF_POINTER, 2, offsetof(struct MovementState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct MovementState, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementState_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_MovementState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* movementName */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* state-time-speed */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1 = { + sizeof(struct MovementState), + offsetof(struct MovementState, _asn_ctx), + asn_MAP_MovementState_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_MovementState_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementState = { + "MovementState", + "MovementState", + &asn_OP_SEQUENCE, + asn_DEF_MovementState_tags_1, + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + asn_DEF_MovementState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementState_1, + 5, /* Elements count */ + &asn_SPC_MovementState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/MsgCount.c b/vcits/spatem/src/MsgCount.c new file mode 100644 index 0000000..3474419 --- /dev/null +++ b/vcits/spatem/src/MsgCount.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "MsgCount.h" + +int +MsgCount_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MsgCount_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_MsgCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MsgCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MsgCount = { + "MsgCount", + "MsgCount", + &asn_OP_NativeInteger, + asn_DEF_MsgCount_tags_1, + sizeof(asn_DEF_MsgCount_tags_1) + /sizeof(asn_DEF_MsgCount_tags_1[0]), /* 1 */ + asn_DEF_MsgCount_tags_1, /* Same as above */ + sizeof(asn_DEF_MsgCount_tags_1) + /sizeof(asn_DEF_MsgCount_tags_1[0]), /* 1 */ + { &asn_OER_type_MsgCount_constr_1, &asn_PER_type_MsgCount_constr_1, MsgCount_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Node-LLmD-64b.c b/vcits/spatem/src/Node-LLmD-64b.c new file mode 100644 index 0000000..92e113f --- /dev/null +++ b/vcits/spatem/src/Node-LLmD-64b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Node-LLmD-64b.h" + +asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LLmD_64b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LLmD_64b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1 = { + sizeof(struct Node_LLmD_64b), + offsetof(struct Node_LLmD_64b, _asn_ctx), + asn_MAP_Node_LLmD_64b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b = { + "Node-LLmD-64b", + "Node-LLmD-64b", + &asn_OP_SEQUENCE, + asn_DEF_Node_LLmD_64b_tags_1, + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + asn_DEF_Node_LLmD_64b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_LLmD_64b_1, + 2, /* Elements count */ + &asn_SPC_Node_LLmD_64b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Node-XY-20b.c b/vcits/spatem/src/Node-XY-20b.c new file mode 100644 index 0000000..5c1ac5f --- /dev/null +++ b/vcits/spatem/src/Node-XY-20b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Node-XY-20b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_20b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_20b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_20b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1 = { + sizeof(struct Node_XY_20b), + offsetof(struct Node_XY_20b, _asn_ctx), + asn_MAP_Node_XY_20b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_20b = { + "Node-XY-20b", + "Node-XY-20b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_20b_tags_1, + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_20b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_20b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_20b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Node-XY-22b.c b/vcits/spatem/src/Node-XY-22b.c new file mode 100644 index 0000000..9fe7f98 --- /dev/null +++ b/vcits/spatem/src/Node-XY-22b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Node-XY-22b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_22b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_22b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_22b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1 = { + sizeof(struct Node_XY_22b), + offsetof(struct Node_XY_22b, _asn_ctx), + asn_MAP_Node_XY_22b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_22b = { + "Node-XY-22b", + "Node-XY-22b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_22b_tags_1, + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_22b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_22b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_22b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Node-XY-24b.c b/vcits/spatem/src/Node-XY-24b.c new file mode 100644 index 0000000..6c0e357 --- /dev/null +++ b/vcits/spatem/src/Node-XY-24b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Node-XY-24b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_24b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_24b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_24b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1 = { + sizeof(struct Node_XY_24b), + offsetof(struct Node_XY_24b, _asn_ctx), + asn_MAP_Node_XY_24b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_24b = { + "Node-XY-24b", + "Node-XY-24b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_24b_tags_1, + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_24b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_24b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_24b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Node-XY-26b.c b/vcits/spatem/src/Node-XY-26b.c new file mode 100644 index 0000000..72e47b1 --- /dev/null +++ b/vcits/spatem/src/Node-XY-26b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Node-XY-26b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_26b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_26b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_26b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1 = { + sizeof(struct Node_XY_26b), + offsetof(struct Node_XY_26b, _asn_ctx), + asn_MAP_Node_XY_26b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_26b = { + "Node-XY-26b", + "Node-XY-26b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_26b_tags_1, + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_26b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_26b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_26b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Node-XY-28b.c b/vcits/spatem/src/Node-XY-28b.c new file mode 100644 index 0000000..80f46b6 --- /dev/null +++ b/vcits/spatem/src/Node-XY-28b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Node-XY-28b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_28b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_28b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_28b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1 = { + sizeof(struct Node_XY_28b), + offsetof(struct Node_XY_28b, _asn_ctx), + asn_MAP_Node_XY_28b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_28b = { + "Node-XY-28b", + "Node-XY-28b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_28b_tags_1, + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_28b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_28b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_28b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Node-XY-32b.c b/vcits/spatem/src/Node-XY-32b.c new file mode 100644 index 0000000..e485cc2 --- /dev/null +++ b/vcits/spatem/src/Node-XY-32b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Node-XY-32b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_32b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_32b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_32b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1 = { + sizeof(struct Node_XY_32b), + offsetof(struct Node_XY_32b, _asn_ctx), + asn_MAP_Node_XY_32b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_32b = { + "Node-XY-32b", + "Node-XY-32b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_32b_tags_1, + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_32b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_32b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_32b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Node.c b/vcits/spatem/src/Node.c new file mode 100644 index 0000000..14d3bf3 --- /dev/null +++ b/vcits/spatem/src/Node.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Node.h" + +asn_TYPE_member_t asn_MBR_Node_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 3, offsetof(struct Node, lane), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 2, offsetof(struct Node, connectionID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 1, offsetof(struct Node, intersectionID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersectionID" + }, +}; +static const int asn_MAP_Node_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Node_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* intersectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_specs_1 = { + sizeof(struct Node), + offsetof(struct Node, _asn_ctx), + asn_MAP_Node_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Node_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node = { + "Node", + "Node", + &asn_OP_SEQUENCE, + asn_DEF_Node_tags_1, + sizeof(asn_DEF_Node_tags_1) + /sizeof(asn_DEF_Node_tags_1[0]), /* 1 */ + asn_DEF_Node_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_tags_1) + /sizeof(asn_DEF_Node_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_1, + 4, /* Elements count */ + &asn_SPC_Node_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/NodeAttributeSet-addGrpC.c b/vcits/spatem/src/NodeAttributeSet-addGrpC.c new file mode 100644 index 0000000..f09924d --- /dev/null +++ b/vcits/spatem/src/NodeAttributeSet-addGrpC.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "NodeAttributeSet-addGrpC.h" + +#include "NodeLink.h" +#include "Node.h" +asn_TYPE_member_t asn_MBR_NodeAttributeSet_addGrpC_1[] = { + { ATF_POINTER, 3, offsetof(struct NodeAttributeSet_addGrpC, ptvRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtvRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptvRequest" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSet_addGrpC, nodeLink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeLink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeLink" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSet_addGrpC, node), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node" + }, +}; +static const int asn_MAP_NodeAttributeSet_addGrpC_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSet_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSet_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptvRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeLink */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* node */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSet_addGrpC_specs_1 = { + sizeof(struct NodeAttributeSet_addGrpC), + offsetof(struct NodeAttributeSet_addGrpC, _asn_ctx), + asn_MAP_NodeAttributeSet_addGrpC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_NodeAttributeSet_addGrpC_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSet_addGrpC = { + "NodeAttributeSet-addGrpC", + "NodeAttributeSet-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSet_addGrpC_tags_1, + sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSet_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeAttributeSet_addGrpC_1, + 3, /* Elements count */ + &asn_SPC_NodeAttributeSet_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/NodeAttributeSetXY.c b/vcits/spatem/src/NodeAttributeSetXY.c new file mode 100644 index 0000000..61df219 --- /dev/null +++ b/vcits/spatem/src/NodeAttributeSetXY.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "NodeAttributeSetXY.h" + +#include "NodeAttributeXYList.h" +#include "SegmentAttributeXYList.h" +#include "LaneDataAttributeList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_NodeAttributeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct NodeAttributeSetXY__regional), + offsetof(struct NodeAttributeSetXY__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[] = { + { ATF_POINTER, 7, offsetof(struct NodeAttributeSetXY, localNode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "localNode" + }, + { ATF_POINTER, 6, offsetof(struct NodeAttributeSetXY, disabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "disabled" + }, + { ATF_POINTER, 5, offsetof(struct NodeAttributeSetXY, enabled), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabled" + }, + { ATF_POINTER, 4, offsetof(struct NodeAttributeSetXY, data), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDataAttributeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "data" + }, + { ATF_POINTER, 3, offsetof(struct NodeAttributeSetXY, dWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dWidth" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSetXY, dElevation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dElevation" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSetXY, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_NodeAttributeSetXY_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSetXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* localNode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* disabled */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* enabled */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* data */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dElevation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1 = { + sizeof(struct NodeAttributeSetXY), + offsetof(struct NodeAttributeSetXY, _asn_ctx), + asn_MAP_NodeAttributeSetXY_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_NodeAttributeSetXY_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY = { + "NodeAttributeSetXY", + "NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSetXY_tags_1, + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeAttributeSetXY_1, + 7, /* Elements count */ + &asn_SPC_NodeAttributeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/NodeAttributeXY.c b/vcits/spatem/src/NodeAttributeXY.c new file mode 100644 index 0000000..b278f94 --- /dev/null +++ b/vcits/spatem/src/NodeAttributeXY.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "NodeAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 11 } /* (0..11,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_NodeAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 8, "stopLine" }, + { 2, 16, "roundedCapStyleA" }, + { 3, 16, "roundedCapStyleB" }, + { 4, 10, "mergePoint" }, + { 5, 12, "divergePoint" }, + { 6, 18, "downstreamStopLine" }, + { 7, 19, "downstreamStartNode" }, + { 8, 15, "closedToTraffic" }, + { 9, 10, "safeIsland" }, + { 10, 20, "curbPresentAtStepOff" }, + { 11, 14, "hydrantPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NodeAttributeXY_enum2value_1[] = { + 8, /* closedToTraffic(8) */ + 10, /* curbPresentAtStepOff(10) */ + 5, /* divergePoint(5) */ + 7, /* downstreamStartNode(7) */ + 6, /* downstreamStopLine(6) */ + 11, /* hydrantPresent(11) */ + 4, /* mergePoint(4) */ + 0, /* reserved(0) */ + 2, /* roundedCapStyleA(2) */ + 3, /* roundedCapStyleB(3) */ + 9, /* safeIsland(9) */ + 1 /* stopLine(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1 = { + asn_MAP_NodeAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NodeAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 12, /* Number of elements in the maps */ + 13, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY = { + "NodeAttributeXY", + "NodeAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_NodeAttributeXY_tags_1, + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeAttributeXY_constr_1, &asn_PER_type_NodeAttributeXY_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NodeAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/NodeAttributeXYList.c b/vcits/spatem/src/NodeAttributeXYList.c new file mode 100644 index 0000000..5315246 --- /dev/null +++ b/vcits/spatem/src/NodeAttributeXYList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "NodeAttributeXYList.h" + +static asn_oer_constraints_t asn_OER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_NodeAttributeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1 = { + sizeof(struct NodeAttributeXYList), + offsetof(struct NodeAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList = { + "NodeAttributeXYList", + "NodeAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeAttributeXYList_tags_1, + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeAttributeXYList_constr_1, &asn_PER_type_NodeAttributeXYList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_NodeAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/NodeLink.c b/vcits/spatem/src/NodeLink.c new file mode 100644 index 0000000..5800b91 --- /dev/null +++ b/vcits/spatem/src/NodeLink.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "NodeLink.h" + +#include "Node.h" +static asn_oer_constraints_t asn_OER_type_NodeLink_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_NodeLink_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeLink_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeLink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeLink_specs_1 = { + sizeof(struct NodeLink), + offsetof(struct NodeLink, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeLink = { + "NodeLink", + "NodeLink", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeLink_tags_1, + sizeof(asn_DEF_NodeLink_tags_1) + /sizeof(asn_DEF_NodeLink_tags_1[0]), /* 1 */ + asn_DEF_NodeLink_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeLink_tags_1) + /sizeof(asn_DEF_NodeLink_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeLink_constr_1, &asn_PER_type_NodeLink_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeLink_1, + 1, /* Single element */ + &asn_SPC_NodeLink_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/NodeListXY.c b/vcits/spatem/src/NodeListXY.c new file mode 100644 index 0000000..8f62c67 --- /dev/null +++ b/vcits/spatem/src/NodeListXY.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "NodeListXY.h" + +static asn_oer_constraints_t asn_OER_type_NodeListXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeListXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeListXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.computed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ComputedLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "computed" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeListXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* computed */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1 = { + sizeof(struct NodeListXY), + offsetof(struct NodeListXY, _asn_ctx), + offsetof(struct NodeListXY, present), + sizeof(((struct NodeListXY *)0)->present), + asn_MAP_NodeListXY_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeListXY = { + "NodeListXY", + "NodeListXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeListXY_constr_1, &asn_PER_type_NodeListXY_constr_1, CHOICE_constraint }, + asn_MBR_NodeListXY_1, + 2, /* Elements count */ + &asn_SPC_NodeListXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/NodeOffsetPointXY.c b/vcits/spatem/src/NodeOffsetPointXY.c new file mode 100644 index 0000000..2490ed8 --- /dev/null +++ b/vcits/spatem/src/NodeOffsetPointXY.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "NodeOffsetPointXY.h" + +static asn_oer_constraints_t asn_OER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_20b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY1" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_22b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY2" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_24b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY3" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_26b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY4" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_28b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY5" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_32b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY6" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_LatLon), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LLmD_64b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-LatLon" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeOffsetPointXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* node-XY1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* node-XY2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* node-XY3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* node-XY4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* node-XY5 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* node-XY6 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* node-LatLon */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1 = { + sizeof(struct NodeOffsetPointXY), + offsetof(struct NodeOffsetPointXY, _asn_ctx), + offsetof(struct NodeOffsetPointXY, present), + sizeof(((struct NodeOffsetPointXY *)0)->present), + asn_MAP_NodeOffsetPointXY_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY = { + "NodeOffsetPointXY", + "NodeOffsetPointXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeOffsetPointXY_constr_1, &asn_PER_type_NodeOffsetPointXY_constr_1, CHOICE_constraint }, + asn_MBR_NodeOffsetPointXY_1, + 8, /* Elements count */ + &asn_SPC_NodeOffsetPointXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/NodeSetXY.c b/vcits/spatem/src/NodeSetXY.c new file mode 100644 index 0000000..1a051da --- /dev/null +++ b/vcits/spatem/src/NodeSetXY.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "NodeSetXY.h" + +#include "NodeXY.h" +static asn_oer_constraints_t asn_OER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(2..63)) */}; +asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 2, 63 } /* (SIZE(2..63)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeSetXY_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1 = { + sizeof(struct NodeSetXY), + offsetof(struct NodeSetXY, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeSetXY = { + "NodeSetXY", + "NodeSetXY", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeSetXY_tags_1, + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeSetXY_constr_1, &asn_PER_type_NodeSetXY_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeSetXY_1, + 1, /* Single element */ + &asn_SPC_NodeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/NodeXY.c b/vcits/spatem/src/NodeXY.c new file mode 100644 index 0000000..796315f --- /dev/null +++ b/vcits/spatem/src/NodeXY.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "NodeXY.h" + +#include "NodeAttributeSetXY.h" +asn_TYPE_member_t asn_MBR_NodeXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeXY, delta), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delta" + }, + { ATF_POINTER, 1, offsetof(struct NodeXY, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_NodeXY_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_NodeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* delta */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1 = { + sizeof(struct NodeXY), + offsetof(struct NodeXY, _asn_ctx), + asn_MAP_NodeXY_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_NodeXY_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeXY = { + "NodeXY", + "NodeXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeXY_tags_1, + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeXY_1, + 2, /* Elements count */ + &asn_SPC_NodeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/NumberOfOccupants.c b/vcits/spatem/src/NumberOfOccupants.c new file mode 100644 index 0000000..628194c --- /dev/null +++ b/vcits/spatem/src/NumberOfOccupants.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "NumberOfOccupants.h" + +int +NumberOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_NumberOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants = { + "NumberOfOccupants", + "NumberOfOccupants", + &asn_OP_NativeInteger, + asn_DEF_NumberOfOccupants_tags_1, + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_NumberOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_NumberOfOccupants_constr_1, &asn_PER_type_NumberOfOccupants_constr_1, NumberOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Offset-B09.c b/vcits/spatem/src/Offset-B09.c new file mode 100644 index 0000000..f422666 --- /dev/null +++ b/vcits/spatem/src/Offset-B09.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Offset-B09.h" + +int +Offset_B09_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -256 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B09_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-256..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B09_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -256, 255 } /* (-256..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B09_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B09 = { + "Offset-B09", + "Offset-B09", + &asn_OP_NativeInteger, + asn_DEF_Offset_B09_tags_1, + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + asn_DEF_Offset_B09_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B09_constr_1, &asn_PER_type_Offset_B09_constr_1, Offset_B09_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Offset-B10.c b/vcits/spatem/src/Offset-B10.c new file mode 100644 index 0000000..5b1ecca --- /dev/null +++ b/vcits/spatem/src/Offset-B10.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Offset-B10.h" + +int +Offset_B10_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -512 && value <= 511)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B10_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-512..511) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B10_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -512, 511 } /* (-512..511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B10_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B10 = { + "Offset-B10", + "Offset-B10", + &asn_OP_NativeInteger, + asn_DEF_Offset_B10_tags_1, + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + asn_DEF_Offset_B10_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B10_constr_1, &asn_PER_type_Offset_B10_constr_1, Offset_B10_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Offset-B11.c b/vcits/spatem/src/Offset-B11.c new file mode 100644 index 0000000..8ce4a07 --- /dev/null +++ b/vcits/spatem/src/Offset-B11.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Offset-B11.h" + +int +Offset_B11_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1024 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B11_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1024..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B11_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B11_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B11 = { + "Offset-B11", + "Offset-B11", + &asn_OP_NativeInteger, + asn_DEF_Offset_B11_tags_1, + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + asn_DEF_Offset_B11_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B11_constr_1, &asn_PER_type_Offset_B11_constr_1, Offset_B11_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Offset-B12.c b/vcits/spatem/src/Offset-B12.c new file mode 100644 index 0000000..bd76207 --- /dev/null +++ b/vcits/spatem/src/Offset-B12.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Offset-B12.h" + +int +Offset_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B12 = { + "Offset-B12", + "Offset-B12", + &asn_OP_NativeInteger, + asn_DEF_Offset_B12_tags_1, + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + asn_DEF_Offset_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B12_constr_1, &asn_PER_type_Offset_B12_constr_1, Offset_B12_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Offset-B13.c b/vcits/spatem/src/Offset-B13.c new file mode 100644 index 0000000..597b5ba --- /dev/null +++ b/vcits/spatem/src/Offset-B13.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Offset-B13.h" + +int +Offset_B13_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B13_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-4096..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B13_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, -4096, 4095 } /* (-4096..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B13_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B13 = { + "Offset-B13", + "Offset-B13", + &asn_OP_NativeInteger, + asn_DEF_Offset_B13_tags_1, + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + asn_DEF_Offset_B13_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B13_constr_1, &asn_PER_type_Offset_B13_constr_1, Offset_B13_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Offset-B14.c b/vcits/spatem/src/Offset-B14.c new file mode 100644 index 0000000..c94a2a1 --- /dev/null +++ b/vcits/spatem/src/Offset-B14.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Offset-B14.h" + +int +Offset_B14_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -8192 && value <= 8191)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B14_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-8192..8191) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B14_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, -8192, 8191 } /* (-8192..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B14_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B14 = { + "Offset-B14", + "Offset-B14", + &asn_OP_NativeInteger, + asn_DEF_Offset_B14_tags_1, + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + asn_DEF_Offset_B14_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B14_constr_1, &asn_PER_type_Offset_B14_constr_1, Offset_B14_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Offset-B16.c b/vcits/spatem/src/Offset-B16.c new file mode 100644 index 0000000..4d2b7f6 --- /dev/null +++ b/vcits/spatem/src/Offset-B16.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Offset-B16.h" + +int +Offset_B16_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32768 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B16_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32768..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B16_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B16_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B16 = { + "Offset-B16", + "Offset-B16", + &asn_OP_NativeInteger, + asn_DEF_Offset_B16_tags_1, + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + asn_DEF_Offset_B16_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B16_constr_1, &asn_PER_type_Offset_B16_constr_1, Offset_B16_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/OpeningDaysHours.c b/vcits/spatem/src/OpeningDaysHours.c new file mode 100644 index 0000000..0872f7e --- /dev/null +++ b/vcits/spatem/src/OpeningDaysHours.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "OpeningDaysHours.h" + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_OpeningDaysHours_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours = { + "OpeningDaysHours", + "OpeningDaysHours", + &asn_OP_UTF8String, + asn_DEF_OpeningDaysHours_tags_1, + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + asn_DEF_OpeningDaysHours_tags_1, /* Same as above */ + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + { 0, 0, UTF8String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/OverlayLaneList.c b/vcits/spatem/src/OverlayLaneList.c new file mode 100644 index 0000000..2202d57 --- /dev/null +++ b/vcits/spatem/src/OverlayLaneList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "OverlayLaneList.h" + +static asn_oer_constraints_t asn_OER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_OverlayLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_OverlayLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1 = { + sizeof(struct OverlayLaneList), + offsetof(struct OverlayLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_OverlayLaneList = { + "OverlayLaneList", + "OverlayLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_OverlayLaneList_tags_1, + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + asn_DEF_OverlayLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_OverlayLaneList_constr_1, &asn_PER_type_OverlayLaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_OverlayLaneList_1, + 1, /* Single element */ + &asn_SPC_OverlayLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PathDeltaTime.c b/vcits/spatem/src/PathDeltaTime.c new file mode 100644 index 0000000..ac1ca61 --- /dev/null +++ b/vcits/spatem/src/PathDeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PathDeltaTime.h" + +int +PathDeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PathDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PathDeltaTime = { + "PathDeltaTime", + "PathDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_PathDeltaTime_tags_1, + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_PathDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_PathDeltaTime_constr_1, &asn_PER_type_PathDeltaTime_constr_1, PathDeltaTime_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/PathHistory.c b/vcits/spatem/src/PathHistory.c new file mode 100644 index 0000000..73ee78b --- /dev/null +++ b/vcits/spatem/src/PathHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PathHistory.h" + +#include "PathPoint.h" +static asn_oer_constraints_t asn_OER_type_PathHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..40)) */}; +asn_per_constraints_t asn_PER_type_PathHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 40 } /* (SIZE(0..40)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PathHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1 = { + sizeof(struct PathHistory), + offsetof(struct PathHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_PathHistory_tags_1, + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_PathHistory_constr_1, &asn_PER_type_PathHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PathHistory_1, + 1, /* Single element */ + &asn_SPC_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PathPoint.c b/vcits/spatem/src/PathPoint.c new file mode 100644 index 0000000..93d2d58 --- /dev/null +++ b/vcits/spatem/src/PathPoint.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PathPoint.h" + +asn_TYPE_member_t asn_MBR_PathPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PathPoint, pathPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathPosition" + }, + { ATF_POINTER, 1, offsetof(struct PathPoint, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathDeltaTime" + }, +}; +static const int asn_MAP_PathPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PathPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PathPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pathDeltaTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1 = { + sizeof(struct PathPoint), + offsetof(struct PathPoint, _asn_ctx), + asn_MAP_PathPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PathPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PathPoint = { + "PathPoint", + "PathPoint", + &asn_OP_SEQUENCE, + asn_DEF_PathPoint_tags_1, + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + asn_DEF_PathPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PathPoint_1, + 2, /* Elements count */ + &asn_SPC_PathPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PedestrianBicycleDetect.c b/vcits/spatem/src/PedestrianBicycleDetect.c new file mode 100644 index 0000000..5f66c95 --- /dev/null +++ b/vcits/spatem/src/PedestrianBicycleDetect.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PedestrianBicycleDetect.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_PedestrianBicycleDetect_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect = { + "PedestrianBicycleDetect", + "PedestrianBicycleDetect", + &asn_OP_BOOLEAN, + asn_DEF_PedestrianBicycleDetect_tags_1, + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + asn_DEF_PedestrianBicycleDetect_tags_1, /* Same as above */ + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/PerformanceClass.c b/vcits/spatem/src/PerformanceClass.c new file mode 100644 index 0000000..25c1726 --- /dev/null +++ b/vcits/spatem/src/PerformanceClass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PerformanceClass.h" + +int +PerformanceClass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PerformanceClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PerformanceClass = { + "PerformanceClass", + "PerformanceClass", + &asn_OP_NativeInteger, + asn_DEF_PerformanceClass_tags_1, + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + asn_DEF_PerformanceClass_tags_1, /* Same as above */ + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + { &asn_OER_type_PerformanceClass_constr_1, &asn_PER_type_PerformanceClass_constr_1, PerformanceClass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/PhoneNumber.c b/vcits/spatem/src/PhoneNumber.c new file mode 100644 index 0000000..ddf9f77 --- /dev/null +++ b/vcits/spatem/src/PhoneNumber.c @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PhoneNumber.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* . */ + 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */ +}; +static const int permitted_alphabet_code2value_1[11] = { +32,48,49,50,51,52,53,54,55,56,57,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is NumericString */ + const NumericString_t *st = (const NumericString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +PhoneNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const NumericString_t *st = (const NumericString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 16) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_PhoneNumber_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_PhoneNumber_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using NumericString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 32, 57 } /* (32..57) */, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + asn_PER_MAP_PhoneNumber_1_v2c, /* Value to PER code map */ + asn_PER_MAP_PhoneNumber_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_PhoneNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PhoneNumber = { + "PhoneNumber", + "PhoneNumber", + &asn_OP_NumericString, + asn_DEF_PhoneNumber_tags_1, + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + asn_DEF_PhoneNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_PhoneNumber_constr_1, &asn_PER_type_PhoneNumber_constr_1, PhoneNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/PosCentMass.c b/vcits/spatem/src/PosCentMass.c new file mode 100644 index 0000000..d1214cc --- /dev/null +++ b/vcits/spatem/src/PosCentMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PosCentMass.h" + +int +PosCentMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosCentMass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..63) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosCentMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosCentMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosCentMass = { + "PosCentMass", + "PosCentMass", + &asn_OP_NativeInteger, + asn_DEF_PosCentMass_tags_1, + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + asn_DEF_PosCentMass_tags_1, /* Same as above */ + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + { &asn_OER_type_PosCentMass_constr_1, &asn_PER_type_PosCentMass_constr_1, PosCentMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/PosConfidenceEllipse.c b/vcits/spatem/src/PosConfidenceEllipse.c new file mode 100644 index 0000000..4ca1c54 --- /dev/null +++ b/vcits/spatem/src/PosConfidenceEllipse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PosConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMinorConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorOrientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PosConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PosConfidenceEllipse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* semiMajorOrientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1 = { + sizeof(struct PosConfidenceEllipse), + offsetof(struct PosConfidenceEllipse, _asn_ctx), + asn_MAP_PosConfidenceEllipse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse = { + "PosConfidenceEllipse", + "PosConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_PosConfidenceEllipse_tags_1, + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_PosConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PosConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_PosConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PosFrontAx.c b/vcits/spatem/src/PosFrontAx.c new file mode 100644 index 0000000..afcafec --- /dev/null +++ b/vcits/spatem/src/PosFrontAx.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PosFrontAx.h" + +int +PosFrontAx_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..20) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (1..20) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosFrontAx_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosFrontAx = { + "PosFrontAx", + "PosFrontAx", + &asn_OP_NativeInteger, + asn_DEF_PosFrontAx_tags_1, + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + asn_DEF_PosFrontAx_tags_1, /* Same as above */ + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + { &asn_OER_type_PosFrontAx_constr_1, &asn_PER_type_PosFrontAx_constr_1, PosFrontAx_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/PosLonCarr.c b/vcits/spatem/src/PosLonCarr.c new file mode 100644 index 0000000..41681f5 --- /dev/null +++ b/vcits/spatem/src/PosLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PosLonCarr.h" + +int +PosLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosLonCarr = { + "PosLonCarr", + "PosLonCarr", + &asn_OP_NativeInteger, + asn_DEF_PosLonCarr_tags_1, + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + asn_DEF_PosLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_PosLonCarr_constr_1, &asn_PER_type_PosLonCarr_constr_1, PosLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/PosPillar.c b/vcits/spatem/src/PosPillar.c new file mode 100644 index 0000000..38686ad --- /dev/null +++ b/vcits/spatem/src/PosPillar.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PosPillar.h" + +int +PosPillar_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 30)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosPillar_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..30) */, + -1}; +asn_per_constraints_t asn_PER_type_PosPillar_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 30 } /* (1..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosPillar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosPillar = { + "PosPillar", + "PosPillar", + &asn_OP_NativeInteger, + asn_DEF_PosPillar_tags_1, + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + asn_DEF_PosPillar_tags_1, /* Same as above */ + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + { &asn_OER_type_PosPillar_constr_1, &asn_PER_type_PosPillar_constr_1, PosPillar_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Position3D-addGrpC.c b/vcits/spatem/src/Position3D-addGrpC.c new file mode 100644 index 0000000..658652f --- /dev/null +++ b/vcits/spatem/src/Position3D-addGrpC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Position3D-addGrpC.h" + +asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D_addGrpC, altitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_Position3D_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1 = { + sizeof(struct Position3D_addGrpC), + offsetof(struct Position3D_addGrpC, _asn_ctx), + asn_MAP_Position3D_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC = { + "Position3D-addGrpC", + "Position3D-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_addGrpC_tags_1, + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_Position3D_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Position3D_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_Position3D_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Position3D.c b/vcits/spatem/src/Position3D.c new file mode 100644 index 0000000..aafa6e9 --- /dev/null +++ b/vcits/spatem/src/Position3D.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Position3D.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct Position3D__regional), + offsetof(struct Position3D__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Position3D_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D, lat), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_NOFLAGS, 0, offsetof(struct Position3D, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "long" + }, + { ATF_POINTER, 2, offsetof(struct Position3D, elevation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Elevation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 1, offsetof(struct Position3D, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_Position3D_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Position3D_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1 = { + sizeof(struct Position3D), + offsetof(struct Position3D, _asn_ctx), + asn_MAP_Position3D_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Position3D_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D = { + "Position3D", + "Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_tags_1, + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + asn_DEF_Position3D_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Position3D_1, + 4, /* Elements count */ + &asn_SPC_Position3D_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PositionConfidence.c b/vcits/spatem/src/PositionConfidence.c new file mode 100644 index 0000000..8bedea0 --- /dev/null +++ b/vcits/spatem/src/PositionConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PositionConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositionConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 5, "a500m" }, + { 2, 5, "a200m" }, + { 3, 5, "a100m" }, + { 4, 4, "a50m" }, + { 5, 4, "a20m" }, + { 6, 4, "a10m" }, + { 7, 3, "a5m" }, + { 8, 3, "a2m" }, + { 9, 3, "a1m" }, + { 10, 5, "a50cm" }, + { 11, 5, "a20cm" }, + { 12, 5, "a10cm" }, + { 13, 4, "a5cm" }, + { 14, 4, "a2cm" }, + { 15, 4, "a1cm" } +}; +static const unsigned int asn_MAP_PositionConfidence_enum2value_1[] = { + 3, /* a100m(3) */ + 12, /* a10cm(12) */ + 6, /* a10m(6) */ + 15, /* a1cm(15) */ + 9, /* a1m(9) */ + 2, /* a200m(2) */ + 11, /* a20cm(11) */ + 5, /* a20m(5) */ + 14, /* a2cm(14) */ + 8, /* a2m(8) */ + 1, /* a500m(1) */ + 10, /* a50cm(10) */ + 4, /* a50m(4) */ + 13, /* a5cm(13) */ + 7, /* a5m(7) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1 = { + asn_MAP_PositionConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositionConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidence = { + "PositionConfidence", + "PositionConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_PositionConfidence_tags_1, + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionConfidence_constr_1, &asn_PER_type_PositionConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositionConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PositionConfidenceSet.c b/vcits/spatem/src/PositionConfidenceSet.c new file mode 100644 index 0000000..ea4e4bc --- /dev/null +++ b/vcits/spatem/src/PositionConfidenceSet.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PositionConfidenceSet.h" + +asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, pos), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pos" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, elevation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ElevationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidenceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionConfidenceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pos */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* elevation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1 = { + sizeof(struct PositionConfidenceSet), + offsetof(struct PositionConfidenceSet, _asn_ctx), + asn_MAP_PositionConfidenceSet_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet = { + "PositionConfidenceSet", + "PositionConfidenceSet", + &asn_OP_SEQUENCE, + asn_DEF_PositionConfidenceSet_tags_1, + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidenceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionConfidenceSet_1, + 2, /* Elements count */ + &asn_SPC_PositionConfidenceSet_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PositionOfOccupants.c b/vcits/spatem/src/PositionOfOccupants.c new file mode 100644 index 0000000..230e401 --- /dev/null +++ b/vcits/spatem/src/PositionOfOccupants.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PositionOfOccupants.h" + +int +PositionOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { 0, 0 }, + 20 /* (SIZE(20..20)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PositionOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants = { + "PositionOfOccupants", + "PositionOfOccupants", + &asn_OP_BIT_STRING, + asn_DEF_PositionOfOccupants_tags_1, + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_PositionOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfOccupants_constr_1, &asn_PER_type_PositionOfOccupants_constr_1, PositionOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PositionOfPillars.c b/vcits/spatem/src/PositionOfPillars.c new file mode 100644 index 0000000..51485b6 --- /dev/null +++ b/vcits/spatem/src/PositionOfPillars.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PositionOfPillars.h" + +static asn_oer_constraints_t asn_OER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_PositionOfPillars_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PosPillar, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionOfPillars_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_PositionOfPillars_specs_1 = { + sizeof(struct PositionOfPillars), + offsetof(struct PositionOfPillars, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfPillars = { + "PositionOfPillars", + "PositionOfPillars", + &asn_OP_SEQUENCE_OF, + asn_DEF_PositionOfPillars_tags_1, + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + asn_DEF_PositionOfPillars_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfPillars_constr_1, &asn_PER_type_PositionOfPillars_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PositionOfPillars_1, + 1, /* Single element */ + &asn_SPC_PositionOfPillars_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PositionalAccuracy.c b/vcits/spatem/src/PositionalAccuracy.c new file mode 100644 index 0000000..9abe0fc --- /dev/null +++ b/vcits/spatem/src/PositionalAccuracy.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PositionalAccuracy.h" + +asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMajor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMinor), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMinorAxisAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, orientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisOrientation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "orientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionalAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionalAccuracy_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinor */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* orientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1 = { + sizeof(struct PositionalAccuracy), + offsetof(struct PositionalAccuracy, _asn_ctx), + asn_MAP_PositionalAccuracy_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy = { + "PositionalAccuracy", + "PositionalAccuracy", + &asn_OP_SEQUENCE, + asn_DEF_PositionalAccuracy_tags_1, + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + asn_DEF_PositionalAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionalAccuracy_1, + 3, /* Elements count */ + &asn_SPC_PositionalAccuracy_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PositioningSolutionType.c b/vcits/spatem/src/PositioningSolutionType.c new file mode 100644 index 0000000..5c6ab21 --- /dev/null +++ b/vcits/spatem/src/PositioningSolutionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PositioningSolutionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositioningSolutionType_value2enum_1[] = { + { 0, 21, "noPositioningSolution" }, + { 1, 5, "sGNSS" }, + { 2, 5, "dGNSS" }, + { 3, 11, "sGNSSplusDR" }, + { 4, 11, "dGNSSplusDR" }, + { 5, 2, "dR" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PositioningSolutionType_enum2value_1[] = { + 2, /* dGNSS(2) */ + 4, /* dGNSSplusDR(4) */ + 5, /* dR(5) */ + 0, /* noPositioningSolution(0) */ + 1, /* sGNSS(1) */ + 3 /* sGNSSplusDR(3) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_PositioningSolutionType_specs_1 = { + asn_MAP_PositioningSolutionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositioningSolutionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositioningSolutionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType = { + "PositioningSolutionType", + "PositioningSolutionType", + &asn_OP_NativeEnumerated, + asn_DEF_PositioningSolutionType_tags_1, + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + asn_DEF_PositioningSolutionType_tags_1, /* Same as above */ + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + { &asn_OER_type_PositioningSolutionType_constr_1, &asn_PER_type_PositioningSolutionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositioningSolutionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PostCrashSubCauseCode.c b/vcits/spatem/src/PostCrashSubCauseCode.c new file mode 100644 index 0000000..5a29f1c --- /dev/null +++ b/vcits/spatem/src/PostCrashSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PostCrashSubCauseCode.h" + +int +PostCrashSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PostCrashSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode = { + "PostCrashSubCauseCode", + "PostCrashSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_PostCrashSubCauseCode_tags_1, + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_PostCrashSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_PostCrashSubCauseCode_constr_1, &asn_PER_type_PostCrashSubCauseCode_constr_1, PostCrashSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/PreemptPriorityList.c b/vcits/spatem/src/PreemptPriorityList.c new file mode 100644 index 0000000..ccc533a --- /dev/null +++ b/vcits/spatem/src/PreemptPriorityList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PreemptPriorityList.h" + +#include "SignalControlZone.h" +static asn_oer_constraints_t asn_OER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalControlZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PreemptPriorityList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1 = { + sizeof(struct PreemptPriorityList), + offsetof(struct PreemptPriorityList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList = { + "PreemptPriorityList", + "PreemptPriorityList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PreemptPriorityList_tags_1, + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + asn_DEF_PreemptPriorityList_tags_1, /* Same as above */ + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + { &asn_OER_type_PreemptPriorityList_constr_1, &asn_PER_type_PreemptPriorityList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PreemptPriorityList_1, + 1, /* Single element */ + &asn_SPC_PreemptPriorityList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PrioritizationResponse.c b/vcits/spatem/src/PrioritizationResponse.c new file mode 100644 index 0000000..2d12124 --- /dev/null +++ b/vcits/spatem/src/PrioritizationResponse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PrioritizationResponse.h" + +asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, priorState), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "priorState" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PrioritizationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* priorState */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroup */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1 = { + sizeof(struct PrioritizationResponse), + offsetof(struct PrioritizationResponse, _asn_ctx), + asn_MAP_PrioritizationResponse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse = { + "PrioritizationResponse", + "PrioritizationResponse", + &asn_OP_SEQUENCE, + asn_DEF_PrioritizationResponse_tags_1, + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PrioritizationResponse_1, + 3, /* Elements count */ + &asn_SPC_PrioritizationResponse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PrioritizationResponseList.c b/vcits/spatem/src/PrioritizationResponseList.c new file mode 100644 index 0000000..009b242 --- /dev/null +++ b/vcits/spatem/src/PrioritizationResponseList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PrioritizationResponseList.h" + +#include "PrioritizationResponse.h" +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PrioritizationResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1 = { + sizeof(struct PrioritizationResponseList), + offsetof(struct PrioritizationResponseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList = { + "PrioritizationResponseList", + "PrioritizationResponseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PrioritizationResponseList_tags_1, + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseList_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + { &asn_OER_type_PrioritizationResponseList_constr_1, &asn_PER_type_PrioritizationResponseList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PrioritizationResponseList_1, + 1, /* Single element */ + &asn_SPC_PrioritizationResponseList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PrioritizationResponseStatus.c b/vcits/spatem/src/PrioritizationResponseStatus.c new file mode 100644 index 0000000..0014eb6 --- /dev/null +++ b/vcits/spatem/src/PrioritizationResponseStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PrioritizationResponseStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PrioritizationResponseStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 9, "requested" }, + { 2, 10, "processing" }, + { 3, 17, "watchOtherTraffic" }, + { 4, 7, "granted" }, + { 5, 8, "rejected" }, + { 6, 11, "maxPresence" }, + { 7, 15, "reserviceLocked" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PrioritizationResponseStatus_enum2value_1[] = { + 4, /* granted(4) */ + 6, /* maxPresence(6) */ + 2, /* processing(2) */ + 5, /* rejected(5) */ + 1, /* requested(1) */ + 7, /* reserviceLocked(7) */ + 0, /* unknown(0) */ + 3 /* watchOtherTraffic(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1 = { + asn_MAP_PrioritizationResponseStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PrioritizationResponseStatus_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus = { + "PrioritizationResponseStatus", + "PrioritizationResponseStatus", + &asn_OP_NativeEnumerated, + asn_DEF_PrioritizationResponseStatus_tags_1, + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_PrioritizationResponseStatus_constr_1, &asn_PER_type_PrioritizationResponseStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PrioritizationResponseStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PriorityRequestType.c b/vcits/spatem/src/PriorityRequestType.c new file mode 100644 index 0000000..26ffdc3 --- /dev/null +++ b/vcits/spatem/src/PriorityRequestType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PriorityRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PriorityRequestType_value2enum_1[] = { + { 0, 27, "priorityRequestTypeReserved" }, + { 1, 15, "priorityRequest" }, + { 2, 21, "priorityRequestUpdate" }, + { 3, 20, "priorityCancellation" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PriorityRequestType_enum2value_1[] = { + 3, /* priorityCancellation(3) */ + 1, /* priorityRequest(1) */ + 0, /* priorityRequestTypeReserved(0) */ + 2 /* priorityRequestUpdate(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1 = { + asn_MAP_PriorityRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PriorityRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PriorityRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PriorityRequestType = { + "PriorityRequestType", + "PriorityRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PriorityRequestType_tags_1, + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + asn_DEF_PriorityRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_PriorityRequestType_constr_1, &asn_PER_type_PriorityRequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PriorityRequestType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ProtectedCommunicationZone.c b/vcits/spatem/src/ProtectedCommunicationZone.c new file mode 100644 index 0000000..897daa1 --- /dev/null +++ b/vcits/spatem/src/ProtectedCommunicationZone.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ProtectedCommunicationZone.h" + +asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneType" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expiryTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 2, offsetof(struct ProtectedCommunicationZone, protectedZoneRadius), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneRadius, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneRadius" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, protectedZoneID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneID" + }, +}; +static const int asn_MAP_ProtectedCommunicationZone_oms_1[] = { 1, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ProtectedCommunicationZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expiryTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protectedZoneRadius */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* protectedZoneID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1 = { + sizeof(struct ProtectedCommunicationZone), + offsetof(struct ProtectedCommunicationZone, _asn_ctx), + asn_MAP_ProtectedCommunicationZone_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ProtectedCommunicationZone_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone = { + "ProtectedCommunicationZone", + "ProtectedCommunicationZone", + &asn_OP_SEQUENCE, + asn_DEF_ProtectedCommunicationZone_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZone_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ProtectedCommunicationZone_1, + 6, /* Elements count */ + &asn_SPC_ProtectedCommunicationZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ProtectedCommunicationZonesRSU.c b/vcits/spatem/src/ProtectedCommunicationZonesRSU.c new file mode 100644 index 0000000..9af9083 --- /dev/null +++ b/vcits/spatem/src/ProtectedCommunicationZonesRSU.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ProtectedCommunicationZonesRSU.h" + +#include "ProtectedCommunicationZone.h" +static asn_oer_constraints_t asn_OER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ProtectedCommunicationZonesRSU_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtectedCommunicationZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZonesRSU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ProtectedCommunicationZonesRSU_specs_1 = { + sizeof(struct ProtectedCommunicationZonesRSU), + offsetof(struct ProtectedCommunicationZonesRSU, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU = { + "ProtectedCommunicationZonesRSU", + "ProtectedCommunicationZonesRSU", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedCommunicationZonesRSU_constr_1, &asn_PER_type_ProtectedCommunicationZonesRSU_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtectedCommunicationZonesRSU_1, + 1, /* Single element */ + &asn_SPC_ProtectedCommunicationZonesRSU_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ProtectedZoneID.c b/vcits/spatem/src/ProtectedZoneID.c new file mode 100644 index 0000000..8646bc0 --- /dev/null +++ b/vcits/spatem/src/ProtectedZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ProtectedZoneID.h" + +int +ProtectedZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID = { + "ProtectedZoneID", + "ProtectedZoneID", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneID_tags_1, + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneID_constr_1, &asn_PER_type_ProtectedZoneID_constr_1, ProtectedZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/ProtectedZoneRadius.c b/vcits/spatem/src/ProtectedZoneRadius.c new file mode 100644 index 0000000..26ce90e --- /dev/null +++ b/vcits/spatem/src/ProtectedZoneRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ProtectedZoneRadius.h" + +int +ProtectedZoneRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 255 } /* (1..255,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius = { + "ProtectedZoneRadius", + "ProtectedZoneRadius", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneRadius_tags_1, + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneRadius_constr_1, &asn_PER_type_ProtectedZoneRadius_constr_1, ProtectedZoneRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/ProtectedZoneType.c b/vcits/spatem/src/ProtectedZoneType.c new file mode 100644 index 0000000..f2e5d0e --- /dev/null +++ b/vcits/spatem/src/ProtectedZoneType.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ProtectedZoneType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ProtectedZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ProtectedZoneType_enum2value_1[] = { + 0, /* permanentCenDsrcTolling(0) */ + 1 /* temporaryCenDsrcTolling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1 = { + asn_MAP_ProtectedZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ProtectedZoneType_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType = { + "ProtectedZoneType", + "ProtectedZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_ProtectedZoneType_tags_1, + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneType_constr_1, &asn_PER_type_ProtectedZoneType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ProtectedZoneType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PtActivation.c b/vcits/spatem/src/PtActivation.c new file mode 100644 index 0000000..3901f71 --- /dev/null +++ b/vcits/spatem/src/PtActivation.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PtActivation.h" + +static asn_TYPE_member_t asn_MBR_PtActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationData" + }, +}; +static const ber_tlv_tag_t asn_DEF_PtActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PtActivation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptActivationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivationData */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_PtActivation_specs_1 = { + sizeof(struct PtActivation), + offsetof(struct PtActivation, _asn_ctx), + asn_MAP_PtActivation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PtActivation = { + "PtActivation", + "PtActivation", + &asn_OP_SEQUENCE, + asn_DEF_PtActivation_tags_1, + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + asn_DEF_PtActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PtActivation_1, + 2, /* Elements count */ + &asn_SPC_PtActivation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PtActivationData.c b/vcits/spatem/src/PtActivationData.c new file mode 100644 index 0000000..b83c37f --- /dev/null +++ b/vcits/spatem/src/PtActivationData.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PtActivationData.h" + +int +PtActivationData_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationData_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..20)) */}; +asn_per_constraints_t asn_PER_type_PtActivationData_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (SIZE(1..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationData = { + "PtActivationData", + "PtActivationData", + &asn_OP_OCTET_STRING, + asn_DEF_PtActivationData_tags_1, + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + asn_DEF_PtActivationData_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationData_constr_1, &asn_PER_type_PtActivationData_constr_1, PtActivationData_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/PtActivationType.c b/vcits/spatem/src/PtActivationType.c new file mode 100644 index 0000000..f892682 --- /dev/null +++ b/vcits/spatem/src/PtActivationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PtActivationType.h" + +int +PtActivationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_PtActivationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationType = { + "PtActivationType", + "PtActivationType", + &asn_OP_NativeInteger, + asn_DEF_PtActivationType_tags_1, + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + asn_DEF_PtActivationType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationType_constr_1, &asn_PER_type_PtActivationType_constr_1, PtActivationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/PtvRequestType.c b/vcits/spatem/src/PtvRequestType.c new file mode 100644 index 0000000..35cc6c8 --- /dev/null +++ b/vcits/spatem/src/PtvRequestType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "PtvRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtvRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PtvRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PtvRequestType_value2enum_1[] = { + { 0, 10, "preRequest" }, + { 1, 11, "mainRequest" }, + { 2, 16, "doorCloseRequest" }, + { 3, 13, "cancelRequest" }, + { 4, 16, "emergencyRequest" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PtvRequestType_enum2value_1[] = { + 3, /* cancelRequest(3) */ + 2, /* doorCloseRequest(2) */ + 4, /* emergencyRequest(4) */ + 1, /* mainRequest(1) */ + 0 /* preRequest(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PtvRequestType_specs_1 = { + asn_MAP_PtvRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PtvRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 6, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PtvRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtvRequestType = { + "PtvRequestType", + "PtvRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PtvRequestType_tags_1, + sizeof(asn_DEF_PtvRequestType_tags_1) + /sizeof(asn_DEF_PtvRequestType_tags_1[0]), /* 1 */ + asn_DEF_PtvRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtvRequestType_tags_1) + /sizeof(asn_DEF_PtvRequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtvRequestType_constr_1, &asn_PER_type_PtvRequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PtvRequestType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RTCM-Revision.c b/vcits/spatem/src/RTCM-Revision.c new file mode 100644 index 0000000..35e5725 --- /dev/null +++ b/vcits/spatem/src/RTCM-Revision.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RTCM-Revision.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RTCM_Revision_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "rtcmRev2" }, + { 2, 8, "rtcmRev3" }, + { 3, 8, "reserved" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RTCM_Revision_enum2value_1[] = { + 3, /* reserved(3) */ + 1, /* rtcmRev2(1) */ + 2, /* rtcmRev3(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1 = { + asn_MAP_RTCM_Revision_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RTCM_Revision_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RTCM_Revision_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCM_Revision = { + "RTCM-Revision", + "RTCM-Revision", + &asn_OP_NativeEnumerated, + asn_DEF_RTCM_Revision_tags_1, + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + asn_DEF_RTCM_Revision_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCM_Revision_constr_1, &asn_PER_type_RTCM_Revision_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RTCM_Revision_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RTCMcorrections.c b/vcits/spatem/src/RTCMcorrections.c new file mode 100644 index 0000000..711ca43 --- /dev/null +++ b/vcits/spatem/src/RTCMcorrections.c @@ -0,0 +1,194 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RTCMcorrections.h" + +#include "FullPositionVector.h" +#include "RTCMheader.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RTCMcorrections, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct RTCMcorrections__regional), + offsetof(struct RTCMcorrections__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RTCMcorrections_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, rev), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCM_Revision, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rev" + }, + { ATF_POINTER, 3, offsetof(struct RTCMcorrections, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 2, offsetof(struct RTCMcorrections, anchorPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FullPositionVector, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "anchorPoint" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, rtcmHeader), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMheader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rtcmHeader" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgs), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMmessageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgs" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RTCMcorrections_oms_1[] = { 2, 3, 4, 6 }; +static const ber_tlv_tag_t asn_DEF_RTCMcorrections_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMcorrections_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rev */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* anchorPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rtcmHeader */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* msgs */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RTCMcorrections_specs_1 = { + sizeof(struct RTCMcorrections), + offsetof(struct RTCMcorrections, _asn_ctx), + asn_MAP_RTCMcorrections_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_RTCMcorrections_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMcorrections = { + "RTCMcorrections", + "RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_RTCMcorrections_tags_1, + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + asn_DEF_RTCMcorrections_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMcorrections_1, + 7, /* Elements count */ + &asn_SPC_RTCMcorrections_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RTCMheader.c b/vcits/spatem/src/RTCMheader.c new file mode 100644 index 0000000..41b643d --- /dev/null +++ b/vcits/spatem/src/RTCMheader.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RTCMheader.h" + +asn_TYPE_member_t asn_MBR_RTCMheader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, status), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNSSstatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, offsetSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AntennaOffsetSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMheader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMheader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* offsetSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1 = { + sizeof(struct RTCMheader), + offsetof(struct RTCMheader, _asn_ctx), + asn_MAP_RTCMheader_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMheader = { + "RTCMheader", + "RTCMheader", + &asn_OP_SEQUENCE, + asn_DEF_RTCMheader_tags_1, + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + asn_DEF_RTCMheader_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMheader_1, + 2, /* Elements count */ + &asn_SPC_RTCMheader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RTCMmessage.c b/vcits/spatem/src/RTCMmessage.c new file mode 100644 index 0000000..de8ebc0 --- /dev/null +++ b/vcits/spatem/src/RTCMmessage.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RTCMmessage.h" + +int +RTCMmessage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1023)) */}; +asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (SIZE(1..1023)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessage = { + "RTCMmessage", + "RTCMmessage", + &asn_OP_OCTET_STRING, + asn_DEF_RTCMmessage_tags_1, + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCMmessage_constr_1, &asn_PER_type_RTCMmessage_constr_1, RTCMmessage_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RTCMmessageList.c b/vcits/spatem/src/RTCMmessageList.c new file mode 100644 index 0000000..1b10d04 --- /dev/null +++ b/vcits/spatem/src/RTCMmessageList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RTCMmessageList.h" + +static asn_oer_constraints_t asn_OER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RTCMmessageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RTCMmessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1 = { + sizeof(struct RTCMmessageList), + offsetof(struct RTCMmessageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessageList = { + "RTCMmessageList", + "RTCMmessageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RTCMmessageList_tags_1, + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessageList_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCMmessageList_constr_1, &asn_PER_type_RTCMmessageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RTCMmessageList_1, + 1, /* Single element */ + &asn_SPC_RTCMmessageList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ReferencePosition.c b/vcits/spatem/src/ReferencePosition.c new file mode 100644 index 0000000..5e384fb --- /dev/null +++ b/vcits/spatem/src/ReferencePosition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ReferencePosition.h" + +asn_TYPE_member_t asn_MBR_ReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PosConfidenceEllipse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionConfidenceEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* longitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* positionConfidenceEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1 = { + sizeof(struct ReferencePosition), + offsetof(struct ReferencePosition, _asn_ctx), + asn_MAP_ReferencePosition_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReferencePosition = { + "ReferencePosition", + "ReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_ReferencePosition_tags_1, + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_ReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReferencePosition_1, + 4, /* Elements count */ + &asn_SPC_ReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RegionId.c b/vcits/spatem/src/RegionId.c new file mode 100644 index 0000000..f6c5d4d --- /dev/null +++ b/vcits/spatem/src/RegionId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RegionId.h" + +int +RegionId_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RegionId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RegionId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RegionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RegionId = { + "RegionId", + "RegionId", + &asn_OP_NativeInteger, + asn_DEF_RegionId_tags_1, + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + asn_DEF_RegionId_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + { &asn_OER_type_RegionId_constr_1, &asn_PER_type_RegionId_constr_1, RegionId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/RegionalExtension.c b/vcits/spatem/src/RegionalExtension.c new file mode 100644 index 0000000..059cae7 --- /dev/null +++ b/vcits/spatem/src/RegionalExtension.c @@ -0,0 +1,4204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RegionalExtension.h" + +static const long asn_VAL_5_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MapData_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_5_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MapData_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MapData_1[] = { + { 1, 2, asn_IOS_Reg_MapData_1_rows } +}; +static const long asn_VAL_1_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_ConnectionManeuverAssist_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_1_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionManeuverAssist_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_ConnectionManeuverAssist_1[] = { + { 1, 2, asn_IOS_Reg_ConnectionManeuverAssist_1_rows } +}; +static const long asn_VAL_2_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_GenericLane_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_2_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionTrajectory_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_GenericLane_1[] = { + { 1, 2, asn_IOS_Reg_GenericLane_1_rows } +}; +static const long asn_VAL_3_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_IntersectionState_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_3_addGrpC }, + { "&Type", aioc__type, &asn_DEF_IntersectionState_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_IntersectionState_1[] = { + { 1, 2, asn_IOS_Reg_IntersectionState_1_rows } +}; +static const long asn_VAL_4_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_LaneAttributes_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_4_addGrpC }, + { "&Type", aioc__type, &asn_DEF_LaneAttributes_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_LaneAttributes_1[] = { + { 1, 2, asn_IOS_Reg_LaneAttributes_1_rows } +}; +static const long asn_VAL_6_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MovementEvent_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_6_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MovementEvent_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MovementEvent_1[] = { + { 1, 2, asn_IOS_Reg_MovementEvent_1_rows } +}; +static const long asn_VAL_7_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_NodeAttributeSetXY_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_7_addGrpC }, + { "&Type", aioc__type, &asn_DEF_NodeAttributeSet_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_NodeAttributeSetXY_1[] = { + { 1, 2, asn_IOS_Reg_NodeAttributeSetXY_1_rows } +}; +static const long asn_VAL_8_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_Position3D_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_8_addGrpC }, + { "&Type", aioc__type, &asn_DEF_Position3D_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_Position3D_1[] = { + { 1, 2, asn_IOS_Reg_Position3D_1_rows } +}; +static const long asn_VAL_9_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RequestorDescription_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_9_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RequestorDescription_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RequestorDescription_1[] = { + { 1, 2, asn_IOS_Reg_RequestorDescription_1_rows } +}; +static const long asn_VAL_10_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RestrictionUserType_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_10_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RestrictionUserType_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RestrictionUserType_1[] = { + { 1, 2, asn_IOS_Reg_RestrictionUserType_1_rows } +}; +static const long asn_VAL_11_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_SignalStatusPackage_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_11_addGrpC }, + { "&Type", aioc__type, &asn_DEF_SignalStatusPackage_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_SignalStatusPackage_1[] = { + { 1, 2, asn_IOS_Reg_SignalStatusPackage_1_rows } +}; +static int +memb_regionId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MapData_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MapData_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MapData, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_ConnectionManeuverAssist_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_ConnectionManeuverAssist_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_ConnectionManeuverAssist, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_GenericLane_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_GenericLane_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_GenericLane, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_IntersectionState_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_IntersectionState_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_IntersectionState, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_LaneAttributes_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_LaneAttributes_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_LaneAttributes, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MovementEvent_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MovementEvent_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MovementEvent, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_NodeAttributeSetXY_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_NodeAttributeSetXY_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_NodeAttributeSetXY, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_Position3D_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_Position3D_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_Position3D, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RequestorDescription_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RequestorDescription_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RequestorDescription, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RestrictionUserType_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RestrictionUserType_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RestrictionUserType, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_SignalStatusPackage_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_SignalStatusPackage_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_SignalStatusPackage, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_regionId_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_11 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_14 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_15 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_17 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_18 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_20 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_21 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_23 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_26 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_27 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_29 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_30 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_30 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_32 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_33 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_35 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_36 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_38 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_39 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_41 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_42 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_42 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_44 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_44 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_45 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_47 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_47 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_48 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_50 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_51 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_53 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_53 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_54 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_54 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_56 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_56 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_57 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_57 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_59 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_60 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_62 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_63 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_63 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_65 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_65 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_66 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_66 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_68 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_68 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_69 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_69 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_71 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_71 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_72 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_74 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_74 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_75 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_75 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_77 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_77 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_78 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_78 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_80 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_80 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_81 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_81 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regExtValue_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData__regExtValue, choice.MapData_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MapData_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MapData-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_3[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MapData-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_3 = { + sizeof(struct Reg_MapData__regExtValue), + offsetof(struct Reg_MapData__regExtValue, _asn_ctx), + offsetof(struct Reg_MapData__regExtValue, present), + sizeof(((struct Reg_MapData__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_3, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_3 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_3, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MapData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_2, &asn_PER_memb_regionId_constr_2, memb_regionId_constraint_1 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_3, + select_Reg_MapData_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_3, &asn_PER_memb_regExtValue_constr_3, memb_regExtValue_constraint_1 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_1 = { + sizeof(struct Reg_MapData), + offsetof(struct Reg_MapData, _asn_ctx), + asn_MAP_Reg_MapData_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MapData = { + "Reg-MapData", + "Reg-MapData", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MapData_tags_1, + sizeof(asn_DEF_Reg_MapData_tags_1) + /sizeof(asn_DEF_Reg_MapData_tags_1[0]), /* 1 */ + asn_DEF_Reg_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_Reg_MapData_tags_1) + /sizeof(asn_DEF_Reg_MapData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MapData_1, + 2, /* Elements count */ + &asn_SPC_Reg_MapData_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_6 = { + sizeof(struct Reg_RTCMcorrections__regExtValue), + offsetof(struct Reg_RTCMcorrections__regExtValue, _asn_ctx), + offsetof(struct Reg_RTCMcorrections__regExtValue, present), + sizeof(((struct Reg_RTCMcorrections__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_6 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_5, &asn_PER_memb_regionId_constr_5, memb_regionId_constraint_4 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_6, + 0, + { &asn_OER_memb_regExtValue_constr_6, &asn_PER_memb_regExtValue_constr_6, memb_regExtValue_constraint_4 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RTCMcorrections_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RTCMcorrections_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_4 = { + sizeof(struct Reg_RTCMcorrections), + offsetof(struct Reg_RTCMcorrections, _asn_ctx), + asn_MAP_Reg_RTCMcorrections_tag2el_4, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections = { + "Reg-RTCMcorrections", + "Reg-RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RTCMcorrections_tags_4, + sizeof(asn_DEF_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + asn_DEF_Reg_RTCMcorrections_tags_4, /* Same as above */ + sizeof(asn_DEF_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RTCMcorrections_4, + 2, /* Elements count */ + &asn_SPC_Reg_RTCMcorrections_specs_4 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_9 = { + sizeof(struct Reg_SPAT__regExtValue), + offsetof(struct Reg_SPAT__regExtValue, _asn_ctx), + offsetof(struct Reg_SPAT__regExtValue, present), + sizeof(((struct Reg_SPAT__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_9 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SPAT_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_8, &asn_PER_memb_regionId_constr_8, memb_regionId_constraint_7 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_9, + 0, + { &asn_OER_memb_regExtValue_constr_9, &asn_PER_memb_regExtValue_constr_9, memb_regExtValue_constraint_7 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SPAT_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SPAT_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_7 = { + sizeof(struct Reg_SPAT), + offsetof(struct Reg_SPAT, _asn_ctx), + asn_MAP_Reg_SPAT_tag2el_7, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SPAT = { + "Reg-SPAT", + "Reg-SPAT", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SPAT_tags_7, + sizeof(asn_DEF_Reg_SPAT_tags_7) + /sizeof(asn_DEF_Reg_SPAT_tags_7[0]), /* 1 */ + asn_DEF_Reg_SPAT_tags_7, /* Same as above */ + sizeof(asn_DEF_Reg_SPAT_tags_7) + /sizeof(asn_DEF_Reg_SPAT_tags_7[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SPAT_7, + 2, /* Elements count */ + &asn_SPC_Reg_SPAT_specs_7 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_12 = { + sizeof(struct Reg_SignalRequestMessage__regExtValue), + offsetof(struct Reg_SignalRequestMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestMessage__regExtValue, present), + sizeof(((struct Reg_SignalRequestMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_12 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_11, &asn_PER_memb_regionId_constr_11, memb_regionId_constraint_10 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_12, + 0, + { &asn_OER_memb_regExtValue_constr_12, &asn_PER_memb_regExtValue_constr_12, memb_regExtValue_constraint_10 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestMessage_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestMessage_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_10 = { + sizeof(struct Reg_SignalRequestMessage), + offsetof(struct Reg_SignalRequestMessage, _asn_ctx), + asn_MAP_Reg_SignalRequestMessage_tag2el_10, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage = { + "Reg-SignalRequestMessage", + "Reg-SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestMessage_tags_10, + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + asn_DEF_Reg_SignalRequestMessage_tags_10, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequestMessage_10, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestMessage_specs_10 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_15 = { + sizeof(struct Reg_SignalStatusMessage__regExtValue), + offsetof(struct Reg_SignalStatusMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusMessage__regExtValue, present), + sizeof(((struct Reg_SignalStatusMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_15 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_14, &asn_PER_memb_regionId_constr_14, memb_regionId_constraint_13 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_15, + 0, + { &asn_OER_memb_regExtValue_constr_15, &asn_PER_memb_regExtValue_constr_15, memb_regExtValue_constraint_13 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusMessage_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusMessage_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_13 = { + sizeof(struct Reg_SignalStatusMessage), + offsetof(struct Reg_SignalStatusMessage, _asn_ctx), + asn_MAP_Reg_SignalStatusMessage_tag2el_13, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage = { + "Reg-SignalStatusMessage", + "Reg-SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusMessage_tags_13, + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + asn_DEF_Reg_SignalStatusMessage_tags_13, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatusMessage_13, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusMessage_specs_13 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_18 = { + sizeof(struct Reg_AdvisorySpeed__regExtValue), + offsetof(struct Reg_AdvisorySpeed__regExtValue, _asn_ctx), + offsetof(struct Reg_AdvisorySpeed__regExtValue, present), + sizeof(((struct Reg_AdvisorySpeed__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_18 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_17, &asn_PER_memb_regionId_constr_17, memb_regionId_constraint_16 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_18, + 0, + { &asn_OER_memb_regExtValue_constr_18, &asn_PER_memb_regExtValue_constr_18, memb_regExtValue_constraint_16 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_AdvisorySpeed_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_AdvisorySpeed_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_16 = { + sizeof(struct Reg_AdvisorySpeed), + offsetof(struct Reg_AdvisorySpeed, _asn_ctx), + asn_MAP_Reg_AdvisorySpeed_tag2el_16, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed = { + "Reg-AdvisorySpeed", + "Reg-AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_Reg_AdvisorySpeed_tags_16, + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + asn_DEF_Reg_AdvisorySpeed_tags_16, /* Same as above */ + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_AdvisorySpeed_16, + 2, /* Elements count */ + &asn_SPC_Reg_AdvisorySpeed_specs_16 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_21 = { + sizeof(struct Reg_ComputedLane__regExtValue), + offsetof(struct Reg_ComputedLane__regExtValue, _asn_ctx), + offsetof(struct Reg_ComputedLane__regExtValue, present), + sizeof(((struct Reg_ComputedLane__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_21 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ComputedLane_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_20, &asn_PER_memb_regionId_constr_20, memb_regionId_constraint_19 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_21, + 0, + { &asn_OER_memb_regExtValue_constr_21, &asn_PER_memb_regExtValue_constr_21, memb_regExtValue_constraint_19 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ComputedLane_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ComputedLane_tag2el_19[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_19 = { + sizeof(struct Reg_ComputedLane), + offsetof(struct Reg_ComputedLane, _asn_ctx), + asn_MAP_Reg_ComputedLane_tag2el_19, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane = { + "Reg-ComputedLane", + "Reg-ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ComputedLane_tags_19, + sizeof(asn_DEF_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_Reg_ComputedLane_tags_19[0]), /* 1 */ + asn_DEF_Reg_ComputedLane_tags_19, /* Same as above */ + sizeof(asn_DEF_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_Reg_ComputedLane_tags_19[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_ComputedLane_19, + 2, /* Elements count */ + &asn_SPC_Reg_ComputedLane_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, choice.ConnectionManeuverAssist_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionManeuverAssist-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionManeuverAssist-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_24 = { + sizeof(struct Reg_ConnectionManeuverAssist__regExtValue), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, _asn_ctx), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, present), + sizeof(((struct Reg_ConnectionManeuverAssist__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_24, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_24 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_24, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_23, &asn_PER_memb_regionId_constr_23, memb_regionId_constraint_22 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_24, + select_Reg_ConnectionManeuverAssist_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_24, &asn_PER_memb_regExtValue_constr_24, memb_regExtValue_constraint_22 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ConnectionManeuverAssist_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ConnectionManeuverAssist_tag2el_22[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_22 = { + sizeof(struct Reg_ConnectionManeuverAssist), + offsetof(struct Reg_ConnectionManeuverAssist, _asn_ctx), + asn_MAP_Reg_ConnectionManeuverAssist_tag2el_22, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist = { + "Reg-ConnectionManeuverAssist", + "Reg-ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ConnectionManeuverAssist_tags_22, + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + asn_DEF_Reg_ConnectionManeuverAssist_tags_22, /* Same as above */ + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_ConnectionManeuverAssist_22, + 2, /* Elements count */ + &asn_SPC_Reg_ConnectionManeuverAssist_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_27[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane__regExtValue, choice.ConnectionTrajectory_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionTrajectory_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionTrajectory-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_27[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionTrajectory-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_27 = { + sizeof(struct Reg_GenericLane__regExtValue), + offsetof(struct Reg_GenericLane__regExtValue, _asn_ctx), + offsetof(struct Reg_GenericLane__regExtValue, present), + sizeof(((struct Reg_GenericLane__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_27, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_27 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_27, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_GenericLane_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_26, &asn_PER_memb_regionId_constr_26, memb_regionId_constraint_25 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_27, + select_Reg_GenericLane_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_27, &asn_PER_memb_regExtValue_constr_27, memb_regExtValue_constraint_25 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_GenericLane_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_GenericLane_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_25 = { + sizeof(struct Reg_GenericLane), + offsetof(struct Reg_GenericLane, _asn_ctx), + asn_MAP_Reg_GenericLane_tag2el_25, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane = { + "Reg-GenericLane", + "Reg-GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_GenericLane_tags_25, + sizeof(asn_DEF_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_Reg_GenericLane_tags_25[0]), /* 1 */ + asn_DEF_Reg_GenericLane_tags_25, /* Same as above */ + sizeof(asn_DEF_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_Reg_GenericLane_tags_25[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_GenericLane_25, + 2, /* Elements count */ + &asn_SPC_Reg_GenericLane_specs_25 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_30 = { + sizeof(struct Reg_IntersectionGeometry__regExtValue), + offsetof(struct Reg_IntersectionGeometry__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionGeometry__regExtValue, present), + sizeof(((struct Reg_IntersectionGeometry__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_30 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_30 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_29, &asn_PER_memb_regionId_constr_29, memb_regionId_constraint_28 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_30, + 0, + { &asn_OER_memb_regExtValue_constr_30, &asn_PER_memb_regExtValue_constr_30, memb_regExtValue_constraint_28 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionGeometry_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionGeometry_tag2el_28[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_28 = { + sizeof(struct Reg_IntersectionGeometry), + offsetof(struct Reg_IntersectionGeometry, _asn_ctx), + asn_MAP_Reg_IntersectionGeometry_tag2el_28, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry = { + "Reg-IntersectionGeometry", + "Reg-IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionGeometry_tags_28, + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + asn_DEF_Reg_IntersectionGeometry_tags_28, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_IntersectionGeometry_28, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionGeometry_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState__regExtValue, choice.IntersectionState_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IntersectionState-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_33[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* IntersectionState-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_33 = { + sizeof(struct Reg_IntersectionState__regExtValue), + offsetof(struct Reg_IntersectionState__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionState__regExtValue, present), + sizeof(((struct Reg_IntersectionState__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_33, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_33 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_33, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionState_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_32, &asn_PER_memb_regionId_constr_32, memb_regionId_constraint_31 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_33, + select_Reg_IntersectionState_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_33, &asn_PER_memb_regExtValue_constr_33, memb_regExtValue_constraint_31 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionState_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionState_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_31 = { + sizeof(struct Reg_IntersectionState), + offsetof(struct Reg_IntersectionState, _asn_ctx), + asn_MAP_Reg_IntersectionState_tag2el_31, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState = { + "Reg-IntersectionState", + "Reg-IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionState_tags_31, + sizeof(asn_DEF_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_Reg_IntersectionState_tags_31[0]), /* 1 */ + asn_DEF_Reg_IntersectionState_tags_31, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_Reg_IntersectionState_tags_31[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_IntersectionState_31, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionState_specs_31 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes__regExtValue, choice.LaneAttributes_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_LaneAttributes_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LaneAttributes-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* LaneAttributes-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_36 = { + sizeof(struct Reg_LaneAttributes__regExtValue), + offsetof(struct Reg_LaneAttributes__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneAttributes__regExtValue, present), + sizeof(((struct Reg_LaneAttributes__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_36, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_36 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_36, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_34[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_35, &asn_PER_memb_regionId_constr_35, memb_regionId_constraint_34 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_36, + select_Reg_LaneAttributes_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_36, &asn_PER_memb_regExtValue_constr_36, memb_regExtValue_constraint_34 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneAttributes_tags_34[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneAttributes_tag2el_34[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_34 = { + sizeof(struct Reg_LaneAttributes), + offsetof(struct Reg_LaneAttributes, _asn_ctx), + asn_MAP_Reg_LaneAttributes_tag2el_34, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes = { + "Reg-LaneAttributes", + "Reg-LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneAttributes_tags_34, + sizeof(asn_DEF_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_34[0]), /* 1 */ + asn_DEF_Reg_LaneAttributes_tags_34, /* Same as above */ + sizeof(asn_DEF_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_34[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_LaneAttributes_34, + 2, /* Elements count */ + &asn_SPC_Reg_LaneAttributes_specs_34 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_39 = { + sizeof(struct Reg_LaneDataAttribute__regExtValue), + offsetof(struct Reg_LaneDataAttribute__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneDataAttribute__regExtValue, present), + sizeof(((struct Reg_LaneDataAttribute__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_39 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_38, &asn_PER_memb_regionId_constr_38, memb_regionId_constraint_37 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_39, + 0, + { &asn_OER_memb_regExtValue_constr_39, &asn_PER_memb_regExtValue_constr_39, memb_regExtValue_constraint_37 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneDataAttribute_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneDataAttribute_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_37 = { + sizeof(struct Reg_LaneDataAttribute), + offsetof(struct Reg_LaneDataAttribute, _asn_ctx), + asn_MAP_Reg_LaneDataAttribute_tag2el_37, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute = { + "Reg-LaneDataAttribute", + "Reg-LaneDataAttribute", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneDataAttribute_tags_37, + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + asn_DEF_Reg_LaneDataAttribute_tags_37, /* Same as above */ + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_LaneDataAttribute_37, + 2, /* Elements count */ + &asn_SPC_Reg_LaneDataAttribute_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_42[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent__regExtValue, choice.MovementEvent_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MovementEvent-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_42[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MovementEvent-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_42 = { + sizeof(struct Reg_MovementEvent__regExtValue), + offsetof(struct Reg_MovementEvent__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementEvent__regExtValue, present), + sizeof(((struct Reg_MovementEvent__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_42, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_42 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_42, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_42 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementEvent_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_41, &asn_PER_memb_regionId_constr_41, memb_regionId_constraint_40 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_42, + select_Reg_MovementEvent_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_42, &asn_PER_memb_regExtValue_constr_42, memb_regExtValue_constraint_40 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementEvent_tags_40[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementEvent_tag2el_40[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_40 = { + sizeof(struct Reg_MovementEvent), + offsetof(struct Reg_MovementEvent, _asn_ctx), + asn_MAP_Reg_MovementEvent_tag2el_40, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent = { + "Reg-MovementEvent", + "Reg-MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementEvent_tags_40, + sizeof(asn_DEF_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_Reg_MovementEvent_tags_40[0]), /* 1 */ + asn_DEF_Reg_MovementEvent_tags_40, /* Same as above */ + sizeof(asn_DEF_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_Reg_MovementEvent_tags_40[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MovementEvent_40, + 2, /* Elements count */ + &asn_SPC_Reg_MovementEvent_specs_40 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_45 = { + sizeof(struct Reg_MovementState__regExtValue), + offsetof(struct Reg_MovementState__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementState__regExtValue, present), + sizeof(((struct Reg_MovementState__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_45 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementState_43[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_44, &asn_PER_memb_regionId_constr_44, memb_regionId_constraint_43 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_45, + 0, + { &asn_OER_memb_regExtValue_constr_45, &asn_PER_memb_regExtValue_constr_45, memb_regExtValue_constraint_43 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementState_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementState_tag2el_43[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_43 = { + sizeof(struct Reg_MovementState), + offsetof(struct Reg_MovementState, _asn_ctx), + asn_MAP_Reg_MovementState_tag2el_43, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementState = { + "Reg-MovementState", + "Reg-MovementState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementState_tags_43, + sizeof(asn_DEF_Reg_MovementState_tags_43) + /sizeof(asn_DEF_Reg_MovementState_tags_43[0]), /* 1 */ + asn_DEF_Reg_MovementState_tags_43, /* Same as above */ + sizeof(asn_DEF_Reg_MovementState_tags_43) + /sizeof(asn_DEF_Reg_MovementState_tags_43[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MovementState_43, + 2, /* Elements count */ + &asn_SPC_Reg_MovementState_specs_43 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY__regExtValue, choice.NodeAttributeSet_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeAttributeSet_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NodeAttributeSet-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NodeAttributeSet-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_48 = { + sizeof(struct Reg_NodeAttributeSetXY__regExtValue), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, present), + sizeof(((struct Reg_NodeAttributeSetXY__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_48, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_48 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_48, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_46[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_47, &asn_PER_memb_regionId_constr_47, memb_regionId_constraint_46 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_48, + select_Reg_NodeAttributeSetXY_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_48, &asn_PER_memb_regExtValue_constr_48, memb_regExtValue_constraint_46 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeAttributeSetXY_tags_46[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeAttributeSetXY_tag2el_46[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_46 = { + sizeof(struct Reg_NodeAttributeSetXY), + offsetof(struct Reg_NodeAttributeSetXY, _asn_ctx), + asn_MAP_Reg_NodeAttributeSetXY_tag2el_46, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY = { + "Reg-NodeAttributeSetXY", + "Reg-NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeAttributeSetXY_tags_46, + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + asn_DEF_Reg_NodeAttributeSetXY_tags_46, /* Same as above */ + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_NodeAttributeSetXY_46, + 2, /* Elements count */ + &asn_SPC_Reg_NodeAttributeSetXY_specs_46 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_51 = { + sizeof(struct Reg_NodeOffsetPointXY__regExtValue), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, present), + sizeof(((struct Reg_NodeOffsetPointXY__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_51 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_50, &asn_PER_memb_regionId_constr_50, memb_regionId_constraint_49 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_51, + 0, + { &asn_OER_memb_regExtValue_constr_51, &asn_PER_memb_regExtValue_constr_51, memb_regExtValue_constraint_49 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeOffsetPointXY_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeOffsetPointXY_tag2el_49[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_49 = { + sizeof(struct Reg_NodeOffsetPointXY), + offsetof(struct Reg_NodeOffsetPointXY, _asn_ctx), + asn_MAP_Reg_NodeOffsetPointXY_tag2el_49, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY = { + "Reg-NodeOffsetPointXY", + "Reg-NodeOffsetPointXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeOffsetPointXY_tags_49, + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + asn_DEF_Reg_NodeOffsetPointXY_tags_49, /* Same as above */ + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_NodeOffsetPointXY_49, + 2, /* Elements count */ + &asn_SPC_Reg_NodeOffsetPointXY_specs_49 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_54[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D__regExtValue, choice.Position3D_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Position3D_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Position3D-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_54[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Position3D-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_54 = { + sizeof(struct Reg_Position3D__regExtValue), + offsetof(struct Reg_Position3D__regExtValue, _asn_ctx), + offsetof(struct Reg_Position3D__regExtValue, present), + sizeof(((struct Reg_Position3D__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_54, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_54 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_54, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_54 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_Position3D_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_53, &asn_PER_memb_regionId_constr_53, memb_regionId_constraint_52 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_54, + select_Reg_Position3D_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_54, &asn_PER_memb_regExtValue_constr_54, memb_regExtValue_constraint_52 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_Position3D_tags_52[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_Position3D_tag2el_52[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_52 = { + sizeof(struct Reg_Position3D), + offsetof(struct Reg_Position3D, _asn_ctx), + asn_MAP_Reg_Position3D_tag2el_52, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_Position3D = { + "Reg-Position3D", + "Reg-Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Reg_Position3D_tags_52, + sizeof(asn_DEF_Reg_Position3D_tags_52) + /sizeof(asn_DEF_Reg_Position3D_tags_52[0]), /* 1 */ + asn_DEF_Reg_Position3D_tags_52, /* Same as above */ + sizeof(asn_DEF_Reg_Position3D_tags_52) + /sizeof(asn_DEF_Reg_Position3D_tags_52[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_Position3D_52, + 2, /* Elements count */ + &asn_SPC_Reg_Position3D_specs_52 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription__regExtValue, choice.RequestorDescription_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RequestorDescription_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RequestorDescription-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_57[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RequestorDescription-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_57 = { + sizeof(struct Reg_RequestorDescription__regExtValue), + offsetof(struct Reg_RequestorDescription__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorDescription__regExtValue, present), + sizeof(((struct Reg_RequestorDescription__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_57, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_57 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_57, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_55[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_56, &asn_PER_memb_regionId_constr_56, memb_regionId_constraint_55 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_57, + select_Reg_RequestorDescription_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_57, &asn_PER_memb_regExtValue_constr_57, memb_regExtValue_constraint_55 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorDescription_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorDescription_tag2el_55[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_55 = { + sizeof(struct Reg_RequestorDescription), + offsetof(struct Reg_RequestorDescription, _asn_ctx), + asn_MAP_Reg_RequestorDescription_tag2el_55, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription = { + "Reg-RequestorDescription", + "Reg-RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorDescription_tags_55, + sizeof(asn_DEF_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_55[0]), /* 1 */ + asn_DEF_Reg_RequestorDescription_tags_55, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_55[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RequestorDescription_55, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorDescription_specs_55 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_60 = { + sizeof(struct Reg_RequestorType__regExtValue), + offsetof(struct Reg_RequestorType__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorType__regExtValue, present), + sizeof(((struct Reg_RequestorType__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_60 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorType_58[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_59, &asn_PER_memb_regionId_constr_59, memb_regionId_constraint_58 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_60, + 0, + { &asn_OER_memb_regExtValue_constr_60, &asn_PER_memb_regExtValue_constr_60, memb_regExtValue_constraint_58 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorType_tags_58[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorType_tag2el_58[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_58 = { + sizeof(struct Reg_RequestorType), + offsetof(struct Reg_RequestorType, _asn_ctx), + asn_MAP_Reg_RequestorType_tag2el_58, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType = { + "Reg-RequestorType", + "Reg-RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorType_tags_58, + sizeof(asn_DEF_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_Reg_RequestorType_tags_58[0]), /* 1 */ + asn_DEF_Reg_RequestorType_tags_58, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_Reg_RequestorType_tags_58[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RequestorType_58, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorType_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_63[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType__regExtValue, choice.RestrictionUserType_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionUserType_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RestrictionUserType-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_63[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RestrictionUserType-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_63 = { + sizeof(struct Reg_RestrictionUserType__regExtValue), + offsetof(struct Reg_RestrictionUserType__regExtValue, _asn_ctx), + offsetof(struct Reg_RestrictionUserType__regExtValue, present), + sizeof(((struct Reg_RestrictionUserType__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_63, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_63 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_63, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_62, &asn_PER_memb_regionId_constr_62, memb_regionId_constraint_61 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_63, + select_Reg_RestrictionUserType_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_63, &asn_PER_memb_regExtValue_constr_63, memb_regExtValue_constraint_61 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RestrictionUserType_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RestrictionUserType_tag2el_61[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_61 = { + sizeof(struct Reg_RestrictionUserType), + offsetof(struct Reg_RestrictionUserType, _asn_ctx), + asn_MAP_Reg_RestrictionUserType_tag2el_61, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType = { + "Reg-RestrictionUserType", + "Reg-RestrictionUserType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RestrictionUserType_tags_61, + sizeof(asn_DEF_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + asn_DEF_Reg_RestrictionUserType_tags_61, /* Same as above */ + sizeof(asn_DEF_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RestrictionUserType_61, + 2, /* Elements count */ + &asn_SPC_Reg_RestrictionUserType_specs_61 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_66 = { + sizeof(struct Reg_RoadSegment__regExtValue), + offsetof(struct Reg_RoadSegment__regExtValue, _asn_ctx), + offsetof(struct Reg_RoadSegment__regExtValue, present), + sizeof(((struct Reg_RoadSegment__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_66 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_66 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RoadSegment_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_65, &asn_PER_memb_regionId_constr_65, memb_regionId_constraint_64 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_66, + 0, + { &asn_OER_memb_regExtValue_constr_66, &asn_PER_memb_regExtValue_constr_66, memb_regExtValue_constraint_64 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RoadSegment_tags_64[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RoadSegment_tag2el_64[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_64 = { + sizeof(struct Reg_RoadSegment), + offsetof(struct Reg_RoadSegment, _asn_ctx), + asn_MAP_Reg_RoadSegment_tag2el_64, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment = { + "Reg-RoadSegment", + "Reg-RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RoadSegment_tags_64, + sizeof(asn_DEF_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_Reg_RoadSegment_tags_64[0]), /* 1 */ + asn_DEF_Reg_RoadSegment_tags_64, /* Same as above */ + sizeof(asn_DEF_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_Reg_RoadSegment_tags_64[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RoadSegment_64, + 2, /* Elements count */ + &asn_SPC_Reg_RoadSegment_specs_64 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_69 = { + sizeof(struct Reg_SignalControlZone__regExtValue), + offsetof(struct Reg_SignalControlZone__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalControlZone__regExtValue, present), + sizeof(((struct Reg_SignalControlZone__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_69 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_67[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_68, &asn_PER_memb_regionId_constr_68, memb_regionId_constraint_67 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_69, + 0, + { &asn_OER_memb_regExtValue_constr_69, &asn_PER_memb_regExtValue_constr_69, memb_regExtValue_constraint_67 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalControlZone_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalControlZone_tag2el_67[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_67 = { + sizeof(struct Reg_SignalControlZone), + offsetof(struct Reg_SignalControlZone, _asn_ctx), + asn_MAP_Reg_SignalControlZone_tag2el_67, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone = { + "Reg-SignalControlZone", + "Reg-SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalControlZone_tags_67, + sizeof(asn_DEF_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_67[0]), /* 1 */ + asn_DEF_Reg_SignalControlZone_tags_67, /* Same as above */ + sizeof(asn_DEF_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_67[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalControlZone_67, + 2, /* Elements count */ + &asn_SPC_Reg_SignalControlZone_specs_67 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_72 = { + sizeof(struct Reg_SignalRequest__regExtValue), + offsetof(struct Reg_SignalRequest__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequest__regExtValue, present), + sizeof(((struct Reg_SignalRequest__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_72 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequest_70[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_71, &asn_PER_memb_regionId_constr_71, memb_regionId_constraint_70 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_72, + 0, + { &asn_OER_memb_regExtValue_constr_72, &asn_PER_memb_regExtValue_constr_72, memb_regExtValue_constraint_70 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequest_tags_70[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequest_tag2el_70[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_70 = { + sizeof(struct Reg_SignalRequest), + offsetof(struct Reg_SignalRequest, _asn_ctx), + asn_MAP_Reg_SignalRequest_tag2el_70, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest = { + "Reg-SignalRequest", + "Reg-SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequest_tags_70, + sizeof(asn_DEF_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_Reg_SignalRequest_tags_70[0]), /* 1 */ + asn_DEF_Reg_SignalRequest_tags_70, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_Reg_SignalRequest_tags_70[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequest_70, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequest_specs_70 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_75 = { + sizeof(struct Reg_SignalRequestPackage__regExtValue), + offsetof(struct Reg_SignalRequestPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestPackage__regExtValue, present), + sizeof(((struct Reg_SignalRequestPackage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_75 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_74, &asn_PER_memb_regionId_constr_74, memb_regionId_constraint_73 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_75, + 0, + { &asn_OER_memb_regExtValue_constr_75, &asn_PER_memb_regExtValue_constr_75, memb_regExtValue_constraint_73 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestPackage_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestPackage_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_73 = { + sizeof(struct Reg_SignalRequestPackage), + offsetof(struct Reg_SignalRequestPackage, _asn_ctx), + asn_MAP_Reg_SignalRequestPackage_tag2el_73, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage = { + "Reg-SignalRequestPackage", + "Reg-SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestPackage_tags_73, + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + asn_DEF_Reg_SignalRequestPackage_tags_73, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequestPackage_73, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestPackage_specs_73 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_78 = { + sizeof(struct Reg_SignalStatus__regExtValue), + offsetof(struct Reg_SignalStatus__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatus__regExtValue, present), + sizeof(((struct Reg_SignalStatus__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_78 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_78 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatus_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_77, &asn_PER_memb_regionId_constr_77, memb_regionId_constraint_76 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_78, + 0, + { &asn_OER_memb_regExtValue_constr_78, &asn_PER_memb_regExtValue_constr_78, memb_regExtValue_constraint_76 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatus_tags_76[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatus_tag2el_76[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_76 = { + sizeof(struct Reg_SignalStatus), + offsetof(struct Reg_SignalStatus, _asn_ctx), + asn_MAP_Reg_SignalStatus_tag2el_76, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus = { + "Reg-SignalStatus", + "Reg-SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatus_tags_76, + sizeof(asn_DEF_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_Reg_SignalStatus_tags_76[0]), /* 1 */ + asn_DEF_Reg_SignalStatus_tags_76, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_Reg_SignalStatus_tags_76[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatus_76, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatus_specs_76 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage__regExtValue, choice.SignalStatusPackage_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SignalStatusPackage-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_81[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SignalStatusPackage-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_81 = { + sizeof(struct Reg_SignalStatusPackage__regExtValue), + offsetof(struct Reg_SignalStatusPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusPackage__regExtValue, present), + sizeof(((struct Reg_SignalStatusPackage__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_81, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_81 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_81, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_79[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_80, &asn_PER_memb_regionId_constr_80, memb_regionId_constraint_79 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_81, + select_Reg_SignalStatusPackage_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_81, &asn_PER_memb_regExtValue_constr_81, memb_regExtValue_constraint_79 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusPackage_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusPackage_tag2el_79[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_79 = { + sizeof(struct Reg_SignalStatusPackage), + offsetof(struct Reg_SignalStatusPackage, _asn_ctx), + asn_MAP_Reg_SignalStatusPackage_tag2el_79, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage = { + "Reg-SignalStatusPackage", + "Reg-SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusPackage_tags_79, + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + asn_DEF_Reg_SignalStatusPackage_tags_79, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatusPackage_79, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusPackage_specs_79 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RegulatorySpeedLimit.c b/vcits/spatem/src/RegulatorySpeedLimit.c new file mode 100644 index 0000000..a13e962 --- /dev/null +++ b/vcits/spatem/src/RegulatorySpeedLimit.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RegulatorySpeedLimit.h" + +asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_RegulatorySpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RegulatorySpeedLimit_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1 = { + sizeof(struct RegulatorySpeedLimit), + offsetof(struct RegulatorySpeedLimit, _asn_ctx), + asn_MAP_RegulatorySpeedLimit_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit = { + "RegulatorySpeedLimit", + "RegulatorySpeedLimit", + &asn_OP_SEQUENCE, + asn_DEF_RegulatorySpeedLimit_tags_1, + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_RegulatorySpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RegulatorySpeedLimit_1, + 2, /* Elements count */ + &asn_SPC_RegulatorySpeedLimit_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RejectedReason.c b/vcits/spatem/src/RejectedReason.c new file mode 100644 index 0000000..0d9f37c --- /dev/null +++ b/vcits/spatem/src/RejectedReason.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RejectedReason.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RejectedReason_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RejectedReason_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RejectedReason_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "exceptionalCondition" }, + { 2, 22, "maxWaitingTimeExceeded" }, + { 3, 18, "ptPriorityDisabled" }, + { 4, 23, "higherPTPriorityGranted" }, + { 5, 22, "vehicleTrackingUnknown" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RejectedReason_enum2value_1[] = { + 1, /* exceptionalCondition(1) */ + 4, /* higherPTPriorityGranted(4) */ + 2, /* maxWaitingTimeExceeded(2) */ + 3, /* ptPriorityDisabled(3) */ + 0, /* unknown(0) */ + 5 /* vehicleTrackingUnknown(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RejectedReason_specs_1 = { + asn_MAP_RejectedReason_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RejectedReason_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RejectedReason_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RejectedReason = { + "RejectedReason", + "RejectedReason", + &asn_OP_NativeEnumerated, + asn_DEF_RejectedReason_tags_1, + sizeof(asn_DEF_RejectedReason_tags_1) + /sizeof(asn_DEF_RejectedReason_tags_1[0]), /* 1 */ + asn_DEF_RejectedReason_tags_1, /* Same as above */ + sizeof(asn_DEF_RejectedReason_tags_1) + /sizeof(asn_DEF_RejectedReason_tags_1[0]), /* 1 */ + { &asn_OER_type_RejectedReason_constr_1, &asn_PER_type_RejectedReason_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RejectedReason_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RelevanceDistance.c b/vcits/spatem/src/RelevanceDistance.c new file mode 100644 index 0000000..de457a2 --- /dev/null +++ b/vcits/spatem/src/RelevanceDistance.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RelevanceDistance.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceDistance_value2enum_1[] = { + { 0, 11, "lessThan50m" }, + { 1, 12, "lessThan100m" }, + { 2, 12, "lessThan200m" }, + { 3, 12, "lessThan500m" }, + { 4, 13, "lessThan1000m" }, + { 5, 11, "lessThan5km" }, + { 6, 12, "lessThan10km" }, + { 7, 8, "over10km" } +}; +static const unsigned int asn_MAP_RelevanceDistance_enum2value_1[] = { + 4, /* lessThan1000m(4) */ + 1, /* lessThan100m(1) */ + 6, /* lessThan10km(6) */ + 2, /* lessThan200m(2) */ + 3, /* lessThan500m(3) */ + 0, /* lessThan50m(0) */ + 5, /* lessThan5km(5) */ + 7 /* over10km(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceDistance_specs_1 = { + asn_MAP_RelevanceDistance_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceDistance_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceDistance = { + "RelevanceDistance", + "RelevanceDistance", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceDistance_tags_1, + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + asn_DEF_RelevanceDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceDistance_constr_1, &asn_PER_type_RelevanceDistance_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceDistance_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RelevanceTrafficDirection.c b/vcits/spatem/src/RelevanceTrafficDirection.c new file mode 100644 index 0000000..96d16ee --- /dev/null +++ b/vcits/spatem/src/RelevanceTrafficDirection.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RelevanceTrafficDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceTrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 15, "upstreamTraffic" }, + { 2, 17, "downstreamTraffic" }, + { 3, 15, "oppositeTraffic" } +}; +static const unsigned int asn_MAP_RelevanceTrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 2, /* downstreamTraffic(2) */ + 3, /* oppositeTraffic(3) */ + 1 /* upstreamTraffic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceTrafficDirection_specs_1 = { + asn_MAP_RelevanceTrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceTrafficDirection_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceTrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection = { + "RelevanceTrafficDirection", + "RelevanceTrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceTrafficDirection_tags_1, + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_RelevanceTrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceTrafficDirection_constr_1, &asn_PER_type_RelevanceTrafficDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceTrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RequestID.c b/vcits/spatem/src/RequestID.c new file mode 100644 index 0000000..9467917 --- /dev/null +++ b/vcits/spatem/src/RequestID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RequestID.h" + +int +RequestID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RequestID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RequestID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestID = { + "RequestID", + "RequestID", + &asn_OP_NativeInteger, + asn_DEF_RequestID_tags_1, + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + asn_DEF_RequestID_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestID_constr_1, &asn_PER_type_RequestID_constr_1, RequestID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/RequestImportanceLevel.c b/vcits/spatem/src/RequestImportanceLevel.c new file mode 100644 index 0000000..62d43a3 --- /dev/null +++ b/vcits/spatem/src/RequestImportanceLevel.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RequestImportanceLevel.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestImportanceLevel_value2enum_1[] = { + { 0, 29, "requestImportanceLevelUnKnown" }, + { 1, 23, "requestImportanceLevel1" }, + { 2, 23, "requestImportanceLevel2" }, + { 3, 23, "requestImportanceLevel3" }, + { 4, 23, "requestImportanceLevel4" }, + { 5, 23, "requestImportanceLevel5" }, + { 6, 23, "requestImportanceLevel6" }, + { 7, 23, "requestImportanceLevel7" }, + { 8, 23, "requestImportanceLevel8" }, + { 9, 23, "requestImportanceLevel9" }, + { 10, 24, "requestImportanceLevel10" }, + { 11, 24, "requestImportanceLevel11" }, + { 12, 24, "requestImportanceLevel12" }, + { 13, 24, "requestImportanceLevel13" }, + { 14, 24, "requestImportanceLevel14" }, + { 15, 25, "requestImportanceReserved" } +}; +static const unsigned int asn_MAP_RequestImportanceLevel_enum2value_1[] = { + 1, /* requestImportanceLevel1(1) */ + 10, /* requestImportanceLevel10(10) */ + 11, /* requestImportanceLevel11(11) */ + 12, /* requestImportanceLevel12(12) */ + 13, /* requestImportanceLevel13(13) */ + 14, /* requestImportanceLevel14(14) */ + 2, /* requestImportanceLevel2(2) */ + 3, /* requestImportanceLevel3(3) */ + 4, /* requestImportanceLevel4(4) */ + 5, /* requestImportanceLevel5(5) */ + 6, /* requestImportanceLevel6(6) */ + 7, /* requestImportanceLevel7(7) */ + 8, /* requestImportanceLevel8(8) */ + 9, /* requestImportanceLevel9(9) */ + 0, /* requestImportanceLevelUnKnown(0) */ + 15 /* requestImportanceReserved(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1 = { + asn_MAP_RequestImportanceLevel_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestImportanceLevel_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestImportanceLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel = { + "RequestImportanceLevel", + "RequestImportanceLevel", + &asn_OP_NativeEnumerated, + asn_DEF_RequestImportanceLevel_tags_1, + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + asn_DEF_RequestImportanceLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestImportanceLevel_constr_1, &asn_PER_type_RequestImportanceLevel_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestImportanceLevel_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RequestResponseIndication.c b/vcits/spatem/src/RequestResponseIndication.c new file mode 100644 index 0000000..06861cf --- /dev/null +++ b/vcits/spatem/src/RequestResponseIndication.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RequestResponseIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestResponseIndication_value2enum_1[] = { + { 0, 7, "request" }, + { 1, 8, "response" } +}; +static const unsigned int asn_MAP_RequestResponseIndication_enum2value_1[] = { + 0, /* request(0) */ + 1 /* response(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RequestResponseIndication_specs_1 = { + asn_MAP_RequestResponseIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestResponseIndication_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestResponseIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication = { + "RequestResponseIndication", + "RequestResponseIndication", + &asn_OP_NativeEnumerated, + asn_DEF_RequestResponseIndication_tags_1, + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + asn_DEF_RequestResponseIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestResponseIndication_constr_1, &asn_PER_type_RequestResponseIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestResponseIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RequestSubRole.c b/vcits/spatem/src/RequestSubRole.c new file mode 100644 index 0000000..0c5d8e4 --- /dev/null +++ b/vcits/spatem/src/RequestSubRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RequestSubRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestSubRole_value2enum_1[] = { + { 0, 21, "requestSubRoleUnKnown" }, + { 1, 15, "requestSubRole1" }, + { 2, 15, "requestSubRole2" }, + { 3, 15, "requestSubRole3" }, + { 4, 15, "requestSubRole4" }, + { 5, 15, "requestSubRole5" }, + { 6, 15, "requestSubRole6" }, + { 7, 15, "requestSubRole7" }, + { 8, 15, "requestSubRole8" }, + { 9, 15, "requestSubRole9" }, + { 10, 16, "requestSubRole10" }, + { 11, 16, "requestSubRole11" }, + { 12, 16, "requestSubRole12" }, + { 13, 16, "requestSubRole13" }, + { 14, 16, "requestSubRole14" }, + { 15, 22, "requestSubRoleReserved" } +}; +static const unsigned int asn_MAP_RequestSubRole_enum2value_1[] = { + 1, /* requestSubRole1(1) */ + 10, /* requestSubRole10(10) */ + 11, /* requestSubRole11(11) */ + 12, /* requestSubRole12(12) */ + 13, /* requestSubRole13(13) */ + 14, /* requestSubRole14(14) */ + 2, /* requestSubRole2(2) */ + 3, /* requestSubRole3(3) */ + 4, /* requestSubRole4(4) */ + 5, /* requestSubRole5(5) */ + 6, /* requestSubRole6(6) */ + 7, /* requestSubRole7(7) */ + 8, /* requestSubRole8(8) */ + 9, /* requestSubRole9(9) */ + 15, /* requestSubRoleReserved(15) */ + 0 /* requestSubRoleUnKnown(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1 = { + asn_MAP_RequestSubRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestSubRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestSubRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestSubRole = { + "RequestSubRole", + "RequestSubRole", + &asn_OP_NativeEnumerated, + asn_DEF_RequestSubRole_tags_1, + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + asn_DEF_RequestSubRole_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestSubRole_constr_1, &asn_PER_type_RequestSubRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestSubRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RequestorDescription-addGrpC.c b/vcits/spatem/src/RequestorDescription-addGrpC.c new file mode 100644 index 0000000..b1d5418 --- /dev/null +++ b/vcits/spatem/src/RequestorDescription-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RequestorDescription-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RequestorDescription_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct RequestorDescription_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fuel" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription_addGrpC, batteryStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BatteryStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "batteryStatus" + }, +}; +static const int asn_MAP_RequestorDescription_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fuel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* batteryStatus */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_addGrpC_specs_1 = { + sizeof(struct RequestorDescription_addGrpC), + offsetof(struct RequestorDescription_addGrpC, _asn_ctx), + asn_MAP_RequestorDescription_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RequestorDescription_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription_addGrpC = { + "RequestorDescription-addGrpC", + "RequestorDescription-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_addGrpC_tags_1, + sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorDescription_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_RequestorDescription_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RequestorDescription.c b/vcits/spatem/src/RequestorDescription.c new file mode 100644 index 0000000..f38b4ad --- /dev/null +++ b/vcits/spatem/src/RequestorDescription.c @@ -0,0 +1,214 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RequestorDescription.h" + +#include "RequestorType.h" +#include "RequestorPositionVector.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RequestorDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct RequestorDescription__regional), + offsetof(struct RequestorDescription__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RequestorDescription_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorDescription, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 8, offsetof(struct RequestorDescription, type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 7, offsetof(struct RequestorDescription, position), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorPositionVector, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 6, offsetof(struct RequestorDescription, name), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 5, offsetof(struct RequestorDescription, routeName), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "routeName" + }, + { ATF_POINTER, 4, offsetof(struct RequestorDescription, transitStatus), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitStatus" + }, + { ATF_POINTER, 3, offsetof(struct RequestorDescription, transitOccupancy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleOccupancy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitOccupancy" + }, + { ATF_POINTER, 2, offsetof(struct RequestorDescription, transitSchedule), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitSchedule" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorDescription_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* routeName */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* transitStatus */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* transitOccupancy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* transitSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1 = { + sizeof(struct RequestorDescription), + offsetof(struct RequestorDescription, _asn_ctx), + asn_MAP_RequestorDescription_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_RequestorDescription_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription = { + "RequestorDescription", + "RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_tags_1, + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorDescription_1, + 9, /* Elements count */ + &asn_SPC_RequestorDescription_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RequestorPositionVector.c b/vcits/spatem/src/RequestorPositionVector.c new file mode 100644 index 0000000..62367be --- /dev/null +++ b/vcits/spatem/src/RequestorPositionVector.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RequestorPositionVector.h" + +#include "TransmissionAndSpeed.h" +asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorPositionVector, position), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 2, offsetof(struct RequestorPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 1, offsetof(struct RequestorPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const int asn_MAP_RequestorPositionVector_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_RequestorPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1 = { + sizeof(struct RequestorPositionVector), + offsetof(struct RequestorPositionVector, _asn_ctx), + asn_MAP_RequestorPositionVector_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RequestorPositionVector_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector = { + "RequestorPositionVector", + "RequestorPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_RequestorPositionVector_tags_1, + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + asn_DEF_RequestorPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorPositionVector_1, + 3, /* Elements count */ + &asn_SPC_RequestorPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RequestorType.c b/vcits/spatem/src/RequestorType.c new file mode 100644 index 0000000..c1d5f18 --- /dev/null +++ b/vcits/spatem/src/RequestorType.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RequestorType.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_RequestorType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorType, role), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 5, offsetof(struct RequestorType, subrole), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestSubRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subrole" + }, + { ATF_POINTER, 4, offsetof(struct RequestorType, request), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestImportanceLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 3, offsetof(struct RequestorType, iso3883), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Iso3833VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iso3883" + }, + { ATF_POINTER, 2, offsetof(struct RequestorType, hpmsType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hpmsType" + }, + { ATF_POINTER, 1, offsetof(struct RequestorType, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorType_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_RequestorType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subrole */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* iso3883 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* hpmsType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1 = { + sizeof(struct RequestorType), + offsetof(struct RequestorType, _asn_ctx), + asn_MAP_RequestorType_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_RequestorType_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorType = { + "RequestorType", + "RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_RequestorType_tags_1, + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + asn_DEF_RequestorType_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorType_1, + 6, /* Elements count */ + &asn_SPC_RequestorType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c b/vcits/spatem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c new file mode 100644 index 0000000..65068aa --- /dev/null +++ b/vcits/spatem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RescueAndRecoveryWorkInProgressSubCauseCode.h" + +int +RescueAndRecoveryWorkInProgressSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode = { + "RescueAndRecoveryWorkInProgressSubCauseCode", + "RescueAndRecoveryWorkInProgressSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, &asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, RescueAndRecoveryWorkInProgressSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/RestrictedTypes.c b/vcits/spatem/src/RestrictedTypes.c new file mode 100644 index 0000000..e64f3bd --- /dev/null +++ b/vcits/spatem/src/RestrictedTypes.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RestrictedTypes.h" + +static asn_oer_constraints_t asn_OER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RestrictedTypes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictedTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_RestrictedTypes_specs_1 = { + sizeof(struct RestrictedTypes), + offsetof(struct RestrictedTypes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictedTypes = { + "RestrictedTypes", + "RestrictedTypes", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictedTypes_tags_1, + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + asn_DEF_RestrictedTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictedTypes_constr_1, &asn_PER_type_RestrictedTypes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictedTypes_1, + 1, /* Single element */ + &asn_SPC_RestrictedTypes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RestrictionAppliesTo.c b/vcits/spatem/src/RestrictionAppliesTo.c new file mode 100644 index 0000000..90e880b --- /dev/null +++ b/vcits/spatem/src/RestrictionAppliesTo.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RestrictionAppliesTo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RestrictionAppliesTo_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 15, "equippedTransit" }, + { 2, 13, "equippedTaxis" }, + { 3, 13, "equippedOther" }, + { 4, 17, "emissionCompliant" }, + { 5, 15, "equippedBicycle" }, + { 6, 15, "weightCompliant" }, + { 7, 15, "heightCompliant" }, + { 8, 11, "pedestrians" }, + { 9, 17, "slowMovingPersons" }, + { 10, 15, "wheelchairUsers" }, + { 11, 18, "visualDisabilities" }, + { 12, 17, "audioDisabilities" }, + { 13, 24, "otherUnknownDisabilities" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RestrictionAppliesTo_enum2value_1[] = { + 12, /* audioDisabilities(12) */ + 4, /* emissionCompliant(4) */ + 5, /* equippedBicycle(5) */ + 3, /* equippedOther(3) */ + 2, /* equippedTaxis(2) */ + 1, /* equippedTransit(1) */ + 7, /* heightCompliant(7) */ + 0, /* none(0) */ + 13, /* otherUnknownDisabilities(13) */ + 8, /* pedestrians(8) */ + 9, /* slowMovingPersons(9) */ + 11, /* visualDisabilities(11) */ + 6, /* weightCompliant(6) */ + 10 /* wheelchairUsers(10) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1 = { + asn_MAP_RestrictionAppliesTo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RestrictionAppliesTo_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RestrictionAppliesTo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo = { + "RestrictionAppliesTo", + "RestrictionAppliesTo", + &asn_OP_NativeEnumerated, + asn_DEF_RestrictionAppliesTo_tags_1, + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + asn_DEF_RestrictionAppliesTo_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionAppliesTo_constr_1, &asn_PER_type_RestrictionAppliesTo_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RestrictionAppliesTo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RestrictionClassAssignment.c b/vcits/spatem/src/RestrictionClassAssignment.c new file mode 100644 index 0000000..808899f --- /dev/null +++ b/vcits/spatem/src/RestrictionClassAssignment.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RestrictionClassAssignment.h" + +asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, users), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionUserTypeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "users" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassAssignment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionClassAssignment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* users */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1 = { + sizeof(struct RestrictionClassAssignment), + offsetof(struct RestrictionClassAssignment, _asn_ctx), + asn_MAP_RestrictionClassAssignment_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment = { + "RestrictionClassAssignment", + "RestrictionClassAssignment", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionClassAssignment_tags_1, + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassAssignment_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RestrictionClassAssignment_1, + 2, /* Elements count */ + &asn_SPC_RestrictionClassAssignment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RestrictionClassID.c b/vcits/spatem/src/RestrictionClassID.c new file mode 100644 index 0000000..cf9b1a1 --- /dev/null +++ b/vcits/spatem/src/RestrictionClassID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RestrictionClassID.h" + +int +RestrictionClassID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassID = { + "RestrictionClassID", + "RestrictionClassID", + &asn_OP_NativeInteger, + asn_DEF_RestrictionClassID_tags_1, + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassID_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionClassID_constr_1, &asn_PER_type_RestrictionClassID_constr_1, RestrictionClassID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/RestrictionClassList.c b/vcits/spatem/src/RestrictionClassList.c new file mode 100644 index 0000000..c497cb1 --- /dev/null +++ b/vcits/spatem/src/RestrictionClassList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RestrictionClassList.h" + +#include "RestrictionClassAssignment.h" +static asn_oer_constraints_t asn_OER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..254)) */}; +asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 254 } /* (SIZE(1..254)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictionClassList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionClassAssignment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1 = { + sizeof(struct RestrictionClassList), + offsetof(struct RestrictionClassList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassList = { + "RestrictionClassList", + "RestrictionClassList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionClassList_tags_1, + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionClassList_constr_1, &asn_PER_type_RestrictionClassList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictionClassList_1, + 1, /* Single element */ + &asn_SPC_RestrictionClassList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RestrictionUserType-addGrpC.c b/vcits/spatem/src/RestrictionUserType-addGrpC.c new file mode 100644 index 0000000..5995224 --- /dev/null +++ b/vcits/spatem/src/RestrictionUserType-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RestrictionUserType-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct RestrictionUserType_addGrpC, emission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmissionType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emission" + }, + { ATF_POINTER, 1, offsetof(struct RestrictionUserType_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fuel" + }, +}; +static const int asn_MAP_RestrictionUserType_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RestrictionUserType_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* emission */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fuel */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1 = { + sizeof(struct RestrictionUserType_addGrpC), + offsetof(struct RestrictionUserType_addGrpC, _asn_ctx), + asn_MAP_RestrictionUserType_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RestrictionUserType_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC = { + "RestrictionUserType-addGrpC", + "RestrictionUserType-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionUserType_addGrpC_tags_1, + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserType_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RestrictionUserType_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RestrictionUserType.c b/vcits/spatem/src/RestrictionUserType.c new file mode 100644 index 0000000..8147603 --- /dev/null +++ b/vcits/spatem/src/RestrictionUserType.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RestrictionUserType.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RestrictionUserType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_3 = { + sizeof(struct RestrictionUserType__regional), + offsetof(struct RestrictionUserType__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_3 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_3, + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]) - 1, /* 1 */ + asn_DEF_regional_tags_3, /* Same as above */ + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]), /* 2 */ + { &asn_OER_type_regional_constr_3, &asn_PER_type_regional_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_regional_3, + 1, /* Single element */ + &asn_SPC_regional_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RestrictionUserType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.basicType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionAppliesTo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "basicType" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_regional_3, + 0, + { &asn_OER_memb_regional_constr_3, &asn_PER_memb_regional_constr_3, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1 = { + sizeof(struct RestrictionUserType), + offsetof(struct RestrictionUserType, _asn_ctx), + offsetof(struct RestrictionUserType, present), + sizeof(((struct RestrictionUserType *)0)->present), + asn_MAP_RestrictionUserType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType = { + "RestrictionUserType", + "RestrictionUserType", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_RestrictionUserType_constr_1, &asn_PER_type_RestrictionUserType_constr_1, CHOICE_constraint }, + asn_MBR_RestrictionUserType_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RestrictionUserTypeList.c b/vcits/spatem/src/RestrictionUserTypeList.c new file mode 100644 index 0000000..60f5e90 --- /dev/null +++ b/vcits/spatem/src/RestrictionUserTypeList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RestrictionUserTypeList.h" + +#include "RestrictionUserType.h" +static asn_oer_constraints_t asn_OER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RestrictionUserType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionUserTypeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1 = { + sizeof(struct RestrictionUserTypeList), + offsetof(struct RestrictionUserTypeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList = { + "RestrictionUserTypeList", + "RestrictionUserTypeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionUserTypeList_tags_1, + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserTypeList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionUserTypeList_constr_1, &asn_PER_type_RestrictionUserTypeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictionUserTypeList_1, + 1, /* Single element */ + &asn_SPC_RestrictionUserTypeList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RoadLaneSetList.c b/vcits/spatem/src/RoadLaneSetList.c new file mode 100644 index 0000000..78d3fbe --- /dev/null +++ b/vcits/spatem/src/RoadLaneSetList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RoadLaneSetList.h" + +#include "GenericLane.h" +static asn_oer_constraints_t asn_OER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadLaneSetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1 = { + sizeof(struct RoadLaneSetList), + offsetof(struct RoadLaneSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList = { + "RoadLaneSetList", + "RoadLaneSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadLaneSetList_tags_1, + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + asn_DEF_RoadLaneSetList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadLaneSetList_constr_1, &asn_PER_type_RoadLaneSetList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadLaneSetList_1, + 1, /* Single element */ + &asn_SPC_RoadLaneSetList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RoadRegulatorID.c b/vcits/spatem/src/RoadRegulatorID.c new file mode 100644 index 0000000..3bf4b34 --- /dev/null +++ b/vcits/spatem/src/RoadRegulatorID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RoadRegulatorID.h" + +int +RoadRegulatorID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadRegulatorID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID = { + "RoadRegulatorID", + "RoadRegulatorID", + &asn_OP_NativeInteger, + asn_DEF_RoadRegulatorID_tags_1, + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + asn_DEF_RoadRegulatorID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadRegulatorID_constr_1, &asn_PER_type_RoadRegulatorID_constr_1, RoadRegulatorID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/RoadSegment.c b/vcits/spatem/src/RoadSegment.c new file mode 100644 index 0000000..c163f1a --- /dev/null +++ b/vcits/spatem/src/RoadSegment.c @@ -0,0 +1,203 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RoadSegment.h" + +#include "SpeedLimitList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RoadSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct RoadSegment__regional), + offsetof(struct RoadSegment__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { &asn_OER_type_regional_constr_9, &asn_PER_type_regional_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RoadSegment_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegment, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct RoadSegment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, roadLaneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadLaneSetList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadLaneSet" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { &asn_OER_memb_regional_constr_9, &asn_PER_memb_regional_constr_9, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RoadSegment_oms_1[] = { 0, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_RoadSegment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* roadLaneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1 = { + sizeof(struct RoadSegment), + offsetof(struct RoadSegment, _asn_ctx), + asn_MAP_RoadSegment_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_RoadSegment_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegment = { + "RoadSegment", + "RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegment_tags_1, + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + asn_DEF_RoadSegment_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSegment_1, + 8, /* Elements count */ + &asn_SPC_RoadSegment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RoadSegmentID.c b/vcits/spatem/src/RoadSegmentID.c new file mode 100644 index 0000000..04d641c --- /dev/null +++ b/vcits/spatem/src/RoadSegmentID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RoadSegmentID.h" + +int +RoadSegmentID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentID = { + "RoadSegmentID", + "RoadSegmentID", + &asn_OP_NativeInteger, + asn_DEF_RoadSegmentID_tags_1, + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSegmentID_constr_1, &asn_PER_type_RoadSegmentID_constr_1, RoadSegmentID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/RoadSegmentList.c b/vcits/spatem/src/RoadSegmentList.c new file mode 100644 index 0000000..879af3e --- /dev/null +++ b/vcits/spatem/src/RoadSegmentList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RoadSegmentList.h" + +#include "RoadSegment.h" +static asn_oer_constraints_t asn_OER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadSegmentList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RoadSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1 = { + sizeof(struct RoadSegmentList), + offsetof(struct RoadSegmentList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentList = { + "RoadSegmentList", + "RoadSegmentList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadSegmentList_tags_1, + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSegmentList_constr_1, &asn_PER_type_RoadSegmentList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadSegmentList_1, + 1, /* Single element */ + &asn_SPC_RoadSegmentList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RoadSegmentReferenceID.c b/vcits/spatem/src/RoadSegmentReferenceID.c new file mode 100644 index 0000000..4ceace7 --- /dev/null +++ b/vcits/spatem/src/RoadSegmentReferenceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RoadSegmentReferenceID.h" + +asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegmentReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegmentReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_RoadSegmentReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_RoadSegmentReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegmentReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1 = { + sizeof(struct RoadSegmentReferenceID), + offsetof(struct RoadSegmentReferenceID, _asn_ctx), + asn_MAP_RoadSegmentReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RoadSegmentReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID = { + "RoadSegmentReferenceID", + "RoadSegmentReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegmentReferenceID_tags_1, + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSegmentReferenceID_1, + 2, /* Elements count */ + &asn_SPC_RoadSegmentReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RoadType.c b/vcits/spatem/src/RoadType.c new file mode 100644 index 0000000..ecec475 --- /dev/null +++ b/vcits/spatem/src/RoadType.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RoadType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RoadType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RoadType_value2enum_1[] = { + { 0, 43, "urban-NoStructuralSeparationToOppositeLanes" }, + { 1, 45, "urban-WithStructuralSeparationToOppositeLanes" }, + { 2, 46, "nonUrban-NoStructuralSeparationToOppositeLanes" }, + { 3, 48, "nonUrban-WithStructuralSeparationToOppositeLanes" } +}; +static const unsigned int asn_MAP_RoadType_enum2value_1[] = { + 2, /* nonUrban-NoStructuralSeparationToOppositeLanes(2) */ + 3, /* nonUrban-WithStructuralSeparationToOppositeLanes(3) */ + 0, /* urban-NoStructuralSeparationToOppositeLanes(0) */ + 1 /* urban-WithStructuralSeparationToOppositeLanes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RoadType_specs_1 = { + asn_MAP_RoadType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RoadType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadType = { + "RoadType", + "RoadType", + &asn_OP_NativeEnumerated, + asn_DEF_RoadType_tags_1, + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + asn_DEF_RoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadType_constr_1, &asn_PER_type_RoadType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RoadType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/RoadwayCrownAngle.c b/vcits/spatem/src/RoadwayCrownAngle.c new file mode 100644 index 0000000..d2856c0 --- /dev/null +++ b/vcits/spatem/src/RoadwayCrownAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RoadwayCrownAngle.h" + +int +RoadwayCrownAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -128 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-128..127) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -128, 127 } /* (-128..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadwayCrownAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle = { + "RoadwayCrownAngle", + "RoadwayCrownAngle", + &asn_OP_NativeInteger, + asn_DEF_RoadwayCrownAngle_tags_1, + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + asn_DEF_RoadwayCrownAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadwayCrownAngle_constr_1, &asn_PER_type_RoadwayCrownAngle_constr_1, RoadwayCrownAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/RoadworksSubCauseCode.c b/vcits/spatem/src/RoadworksSubCauseCode.c new file mode 100644 index 0000000..34252ac --- /dev/null +++ b/vcits/spatem/src/RoadworksSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "RoadworksSubCauseCode.h" + +int +RoadworksSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadworksSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode = { + "RoadworksSubCauseCode", + "RoadworksSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RoadworksSubCauseCode_tags_1, + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RoadworksSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadworksSubCauseCode_constr_1, &asn_PER_type_RoadworksSubCauseCode_constr_1, RoadworksSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SPAT.c b/vcits/spatem/src/SPAT.c new file mode 100644 index 0000000..f938175 --- /dev/null +++ b/vcits/spatem/src/SPAT.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SPAT.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SPAT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SPAT__regional), + offsetof(struct SPAT__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SPAT_1[] = { + { ATF_POINTER, 2, offsetof(struct SPAT, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct SPAT, intersections), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SPAT_oms_1[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_SPAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SPAT_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SPAT_specs_1 = { + sizeof(struct SPAT), + offsetof(struct SPAT, _asn_ctx), + asn_MAP_SPAT_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SPAT_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SPAT = { + "SPAT", + "SPAT", + &asn_OP_SEQUENCE, + asn_DEF_SPAT_tags_1, + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + asn_DEF_SPAT_tags_1, /* Same as above */ + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SPAT_1, + 4, /* Elements count */ + &asn_SPC_SPAT_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SPATEM.c b/vcits/spatem/src/SPATEM.c new file mode 100644 index 0000000..b6695ed --- /dev/null +++ b/vcits/spatem/src/SPATEM.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPATEM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/SPATEM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SPATEM.h" + +static asn_TYPE_member_t asn_MBR_SPATEM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SPATEM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsPduHeader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct SPATEM, spat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SPAT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spat" + }, +}; +static const ber_tlv_tag_t asn_DEF_SPATEM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SPATEM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* spat */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SPATEM_specs_1 = { + sizeof(struct SPATEM), + offsetof(struct SPATEM, _asn_ctx), + asn_MAP_SPATEM_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SPATEM = { + "SPATEM", + "SPATEM", + &asn_OP_SEQUENCE, + asn_DEF_SPATEM_tags_1, + sizeof(asn_DEF_SPATEM_tags_1) + /sizeof(asn_DEF_SPATEM_tags_1[0]), /* 1 */ + asn_DEF_SPATEM_tags_1, /* Same as above */ + sizeof(asn_DEF_SPATEM_tags_1) + /sizeof(asn_DEF_SPATEM_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SPATEM_1, + 2, /* Elements count */ + &asn_SPC_SPATEM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Scale-B12.c b/vcits/spatem/src/Scale-B12.c new file mode 100644 index 0000000..5237e4d --- /dev/null +++ b/vcits/spatem/src/Scale-B12.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Scale-B12.h" + +int +Scale_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Scale_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_Scale_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Scale_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Scale_B12 = { + "Scale-B12", + "Scale-B12", + &asn_OP_NativeInteger, + asn_DEF_Scale_B12_tags_1, + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + asn_DEF_Scale_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + { &asn_OER_type_Scale_B12_constr_1, &asn_PER_type_Scale_B12_constr_1, Scale_B12_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SegmentAttributeXY.c b/vcits/spatem/src/SegmentAttributeXY.c new file mode 100644 index 0000000..6e92ffe --- /dev/null +++ b/vcits/spatem/src/SegmentAttributeXY.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SegmentAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 37 } /* (0..37,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SegmentAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 10, "doNotBlock" }, + { 2, 9, "whiteLine" }, + { 3, 15, "mergingLaneLeft" }, + { 4, 16, "mergingLaneRight" }, + { 5, 10, "curbOnLeft" }, + { 6, 11, "curbOnRight" }, + { 7, 17, "loadingzoneOnLeft" }, + { 8, 18, "loadingzoneOnRight" }, + { 9, 18, "turnOutPointOnLeft" }, + { 10, 19, "turnOutPointOnRight" }, + { 11, 21, "adjacentParkingOnLeft" }, + { 12, 22, "adjacentParkingOnRight" }, + { 13, 22, "adjacentBikeLaneOnLeft" }, + { 14, 23, "adjacentBikeLaneOnRight" }, + { 15, 14, "sharedBikeLane" }, + { 16, 14, "bikeBoxInFront" }, + { 17, 17, "transitStopOnLeft" }, + { 18, 18, "transitStopOnRight" }, + { 19, 17, "transitStopInLane" }, + { 20, 24, "sharedWithTrackedVehicle" }, + { 21, 10, "safeIsland" }, + { 22, 15, "lowCurbsPresent" }, + { 23, 18, "rumbleStripPresent" }, + { 24, 23, "audibleSignalingPresent" }, + { 25, 21, "adaptiveTimingPresent" }, + { 26, 22, "rfSignalRequestPresent" }, + { 27, 20, "partialCurbIntrusion" }, + { 28, 11, "taperToLeft" }, + { 29, 12, "taperToRight" }, + { 30, 17, "taperToCenterLine" }, + { 31, 15, "parallelParking" }, + { 32, 13, "headInParking" }, + { 33, 11, "freeParking" }, + { 34, 25, "timeRestrictionsOnParking" }, + { 35, 10, "costToPark" }, + { 36, 19, "midBlockCurbPresent" }, + { 37, 21, "unEvenPavementPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SegmentAttributeXY_enum2value_1[] = { + 25, /* adaptiveTimingPresent(25) */ + 13, /* adjacentBikeLaneOnLeft(13) */ + 14, /* adjacentBikeLaneOnRight(14) */ + 11, /* adjacentParkingOnLeft(11) */ + 12, /* adjacentParkingOnRight(12) */ + 24, /* audibleSignalingPresent(24) */ + 16, /* bikeBoxInFront(16) */ + 35, /* costToPark(35) */ + 5, /* curbOnLeft(5) */ + 6, /* curbOnRight(6) */ + 1, /* doNotBlock(1) */ + 33, /* freeParking(33) */ + 32, /* headInParking(32) */ + 7, /* loadingzoneOnLeft(7) */ + 8, /* loadingzoneOnRight(8) */ + 22, /* lowCurbsPresent(22) */ + 3, /* mergingLaneLeft(3) */ + 4, /* mergingLaneRight(4) */ + 36, /* midBlockCurbPresent(36) */ + 31, /* parallelParking(31) */ + 27, /* partialCurbIntrusion(27) */ + 0, /* reserved(0) */ + 26, /* rfSignalRequestPresent(26) */ + 23, /* rumbleStripPresent(23) */ + 21, /* safeIsland(21) */ + 15, /* sharedBikeLane(15) */ + 20, /* sharedWithTrackedVehicle(20) */ + 30, /* taperToCenterLine(30) */ + 28, /* taperToLeft(28) */ + 29, /* taperToRight(29) */ + 34, /* timeRestrictionsOnParking(34) */ + 19, /* transitStopInLane(19) */ + 17, /* transitStopOnLeft(17) */ + 18, /* transitStopOnRight(18) */ + 9, /* turnOutPointOnLeft(9) */ + 10, /* turnOutPointOnRight(10) */ + 37, /* unEvenPavementPresent(37) */ + 2 /* whiteLine(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1 = { + asn_MAP_SegmentAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SegmentAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 38, /* Number of elements in the maps */ + 39, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY = { + "SegmentAttributeXY", + "SegmentAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_SegmentAttributeXY_tags_1, + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentAttributeXY_constr_1, &asn_PER_type_SegmentAttributeXY_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SegmentAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SegmentAttributeXYList.c b/vcits/spatem/src/SegmentAttributeXYList.c new file mode 100644 index 0000000..53e4989 --- /dev/null +++ b/vcits/spatem/src/SegmentAttributeXYList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SegmentAttributeXYList.h" + +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_SegmentAttributeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1 = { + sizeof(struct SegmentAttributeXYList), + offsetof(struct SegmentAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList = { + "SegmentAttributeXYList", + "SegmentAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SegmentAttributeXYList_tags_1, + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentAttributeXYList_constr_1, &asn_PER_type_SegmentAttributeXYList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SegmentAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_SegmentAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SemiAxisLength.c b/vcits/spatem/src/SemiAxisLength.c new file mode 100644 index 0000000..8a1992e --- /dev/null +++ b/vcits/spatem/src/SemiAxisLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SemiAxisLength.h" + +int +SemiAxisLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiAxisLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiAxisLength = { + "SemiAxisLength", + "SemiAxisLength", + &asn_OP_NativeInteger, + asn_DEF_SemiAxisLength_tags_1, + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + asn_DEF_SemiAxisLength_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiAxisLength_constr_1, &asn_PER_type_SemiAxisLength_constr_1, SemiAxisLength_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SemiMajorAxisAccuracy.c b/vcits/spatem/src/SemiMajorAxisAccuracy.c new file mode 100644 index 0000000..6d4e000 --- /dev/null +++ b/vcits/spatem/src/SemiMajorAxisAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SemiMajorAxisAccuracy.h" + +int +SemiMajorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy = { + "SemiMajorAxisAccuracy", + "SemiMajorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMajorAxisAccuracy_constr_1, &asn_PER_type_SemiMajorAxisAccuracy_constr_1, SemiMajorAxisAccuracy_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SemiMajorAxisOrientation.c b/vcits/spatem/src/SemiMajorAxisOrientation.c new file mode 100644 index 0000000..4e0dab5 --- /dev/null +++ b/vcits/spatem/src/SemiMajorAxisOrientation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SemiMajorAxisOrientation.h" + +int +SemiMajorAxisOrientation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisOrientation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation = { + "SemiMajorAxisOrientation", + "SemiMajorAxisOrientation", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisOrientation_tags_1, + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisOrientation_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMajorAxisOrientation_constr_1, &asn_PER_type_SemiMajorAxisOrientation_constr_1, SemiMajorAxisOrientation_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SemiMinorAxisAccuracy.c b/vcits/spatem/src/SemiMinorAxisAccuracy.c new file mode 100644 index 0000000..c660a5b --- /dev/null +++ b/vcits/spatem/src/SemiMinorAxisAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SemiMinorAxisAccuracy.h" + +int +SemiMinorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMinorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy = { + "SemiMinorAxisAccuracy", + "SemiMinorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMinorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMinorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMinorAxisAccuracy_constr_1, &asn_PER_type_SemiMinorAxisAccuracy_constr_1, SemiMinorAxisAccuracy_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SequenceNumber.c b/vcits/spatem/src/SequenceNumber.c new file mode 100644 index 0000000..f8902fc --- /dev/null +++ b/vcits/spatem/src/SequenceNumber.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SequenceNumber.h" + +int +SequenceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SequenceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SequenceNumber = { + "SequenceNumber", + "SequenceNumber", + &asn_OP_NativeInteger, + asn_DEF_SequenceNumber_tags_1, + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + asn_DEF_SequenceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_SequenceNumber_constr_1, &asn_PER_type_SequenceNumber_constr_1, SequenceNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/ServiceApplicationLimit.c b/vcits/spatem/src/ServiceApplicationLimit.c new file mode 100644 index 0000000..f0a61af --- /dev/null +++ b/vcits/spatem/src/ServiceApplicationLimit.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ServiceApplicationLimit.h" + +int +ServiceApplicationLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ServiceApplicationLimit_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_ServiceApplicationLimit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ServiceApplicationLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServiceApplicationLimit = { + "ServiceApplicationLimit", + "ServiceApplicationLimit", + &asn_OP_BIT_STRING, + asn_DEF_ServiceApplicationLimit_tags_1, + sizeof(asn_DEF_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_ServiceApplicationLimit_tags_1[0]), /* 1 */ + asn_DEF_ServiceApplicationLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_ServiceApplicationLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_ServiceApplicationLimit_constr_1, &asn_PER_type_ServiceApplicationLimit_constr_1, ServiceApplicationLimit_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ServiceNumber.c b/vcits/spatem/src/ServiceNumber.c new file mode 100644 index 0000000..e6fc50d --- /dev/null +++ b/vcits/spatem/src/ServiceNumber.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ServiceNumber.h" + +int +ServiceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 32)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ServiceNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + 32 /* (SIZE(32..32)) */}; +asn_per_constraints_t asn_PER_type_ServiceNumber_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ServiceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServiceNumber = { + "ServiceNumber", + "ServiceNumber", + &asn_OP_BIT_STRING, + asn_DEF_ServiceNumber_tags_1, + sizeof(asn_DEF_ServiceNumber_tags_1) + /sizeof(asn_DEF_ServiceNumber_tags_1[0]), /* 1 */ + asn_DEF_ServiceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ServiceNumber_tags_1) + /sizeof(asn_DEF_ServiceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_ServiceNumber_constr_1, &asn_PER_type_ServiceNumber_constr_1, ServiceNumber_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalControlZone.c b/vcits/spatem/src/SignalControlZone.c new file mode 100644 index 0000000..45ff25c --- /dev/null +++ b/vcits/spatem/src/SignalControlZone.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalControlZone.h" + +asn_TYPE_member_t asn_MBR_SignalControlZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalControlZone, zone), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_SignalControlZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zone" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalControlZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalControlZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* zone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1 = { + sizeof(struct SignalControlZone), + offsetof(struct SignalControlZone, _asn_ctx), + asn_MAP_SignalControlZone_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalControlZone = { + "SignalControlZone", + "SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_SignalControlZone_tags_1, + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + asn_DEF_SignalControlZone_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalControlZone_1, + 1, /* Elements count */ + &asn_SPC_SignalControlZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalGroupID.c b/vcits/spatem/src/SignalGroupID.c new file mode 100644 index 0000000..0a5a0ef --- /dev/null +++ b/vcits/spatem/src/SignalGroupID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalGroupID.h" + +int +SignalGroupID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalGroupID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalGroupID = { + "SignalGroupID", + "SignalGroupID", + &asn_OP_NativeInteger, + asn_DEF_SignalGroupID_tags_1, + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + asn_DEF_SignalGroupID_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalGroupID_constr_1, &asn_PER_type_SignalGroupID_constr_1, SignalGroupID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SignalHeadLocation.c b/vcits/spatem/src/SignalHeadLocation.c new file mode 100644 index 0000000..6941151 --- /dev/null +++ b/vcits/spatem/src/SignalHeadLocation.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalHeadLocation.h" + +asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, nodeZ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeZ" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, signalGroupID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroupID" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalHeadLocation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeZ */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroupID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1 = { + sizeof(struct SignalHeadLocation), + offsetof(struct SignalHeadLocation, _asn_ctx), + asn_MAP_SignalHeadLocation_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation = { + "SignalHeadLocation", + "SignalHeadLocation", + &asn_OP_SEQUENCE, + asn_DEF_SignalHeadLocation_tags_1, + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalHeadLocation_1, + 3, /* Elements count */ + &asn_SPC_SignalHeadLocation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalHeadLocationList.c b/vcits/spatem/src/SignalHeadLocationList.c new file mode 100644 index 0000000..d90452d --- /dev/null +++ b/vcits/spatem/src/SignalHeadLocationList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalHeadLocationList.h" + +#include "SignalHeadLocation.h" +static asn_oer_constraints_t asn_OER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalHeadLocation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1 = { + sizeof(struct SignalHeadLocationList), + offsetof(struct SignalHeadLocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList = { + "SignalHeadLocationList", + "SignalHeadLocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalHeadLocationList_tags_1, + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalHeadLocationList_constr_1, &asn_PER_type_SignalHeadLocationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalHeadLocationList_1, + 1, /* Single element */ + &asn_SPC_SignalHeadLocationList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalRequest.c b/vcits/spatem/src/SignalRequest.c new file mode 100644 index 0000000..8716ff0 --- /dev/null +++ b/vcits/spatem/src/SignalRequest.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalRequest.h" + +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequest__regional), + offsetof(struct SignalRequest__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PriorityRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestType" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, inBoundLane), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inBoundLane" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequest, outBoundLane), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outBoundLane" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequest, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequest_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* requestID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* requestType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* inBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* outBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1 = { + sizeof(struct SignalRequest), + offsetof(struct SignalRequest, _asn_ctx), + asn_MAP_SignalRequest_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequest_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequest = { + "SignalRequest", + "SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequest_tags_1, + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + asn_DEF_SignalRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequest_1, + 6, /* Elements count */ + &asn_SPC_SignalRequest_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalRequestList.c b/vcits/spatem/src/SignalRequestList.c new file mode 100644 index 0000000..97f3088 --- /dev/null +++ b/vcits/spatem/src/SignalRequestList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalRequestList.h" + +#include "SignalRequestPackage.h" +static asn_oer_constraints_t asn_OER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalRequestPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1 = { + sizeof(struct SignalRequestList), + offsetof(struct SignalRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestList = { + "SignalRequestList", + "SignalRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalRequestList_tags_1, + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalRequestList_constr_1, &asn_PER_type_SignalRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalRequestList_1, + 1, /* Single element */ + &asn_SPC_SignalRequestList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalRequestMessage.c b/vcits/spatem/src/SignalRequestMessage.c new file mode 100644 index 0000000..dea1a0b --- /dev/null +++ b/vcits/spatem/src/SignalRequestMessage.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalRequestMessage.h" + +#include "SignalRequestList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequestMessage__regional), + offsetof(struct SignalRequestMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SignalRequestMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, requests), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requests" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, requestor), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestor" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestMessage_oms_1[] = { 0, 2, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* requests */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* requestor */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SignalRequestMessage_specs_1 = { + sizeof(struct SignalRequestMessage), + offsetof(struct SignalRequestMessage, _asn_ctx), + asn_MAP_SignalRequestMessage_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequestMessage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage = { + "SignalRequestMessage", + "SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestMessage_tags_1, + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequestMessage_1, + 6, /* Elements count */ + &asn_SPC_SignalRequestMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalRequestPackage.c b/vcits/spatem/src/SignalRequestPackage.c new file mode 100644 index 0000000..4e75f1b --- /dev/null +++ b/vcits/spatem/src/SignalRequestPackage.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalRequestPackage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalRequestPackage__regional), + offsetof(struct SignalRequestPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestPackage, request), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 4, offsetof(struct SignalRequestPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 3, offsetof(struct SignalRequestPackage, second), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestPackage_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1 = { + sizeof(struct SignalRequestPackage), + offsetof(struct SignalRequestPackage, _asn_ctx), + asn_MAP_SignalRequestPackage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequestPackage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage = { + "SignalRequestPackage", + "SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestPackage_tags_1, + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequestPackage_1, + 5, /* Elements count */ + &asn_SPC_SignalRequestPackage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalRequesterInfo.c b/vcits/spatem/src/SignalRequesterInfo.c new file mode 100644 index 0000000..06c0d04 --- /dev/null +++ b/vcits/spatem/src/SignalRequesterInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalRequesterInfo.h" + +#include "RequestorType.h" +asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, request), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequesterInfo, role), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequesterInfo, typeData), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeData" + }, +}; +static const int asn_MAP_SignalRequesterInfo_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequesterInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequesterInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* typeData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1 = { + sizeof(struct SignalRequesterInfo), + offsetof(struct SignalRequesterInfo, _asn_ctx), + asn_MAP_SignalRequesterInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequesterInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo = { + "SignalRequesterInfo", + "SignalRequesterInfo", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequesterInfo_tags_1, + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + asn_DEF_SignalRequesterInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequesterInfo_1, + 5, /* Elements count */ + &asn_SPC_SignalRequesterInfo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalStatus.c b/vcits/spatem/src/SignalStatus.c new file mode 100644 index 0000000..493378f --- /dev/null +++ b/vcits/spatem/src/SignalStatus.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalStatus.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SignalStatus__regional), + offsetof(struct SignalStatus__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sigStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusPackageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sigStatus" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatus, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatus_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_SignalStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatus_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sigStatus */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1 = { + sizeof(struct SignalStatus), + offsetof(struct SignalStatus, _asn_ctx), + asn_MAP_SignalStatus_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SignalStatus_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatus = { + "SignalStatus", + "SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatus_tags_1, + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + asn_DEF_SignalStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatus_1, + 4, /* Elements count */ + &asn_SPC_SignalStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalStatusList.c b/vcits/spatem/src/SignalStatusList.c new file mode 100644 index 0000000..a8a3fc5 --- /dev/null +++ b/vcits/spatem/src/SignalStatusList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalStatusList.h" + +#include "SignalStatus.h" +static asn_oer_constraints_t asn_OER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalStatusList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1 = { + sizeof(struct SignalStatusList), + offsetof(struct SignalStatusList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusList = { + "SignalStatusList", + "SignalStatusList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusList_tags_1, + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalStatusList_constr_1, &asn_PER_type_SignalStatusList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalStatusList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalStatusMessage.c b/vcits/spatem/src/SignalStatusMessage.c new file mode 100644 index 0000000..0e56e28 --- /dev/null +++ b/vcits/spatem/src/SignalStatusMessage.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalStatusMessage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalStatusMessage__regional), + offsetof(struct SignalStatusMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SignalStatusMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusMessage_oms_1[] = { 0, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SignalStatusMessage_specs_1 = { + sizeof(struct SignalStatusMessage), + offsetof(struct SignalStatusMessage, _asn_ctx), + asn_MAP_SignalStatusMessage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalStatusMessage_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage = { + "SignalStatusMessage", + "SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusMessage_tags_1, + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusMessage_1, + 5, /* Elements count */ + &asn_SPC_SignalStatusMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalStatusPackage-addGrpC.c b/vcits/spatem/src/SignalStatusPackage-addGrpC.c new file mode 100644 index 0000000..caafc22 --- /dev/null +++ b/vcits/spatem/src/SignalStatusPackage-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalStatusPackage-addGrpC.h" + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage_addGrpC, synchToSchedule), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "synchToSchedule" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage_addGrpC, rejectedReason), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RejectedReason, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rejectedReason" + }, +}; +static const int asn_MAP_SignalStatusPackage_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* synchToSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rejectedReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_addGrpC_specs_1 = { + sizeof(struct SignalStatusPackage_addGrpC), + offsetof(struct SignalStatusPackage_addGrpC, _asn_ctx), + asn_MAP_SignalStatusPackage_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage_addGrpC = { + "SignalStatusPackage-addGrpC", + "SignalStatusPackage-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_addGrpC_tags_1, + sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusPackage_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_SignalStatusPackage_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalStatusPackage.c b/vcits/spatem/src/SignalStatusPackage.c new file mode 100644 index 0000000..c3d049a --- /dev/null +++ b/vcits/spatem/src/SignalStatusPackage.c @@ -0,0 +1,204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalStatusPackage.h" + +#include "SignalRequesterInfo.h" +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct SignalStatusPackage__regional), + offsetof(struct SignalStatusPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { &asn_OER_type_regional_constr_9, &asn_PER_type_regional_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, requester), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequesterInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requester" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, inboundOn), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inboundOn" + }, + { ATF_POINTER, 4, offsetof(struct SignalStatusPackage, outboundOn), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outboundOn" + }, + { ATF_POINTER, 3, offsetof(struct SignalStatusPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage, second), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, status), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { &asn_OER_memb_regional_constr_9, &asn_PER_memb_regional_constr_9, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusPackage_oms_1[] = { 0, 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requester */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* inboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* outboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1 = { + sizeof(struct SignalStatusPackage), + offsetof(struct SignalStatusPackage, _asn_ctx), + asn_MAP_SignalStatusPackage_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage = { + "SignalStatusPackage", + "SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_tags_1, + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusPackage_1, + 8, /* Elements count */ + &asn_SPC_SignalStatusPackage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalStatusPackageList.c b/vcits/spatem/src/SignalStatusPackageList.c new file mode 100644 index 0000000..5ab622e --- /dev/null +++ b/vcits/spatem/src/SignalStatusPackageList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalStatusPackageList.h" + +#include "SignalStatusPackage.h" +static asn_oer_constraints_t asn_OER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1 = { + sizeof(struct SignalStatusPackageList), + offsetof(struct SignalStatusPackageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList = { + "SignalStatusPackageList", + "SignalStatusPackageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusPackageList_tags_1, + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackageList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalStatusPackageList_constr_1, &asn_PER_type_SignalStatusPackageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalStatusPackageList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusPackageList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SignalViolationSubCauseCode.c b/vcits/spatem/src/SignalViolationSubCauseCode.c new file mode 100644 index 0000000..b601a36 --- /dev/null +++ b/vcits/spatem/src/SignalViolationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SignalViolationSubCauseCode.h" + +int +SignalViolationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalViolationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode = { + "SignalViolationSubCauseCode", + "SignalViolationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SignalViolationSubCauseCode_tags_1, + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SignalViolationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalViolationSubCauseCode_constr_1, &asn_PER_type_SignalViolationSubCauseCode_constr_1, SignalViolationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SlowVehicleSubCauseCode.c b/vcits/spatem/src/SlowVehicleSubCauseCode.c new file mode 100644 index 0000000..a71430e --- /dev/null +++ b/vcits/spatem/src/SlowVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SlowVehicleSubCauseCode.h" + +int +SlowVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SlowVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode = { + "SlowVehicleSubCauseCode", + "SlowVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SlowVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SlowVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SlowVehicleSubCauseCode_constr_1, &asn_PER_type_SlowVehicleSubCauseCode_constr_1, SlowVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SpecialTransportType.c b/vcits/spatem/src/SpecialTransportType.c new file mode 100644 index 0000000..7f3c4a0 --- /dev/null +++ b/vcits/spatem/src/SpecialTransportType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SpecialTransportType.h" + +int +SpecialTransportType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpecialTransportType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpecialTransportType = { + "SpecialTransportType", + "SpecialTransportType", + &asn_OP_BIT_STRING, + asn_DEF_SpecialTransportType_tags_1, + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + asn_DEF_SpecialTransportType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpecialTransportType_constr_1, &asn_PER_type_SpecialTransportType_constr_1, SpecialTransportType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Speed.c b/vcits/spatem/src/Speed.c new file mode 100644 index 0000000..73464eb --- /dev/null +++ b/vcits/spatem/src/Speed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Speed.h" + +static asn_TYPE_member_t asn_MBR_Speed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Speed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speedConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Speed_specs_1 = { + sizeof(struct Speed), + offsetof(struct Speed, _asn_ctx), + asn_MAP_Speed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Speed = { + "Speed", + "Speed", + &asn_OP_SEQUENCE, + asn_DEF_Speed_tags_1, + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + asn_DEF_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Speed_1, + 2, /* Elements count */ + &asn_SPC_Speed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SpeedAdvice.c b/vcits/spatem/src/SpeedAdvice.c new file mode 100644 index 0000000..ab79d23 --- /dev/null +++ b/vcits/spatem/src/SpeedAdvice.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SpeedAdvice.h" + +int +SpeedAdvice_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..500) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 500 } /* (0..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedAdvice_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedAdvice = { + "SpeedAdvice", + "SpeedAdvice", + &asn_OP_NativeInteger, + asn_DEF_SpeedAdvice_tags_1, + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + asn_DEF_SpeedAdvice_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedAdvice_constr_1, &asn_PER_type_SpeedAdvice_constr_1, SpeedAdvice_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SpeedConfidence.c b/vcits/spatem/src/SpeedConfidence.c new file mode 100644 index 0000000..01bf473 --- /dev/null +++ b/vcits/spatem/src/SpeedConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SpeedConfidence.h" + +int +SpeedConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeInteger, + asn_DEF_SpeedConfidence_tags_1, + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidence_constr_1, &asn_PER_type_SpeedConfidence_constr_1, SpeedConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SpeedConfidenceDSRC.c b/vcits/spatem/src/SpeedConfidenceDSRC.c new file mode 100644 index 0000000..16f01a5 --- /dev/null +++ b/vcits/spatem/src/SpeedConfidenceDSRC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SpeedConfidenceDSRC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidenceDSRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidenceDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SpeedConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec100ms" }, + { 2, 8, "prec10ms" }, + { 3, 7, "prec5ms" }, + { 4, 7, "prec1ms" }, + { 5, 9, "prec0-1ms" }, + { 6, 10, "prec0-05ms" }, + { 7, 10, "prec0-01ms" } +}; +static const unsigned int asn_MAP_SpeedConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-01ms(7) */ + 6, /* prec0-05ms(6) */ + 5, /* prec0-1ms(5) */ + 1, /* prec100ms(1) */ + 2, /* prec10ms(2) */ + 4, /* prec1ms(4) */ + 3, /* prec5ms(3) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedConfidenceDSRC_specs_1 = { + asn_MAP_SpeedConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedConfidenceDSRC_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidenceDSRC = { + "SpeedConfidenceDSRC", + "SpeedConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedConfidenceDSRC_tags_1, + sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidenceDSRC_constr_1, &asn_PER_type_SpeedConfidenceDSRC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SpeedLimit.c b/vcits/spatem/src/SpeedLimit.c new file mode 100644 index 0000000..4d82ce4 --- /dev/null +++ b/vcits/spatem/src/SpeedLimit.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SpeedLimit.h" + +int +SpeedLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_NativeInteger, + asn_DEF_SpeedLimit_tags_1, + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimit_constr_1, &asn_PER_type_SpeedLimit_constr_1, SpeedLimit_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SpeedLimitList.c b/vcits/spatem/src/SpeedLimitList.c new file mode 100644 index 0000000..92073d8 --- /dev/null +++ b/vcits/spatem/src/SpeedLimitList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SpeedLimitList.h" + +#include "RegulatorySpeedLimit.h" +static asn_oer_constraints_t asn_OER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..9)) */}; +asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 9 } /* (SIZE(1..9)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SpeedLimitList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RegulatorySpeedLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1 = { + sizeof(struct SpeedLimitList), + offsetof(struct SpeedLimitList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitList = { + "SpeedLimitList", + "SpeedLimitList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SpeedLimitList_tags_1, + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitList_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimitList_constr_1, &asn_PER_type_SpeedLimitList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SpeedLimitList_1, + 1, /* Single element */ + &asn_SPC_SpeedLimitList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SpeedLimitType.c b/vcits/spatem/src/SpeedLimitType.c new file mode 100644 index 0000000..2edc29f --- /dev/null +++ b/vcits/spatem/src/SpeedLimitType.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SpeedLimitType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SpeedLimitType_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "maxSpeedInSchoolZone" }, + { 2, 42, "maxSpeedInSchoolZoneWhenChildrenArePresent" }, + { 3, 26, "maxSpeedInConstructionZone" }, + { 4, 15, "vehicleMinSpeed" }, + { 5, 15, "vehicleMaxSpeed" }, + { 6, 20, "vehicleNightMaxSpeed" }, + { 7, 13, "truckMinSpeed" }, + { 8, 13, "truckMaxSpeed" }, + { 9, 18, "truckNightMaxSpeed" }, + { 10, 28, "vehiclesWithTrailersMinSpeed" }, + { 11, 28, "vehiclesWithTrailersMaxSpeed" }, + { 12, 33, "vehiclesWithTrailersNightMaxSpeed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SpeedLimitType_enum2value_1[] = { + 3, /* maxSpeedInConstructionZone(3) */ + 1, /* maxSpeedInSchoolZone(1) */ + 2, /* maxSpeedInSchoolZoneWhenChildrenArePresent(2) */ + 8, /* truckMaxSpeed(8) */ + 7, /* truckMinSpeed(7) */ + 9, /* truckNightMaxSpeed(9) */ + 0, /* unknown(0) */ + 5, /* vehicleMaxSpeed(5) */ + 4, /* vehicleMinSpeed(4) */ + 6, /* vehicleNightMaxSpeed(6) */ + 11, /* vehiclesWithTrailersMaxSpeed(11) */ + 10, /* vehiclesWithTrailersMinSpeed(10) */ + 12 /* vehiclesWithTrailersNightMaxSpeed(12) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1 = { + asn_MAP_SpeedLimitType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedLimitType_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitType = { + "SpeedLimitType", + "SpeedLimitType", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedLimitType_tags_1, + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimitType_constr_1, &asn_PER_type_SpeedLimitType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedLimitType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SpeedValue.c b/vcits/spatem/src/SpeedValue.c new file mode 100644 index 0000000..f73a392 --- /dev/null +++ b/vcits/spatem/src/SpeedValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SpeedValue.h" + +int +SpeedValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedValue = { + "SpeedValue", + "SpeedValue", + &asn_OP_NativeInteger, + asn_DEF_SpeedValue_tags_1, + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + asn_DEF_SpeedValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedValue_constr_1, &asn_PER_type_SpeedValue_constr_1, SpeedValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SpeedandHeadingandThrottleConfidence.c b/vcits/spatem/src/SpeedandHeadingandThrottleConfidence.c new file mode 100644 index 0000000..995bdb7 --- /dev/null +++ b/vcits/spatem/src/SpeedandHeadingandThrottleConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SpeedandHeadingandThrottleConfidence.h" + +asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, throttle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ThrottleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "throttle" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* throttle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 = { + sizeof(struct SpeedandHeadingandThrottleConfidence), + offsetof(struct SpeedandHeadingandThrottleConfidence, _asn_ctx), + asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence = { + "SpeedandHeadingandThrottleConfidence", + "SpeedandHeadingandThrottleConfidence", + &asn_OP_SEQUENCE, + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SpeedandHeadingandThrottleConfidence_1, + 3, /* Elements count */ + &asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/StartTime.c b/vcits/spatem/src/StartTime.c new file mode 100644 index 0000000..8f29455 --- /dev/null +++ b/vcits/spatem/src/StartTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "StartTime.h" + +int +StartTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const AviEriDateTime_t *st = (const AviEriDateTime_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using AviEriDateTime, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StartTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_StartTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StartTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StartTime = { + "StartTime", + "StartTime", + &asn_OP_OCTET_STRING, + asn_DEF_StartTime_tags_1, + sizeof(asn_DEF_StartTime_tags_1) + /sizeof(asn_DEF_StartTime_tags_1[0]), /* 1 */ + asn_DEF_StartTime_tags_1, /* Same as above */ + sizeof(asn_DEF_StartTime_tags_1) + /sizeof(asn_DEF_StartTime_tags_1[0]), /* 1 */ + { &asn_OER_type_StartTime_constr_1, &asn_PER_type_StartTime_constr_1, StartTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/StationID.c b/vcits/spatem/src/StationID.c new file mode 100644 index 0000000..d428e1d --- /dev/null +++ b/vcits/spatem/src/StationID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "StationID.h" + +int +StationID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +asn_per_constraints_t asn_PER_type_StationID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_StationID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationID = { + "StationID", + "StationID", + &asn_OP_NativeInteger, + asn_DEF_StationID_tags_1, + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + asn_DEF_StationID_tags_1, /* Same as above */ + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + { &asn_OER_type_StationID_constr_1, &asn_PER_type_StationID_constr_1, StationID_constraint }, + 0, 0, /* No members */ + &asn_SPC_StationID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/StationType.c b/vcits/spatem/src/StationType.c new file mode 100644 index 0000000..3cd2a39 --- /dev/null +++ b/vcits/spatem/src/StationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "StationType.h" + +int +StationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_StationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationType = { + "StationType", + "StationType", + &asn_OP_NativeInteger, + asn_DEF_StationType_tags_1, + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + asn_DEF_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + { &asn_OER_type_StationType_constr_1, &asn_PER_type_StationType_constr_1, StationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/StationarySince.c b/vcits/spatem/src/StationarySince.c new file mode 100644 index 0000000..bc350a1 --- /dev/null +++ b/vcits/spatem/src/StationarySince.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "StationarySince.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationarySince_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_StationarySince_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_StationarySince_value2enum_1[] = { + { 0, 15, "lessThan1Minute" }, + { 1, 16, "lessThan2Minutes" }, + { 2, 17, "lessThan15Minutes" }, + { 3, 23, "equalOrGreater15Minutes" } +}; +static const unsigned int asn_MAP_StationarySince_enum2value_1[] = { + 3, /* equalOrGreater15Minutes(3) */ + 2, /* lessThan15Minutes(2) */ + 0, /* lessThan1Minute(0) */ + 1 /* lessThan2Minutes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_StationarySince_specs_1 = { + asn_MAP_StationarySince_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_StationarySince_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_StationarySince_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationarySince = { + "StationarySince", + "StationarySince", + &asn_OP_NativeEnumerated, + asn_DEF_StationarySince_tags_1, + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + asn_DEF_StationarySince_tags_1, /* Same as above */ + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + { &asn_OER_type_StationarySince_constr_1, &asn_PER_type_StationarySince_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_StationarySince_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/StationaryVehicleSubCauseCode.c b/vcits/spatem/src/StationaryVehicleSubCauseCode.c new file mode 100644 index 0000000..25dc9ae --- /dev/null +++ b/vcits/spatem/src/StationaryVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "StationaryVehicleSubCauseCode.h" + +int +StationaryVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationaryVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode = { + "StationaryVehicleSubCauseCode", + "StationaryVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_StationaryVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_StationaryVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_StationaryVehicleSubCauseCode_constr_1, &asn_PER_type_StationaryVehicleSubCauseCode_constr_1, StationaryVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SteeringWheelAngle.c b/vcits/spatem/src/SteeringWheelAngle.c new file mode 100644 index 0000000..fab8391 --- /dev/null +++ b/vcits/spatem/src/SteeringWheelAngle.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SteeringWheelAngle.h" + +static asn_TYPE_member_t asn_MBR_SteeringWheelAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SteeringWheelAngle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* steeringWheelAngleValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* steeringWheelAngleConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SteeringWheelAngle_specs_1 = { + sizeof(struct SteeringWheelAngle), + offsetof(struct SteeringWheelAngle, _asn_ctx), + asn_MAP_SteeringWheelAngle_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_SEQUENCE, + asn_DEF_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SteeringWheelAngle_1, + 2, /* Elements count */ + &asn_SPC_SteeringWheelAngle_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SteeringWheelAngleConfidence.c b/vcits/spatem/src/SteeringWheelAngleConfidence.c new file mode 100644 index 0000000..a961765 --- /dev/null +++ b/vcits/spatem/src/SteeringWheelAngleConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SteeringWheelAngleConfidence.h" + +int +SteeringWheelAngleConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleConfidence_constr_1, &asn_PER_type_SteeringWheelAngleConfidence_constr_1, SteeringWheelAngleConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/SteeringWheelAngleValue.c b/vcits/spatem/src/SteeringWheelAngleValue.c new file mode 100644 index 0000000..e780f7d --- /dev/null +++ b/vcits/spatem/src/SteeringWheelAngleValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SteeringWheelAngleValue.h" + +int +SteeringWheelAngleValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -511 && value <= 512)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-511..512) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -511, 512 } /* (-511..512) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue = { + "SteeringWheelAngleValue", + "SteeringWheelAngleValue", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleValue_tags_1, + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleValue_constr_1, &asn_PER_type_SteeringWheelAngleValue_constr_1, SteeringWheelAngleValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/StopTime.c b/vcits/spatem/src/StopTime.c new file mode 100644 index 0000000..4c576ad --- /dev/null +++ b/vcits/spatem/src/StopTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "StopTime.h" + +int +StopTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const AviEriDateTime_t *st = (const AviEriDateTime_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using AviEriDateTime, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StopTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_StopTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StopTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StopTime = { + "StopTime", + "StopTime", + &asn_OP_OCTET_STRING, + asn_DEF_StopTime_tags_1, + sizeof(asn_DEF_StopTime_tags_1) + /sizeof(asn_DEF_StopTime_tags_1[0]), /* 1 */ + asn_DEF_StopTime_tags_1, /* Same as above */ + sizeof(asn_DEF_StopTime_tags_1) + /sizeof(asn_DEF_StopTime_tags_1[0]), /* 1 */ + { &asn_OER_type_StopTime_constr_1, &asn_PER_type_StopTime_constr_1, StopTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/SubCauseCodeType.c b/vcits/spatem/src/SubCauseCodeType.c new file mode 100644 index 0000000..4913b38 --- /dev/null +++ b/vcits/spatem/src/SubCauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "SubCauseCodeType.h" + +int +SubCauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SubCauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType = { + "SubCauseCodeType", + "SubCauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_SubCauseCodeType_tags_1, + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_SubCauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_SubCauseCodeType_constr_1, &asn_PER_type_SubCauseCodeType_constr_1, SubCauseCodeType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/TaxCode.c b/vcits/spatem/src/TaxCode.c new file mode 100644 index 0000000..7d93b99 --- /dev/null +++ b/vcits/spatem/src/TaxCode.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TaxCode.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_TaxCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TaxCode = { + "TaxCode", + "TaxCode", + &asn_OP_OCTET_STRING, + asn_DEF_TaxCode_tags_1, + sizeof(asn_DEF_TaxCode_tags_1) + /sizeof(asn_DEF_TaxCode_tags_1[0]), /* 1 */ + asn_DEF_TaxCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TaxCode_tags_1) + /sizeof(asn_DEF_TaxCode_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/Temperature.c b/vcits/spatem/src/Temperature.c new file mode 100644 index 0000000..91b2596 --- /dev/null +++ b/vcits/spatem/src/Temperature.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Temperature.h" + +int +Temperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -60 && value <= 67)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Temperature_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-60..67) */, + -1}; +static asn_per_constraints_t asn_PER_type_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 67 } /* (-60..67) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_Temperature_tags_1, + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + asn_DEF_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + { &asn_OER_type_Temperature_constr_1, &asn_PER_type_Temperature_constr_1, Temperature_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/TemporaryID.c b/vcits/spatem/src/TemporaryID.c new file mode 100644 index 0000000..d7cd442 --- /dev/null +++ b/vcits/spatem/src/TemporaryID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TemporaryID.h" + +int +TemporaryID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TemporaryID_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +asn_per_constraints_t asn_PER_type_TemporaryID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TemporaryID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TemporaryID = { + "TemporaryID", + "TemporaryID", + &asn_OP_OCTET_STRING, + asn_DEF_TemporaryID_tags_1, + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + asn_DEF_TemporaryID_tags_1, /* Same as above */ + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + { &asn_OER_type_TemporaryID_constr_1, &asn_PER_type_TemporaryID_constr_1, TemporaryID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/ThrottleConfidence.c b/vcits/spatem/src/ThrottleConfidence.c new file mode 100644 index 0000000..0db3f19 --- /dev/null +++ b/vcits/spatem/src/ThrottleConfidence.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ThrottleConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ThrottleConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 13, "prec10percent" }, + { 2, 12, "prec1percent" }, + { 3, 14, "prec0-5percent" } +}; +static const unsigned int asn_MAP_ThrottleConfidence_enum2value_1[] = { + 3, /* prec0-5percent(3) */ + 1, /* prec10percent(1) */ + 2, /* prec1percent(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1 = { + asn_MAP_ThrottleConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ThrottleConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence = { + "ThrottleConfidence", + "ThrottleConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ThrottleConfidence_tags_1, + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_ThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ThrottleConfidence_constr_1, &asn_PER_type_ThrottleConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/TimeChangeDetails.c b/vcits/spatem/src/TimeChangeDetails.c new file mode 100644 index 0000000..220ada1 --- /dev/null +++ b/vcits/spatem/src/TimeChangeDetails.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TimeChangeDetails.h" + +asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[] = { + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct TimeChangeDetails, minEndTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minEndTime" + }, + { ATF_POINTER, 4, offsetof(struct TimeChangeDetails, maxEndTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxEndTime" + }, + { ATF_POINTER, 3, offsetof(struct TimeChangeDetails, likelyTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "likelyTime" + }, + { ATF_POINTER, 2, offsetof(struct TimeChangeDetails, confidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeIntervalConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, nextTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextTime" + }, +}; +static const int asn_MAP_TimeChangeDetails_oms_1[] = { 0, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_TimeChangeDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TimeChangeDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* likelyTime */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* nextTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1 = { + sizeof(struct TimeChangeDetails), + offsetof(struct TimeChangeDetails, _asn_ctx), + asn_MAP_TimeChangeDetails_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_TimeChangeDetails_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails = { + "TimeChangeDetails", + "TimeChangeDetails", + &asn_OP_SEQUENCE, + asn_DEF_TimeChangeDetails_tags_1, + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + asn_DEF_TimeChangeDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TimeChangeDetails_1, + 6, /* Elements count */ + &asn_SPC_TimeChangeDetails_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/TimeConfidence.c b/vcits/spatem/src/TimeConfidence.c new file mode 100644 index 0000000..d3c040c --- /dev/null +++ b/vcits/spatem/src/TimeConfidence.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TimeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TimeConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 12, "time-100-000" }, + { 2, 12, "time-050-000" }, + { 3, 12, "time-020-000" }, + { 4, 12, "time-010-000" }, + { 5, 12, "time-002-000" }, + { 6, 12, "time-001-000" }, + { 7, 12, "time-000-500" }, + { 8, 12, "time-000-200" }, + { 9, 12, "time-000-100" }, + { 10, 12, "time-000-050" }, + { 11, 12, "time-000-020" }, + { 12, 12, "time-000-010" }, + { 13, 12, "time-000-005" }, + { 14, 12, "time-000-002" }, + { 15, 12, "time-000-001" }, + { 16, 14, "time-000-000-5" }, + { 17, 14, "time-000-000-2" }, + { 18, 14, "time-000-000-1" }, + { 19, 15, "time-000-000-05" }, + { 20, 15, "time-000-000-02" }, + { 21, 15, "time-000-000-01" }, + { 22, 16, "time-000-000-005" }, + { 23, 16, "time-000-000-002" }, + { 24, 16, "time-000-000-001" }, + { 25, 18, "time-000-000-000-5" }, + { 26, 18, "time-000-000-000-2" }, + { 27, 18, "time-000-000-000-1" }, + { 28, 19, "time-000-000-000-05" }, + { 29, 19, "time-000-000-000-02" }, + { 30, 19, "time-000-000-000-01" }, + { 31, 20, "time-000-000-000-005" }, + { 32, 20, "time-000-000-000-002" }, + { 33, 20, "time-000-000-000-001" }, + { 34, 22, "time-000-000-000-000-5" }, + { 35, 22, "time-000-000-000-000-2" }, + { 36, 22, "time-000-000-000-000-1" }, + { 37, 23, "time-000-000-000-000-05" }, + { 38, 23, "time-000-000-000-000-02" }, + { 39, 23, "time-000-000-000-000-01" } +}; +static const unsigned int asn_MAP_TimeConfidence_enum2value_1[] = { + 39, /* time-000-000-000-000-01(39) */ + 38, /* time-000-000-000-000-02(38) */ + 37, /* time-000-000-000-000-05(37) */ + 36, /* time-000-000-000-000-1(36) */ + 35, /* time-000-000-000-000-2(35) */ + 34, /* time-000-000-000-000-5(34) */ + 33, /* time-000-000-000-001(33) */ + 32, /* time-000-000-000-002(32) */ + 31, /* time-000-000-000-005(31) */ + 30, /* time-000-000-000-01(30) */ + 29, /* time-000-000-000-02(29) */ + 28, /* time-000-000-000-05(28) */ + 27, /* time-000-000-000-1(27) */ + 26, /* time-000-000-000-2(26) */ + 25, /* time-000-000-000-5(25) */ + 24, /* time-000-000-001(24) */ + 23, /* time-000-000-002(23) */ + 22, /* time-000-000-005(22) */ + 21, /* time-000-000-01(21) */ + 20, /* time-000-000-02(20) */ + 19, /* time-000-000-05(19) */ + 18, /* time-000-000-1(18) */ + 17, /* time-000-000-2(17) */ + 16, /* time-000-000-5(16) */ + 15, /* time-000-001(15) */ + 14, /* time-000-002(14) */ + 13, /* time-000-005(13) */ + 12, /* time-000-010(12) */ + 11, /* time-000-020(11) */ + 10, /* time-000-050(10) */ + 9, /* time-000-100(9) */ + 8, /* time-000-200(8) */ + 7, /* time-000-500(7) */ + 6, /* time-001-000(6) */ + 5, /* time-002-000(5) */ + 4, /* time-010-000(4) */ + 3, /* time-020-000(3) */ + 2, /* time-050-000(2) */ + 1, /* time-100-000(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1 = { + asn_MAP_TimeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TimeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 40, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TimeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeConfidence = { + "TimeConfidence", + "TimeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_TimeConfidence_tags_1, + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeConfidence_constr_1, &asn_PER_type_TimeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TimeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/TimeIntervalConfidence.c b/vcits/spatem/src/TimeIntervalConfidence.c new file mode 100644 index 0000000..04789a2 --- /dev/null +++ b/vcits/spatem/src/TimeIntervalConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TimeIntervalConfidence.h" + +int +TimeIntervalConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeIntervalConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence = { + "TimeIntervalConfidence", + "TimeIntervalConfidence", + &asn_OP_NativeInteger, + asn_DEF_TimeIntervalConfidence_tags_1, + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeIntervalConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeIntervalConfidence_constr_1, &asn_PER_type_TimeIntervalConfidence_constr_1, TimeIntervalConfidence_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/TimeMark.c b/vcits/spatem/src/TimeMark.c new file mode 100644 index 0000000..2ba7d34 --- /dev/null +++ b/vcits/spatem/src/TimeMark.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TimeMark.h" + +int +TimeMark_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 36001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeMark_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..36001) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeMark_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 36001 } /* (0..36001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeMark_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeMark = { + "TimeMark", + "TimeMark", + &asn_OP_NativeInteger, + asn_DEF_TimeMark_tags_1, + sizeof(asn_DEF_TimeMark_tags_1) + /sizeof(asn_DEF_TimeMark_tags_1[0]), /* 1 */ + asn_DEF_TimeMark_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeMark_tags_1) + /sizeof(asn_DEF_TimeMark_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeMark_constr_1, &asn_PER_type_TimeMark_constr_1, TimeMark_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/TimeReference.c b/vcits/spatem/src/TimeReference.c new file mode 100644 index 0000000..beef5c5 --- /dev/null +++ b/vcits/spatem/src/TimeReference.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TimeReference.h" + +int +TimeReference_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 60000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeReference_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..60000) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeReference_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 60000 } /* (0..60000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeReference = { + "TimeReference", + "TimeReference", + &asn_OP_NativeInteger, + asn_DEF_TimeReference_tags_1, + sizeof(asn_DEF_TimeReference_tags_1) + /sizeof(asn_DEF_TimeReference_tags_1[0]), /* 1 */ + asn_DEF_TimeReference_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeReference_tags_1) + /sizeof(asn_DEF_TimeReference_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeReference_constr_1, &asn_PER_type_TimeReference_constr_1, TimeReference_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/TimestampIts.c b/vcits/spatem/src/TimestampIts.c new file mode 100644 index 0000000..3ca8496 --- /dev/null +++ b/vcits/spatem/src/TimestampIts.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TimestampIts.h" + +int +TimestampIts_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0 && value <= 4398046511103)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimestampIts_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..4398046511103) */, + -1}; +asn_per_constraints_t asn_PER_type_TimestampIts_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 42, -1, 0, 4398046511103 } /* (0..4398046511103) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimestampIts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimestampIts = { + "TimestampIts", + "TimestampIts", + &asn_OP_INTEGER, + asn_DEF_TimestampIts_tags_1, + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + asn_DEF_TimestampIts_tags_1, /* Same as above */ + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + { &asn_OER_type_TimestampIts_constr_1, &asn_PER_type_TimestampIts_constr_1, TimestampIts_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Traces.c b/vcits/spatem/src/Traces.c new file mode 100644 index 0000000..e5613b8 --- /dev/null +++ b/vcits/spatem/src/Traces.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Traces.h" + +#include "PathHistory.h" +static asn_oer_constraints_t asn_OER_type_Traces_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..7)) */}; +static asn_per_constraints_t asn_PER_type_Traces_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_Traces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathHistory, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Traces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Traces_specs_1 = { + sizeof(struct Traces), + offsetof(struct Traces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Traces = { + "Traces", + "Traces", + &asn_OP_SEQUENCE_OF, + asn_DEF_Traces_tags_1, + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + asn_DEF_Traces_tags_1, /* Same as above */ + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + { &asn_OER_type_Traces_constr_1, &asn_PER_type_Traces_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Traces_1, + 1, /* Single element */ + &asn_SPC_Traces_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/TrafficConditionSubCauseCode.c b/vcits/spatem/src/TrafficConditionSubCauseCode.c new file mode 100644 index 0000000..e32478f --- /dev/null +++ b/vcits/spatem/src/TrafficConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TrafficConditionSubCauseCode.h" + +int +TrafficConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TrafficConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode = { + "TrafficConditionSubCauseCode", + "TrafficConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_TrafficConditionSubCauseCode_tags_1, + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_TrafficConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficConditionSubCauseCode_constr_1, &asn_PER_type_TrafficConditionSubCauseCode_constr_1, TrafficConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/TrafficRule.c b/vcits/spatem/src/TrafficRule.c new file mode 100644 index 0000000..1179fe8 --- /dev/null +++ b/vcits/spatem/src/TrafficRule.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TrafficRule.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficRule_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficRule_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TrafficRule_value2enum_1[] = { + { 0, 9, "noPassing" }, + { 1, 18, "noPassingForTrucks" }, + { 2, 11, "passToRight" }, + { 3, 10, "passToLeft" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TrafficRule_enum2value_1[] = { + 0, /* noPassing(0) */ + 1, /* noPassingForTrucks(1) */ + 3, /* passToLeft(3) */ + 2 /* passToRight(2) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_TrafficRule_specs_1 = { + asn_MAP_TrafficRule_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TrafficRule_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TrafficRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficRule = { + "TrafficRule", + "TrafficRule", + &asn_OP_NativeEnumerated, + asn_DEF_TrafficRule_tags_1, + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + asn_DEF_TrafficRule_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficRule_constr_1, &asn_PER_type_TrafficRule_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TrafficRule_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/TransitVehicleOccupancy.c b/vcits/spatem/src/TransitVehicleOccupancy.c new file mode 100644 index 0000000..53bdd87 --- /dev/null +++ b/vcits/spatem/src/TransitVehicleOccupancy.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TransitVehicleOccupancy.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransitVehicleOccupancy_value2enum_1[] = { + { 0, 16, "occupancyUnknown" }, + { 1, 14, "occupancyEmpty" }, + { 2, 16, "occupancyVeryLow" }, + { 3, 12, "occupancyLow" }, + { 4, 12, "occupancyMed" }, + { 5, 13, "occupancyHigh" }, + { 6, 19, "occupancyNearlyFull" }, + { 7, 13, "occupancyFull" } +}; +static const unsigned int asn_MAP_TransitVehicleOccupancy_enum2value_1[] = { + 1, /* occupancyEmpty(1) */ + 7, /* occupancyFull(7) */ + 5, /* occupancyHigh(5) */ + 3, /* occupancyLow(3) */ + 4, /* occupancyMed(4) */ + 6, /* occupancyNearlyFull(6) */ + 0, /* occupancyUnknown(0) */ + 2 /* occupancyVeryLow(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1 = { + asn_MAP_TransitVehicleOccupancy_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransitVehicleOccupancy_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleOccupancy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy = { + "TransitVehicleOccupancy", + "TransitVehicleOccupancy", + &asn_OP_NativeEnumerated, + asn_DEF_TransitVehicleOccupancy_tags_1, + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleOccupancy_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + { &asn_OER_type_TransitVehicleOccupancy_constr_1, &asn_PER_type_TransitVehicleOccupancy_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransitVehicleOccupancy_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/TransitVehicleStatus.c b/vcits/spatem/src/TransitVehicleStatus.c new file mode 100644 index 0000000..23fafd6 --- /dev/null +++ b/vcits/spatem/src/TransitVehicleStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TransitVehicleStatus.h" + +int +TransitVehicleStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus = { + "TransitVehicleStatus", + "TransitVehicleStatus", + &asn_OP_BIT_STRING, + asn_DEF_TransitVehicleStatus_tags_1, + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_TransitVehicleStatus_constr_1, &asn_PER_type_TransitVehicleStatus_constr_1, TransitVehicleStatus_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/spatem/src/TransmissionAndSpeed.c b/vcits/spatem/src/TransmissionAndSpeed.c new file mode 100644 index 0000000..88f6ae6 --- /dev/null +++ b/vcits/spatem/src/TransmissionAndSpeed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TransmissionAndSpeed.h" + +asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, transmisson), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transmisson" + }, + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_TransmissionAndSpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TransmissionAndSpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transmisson */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1 = { + sizeof(struct TransmissionAndSpeed), + offsetof(struct TransmissionAndSpeed, _asn_ctx), + asn_MAP_TransmissionAndSpeed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed = { + "TransmissionAndSpeed", + "TransmissionAndSpeed", + &asn_OP_SEQUENCE, + asn_DEF_TransmissionAndSpeed_tags_1, + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + asn_DEF_TransmissionAndSpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TransmissionAndSpeed_1, + 2, /* Elements count */ + &asn_SPC_TransmissionAndSpeed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/TransmissionInterval.c b/vcits/spatem/src/TransmissionInterval.c new file mode 100644 index 0000000..5ae18f5 --- /dev/null +++ b/vcits/spatem/src/TransmissionInterval.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TransmissionInterval.h" + +int +TransmissionInterval_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..10000) */, + -1}; +static asn_per_constraints_t asn_PER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 10000 } /* (1..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransmissionInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionInterval = { + "TransmissionInterval", + "TransmissionInterval", + &asn_OP_NativeInteger, + asn_DEF_TransmissionInterval_tags_1, + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + asn_DEF_TransmissionInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionInterval_constr_1, &asn_PER_type_TransmissionInterval_constr_1, TransmissionInterval_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/TransmissionState.c b/vcits/spatem/src/TransmissionState.c new file mode 100644 index 0000000..887fd51 --- /dev/null +++ b/vcits/spatem/src/TransmissionState.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TransmissionState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransmissionState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransmissionState_value2enum_1[] = { + { 0, 7, "neutral" }, + { 1, 4, "park" }, + { 2, 12, "forwardGears" }, + { 3, 12, "reverseGears" }, + { 4, 9, "reserved1" }, + { 5, 9, "reserved2" }, + { 6, 9, "reserved3" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_TransmissionState_enum2value_1[] = { + 2, /* forwardGears(2) */ + 0, /* neutral(0) */ + 1, /* park(1) */ + 4, /* reserved1(4) */ + 5, /* reserved2(5) */ + 6, /* reserved3(6) */ + 3, /* reverseGears(3) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1 = { + asn_MAP_TransmissionState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransmissionState_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransmissionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionState = { + "TransmissionState", + "TransmissionState", + &asn_OP_NativeEnumerated, + asn_DEF_TransmissionState_tags_1, + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + asn_DEF_TransmissionState_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionState_constr_1, &asn_PER_type_TransmissionState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransmissionState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/TurningRadius.c b/vcits/spatem/src/TurningRadius.c new file mode 100644 index 0000000..e434c66 --- /dev/null +++ b/vcits/spatem/src/TurningRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "TurningRadius.h" + +int +TurningRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TurningRadius_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TurningRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TurningRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TurningRadius = { + "TurningRadius", + "TurningRadius", + &asn_OP_NativeInteger, + asn_DEF_TurningRadius_tags_1, + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + asn_DEF_TurningRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_TurningRadius_constr_1, &asn_PER_type_TurningRadius_constr_1, TurningRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/VDS.c b/vcits/spatem/src/VDS.c new file mode 100644 index 0000000..10387a1 --- /dev/null +++ b/vcits/spatem/src/VDS.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "VDS.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +VDS_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 6) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VDS_constr_1 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +asn_per_constraints_t asn_PER_type_VDS_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_VDS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VDS = { + "VDS", + "VDS", + &asn_OP_IA5String, + asn_DEF_VDS_tags_1, + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + asn_DEF_VDS_tags_1, /* Same as above */ + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + { &asn_OER_type_VDS_constr_1, &asn_PER_type_VDS_constr_1, VDS_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/ValidityDuration.c b/vcits/spatem/src/ValidityDuration.c new file mode 100644 index 0000000..a315060 --- /dev/null +++ b/vcits/spatem/src/ValidityDuration.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ValidityDuration.h" + +int +ValidityDuration_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 86400)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..86400) */, + -1}; +static asn_per_constraints_t asn_PER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 0, 86400 } /* (0..86400) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ValidityDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ValidityDuration = { + "ValidityDuration", + "ValidityDuration", + &asn_OP_NativeInteger, + asn_DEF_ValidityDuration_tags_1, + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + asn_DEF_ValidityDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + { &asn_OER_type_ValidityDuration_constr_1, &asn_PER_type_ValidityDuration_constr_1, ValidityDuration_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/VehicleBreakdownSubCauseCode.c b/vcits/spatem/src/VehicleBreakdownSubCauseCode.c new file mode 100644 index 0000000..8b52351 --- /dev/null +++ b/vcits/spatem/src/VehicleBreakdownSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "VehicleBreakdownSubCauseCode.h" + +int +VehicleBreakdownSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleBreakdownSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode = { + "VehicleBreakdownSubCauseCode", + "VehicleBreakdownSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleBreakdownSubCauseCode_constr_1, &asn_PER_type_VehicleBreakdownSubCauseCode_constr_1, VehicleBreakdownSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/VehicleHeight.c b/vcits/spatem/src/VehicleHeight.c new file mode 100644 index 0000000..080c7f1 --- /dev/null +++ b/vcits/spatem/src/VehicleHeight.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "VehicleHeight.h" + +int +VehicleHeight_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleHeight = { + "VehicleHeight", + "VehicleHeight", + &asn_OP_NativeInteger, + asn_DEF_VehicleHeight_tags_1, + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + asn_DEF_VehicleHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleHeight_constr_1, &asn_PER_type_VehicleHeight_constr_1, VehicleHeight_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/VehicleID.c b/vcits/spatem/src/VehicleID.c new file mode 100644 index 0000000..35c0a0b --- /dev/null +++ b/vcits/spatem/src/VehicleID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "VehicleID.h" + +static asn_oer_constraints_t asn_OER_type_VehicleID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_VehicleID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.entityID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TemporaryID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "entityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.stationID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* entityID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* stationID */ +}; +asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1 = { + sizeof(struct VehicleID), + offsetof(struct VehicleID, _asn_ctx), + offsetof(struct VehicleID, present), + sizeof(((struct VehicleID *)0)->present), + asn_MAP_VehicleID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleID = { + "VehicleID", + "VehicleID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_VehicleID_constr_1, &asn_PER_type_VehicleID_constr_1, CHOICE_constraint }, + asn_MBR_VehicleID_1, + 2, /* Elements count */ + &asn_SPC_VehicleID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/VehicleIdentification.c b/vcits/spatem/src/VehicleIdentification.c new file mode 100644 index 0000000..b3d9151 --- /dev/null +++ b/vcits/spatem/src/VehicleIdentification.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "VehicleIdentification.h" + +static asn_TYPE_member_t asn_MBR_VehicleIdentification_1[] = { + { ATF_POINTER, 2, offsetof(struct VehicleIdentification, wMInumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WMInumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wMInumber" + }, + { ATF_POINTER, 1, offsetof(struct VehicleIdentification, vDS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VDS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vDS" + }, +}; +static const int asn_MAP_VehicleIdentification_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_VehicleIdentification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleIdentification_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wMInumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vDS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleIdentification_specs_1 = { + sizeof(struct VehicleIdentification), + offsetof(struct VehicleIdentification, _asn_ctx), + asn_MAP_VehicleIdentification_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_VehicleIdentification_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleIdentification = { + "VehicleIdentification", + "VehicleIdentification", + &asn_OP_SEQUENCE, + asn_DEF_VehicleIdentification_tags_1, + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + asn_DEF_VehicleIdentification_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleIdentification_1, + 2, /* Elements count */ + &asn_SPC_VehicleIdentification_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/VehicleLength.c b/vcits/spatem/src/VehicleLength.c new file mode 100644 index 0000000..f4bd2fc --- /dev/null +++ b/vcits/spatem/src/VehicleLength.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "VehicleLength.h" + +static asn_TYPE_member_t asn_MBR_VehicleLength_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthConfidenceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthConfidenceIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthConfidenceIndication" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleLength_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vehicleLengthConfidenceIndication */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleLength_specs_1 = { + sizeof(struct VehicleLength), + offsetof(struct VehicleLength, _asn_ctx), + asn_MAP_VehicleLength_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_SEQUENCE, + asn_DEF_VehicleLength_tags_1, + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleLength_1, + 2, /* Elements count */ + &asn_SPC_VehicleLength_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/VehicleLengthConfidenceIndication.c b/vcits/spatem/src/VehicleLengthConfidenceIndication.c new file mode 100644 index 0000000..873b648 --- /dev/null +++ b/vcits/spatem/src/VehicleLengthConfidenceIndication.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "VehicleLengthConfidenceIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleLengthConfidenceIndication_value2enum_1[] = { + { 0, 16, "noTrailerPresent" }, + { 1, 29, "trailerPresentWithKnownLength" }, + { 2, 31, "trailerPresentWithUnknownLength" }, + { 3, 24, "trailerPresenceIsUnknown" }, + { 4, 11, "unavailable" } +}; +static const unsigned int asn_MAP_VehicleLengthConfidenceIndication_enum2value_1[] = { + 0, /* noTrailerPresent(0) */ + 3, /* trailerPresenceIsUnknown(3) */ + 1, /* trailerPresentWithKnownLength(1) */ + 2, /* trailerPresentWithUnknownLength(2) */ + 4 /* unavailable(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1 = { + asn_MAP_VehicleLengthConfidenceIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleLengthConfidenceIndication_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthConfidenceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication = { + "VehicleLengthConfidenceIndication", + "VehicleLengthConfidenceIndication", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleLengthConfidenceIndication_tags_1, + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthConfidenceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthConfidenceIndication_constr_1, &asn_PER_type_VehicleLengthConfidenceIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleLengthConfidenceIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/VehicleLengthValue.c b/vcits/spatem/src/VehicleLengthValue.c new file mode 100644 index 0000000..0266a15 --- /dev/null +++ b/vcits/spatem/src/VehicleLengthValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "VehicleLengthValue.h" + +int +VehicleLengthValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (1..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue = { + "VehicleLengthValue", + "VehicleLengthValue", + &asn_OP_NativeInteger, + asn_DEF_VehicleLengthValue_tags_1, + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthValue_constr_1, &asn_PER_type_VehicleLengthValue_constr_1, VehicleLengthValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/VehicleMass.c b/vcits/spatem/src/VehicleMass.c new file mode 100644 index 0000000..517772e --- /dev/null +++ b/vcits/spatem/src/VehicleMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "VehicleMass.h" + +int +VehicleMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1024)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleMass_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1024) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_VehicleMass_tags_1, + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleMass_constr_1, &asn_PER_type_VehicleMass_constr_1, VehicleMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/VehicleRole.c b/vcits/spatem/src/VehicleRole.c new file mode 100644 index 0000000..08e31b8 --- /dev/null +++ b/vcits/spatem/src/VehicleRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "VehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleRole_value2enum_1[] = { + { 0, 7, "default" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 6, "rescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 11, "agriculture" }, + { 9, 10, "commercial" }, + { 10, 8, "military" }, + { 11, 12, "roadOperator" }, + { 12, 4, "taxi" }, + { 13, 9, "reserved1" }, + { 14, 9, "reserved2" }, + { 15, 9, "reserved3" } +}; +static const unsigned int asn_MAP_VehicleRole_enum2value_1[] = { + 8, /* agriculture(8) */ + 9, /* commercial(9) */ + 3, /* dangerousGoods(3) */ + 0, /* default(0) */ + 6, /* emergency(6) */ + 10, /* military(10) */ + 1, /* publicTransport(1) */ + 5, /* rescue(5) */ + 13, /* reserved1(13) */ + 14, /* reserved2(14) */ + 15, /* reserved3(15) */ + 11, /* roadOperator(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 2, /* specialTransport(2) */ + 12 /* taxi(12) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_VehicleRole_specs_1 = { + asn_MAP_VehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleRole = { + "VehicleRole", + "VehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleRole_tags_1, + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + asn_DEF_VehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleRole_constr_1, &asn_PER_type_VehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/VehicleType.c b/vcits/spatem/src/VehicleType.c new file mode 100644 index 0000000..248d1e1 --- /dev/null +++ b/vcits/spatem/src/VehicleType.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "VehicleType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 7, "unknown" }, + { 2, 7, "special" }, + { 3, 4, "moto" }, + { 4, 3, "car" }, + { 5, 8, "carOther" }, + { 6, 3, "bus" }, + { 7, 8, "axleCnt2" }, + { 8, 8, "axleCnt3" }, + { 9, 8, "axleCnt4" }, + { 10, 15, "axleCnt4Trailer" }, + { 11, 15, "axleCnt5Trailer" }, + { 12, 15, "axleCnt6Trailer" }, + { 13, 20, "axleCnt5MultiTrailer" }, + { 14, 20, "axleCnt6MultiTrailer" }, + { 15, 20, "axleCnt7MultiTrailer" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_VehicleType_enum2value_1[] = { + 7, /* axleCnt2(7) */ + 8, /* axleCnt3(8) */ + 9, /* axleCnt4(9) */ + 10, /* axleCnt4Trailer(10) */ + 13, /* axleCnt5MultiTrailer(13) */ + 11, /* axleCnt5Trailer(11) */ + 14, /* axleCnt6MultiTrailer(14) */ + 12, /* axleCnt6Trailer(12) */ + 15, /* axleCnt7MultiTrailer(15) */ + 6, /* bus(6) */ + 4, /* car(4) */ + 5, /* carOther(5) */ + 3, /* moto(3) */ + 0, /* none(0) */ + 2, /* special(2) */ + 1 /* unknown(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1 = { + asn_MAP_VehicleType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleType_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 17, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleType = { + "VehicleType", + "VehicleType", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleType_tags_1, + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + asn_DEF_VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleType_constr_1, &asn_PER_type_VehicleType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/VehicleWidth.c b/vcits/spatem/src/VehicleWidth.c new file mode 100644 index 0000000..e992963 --- /dev/null +++ b/vcits/spatem/src/VehicleWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "VehicleWidth.h" + +int +VehicleWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 62)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..62) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 62 } /* (1..62) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_VehicleWidth_tags_1, + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleWidth_constr_1, &asn_PER_type_VehicleWidth_constr_1, VehicleWidth_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/Velocity.c b/vcits/spatem/src/Velocity.c new file mode 100644 index 0000000..aa2264f --- /dev/null +++ b/vcits/spatem/src/Velocity.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "Velocity.h" + +int +Velocity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 8191)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Velocity_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..8191) */, + -1}; +asn_per_constraints_t asn_PER_type_Velocity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 8191 } /* (0..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Velocity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Velocity = { + "Velocity", + "Velocity", + &asn_OP_NativeInteger, + asn_DEF_Velocity_tags_1, + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + asn_DEF_Velocity_tags_1, /* Same as above */ + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + { &asn_OER_type_Velocity_constr_1, &asn_PER_type_Velocity_constr_1, Velocity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/VerticalAcceleration.c b/vcits/spatem/src/VerticalAcceleration.c new file mode 100644 index 0000000..4c95769 --- /dev/null +++ b/vcits/spatem/src/VerticalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "VerticalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_VerticalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VerticalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* verticalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* verticalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VerticalAcceleration_specs_1 = { + sizeof(struct VerticalAcceleration), + offsetof(struct VerticalAcceleration, _asn_ctx), + asn_MAP_VerticalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_VerticalAcceleration_tags_1, + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VerticalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_VerticalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/VerticalAccelerationValue.c b/vcits/spatem/src/VerticalAccelerationValue.c new file mode 100644 index 0000000..bfe9520 --- /dev/null +++ b/vcits/spatem/src/VerticalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "VerticalAccelerationValue.h" + +int +VerticalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VerticalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue = { + "VerticalAccelerationValue", + "VerticalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_VerticalAccelerationValue_tags_1, + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_VerticalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VerticalAccelerationValue_constr_1, &asn_PER_type_VerticalAccelerationValue_constr_1, VerticalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/WMInumber.c b/vcits/spatem/src/WMInumber.c new file mode 100644 index 0000000..ed076ee --- /dev/null +++ b/vcits/spatem/src/WMInumber.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "WMInumber.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +WMInumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 3) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WMInumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +asn_per_constraints_t asn_PER_type_WMInumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_WMInumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WMInumber = { + "WMInumber", + "WMInumber", + &asn_OP_IA5String, + asn_DEF_WMInumber_tags_1, + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + asn_DEF_WMInumber_tags_1, /* Same as above */ + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + { &asn_OER_type_WMInumber_constr_1, &asn_PER_type_WMInumber_constr_1, WMInumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/WaitOnStopline.c b/vcits/spatem/src/WaitOnStopline.c new file mode 100644 index 0000000..4431136 --- /dev/null +++ b/vcits/spatem/src/WaitOnStopline.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "WaitOnStopline.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_WaitOnStopline_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WaitOnStopline = { + "WaitOnStopline", + "WaitOnStopline", + &asn_OP_BOOLEAN, + asn_DEF_WaitOnStopline_tags_1, + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + asn_DEF_WaitOnStopline_tags_1, /* Same as above */ + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/WheelBaseVehicle.c b/vcits/spatem/src/WheelBaseVehicle.c new file mode 100644 index 0000000..96cfa3a --- /dev/null +++ b/vcits/spatem/src/WheelBaseVehicle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "WheelBaseVehicle.h" + +int +WheelBaseVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WheelBaseVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle = { + "WheelBaseVehicle", + "WheelBaseVehicle", + &asn_OP_NativeInteger, + asn_DEF_WheelBaseVehicle_tags_1, + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + asn_DEF_WheelBaseVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_WheelBaseVehicle_constr_1, &asn_PER_type_WheelBaseVehicle_constr_1, WheelBaseVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/WrongWayDrivingSubCauseCode.c b/vcits/spatem/src/WrongWayDrivingSubCauseCode.c new file mode 100644 index 0000000..ded9773 --- /dev/null +++ b/vcits/spatem/src/WrongWayDrivingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "WrongWayDrivingSubCauseCode.h" + +int +WrongWayDrivingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WrongWayDrivingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode = { + "WrongWayDrivingSubCauseCode", + "WrongWayDrivingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_WrongWayDrivingSubCauseCode_constr_1, &asn_PER_type_WrongWayDrivingSubCauseCode_constr_1, WrongWayDrivingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/YawRate.c b/vcits/spatem/src/YawRate.c new file mode 100644 index 0000000..7f51220 --- /dev/null +++ b/vcits/spatem/src/YawRate.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "YawRate.h" + +static asn_TYPE_member_t asn_MBR_YawRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_YawRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yawRateValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* yawRateConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_YawRate_specs_1 = { + sizeof(struct YawRate), + offsetof(struct YawRate, _asn_ctx), + asn_MAP_YawRate_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_YawRate = { + "YawRate", + "YawRate", + &asn_OP_SEQUENCE, + asn_DEF_YawRate_tags_1, + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + asn_DEF_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_YawRate_1, + 2, /* Elements count */ + &asn_SPC_YawRate_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/YawRateConfidence.c b/vcits/spatem/src/YawRateConfidence.c new file mode 100644 index 0000000..9f307a8 --- /dev/null +++ b/vcits/spatem/src/YawRateConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "YawRateConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_YawRateConfidence_value2enum_1[] = { + { 0, 13, "degSec-000-01" }, + { 1, 13, "degSec-000-05" }, + { 2, 13, "degSec-000-10" }, + { 3, 13, "degSec-001-00" }, + { 4, 13, "degSec-005-00" }, + { 5, 13, "degSec-010-00" }, + { 6, 13, "degSec-100-00" }, + { 7, 10, "outOfRange" }, + { 8, 11, "unavailable" } +}; +static const unsigned int asn_MAP_YawRateConfidence_enum2value_1[] = { + 0, /* degSec-000-01(0) */ + 1, /* degSec-000-05(1) */ + 2, /* degSec-000-10(2) */ + 3, /* degSec-001-00(3) */ + 4, /* degSec-005-00(4) */ + 5, /* degSec-010-00(5) */ + 6, /* degSec-100-00(6) */ + 7, /* outOfRange(7) */ + 8 /* unavailable(8) */ +}; +const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1 = { + asn_MAP_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_YawRateConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 9, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_YawRateConfidence_tags_1, + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateConfidence_constr_1, &asn_PER_type_YawRateConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/spatem/src/YawRateValue.c b/vcits/spatem/src/YawRateValue.c new file mode 100644 index 0000000..2dfcafe --- /dev/null +++ b/vcits/spatem/src/YawRateValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "YawRateValue.h" + +int +YawRateValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32766 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32766..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_YawRateValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32766, 32767 } /* (-32766..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_YawRateValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateValue = { + "YawRateValue", + "YawRateValue", + &asn_OP_NativeInteger, + asn_DEF_YawRateValue_tags_1, + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + asn_DEF_YawRateValue_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateValue_constr_1, &asn_PER_type_YawRateValue_constr_1, YawRateValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/spatem/src/ZoneLength.c b/vcits/spatem/src/ZoneLength.c new file mode 100644 index 0000000..642e4d0 --- /dev/null +++ b/vcits/spatem/src/ZoneLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/spatem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SPATEM` + */ + +#include "ZoneLength.h" + +int +ZoneLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ZoneLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..10000) */, + -1}; +asn_per_constraints_t asn_PER_type_ZoneLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10000 } /* (0..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ZoneLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ZoneLength = { + "ZoneLength", + "ZoneLength", + &asn_OP_NativeInteger, + asn_DEF_ZoneLength_tags_1, + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + asn_DEF_ZoneLength_tags_1, /* Same as above */ + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + { &asn_OER_type_ZoneLength_constr_1, &asn_PER_type_ZoneLength_constr_1, ZoneLength_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/AccelerationConfidence.h b/vcits/srem/AccelerationConfidence.h new file mode 100644 index 0000000..d055372 --- /dev/null +++ b/vcits/srem/AccelerationConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AccelerationConfidence_H_ +#define _AccelerationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationConfidence { + AccelerationConfidence_pointOneMeterPerSecSquared = 1, + AccelerationConfidence_outOfRange = 101, + AccelerationConfidence_unavailable = 102 +} e_AccelerationConfidence; + +/* AccelerationConfidence */ +typedef long AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence; +asn_struct_free_f AccelerationConfidence_free; +asn_struct_print_f AccelerationConfidence_print; +asn_constr_check_f AccelerationConfidence_constraint; +ber_type_decoder_f AccelerationConfidence_decode_ber; +der_type_encoder_f AccelerationConfidence_encode_der; +xer_type_decoder_f AccelerationConfidence_decode_xer; +xer_type_encoder_f AccelerationConfidence_encode_xer; +oer_type_decoder_f AccelerationConfidence_decode_oer; +oer_type_encoder_f AccelerationConfidence_encode_oer; +per_type_decoder_f AccelerationConfidence_decode_uper; +per_type_encoder_f AccelerationConfidence_encode_uper; +per_type_decoder_f AccelerationConfidence_decode_aper; +per_type_encoder_f AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationConfidence_H_ */ +#include diff --git a/vcits/srem/AccelerationControl.h b/vcits/srem/AccelerationControl.h new file mode 100644 index 0000000..b5bdc87 --- /dev/null +++ b/vcits/srem/AccelerationControl.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AccelerationControl_H_ +#define _AccelerationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationControl { + AccelerationControl_brakePedalEngaged = 0, + AccelerationControl_gasPedalEngaged = 1, + AccelerationControl_emergencyBrakeEngaged = 2, + AccelerationControl_collisionWarningEngaged = 3, + AccelerationControl_accEngaged = 4, + AccelerationControl_cruiseControlEngaged = 5, + AccelerationControl_speedLimiterEngaged = 6 +} e_AccelerationControl; + +/* AccelerationControl */ +typedef BIT_STRING_t AccelerationControl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccelerationControl; +asn_struct_free_f AccelerationControl_free; +asn_struct_print_f AccelerationControl_print; +asn_constr_check_f AccelerationControl_constraint; +ber_type_decoder_f AccelerationControl_decode_ber; +der_type_encoder_f AccelerationControl_encode_der; +xer_type_decoder_f AccelerationControl_decode_xer; +xer_type_encoder_f AccelerationControl_encode_xer; +oer_type_decoder_f AccelerationControl_decode_oer; +oer_type_encoder_f AccelerationControl_encode_oer; +per_type_decoder_f AccelerationControl_decode_uper; +per_type_encoder_f AccelerationControl_encode_uper; +per_type_decoder_f AccelerationControl_decode_aper; +per_type_encoder_f AccelerationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationControl_H_ */ +#include diff --git a/vcits/srem/AccidentSubCauseCode.h b/vcits/srem/AccidentSubCauseCode.h new file mode 100644 index 0000000..674fcb6 --- /dev/null +++ b/vcits/srem/AccidentSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AccidentSubCauseCode_H_ +#define _AccidentSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccidentSubCauseCode { + AccidentSubCauseCode_unavailable = 0, + AccidentSubCauseCode_multiVehicleAccident = 1, + AccidentSubCauseCode_heavyAccident = 2, + AccidentSubCauseCode_accidentInvolvingLorry = 3, + AccidentSubCauseCode_accidentInvolvingBus = 4, + AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5, + AccidentSubCauseCode_accidentOnOppositeLane = 6, + AccidentSubCauseCode_unsecuredAccident = 7, + AccidentSubCauseCode_assistanceRequested = 8 +} e_AccidentSubCauseCode; + +/* AccidentSubCauseCode */ +typedef long AccidentSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode; +asn_struct_free_f AccidentSubCauseCode_free; +asn_struct_print_f AccidentSubCauseCode_print; +asn_constr_check_f AccidentSubCauseCode_constraint; +ber_type_decoder_f AccidentSubCauseCode_decode_ber; +der_type_encoder_f AccidentSubCauseCode_encode_der; +xer_type_decoder_f AccidentSubCauseCode_decode_xer; +xer_type_encoder_f AccidentSubCauseCode_encode_xer; +oer_type_decoder_f AccidentSubCauseCode_decode_oer; +oer_type_encoder_f AccidentSubCauseCode_encode_oer; +per_type_decoder_f AccidentSubCauseCode_decode_uper; +per_type_encoder_f AccidentSubCauseCode_encode_uper; +per_type_decoder_f AccidentSubCauseCode_decode_aper; +per_type_encoder_f AccidentSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccidentSubCauseCode_H_ */ +#include diff --git a/vcits/srem/ActionID.h b/vcits/srem/ActionID.h new file mode 100644 index 0000000..6eeab69 --- /dev/null +++ b/vcits/srem/ActionID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ActionID_H_ +#define _ActionID_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "SequenceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ActionID */ +typedef struct ActionID { + StationID_t originatingStationID; + SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ActionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ActionID; + +#ifdef __cplusplus +} +#endif + +#endif /* _ActionID_H_ */ +#include diff --git a/vcits/srem/AdverseWeatherCondition-AdhesionSubCauseCode.h b/vcits/srem/AdverseWeatherCondition-AdhesionSubCauseCode.h new file mode 100644 index 0000000..16df646 --- /dev/null +++ b/vcits/srem/AdverseWeatherCondition-AdhesionSubCauseCode.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AdverseWeatherCondition_AdhesionSubCauseCode_H_ +#define _AdverseWeatherCondition_AdhesionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_AdhesionSubCauseCode { + AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1, + AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2, + AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3, + AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4, + AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5, + AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6, + AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7, + AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8, + AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9, + AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10 +} e_AdverseWeatherCondition_AdhesionSubCauseCode; + +/* AdverseWeatherCondition-AdhesionSubCauseCode */ +typedef long AdverseWeatherCondition_AdhesionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_AdhesionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_AdhesionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_AdhesionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_AdhesionSubCauseCode_H_ */ +#include diff --git a/vcits/srem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h b/vcits/srem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 0000000..ba5662e --- /dev/null +++ b/vcits/srem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ +#define _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode { + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6 +} e_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; + +/* AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */ +typedef long AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */ +#include diff --git a/vcits/srem/AdverseWeatherCondition-PrecipitationSubCauseCode.h b/vcits/srem/AdverseWeatherCondition-PrecipitationSubCauseCode.h new file mode 100644 index 0000000..3987732 --- /dev/null +++ b/vcits/srem/AdverseWeatherCondition-PrecipitationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ +#define _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_PrecipitationSubCauseCode { + AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2, + AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3 +} e_AdverseWeatherCondition_PrecipitationSubCauseCode; + +/* AdverseWeatherCondition-PrecipitationSubCauseCode */ +typedef long AdverseWeatherCondition_PrecipitationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_PrecipitationSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_PrecipitationSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_PrecipitationSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */ +#include diff --git a/vcits/srem/AdverseWeatherCondition-VisibilitySubCauseCode.h b/vcits/srem/AdverseWeatherCondition-VisibilitySubCauseCode.h new file mode 100644 index 0000000..076f0b7 --- /dev/null +++ b/vcits/srem/AdverseWeatherCondition-VisibilitySubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AdverseWeatherCondition_VisibilitySubCauseCode_H_ +#define _AdverseWeatherCondition_VisibilitySubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_VisibilitySubCauseCode { + AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0, + AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1, + AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2, + AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5, + AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6, + AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7, + AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8 +} e_AdverseWeatherCondition_VisibilitySubCauseCode; + +/* AdverseWeatherCondition-VisibilitySubCauseCode */ +typedef long AdverseWeatherCondition_VisibilitySubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode; +asn_struct_free_f AdverseWeatherCondition_VisibilitySubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_VisibilitySubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_VisibilitySubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_VisibilitySubCauseCode_H_ */ +#include diff --git a/vcits/srem/AdvisorySpeed.h b/vcits/srem/AdvisorySpeed.h new file mode 100644 index 0000000..fa6a61c --- /dev/null +++ b/vcits/srem/AdvisorySpeed.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AdvisorySpeed_H_ +#define _AdvisorySpeed_H_ + + +#include + +/* Including external dependencies */ +#include "AdvisorySpeedType.h" +#include "SpeedAdvice.h" +#include "SpeedConfidenceDSRC.h" +#include "ZoneLength.h" +#include "RestrictionClassID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_AdvisorySpeed; + +/* AdvisorySpeed */ +typedef struct AdvisorySpeed { + AdvisorySpeedType_t type; + SpeedAdvice_t *speed; /* OPTIONAL */ + SpeedConfidenceDSRC_t *confidence; /* OPTIONAL */ + ZoneLength_t *distance; /* OPTIONAL */ + RestrictionClassID_t *Class; /* OPTIONAL */ + struct AdvisorySpeed__regional { + A_SEQUENCE_OF(struct Reg_AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeed_H_ */ +#include diff --git a/vcits/srem/AdvisorySpeedList.h b/vcits/srem/AdvisorySpeedList.h new file mode 100644 index 0000000..e6e42fd --- /dev/null +++ b/vcits/srem/AdvisorySpeedList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AdvisorySpeedList_H_ +#define _AdvisorySpeedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AdvisorySpeed; + +/* AdvisorySpeedList */ +typedef struct AdvisorySpeedList { + A_SEQUENCE_OF(struct AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList; +extern asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[1]; +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedList_H_ */ +#include diff --git a/vcits/srem/AdvisorySpeedType.h b/vcits/srem/AdvisorySpeedType.h new file mode 100644 index 0000000..70774fd --- /dev/null +++ b/vcits/srem/AdvisorySpeedType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AdvisorySpeedType_H_ +#define _AdvisorySpeedType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdvisorySpeedType { + AdvisorySpeedType_none = 0, + AdvisorySpeedType_greenwave = 1, + AdvisorySpeedType_ecoDrive = 2, + AdvisorySpeedType_transit = 3 + /* + * Enumeration is extensible + */ +} e_AdvisorySpeedType; + +/* AdvisorySpeedType */ +typedef long AdvisorySpeedType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType; +extern const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1; +asn_struct_free_f AdvisorySpeedType_free; +asn_struct_print_f AdvisorySpeedType_print; +asn_constr_check_f AdvisorySpeedType_constraint; +ber_type_decoder_f AdvisorySpeedType_decode_ber; +der_type_encoder_f AdvisorySpeedType_encode_der; +xer_type_decoder_f AdvisorySpeedType_decode_xer; +xer_type_encoder_f AdvisorySpeedType_encode_xer; +oer_type_decoder_f AdvisorySpeedType_decode_oer; +oer_type_encoder_f AdvisorySpeedType_encode_oer; +per_type_decoder_f AdvisorySpeedType_decode_uper; +per_type_encoder_f AdvisorySpeedType_encode_uper; +per_type_decoder_f AdvisorySpeedType_decode_aper; +per_type_encoder_f AdvisorySpeedType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedType_H_ */ +#include diff --git a/vcits/srem/AllowedManeuvers.h b/vcits/srem/AllowedManeuvers.h new file mode 100644 index 0000000..ab631d0 --- /dev/null +++ b/vcits/srem/AllowedManeuvers.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AllowedManeuvers_H_ +#define _AllowedManeuvers_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AllowedManeuvers { + AllowedManeuvers_maneuverStraightAllowed = 0, + AllowedManeuvers_maneuverLeftAllowed = 1, + AllowedManeuvers_maneuverRightAllowed = 2, + AllowedManeuvers_maneuverUTurnAllowed = 3, + AllowedManeuvers_maneuverLeftTurnOnRedAllowed = 4, + AllowedManeuvers_maneuverRightTurnOnRedAllowed = 5, + AllowedManeuvers_maneuverLaneChangeAllowed = 6, + AllowedManeuvers_maneuverNoStoppingAllowed = 7, + AllowedManeuvers_yieldAllwaysRequired = 8, + AllowedManeuvers_goWithHalt = 9, + AllowedManeuvers_caution = 10, + AllowedManeuvers_reserved1 = 11 +} e_AllowedManeuvers; + +/* AllowedManeuvers */ +typedef BIT_STRING_t AllowedManeuvers_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers; +asn_struct_free_f AllowedManeuvers_free; +asn_struct_print_f AllowedManeuvers_print; +asn_constr_check_f AllowedManeuvers_constraint; +ber_type_decoder_f AllowedManeuvers_decode_ber; +der_type_encoder_f AllowedManeuvers_encode_der; +xer_type_decoder_f AllowedManeuvers_decode_xer; +xer_type_encoder_f AllowedManeuvers_encode_xer; +oer_type_decoder_f AllowedManeuvers_decode_oer; +oer_type_encoder_f AllowedManeuvers_encode_oer; +per_type_decoder_f AllowedManeuvers_decode_uper; +per_type_encoder_f AllowedManeuvers_encode_uper; +per_type_decoder_f AllowedManeuvers_decode_aper; +per_type_encoder_f AllowedManeuvers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AllowedManeuvers_H_ */ +#include diff --git a/vcits/srem/AlphabetIndicator.h b/vcits/srem/AlphabetIndicator.h new file mode 100644 index 0000000..f4f7f36 --- /dev/null +++ b/vcits/srem/AlphabetIndicator.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AlphabetIndicator_H_ +#define _AlphabetIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AlphabetIndicator { + AlphabetIndicator_latinAlphabetNo1 = 0, + AlphabetIndicator_latinAlphabetNo2 = 1, + AlphabetIndicator_latinAlphabetNo3 = 2, + AlphabetIndicator_latinAlphabetNo4 = 3, + AlphabetIndicator_latinCyrillicAlphabet = 4, + AlphabetIndicator_latinArabicAlphabet = 5, + AlphabetIndicator_latinGreekAlphabet = 6, + AlphabetIndicator_latinHebrewAlphabet = 7, + AlphabetIndicator_latinAlphabetNo5 = 8, + AlphabetIndicator_latinAlphabetNo6 = 9, + AlphabetIndicator_twoOctetBMP = 10, + AlphabetIndicator_fourOctetCanonical = 11 +} e_AlphabetIndicator; + +/* AlphabetIndicator */ +typedef long AlphabetIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AlphabetIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AlphabetIndicator; +asn_struct_free_f AlphabetIndicator_free; +asn_struct_print_f AlphabetIndicator_print; +asn_constr_check_f AlphabetIndicator_constraint; +ber_type_decoder_f AlphabetIndicator_decode_ber; +der_type_encoder_f AlphabetIndicator_encode_der; +xer_type_decoder_f AlphabetIndicator_decode_xer; +xer_type_encoder_f AlphabetIndicator_encode_xer; +oer_type_decoder_f AlphabetIndicator_decode_oer; +oer_type_encoder_f AlphabetIndicator_encode_oer; +per_type_decoder_f AlphabetIndicator_decode_uper; +per_type_encoder_f AlphabetIndicator_encode_uper; +per_type_decoder_f AlphabetIndicator_decode_aper; +per_type_encoder_f AlphabetIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AlphabetIndicator_H_ */ +#include diff --git a/vcits/srem/Altitude.h b/vcits/srem/Altitude.h new file mode 100644 index 0000000..db74bd5 --- /dev/null +++ b/vcits/srem/Altitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Altitude_H_ +#define _Altitude_H_ + + +#include + +/* Including external dependencies */ +#include "AltitudeValue.h" +#include "AltitudeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Altitude */ +typedef struct Altitude { + AltitudeValue_t altitudeValue; + AltitudeConfidence_t altitudeConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Altitude_H_ */ +#include diff --git a/vcits/srem/AltitudeConfidence.h b/vcits/srem/AltitudeConfidence.h new file mode 100644 index 0000000..439bbac --- /dev/null +++ b/vcits/srem/AltitudeConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AltitudeConfidence_H_ +#define _AltitudeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeConfidence { + AltitudeConfidence_alt_000_01 = 0, + AltitudeConfidence_alt_000_02 = 1, + AltitudeConfidence_alt_000_05 = 2, + AltitudeConfidence_alt_000_10 = 3, + AltitudeConfidence_alt_000_20 = 4, + AltitudeConfidence_alt_000_50 = 5, + AltitudeConfidence_alt_001_00 = 6, + AltitudeConfidence_alt_002_00 = 7, + AltitudeConfidence_alt_005_00 = 8, + AltitudeConfidence_alt_010_00 = 9, + AltitudeConfidence_alt_020_00 = 10, + AltitudeConfidence_alt_050_00 = 11, + AltitudeConfidence_alt_100_00 = 12, + AltitudeConfidence_alt_200_00 = 13, + AltitudeConfidence_outOfRange = 14, + AltitudeConfidence_unavailable = 15 +} e_AltitudeConfidence; + +/* AltitudeConfidence */ +typedef long AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1; +asn_struct_free_f AltitudeConfidence_free; +asn_struct_print_f AltitudeConfidence_print; +asn_constr_check_f AltitudeConfidence_constraint; +ber_type_decoder_f AltitudeConfidence_decode_ber; +der_type_encoder_f AltitudeConfidence_encode_der; +xer_type_decoder_f AltitudeConfidence_decode_xer; +xer_type_encoder_f AltitudeConfidence_encode_xer; +oer_type_decoder_f AltitudeConfidence_decode_oer; +oer_type_encoder_f AltitudeConfidence_encode_oer; +per_type_decoder_f AltitudeConfidence_decode_uper; +per_type_encoder_f AltitudeConfidence_encode_uper; +per_type_decoder_f AltitudeConfidence_decode_aper; +per_type_encoder_f AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeConfidence_H_ */ +#include diff --git a/vcits/srem/AltitudeValue.h b/vcits/srem/AltitudeValue.h new file mode 100644 index 0000000..c6a6848 --- /dev/null +++ b/vcits/srem/AltitudeValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AltitudeValue_H_ +#define _AltitudeValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeValue { + AltitudeValue_referenceEllipsoidSurface = 0, + AltitudeValue_oneCentimeter = 1, + AltitudeValue_unavailable = 800001 +} e_AltitudeValue; + +/* AltitudeValue */ +typedef long AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeValue; +asn_struct_free_f AltitudeValue_free; +asn_struct_print_f AltitudeValue_print; +asn_constr_check_f AltitudeValue_constraint; +ber_type_decoder_f AltitudeValue_decode_ber; +der_type_encoder_f AltitudeValue_encode_der; +xer_type_decoder_f AltitudeValue_decode_xer; +xer_type_encoder_f AltitudeValue_encode_xer; +oer_type_decoder_f AltitudeValue_decode_oer; +oer_type_encoder_f AltitudeValue_encode_oer; +per_type_decoder_f AltitudeValue_decode_uper; +per_type_encoder_f AltitudeValue_encode_uper; +per_type_decoder_f AltitudeValue_decode_aper; +per_type_encoder_f AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeValue_H_ */ +#include diff --git a/vcits/srem/Angle.h b/vcits/srem/Angle.h new file mode 100644 index 0000000..3f60bec --- /dev/null +++ b/vcits/srem/Angle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Angle_H_ +#define _Angle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Angle */ +typedef long Angle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Angle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Angle; +asn_struct_free_f Angle_free; +asn_struct_print_f Angle_print; +asn_constr_check_f Angle_constraint; +ber_type_decoder_f Angle_decode_ber; +der_type_encoder_f Angle_encode_der; +xer_type_decoder_f Angle_decode_xer; +xer_type_encoder_f Angle_encode_xer; +oer_type_decoder_f Angle_decode_oer; +oer_type_encoder_f Angle_encode_oer; +per_type_decoder_f Angle_decode_uper; +per_type_encoder_f Angle_encode_uper; +per_type_decoder_f Angle_decode_aper; +per_type_encoder_f Angle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Angle_H_ */ +#include diff --git a/vcits/srem/AntennaOffsetSet.h b/vcits/srem/AntennaOffsetSet.h new file mode 100644 index 0000000..f4d1b6e --- /dev/null +++ b/vcits/srem/AntennaOffsetSet.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AntennaOffsetSet_H_ +#define _AntennaOffsetSet_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B12.h" +#include "Offset-B09.h" +#include "Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AntennaOffsetSet */ +typedef struct AntennaOffsetSet { + Offset_B12_t antOffsetX; + Offset_B09_t antOffsetY; + Offset_B10_t antOffsetZ; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AntennaOffsetSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet; +extern asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1; +extern asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AntennaOffsetSet_H_ */ +#include diff --git a/vcits/srem/ApproachID.h b/vcits/srem/ApproachID.h new file mode 100644 index 0000000..e38f9cf --- /dev/null +++ b/vcits/srem/ApproachID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ApproachID_H_ +#define _ApproachID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ApproachID */ +typedef long ApproachID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ApproachID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ApproachID; +asn_struct_free_f ApproachID_free; +asn_struct_print_f ApproachID_print; +asn_constr_check_f ApproachID_constraint; +ber_type_decoder_f ApproachID_decode_ber; +der_type_encoder_f ApproachID_encode_der; +xer_type_decoder_f ApproachID_decode_xer; +xer_type_encoder_f ApproachID_encode_xer; +oer_type_decoder_f ApproachID_decode_oer; +oer_type_encoder_f ApproachID_encode_oer; +per_type_decoder_f ApproachID_decode_uper; +per_type_encoder_f ApproachID_encode_uper; +per_type_decoder_f ApproachID_decode_aper; +per_type_encoder_f ApproachID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ApproachID_H_ */ +#include diff --git a/vcits/srem/AviEriDateTime.h b/vcits/srem/AviEriDateTime.h new file mode 100644 index 0000000..a4c2ecb --- /dev/null +++ b/vcits/srem/AviEriDateTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _AviEriDateTime_H_ +#define _AviEriDateTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AviEriDateTime */ +typedef OCTET_STRING_t AviEriDateTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AviEriDateTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AviEriDateTime; +asn_struct_free_f AviEriDateTime_free; +asn_struct_print_f AviEriDateTime_print; +asn_constr_check_f AviEriDateTime_constraint; +ber_type_decoder_f AviEriDateTime_decode_ber; +der_type_encoder_f AviEriDateTime_encode_der; +xer_type_decoder_f AviEriDateTime_decode_xer; +xer_type_encoder_f AviEriDateTime_encode_xer; +oer_type_decoder_f AviEriDateTime_decode_oer; +oer_type_encoder_f AviEriDateTime_encode_oer; +per_type_decoder_f AviEriDateTime_decode_uper; +per_type_encoder_f AviEriDateTime_encode_uper; +per_type_decoder_f AviEriDateTime_decode_aper; +per_type_encoder_f AviEriDateTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AviEriDateTime_H_ */ +#include diff --git a/vcits/srem/BasicVehicleRole.h b/vcits/srem/BasicVehicleRole.h new file mode 100644 index 0000000..978590b --- /dev/null +++ b/vcits/srem/BasicVehicleRole.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _BasicVehicleRole_H_ +#define _BasicVehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BasicVehicleRole { + BasicVehicleRole_basicVehicle = 0, + BasicVehicleRole_publicTransport = 1, + BasicVehicleRole_specialTransport = 2, + BasicVehicleRole_dangerousGoods = 3, + BasicVehicleRole_roadWork = 4, + BasicVehicleRole_roadRescue = 5, + BasicVehicleRole_emergency = 6, + BasicVehicleRole_safetyCar = 7, + BasicVehicleRole_none_unknown = 8, + BasicVehicleRole_truck = 9, + BasicVehicleRole_motorcycle = 10, + BasicVehicleRole_roadSideSource = 11, + BasicVehicleRole_police = 12, + BasicVehicleRole_fire = 13, + BasicVehicleRole_ambulance = 14, + BasicVehicleRole_dot = 15, + BasicVehicleRole_transit = 16, + BasicVehicleRole_slowMoving = 17, + BasicVehicleRole_stopNgo = 18, + BasicVehicleRole_cyclist = 19, + BasicVehicleRole_pedestrian = 20, + BasicVehicleRole_nonMotorized = 21, + BasicVehicleRole_military = 22 + /* + * Enumeration is extensible + */ +} e_BasicVehicleRole; + +/* BasicVehicleRole */ +typedef long BasicVehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1; +asn_struct_free_f BasicVehicleRole_free; +asn_struct_print_f BasicVehicleRole_print; +asn_constr_check_f BasicVehicleRole_constraint; +ber_type_decoder_f BasicVehicleRole_decode_ber; +der_type_encoder_f BasicVehicleRole_encode_der; +xer_type_decoder_f BasicVehicleRole_decode_xer; +xer_type_encoder_f BasicVehicleRole_encode_xer; +oer_type_decoder_f BasicVehicleRole_decode_oer; +oer_type_encoder_f BasicVehicleRole_encode_oer; +per_type_decoder_f BasicVehicleRole_decode_uper; +per_type_encoder_f BasicVehicleRole_encode_uper; +per_type_decoder_f BasicVehicleRole_decode_aper; +per_type_encoder_f BasicVehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicVehicleRole_H_ */ +#include diff --git a/vcits/srem/BatteryStatus.h b/vcits/srem/BatteryStatus.h new file mode 100644 index 0000000..8d9a9f5 --- /dev/null +++ b/vcits/srem/BatteryStatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _BatteryStatus_H_ +#define _BatteryStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BatteryStatus { + BatteryStatus_unknown = 0, + BatteryStatus_critical = 1, + BatteryStatus_low = 2, + BatteryStatus_good = 3 + /* + * Enumeration is extensible + */ +} e_BatteryStatus; + +/* BatteryStatus */ +typedef long BatteryStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BatteryStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BatteryStatus; +extern const asn_INTEGER_specifics_t asn_SPC_BatteryStatus_specs_1; +asn_struct_free_f BatteryStatus_free; +asn_struct_print_f BatteryStatus_print; +asn_constr_check_f BatteryStatus_constraint; +ber_type_decoder_f BatteryStatus_decode_ber; +der_type_encoder_f BatteryStatus_encode_der; +xer_type_decoder_f BatteryStatus_decode_xer; +xer_type_encoder_f BatteryStatus_encode_xer; +oer_type_decoder_f BatteryStatus_decode_oer; +oer_type_encoder_f BatteryStatus_encode_oer; +per_type_decoder_f BatteryStatus_decode_uper; +per_type_encoder_f BatteryStatus_encode_uper; +per_type_decoder_f BatteryStatus_decode_aper; +per_type_encoder_f BatteryStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BatteryStatus_H_ */ +#include diff --git a/vcits/srem/CMakeLists.txt b/vcits/srem/CMakeLists.txt new file mode 100644 index 0000000..69f73b8 --- /dev/null +++ b/vcits/srem/CMakeLists.txt @@ -0,0 +1,380 @@ +# This file is auto-generated by command-cxx.sh +cmake_minimum_required(VERSION 3.9) + +message(STATUS "--> Configure build of |-vcits-srem") + +project(vcits-srem VERSION 0.2 DESCRIPTION "srem part of vcits") + +add_library(vcits-srem STATIC +src/AccelerationConfidence.c +src/AccelerationControl.c +src/AccidentSubCauseCode.c +src/ActionID.c +src/AdverseWeatherCondition-AdhesionSubCauseCode.c +src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c +src/AdverseWeatherCondition-PrecipitationSubCauseCode.c +src/AdverseWeatherCondition-VisibilitySubCauseCode.c +src/AdvisorySpeed.c +src/AdvisorySpeedList.c +src/AdvisorySpeedType.c +src/AllowedManeuvers.c +src/AlphabetIndicator.c +src/Altitude.c +src/AltitudeConfidence.c +src/AltitudeValue.c +src/Angle.c +src/AntennaOffsetSet.c +src/ApproachID.c +src/AviEriDateTime.c +src/BasicVehicleRole.c +src/BatteryStatus.c +src/CS1.c +src/CS2.c +src/CS3.c +src/CS4.c +src/CS5.c +src/CS7.c +src/CS8.c +src/CauseCode.c +src/CauseCodeType.c +src/CenDsrcTollingZone.c +src/CenDsrcTollingZoneID.c +src/ClosedLanes.c +src/CollisionRiskSubCauseCode.c +src/ComputedLane.c +src/ConnectingLane.c +src/Connection.c +src/ConnectionManeuverAssist-addGrpC.c +src/ConnectionManeuverAssist.c +src/ConnectionTrajectory-addGrpC.c +src/ConnectsToList.c +src/CountryCode.c +src/Curvature.c +src/CurvatureCalculationMode.c +src/CurvatureConfidence.c +src/CurvatureValue.c +src/DDateTime.c +src/DDay.c +src/DHour.c +src/DMinute.c +src/DMonth.c +src/DOffset.c +src/DSRCmsgID.c +src/DSecond.c +src/DYear.c +src/DangerousEndOfQueueSubCauseCode.c +src/DangerousGoodsBasic.c +src/DangerousGoodsExtended.c +src/DangerousSituationSubCauseCode.c +src/DataParameters.c +src/DeltaAltitude.c +src/DeltaAngle.c +src/DeltaLatitude.c +src/DeltaLongitude.c +src/DeltaReferencePosition.c +src/DeltaTime.c +src/DescriptiveName.c +src/DigitalMap.c +src/DriveDirection.c +src/DrivenLineOffsetLg.c +src/DrivenLineOffsetSm.c +src/DrivingLaneStatus.c +src/Elevation.c +src/ElevationConfidence.c +src/EmbarkationStatus.c +src/EmergencyPriority.c +src/EmergencyVehicleApproachingSubCauseCode.c +src/EmissionType.c +src/EnabledLaneList.c +src/EnergyStorageType.c +src/EuVehicleCategoryCode.c +src/EuVehicleCategoryL.c +src/EuVehicleCategoryM.c +src/EuVehicleCategoryN.c +src/EuVehicleCategoryO.c +src/EventHistory.c +src/EventPoint.c +src/ExceptionalCondition.c +src/ExteriorLights.c +src/FreightContainerData.c +src/FuelType.c +src/FullPositionVector.c +src/GNSSstatus.c +src/GenericLane.c +src/GeoGraphicalLimit.c +src/HardShoulderStatus.c +src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c +src/HazardousLocation-DangerousCurveSubCauseCode.c +src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c +src/HazardousLocation-SurfaceConditionSubCauseCode.c +src/Heading.c +src/HeadingConfidence.c +src/HeadingConfidenceDSRC.c +src/HeadingDSRC.c +src/HeadingValue.c +src/HeightLonCarr.c +src/HumanPresenceOnTheRoadSubCauseCode.c +src/HumanProblemSubCauseCode.c +src/InformationQuality.c +src/IntersectionAccessPoint.c +src/IntersectionGeometry.c +src/IntersectionGeometryList.c +src/IntersectionID.c +src/IntersectionReferenceID.c +src/IntersectionState-addGrpC.c +src/IntersectionState.c +src/IntersectionStateList.c +src/IntersectionStatusObject.c +src/Iso3833VehicleType.c +src/IssuerIdentifier.c +src/ItineraryPath.c +src/ItsPduHeader.c +src/ItsStationPosition.c +src/ItsStationPositionList.c +src/LaneAttributes-Barrier.c +src/LaneAttributes-Bike.c +src/LaneAttributes-Crosswalk.c +src/LaneAttributes-Parking.c +src/LaneAttributes-Sidewalk.c +src/LaneAttributes-Striping.c +src/LaneAttributes-TrackedVehicle.c +src/LaneAttributes-Vehicle.c +src/LaneAttributes-addGrpC.c +src/LaneAttributes.c +src/LaneConnectionID.c +src/LaneDataAttribute.c +src/LaneDataAttributeList.c +src/LaneDirection.c +src/LaneID.c +src/LaneList.c +src/LanePosition.c +src/LaneSharing.c +src/LaneTypeAttributes.c +src/LaneWidth.c +src/LateralAcceleration.c +src/LateralAccelerationValue.c +src/Latitude.c +src/LayerID.c +src/LayerType.c +src/LicPlateNumber.c +src/LightBarSirenInUse.c +src/Longitude.c +src/LongitudinalAcceleration.c +src/LongitudinalAccelerationValue.c +src/ManeuverAssistList.c +src/ManufacturerIdentifier.c +src/MapData-addGrpC.c +src/MapData.c +src/MergeDivergeNodeAngle.c +src/MinuteOfTheYear.c +src/MovementEvent-addGrpC.c +src/MovementEvent.c +src/MovementEventList.c +src/MovementList.c +src/MovementPhaseState.c +src/MovementState.c +src/MsgCount.c +src/Node-LLmD-64b.c +src/Node-XY-20b.c +src/Node-XY-22b.c +src/Node-XY-24b.c +src/Node-XY-26b.c +src/Node-XY-28b.c +src/Node-XY-32b.c +src/Node.c +src/NodeAttributeSet-addGrpC.c +src/NodeAttributeSetXY.c +src/NodeAttributeXY.c +src/NodeAttributeXYList.c +src/NodeLink.c +src/NodeListXY.c +src/NodeOffsetPointXY.c +src/NodeSetXY.c +src/NodeXY.c +src/NumberOfOccupants.c +src/Offset-B09.c +src/Offset-B10.c +src/Offset-B11.c +src/Offset-B12.c +src/Offset-B13.c +src/Offset-B14.c +src/Offset-B16.c +src/OpeningDaysHours.c +src/OverlayLaneList.c +src/PathDeltaTime.c +src/PathHistory.c +src/PathPoint.c +src/PedestrianBicycleDetect.c +src/PerformanceClass.c +src/PhoneNumber.c +src/PosCentMass.c +src/PosConfidenceEllipse.c +src/PosFrontAx.c +src/PosLonCarr.c +src/PosPillar.c +src/Position3D-addGrpC.c +src/Position3D.c +src/PositionConfidence.c +src/PositionConfidenceSet.c +src/PositionOfOccupants.c +src/PositionOfPillars.c +src/PositionalAccuracy.c +src/PositioningSolutionType.c +src/PostCrashSubCauseCode.c +src/PreemptPriorityList.c +src/PrioritizationResponse.c +src/PrioritizationResponseList.c +src/PrioritizationResponseStatus.c +src/PriorityRequestType.c +src/ProtectedCommunicationZone.c +src/ProtectedCommunicationZonesRSU.c +src/ProtectedZoneID.c +src/ProtectedZoneRadius.c +src/ProtectedZoneType.c +src/PtActivation.c +src/PtActivationData.c +src/PtActivationType.c +src/PtvRequestType.c +src/RTCM-Revision.c +src/RTCMcorrections.c +src/RTCMheader.c +src/RTCMmessage.c +src/RTCMmessageList.c +src/ReferencePosition.c +src/RegionId.c +src/RegionalExtension.c +src/RegulatorySpeedLimit.c +src/RejectedReason.c +src/RelevanceDistance.c +src/RelevanceTrafficDirection.c +src/RequestID.c +src/RequestImportanceLevel.c +src/RequestResponseIndication.c +src/RequestSubRole.c +src/RequestorDescription-addGrpC.c +src/RequestorDescription.c +src/RequestorPositionVector.c +src/RequestorType.c +src/RescueAndRecoveryWorkInProgressSubCauseCode.c +src/RestrictedTypes.c +src/RestrictionAppliesTo.c +src/RestrictionClassAssignment.c +src/RestrictionClassID.c +src/RestrictionClassList.c +src/RestrictionUserType-addGrpC.c +src/RestrictionUserType.c +src/RestrictionUserTypeList.c +src/RoadLaneSetList.c +src/RoadRegulatorID.c +src/RoadSegment.c +src/RoadSegmentID.c +src/RoadSegmentList.c +src/RoadSegmentReferenceID.c +src/RoadType.c +src/RoadwayCrownAngle.c +src/RoadworksSubCauseCode.c +src/SPAT.c +src/SREM.c +src/Scale-B12.c +src/SegmentAttributeXY.c +src/SegmentAttributeXYList.c +src/SemiAxisLength.c +src/SemiMajorAxisAccuracy.c +src/SemiMajorAxisOrientation.c +src/SemiMinorAxisAccuracy.c +src/SequenceNumber.c +src/ServiceApplicationLimit.c +src/ServiceNumber.c +src/SignalControlZone.c +src/SignalGroupID.c +src/SignalHeadLocation.c +src/SignalHeadLocationList.c +src/SignalRequest.c +src/SignalRequestList.c +src/SignalRequestMessage.c +src/SignalRequestPackage.c +src/SignalRequesterInfo.c +src/SignalStatus.c +src/SignalStatusList.c +src/SignalStatusMessage.c +src/SignalStatusPackage-addGrpC.c +src/SignalStatusPackage.c +src/SignalStatusPackageList.c +src/SignalViolationSubCauseCode.c +src/SlowVehicleSubCauseCode.c +src/SpecialTransportType.c +src/Speed.c +src/SpeedAdvice.c +src/SpeedConfidence.c +src/SpeedConfidenceDSRC.c +src/SpeedLimit.c +src/SpeedLimitList.c +src/SpeedLimitType.c +src/SpeedValue.c +src/SpeedandHeadingandThrottleConfidence.c +src/StartTime.c +src/StationID.c +src/StationType.c +src/StationarySince.c +src/StationaryVehicleSubCauseCode.c +src/SteeringWheelAngle.c +src/SteeringWheelAngleConfidence.c +src/SteeringWheelAngleValue.c +src/StopTime.c +src/SubCauseCodeType.c +src/TaxCode.c +src/Temperature.c +src/TemporaryID.c +src/ThrottleConfidence.c +src/TimeChangeDetails.c +src/TimeConfidence.c +src/TimeIntervalConfidence.c +src/TimeMark.c +src/TimeReference.c +src/TimestampIts.c +src/Traces.c +src/TrafficConditionSubCauseCode.c +src/TrafficRule.c +src/TransitVehicleOccupancy.c +src/TransitVehicleStatus.c +src/TransmissionAndSpeed.c +src/TransmissionInterval.c +src/TransmissionState.c +src/TurningRadius.c +src/VDS.c +src/ValidityDuration.c +src/VehicleBreakdownSubCauseCode.c +src/VehicleHeight.c +src/VehicleID.c +src/VehicleIdentification.c +src/VehicleLength.c +src/VehicleLengthConfidenceIndication.c +src/VehicleLengthValue.c +src/VehicleMass.c +src/VehicleRole.c +src/VehicleType.c +src/VehicleWidth.c +src/Velocity.c +src/VerticalAcceleration.c +src/VerticalAccelerationValue.c +src/WMInumber.c +src/WaitOnStopline.c +src/WheelBaseVehicle.c +src/WrongWayDrivingSubCauseCode.c +src/YawRate.c +src/YawRateConfidence.c +src/YawRateValue.c +src/ZoneLength.c +) + +set_target_properties(vcits-srem PROPERTIES VERSION ${PROJECT_VERSION}) + +target_include_directories(vcits-srem PRIVATE .) +target_include_directories(vcits-srem PRIVATE ../asn1c) + +target_link_libraries(vcits-srem PUBLIC +vcits-asn1c +) + +message(STATUS "--> Configure build of |-vcits-srem - done") + diff --git a/vcits/srem/CS1.h b/vcits/srem/CS1.h new file mode 100644 index 0000000..d09aeb5 --- /dev/null +++ b/vcits/srem/CS1.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CS1_H_ +#define _CS1_H_ + + +#include + +/* Including external dependencies */ +#include "CountryCode.h" +#include "IssuerIdentifier.h" +#include "ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS1 */ +typedef struct CS1 { + CountryCode_t countryCode; + IssuerIdentifier_t issuerIdentifier; + ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS1_H_ */ +#include diff --git a/vcits/srem/CS2.h b/vcits/srem/CS2.h new file mode 100644 index 0000000..0b4a426 --- /dev/null +++ b/vcits/srem/CS2.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CS2_H_ +#define _CS2_H_ + + +#include + +/* Including external dependencies */ +#include "ManufacturerIdentifier.h" +#include "ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS2 */ +typedef struct CS2 { + ManufacturerIdentifier_t manufacturerIdentifier; + ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS2; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS2_H_ */ +#include diff --git a/vcits/srem/CS3.h b/vcits/srem/CS3.h new file mode 100644 index 0000000..bd39865 --- /dev/null +++ b/vcits/srem/CS3.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CS3_H_ +#define _CS3_H_ + + +#include + +/* Including external dependencies */ +#include "StartTime.h" +#include "StopTime.h" +#include "GeoGraphicalLimit.h" +#include "ServiceApplicationLimit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS3 */ +typedef struct CS3 { + StartTime_t startTime; + StopTime_t stopTime; + GeoGraphicalLimit_t geographLimit; + ServiceApplicationLimit_t serviceAppLimit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS3; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS3_H_ */ +#include diff --git a/vcits/srem/CS4.h b/vcits/srem/CS4.h new file mode 100644 index 0000000..c89f8f0 --- /dev/null +++ b/vcits/srem/CS4.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CS4_H_ +#define _CS4_H_ + + +#include + +/* Including external dependencies */ +#include "CountryCode.h" +#include "AlphabetIndicator.h" +#include "LicPlateNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS4 */ +typedef struct CS4 { + CountryCode_t countryCode; + AlphabetIndicator_t alphabetIndicator; + LicPlateNumber_t licPlateNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS4_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS4; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS4_H_ */ +#include diff --git a/vcits/srem/CS5.h b/vcits/srem/CS5.h new file mode 100644 index 0000000..5db321a --- /dev/null +++ b/vcits/srem/CS5.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CS5_H_ +#define _CS5_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS5 */ +typedef struct CS5 { + VisibleString_t vin; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS5_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS5; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS5_H_ */ +#include diff --git a/vcits/srem/CS7.h b/vcits/srem/CS7.h new file mode 100644 index 0000000..67efd84 --- /dev/null +++ b/vcits/srem/CS7.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CS7_H_ +#define _CS7_H_ + + +#include + +/* Including external dependencies */ +#include "FreightContainerData.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS7 */ +typedef FreightContainerData_t CS7_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS7; +asn_struct_free_f CS7_free; +asn_struct_print_f CS7_print; +asn_constr_check_f CS7_constraint; +ber_type_decoder_f CS7_decode_ber; +der_type_encoder_f CS7_encode_der; +xer_type_decoder_f CS7_decode_xer; +xer_type_encoder_f CS7_encode_xer; +oer_type_decoder_f CS7_decode_oer; +oer_type_encoder_f CS7_encode_oer; +per_type_decoder_f CS7_decode_uper; +per_type_encoder_f CS7_encode_uper; +per_type_decoder_f CS7_decode_aper; +per_type_encoder_f CS7_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS7_H_ */ +#include diff --git a/vcits/srem/CS8.h b/vcits/srem/CS8.h new file mode 100644 index 0000000..ce4903b --- /dev/null +++ b/vcits/srem/CS8.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CS8_H_ +#define _CS8_H_ + + +#include + +/* Including external dependencies */ +#include +#include "CountryCode.h" +#include "TaxCode.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS8 */ +typedef struct CS8 { + BIT_STRING_t fill; + CountryCode_t countryCode; + TaxCode_t taxCode; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS8_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS8; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS8_H_ */ +#include diff --git a/vcits/srem/CauseCode.h b/vcits/srem/CauseCode.h new file mode 100644 index 0000000..59b2386 --- /dev/null +++ b/vcits/srem/CauseCode.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CauseCode_H_ +#define _CauseCode_H_ + + +#include + +/* Including external dependencies */ +#include "CauseCodeType.h" +#include "SubCauseCodeType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CauseCode */ +typedef struct CauseCode { + CauseCodeType_t causeCode; + SubCauseCodeType_t subCauseCode; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CauseCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCode_H_ */ +#include diff --git a/vcits/srem/CauseCodeType.h b/vcits/srem/CauseCodeType.h new file mode 100644 index 0000000..c10cfed --- /dev/null +++ b/vcits/srem/CauseCodeType.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CauseCodeType_H_ +#define _CauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseCodeType { + CauseCodeType_reserved = 0, + CauseCodeType_trafficCondition = 1, + CauseCodeType_accident = 2, + CauseCodeType_roadworks = 3, + CauseCodeType_impassability = 5, + CauseCodeType_adverseWeatherCondition_Adhesion = 6, + CauseCodeType_aquaplannning = 7, + CauseCodeType_hazardousLocation_SurfaceCondition = 9, + CauseCodeType_hazardousLocation_ObstacleOnTheRoad = 10, + CauseCodeType_hazardousLocation_AnimalOnTheRoad = 11, + CauseCodeType_humanPresenceOnTheRoad = 12, + CauseCodeType_wrongWayDriving = 14, + CauseCodeType_rescueAndRecoveryWorkInProgress = 15, + CauseCodeType_adverseWeatherCondition_ExtremeWeatherCondition = 17, + CauseCodeType_adverseWeatherCondition_Visibility = 18, + CauseCodeType_adverseWeatherCondition_Precipitation = 19, + CauseCodeType_slowVehicle = 26, + CauseCodeType_dangerousEndOfQueue = 27, + CauseCodeType_vehicleBreakdown = 91, + CauseCodeType_postCrash = 92, + CauseCodeType_humanProblem = 93, + CauseCodeType_stationaryVehicle = 94, + CauseCodeType_emergencyVehicleApproaching = 95, + CauseCodeType_hazardousLocation_DangerousCurve = 96, + CauseCodeType_collisionRisk = 97, + CauseCodeType_signalViolation = 98, + CauseCodeType_dangerousSituation = 99 +} e_CauseCodeType; + +/* CauseCodeType */ +typedef long CauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseCodeType; +asn_struct_free_f CauseCodeType_free; +asn_struct_print_f CauseCodeType_print; +asn_constr_check_f CauseCodeType_constraint; +ber_type_decoder_f CauseCodeType_decode_ber; +der_type_encoder_f CauseCodeType_encode_der; +xer_type_decoder_f CauseCodeType_decode_xer; +xer_type_encoder_f CauseCodeType_encode_xer; +oer_type_decoder_f CauseCodeType_decode_oer; +oer_type_encoder_f CauseCodeType_encode_oer; +per_type_decoder_f CauseCodeType_decode_uper; +per_type_encoder_f CauseCodeType_encode_uper; +per_type_decoder_f CauseCodeType_decode_aper; +per_type_encoder_f CauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCodeType_H_ */ +#include diff --git a/vcits/srem/CenDsrcTollingZone.h b/vcits/srem/CenDsrcTollingZone.h new file mode 100644 index 0000000..85ee16b --- /dev/null +++ b/vcits/srem/CenDsrcTollingZone.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CenDsrcTollingZone_H_ +#define _CenDsrcTollingZone_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "CenDsrcTollingZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZone */ +typedef struct CenDsrcTollingZone { + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + CenDsrcTollingZoneID_t *cenDsrcTollingZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CenDsrcTollingZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZone_H_ */ +#include diff --git a/vcits/srem/CenDsrcTollingZoneID.h b/vcits/srem/CenDsrcTollingZoneID.h new file mode 100644 index 0000000..108cc59 --- /dev/null +++ b/vcits/srem/CenDsrcTollingZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CenDsrcTollingZoneID_H_ +#define _CenDsrcTollingZoneID_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneID.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZoneID */ +typedef ProtectedZoneID_t CenDsrcTollingZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID; +asn_struct_free_f CenDsrcTollingZoneID_free; +asn_struct_print_f CenDsrcTollingZoneID_print; +asn_constr_check_f CenDsrcTollingZoneID_constraint; +ber_type_decoder_f CenDsrcTollingZoneID_decode_ber; +der_type_encoder_f CenDsrcTollingZoneID_encode_der; +xer_type_decoder_f CenDsrcTollingZoneID_decode_xer; +xer_type_encoder_f CenDsrcTollingZoneID_encode_xer; +oer_type_decoder_f CenDsrcTollingZoneID_decode_oer; +oer_type_encoder_f CenDsrcTollingZoneID_encode_oer; +per_type_decoder_f CenDsrcTollingZoneID_decode_uper; +per_type_encoder_f CenDsrcTollingZoneID_encode_uper; +per_type_decoder_f CenDsrcTollingZoneID_decode_aper; +per_type_encoder_f CenDsrcTollingZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZoneID_H_ */ +#include diff --git a/vcits/srem/ClosedLanes.h b/vcits/srem/ClosedLanes.h new file mode 100644 index 0000000..c2cbef1 --- /dev/null +++ b/vcits/srem/ClosedLanes.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ClosedLanes_H_ +#define _ClosedLanes_H_ + + +#include + +/* Including external dependencies */ +#include "HardShoulderStatus.h" +#include "DrivingLaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ClosedLanes */ +typedef struct ClosedLanes { + HardShoulderStatus_t *innerhardShoulderStatus; /* OPTIONAL */ + HardShoulderStatus_t *outerhardShoulderStatus; /* OPTIONAL */ + DrivingLaneStatus_t *drivingLaneStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ClosedLanes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ClosedLanes; + +#ifdef __cplusplus +} +#endif + +#endif /* _ClosedLanes_H_ */ +#include diff --git a/vcits/srem/CollisionRiskSubCauseCode.h b/vcits/srem/CollisionRiskSubCauseCode.h new file mode 100644 index 0000000..d285c64 --- /dev/null +++ b/vcits/srem/CollisionRiskSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CollisionRiskSubCauseCode_H_ +#define _CollisionRiskSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CollisionRiskSubCauseCode { + CollisionRiskSubCauseCode_unavailable = 0, + CollisionRiskSubCauseCode_longitudinalCollisionRisk = 1, + CollisionRiskSubCauseCode_crossingCollisionRisk = 2, + CollisionRiskSubCauseCode_lateralCollisionRisk = 3, + CollisionRiskSubCauseCode_vulnerableRoadUser = 4 +} e_CollisionRiskSubCauseCode; + +/* CollisionRiskSubCauseCode */ +typedef long CollisionRiskSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode; +asn_struct_free_f CollisionRiskSubCauseCode_free; +asn_struct_print_f CollisionRiskSubCauseCode_print; +asn_constr_check_f CollisionRiskSubCauseCode_constraint; +ber_type_decoder_f CollisionRiskSubCauseCode_decode_ber; +der_type_encoder_f CollisionRiskSubCauseCode_encode_der; +xer_type_decoder_f CollisionRiskSubCauseCode_decode_xer; +xer_type_encoder_f CollisionRiskSubCauseCode_encode_xer; +oer_type_decoder_f CollisionRiskSubCauseCode_decode_oer; +oer_type_encoder_f CollisionRiskSubCauseCode_encode_oer; +per_type_decoder_f CollisionRiskSubCauseCode_decode_uper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_uper; +per_type_decoder_f CollisionRiskSubCauseCode_decode_aper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CollisionRiskSubCauseCode_H_ */ +#include diff --git a/vcits/srem/ComputedLane.h b/vcits/srem/ComputedLane.h new file mode 100644 index 0000000..68ce22f --- /dev/null +++ b/vcits/srem/ComputedLane.h @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ComputedLane_H_ +#define _ComputedLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "Angle.h" +#include "Scale-B12.h" +#include "DrivenLineOffsetSm.h" +#include "DrivenLineOffsetLg.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ComputedLane__offsetXaxis_PR { + ComputedLane__offsetXaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetXaxis_PR_small, + ComputedLane__offsetXaxis_PR_large +} ComputedLane__offsetXaxis_PR; +typedef enum ComputedLane__offsetYaxis_PR { + ComputedLane__offsetYaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetYaxis_PR_small, + ComputedLane__offsetYaxis_PR_large +} ComputedLane__offsetYaxis_PR; + +/* Forward declarations */ +struct Reg_ComputedLane; + +/* ComputedLane */ +typedef struct ComputedLane { + LaneID_t referenceLaneId; + struct ComputedLane__offsetXaxis { + ComputedLane__offsetXaxis_PR present; + union ComputedLane__offsetXaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetXaxis; + struct ComputedLane__offsetYaxis { + ComputedLane__offsetYaxis_PR present; + union ComputedLane__offsetYaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetYaxis; + Angle_t *rotateXY; /* OPTIONAL */ + Scale_B12_t *scaleXaxis; /* OPTIONAL */ + Scale_B12_t *scaleYaxis; /* OPTIONAL */ + struct ComputedLane__regional { + A_SEQUENCE_OF(struct Reg_ComputedLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ComputedLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ComputedLane_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ComputedLane_H_ */ +#include diff --git a/vcits/srem/ConnectingLane.h b/vcits/srem/ConnectingLane.h new file mode 100644 index 0000000..08269d8 --- /dev/null +++ b/vcits/srem/ConnectingLane.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ConnectingLane_H_ +#define _ConnectingLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "AllowedManeuvers.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectingLane */ +typedef struct ConnectingLane { + LaneID_t lane; + AllowedManeuvers_t *maneuver; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectingLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectingLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectingLane_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectingLane_H_ */ +#include diff --git a/vcits/srem/Connection.h b/vcits/srem/Connection.h new file mode 100644 index 0000000..619bc73 --- /dev/null +++ b/vcits/srem/Connection.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Connection_H_ +#define _Connection_H_ + + +#include + +/* Including external dependencies */ +#include "ConnectingLane.h" +#include "SignalGroupID.h" +#include "RestrictionClassID.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionReferenceID; + +/* Connection */ +typedef struct Connection { + ConnectingLane_t connectingLane; + struct IntersectionReferenceID *remoteIntersection; /* OPTIONAL */ + SignalGroupID_t *signalGroup; /* OPTIONAL */ + RestrictionClassID_t *userClass; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Connection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Connection; +extern asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1; +extern asn_TYPE_member_t asn_MBR_Connection_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Connection_H_ */ +#include diff --git a/vcits/srem/ConnectionManeuverAssist-addGrpC.h b/vcits/srem/ConnectionManeuverAssist-addGrpC.h new file mode 100644 index 0000000..b3ebfe6 --- /dev/null +++ b/vcits/srem/ConnectionManeuverAssist-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ConnectionManeuverAssist_addGrpC_H_ +#define _ConnectionManeuverAssist_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ItsStationPositionList; + +/* ConnectionManeuverAssist-addGrpC */ +typedef struct ConnectionManeuverAssist_addGrpC { + struct ItsStationPositionList *itsStationPosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_addGrpC_H_ */ +#include diff --git a/vcits/srem/ConnectionManeuverAssist.h b/vcits/srem/ConnectionManeuverAssist.h new file mode 100644 index 0000000..612da8a --- /dev/null +++ b/vcits/srem/ConnectionManeuverAssist.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ConnectionManeuverAssist_H_ +#define _ConnectionManeuverAssist_H_ + + +#include + +/* Including external dependencies */ +#include "LaneConnectionID.h" +#include "ZoneLength.h" +#include "WaitOnStopline.h" +#include "PedestrianBicycleDetect.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_ConnectionManeuverAssist; + +/* ConnectionManeuverAssist */ +typedef struct ConnectionManeuverAssist { + LaneConnectionID_t connectionID; + ZoneLength_t *queueLength; /* OPTIONAL */ + ZoneLength_t *availableStorageLength; /* OPTIONAL */ + WaitOnStopline_t *waitOnStop; /* OPTIONAL */ + PedestrianBicycleDetect_t *pedBicycleDetect; /* OPTIONAL */ + struct ConnectionManeuverAssist__regional { + A_SEQUENCE_OF(struct Reg_ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_H_ */ +#include diff --git a/vcits/srem/ConnectionTrajectory-addGrpC.h b/vcits/srem/ConnectionTrajectory-addGrpC.h new file mode 100644 index 0000000..c6a83bc --- /dev/null +++ b/vcits/srem/ConnectionTrajectory-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ConnectionTrajectory_addGrpC_H_ +#define _ConnectionTrajectory_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectionTrajectory-addGrpC */ +typedef struct ConnectionTrajectory_addGrpC { + NodeSetXY_t nodes; + LaneConnectionID_t connectionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionTrajectory_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionTrajectory_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionTrajectory_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionTrajectory_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionTrajectory_addGrpC_H_ */ +#include diff --git a/vcits/srem/ConnectsToList.h b/vcits/srem/ConnectsToList.h new file mode 100644 index 0000000..96b10a3 --- /dev/null +++ b/vcits/srem/ConnectsToList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ConnectsToList_H_ +#define _ConnectsToList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Connection; + +/* ConnectsToList */ +typedef struct ConnectsToList { + A_SEQUENCE_OF(struct Connection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectsToList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectsToList; +extern asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectsToList_1[1]; +extern asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectsToList_H_ */ +#include diff --git a/vcits/srem/CountryCode.h b/vcits/srem/CountryCode.h new file mode 100644 index 0000000..6189281 --- /dev/null +++ b/vcits/srem/CountryCode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CountryCode_H_ +#define _CountryCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CountryCode */ +typedef BIT_STRING_t CountryCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CountryCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CountryCode; +asn_struct_free_f CountryCode_free; +asn_struct_print_f CountryCode_print; +asn_constr_check_f CountryCode_constraint; +ber_type_decoder_f CountryCode_decode_ber; +der_type_encoder_f CountryCode_encode_der; +xer_type_decoder_f CountryCode_decode_xer; +xer_type_encoder_f CountryCode_encode_xer; +oer_type_decoder_f CountryCode_decode_oer; +oer_type_encoder_f CountryCode_encode_oer; +per_type_decoder_f CountryCode_decode_uper; +per_type_encoder_f CountryCode_encode_uper; +per_type_decoder_f CountryCode_decode_aper; +per_type_encoder_f CountryCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CountryCode_H_ */ +#include diff --git a/vcits/srem/Curvature.h b/vcits/srem/Curvature.h new file mode 100644 index 0000000..1699498 --- /dev/null +++ b/vcits/srem/Curvature.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Curvature_H_ +#define _Curvature_H_ + + +#include + +/* Including external dependencies */ +#include "CurvatureValue.h" +#include "CurvatureConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Curvature */ +typedef struct Curvature { + CurvatureValue_t curvatureValue; + CurvatureConfidence_t curvatureConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Curvature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Curvature; + +#ifdef __cplusplus +} +#endif + +#endif /* _Curvature_H_ */ +#include diff --git a/vcits/srem/CurvatureCalculationMode.h b/vcits/srem/CurvatureCalculationMode.h new file mode 100644 index 0000000..fe5f44d --- /dev/null +++ b/vcits/srem/CurvatureCalculationMode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CurvatureCalculationMode_H_ +#define _CurvatureCalculationMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureCalculationMode { + CurvatureCalculationMode_yawRateUsed = 0, + CurvatureCalculationMode_yawRateNotUsed = 1, + CurvatureCalculationMode_unavailable = 2 + /* + * Enumeration is extensible + */ +} e_CurvatureCalculationMode; + +/* CurvatureCalculationMode */ +typedef long CurvatureCalculationMode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode; +asn_struct_free_f CurvatureCalculationMode_free; +asn_struct_print_f CurvatureCalculationMode_print; +asn_constr_check_f CurvatureCalculationMode_constraint; +ber_type_decoder_f CurvatureCalculationMode_decode_ber; +der_type_encoder_f CurvatureCalculationMode_encode_der; +xer_type_decoder_f CurvatureCalculationMode_decode_xer; +xer_type_encoder_f CurvatureCalculationMode_encode_xer; +oer_type_decoder_f CurvatureCalculationMode_decode_oer; +oer_type_encoder_f CurvatureCalculationMode_encode_oer; +per_type_decoder_f CurvatureCalculationMode_decode_uper; +per_type_encoder_f CurvatureCalculationMode_encode_uper; +per_type_decoder_f CurvatureCalculationMode_decode_aper; +per_type_encoder_f CurvatureCalculationMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureCalculationMode_H_ */ +#include diff --git a/vcits/srem/CurvatureConfidence.h b/vcits/srem/CurvatureConfidence.h new file mode 100644 index 0000000..b2edcf2 --- /dev/null +++ b/vcits/srem/CurvatureConfidence.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CurvatureConfidence_H_ +#define _CurvatureConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureConfidence { + CurvatureConfidence_onePerMeter_0_00002 = 0, + CurvatureConfidence_onePerMeter_0_0001 = 1, + CurvatureConfidence_onePerMeter_0_0005 = 2, + CurvatureConfidence_onePerMeter_0_002 = 3, + CurvatureConfidence_onePerMeter_0_01 = 4, + CurvatureConfidence_onePerMeter_0_1 = 5, + CurvatureConfidence_outOfRange = 6, + CurvatureConfidence_unavailable = 7 +} e_CurvatureConfidence; + +/* CurvatureConfidence */ +typedef long CurvatureConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1; +asn_struct_free_f CurvatureConfidence_free; +asn_struct_print_f CurvatureConfidence_print; +asn_constr_check_f CurvatureConfidence_constraint; +ber_type_decoder_f CurvatureConfidence_decode_ber; +der_type_encoder_f CurvatureConfidence_encode_der; +xer_type_decoder_f CurvatureConfidence_decode_xer; +xer_type_encoder_f CurvatureConfidence_encode_xer; +oer_type_decoder_f CurvatureConfidence_decode_oer; +oer_type_encoder_f CurvatureConfidence_encode_oer; +per_type_decoder_f CurvatureConfidence_decode_uper; +per_type_encoder_f CurvatureConfidence_encode_uper; +per_type_decoder_f CurvatureConfidence_decode_aper; +per_type_encoder_f CurvatureConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureConfidence_H_ */ +#include diff --git a/vcits/srem/CurvatureValue.h b/vcits/srem/CurvatureValue.h new file mode 100644 index 0000000..3d0842f --- /dev/null +++ b/vcits/srem/CurvatureValue.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _CurvatureValue_H_ +#define _CurvatureValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureValue { + CurvatureValue_straight = 0, + CurvatureValue_unavailable = 1023 +} e_CurvatureValue; + +/* CurvatureValue */ +typedef long CurvatureValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureValue; +asn_struct_free_f CurvatureValue_free; +asn_struct_print_f CurvatureValue_print; +asn_constr_check_f CurvatureValue_constraint; +ber_type_decoder_f CurvatureValue_decode_ber; +der_type_encoder_f CurvatureValue_encode_der; +xer_type_decoder_f CurvatureValue_decode_xer; +xer_type_encoder_f CurvatureValue_encode_xer; +oer_type_decoder_f CurvatureValue_decode_oer; +oer_type_encoder_f CurvatureValue_encode_oer; +per_type_decoder_f CurvatureValue_decode_uper; +per_type_encoder_f CurvatureValue_encode_uper; +per_type_decoder_f CurvatureValue_decode_aper; +per_type_encoder_f CurvatureValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureValue_H_ */ +#include diff --git a/vcits/srem/DDateTime.h b/vcits/srem/DDateTime.h new file mode 100644 index 0000000..231eac7 --- /dev/null +++ b/vcits/srem/DDateTime.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DDateTime_H_ +#define _DDateTime_H_ + + +#include + +/* Including external dependencies */ +#include "DYear.h" +#include "DMonth.h" +#include "DDay.h" +#include "DHour.h" +#include "DMinute.h" +#include "DSecond.h" +#include "DOffset.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDateTime */ +typedef struct DDateTime { + DYear_t *year; /* OPTIONAL */ + DMonth_t *month; /* OPTIONAL */ + DDay_t *day; /* OPTIONAL */ + DHour_t *hour; /* OPTIONAL */ + DMinute_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DOffset_t *offset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DDateTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DDateTime; +extern asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1; +extern asn_TYPE_member_t asn_MBR_DDateTime_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDateTime_H_ */ +#include diff --git a/vcits/srem/DDay.h b/vcits/srem/DDay.h new file mode 100644 index 0000000..51bafc7 --- /dev/null +++ b/vcits/srem/DDay.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DDay_H_ +#define _DDay_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDay */ +typedef long DDay_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DDay_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DDay; +asn_struct_free_f DDay_free; +asn_struct_print_f DDay_print; +asn_constr_check_f DDay_constraint; +ber_type_decoder_f DDay_decode_ber; +der_type_encoder_f DDay_encode_der; +xer_type_decoder_f DDay_decode_xer; +xer_type_encoder_f DDay_encode_xer; +oer_type_decoder_f DDay_decode_oer; +oer_type_encoder_f DDay_encode_oer; +per_type_decoder_f DDay_decode_uper; +per_type_encoder_f DDay_encode_uper; +per_type_decoder_f DDay_decode_aper; +per_type_encoder_f DDay_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDay_H_ */ +#include diff --git a/vcits/srem/DHour.h b/vcits/srem/DHour.h new file mode 100644 index 0000000..24e43f1 --- /dev/null +++ b/vcits/srem/DHour.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DHour_H_ +#define _DHour_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DHour */ +typedef long DHour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DHour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DHour; +asn_struct_free_f DHour_free; +asn_struct_print_f DHour_print; +asn_constr_check_f DHour_constraint; +ber_type_decoder_f DHour_decode_ber; +der_type_encoder_f DHour_encode_der; +xer_type_decoder_f DHour_decode_xer; +xer_type_encoder_f DHour_encode_xer; +oer_type_decoder_f DHour_decode_oer; +oer_type_encoder_f DHour_encode_oer; +per_type_decoder_f DHour_decode_uper; +per_type_encoder_f DHour_encode_uper; +per_type_decoder_f DHour_decode_aper; +per_type_encoder_f DHour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DHour_H_ */ +#include diff --git a/vcits/srem/DMinute.h b/vcits/srem/DMinute.h new file mode 100644 index 0000000..7ad2c09 --- /dev/null +++ b/vcits/srem/DMinute.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DMinute_H_ +#define _DMinute_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMinute */ +typedef long DMinute_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMinute_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMinute; +asn_struct_free_f DMinute_free; +asn_struct_print_f DMinute_print; +asn_constr_check_f DMinute_constraint; +ber_type_decoder_f DMinute_decode_ber; +der_type_encoder_f DMinute_encode_der; +xer_type_decoder_f DMinute_decode_xer; +xer_type_encoder_f DMinute_encode_xer; +oer_type_decoder_f DMinute_decode_oer; +oer_type_encoder_f DMinute_encode_oer; +per_type_decoder_f DMinute_decode_uper; +per_type_encoder_f DMinute_encode_uper; +per_type_decoder_f DMinute_decode_aper; +per_type_encoder_f DMinute_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMinute_H_ */ +#include diff --git a/vcits/srem/DMonth.h b/vcits/srem/DMonth.h new file mode 100644 index 0000000..571486c --- /dev/null +++ b/vcits/srem/DMonth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DMonth_H_ +#define _DMonth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMonth */ +typedef long DMonth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMonth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMonth; +asn_struct_free_f DMonth_free; +asn_struct_print_f DMonth_print; +asn_constr_check_f DMonth_constraint; +ber_type_decoder_f DMonth_decode_ber; +der_type_encoder_f DMonth_encode_der; +xer_type_decoder_f DMonth_decode_xer; +xer_type_encoder_f DMonth_encode_xer; +oer_type_decoder_f DMonth_decode_oer; +oer_type_encoder_f DMonth_encode_oer; +per_type_decoder_f DMonth_decode_uper; +per_type_encoder_f DMonth_encode_uper; +per_type_decoder_f DMonth_decode_aper; +per_type_encoder_f DMonth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMonth_H_ */ +#include diff --git a/vcits/srem/DOffset.h b/vcits/srem/DOffset.h new file mode 100644 index 0000000..07b791e --- /dev/null +++ b/vcits/srem/DOffset.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DOffset_H_ +#define _DOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DOffset */ +typedef long DOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DOffset; +asn_struct_free_f DOffset_free; +asn_struct_print_f DOffset_print; +asn_constr_check_f DOffset_constraint; +ber_type_decoder_f DOffset_decode_ber; +der_type_encoder_f DOffset_encode_der; +xer_type_decoder_f DOffset_decode_xer; +xer_type_encoder_f DOffset_encode_xer; +oer_type_decoder_f DOffset_decode_oer; +oer_type_encoder_f DOffset_encode_oer; +per_type_decoder_f DOffset_decode_uper; +per_type_encoder_f DOffset_encode_uper; +per_type_decoder_f DOffset_decode_aper; +per_type_encoder_f DOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DOffset_H_ */ +#include diff --git a/vcits/srem/DSRCmsgID.h b/vcits/srem/DSRCmsgID.h new file mode 100644 index 0000000..340630b --- /dev/null +++ b/vcits/srem/DSRCmsgID.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DSRCmsgID_H_ +#define _DSRCmsgID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSRCmsgID */ +typedef long DSRCmsgID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSRCmsgID; +asn_struct_free_f DSRCmsgID_free; +asn_struct_print_f DSRCmsgID_print; +asn_constr_check_f DSRCmsgID_constraint; +ber_type_decoder_f DSRCmsgID_decode_ber; +der_type_encoder_f DSRCmsgID_encode_der; +xer_type_decoder_f DSRCmsgID_decode_xer; +xer_type_encoder_f DSRCmsgID_encode_xer; +oer_type_decoder_f DSRCmsgID_decode_oer; +oer_type_encoder_f DSRCmsgID_encode_oer; +per_type_decoder_f DSRCmsgID_decode_uper; +per_type_encoder_f DSRCmsgID_encode_uper; +per_type_decoder_f DSRCmsgID_decode_aper; +per_type_encoder_f DSRCmsgID_encode_aper; +#define DSRCmsgID_mapData ((DSRCmsgID_t)18) +#define DSRCmsgID_rtcmCorrections ((DSRCmsgID_t)28) +#define DSRCmsgID_signalPhaseAndTimingMessage ((DSRCmsgID_t)19) +#define DSRCmsgID_signalRequestMessage ((DSRCmsgID_t)29) +#define DSRCmsgID_signalStatusMessage ((DSRCmsgID_t)30) + +#ifdef __cplusplus +} +#endif + +#endif /* _DSRCmsgID_H_ */ +#include diff --git a/vcits/srem/DSecond.h b/vcits/srem/DSecond.h new file mode 100644 index 0000000..5d97e9e --- /dev/null +++ b/vcits/srem/DSecond.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DSecond_H_ +#define _DSecond_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSecond */ +typedef long DSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSecond; +asn_struct_free_f DSecond_free; +asn_struct_print_f DSecond_print; +asn_constr_check_f DSecond_constraint; +ber_type_decoder_f DSecond_decode_ber; +der_type_encoder_f DSecond_encode_der; +xer_type_decoder_f DSecond_decode_xer; +xer_type_encoder_f DSecond_encode_xer; +oer_type_decoder_f DSecond_decode_oer; +oer_type_encoder_f DSecond_encode_oer; +per_type_decoder_f DSecond_decode_uper; +per_type_encoder_f DSecond_encode_uper; +per_type_decoder_f DSecond_decode_aper; +per_type_encoder_f DSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DSecond_H_ */ +#include diff --git a/vcits/srem/DYear.h b/vcits/srem/DYear.h new file mode 100644 index 0000000..3cdf3a0 --- /dev/null +++ b/vcits/srem/DYear.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DYear_H_ +#define _DYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DYear */ +typedef long DYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DYear; +asn_struct_free_f DYear_free; +asn_struct_print_f DYear_print; +asn_constr_check_f DYear_constraint; +ber_type_decoder_f DYear_decode_ber; +der_type_encoder_f DYear_encode_der; +xer_type_decoder_f DYear_decode_xer; +xer_type_encoder_f DYear_encode_xer; +oer_type_decoder_f DYear_decode_oer; +oer_type_encoder_f DYear_encode_oer; +per_type_decoder_f DYear_decode_uper; +per_type_encoder_f DYear_encode_uper; +per_type_decoder_f DYear_decode_aper; +per_type_encoder_f DYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DYear_H_ */ +#include diff --git a/vcits/srem/DangerousEndOfQueueSubCauseCode.h b/vcits/srem/DangerousEndOfQueueSubCauseCode.h new file mode 100644 index 0000000..79a4b4e --- /dev/null +++ b/vcits/srem/DangerousEndOfQueueSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DangerousEndOfQueueSubCauseCode_H_ +#define _DangerousEndOfQueueSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousEndOfQueueSubCauseCode { + DangerousEndOfQueueSubCauseCode_unavailable = 0, + DangerousEndOfQueueSubCauseCode_suddenEndOfQueue = 1, + DangerousEndOfQueueSubCauseCode_queueOverHill = 2, + DangerousEndOfQueueSubCauseCode_queueAroundBend = 3, + DangerousEndOfQueueSubCauseCode_queueInTunnel = 4 +} e_DangerousEndOfQueueSubCauseCode; + +/* DangerousEndOfQueueSubCauseCode */ +typedef long DangerousEndOfQueueSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode; +asn_struct_free_f DangerousEndOfQueueSubCauseCode_free; +asn_struct_print_f DangerousEndOfQueueSubCauseCode_print; +asn_constr_check_f DangerousEndOfQueueSubCauseCode_constraint; +ber_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_ber; +der_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_der; +xer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_xer; +xer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_xer; +oer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_oer; +oer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_oer; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_uper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_uper; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_aper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousEndOfQueueSubCauseCode_H_ */ +#include diff --git a/vcits/srem/DangerousGoodsBasic.h b/vcits/srem/DangerousGoodsBasic.h new file mode 100644 index 0000000..cc78d14 --- /dev/null +++ b/vcits/srem/DangerousGoodsBasic.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DangerousGoodsBasic_H_ +#define _DangerousGoodsBasic_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousGoodsBasic { + DangerousGoodsBasic_explosives1 = 0, + DangerousGoodsBasic_explosives2 = 1, + DangerousGoodsBasic_explosives3 = 2, + DangerousGoodsBasic_explosives4 = 3, + DangerousGoodsBasic_explosives5 = 4, + DangerousGoodsBasic_explosives6 = 5, + DangerousGoodsBasic_flammableGases = 6, + DangerousGoodsBasic_nonFlammableGases = 7, + DangerousGoodsBasic_toxicGases = 8, + DangerousGoodsBasic_flammableLiquids = 9, + DangerousGoodsBasic_flammableSolids = 10, + DangerousGoodsBasic_substancesLiableToSpontaneousCombustion = 11, + DangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater = 12, + DangerousGoodsBasic_oxidizingSubstances = 13, + DangerousGoodsBasic_organicPeroxides = 14, + DangerousGoodsBasic_toxicSubstances = 15, + DangerousGoodsBasic_infectiousSubstances = 16, + DangerousGoodsBasic_radioactiveMaterial = 17, + DangerousGoodsBasic_corrosiveSubstances = 18, + DangerousGoodsBasic_miscellaneousDangerousSubstances = 19 +} e_DangerousGoodsBasic; + +/* DangerousGoodsBasic */ +typedef long DangerousGoodsBasic_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic; +extern const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1; +asn_struct_free_f DangerousGoodsBasic_free; +asn_struct_print_f DangerousGoodsBasic_print; +asn_constr_check_f DangerousGoodsBasic_constraint; +ber_type_decoder_f DangerousGoodsBasic_decode_ber; +der_type_encoder_f DangerousGoodsBasic_encode_der; +xer_type_decoder_f DangerousGoodsBasic_decode_xer; +xer_type_encoder_f DangerousGoodsBasic_encode_xer; +oer_type_decoder_f DangerousGoodsBasic_decode_oer; +oer_type_encoder_f DangerousGoodsBasic_encode_oer; +per_type_decoder_f DangerousGoodsBasic_decode_uper; +per_type_encoder_f DangerousGoodsBasic_encode_uper; +per_type_decoder_f DangerousGoodsBasic_decode_aper; +per_type_encoder_f DangerousGoodsBasic_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsBasic_H_ */ +#include diff --git a/vcits/srem/DangerousGoodsExtended.h b/vcits/srem/DangerousGoodsExtended.h new file mode 100644 index 0000000..b0f99d8 --- /dev/null +++ b/vcits/srem/DangerousGoodsExtended.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DangerousGoodsExtended_H_ +#define _DangerousGoodsExtended_H_ + + +#include + +/* Including external dependencies */ +#include "DangerousGoodsBasic.h" +#include +#include +#include +#include "PhoneNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DangerousGoodsExtended */ +typedef struct DangerousGoodsExtended { + DangerousGoodsBasic_t dangerousGoodsType; + long unNumber; + BOOLEAN_t elevatedTemperature; + BOOLEAN_t tunnelsRestricted; + BOOLEAN_t limitedQuantity; + IA5String_t *emergencyActionCode; /* OPTIONAL */ + PhoneNumber_t *phoneNumber; /* OPTIONAL */ + UTF8String_t *companyName; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DangerousGoodsExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsExtended_H_ */ +#include diff --git a/vcits/srem/DangerousSituationSubCauseCode.h b/vcits/srem/DangerousSituationSubCauseCode.h new file mode 100644 index 0000000..7fa3684 --- /dev/null +++ b/vcits/srem/DangerousSituationSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DangerousSituationSubCauseCode_H_ +#define _DangerousSituationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousSituationSubCauseCode { + DangerousSituationSubCauseCode_unavailable = 0, + DangerousSituationSubCauseCode_emergencyElectronicBrakeEngaged = 1, + DangerousSituationSubCauseCode_preCrashSystemEngaged = 2, + DangerousSituationSubCauseCode_espEngaged = 3, + DangerousSituationSubCauseCode_absEngaged = 4, + DangerousSituationSubCauseCode_aebEngaged = 5, + DangerousSituationSubCauseCode_brakeWarningEngaged = 6, + DangerousSituationSubCauseCode_collisionRiskWarningEngaged = 7 +} e_DangerousSituationSubCauseCode; + +/* DangerousSituationSubCauseCode */ +typedef long DangerousSituationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode; +asn_struct_free_f DangerousSituationSubCauseCode_free; +asn_struct_print_f DangerousSituationSubCauseCode_print; +asn_constr_check_f DangerousSituationSubCauseCode_constraint; +ber_type_decoder_f DangerousSituationSubCauseCode_decode_ber; +der_type_encoder_f DangerousSituationSubCauseCode_encode_der; +xer_type_decoder_f DangerousSituationSubCauseCode_decode_xer; +xer_type_encoder_f DangerousSituationSubCauseCode_encode_xer; +oer_type_decoder_f DangerousSituationSubCauseCode_decode_oer; +oer_type_encoder_f DangerousSituationSubCauseCode_encode_oer; +per_type_decoder_f DangerousSituationSubCauseCode_decode_uper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_uper; +per_type_decoder_f DangerousSituationSubCauseCode_decode_aper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousSituationSubCauseCode_H_ */ +#include diff --git a/vcits/srem/DataParameters.h b/vcits/srem/DataParameters.h new file mode 100644 index 0000000..5aa5fc9 --- /dev/null +++ b/vcits/srem/DataParameters.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DataParameters_H_ +#define _DataParameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DataParameters */ +typedef struct DataParameters { + IA5String_t *processMethod; /* OPTIONAL */ + IA5String_t *processAgency; /* OPTIONAL */ + IA5String_t *lastCheckedDate; /* OPTIONAL */ + IA5String_t *geoidUsed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DataParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DataParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_DataParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DataParameters_H_ */ +#include diff --git a/vcits/srem/DeltaAltitude.h b/vcits/srem/DeltaAltitude.h new file mode 100644 index 0000000..95f729c --- /dev/null +++ b/vcits/srem/DeltaAltitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DeltaAltitude_H_ +#define _DeltaAltitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaAltitude { + DeltaAltitude_oneCentimeterUp = 1, + DeltaAltitude_oneCentimeterDown = -1, + DeltaAltitude_unavailable = 12800 +} e_DeltaAltitude; + +/* DeltaAltitude */ +typedef long DeltaAltitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAltitude; +asn_struct_free_f DeltaAltitude_free; +asn_struct_print_f DeltaAltitude_print; +asn_constr_check_f DeltaAltitude_constraint; +ber_type_decoder_f DeltaAltitude_decode_ber; +der_type_encoder_f DeltaAltitude_encode_der; +xer_type_decoder_f DeltaAltitude_decode_xer; +xer_type_encoder_f DeltaAltitude_encode_xer; +oer_type_decoder_f DeltaAltitude_decode_oer; +oer_type_encoder_f DeltaAltitude_encode_oer; +per_type_decoder_f DeltaAltitude_decode_uper; +per_type_encoder_f DeltaAltitude_encode_uper; +per_type_decoder_f DeltaAltitude_decode_aper; +per_type_encoder_f DeltaAltitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAltitude_H_ */ +#include diff --git a/vcits/srem/DeltaAngle.h b/vcits/srem/DeltaAngle.h new file mode 100644 index 0000000..c75fd93 --- /dev/null +++ b/vcits/srem/DeltaAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DeltaAngle_H_ +#define _DeltaAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaAngle */ +typedef long DeltaAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAngle; +asn_struct_free_f DeltaAngle_free; +asn_struct_print_f DeltaAngle_print; +asn_constr_check_f DeltaAngle_constraint; +ber_type_decoder_f DeltaAngle_decode_ber; +der_type_encoder_f DeltaAngle_encode_der; +xer_type_decoder_f DeltaAngle_decode_xer; +xer_type_encoder_f DeltaAngle_encode_xer; +oer_type_decoder_f DeltaAngle_decode_oer; +oer_type_encoder_f DeltaAngle_encode_oer; +per_type_decoder_f DeltaAngle_decode_uper; +per_type_encoder_f DeltaAngle_encode_uper; +per_type_decoder_f DeltaAngle_decode_aper; +per_type_encoder_f DeltaAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAngle_H_ */ +#include diff --git a/vcits/srem/DeltaLatitude.h b/vcits/srem/DeltaLatitude.h new file mode 100644 index 0000000..8c9b5b2 --- /dev/null +++ b/vcits/srem/DeltaLatitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DeltaLatitude_H_ +#define _DeltaLatitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLatitude { + DeltaLatitude_oneMicrodegreeNorth = 10, + DeltaLatitude_oneMicrodegreeSouth = -10, + DeltaLatitude_unavailable = 131072 +} e_DeltaLatitude; + +/* DeltaLatitude */ +typedef long DeltaLatitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLatitude; +asn_struct_free_f DeltaLatitude_free; +asn_struct_print_f DeltaLatitude_print; +asn_constr_check_f DeltaLatitude_constraint; +ber_type_decoder_f DeltaLatitude_decode_ber; +der_type_encoder_f DeltaLatitude_encode_der; +xer_type_decoder_f DeltaLatitude_decode_xer; +xer_type_encoder_f DeltaLatitude_encode_xer; +oer_type_decoder_f DeltaLatitude_decode_oer; +oer_type_encoder_f DeltaLatitude_encode_oer; +per_type_decoder_f DeltaLatitude_decode_uper; +per_type_encoder_f DeltaLatitude_encode_uper; +per_type_decoder_f DeltaLatitude_decode_aper; +per_type_encoder_f DeltaLatitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLatitude_H_ */ +#include diff --git a/vcits/srem/DeltaLongitude.h b/vcits/srem/DeltaLongitude.h new file mode 100644 index 0000000..6622faa --- /dev/null +++ b/vcits/srem/DeltaLongitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DeltaLongitude_H_ +#define _DeltaLongitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLongitude { + DeltaLongitude_oneMicrodegreeEast = 10, + DeltaLongitude_oneMicrodegreeWest = -10, + DeltaLongitude_unavailable = 131072 +} e_DeltaLongitude; + +/* DeltaLongitude */ +typedef long DeltaLongitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLongitude; +asn_struct_free_f DeltaLongitude_free; +asn_struct_print_f DeltaLongitude_print; +asn_constr_check_f DeltaLongitude_constraint; +ber_type_decoder_f DeltaLongitude_decode_ber; +der_type_encoder_f DeltaLongitude_encode_der; +xer_type_decoder_f DeltaLongitude_decode_xer; +xer_type_encoder_f DeltaLongitude_encode_xer; +oer_type_decoder_f DeltaLongitude_decode_oer; +oer_type_encoder_f DeltaLongitude_encode_oer; +per_type_decoder_f DeltaLongitude_decode_uper; +per_type_encoder_f DeltaLongitude_encode_uper; +per_type_decoder_f DeltaLongitude_decode_aper; +per_type_encoder_f DeltaLongitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLongitude_H_ */ +#include diff --git a/vcits/srem/DeltaReferencePosition.h b/vcits/srem/DeltaReferencePosition.h new file mode 100644 index 0000000..731299b --- /dev/null +++ b/vcits/srem/DeltaReferencePosition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DeltaReferencePosition_H_ +#define _DeltaReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaLatitude.h" +#include "DeltaLongitude.h" +#include "DeltaAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaReferencePosition */ +typedef struct DeltaReferencePosition { + DeltaLatitude_t deltaLatitude; + DeltaLongitude_t deltaLongitude; + DeltaAltitude_t deltaAltitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DeltaReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaReferencePosition_H_ */ +#include diff --git a/vcits/srem/DeltaTime.h b/vcits/srem/DeltaTime.h new file mode 100644 index 0000000..e731e8d --- /dev/null +++ b/vcits/srem/DeltaTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DeltaTime_H_ +#define _DeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaTime */ +typedef long DeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaTime; +asn_struct_free_f DeltaTime_free; +asn_struct_print_f DeltaTime_print; +asn_constr_check_f DeltaTime_constraint; +ber_type_decoder_f DeltaTime_decode_ber; +der_type_encoder_f DeltaTime_encode_der; +xer_type_decoder_f DeltaTime_decode_xer; +xer_type_encoder_f DeltaTime_encode_xer; +oer_type_decoder_f DeltaTime_decode_oer; +oer_type_encoder_f DeltaTime_encode_oer; +per_type_decoder_f DeltaTime_decode_uper; +per_type_encoder_f DeltaTime_encode_uper; +per_type_decoder_f DeltaTime_decode_aper; +per_type_encoder_f DeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaTime_H_ */ +#include diff --git a/vcits/srem/DescriptiveName.h b/vcits/srem/DescriptiveName.h new file mode 100644 index 0000000..2f5bdad --- /dev/null +++ b/vcits/srem/DescriptiveName.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DescriptiveName_H_ +#define _DescriptiveName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DescriptiveName */ +typedef IA5String_t DescriptiveName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DescriptiveName; +asn_struct_free_f DescriptiveName_free; +asn_struct_print_f DescriptiveName_print; +asn_constr_check_f DescriptiveName_constraint; +ber_type_decoder_f DescriptiveName_decode_ber; +der_type_encoder_f DescriptiveName_encode_der; +xer_type_decoder_f DescriptiveName_decode_xer; +xer_type_encoder_f DescriptiveName_encode_xer; +oer_type_decoder_f DescriptiveName_decode_oer; +oer_type_encoder_f DescriptiveName_encode_oer; +per_type_decoder_f DescriptiveName_decode_uper; +per_type_encoder_f DescriptiveName_encode_uper; +per_type_decoder_f DescriptiveName_decode_aper; +per_type_encoder_f DescriptiveName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DescriptiveName_H_ */ +#include diff --git a/vcits/srem/DigitalMap.h b/vcits/srem/DigitalMap.h new file mode 100644 index 0000000..c73fed1 --- /dev/null +++ b/vcits/srem/DigitalMap.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DigitalMap_H_ +#define _DigitalMap_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* DigitalMap */ +typedef struct DigitalMap { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DigitalMap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DigitalMap; + +#ifdef __cplusplus +} +#endif + +#endif /* _DigitalMap_H_ */ +#include diff --git a/vcits/srem/DriveDirection.h b/vcits/srem/DriveDirection.h new file mode 100644 index 0000000..987ba9c --- /dev/null +++ b/vcits/srem/DriveDirection.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DriveDirection_H_ +#define _DriveDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DriveDirection { + DriveDirection_forward = 0, + DriveDirection_backward = 1, + DriveDirection_unavailable = 2 +} e_DriveDirection; + +/* DriveDirection */ +typedef long DriveDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DriveDirection; +asn_struct_free_f DriveDirection_free; +asn_struct_print_f DriveDirection_print; +asn_constr_check_f DriveDirection_constraint; +ber_type_decoder_f DriveDirection_decode_ber; +der_type_encoder_f DriveDirection_encode_der; +xer_type_decoder_f DriveDirection_decode_xer; +xer_type_encoder_f DriveDirection_encode_xer; +oer_type_decoder_f DriveDirection_decode_oer; +oer_type_encoder_f DriveDirection_encode_oer; +per_type_decoder_f DriveDirection_decode_uper; +per_type_encoder_f DriveDirection_encode_uper; +per_type_decoder_f DriveDirection_decode_aper; +per_type_encoder_f DriveDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DriveDirection_H_ */ +#include diff --git a/vcits/srem/DrivenLineOffsetLg.h b/vcits/srem/DrivenLineOffsetLg.h new file mode 100644 index 0000000..34e5aef --- /dev/null +++ b/vcits/srem/DrivenLineOffsetLg.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DrivenLineOffsetLg_H_ +#define _DrivenLineOffsetLg_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetLg */ +typedef long DrivenLineOffsetLg_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg; +asn_struct_free_f DrivenLineOffsetLg_free; +asn_struct_print_f DrivenLineOffsetLg_print; +asn_constr_check_f DrivenLineOffsetLg_constraint; +ber_type_decoder_f DrivenLineOffsetLg_decode_ber; +der_type_encoder_f DrivenLineOffsetLg_encode_der; +xer_type_decoder_f DrivenLineOffsetLg_decode_xer; +xer_type_encoder_f DrivenLineOffsetLg_encode_xer; +oer_type_decoder_f DrivenLineOffsetLg_decode_oer; +oer_type_encoder_f DrivenLineOffsetLg_encode_oer; +per_type_decoder_f DrivenLineOffsetLg_decode_uper; +per_type_encoder_f DrivenLineOffsetLg_encode_uper; +per_type_decoder_f DrivenLineOffsetLg_decode_aper; +per_type_encoder_f DrivenLineOffsetLg_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetLg_H_ */ +#include diff --git a/vcits/srem/DrivenLineOffsetSm.h b/vcits/srem/DrivenLineOffsetSm.h new file mode 100644 index 0000000..7b02952 --- /dev/null +++ b/vcits/srem/DrivenLineOffsetSm.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DrivenLineOffsetSm_H_ +#define _DrivenLineOffsetSm_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetSm */ +typedef long DrivenLineOffsetSm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm; +asn_struct_free_f DrivenLineOffsetSm_free; +asn_struct_print_f DrivenLineOffsetSm_print; +asn_constr_check_f DrivenLineOffsetSm_constraint; +ber_type_decoder_f DrivenLineOffsetSm_decode_ber; +der_type_encoder_f DrivenLineOffsetSm_encode_der; +xer_type_decoder_f DrivenLineOffsetSm_decode_xer; +xer_type_encoder_f DrivenLineOffsetSm_encode_xer; +oer_type_decoder_f DrivenLineOffsetSm_decode_oer; +oer_type_encoder_f DrivenLineOffsetSm_encode_oer; +per_type_decoder_f DrivenLineOffsetSm_decode_uper; +per_type_encoder_f DrivenLineOffsetSm_encode_uper; +per_type_decoder_f DrivenLineOffsetSm_decode_aper; +per_type_encoder_f DrivenLineOffsetSm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetSm_H_ */ +#include diff --git a/vcits/srem/DrivingLaneStatus.h b/vcits/srem/DrivingLaneStatus.h new file mode 100644 index 0000000..5d34646 --- /dev/null +++ b/vcits/srem/DrivingLaneStatus.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _DrivingLaneStatus_H_ +#define _DrivingLaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivingLaneStatus */ +typedef BIT_STRING_t DrivingLaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus; +asn_struct_free_f DrivingLaneStatus_free; +asn_struct_print_f DrivingLaneStatus_print; +asn_constr_check_f DrivingLaneStatus_constraint; +ber_type_decoder_f DrivingLaneStatus_decode_ber; +der_type_encoder_f DrivingLaneStatus_encode_der; +xer_type_decoder_f DrivingLaneStatus_decode_xer; +xer_type_encoder_f DrivingLaneStatus_encode_xer; +oer_type_decoder_f DrivingLaneStatus_decode_oer; +oer_type_encoder_f DrivingLaneStatus_encode_oer; +per_type_decoder_f DrivingLaneStatus_decode_uper; +per_type_encoder_f DrivingLaneStatus_encode_uper; +per_type_decoder_f DrivingLaneStatus_decode_aper; +per_type_encoder_f DrivingLaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivingLaneStatus_H_ */ +#include diff --git a/vcits/srem/Elevation.h b/vcits/srem/Elevation.h new file mode 100644 index 0000000..d419f99 --- /dev/null +++ b/vcits/srem/Elevation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Elevation_H_ +#define _Elevation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Elevation */ +typedef long Elevation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Elevation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Elevation; +asn_struct_free_f Elevation_free; +asn_struct_print_f Elevation_print; +asn_constr_check_f Elevation_constraint; +ber_type_decoder_f Elevation_decode_ber; +der_type_encoder_f Elevation_encode_der; +xer_type_decoder_f Elevation_decode_xer; +xer_type_encoder_f Elevation_encode_xer; +oer_type_decoder_f Elevation_decode_oer; +oer_type_encoder_f Elevation_encode_oer; +per_type_decoder_f Elevation_decode_uper; +per_type_encoder_f Elevation_encode_uper; +per_type_decoder_f Elevation_decode_aper; +per_type_encoder_f Elevation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Elevation_H_ */ +#include diff --git a/vcits/srem/ElevationConfidence.h b/vcits/srem/ElevationConfidence.h new file mode 100644 index 0000000..069d608 --- /dev/null +++ b/vcits/srem/ElevationConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ElevationConfidence_H_ +#define _ElevationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ElevationConfidence { + ElevationConfidence_unavailable = 0, + ElevationConfidence_elev_500_00 = 1, + ElevationConfidence_elev_200_00 = 2, + ElevationConfidence_elev_100_00 = 3, + ElevationConfidence_elev_050_00 = 4, + ElevationConfidence_elev_020_00 = 5, + ElevationConfidence_elev_010_00 = 6, + ElevationConfidence_elev_005_00 = 7, + ElevationConfidence_elev_002_00 = 8, + ElevationConfidence_elev_001_00 = 9, + ElevationConfidence_elev_000_50 = 10, + ElevationConfidence_elev_000_20 = 11, + ElevationConfidence_elev_000_10 = 12, + ElevationConfidence_elev_000_05 = 13, + ElevationConfidence_elev_000_02 = 14, + ElevationConfidence_elev_000_01 = 15 +} e_ElevationConfidence; + +/* ElevationConfidence */ +typedef long ElevationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ElevationConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1; +asn_struct_free_f ElevationConfidence_free; +asn_struct_print_f ElevationConfidence_print; +asn_constr_check_f ElevationConfidence_constraint; +ber_type_decoder_f ElevationConfidence_decode_ber; +der_type_encoder_f ElevationConfidence_encode_der; +xer_type_decoder_f ElevationConfidence_decode_xer; +xer_type_encoder_f ElevationConfidence_encode_xer; +oer_type_decoder_f ElevationConfidence_decode_oer; +oer_type_encoder_f ElevationConfidence_encode_oer; +per_type_decoder_f ElevationConfidence_decode_uper; +per_type_encoder_f ElevationConfidence_encode_uper; +per_type_decoder_f ElevationConfidence_decode_aper; +per_type_encoder_f ElevationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ElevationConfidence_H_ */ +#include diff --git a/vcits/srem/EmbarkationStatus.h b/vcits/srem/EmbarkationStatus.h new file mode 100644 index 0000000..124743e --- /dev/null +++ b/vcits/srem/EmbarkationStatus.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _EmbarkationStatus_H_ +#define _EmbarkationStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EmbarkationStatus */ +typedef BOOLEAN_t EmbarkationStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus; +asn_struct_free_f EmbarkationStatus_free; +asn_struct_print_f EmbarkationStatus_print; +asn_constr_check_f EmbarkationStatus_constraint; +ber_type_decoder_f EmbarkationStatus_decode_ber; +der_type_encoder_f EmbarkationStatus_encode_der; +xer_type_decoder_f EmbarkationStatus_decode_xer; +xer_type_encoder_f EmbarkationStatus_encode_xer; +oer_type_decoder_f EmbarkationStatus_decode_oer; +oer_type_encoder_f EmbarkationStatus_encode_oer; +per_type_decoder_f EmbarkationStatus_decode_uper; +per_type_encoder_f EmbarkationStatus_encode_uper; +per_type_decoder_f EmbarkationStatus_decode_aper; +per_type_encoder_f EmbarkationStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmbarkationStatus_H_ */ +#include diff --git a/vcits/srem/EmergencyPriority.h b/vcits/srem/EmergencyPriority.h new file mode 100644 index 0000000..d292005 --- /dev/null +++ b/vcits/srem/EmergencyPriority.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _EmergencyPriority_H_ +#define _EmergencyPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyPriority { + EmergencyPriority_requestForRightOfWay = 0, + EmergencyPriority_requestForFreeCrossingAtATrafficLight = 1 +} e_EmergencyPriority; + +/* EmergencyPriority */ +typedef BIT_STRING_t EmergencyPriority_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyPriority; +asn_struct_free_f EmergencyPriority_free; +asn_struct_print_f EmergencyPriority_print; +asn_constr_check_f EmergencyPriority_constraint; +ber_type_decoder_f EmergencyPriority_decode_ber; +der_type_encoder_f EmergencyPriority_encode_der; +xer_type_decoder_f EmergencyPriority_decode_xer; +xer_type_encoder_f EmergencyPriority_encode_xer; +oer_type_decoder_f EmergencyPriority_decode_oer; +oer_type_encoder_f EmergencyPriority_encode_oer; +per_type_decoder_f EmergencyPriority_decode_uper; +per_type_encoder_f EmergencyPriority_encode_uper; +per_type_decoder_f EmergencyPriority_decode_aper; +per_type_encoder_f EmergencyPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyPriority_H_ */ +#include diff --git a/vcits/srem/EmergencyVehicleApproachingSubCauseCode.h b/vcits/srem/EmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 0000000..2985530 --- /dev/null +++ b/vcits/srem/EmergencyVehicleApproachingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _EmergencyVehicleApproachingSubCauseCode_H_ +#define _EmergencyVehicleApproachingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyVehicleApproachingSubCauseCode { + EmergencyVehicleApproachingSubCauseCode_unavailable = 0, + EmergencyVehicleApproachingSubCauseCode_emergencyVehicleApproaching = 1, + EmergencyVehicleApproachingSubCauseCode_prioritizedVehicleApproaching = 2 +} e_EmergencyVehicleApproachingSubCauseCode; + +/* EmergencyVehicleApproachingSubCauseCode */ +typedef long EmergencyVehicleApproachingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode; +asn_struct_free_f EmergencyVehicleApproachingSubCauseCode_free; +asn_struct_print_f EmergencyVehicleApproachingSubCauseCode_print; +asn_constr_check_f EmergencyVehicleApproachingSubCauseCode_constraint; +ber_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_ber; +der_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_der; +xer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_xer; +xer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_xer; +oer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_oer; +oer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_oer; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_uper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_uper; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_aper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyVehicleApproachingSubCauseCode_H_ */ +#include diff --git a/vcits/srem/EmissionType.h b/vcits/srem/EmissionType.h new file mode 100644 index 0000000..081e484 --- /dev/null +++ b/vcits/srem/EmissionType.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _EmissionType_H_ +#define _EmissionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmissionType { + EmissionType_euro1 = 0, + EmissionType_euro2 = 1, + EmissionType_euro3 = 2, + EmissionType_euro4 = 3, + EmissionType_euro5 = 4, + EmissionType_euro6 = 5 + /* + * Enumeration is extensible + */ +} e_EmissionType; + +/* EmissionType */ +typedef long EmissionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EmissionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EmissionType; +extern const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1; +asn_struct_free_f EmissionType_free; +asn_struct_print_f EmissionType_print; +asn_constr_check_f EmissionType_constraint; +ber_type_decoder_f EmissionType_decode_ber; +der_type_encoder_f EmissionType_encode_der; +xer_type_decoder_f EmissionType_decode_xer; +xer_type_encoder_f EmissionType_encode_xer; +oer_type_decoder_f EmissionType_decode_oer; +oer_type_encoder_f EmissionType_encode_oer; +per_type_decoder_f EmissionType_decode_uper; +per_type_encoder_f EmissionType_encode_uper; +per_type_decoder_f EmissionType_decode_aper; +per_type_encoder_f EmissionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmissionType_H_ */ +#include diff --git a/vcits/srem/EnabledLaneList.h b/vcits/srem/EnabledLaneList.h new file mode 100644 index 0000000..629e001 --- /dev/null +++ b/vcits/srem/EnabledLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _EnabledLaneList_H_ +#define _EnabledLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EnabledLaneList */ +typedef struct EnabledLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EnabledLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnabledLaneList; +extern asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_EnabledLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnabledLaneList_H_ */ +#include diff --git a/vcits/srem/EnergyStorageType.h b/vcits/srem/EnergyStorageType.h new file mode 100644 index 0000000..a6a9f48 --- /dev/null +++ b/vcits/srem/EnergyStorageType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _EnergyStorageType_H_ +#define _EnergyStorageType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EnergyStorageType { + EnergyStorageType_hydrogenStorage = 0, + EnergyStorageType_electricEnergyStorage = 1, + EnergyStorageType_liquidPropaneGas = 2, + EnergyStorageType_compressedNaturalGas = 3, + EnergyStorageType_diesel = 4, + EnergyStorageType_gasoline = 5, + EnergyStorageType_ammonia = 6 +} e_EnergyStorageType; + +/* EnergyStorageType */ +typedef BIT_STRING_t EnergyStorageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnergyStorageType; +asn_struct_free_f EnergyStorageType_free; +asn_struct_print_f EnergyStorageType_print; +asn_constr_check_f EnergyStorageType_constraint; +ber_type_decoder_f EnergyStorageType_decode_ber; +der_type_encoder_f EnergyStorageType_encode_der; +xer_type_decoder_f EnergyStorageType_decode_xer; +xer_type_encoder_f EnergyStorageType_encode_xer; +oer_type_decoder_f EnergyStorageType_decode_oer; +oer_type_encoder_f EnergyStorageType_encode_oer; +per_type_decoder_f EnergyStorageType_decode_uper; +per_type_encoder_f EnergyStorageType_encode_uper; +per_type_decoder_f EnergyStorageType_decode_aper; +per_type_encoder_f EnergyStorageType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnergyStorageType_H_ */ +#include diff --git a/vcits/srem/EuVehicleCategoryCode.h b/vcits/srem/EuVehicleCategoryCode.h new file mode 100644 index 0000000..2133e9b --- /dev/null +++ b/vcits/srem/EuVehicleCategoryCode.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _EuVehicleCategoryCode_H_ +#define _EuVehicleCategoryCode_H_ + + +#include + +/* Including external dependencies */ +#include "EuVehicleCategoryL.h" +#include "EuVehicleCategoryM.h" +#include "EuVehicleCategoryN.h" +#include "EuVehicleCategoryO.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryCode_PR { + EuVehicleCategoryCode_PR_NOTHING, /* No components present */ + EuVehicleCategoryCode_PR_euVehicleCategoryL, + EuVehicleCategoryCode_PR_euVehicleCategoryM, + EuVehicleCategoryCode_PR_euVehicleCategoryN, + EuVehicleCategoryCode_PR_euVehicleCategoryO, + EuVehicleCategoryCode_PR_euVehilcleCategoryT, + EuVehicleCategoryCode_PR_euVehilcleCategoryG +} EuVehicleCategoryCode_PR; + +/* EuVehicleCategoryCode */ +typedef struct EuVehicleCategoryCode { + EuVehicleCategoryCode_PR present; + union EuVehicleCategoryCode_u { + EuVehicleCategoryL_t euVehicleCategoryL; + EuVehicleCategoryM_t euVehicleCategoryM; + EuVehicleCategoryN_t euVehicleCategoryN; + EuVehicleCategoryO_t euVehicleCategoryO; + NULL_t euVehilcleCategoryT; + NULL_t euVehilcleCategoryG; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EuVehicleCategoryCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryCode_H_ */ +#include diff --git a/vcits/srem/EuVehicleCategoryL.h b/vcits/srem/EuVehicleCategoryL.h new file mode 100644 index 0000000..da55bfa --- /dev/null +++ b/vcits/srem/EuVehicleCategoryL.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _EuVehicleCategoryL_H_ +#define _EuVehicleCategoryL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryL { + EuVehicleCategoryL_l1 = 0, + EuVehicleCategoryL_l2 = 1, + EuVehicleCategoryL_l3 = 2, + EuVehicleCategoryL_l4 = 3, + EuVehicleCategoryL_l5 = 4, + EuVehicleCategoryL_l6 = 5, + EuVehicleCategoryL_l7 = 6 +} e_EuVehicleCategoryL; + +/* EuVehicleCategoryL */ +typedef long EuVehicleCategoryL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryL; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryL_specs_1; +asn_struct_free_f EuVehicleCategoryL_free; +asn_struct_print_f EuVehicleCategoryL_print; +asn_constr_check_f EuVehicleCategoryL_constraint; +ber_type_decoder_f EuVehicleCategoryL_decode_ber; +der_type_encoder_f EuVehicleCategoryL_encode_der; +xer_type_decoder_f EuVehicleCategoryL_decode_xer; +xer_type_encoder_f EuVehicleCategoryL_encode_xer; +oer_type_decoder_f EuVehicleCategoryL_decode_oer; +oer_type_encoder_f EuVehicleCategoryL_encode_oer; +per_type_decoder_f EuVehicleCategoryL_decode_uper; +per_type_encoder_f EuVehicleCategoryL_encode_uper; +per_type_decoder_f EuVehicleCategoryL_decode_aper; +per_type_encoder_f EuVehicleCategoryL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryL_H_ */ +#include diff --git a/vcits/srem/EuVehicleCategoryM.h b/vcits/srem/EuVehicleCategoryM.h new file mode 100644 index 0000000..64c596a --- /dev/null +++ b/vcits/srem/EuVehicleCategoryM.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _EuVehicleCategoryM_H_ +#define _EuVehicleCategoryM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryM { + EuVehicleCategoryM_m1 = 0, + EuVehicleCategoryM_m2 = 1, + EuVehicleCategoryM_m3 = 2 +} e_EuVehicleCategoryM; + +/* EuVehicleCategoryM */ +typedef long EuVehicleCategoryM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryM; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryM_specs_1; +asn_struct_free_f EuVehicleCategoryM_free; +asn_struct_print_f EuVehicleCategoryM_print; +asn_constr_check_f EuVehicleCategoryM_constraint; +ber_type_decoder_f EuVehicleCategoryM_decode_ber; +der_type_encoder_f EuVehicleCategoryM_encode_der; +xer_type_decoder_f EuVehicleCategoryM_decode_xer; +xer_type_encoder_f EuVehicleCategoryM_encode_xer; +oer_type_decoder_f EuVehicleCategoryM_decode_oer; +oer_type_encoder_f EuVehicleCategoryM_encode_oer; +per_type_decoder_f EuVehicleCategoryM_decode_uper; +per_type_encoder_f EuVehicleCategoryM_encode_uper; +per_type_decoder_f EuVehicleCategoryM_decode_aper; +per_type_encoder_f EuVehicleCategoryM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryM_H_ */ +#include diff --git a/vcits/srem/EuVehicleCategoryN.h b/vcits/srem/EuVehicleCategoryN.h new file mode 100644 index 0000000..600d5b9 --- /dev/null +++ b/vcits/srem/EuVehicleCategoryN.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _EuVehicleCategoryN_H_ +#define _EuVehicleCategoryN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryN { + EuVehicleCategoryN_n1 = 0, + EuVehicleCategoryN_n2 = 1, + EuVehicleCategoryN_n3 = 2 +} e_EuVehicleCategoryN; + +/* EuVehicleCategoryN */ +typedef long EuVehicleCategoryN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryN; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryN_specs_1; +asn_struct_free_f EuVehicleCategoryN_free; +asn_struct_print_f EuVehicleCategoryN_print; +asn_constr_check_f EuVehicleCategoryN_constraint; +ber_type_decoder_f EuVehicleCategoryN_decode_ber; +der_type_encoder_f EuVehicleCategoryN_encode_der; +xer_type_decoder_f EuVehicleCategoryN_decode_xer; +xer_type_encoder_f EuVehicleCategoryN_encode_xer; +oer_type_decoder_f EuVehicleCategoryN_decode_oer; +oer_type_encoder_f EuVehicleCategoryN_encode_oer; +per_type_decoder_f EuVehicleCategoryN_decode_uper; +per_type_encoder_f EuVehicleCategoryN_encode_uper; +per_type_decoder_f EuVehicleCategoryN_decode_aper; +per_type_encoder_f EuVehicleCategoryN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryN_H_ */ +#include diff --git a/vcits/srem/EuVehicleCategoryO.h b/vcits/srem/EuVehicleCategoryO.h new file mode 100644 index 0000000..ea35039 --- /dev/null +++ b/vcits/srem/EuVehicleCategoryO.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _EuVehicleCategoryO_H_ +#define _EuVehicleCategoryO_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryO { + EuVehicleCategoryO_o1 = 0, + EuVehicleCategoryO_o2 = 1, + EuVehicleCategoryO_o3 = 2, + EuVehicleCategoryO_o4 = 3 +} e_EuVehicleCategoryO; + +/* EuVehicleCategoryO */ +typedef long EuVehicleCategoryO_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryO_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryO; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryO_specs_1; +asn_struct_free_f EuVehicleCategoryO_free; +asn_struct_print_f EuVehicleCategoryO_print; +asn_constr_check_f EuVehicleCategoryO_constraint; +ber_type_decoder_f EuVehicleCategoryO_decode_ber; +der_type_encoder_f EuVehicleCategoryO_encode_der; +xer_type_decoder_f EuVehicleCategoryO_decode_xer; +xer_type_encoder_f EuVehicleCategoryO_encode_xer; +oer_type_decoder_f EuVehicleCategoryO_decode_oer; +oer_type_encoder_f EuVehicleCategoryO_encode_oer; +per_type_decoder_f EuVehicleCategoryO_decode_uper; +per_type_encoder_f EuVehicleCategoryO_encode_uper; +per_type_decoder_f EuVehicleCategoryO_decode_aper; +per_type_encoder_f EuVehicleCategoryO_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryO_H_ */ +#include diff --git a/vcits/srem/EventHistory.h b/vcits/srem/EventHistory.h new file mode 100644 index 0000000..fec52cf --- /dev/null +++ b/vcits/srem/EventHistory.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _EventHistory_H_ +#define _EventHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EventPoint; + +/* EventHistory */ +typedef struct EventHistory { + A_SEQUENCE_OF(struct EventPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventHistory; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventHistory_H_ */ +#include diff --git a/vcits/srem/EventPoint.h b/vcits/srem/EventPoint.h new file mode 100644 index 0000000..658d5cd --- /dev/null +++ b/vcits/srem/EventPoint.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _EventPoint_H_ +#define _EventPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include "InformationQuality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EventPoint */ +typedef struct EventPoint { + DeltaReferencePosition_t eventPosition; + PathDeltaTime_t *eventDeltaTime; /* OPTIONAL */ + InformationQuality_t informationQuality; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_EventPoint_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventPoint_H_ */ +#include diff --git a/vcits/srem/ExceptionalCondition.h b/vcits/srem/ExceptionalCondition.h new file mode 100644 index 0000000..6151904 --- /dev/null +++ b/vcits/srem/ExceptionalCondition.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ExceptionalCondition_H_ +#define _ExceptionalCondition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExceptionalCondition { + ExceptionalCondition_unknown = 0, + ExceptionalCondition_publicTransportPriority = 1, + ExceptionalCondition_emergencyVehiclePriority = 2, + ExceptionalCondition_trainPriority = 3, + ExceptionalCondition_bridgeOpen = 4, + ExceptionalCondition_vehicleHeight = 5, + ExceptionalCondition_weather = 6, + ExceptionalCondition_trafficJam = 7, + ExceptionalCondition_tunnelClosure = 8, + ExceptionalCondition_meteringActive = 9, + ExceptionalCondition_truckPriority = 10, + ExceptionalCondition_bicyclePlatoonPriority = 11, + ExceptionalCondition_vehiclePlatoonPriority = 12 + /* + * Enumeration is extensible + */ +} e_ExceptionalCondition; + +/* ExceptionalCondition */ +typedef long ExceptionalCondition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ExceptionalCondition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ExceptionalCondition; +extern const asn_INTEGER_specifics_t asn_SPC_ExceptionalCondition_specs_1; +asn_struct_free_f ExceptionalCondition_free; +asn_struct_print_f ExceptionalCondition_print; +asn_constr_check_f ExceptionalCondition_constraint; +ber_type_decoder_f ExceptionalCondition_decode_ber; +der_type_encoder_f ExceptionalCondition_encode_der; +xer_type_decoder_f ExceptionalCondition_decode_xer; +xer_type_encoder_f ExceptionalCondition_encode_xer; +oer_type_decoder_f ExceptionalCondition_decode_oer; +oer_type_encoder_f ExceptionalCondition_encode_oer; +per_type_decoder_f ExceptionalCondition_decode_uper; +per_type_encoder_f ExceptionalCondition_encode_uper; +per_type_decoder_f ExceptionalCondition_decode_aper; +per_type_encoder_f ExceptionalCondition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExceptionalCondition_H_ */ +#include diff --git a/vcits/srem/ExteriorLights.h b/vcits/srem/ExteriorLights.h new file mode 100644 index 0000000..f74b15e --- /dev/null +++ b/vcits/srem/ExteriorLights.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ExteriorLights_H_ +#define _ExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExteriorLights { + ExteriorLights_lowBeamHeadlightsOn = 0, + ExteriorLights_highBeamHeadlightsOn = 1, + ExteriorLights_leftTurnSignalOn = 2, + ExteriorLights_rightTurnSignalOn = 3, + ExteriorLights_daytimeRunningLightsOn = 4, + ExteriorLights_reverseLightOn = 5, + ExteriorLights_fogLightOn = 6, + ExteriorLights_parkingLightsOn = 7 +} e_ExteriorLights; + +/* ExteriorLights */ +typedef BIT_STRING_t ExteriorLights_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ExteriorLights; +asn_struct_free_f ExteriorLights_free; +asn_struct_print_f ExteriorLights_print; +asn_constr_check_f ExteriorLights_constraint; +ber_type_decoder_f ExteriorLights_decode_ber; +der_type_encoder_f ExteriorLights_encode_der; +xer_type_decoder_f ExteriorLights_decode_xer; +xer_type_encoder_f ExteriorLights_encode_xer; +oer_type_decoder_f ExteriorLights_decode_oer; +oer_type_encoder_f ExteriorLights_encode_oer; +per_type_decoder_f ExteriorLights_decode_uper; +per_type_encoder_f ExteriorLights_encode_uper; +per_type_decoder_f ExteriorLights_decode_aper; +per_type_encoder_f ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExteriorLights_H_ */ +#include diff --git a/vcits/srem/FreightContainerData.h b/vcits/srem/FreightContainerData.h new file mode 100644 index 0000000..ff05f3b --- /dev/null +++ b/vcits/srem/FreightContainerData.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _FreightContainerData_H_ +#define _FreightContainerData_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FreightContainerData */ +typedef struct FreightContainerData { + BIT_STRING_t ownerCode; + long serialNumber; + long checkDigit; + long length; + long height; + long width; + long containerTypeCode; + long maximumGrossMass; + long tareMass; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreightContainerData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreightContainerData; +extern asn_SEQUENCE_specifics_t asn_SPC_FreightContainerData_specs_1; +extern asn_TYPE_member_t asn_MBR_FreightContainerData_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreightContainerData_H_ */ +#include diff --git a/vcits/srem/FuelType.h b/vcits/srem/FuelType.h new file mode 100644 index 0000000..bfa9b4f --- /dev/null +++ b/vcits/srem/FuelType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _FuelType_H_ +#define _FuelType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FuelType */ +typedef long FuelType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FuelType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FuelType; +asn_struct_free_f FuelType_free; +asn_struct_print_f FuelType_print; +asn_constr_check_f FuelType_constraint; +ber_type_decoder_f FuelType_decode_ber; +der_type_encoder_f FuelType_encode_der; +xer_type_decoder_f FuelType_decode_xer; +xer_type_encoder_f FuelType_encode_xer; +oer_type_decoder_f FuelType_decode_oer; +oer_type_encoder_f FuelType_encode_oer; +per_type_decoder_f FuelType_decode_uper; +per_type_encoder_f FuelType_encode_uper; +per_type_decoder_f FuelType_decode_aper; +per_type_encoder_f FuelType_encode_aper; +#define FuelType_unknownFuel ((FuelType_t)0) +#define FuelType_gasoline ((FuelType_t)1) +#define FuelType_ethanol ((FuelType_t)2) +#define FuelType_diesel ((FuelType_t)3) +#define FuelType_electric ((FuelType_t)4) +#define FuelType_hybrid ((FuelType_t)5) +#define FuelType_hydrogen ((FuelType_t)6) +#define FuelType_natGasLiquid ((FuelType_t)7) +#define FuelType_natGasComp ((FuelType_t)8) +#define FuelType_propane ((FuelType_t)9) + +#ifdef __cplusplus +} +#endif + +#endif /* _FuelType_H_ */ +#include diff --git a/vcits/srem/FullPositionVector.h b/vcits/srem/FullPositionVector.h new file mode 100644 index 0000000..76dd2ba --- /dev/null +++ b/vcits/srem/FullPositionVector.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _FullPositionVector_H_ +#define _FullPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include "Elevation.h" +#include "HeadingDSRC.h" +#include "TimeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DDateTime; +struct TransmissionAndSpeed; +struct PositionalAccuracy; +struct PositionConfidenceSet; +struct SpeedandHeadingandThrottleConfidence; + +/* FullPositionVector */ +typedef struct FullPositionVector { + struct DDateTime *utcTime; /* OPTIONAL */ + Longitude_t Long; + Latitude_t lat; + Elevation_t *elevation; /* OPTIONAL */ + HeadingDSRC_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + struct PositionalAccuracy *posAccuracy; /* OPTIONAL */ + TimeConfidence_t *timeConfidence; /* OPTIONAL */ + struct PositionConfidenceSet *posConfidence; /* OPTIONAL */ + struct SpeedandHeadingandThrottleConfidence *speedConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FullPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FullPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_FullPositionVector_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FullPositionVector_H_ */ +#include diff --git a/vcits/srem/GNSSstatus.h b/vcits/srem/GNSSstatus.h new file mode 100644 index 0000000..0e121b9 --- /dev/null +++ b/vcits/srem/GNSSstatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _GNSSstatus_H_ +#define _GNSSstatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GNSSstatus { + GNSSstatus_unavailable = 0, + GNSSstatus_isHealthy = 1, + GNSSstatus_isMonitored = 2, + GNSSstatus_baseStationType = 3, + GNSSstatus_aPDOPofUnder5 = 4, + GNSSstatus_inViewOfUnder5 = 5, + GNSSstatus_localCorrectionsPresent = 6, + GNSSstatus_networkCorrectionsPresent = 7 +} e_GNSSstatus; + +/* GNSSstatus */ +typedef BIT_STRING_t GNSSstatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GNSSstatus; +asn_struct_free_f GNSSstatus_free; +asn_struct_print_f GNSSstatus_print; +asn_constr_check_f GNSSstatus_constraint; +ber_type_decoder_f GNSSstatus_decode_ber; +der_type_encoder_f GNSSstatus_encode_der; +xer_type_decoder_f GNSSstatus_decode_xer; +xer_type_encoder_f GNSSstatus_encode_xer; +oer_type_decoder_f GNSSstatus_decode_oer; +oer_type_encoder_f GNSSstatus_encode_oer; +per_type_decoder_f GNSSstatus_decode_uper; +per_type_encoder_f GNSSstatus_encode_uper; +per_type_decoder_f GNSSstatus_decode_aper; +per_type_encoder_f GNSSstatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNSSstatus_H_ */ +#include diff --git a/vcits/srem/GenericLane.h b/vcits/srem/GenericLane.h new file mode 100644 index 0000000..90a8a5f --- /dev/null +++ b/vcits/srem/GenericLane.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _GenericLane_H_ +#define _GenericLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "DescriptiveName.h" +#include "ApproachID.h" +#include "LaneAttributes.h" +#include "AllowedManeuvers.h" +#include "NodeListXY.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectsToList; +struct OverlayLaneList; +struct Reg_GenericLane; + +/* GenericLane */ +typedef struct GenericLane { + LaneID_t laneID; + DescriptiveName_t *name; /* OPTIONAL */ + ApproachID_t *ingressApproach; /* OPTIONAL */ + ApproachID_t *egressApproach; /* OPTIONAL */ + LaneAttributes_t laneAttributes; + AllowedManeuvers_t *maneuvers; /* OPTIONAL */ + NodeListXY_t nodeList; + struct ConnectsToList *connectsTo; /* OPTIONAL */ + struct OverlayLaneList *overlays; /* OPTIONAL */ + struct GenericLane__regional { + A_SEQUENCE_OF(struct Reg_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GenericLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1; +extern asn_TYPE_member_t asn_MBR_GenericLane_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GenericLane_H_ */ +#include diff --git a/vcits/srem/GeoGraphicalLimit.h b/vcits/srem/GeoGraphicalLimit.h new file mode 100644 index 0000000..8ab29e2 --- /dev/null +++ b/vcits/srem/GeoGraphicalLimit.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _GeoGraphicalLimit_H_ +#define _GeoGraphicalLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GeoGraphicalLimit { + GeoGraphicalLimit_globalRestriction = 0, + GeoGraphicalLimit_regionalRestriction = 1, + GeoGraphicalLimit_nationalRestriction = 2, + GeoGraphicalLimit_district = 3, + GeoGraphicalLimit_issuerCoverageRestriction = 4, + GeoGraphicalLimit_reservedForCEN1 = 5, + GeoGraphicalLimit_reservedForCEN2 = 6, + GeoGraphicalLimit_issuerSpecificRestriction = 7 +} e_GeoGraphicalLimit; + +/* GeoGraphicalLimit */ +typedef BIT_STRING_t GeoGraphicalLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GeoGraphicalLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GeoGraphicalLimit; +asn_struct_free_f GeoGraphicalLimit_free; +asn_struct_print_f GeoGraphicalLimit_print; +asn_constr_check_f GeoGraphicalLimit_constraint; +ber_type_decoder_f GeoGraphicalLimit_decode_ber; +der_type_encoder_f GeoGraphicalLimit_encode_der; +xer_type_decoder_f GeoGraphicalLimit_decode_xer; +xer_type_encoder_f GeoGraphicalLimit_encode_xer; +oer_type_decoder_f GeoGraphicalLimit_decode_oer; +oer_type_encoder_f GeoGraphicalLimit_encode_oer; +per_type_decoder_f GeoGraphicalLimit_decode_uper; +per_type_encoder_f GeoGraphicalLimit_encode_uper; +per_type_decoder_f GeoGraphicalLimit_decode_aper; +per_type_encoder_f GeoGraphicalLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GeoGraphicalLimit_H_ */ +#include diff --git a/vcits/srem/HardShoulderStatus.h b/vcits/srem/HardShoulderStatus.h new file mode 100644 index 0000000..37bbb62 --- /dev/null +++ b/vcits/srem/HardShoulderStatus.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _HardShoulderStatus_H_ +#define _HardShoulderStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HardShoulderStatus { + HardShoulderStatus_availableForStopping = 0, + HardShoulderStatus_closed = 1, + HardShoulderStatus_availableForDriving = 2 +} e_HardShoulderStatus; + +/* HardShoulderStatus */ +typedef long HardShoulderStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus; +extern const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1; +asn_struct_free_f HardShoulderStatus_free; +asn_struct_print_f HardShoulderStatus_print; +asn_constr_check_f HardShoulderStatus_constraint; +ber_type_decoder_f HardShoulderStatus_decode_ber; +der_type_encoder_f HardShoulderStatus_encode_der; +xer_type_decoder_f HardShoulderStatus_decode_xer; +xer_type_encoder_f HardShoulderStatus_encode_xer; +oer_type_decoder_f HardShoulderStatus_decode_oer; +oer_type_encoder_f HardShoulderStatus_encode_oer; +per_type_decoder_f HardShoulderStatus_decode_uper; +per_type_encoder_f HardShoulderStatus_encode_uper; +per_type_decoder_f HardShoulderStatus_decode_aper; +per_type_encoder_f HardShoulderStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HardShoulderStatus_H_ */ +#include diff --git a/vcits/srem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h b/vcits/srem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..94ea8f6 --- /dev/null +++ b/vcits/srem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_AnimalOnTheRoadSubCauseCode { + HazardousLocation_AnimalOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimals = 1, + HazardousLocation_AnimalOnTheRoadSubCauseCode_herdOfAnimals = 2, + HazardousLocation_AnimalOnTheRoadSubCauseCode_smallAnimals = 3, + HazardousLocation_AnimalOnTheRoadSubCauseCode_largeAnimals = 4 +} e_HazardousLocation_AnimalOnTheRoadSubCauseCode; + +/* HazardousLocation-AnimalOnTheRoadSubCauseCode */ +typedef long HazardousLocation_AnimalOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_AnimalOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_AnimalOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/srem/HazardousLocation-DangerousCurveSubCauseCode.h b/vcits/srem/HazardousLocation-DangerousCurveSubCauseCode.h new file mode 100644 index 0000000..9b6381b --- /dev/null +++ b/vcits/srem/HazardousLocation-DangerousCurveSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _HazardousLocation_DangerousCurveSubCauseCode_H_ +#define _HazardousLocation_DangerousCurveSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_DangerousCurveSubCauseCode { + HazardousLocation_DangerousCurveSubCauseCode_unavailable = 0, + HazardousLocation_DangerousCurveSubCauseCode_dangerousLeftTurnCurve = 1, + HazardousLocation_DangerousCurveSubCauseCode_dangerousRightTurnCurve = 2, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithUnknownTurningDirection = 3, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithLeftTurn = 4, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithRightTurn = 5 +} e_HazardousLocation_DangerousCurveSubCauseCode; + +/* HazardousLocation-DangerousCurveSubCauseCode */ +typedef long HazardousLocation_DangerousCurveSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode; +asn_struct_free_f HazardousLocation_DangerousCurveSubCauseCode_free; +asn_struct_print_f HazardousLocation_DangerousCurveSubCauseCode_print; +asn_constr_check_f HazardousLocation_DangerousCurveSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_DangerousCurveSubCauseCode_H_ */ +#include diff --git a/vcits/srem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h b/vcits/srem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..818f3a9 --- /dev/null +++ b/vcits/srem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_ObstacleOnTheRoadSubCauseCode { + HazardousLocation_ObstacleOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_shedLoad = 1, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfVehicles = 2, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfTyres = 3, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_bigObjects = 4, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_fallenTrees = 5, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_hubCaps = 6, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_waitingVehicles = 7 +} e_HazardousLocation_ObstacleOnTheRoadSubCauseCode; + +/* HazardousLocation-ObstacleOnTheRoadSubCauseCode */ +typedef long HazardousLocation_ObstacleOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/srem/HazardousLocation-SurfaceConditionSubCauseCode.h b/vcits/srem/HazardousLocation-SurfaceConditionSubCauseCode.h new file mode 100644 index 0000000..bcea1c2 --- /dev/null +++ b/vcits/srem/HazardousLocation-SurfaceConditionSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _HazardousLocation_SurfaceConditionSubCauseCode_H_ +#define _HazardousLocation_SurfaceConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_SurfaceConditionSubCauseCode { + HazardousLocation_SurfaceConditionSubCauseCode_unavailable = 0, + HazardousLocation_SurfaceConditionSubCauseCode_rockfalls = 1, + HazardousLocation_SurfaceConditionSubCauseCode_earthquakeDamage = 2, + HazardousLocation_SurfaceConditionSubCauseCode_sewerCollapse = 3, + HazardousLocation_SurfaceConditionSubCauseCode_subsidence = 4, + HazardousLocation_SurfaceConditionSubCauseCode_snowDrifts = 5, + HazardousLocation_SurfaceConditionSubCauseCode_stormDamage = 6, + HazardousLocation_SurfaceConditionSubCauseCode_burstPipe = 7, + HazardousLocation_SurfaceConditionSubCauseCode_volcanoEruption = 8, + HazardousLocation_SurfaceConditionSubCauseCode_fallingIce = 9 +} e_HazardousLocation_SurfaceConditionSubCauseCode; + +/* HazardousLocation-SurfaceConditionSubCauseCode */ +typedef long HazardousLocation_SurfaceConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode; +asn_struct_free_f HazardousLocation_SurfaceConditionSubCauseCode_free; +asn_struct_print_f HazardousLocation_SurfaceConditionSubCauseCode_print; +asn_constr_check_f HazardousLocation_SurfaceConditionSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_SurfaceConditionSubCauseCode_H_ */ +#include diff --git a/vcits/srem/Heading.h b/vcits/srem/Heading.h new file mode 100644 index 0000000..7a493e2 --- /dev/null +++ b/vcits/srem/Heading.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Heading_H_ +#define _Heading_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingValue.h" +#include "HeadingConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Heading */ +typedef struct Heading { + HeadingValue_t headingValue; + HeadingConfidence_t headingConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Heading_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Heading; + +#ifdef __cplusplus +} +#endif + +#endif /* _Heading_H_ */ +#include diff --git a/vcits/srem/HeadingConfidence.h b/vcits/srem/HeadingConfidence.h new file mode 100644 index 0000000..5b894ca --- /dev/null +++ b/vcits/srem/HeadingConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _HeadingConfidence_H_ +#define _HeadingConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidence { + HeadingConfidence_equalOrWithinZeroPointOneDegree = 1, + HeadingConfidence_equalOrWithinOneDegree = 10, + HeadingConfidence_outOfRange = 126, + HeadingConfidence_unavailable = 127 +} e_HeadingConfidence; + +/* HeadingConfidence */ +typedef long HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidence; +asn_struct_free_f HeadingConfidence_free; +asn_struct_print_f HeadingConfidence_print; +asn_constr_check_f HeadingConfidence_constraint; +ber_type_decoder_f HeadingConfidence_decode_ber; +der_type_encoder_f HeadingConfidence_encode_der; +xer_type_decoder_f HeadingConfidence_decode_xer; +xer_type_encoder_f HeadingConfidence_encode_xer; +oer_type_decoder_f HeadingConfidence_decode_oer; +oer_type_encoder_f HeadingConfidence_encode_oer; +per_type_decoder_f HeadingConfidence_decode_uper; +per_type_encoder_f HeadingConfidence_encode_uper; +per_type_decoder_f HeadingConfidence_decode_aper; +per_type_encoder_f HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidence_H_ */ +#include diff --git a/vcits/srem/HeadingConfidenceDSRC.h b/vcits/srem/HeadingConfidenceDSRC.h new file mode 100644 index 0000000..982a2fb --- /dev/null +++ b/vcits/srem/HeadingConfidenceDSRC.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _HeadingConfidenceDSRC_H_ +#define _HeadingConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidenceDSRC { + HeadingConfidenceDSRC_unavailable = 0, + HeadingConfidenceDSRC_prec10deg = 1, + HeadingConfidenceDSRC_prec05deg = 2, + HeadingConfidenceDSRC_prec01deg = 3, + HeadingConfidenceDSRC_prec0_1deg = 4, + HeadingConfidenceDSRC_prec0_05deg = 5, + HeadingConfidenceDSRC_prec0_01deg = 6, + HeadingConfidenceDSRC_prec0_0125deg = 7 +} e_HeadingConfidenceDSRC; + +/* HeadingConfidenceDSRC */ +typedef long HeadingConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_HeadingConfidenceDSRC_specs_1; +asn_struct_free_f HeadingConfidenceDSRC_free; +asn_struct_print_f HeadingConfidenceDSRC_print; +asn_constr_check_f HeadingConfidenceDSRC_constraint; +ber_type_decoder_f HeadingConfidenceDSRC_decode_ber; +der_type_encoder_f HeadingConfidenceDSRC_encode_der; +xer_type_decoder_f HeadingConfidenceDSRC_decode_xer; +xer_type_encoder_f HeadingConfidenceDSRC_encode_xer; +oer_type_decoder_f HeadingConfidenceDSRC_decode_oer; +oer_type_encoder_f HeadingConfidenceDSRC_encode_oer; +per_type_decoder_f HeadingConfidenceDSRC_decode_uper; +per_type_encoder_f HeadingConfidenceDSRC_encode_uper; +per_type_decoder_f HeadingConfidenceDSRC_decode_aper; +per_type_encoder_f HeadingConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidenceDSRC_H_ */ +#include diff --git a/vcits/srem/HeadingDSRC.h b/vcits/srem/HeadingDSRC.h new file mode 100644 index 0000000..e2f2eb0 --- /dev/null +++ b/vcits/srem/HeadingDSRC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _HeadingDSRC_H_ +#define _HeadingDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HeadingDSRC */ +typedef long HeadingDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingDSRC; +asn_struct_free_f HeadingDSRC_free; +asn_struct_print_f HeadingDSRC_print; +asn_constr_check_f HeadingDSRC_constraint; +ber_type_decoder_f HeadingDSRC_decode_ber; +der_type_encoder_f HeadingDSRC_encode_der; +xer_type_decoder_f HeadingDSRC_decode_xer; +xer_type_encoder_f HeadingDSRC_encode_xer; +oer_type_decoder_f HeadingDSRC_decode_oer; +oer_type_encoder_f HeadingDSRC_encode_oer; +per_type_decoder_f HeadingDSRC_decode_uper; +per_type_encoder_f HeadingDSRC_encode_uper; +per_type_decoder_f HeadingDSRC_decode_aper; +per_type_encoder_f HeadingDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingDSRC_H_ */ +#include diff --git a/vcits/srem/HeadingValue.h b/vcits/srem/HeadingValue.h new file mode 100644 index 0000000..7554aac --- /dev/null +++ b/vcits/srem/HeadingValue.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _HeadingValue_H_ +#define _HeadingValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingValue { + HeadingValue_wgs84North = 0, + HeadingValue_wgs84East = 900, + HeadingValue_wgs84South = 1800, + HeadingValue_wgs84West = 2700, + HeadingValue_unavailable = 3601 +} e_HeadingValue; + +/* HeadingValue */ +typedef long HeadingValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingValue; +asn_struct_free_f HeadingValue_free; +asn_struct_print_f HeadingValue_print; +asn_constr_check_f HeadingValue_constraint; +ber_type_decoder_f HeadingValue_decode_ber; +der_type_encoder_f HeadingValue_encode_der; +xer_type_decoder_f HeadingValue_decode_xer; +xer_type_encoder_f HeadingValue_encode_xer; +oer_type_decoder_f HeadingValue_decode_oer; +oer_type_encoder_f HeadingValue_encode_oer; +per_type_decoder_f HeadingValue_decode_uper; +per_type_encoder_f HeadingValue_encode_uper; +per_type_decoder_f HeadingValue_decode_aper; +per_type_encoder_f HeadingValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingValue_H_ */ +#include diff --git a/vcits/srem/HeightLonCarr.h b/vcits/srem/HeightLonCarr.h new file mode 100644 index 0000000..fb3ed9e --- /dev/null +++ b/vcits/srem/HeightLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _HeightLonCarr_H_ +#define _HeightLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeightLonCarr { + HeightLonCarr_oneCentimeter = 1, + HeightLonCarr_unavailable = 100 +} e_HeightLonCarr; + +/* HeightLonCarr */ +typedef long HeightLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HeightLonCarr; +asn_struct_free_f HeightLonCarr_free; +asn_struct_print_f HeightLonCarr_print; +asn_constr_check_f HeightLonCarr_constraint; +ber_type_decoder_f HeightLonCarr_decode_ber; +der_type_encoder_f HeightLonCarr_encode_der; +xer_type_decoder_f HeightLonCarr_decode_xer; +xer_type_encoder_f HeightLonCarr_encode_xer; +oer_type_decoder_f HeightLonCarr_decode_oer; +oer_type_encoder_f HeightLonCarr_encode_oer; +per_type_decoder_f HeightLonCarr_decode_uper; +per_type_encoder_f HeightLonCarr_encode_uper; +per_type_decoder_f HeightLonCarr_decode_aper; +per_type_encoder_f HeightLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeightLonCarr_H_ */ +#include diff --git a/vcits/srem/HumanPresenceOnTheRoadSubCauseCode.h b/vcits/srem/HumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..ed16e02 --- /dev/null +++ b/vcits/srem/HumanPresenceOnTheRoadSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _HumanPresenceOnTheRoadSubCauseCode_H_ +#define _HumanPresenceOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanPresenceOnTheRoadSubCauseCode { + HumanPresenceOnTheRoadSubCauseCode_unavailable = 0, + HumanPresenceOnTheRoadSubCauseCode_childrenOnRoadway = 1, + HumanPresenceOnTheRoadSubCauseCode_cyclistOnRoadway = 2, + HumanPresenceOnTheRoadSubCauseCode_motorcyclistOnRoadway = 3 +} e_HumanPresenceOnTheRoadSubCauseCode; + +/* HumanPresenceOnTheRoadSubCauseCode */ +typedef long HumanPresenceOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode; +asn_struct_free_f HumanPresenceOnTheRoadSubCauseCode_free; +asn_struct_print_f HumanPresenceOnTheRoadSubCauseCode_print; +asn_constr_check_f HumanPresenceOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanPresenceOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/srem/HumanProblemSubCauseCode.h b/vcits/srem/HumanProblemSubCauseCode.h new file mode 100644 index 0000000..4984b0c --- /dev/null +++ b/vcits/srem/HumanProblemSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _HumanProblemSubCauseCode_H_ +#define _HumanProblemSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanProblemSubCauseCode { + HumanProblemSubCauseCode_unavailable = 0, + HumanProblemSubCauseCode_glycemiaProblem = 1, + HumanProblemSubCauseCode_heartProblem = 2 +} e_HumanProblemSubCauseCode; + +/* HumanProblemSubCauseCode */ +typedef long HumanProblemSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode; +asn_struct_free_f HumanProblemSubCauseCode_free; +asn_struct_print_f HumanProblemSubCauseCode_print; +asn_constr_check_f HumanProblemSubCauseCode_constraint; +ber_type_decoder_f HumanProblemSubCauseCode_decode_ber; +der_type_encoder_f HumanProblemSubCauseCode_encode_der; +xer_type_decoder_f HumanProblemSubCauseCode_decode_xer; +xer_type_encoder_f HumanProblemSubCauseCode_encode_xer; +oer_type_decoder_f HumanProblemSubCauseCode_decode_oer; +oer_type_encoder_f HumanProblemSubCauseCode_encode_oer; +per_type_decoder_f HumanProblemSubCauseCode_decode_uper; +per_type_encoder_f HumanProblemSubCauseCode_encode_uper; +per_type_decoder_f HumanProblemSubCauseCode_decode_aper; +per_type_encoder_f HumanProblemSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanProblemSubCauseCode_H_ */ +#include diff --git a/vcits/srem/InformationQuality.h b/vcits/srem/InformationQuality.h new file mode 100644 index 0000000..891b8e8 --- /dev/null +++ b/vcits/srem/InformationQuality.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _InformationQuality_H_ +#define _InformationQuality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InformationQuality { + InformationQuality_unavailable = 0, + InformationQuality_lowest = 1, + InformationQuality_highest = 7 +} e_InformationQuality; + +/* InformationQuality */ +typedef long InformationQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_InformationQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_InformationQuality; +asn_struct_free_f InformationQuality_free; +asn_struct_print_f InformationQuality_print; +asn_constr_check_f InformationQuality_constraint; +ber_type_decoder_f InformationQuality_decode_ber; +der_type_encoder_f InformationQuality_encode_der; +xer_type_decoder_f InformationQuality_decode_xer; +xer_type_encoder_f InformationQuality_encode_xer; +oer_type_decoder_f InformationQuality_decode_oer; +oer_type_encoder_f InformationQuality_encode_oer; +per_type_decoder_f InformationQuality_decode_uper; +per_type_encoder_f InformationQuality_encode_uper; +per_type_decoder_f InformationQuality_decode_aper; +per_type_encoder_f InformationQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InformationQuality_H_ */ +#include diff --git a/vcits/srem/IntersectionAccessPoint.h b/vcits/srem/IntersectionAccessPoint.h new file mode 100644 index 0000000..02fd389 --- /dev/null +++ b/vcits/srem/IntersectionAccessPoint.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _IntersectionAccessPoint_H_ +#define _IntersectionAccessPoint_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "ApproachID.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionAccessPoint_PR { + IntersectionAccessPoint_PR_NOTHING, /* No components present */ + IntersectionAccessPoint_PR_lane, + IntersectionAccessPoint_PR_approach, + IntersectionAccessPoint_PR_connection + /* Extensions may appear below */ + +} IntersectionAccessPoint_PR; + +/* IntersectionAccessPoint */ +typedef struct IntersectionAccessPoint { + IntersectionAccessPoint_PR present; + union IntersectionAccessPoint_u { + LaneID_t lane; + ApproachID_t approach; + LaneConnectionID_t connection; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionAccessPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint; +extern asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[3]; +extern asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionAccessPoint_H_ */ +#include diff --git a/vcits/srem/IntersectionGeometry.h b/vcits/srem/IntersectionGeometry.h new file mode 100644 index 0000000..001cba6 --- /dev/null +++ b/vcits/srem/IntersectionGeometry.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _IntersectionGeometry_H_ +#define _IntersectionGeometry_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "LaneList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct PreemptPriorityList; +struct Reg_IntersectionGeometry; + +/* IntersectionGeometry */ +typedef struct IntersectionGeometry { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + LaneList_t laneSet; + struct PreemptPriorityList *preemptPriorityData; /* OPTIONAL */ + struct IntersectionGeometry__regional { + A_SEQUENCE_OF(struct Reg_IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometry_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometry_H_ */ +#include diff --git a/vcits/srem/IntersectionGeometryList.h b/vcits/srem/IntersectionGeometryList.h new file mode 100644 index 0000000..5c78822 --- /dev/null +++ b/vcits/srem/IntersectionGeometryList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _IntersectionGeometryList_H_ +#define _IntersectionGeometryList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometry; + +/* IntersectionGeometryList */ +typedef struct IntersectionGeometryList { + A_SEQUENCE_OF(struct IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometryList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometryList_H_ */ +#include diff --git a/vcits/srem/IntersectionID.h b/vcits/srem/IntersectionID.h new file mode 100644 index 0000000..789ae38 --- /dev/null +++ b/vcits/srem/IntersectionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _IntersectionID_H_ +#define _IntersectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionID */ +typedef long IntersectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionID; +asn_struct_free_f IntersectionID_free; +asn_struct_print_f IntersectionID_print; +asn_constr_check_f IntersectionID_constraint; +ber_type_decoder_f IntersectionID_decode_ber; +der_type_encoder_f IntersectionID_encode_der; +xer_type_decoder_f IntersectionID_decode_xer; +xer_type_encoder_f IntersectionID_encode_xer; +oer_type_decoder_f IntersectionID_decode_oer; +oer_type_encoder_f IntersectionID_encode_oer; +per_type_decoder_f IntersectionID_decode_uper; +per_type_encoder_f IntersectionID_encode_uper; +per_type_decoder_f IntersectionID_decode_aper; +per_type_encoder_f IntersectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionID_H_ */ +#include diff --git a/vcits/srem/IntersectionReferenceID.h b/vcits/srem/IntersectionReferenceID.h new file mode 100644 index 0000000..b7ff1d0 --- /dev/null +++ b/vcits/srem/IntersectionReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _IntersectionReferenceID_H_ +#define _IntersectionReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionReferenceID */ +typedef struct IntersectionReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + IntersectionID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionReferenceID_H_ */ +#include diff --git a/vcits/srem/IntersectionState-addGrpC.h b/vcits/srem/IntersectionState-addGrpC.h new file mode 100644 index 0000000..4f662a2 --- /dev/null +++ b/vcits/srem/IntersectionState-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _IntersectionState_addGrpC_H_ +#define _IntersectionState_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponseList; + +/* IntersectionState-addGrpC */ +typedef struct IntersectionState_addGrpC { + struct PrioritizationResponseList *activePrioritizations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_addGrpC_H_ */ +#include diff --git a/vcits/srem/IntersectionState.h b/vcits/srem/IntersectionState.h new file mode 100644 index 0000000..50f8a8c --- /dev/null +++ b/vcits/srem/IntersectionState.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _IntersectionState_H_ +#define _IntersectionState_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "MsgCount.h" +#include "IntersectionStatusObject.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MovementList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EnabledLaneList; +struct ManeuverAssistList; +struct Reg_IntersectionState; + +/* IntersectionState */ +typedef struct IntersectionState { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + MsgCount_t revision; + IntersectionStatusObject_t status; + MinuteOfTheYear_t *moy; /* OPTIONAL */ + DSecond_t *timeStamp; /* OPTIONAL */ + struct EnabledLaneList *enabledLanes; /* OPTIONAL */ + MovementList_t states; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct IntersectionState__regional { + A_SEQUENCE_OF(struct Reg_IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_H_ */ +#include diff --git a/vcits/srem/IntersectionStateList.h b/vcits/srem/IntersectionStateList.h new file mode 100644 index 0000000..72749bc --- /dev/null +++ b/vcits/srem/IntersectionStateList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _IntersectionStateList_H_ +#define _IntersectionStateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionState; + +/* IntersectionStateList */ +typedef struct IntersectionStateList { + A_SEQUENCE_OF(struct IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStateList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStateList_H_ */ +#include diff --git a/vcits/srem/IntersectionStatusObject.h b/vcits/srem/IntersectionStatusObject.h new file mode 100644 index 0000000..2324a33 --- /dev/null +++ b/vcits/srem/IntersectionStatusObject.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _IntersectionStatusObject_H_ +#define _IntersectionStatusObject_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionStatusObject { + IntersectionStatusObject_manualControlIsEnabled = 0, + IntersectionStatusObject_stopTimeIsActivated = 1, + IntersectionStatusObject_failureFlash = 2, + IntersectionStatusObject_preemptIsActive = 3, + IntersectionStatusObject_signalPriorityIsActive = 4, + IntersectionStatusObject_fixedTimeOperation = 5, + IntersectionStatusObject_trafficDependentOperation = 6, + IntersectionStatusObject_standbyOperation = 7, + IntersectionStatusObject_failureMode = 8, + IntersectionStatusObject_off = 9, + IntersectionStatusObject_recentMAPmessageUpdate = 10, + IntersectionStatusObject_recentChangeInMAPassignedLanesIDsUsed = 11, + IntersectionStatusObject_noValidMAPisAvailableAtThisTime = 12, + IntersectionStatusObject_noValidSPATisAvailableAtThisTime = 13 +} e_IntersectionStatusObject; + +/* IntersectionStatusObject */ +typedef BIT_STRING_t IntersectionStatusObject_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject; +asn_struct_free_f IntersectionStatusObject_free; +asn_struct_print_f IntersectionStatusObject_print; +asn_constr_check_f IntersectionStatusObject_constraint; +ber_type_decoder_f IntersectionStatusObject_decode_ber; +der_type_encoder_f IntersectionStatusObject_encode_der; +xer_type_decoder_f IntersectionStatusObject_decode_xer; +xer_type_encoder_f IntersectionStatusObject_encode_xer; +oer_type_decoder_f IntersectionStatusObject_decode_oer; +oer_type_encoder_f IntersectionStatusObject_encode_oer; +per_type_decoder_f IntersectionStatusObject_decode_uper; +per_type_encoder_f IntersectionStatusObject_encode_uper; +per_type_decoder_f IntersectionStatusObject_decode_aper; +per_type_encoder_f IntersectionStatusObject_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStatusObject_H_ */ +#include diff --git a/vcits/srem/Iso3833VehicleType.h b/vcits/srem/Iso3833VehicleType.h new file mode 100644 index 0000000..64e4b2c --- /dev/null +++ b/vcits/srem/Iso3833VehicleType.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Iso3833VehicleType_H_ +#define _Iso3833VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Iso3833VehicleType { + Iso3833VehicleType_passengerCar = 0, + Iso3833VehicleType_saloon = 1, + Iso3833VehicleType_convertibleSaloon = 2, + Iso3833VehicleType_pullmanSaloon = 3, + Iso3833VehicleType_stationWagon = 4, + Iso3833VehicleType_truckStationWagon = 5, + Iso3833VehicleType_coupe = 6, + Iso3833VehicleType_convertible = 7, + Iso3833VehicleType_multipurposePassengerCar = 8, + Iso3833VehicleType_forwardControlPassengerCar = 9, + Iso3833VehicleType_specialPassengerCar = 10, + Iso3833VehicleType_bus = 11, + Iso3833VehicleType_minibus = 12, + Iso3833VehicleType_urbanBus = 13, + Iso3833VehicleType_interurbanCoach = 14, + Iso3833VehicleType_longDistanceCoach = 15, + Iso3833VehicleType_articulatedBus = 16, + Iso3833VehicleType_trolleyBus = 17, + Iso3833VehicleType_specialBus = 18, + Iso3833VehicleType_commercialVehicle = 19, + Iso3833VehicleType_specialCommercialVehicle = 20, + Iso3833VehicleType_specialVehicle = 21, + Iso3833VehicleType_trailingTowingVehicle = 22, + Iso3833VehicleType_semiTrailerTowingVehicle = 23, + Iso3833VehicleType_trailer = 24, + Iso3833VehicleType_busTrailer = 25, + Iso3833VehicleType_generalPurposeTrailer = 26, + Iso3833VehicleType_caravan = 27, + Iso3833VehicleType_specialTrailer = 28, + Iso3833VehicleType_semiTrailer = 29, + Iso3833VehicleType_busSemiTrailer = 30, + Iso3833VehicleType_generalPurposeSemiTrailer = 31, + Iso3833VehicleType_specialSemiTrailer = 32, + Iso3833VehicleType_roadTrain = 33, + Iso3833VehicleType_passengerRoadTrain = 34, + Iso3833VehicleType_articulatedRoadTrain = 35, + Iso3833VehicleType_doubleRoadTrain = 36, + Iso3833VehicleType_compositeRoadTrain = 37, + Iso3833VehicleType_specialRoadTrain = 38, + Iso3833VehicleType_moped = 39, + Iso3833VehicleType_motorCycle = 40 +} e_Iso3833VehicleType; + +/* Iso3833VehicleType */ +typedef long Iso3833VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType; +asn_struct_free_f Iso3833VehicleType_free; +asn_struct_print_f Iso3833VehicleType_print; +asn_constr_check_f Iso3833VehicleType_constraint; +ber_type_decoder_f Iso3833VehicleType_decode_ber; +der_type_encoder_f Iso3833VehicleType_encode_der; +xer_type_decoder_f Iso3833VehicleType_decode_xer; +xer_type_encoder_f Iso3833VehicleType_encode_xer; +oer_type_decoder_f Iso3833VehicleType_decode_oer; +oer_type_encoder_f Iso3833VehicleType_encode_oer; +per_type_decoder_f Iso3833VehicleType_decode_uper; +per_type_encoder_f Iso3833VehicleType_encode_uper; +per_type_decoder_f Iso3833VehicleType_decode_aper; +per_type_encoder_f Iso3833VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Iso3833VehicleType_H_ */ +#include diff --git a/vcits/srem/IssuerIdentifier.h b/vcits/srem/IssuerIdentifier.h new file mode 100644 index 0000000..7a0bdfb --- /dev/null +++ b/vcits/srem/IssuerIdentifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _IssuerIdentifier_H_ +#define _IssuerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IssuerIdentifier */ +typedef long IssuerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IssuerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IssuerIdentifier; +asn_struct_free_f IssuerIdentifier_free; +asn_struct_print_f IssuerIdentifier_print; +asn_constr_check_f IssuerIdentifier_constraint; +ber_type_decoder_f IssuerIdentifier_decode_ber; +der_type_encoder_f IssuerIdentifier_encode_der; +xer_type_decoder_f IssuerIdentifier_decode_xer; +xer_type_encoder_f IssuerIdentifier_encode_xer; +oer_type_decoder_f IssuerIdentifier_decode_oer; +oer_type_encoder_f IssuerIdentifier_encode_oer; +per_type_decoder_f IssuerIdentifier_decode_uper; +per_type_encoder_f IssuerIdentifier_encode_uper; +per_type_decoder_f IssuerIdentifier_decode_aper; +per_type_encoder_f IssuerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IssuerIdentifier_H_ */ +#include diff --git a/vcits/srem/ItineraryPath.h b/vcits/srem/ItineraryPath.h new file mode 100644 index 0000000..e932719 --- /dev/null +++ b/vcits/srem/ItineraryPath.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ItineraryPath_H_ +#define _ItineraryPath_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* ItineraryPath */ +typedef struct ItineraryPath { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItineraryPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItineraryPath; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItineraryPath_H_ */ +#include diff --git a/vcits/srem/ItsPduHeader.h b/vcits/srem/ItsPduHeader.h new file mode 100644 index 0000000..50c2786 --- /dev/null +++ b/vcits/srem/ItsPduHeader.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ItsPduHeader_H_ +#define _ItsPduHeader_H_ + + +#include + +/* Including external dependencies */ +#include +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ItsPduHeader__messageID { + ItsPduHeader__messageID_denm = 1, + ItsPduHeader__messageID_cam = 2, + ItsPduHeader__messageID_poi = 3, + ItsPduHeader__messageID_spatem = 4, + ItsPduHeader__messageID_mapem = 5, + ItsPduHeader__messageID_ivim = 6, + ItsPduHeader__messageID_ev_rsr = 7, + ItsPduHeader__messageID_tistpgtransaction = 8, + ItsPduHeader__messageID_srem = 9, + ItsPduHeader__messageID_ssem = 10, + ItsPduHeader__messageID_evcsn = 11, + ItsPduHeader__messageID_saem = 12, + ItsPduHeader__messageID_rtcmem = 13 +} e_ItsPduHeader__messageID; + +/* ItsPduHeader */ +typedef struct ItsPduHeader { + long protocolVersion; + long messageID; + StationID_t stationID; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsPduHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsPduHeader; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsPduHeader_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsPduHeader_H_ */ +#include diff --git a/vcits/srem/ItsStationPosition.h b/vcits/srem/ItsStationPosition.h new file mode 100644 index 0000000..3ac6a35 --- /dev/null +++ b/vcits/srem/ItsStationPosition.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ItsStationPosition_H_ +#define _ItsStationPosition_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "LaneID.h" +#include "TimeReference.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeOffsetPointXY; + +/* ItsStationPosition */ +typedef struct ItsStationPosition { + StationID_t stationID; + LaneID_t *laneID; /* OPTIONAL */ + struct NodeOffsetPointXY *nodeXY; /* OPTIONAL */ + TimeReference_t *timeReference; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsStationPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsStationPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsStationPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsStationPosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsStationPosition_H_ */ +#include diff --git a/vcits/srem/ItsStationPositionList.h b/vcits/srem/ItsStationPositionList.h new file mode 100644 index 0000000..043d0c8 --- /dev/null +++ b/vcits/srem/ItsStationPositionList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ItsStationPositionList_H_ +#define _ItsStationPositionList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ItsStationPosition; + +/* ItsStationPositionList */ +typedef struct ItsStationPositionList { + A_SEQUENCE_OF(struct ItsStationPosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsStationPositionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsStationPositionList; +extern asn_SET_OF_specifics_t asn_SPC_ItsStationPositionList_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsStationPositionList_1[1]; +extern asn_per_constraints_t asn_PER_type_ItsStationPositionList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsStationPositionList_H_ */ +#include diff --git a/vcits/srem/LaneAttributes-Barrier.h b/vcits/srem/LaneAttributes-Barrier.h new file mode 100644 index 0000000..47dc1a5 --- /dev/null +++ b/vcits/srem/LaneAttributes-Barrier.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneAttributes_Barrier_H_ +#define _LaneAttributes_Barrier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Barrier { + LaneAttributes_Barrier_median_RevocableLane = 0, + LaneAttributes_Barrier_median = 1, + LaneAttributes_Barrier_whiteLineHashing = 2, + LaneAttributes_Barrier_stripedLines = 3, + LaneAttributes_Barrier_doubleStripedLines = 4, + LaneAttributes_Barrier_trafficCones = 5, + LaneAttributes_Barrier_constructionBarrier = 6, + LaneAttributes_Barrier_trafficChannels = 7, + LaneAttributes_Barrier_lowCurbs = 8, + LaneAttributes_Barrier_highCurbs = 9 +} e_LaneAttributes_Barrier; + +/* LaneAttributes-Barrier */ +typedef BIT_STRING_t LaneAttributes_Barrier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier; +asn_struct_free_f LaneAttributes_Barrier_free; +asn_struct_print_f LaneAttributes_Barrier_print; +asn_constr_check_f LaneAttributes_Barrier_constraint; +ber_type_decoder_f LaneAttributes_Barrier_decode_ber; +der_type_encoder_f LaneAttributes_Barrier_encode_der; +xer_type_decoder_f LaneAttributes_Barrier_decode_xer; +xer_type_encoder_f LaneAttributes_Barrier_encode_xer; +oer_type_decoder_f LaneAttributes_Barrier_decode_oer; +oer_type_encoder_f LaneAttributes_Barrier_encode_oer; +per_type_decoder_f LaneAttributes_Barrier_decode_uper; +per_type_encoder_f LaneAttributes_Barrier_encode_uper; +per_type_decoder_f LaneAttributes_Barrier_decode_aper; +per_type_encoder_f LaneAttributes_Barrier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Barrier_H_ */ +#include diff --git a/vcits/srem/LaneAttributes-Bike.h b/vcits/srem/LaneAttributes-Bike.h new file mode 100644 index 0000000..182202f --- /dev/null +++ b/vcits/srem/LaneAttributes-Bike.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneAttributes_Bike_H_ +#define _LaneAttributes_Bike_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Bike { + LaneAttributes_Bike_bikeRevocableLane = 0, + LaneAttributes_Bike_pedestrianUseAllowed = 1, + LaneAttributes_Bike_isBikeFlyOverLane = 2, + LaneAttributes_Bike_fixedCycleTime = 3, + LaneAttributes_Bike_biDirectionalCycleTimes = 4, + LaneAttributes_Bike_isolatedByBarrier = 5, + LaneAttributes_Bike_unsignalizedSegmentsPresent = 6 +} e_LaneAttributes_Bike; + +/* LaneAttributes-Bike */ +typedef BIT_STRING_t LaneAttributes_Bike_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike; +asn_struct_free_f LaneAttributes_Bike_free; +asn_struct_print_f LaneAttributes_Bike_print; +asn_constr_check_f LaneAttributes_Bike_constraint; +ber_type_decoder_f LaneAttributes_Bike_decode_ber; +der_type_encoder_f LaneAttributes_Bike_encode_der; +xer_type_decoder_f LaneAttributes_Bike_decode_xer; +xer_type_encoder_f LaneAttributes_Bike_encode_xer; +oer_type_decoder_f LaneAttributes_Bike_decode_oer; +oer_type_encoder_f LaneAttributes_Bike_encode_oer; +per_type_decoder_f LaneAttributes_Bike_decode_uper; +per_type_encoder_f LaneAttributes_Bike_encode_uper; +per_type_decoder_f LaneAttributes_Bike_decode_aper; +per_type_encoder_f LaneAttributes_Bike_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Bike_H_ */ +#include diff --git a/vcits/srem/LaneAttributes-Crosswalk.h b/vcits/srem/LaneAttributes-Crosswalk.h new file mode 100644 index 0000000..c7e4c0d --- /dev/null +++ b/vcits/srem/LaneAttributes-Crosswalk.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneAttributes_Crosswalk_H_ +#define _LaneAttributes_Crosswalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Crosswalk { + LaneAttributes_Crosswalk_crosswalkRevocableLane = 0, + LaneAttributes_Crosswalk_bicyleUseAllowed = 1, + LaneAttributes_Crosswalk_isXwalkFlyOverLane = 2, + LaneAttributes_Crosswalk_fixedCycleTime = 3, + LaneAttributes_Crosswalk_biDirectionalCycleTimes = 4, + LaneAttributes_Crosswalk_hasPushToWalkButton = 5, + LaneAttributes_Crosswalk_audioSupport = 6, + LaneAttributes_Crosswalk_rfSignalRequestPresent = 7, + LaneAttributes_Crosswalk_unsignalizedSegmentsPresent = 8 +} e_LaneAttributes_Crosswalk; + +/* LaneAttributes-Crosswalk */ +typedef BIT_STRING_t LaneAttributes_Crosswalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk; +asn_struct_free_f LaneAttributes_Crosswalk_free; +asn_struct_print_f LaneAttributes_Crosswalk_print; +asn_constr_check_f LaneAttributes_Crosswalk_constraint; +ber_type_decoder_f LaneAttributes_Crosswalk_decode_ber; +der_type_encoder_f LaneAttributes_Crosswalk_encode_der; +xer_type_decoder_f LaneAttributes_Crosswalk_decode_xer; +xer_type_encoder_f LaneAttributes_Crosswalk_encode_xer; +oer_type_decoder_f LaneAttributes_Crosswalk_decode_oer; +oer_type_encoder_f LaneAttributes_Crosswalk_encode_oer; +per_type_decoder_f LaneAttributes_Crosswalk_decode_uper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_uper; +per_type_decoder_f LaneAttributes_Crosswalk_decode_aper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Crosswalk_H_ */ +#include diff --git a/vcits/srem/LaneAttributes-Parking.h b/vcits/srem/LaneAttributes-Parking.h new file mode 100644 index 0000000..653b076 --- /dev/null +++ b/vcits/srem/LaneAttributes-Parking.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneAttributes_Parking_H_ +#define _LaneAttributes_Parking_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Parking { + LaneAttributes_Parking_parkingRevocableLane = 0, + LaneAttributes_Parking_parallelParkingInUse = 1, + LaneAttributes_Parking_headInParkingInUse = 2, + LaneAttributes_Parking_doNotParkZone = 3, + LaneAttributes_Parking_parkingForBusUse = 4, + LaneAttributes_Parking_parkingForTaxiUse = 5, + LaneAttributes_Parking_noPublicParkingUse = 6 +} e_LaneAttributes_Parking; + +/* LaneAttributes-Parking */ +typedef BIT_STRING_t LaneAttributes_Parking_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking; +asn_struct_free_f LaneAttributes_Parking_free; +asn_struct_print_f LaneAttributes_Parking_print; +asn_constr_check_f LaneAttributes_Parking_constraint; +ber_type_decoder_f LaneAttributes_Parking_decode_ber; +der_type_encoder_f LaneAttributes_Parking_encode_der; +xer_type_decoder_f LaneAttributes_Parking_decode_xer; +xer_type_encoder_f LaneAttributes_Parking_encode_xer; +oer_type_decoder_f LaneAttributes_Parking_decode_oer; +oer_type_encoder_f LaneAttributes_Parking_encode_oer; +per_type_decoder_f LaneAttributes_Parking_decode_uper; +per_type_encoder_f LaneAttributes_Parking_encode_uper; +per_type_decoder_f LaneAttributes_Parking_decode_aper; +per_type_encoder_f LaneAttributes_Parking_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Parking_H_ */ +#include diff --git a/vcits/srem/LaneAttributes-Sidewalk.h b/vcits/srem/LaneAttributes-Sidewalk.h new file mode 100644 index 0000000..608d8eb --- /dev/null +++ b/vcits/srem/LaneAttributes-Sidewalk.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneAttributes_Sidewalk_H_ +#define _LaneAttributes_Sidewalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Sidewalk { + LaneAttributes_Sidewalk_sidewalk_RevocableLane = 0, + LaneAttributes_Sidewalk_bicyleUseAllowed = 1, + LaneAttributes_Sidewalk_isSidewalkFlyOverLane = 2, + LaneAttributes_Sidewalk_walkBikes = 3 +} e_LaneAttributes_Sidewalk; + +/* LaneAttributes-Sidewalk */ +typedef BIT_STRING_t LaneAttributes_Sidewalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk; +asn_struct_free_f LaneAttributes_Sidewalk_free; +asn_struct_print_f LaneAttributes_Sidewalk_print; +asn_constr_check_f LaneAttributes_Sidewalk_constraint; +ber_type_decoder_f LaneAttributes_Sidewalk_decode_ber; +der_type_encoder_f LaneAttributes_Sidewalk_encode_der; +xer_type_decoder_f LaneAttributes_Sidewalk_decode_xer; +xer_type_encoder_f LaneAttributes_Sidewalk_encode_xer; +oer_type_decoder_f LaneAttributes_Sidewalk_decode_oer; +oer_type_encoder_f LaneAttributes_Sidewalk_encode_oer; +per_type_decoder_f LaneAttributes_Sidewalk_decode_uper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_uper; +per_type_decoder_f LaneAttributes_Sidewalk_decode_aper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Sidewalk_H_ */ +#include diff --git a/vcits/srem/LaneAttributes-Striping.h b/vcits/srem/LaneAttributes-Striping.h new file mode 100644 index 0000000..bbd4534 --- /dev/null +++ b/vcits/srem/LaneAttributes-Striping.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneAttributes_Striping_H_ +#define _LaneAttributes_Striping_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Striping { + LaneAttributes_Striping_stripeToConnectingLanesRevocableLane = 0, + LaneAttributes_Striping_stripeDrawOnLeft = 1, + LaneAttributes_Striping_stripeDrawOnRight = 2, + LaneAttributes_Striping_stripeToConnectingLanesLeft = 3, + LaneAttributes_Striping_stripeToConnectingLanesRight = 4, + LaneAttributes_Striping_stripeToConnectingLanesAhead = 5 +} e_LaneAttributes_Striping; + +/* LaneAttributes-Striping */ +typedef BIT_STRING_t LaneAttributes_Striping_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping; +asn_struct_free_f LaneAttributes_Striping_free; +asn_struct_print_f LaneAttributes_Striping_print; +asn_constr_check_f LaneAttributes_Striping_constraint; +ber_type_decoder_f LaneAttributes_Striping_decode_ber; +der_type_encoder_f LaneAttributes_Striping_encode_der; +xer_type_decoder_f LaneAttributes_Striping_decode_xer; +xer_type_encoder_f LaneAttributes_Striping_encode_xer; +oer_type_decoder_f LaneAttributes_Striping_decode_oer; +oer_type_encoder_f LaneAttributes_Striping_encode_oer; +per_type_decoder_f LaneAttributes_Striping_decode_uper; +per_type_encoder_f LaneAttributes_Striping_encode_uper; +per_type_decoder_f LaneAttributes_Striping_decode_aper; +per_type_encoder_f LaneAttributes_Striping_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Striping_H_ */ +#include diff --git a/vcits/srem/LaneAttributes-TrackedVehicle.h b/vcits/srem/LaneAttributes-TrackedVehicle.h new file mode 100644 index 0000000..1a012e3 --- /dev/null +++ b/vcits/srem/LaneAttributes-TrackedVehicle.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneAttributes_TrackedVehicle_H_ +#define _LaneAttributes_TrackedVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_TrackedVehicle { + LaneAttributes_TrackedVehicle_spec_RevocableLane = 0, + LaneAttributes_TrackedVehicle_spec_commuterRailRoadTrack = 1, + LaneAttributes_TrackedVehicle_spec_lightRailRoadTrack = 2, + LaneAttributes_TrackedVehicle_spec_heavyRailRoadTrack = 3, + LaneAttributes_TrackedVehicle_spec_otherRailType = 4 +} e_LaneAttributes_TrackedVehicle; + +/* LaneAttributes-TrackedVehicle */ +typedef BIT_STRING_t LaneAttributes_TrackedVehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle; +asn_struct_free_f LaneAttributes_TrackedVehicle_free; +asn_struct_print_f LaneAttributes_TrackedVehicle_print; +asn_constr_check_f LaneAttributes_TrackedVehicle_constraint; +ber_type_decoder_f LaneAttributes_TrackedVehicle_decode_ber; +der_type_encoder_f LaneAttributes_TrackedVehicle_encode_der; +xer_type_decoder_f LaneAttributes_TrackedVehicle_decode_xer; +xer_type_encoder_f LaneAttributes_TrackedVehicle_encode_xer; +oer_type_decoder_f LaneAttributes_TrackedVehicle_decode_oer; +oer_type_encoder_f LaneAttributes_TrackedVehicle_encode_oer; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_uper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_uper; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_aper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_TrackedVehicle_H_ */ +#include diff --git a/vcits/srem/LaneAttributes-Vehicle.h b/vcits/srem/LaneAttributes-Vehicle.h new file mode 100644 index 0000000..80bf39d --- /dev/null +++ b/vcits/srem/LaneAttributes-Vehicle.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneAttributes_Vehicle_H_ +#define _LaneAttributes_Vehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Vehicle { + LaneAttributes_Vehicle_isVehicleRevocableLane = 0, + LaneAttributes_Vehicle_isVehicleFlyOverLane = 1, + LaneAttributes_Vehicle_hovLaneUseOnly = 2, + LaneAttributes_Vehicle_restrictedToBusUse = 3, + LaneAttributes_Vehicle_restrictedToTaxiUse = 4, + LaneAttributes_Vehicle_restrictedFromPublicUse = 5, + LaneAttributes_Vehicle_hasIRbeaconCoverage = 6, + LaneAttributes_Vehicle_permissionOnRequest = 7 +} e_LaneAttributes_Vehicle; + +/* LaneAttributes-Vehicle */ +typedef BIT_STRING_t LaneAttributes_Vehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle; +asn_struct_free_f LaneAttributes_Vehicle_free; +asn_struct_print_f LaneAttributes_Vehicle_print; +asn_constr_check_f LaneAttributes_Vehicle_constraint; +ber_type_decoder_f LaneAttributes_Vehicle_decode_ber; +der_type_encoder_f LaneAttributes_Vehicle_encode_der; +xer_type_decoder_f LaneAttributes_Vehicle_decode_xer; +xer_type_encoder_f LaneAttributes_Vehicle_encode_xer; +oer_type_decoder_f LaneAttributes_Vehicle_decode_oer; +oer_type_encoder_f LaneAttributes_Vehicle_encode_oer; +per_type_decoder_f LaneAttributes_Vehicle_decode_uper; +per_type_encoder_f LaneAttributes_Vehicle_encode_uper; +per_type_decoder_f LaneAttributes_Vehicle_decode_aper; +per_type_encoder_f LaneAttributes_Vehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Vehicle_H_ */ +#include diff --git a/vcits/srem/LaneAttributes-addGrpC.h b/vcits/srem/LaneAttributes-addGrpC.h new file mode 100644 index 0000000..7bfee20 --- /dev/null +++ b/vcits/srem/LaneAttributes-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneAttributes_addGrpC_H_ +#define _LaneAttributes_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleHeight.h" +#include "VehicleMass.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneAttributes-addGrpC */ +typedef struct LaneAttributes_addGrpC { + VehicleHeight_t *maxVehicleHeight; /* OPTIONAL */ + VehicleMass_t *maxVehicleWeight; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_addGrpC_H_ */ +#include diff --git a/vcits/srem/LaneAttributes.h b/vcits/srem/LaneAttributes.h new file mode 100644 index 0000000..190f5e0 --- /dev/null +++ b/vcits/srem/LaneAttributes.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneAttributes_H_ +#define _LaneAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "LaneDirection.h" +#include "LaneSharing.h" +#include "LaneTypeAttributes.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_LaneAttributes; + +/* LaneAttributes */ +typedef struct LaneAttributes { + LaneDirection_t directionalUse; + LaneSharing_t sharedWith; + LaneTypeAttributes_t laneType; + struct Reg_LaneAttributes *regional; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_H_ */ +#include diff --git a/vcits/srem/LaneConnectionID.h b/vcits/srem/LaneConnectionID.h new file mode 100644 index 0000000..7cd3ef9 --- /dev/null +++ b/vcits/srem/LaneConnectionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneConnectionID_H_ +#define _LaneConnectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneConnectionID */ +typedef long LaneConnectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneConnectionID; +asn_struct_free_f LaneConnectionID_free; +asn_struct_print_f LaneConnectionID_print; +asn_constr_check_f LaneConnectionID_constraint; +ber_type_decoder_f LaneConnectionID_decode_ber; +der_type_encoder_f LaneConnectionID_encode_der; +xer_type_decoder_f LaneConnectionID_decode_xer; +xer_type_encoder_f LaneConnectionID_encode_xer; +oer_type_decoder_f LaneConnectionID_decode_oer; +oer_type_encoder_f LaneConnectionID_encode_oer; +per_type_decoder_f LaneConnectionID_decode_uper; +per_type_encoder_f LaneConnectionID_encode_uper; +per_type_decoder_f LaneConnectionID_decode_aper; +per_type_encoder_f LaneConnectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneConnectionID_H_ */ +#include diff --git a/vcits/srem/LaneDataAttribute.h b/vcits/srem/LaneDataAttribute.h new file mode 100644 index 0000000..52f3559 --- /dev/null +++ b/vcits/srem/LaneDataAttribute.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneDataAttribute_H_ +#define _LaneDataAttribute_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaAngle.h" +#include "RoadwayCrownAngle.h" +#include "MergeDivergeNodeAngle.h" +#include "SpeedLimitList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDataAttribute_PR { + LaneDataAttribute_PR_NOTHING, /* No components present */ + LaneDataAttribute_PR_pathEndPointAngle, + LaneDataAttribute_PR_laneCrownPointCenter, + LaneDataAttribute_PR_laneCrownPointLeft, + LaneDataAttribute_PR_laneCrownPointRight, + LaneDataAttribute_PR_laneAngle, + LaneDataAttribute_PR_speedLimits, + LaneDataAttribute_PR_regional + /* Extensions may appear below */ + +} LaneDataAttribute_PR; + +/* Forward declarations */ +struct Reg_LaneDataAttribute; + +/* LaneDataAttribute */ +typedef struct LaneDataAttribute { + LaneDataAttribute_PR present; + union LaneDataAttribute_u { + DeltaAngle_t pathEndPointAngle; + RoadwayCrownAngle_t laneCrownPointCenter; + RoadwayCrownAngle_t laneCrownPointLeft; + RoadwayCrownAngle_t laneCrownPointRight; + MergeDivergeNodeAngle_t laneAngle; + SpeedLimitList_t speedLimits; + struct LaneDataAttribute__regional { + A_SEQUENCE_OF(struct Reg_LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute; +extern asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[7]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttribute_H_ */ +#include diff --git a/vcits/srem/LaneDataAttributeList.h b/vcits/srem/LaneDataAttributeList.h new file mode 100644 index 0000000..aff40df --- /dev/null +++ b/vcits/srem/LaneDataAttributeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneDataAttributeList_H_ +#define _LaneDataAttributeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LaneDataAttribute; + +/* LaneDataAttributeList */ +typedef struct LaneDataAttributeList { + A_SEQUENCE_OF(struct LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttributeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList; +extern asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttributeList_H_ */ +#include diff --git a/vcits/srem/LaneDirection.h b/vcits/srem/LaneDirection.h new file mode 100644 index 0000000..731023d --- /dev/null +++ b/vcits/srem/LaneDirection.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneDirection_H_ +#define _LaneDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDirection { + LaneDirection_ingressPath = 0, + LaneDirection_egressPath = 1 +} e_LaneDirection; + +/* LaneDirection */ +typedef BIT_STRING_t LaneDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneDirection; +asn_struct_free_f LaneDirection_free; +asn_struct_print_f LaneDirection_print; +asn_constr_check_f LaneDirection_constraint; +ber_type_decoder_f LaneDirection_decode_ber; +der_type_encoder_f LaneDirection_encode_der; +xer_type_decoder_f LaneDirection_decode_xer; +xer_type_encoder_f LaneDirection_encode_xer; +oer_type_decoder_f LaneDirection_decode_oer; +oer_type_encoder_f LaneDirection_encode_oer; +per_type_decoder_f LaneDirection_decode_uper; +per_type_encoder_f LaneDirection_encode_uper; +per_type_decoder_f LaneDirection_decode_aper; +per_type_encoder_f LaneDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDirection_H_ */ +#include diff --git a/vcits/srem/LaneID.h b/vcits/srem/LaneID.h new file mode 100644 index 0000000..39b868c --- /dev/null +++ b/vcits/srem/LaneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneID_H_ +#define _LaneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneID */ +typedef long LaneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneID; +asn_struct_free_f LaneID_free; +asn_struct_print_f LaneID_print; +asn_constr_check_f LaneID_constraint; +ber_type_decoder_f LaneID_decode_ber; +der_type_encoder_f LaneID_encode_der; +xer_type_decoder_f LaneID_decode_xer; +xer_type_encoder_f LaneID_encode_xer; +oer_type_decoder_f LaneID_decode_oer; +oer_type_encoder_f LaneID_encode_oer; +per_type_decoder_f LaneID_decode_uper; +per_type_encoder_f LaneID_encode_uper; +per_type_decoder_f LaneID_decode_aper; +per_type_encoder_f LaneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneID_H_ */ +#include diff --git a/vcits/srem/LaneList.h b/vcits/srem/LaneList.h new file mode 100644 index 0000000..c99a594 --- /dev/null +++ b/vcits/srem/LaneList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneList_H_ +#define _LaneList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* LaneList */ +typedef struct LaneList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneList; +extern asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneList_H_ */ +#include diff --git a/vcits/srem/LanePosition.h b/vcits/srem/LanePosition.h new file mode 100644 index 0000000..625ec4a --- /dev/null +++ b/vcits/srem/LanePosition.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LanePosition_H_ +#define _LanePosition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LanePosition { + LanePosition_offTheRoad = -1, + LanePosition_innerHardShoulder = 0, + LanePosition_innermostDrivingLane = 1, + LanePosition_secondLaneFromInside = 2, + LanePosition_outerHardShoulder = 14 +} e_LanePosition; + +/* LanePosition */ +typedef long LanePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LanePosition; +asn_struct_free_f LanePosition_free; +asn_struct_print_f LanePosition_print; +asn_constr_check_f LanePosition_constraint; +ber_type_decoder_f LanePosition_decode_ber; +der_type_encoder_f LanePosition_encode_der; +xer_type_decoder_f LanePosition_decode_xer; +xer_type_encoder_f LanePosition_encode_xer; +oer_type_decoder_f LanePosition_decode_oer; +oer_type_encoder_f LanePosition_encode_oer; +per_type_decoder_f LanePosition_decode_uper; +per_type_encoder_f LanePosition_encode_uper; +per_type_decoder_f LanePosition_decode_aper; +per_type_encoder_f LanePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LanePosition_H_ */ +#include diff --git a/vcits/srem/LaneSharing.h b/vcits/srem/LaneSharing.h new file mode 100644 index 0000000..f99e3d0 --- /dev/null +++ b/vcits/srem/LaneSharing.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneSharing_H_ +#define _LaneSharing_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneSharing { + LaneSharing_overlappingLaneDescriptionProvided = 0, + LaneSharing_multipleLanesTreatedAsOneLane = 1, + LaneSharing_otherNonMotorizedTrafficTypes = 2, + LaneSharing_individualMotorizedVehicleTraffic = 3, + LaneSharing_busVehicleTraffic = 4, + LaneSharing_taxiVehicleTraffic = 5, + LaneSharing_pedestriansTraffic = 6, + LaneSharing_cyclistVehicleTraffic = 7, + LaneSharing_trackedVehicleTraffic = 8, + LaneSharing_pedestrianTraffic = 9 +} e_LaneSharing; + +/* LaneSharing */ +typedef BIT_STRING_t LaneSharing_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneSharing_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneSharing; +asn_struct_free_f LaneSharing_free; +asn_struct_print_f LaneSharing_print; +asn_constr_check_f LaneSharing_constraint; +ber_type_decoder_f LaneSharing_decode_ber; +der_type_encoder_f LaneSharing_encode_der; +xer_type_decoder_f LaneSharing_decode_xer; +xer_type_encoder_f LaneSharing_encode_xer; +oer_type_decoder_f LaneSharing_decode_oer; +oer_type_encoder_f LaneSharing_encode_oer; +per_type_decoder_f LaneSharing_decode_uper; +per_type_encoder_f LaneSharing_encode_uper; +per_type_decoder_f LaneSharing_decode_aper; +per_type_encoder_f LaneSharing_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneSharing_H_ */ +#include diff --git a/vcits/srem/LaneTypeAttributes.h b/vcits/srem/LaneTypeAttributes.h new file mode 100644 index 0000000..b1d8ea0 --- /dev/null +++ b/vcits/srem/LaneTypeAttributes.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneTypeAttributes_H_ +#define _LaneTypeAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "LaneAttributes-Vehicle.h" +#include "LaneAttributes-Crosswalk.h" +#include "LaneAttributes-Bike.h" +#include "LaneAttributes-Sidewalk.h" +#include "LaneAttributes-Barrier.h" +#include "LaneAttributes-Striping.h" +#include "LaneAttributes-TrackedVehicle.h" +#include "LaneAttributes-Parking.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneTypeAttributes_PR { + LaneTypeAttributes_PR_NOTHING, /* No components present */ + LaneTypeAttributes_PR_vehicle, + LaneTypeAttributes_PR_crosswalk, + LaneTypeAttributes_PR_bikeLane, + LaneTypeAttributes_PR_sidewalk, + LaneTypeAttributes_PR_median, + LaneTypeAttributes_PR_striping, + LaneTypeAttributes_PR_trackedVehicle, + LaneTypeAttributes_PR_parking + /* Extensions may appear below */ + +} LaneTypeAttributes_PR; + +/* LaneTypeAttributes */ +typedef struct LaneTypeAttributes { + LaneTypeAttributes_PR present; + union LaneTypeAttributes_u { + LaneAttributes_Vehicle_t vehicle; + LaneAttributes_Crosswalk_t crosswalk; + LaneAttributes_Bike_t bikeLane; + LaneAttributes_Sidewalk_t sidewalk; + LaneAttributes_Barrier_t median; + LaneAttributes_Striping_t striping; + LaneAttributes_TrackedVehicle_t trackedVehicle; + LaneAttributes_Parking_t parking; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneTypeAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes; +extern asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[8]; +extern asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneTypeAttributes_H_ */ +#include diff --git a/vcits/srem/LaneWidth.h b/vcits/srem/LaneWidth.h new file mode 100644 index 0000000..dc6d34b --- /dev/null +++ b/vcits/srem/LaneWidth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LaneWidth_H_ +#define _LaneWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneWidth */ +typedef long LaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneWidth; +asn_struct_free_f LaneWidth_free; +asn_struct_print_f LaneWidth_print; +asn_constr_check_f LaneWidth_constraint; +ber_type_decoder_f LaneWidth_decode_ber; +der_type_encoder_f LaneWidth_encode_der; +xer_type_decoder_f LaneWidth_decode_xer; +xer_type_encoder_f LaneWidth_encode_xer; +oer_type_decoder_f LaneWidth_decode_oer; +oer_type_encoder_f LaneWidth_encode_oer; +per_type_decoder_f LaneWidth_decode_uper; +per_type_encoder_f LaneWidth_encode_uper; +per_type_decoder_f LaneWidth_decode_aper; +per_type_encoder_f LaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneWidth_H_ */ +#include diff --git a/vcits/srem/LateralAcceleration.h b/vcits/srem/LateralAcceleration.h new file mode 100644 index 0000000..e35affa --- /dev/null +++ b/vcits/srem/LateralAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LateralAcceleration_H_ +#define _LateralAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LateralAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LateralAcceleration */ +typedef struct LateralAcceleration { + LateralAccelerationValue_t lateralAccelerationValue; + AccelerationConfidence_t lateralAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LateralAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LateralAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAcceleration_H_ */ +#include diff --git a/vcits/srem/LateralAccelerationValue.h b/vcits/srem/LateralAccelerationValue.h new file mode 100644 index 0000000..ea86c33 --- /dev/null +++ b/vcits/srem/LateralAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LateralAccelerationValue_H_ +#define _LateralAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LateralAccelerationValue { + LateralAccelerationValue_pointOneMeterPerSecSquaredToRight = -1, + LateralAccelerationValue_pointOneMeterPerSecSquaredToLeft = 1, + LateralAccelerationValue_unavailable = 161 +} e_LateralAccelerationValue; + +/* LateralAccelerationValue */ +typedef long LateralAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue; +asn_struct_free_f LateralAccelerationValue_free; +asn_struct_print_f LateralAccelerationValue_print; +asn_constr_check_f LateralAccelerationValue_constraint; +ber_type_decoder_f LateralAccelerationValue_decode_ber; +der_type_encoder_f LateralAccelerationValue_encode_der; +xer_type_decoder_f LateralAccelerationValue_decode_xer; +xer_type_encoder_f LateralAccelerationValue_encode_xer; +oer_type_decoder_f LateralAccelerationValue_decode_oer; +oer_type_encoder_f LateralAccelerationValue_encode_oer; +per_type_decoder_f LateralAccelerationValue_decode_uper; +per_type_encoder_f LateralAccelerationValue_encode_uper; +per_type_decoder_f LateralAccelerationValue_decode_aper; +per_type_encoder_f LateralAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAccelerationValue_H_ */ +#include diff --git a/vcits/srem/Latitude.h b/vcits/srem/Latitude.h new file mode 100644 index 0000000..af36ac6 --- /dev/null +++ b/vcits/srem/Latitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Latitude_H_ +#define _Latitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Latitude { + Latitude_oneMicrodegreeNorth = 10, + Latitude_oneMicrodegreeSouth = -10, + Latitude_unavailable = 900000001 +} e_Latitude; + +/* Latitude */ +typedef long Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Latitude; +asn_struct_free_f Latitude_free; +asn_struct_print_f Latitude_print; +asn_constr_check_f Latitude_constraint; +ber_type_decoder_f Latitude_decode_ber; +der_type_encoder_f Latitude_encode_der; +xer_type_decoder_f Latitude_decode_xer; +xer_type_encoder_f Latitude_encode_xer; +oer_type_decoder_f Latitude_decode_oer; +oer_type_encoder_f Latitude_encode_oer; +per_type_decoder_f Latitude_decode_uper; +per_type_encoder_f Latitude_encode_uper; +per_type_decoder_f Latitude_decode_aper; +per_type_encoder_f Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Latitude_H_ */ +#include diff --git a/vcits/srem/LayerID.h b/vcits/srem/LayerID.h new file mode 100644 index 0000000..c1494ba --- /dev/null +++ b/vcits/srem/LayerID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LayerID_H_ +#define _LayerID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LayerID */ +typedef long LayerID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerID; +asn_struct_free_f LayerID_free; +asn_struct_print_f LayerID_print; +asn_constr_check_f LayerID_constraint; +ber_type_decoder_f LayerID_decode_ber; +der_type_encoder_f LayerID_encode_der; +xer_type_decoder_f LayerID_decode_xer; +xer_type_encoder_f LayerID_encode_xer; +oer_type_decoder_f LayerID_decode_oer; +oer_type_encoder_f LayerID_encode_oer; +per_type_decoder_f LayerID_decode_uper; +per_type_encoder_f LayerID_encode_uper; +per_type_decoder_f LayerID_decode_aper; +per_type_encoder_f LayerID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerID_H_ */ +#include diff --git a/vcits/srem/LayerType.h b/vcits/srem/LayerType.h new file mode 100644 index 0000000..62e792c --- /dev/null +++ b/vcits/srem/LayerType.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LayerType_H_ +#define _LayerType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LayerType { + LayerType_none = 0, + LayerType_mixedContent = 1, + LayerType_generalMapData = 2, + LayerType_intersectionData = 3, + LayerType_curveData = 4, + LayerType_roadwaySectionData = 5, + LayerType_parkingAreaData = 6, + LayerType_sharedLaneData = 7 + /* + * Enumeration is extensible + */ +} e_LayerType; + +/* LayerType */ +typedef long LayerType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerType; +extern const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1; +asn_struct_free_f LayerType_free; +asn_struct_print_f LayerType_print; +asn_constr_check_f LayerType_constraint; +ber_type_decoder_f LayerType_decode_ber; +der_type_encoder_f LayerType_encode_der; +xer_type_decoder_f LayerType_decode_xer; +xer_type_encoder_f LayerType_encode_xer; +oer_type_decoder_f LayerType_decode_oer; +oer_type_encoder_f LayerType_encode_oer; +per_type_decoder_f LayerType_decode_uper; +per_type_encoder_f LayerType_encode_uper; +per_type_decoder_f LayerType_decode_aper; +per_type_encoder_f LayerType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerType_H_ */ +#include diff --git a/vcits/srem/LicPlateNumber.h b/vcits/srem/LicPlateNumber.h new file mode 100644 index 0000000..64362ba --- /dev/null +++ b/vcits/srem/LicPlateNumber.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LicPlateNumber_H_ +#define _LicPlateNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LicPlateNumber */ +typedef OCTET_STRING_t LicPlateNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LicPlateNumber; +asn_struct_free_f LicPlateNumber_free; +asn_struct_print_f LicPlateNumber_print; +asn_constr_check_f LicPlateNumber_constraint; +ber_type_decoder_f LicPlateNumber_decode_ber; +der_type_encoder_f LicPlateNumber_encode_der; +xer_type_decoder_f LicPlateNumber_decode_xer; +xer_type_encoder_f LicPlateNumber_encode_xer; +oer_type_decoder_f LicPlateNumber_decode_oer; +oer_type_encoder_f LicPlateNumber_encode_oer; +per_type_decoder_f LicPlateNumber_decode_uper; +per_type_encoder_f LicPlateNumber_encode_uper; +per_type_decoder_f LicPlateNumber_decode_aper; +per_type_encoder_f LicPlateNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LicPlateNumber_H_ */ +#include diff --git a/vcits/srem/LightBarSirenInUse.h b/vcits/srem/LightBarSirenInUse.h new file mode 100644 index 0000000..e1f80db --- /dev/null +++ b/vcits/srem/LightBarSirenInUse.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LightBarSirenInUse_H_ +#define _LightBarSirenInUse_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LightBarSirenInUse { + LightBarSirenInUse_lightBarActivated = 0, + LightBarSirenInUse_sirenActivated = 1 +} e_LightBarSirenInUse; + +/* LightBarSirenInUse */ +typedef BIT_STRING_t LightBarSirenInUse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse; +asn_struct_free_f LightBarSirenInUse_free; +asn_struct_print_f LightBarSirenInUse_print; +asn_constr_check_f LightBarSirenInUse_constraint; +ber_type_decoder_f LightBarSirenInUse_decode_ber; +der_type_encoder_f LightBarSirenInUse_encode_der; +xer_type_decoder_f LightBarSirenInUse_decode_xer; +xer_type_encoder_f LightBarSirenInUse_encode_xer; +oer_type_decoder_f LightBarSirenInUse_decode_oer; +oer_type_encoder_f LightBarSirenInUse_encode_oer; +per_type_decoder_f LightBarSirenInUse_decode_uper; +per_type_encoder_f LightBarSirenInUse_encode_uper; +per_type_decoder_f LightBarSirenInUse_decode_aper; +per_type_encoder_f LightBarSirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LightBarSirenInUse_H_ */ +#include diff --git a/vcits/srem/Longitude.h b/vcits/srem/Longitude.h new file mode 100644 index 0000000..72b92b8 --- /dev/null +++ b/vcits/srem/Longitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Longitude_H_ +#define _Longitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Longitude { + Longitude_oneMicrodegreeEast = 10, + Longitude_oneMicrodegreeWest = -10, + Longitude_unavailable = 1800000001 +} e_Longitude; + +/* Longitude */ +typedef long Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Longitude; +asn_struct_free_f Longitude_free; +asn_struct_print_f Longitude_print; +asn_constr_check_f Longitude_constraint; +ber_type_decoder_f Longitude_decode_ber; +der_type_encoder_f Longitude_encode_der; +xer_type_decoder_f Longitude_decode_xer; +xer_type_encoder_f Longitude_encode_xer; +oer_type_decoder_f Longitude_decode_oer; +oer_type_encoder_f Longitude_encode_oer; +per_type_decoder_f Longitude_decode_uper; +per_type_encoder_f Longitude_encode_uper; +per_type_decoder_f Longitude_decode_aper; +per_type_encoder_f Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Longitude_H_ */ +#include diff --git a/vcits/srem/LongitudinalAcceleration.h b/vcits/srem/LongitudinalAcceleration.h new file mode 100644 index 0000000..1ddc0f5 --- /dev/null +++ b/vcits/srem/LongitudinalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LongitudinalAcceleration_H_ +#define _LongitudinalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LongitudinalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LongitudinalAcceleration */ +typedef struct LongitudinalAcceleration { + LongitudinalAccelerationValue_t longitudinalAccelerationValue; + AccelerationConfidence_t longitudinalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LongitudinalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAcceleration_H_ */ +#include diff --git a/vcits/srem/LongitudinalAccelerationValue.h b/vcits/srem/LongitudinalAccelerationValue.h new file mode 100644 index 0000000..81cc49b --- /dev/null +++ b/vcits/srem/LongitudinalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _LongitudinalAccelerationValue_H_ +#define _LongitudinalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LongitudinalAccelerationValue { + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredForward = 1, + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredBackward = -1, + LongitudinalAccelerationValue_unavailable = 161 +} e_LongitudinalAccelerationValue; + +/* LongitudinalAccelerationValue */ +typedef long LongitudinalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue; +asn_struct_free_f LongitudinalAccelerationValue_free; +asn_struct_print_f LongitudinalAccelerationValue_print; +asn_constr_check_f LongitudinalAccelerationValue_constraint; +ber_type_decoder_f LongitudinalAccelerationValue_decode_ber; +der_type_encoder_f LongitudinalAccelerationValue_encode_der; +xer_type_decoder_f LongitudinalAccelerationValue_decode_xer; +xer_type_encoder_f LongitudinalAccelerationValue_encode_xer; +oer_type_decoder_f LongitudinalAccelerationValue_decode_oer; +oer_type_encoder_f LongitudinalAccelerationValue_encode_oer; +per_type_decoder_f LongitudinalAccelerationValue_decode_uper; +per_type_encoder_f LongitudinalAccelerationValue_encode_uper; +per_type_decoder_f LongitudinalAccelerationValue_decode_aper; +per_type_encoder_f LongitudinalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAccelerationValue_H_ */ +#include diff --git a/vcits/srem/ManeuverAssistList.h b/vcits/srem/ManeuverAssistList.h new file mode 100644 index 0000000..4d19318 --- /dev/null +++ b/vcits/srem/ManeuverAssistList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ManeuverAssistList_H_ +#define _ManeuverAssistList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectionManeuverAssist; + +/* ManeuverAssistList */ +typedef struct ManeuverAssistList { + A_SEQUENCE_OF(struct ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ManeuverAssistList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList; +extern asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1; +extern asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[1]; +extern asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManeuverAssistList_H_ */ +#include diff --git a/vcits/srem/ManufacturerIdentifier.h b/vcits/srem/ManufacturerIdentifier.h new file mode 100644 index 0000000..0dfc90c --- /dev/null +++ b/vcits/srem/ManufacturerIdentifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ManufacturerIdentifier_H_ +#define _ManufacturerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ManufacturerIdentifier */ +typedef long ManufacturerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ManufacturerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ManufacturerIdentifier; +asn_struct_free_f ManufacturerIdentifier_free; +asn_struct_print_f ManufacturerIdentifier_print; +asn_constr_check_f ManufacturerIdentifier_constraint; +ber_type_decoder_f ManufacturerIdentifier_decode_ber; +der_type_encoder_f ManufacturerIdentifier_encode_der; +xer_type_decoder_f ManufacturerIdentifier_decode_xer; +xer_type_encoder_f ManufacturerIdentifier_encode_xer; +oer_type_decoder_f ManufacturerIdentifier_decode_oer; +oer_type_encoder_f ManufacturerIdentifier_encode_oer; +per_type_decoder_f ManufacturerIdentifier_decode_uper; +per_type_encoder_f ManufacturerIdentifier_encode_uper; +per_type_decoder_f ManufacturerIdentifier_decode_aper; +per_type_encoder_f ManufacturerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManufacturerIdentifier_H_ */ +#include diff --git a/vcits/srem/MapData-addGrpC.h b/vcits/srem/MapData-addGrpC.h new file mode 100644 index 0000000..fee6afb --- /dev/null +++ b/vcits/srem/MapData-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _MapData_addGrpC_H_ +#define _MapData_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocationList; + +/* MapData-addGrpC */ +typedef struct MapData_addGrpC { + struct SignalHeadLocationList *signalHeadLocations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_addGrpC_H_ */ +#include diff --git a/vcits/srem/MapData.h b/vcits/srem/MapData.h new file mode 100644 index 0000000..8f5ccaf --- /dev/null +++ b/vcits/srem/MapData.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _MapData_H_ +#define _MapData_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "MsgCount.h" +#include "LayerType.h" +#include "LayerID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometryList; +struct RoadSegmentList; +struct DataParameters; +struct RestrictionClassList; +struct Reg_MapData; + +/* MapData */ +typedef struct MapData { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + MsgCount_t msgIssueRevision; + LayerType_t *layerType; /* OPTIONAL */ + LayerID_t *layerID; /* OPTIONAL */ + struct IntersectionGeometryList *intersections; /* OPTIONAL */ + struct RoadSegmentList *roadSegments; /* OPTIONAL */ + struct DataParameters *dataParameters; /* OPTIONAL */ + struct RestrictionClassList *restrictionList; /* OPTIONAL */ + struct MapData__regional { + A_SEQUENCE_OF(struct Reg_MapData) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_H_ */ +#include diff --git a/vcits/srem/MergeDivergeNodeAngle.h b/vcits/srem/MergeDivergeNodeAngle.h new file mode 100644 index 0000000..7d30a54 --- /dev/null +++ b/vcits/srem/MergeDivergeNodeAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _MergeDivergeNodeAngle_H_ +#define _MergeDivergeNodeAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MergeDivergeNodeAngle */ +typedef long MergeDivergeNodeAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle; +asn_struct_free_f MergeDivergeNodeAngle_free; +asn_struct_print_f MergeDivergeNodeAngle_print; +asn_constr_check_f MergeDivergeNodeAngle_constraint; +ber_type_decoder_f MergeDivergeNodeAngle_decode_ber; +der_type_encoder_f MergeDivergeNodeAngle_encode_der; +xer_type_decoder_f MergeDivergeNodeAngle_decode_xer; +xer_type_encoder_f MergeDivergeNodeAngle_encode_xer; +oer_type_decoder_f MergeDivergeNodeAngle_decode_oer; +oer_type_encoder_f MergeDivergeNodeAngle_encode_oer; +per_type_decoder_f MergeDivergeNodeAngle_decode_uper; +per_type_encoder_f MergeDivergeNodeAngle_encode_uper; +per_type_decoder_f MergeDivergeNodeAngle_decode_aper; +per_type_encoder_f MergeDivergeNodeAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MergeDivergeNodeAngle_H_ */ +#include diff --git a/vcits/srem/MinuteOfTheYear.h b/vcits/srem/MinuteOfTheYear.h new file mode 100644 index 0000000..e46304d --- /dev/null +++ b/vcits/srem/MinuteOfTheYear.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _MinuteOfTheYear_H_ +#define _MinuteOfTheYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MinuteOfTheYear */ +typedef long MinuteOfTheYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear; +asn_struct_free_f MinuteOfTheYear_free; +asn_struct_print_f MinuteOfTheYear_print; +asn_constr_check_f MinuteOfTheYear_constraint; +ber_type_decoder_f MinuteOfTheYear_decode_ber; +der_type_encoder_f MinuteOfTheYear_encode_der; +xer_type_decoder_f MinuteOfTheYear_decode_xer; +xer_type_encoder_f MinuteOfTheYear_encode_xer; +oer_type_decoder_f MinuteOfTheYear_decode_oer; +oer_type_encoder_f MinuteOfTheYear_encode_oer; +per_type_decoder_f MinuteOfTheYear_decode_uper; +per_type_encoder_f MinuteOfTheYear_encode_uper; +per_type_decoder_f MinuteOfTheYear_decode_aper; +per_type_encoder_f MinuteOfTheYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MinuteOfTheYear_H_ */ +#include diff --git a/vcits/srem/MovementEvent-addGrpC.h b/vcits/srem/MovementEvent-addGrpC.h new file mode 100644 index 0000000..e96a464 --- /dev/null +++ b/vcits/srem/MovementEvent-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _MovementEvent_addGrpC_H_ +#define _MovementEvent_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "ExceptionalCondition.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MovementEvent-addGrpC */ +typedef struct MovementEvent_addGrpC { + ExceptionalCondition_t *stateChangeReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_addGrpC_H_ */ +#include diff --git a/vcits/srem/MovementEvent.h b/vcits/srem/MovementEvent.h new file mode 100644 index 0000000..a881f4e --- /dev/null +++ b/vcits/srem/MovementEvent.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _MovementEvent_H_ +#define _MovementEvent_H_ + + +#include + +/* Including external dependencies */ +#include "MovementPhaseState.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TimeChangeDetails; +struct AdvisorySpeedList; +struct Reg_MovementEvent; + +/* MovementEvent */ +typedef struct MovementEvent { + MovementPhaseState_t eventState; + struct TimeChangeDetails *timing; /* OPTIONAL */ + struct AdvisorySpeedList *speeds; /* OPTIONAL */ + struct MovementEvent__regional { + A_SEQUENCE_OF(struct Reg_MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_H_ */ +#include diff --git a/vcits/srem/MovementEventList.h b/vcits/srem/MovementEventList.h new file mode 100644 index 0000000..26459c4 --- /dev/null +++ b/vcits/srem/MovementEventList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _MovementEventList_H_ +#define _MovementEventList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementEvent; + +/* MovementEventList */ +typedef struct MovementEventList { + A_SEQUENCE_OF(struct MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEventList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEventList; +extern asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEventList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementEventList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEventList_H_ */ +#include diff --git a/vcits/srem/MovementList.h b/vcits/srem/MovementList.h new file mode 100644 index 0000000..09a63bd --- /dev/null +++ b/vcits/srem/MovementList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _MovementList_H_ +#define _MovementList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementState; + +/* MovementList */ +typedef struct MovementList { + A_SEQUENCE_OF(struct MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementList; +extern asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementList_H_ */ +#include diff --git a/vcits/srem/MovementPhaseState.h b/vcits/srem/MovementPhaseState.h new file mode 100644 index 0000000..869eed4 --- /dev/null +++ b/vcits/srem/MovementPhaseState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _MovementPhaseState_H_ +#define _MovementPhaseState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MovementPhaseState { + MovementPhaseState_unavailable = 0, + MovementPhaseState_dark = 1, + MovementPhaseState_stop_Then_Proceed = 2, + MovementPhaseState_stop_And_Remain = 3, + MovementPhaseState_pre_Movement = 4, + MovementPhaseState_permissive_Movement_Allowed = 5, + MovementPhaseState_protected_Movement_Allowed = 6, + MovementPhaseState_permissive_clearance = 7, + MovementPhaseState_protected_clearance = 8, + MovementPhaseState_caution_Conflicting_Traffic = 9 +} e_MovementPhaseState; + +/* MovementPhaseState */ +typedef long MovementPhaseState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MovementPhaseState; +extern const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1; +asn_struct_free_f MovementPhaseState_free; +asn_struct_print_f MovementPhaseState_print; +asn_constr_check_f MovementPhaseState_constraint; +ber_type_decoder_f MovementPhaseState_decode_ber; +der_type_encoder_f MovementPhaseState_encode_der; +xer_type_decoder_f MovementPhaseState_decode_xer; +xer_type_encoder_f MovementPhaseState_encode_xer; +oer_type_decoder_f MovementPhaseState_decode_oer; +oer_type_encoder_f MovementPhaseState_encode_oer; +per_type_decoder_f MovementPhaseState_decode_uper; +per_type_encoder_f MovementPhaseState_encode_uper; +per_type_decoder_f MovementPhaseState_decode_aper; +per_type_encoder_f MovementPhaseState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementPhaseState_H_ */ +#include diff --git a/vcits/srem/MovementState.h b/vcits/srem/MovementState.h new file mode 100644 index 0000000..a831170 --- /dev/null +++ b/vcits/srem/MovementState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _MovementState_H_ +#define _MovementState_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "SignalGroupID.h" +#include "MovementEventList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ManeuverAssistList; +struct Reg_MovementState; + +/* MovementState */ +typedef struct MovementState { + DescriptiveName_t *movementName; /* OPTIONAL */ + SignalGroupID_t signalGroup; + MovementEventList_t state_time_speed; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct MovementState__regional { + A_SEQUENCE_OF(struct Reg_MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementState_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementState_H_ */ +#include diff --git a/vcits/srem/MsgCount.h b/vcits/srem/MsgCount.h new file mode 100644 index 0000000..69a0398 --- /dev/null +++ b/vcits/srem/MsgCount.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _MsgCount_H_ +#define _MsgCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MsgCount */ +typedef long MsgCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MsgCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MsgCount; +asn_struct_free_f MsgCount_free; +asn_struct_print_f MsgCount_print; +asn_constr_check_f MsgCount_constraint; +ber_type_decoder_f MsgCount_decode_ber; +der_type_encoder_f MsgCount_encode_der; +xer_type_decoder_f MsgCount_decode_xer; +xer_type_encoder_f MsgCount_encode_xer; +oer_type_decoder_f MsgCount_decode_oer; +oer_type_encoder_f MsgCount_encode_oer; +per_type_decoder_f MsgCount_decode_uper; +per_type_encoder_f MsgCount_encode_uper; +per_type_decoder_f MsgCount_decode_aper; +per_type_encoder_f MsgCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MsgCount_H_ */ +#include diff --git a/vcits/srem/Node-LLmD-64b.h b/vcits/srem/Node-LLmD-64b.h new file mode 100644 index 0000000..58f3ae9 --- /dev/null +++ b/vcits/srem/Node-LLmD-64b.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Node_LLmD_64b_H_ +#define _Node_LLmD_64b_H_ + + +#include + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LLmD-64b */ +typedef struct Node_LLmD_64b { + Longitude_t lon; + Latitude_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LLmD_64b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LLmD_64b_H_ */ +#include diff --git a/vcits/srem/Node-XY-20b.h b/vcits/srem/Node-XY-20b.h new file mode 100644 index 0000000..14fccaf --- /dev/null +++ b/vcits/srem/Node-XY-20b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Node_XY_20b_H_ +#define _Node_XY_20b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-20b */ +typedef struct Node_XY_20b { + Offset_B10_t x; + Offset_B10_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_20b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_20b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_20b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_20b_H_ */ +#include diff --git a/vcits/srem/Node-XY-22b.h b/vcits/srem/Node-XY-22b.h new file mode 100644 index 0000000..2472389 --- /dev/null +++ b/vcits/srem/Node-XY-22b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Node_XY_22b_H_ +#define _Node_XY_22b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B11.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-22b */ +typedef struct Node_XY_22b { + Offset_B11_t x; + Offset_B11_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_22b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_22b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_22b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_22b_H_ */ +#include diff --git a/vcits/srem/Node-XY-24b.h b/vcits/srem/Node-XY-24b.h new file mode 100644 index 0000000..bd0bc89 --- /dev/null +++ b/vcits/srem/Node-XY-24b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Node_XY_24b_H_ +#define _Node_XY_24b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B12.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-24b */ +typedef struct Node_XY_24b { + Offset_B12_t x; + Offset_B12_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_24b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_24b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_24b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_24b_H_ */ +#include diff --git a/vcits/srem/Node-XY-26b.h b/vcits/srem/Node-XY-26b.h new file mode 100644 index 0000000..7e89d34 --- /dev/null +++ b/vcits/srem/Node-XY-26b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Node_XY_26b_H_ +#define _Node_XY_26b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B13.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-26b */ +typedef struct Node_XY_26b { + Offset_B13_t x; + Offset_B13_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_26b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_26b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_26b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_26b_H_ */ +#include diff --git a/vcits/srem/Node-XY-28b.h b/vcits/srem/Node-XY-28b.h new file mode 100644 index 0000000..54c1368 --- /dev/null +++ b/vcits/srem/Node-XY-28b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Node_XY_28b_H_ +#define _Node_XY_28b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B14.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-28b */ +typedef struct Node_XY_28b { + Offset_B14_t x; + Offset_B14_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_28b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_28b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_28b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_28b_H_ */ +#include diff --git a/vcits/srem/Node-XY-32b.h b/vcits/srem/Node-XY-32b.h new file mode 100644 index 0000000..808fdf9 --- /dev/null +++ b/vcits/srem/Node-XY-32b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Node_XY_32b_H_ +#define _Node_XY_32b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B16.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-32b */ +typedef struct Node_XY_32b { + Offset_B16_t x; + Offset_B16_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_32b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_32b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_32b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_32b_H_ */ +#include diff --git a/vcits/srem/Node.h b/vcits/srem/Node.h new file mode 100644 index 0000000..ec4e709 --- /dev/null +++ b/vcits/srem/Node.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Node_H_ +#define _Node_H_ + + +#include + +/* Including external dependencies */ +#include +#include "LaneID.h" +#include "LaneConnectionID.h" +#include "IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node */ +typedef struct Node { + long id; + LaneID_t *lane; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + IntersectionID_t *intersectionID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_H_ */ +#include diff --git a/vcits/srem/NodeAttributeSet-addGrpC.h b/vcits/srem/NodeAttributeSet-addGrpC.h new file mode 100644 index 0000000..600c875 --- /dev/null +++ b/vcits/srem/NodeAttributeSet-addGrpC.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _NodeAttributeSet_addGrpC_H_ +#define _NodeAttributeSet_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "PtvRequestType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeLink; +struct Node; + +/* NodeAttributeSet-addGrpC */ +typedef struct NodeAttributeSet_addGrpC { + PtvRequestType_t *ptvRequest; /* OPTIONAL */ + struct NodeLink *nodeLink; /* OPTIONAL */ + struct Node *node; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSet_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSet_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSet_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSet_addGrpC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSet_addGrpC_H_ */ +#include diff --git a/vcits/srem/NodeAttributeSetXY.h b/vcits/srem/NodeAttributeSetXY.h new file mode 100644 index 0000000..2497a37 --- /dev/null +++ b/vcits/srem/NodeAttributeSetXY.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _NodeAttributeSetXY_H_ +#define _NodeAttributeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeXYList; +struct SegmentAttributeXYList; +struct LaneDataAttributeList; +struct Reg_NodeAttributeSetXY; + +/* NodeAttributeSetXY */ +typedef struct NodeAttributeSetXY { + struct NodeAttributeXYList *localNode; /* OPTIONAL */ + struct SegmentAttributeXYList *disabled; /* OPTIONAL */ + struct SegmentAttributeXYList *enabled; /* OPTIONAL */ + struct LaneDataAttributeList *data; /* OPTIONAL */ + Offset_B10_t *dWidth; /* OPTIONAL */ + Offset_B10_t *dElevation; /* OPTIONAL */ + struct NodeAttributeSetXY__regional { + A_SEQUENCE_OF(struct Reg_NodeAttributeSetXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSetXY_H_ */ +#include diff --git a/vcits/srem/NodeAttributeXY.h b/vcits/srem/NodeAttributeXY.h new file mode 100644 index 0000000..36e0418 --- /dev/null +++ b/vcits/srem/NodeAttributeXY.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _NodeAttributeXY_H_ +#define _NodeAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeAttributeXY { + NodeAttributeXY_reserved = 0, + NodeAttributeXY_stopLine = 1, + NodeAttributeXY_roundedCapStyleA = 2, + NodeAttributeXY_roundedCapStyleB = 3, + NodeAttributeXY_mergePoint = 4, + NodeAttributeXY_divergePoint = 5, + NodeAttributeXY_downstreamStopLine = 6, + NodeAttributeXY_downstreamStartNode = 7, + NodeAttributeXY_closedToTraffic = 8, + NodeAttributeXY_safeIsland = 9, + NodeAttributeXY_curbPresentAtStepOff = 10, + NodeAttributeXY_hydrantPresent = 11 + /* + * Enumeration is extensible + */ +} e_NodeAttributeXY; + +/* NodeAttributeXY */ +typedef long NodeAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1; +asn_struct_free_f NodeAttributeXY_free; +asn_struct_print_f NodeAttributeXY_print; +asn_constr_check_f NodeAttributeXY_constraint; +ber_type_decoder_f NodeAttributeXY_decode_ber; +der_type_encoder_f NodeAttributeXY_encode_der; +xer_type_decoder_f NodeAttributeXY_decode_xer; +xer_type_encoder_f NodeAttributeXY_encode_xer; +oer_type_decoder_f NodeAttributeXY_decode_oer; +oer_type_encoder_f NodeAttributeXY_encode_oer; +per_type_decoder_f NodeAttributeXY_decode_uper; +per_type_encoder_f NodeAttributeXY_encode_uper; +per_type_decoder_f NodeAttributeXY_decode_aper; +per_type_encoder_f NodeAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXY_H_ */ +#include diff --git a/vcits/srem/NodeAttributeXYList.h b/vcits/srem/NodeAttributeXYList.h new file mode 100644 index 0000000..cecf8cc --- /dev/null +++ b/vcits/srem/NodeAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _NodeAttributeXYList_H_ +#define _NodeAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "NodeAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NodeAttributeXYList */ +typedef struct NodeAttributeXYList { + A_SEQUENCE_OF(NodeAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXYList_H_ */ +#include diff --git a/vcits/srem/NodeLink.h b/vcits/srem/NodeLink.h new file mode 100644 index 0000000..b73a977 --- /dev/null +++ b/vcits/srem/NodeLink.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _NodeLink_H_ +#define _NodeLink_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Node; + +/* NodeLink */ +typedef struct NodeLink { + A_SEQUENCE_OF(struct Node) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeLink_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeLink; +extern asn_SET_OF_specifics_t asn_SPC_NodeLink_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeLink_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeLink_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeLink_H_ */ +#include diff --git a/vcits/srem/NodeListXY.h b/vcits/srem/NodeListXY.h new file mode 100644 index 0000000..37579e6 --- /dev/null +++ b/vcits/srem/NodeListXY.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _NodeListXY_H_ +#define _NodeListXY_H_ + + +#include + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "ComputedLane.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeListXY_PR { + NodeListXY_PR_NOTHING, /* No components present */ + NodeListXY_PR_nodes, + NodeListXY_PR_computed + /* Extensions may appear below */ + +} NodeListXY_PR; + +/* NodeListXY */ +typedef struct NodeListXY { + NodeListXY_PR present; + union NodeListXY_u { + NodeSetXY_t nodes; + ComputedLane_t computed; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeListXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeListXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeListXY_1[2]; +extern asn_per_constraints_t asn_PER_type_NodeListXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeListXY_H_ */ +#include diff --git a/vcits/srem/NodeOffsetPointXY.h b/vcits/srem/NodeOffsetPointXY.h new file mode 100644 index 0000000..7ddfbb0 --- /dev/null +++ b/vcits/srem/NodeOffsetPointXY.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _NodeOffsetPointXY_H_ +#define _NodeOffsetPointXY_H_ + + +#include + +/* Including external dependencies */ +#include "Node-XY-20b.h" +#include "Node-XY-22b.h" +#include "Node-XY-24b.h" +#include "Node-XY-26b.h" +#include "Node-XY-28b.h" +#include "Node-XY-32b.h" +#include "Node-LLmD-64b.h" +#include "RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeOffsetPointXY_PR { + NodeOffsetPointXY_PR_NOTHING, /* No components present */ + NodeOffsetPointXY_PR_node_XY1, + NodeOffsetPointXY_PR_node_XY2, + NodeOffsetPointXY_PR_node_XY3, + NodeOffsetPointXY_PR_node_XY4, + NodeOffsetPointXY_PR_node_XY5, + NodeOffsetPointXY_PR_node_XY6, + NodeOffsetPointXY_PR_node_LatLon, + NodeOffsetPointXY_PR_regional +} NodeOffsetPointXY_PR; + +/* NodeOffsetPointXY */ +typedef struct NodeOffsetPointXY { + NodeOffsetPointXY_PR present; + union NodeOffsetPointXY_u { + Node_XY_20b_t node_XY1; + Node_XY_22b_t node_XY2; + Node_XY_24b_t node_XY3; + Node_XY_26b_t node_XY4; + Node_XY_28b_t node_XY5; + Node_XY_32b_t node_XY6; + Node_LLmD_64b_t node_LatLon; + Reg_NodeOffsetPointXY_t regional; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeOffsetPointXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[8]; +extern asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeOffsetPointXY_H_ */ +#include diff --git a/vcits/srem/NodeSetXY.h b/vcits/srem/NodeSetXY.h new file mode 100644 index 0000000..2d024ba --- /dev/null +++ b/vcits/srem/NodeSetXY.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _NodeSetXY_H_ +#define _NodeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeXY; + +/* NodeSetXY */ +typedef struct NodeSetXY { + A_SEQUENCE_OF(struct NodeXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeSetXY; +extern asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeSetXY_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeSetXY_H_ */ +#include diff --git a/vcits/srem/NodeXY.h b/vcits/srem/NodeXY.h new file mode 100644 index 0000000..823a5f5 --- /dev/null +++ b/vcits/srem/NodeXY.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _NodeXY_H_ +#define _NodeXY_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeSetXY; + +/* NodeXY */ +typedef struct NodeXY { + NodeOffsetPointXY_t delta; + struct NodeAttributeSetXY *attributes; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeXY_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeXY_H_ */ +#include diff --git a/vcits/srem/NumberOfOccupants.h b/vcits/srem/NumberOfOccupants.h new file mode 100644 index 0000000..7b172ea --- /dev/null +++ b/vcits/srem/NumberOfOccupants.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _NumberOfOccupants_H_ +#define _NumberOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NumberOfOccupants { + NumberOfOccupants_oneOccupant = 1, + NumberOfOccupants_unavailable = 127 +} e_NumberOfOccupants; + +/* NumberOfOccupants */ +typedef long NumberOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants; +asn_struct_free_f NumberOfOccupants_free; +asn_struct_print_f NumberOfOccupants_print; +asn_constr_check_f NumberOfOccupants_constraint; +ber_type_decoder_f NumberOfOccupants_decode_ber; +der_type_encoder_f NumberOfOccupants_encode_der; +xer_type_decoder_f NumberOfOccupants_decode_xer; +xer_type_encoder_f NumberOfOccupants_encode_xer; +oer_type_decoder_f NumberOfOccupants_decode_oer; +oer_type_encoder_f NumberOfOccupants_encode_oer; +per_type_decoder_f NumberOfOccupants_decode_uper; +per_type_encoder_f NumberOfOccupants_encode_uper; +per_type_decoder_f NumberOfOccupants_decode_aper; +per_type_encoder_f NumberOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NumberOfOccupants_H_ */ +#include diff --git a/vcits/srem/Offset-B09.h b/vcits/srem/Offset-B09.h new file mode 100644 index 0000000..0abbc96 --- /dev/null +++ b/vcits/srem/Offset-B09.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Offset_B09_H_ +#define _Offset_B09_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B09 */ +typedef long Offset_B09_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B09_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B09; +asn_struct_free_f Offset_B09_free; +asn_struct_print_f Offset_B09_print; +asn_constr_check_f Offset_B09_constraint; +ber_type_decoder_f Offset_B09_decode_ber; +der_type_encoder_f Offset_B09_encode_der; +xer_type_decoder_f Offset_B09_decode_xer; +xer_type_encoder_f Offset_B09_encode_xer; +oer_type_decoder_f Offset_B09_decode_oer; +oer_type_encoder_f Offset_B09_encode_oer; +per_type_decoder_f Offset_B09_decode_uper; +per_type_encoder_f Offset_B09_encode_uper; +per_type_decoder_f Offset_B09_decode_aper; +per_type_encoder_f Offset_B09_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B09_H_ */ +#include diff --git a/vcits/srem/Offset-B10.h b/vcits/srem/Offset-B10.h new file mode 100644 index 0000000..193604d --- /dev/null +++ b/vcits/srem/Offset-B10.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Offset_B10_H_ +#define _Offset_B10_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B10 */ +typedef long Offset_B10_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B10_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B10; +asn_struct_free_f Offset_B10_free; +asn_struct_print_f Offset_B10_print; +asn_constr_check_f Offset_B10_constraint; +ber_type_decoder_f Offset_B10_decode_ber; +der_type_encoder_f Offset_B10_encode_der; +xer_type_decoder_f Offset_B10_decode_xer; +xer_type_encoder_f Offset_B10_encode_xer; +oer_type_decoder_f Offset_B10_decode_oer; +oer_type_encoder_f Offset_B10_encode_oer; +per_type_decoder_f Offset_B10_decode_uper; +per_type_encoder_f Offset_B10_encode_uper; +per_type_decoder_f Offset_B10_decode_aper; +per_type_encoder_f Offset_B10_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B10_H_ */ +#include diff --git a/vcits/srem/Offset-B11.h b/vcits/srem/Offset-B11.h new file mode 100644 index 0000000..da100b7 --- /dev/null +++ b/vcits/srem/Offset-B11.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Offset_B11_H_ +#define _Offset_B11_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B11 */ +typedef long Offset_B11_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B11_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B11; +asn_struct_free_f Offset_B11_free; +asn_struct_print_f Offset_B11_print; +asn_constr_check_f Offset_B11_constraint; +ber_type_decoder_f Offset_B11_decode_ber; +der_type_encoder_f Offset_B11_encode_der; +xer_type_decoder_f Offset_B11_decode_xer; +xer_type_encoder_f Offset_B11_encode_xer; +oer_type_decoder_f Offset_B11_decode_oer; +oer_type_encoder_f Offset_B11_encode_oer; +per_type_decoder_f Offset_B11_decode_uper; +per_type_encoder_f Offset_B11_encode_uper; +per_type_decoder_f Offset_B11_decode_aper; +per_type_encoder_f Offset_B11_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B11_H_ */ +#include diff --git a/vcits/srem/Offset-B12.h b/vcits/srem/Offset-B12.h new file mode 100644 index 0000000..ab66847 --- /dev/null +++ b/vcits/srem/Offset-B12.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Offset_B12_H_ +#define _Offset_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B12 */ +typedef long Offset_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B12; +asn_struct_free_f Offset_B12_free; +asn_struct_print_f Offset_B12_print; +asn_constr_check_f Offset_B12_constraint; +ber_type_decoder_f Offset_B12_decode_ber; +der_type_encoder_f Offset_B12_encode_der; +xer_type_decoder_f Offset_B12_decode_xer; +xer_type_encoder_f Offset_B12_encode_xer; +oer_type_decoder_f Offset_B12_decode_oer; +oer_type_encoder_f Offset_B12_encode_oer; +per_type_decoder_f Offset_B12_decode_uper; +per_type_encoder_f Offset_B12_encode_uper; +per_type_decoder_f Offset_B12_decode_aper; +per_type_encoder_f Offset_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B12_H_ */ +#include diff --git a/vcits/srem/Offset-B13.h b/vcits/srem/Offset-B13.h new file mode 100644 index 0000000..4310cf3 --- /dev/null +++ b/vcits/srem/Offset-B13.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Offset_B13_H_ +#define _Offset_B13_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B13 */ +typedef long Offset_B13_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B13_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B13; +asn_struct_free_f Offset_B13_free; +asn_struct_print_f Offset_B13_print; +asn_constr_check_f Offset_B13_constraint; +ber_type_decoder_f Offset_B13_decode_ber; +der_type_encoder_f Offset_B13_encode_der; +xer_type_decoder_f Offset_B13_decode_xer; +xer_type_encoder_f Offset_B13_encode_xer; +oer_type_decoder_f Offset_B13_decode_oer; +oer_type_encoder_f Offset_B13_encode_oer; +per_type_decoder_f Offset_B13_decode_uper; +per_type_encoder_f Offset_B13_encode_uper; +per_type_decoder_f Offset_B13_decode_aper; +per_type_encoder_f Offset_B13_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B13_H_ */ +#include diff --git a/vcits/srem/Offset-B14.h b/vcits/srem/Offset-B14.h new file mode 100644 index 0000000..be8a8fe --- /dev/null +++ b/vcits/srem/Offset-B14.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Offset_B14_H_ +#define _Offset_B14_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B14 */ +typedef long Offset_B14_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B14_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B14; +asn_struct_free_f Offset_B14_free; +asn_struct_print_f Offset_B14_print; +asn_constr_check_f Offset_B14_constraint; +ber_type_decoder_f Offset_B14_decode_ber; +der_type_encoder_f Offset_B14_encode_der; +xer_type_decoder_f Offset_B14_decode_xer; +xer_type_encoder_f Offset_B14_encode_xer; +oer_type_decoder_f Offset_B14_decode_oer; +oer_type_encoder_f Offset_B14_encode_oer; +per_type_decoder_f Offset_B14_decode_uper; +per_type_encoder_f Offset_B14_encode_uper; +per_type_decoder_f Offset_B14_decode_aper; +per_type_encoder_f Offset_B14_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B14_H_ */ +#include diff --git a/vcits/srem/Offset-B16.h b/vcits/srem/Offset-B16.h new file mode 100644 index 0000000..ff44d29 --- /dev/null +++ b/vcits/srem/Offset-B16.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Offset_B16_H_ +#define _Offset_B16_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B16 */ +typedef long Offset_B16_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B16_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B16; +asn_struct_free_f Offset_B16_free; +asn_struct_print_f Offset_B16_print; +asn_constr_check_f Offset_B16_constraint; +ber_type_decoder_f Offset_B16_decode_ber; +der_type_encoder_f Offset_B16_encode_der; +xer_type_decoder_f Offset_B16_decode_xer; +xer_type_encoder_f Offset_B16_encode_xer; +oer_type_decoder_f Offset_B16_decode_oer; +oer_type_encoder_f Offset_B16_encode_oer; +per_type_decoder_f Offset_B16_decode_uper; +per_type_encoder_f Offset_B16_encode_uper; +per_type_decoder_f Offset_B16_decode_aper; +per_type_encoder_f Offset_B16_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B16_H_ */ +#include diff --git a/vcits/srem/OpeningDaysHours.h b/vcits/srem/OpeningDaysHours.h new file mode 100644 index 0000000..3a36685 --- /dev/null +++ b/vcits/srem/OpeningDaysHours.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _OpeningDaysHours_H_ +#define _OpeningDaysHours_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OpeningDaysHours */ +typedef UTF8String_t OpeningDaysHours_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours; +asn_struct_free_f OpeningDaysHours_free; +asn_struct_print_f OpeningDaysHours_print; +asn_constr_check_f OpeningDaysHours_constraint; +ber_type_decoder_f OpeningDaysHours_decode_ber; +der_type_encoder_f OpeningDaysHours_encode_der; +xer_type_decoder_f OpeningDaysHours_decode_xer; +xer_type_encoder_f OpeningDaysHours_encode_xer; +oer_type_decoder_f OpeningDaysHours_decode_oer; +oer_type_encoder_f OpeningDaysHours_encode_oer; +per_type_decoder_f OpeningDaysHours_decode_uper; +per_type_encoder_f OpeningDaysHours_encode_uper; +per_type_decoder_f OpeningDaysHours_decode_aper; +per_type_encoder_f OpeningDaysHours_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OpeningDaysHours_H_ */ +#include diff --git a/vcits/srem/OverlayLaneList.h b/vcits/srem/OverlayLaneList.h new file mode 100644 index 0000000..a2b51a1 --- /dev/null +++ b/vcits/srem/OverlayLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _OverlayLaneList_H_ +#define _OverlayLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OverlayLaneList */ +typedef struct OverlayLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} OverlayLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OverlayLaneList; +extern asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_OverlayLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _OverlayLaneList_H_ */ +#include diff --git a/vcits/srem/PathDeltaTime.h b/vcits/srem/PathDeltaTime.h new file mode 100644 index 0000000..0f9a020 --- /dev/null +++ b/vcits/srem/PathDeltaTime.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PathDeltaTime_H_ +#define _PathDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PathDeltaTime { + PathDeltaTime_tenMilliSecondsInPast = 1 +} e_PathDeltaTime; + +/* PathDeltaTime */ +typedef long PathDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PathDeltaTime; +asn_struct_free_f PathDeltaTime_free; +asn_struct_print_f PathDeltaTime_print; +asn_constr_check_f PathDeltaTime_constraint; +ber_type_decoder_f PathDeltaTime_decode_ber; +der_type_encoder_f PathDeltaTime_encode_der; +xer_type_decoder_f PathDeltaTime_decode_xer; +xer_type_encoder_f PathDeltaTime_encode_xer; +oer_type_decoder_f PathDeltaTime_decode_oer; +oer_type_encoder_f PathDeltaTime_encode_oer; +per_type_decoder_f PathDeltaTime_decode_uper; +per_type_encoder_f PathDeltaTime_encode_uper; +per_type_decoder_f PathDeltaTime_decode_aper; +per_type_encoder_f PathDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathDeltaTime_H_ */ +#include diff --git a/vcits/srem/PathHistory.h b/vcits/srem/PathHistory.h new file mode 100644 index 0000000..2afea0c --- /dev/null +++ b/vcits/srem/PathHistory.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PathHistory_H_ +#define _PathHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathPoint; + +/* PathHistory */ +typedef struct PathHistory { + A_SEQUENCE_OF(struct PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathHistory; +extern asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_PathHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_PathHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathHistory_H_ */ +#include diff --git a/vcits/srem/PathPoint.h b/vcits/srem/PathPoint.h new file mode 100644 index 0000000..b134b4e --- /dev/null +++ b/vcits/srem/PathPoint.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PathPoint_H_ +#define _PathPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PathPoint */ +typedef struct PathPoint { + DeltaReferencePosition_t pathPosition; + PathDeltaTime_t *pathDeltaTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_PathPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathPoint_H_ */ +#include diff --git a/vcits/srem/PedestrianBicycleDetect.h b/vcits/srem/PedestrianBicycleDetect.h new file mode 100644 index 0000000..39049a4 --- /dev/null +++ b/vcits/srem/PedestrianBicycleDetect.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PedestrianBicycleDetect_H_ +#define _PedestrianBicycleDetect_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PedestrianBicycleDetect */ +typedef BOOLEAN_t PedestrianBicycleDetect_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect; +asn_struct_free_f PedestrianBicycleDetect_free; +asn_struct_print_f PedestrianBicycleDetect_print; +asn_constr_check_f PedestrianBicycleDetect_constraint; +ber_type_decoder_f PedestrianBicycleDetect_decode_ber; +der_type_encoder_f PedestrianBicycleDetect_encode_der; +xer_type_decoder_f PedestrianBicycleDetect_decode_xer; +xer_type_encoder_f PedestrianBicycleDetect_encode_xer; +oer_type_decoder_f PedestrianBicycleDetect_decode_oer; +oer_type_encoder_f PedestrianBicycleDetect_encode_oer; +per_type_decoder_f PedestrianBicycleDetect_decode_uper; +per_type_encoder_f PedestrianBicycleDetect_encode_uper; +per_type_decoder_f PedestrianBicycleDetect_decode_aper; +per_type_encoder_f PedestrianBicycleDetect_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PedestrianBicycleDetect_H_ */ +#include diff --git a/vcits/srem/PerformanceClass.h b/vcits/srem/PerformanceClass.h new file mode 100644 index 0000000..21b7f55 --- /dev/null +++ b/vcits/srem/PerformanceClass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PerformanceClass_H_ +#define _PerformanceClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PerformanceClass { + PerformanceClass_unavailable = 0, + PerformanceClass_performanceClassA = 1, + PerformanceClass_performanceClassB = 2 +} e_PerformanceClass; + +/* PerformanceClass */ +typedef long PerformanceClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PerformanceClass; +asn_struct_free_f PerformanceClass_free; +asn_struct_print_f PerformanceClass_print; +asn_constr_check_f PerformanceClass_constraint; +ber_type_decoder_f PerformanceClass_decode_ber; +der_type_encoder_f PerformanceClass_encode_der; +xer_type_decoder_f PerformanceClass_decode_xer; +xer_type_encoder_f PerformanceClass_encode_xer; +oer_type_decoder_f PerformanceClass_decode_oer; +oer_type_encoder_f PerformanceClass_encode_oer; +per_type_decoder_f PerformanceClass_decode_uper; +per_type_encoder_f PerformanceClass_encode_uper; +per_type_decoder_f PerformanceClass_decode_aper; +per_type_encoder_f PerformanceClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PerformanceClass_H_ */ +#include diff --git a/vcits/srem/PhoneNumber.h b/vcits/srem/PhoneNumber.h new file mode 100644 index 0000000..54bb47b --- /dev/null +++ b/vcits/srem/PhoneNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PhoneNumber_H_ +#define _PhoneNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PhoneNumber */ +typedef NumericString_t PhoneNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PhoneNumber; +asn_struct_free_f PhoneNumber_free; +asn_struct_print_f PhoneNumber_print; +asn_constr_check_f PhoneNumber_constraint; +ber_type_decoder_f PhoneNumber_decode_ber; +der_type_encoder_f PhoneNumber_encode_der; +xer_type_decoder_f PhoneNumber_decode_xer; +xer_type_encoder_f PhoneNumber_encode_xer; +oer_type_decoder_f PhoneNumber_decode_oer; +oer_type_encoder_f PhoneNumber_encode_oer; +per_type_decoder_f PhoneNumber_decode_uper; +per_type_encoder_f PhoneNumber_encode_uper; +per_type_decoder_f PhoneNumber_decode_aper; +per_type_encoder_f PhoneNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PhoneNumber_H_ */ +#include diff --git a/vcits/srem/PosCentMass.h b/vcits/srem/PosCentMass.h new file mode 100644 index 0000000..ec03f4b --- /dev/null +++ b/vcits/srem/PosCentMass.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PosCentMass_H_ +#define _PosCentMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosCentMass { + PosCentMass_tenCentimeters = 1, + PosCentMass_unavailable = 63 +} e_PosCentMass; + +/* PosCentMass */ +typedef long PosCentMass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosCentMass; +asn_struct_free_f PosCentMass_free; +asn_struct_print_f PosCentMass_print; +asn_constr_check_f PosCentMass_constraint; +ber_type_decoder_f PosCentMass_decode_ber; +der_type_encoder_f PosCentMass_encode_der; +xer_type_decoder_f PosCentMass_decode_xer; +xer_type_encoder_f PosCentMass_encode_xer; +oer_type_decoder_f PosCentMass_decode_oer; +oer_type_encoder_f PosCentMass_encode_oer; +per_type_decoder_f PosCentMass_decode_uper; +per_type_encoder_f PosCentMass_encode_uper; +per_type_decoder_f PosCentMass_decode_aper; +per_type_encoder_f PosCentMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosCentMass_H_ */ +#include diff --git a/vcits/srem/PosConfidenceEllipse.h b/vcits/srem/PosConfidenceEllipse.h new file mode 100644 index 0000000..835020a --- /dev/null +++ b/vcits/srem/PosConfidenceEllipse.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PosConfidenceEllipse_H_ +#define _PosConfidenceEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "SemiAxisLength.h" +#include "HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PosConfidenceEllipse */ +typedef struct PosConfidenceEllipse { + SemiAxisLength_t semiMajorConfidence; + SemiAxisLength_t semiMinorConfidence; + HeadingValue_t semiMajorOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PosConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosConfidenceEllipse_H_ */ +#include diff --git a/vcits/srem/PosFrontAx.h b/vcits/srem/PosFrontAx.h new file mode 100644 index 0000000..51eae1d --- /dev/null +++ b/vcits/srem/PosFrontAx.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PosFrontAx_H_ +#define _PosFrontAx_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosFrontAx { + PosFrontAx_tenCentimeters = 1, + PosFrontAx_unavailable = 20 +} e_PosFrontAx; + +/* PosFrontAx */ +typedef long PosFrontAx_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosFrontAx; +asn_struct_free_f PosFrontAx_free; +asn_struct_print_f PosFrontAx_print; +asn_constr_check_f PosFrontAx_constraint; +ber_type_decoder_f PosFrontAx_decode_ber; +der_type_encoder_f PosFrontAx_encode_der; +xer_type_decoder_f PosFrontAx_decode_xer; +xer_type_encoder_f PosFrontAx_encode_xer; +oer_type_decoder_f PosFrontAx_decode_oer; +oer_type_encoder_f PosFrontAx_encode_oer; +per_type_decoder_f PosFrontAx_decode_uper; +per_type_encoder_f PosFrontAx_encode_uper; +per_type_decoder_f PosFrontAx_decode_aper; +per_type_encoder_f PosFrontAx_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosFrontAx_H_ */ +#include diff --git a/vcits/srem/PosLonCarr.h b/vcits/srem/PosLonCarr.h new file mode 100644 index 0000000..5c2d1a6 --- /dev/null +++ b/vcits/srem/PosLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PosLonCarr_H_ +#define _PosLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosLonCarr { + PosLonCarr_oneCentimeter = 1, + PosLonCarr_unavailable = 127 +} e_PosLonCarr; + +/* PosLonCarr */ +typedef long PosLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosLonCarr; +asn_struct_free_f PosLonCarr_free; +asn_struct_print_f PosLonCarr_print; +asn_constr_check_f PosLonCarr_constraint; +ber_type_decoder_f PosLonCarr_decode_ber; +der_type_encoder_f PosLonCarr_encode_der; +xer_type_decoder_f PosLonCarr_decode_xer; +xer_type_encoder_f PosLonCarr_encode_xer; +oer_type_decoder_f PosLonCarr_decode_oer; +oer_type_encoder_f PosLonCarr_encode_oer; +per_type_decoder_f PosLonCarr_decode_uper; +per_type_encoder_f PosLonCarr_encode_uper; +per_type_decoder_f PosLonCarr_decode_aper; +per_type_encoder_f PosLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosLonCarr_H_ */ +#include diff --git a/vcits/srem/PosPillar.h b/vcits/srem/PosPillar.h new file mode 100644 index 0000000..e558a50 --- /dev/null +++ b/vcits/srem/PosPillar.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PosPillar_H_ +#define _PosPillar_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosPillar { + PosPillar_tenCentimeters = 1, + PosPillar_unavailable = 30 +} e_PosPillar; + +/* PosPillar */ +typedef long PosPillar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PosPillar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PosPillar; +asn_struct_free_f PosPillar_free; +asn_struct_print_f PosPillar_print; +asn_constr_check_f PosPillar_constraint; +ber_type_decoder_f PosPillar_decode_ber; +der_type_encoder_f PosPillar_encode_der; +xer_type_decoder_f PosPillar_decode_xer; +xer_type_encoder_f PosPillar_encode_xer; +oer_type_decoder_f PosPillar_decode_oer; +oer_type_encoder_f PosPillar_encode_oer; +per_type_decoder_f PosPillar_decode_uper; +per_type_encoder_f PosPillar_encode_uper; +per_type_decoder_f PosPillar_decode_aper; +per_type_encoder_f PosPillar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosPillar_H_ */ +#include diff --git a/vcits/srem/Position3D-addGrpC.h b/vcits/srem/Position3D-addGrpC.h new file mode 100644 index 0000000..fd85c72 --- /dev/null +++ b/vcits/srem/Position3D-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Position3D_addGrpC_H_ +#define _Position3D_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Position3D-addGrpC */ +typedef struct Position3D_addGrpC { + Altitude_t altitude; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_addGrpC_H_ */ +#include diff --git a/vcits/srem/Position3D.h b/vcits/srem/Position3D.h new file mode 100644 index 0000000..9e82229 --- /dev/null +++ b/vcits/srem/Position3D.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Position3D_H_ +#define _Position3D_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "Elevation.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_Position3D; + +/* Position3D */ +typedef struct Position3D { + Latitude_t lat; + Longitude_t Long; + Elevation_t *elevation; /* OPTIONAL */ + struct Position3D__regional { + A_SEQUENCE_OF(struct Reg_Position3D) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_H_ */ +#include diff --git a/vcits/srem/PositionConfidence.h b/vcits/srem/PositionConfidence.h new file mode 100644 index 0000000..9b73835 --- /dev/null +++ b/vcits/srem/PositionConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PositionConfidence_H_ +#define _PositionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionConfidence { + PositionConfidence_unavailable = 0, + PositionConfidence_a500m = 1, + PositionConfidence_a200m = 2, + PositionConfidence_a100m = 3, + PositionConfidence_a50m = 4, + PositionConfidence_a20m = 5, + PositionConfidence_a10m = 6, + PositionConfidence_a5m = 7, + PositionConfidence_a2m = 8, + PositionConfidence_a1m = 9, + PositionConfidence_a50cm = 10, + PositionConfidence_a20cm = 11, + PositionConfidence_a10cm = 12, + PositionConfidence_a5cm = 13, + PositionConfidence_a2cm = 14, + PositionConfidence_a1cm = 15 +} e_PositionConfidence; + +/* PositionConfidence */ +typedef long PositionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1; +asn_struct_free_f PositionConfidence_free; +asn_struct_print_f PositionConfidence_print; +asn_constr_check_f PositionConfidence_constraint; +ber_type_decoder_f PositionConfidence_decode_ber; +der_type_encoder_f PositionConfidence_encode_der; +xer_type_decoder_f PositionConfidence_decode_xer; +xer_type_encoder_f PositionConfidence_encode_xer; +oer_type_decoder_f PositionConfidence_decode_oer; +oer_type_encoder_f PositionConfidence_encode_oer; +per_type_decoder_f PositionConfidence_decode_uper; +per_type_encoder_f PositionConfidence_encode_uper; +per_type_decoder_f PositionConfidence_decode_aper; +per_type_encoder_f PositionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidence_H_ */ +#include diff --git a/vcits/srem/PositionConfidenceSet.h b/vcits/srem/PositionConfidenceSet.h new file mode 100644 index 0000000..640deba --- /dev/null +++ b/vcits/srem/PositionConfidenceSet.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PositionConfidenceSet_H_ +#define _PositionConfidenceSet_H_ + + +#include + +/* Including external dependencies */ +#include "PositionConfidence.h" +#include "ElevationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionConfidenceSet */ +typedef struct PositionConfidenceSet { + PositionConfidence_t pos; + ElevationConfidence_t elevation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionConfidenceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidenceSet_H_ */ +#include diff --git a/vcits/srem/PositionOfOccupants.h b/vcits/srem/PositionOfOccupants.h new file mode 100644 index 0000000..721f9c5 --- /dev/null +++ b/vcits/srem/PositionOfOccupants.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PositionOfOccupants_H_ +#define _PositionOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionOfOccupants { + PositionOfOccupants_row1LeftOccupied = 0, + PositionOfOccupants_row1RightOccupied = 1, + PositionOfOccupants_row1MidOccupied = 2, + PositionOfOccupants_row1NotDetectable = 3, + PositionOfOccupants_row1NotPresent = 4, + PositionOfOccupants_row2LeftOccupied = 5, + PositionOfOccupants_row2RightOccupied = 6, + PositionOfOccupants_row2MidOccupied = 7, + PositionOfOccupants_row2NotDetectable = 8, + PositionOfOccupants_row2NotPresent = 9, + PositionOfOccupants_row3LeftOccupied = 10, + PositionOfOccupants_row3RightOccupied = 11, + PositionOfOccupants_row3MidOccupied = 12, + PositionOfOccupants_row3NotDetectable = 13, + PositionOfOccupants_row3NotPresent = 14, + PositionOfOccupants_row4LeftOccupied = 15, + PositionOfOccupants_row4RightOccupied = 16, + PositionOfOccupants_row4MidOccupied = 17, + PositionOfOccupants_row4NotDetectable = 18, + PositionOfOccupants_row4NotPresent = 19 +} e_PositionOfOccupants; + +/* PositionOfOccupants */ +typedef BIT_STRING_t PositionOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants; +asn_struct_free_f PositionOfOccupants_free; +asn_struct_print_f PositionOfOccupants_print; +asn_constr_check_f PositionOfOccupants_constraint; +ber_type_decoder_f PositionOfOccupants_decode_ber; +der_type_encoder_f PositionOfOccupants_encode_der; +xer_type_decoder_f PositionOfOccupants_decode_xer; +xer_type_encoder_f PositionOfOccupants_encode_xer; +oer_type_decoder_f PositionOfOccupants_decode_oer; +oer_type_encoder_f PositionOfOccupants_encode_oer; +per_type_decoder_f PositionOfOccupants_decode_uper; +per_type_encoder_f PositionOfOccupants_encode_uper; +per_type_decoder_f PositionOfOccupants_decode_aper; +per_type_encoder_f PositionOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfOccupants_H_ */ +#include diff --git a/vcits/srem/PositionOfPillars.h b/vcits/srem/PositionOfPillars.h new file mode 100644 index 0000000..37edb03 --- /dev/null +++ b/vcits/srem/PositionOfPillars.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PositionOfPillars_H_ +#define _PositionOfPillars_H_ + + +#include + +/* Including external dependencies */ +#include "PosPillar.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionOfPillars */ +typedef struct PositionOfPillars { + A_SEQUENCE_OF(PosPillar_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionOfPillars_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfPillars; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfPillars_H_ */ +#include diff --git a/vcits/srem/PositionalAccuracy.h b/vcits/srem/PositionalAccuracy.h new file mode 100644 index 0000000..f16b713 --- /dev/null +++ b/vcits/srem/PositionalAccuracy.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PositionalAccuracy_H_ +#define _PositionalAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include "SemiMajorAxisAccuracy.h" +#include "SemiMinorAxisAccuracy.h" +#include "SemiMajorAxisOrientation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionalAccuracy */ +typedef struct PositionalAccuracy { + SemiMajorAxisAccuracy_t semiMajor; + SemiMinorAxisAccuracy_t semiMinor; + SemiMajorAxisOrientation_t orientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionalAccuracy_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionalAccuracy_H_ */ +#include diff --git a/vcits/srem/PositioningSolutionType.h b/vcits/srem/PositioningSolutionType.h new file mode 100644 index 0000000..606bfb0 --- /dev/null +++ b/vcits/srem/PositioningSolutionType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PositioningSolutionType_H_ +#define _PositioningSolutionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositioningSolutionType { + PositioningSolutionType_noPositioningSolution = 0, + PositioningSolutionType_sGNSS = 1, + PositioningSolutionType_dGNSS = 2, + PositioningSolutionType_sGNSSplusDR = 3, + PositioningSolutionType_dGNSSplusDR = 4, + PositioningSolutionType_dR = 5 + /* + * Enumeration is extensible + */ +} e_PositioningSolutionType; + +/* PositioningSolutionType */ +typedef long PositioningSolutionType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType; +asn_struct_free_f PositioningSolutionType_free; +asn_struct_print_f PositioningSolutionType_print; +asn_constr_check_f PositioningSolutionType_constraint; +ber_type_decoder_f PositioningSolutionType_decode_ber; +der_type_encoder_f PositioningSolutionType_encode_der; +xer_type_decoder_f PositioningSolutionType_decode_xer; +xer_type_encoder_f PositioningSolutionType_encode_xer; +oer_type_decoder_f PositioningSolutionType_decode_oer; +oer_type_encoder_f PositioningSolutionType_encode_oer; +per_type_decoder_f PositioningSolutionType_decode_uper; +per_type_encoder_f PositioningSolutionType_encode_uper; +per_type_decoder_f PositioningSolutionType_decode_aper; +per_type_encoder_f PositioningSolutionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositioningSolutionType_H_ */ +#include diff --git a/vcits/srem/PostCrashSubCauseCode.h b/vcits/srem/PostCrashSubCauseCode.h new file mode 100644 index 0000000..f331fb0 --- /dev/null +++ b/vcits/srem/PostCrashSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PostCrashSubCauseCode_H_ +#define _PostCrashSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PostCrashSubCauseCode { + PostCrashSubCauseCode_unavailable = 0, + PostCrashSubCauseCode_accidentWithoutECallTriggered = 1, + PostCrashSubCauseCode_accidentWithECallManuallyTriggered = 2, + PostCrashSubCauseCode_accidentWithECallAutomaticallyTriggered = 3, + PostCrashSubCauseCode_accidentWithECallTriggeredWithoutAccessToCellularNetwork = 4 +} e_PostCrashSubCauseCode; + +/* PostCrashSubCauseCode */ +typedef long PostCrashSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode; +asn_struct_free_f PostCrashSubCauseCode_free; +asn_struct_print_f PostCrashSubCauseCode_print; +asn_constr_check_f PostCrashSubCauseCode_constraint; +ber_type_decoder_f PostCrashSubCauseCode_decode_ber; +der_type_encoder_f PostCrashSubCauseCode_encode_der; +xer_type_decoder_f PostCrashSubCauseCode_decode_xer; +xer_type_encoder_f PostCrashSubCauseCode_encode_xer; +oer_type_decoder_f PostCrashSubCauseCode_decode_oer; +oer_type_encoder_f PostCrashSubCauseCode_encode_oer; +per_type_decoder_f PostCrashSubCauseCode_decode_uper; +per_type_encoder_f PostCrashSubCauseCode_encode_uper; +per_type_decoder_f PostCrashSubCauseCode_decode_aper; +per_type_encoder_f PostCrashSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PostCrashSubCauseCode_H_ */ +#include diff --git a/vcits/srem/PreemptPriorityList.h b/vcits/srem/PreemptPriorityList.h new file mode 100644 index 0000000..ba42344 --- /dev/null +++ b/vcits/srem/PreemptPriorityList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PreemptPriorityList_H_ +#define _PreemptPriorityList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalControlZone; + +/* PreemptPriorityList */ +typedef struct PreemptPriorityList { + A_SEQUENCE_OF(struct SignalControlZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PreemptPriorityList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList; +extern asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1; +extern asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[1]; +extern asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PreemptPriorityList_H_ */ +#include diff --git a/vcits/srem/PrioritizationResponse.h b/vcits/srem/PrioritizationResponse.h new file mode 100644 index 0000000..976bd5a --- /dev/null +++ b/vcits/srem/PrioritizationResponse.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PrioritizationResponse_H_ +#define _PrioritizationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "PrioritizationResponseStatus.h" +#include "SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PrioritizationResponse */ +typedef struct PrioritizationResponse { + StationID_t stationID; + PrioritizationResponseStatus_t priorState; + SignalGroupID_t signalGroup; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponse_H_ */ +#include diff --git a/vcits/srem/PrioritizationResponseList.h b/vcits/srem/PrioritizationResponseList.h new file mode 100644 index 0000000..91b8885 --- /dev/null +++ b/vcits/srem/PrioritizationResponseList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PrioritizationResponseList_H_ +#define _PrioritizationResponseList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponse; + +/* PrioritizationResponseList */ +typedef struct PrioritizationResponseList { + A_SEQUENCE_OF(struct PrioritizationResponse) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList; +extern asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[1]; +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseList_H_ */ +#include diff --git a/vcits/srem/PrioritizationResponseStatus.h b/vcits/srem/PrioritizationResponseStatus.h new file mode 100644 index 0000000..371f852 --- /dev/null +++ b/vcits/srem/PrioritizationResponseStatus.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PrioritizationResponseStatus_H_ +#define _PrioritizationResponseStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PrioritizationResponseStatus { + PrioritizationResponseStatus_unknown = 0, + PrioritizationResponseStatus_requested = 1, + PrioritizationResponseStatus_processing = 2, + PrioritizationResponseStatus_watchOtherTraffic = 3, + PrioritizationResponseStatus_granted = 4, + PrioritizationResponseStatus_rejected = 5, + PrioritizationResponseStatus_maxPresence = 6, + PrioritizationResponseStatus_reserviceLocked = 7 + /* + * Enumeration is extensible + */ +} e_PrioritizationResponseStatus; + +/* PrioritizationResponseStatus */ +typedef long PrioritizationResponseStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus; +extern const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1; +asn_struct_free_f PrioritizationResponseStatus_free; +asn_struct_print_f PrioritizationResponseStatus_print; +asn_constr_check_f PrioritizationResponseStatus_constraint; +ber_type_decoder_f PrioritizationResponseStatus_decode_ber; +der_type_encoder_f PrioritizationResponseStatus_encode_der; +xer_type_decoder_f PrioritizationResponseStatus_decode_xer; +xer_type_encoder_f PrioritizationResponseStatus_encode_xer; +oer_type_decoder_f PrioritizationResponseStatus_decode_oer; +oer_type_encoder_f PrioritizationResponseStatus_encode_oer; +per_type_decoder_f PrioritizationResponseStatus_decode_uper; +per_type_encoder_f PrioritizationResponseStatus_encode_uper; +per_type_decoder_f PrioritizationResponseStatus_decode_aper; +per_type_encoder_f PrioritizationResponseStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseStatus_H_ */ +#include diff --git a/vcits/srem/PriorityRequestType.h b/vcits/srem/PriorityRequestType.h new file mode 100644 index 0000000..9dbaf67 --- /dev/null +++ b/vcits/srem/PriorityRequestType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PriorityRequestType_H_ +#define _PriorityRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PriorityRequestType { + PriorityRequestType_priorityRequestTypeReserved = 0, + PriorityRequestType_priorityRequest = 1, + PriorityRequestType_priorityRequestUpdate = 2, + PriorityRequestType_priorityCancellation = 3 + /* + * Enumeration is extensible + */ +} e_PriorityRequestType; + +/* PriorityRequestType */ +typedef long PriorityRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PriorityRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1; +asn_struct_free_f PriorityRequestType_free; +asn_struct_print_f PriorityRequestType_print; +asn_constr_check_f PriorityRequestType_constraint; +ber_type_decoder_f PriorityRequestType_decode_ber; +der_type_encoder_f PriorityRequestType_encode_der; +xer_type_decoder_f PriorityRequestType_decode_xer; +xer_type_encoder_f PriorityRequestType_encode_xer; +oer_type_decoder_f PriorityRequestType_decode_oer; +oer_type_encoder_f PriorityRequestType_encode_oer; +per_type_decoder_f PriorityRequestType_decode_uper; +per_type_encoder_f PriorityRequestType_encode_uper; +per_type_decoder_f PriorityRequestType_decode_aper; +per_type_encoder_f PriorityRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PriorityRequestType_H_ */ +#include diff --git a/vcits/srem/ProtectedCommunicationZone.h b/vcits/srem/ProtectedCommunicationZone.h new file mode 100644 index 0000000..50000e0 --- /dev/null +++ b/vcits/srem/ProtectedCommunicationZone.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ProtectedCommunicationZone_H_ +#define _ProtectedCommunicationZone_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneType.h" +#include "TimestampIts.h" +#include "Latitude.h" +#include "Longitude.h" +#include "ProtectedZoneRadius.h" +#include "ProtectedZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedCommunicationZone */ +typedef struct ProtectedCommunicationZone { + ProtectedZoneType_t protectedZoneType; + TimestampIts_t *expiryTime; /* OPTIONAL */ + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + ProtectedZoneRadius_t *protectedZoneRadius; /* OPTIONAL */ + ProtectedZoneID_t *protectedZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone; +extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZone_H_ */ +#include diff --git a/vcits/srem/ProtectedCommunicationZonesRSU.h b/vcits/srem/ProtectedCommunicationZonesRSU.h new file mode 100644 index 0000000..e58608b --- /dev/null +++ b/vcits/srem/ProtectedCommunicationZonesRSU.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ProtectedCommunicationZonesRSU_H_ +#define _ProtectedCommunicationZonesRSU_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtectedCommunicationZone; + +/* ProtectedCommunicationZonesRSU */ +typedef struct ProtectedCommunicationZonesRSU { + A_SEQUENCE_OF(struct ProtectedCommunicationZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZonesRSU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZonesRSU_H_ */ +#include diff --git a/vcits/srem/ProtectedZoneID.h b/vcits/srem/ProtectedZoneID.h new file mode 100644 index 0000000..5d7fb94 --- /dev/null +++ b/vcits/srem/ProtectedZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ProtectedZoneID_H_ +#define _ProtectedZoneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedZoneID */ +typedef long ProtectedZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID; +asn_struct_free_f ProtectedZoneID_free; +asn_struct_print_f ProtectedZoneID_print; +asn_constr_check_f ProtectedZoneID_constraint; +ber_type_decoder_f ProtectedZoneID_decode_ber; +der_type_encoder_f ProtectedZoneID_encode_der; +xer_type_decoder_f ProtectedZoneID_decode_xer; +xer_type_encoder_f ProtectedZoneID_encode_xer; +oer_type_decoder_f ProtectedZoneID_decode_oer; +oer_type_encoder_f ProtectedZoneID_encode_oer; +per_type_decoder_f ProtectedZoneID_decode_uper; +per_type_encoder_f ProtectedZoneID_encode_uper; +per_type_decoder_f ProtectedZoneID_decode_aper; +per_type_encoder_f ProtectedZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneID_H_ */ +#include diff --git a/vcits/srem/ProtectedZoneRadius.h b/vcits/srem/ProtectedZoneRadius.h new file mode 100644 index 0000000..adc457a --- /dev/null +++ b/vcits/srem/ProtectedZoneRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ProtectedZoneRadius_H_ +#define _ProtectedZoneRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneRadius { + ProtectedZoneRadius_oneMeter = 1 +} e_ProtectedZoneRadius; + +/* ProtectedZoneRadius */ +typedef long ProtectedZoneRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius; +asn_struct_free_f ProtectedZoneRadius_free; +asn_struct_print_f ProtectedZoneRadius_print; +asn_constr_check_f ProtectedZoneRadius_constraint; +ber_type_decoder_f ProtectedZoneRadius_decode_ber; +der_type_encoder_f ProtectedZoneRadius_encode_der; +xer_type_decoder_f ProtectedZoneRadius_decode_xer; +xer_type_encoder_f ProtectedZoneRadius_encode_xer; +oer_type_decoder_f ProtectedZoneRadius_decode_oer; +oer_type_encoder_f ProtectedZoneRadius_encode_oer; +per_type_decoder_f ProtectedZoneRadius_decode_uper; +per_type_encoder_f ProtectedZoneRadius_encode_uper; +per_type_decoder_f ProtectedZoneRadius_decode_aper; +per_type_encoder_f ProtectedZoneRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneRadius_H_ */ +#include diff --git a/vcits/srem/ProtectedZoneType.h b/vcits/srem/ProtectedZoneType.h new file mode 100644 index 0000000..5b1d700 --- /dev/null +++ b/vcits/srem/ProtectedZoneType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ProtectedZoneType_H_ +#define _ProtectedZoneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneType { + ProtectedZoneType_permanentCenDsrcTolling = 0, + /* + * Enumeration is extensible + */ + ProtectedZoneType_temporaryCenDsrcTolling = 1 +} e_ProtectedZoneType; + +/* ProtectedZoneType */ +typedef long ProtectedZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1; +asn_struct_free_f ProtectedZoneType_free; +asn_struct_print_f ProtectedZoneType_print; +asn_constr_check_f ProtectedZoneType_constraint; +ber_type_decoder_f ProtectedZoneType_decode_ber; +der_type_encoder_f ProtectedZoneType_encode_der; +xer_type_decoder_f ProtectedZoneType_decode_xer; +xer_type_encoder_f ProtectedZoneType_encode_xer; +oer_type_decoder_f ProtectedZoneType_decode_oer; +oer_type_encoder_f ProtectedZoneType_encode_oer; +per_type_decoder_f ProtectedZoneType_decode_uper; +per_type_encoder_f ProtectedZoneType_encode_uper; +per_type_decoder_f ProtectedZoneType_decode_aper; +per_type_encoder_f ProtectedZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneType_H_ */ +#include diff --git a/vcits/srem/PtActivation.h b/vcits/srem/PtActivation.h new file mode 100644 index 0000000..9facf0c --- /dev/null +++ b/vcits/srem/PtActivation.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PtActivation_H_ +#define _PtActivation_H_ + + +#include + +/* Including external dependencies */ +#include "PtActivationType.h" +#include "PtActivationData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivation */ +typedef struct PtActivation { + PtActivationType_t ptActivationType; + PtActivationData_t ptActivationData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PtActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PtActivation; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivation_H_ */ +#include diff --git a/vcits/srem/PtActivationData.h b/vcits/srem/PtActivationData.h new file mode 100644 index 0000000..eb78987 --- /dev/null +++ b/vcits/srem/PtActivationData.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PtActivationData_H_ +#define _PtActivationData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivationData */ +typedef OCTET_STRING_t PtActivationData_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationData_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationData; +asn_struct_free_f PtActivationData_free; +asn_struct_print_f PtActivationData_print; +asn_constr_check_f PtActivationData_constraint; +ber_type_decoder_f PtActivationData_decode_ber; +der_type_encoder_f PtActivationData_encode_der; +xer_type_decoder_f PtActivationData_decode_xer; +xer_type_encoder_f PtActivationData_encode_xer; +oer_type_decoder_f PtActivationData_decode_oer; +oer_type_encoder_f PtActivationData_encode_oer; +per_type_decoder_f PtActivationData_decode_uper; +per_type_encoder_f PtActivationData_encode_uper; +per_type_decoder_f PtActivationData_decode_aper; +per_type_encoder_f PtActivationData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationData_H_ */ +#include diff --git a/vcits/srem/PtActivationType.h b/vcits/srem/PtActivationType.h new file mode 100644 index 0000000..bba476c --- /dev/null +++ b/vcits/srem/PtActivationType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PtActivationType_H_ +#define _PtActivationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtActivationType { + PtActivationType_undefinedCodingType = 0, + PtActivationType_r09_16CodingType = 1, + PtActivationType_vdv_50149CodingType = 2 +} e_PtActivationType; + +/* PtActivationType */ +typedef long PtActivationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationType; +asn_struct_free_f PtActivationType_free; +asn_struct_print_f PtActivationType_print; +asn_constr_check_f PtActivationType_constraint; +ber_type_decoder_f PtActivationType_decode_ber; +der_type_encoder_f PtActivationType_encode_der; +xer_type_decoder_f PtActivationType_decode_xer; +xer_type_encoder_f PtActivationType_encode_xer; +oer_type_decoder_f PtActivationType_decode_oer; +oer_type_encoder_f PtActivationType_encode_oer; +per_type_decoder_f PtActivationType_decode_uper; +per_type_encoder_f PtActivationType_encode_uper; +per_type_decoder_f PtActivationType_decode_aper; +per_type_encoder_f PtActivationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationType_H_ */ +#include diff --git a/vcits/srem/PtvRequestType.h b/vcits/srem/PtvRequestType.h new file mode 100644 index 0000000..2852959 --- /dev/null +++ b/vcits/srem/PtvRequestType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _PtvRequestType_H_ +#define _PtvRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtvRequestType { + PtvRequestType_preRequest = 0, + PtvRequestType_mainRequest = 1, + PtvRequestType_doorCloseRequest = 2, + PtvRequestType_cancelRequest = 3, + PtvRequestType_emergencyRequest = 4 + /* + * Enumeration is extensible + */ +} e_PtvRequestType; + +/* PtvRequestType */ +typedef long PtvRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtvRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtvRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PtvRequestType_specs_1; +asn_struct_free_f PtvRequestType_free; +asn_struct_print_f PtvRequestType_print; +asn_constr_check_f PtvRequestType_constraint; +ber_type_decoder_f PtvRequestType_decode_ber; +der_type_encoder_f PtvRequestType_encode_der; +xer_type_decoder_f PtvRequestType_decode_xer; +xer_type_encoder_f PtvRequestType_encode_xer; +oer_type_decoder_f PtvRequestType_decode_oer; +oer_type_encoder_f PtvRequestType_encode_oer; +per_type_decoder_f PtvRequestType_decode_uper; +per_type_encoder_f PtvRequestType_encode_uper; +per_type_decoder_f PtvRequestType_decode_aper; +per_type_encoder_f PtvRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtvRequestType_H_ */ +#include diff --git a/vcits/srem/RTCM-Revision.h b/vcits/srem/RTCM-Revision.h new file mode 100644 index 0000000..3768123 --- /dev/null +++ b/vcits/srem/RTCM-Revision.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RTCM_Revision_H_ +#define _RTCM_Revision_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RTCM_Revision { + RTCM_Revision_unknown = 0, + RTCM_Revision_rtcmRev2 = 1, + RTCM_Revision_rtcmRev3 = 2, + RTCM_Revision_reserved = 3 + /* + * Enumeration is extensible + */ +} e_RTCM_Revision; + +/* RTCM-Revision */ +typedef long RTCM_Revision_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCM_Revision; +extern const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1; +asn_struct_free_f RTCM_Revision_free; +asn_struct_print_f RTCM_Revision_print; +asn_constr_check_f RTCM_Revision_constraint; +ber_type_decoder_f RTCM_Revision_decode_ber; +der_type_encoder_f RTCM_Revision_encode_der; +xer_type_decoder_f RTCM_Revision_decode_xer; +xer_type_encoder_f RTCM_Revision_encode_xer; +oer_type_decoder_f RTCM_Revision_decode_oer; +oer_type_encoder_f RTCM_Revision_encode_oer; +per_type_decoder_f RTCM_Revision_decode_uper; +per_type_encoder_f RTCM_Revision_encode_uper; +per_type_decoder_f RTCM_Revision_decode_aper; +per_type_encoder_f RTCM_Revision_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCM_Revision_H_ */ +#include diff --git a/vcits/srem/RTCMcorrections.h b/vcits/srem/RTCMcorrections.h new file mode 100644 index 0000000..8871e62 --- /dev/null +++ b/vcits/srem/RTCMcorrections.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RTCMcorrections_H_ +#define _RTCMcorrections_H_ + + +#include + +/* Including external dependencies */ +#include "MsgCount.h" +#include "RTCM-Revision.h" +#include "MinuteOfTheYear.h" +#include "RTCMmessageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FullPositionVector; +struct RTCMheader; +struct Reg_RTCMcorrections; + +/* RTCMcorrections */ +typedef struct RTCMcorrections { + MsgCount_t msgCnt; + RTCM_Revision_t rev; + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + struct FullPositionVector *anchorPoint; /* OPTIONAL */ + struct RTCMheader *rtcmHeader; /* OPTIONAL */ + RTCMmessageList_t msgs; + struct RTCMcorrections__regional { + A_SEQUENCE_OF(struct Reg_RTCMcorrections) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMcorrections_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMcorrections; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMcorrections_H_ */ +#include diff --git a/vcits/srem/RTCMheader.h b/vcits/srem/RTCMheader.h new file mode 100644 index 0000000..3acd6cf --- /dev/null +++ b/vcits/srem/RTCMheader.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RTCMheader_H_ +#define _RTCMheader_H_ + + +#include + +/* Including external dependencies */ +#include "GNSSstatus.h" +#include "AntennaOffsetSet.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMheader */ +typedef struct RTCMheader { + GNSSstatus_t status; + AntennaOffsetSet_t offsetSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMheader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMheader; +extern asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMheader_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMheader_H_ */ +#include diff --git a/vcits/srem/RTCMmessage.h b/vcits/srem/RTCMmessage.h new file mode 100644 index 0000000..4a5b0f4 --- /dev/null +++ b/vcits/srem/RTCMmessage.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RTCMmessage_H_ +#define _RTCMmessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessage */ +typedef OCTET_STRING_t RTCMmessage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessage; +asn_struct_free_f RTCMmessage_free; +asn_struct_print_f RTCMmessage_print; +asn_constr_check_f RTCMmessage_constraint; +ber_type_decoder_f RTCMmessage_decode_ber; +der_type_encoder_f RTCMmessage_encode_der; +xer_type_decoder_f RTCMmessage_decode_xer; +xer_type_encoder_f RTCMmessage_encode_xer; +oer_type_decoder_f RTCMmessage_decode_oer; +oer_type_encoder_f RTCMmessage_encode_oer; +per_type_decoder_f RTCMmessage_decode_uper; +per_type_encoder_f RTCMmessage_encode_uper; +per_type_decoder_f RTCMmessage_decode_aper; +per_type_encoder_f RTCMmessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessage_H_ */ +#include diff --git a/vcits/srem/RTCMmessageList.h b/vcits/srem/RTCMmessageList.h new file mode 100644 index 0000000..07318c4 --- /dev/null +++ b/vcits/srem/RTCMmessageList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RTCMmessageList_H_ +#define _RTCMmessageList_H_ + + +#include + +/* Including external dependencies */ +#include "RTCMmessage.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessageList */ +typedef struct RTCMmessageList { + A_SEQUENCE_OF(RTCMmessage_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMmessageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessageList; +extern asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMmessageList_1[1]; +extern asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessageList_H_ */ +#include diff --git a/vcits/srem/ReferencePosition.h b/vcits/srem/ReferencePosition.h new file mode 100644 index 0000000..1150282 --- /dev/null +++ b/vcits/srem/ReferencePosition.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ReferencePosition_H_ +#define _ReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "PosConfidenceEllipse.h" +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReferencePosition */ +typedef struct ReferencePosition { + Latitude_t latitude; + Longitude_t longitude; + PosConfidenceEllipse_t positionConfidenceEllipse; + Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ReferencePosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReferencePosition_H_ */ +#include diff --git a/vcits/srem/RegionId.h b/vcits/srem/RegionId.h new file mode 100644 index 0000000..102c876 --- /dev/null +++ b/vcits/srem/RegionId.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RegionId_H_ +#define _RegionId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegionId */ +typedef long RegionId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RegionId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RegionId; +asn_struct_free_f RegionId_free; +asn_struct_print_f RegionId_print; +asn_constr_check_f RegionId_constraint; +ber_type_decoder_f RegionId_decode_ber; +der_type_encoder_f RegionId_encode_der; +xer_type_decoder_f RegionId_decode_xer; +xer_type_encoder_f RegionId_encode_xer; +oer_type_decoder_f RegionId_decode_oer; +oer_type_encoder_f RegionId_encode_oer; +per_type_decoder_f RegionId_decode_uper; +per_type_encoder_f RegionId_encode_uper; +per_type_decoder_f RegionId_decode_aper; +per_type_encoder_f RegionId_encode_aper; +#define RegionId_noRegion ((RegionId_t)0) +#define RegionId_addGrpA ((RegionId_t)1) +#define RegionId_addGrpB ((RegionId_t)2) +#define RegionId_addGrpC ((RegionId_t)3) + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionId_H_ */ +#include diff --git a/vcits/srem/RegionalExtension.h b/vcits/srem/RegionalExtension.h new file mode 100644 index 0000000..a571baa --- /dev/null +++ b/vcits/srem/RegionalExtension.h @@ -0,0 +1,626 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RegionalExtension_H_ +#define _RegionalExtension_H_ + + +#include + +/* Including external dependencies */ +#include "RegionId.h" +#include +#include +#include "MapData-addGrpC.h" +#include +#include +#include +#include "ConnectionManeuverAssist-addGrpC.h" +#include "ConnectionTrajectory-addGrpC.h" +#include "IntersectionState-addGrpC.h" +#include "LaneAttributes-addGrpC.h" +#include "MovementEvent-addGrpC.h" +#include "NodeAttributeSet-addGrpC.h" +#include "Position3D-addGrpC.h" +#include "RequestorDescription-addGrpC.h" +#include "RestrictionUserType-addGrpC.h" +#include "SignalStatusPackage-addGrpC.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Reg_MapData__regExtValue_PR { + Reg_MapData__regExtValue_PR_NOTHING, /* No components present */ + Reg_MapData__regExtValue_PR_MapData_addGrpC +} Reg_MapData__regExtValue_PR; +typedef enum Reg_RTCMcorrections__regExtValue_PR { + Reg_RTCMcorrections__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RTCMcorrections__regExtValue_PR; +typedef enum Reg_SPAT__regExtValue_PR { + Reg_SPAT__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SPAT__regExtValue_PR; +typedef enum Reg_SignalRequestMessage__regExtValue_PR { + Reg_SignalRequestMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestMessage__regExtValue_PR; +typedef enum Reg_SignalStatusMessage__regExtValue_PR { + Reg_SignalStatusMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatusMessage__regExtValue_PR; +typedef enum Reg_AdvisorySpeed__regExtValue_PR { + Reg_AdvisorySpeed__regExtValue_PR_NOTHING /* No components present */ + +} Reg_AdvisorySpeed__regExtValue_PR; +typedef enum Reg_ComputedLane__regExtValue_PR { + Reg_ComputedLane__regExtValue_PR_NOTHING /* No components present */ + +} Reg_ComputedLane__regExtValue_PR; +typedef enum Reg_ConnectionManeuverAssist__regExtValue_PR { + Reg_ConnectionManeuverAssist__regExtValue_PR_NOTHING, /* No components present */ + Reg_ConnectionManeuverAssist__regExtValue_PR_ConnectionManeuverAssist_addGrpC +} Reg_ConnectionManeuverAssist__regExtValue_PR; +typedef enum Reg_GenericLane__regExtValue_PR { + Reg_GenericLane__regExtValue_PR_NOTHING, /* No components present */ + Reg_GenericLane__regExtValue_PR_ConnectionTrajectory_addGrpC +} Reg_GenericLane__regExtValue_PR; +typedef enum Reg_IntersectionGeometry__regExtValue_PR { + Reg_IntersectionGeometry__regExtValue_PR_NOTHING /* No components present */ + +} Reg_IntersectionGeometry__regExtValue_PR; +typedef enum Reg_IntersectionState__regExtValue_PR { + Reg_IntersectionState__regExtValue_PR_NOTHING, /* No components present */ + Reg_IntersectionState__regExtValue_PR_IntersectionState_addGrpC +} Reg_IntersectionState__regExtValue_PR; +typedef enum Reg_LaneAttributes__regExtValue_PR { + Reg_LaneAttributes__regExtValue_PR_NOTHING, /* No components present */ + Reg_LaneAttributes__regExtValue_PR_LaneAttributes_addGrpC +} Reg_LaneAttributes__regExtValue_PR; +typedef enum Reg_LaneDataAttribute__regExtValue_PR { + Reg_LaneDataAttribute__regExtValue_PR_NOTHING /* No components present */ + +} Reg_LaneDataAttribute__regExtValue_PR; +typedef enum Reg_MovementEvent__regExtValue_PR { + Reg_MovementEvent__regExtValue_PR_NOTHING, /* No components present */ + Reg_MovementEvent__regExtValue_PR_MovementEvent_addGrpC +} Reg_MovementEvent__regExtValue_PR; +typedef enum Reg_MovementState__regExtValue_PR { + Reg_MovementState__regExtValue_PR_NOTHING /* No components present */ + +} Reg_MovementState__regExtValue_PR; +typedef enum Reg_NodeAttributeSetXY__regExtValue_PR { + Reg_NodeAttributeSetXY__regExtValue_PR_NOTHING, /* No components present */ + Reg_NodeAttributeSetXY__regExtValue_PR_NodeAttributeSet_addGrpC +} Reg_NodeAttributeSetXY__regExtValue_PR; +typedef enum Reg_NodeOffsetPointXY__regExtValue_PR { + Reg_NodeOffsetPointXY__regExtValue_PR_NOTHING /* No components present */ + +} Reg_NodeOffsetPointXY__regExtValue_PR; +typedef enum Reg_Position3D__regExtValue_PR { + Reg_Position3D__regExtValue_PR_NOTHING, /* No components present */ + Reg_Position3D__regExtValue_PR_Position3D_addGrpC +} Reg_Position3D__regExtValue_PR; +typedef enum Reg_RequestorDescription__regExtValue_PR { + Reg_RequestorDescription__regExtValue_PR_NOTHING, /* No components present */ + Reg_RequestorDescription__regExtValue_PR_RequestorDescription_addGrpC +} Reg_RequestorDescription__regExtValue_PR; +typedef enum Reg_RequestorType__regExtValue_PR { + Reg_RequestorType__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RequestorType__regExtValue_PR; +typedef enum Reg_RestrictionUserType__regExtValue_PR { + Reg_RestrictionUserType__regExtValue_PR_NOTHING, /* No components present */ + Reg_RestrictionUserType__regExtValue_PR_RestrictionUserType_addGrpC +} Reg_RestrictionUserType__regExtValue_PR; +typedef enum Reg_RoadSegment__regExtValue_PR { + Reg_RoadSegment__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RoadSegment__regExtValue_PR; +typedef enum Reg_SignalControlZone__regExtValue_PR { + Reg_SignalControlZone__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalControlZone__regExtValue_PR; +typedef enum Reg_SignalRequest__regExtValue_PR { + Reg_SignalRequest__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequest__regExtValue_PR; +typedef enum Reg_SignalRequestPackage__regExtValue_PR { + Reg_SignalRequestPackage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestPackage__regExtValue_PR; +typedef enum Reg_SignalStatus__regExtValue_PR { + Reg_SignalStatus__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatus__regExtValue_PR; +typedef enum Reg_SignalStatusPackage__regExtValue_PR { + Reg_SignalStatusPackage__regExtValue_PR_NOTHING, /* No components present */ + Reg_SignalStatusPackage__regExtValue_PR_SignalStatusPackage_addGrpC +} Reg_SignalStatusPackage__regExtValue_PR; + +/* RegionalExtension */ +typedef struct Reg_MapData { + RegionId_t regionId; + struct Reg_MapData__regExtValue { + Reg_MapData__regExtValue_PR present; + union Reg_MapData__regExtValue_u { + MapData_addGrpC_t MapData_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MapData_t; +typedef struct Reg_RTCMcorrections { + RegionId_t regionId; + struct Reg_RTCMcorrections__regExtValue { + Reg_RTCMcorrections__regExtValue_PR present; + union Reg_RTCMcorrections__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RTCMcorrections_t; +typedef struct Reg_SPAT { + RegionId_t regionId; + struct Reg_SPAT__regExtValue { + Reg_SPAT__regExtValue_PR present; + union Reg_SPAT__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SPAT_t; +typedef struct Reg_SignalRequestMessage { + RegionId_t regionId; + struct Reg_SignalRequestMessage__regExtValue { + Reg_SignalRequestMessage__regExtValue_PR present; + union Reg_SignalRequestMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestMessage_t; +typedef struct Reg_SignalStatusMessage { + RegionId_t regionId; + struct Reg_SignalStatusMessage__regExtValue { + Reg_SignalStatusMessage__regExtValue_PR present; + union Reg_SignalStatusMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusMessage_t; +typedef struct Reg_AdvisorySpeed { + RegionId_t regionId; + struct Reg_AdvisorySpeed__regExtValue { + Reg_AdvisorySpeed__regExtValue_PR present; + union Reg_AdvisorySpeed__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_AdvisorySpeed_t; +typedef struct Reg_ComputedLane { + RegionId_t regionId; + struct Reg_ComputedLane__regExtValue { + Reg_ComputedLane__regExtValue_PR present; + union Reg_ComputedLane__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ComputedLane_t; +typedef struct Reg_ConnectionManeuverAssist { + RegionId_t regionId; + struct Reg_ConnectionManeuverAssist__regExtValue { + Reg_ConnectionManeuverAssist__regExtValue_PR present; + union Reg_ConnectionManeuverAssist__regExtValue_u { + ConnectionManeuverAssist_addGrpC_t ConnectionManeuverAssist_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ConnectionManeuverAssist_t; +typedef struct Reg_GenericLane { + RegionId_t regionId; + struct Reg_GenericLane__regExtValue { + Reg_GenericLane__regExtValue_PR present; + union Reg_GenericLane__regExtValue_u { + ConnectionTrajectory_addGrpC_t ConnectionTrajectory_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_GenericLane_t; +typedef struct Reg_IntersectionGeometry { + RegionId_t regionId; + struct Reg_IntersectionGeometry__regExtValue { + Reg_IntersectionGeometry__regExtValue_PR present; + union Reg_IntersectionGeometry__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionGeometry_t; +typedef struct Reg_IntersectionState { + RegionId_t regionId; + struct Reg_IntersectionState__regExtValue { + Reg_IntersectionState__regExtValue_PR present; + union Reg_IntersectionState__regExtValue_u { + IntersectionState_addGrpC_t IntersectionState_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionState_t; +typedef struct Reg_LaneAttributes { + RegionId_t regionId; + struct Reg_LaneAttributes__regExtValue { + Reg_LaneAttributes__regExtValue_PR present; + union Reg_LaneAttributes__regExtValue_u { + LaneAttributes_addGrpC_t LaneAttributes_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneAttributes_t; +typedef struct Reg_LaneDataAttribute { + RegionId_t regionId; + struct Reg_LaneDataAttribute__regExtValue { + Reg_LaneDataAttribute__regExtValue_PR present; + union Reg_LaneDataAttribute__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneDataAttribute_t; +typedef struct Reg_MovementEvent { + RegionId_t regionId; + struct Reg_MovementEvent__regExtValue { + Reg_MovementEvent__regExtValue_PR present; + union Reg_MovementEvent__regExtValue_u { + MovementEvent_addGrpC_t MovementEvent_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementEvent_t; +typedef struct Reg_MovementState { + RegionId_t regionId; + struct Reg_MovementState__regExtValue { + Reg_MovementState__regExtValue_PR present; + union Reg_MovementState__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementState_t; +typedef struct Reg_NodeAttributeSetXY { + RegionId_t regionId; + struct Reg_NodeAttributeSetXY__regExtValue { + Reg_NodeAttributeSetXY__regExtValue_PR present; + union Reg_NodeAttributeSetXY__regExtValue_u { + NodeAttributeSet_addGrpC_t NodeAttributeSet_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeAttributeSetXY_t; +typedef struct Reg_NodeOffsetPointXY { + RegionId_t regionId; + struct Reg_NodeOffsetPointXY__regExtValue { + Reg_NodeOffsetPointXY__regExtValue_PR present; + union Reg_NodeOffsetPointXY__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeOffsetPointXY_t; +typedef struct Reg_Position3D { + RegionId_t regionId; + struct Reg_Position3D__regExtValue { + Reg_Position3D__regExtValue_PR present; + union Reg_Position3D__regExtValue_u { + Position3D_addGrpC_t Position3D_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_Position3D_t; +typedef struct Reg_RequestorDescription { + RegionId_t regionId; + struct Reg_RequestorDescription__regExtValue { + Reg_RequestorDescription__regExtValue_PR present; + union Reg_RequestorDescription__regExtValue_u { + RequestorDescription_addGrpC_t RequestorDescription_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorDescription_t; +typedef struct Reg_RequestorType { + RegionId_t regionId; + struct Reg_RequestorType__regExtValue { + Reg_RequestorType__regExtValue_PR present; + union Reg_RequestorType__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorType_t; +typedef struct Reg_RestrictionUserType { + RegionId_t regionId; + struct Reg_RestrictionUserType__regExtValue { + Reg_RestrictionUserType__regExtValue_PR present; + union Reg_RestrictionUserType__regExtValue_u { + RestrictionUserType_addGrpC_t RestrictionUserType_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RestrictionUserType_t; +typedef struct Reg_RoadSegment { + RegionId_t regionId; + struct Reg_RoadSegment__regExtValue { + Reg_RoadSegment__regExtValue_PR present; + union Reg_RoadSegment__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RoadSegment_t; +typedef struct Reg_SignalControlZone { + RegionId_t regionId; + struct Reg_SignalControlZone__regExtValue { + Reg_SignalControlZone__regExtValue_PR present; + union Reg_SignalControlZone__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalControlZone_t; +typedef struct Reg_SignalRequest { + RegionId_t regionId; + struct Reg_SignalRequest__regExtValue { + Reg_SignalRequest__regExtValue_PR present; + union Reg_SignalRequest__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequest_t; +typedef struct Reg_SignalRequestPackage { + RegionId_t regionId; + struct Reg_SignalRequestPackage__regExtValue { + Reg_SignalRequestPackage__regExtValue_PR present; + union Reg_SignalRequestPackage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestPackage_t; +typedef struct Reg_SignalStatus { + RegionId_t regionId; + struct Reg_SignalStatus__regExtValue { + Reg_SignalStatus__regExtValue_PR present; + union Reg_SignalStatus__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatus_t; +typedef struct Reg_SignalStatusPackage { + RegionId_t regionId; + struct Reg_SignalStatusPackage__regExtValue { + Reg_SignalStatusPackage__regExtValue_PR present; + union Reg_SignalStatusPackage__regExtValue_u { + SignalStatusPackage_addGrpC_t SignalStatusPackage_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Reg_MapData; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_1; +extern asn_TYPE_member_t asn_MBR_Reg_MapData_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_4; +extern asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_4[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SPAT; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_7; +extern asn_TYPE_member_t asn_MBR_Reg_SPAT_7[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_10; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_10[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_13; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_13[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_16; +extern asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_16[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_19; +extern asn_TYPE_member_t asn_MBR_Reg_ComputedLane_19[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_22; +extern asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_22[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_25; +extern asn_TYPE_member_t asn_MBR_Reg_GenericLane_25[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_28; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_28[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_31; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionState_31[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_34; +extern asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_34[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_37; +extern asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_37[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_40; +extern asn_TYPE_member_t asn_MBR_Reg_MovementEvent_40[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_43; +extern asn_TYPE_member_t asn_MBR_Reg_MovementState_43[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_46; +extern asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_46[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_49; +extern asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_49[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_52; +extern asn_TYPE_member_t asn_MBR_Reg_Position3D_52[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_55; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_55[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_58; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorType_58[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_61; +extern asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_61[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_64; +extern asn_TYPE_member_t asn_MBR_Reg_RoadSegment_64[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_67; +extern asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_67[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_70; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequest_70[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_73; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_73[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_76; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatus_76[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_79; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_79[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionalExtension_H_ */ +#include diff --git a/vcits/srem/RegulatorySpeedLimit.h b/vcits/srem/RegulatorySpeedLimit.h new file mode 100644 index 0000000..45ce67c --- /dev/null +++ b/vcits/srem/RegulatorySpeedLimit.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RegulatorySpeedLimit_H_ +#define _RegulatorySpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedLimitType.h" +#include "Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegulatorySpeedLimit */ +typedef struct RegulatorySpeedLimit { + SpeedLimitType_t type; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RegulatorySpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit; +extern asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1; +extern asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegulatorySpeedLimit_H_ */ +#include diff --git a/vcits/srem/RejectedReason.h b/vcits/srem/RejectedReason.h new file mode 100644 index 0000000..96eb1ef --- /dev/null +++ b/vcits/srem/RejectedReason.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RejectedReason_H_ +#define _RejectedReason_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RejectedReason { + RejectedReason_unknown = 0, + RejectedReason_exceptionalCondition = 1, + RejectedReason_maxWaitingTimeExceeded = 2, + RejectedReason_ptPriorityDisabled = 3, + RejectedReason_higherPTPriorityGranted = 4, + RejectedReason_vehicleTrackingUnknown = 5 + /* + * Enumeration is extensible + */ +} e_RejectedReason; + +/* RejectedReason */ +typedef long RejectedReason_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RejectedReason_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RejectedReason; +extern const asn_INTEGER_specifics_t asn_SPC_RejectedReason_specs_1; +asn_struct_free_f RejectedReason_free; +asn_struct_print_f RejectedReason_print; +asn_constr_check_f RejectedReason_constraint; +ber_type_decoder_f RejectedReason_decode_ber; +der_type_encoder_f RejectedReason_encode_der; +xer_type_decoder_f RejectedReason_decode_xer; +xer_type_encoder_f RejectedReason_encode_xer; +oer_type_decoder_f RejectedReason_decode_oer; +oer_type_encoder_f RejectedReason_encode_oer; +per_type_decoder_f RejectedReason_decode_uper; +per_type_encoder_f RejectedReason_encode_uper; +per_type_decoder_f RejectedReason_decode_aper; +per_type_encoder_f RejectedReason_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RejectedReason_H_ */ +#include diff --git a/vcits/srem/RelevanceDistance.h b/vcits/srem/RelevanceDistance.h new file mode 100644 index 0000000..a4cb9b9 --- /dev/null +++ b/vcits/srem/RelevanceDistance.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RelevanceDistance_H_ +#define _RelevanceDistance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceDistance { + RelevanceDistance_lessThan50m = 0, + RelevanceDistance_lessThan100m = 1, + RelevanceDistance_lessThan200m = 2, + RelevanceDistance_lessThan500m = 3, + RelevanceDistance_lessThan1000m = 4, + RelevanceDistance_lessThan5km = 5, + RelevanceDistance_lessThan10km = 6, + RelevanceDistance_over10km = 7 +} e_RelevanceDistance; + +/* RelevanceDistance */ +typedef long RelevanceDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceDistance; +asn_struct_free_f RelevanceDistance_free; +asn_struct_print_f RelevanceDistance_print; +asn_constr_check_f RelevanceDistance_constraint; +ber_type_decoder_f RelevanceDistance_decode_ber; +der_type_encoder_f RelevanceDistance_encode_der; +xer_type_decoder_f RelevanceDistance_decode_xer; +xer_type_encoder_f RelevanceDistance_encode_xer; +oer_type_decoder_f RelevanceDistance_decode_oer; +oer_type_encoder_f RelevanceDistance_encode_oer; +per_type_decoder_f RelevanceDistance_decode_uper; +per_type_encoder_f RelevanceDistance_encode_uper; +per_type_decoder_f RelevanceDistance_decode_aper; +per_type_encoder_f RelevanceDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceDistance_H_ */ +#include diff --git a/vcits/srem/RelevanceTrafficDirection.h b/vcits/srem/RelevanceTrafficDirection.h new file mode 100644 index 0000000..d41fc13 --- /dev/null +++ b/vcits/srem/RelevanceTrafficDirection.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RelevanceTrafficDirection_H_ +#define _RelevanceTrafficDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceTrafficDirection { + RelevanceTrafficDirection_allTrafficDirections = 0, + RelevanceTrafficDirection_upstreamTraffic = 1, + RelevanceTrafficDirection_downstreamTraffic = 2, + RelevanceTrafficDirection_oppositeTraffic = 3 +} e_RelevanceTrafficDirection; + +/* RelevanceTrafficDirection */ +typedef long RelevanceTrafficDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection; +asn_struct_free_f RelevanceTrafficDirection_free; +asn_struct_print_f RelevanceTrafficDirection_print; +asn_constr_check_f RelevanceTrafficDirection_constraint; +ber_type_decoder_f RelevanceTrafficDirection_decode_ber; +der_type_encoder_f RelevanceTrafficDirection_encode_der; +xer_type_decoder_f RelevanceTrafficDirection_decode_xer; +xer_type_encoder_f RelevanceTrafficDirection_encode_xer; +oer_type_decoder_f RelevanceTrafficDirection_decode_oer; +oer_type_encoder_f RelevanceTrafficDirection_encode_oer; +per_type_decoder_f RelevanceTrafficDirection_decode_uper; +per_type_encoder_f RelevanceTrafficDirection_encode_uper; +per_type_decoder_f RelevanceTrafficDirection_decode_aper; +per_type_encoder_f RelevanceTrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceTrafficDirection_H_ */ +#include diff --git a/vcits/srem/RequestID.h b/vcits/srem/RequestID.h new file mode 100644 index 0000000..e6ecf89 --- /dev/null +++ b/vcits/srem/RequestID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RequestID_H_ +#define _RequestID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestID */ +typedef long RequestID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestID; +asn_struct_free_f RequestID_free; +asn_struct_print_f RequestID_print; +asn_constr_check_f RequestID_constraint; +ber_type_decoder_f RequestID_decode_ber; +der_type_encoder_f RequestID_encode_der; +xer_type_decoder_f RequestID_decode_xer; +xer_type_encoder_f RequestID_encode_xer; +oer_type_decoder_f RequestID_decode_oer; +oer_type_encoder_f RequestID_encode_oer; +per_type_decoder_f RequestID_decode_uper; +per_type_encoder_f RequestID_encode_uper; +per_type_decoder_f RequestID_decode_aper; +per_type_encoder_f RequestID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestID_H_ */ +#include diff --git a/vcits/srem/RequestImportanceLevel.h b/vcits/srem/RequestImportanceLevel.h new file mode 100644 index 0000000..844032b --- /dev/null +++ b/vcits/srem/RequestImportanceLevel.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RequestImportanceLevel_H_ +#define _RequestImportanceLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestImportanceLevel { + RequestImportanceLevel_requestImportanceLevelUnKnown = 0, + RequestImportanceLevel_requestImportanceLevel1 = 1, + RequestImportanceLevel_requestImportanceLevel2 = 2, + RequestImportanceLevel_requestImportanceLevel3 = 3, + RequestImportanceLevel_requestImportanceLevel4 = 4, + RequestImportanceLevel_requestImportanceLevel5 = 5, + RequestImportanceLevel_requestImportanceLevel6 = 6, + RequestImportanceLevel_requestImportanceLevel7 = 7, + RequestImportanceLevel_requestImportanceLevel8 = 8, + RequestImportanceLevel_requestImportanceLevel9 = 9, + RequestImportanceLevel_requestImportanceLevel10 = 10, + RequestImportanceLevel_requestImportanceLevel11 = 11, + RequestImportanceLevel_requestImportanceLevel12 = 12, + RequestImportanceLevel_requestImportanceLevel13 = 13, + RequestImportanceLevel_requestImportanceLevel14 = 14, + RequestImportanceLevel_requestImportanceReserved = 15 +} e_RequestImportanceLevel; + +/* RequestImportanceLevel */ +typedef long RequestImportanceLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel; +extern const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1; +asn_struct_free_f RequestImportanceLevel_free; +asn_struct_print_f RequestImportanceLevel_print; +asn_constr_check_f RequestImportanceLevel_constraint; +ber_type_decoder_f RequestImportanceLevel_decode_ber; +der_type_encoder_f RequestImportanceLevel_encode_der; +xer_type_decoder_f RequestImportanceLevel_decode_xer; +xer_type_encoder_f RequestImportanceLevel_encode_xer; +oer_type_decoder_f RequestImportanceLevel_decode_oer; +oer_type_encoder_f RequestImportanceLevel_encode_oer; +per_type_decoder_f RequestImportanceLevel_decode_uper; +per_type_encoder_f RequestImportanceLevel_encode_uper; +per_type_decoder_f RequestImportanceLevel_decode_aper; +per_type_encoder_f RequestImportanceLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestImportanceLevel_H_ */ +#include diff --git a/vcits/srem/RequestResponseIndication.h b/vcits/srem/RequestResponseIndication.h new file mode 100644 index 0000000..06a4ba6 --- /dev/null +++ b/vcits/srem/RequestResponseIndication.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RequestResponseIndication_H_ +#define _RequestResponseIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestResponseIndication { + RequestResponseIndication_request = 0, + RequestResponseIndication_response = 1 +} e_RequestResponseIndication; + +/* RequestResponseIndication */ +typedef long RequestResponseIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication; +asn_struct_free_f RequestResponseIndication_free; +asn_struct_print_f RequestResponseIndication_print; +asn_constr_check_f RequestResponseIndication_constraint; +ber_type_decoder_f RequestResponseIndication_decode_ber; +der_type_encoder_f RequestResponseIndication_encode_der; +xer_type_decoder_f RequestResponseIndication_decode_xer; +xer_type_encoder_f RequestResponseIndication_encode_xer; +oer_type_decoder_f RequestResponseIndication_decode_oer; +oer_type_encoder_f RequestResponseIndication_encode_oer; +per_type_decoder_f RequestResponseIndication_decode_uper; +per_type_encoder_f RequestResponseIndication_encode_uper; +per_type_decoder_f RequestResponseIndication_decode_aper; +per_type_encoder_f RequestResponseIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestResponseIndication_H_ */ +#include diff --git a/vcits/srem/RequestSubRole.h b/vcits/srem/RequestSubRole.h new file mode 100644 index 0000000..bffae64 --- /dev/null +++ b/vcits/srem/RequestSubRole.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RequestSubRole_H_ +#define _RequestSubRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestSubRole { + RequestSubRole_requestSubRoleUnKnown = 0, + RequestSubRole_requestSubRole1 = 1, + RequestSubRole_requestSubRole2 = 2, + RequestSubRole_requestSubRole3 = 3, + RequestSubRole_requestSubRole4 = 4, + RequestSubRole_requestSubRole5 = 5, + RequestSubRole_requestSubRole6 = 6, + RequestSubRole_requestSubRole7 = 7, + RequestSubRole_requestSubRole8 = 8, + RequestSubRole_requestSubRole9 = 9, + RequestSubRole_requestSubRole10 = 10, + RequestSubRole_requestSubRole11 = 11, + RequestSubRole_requestSubRole12 = 12, + RequestSubRole_requestSubRole13 = 13, + RequestSubRole_requestSubRole14 = 14, + RequestSubRole_requestSubRoleReserved = 15 +} e_RequestSubRole; + +/* RequestSubRole */ +typedef long RequestSubRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestSubRole; +extern const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1; +asn_struct_free_f RequestSubRole_free; +asn_struct_print_f RequestSubRole_print; +asn_constr_check_f RequestSubRole_constraint; +ber_type_decoder_f RequestSubRole_decode_ber; +der_type_encoder_f RequestSubRole_encode_der; +xer_type_decoder_f RequestSubRole_decode_xer; +xer_type_encoder_f RequestSubRole_encode_xer; +oer_type_decoder_f RequestSubRole_decode_oer; +oer_type_encoder_f RequestSubRole_encode_oer; +per_type_decoder_f RequestSubRole_decode_uper; +per_type_encoder_f RequestSubRole_encode_uper; +per_type_decoder_f RequestSubRole_decode_aper; +per_type_encoder_f RequestSubRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestSubRole_H_ */ +#include diff --git a/vcits/srem/RequestorDescription-addGrpC.h b/vcits/srem/RequestorDescription-addGrpC.h new file mode 100644 index 0000000..28ef2ed --- /dev/null +++ b/vcits/srem/RequestorDescription-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RequestorDescription_addGrpC_H_ +#define _RequestorDescription_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "FuelType.h" +#include "BatteryStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestorDescription-addGrpC */ +typedef struct RequestorDescription_addGrpC { + FuelType_t *fuel; /* OPTIONAL */ + BatteryStatus_t *batteryStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_addGrpC_H_ */ +#include diff --git a/vcits/srem/RequestorDescription.h b/vcits/srem/RequestorDescription.h new file mode 100644 index 0000000..810beee --- /dev/null +++ b/vcits/srem/RequestorDescription.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RequestorDescription_H_ +#define _RequestorDescription_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleID.h" +#include "DescriptiveName.h" +#include "TransitVehicleStatus.h" +#include "TransitVehicleOccupancy.h" +#include "DeltaTime.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; +struct RequestorPositionVector; +struct Reg_RequestorDescription; + +/* RequestorDescription */ +typedef struct RequestorDescription { + VehicleID_t id; + struct RequestorType *type; /* OPTIONAL */ + struct RequestorPositionVector *position; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + DescriptiveName_t *routeName; /* OPTIONAL */ + TransitVehicleStatus_t *transitStatus; /* OPTIONAL */ + TransitVehicleOccupancy_t *transitOccupancy; /* OPTIONAL */ + DeltaTime_t *transitSchedule; /* OPTIONAL */ + struct RequestorDescription__regional { + A_SEQUENCE_OF(struct Reg_RequestorDescription) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_H_ */ +#include diff --git a/vcits/srem/RequestorPositionVector.h b/vcits/srem/RequestorPositionVector.h new file mode 100644 index 0000000..ee9fb50 --- /dev/null +++ b/vcits/srem/RequestorPositionVector.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RequestorPositionVector_H_ +#define _RequestorPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "Position3D.h" +#include "Angle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TransmissionAndSpeed; + +/* RequestorPositionVector */ +typedef struct RequestorPositionVector { + Position3D_t position; + Angle_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorPositionVector_H_ */ +#include diff --git a/vcits/srem/RequestorType.h b/vcits/srem/RequestorType.h new file mode 100644 index 0000000..b8b775f --- /dev/null +++ b/vcits/srem/RequestorType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RequestorType_H_ +#define _RequestorType_H_ + + +#include + +/* Including external dependencies */ +#include "BasicVehicleRole.h" +#include "RequestSubRole.h" +#include "RequestImportanceLevel.h" +#include "Iso3833VehicleType.h" +#include "VehicleType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_RequestorType; + +/* RequestorType */ +typedef struct RequestorType { + BasicVehicleRole_t role; + RequestSubRole_t *subrole; /* OPTIONAL */ + RequestImportanceLevel_t *request; /* OPTIONAL */ + Iso3833VehicleType_t *iso3883; /* OPTIONAL */ + VehicleType_t *hpmsType; /* OPTIONAL */ + struct Reg_RequestorType *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorType_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorType_H_ */ +#include diff --git a/vcits/srem/RescueAndRecoveryWorkInProgressSubCauseCode.h b/vcits/srem/RescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 0000000..baa39ec --- /dev/null +++ b/vcits/srem/RescueAndRecoveryWorkInProgressSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RescueAndRecoveryWorkInProgressSubCauseCode_H_ +#define _RescueAndRecoveryWorkInProgressSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RescueAndRecoveryWorkInProgressSubCauseCode { + RescueAndRecoveryWorkInProgressSubCauseCode_unavailable = 0, + RescueAndRecoveryWorkInProgressSubCauseCode_emergencyVehicles = 1, + RescueAndRecoveryWorkInProgressSubCauseCode_rescueHelicopterLanding = 2, + RescueAndRecoveryWorkInProgressSubCauseCode_policeActivityOngoing = 3, + RescueAndRecoveryWorkInProgressSubCauseCode_medicalEmergencyOngoing = 4, + RescueAndRecoveryWorkInProgressSubCauseCode_childAbductionInProgress = 5 +} e_RescueAndRecoveryWorkInProgressSubCauseCode; + +/* RescueAndRecoveryWorkInProgressSubCauseCode */ +typedef long RescueAndRecoveryWorkInProgressSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode; +asn_struct_free_f RescueAndRecoveryWorkInProgressSubCauseCode_free; +asn_struct_print_f RescueAndRecoveryWorkInProgressSubCauseCode_print; +asn_constr_check_f RescueAndRecoveryWorkInProgressSubCauseCode_constraint; +ber_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_ber; +der_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_der; +xer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_xer; +xer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_xer; +oer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_oer; +oer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_oer; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_uper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_uper; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_aper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RescueAndRecoveryWorkInProgressSubCauseCode_H_ */ +#include diff --git a/vcits/srem/RestrictedTypes.h b/vcits/srem/RestrictedTypes.h new file mode 100644 index 0000000..71d9973 --- /dev/null +++ b/vcits/srem/RestrictedTypes.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RestrictedTypes_H_ +#define _RestrictedTypes_H_ + + +#include + +/* Including external dependencies */ +#include "StationType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictedTypes */ +typedef struct RestrictedTypes { + A_SEQUENCE_OF(StationType_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictedTypes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictedTypes; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictedTypes_H_ */ +#include diff --git a/vcits/srem/RestrictionAppliesTo.h b/vcits/srem/RestrictionAppliesTo.h new file mode 100644 index 0000000..f519ac5 --- /dev/null +++ b/vcits/srem/RestrictionAppliesTo.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RestrictionAppliesTo_H_ +#define _RestrictionAppliesTo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionAppliesTo { + RestrictionAppliesTo_none = 0, + RestrictionAppliesTo_equippedTransit = 1, + RestrictionAppliesTo_equippedTaxis = 2, + RestrictionAppliesTo_equippedOther = 3, + RestrictionAppliesTo_emissionCompliant = 4, + RestrictionAppliesTo_equippedBicycle = 5, + RestrictionAppliesTo_weightCompliant = 6, + RestrictionAppliesTo_heightCompliant = 7, + RestrictionAppliesTo_pedestrians = 8, + RestrictionAppliesTo_slowMovingPersons = 9, + RestrictionAppliesTo_wheelchairUsers = 10, + RestrictionAppliesTo_visualDisabilities = 11, + RestrictionAppliesTo_audioDisabilities = 12, + RestrictionAppliesTo_otherUnknownDisabilities = 13 + /* + * Enumeration is extensible + */ +} e_RestrictionAppliesTo; + +/* RestrictionAppliesTo */ +typedef long RestrictionAppliesTo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo; +extern const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1; +asn_struct_free_f RestrictionAppliesTo_free; +asn_struct_print_f RestrictionAppliesTo_print; +asn_constr_check_f RestrictionAppliesTo_constraint; +ber_type_decoder_f RestrictionAppliesTo_decode_ber; +der_type_encoder_f RestrictionAppliesTo_encode_der; +xer_type_decoder_f RestrictionAppliesTo_decode_xer; +xer_type_encoder_f RestrictionAppliesTo_encode_xer; +oer_type_decoder_f RestrictionAppliesTo_decode_oer; +oer_type_encoder_f RestrictionAppliesTo_encode_oer; +per_type_decoder_f RestrictionAppliesTo_decode_uper; +per_type_encoder_f RestrictionAppliesTo_encode_uper; +per_type_decoder_f RestrictionAppliesTo_decode_aper; +per_type_encoder_f RestrictionAppliesTo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionAppliesTo_H_ */ +#include diff --git a/vcits/srem/RestrictionClassAssignment.h b/vcits/srem/RestrictionClassAssignment.h new file mode 100644 index 0000000..06370a4 --- /dev/null +++ b/vcits/srem/RestrictionClassAssignment.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RestrictionClassAssignment_H_ +#define _RestrictionClassAssignment_H_ + + +#include + +/* Including external dependencies */ +#include "RestrictionClassID.h" +#include "RestrictionUserTypeList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassAssignment */ +typedef struct RestrictionClassAssignment { + RestrictionClassID_t id; + RestrictionUserTypeList_t users; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassAssignment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassAssignment_H_ */ +#include diff --git a/vcits/srem/RestrictionClassID.h b/vcits/srem/RestrictionClassID.h new file mode 100644 index 0000000..3670457 --- /dev/null +++ b/vcits/srem/RestrictionClassID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RestrictionClassID_H_ +#define _RestrictionClassID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassID */ +typedef long RestrictionClassID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassID; +asn_struct_free_f RestrictionClassID_free; +asn_struct_print_f RestrictionClassID_print; +asn_constr_check_f RestrictionClassID_constraint; +ber_type_decoder_f RestrictionClassID_decode_ber; +der_type_encoder_f RestrictionClassID_encode_der; +xer_type_decoder_f RestrictionClassID_decode_xer; +xer_type_encoder_f RestrictionClassID_encode_xer; +oer_type_decoder_f RestrictionClassID_decode_oer; +oer_type_encoder_f RestrictionClassID_encode_oer; +per_type_decoder_f RestrictionClassID_decode_uper; +per_type_encoder_f RestrictionClassID_encode_uper; +per_type_decoder_f RestrictionClassID_decode_aper; +per_type_encoder_f RestrictionClassID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassID_H_ */ +#include diff --git a/vcits/srem/RestrictionClassList.h b/vcits/srem/RestrictionClassList.h new file mode 100644 index 0000000..bcfc767 --- /dev/null +++ b/vcits/srem/RestrictionClassList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RestrictionClassList_H_ +#define _RestrictionClassList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionClassAssignment; + +/* RestrictionClassList */ +typedef struct RestrictionClassList { + A_SEQUENCE_OF(struct RestrictionClassAssignment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassList_H_ */ +#include diff --git a/vcits/srem/RestrictionUserType-addGrpC.h b/vcits/srem/RestrictionUserType-addGrpC.h new file mode 100644 index 0000000..2382811 --- /dev/null +++ b/vcits/srem/RestrictionUserType-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RestrictionUserType_addGrpC_H_ +#define _RestrictionUserType_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "EmissionType.h" +#include "FuelType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionUserType-addGrpC */ +typedef struct RestrictionUserType_addGrpC { + EmissionType_t *emission; /* OPTIONAL */ + FuelType_t *fuel; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_addGrpC_H_ */ +#include diff --git a/vcits/srem/RestrictionUserType.h b/vcits/srem/RestrictionUserType.h new file mode 100644 index 0000000..77c6f5c --- /dev/null +++ b/vcits/srem/RestrictionUserType.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RestrictionUserType_H_ +#define _RestrictionUserType_H_ + + +#include + +/* Including external dependencies */ +#include "RestrictionAppliesTo.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionUserType_PR { + RestrictionUserType_PR_NOTHING, /* No components present */ + RestrictionUserType_PR_basicType, + RestrictionUserType_PR_regional + /* Extensions may appear below */ + +} RestrictionUserType_PR; + +/* Forward declarations */ +struct Reg_RestrictionUserType; + +/* RestrictionUserType */ +typedef struct RestrictionUserType { + RestrictionUserType_PR present; + union RestrictionUserType_u { + RestrictionAppliesTo_t basicType; + struct RestrictionUserType__regional { + A_SEQUENCE_OF(struct Reg_RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType; +extern asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_1[2]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_H_ */ +#include diff --git a/vcits/srem/RestrictionUserTypeList.h b/vcits/srem/RestrictionUserTypeList.h new file mode 100644 index 0000000..e89a68f --- /dev/null +++ b/vcits/srem/RestrictionUserTypeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RestrictionUserTypeList_H_ +#define _RestrictionUserTypeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionUserType; + +/* RestrictionUserTypeList */ +typedef struct RestrictionUserTypeList { + A_SEQUENCE_OF(struct RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserTypeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserTypeList_H_ */ +#include diff --git a/vcits/srem/RoadLaneSetList.h b/vcits/srem/RoadLaneSetList.h new file mode 100644 index 0000000..ee12d82 --- /dev/null +++ b/vcits/srem/RoadLaneSetList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RoadLaneSetList_H_ +#define _RoadLaneSetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* RoadLaneSetList */ +typedef struct RoadLaneSetList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadLaneSetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList; +extern asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadLaneSetList_H_ */ +#include diff --git a/vcits/srem/RoadRegulatorID.h b/vcits/srem/RoadRegulatorID.h new file mode 100644 index 0000000..09f7fb8 --- /dev/null +++ b/vcits/srem/RoadRegulatorID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RoadRegulatorID_H_ +#define _RoadRegulatorID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadRegulatorID */ +typedef long RoadRegulatorID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID; +asn_struct_free_f RoadRegulatorID_free; +asn_struct_print_f RoadRegulatorID_print; +asn_constr_check_f RoadRegulatorID_constraint; +ber_type_decoder_f RoadRegulatorID_decode_ber; +der_type_encoder_f RoadRegulatorID_encode_der; +xer_type_decoder_f RoadRegulatorID_decode_xer; +xer_type_encoder_f RoadRegulatorID_encode_xer; +oer_type_decoder_f RoadRegulatorID_decode_oer; +oer_type_encoder_f RoadRegulatorID_encode_oer; +per_type_decoder_f RoadRegulatorID_decode_uper; +per_type_encoder_f RoadRegulatorID_encode_uper; +per_type_decoder_f RoadRegulatorID_decode_aper; +per_type_encoder_f RoadRegulatorID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadRegulatorID_H_ */ +#include diff --git a/vcits/srem/RoadSegment.h b/vcits/srem/RoadSegment.h new file mode 100644 index 0000000..2121f26 --- /dev/null +++ b/vcits/srem/RoadSegment.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RoadSegment_H_ +#define _RoadSegment_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "RoadSegmentReferenceID.h" +#include "MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "RoadLaneSetList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct Reg_RoadSegment; + +/* RoadSegment */ +typedef struct RoadSegment { + DescriptiveName_t *name; /* OPTIONAL */ + RoadSegmentReferenceID_t id; + MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + RoadLaneSetList_t roadLaneSet; + struct RoadSegment__regional { + A_SEQUENCE_OF(struct Reg_RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegment_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegment_H_ */ +#include diff --git a/vcits/srem/RoadSegmentID.h b/vcits/srem/RoadSegmentID.h new file mode 100644 index 0000000..edabae1 --- /dev/null +++ b/vcits/srem/RoadSegmentID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RoadSegmentID_H_ +#define _RoadSegmentID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentID */ +typedef long RoadSegmentID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentID; +asn_struct_free_f RoadSegmentID_free; +asn_struct_print_f RoadSegmentID_print; +asn_constr_check_f RoadSegmentID_constraint; +ber_type_decoder_f RoadSegmentID_decode_ber; +der_type_encoder_f RoadSegmentID_encode_der; +xer_type_decoder_f RoadSegmentID_decode_xer; +xer_type_encoder_f RoadSegmentID_encode_xer; +oer_type_decoder_f RoadSegmentID_decode_oer; +oer_type_encoder_f RoadSegmentID_encode_oer; +per_type_decoder_f RoadSegmentID_decode_uper; +per_type_encoder_f RoadSegmentID_encode_uper; +per_type_decoder_f RoadSegmentID_decode_aper; +per_type_encoder_f RoadSegmentID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentID_H_ */ +#include diff --git a/vcits/srem/RoadSegmentList.h b/vcits/srem/RoadSegmentList.h new file mode 100644 index 0000000..9abc5fe --- /dev/null +++ b/vcits/srem/RoadSegmentList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RoadSegmentList_H_ +#define _RoadSegmentList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RoadSegment; + +/* RoadSegmentList */ +typedef struct RoadSegmentList { + A_SEQUENCE_OF(struct RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentList; +extern asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentList_H_ */ +#include diff --git a/vcits/srem/RoadSegmentReferenceID.h b/vcits/srem/RoadSegmentReferenceID.h new file mode 100644 index 0000000..c68132b --- /dev/null +++ b/vcits/srem/RoadSegmentReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RoadSegmentReferenceID_H_ +#define _RoadSegmentReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "RoadSegmentID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentReferenceID */ +typedef struct RoadSegmentReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + RoadSegmentID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentReferenceID_H_ */ +#include diff --git a/vcits/srem/RoadType.h b/vcits/srem/RoadType.h new file mode 100644 index 0000000..d5fbfe2 --- /dev/null +++ b/vcits/srem/RoadType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RoadType_H_ +#define _RoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadType { + RoadType_urban_NoStructuralSeparationToOppositeLanes = 0, + RoadType_urban_WithStructuralSeparationToOppositeLanes = 1, + RoadType_nonUrban_NoStructuralSeparationToOppositeLanes = 2, + RoadType_nonUrban_WithStructuralSeparationToOppositeLanes = 3 +} e_RoadType; + +/* RoadType */ +typedef long RoadType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadType; +asn_struct_free_f RoadType_free; +asn_struct_print_f RoadType_print; +asn_constr_check_f RoadType_constraint; +ber_type_decoder_f RoadType_decode_ber; +der_type_encoder_f RoadType_encode_der; +xer_type_decoder_f RoadType_decode_xer; +xer_type_encoder_f RoadType_encode_xer; +oer_type_decoder_f RoadType_decode_oer; +oer_type_encoder_f RoadType_encode_oer; +per_type_decoder_f RoadType_decode_uper; +per_type_encoder_f RoadType_encode_uper; +per_type_decoder_f RoadType_decode_aper; +per_type_encoder_f RoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadType_H_ */ +#include diff --git a/vcits/srem/RoadwayCrownAngle.h b/vcits/srem/RoadwayCrownAngle.h new file mode 100644 index 0000000..c621536 --- /dev/null +++ b/vcits/srem/RoadwayCrownAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RoadwayCrownAngle_H_ +#define _RoadwayCrownAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadwayCrownAngle */ +typedef long RoadwayCrownAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle; +asn_struct_free_f RoadwayCrownAngle_free; +asn_struct_print_f RoadwayCrownAngle_print; +asn_constr_check_f RoadwayCrownAngle_constraint; +ber_type_decoder_f RoadwayCrownAngle_decode_ber; +der_type_encoder_f RoadwayCrownAngle_encode_der; +xer_type_decoder_f RoadwayCrownAngle_decode_xer; +xer_type_encoder_f RoadwayCrownAngle_encode_xer; +oer_type_decoder_f RoadwayCrownAngle_decode_oer; +oer_type_encoder_f RoadwayCrownAngle_encode_oer; +per_type_decoder_f RoadwayCrownAngle_decode_uper; +per_type_encoder_f RoadwayCrownAngle_encode_uper; +per_type_decoder_f RoadwayCrownAngle_decode_aper; +per_type_encoder_f RoadwayCrownAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadwayCrownAngle_H_ */ +#include diff --git a/vcits/srem/RoadworksSubCauseCode.h b/vcits/srem/RoadworksSubCauseCode.h new file mode 100644 index 0000000..a2d4a1a --- /dev/null +++ b/vcits/srem/RoadworksSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _RoadworksSubCauseCode_H_ +#define _RoadworksSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadworksSubCauseCode { + RoadworksSubCauseCode_unavailable = 0, + RoadworksSubCauseCode_majorRoadworks = 1, + RoadworksSubCauseCode_roadMarkingWork = 2, + RoadworksSubCauseCode_slowMovingRoadMaintenance = 3, + RoadworksSubCauseCode_shortTermStationaryRoadworks = 4, + RoadworksSubCauseCode_streetCleaning = 5, + RoadworksSubCauseCode_winterService = 6 +} e_RoadworksSubCauseCode; + +/* RoadworksSubCauseCode */ +typedef long RoadworksSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode; +asn_struct_free_f RoadworksSubCauseCode_free; +asn_struct_print_f RoadworksSubCauseCode_print; +asn_constr_check_f RoadworksSubCauseCode_constraint; +ber_type_decoder_f RoadworksSubCauseCode_decode_ber; +der_type_encoder_f RoadworksSubCauseCode_encode_der; +xer_type_decoder_f RoadworksSubCauseCode_decode_xer; +xer_type_encoder_f RoadworksSubCauseCode_encode_xer; +oer_type_decoder_f RoadworksSubCauseCode_decode_oer; +oer_type_encoder_f RoadworksSubCauseCode_encode_oer; +per_type_decoder_f RoadworksSubCauseCode_decode_uper; +per_type_encoder_f RoadworksSubCauseCode_encode_uper; +per_type_decoder_f RoadworksSubCauseCode_decode_aper; +per_type_encoder_f RoadworksSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadworksSubCauseCode_H_ */ +#include diff --git a/vcits/srem/SPAT.h b/vcits/srem/SPAT.h new file mode 100644 index 0000000..9a615c6 --- /dev/null +++ b/vcits/srem/SPAT.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SPAT_H_ +#define _SPAT_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DescriptiveName.h" +#include "IntersectionStateList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SPAT; + +/* SPAT */ +typedef struct SPAT { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionStateList_t intersections; + struct SPAT__regional { + A_SEQUENCE_OF(struct Reg_SPAT) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SPAT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SPAT; + +#ifdef __cplusplus +} +#endif + +#endif /* _SPAT_H_ */ +#include diff --git a/vcits/srem/SREM.h b/vcits/srem/SREM.h new file mode 100644 index 0000000..f935ea2 --- /dev/null +++ b/vcits/srem/SREM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SREM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/SREM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SREM_H_ +#define _SREM_H_ + + +#include + +/* Including external dependencies */ +#include "ItsPduHeader.h" +#include "SignalRequestMessage.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SREM */ +typedef struct SREM { + ItsPduHeader_t header; + SignalRequestMessage_t srm; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SREM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SREM; + +#ifdef __cplusplus +} +#endif + +#endif /* _SREM_H_ */ +#include diff --git a/vcits/srem/Scale-B12.h b/vcits/srem/Scale-B12.h new file mode 100644 index 0000000..6e142bf --- /dev/null +++ b/vcits/srem/Scale-B12.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Scale_B12_H_ +#define _Scale_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Scale-B12 */ +typedef long Scale_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Scale_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Scale_B12; +asn_struct_free_f Scale_B12_free; +asn_struct_print_f Scale_B12_print; +asn_constr_check_f Scale_B12_constraint; +ber_type_decoder_f Scale_B12_decode_ber; +der_type_encoder_f Scale_B12_encode_der; +xer_type_decoder_f Scale_B12_decode_xer; +xer_type_encoder_f Scale_B12_encode_xer; +oer_type_decoder_f Scale_B12_decode_oer; +oer_type_encoder_f Scale_B12_encode_oer; +per_type_decoder_f Scale_B12_decode_uper; +per_type_encoder_f Scale_B12_encode_uper; +per_type_decoder_f Scale_B12_decode_aper; +per_type_encoder_f Scale_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Scale_B12_H_ */ +#include diff --git a/vcits/srem/SegmentAttributeXY.h b/vcits/srem/SegmentAttributeXY.h new file mode 100644 index 0000000..54388ca --- /dev/null +++ b/vcits/srem/SegmentAttributeXY.h @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SegmentAttributeXY_H_ +#define _SegmentAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SegmentAttributeXY { + SegmentAttributeXY_reserved = 0, + SegmentAttributeXY_doNotBlock = 1, + SegmentAttributeXY_whiteLine = 2, + SegmentAttributeXY_mergingLaneLeft = 3, + SegmentAttributeXY_mergingLaneRight = 4, + SegmentAttributeXY_curbOnLeft = 5, + SegmentAttributeXY_curbOnRight = 6, + SegmentAttributeXY_loadingzoneOnLeft = 7, + SegmentAttributeXY_loadingzoneOnRight = 8, + SegmentAttributeXY_turnOutPointOnLeft = 9, + SegmentAttributeXY_turnOutPointOnRight = 10, + SegmentAttributeXY_adjacentParkingOnLeft = 11, + SegmentAttributeXY_adjacentParkingOnRight = 12, + SegmentAttributeXY_adjacentBikeLaneOnLeft = 13, + SegmentAttributeXY_adjacentBikeLaneOnRight = 14, + SegmentAttributeXY_sharedBikeLane = 15, + SegmentAttributeXY_bikeBoxInFront = 16, + SegmentAttributeXY_transitStopOnLeft = 17, + SegmentAttributeXY_transitStopOnRight = 18, + SegmentAttributeXY_transitStopInLane = 19, + SegmentAttributeXY_sharedWithTrackedVehicle = 20, + SegmentAttributeXY_safeIsland = 21, + SegmentAttributeXY_lowCurbsPresent = 22, + SegmentAttributeXY_rumbleStripPresent = 23, + SegmentAttributeXY_audibleSignalingPresent = 24, + SegmentAttributeXY_adaptiveTimingPresent = 25, + SegmentAttributeXY_rfSignalRequestPresent = 26, + SegmentAttributeXY_partialCurbIntrusion = 27, + SegmentAttributeXY_taperToLeft = 28, + SegmentAttributeXY_taperToRight = 29, + SegmentAttributeXY_taperToCenterLine = 30, + SegmentAttributeXY_parallelParking = 31, + SegmentAttributeXY_headInParking = 32, + SegmentAttributeXY_freeParking = 33, + SegmentAttributeXY_timeRestrictionsOnParking = 34, + SegmentAttributeXY_costToPark = 35, + SegmentAttributeXY_midBlockCurbPresent = 36, + SegmentAttributeXY_unEvenPavementPresent = 37 + /* + * Enumeration is extensible + */ +} e_SegmentAttributeXY; + +/* SegmentAttributeXY */ +typedef long SegmentAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1; +asn_struct_free_f SegmentAttributeXY_free; +asn_struct_print_f SegmentAttributeXY_print; +asn_constr_check_f SegmentAttributeXY_constraint; +ber_type_decoder_f SegmentAttributeXY_decode_ber; +der_type_encoder_f SegmentAttributeXY_encode_der; +xer_type_decoder_f SegmentAttributeXY_decode_xer; +xer_type_encoder_f SegmentAttributeXY_encode_xer; +oer_type_decoder_f SegmentAttributeXY_decode_oer; +oer_type_encoder_f SegmentAttributeXY_encode_oer; +per_type_decoder_f SegmentAttributeXY_decode_uper; +per_type_encoder_f SegmentAttributeXY_encode_uper; +per_type_decoder_f SegmentAttributeXY_decode_aper; +per_type_encoder_f SegmentAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXY_H_ */ +#include diff --git a/vcits/srem/SegmentAttributeXYList.h b/vcits/srem/SegmentAttributeXYList.h new file mode 100644 index 0000000..b8fe47c --- /dev/null +++ b/vcits/srem/SegmentAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SegmentAttributeXYList_H_ +#define _SegmentAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "SegmentAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SegmentAttributeXYList */ +typedef struct SegmentAttributeXYList { + A_SEQUENCE_OF(SegmentAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SegmentAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXYList_H_ */ +#include diff --git a/vcits/srem/SemiAxisLength.h b/vcits/srem/SemiAxisLength.h new file mode 100644 index 0000000..4bdafbc --- /dev/null +++ b/vcits/srem/SemiAxisLength.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SemiAxisLength_H_ +#define _SemiAxisLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SemiAxisLength { + SemiAxisLength_oneCentimeter = 1, + SemiAxisLength_outOfRange = 4094, + SemiAxisLength_unavailable = 4095 +} e_SemiAxisLength; + +/* SemiAxisLength */ +typedef long SemiAxisLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiAxisLength; +asn_struct_free_f SemiAxisLength_free; +asn_struct_print_f SemiAxisLength_print; +asn_constr_check_f SemiAxisLength_constraint; +ber_type_decoder_f SemiAxisLength_decode_ber; +der_type_encoder_f SemiAxisLength_encode_der; +xer_type_decoder_f SemiAxisLength_decode_xer; +xer_type_encoder_f SemiAxisLength_encode_xer; +oer_type_decoder_f SemiAxisLength_decode_oer; +oer_type_encoder_f SemiAxisLength_encode_oer; +per_type_decoder_f SemiAxisLength_decode_uper; +per_type_encoder_f SemiAxisLength_encode_uper; +per_type_decoder_f SemiAxisLength_decode_aper; +per_type_encoder_f SemiAxisLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiAxisLength_H_ */ +#include diff --git a/vcits/srem/SemiMajorAxisAccuracy.h b/vcits/srem/SemiMajorAxisAccuracy.h new file mode 100644 index 0000000..1962119 --- /dev/null +++ b/vcits/srem/SemiMajorAxisAccuracy.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SemiMajorAxisAccuracy_H_ +#define _SemiMajorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisAccuracy */ +typedef long SemiMajorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy; +asn_struct_free_f SemiMajorAxisAccuracy_free; +asn_struct_print_f SemiMajorAxisAccuracy_print; +asn_constr_check_f SemiMajorAxisAccuracy_constraint; +ber_type_decoder_f SemiMajorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMajorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMajorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMajorAxisAccuracy_encode_xer; +oer_type_decoder_f SemiMajorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMajorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMajorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMajorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisAccuracy_H_ */ +#include diff --git a/vcits/srem/SemiMajorAxisOrientation.h b/vcits/srem/SemiMajorAxisOrientation.h new file mode 100644 index 0000000..69b82d4 --- /dev/null +++ b/vcits/srem/SemiMajorAxisOrientation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SemiMajorAxisOrientation_H_ +#define _SemiMajorAxisOrientation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisOrientation */ +typedef long SemiMajorAxisOrientation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation; +asn_struct_free_f SemiMajorAxisOrientation_free; +asn_struct_print_f SemiMajorAxisOrientation_print; +asn_constr_check_f SemiMajorAxisOrientation_constraint; +ber_type_decoder_f SemiMajorAxisOrientation_decode_ber; +der_type_encoder_f SemiMajorAxisOrientation_encode_der; +xer_type_decoder_f SemiMajorAxisOrientation_decode_xer; +xer_type_encoder_f SemiMajorAxisOrientation_encode_xer; +oer_type_decoder_f SemiMajorAxisOrientation_decode_oer; +oer_type_encoder_f SemiMajorAxisOrientation_encode_oer; +per_type_decoder_f SemiMajorAxisOrientation_decode_uper; +per_type_encoder_f SemiMajorAxisOrientation_encode_uper; +per_type_decoder_f SemiMajorAxisOrientation_decode_aper; +per_type_encoder_f SemiMajorAxisOrientation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisOrientation_H_ */ +#include diff --git a/vcits/srem/SemiMinorAxisAccuracy.h b/vcits/srem/SemiMinorAxisAccuracy.h new file mode 100644 index 0000000..6bac91f --- /dev/null +++ b/vcits/srem/SemiMinorAxisAccuracy.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SemiMinorAxisAccuracy_H_ +#define _SemiMinorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMinorAxisAccuracy */ +typedef long SemiMinorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy; +asn_struct_free_f SemiMinorAxisAccuracy_free; +asn_struct_print_f SemiMinorAxisAccuracy_print; +asn_constr_check_f SemiMinorAxisAccuracy_constraint; +ber_type_decoder_f SemiMinorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMinorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMinorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMinorAxisAccuracy_encode_xer; +oer_type_decoder_f SemiMinorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMinorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMinorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMinorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMinorAxisAccuracy_H_ */ +#include diff --git a/vcits/srem/SequenceNumber.h b/vcits/srem/SequenceNumber.h new file mode 100644 index 0000000..8bedc4c --- /dev/null +++ b/vcits/srem/SequenceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SequenceNumber_H_ +#define _SequenceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SequenceNumber */ +typedef long SequenceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SequenceNumber; +asn_struct_free_f SequenceNumber_free; +asn_struct_print_f SequenceNumber_print; +asn_constr_check_f SequenceNumber_constraint; +ber_type_decoder_f SequenceNumber_decode_ber; +der_type_encoder_f SequenceNumber_encode_der; +xer_type_decoder_f SequenceNumber_decode_xer; +xer_type_encoder_f SequenceNumber_encode_xer; +oer_type_decoder_f SequenceNumber_decode_oer; +oer_type_encoder_f SequenceNumber_encode_oer; +per_type_decoder_f SequenceNumber_decode_uper; +per_type_encoder_f SequenceNumber_encode_uper; +per_type_decoder_f SequenceNumber_decode_aper; +per_type_encoder_f SequenceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SequenceNumber_H_ */ +#include diff --git a/vcits/srem/ServiceApplicationLimit.h b/vcits/srem/ServiceApplicationLimit.h new file mode 100644 index 0000000..11d89c1 --- /dev/null +++ b/vcits/srem/ServiceApplicationLimit.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ServiceApplicationLimit_H_ +#define _ServiceApplicationLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ServiceApplicationLimit { + ServiceApplicationLimit_notForPostpayment = 0, + ServiceApplicationLimit_notForPrepayment = 1, + ServiceApplicationLimit_notForVehicleaccess = 2, + ServiceApplicationLimit_notForFleetcontrol = 3, + ServiceApplicationLimit_issuerSpecificRestriction1 = 4, + ServiceApplicationLimit_issuerSpecificRestriction2 = 5, + ServiceApplicationLimit_issuerSpecificRestriction3 = 6, + ServiceApplicationLimit_issuerSpecificRestriction4 = 7 +} e_ServiceApplicationLimit; + +/* ServiceApplicationLimit */ +typedef BIT_STRING_t ServiceApplicationLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ServiceApplicationLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ServiceApplicationLimit; +asn_struct_free_f ServiceApplicationLimit_free; +asn_struct_print_f ServiceApplicationLimit_print; +asn_constr_check_f ServiceApplicationLimit_constraint; +ber_type_decoder_f ServiceApplicationLimit_decode_ber; +der_type_encoder_f ServiceApplicationLimit_encode_der; +xer_type_decoder_f ServiceApplicationLimit_decode_xer; +xer_type_encoder_f ServiceApplicationLimit_encode_xer; +oer_type_decoder_f ServiceApplicationLimit_decode_oer; +oer_type_encoder_f ServiceApplicationLimit_encode_oer; +per_type_decoder_f ServiceApplicationLimit_decode_uper; +per_type_encoder_f ServiceApplicationLimit_encode_uper; +per_type_decoder_f ServiceApplicationLimit_decode_aper; +per_type_encoder_f ServiceApplicationLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServiceApplicationLimit_H_ */ +#include diff --git a/vcits/srem/ServiceNumber.h b/vcits/srem/ServiceNumber.h new file mode 100644 index 0000000..3015699 --- /dev/null +++ b/vcits/srem/ServiceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ServiceNumber_H_ +#define _ServiceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ServiceNumber */ +typedef BIT_STRING_t ServiceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ServiceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ServiceNumber; +asn_struct_free_f ServiceNumber_free; +asn_struct_print_f ServiceNumber_print; +asn_constr_check_f ServiceNumber_constraint; +ber_type_decoder_f ServiceNumber_decode_ber; +der_type_encoder_f ServiceNumber_encode_der; +xer_type_decoder_f ServiceNumber_decode_xer; +xer_type_encoder_f ServiceNumber_encode_xer; +oer_type_decoder_f ServiceNumber_decode_oer; +oer_type_encoder_f ServiceNumber_encode_oer; +per_type_decoder_f ServiceNumber_decode_uper; +per_type_encoder_f ServiceNumber_encode_uper; +per_type_decoder_f ServiceNumber_decode_aper; +per_type_encoder_f ServiceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServiceNumber_H_ */ +#include diff --git a/vcits/srem/SignalControlZone.h b/vcits/srem/SignalControlZone.h new file mode 100644 index 0000000..ef0c045 --- /dev/null +++ b/vcits/srem/SignalControlZone.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalControlZone_H_ +#define _SignalControlZone_H_ + + +#include + +/* Including external dependencies */ +#include "RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalControlZone */ +typedef struct SignalControlZone { + Reg_SignalControlZone_t zone; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalControlZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalControlZone_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalControlZone_H_ */ +#include diff --git a/vcits/srem/SignalGroupID.h b/vcits/srem/SignalGroupID.h new file mode 100644 index 0000000..766c252 --- /dev/null +++ b/vcits/srem/SignalGroupID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalGroupID_H_ +#define _SignalGroupID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalGroupID */ +typedef long SignalGroupID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SignalGroupID; +asn_struct_free_f SignalGroupID_free; +asn_struct_print_f SignalGroupID_print; +asn_constr_check_f SignalGroupID_constraint; +ber_type_decoder_f SignalGroupID_decode_ber; +der_type_encoder_f SignalGroupID_encode_der; +xer_type_decoder_f SignalGroupID_decode_xer; +xer_type_encoder_f SignalGroupID_encode_xer; +oer_type_decoder_f SignalGroupID_decode_oer; +oer_type_encoder_f SignalGroupID_encode_oer; +per_type_decoder_f SignalGroupID_decode_uper; +per_type_encoder_f SignalGroupID_encode_uper; +per_type_decoder_f SignalGroupID_decode_aper; +per_type_encoder_f SignalGroupID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalGroupID_H_ */ +#include diff --git a/vcits/srem/SignalHeadLocation.h b/vcits/srem/SignalHeadLocation.h new file mode 100644 index 0000000..54d5e8b --- /dev/null +++ b/vcits/srem/SignalHeadLocation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalHeadLocation_H_ +#define _SignalHeadLocation_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include "DeltaAltitude.h" +#include "SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalHeadLocation */ +typedef struct SignalHeadLocation { + NodeOffsetPointXY_t nodeXY; + DeltaAltitude_t nodeZ; + SignalGroupID_t signalGroupID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocation_H_ */ +#include diff --git a/vcits/srem/SignalHeadLocationList.h b/vcits/srem/SignalHeadLocationList.h new file mode 100644 index 0000000..fb5cb4d --- /dev/null +++ b/vcits/srem/SignalHeadLocationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalHeadLocationList_H_ +#define _SignalHeadLocationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocation; + +/* SignalHeadLocationList */ +typedef struct SignalHeadLocationList { + A_SEQUENCE_OF(struct SignalHeadLocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList; +extern asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocationList_H_ */ +#include diff --git a/vcits/srem/SignalRequest.h b/vcits/srem/SignalRequest.h new file mode 100644 index 0000000..cea005c --- /dev/null +++ b/vcits/srem/SignalRequest.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalRequest_H_ +#define _SignalRequest_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionReferenceID.h" +#include "RequestID.h" +#include "PriorityRequestType.h" +#include "IntersectionAccessPoint.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionAccessPoint; +struct Reg_SignalRequest; + +/* SignalRequest */ +typedef struct SignalRequest { + IntersectionReferenceID_t id; + RequestID_t requestID; + PriorityRequestType_t requestType; + IntersectionAccessPoint_t inBoundLane; + struct IntersectionAccessPoint *outBoundLane; /* OPTIONAL */ + struct SignalRequest__regional { + A_SEQUENCE_OF(struct Reg_SignalRequest) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequest_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequest_H_ */ +#include diff --git a/vcits/srem/SignalRequestList.h b/vcits/srem/SignalRequestList.h new file mode 100644 index 0000000..54bfa98 --- /dev/null +++ b/vcits/srem/SignalRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalRequestList_H_ +#define _SignalRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestPackage; + +/* SignalRequestList */ +typedef struct SignalRequestList { + A_SEQUENCE_OF(struct SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestList; +extern asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestList_H_ */ +#include diff --git a/vcits/srem/SignalRequestMessage.h b/vcits/srem/SignalRequestMessage.h new file mode 100644 index 0000000..dc4a7f7 --- /dev/null +++ b/vcits/srem/SignalRequestMessage.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalRequestMessage_H_ +#define _SignalRequestMessage_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MsgCount.h" +#include "RequestorDescription.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestList; +struct Reg_SignalRequestMessage; + +/* SignalRequestMessage */ +typedef struct SignalRequestMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + MsgCount_t *sequenceNumber; /* OPTIONAL */ + struct SignalRequestList *requests; /* OPTIONAL */ + RequestorDescription_t requestor; + struct SignalRequestMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequestMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestMessage_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestMessage_H_ */ +#include diff --git a/vcits/srem/SignalRequestPackage.h b/vcits/srem/SignalRequestPackage.h new file mode 100644 index 0000000..d69f20c --- /dev/null +++ b/vcits/srem/SignalRequestPackage.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalRequestPackage_H_ +#define _SignalRequestPackage_H_ + + +#include + +/* Including external dependencies */ +#include "SignalRequest.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalRequestPackage; + +/* SignalRequestPackage */ +typedef struct SignalRequestPackage { + SignalRequest_t request; + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + struct SignalRequestPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestPackage_H_ */ +#include diff --git a/vcits/srem/SignalRequesterInfo.h b/vcits/srem/SignalRequesterInfo.h new file mode 100644 index 0000000..0a6b1c0 --- /dev/null +++ b/vcits/srem/SignalRequesterInfo.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalRequesterInfo_H_ +#define _SignalRequesterInfo_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleID.h" +#include "RequestID.h" +#include "MsgCount.h" +#include "BasicVehicleRole.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; + +/* SignalRequesterInfo */ +typedef struct SignalRequesterInfo { + VehicleID_t id; + RequestID_t request; + MsgCount_t sequenceNumber; + BasicVehicleRole_t *role; /* OPTIONAL */ + struct RequestorType *typeData; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequesterInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequesterInfo_H_ */ +#include diff --git a/vcits/srem/SignalStatus.h b/vcits/srem/SignalStatus.h new file mode 100644 index 0000000..e46baed --- /dev/null +++ b/vcits/srem/SignalStatus.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalStatus_H_ +#define _SignalStatus_H_ + + +#include + +/* Including external dependencies */ +#include "MsgCount.h" +#include "IntersectionReferenceID.h" +#include "SignalStatusPackageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatus; + +/* SignalStatus */ +typedef struct SignalStatus { + MsgCount_t sequenceNumber; + IntersectionReferenceID_t id; + SignalStatusPackageList_t sigStatus; + struct SignalStatus__regional { + A_SEQUENCE_OF(struct Reg_SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatus_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatus_H_ */ +#include diff --git a/vcits/srem/SignalStatusList.h b/vcits/srem/SignalStatusList.h new file mode 100644 index 0000000..5b860fe --- /dev/null +++ b/vcits/srem/SignalStatusList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalStatusList_H_ +#define _SignalStatusList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatus; + +/* SignalStatusList */ +typedef struct SignalStatusList { + A_SEQUENCE_OF(struct SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusList_H_ */ +#include diff --git a/vcits/srem/SignalStatusMessage.h b/vcits/srem/SignalStatusMessage.h new file mode 100644 index 0000000..262483b --- /dev/null +++ b/vcits/srem/SignalStatusMessage.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalStatusMessage_H_ +#define _SignalStatusMessage_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MsgCount.h" +#include "SignalStatusList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatusMessage; + +/* SignalStatusMessage */ +typedef struct SignalStatusMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + MsgCount_t *sequenceNumber; /* OPTIONAL */ + SignalStatusList_t status; + struct SignalStatusMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusMessage_H_ */ +#include diff --git a/vcits/srem/SignalStatusPackage-addGrpC.h b/vcits/srem/SignalStatusPackage-addGrpC.h new file mode 100644 index 0000000..a16382b --- /dev/null +++ b/vcits/srem/SignalStatusPackage-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalStatusPackage_addGrpC_H_ +#define _SignalStatusPackage_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaTime.h" +#include "RejectedReason.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalStatusPackage-addGrpC */ +typedef struct SignalStatusPackage_addGrpC { + DeltaTime_t *synchToSchedule; /* OPTIONAL */ + RejectedReason_t *rejectedReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_addGrpC_H_ */ +#include diff --git a/vcits/srem/SignalStatusPackage.h b/vcits/srem/SignalStatusPackage.h new file mode 100644 index 0000000..f29abd8 --- /dev/null +++ b/vcits/srem/SignalStatusPackage.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalStatusPackage_H_ +#define _SignalStatusPackage_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionAccessPoint.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "PrioritizationResponseStatus.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequesterInfo; +struct IntersectionAccessPoint; +struct Reg_SignalStatusPackage; + +/* SignalStatusPackage */ +typedef struct SignalStatusPackage { + struct SignalRequesterInfo *requester; /* OPTIONAL */ + IntersectionAccessPoint_t inboundOn; + struct IntersectionAccessPoint *outboundOn; /* OPTIONAL */ + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + PrioritizationResponseStatus_t status; + struct SignalStatusPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_H_ */ +#include diff --git a/vcits/srem/SignalStatusPackageList.h b/vcits/srem/SignalStatusPackageList.h new file mode 100644 index 0000000..0b55fc0 --- /dev/null +++ b/vcits/srem/SignalStatusPackageList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalStatusPackageList_H_ +#define _SignalStatusPackageList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatusPackage; + +/* SignalStatusPackageList */ +typedef struct SignalStatusPackageList { + A_SEQUENCE_OF(struct SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackageList_H_ */ +#include diff --git a/vcits/srem/SignalViolationSubCauseCode.h b/vcits/srem/SignalViolationSubCauseCode.h new file mode 100644 index 0000000..0f54379 --- /dev/null +++ b/vcits/srem/SignalViolationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SignalViolationSubCauseCode_H_ +#define _SignalViolationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SignalViolationSubCauseCode { + SignalViolationSubCauseCode_unavailable = 0, + SignalViolationSubCauseCode_stopSignViolation = 1, + SignalViolationSubCauseCode_trafficLightViolation = 2, + SignalViolationSubCauseCode_turningRegulationViolation = 3 +} e_SignalViolationSubCauseCode; + +/* SignalViolationSubCauseCode */ +typedef long SignalViolationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode; +asn_struct_free_f SignalViolationSubCauseCode_free; +asn_struct_print_f SignalViolationSubCauseCode_print; +asn_constr_check_f SignalViolationSubCauseCode_constraint; +ber_type_decoder_f SignalViolationSubCauseCode_decode_ber; +der_type_encoder_f SignalViolationSubCauseCode_encode_der; +xer_type_decoder_f SignalViolationSubCauseCode_decode_xer; +xer_type_encoder_f SignalViolationSubCauseCode_encode_xer; +oer_type_decoder_f SignalViolationSubCauseCode_decode_oer; +oer_type_encoder_f SignalViolationSubCauseCode_encode_oer; +per_type_decoder_f SignalViolationSubCauseCode_decode_uper; +per_type_encoder_f SignalViolationSubCauseCode_encode_uper; +per_type_decoder_f SignalViolationSubCauseCode_decode_aper; +per_type_encoder_f SignalViolationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalViolationSubCauseCode_H_ */ +#include diff --git a/vcits/srem/SlowVehicleSubCauseCode.h b/vcits/srem/SlowVehicleSubCauseCode.h new file mode 100644 index 0000000..be6e3b7 --- /dev/null +++ b/vcits/srem/SlowVehicleSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SlowVehicleSubCauseCode_H_ +#define _SlowVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SlowVehicleSubCauseCode { + SlowVehicleSubCauseCode_unavailable = 0, + SlowVehicleSubCauseCode_maintenanceVehicle = 1, + SlowVehicleSubCauseCode_vehiclesSlowingToLookAtAccident = 2, + SlowVehicleSubCauseCode_abnormalLoad = 3, + SlowVehicleSubCauseCode_abnormalWideLoad = 4, + SlowVehicleSubCauseCode_convoy = 5, + SlowVehicleSubCauseCode_snowplough = 6, + SlowVehicleSubCauseCode_deicing = 7, + SlowVehicleSubCauseCode_saltingVehicles = 8 +} e_SlowVehicleSubCauseCode; + +/* SlowVehicleSubCauseCode */ +typedef long SlowVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode; +asn_struct_free_f SlowVehicleSubCauseCode_free; +asn_struct_print_f SlowVehicleSubCauseCode_print; +asn_constr_check_f SlowVehicleSubCauseCode_constraint; +ber_type_decoder_f SlowVehicleSubCauseCode_decode_ber; +der_type_encoder_f SlowVehicleSubCauseCode_encode_der; +xer_type_decoder_f SlowVehicleSubCauseCode_decode_xer; +xer_type_encoder_f SlowVehicleSubCauseCode_encode_xer; +oer_type_decoder_f SlowVehicleSubCauseCode_decode_oer; +oer_type_encoder_f SlowVehicleSubCauseCode_encode_oer; +per_type_decoder_f SlowVehicleSubCauseCode_decode_uper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_uper; +per_type_decoder_f SlowVehicleSubCauseCode_decode_aper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SlowVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/srem/SpecialTransportType.h b/vcits/srem/SpecialTransportType.h new file mode 100644 index 0000000..0b444d8 --- /dev/null +++ b/vcits/srem/SpecialTransportType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SpecialTransportType_H_ +#define _SpecialTransportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpecialTransportType { + SpecialTransportType_heavyLoad = 0, + SpecialTransportType_excessWidth = 1, + SpecialTransportType_excessLength = 2, + SpecialTransportType_excessHeight = 3 +} e_SpecialTransportType; + +/* SpecialTransportType */ +typedef BIT_STRING_t SpecialTransportType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpecialTransportType; +asn_struct_free_f SpecialTransportType_free; +asn_struct_print_f SpecialTransportType_print; +asn_constr_check_f SpecialTransportType_constraint; +ber_type_decoder_f SpecialTransportType_decode_ber; +der_type_encoder_f SpecialTransportType_encode_der; +xer_type_decoder_f SpecialTransportType_decode_xer; +xer_type_encoder_f SpecialTransportType_encode_xer; +oer_type_decoder_f SpecialTransportType_decode_oer; +oer_type_encoder_f SpecialTransportType_encode_oer; +per_type_decoder_f SpecialTransportType_decode_uper; +per_type_encoder_f SpecialTransportType_encode_uper; +per_type_decoder_f SpecialTransportType_decode_aper; +per_type_encoder_f SpecialTransportType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpecialTransportType_H_ */ +#include diff --git a/vcits/srem/Speed.h b/vcits/srem/Speed.h new file mode 100644 index 0000000..b44c902 --- /dev/null +++ b/vcits/srem/Speed.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Speed_H_ +#define _Speed_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedValue.h" +#include "SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Speed */ +typedef struct Speed { + SpeedValue_t speedValue; + SpeedConfidence_t speedConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Speed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Speed; + +#ifdef __cplusplus +} +#endif + +#endif /* _Speed_H_ */ +#include diff --git a/vcits/srem/SpeedAdvice.h b/vcits/srem/SpeedAdvice.h new file mode 100644 index 0000000..dd6bb25 --- /dev/null +++ b/vcits/srem/SpeedAdvice.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SpeedAdvice_H_ +#define _SpeedAdvice_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedAdvice */ +typedef long SpeedAdvice_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedAdvice; +asn_struct_free_f SpeedAdvice_free; +asn_struct_print_f SpeedAdvice_print; +asn_constr_check_f SpeedAdvice_constraint; +ber_type_decoder_f SpeedAdvice_decode_ber; +der_type_encoder_f SpeedAdvice_encode_der; +xer_type_decoder_f SpeedAdvice_decode_xer; +xer_type_encoder_f SpeedAdvice_encode_xer; +oer_type_decoder_f SpeedAdvice_decode_oer; +oer_type_encoder_f SpeedAdvice_encode_oer; +per_type_decoder_f SpeedAdvice_decode_uper; +per_type_encoder_f SpeedAdvice_encode_uper; +per_type_decoder_f SpeedAdvice_decode_aper; +per_type_encoder_f SpeedAdvice_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedAdvice_H_ */ +#include diff --git a/vcits/srem/SpeedConfidence.h b/vcits/srem/SpeedConfidence.h new file mode 100644 index 0000000..cd0fb40 --- /dev/null +++ b/vcits/srem/SpeedConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SpeedConfidence_H_ +#define _SpeedConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidence { + SpeedConfidence_equalOrWithinOneCentimeterPerSec = 1, + SpeedConfidence_equalOrWithinOneMeterPerSec = 100, + SpeedConfidence_outOfRange = 126, + SpeedConfidence_unavailable = 127 +} e_SpeedConfidence; + +/* SpeedConfidence */ +typedef long SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidence; +asn_struct_free_f SpeedConfidence_free; +asn_struct_print_f SpeedConfidence_print; +asn_constr_check_f SpeedConfidence_constraint; +ber_type_decoder_f SpeedConfidence_decode_ber; +der_type_encoder_f SpeedConfidence_encode_der; +xer_type_decoder_f SpeedConfidence_decode_xer; +xer_type_encoder_f SpeedConfidence_encode_xer; +oer_type_decoder_f SpeedConfidence_decode_oer; +oer_type_encoder_f SpeedConfidence_encode_oer; +per_type_decoder_f SpeedConfidence_decode_uper; +per_type_encoder_f SpeedConfidence_encode_uper; +per_type_decoder_f SpeedConfidence_decode_aper; +per_type_encoder_f SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidence_H_ */ +#include diff --git a/vcits/srem/SpeedConfidenceDSRC.h b/vcits/srem/SpeedConfidenceDSRC.h new file mode 100644 index 0000000..5aa11a1 --- /dev/null +++ b/vcits/srem/SpeedConfidenceDSRC.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SpeedConfidenceDSRC_H_ +#define _SpeedConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidenceDSRC { + SpeedConfidenceDSRC_unavailable = 0, + SpeedConfidenceDSRC_prec100ms = 1, + SpeedConfidenceDSRC_prec10ms = 2, + SpeedConfidenceDSRC_prec5ms = 3, + SpeedConfidenceDSRC_prec1ms = 4, + SpeedConfidenceDSRC_prec0_1ms = 5, + SpeedConfidenceDSRC_prec0_05ms = 6, + SpeedConfidenceDSRC_prec0_01ms = 7 +} e_SpeedConfidenceDSRC; + +/* SpeedConfidenceDSRC */ +typedef long SpeedConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedConfidenceDSRC_specs_1; +asn_struct_free_f SpeedConfidenceDSRC_free; +asn_struct_print_f SpeedConfidenceDSRC_print; +asn_constr_check_f SpeedConfidenceDSRC_constraint; +ber_type_decoder_f SpeedConfidenceDSRC_decode_ber; +der_type_encoder_f SpeedConfidenceDSRC_encode_der; +xer_type_decoder_f SpeedConfidenceDSRC_decode_xer; +xer_type_encoder_f SpeedConfidenceDSRC_encode_xer; +oer_type_decoder_f SpeedConfidenceDSRC_decode_oer; +oer_type_encoder_f SpeedConfidenceDSRC_encode_oer; +per_type_decoder_f SpeedConfidenceDSRC_decode_uper; +per_type_encoder_f SpeedConfidenceDSRC_encode_uper; +per_type_decoder_f SpeedConfidenceDSRC_decode_aper; +per_type_encoder_f SpeedConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidenceDSRC_H_ */ +#include diff --git a/vcits/srem/SpeedLimit.h b/vcits/srem/SpeedLimit.h new file mode 100644 index 0000000..9c75c7e --- /dev/null +++ b/vcits/srem/SpeedLimit.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SpeedLimit_H_ +#define _SpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimit { + SpeedLimit_oneKmPerHour = 1 +} e_SpeedLimit; + +/* SpeedLimit */ +typedef long SpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimit; +asn_struct_free_f SpeedLimit_free; +asn_struct_print_f SpeedLimit_print; +asn_constr_check_f SpeedLimit_constraint; +ber_type_decoder_f SpeedLimit_decode_ber; +der_type_encoder_f SpeedLimit_encode_der; +xer_type_decoder_f SpeedLimit_decode_xer; +xer_type_encoder_f SpeedLimit_encode_xer; +oer_type_decoder_f SpeedLimit_decode_oer; +oer_type_encoder_f SpeedLimit_encode_oer; +per_type_decoder_f SpeedLimit_decode_uper; +per_type_encoder_f SpeedLimit_encode_uper; +per_type_decoder_f SpeedLimit_decode_aper; +per_type_encoder_f SpeedLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimit_H_ */ +#include diff --git a/vcits/srem/SpeedLimitList.h b/vcits/srem/SpeedLimitList.h new file mode 100644 index 0000000..ba997dd --- /dev/null +++ b/vcits/srem/SpeedLimitList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SpeedLimitList_H_ +#define _SpeedLimitList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RegulatorySpeedLimit; + +/* SpeedLimitList */ +typedef struct SpeedLimitList { + A_SEQUENCE_OF(struct RegulatorySpeedLimit) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedLimitList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitList; +extern asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedLimitList_1[1]; +extern asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitList_H_ */ +#include diff --git a/vcits/srem/SpeedLimitType.h b/vcits/srem/SpeedLimitType.h new file mode 100644 index 0000000..eddd8a0 --- /dev/null +++ b/vcits/srem/SpeedLimitType.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SpeedLimitType_H_ +#define _SpeedLimitType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimitType { + SpeedLimitType_unknown = 0, + SpeedLimitType_maxSpeedInSchoolZone = 1, + SpeedLimitType_maxSpeedInSchoolZoneWhenChildrenArePresent = 2, + SpeedLimitType_maxSpeedInConstructionZone = 3, + SpeedLimitType_vehicleMinSpeed = 4, + SpeedLimitType_vehicleMaxSpeed = 5, + SpeedLimitType_vehicleNightMaxSpeed = 6, + SpeedLimitType_truckMinSpeed = 7, + SpeedLimitType_truckMaxSpeed = 8, + SpeedLimitType_truckNightMaxSpeed = 9, + SpeedLimitType_vehiclesWithTrailersMinSpeed = 10, + SpeedLimitType_vehiclesWithTrailersMaxSpeed = 11, + SpeedLimitType_vehiclesWithTrailersNightMaxSpeed = 12 + /* + * Enumeration is extensible + */ +} e_SpeedLimitType; + +/* SpeedLimitType */ +typedef long SpeedLimitType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitType; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1; +asn_struct_free_f SpeedLimitType_free; +asn_struct_print_f SpeedLimitType_print; +asn_constr_check_f SpeedLimitType_constraint; +ber_type_decoder_f SpeedLimitType_decode_ber; +der_type_encoder_f SpeedLimitType_encode_der; +xer_type_decoder_f SpeedLimitType_decode_xer; +xer_type_encoder_f SpeedLimitType_encode_xer; +oer_type_decoder_f SpeedLimitType_decode_oer; +oer_type_encoder_f SpeedLimitType_encode_oer; +per_type_decoder_f SpeedLimitType_decode_uper; +per_type_encoder_f SpeedLimitType_encode_uper; +per_type_decoder_f SpeedLimitType_decode_aper; +per_type_encoder_f SpeedLimitType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitType_H_ */ +#include diff --git a/vcits/srem/SpeedValue.h b/vcits/srem/SpeedValue.h new file mode 100644 index 0000000..1809869 --- /dev/null +++ b/vcits/srem/SpeedValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SpeedValue_H_ +#define _SpeedValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedValue { + SpeedValue_standstill = 0, + SpeedValue_oneCentimeterPerSec = 1, + SpeedValue_unavailable = 16383 +} e_SpeedValue; + +/* SpeedValue */ +typedef long SpeedValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedValue; +asn_struct_free_f SpeedValue_free; +asn_struct_print_f SpeedValue_print; +asn_constr_check_f SpeedValue_constraint; +ber_type_decoder_f SpeedValue_decode_ber; +der_type_encoder_f SpeedValue_encode_der; +xer_type_decoder_f SpeedValue_decode_xer; +xer_type_encoder_f SpeedValue_encode_xer; +oer_type_decoder_f SpeedValue_decode_oer; +oer_type_encoder_f SpeedValue_encode_oer; +per_type_decoder_f SpeedValue_decode_uper; +per_type_encoder_f SpeedValue_encode_uper; +per_type_decoder_f SpeedValue_decode_aper; +per_type_encoder_f SpeedValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedValue_H_ */ +#include diff --git a/vcits/srem/SpeedandHeadingandThrottleConfidence.h b/vcits/srem/SpeedandHeadingandThrottleConfidence.h new file mode 100644 index 0000000..ef1d3a0 --- /dev/null +++ b/vcits/srem/SpeedandHeadingandThrottleConfidence.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SpeedandHeadingandThrottleConfidence_H_ +#define _SpeedandHeadingandThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingConfidenceDSRC.h" +#include "SpeedConfidenceDSRC.h" +#include "ThrottleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedandHeadingandThrottleConfidence */ +typedef struct SpeedandHeadingandThrottleConfidence { + HeadingConfidenceDSRC_t heading; + SpeedConfidenceDSRC_t speed; + ThrottleConfidence_t throttle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedandHeadingandThrottleConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedandHeadingandThrottleConfidence_H_ */ +#include diff --git a/vcits/srem/StartTime.h b/vcits/srem/StartTime.h new file mode 100644 index 0000000..c43dee6 --- /dev/null +++ b/vcits/srem/StartTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _StartTime_H_ +#define _StartTime_H_ + + +#include + +/* Including external dependencies */ +#include "AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* StartTime */ +typedef AviEriDateTime_t StartTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StartTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StartTime; +asn_struct_free_f StartTime_free; +asn_struct_print_f StartTime_print; +asn_constr_check_f StartTime_constraint; +ber_type_decoder_f StartTime_decode_ber; +der_type_encoder_f StartTime_encode_der; +xer_type_decoder_f StartTime_decode_xer; +xer_type_encoder_f StartTime_encode_xer; +oer_type_decoder_f StartTime_decode_oer; +oer_type_encoder_f StartTime_encode_oer; +per_type_decoder_f StartTime_decode_uper; +per_type_encoder_f StartTime_encode_uper; +per_type_decoder_f StartTime_decode_aper; +per_type_encoder_f StartTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StartTime_H_ */ +#include diff --git a/vcits/srem/StationID.h b/vcits/srem/StationID.h new file mode 100644 index 0000000..50ff3ec --- /dev/null +++ b/vcits/srem/StationID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _StationID_H_ +#define _StationID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* StationID */ +typedef unsigned long StationID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationID; +extern const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1; +asn_struct_free_f StationID_free; +asn_struct_print_f StationID_print; +asn_constr_check_f StationID_constraint; +ber_type_decoder_f StationID_decode_ber; +der_type_encoder_f StationID_encode_der; +xer_type_decoder_f StationID_decode_xer; +xer_type_encoder_f StationID_encode_xer; +oer_type_decoder_f StationID_decode_oer; +oer_type_encoder_f StationID_encode_oer; +per_type_decoder_f StationID_decode_uper; +per_type_encoder_f StationID_encode_uper; +per_type_decoder_f StationID_decode_aper; +per_type_encoder_f StationID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationID_H_ */ +#include diff --git a/vcits/srem/StationType.h b/vcits/srem/StationType.h new file mode 100644 index 0000000..f97c6f6 --- /dev/null +++ b/vcits/srem/StationType.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _StationType_H_ +#define _StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationType { + StationType_unknown = 0, + StationType_pedestrian = 1, + StationType_cyclist = 2, + StationType_moped = 3, + StationType_motorcycle = 4, + StationType_passengerCar = 5, + StationType_bus = 6, + StationType_lightTruck = 7, + StationType_heavyTruck = 8, + StationType_trailer = 9, + StationType_specialVehicles = 10, + StationType_tram = 11, + StationType_roadSideUnit = 15 +} e_StationType; + +/* StationType */ +typedef long StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationType; +asn_struct_free_f StationType_free; +asn_struct_print_f StationType_print; +asn_constr_check_f StationType_constraint; +ber_type_decoder_f StationType_decode_ber; +der_type_encoder_f StationType_encode_der; +xer_type_decoder_f StationType_decode_xer; +xer_type_encoder_f StationType_encode_xer; +oer_type_decoder_f StationType_decode_oer; +oer_type_encoder_f StationType_encode_oer; +per_type_decoder_f StationType_decode_uper; +per_type_encoder_f StationType_encode_uper; +per_type_decoder_f StationType_decode_aper; +per_type_encoder_f StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationType_H_ */ +#include diff --git a/vcits/srem/StationarySince.h b/vcits/srem/StationarySince.h new file mode 100644 index 0000000..0b96282 --- /dev/null +++ b/vcits/srem/StationarySince.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _StationarySince_H_ +#define _StationarySince_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationarySince { + StationarySince_lessThan1Minute = 0, + StationarySince_lessThan2Minutes = 1, + StationarySince_lessThan15Minutes = 2, + StationarySince_equalOrGreater15Minutes = 3 +} e_StationarySince; + +/* StationarySince */ +typedef long StationarySince_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationarySince; +asn_struct_free_f StationarySince_free; +asn_struct_print_f StationarySince_print; +asn_constr_check_f StationarySince_constraint; +ber_type_decoder_f StationarySince_decode_ber; +der_type_encoder_f StationarySince_encode_der; +xer_type_decoder_f StationarySince_decode_xer; +xer_type_encoder_f StationarySince_encode_xer; +oer_type_decoder_f StationarySince_decode_oer; +oer_type_encoder_f StationarySince_encode_oer; +per_type_decoder_f StationarySince_decode_uper; +per_type_encoder_f StationarySince_encode_uper; +per_type_decoder_f StationarySince_decode_aper; +per_type_encoder_f StationarySince_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationarySince_H_ */ +#include diff --git a/vcits/srem/StationaryVehicleSubCauseCode.h b/vcits/srem/StationaryVehicleSubCauseCode.h new file mode 100644 index 0000000..2d75b99 --- /dev/null +++ b/vcits/srem/StationaryVehicleSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _StationaryVehicleSubCauseCode_H_ +#define _StationaryVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationaryVehicleSubCauseCode { + StationaryVehicleSubCauseCode_unavailable = 0, + StationaryVehicleSubCauseCode_humanProblem = 1, + StationaryVehicleSubCauseCode_vehicleBreakdown = 2, + StationaryVehicleSubCauseCode_postCrash = 3, + StationaryVehicleSubCauseCode_publicTransportStop = 4, + StationaryVehicleSubCauseCode_carryingDangerousGoods = 5 +} e_StationaryVehicleSubCauseCode; + +/* StationaryVehicleSubCauseCode */ +typedef long StationaryVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode; +asn_struct_free_f StationaryVehicleSubCauseCode_free; +asn_struct_print_f StationaryVehicleSubCauseCode_print; +asn_constr_check_f StationaryVehicleSubCauseCode_constraint; +ber_type_decoder_f StationaryVehicleSubCauseCode_decode_ber; +der_type_encoder_f StationaryVehicleSubCauseCode_encode_der; +xer_type_decoder_f StationaryVehicleSubCauseCode_decode_xer; +xer_type_encoder_f StationaryVehicleSubCauseCode_encode_xer; +oer_type_decoder_f StationaryVehicleSubCauseCode_decode_oer; +oer_type_encoder_f StationaryVehicleSubCauseCode_encode_oer; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_uper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_uper; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_aper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationaryVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/srem/SteeringWheelAngle.h b/vcits/srem/SteeringWheelAngle.h new file mode 100644 index 0000000..2500aa3 --- /dev/null +++ b/vcits/srem/SteeringWheelAngle.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SteeringWheelAngle_H_ +#define _SteeringWheelAngle_H_ + + +#include + +/* Including external dependencies */ +#include "SteeringWheelAngleValue.h" +#include "SteeringWheelAngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SteeringWheelAngle */ +typedef struct SteeringWheelAngle { + SteeringWheelAngleValue_t steeringWheelAngleValue; + SteeringWheelAngleConfidence_t steeringWheelAngleConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SteeringWheelAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngle_H_ */ +#include diff --git a/vcits/srem/SteeringWheelAngleConfidence.h b/vcits/srem/SteeringWheelAngleConfidence.h new file mode 100644 index 0000000..852056d --- /dev/null +++ b/vcits/srem/SteeringWheelAngleConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SteeringWheelAngleConfidence_H_ +#define _SteeringWheelAngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleConfidence { + SteeringWheelAngleConfidence_equalOrWithinOnePointFiveDegree = 1, + SteeringWheelAngleConfidence_outOfRange = 126, + SteeringWheelAngleConfidence_unavailable = 127 +} e_SteeringWheelAngleConfidence; + +/* SteeringWheelAngleConfidence */ +typedef long SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence; +asn_struct_free_f SteeringWheelAngleConfidence_free; +asn_struct_print_f SteeringWheelAngleConfidence_print; +asn_constr_check_f SteeringWheelAngleConfidence_constraint; +ber_type_decoder_f SteeringWheelAngleConfidence_decode_ber; +der_type_encoder_f SteeringWheelAngleConfidence_encode_der; +xer_type_decoder_f SteeringWheelAngleConfidence_decode_xer; +xer_type_encoder_f SteeringWheelAngleConfidence_encode_xer; +oer_type_decoder_f SteeringWheelAngleConfidence_decode_oer; +oer_type_encoder_f SteeringWheelAngleConfidence_encode_oer; +per_type_decoder_f SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleConfidence_H_ */ +#include diff --git a/vcits/srem/SteeringWheelAngleValue.h b/vcits/srem/SteeringWheelAngleValue.h new file mode 100644 index 0000000..312d1f1 --- /dev/null +++ b/vcits/srem/SteeringWheelAngleValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SteeringWheelAngleValue_H_ +#define _SteeringWheelAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleValue { + SteeringWheelAngleValue_straight = 0, + SteeringWheelAngleValue_onePointFiveDegreesToRight = -1, + SteeringWheelAngleValue_onePointFiveDegreesToLeft = 1, + SteeringWheelAngleValue_unavailable = 512 +} e_SteeringWheelAngleValue; + +/* SteeringWheelAngleValue */ +typedef long SteeringWheelAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue; +asn_struct_free_f SteeringWheelAngleValue_free; +asn_struct_print_f SteeringWheelAngleValue_print; +asn_constr_check_f SteeringWheelAngleValue_constraint; +ber_type_decoder_f SteeringWheelAngleValue_decode_ber; +der_type_encoder_f SteeringWheelAngleValue_encode_der; +xer_type_decoder_f SteeringWheelAngleValue_decode_xer; +xer_type_encoder_f SteeringWheelAngleValue_encode_xer; +oer_type_decoder_f SteeringWheelAngleValue_decode_oer; +oer_type_encoder_f SteeringWheelAngleValue_encode_oer; +per_type_decoder_f SteeringWheelAngleValue_decode_uper; +per_type_encoder_f SteeringWheelAngleValue_encode_uper; +per_type_decoder_f SteeringWheelAngleValue_decode_aper; +per_type_encoder_f SteeringWheelAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleValue_H_ */ +#include diff --git a/vcits/srem/StopTime.h b/vcits/srem/StopTime.h new file mode 100644 index 0000000..4086c71 --- /dev/null +++ b/vcits/srem/StopTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _StopTime_H_ +#define _StopTime_H_ + + +#include + +/* Including external dependencies */ +#include "AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* StopTime */ +typedef AviEriDateTime_t StopTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StopTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StopTime; +asn_struct_free_f StopTime_free; +asn_struct_print_f StopTime_print; +asn_constr_check_f StopTime_constraint; +ber_type_decoder_f StopTime_decode_ber; +der_type_encoder_f StopTime_encode_der; +xer_type_decoder_f StopTime_decode_xer; +xer_type_encoder_f StopTime_encode_xer; +oer_type_decoder_f StopTime_decode_oer; +oer_type_encoder_f StopTime_encode_oer; +per_type_decoder_f StopTime_decode_uper; +per_type_encoder_f StopTime_encode_uper; +per_type_decoder_f StopTime_decode_aper; +per_type_encoder_f StopTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StopTime_H_ */ +#include diff --git a/vcits/srem/SubCauseCodeType.h b/vcits/srem/SubCauseCodeType.h new file mode 100644 index 0000000..621631d --- /dev/null +++ b/vcits/srem/SubCauseCodeType.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _SubCauseCodeType_H_ +#define _SubCauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SubCauseCodeType */ +typedef long SubCauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType; +asn_struct_free_f SubCauseCodeType_free; +asn_struct_print_f SubCauseCodeType_print; +asn_constr_check_f SubCauseCodeType_constraint; +ber_type_decoder_f SubCauseCodeType_decode_ber; +der_type_encoder_f SubCauseCodeType_encode_der; +xer_type_decoder_f SubCauseCodeType_decode_xer; +xer_type_encoder_f SubCauseCodeType_encode_xer; +oer_type_decoder_f SubCauseCodeType_decode_oer; +oer_type_encoder_f SubCauseCodeType_encode_oer; +per_type_decoder_f SubCauseCodeType_decode_uper; +per_type_encoder_f SubCauseCodeType_encode_uper; +per_type_decoder_f SubCauseCodeType_decode_aper; +per_type_encoder_f SubCauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SubCauseCodeType_H_ */ +#include diff --git a/vcits/srem/TaxCode.h b/vcits/srem/TaxCode.h new file mode 100644 index 0000000..10aaba3 --- /dev/null +++ b/vcits/srem/TaxCode.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TaxCode_H_ +#define _TaxCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TaxCode */ +typedef OCTET_STRING_t TaxCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TaxCode; +asn_struct_free_f TaxCode_free; +asn_struct_print_f TaxCode_print; +asn_constr_check_f TaxCode_constraint; +ber_type_decoder_f TaxCode_decode_ber; +der_type_encoder_f TaxCode_encode_der; +xer_type_decoder_f TaxCode_decode_xer; +xer_type_encoder_f TaxCode_encode_xer; +oer_type_decoder_f TaxCode_decode_oer; +oer_type_encoder_f TaxCode_encode_oer; +per_type_decoder_f TaxCode_decode_uper; +per_type_encoder_f TaxCode_encode_uper; +per_type_decoder_f TaxCode_decode_aper; +per_type_encoder_f TaxCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TaxCode_H_ */ +#include diff --git a/vcits/srem/Temperature.h b/vcits/srem/Temperature.h new file mode 100644 index 0000000..0b5a27d --- /dev/null +++ b/vcits/srem/Temperature.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Temperature_H_ +#define _Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Temperature { + Temperature_equalOrSmallerThanMinus60Deg = -60, + Temperature_oneDegreeCelsius = 1, + Temperature_equalOrGreaterThan67Deg = 67 +} e_Temperature; + +/* Temperature */ +typedef long Temperature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Temperature; +asn_struct_free_f Temperature_free; +asn_struct_print_f Temperature_print; +asn_constr_check_f Temperature_constraint; +ber_type_decoder_f Temperature_decode_ber; +der_type_encoder_f Temperature_encode_der; +xer_type_decoder_f Temperature_decode_xer; +xer_type_encoder_f Temperature_encode_xer; +oer_type_decoder_f Temperature_decode_oer; +oer_type_encoder_f Temperature_encode_oer; +per_type_decoder_f Temperature_decode_uper; +per_type_encoder_f Temperature_encode_uper; +per_type_decoder_f Temperature_decode_aper; +per_type_encoder_f Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Temperature_H_ */ +#include diff --git a/vcits/srem/TemporaryID.h b/vcits/srem/TemporaryID.h new file mode 100644 index 0000000..0c00ac4 --- /dev/null +++ b/vcits/srem/TemporaryID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TemporaryID_H_ +#define _TemporaryID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TemporaryID */ +typedef OCTET_STRING_t TemporaryID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TemporaryID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TemporaryID; +asn_struct_free_f TemporaryID_free; +asn_struct_print_f TemporaryID_print; +asn_constr_check_f TemporaryID_constraint; +ber_type_decoder_f TemporaryID_decode_ber; +der_type_encoder_f TemporaryID_encode_der; +xer_type_decoder_f TemporaryID_decode_xer; +xer_type_encoder_f TemporaryID_encode_xer; +oer_type_decoder_f TemporaryID_decode_oer; +oer_type_encoder_f TemporaryID_encode_oer; +per_type_decoder_f TemporaryID_decode_uper; +per_type_encoder_f TemporaryID_encode_uper; +per_type_decoder_f TemporaryID_decode_aper; +per_type_encoder_f TemporaryID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TemporaryID_H_ */ +#include diff --git a/vcits/srem/ThrottleConfidence.h b/vcits/srem/ThrottleConfidence.h new file mode 100644 index 0000000..199515b --- /dev/null +++ b/vcits/srem/ThrottleConfidence.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ThrottleConfidence_H_ +#define _ThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ThrottleConfidence { + ThrottleConfidence_unavailable = 0, + ThrottleConfidence_prec10percent = 1, + ThrottleConfidence_prec1percent = 2, + ThrottleConfidence_prec0_5percent = 3 +} e_ThrottleConfidence; + +/* ThrottleConfidence */ +typedef long ThrottleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1; +asn_struct_free_f ThrottleConfidence_free; +asn_struct_print_f ThrottleConfidence_print; +asn_constr_check_f ThrottleConfidence_constraint; +ber_type_decoder_f ThrottleConfidence_decode_ber; +der_type_encoder_f ThrottleConfidence_encode_der; +xer_type_decoder_f ThrottleConfidence_decode_xer; +xer_type_encoder_f ThrottleConfidence_encode_xer; +oer_type_decoder_f ThrottleConfidence_decode_oer; +oer_type_encoder_f ThrottleConfidence_encode_oer; +per_type_decoder_f ThrottleConfidence_decode_uper; +per_type_encoder_f ThrottleConfidence_encode_uper; +per_type_decoder_f ThrottleConfidence_decode_aper; +per_type_encoder_f ThrottleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ThrottleConfidence_H_ */ +#include diff --git a/vcits/srem/TimeChangeDetails.h b/vcits/srem/TimeChangeDetails.h new file mode 100644 index 0000000..0ea5b77 --- /dev/null +++ b/vcits/srem/TimeChangeDetails.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TimeChangeDetails_H_ +#define _TimeChangeDetails_H_ + + +#include + +/* Including external dependencies */ +#include "TimeMark.h" +#include "TimeIntervalConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeChangeDetails */ +typedef struct TimeChangeDetails { + TimeMark_t *startTime; /* OPTIONAL */ + TimeMark_t minEndTime; + TimeMark_t *maxEndTime; /* OPTIONAL */ + TimeMark_t *likelyTime; /* OPTIONAL */ + TimeIntervalConfidence_t *confidence; /* OPTIONAL */ + TimeMark_t *nextTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TimeChangeDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeChangeDetails_H_ */ +#include diff --git a/vcits/srem/TimeConfidence.h b/vcits/srem/TimeConfidence.h new file mode 100644 index 0000000..9bc376f --- /dev/null +++ b/vcits/srem/TimeConfidence.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TimeConfidence_H_ +#define _TimeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeConfidence { + TimeConfidence_unavailable = 0, + TimeConfidence_time_100_000 = 1, + TimeConfidence_time_050_000 = 2, + TimeConfidence_time_020_000 = 3, + TimeConfidence_time_010_000 = 4, + TimeConfidence_time_002_000 = 5, + TimeConfidence_time_001_000 = 6, + TimeConfidence_time_000_500 = 7, + TimeConfidence_time_000_200 = 8, + TimeConfidence_time_000_100 = 9, + TimeConfidence_time_000_050 = 10, + TimeConfidence_time_000_020 = 11, + TimeConfidence_time_000_010 = 12, + TimeConfidence_time_000_005 = 13, + TimeConfidence_time_000_002 = 14, + TimeConfidence_time_000_001 = 15, + TimeConfidence_time_000_000_5 = 16, + TimeConfidence_time_000_000_2 = 17, + TimeConfidence_time_000_000_1 = 18, + TimeConfidence_time_000_000_05 = 19, + TimeConfidence_time_000_000_02 = 20, + TimeConfidence_time_000_000_01 = 21, + TimeConfidence_time_000_000_005 = 22, + TimeConfidence_time_000_000_002 = 23, + TimeConfidence_time_000_000_001 = 24, + TimeConfidence_time_000_000_000_5 = 25, + TimeConfidence_time_000_000_000_2 = 26, + TimeConfidence_time_000_000_000_1 = 27, + TimeConfidence_time_000_000_000_05 = 28, + TimeConfidence_time_000_000_000_02 = 29, + TimeConfidence_time_000_000_000_01 = 30, + TimeConfidence_time_000_000_000_005 = 31, + TimeConfidence_time_000_000_000_002 = 32, + TimeConfidence_time_000_000_000_001 = 33, + TimeConfidence_time_000_000_000_000_5 = 34, + TimeConfidence_time_000_000_000_000_2 = 35, + TimeConfidence_time_000_000_000_000_1 = 36, + TimeConfidence_time_000_000_000_000_05 = 37, + TimeConfidence_time_000_000_000_000_02 = 38, + TimeConfidence_time_000_000_000_000_01 = 39 +} e_TimeConfidence; + +/* TimeConfidence */ +typedef long TimeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1; +asn_struct_free_f TimeConfidence_free; +asn_struct_print_f TimeConfidence_print; +asn_constr_check_f TimeConfidence_constraint; +ber_type_decoder_f TimeConfidence_decode_ber; +der_type_encoder_f TimeConfidence_encode_der; +xer_type_decoder_f TimeConfidence_decode_xer; +xer_type_encoder_f TimeConfidence_encode_xer; +oer_type_decoder_f TimeConfidence_decode_oer; +oer_type_encoder_f TimeConfidence_encode_oer; +per_type_decoder_f TimeConfidence_decode_uper; +per_type_encoder_f TimeConfidence_encode_uper; +per_type_decoder_f TimeConfidence_decode_aper; +per_type_encoder_f TimeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeConfidence_H_ */ +#include diff --git a/vcits/srem/TimeIntervalConfidence.h b/vcits/srem/TimeIntervalConfidence.h new file mode 100644 index 0000000..b54e97f --- /dev/null +++ b/vcits/srem/TimeIntervalConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TimeIntervalConfidence_H_ +#define _TimeIntervalConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeIntervalConfidence */ +typedef long TimeIntervalConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence; +asn_struct_free_f TimeIntervalConfidence_free; +asn_struct_print_f TimeIntervalConfidence_print; +asn_constr_check_f TimeIntervalConfidence_constraint; +ber_type_decoder_f TimeIntervalConfidence_decode_ber; +der_type_encoder_f TimeIntervalConfidence_encode_der; +xer_type_decoder_f TimeIntervalConfidence_decode_xer; +xer_type_encoder_f TimeIntervalConfidence_encode_xer; +oer_type_decoder_f TimeIntervalConfidence_decode_oer; +oer_type_encoder_f TimeIntervalConfidence_encode_oer; +per_type_decoder_f TimeIntervalConfidence_decode_uper; +per_type_encoder_f TimeIntervalConfidence_encode_uper; +per_type_decoder_f TimeIntervalConfidence_decode_aper; +per_type_encoder_f TimeIntervalConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeIntervalConfidence_H_ */ +#include diff --git a/vcits/srem/TimeMark.h b/vcits/srem/TimeMark.h new file mode 100644 index 0000000..9d6c6ee --- /dev/null +++ b/vcits/srem/TimeMark.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TimeMark_H_ +#define _TimeMark_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeMark */ +typedef long TimeMark_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeMark_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeMark; +asn_struct_free_f TimeMark_free; +asn_struct_print_f TimeMark_print; +asn_constr_check_f TimeMark_constraint; +ber_type_decoder_f TimeMark_decode_ber; +der_type_encoder_f TimeMark_encode_der; +xer_type_decoder_f TimeMark_decode_xer; +xer_type_encoder_f TimeMark_encode_xer; +oer_type_decoder_f TimeMark_decode_oer; +oer_type_encoder_f TimeMark_encode_oer; +per_type_decoder_f TimeMark_decode_uper; +per_type_encoder_f TimeMark_encode_uper; +per_type_decoder_f TimeMark_decode_aper; +per_type_encoder_f TimeMark_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeMark_H_ */ +#include diff --git a/vcits/srem/TimeReference.h b/vcits/srem/TimeReference.h new file mode 100644 index 0000000..e64bb70 --- /dev/null +++ b/vcits/srem/TimeReference.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TimeReference_H_ +#define _TimeReference_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeReference { + TimeReference_oneMilliSec = 1 +} e_TimeReference; + +/* TimeReference */ +typedef long TimeReference_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeReference_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeReference; +asn_struct_free_f TimeReference_free; +asn_struct_print_f TimeReference_print; +asn_constr_check_f TimeReference_constraint; +ber_type_decoder_f TimeReference_decode_ber; +der_type_encoder_f TimeReference_encode_der; +xer_type_decoder_f TimeReference_decode_xer; +xer_type_encoder_f TimeReference_encode_xer; +oer_type_decoder_f TimeReference_decode_oer; +oer_type_encoder_f TimeReference_encode_oer; +per_type_decoder_f TimeReference_decode_uper; +per_type_encoder_f TimeReference_encode_uper; +per_type_decoder_f TimeReference_decode_aper; +per_type_encoder_f TimeReference_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeReference_H_ */ +#include diff --git a/vcits/srem/TimestampIts.h b/vcits/srem/TimestampIts.h new file mode 100644 index 0000000..4846a94 --- /dev/null +++ b/vcits/srem/TimestampIts.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TimestampIts_H_ +#define _TimestampIts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimestampIts { + TimestampIts_utcStartOf2004 = 0, + TimestampIts_oneMillisecAfterUTCStartOf2004 = 1 +} e_TimestampIts; + +/* TimestampIts */ +typedef INTEGER_t TimestampIts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimestampIts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimestampIts; +asn_struct_free_f TimestampIts_free; +asn_struct_print_f TimestampIts_print; +asn_constr_check_f TimestampIts_constraint; +ber_type_decoder_f TimestampIts_decode_ber; +der_type_encoder_f TimestampIts_encode_der; +xer_type_decoder_f TimestampIts_decode_xer; +xer_type_encoder_f TimestampIts_encode_xer; +oer_type_decoder_f TimestampIts_decode_oer; +oer_type_encoder_f TimestampIts_encode_oer; +per_type_decoder_f TimestampIts_decode_uper; +per_type_encoder_f TimestampIts_encode_uper; +per_type_decoder_f TimestampIts_decode_aper; +per_type_encoder_f TimestampIts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimestampIts_H_ */ +#include diff --git a/vcits/srem/Traces.h b/vcits/srem/Traces.h new file mode 100644 index 0000000..7fb8153 --- /dev/null +++ b/vcits/srem/Traces.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Traces_H_ +#define _Traces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathHistory; + +/* Traces */ +typedef struct Traces { + A_SEQUENCE_OF(struct PathHistory) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Traces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Traces; + +#ifdef __cplusplus +} +#endif + +#endif /* _Traces_H_ */ +#include diff --git a/vcits/srem/TrafficConditionSubCauseCode.h b/vcits/srem/TrafficConditionSubCauseCode.h new file mode 100644 index 0000000..6597db9 --- /dev/null +++ b/vcits/srem/TrafficConditionSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TrafficConditionSubCauseCode_H_ +#define _TrafficConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficConditionSubCauseCode { + TrafficConditionSubCauseCode_unavailable = 0, + TrafficConditionSubCauseCode_increasedVolumeOfTraffic = 1, + TrafficConditionSubCauseCode_trafficJamSlowlyIncreasing = 2, + TrafficConditionSubCauseCode_trafficJamIncreasing = 3, + TrafficConditionSubCauseCode_trafficJamStronglyIncreasing = 4, + TrafficConditionSubCauseCode_trafficStationary = 5, + TrafficConditionSubCauseCode_trafficJamSlightlyDecreasing = 6, + TrafficConditionSubCauseCode_trafficJamDecreasing = 7, + TrafficConditionSubCauseCode_trafficJamStronglyDecreasing = 8 +} e_TrafficConditionSubCauseCode; + +/* TrafficConditionSubCauseCode */ +typedef long TrafficConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode; +asn_struct_free_f TrafficConditionSubCauseCode_free; +asn_struct_print_f TrafficConditionSubCauseCode_print; +asn_constr_check_f TrafficConditionSubCauseCode_constraint; +ber_type_decoder_f TrafficConditionSubCauseCode_decode_ber; +der_type_encoder_f TrafficConditionSubCauseCode_encode_der; +xer_type_decoder_f TrafficConditionSubCauseCode_decode_xer; +xer_type_encoder_f TrafficConditionSubCauseCode_encode_xer; +oer_type_decoder_f TrafficConditionSubCauseCode_decode_oer; +oer_type_encoder_f TrafficConditionSubCauseCode_encode_oer; +per_type_decoder_f TrafficConditionSubCauseCode_decode_uper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_uper; +per_type_decoder_f TrafficConditionSubCauseCode_decode_aper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficConditionSubCauseCode_H_ */ +#include diff --git a/vcits/srem/TrafficRule.h b/vcits/srem/TrafficRule.h new file mode 100644 index 0000000..4554897 --- /dev/null +++ b/vcits/srem/TrafficRule.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TrafficRule_H_ +#define _TrafficRule_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficRule { + TrafficRule_noPassing = 0, + TrafficRule_noPassingForTrucks = 1, + TrafficRule_passToRight = 2, + TrafficRule_passToLeft = 3 + /* + * Enumeration is extensible + */ +} e_TrafficRule; + +/* TrafficRule */ +typedef long TrafficRule_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficRule; +asn_struct_free_f TrafficRule_free; +asn_struct_print_f TrafficRule_print; +asn_constr_check_f TrafficRule_constraint; +ber_type_decoder_f TrafficRule_decode_ber; +der_type_encoder_f TrafficRule_encode_der; +xer_type_decoder_f TrafficRule_decode_xer; +xer_type_encoder_f TrafficRule_encode_xer; +oer_type_decoder_f TrafficRule_decode_oer; +oer_type_encoder_f TrafficRule_encode_oer; +per_type_decoder_f TrafficRule_decode_uper; +per_type_encoder_f TrafficRule_encode_uper; +per_type_decoder_f TrafficRule_decode_aper; +per_type_encoder_f TrafficRule_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficRule_H_ */ +#include diff --git a/vcits/srem/TransitVehicleOccupancy.h b/vcits/srem/TransitVehicleOccupancy.h new file mode 100644 index 0000000..6c6aa7e --- /dev/null +++ b/vcits/srem/TransitVehicleOccupancy.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TransitVehicleOccupancy_H_ +#define _TransitVehicleOccupancy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleOccupancy { + TransitVehicleOccupancy_occupancyUnknown = 0, + TransitVehicleOccupancy_occupancyEmpty = 1, + TransitVehicleOccupancy_occupancyVeryLow = 2, + TransitVehicleOccupancy_occupancyLow = 3, + TransitVehicleOccupancy_occupancyMed = 4, + TransitVehicleOccupancy_occupancyHigh = 5, + TransitVehicleOccupancy_occupancyNearlyFull = 6, + TransitVehicleOccupancy_occupancyFull = 7 +} e_TransitVehicleOccupancy; + +/* TransitVehicleOccupancy */ +typedef long TransitVehicleOccupancy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy; +extern const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1; +asn_struct_free_f TransitVehicleOccupancy_free; +asn_struct_print_f TransitVehicleOccupancy_print; +asn_constr_check_f TransitVehicleOccupancy_constraint; +ber_type_decoder_f TransitVehicleOccupancy_decode_ber; +der_type_encoder_f TransitVehicleOccupancy_encode_der; +xer_type_decoder_f TransitVehicleOccupancy_decode_xer; +xer_type_encoder_f TransitVehicleOccupancy_encode_xer; +oer_type_decoder_f TransitVehicleOccupancy_decode_oer; +oer_type_encoder_f TransitVehicleOccupancy_encode_oer; +per_type_decoder_f TransitVehicleOccupancy_decode_uper; +per_type_encoder_f TransitVehicleOccupancy_encode_uper; +per_type_decoder_f TransitVehicleOccupancy_decode_aper; +per_type_encoder_f TransitVehicleOccupancy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleOccupancy_H_ */ +#include diff --git a/vcits/srem/TransitVehicleStatus.h b/vcits/srem/TransitVehicleStatus.h new file mode 100644 index 0000000..4c8dcef --- /dev/null +++ b/vcits/srem/TransitVehicleStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TransitVehicleStatus_H_ +#define _TransitVehicleStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleStatus { + TransitVehicleStatus_loading = 0, + TransitVehicleStatus_anADAuse = 1, + TransitVehicleStatus_aBikeLoad = 2, + TransitVehicleStatus_doorOpen = 3, + TransitVehicleStatus_charging = 4, + TransitVehicleStatus_atStopLine = 5 +} e_TransitVehicleStatus; + +/* TransitVehicleStatus */ +typedef BIT_STRING_t TransitVehicleStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus; +asn_struct_free_f TransitVehicleStatus_free; +asn_struct_print_f TransitVehicleStatus_print; +asn_constr_check_f TransitVehicleStatus_constraint; +ber_type_decoder_f TransitVehicleStatus_decode_ber; +der_type_encoder_f TransitVehicleStatus_encode_der; +xer_type_decoder_f TransitVehicleStatus_decode_xer; +xer_type_encoder_f TransitVehicleStatus_encode_xer; +oer_type_decoder_f TransitVehicleStatus_decode_oer; +oer_type_encoder_f TransitVehicleStatus_encode_oer; +per_type_decoder_f TransitVehicleStatus_decode_uper; +per_type_encoder_f TransitVehicleStatus_encode_uper; +per_type_decoder_f TransitVehicleStatus_decode_aper; +per_type_encoder_f TransitVehicleStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleStatus_H_ */ +#include diff --git a/vcits/srem/TransmissionAndSpeed.h b/vcits/srem/TransmissionAndSpeed.h new file mode 100644 index 0000000..f113f9a --- /dev/null +++ b/vcits/srem/TransmissionAndSpeed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TransmissionAndSpeed_H_ +#define _TransmissionAndSpeed_H_ + + +#include + +/* Including external dependencies */ +#include "TransmissionState.h" +#include "Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TransmissionAndSpeed */ +typedef struct TransmissionAndSpeed { + TransmissionState_t transmisson; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TransmissionAndSpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionAndSpeed_H_ */ +#include diff --git a/vcits/srem/TransmissionInterval.h b/vcits/srem/TransmissionInterval.h new file mode 100644 index 0000000..b429251 --- /dev/null +++ b/vcits/srem/TransmissionInterval.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TransmissionInterval_H_ +#define _TransmissionInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionInterval { + TransmissionInterval_oneMilliSecond = 1, + TransmissionInterval_tenSeconds = 10000 +} e_TransmissionInterval; + +/* TransmissionInterval */ +typedef long TransmissionInterval_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionInterval; +asn_struct_free_f TransmissionInterval_free; +asn_struct_print_f TransmissionInterval_print; +asn_constr_check_f TransmissionInterval_constraint; +ber_type_decoder_f TransmissionInterval_decode_ber; +der_type_encoder_f TransmissionInterval_encode_der; +xer_type_decoder_f TransmissionInterval_decode_xer; +xer_type_encoder_f TransmissionInterval_encode_xer; +oer_type_decoder_f TransmissionInterval_decode_oer; +oer_type_encoder_f TransmissionInterval_encode_oer; +per_type_decoder_f TransmissionInterval_decode_uper; +per_type_encoder_f TransmissionInterval_encode_uper; +per_type_decoder_f TransmissionInterval_decode_aper; +per_type_encoder_f TransmissionInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionInterval_H_ */ +#include diff --git a/vcits/srem/TransmissionState.h b/vcits/srem/TransmissionState.h new file mode 100644 index 0000000..8a14369 --- /dev/null +++ b/vcits/srem/TransmissionState.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TransmissionState_H_ +#define _TransmissionState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionState { + TransmissionState_neutral = 0, + TransmissionState_park = 1, + TransmissionState_forwardGears = 2, + TransmissionState_reverseGears = 3, + TransmissionState_reserved1 = 4, + TransmissionState_reserved2 = 5, + TransmissionState_reserved3 = 6, + TransmissionState_unavailable = 7 +} e_TransmissionState; + +/* TransmissionState */ +typedef long TransmissionState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransmissionState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransmissionState; +extern const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1; +asn_struct_free_f TransmissionState_free; +asn_struct_print_f TransmissionState_print; +asn_constr_check_f TransmissionState_constraint; +ber_type_decoder_f TransmissionState_decode_ber; +der_type_encoder_f TransmissionState_encode_der; +xer_type_decoder_f TransmissionState_decode_xer; +xer_type_encoder_f TransmissionState_encode_xer; +oer_type_decoder_f TransmissionState_decode_oer; +oer_type_encoder_f TransmissionState_encode_oer; +per_type_decoder_f TransmissionState_decode_uper; +per_type_encoder_f TransmissionState_encode_uper; +per_type_decoder_f TransmissionState_decode_aper; +per_type_encoder_f TransmissionState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionState_H_ */ +#include diff --git a/vcits/srem/TurningRadius.h b/vcits/srem/TurningRadius.h new file mode 100644 index 0000000..a75cc03 --- /dev/null +++ b/vcits/srem/TurningRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _TurningRadius_H_ +#define _TurningRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TurningRadius { + TurningRadius_point4Meters = 1, + TurningRadius_unavailable = 255 +} e_TurningRadius; + +/* TurningRadius */ +typedef long TurningRadius_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TurningRadius; +asn_struct_free_f TurningRadius_free; +asn_struct_print_f TurningRadius_print; +asn_constr_check_f TurningRadius_constraint; +ber_type_decoder_f TurningRadius_decode_ber; +der_type_encoder_f TurningRadius_encode_der; +xer_type_decoder_f TurningRadius_decode_xer; +xer_type_encoder_f TurningRadius_encode_xer; +oer_type_decoder_f TurningRadius_decode_oer; +oer_type_encoder_f TurningRadius_encode_oer; +per_type_decoder_f TurningRadius_decode_uper; +per_type_encoder_f TurningRadius_encode_uper; +per_type_decoder_f TurningRadius_decode_aper; +per_type_encoder_f TurningRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TurningRadius_H_ */ +#include diff --git a/vcits/srem/VDS.h b/vcits/srem/VDS.h new file mode 100644 index 0000000..5707c50 --- /dev/null +++ b/vcits/srem/VDS.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _VDS_H_ +#define _VDS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VDS */ +typedef IA5String_t VDS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VDS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VDS; +asn_struct_free_f VDS_free; +asn_struct_print_f VDS_print; +asn_constr_check_f VDS_constraint; +ber_type_decoder_f VDS_decode_ber; +der_type_encoder_f VDS_encode_der; +xer_type_decoder_f VDS_decode_xer; +xer_type_encoder_f VDS_encode_xer; +oer_type_decoder_f VDS_decode_oer; +oer_type_encoder_f VDS_encode_oer; +per_type_decoder_f VDS_decode_uper; +per_type_encoder_f VDS_encode_uper; +per_type_decoder_f VDS_decode_aper; +per_type_encoder_f VDS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VDS_H_ */ +#include diff --git a/vcits/srem/ValidityDuration.h b/vcits/srem/ValidityDuration.h new file mode 100644 index 0000000..b4e90af --- /dev/null +++ b/vcits/srem/ValidityDuration.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ValidityDuration_H_ +#define _ValidityDuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ValidityDuration { + ValidityDuration_timeOfDetection = 0, + ValidityDuration_oneSecondAfterDetection = 1 +} e_ValidityDuration; + +/* ValidityDuration */ +typedef long ValidityDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ValidityDuration; +asn_struct_free_f ValidityDuration_free; +asn_struct_print_f ValidityDuration_print; +asn_constr_check_f ValidityDuration_constraint; +ber_type_decoder_f ValidityDuration_decode_ber; +der_type_encoder_f ValidityDuration_encode_der; +xer_type_decoder_f ValidityDuration_decode_xer; +xer_type_encoder_f ValidityDuration_encode_xer; +oer_type_decoder_f ValidityDuration_decode_oer; +oer_type_encoder_f ValidityDuration_encode_oer; +per_type_decoder_f ValidityDuration_decode_uper; +per_type_encoder_f ValidityDuration_encode_uper; +per_type_decoder_f ValidityDuration_decode_aper; +per_type_encoder_f ValidityDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ValidityDuration_H_ */ +#include diff --git a/vcits/srem/VehicleBreakdownSubCauseCode.h b/vcits/srem/VehicleBreakdownSubCauseCode.h new file mode 100644 index 0000000..19312e8 --- /dev/null +++ b/vcits/srem/VehicleBreakdownSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _VehicleBreakdownSubCauseCode_H_ +#define _VehicleBreakdownSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleBreakdownSubCauseCode { + VehicleBreakdownSubCauseCode_unavailable = 0, + VehicleBreakdownSubCauseCode_lackOfFuel = 1, + VehicleBreakdownSubCauseCode_lackOfBatteryPower = 2, + VehicleBreakdownSubCauseCode_engineProblem = 3, + VehicleBreakdownSubCauseCode_transmissionProblem = 4, + VehicleBreakdownSubCauseCode_engineCoolingProblem = 5, + VehicleBreakdownSubCauseCode_brakingSystemProblem = 6, + VehicleBreakdownSubCauseCode_steeringProblem = 7, + VehicleBreakdownSubCauseCode_tyrePuncture = 8, + VehicleBreakdownSubCauseCode_tyrePressureProblem = 9 +} e_VehicleBreakdownSubCauseCode; + +/* VehicleBreakdownSubCauseCode */ +typedef long VehicleBreakdownSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode; +asn_struct_free_f VehicleBreakdownSubCauseCode_free; +asn_struct_print_f VehicleBreakdownSubCauseCode_print; +asn_constr_check_f VehicleBreakdownSubCauseCode_constraint; +ber_type_decoder_f VehicleBreakdownSubCauseCode_decode_ber; +der_type_encoder_f VehicleBreakdownSubCauseCode_encode_der; +xer_type_decoder_f VehicleBreakdownSubCauseCode_decode_xer; +xer_type_encoder_f VehicleBreakdownSubCauseCode_encode_xer; +oer_type_decoder_f VehicleBreakdownSubCauseCode_decode_oer; +oer_type_encoder_f VehicleBreakdownSubCauseCode_encode_oer; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_uper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_uper; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_aper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleBreakdownSubCauseCode_H_ */ +#include diff --git a/vcits/srem/VehicleHeight.h b/vcits/srem/VehicleHeight.h new file mode 100644 index 0000000..9a2f0d3 --- /dev/null +++ b/vcits/srem/VehicleHeight.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _VehicleHeight_H_ +#define _VehicleHeight_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleHeight */ +typedef long VehicleHeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleHeight; +asn_struct_free_f VehicleHeight_free; +asn_struct_print_f VehicleHeight_print; +asn_constr_check_f VehicleHeight_constraint; +ber_type_decoder_f VehicleHeight_decode_ber; +der_type_encoder_f VehicleHeight_encode_der; +xer_type_decoder_f VehicleHeight_decode_xer; +xer_type_encoder_f VehicleHeight_encode_xer; +oer_type_decoder_f VehicleHeight_decode_oer; +oer_type_encoder_f VehicleHeight_encode_oer; +per_type_decoder_f VehicleHeight_decode_uper; +per_type_encoder_f VehicleHeight_encode_uper; +per_type_decoder_f VehicleHeight_decode_aper; +per_type_encoder_f VehicleHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleHeight_H_ */ +#include diff --git a/vcits/srem/VehicleID.h b/vcits/srem/VehicleID.h new file mode 100644 index 0000000..22d7262 --- /dev/null +++ b/vcits/srem/VehicleID.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _VehicleID_H_ +#define _VehicleID_H_ + + +#include + +/* Including external dependencies */ +#include "TemporaryID.h" +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleID_PR { + VehicleID_PR_NOTHING, /* No components present */ + VehicleID_PR_entityID, + VehicleID_PR_stationID +} VehicleID_PR; + +/* VehicleID */ +typedef struct VehicleID { + VehicleID_PR present; + union VehicleID_u { + TemporaryID_t entityID; + StationID_t stationID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleID; +extern asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleID_1[2]; +extern asn_per_constraints_t asn_PER_type_VehicleID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleID_H_ */ +#include diff --git a/vcits/srem/VehicleIdentification.h b/vcits/srem/VehicleIdentification.h new file mode 100644 index 0000000..4a4853e --- /dev/null +++ b/vcits/srem/VehicleIdentification.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _VehicleIdentification_H_ +#define _VehicleIdentification_H_ + + +#include + +/* Including external dependencies */ +#include "WMInumber.h" +#include "VDS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleIdentification */ +typedef struct VehicleIdentification { + WMInumber_t *wMInumber; /* OPTIONAL */ + VDS_t *vDS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleIdentification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleIdentification; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleIdentification_H_ */ +#include diff --git a/vcits/srem/VehicleLength.h b/vcits/srem/VehicleLength.h new file mode 100644 index 0000000..26033ae --- /dev/null +++ b/vcits/srem/VehicleLength.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _VehicleLength_H_ +#define _VehicleLength_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleLengthValue.h" +#include "VehicleLengthConfidenceIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleLength */ +typedef struct VehicleLength { + VehicleLengthValue_t vehicleLengthValue; + VehicleLengthConfidenceIndication_t vehicleLengthConfidenceIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleLength; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLength_H_ */ +#include diff --git a/vcits/srem/VehicleLengthConfidenceIndication.h b/vcits/srem/VehicleLengthConfidenceIndication.h new file mode 100644 index 0000000..b7026e4 --- /dev/null +++ b/vcits/srem/VehicleLengthConfidenceIndication.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _VehicleLengthConfidenceIndication_H_ +#define _VehicleLengthConfidenceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthConfidenceIndication { + VehicleLengthConfidenceIndication_noTrailerPresent = 0, + VehicleLengthConfidenceIndication_trailerPresentWithKnownLength = 1, + VehicleLengthConfidenceIndication_trailerPresentWithUnknownLength = 2, + VehicleLengthConfidenceIndication_trailerPresenceIsUnknown = 3, + VehicleLengthConfidenceIndication_unavailable = 4 +} e_VehicleLengthConfidenceIndication; + +/* VehicleLengthConfidenceIndication */ +typedef long VehicleLengthConfidenceIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1; +asn_struct_free_f VehicleLengthConfidenceIndication_free; +asn_struct_print_f VehicleLengthConfidenceIndication_print; +asn_constr_check_f VehicleLengthConfidenceIndication_constraint; +ber_type_decoder_f VehicleLengthConfidenceIndication_decode_ber; +der_type_encoder_f VehicleLengthConfidenceIndication_encode_der; +xer_type_decoder_f VehicleLengthConfidenceIndication_decode_xer; +xer_type_encoder_f VehicleLengthConfidenceIndication_encode_xer; +oer_type_decoder_f VehicleLengthConfidenceIndication_decode_oer; +oer_type_encoder_f VehicleLengthConfidenceIndication_encode_oer; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_uper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_uper; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_aper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthConfidenceIndication_H_ */ +#include diff --git a/vcits/srem/VehicleLengthValue.h b/vcits/srem/VehicleLengthValue.h new file mode 100644 index 0000000..3642c99 --- /dev/null +++ b/vcits/srem/VehicleLengthValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _VehicleLengthValue_H_ +#define _VehicleLengthValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthValue { + VehicleLengthValue_tenCentimeters = 1, + VehicleLengthValue_outOfRange = 1022, + VehicleLengthValue_unavailable = 1023 +} e_VehicleLengthValue; + +/* VehicleLengthValue */ +typedef long VehicleLengthValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue; +asn_struct_free_f VehicleLengthValue_free; +asn_struct_print_f VehicleLengthValue_print; +asn_constr_check_f VehicleLengthValue_constraint; +ber_type_decoder_f VehicleLengthValue_decode_ber; +der_type_encoder_f VehicleLengthValue_encode_der; +xer_type_decoder_f VehicleLengthValue_decode_xer; +xer_type_encoder_f VehicleLengthValue_encode_xer; +oer_type_decoder_f VehicleLengthValue_decode_oer; +oer_type_encoder_f VehicleLengthValue_encode_oer; +per_type_decoder_f VehicleLengthValue_decode_uper; +per_type_encoder_f VehicleLengthValue_encode_uper; +per_type_decoder_f VehicleLengthValue_decode_aper; +per_type_encoder_f VehicleLengthValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthValue_H_ */ +#include diff --git a/vcits/srem/VehicleMass.h b/vcits/srem/VehicleMass.h new file mode 100644 index 0000000..e377e86 --- /dev/null +++ b/vcits/srem/VehicleMass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _VehicleMass_H_ +#define _VehicleMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleMass { + VehicleMass_hundredKg = 1, + VehicleMass_unavailable = 1024 +} e_VehicleMass; + +/* VehicleMass */ +typedef long VehicleMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleMass; +asn_struct_free_f VehicleMass_free; +asn_struct_print_f VehicleMass_print; +asn_constr_check_f VehicleMass_constraint; +ber_type_decoder_f VehicleMass_decode_ber; +der_type_encoder_f VehicleMass_encode_der; +xer_type_decoder_f VehicleMass_decode_xer; +xer_type_encoder_f VehicleMass_encode_xer; +oer_type_decoder_f VehicleMass_decode_oer; +oer_type_encoder_f VehicleMass_encode_oer; +per_type_decoder_f VehicleMass_decode_uper; +per_type_encoder_f VehicleMass_encode_uper; +per_type_decoder_f VehicleMass_decode_aper; +per_type_encoder_f VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleMass_H_ */ +#include diff --git a/vcits/srem/VehicleRole.h b/vcits/srem/VehicleRole.h new file mode 100644 index 0000000..e40ab7a --- /dev/null +++ b/vcits/srem/VehicleRole.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _VehicleRole_H_ +#define _VehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleRole { + VehicleRole_default = 0, + VehicleRole_publicTransport = 1, + VehicleRole_specialTransport = 2, + VehicleRole_dangerousGoods = 3, + VehicleRole_roadWork = 4, + VehicleRole_rescue = 5, + VehicleRole_emergency = 6, + VehicleRole_safetyCar = 7, + VehicleRole_agriculture = 8, + VehicleRole_commercial = 9, + VehicleRole_military = 10, + VehicleRole_roadOperator = 11, + VehicleRole_taxi = 12, + VehicleRole_reserved1 = 13, + VehicleRole_reserved2 = 14, + VehicleRole_reserved3 = 15 +} e_VehicleRole; + +/* VehicleRole */ +typedef long VehicleRole_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleRole; +asn_struct_free_f VehicleRole_free; +asn_struct_print_f VehicleRole_print; +asn_constr_check_f VehicleRole_constraint; +ber_type_decoder_f VehicleRole_decode_ber; +der_type_encoder_f VehicleRole_encode_der; +xer_type_decoder_f VehicleRole_decode_xer; +xer_type_encoder_f VehicleRole_encode_xer; +oer_type_decoder_f VehicleRole_decode_oer; +oer_type_encoder_f VehicleRole_encode_oer; +per_type_decoder_f VehicleRole_decode_uper; +per_type_encoder_f VehicleRole_encode_uper; +per_type_decoder_f VehicleRole_decode_aper; +per_type_encoder_f VehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleRole_H_ */ +#include diff --git a/vcits/srem/VehicleType.h b/vcits/srem/VehicleType.h new file mode 100644 index 0000000..8ce46e6 --- /dev/null +++ b/vcits/srem/VehicleType.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _VehicleType_H_ +#define _VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleType { + VehicleType_none = 0, + VehicleType_unknown = 1, + VehicleType_special = 2, + VehicleType_moto = 3, + VehicleType_car = 4, + VehicleType_carOther = 5, + VehicleType_bus = 6, + VehicleType_axleCnt2 = 7, + VehicleType_axleCnt3 = 8, + VehicleType_axleCnt4 = 9, + VehicleType_axleCnt4Trailer = 10, + VehicleType_axleCnt5Trailer = 11, + VehicleType_axleCnt6Trailer = 12, + VehicleType_axleCnt5MultiTrailer = 13, + VehicleType_axleCnt6MultiTrailer = 14, + VehicleType_axleCnt7MultiTrailer = 15 + /* + * Enumeration is extensible + */ +} e_VehicleType; + +/* VehicleType */ +typedef long VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleType; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1; +asn_struct_free_f VehicleType_free; +asn_struct_print_f VehicleType_print; +asn_constr_check_f VehicleType_constraint; +ber_type_decoder_f VehicleType_decode_ber; +der_type_encoder_f VehicleType_encode_der; +xer_type_decoder_f VehicleType_decode_xer; +xer_type_encoder_f VehicleType_encode_xer; +oer_type_decoder_f VehicleType_decode_oer; +oer_type_encoder_f VehicleType_encode_oer; +per_type_decoder_f VehicleType_decode_uper; +per_type_encoder_f VehicleType_encode_uper; +per_type_decoder_f VehicleType_decode_aper; +per_type_encoder_f VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleType_H_ */ +#include diff --git a/vcits/srem/VehicleWidth.h b/vcits/srem/VehicleWidth.h new file mode 100644 index 0000000..489cac5 --- /dev/null +++ b/vcits/srem/VehicleWidth.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _VehicleWidth_H_ +#define _VehicleWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleWidth { + VehicleWidth_tenCentimeters = 1, + VehicleWidth_outOfRange = 61, + VehicleWidth_unavailable = 62 +} e_VehicleWidth; + +/* VehicleWidth */ +typedef long VehicleWidth_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleWidth; +asn_struct_free_f VehicleWidth_free; +asn_struct_print_f VehicleWidth_print; +asn_constr_check_f VehicleWidth_constraint; +ber_type_decoder_f VehicleWidth_decode_ber; +der_type_encoder_f VehicleWidth_encode_der; +xer_type_decoder_f VehicleWidth_decode_xer; +xer_type_encoder_f VehicleWidth_encode_xer; +oer_type_decoder_f VehicleWidth_decode_oer; +oer_type_encoder_f VehicleWidth_encode_oer; +per_type_decoder_f VehicleWidth_decode_uper; +per_type_encoder_f VehicleWidth_encode_uper; +per_type_decoder_f VehicleWidth_decode_aper; +per_type_encoder_f VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleWidth_H_ */ +#include diff --git a/vcits/srem/Velocity.h b/vcits/srem/Velocity.h new file mode 100644 index 0000000..b7d9a55 --- /dev/null +++ b/vcits/srem/Velocity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _Velocity_H_ +#define _Velocity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Velocity */ +typedef long Velocity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Velocity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Velocity; +asn_struct_free_f Velocity_free; +asn_struct_print_f Velocity_print; +asn_constr_check_f Velocity_constraint; +ber_type_decoder_f Velocity_decode_ber; +der_type_encoder_f Velocity_encode_der; +xer_type_decoder_f Velocity_decode_xer; +xer_type_encoder_f Velocity_encode_xer; +oer_type_decoder_f Velocity_decode_oer; +oer_type_encoder_f Velocity_encode_oer; +per_type_decoder_f Velocity_decode_uper; +per_type_encoder_f Velocity_encode_uper; +per_type_decoder_f Velocity_decode_aper; +per_type_encoder_f Velocity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Velocity_H_ */ +#include diff --git a/vcits/srem/VerticalAcceleration.h b/vcits/srem/VerticalAcceleration.h new file mode 100644 index 0000000..57022e9 --- /dev/null +++ b/vcits/srem/VerticalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _VerticalAcceleration_H_ +#define _VerticalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "VerticalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VerticalAcceleration */ +typedef struct VerticalAcceleration { + VerticalAccelerationValue_t verticalAccelerationValue; + AccelerationConfidence_t verticalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VerticalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAcceleration_H_ */ +#include diff --git a/vcits/srem/VerticalAccelerationValue.h b/vcits/srem/VerticalAccelerationValue.h new file mode 100644 index 0000000..fbc985a --- /dev/null +++ b/vcits/srem/VerticalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _VerticalAccelerationValue_H_ +#define _VerticalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VerticalAccelerationValue { + VerticalAccelerationValue_pointOneMeterPerSecSquaredUp = 1, + VerticalAccelerationValue_pointOneMeterPerSecSquaredDown = -1, + VerticalAccelerationValue_unavailable = 161 +} e_VerticalAccelerationValue; + +/* VerticalAccelerationValue */ +typedef long VerticalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue; +asn_struct_free_f VerticalAccelerationValue_free; +asn_struct_print_f VerticalAccelerationValue_print; +asn_constr_check_f VerticalAccelerationValue_constraint; +ber_type_decoder_f VerticalAccelerationValue_decode_ber; +der_type_encoder_f VerticalAccelerationValue_encode_der; +xer_type_decoder_f VerticalAccelerationValue_decode_xer; +xer_type_encoder_f VerticalAccelerationValue_encode_xer; +oer_type_decoder_f VerticalAccelerationValue_decode_oer; +oer_type_encoder_f VerticalAccelerationValue_encode_oer; +per_type_decoder_f VerticalAccelerationValue_decode_uper; +per_type_encoder_f VerticalAccelerationValue_encode_uper; +per_type_decoder_f VerticalAccelerationValue_decode_aper; +per_type_encoder_f VerticalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAccelerationValue_H_ */ +#include diff --git a/vcits/srem/WMInumber.h b/vcits/srem/WMInumber.h new file mode 100644 index 0000000..dab036c --- /dev/null +++ b/vcits/srem/WMInumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _WMInumber_H_ +#define _WMInumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WMInumber */ +typedef IA5String_t WMInumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WMInumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WMInumber; +asn_struct_free_f WMInumber_free; +asn_struct_print_f WMInumber_print; +asn_constr_check_f WMInumber_constraint; +ber_type_decoder_f WMInumber_decode_ber; +der_type_encoder_f WMInumber_encode_der; +xer_type_decoder_f WMInumber_decode_xer; +xer_type_encoder_f WMInumber_encode_xer; +oer_type_decoder_f WMInumber_decode_oer; +oer_type_encoder_f WMInumber_encode_oer; +per_type_decoder_f WMInumber_decode_uper; +per_type_encoder_f WMInumber_encode_uper; +per_type_decoder_f WMInumber_decode_aper; +per_type_encoder_f WMInumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WMInumber_H_ */ +#include diff --git a/vcits/srem/WaitOnStopline.h b/vcits/srem/WaitOnStopline.h new file mode 100644 index 0000000..2cb49f7 --- /dev/null +++ b/vcits/srem/WaitOnStopline.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _WaitOnStopline_H_ +#define _WaitOnStopline_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WaitOnStopline */ +typedef BOOLEAN_t WaitOnStopline_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WaitOnStopline; +asn_struct_free_f WaitOnStopline_free; +asn_struct_print_f WaitOnStopline_print; +asn_constr_check_f WaitOnStopline_constraint; +ber_type_decoder_f WaitOnStopline_decode_ber; +der_type_encoder_f WaitOnStopline_encode_der; +xer_type_decoder_f WaitOnStopline_decode_xer; +xer_type_encoder_f WaitOnStopline_encode_xer; +oer_type_decoder_f WaitOnStopline_decode_oer; +oer_type_encoder_f WaitOnStopline_encode_oer; +per_type_decoder_f WaitOnStopline_decode_uper; +per_type_encoder_f WaitOnStopline_encode_uper; +per_type_decoder_f WaitOnStopline_decode_aper; +per_type_encoder_f WaitOnStopline_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WaitOnStopline_H_ */ +#include diff --git a/vcits/srem/WheelBaseVehicle.h b/vcits/srem/WheelBaseVehicle.h new file mode 100644 index 0000000..c180a5d --- /dev/null +++ b/vcits/srem/WheelBaseVehicle.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _WheelBaseVehicle_H_ +#define _WheelBaseVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WheelBaseVehicle { + WheelBaseVehicle_tenCentimeters = 1, + WheelBaseVehicle_unavailable = 127 +} e_WheelBaseVehicle; + +/* WheelBaseVehicle */ +typedef long WheelBaseVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle; +asn_struct_free_f WheelBaseVehicle_free; +asn_struct_print_f WheelBaseVehicle_print; +asn_constr_check_f WheelBaseVehicle_constraint; +ber_type_decoder_f WheelBaseVehicle_decode_ber; +der_type_encoder_f WheelBaseVehicle_encode_der; +xer_type_decoder_f WheelBaseVehicle_decode_xer; +xer_type_encoder_f WheelBaseVehicle_encode_xer; +oer_type_decoder_f WheelBaseVehicle_decode_oer; +oer_type_encoder_f WheelBaseVehicle_encode_oer; +per_type_decoder_f WheelBaseVehicle_decode_uper; +per_type_encoder_f WheelBaseVehicle_encode_uper; +per_type_decoder_f WheelBaseVehicle_decode_aper; +per_type_encoder_f WheelBaseVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WheelBaseVehicle_H_ */ +#include diff --git a/vcits/srem/WrongWayDrivingSubCauseCode.h b/vcits/srem/WrongWayDrivingSubCauseCode.h new file mode 100644 index 0000000..5e29fd9 --- /dev/null +++ b/vcits/srem/WrongWayDrivingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _WrongWayDrivingSubCauseCode_H_ +#define _WrongWayDrivingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WrongWayDrivingSubCauseCode { + WrongWayDrivingSubCauseCode_unavailable = 0, + WrongWayDrivingSubCauseCode_wrongLane = 1, + WrongWayDrivingSubCauseCode_wrongDirection = 2 +} e_WrongWayDrivingSubCauseCode; + +/* WrongWayDrivingSubCauseCode */ +typedef long WrongWayDrivingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode; +asn_struct_free_f WrongWayDrivingSubCauseCode_free; +asn_struct_print_f WrongWayDrivingSubCauseCode_print; +asn_constr_check_f WrongWayDrivingSubCauseCode_constraint; +ber_type_decoder_f WrongWayDrivingSubCauseCode_decode_ber; +der_type_encoder_f WrongWayDrivingSubCauseCode_encode_der; +xer_type_decoder_f WrongWayDrivingSubCauseCode_decode_xer; +xer_type_encoder_f WrongWayDrivingSubCauseCode_encode_xer; +oer_type_decoder_f WrongWayDrivingSubCauseCode_decode_oer; +oer_type_encoder_f WrongWayDrivingSubCauseCode_encode_oer; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_uper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_uper; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_aper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WrongWayDrivingSubCauseCode_H_ */ +#include diff --git a/vcits/srem/YawRate.h b/vcits/srem/YawRate.h new file mode 100644 index 0000000..8fdf22d --- /dev/null +++ b/vcits/srem/YawRate.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _YawRate_H_ +#define _YawRate_H_ + + +#include + +/* Including external dependencies */ +#include "YawRateValue.h" +#include "YawRateConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* YawRate */ +typedef struct YawRate { + YawRateValue_t yawRateValue; + YawRateConfidence_t yawRateConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} YawRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_YawRate; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRate_H_ */ +#include diff --git a/vcits/srem/YawRateConfidence.h b/vcits/srem/YawRateConfidence.h new file mode 100644 index 0000000..01a4bfc --- /dev/null +++ b/vcits/srem/YawRateConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _YawRateConfidence_H_ +#define _YawRateConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateConfidence { + YawRateConfidence_degSec_000_01 = 0, + YawRateConfidence_degSec_000_05 = 1, + YawRateConfidence_degSec_000_10 = 2, + YawRateConfidence_degSec_001_00 = 3, + YawRateConfidence_degSec_005_00 = 4, + YawRateConfidence_degSec_010_00 = 5, + YawRateConfidence_degSec_100_00 = 6, + YawRateConfidence_outOfRange = 7, + YawRateConfidence_unavailable = 8 +} e_YawRateConfidence; + +/* YawRateConfidence */ +typedef long YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1; +asn_struct_free_f YawRateConfidence_free; +asn_struct_print_f YawRateConfidence_print; +asn_constr_check_f YawRateConfidence_constraint; +ber_type_decoder_f YawRateConfidence_decode_ber; +der_type_encoder_f YawRateConfidence_encode_der; +xer_type_decoder_f YawRateConfidence_decode_xer; +xer_type_encoder_f YawRateConfidence_encode_xer; +oer_type_decoder_f YawRateConfidence_decode_oer; +oer_type_encoder_f YawRateConfidence_encode_oer; +per_type_decoder_f YawRateConfidence_decode_uper; +per_type_encoder_f YawRateConfidence_encode_uper; +per_type_decoder_f YawRateConfidence_decode_aper; +per_type_encoder_f YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateConfidence_H_ */ +#include diff --git a/vcits/srem/YawRateValue.h b/vcits/srem/YawRateValue.h new file mode 100644 index 0000000..a4b9498 --- /dev/null +++ b/vcits/srem/YawRateValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _YawRateValue_H_ +#define _YawRateValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateValue { + YawRateValue_straight = 0, + YawRateValue_degSec_000_01ToRight = -1, + YawRateValue_degSec_000_01ToLeft = 1, + YawRateValue_unavailable = 32767 +} e_YawRateValue; + +/* YawRateValue */ +typedef long YawRateValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateValue; +asn_struct_free_f YawRateValue_free; +asn_struct_print_f YawRateValue_print; +asn_constr_check_f YawRateValue_constraint; +ber_type_decoder_f YawRateValue_decode_ber; +der_type_encoder_f YawRateValue_encode_der; +xer_type_decoder_f YawRateValue_decode_xer; +xer_type_encoder_f YawRateValue_encode_xer; +oer_type_decoder_f YawRateValue_decode_oer; +oer_type_encoder_f YawRateValue_encode_oer; +per_type_decoder_f YawRateValue_decode_uper; +per_type_encoder_f YawRateValue_encode_uper; +per_type_decoder_f YawRateValue_decode_aper; +per_type_encoder_f YawRateValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateValue_H_ */ +#include diff --git a/vcits/srem/ZoneLength.h b/vcits/srem/ZoneLength.h new file mode 100644 index 0000000..f7037f9 --- /dev/null +++ b/vcits/srem/ZoneLength.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#ifndef _ZoneLength_H_ +#define _ZoneLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ZoneLength */ +typedef long ZoneLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ZoneLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ZoneLength; +asn_struct_free_f ZoneLength_free; +asn_struct_print_f ZoneLength_print; +asn_constr_check_f ZoneLength_constraint; +ber_type_decoder_f ZoneLength_decode_ber; +der_type_encoder_f ZoneLength_encode_der; +xer_type_decoder_f ZoneLength_decode_xer; +xer_type_encoder_f ZoneLength_encode_xer; +oer_type_decoder_f ZoneLength_decode_oer; +oer_type_encoder_f ZoneLength_encode_oer; +per_type_decoder_f ZoneLength_decode_uper; +per_type_encoder_f ZoneLength_encode_uper; +per_type_decoder_f ZoneLength_decode_aper; +per_type_encoder_f ZoneLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ZoneLength_H_ */ +#include diff --git a/vcits/srem/asn_constant.h b/vcits/srem/asn_constant.h new file mode 100644 index 0000000..9214f13 --- /dev/null +++ b/vcits/srem/asn_constant.h @@ -0,0 +1,265 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_StationID (0) +#define max_val_StationID (4294967295) +#define min_val_Longitude (-1800000000) +#define max_val_Longitude (1800000001) +#define min_val_Latitude (-900000000) +#define max_val_Latitude (900000001) +#define min_val_AltitudeValue (-100000) +#define max_val_AltitudeValue (800001) +#define min_val_DeltaLongitude (-131071) +#define max_val_DeltaLongitude (131072) +#define min_val_DeltaLatitude (-131071) +#define max_val_DeltaLatitude (131072) +#define min_val_DeltaAltitude (-12700) +#define max_val_DeltaAltitude (12800) +#define min_val_PtActivationType (0) +#define max_val_PtActivationType (255) +#define min_val_SemiAxisLength (0) +#define max_val_SemiAxisLength (4095) +#define min_val_CauseCodeType (0) +#define max_val_CauseCodeType (255) +#define min_val_SubCauseCodeType (0) +#define max_val_SubCauseCodeType (255) +#define min_val_TrafficConditionSubCauseCode (0) +#define max_val_TrafficConditionSubCauseCode (255) +#define min_val_AccidentSubCauseCode (0) +#define max_val_AccidentSubCauseCode (255) +#define min_val_RoadworksSubCauseCode (0) +#define max_val_RoadworksSubCauseCode (255) +#define min_val_HumanPresenceOnTheRoadSubCauseCode (0) +#define max_val_HumanPresenceOnTheRoadSubCauseCode (255) +#define min_val_WrongWayDrivingSubCauseCode (0) +#define max_val_WrongWayDrivingSubCauseCode (255) +#define min_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_AdhesionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_AdhesionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_VisibilitySubCauseCode (0) +#define max_val_AdverseWeatherCondition_VisibilitySubCauseCode (255) +#define min_val_AdverseWeatherCondition_PrecipitationSubCauseCode (0) +#define max_val_AdverseWeatherCondition_PrecipitationSubCauseCode (255) +#define min_val_SlowVehicleSubCauseCode (0) +#define max_val_SlowVehicleSubCauseCode (255) +#define min_val_StationaryVehicleSubCauseCode (0) +#define max_val_StationaryVehicleSubCauseCode (255) +#define min_val_HumanProblemSubCauseCode (0) +#define max_val_HumanProblemSubCauseCode (255) +#define min_val_EmergencyVehicleApproachingSubCauseCode (0) +#define max_val_EmergencyVehicleApproachingSubCauseCode (255) +#define min_val_HazardousLocation_DangerousCurveSubCauseCode (0) +#define max_val_HazardousLocation_DangerousCurveSubCauseCode (255) +#define min_val_HazardousLocation_SurfaceConditionSubCauseCode (0) +#define max_val_HazardousLocation_SurfaceConditionSubCauseCode (255) +#define min_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (255) +#define min_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (255) +#define min_val_CollisionRiskSubCauseCode (0) +#define max_val_CollisionRiskSubCauseCode (255) +#define min_val_SignalViolationSubCauseCode (0) +#define max_val_SignalViolationSubCauseCode (255) +#define min_val_RescueAndRecoveryWorkInProgressSubCauseCode (0) +#define max_val_RescueAndRecoveryWorkInProgressSubCauseCode (255) +#define min_val_DangerousEndOfQueueSubCauseCode (0) +#define max_val_DangerousEndOfQueueSubCauseCode (255) +#define min_val_DangerousSituationSubCauseCode (0) +#define max_val_DangerousSituationSubCauseCode (255) +#define min_val_VehicleBreakdownSubCauseCode (0) +#define max_val_VehicleBreakdownSubCauseCode (255) +#define min_val_PostCrashSubCauseCode (0) +#define max_val_PostCrashSubCauseCode (255) +#define min_val_CurvatureValue (-1023) +#define max_val_CurvatureValue (1023) +#define min_val_HeadingValue (0) +#define max_val_HeadingValue (3601) +#define min_val_HeadingConfidence (1) +#define max_val_HeadingConfidence (127) +#define min_val_LanePosition (-1) +#define max_val_LanePosition (14) +#define min_val_PerformanceClass (0) +#define max_val_PerformanceClass (7) +#define min_val_SpeedValue (0) +#define max_val_SpeedValue (16383) +#define min_val_SpeedConfidence (1) +#define max_val_SpeedConfidence (127) +#define min_val_VehicleMass (1) +#define max_val_VehicleMass (1024) +#define min_val_LongitudinalAccelerationValue (-160) +#define max_val_LongitudinalAccelerationValue (161) +#define min_val_AccelerationConfidence (0) +#define max_val_AccelerationConfidence (102) +#define min_val_LateralAccelerationValue (-160) +#define max_val_LateralAccelerationValue (161) +#define min_val_VerticalAccelerationValue (-160) +#define max_val_VerticalAccelerationValue (161) +#define min_val_StationType (0) +#define max_val_StationType (255) +#define min_val_HeightLonCarr (1) +#define max_val_HeightLonCarr (100) +#define min_val_PosLonCarr (1) +#define max_val_PosLonCarr (127) +#define min_val_PosPillar (1) +#define max_val_PosPillar (30) +#define min_val_PosCentMass (1) +#define max_val_PosCentMass (63) +#define min_val_SpeedLimit (1) +#define max_val_SpeedLimit (255) +#define min_val_Temperature (-60) +#define max_val_Temperature (67) +#define min_val_WheelBaseVehicle (1) +#define max_val_WheelBaseVehicle (127) +#define min_val_TurningRadius (1) +#define max_val_TurningRadius (255) +#define min_val_PosFrontAx (1) +#define max_val_PosFrontAx (20) +#define min_val_VehicleLengthValue (1) +#define max_val_VehicleLengthValue (1023) +#define min_val_VehicleWidth (1) +#define max_val_VehicleWidth (62) +#define min_val_InformationQuality (0) +#define max_val_InformationQuality (7) +#define min_val_SteeringWheelAngleValue (-511) +#define max_val_SteeringWheelAngleValue (512) +#define min_val_SteeringWheelAngleConfidence (1) +#define max_val_SteeringWheelAngleConfidence (127) +#define min_val_TimestampIts (0) +#define max_val_TimestampIts (4398046511103) +#define min_val_YawRateValue (-32766) +#define max_val_YawRateValue (32767) +#define min_val_TransmissionInterval (1) +#define max_val_TransmissionInterval (10000) +#define min_val_ValidityDuration (0) +#define max_val_ValidityDuration (86400) +#define min_val_NumberOfOccupants (0) +#define max_val_NumberOfOccupants (127) +#define min_val_SequenceNumber (0) +#define max_val_SequenceNumber (65535) +#define min_val_ProtectedZoneID (0) +#define max_val_ProtectedZoneID (134217727) +#define min_val_Iso3833VehicleType (0) +#define max_val_Iso3833VehicleType (255) +#define min_val_TimeReference (0) +#define max_val_TimeReference (60000) +#define min_val_TimeMark (0) +#define max_val_TimeMark (36001) +#define min_val_Angle (0) +#define max_val_Angle (28800) +#define min_val_ApproachID (0) +#define max_val_ApproachID (15) +#define min_val_DDay (0) +#define max_val_DDay (31) +#define min_val_DeltaAngle (-150) +#define max_val_DeltaAngle (150) +#define min_val_DeltaTime (-122) +#define max_val_DeltaTime (121) +#define min_val_DHour (0) +#define max_val_DHour (31) +#define min_val_DMinute (0) +#define max_val_DMinute (60) +#define min_val_DMonth (0) +#define max_val_DMonth (12) +#define min_val_DOffset (-840) +#define max_val_DOffset (840) +#define min_val_DrivenLineOffsetLg (-32767) +#define max_val_DrivenLineOffsetLg (32767) +#define min_val_DrivenLineOffsetSm (-2047) +#define max_val_DrivenLineOffsetSm (2047) +#define min_val_DSecond (0) +#define max_val_DSecond (65535) +#define min_val_DSRCmsgID (0) +#define max_val_DSRCmsgID (32767) +#define min_val_DYear (0) +#define max_val_DYear (4095) +#define min_val_Elevation (-4096) +#define max_val_Elevation (61439) +#define min_val_FuelType (0) +#define max_val_FuelType (15) +#define min_val_HeadingDSRC (0) +#define max_val_HeadingDSRC (28800) +#define min_val_IntersectionID (0) +#define max_val_IntersectionID (65535) +#define min_val_LaneConnectionID (0) +#define max_val_LaneConnectionID (255) +#define min_val_LaneID (0) +#define max_val_LaneID (255) +#define min_val_LayerID (0) +#define max_val_LayerID (100) +#define min_val_LaneWidth (0) +#define max_val_LaneWidth (32767) +#define min_val_MergeDivergeNodeAngle (-180) +#define max_val_MergeDivergeNodeAngle (180) +#define min_val_MinuteOfTheYear (0) +#define max_val_MinuteOfTheYear (527040) +#define min_val_MsgCount (0) +#define max_val_MsgCount (127) +#define min_val_Offset_B09 (-256) +#define max_val_Offset_B09 (255) +#define min_val_Offset_B10 (-512) +#define max_val_Offset_B10 (511) +#define min_val_Offset_B11 (-1024) +#define max_val_Offset_B11 (1023) +#define min_val_Offset_B12 (-2048) +#define max_val_Offset_B12 (2047) +#define min_val_Offset_B13 (-4096) +#define max_val_Offset_B13 (4095) +#define min_val_Offset_B14 (-8192) +#define max_val_Offset_B14 (8191) +#define min_val_Offset_B16 (-32768) +#define max_val_Offset_B16 (32767) +#define min_val_RegionId (0) +#define max_val_RegionId (255) +#define min_val_RequestID (0) +#define max_val_RequestID (255) +#define min_val_RestrictionClassID (0) +#define max_val_RestrictionClassID (255) +#define min_val_RoadRegulatorID (0) +#define max_val_RoadRegulatorID (65535) +#define min_val_RoadSegmentID (0) +#define max_val_RoadSegmentID (65535) +#define min_val_RoadwayCrownAngle (-128) +#define max_val_RoadwayCrownAngle (127) +#define min_val_Scale_B12 (-2048) +#define max_val_Scale_B12 (2047) +#define min_val_SignalGroupID (0) +#define max_val_SignalGroupID (255) +#define min_val_SemiMajorAxisAccuracy (0) +#define max_val_SemiMajorAxisAccuracy (255) +#define min_val_SemiMajorAxisOrientation (0) +#define max_val_SemiMajorAxisOrientation (65535) +#define min_val_SemiMinorAxisAccuracy (0) +#define max_val_SemiMinorAxisAccuracy (255) +#define min_val_SpeedAdvice (0) +#define max_val_SpeedAdvice (500) +#define min_val_TimeIntervalConfidence (0) +#define max_val_TimeIntervalConfidence (15) +#define min_val_VehicleHeight (0) +#define max_val_VehicleHeight (127) +#define min_val_Velocity (0) +#define max_val_Velocity (8191) +#define min_val_ZoneLength (0) +#define max_val_ZoneLength (10000) +#define min_val_IssuerIdentifier (0) +#define max_val_IssuerIdentifier (16383) +#define min_val_ManufacturerIdentifier (0) +#define max_val_ManufacturerIdentifier (65535) +#define min_val_AlphabetIndicator (0) +#define max_val_AlphabetIndicator (63) +#define version (1) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/vcits/srem/src/AccelerationConfidence.c b/vcits/srem/src/AccelerationConfidence.c new file mode 100644 index 0000000..b3e8f2d --- /dev/null +++ b/vcits/srem/src/AccelerationConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AccelerationConfidence.h" + +int +AccelerationConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 102)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..102) */, + -1}; +asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 102 } /* (0..102) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeInteger, + asn_DEF_AccelerationConfidence_tags_1, + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationConfidence_constr_1, &asn_PER_type_AccelerationConfidence_constr_1, AccelerationConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/AccelerationControl.c b/vcits/srem/src/AccelerationControl.c new file mode 100644 index 0000000..d1673df --- /dev/null +++ b/vcits/srem/src/AccelerationControl.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AccelerationControl.h" + +int +AccelerationControl_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationControl = { + "AccelerationControl", + "AccelerationControl", + &asn_OP_BIT_STRING, + asn_DEF_AccelerationControl_tags_1, + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + asn_DEF_AccelerationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationControl_constr_1, &asn_PER_type_AccelerationControl_constr_1, AccelerationControl_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/AccidentSubCauseCode.c b/vcits/srem/src/AccidentSubCauseCode.c new file mode 100644 index 0000000..71ff4a9 --- /dev/null +++ b/vcits/srem/src/AccidentSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AccidentSubCauseCode.h" + +int +AccidentSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccidentSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode = { + "AccidentSubCauseCode", + "AccidentSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AccidentSubCauseCode_tags_1, + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AccidentSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AccidentSubCauseCode_constr_1, &asn_PER_type_AccidentSubCauseCode_constr_1, AccidentSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/ActionID.c b/vcits/srem/src/ActionID.c new file mode 100644 index 0000000..6851869 --- /dev/null +++ b/vcits/srem/src/ActionID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ActionID.h" + +static asn_TYPE_member_t asn_MBR_ActionID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ActionID, originatingStationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "originatingStationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ActionID, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SequenceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ActionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ActionID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingStationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sequenceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ActionID_specs_1 = { + sizeof(struct ActionID), + offsetof(struct ActionID, _asn_ctx), + asn_MAP_ActionID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ActionID = { + "ActionID", + "ActionID", + &asn_OP_SEQUENCE, + asn_DEF_ActionID_tags_1, + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + asn_DEF_ActionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ActionID_1, + 2, /* Elements count */ + &asn_SPC_ActionID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c b/vcits/srem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c new file mode 100644 index 0000000..e1dac3e --- /dev/null +++ b/vcits/srem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AdverseWeatherCondition-AdhesionSubCauseCode.h" + +int +AdverseWeatherCondition_AdhesionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode = { + "AdverseWeatherCondition-AdhesionSubCauseCode", + "AdverseWeatherCondition-AdhesionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, AdverseWeatherCondition_AdhesionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c b/vcits/srem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c new file mode 100644 index 0000000..7c139a8 --- /dev/null +++ b/vcits/srem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" + +int +AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = { + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c b/vcits/srem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c new file mode 100644 index 0000000..0b37627 --- /dev/null +++ b/vcits/srem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AdverseWeatherCondition-PrecipitationSubCauseCode.h" + +int +AdverseWeatherCondition_PrecipitationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode = { + "AdverseWeatherCondition-PrecipitationSubCauseCode", + "AdverseWeatherCondition-PrecipitationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, AdverseWeatherCondition_PrecipitationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c b/vcits/srem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c new file mode 100644 index 0000000..801f6c3 --- /dev/null +++ b/vcits/srem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AdverseWeatherCondition-VisibilitySubCauseCode.h" + +int +AdverseWeatherCondition_VisibilitySubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode = { + "AdverseWeatherCondition-VisibilitySubCauseCode", + "AdverseWeatherCondition-VisibilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, AdverseWeatherCondition_VisibilitySubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/AdvisorySpeed.c b/vcits/srem/src/AdvisorySpeed.c new file mode 100644 index 0000000..e34e8ab --- /dev/null +++ b/vcits/srem/src/AdvisorySpeed.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AdvisorySpeed.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_AdvisorySpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct AdvisorySpeed__regional), + offsetof(struct AdvisorySpeed__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AdvisorySpeed, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 5, offsetof(struct AdvisorySpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedAdvice, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct AdvisorySpeed, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 3, offsetof(struct AdvisorySpeed, distance), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "distance" + }, + { ATF_POINTER, 2, offsetof(struct AdvisorySpeed, Class), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "class" + }, + { ATF_POINTER, 1, offsetof(struct AdvisorySpeed, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_AdvisorySpeed_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AdvisorySpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* distance */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* class */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1 = { + sizeof(struct AdvisorySpeed), + offsetof(struct AdvisorySpeed, _asn_ctx), + asn_MAP_AdvisorySpeed_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_AdvisorySpeed_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed = { + "AdvisorySpeed", + "AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_AdvisorySpeed_tags_1, + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AdvisorySpeed_1, + 6, /* Elements count */ + &asn_SPC_AdvisorySpeed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/AdvisorySpeedList.c b/vcits/srem/src/AdvisorySpeedList.c new file mode 100644 index 0000000..574bbd0 --- /dev/null +++ b/vcits/srem/src/AdvisorySpeedList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AdvisorySpeedList.h" + +#include "AdvisorySpeed.h" +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AdvisorySpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1 = { + sizeof(struct AdvisorySpeedList), + offsetof(struct AdvisorySpeedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList = { + "AdvisorySpeedList", + "AdvisorySpeedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_AdvisorySpeedList_tags_1, + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedList_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + { &asn_OER_type_AdvisorySpeedList_constr_1, &asn_PER_type_AdvisorySpeedList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AdvisorySpeedList_1, + 1, /* Single element */ + &asn_SPC_AdvisorySpeedList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/AdvisorySpeedType.c b/vcits/srem/src/AdvisorySpeedType.c new file mode 100644 index 0000000..897067e --- /dev/null +++ b/vcits/srem/src/AdvisorySpeedType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AdvisorySpeedType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AdvisorySpeedType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 9, "greenwave" }, + { 2, 8, "ecoDrive" }, + { 3, 7, "transit" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_AdvisorySpeedType_enum2value_1[] = { + 2, /* ecoDrive(2) */ + 1, /* greenwave(1) */ + 0, /* none(0) */ + 3 /* transit(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1 = { + asn_MAP_AdvisorySpeedType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AdvisorySpeedType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType = { + "AdvisorySpeedType", + "AdvisorySpeedType", + &asn_OP_NativeEnumerated, + asn_DEF_AdvisorySpeedType_tags_1, + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedType_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + { &asn_OER_type_AdvisorySpeedType_constr_1, &asn_PER_type_AdvisorySpeedType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AdvisorySpeedType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/AllowedManeuvers.c b/vcits/srem/src/AllowedManeuvers.c new file mode 100644 index 0000000..0f81e2d --- /dev/null +++ b/vcits/srem/src/AllowedManeuvers.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AllowedManeuvers.h" + +int +AllowedManeuvers_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { 0, 0 }, + 12 /* (SIZE(12..12)) */}; +asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 12, 12 } /* (SIZE(12..12)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AllowedManeuvers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers = { + "AllowedManeuvers", + "AllowedManeuvers", + &asn_OP_BIT_STRING, + asn_DEF_AllowedManeuvers_tags_1, + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + asn_DEF_AllowedManeuvers_tags_1, /* Same as above */ + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + { &asn_OER_type_AllowedManeuvers_constr_1, &asn_PER_type_AllowedManeuvers_constr_1, AllowedManeuvers_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/AlphabetIndicator.c b/vcits/srem/src/AlphabetIndicator.c new file mode 100644 index 0000000..46e076b --- /dev/null +++ b/vcits/srem/src/AlphabetIndicator.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AlphabetIndicator.h" + +int +AlphabetIndicator_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AlphabetIndicator_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +asn_per_constraints_t asn_PER_type_AlphabetIndicator_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AlphabetIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AlphabetIndicator = { + "AlphabetIndicator", + "AlphabetIndicator", + &asn_OP_NativeInteger, + asn_DEF_AlphabetIndicator_tags_1, + sizeof(asn_DEF_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_AlphabetIndicator_tags_1[0]), /* 1 */ + asn_DEF_AlphabetIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_AlphabetIndicator_tags_1[0]), /* 1 */ + { &asn_OER_type_AlphabetIndicator_constr_1, &asn_PER_type_AlphabetIndicator_constr_1, AlphabetIndicator_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Altitude.c b/vcits/srem/src/Altitude.c new file mode 100644 index 0000000..63da7e7 --- /dev/null +++ b/vcits/srem/src/Altitude.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Altitude.h" + +asn_TYPE_member_t asn_MBR_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Altitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altitudeValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altitudeConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1 = { + sizeof(struct Altitude), + offsetof(struct Altitude, _asn_ctx), + asn_MAP_Altitude_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_Altitude_tags_1, + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + asn_DEF_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Altitude_1, + 2, /* Elements count */ + &asn_SPC_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/AltitudeConfidence.c b/vcits/srem/src/AltitudeConfidence.c new file mode 100644 index 0000000..da4cd22 --- /dev/null +++ b/vcits/srem/src/AltitudeConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AltitudeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AltitudeConfidence_value2enum_1[] = { + { 0, 10, "alt-000-01" }, + { 1, 10, "alt-000-02" }, + { 2, 10, "alt-000-05" }, + { 3, 10, "alt-000-10" }, + { 4, 10, "alt-000-20" }, + { 5, 10, "alt-000-50" }, + { 6, 10, "alt-001-00" }, + { 7, 10, "alt-002-00" }, + { 8, 10, "alt-005-00" }, + { 9, 10, "alt-010-00" }, + { 10, 10, "alt-020-00" }, + { 11, 10, "alt-050-00" }, + { 12, 10, "alt-100-00" }, + { 13, 10, "alt-200-00" }, + { 14, 10, "outOfRange" }, + { 15, 11, "unavailable" } +}; +static const unsigned int asn_MAP_AltitudeConfidence_enum2value_1[] = { + 0, /* alt-000-01(0) */ + 1, /* alt-000-02(1) */ + 2, /* alt-000-05(2) */ + 3, /* alt-000-10(3) */ + 4, /* alt-000-20(4) */ + 5, /* alt-000-50(5) */ + 6, /* alt-001-00(6) */ + 7, /* alt-002-00(7) */ + 8, /* alt-005-00(8) */ + 9, /* alt-010-00(9) */ + 10, /* alt-020-00(10) */ + 11, /* alt-050-00(11) */ + 12, /* alt-100-00(12) */ + 13, /* alt-200-00(13) */ + 14, /* outOfRange(14) */ + 15 /* unavailable(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1 = { + asn_MAP_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AltitudeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_AltitudeConfidence_tags_1, + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeConfidence_constr_1, &asn_PER_type_AltitudeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/AltitudeValue.c b/vcits/srem/src/AltitudeValue.c new file mode 100644 index 0000000..5656fc2 --- /dev/null +++ b/vcits/srem/src/AltitudeValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AltitudeValue.h" + +int +AltitudeValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -100000 && value <= 800001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-100000..800001) */, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, -100000, 800001 } /* (-100000..800001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_AltitudeValue_tags_1, + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeValue_constr_1, &asn_PER_type_AltitudeValue_constr_1, AltitudeValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Angle.c b/vcits/srem/src/Angle.c new file mode 100644 index 0000000..4e9b4f9 --- /dev/null +++ b/vcits/srem/src/Angle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Angle.h" + +int +Angle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 28800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Angle_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +asn_per_constraints_t asn_PER_type_Angle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Angle = { + "Angle", + "Angle", + &asn_OP_NativeInteger, + asn_DEF_Angle_tags_1, + sizeof(asn_DEF_Angle_tags_1) + /sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */ + asn_DEF_Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_Angle_tags_1) + /sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */ + { &asn_OER_type_Angle_constr_1, &asn_PER_type_Angle_constr_1, Angle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/AntennaOffsetSet.c b/vcits/srem/src/AntennaOffsetSet.c new file mode 100644 index 0000000..65a018e --- /dev/null +++ b/vcits/srem/src/AntennaOffsetSet.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AntennaOffsetSet.h" + +asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetX), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetX" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetY), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B09, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetY" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetZ), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetZ" + }, +}; +static const ber_tlv_tag_t asn_DEF_AntennaOffsetSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AntennaOffsetSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* antOffsetX */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* antOffsetY */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* antOffsetZ */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1 = { + sizeof(struct AntennaOffsetSet), + offsetof(struct AntennaOffsetSet, _asn_ctx), + asn_MAP_AntennaOffsetSet_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet = { + "AntennaOffsetSet", + "AntennaOffsetSet", + &asn_OP_SEQUENCE, + asn_DEF_AntennaOffsetSet_tags_1, + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + asn_DEF_AntennaOffsetSet_tags_1, /* Same as above */ + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AntennaOffsetSet_1, + 3, /* Elements count */ + &asn_SPC_AntennaOffsetSet_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ApproachID.c b/vcits/srem/src/ApproachID.c new file mode 100644 index 0000000..5d49757 --- /dev/null +++ b/vcits/srem/src/ApproachID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ApproachID.h" + +int +ApproachID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ApproachID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_ApproachID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ApproachID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ApproachID = { + "ApproachID", + "ApproachID", + &asn_OP_NativeInteger, + asn_DEF_ApproachID_tags_1, + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + asn_DEF_ApproachID_tags_1, /* Same as above */ + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + { &asn_OER_type_ApproachID_constr_1, &asn_PER_type_ApproachID_constr_1, ApproachID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/AviEriDateTime.c b/vcits/srem/src/AviEriDateTime.c new file mode 100644 index 0000000..1228a36 --- /dev/null +++ b/vcits/srem/src/AviEriDateTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "AviEriDateTime.h" + +int +AviEriDateTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AviEriDateTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_AviEriDateTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AviEriDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AviEriDateTime = { + "AviEriDateTime", + "AviEriDateTime", + &asn_OP_OCTET_STRING, + asn_DEF_AviEriDateTime_tags_1, + sizeof(asn_DEF_AviEriDateTime_tags_1) + /sizeof(asn_DEF_AviEriDateTime_tags_1[0]), /* 1 */ + asn_DEF_AviEriDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_AviEriDateTime_tags_1) + /sizeof(asn_DEF_AviEriDateTime_tags_1[0]), /* 1 */ + { &asn_OER_type_AviEriDateTime_constr_1, &asn_PER_type_AviEriDateTime_constr_1, AviEriDateTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/BasicVehicleRole.c b/vcits/srem/src/BasicVehicleRole.c new file mode 100644 index 0000000..dc84e51 --- /dev/null +++ b/vcits/srem/src/BasicVehicleRole.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "BasicVehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 22 } /* (0..22,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BasicVehicleRole_value2enum_1[] = { + { 0, 12, "basicVehicle" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 10, "roadRescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 12, "none-unknown" }, + { 9, 5, "truck" }, + { 10, 10, "motorcycle" }, + { 11, 14, "roadSideSource" }, + { 12, 6, "police" }, + { 13, 4, "fire" }, + { 14, 9, "ambulance" }, + { 15, 3, "dot" }, + { 16, 7, "transit" }, + { 17, 10, "slowMoving" }, + { 18, 7, "stopNgo" }, + { 19, 7, "cyclist" }, + { 20, 10, "pedestrian" }, + { 21, 12, "nonMotorized" }, + { 22, 8, "military" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BasicVehicleRole_enum2value_1[] = { + 14, /* ambulance(14) */ + 0, /* basicVehicle(0) */ + 19, /* cyclist(19) */ + 3, /* dangerousGoods(3) */ + 15, /* dot(15) */ + 6, /* emergency(6) */ + 13, /* fire(13) */ + 22, /* military(22) */ + 10, /* motorcycle(10) */ + 21, /* nonMotorized(21) */ + 8, /* none-unknown(8) */ + 20, /* pedestrian(20) */ + 12, /* police(12) */ + 1, /* publicTransport(1) */ + 5, /* roadRescue(5) */ + 11, /* roadSideSource(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 17, /* slowMoving(17) */ + 2, /* specialTransport(2) */ + 18, /* stopNgo(18) */ + 16, /* transit(16) */ + 9 /* truck(9) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1 = { + asn_MAP_BasicVehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BasicVehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 23, /* Number of elements in the maps */ + 24, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BasicVehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole = { + "BasicVehicleRole", + "BasicVehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_BasicVehicleRole_tags_1, + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + asn_DEF_BasicVehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_BasicVehicleRole_constr_1, &asn_PER_type_BasicVehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BasicVehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/BatteryStatus.c b/vcits/srem/src/BatteryStatus.c new file mode 100644 index 0000000..42c85b4 --- /dev/null +++ b/vcits/srem/src/BatteryStatus.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "BatteryStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BatteryStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BatteryStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BatteryStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "critical" }, + { 2, 3, "low" }, + { 3, 4, "good" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BatteryStatus_enum2value_1[] = { + 1, /* critical(1) */ + 3, /* good(3) */ + 2, /* low(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BatteryStatus_specs_1 = { + asn_MAP_BatteryStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BatteryStatus_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BatteryStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BatteryStatus = { + "BatteryStatus", + "BatteryStatus", + &asn_OP_NativeEnumerated, + asn_DEF_BatteryStatus_tags_1, + sizeof(asn_DEF_BatteryStatus_tags_1) + /sizeof(asn_DEF_BatteryStatus_tags_1[0]), /* 1 */ + asn_DEF_BatteryStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_BatteryStatus_tags_1) + /sizeof(asn_DEF_BatteryStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_BatteryStatus_constr_1, &asn_PER_type_BatteryStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BatteryStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CS1.c b/vcits/srem/src/CS1.c new file mode 100644 index 0000000..f309e62 --- /dev/null +++ b/vcits/srem/src/CS1.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CS1.h" + +static asn_TYPE_member_t asn_MBR_CS1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS1, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS1, issuerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IssuerIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "issuerIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS1, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* issuerIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* serviceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS1_specs_1 = { + sizeof(struct CS1), + offsetof(struct CS1, _asn_ctx), + asn_MAP_CS1_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS1 = { + "CS1", + "CS1", + &asn_OP_SEQUENCE, + asn_DEF_CS1_tags_1, + sizeof(asn_DEF_CS1_tags_1) + /sizeof(asn_DEF_CS1_tags_1[0]), /* 1 */ + asn_DEF_CS1_tags_1, /* Same as above */ + sizeof(asn_DEF_CS1_tags_1) + /sizeof(asn_DEF_CS1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS1_1, + 3, /* Elements count */ + &asn_SPC_CS1_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CS2.c b/vcits/srem/src/CS2.c new file mode 100644 index 0000000..1f7deb4 --- /dev/null +++ b/vcits/srem/src/CS2.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CS2.h" + +static asn_TYPE_member_t asn_MBR_CS2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS2, manufacturerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManufacturerIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "manufacturerIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS2, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* manufacturerIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* serviceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS2_specs_1 = { + sizeof(struct CS2), + offsetof(struct CS2, _asn_ctx), + asn_MAP_CS2_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS2 = { + "CS2", + "CS2", + &asn_OP_SEQUENCE, + asn_DEF_CS2_tags_1, + sizeof(asn_DEF_CS2_tags_1) + /sizeof(asn_DEF_CS2_tags_1[0]), /* 1 */ + asn_DEF_CS2_tags_1, /* Same as above */ + sizeof(asn_DEF_CS2_tags_1) + /sizeof(asn_DEF_CS2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS2_1, + 2, /* Elements count */ + &asn_SPC_CS2_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CS3.c b/vcits/srem/src/CS3.c new file mode 100644 index 0000000..641fe2a --- /dev/null +++ b/vcits/srem/src/CS3.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CS3.h" + +static asn_TYPE_member_t asn_MBR_CS3_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS3, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StartTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, stopTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StopTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stopTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, geographLimit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GeoGraphicalLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "geographLimit" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, serviceAppLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceApplicationLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceAppLimit" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS3_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* stopTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* geographLimit */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* serviceAppLimit */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS3_specs_1 = { + sizeof(struct CS3), + offsetof(struct CS3, _asn_ctx), + asn_MAP_CS3_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS3 = { + "CS3", + "CS3", + &asn_OP_SEQUENCE, + asn_DEF_CS3_tags_1, + sizeof(asn_DEF_CS3_tags_1) + /sizeof(asn_DEF_CS3_tags_1[0]), /* 1 */ + asn_DEF_CS3_tags_1, /* Same as above */ + sizeof(asn_DEF_CS3_tags_1) + /sizeof(asn_DEF_CS3_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS3_1, + 4, /* Elements count */ + &asn_SPC_CS3_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CS4.c b/vcits/srem/src/CS4.c new file mode 100644 index 0000000..bccc0e4 --- /dev/null +++ b/vcits/srem/src/CS4.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CS4.h" + +static asn_oer_constraints_t asn_OER_type_CS4_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_CS4_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS4_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS4, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS4, alphabetIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AlphabetIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "alphabetIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS4, licPlateNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LicPlateNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "licPlateNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS4_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* alphabetIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* licPlateNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS4_specs_1 = { + sizeof(struct CS4), + offsetof(struct CS4, _asn_ctx), + asn_MAP_CS4_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS4 = { + "CS4", + "CS4", + &asn_OP_SEQUENCE, + asn_DEF_CS4_tags_1, + sizeof(asn_DEF_CS4_tags_1) + /sizeof(asn_DEF_CS4_tags_1[0]), /* 1 */ + asn_DEF_CS4_tags_1, /* Same as above */ + sizeof(asn_DEF_CS4_tags_1) + /sizeof(asn_DEF_CS4_tags_1[0]), /* 1 */ + { &asn_OER_type_CS4_constr_1, &asn_PER_type_CS4_constr_1, SEQUENCE_constraint }, + asn_MBR_CS4_1, + 3, /* Elements count */ + &asn_SPC_CS4_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CS5.c b/vcits/srem/src/CS5.c new file mode 100644 index 0000000..40d64cc --- /dev/null +++ b/vcits/srem/src/CS5.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CS5.h" + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 9)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_fill_constr_3 CC_NOTUSED = { + { 0, 0 }, + 9 /* (SIZE(9..9)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 9, 9 } /* (SIZE(9..9)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS5_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS5, vin), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VisibleString, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vin" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS5, fill), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_3, &asn_PER_memb_fill_constr_3, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS5_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS5_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vin */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fill */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS5_specs_1 = { + sizeof(struct CS5), + offsetof(struct CS5, _asn_ctx), + asn_MAP_CS5_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS5 = { + "CS5", + "CS5", + &asn_OP_SEQUENCE, + asn_DEF_CS5_tags_1, + sizeof(asn_DEF_CS5_tags_1) + /sizeof(asn_DEF_CS5_tags_1[0]), /* 1 */ + asn_DEF_CS5_tags_1, /* Same as above */ + sizeof(asn_DEF_CS5_tags_1) + /sizeof(asn_DEF_CS5_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS5_1, + 2, /* Elements count */ + &asn_SPC_CS5_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CS7.c b/vcits/srem/src/CS7.c new file mode 100644 index 0000000..4f71ff6 --- /dev/null +++ b/vcits/srem/src/CS7.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CS7.h" + +/* + * This type is implemented using FreightContainerData, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_CS7_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CS7 = { + "CS7", + "CS7", + &asn_OP_SEQUENCE, + asn_DEF_CS7_tags_1, + sizeof(asn_DEF_CS7_tags_1) + /sizeof(asn_DEF_CS7_tags_1[0]), /* 1 */ + asn_DEF_CS7_tags_1, /* Same as above */ + sizeof(asn_DEF_CS7_tags_1) + /sizeof(asn_DEF_CS7_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CS8.c b/vcits/srem/src/CS8.c new file mode 100644 index 0000000..5a2bee5 --- /dev/null +++ b/vcits/srem/src/CS8.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CS8.h" + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 6)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_fill_constr_2 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS8_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS8, fill), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_2, &asn_PER_memb_fill_constr_2, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS8, countryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS8, taxCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TaxCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "taxCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS8_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS8_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fill */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* taxCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS8_specs_1 = { + sizeof(struct CS8), + offsetof(struct CS8, _asn_ctx), + asn_MAP_CS8_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS8 = { + "CS8", + "CS8", + &asn_OP_SEQUENCE, + asn_DEF_CS8_tags_1, + sizeof(asn_DEF_CS8_tags_1) + /sizeof(asn_DEF_CS8_tags_1[0]), /* 1 */ + asn_DEF_CS8_tags_1, /* Same as above */ + sizeof(asn_DEF_CS8_tags_1) + /sizeof(asn_DEF_CS8_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS8_1, + 3, /* Elements count */ + &asn_SPC_CS8_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CauseCode.c b/vcits/srem/src/CauseCode.c new file mode 100644 index 0000000..608876a --- /dev/null +++ b/vcits/srem/src/CauseCode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CauseCode.h" + +static asn_TYPE_member_t asn_MBR_CauseCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, causeCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "causeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, subCauseCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubCauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subCauseCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CauseCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* causeCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* subCauseCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CauseCode_specs_1 = { + sizeof(struct CauseCode), + offsetof(struct CauseCode, _asn_ctx), + asn_MAP_CauseCode_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CauseCode = { + "CauseCode", + "CauseCode", + &asn_OP_SEQUENCE, + asn_DEF_CauseCode_tags_1, + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + asn_DEF_CauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CauseCode_1, + 2, /* Elements count */ + &asn_SPC_CauseCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CauseCodeType.c b/vcits/srem/src/CauseCodeType.c new file mode 100644 index 0000000..b651e4a --- /dev/null +++ b/vcits/srem/src/CauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CauseCodeType.h" + +int +CauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseCodeType = { + "CauseCodeType", + "CauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_CauseCodeType_tags_1, + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_CauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseCodeType_constr_1, &asn_PER_type_CauseCodeType_constr_1, CauseCodeType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/CenDsrcTollingZone.c b/vcits/srem/src/CenDsrcTollingZone.c new file mode 100644 index 0000000..06f29b1 --- /dev/null +++ b/vcits/srem/src/CenDsrcTollingZone.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CenDsrcTollingZone.h" + +static asn_TYPE_member_t asn_MBR_CenDsrcTollingZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 1, offsetof(struct CenDsrcTollingZone, cenDsrcTollingZoneID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CenDsrcTollingZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cenDsrcTollingZoneID" + }, +}; +static const int asn_MAP_CenDsrcTollingZone_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CenDsrcTollingZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cenDsrcTollingZoneID */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CenDsrcTollingZone_specs_1 = { + sizeof(struct CenDsrcTollingZone), + offsetof(struct CenDsrcTollingZone, _asn_ctx), + asn_MAP_CenDsrcTollingZone_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CenDsrcTollingZone_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone = { + "CenDsrcTollingZone", + "CenDsrcTollingZone", + &asn_OP_SEQUENCE, + asn_DEF_CenDsrcTollingZone_tags_1, + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZone_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CenDsrcTollingZone_1, + 3, /* Elements count */ + &asn_SPC_CenDsrcTollingZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CenDsrcTollingZoneID.c b/vcits/srem/src/CenDsrcTollingZoneID.c new file mode 100644 index 0000000..e4bda64 --- /dev/null +++ b/vcits/srem/src/CenDsrcTollingZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CenDsrcTollingZoneID.h" + +int +CenDsrcTollingZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using ProtectedZoneID, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID = { + "CenDsrcTollingZoneID", + "CenDsrcTollingZoneID", + &asn_OP_NativeInteger, + asn_DEF_CenDsrcTollingZoneID_tags_1, + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_CenDsrcTollingZoneID_constr_1, &asn_PER_type_CenDsrcTollingZoneID_constr_1, CenDsrcTollingZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/ClosedLanes.c b/vcits/srem/src/ClosedLanes.c new file mode 100644 index 0000000..f05139b --- /dev/null +++ b/vcits/srem/src/ClosedLanes.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ClosedLanes.h" + +static asn_TYPE_member_t asn_MBR_ClosedLanes_1[] = { + { ATF_POINTER, 3, offsetof(struct ClosedLanes, innerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "innerhardShoulderStatus" + }, + { ATF_POINTER, 2, offsetof(struct ClosedLanes, outerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outerhardShoulderStatus" + }, + { ATF_POINTER, 1, offsetof(struct ClosedLanes, drivingLaneStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivingLaneStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drivingLaneStatus" + }, +}; +static const int asn_MAP_ClosedLanes_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ClosedLanes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ClosedLanes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* innerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* outerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* drivingLaneStatus */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ClosedLanes_specs_1 = { + sizeof(struct ClosedLanes), + offsetof(struct ClosedLanes, _asn_ctx), + asn_MAP_ClosedLanes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ClosedLanes_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ClosedLanes = { + "ClosedLanes", + "ClosedLanes", + &asn_OP_SEQUENCE, + asn_DEF_ClosedLanes_tags_1, + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + asn_DEF_ClosedLanes_tags_1, /* Same as above */ + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ClosedLanes_1, + 3, /* Elements count */ + &asn_SPC_ClosedLanes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CollisionRiskSubCauseCode.c b/vcits/srem/src/CollisionRiskSubCauseCode.c new file mode 100644 index 0000000..7aebd52 --- /dev/null +++ b/vcits/srem/src/CollisionRiskSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CollisionRiskSubCauseCode.h" + +int +CollisionRiskSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CollisionRiskSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode = { + "CollisionRiskSubCauseCode", + "CollisionRiskSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_CollisionRiskSubCauseCode_tags_1, + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_CollisionRiskSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CollisionRiskSubCauseCode_constr_1, &asn_PER_type_CollisionRiskSubCauseCode_constr_1, CollisionRiskSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/ComputedLane.c b/vcits/srem/src/ComputedLane.c new file mode 100644 index 0000000..67b2e21 --- /dev/null +++ b/vcits/srem/src/ComputedLane.c @@ -0,0 +1,306 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ComputedLane.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_offsetXaxis_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetXaxis_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetXaxis_specs_3 = { + sizeof(struct ComputedLane__offsetXaxis), + offsetof(struct ComputedLane__offsetXaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetXaxis, present), + sizeof(((struct ComputedLane__offsetXaxis *)0)->present), + asn_MAP_offsetXaxis_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetXaxis_3 = { + "offsetXaxis", + "offsetXaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_offsetXaxis_constr_3, &asn_PER_type_offsetXaxis_constr_3, CHOICE_constraint }, + asn_MBR_offsetXaxis_3, + 2, /* Elements count */ + &asn_SPC_offsetXaxis_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_offsetYaxis_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetYaxis_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetYaxis_specs_6 = { + sizeof(struct ComputedLane__offsetYaxis), + offsetof(struct ComputedLane__offsetYaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetYaxis, present), + sizeof(((struct ComputedLane__offsetYaxis *)0)->present), + asn_MAP_offsetYaxis_tag2el_6, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetYaxis_6 = { + "offsetYaxis", + "offsetYaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_offsetYaxis_constr_6, &asn_PER_type_offsetYaxis_constr_6, CHOICE_constraint }, + asn_MBR_offsetYaxis_6, + 2, /* Elements count */ + &asn_SPC_offsetYaxis_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regional_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ComputedLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_12 = { + sizeof(struct ComputedLane__regional), + offsetof(struct ComputedLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_12 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_12, + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]) - 1, /* 1 */ + asn_DEF_regional_tags_12, /* Same as above */ + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]), /* 2 */ + { &asn_OER_type_regional_constr_12, &asn_PER_type_regional_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_regional_12, + 1, /* Single element */ + &asn_SPC_regional_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ComputedLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, referenceLaneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceLaneId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetXaxis), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetXaxis_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetXaxis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetYaxis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetYaxis_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetYaxis" + }, + { ATF_POINTER, 4, offsetof(struct ComputedLane, rotateXY), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rotateXY" + }, + { ATF_POINTER, 3, offsetof(struct ComputedLane, scaleXaxis), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaleXaxis" + }, + { ATF_POINTER, 2, offsetof(struct ComputedLane, scaleYaxis), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaleYaxis" + }, + { ATF_POINTER, 1, offsetof(struct ComputedLane, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_12, + 0, + { &asn_OER_memb_regional_constr_12, &asn_PER_memb_regional_constr_12, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ComputedLane_oms_1[] = { 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ComputedLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ComputedLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceLaneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* offsetXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* offsetYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rotateXY */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* scaleXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* scaleYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1 = { + sizeof(struct ComputedLane), + offsetof(struct ComputedLane, _asn_ctx), + asn_MAP_ComputedLane_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ComputedLane_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ComputedLane = { + "ComputedLane", + "ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_ComputedLane_tags_1, + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + asn_DEF_ComputedLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ComputedLane_1, + 7, /* Elements count */ + &asn_SPC_ComputedLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ConnectingLane.c b/vcits/srem/src/ConnectingLane.c new file mode 100644 index 0000000..711b695 --- /dev/null +++ b/vcits/srem/src/ConnectingLane.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ConnectingLane.h" + +asn_TYPE_member_t asn_MBR_ConnectingLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectingLane, lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 1, offsetof(struct ConnectingLane, maneuver), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuver" + }, +}; +static const int asn_MAP_ConnectingLane_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ConnectingLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectingLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maneuver */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1 = { + sizeof(struct ConnectingLane), + offsetof(struct ConnectingLane, _asn_ctx), + asn_MAP_ConnectingLane_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ConnectingLane_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectingLane = { + "ConnectingLane", + "ConnectingLane", + &asn_OP_SEQUENCE, + asn_DEF_ConnectingLane_tags_1, + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + asn_DEF_ConnectingLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectingLane_1, + 2, /* Elements count */ + &asn_SPC_ConnectingLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/Connection.c b/vcits/srem/src/Connection.c new file mode 100644 index 0000000..2aea5a5 --- /dev/null +++ b/vcits/srem/src/Connection.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Connection.h" + +#include "IntersectionReferenceID.h" +asn_TYPE_member_t asn_MBR_Connection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Connection, connectingLane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectingLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectingLane" + }, + { ATF_POINTER, 4, offsetof(struct Connection, remoteIntersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "remoteIntersection" + }, + { ATF_POINTER, 3, offsetof(struct Connection, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_POINTER, 2, offsetof(struct Connection, userClass), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "userClass" + }, + { ATF_POINTER, 1, offsetof(struct Connection, connectionID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const int asn_MAP_Connection_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Connection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Connection_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectingLane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* remoteIntersection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* userClass */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1 = { + sizeof(struct Connection), + offsetof(struct Connection, _asn_ctx), + asn_MAP_Connection_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Connection_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Connection = { + "Connection", + "Connection", + &asn_OP_SEQUENCE, + asn_DEF_Connection_tags_1, + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + asn_DEF_Connection_tags_1, /* Same as above */ + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Connection_1, + 5, /* Elements count */ + &asn_SPC_Connection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ConnectionManeuverAssist-addGrpC.c b/vcits/srem/src/ConnectionManeuverAssist-addGrpC.c new file mode 100644 index 0000000..74a5e20 --- /dev/null +++ b/vcits/srem/src/ConnectionManeuverAssist-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ConnectionManeuverAssist-addGrpC.h" + +#include "ItsStationPositionList.h" +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist_addGrpC, itsStationPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsStationPositionList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "itsStationPosition" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* itsStationPosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 = { + sizeof(struct ConnectionManeuverAssist_addGrpC), + offsetof(struct ConnectionManeuverAssist_addGrpC, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC = { + "ConnectionManeuverAssist-addGrpC", + "ConnectionManeuverAssist-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionManeuverAssist_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ConnectionManeuverAssist.c b/vcits/srem/src/ConnectionManeuverAssist.c new file mode 100644 index 0000000..b8d12ac --- /dev/null +++ b/vcits/srem/src/ConnectionManeuverAssist.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ConnectionManeuverAssist.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ConnectionManeuverAssist, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct ConnectionManeuverAssist__regional), + offsetof(struct ConnectionManeuverAssist__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionManeuverAssist, connectionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 5, offsetof(struct ConnectionManeuverAssist, queueLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "queueLength" + }, + { ATF_POINTER, 4, offsetof(struct ConnectionManeuverAssist, availableStorageLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "availableStorageLength" + }, + { ATF_POINTER, 3, offsetof(struct ConnectionManeuverAssist, waitOnStop), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WaitOnStopline, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "waitOnStop" + }, + { ATF_POINTER, 2, offsetof(struct ConnectionManeuverAssist, pedBicycleDetect), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PedestrianBicycleDetect, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pedBicycleDetect" + }, + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* queueLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* availableStorageLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* waitOnStop */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pedBicycleDetect */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1 = { + sizeof(struct ConnectionManeuverAssist), + offsetof(struct ConnectionManeuverAssist, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist = { + "ConnectionManeuverAssist", + "ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionManeuverAssist_1, + 6, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ConnectionTrajectory-addGrpC.c b/vcits/srem/src/ConnectionTrajectory-addGrpC.c new file mode 100644 index 0000000..199f386 --- /dev/null +++ b/vcits/srem/src/ConnectionTrajectory-addGrpC.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ConnectionTrajectory-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ConnectionTrajectory_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionTrajectory_addGrpC, nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConnectionTrajectory_addGrpC, connectionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectionTrajectory_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionTrajectory_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionTrajectory_addGrpC_specs_1 = { + sizeof(struct ConnectionTrajectory_addGrpC), + offsetof(struct ConnectionTrajectory_addGrpC, _asn_ctx), + asn_MAP_ConnectionTrajectory_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionTrajectory_addGrpC = { + "ConnectionTrajectory-addGrpC", + "ConnectionTrajectory-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionTrajectory_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionTrajectory_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionTrajectory_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_ConnectionTrajectory_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ConnectsToList.c b/vcits/srem/src/ConnectsToList.c new file mode 100644 index 0000000..70d1866 --- /dev/null +++ b/vcits/srem/src/ConnectsToList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ConnectsToList.h" + +#include "Connection.h" +static asn_oer_constraints_t asn_OER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ConnectsToList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Connection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectsToList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1 = { + sizeof(struct ConnectsToList), + offsetof(struct ConnectsToList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectsToList = { + "ConnectsToList", + "ConnectsToList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ConnectsToList_tags_1, + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + asn_DEF_ConnectsToList_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + { &asn_OER_type_ConnectsToList_constr_1, &asn_PER_type_ConnectsToList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ConnectsToList_1, + 1, /* Single element */ + &asn_SPC_ConnectsToList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CountryCode.c b/vcits/srem/src/CountryCode.c new file mode 100644 index 0000000..6ab0152 --- /dev/null +++ b/vcits/srem/src/CountryCode.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CountryCode.h" + +int +CountryCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CountryCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_CountryCode_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CountryCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CountryCode = { + "CountryCode", + "CountryCode", + &asn_OP_BIT_STRING, + asn_DEF_CountryCode_tags_1, + sizeof(asn_DEF_CountryCode_tags_1) + /sizeof(asn_DEF_CountryCode_tags_1[0]), /* 1 */ + asn_DEF_CountryCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CountryCode_tags_1) + /sizeof(asn_DEF_CountryCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CountryCode_constr_1, &asn_PER_type_CountryCode_constr_1, CountryCode_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/Curvature.c b/vcits/srem/src/Curvature.c new file mode 100644 index 0000000..be02f58 --- /dev/null +++ b/vcits/srem/src/Curvature.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Curvature.h" + +static asn_TYPE_member_t asn_MBR_Curvature_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Curvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Curvature_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* curvatureValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* curvatureConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Curvature_specs_1 = { + sizeof(struct Curvature), + offsetof(struct Curvature, _asn_ctx), + asn_MAP_Curvature_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Curvature = { + "Curvature", + "Curvature", + &asn_OP_SEQUENCE, + asn_DEF_Curvature_tags_1, + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + asn_DEF_Curvature_tags_1, /* Same as above */ + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Curvature_1, + 2, /* Elements count */ + &asn_SPC_Curvature_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CurvatureCalculationMode.c b/vcits/srem/src/CurvatureCalculationMode.c new file mode 100644 index 0000000..0cc74d9 --- /dev/null +++ b/vcits/srem/src/CurvatureCalculationMode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CurvatureCalculationMode.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureCalculationMode_value2enum_1[] = { + { 0, 11, "yawRateUsed" }, + { 1, 14, "yawRateNotUsed" }, + { 2, 11, "unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CurvatureCalculationMode_enum2value_1[] = { + 2, /* unavailable(2) */ + 1, /* yawRateNotUsed(1) */ + 0 /* yawRateUsed(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_CurvatureCalculationMode_specs_1 = { + asn_MAP_CurvatureCalculationMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureCalculationMode_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureCalculationMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode = { + "CurvatureCalculationMode", + "CurvatureCalculationMode", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureCalculationMode_tags_1, + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + asn_DEF_CurvatureCalculationMode_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureCalculationMode_constr_1, &asn_PER_type_CurvatureCalculationMode_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureCalculationMode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CurvatureConfidence.c b/vcits/srem/src/CurvatureConfidence.c new file mode 100644 index 0000000..5c07d95 --- /dev/null +++ b/vcits/srem/src/CurvatureConfidence.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CurvatureConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureConfidence_value2enum_1[] = { + { 0, 19, "onePerMeter-0-00002" }, + { 1, 18, "onePerMeter-0-0001" }, + { 2, 18, "onePerMeter-0-0005" }, + { 3, 17, "onePerMeter-0-002" }, + { 4, 16, "onePerMeter-0-01" }, + { 5, 15, "onePerMeter-0-1" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_CurvatureConfidence_enum2value_1[] = { + 0, /* onePerMeter-0-00002(0) */ + 1, /* onePerMeter-0-0001(1) */ + 2, /* onePerMeter-0-0005(2) */ + 3, /* onePerMeter-0-002(3) */ + 4, /* onePerMeter-0-01(4) */ + 5, /* onePerMeter-0-1(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1 = { + asn_MAP_CurvatureConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence = { + "CurvatureConfidence", + "CurvatureConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureConfidence_tags_1, + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + asn_DEF_CurvatureConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureConfidence_constr_1, &asn_PER_type_CurvatureConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/CurvatureValue.c b/vcits/srem/src/CurvatureValue.c new file mode 100644 index 0000000..b088d3c --- /dev/null +++ b/vcits/srem/src/CurvatureValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "CurvatureValue.h" + +int +CurvatureValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1023 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1023..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1023, 1023 } /* (-1023..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CurvatureValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureValue = { + "CurvatureValue", + "CurvatureValue", + &asn_OP_NativeInteger, + asn_DEF_CurvatureValue_tags_1, + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + asn_DEF_CurvatureValue_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureValue_constr_1, &asn_PER_type_CurvatureValue_constr_1, CurvatureValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DDateTime.c b/vcits/srem/src/DDateTime.c new file mode 100644 index 0000000..ff375e0 --- /dev/null +++ b/vcits/srem/src/DDateTime.c @@ -0,0 +1,112 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DDateTime.h" + +asn_TYPE_member_t asn_MBR_DDateTime_1[] = { + { ATF_POINTER, 7, offsetof(struct DDateTime, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "year" + }, + { ATF_POINTER, 6, offsetof(struct DDateTime, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMonth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "month" + }, + { ATF_POINTER, 5, offsetof(struct DDateTime, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDay, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "day" + }, + { ATF_POINTER, 4, offsetof(struct DDateTime, hour), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DHour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hour" + }, + { ATF_POINTER, 3, offsetof(struct DDateTime, minute), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMinute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct DDateTime, second), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct DDateTime, offset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offset" + }, +}; +static const int asn_MAP_DDateTime_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_DDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DDateTime_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* day */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hour */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* offset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1 = { + sizeof(struct DDateTime), + offsetof(struct DDateTime, _asn_ctx), + asn_MAP_DDateTime_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_DDateTime_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DDateTime = { + "DDateTime", + "DDateTime", + &asn_OP_SEQUENCE, + asn_DEF_DDateTime_tags_1, + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + asn_DEF_DDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DDateTime_1, + 7, /* Elements count */ + &asn_SPC_DDateTime_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/DDay.c b/vcits/srem/src/DDay.c new file mode 100644 index 0000000..db372b6 --- /dev/null +++ b/vcits/srem/src/DDay.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DDay.h" + +int +DDay_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DDay_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_DDay_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DDay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DDay = { + "DDay", + "DDay", + &asn_OP_NativeInteger, + asn_DEF_DDay_tags_1, + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + asn_DEF_DDay_tags_1, /* Same as above */ + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + { &asn_OER_type_DDay_constr_1, &asn_PER_type_DDay_constr_1, DDay_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DHour.c b/vcits/srem/src/DHour.c new file mode 100644 index 0000000..b26f7b9 --- /dev/null +++ b/vcits/srem/src/DHour.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DHour.h" + +int +DHour_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DHour_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_DHour_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DHour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DHour = { + "DHour", + "DHour", + &asn_OP_NativeInteger, + asn_DEF_DHour_tags_1, + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + asn_DEF_DHour_tags_1, /* Same as above */ + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + { &asn_OER_type_DHour_constr_1, &asn_PER_type_DHour_constr_1, DHour_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DMinute.c b/vcits/srem/src/DMinute.c new file mode 100644 index 0000000..e0e5052 --- /dev/null +++ b/vcits/srem/src/DMinute.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DMinute.h" + +int +DMinute_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 60)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DMinute_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..60) */, + -1}; +asn_per_constraints_t asn_PER_type_DMinute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 60 } /* (0..60) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DMinute_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMinute = { + "DMinute", + "DMinute", + &asn_OP_NativeInteger, + asn_DEF_DMinute_tags_1, + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + asn_DEF_DMinute_tags_1, /* Same as above */ + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + { &asn_OER_type_DMinute_constr_1, &asn_PER_type_DMinute_constr_1, DMinute_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DMonth.c b/vcits/srem/src/DMonth.c new file mode 100644 index 0000000..d57e7b9 --- /dev/null +++ b/vcits/srem/src/DMonth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DMonth.h" + +int +DMonth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DMonth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..12) */, + -1}; +asn_per_constraints_t asn_PER_type_DMonth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DMonth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMonth = { + "DMonth", + "DMonth", + &asn_OP_NativeInteger, + asn_DEF_DMonth_tags_1, + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + asn_DEF_DMonth_tags_1, /* Same as above */ + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + { &asn_OER_type_DMonth_constr_1, &asn_PER_type_DMonth_constr_1, DMonth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DOffset.c b/vcits/srem/src/DOffset.c new file mode 100644 index 0000000..a63af2b --- /dev/null +++ b/vcits/srem/src/DOffset.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DOffset.h" + +int +DOffset_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -840 && value <= 840)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DOffset_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-840..840) */, + -1}; +asn_per_constraints_t asn_PER_type_DOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -840, 840 } /* (-840..840) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DOffset = { + "DOffset", + "DOffset", + &asn_OP_NativeInteger, + asn_DEF_DOffset_tags_1, + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + asn_DEF_DOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + { &asn_OER_type_DOffset_constr_1, &asn_PER_type_DOffset_constr_1, DOffset_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DSRCmsgID.c b/vcits/srem/src/DSRCmsgID.c new file mode 100644 index 0000000..67f4084 --- /dev/null +++ b/vcits/srem/src/DSRCmsgID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DSRCmsgID.h" + +int +DSRCmsgID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DSRCmsgID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSRCmsgID = { + "DSRCmsgID", + "DSRCmsgID", + &asn_OP_NativeInteger, + asn_DEF_DSRCmsgID_tags_1, + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + asn_DEF_DSRCmsgID_tags_1, /* Same as above */ + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + { &asn_OER_type_DSRCmsgID_constr_1, &asn_PER_type_DSRCmsgID_constr_1, DSRCmsgID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DSecond.c b/vcits/srem/src/DSecond.c new file mode 100644 index 0000000..1940e60 --- /dev/null +++ b/vcits/srem/src/DSecond.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DSecond.h" + +int +DSecond_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DSecond_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_DSecond_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSecond = { + "DSecond", + "DSecond", + &asn_OP_NativeInteger, + asn_DEF_DSecond_tags_1, + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + asn_DEF_DSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + { &asn_OER_type_DSecond_constr_1, &asn_PER_type_DSecond_constr_1, DSecond_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DYear.c b/vcits/srem/src/DYear.c new file mode 100644 index 0000000..dec3c90 --- /dev/null +++ b/vcits/srem/src/DYear.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DYear.h" + +int +DYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DYear_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_DYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DYear = { + "DYear", + "DYear", + &asn_OP_NativeInteger, + asn_DEF_DYear_tags_1, + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + asn_DEF_DYear_tags_1, /* Same as above */ + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + { &asn_OER_type_DYear_constr_1, &asn_PER_type_DYear_constr_1, DYear_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DangerousEndOfQueueSubCauseCode.c b/vcits/srem/src/DangerousEndOfQueueSubCauseCode.c new file mode 100644 index 0000000..b674ca5 --- /dev/null +++ b/vcits/srem/src/DangerousEndOfQueueSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DangerousEndOfQueueSubCauseCode.h" + +int +DangerousEndOfQueueSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode = { + "DangerousEndOfQueueSubCauseCode", + "DangerousEndOfQueueSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1, &asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1, DangerousEndOfQueueSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DangerousGoodsBasic.c b/vcits/srem/src/DangerousGoodsBasic.c new file mode 100644 index 0000000..0b2f28c --- /dev/null +++ b/vcits/srem/src/DangerousGoodsBasic.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DangerousGoodsBasic.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DangerousGoodsBasic_value2enum_1[] = { + { 0, 11, "explosives1" }, + { 1, 11, "explosives2" }, + { 2, 11, "explosives3" }, + { 3, 11, "explosives4" }, + { 4, 11, "explosives5" }, + { 5, 11, "explosives6" }, + { 6, 14, "flammableGases" }, + { 7, 17, "nonFlammableGases" }, + { 8, 10, "toxicGases" }, + { 9, 16, "flammableLiquids" }, + { 10, 15, "flammableSolids" }, + { 11, 39, "substancesLiableToSpontaneousCombustion" }, + { 12, 52, "substancesEmittingFlammableGasesUponContactWithWater" }, + { 13, 19, "oxidizingSubstances" }, + { 14, 16, "organicPeroxides" }, + { 15, 15, "toxicSubstances" }, + { 16, 20, "infectiousSubstances" }, + { 17, 19, "radioactiveMaterial" }, + { 18, 19, "corrosiveSubstances" }, + { 19, 32, "miscellaneousDangerousSubstances" } +}; +static const unsigned int asn_MAP_DangerousGoodsBasic_enum2value_1[] = { + 18, /* corrosiveSubstances(18) */ + 0, /* explosives1(0) */ + 1, /* explosives2(1) */ + 2, /* explosives3(2) */ + 3, /* explosives4(3) */ + 4, /* explosives5(4) */ + 5, /* explosives6(5) */ + 6, /* flammableGases(6) */ + 9, /* flammableLiquids(9) */ + 10, /* flammableSolids(10) */ + 16, /* infectiousSubstances(16) */ + 19, /* miscellaneousDangerousSubstances(19) */ + 7, /* nonFlammableGases(7) */ + 14, /* organicPeroxides(14) */ + 13, /* oxidizingSubstances(13) */ + 17, /* radioactiveMaterial(17) */ + 12, /* substancesEmittingFlammableGasesUponContactWithWater(12) */ + 11, /* substancesLiableToSpontaneousCombustion(11) */ + 8, /* toxicGases(8) */ + 15 /* toxicSubstances(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1 = { + asn_MAP_DangerousGoodsBasic_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DangerousGoodsBasic_enum2value_1, /* N => "tag"; sorted by N */ + 20, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic = { + "DangerousGoodsBasic", + "DangerousGoodsBasic", + &asn_OP_NativeEnumerated, + asn_DEF_DangerousGoodsBasic_tags_1, + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousGoodsBasic_constr_1, &asn_PER_type_DangerousGoodsBasic_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DangerousGoodsBasic_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/DangerousGoodsExtended.c b/vcits/srem/src/DangerousGoodsExtended.c new file mode 100644 index 0000000..c593045 --- /dev/null +++ b/vcits/srem/src/DangerousGoodsExtended.c @@ -0,0 +1,243 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DangerousGoodsExtended.h" + +static int check_permitted_alphabet_7(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_unNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 9999)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_emergencyActionCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 24) + && !check_permitted_alphabet_7(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_companyName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const UTF8String_t *st = (const UTF8String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = UTF8String_length(st); + if((ssize_t)size < 0) { + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((size >= 1 && size <= 24)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_unNumber_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..9999) */, + -1}; +static asn_per_constraints_t asn_PER_memb_unNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 9999 } /* (0..9999) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..24)) */}; +static asn_per_constraints_t asn_PER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 5, 5, 1, 24 } /* (SIZE(1..24)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_companyName_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_companyName_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DangerousGoodsExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsBasic, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dangerousGoodsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, unNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_unNumber_constr_3, &asn_PER_memb_unNumber_constr_3, memb_unNumber_constraint_1 }, + 0, 0, /* No default value */ + "unNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, elevatedTemperature), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevatedTemperature" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, tunnelsRestricted), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tunnelsRestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, limitedQuantity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "limitedQuantity" + }, + { ATF_POINTER, 3, offsetof(struct DangerousGoodsExtended, emergencyActionCode), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_emergencyActionCode_constr_7, &asn_PER_memb_emergencyActionCode_constr_7, memb_emergencyActionCode_constraint_1 }, + 0, 0, /* No default value */ + "emergencyActionCode" + }, + { ATF_POINTER, 2, offsetof(struct DangerousGoodsExtended, phoneNumber), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhoneNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phoneNumber" + }, + { ATF_POINTER, 1, offsetof(struct DangerousGoodsExtended, companyName), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { &asn_OER_memb_companyName_constr_9, &asn_PER_memb_companyName_constr_9, memb_companyName_constraint_1 }, + 0, 0, /* No default value */ + "companyName" + }, +}; +static const int asn_MAP_DangerousGoodsExtended_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DangerousGoodsExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dangerousGoodsType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* unNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevatedTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tunnelsRestricted */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* limitedQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyActionCode */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* phoneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* companyName */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DangerousGoodsExtended_specs_1 = { + sizeof(struct DangerousGoodsExtended), + offsetof(struct DangerousGoodsExtended, _asn_ctx), + asn_MAP_DangerousGoodsExtended_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_DangerousGoodsExtended_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended = { + "DangerousGoodsExtended", + "DangerousGoodsExtended", + &asn_OP_SEQUENCE, + asn_DEF_DangerousGoodsExtended_tags_1, + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DangerousGoodsExtended_1, + 8, /* Elements count */ + &asn_SPC_DangerousGoodsExtended_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/DangerousSituationSubCauseCode.c b/vcits/srem/src/DangerousSituationSubCauseCode.c new file mode 100644 index 0000000..aa172ef --- /dev/null +++ b/vcits/srem/src/DangerousSituationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DangerousSituationSubCauseCode.h" + +int +DangerousSituationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousSituationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode = { + "DangerousSituationSubCauseCode", + "DangerousSituationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousSituationSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousSituationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousSituationSubCauseCode_constr_1, &asn_PER_type_DangerousSituationSubCauseCode_constr_1, DangerousSituationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DataParameters.c b/vcits/srem/src/DataParameters.c new file mode 100644 index 0000000..43175fe --- /dev/null +++ b/vcits/srem/src/DataParameters.c @@ -0,0 +1,274 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DataParameters.h" + +static int check_permitted_alphabet_2(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_3(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_4(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_5(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_processMethod_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_2(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_processAgency_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_3(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_lastCheckedDate_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_4(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_geoidUsed_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_5(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_processMethod_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_processMethod_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_processAgency_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_processAgency_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +asn_TYPE_member_t asn_MBR_DataParameters_1[] = { + { ATF_POINTER, 4, offsetof(struct DataParameters, processMethod), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_processMethod_constr_2, &asn_PER_memb_processMethod_constr_2, memb_processMethod_constraint_1 }, + 0, 0, /* No default value */ + "processMethod" + }, + { ATF_POINTER, 3, offsetof(struct DataParameters, processAgency), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_processAgency_constr_3, &asn_PER_memb_processAgency_constr_3, memb_processAgency_constraint_1 }, + 0, 0, /* No default value */ + "processAgency" + }, + { ATF_POINTER, 2, offsetof(struct DataParameters, lastCheckedDate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_lastCheckedDate_constr_4, &asn_PER_memb_lastCheckedDate_constr_4, memb_lastCheckedDate_constraint_1 }, + 0, 0, /* No default value */ + "lastCheckedDate" + }, + { ATF_POINTER, 1, offsetof(struct DataParameters, geoidUsed), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_geoidUsed_constr_5, &asn_PER_memb_geoidUsed_constr_5, memb_geoidUsed_constraint_1 }, + 0, 0, /* No default value */ + "geoidUsed" + }, +}; +static const int asn_MAP_DataParameters_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_DataParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DataParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* processMethod */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* processAgency */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lastCheckedDate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* geoidUsed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1 = { + sizeof(struct DataParameters), + offsetof(struct DataParameters, _asn_ctx), + asn_MAP_DataParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DataParameters_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DataParameters = { + "DataParameters", + "DataParameters", + &asn_OP_SEQUENCE, + asn_DEF_DataParameters_tags_1, + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + asn_DEF_DataParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DataParameters_1, + 4, /* Elements count */ + &asn_SPC_DataParameters_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/DeltaAltitude.c b/vcits/srem/src/DeltaAltitude.c new file mode 100644 index 0000000..092ba62 --- /dev/null +++ b/vcits/srem/src/DeltaAltitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DeltaAltitude.h" + +int +DeltaAltitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -12700 && value <= 12800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-12700..12800) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, -12700, 12800 } /* (-12700..12800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAltitude = { + "DeltaAltitude", + "DeltaAltitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaAltitude_tags_1, + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAltitude_constr_1, &asn_PER_type_DeltaAltitude_constr_1, DeltaAltitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DeltaAngle.c b/vcits/srem/src/DeltaAngle.c new file mode 100644 index 0000000..cd4598a --- /dev/null +++ b/vcits/srem/src/DeltaAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DeltaAngle.h" + +int +DeltaAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -150 && value <= 150)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-150..150) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -150, 150 } /* (-150..150) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAngle = { + "DeltaAngle", + "DeltaAngle", + &asn_OP_NativeInteger, + asn_DEF_DeltaAngle_tags_1, + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + asn_DEF_DeltaAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAngle_constr_1, &asn_PER_type_DeltaAngle_constr_1, DeltaAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DeltaLatitude.c b/vcits/srem/src/DeltaLatitude.c new file mode 100644 index 0000000..8ff0a7d --- /dev/null +++ b/vcits/srem/src/DeltaLatitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DeltaLatitude.h" + +int +DeltaLatitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLatitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLatitude = { + "DeltaLatitude", + "DeltaLatitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLatitude_tags_1, + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLatitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLatitude_constr_1, &asn_PER_type_DeltaLatitude_constr_1, DeltaLatitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DeltaLongitude.c b/vcits/srem/src/DeltaLongitude.c new file mode 100644 index 0000000..1fa22fb --- /dev/null +++ b/vcits/srem/src/DeltaLongitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DeltaLongitude.h" + +int +DeltaLongitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLongitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLongitude = { + "DeltaLongitude", + "DeltaLongitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLongitude_tags_1, + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLongitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLongitude_constr_1, &asn_PER_type_DeltaLongitude_constr_1, DeltaLongitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DeltaReferencePosition.c b/vcits/srem/src/DeltaReferencePosition.c new file mode 100644 index 0000000..4ae344f --- /dev/null +++ b/vcits/srem/src/DeltaReferencePosition.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DeltaReferencePosition.h" + +asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLatitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLongitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLongitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaAltitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_DeltaReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DeltaReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* deltaAltitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1 = { + sizeof(struct DeltaReferencePosition), + offsetof(struct DeltaReferencePosition, _asn_ctx), + asn_MAP_DeltaReferencePosition_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition = { + "DeltaReferencePosition", + "DeltaReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_DeltaReferencePosition_tags_1, + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_DeltaReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DeltaReferencePosition_1, + 3, /* Elements count */ + &asn_SPC_DeltaReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/DeltaTime.c b/vcits/srem/src/DeltaTime.c new file mode 100644 index 0000000..3b3c518 --- /dev/null +++ b/vcits/srem/src/DeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DeltaTime.h" + +int +DeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -122 && value <= 121)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaTime_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-122..121) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -122, 121 } /* (-122..121) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaTime = { + "DeltaTime", + "DeltaTime", + &asn_OP_NativeInteger, + asn_DEF_DeltaTime_tags_1, + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + asn_DEF_DeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaTime_constr_1, &asn_PER_type_DeltaTime_constr_1, DeltaTime_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DescriptiveName.c b/vcits/srem/src/DescriptiveName.c new file mode 100644 index 0000000..8d842d2 --- /dev/null +++ b/vcits/srem/src/DescriptiveName.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DescriptiveName.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +DescriptiveName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 63) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_DescriptiveName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DescriptiveName = { + "DescriptiveName", + "DescriptiveName", + &asn_OP_IA5String, + asn_DEF_DescriptiveName_tags_1, + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + asn_DEF_DescriptiveName_tags_1, /* Same as above */ + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + { &asn_OER_type_DescriptiveName_constr_1, &asn_PER_type_DescriptiveName_constr_1, DescriptiveName_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DigitalMap.c b/vcits/srem/src/DigitalMap.c new file mode 100644 index 0000000..87fbf1e --- /dev/null +++ b/vcits/srem/src/DigitalMap.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DigitalMap.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_DigitalMap_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_DigitalMap_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DigitalMap_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DigitalMap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DigitalMap_specs_1 = { + sizeof(struct DigitalMap), + offsetof(struct DigitalMap, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DigitalMap = { + "DigitalMap", + "DigitalMap", + &asn_OP_SEQUENCE_OF, + asn_DEF_DigitalMap_tags_1, + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + asn_DEF_DigitalMap_tags_1, /* Same as above */ + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + { &asn_OER_type_DigitalMap_constr_1, &asn_PER_type_DigitalMap_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DigitalMap_1, + 1, /* Single element */ + &asn_SPC_DigitalMap_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/DriveDirection.c b/vcits/srem/src/DriveDirection.c new file mode 100644 index 0000000..0b19610 --- /dev/null +++ b/vcits/srem/src/DriveDirection.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DriveDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DriveDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_DriveDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DriveDirection_value2enum_1[] = { + { 0, 7, "forward" }, + { 1, 8, "backward" }, + { 2, 11, "unavailable" } +}; +static const unsigned int asn_MAP_DriveDirection_enum2value_1[] = { + 1, /* backward(1) */ + 0, /* forward(0) */ + 2 /* unavailable(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_DriveDirection_specs_1 = { + asn_MAP_DriveDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DriveDirection_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DriveDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DriveDirection = { + "DriveDirection", + "DriveDirection", + &asn_OP_NativeEnumerated, + asn_DEF_DriveDirection_tags_1, + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + asn_DEF_DriveDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_DriveDirection_constr_1, &asn_PER_type_DriveDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DriveDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/DrivenLineOffsetLg.c b/vcits/srem/src/DrivenLineOffsetLg.c new file mode 100644 index 0000000..b164967 --- /dev/null +++ b/vcits/srem/src/DrivenLineOffsetLg.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DrivenLineOffsetLg.h" + +int +DrivenLineOffsetLg_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32767 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32767..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32767, 32767 } /* (-32767..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetLg_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg = { + "DrivenLineOffsetLg", + "DrivenLineOffsetLg", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetLg_tags_1, + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetLg_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivenLineOffsetLg_constr_1, &asn_PER_type_DrivenLineOffsetLg_constr_1, DrivenLineOffsetLg_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DrivenLineOffsetSm.c b/vcits/srem/src/DrivenLineOffsetSm.c new file mode 100644 index 0000000..aa2699f --- /dev/null +++ b/vcits/srem/src/DrivenLineOffsetSm.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DrivenLineOffsetSm.h" + +int +DrivenLineOffsetSm_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2047 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2047..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2047, 2047 } /* (-2047..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetSm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm = { + "DrivenLineOffsetSm", + "DrivenLineOffsetSm", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetSm_tags_1, + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetSm_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivenLineOffsetSm_constr_1, &asn_PER_type_DrivenLineOffsetSm_constr_1, DrivenLineOffsetSm_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/DrivingLaneStatus.c b/vcits/srem/src/DrivingLaneStatus.c new file mode 100644 index 0000000..d31a34a --- /dev/null +++ b/vcits/srem/src/DrivingLaneStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "DrivingLaneStatus.h" + +int +DrivingLaneStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size >= 1 && size <= 13)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..13)) */}; +asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 13 } /* (SIZE(1..13)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivingLaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus = { + "DrivingLaneStatus", + "DrivingLaneStatus", + &asn_OP_BIT_STRING, + asn_DEF_DrivingLaneStatus_tags_1, + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + asn_DEF_DrivingLaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivingLaneStatus_constr_1, &asn_PER_type_DrivingLaneStatus_constr_1, DrivingLaneStatus_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/Elevation.c b/vcits/srem/src/Elevation.c new file mode 100644 index 0000000..c47a19d --- /dev/null +++ b/vcits/srem/src/Elevation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Elevation.h" + +int +Elevation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096 && value <= 61439)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Elevation_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-4096..61439) */, + -1}; +asn_per_constraints_t asn_PER_type_Elevation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -4096, 61439 } /* (-4096..61439) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Elevation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Elevation = { + "Elevation", + "Elevation", + &asn_OP_NativeInteger, + asn_DEF_Elevation_tags_1, + sizeof(asn_DEF_Elevation_tags_1) + /sizeof(asn_DEF_Elevation_tags_1[0]), /* 1 */ + asn_DEF_Elevation_tags_1, /* Same as above */ + sizeof(asn_DEF_Elevation_tags_1) + /sizeof(asn_DEF_Elevation_tags_1[0]), /* 1 */ + { &asn_OER_type_Elevation_constr_1, &asn_PER_type_Elevation_constr_1, Elevation_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/ElevationConfidence.c b/vcits/srem/src/ElevationConfidence.c new file mode 100644 index 0000000..6da754d --- /dev/null +++ b/vcits/srem/src/ElevationConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ElevationConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ElevationConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 11, "elev-500-00" }, + { 2, 11, "elev-200-00" }, + { 3, 11, "elev-100-00" }, + { 4, 11, "elev-050-00" }, + { 5, 11, "elev-020-00" }, + { 6, 11, "elev-010-00" }, + { 7, 11, "elev-005-00" }, + { 8, 11, "elev-002-00" }, + { 9, 11, "elev-001-00" }, + { 10, 11, "elev-000-50" }, + { 11, 11, "elev-000-20" }, + { 12, 11, "elev-000-10" }, + { 13, 11, "elev-000-05" }, + { 14, 11, "elev-000-02" }, + { 15, 11, "elev-000-01" } +}; +static const unsigned int asn_MAP_ElevationConfidence_enum2value_1[] = { + 15, /* elev-000-01(15) */ + 14, /* elev-000-02(14) */ + 13, /* elev-000-05(13) */ + 12, /* elev-000-10(12) */ + 11, /* elev-000-20(11) */ + 10, /* elev-000-50(10) */ + 9, /* elev-001-00(9) */ + 8, /* elev-002-00(8) */ + 7, /* elev-005-00(7) */ + 6, /* elev-010-00(6) */ + 5, /* elev-020-00(5) */ + 4, /* elev-050-00(4) */ + 3, /* elev-100-00(3) */ + 2, /* elev-200-00(2) */ + 1, /* elev-500-00(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1 = { + asn_MAP_ElevationConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ElevationConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ElevationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ElevationConfidence = { + "ElevationConfidence", + "ElevationConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ElevationConfidence_tags_1, + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + asn_DEF_ElevationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ElevationConfidence_constr_1, &asn_PER_type_ElevationConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ElevationConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/EmbarkationStatus.c b/vcits/srem/src/EmbarkationStatus.c new file mode 100644 index 0000000..7261f24 --- /dev/null +++ b/vcits/srem/src/EmbarkationStatus.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "EmbarkationStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_EmbarkationStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus = { + "EmbarkationStatus", + "EmbarkationStatus", + &asn_OP_BOOLEAN, + asn_DEF_EmbarkationStatus_tags_1, + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + asn_DEF_EmbarkationStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/EmergencyPriority.c b/vcits/srem/src/EmergencyPriority.c new file mode 100644 index 0000000..a9a5fdd --- /dev/null +++ b/vcits/srem/src/EmergencyPriority.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "EmergencyPriority.h" + +int +EmergencyPriority_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyPriority = { + "EmergencyPriority", + "EmergencyPriority", + &asn_OP_BIT_STRING, + asn_DEF_EmergencyPriority_tags_1, + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + asn_DEF_EmergencyPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyPriority_constr_1, &asn_PER_type_EmergencyPriority_constr_1, EmergencyPriority_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/EmergencyVehicleApproachingSubCauseCode.c b/vcits/srem/src/EmergencyVehicleApproachingSubCauseCode.c new file mode 100644 index 0000000..7c417dd --- /dev/null +++ b/vcits/srem/src/EmergencyVehicleApproachingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "EmergencyVehicleApproachingSubCauseCode.h" + +int +EmergencyVehicleApproachingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode = { + "EmergencyVehicleApproachingSubCauseCode", + "EmergencyVehicleApproachingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, &asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, EmergencyVehicleApproachingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/EmissionType.c b/vcits/srem/src/EmissionType.c new file mode 100644 index 0000000..ddea862 --- /dev/null +++ b/vcits/srem/src/EmissionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "EmissionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmissionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EmissionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EmissionType_value2enum_1[] = { + { 0, 5, "euro1" }, + { 1, 5, "euro2" }, + { 2, 5, "euro3" }, + { 3, 5, "euro4" }, + { 4, 5, "euro5" }, + { 5, 5, "euro6" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_EmissionType_enum2value_1[] = { + 0, /* euro1(0) */ + 1, /* euro2(1) */ + 2, /* euro3(2) */ + 3, /* euro4(3) */ + 4, /* euro5(4) */ + 5 /* euro6(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1 = { + asn_MAP_EmissionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EmissionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EmissionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmissionType = { + "EmissionType", + "EmissionType", + &asn_OP_NativeEnumerated, + asn_DEF_EmissionType_tags_1, + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + asn_DEF_EmissionType_tags_1, /* Same as above */ + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + { &asn_OER_type_EmissionType_constr_1, &asn_PER_type_EmissionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EmissionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/EnabledLaneList.c b/vcits/srem/src/EnabledLaneList.c new file mode 100644 index 0000000..0eadb66 --- /dev/null +++ b/vcits/srem/src/EnabledLaneList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "EnabledLaneList.h" + +static asn_oer_constraints_t asn_OER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_EnabledLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EnabledLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1 = { + sizeof(struct EnabledLaneList), + offsetof(struct EnabledLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EnabledLaneList = { + "EnabledLaneList", + "EnabledLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EnabledLaneList_tags_1, + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + asn_DEF_EnabledLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_EnabledLaneList_constr_1, &asn_PER_type_EnabledLaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EnabledLaneList_1, + 1, /* Single element */ + &asn_SPC_EnabledLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/EnergyStorageType.c b/vcits/srem/src/EnergyStorageType.c new file mode 100644 index 0000000..0a8f9f6 --- /dev/null +++ b/vcits/srem/src/EnergyStorageType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "EnergyStorageType.h" + +int +EnergyStorageType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EnergyStorageType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EnergyStorageType = { + "EnergyStorageType", + "EnergyStorageType", + &asn_OP_BIT_STRING, + asn_DEF_EnergyStorageType_tags_1, + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + asn_DEF_EnergyStorageType_tags_1, /* Same as above */ + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + { &asn_OER_type_EnergyStorageType_constr_1, &asn_PER_type_EnergyStorageType_constr_1, EnergyStorageType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/EuVehicleCategoryCode.c b/vcits/srem/src/EuVehicleCategoryCode.c new file mode 100644 index 0000000..5d1017e --- /dev/null +++ b/vcits/srem/src/EuVehicleCategoryCode.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "EuVehicleCategoryCode.h" + +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EuVehicleCategoryCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryL" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryM" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryN" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryO" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehilcleCategoryT), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehilcleCategoryT" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehilcleCategoryG), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehilcleCategoryG" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_EuVehicleCategoryCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* euVehicleCategoryL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* euVehicleCategoryM */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* euVehicleCategoryN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* euVehicleCategoryO */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* euVehilcleCategoryT */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* euVehilcleCategoryG */ +}; +static asn_CHOICE_specifics_t asn_SPC_EuVehicleCategoryCode_specs_1 = { + sizeof(struct EuVehicleCategoryCode), + offsetof(struct EuVehicleCategoryCode, _asn_ctx), + offsetof(struct EuVehicleCategoryCode, present), + sizeof(((struct EuVehicleCategoryCode *)0)->present), + asn_MAP_EuVehicleCategoryCode_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryCode = { + "EuVehicleCategoryCode", + "EuVehicleCategoryCode", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_EuVehicleCategoryCode_constr_1, &asn_PER_type_EuVehicleCategoryCode_constr_1, CHOICE_constraint }, + asn_MBR_EuVehicleCategoryCode_1, + 6, /* Elements count */ + &asn_SPC_EuVehicleCategoryCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/EuVehicleCategoryL.c b/vcits/srem/src/EuVehicleCategoryL.c new file mode 100644 index 0000000..4dd1295 --- /dev/null +++ b/vcits/srem/src/EuVehicleCategoryL.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "EuVehicleCategoryL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryL_value2enum_1[] = { + { 0, 2, "l1" }, + { 1, 2, "l2" }, + { 2, 2, "l3" }, + { 3, 2, "l4" }, + { 4, 2, "l5" }, + { 5, 2, "l6" }, + { 6, 2, "l7" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryL_enum2value_1[] = { + 0, /* l1(0) */ + 1, /* l2(1) */ + 2, /* l3(2) */ + 3, /* l4(3) */ + 4, /* l5(4) */ + 5, /* l6(5) */ + 6 /* l7(6) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryL_specs_1 = { + asn_MAP_EuVehicleCategoryL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryL_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryL = { + "EuVehicleCategoryL", + "EuVehicleCategoryL", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryL_tags_1, + sizeof(asn_DEF_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryL_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryL_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryL_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryL_constr_1, &asn_PER_type_EuVehicleCategoryL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryL_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/EuVehicleCategoryM.c b/vcits/srem/src/EuVehicleCategoryM.c new file mode 100644 index 0000000..9a10ac1 --- /dev/null +++ b/vcits/srem/src/EuVehicleCategoryM.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "EuVehicleCategoryM.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryM_value2enum_1[] = { + { 0, 2, "m1" }, + { 1, 2, "m2" }, + { 2, 2, "m3" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryM_enum2value_1[] = { + 0, /* m1(0) */ + 1, /* m2(1) */ + 2 /* m3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryM_specs_1 = { + asn_MAP_EuVehicleCategoryM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryM_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryM = { + "EuVehicleCategoryM", + "EuVehicleCategoryM", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryM_tags_1, + sizeof(asn_DEF_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryM_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryM_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryM_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryM_constr_1, &asn_PER_type_EuVehicleCategoryM_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/EuVehicleCategoryN.c b/vcits/srem/src/EuVehicleCategoryN.c new file mode 100644 index 0000000..174cc87 --- /dev/null +++ b/vcits/srem/src/EuVehicleCategoryN.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "EuVehicleCategoryN.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryN_value2enum_1[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryN_enum2value_1[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryN_specs_1 = { + asn_MAP_EuVehicleCategoryN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryN_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryN = { + "EuVehicleCategoryN", + "EuVehicleCategoryN", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryN_tags_1, + sizeof(asn_DEF_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryN_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryN_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryN_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryN_constr_1, &asn_PER_type_EuVehicleCategoryN_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryN_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/EuVehicleCategoryO.c b/vcits/srem/src/EuVehicleCategoryO.c new file mode 100644 index 0000000..24cbb42 --- /dev/null +++ b/vcits/srem/src/EuVehicleCategoryO.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "EuVehicleCategoryO.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryO_value2enum_1[] = { + { 0, 2, "o1" }, + { 1, 2, "o2" }, + { 2, 2, "o3" }, + { 3, 2, "o4" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryO_enum2value_1[] = { + 0, /* o1(0) */ + 1, /* o2(1) */ + 2, /* o3(2) */ + 3 /* o4(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryO_specs_1 = { + asn_MAP_EuVehicleCategoryO_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryO_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryO = { + "EuVehicleCategoryO", + "EuVehicleCategoryO", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryO_tags_1, + sizeof(asn_DEF_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryO_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryO_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryO_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryO_constr_1, &asn_PER_type_EuVehicleCategoryO_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryO_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/EventHistory.c b/vcits/srem/src/EventHistory.c new file mode 100644 index 0000000..bbd5d52 --- /dev/null +++ b/vcits/srem/src/EventHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "EventHistory.h" + +#include "EventPoint.h" +static asn_oer_constraints_t asn_OER_type_EventHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..23)) */}; +static asn_per_constraints_t asn_PER_type_EventHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (SIZE(1..23)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EventHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EventPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EventHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_EventHistory_specs_1 = { + sizeof(struct EventHistory), + offsetof(struct EventHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EventHistory = { + "EventHistory", + "EventHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_EventHistory_tags_1, + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + asn_DEF_EventHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_EventHistory_constr_1, &asn_PER_type_EventHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EventHistory_1, + 1, /* Single element */ + &asn_SPC_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/EventPoint.c b/vcits/srem/src/EventPoint.c new file mode 100644 index 0000000..ec5ac86 --- /dev/null +++ b/vcits/srem/src/EventPoint.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "EventPoint.h" + +asn_TYPE_member_t asn_MBR_EventPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventPosition" + }, + { ATF_POINTER, 1, offsetof(struct EventPoint, eventDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InformationQuality, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "informationQuality" + }, +}; +static const int asn_MAP_EventPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_EventPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EventPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* informationQuality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1 = { + sizeof(struct EventPoint), + offsetof(struct EventPoint, _asn_ctx), + asn_MAP_EventPoint_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_EventPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EventPoint = { + "EventPoint", + "EventPoint", + &asn_OP_SEQUENCE, + asn_DEF_EventPoint_tags_1, + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + asn_DEF_EventPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EventPoint_1, + 3, /* Elements count */ + &asn_SPC_EventPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ExceptionalCondition.c b/vcits/srem/src/ExceptionalCondition.c new file mode 100644 index 0000000..1427543 --- /dev/null +++ b/vcits/srem/src/ExceptionalCondition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ExceptionalCondition.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExceptionalCondition_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ExceptionalCondition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ExceptionalCondition_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 23, "publicTransportPriority" }, + { 2, 24, "emergencyVehiclePriority" }, + { 3, 13, "trainPriority" }, + { 4, 10, "bridgeOpen" }, + { 5, 13, "vehicleHeight" }, + { 6, 7, "weather" }, + { 7, 10, "trafficJam" }, + { 8, 13, "tunnelClosure" }, + { 9, 14, "meteringActive" }, + { 10, 13, "truckPriority" }, + { 11, 22, "bicyclePlatoonPriority" }, + { 12, 22, "vehiclePlatoonPriority" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ExceptionalCondition_enum2value_1[] = { + 11, /* bicyclePlatoonPriority(11) */ + 4, /* bridgeOpen(4) */ + 2, /* emergencyVehiclePriority(2) */ + 9, /* meteringActive(9) */ + 1, /* publicTransportPriority(1) */ + 7, /* trafficJam(7) */ + 3, /* trainPriority(3) */ + 10, /* truckPriority(10) */ + 8, /* tunnelClosure(8) */ + 0, /* unknown(0) */ + 5, /* vehicleHeight(5) */ + 12, /* vehiclePlatoonPriority(12) */ + 6 /* weather(6) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ExceptionalCondition_specs_1 = { + asn_MAP_ExceptionalCondition_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ExceptionalCondition_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ExceptionalCondition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExceptionalCondition = { + "ExceptionalCondition", + "ExceptionalCondition", + &asn_OP_NativeEnumerated, + asn_DEF_ExceptionalCondition_tags_1, + sizeof(asn_DEF_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ExceptionalCondition_tags_1[0]), /* 1 */ + asn_DEF_ExceptionalCondition_tags_1, /* Same as above */ + sizeof(asn_DEF_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ExceptionalCondition_tags_1[0]), /* 1 */ + { &asn_OER_type_ExceptionalCondition_constr_1, &asn_PER_type_ExceptionalCondition_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ExceptionalCondition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ExteriorLights.c b/vcits/srem/src/ExteriorLights.c new file mode 100644 index 0000000..66d2b8c --- /dev/null +++ b/vcits/srem/src/ExteriorLights.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ExteriorLights.h" + +int +ExteriorLights_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_ExteriorLights_tags_1, + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + { &asn_OER_type_ExteriorLights_constr_1, &asn_PER_type_ExteriorLights_constr_1, ExteriorLights_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/FreightContainerData.c b/vcits/srem/src/FreightContainerData.c new file mode 100644 index 0000000..3836a69 --- /dev/null +++ b/vcits/srem/src/FreightContainerData.c @@ -0,0 +1,482 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "FreightContainerData.h" + +static int +memb_ownerCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_serialNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1000000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_checkDigit_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_length_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 2000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_height_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_width_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 200 && value <= 300)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_containerTypeCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_maximumGrossMass_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 19 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_tareMass_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 99)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_ownerCode_constr_2 CC_NOTUSED = { + { 0, 0 }, + 19 /* (SIZE(19..19)) */}; +static asn_per_constraints_t asn_PER_memb_ownerCode_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 19, 19 } /* (SIZE(19..19)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_serialNumber_constr_3 CC_NOTUSED = { + { 4, 1 } /* (0..1000000) */, + -1}; +static asn_per_constraints_t asn_PER_memb_serialNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 1000000 } /* (0..1000000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_checkDigit_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..10) */, + -1}; +static asn_per_constraints_t asn_PER_memb_checkDigit_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 10 } /* (0..10) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_length_constr_5 CC_NOTUSED = { + { 2, 1 } /* (1..2000) */, + -1}; +static asn_per_constraints_t asn_PER_memb_length_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 1, 2000 } /* (1..2000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_height_constr_6 CC_NOTUSED = { + { 2, 1 } /* (1..500) */, + -1}; +static asn_per_constraints_t asn_PER_memb_height_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 500 } /* (1..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_width_constr_7 CC_NOTUSED = { + { 2, 1 } /* (200..300) */, + -1}; +static asn_per_constraints_t asn_PER_memb_width_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 200, 300 } /* (200..300) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_containerTypeCode_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_containerTypeCode_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_maximumGrossMass_constr_9 CC_NOTUSED = { + { 2, 1 } /* (19..500) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maximumGrossMass_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 19, 500 } /* (19..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_tareMass_constr_10 CC_NOTUSED = { + { 1, 1 } /* (0..99) */, + -1}; +static asn_per_constraints_t asn_PER_memb_tareMass_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 99 } /* (0..99) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_fill_constr_11 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_FreightContainerData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, ownerCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_ownerCode_constr_2, &asn_PER_memb_ownerCode_constr_2, memb_ownerCode_constraint_1 }, + 0, 0, /* No default value */ + "ownerCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, serialNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_serialNumber_constr_3, &asn_PER_memb_serialNumber_constr_3, memb_serialNumber_constraint_1 }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, checkDigit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_checkDigit_constr_4, &asn_PER_memb_checkDigit_constr_4, memb_checkDigit_constraint_1 }, + 0, 0, /* No default value */ + "checkDigit" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, length), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_length_constr_5, &asn_PER_memb_length_constr_5, memb_length_constraint_1 }, + 0, 0, /* No default value */ + "length" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, height), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_height_constr_6, &asn_PER_memb_height_constr_6, memb_height_constraint_1 }, + 0, 0, /* No default value */ + "height" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, width), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_width_constr_7, &asn_PER_memb_width_constr_7, memb_width_constraint_1 }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, containerTypeCode), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_containerTypeCode_constr_8, &asn_PER_memb_containerTypeCode_constr_8, memb_containerTypeCode_constraint_1 }, + 0, 0, /* No default value */ + "containerTypeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, maximumGrossMass), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maximumGrossMass_constr_9, &asn_PER_memb_maximumGrossMass_constr_9, memb_maximumGrossMass_constraint_1 }, + 0, 0, /* No default value */ + "maximumGrossMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, tareMass), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_tareMass_constr_10, &asn_PER_memb_tareMass_constr_10, memb_tareMass_constraint_1 }, + 0, 0, /* No default value */ + "tareMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, fill), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_11, &asn_PER_memb_fill_constr_11, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_FreightContainerData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FreightContainerData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ownerCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serialNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* checkDigit */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* length */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* height */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* width */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* containerTypeCode */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* maximumGrossMass */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* tareMass */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* fill */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FreightContainerData_specs_1 = { + sizeof(struct FreightContainerData), + offsetof(struct FreightContainerData, _asn_ctx), + asn_MAP_FreightContainerData_tag2el_1, + 10, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FreightContainerData = { + "FreightContainerData", + "FreightContainerData", + &asn_OP_SEQUENCE, + asn_DEF_FreightContainerData_tags_1, + sizeof(asn_DEF_FreightContainerData_tags_1) + /sizeof(asn_DEF_FreightContainerData_tags_1[0]), /* 1 */ + asn_DEF_FreightContainerData_tags_1, /* Same as above */ + sizeof(asn_DEF_FreightContainerData_tags_1) + /sizeof(asn_DEF_FreightContainerData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/FuelType.c b/vcits/srem/src/FuelType.c new file mode 100644 index 0000000..75b61df --- /dev/null +++ b/vcits/srem/src/FuelType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "FuelType.h" + +int +FuelType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FuelType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_FuelType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_FuelType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FuelType = { + "FuelType", + "FuelType", + &asn_OP_NativeInteger, + asn_DEF_FuelType_tags_1, + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + asn_DEF_FuelType_tags_1, /* Same as above */ + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + { &asn_OER_type_FuelType_constr_1, &asn_PER_type_FuelType_constr_1, FuelType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/FullPositionVector.c b/vcits/srem/src/FullPositionVector.c new file mode 100644 index 0000000..2f85a9f --- /dev/null +++ b/vcits/srem/src/FullPositionVector.c @@ -0,0 +1,147 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "FullPositionVector.h" + +#include "DDateTime.h" +#include "TransmissionAndSpeed.h" +#include "PositionalAccuracy.h" +#include "PositionConfidenceSet.h" +#include "SpeedandHeadingandThrottleConfidence.h" +asn_TYPE_member_t asn_MBR_FullPositionVector_1[] = { + { ATF_POINTER, 1, offsetof(struct FullPositionVector, utcTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDateTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "utcTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "long" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, lat), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_POINTER, 7, offsetof(struct FullPositionVector, elevation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Elevation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 6, offsetof(struct FullPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 5, offsetof(struct FullPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct FullPositionVector, posAccuracy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionalAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posAccuracy" + }, + { ATF_POINTER, 3, offsetof(struct FullPositionVector, timeConfidence), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeConfidence" + }, + { ATF_POINTER, 2, offsetof(struct FullPositionVector, posConfidence), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidenceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posConfidence" + }, + { ATF_POINTER, 1, offsetof(struct FullPositionVector, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedandHeadingandThrottleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const int asn_MAP_FullPositionVector_oms_1[] = { 0, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_FullPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FullPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* utcTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* posAccuracy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* timeConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* posConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1 = { + sizeof(struct FullPositionVector), + offsetof(struct FullPositionVector, _asn_ctx), + asn_MAP_FullPositionVector_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_FullPositionVector_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FullPositionVector = { + "FullPositionVector", + "FullPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_FullPositionVector_tags_1, + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + asn_DEF_FullPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FullPositionVector_1, + 10, /* Elements count */ + &asn_SPC_FullPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/GNSSstatus.c b/vcits/srem/src/GNSSstatus.c new file mode 100644 index 0000000..7fbf407 --- /dev/null +++ b/vcits/srem/src/GNSSstatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "GNSSstatus.h" + +int +GNSSstatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GNSSstatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNSSstatus = { + "GNSSstatus", + "GNSSstatus", + &asn_OP_BIT_STRING, + asn_DEF_GNSSstatus_tags_1, + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + asn_DEF_GNSSstatus_tags_1, /* Same as above */ + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + { &asn_OER_type_GNSSstatus_constr_1, &asn_PER_type_GNSSstatus_constr_1, GNSSstatus_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/GenericLane.c b/vcits/srem/src/GenericLane.c new file mode 100644 index 0000000..9ca82f9 --- /dev/null +++ b/vcits/srem/src/GenericLane.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "GenericLane.h" + +#include "ConnectsToList.h" +#include "OverlayLaneList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct GenericLane__regional), + offsetof(struct GenericLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { &asn_OER_type_regional_constr_11, &asn_PER_type_regional_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GenericLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, ingressApproach), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ingressApproach" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, egressApproach), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "egressApproach" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneAttributes), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneAttributes" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, maneuvers), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuvers" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, nodeList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeListXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeList" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, connectsTo), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectsToList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectsTo" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, overlays), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OverlayLaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "overlays" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { &asn_OER_memb_regional_constr_11, &asn_PER_memb_regional_constr_11, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_GenericLane_oms_1[] = { 1, 2, 3, 5, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_GenericLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GenericLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ingressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* egressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAttributes */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maneuvers */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* nodeList */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* connectsTo */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* overlays */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1 = { + sizeof(struct GenericLane), + offsetof(struct GenericLane, _asn_ctx), + asn_MAP_GenericLane_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_GenericLane_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GenericLane = { + "GenericLane", + "GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_GenericLane_tags_1, + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + asn_DEF_GenericLane_tags_1, /* Same as above */ + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GenericLane_1, + 10, /* Elements count */ + &asn_SPC_GenericLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/GeoGraphicalLimit.c b/vcits/srem/src/GeoGraphicalLimit.c new file mode 100644 index 0000000..979b8d0 --- /dev/null +++ b/vcits/srem/src/GeoGraphicalLimit.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "GeoGraphicalLimit.h" + +int +GeoGraphicalLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GeoGraphicalLimit_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_GeoGraphicalLimit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GeoGraphicalLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GeoGraphicalLimit = { + "GeoGraphicalLimit", + "GeoGraphicalLimit", + &asn_OP_BIT_STRING, + asn_DEF_GeoGraphicalLimit_tags_1, + sizeof(asn_DEF_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_GeoGraphicalLimit_tags_1[0]), /* 1 */ + asn_DEF_GeoGraphicalLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_GeoGraphicalLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_GeoGraphicalLimit_constr_1, &asn_PER_type_GeoGraphicalLimit_constr_1, GeoGraphicalLimit_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/HardShoulderStatus.c b/vcits/srem/src/HardShoulderStatus.c new file mode 100644 index 0000000..d409cde --- /dev/null +++ b/vcits/srem/src/HardShoulderStatus.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "HardShoulderStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HardShoulderStatus_value2enum_1[] = { + { 0, 20, "availableForStopping" }, + { 1, 6, "closed" }, + { 2, 19, "availableForDriving" } +}; +static const unsigned int asn_MAP_HardShoulderStatus_enum2value_1[] = { + 2, /* availableForDriving(2) */ + 0, /* availableForStopping(0) */ + 1 /* closed(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1 = { + asn_MAP_HardShoulderStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HardShoulderStatus_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HardShoulderStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus = { + "HardShoulderStatus", + "HardShoulderStatus", + &asn_OP_NativeEnumerated, + asn_DEF_HardShoulderStatus_tags_1, + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + asn_DEF_HardShoulderStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_HardShoulderStatus_constr_1, &asn_PER_type_HardShoulderStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HardShoulderStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c b/vcits/srem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..e820381 --- /dev/null +++ b/vcits/srem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "HazardousLocation-AnimalOnTheRoadSubCauseCode.h" + +int +HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode = { + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/HazardousLocation-DangerousCurveSubCauseCode.c b/vcits/srem/src/HazardousLocation-DangerousCurveSubCauseCode.c new file mode 100644 index 0000000..b85fa0b --- /dev/null +++ b/vcits/srem/src/HazardousLocation-DangerousCurveSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "HazardousLocation-DangerousCurveSubCauseCode.h" + +int +HazardousLocation_DangerousCurveSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode = { + "HazardousLocation-DangerousCurveSubCauseCode", + "HazardousLocation-DangerousCurveSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, HazardousLocation_DangerousCurveSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c b/vcits/srem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..e4b0fb2 --- /dev/null +++ b/vcits/srem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" + +int +HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode = { + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/HazardousLocation-SurfaceConditionSubCauseCode.c b/vcits/srem/src/HazardousLocation-SurfaceConditionSubCauseCode.c new file mode 100644 index 0000000..e6e762d --- /dev/null +++ b/vcits/srem/src/HazardousLocation-SurfaceConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "HazardousLocation-SurfaceConditionSubCauseCode.h" + +int +HazardousLocation_SurfaceConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode = { + "HazardousLocation-SurfaceConditionSubCauseCode", + "HazardousLocation-SurfaceConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, HazardousLocation_SurfaceConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Heading.c b/vcits/srem/src/Heading.c new file mode 100644 index 0000000..1df4ead --- /dev/null +++ b/vcits/srem/src/Heading.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Heading.h" + +static asn_TYPE_member_t asn_MBR_Heading_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Heading_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* headingValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* headingConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Heading_specs_1 = { + sizeof(struct Heading), + offsetof(struct Heading, _asn_ctx), + asn_MAP_Heading_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Heading = { + "Heading", + "Heading", + &asn_OP_SEQUENCE, + asn_DEF_Heading_tags_1, + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + asn_DEF_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Heading_1, + 2, /* Elements count */ + &asn_SPC_Heading_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/HeadingConfidence.c b/vcits/srem/src/HeadingConfidence.c new file mode 100644 index 0000000..c6245f9 --- /dev/null +++ b/vcits/srem/src/HeadingConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "HeadingConfidence.h" + +int +HeadingConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeInteger, + asn_DEF_HeadingConfidence_tags_1, + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidence_constr_1, &asn_PER_type_HeadingConfidence_constr_1, HeadingConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/HeadingConfidenceDSRC.c b/vcits/srem/src/HeadingConfidenceDSRC.c new file mode 100644 index 0000000..d6dcac6 --- /dev/null +++ b/vcits/srem/src/HeadingConfidenceDSRC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "HeadingConfidenceDSRC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidenceDSRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidenceDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HeadingConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec10deg" }, + { 2, 9, "prec05deg" }, + { 3, 9, "prec01deg" }, + { 4, 10, "prec0-1deg" }, + { 5, 11, "prec0-05deg" }, + { 6, 11, "prec0-01deg" }, + { 7, 13, "prec0-0125deg" } +}; +static const unsigned int asn_MAP_HeadingConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-0125deg(7) */ + 6, /* prec0-01deg(6) */ + 5, /* prec0-05deg(5) */ + 4, /* prec0-1deg(4) */ + 3, /* prec01deg(3) */ + 2, /* prec05deg(2) */ + 1, /* prec10deg(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HeadingConfidenceDSRC_specs_1 = { + asn_MAP_HeadingConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HeadingConfidenceDSRC_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidenceDSRC = { + "HeadingConfidenceDSRC", + "HeadingConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_HeadingConfidenceDSRC_tags_1, + sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidenceDSRC_constr_1, &asn_PER_type_HeadingConfidenceDSRC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HeadingConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/HeadingDSRC.c b/vcits/srem/src/HeadingDSRC.c new file mode 100644 index 0000000..7c2313a --- /dev/null +++ b/vcits/srem/src/HeadingDSRC.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "HeadingDSRC.h" + +int +HeadingDSRC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 28800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingDSRC_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingDSRC = { + "HeadingDSRC", + "HeadingDSRC", + &asn_OP_NativeInteger, + asn_DEF_HeadingDSRC_tags_1, + sizeof(asn_DEF_HeadingDSRC_tags_1) + /sizeof(asn_DEF_HeadingDSRC_tags_1[0]), /* 1 */ + asn_DEF_HeadingDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingDSRC_tags_1) + /sizeof(asn_DEF_HeadingDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingDSRC_constr_1, &asn_PER_type_HeadingDSRC_constr_1, HeadingDSRC_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/HeadingValue.c b/vcits/srem/src/HeadingValue.c new file mode 100644 index 0000000..0bb18b6 --- /dev/null +++ b/vcits/srem/src/HeadingValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "HeadingValue.h" + +int +HeadingValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3601)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3601) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingValue = { + "HeadingValue", + "HeadingValue", + &asn_OP_NativeInteger, + asn_DEF_HeadingValue_tags_1, + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + asn_DEF_HeadingValue_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingValue_constr_1, &asn_PER_type_HeadingValue_constr_1, HeadingValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/HeightLonCarr.c b/vcits/srem/src/HeightLonCarr.c new file mode 100644 index 0000000..57cc110 --- /dev/null +++ b/vcits/srem/src/HeightLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "HeightLonCarr.h" + +int +HeightLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..100) */, + -1}; +static asn_per_constraints_t asn_PER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 100 } /* (1..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeightLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeightLonCarr = { + "HeightLonCarr", + "HeightLonCarr", + &asn_OP_NativeInteger, + asn_DEF_HeightLonCarr_tags_1, + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + asn_DEF_HeightLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_HeightLonCarr_constr_1, &asn_PER_type_HeightLonCarr_constr_1, HeightLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/HumanPresenceOnTheRoadSubCauseCode.c b/vcits/srem/src/HumanPresenceOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..5997e69 --- /dev/null +++ b/vcits/srem/src/HumanPresenceOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "HumanPresenceOnTheRoadSubCauseCode.h" + +int +HumanPresenceOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode = { + "HumanPresenceOnTheRoadSubCauseCode", + "HumanPresenceOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, HumanPresenceOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/HumanProblemSubCauseCode.c b/vcits/srem/src/HumanProblemSubCauseCode.c new file mode 100644 index 0000000..572ed41 --- /dev/null +++ b/vcits/srem/src/HumanProblemSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "HumanProblemSubCauseCode.h" + +int +HumanProblemSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanProblemSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode = { + "HumanProblemSubCauseCode", + "HumanProblemSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanProblemSubCauseCode_tags_1, + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanProblemSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanProblemSubCauseCode_constr_1, &asn_PER_type_HumanProblemSubCauseCode_constr_1, HumanProblemSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/InformationQuality.c b/vcits/srem/src/InformationQuality.c new file mode 100644 index 0000000..a9c74ed --- /dev/null +++ b/vcits/srem/src/InformationQuality.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "InformationQuality.h" + +int +InformationQuality_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_InformationQuality_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_InformationQuality_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_InformationQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InformationQuality = { + "InformationQuality", + "InformationQuality", + &asn_OP_NativeInteger, + asn_DEF_InformationQuality_tags_1, + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + asn_DEF_InformationQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + { &asn_OER_type_InformationQuality_constr_1, &asn_PER_type_InformationQuality_constr_1, InformationQuality_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/IntersectionAccessPoint.c b/vcits/srem/src/IntersectionAccessPoint.c new file mode 100644 index 0000000..d826532 --- /dev/null +++ b/vcits/srem/src/IntersectionAccessPoint.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "IntersectionAccessPoint.h" + +static asn_oer_constraints_t asn_OER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.approach), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "approach" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.connection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionAccessPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* approach */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* connection */ +}; +asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1 = { + sizeof(struct IntersectionAccessPoint), + offsetof(struct IntersectionAccessPoint, _asn_ctx), + offsetof(struct IntersectionAccessPoint, present), + sizeof(((struct IntersectionAccessPoint *)0)->present), + asn_MAP_IntersectionAccessPoint_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint = { + "IntersectionAccessPoint", + "IntersectionAccessPoint", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_IntersectionAccessPoint_constr_1, &asn_PER_type_IntersectionAccessPoint_constr_1, CHOICE_constraint }, + asn_MBR_IntersectionAccessPoint_1, + 3, /* Elements count */ + &asn_SPC_IntersectionAccessPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/IntersectionGeometry.c b/vcits/srem/src/IntersectionGeometry.c new file mode 100644 index 0000000..f586bc4 --- /dev/null +++ b/vcits/srem/src/IntersectionGeometry.c @@ -0,0 +1,214 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "IntersectionGeometry.h" + +#include "SpeedLimitList.h" +#include "PreemptPriorityList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionGeometry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct IntersectionGeometry__regional), + offsetof(struct IntersectionGeometry__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, laneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneSet" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, preemptPriorityData), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PreemptPriorityList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "preemptPriorityData" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionGeometry_oms_1[] = { 0, 4, 5, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionGeometry_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* laneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* preemptPriorityData */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1 = { + sizeof(struct IntersectionGeometry), + offsetof(struct IntersectionGeometry, _asn_ctx), + asn_MAP_IntersectionGeometry_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_IntersectionGeometry_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry = { + "IntersectionGeometry", + "IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionGeometry_tags_1, + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometry_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionGeometry_1, + 9, /* Elements count */ + &asn_SPC_IntersectionGeometry_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/IntersectionGeometryList.c b/vcits/srem/src/IntersectionGeometryList.c new file mode 100644 index 0000000..9612158 --- /dev/null +++ b/vcits/srem/src/IntersectionGeometryList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "IntersectionGeometryList.h" + +#include "IntersectionGeometry.h" +static asn_oer_constraints_t asn_OER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionGeometry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometryList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1 = { + sizeof(struct IntersectionGeometryList), + offsetof(struct IntersectionGeometryList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList = { + "IntersectionGeometryList", + "IntersectionGeometryList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionGeometryList_tags_1, + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometryList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionGeometryList_constr_1, &asn_PER_type_IntersectionGeometryList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntersectionGeometryList_1, + 1, /* Single element */ + &asn_SPC_IntersectionGeometryList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/IntersectionID.c b/vcits/srem/src/IntersectionID.c new file mode 100644 index 0000000..3bca319 --- /dev/null +++ b/vcits/srem/src/IntersectionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "IntersectionID.h" + +int +IntersectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntersectionID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_IntersectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IntersectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionID = { + "IntersectionID", + "IntersectionID", + &asn_OP_NativeInteger, + asn_DEF_IntersectionID_tags_1, + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionID_constr_1, &asn_PER_type_IntersectionID_constr_1, IntersectionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/IntersectionReferenceID.c b/vcits/srem/src/IntersectionReferenceID.c new file mode 100644 index 0000000..cced3e7 --- /dev/null +++ b/vcits/srem/src/IntersectionReferenceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "IntersectionReferenceID.h" + +asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_IntersectionReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1 = { + sizeof(struct IntersectionReferenceID), + offsetof(struct IntersectionReferenceID, _asn_ctx), + asn_MAP_IntersectionReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_IntersectionReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID = { + "IntersectionReferenceID", + "IntersectionReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionReferenceID_tags_1, + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionReferenceID_1, + 2, /* Elements count */ + &asn_SPC_IntersectionReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/IntersectionState-addGrpC.c b/vcits/srem/src/IntersectionState-addGrpC.c new file mode 100644 index 0000000..e33ee7c --- /dev/null +++ b/vcits/srem/src/IntersectionState-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "IntersectionState-addGrpC.h" + +#include "PrioritizationResponseList.h" +asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState_addGrpC, activePrioritizations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "activePrioritizations" + }, +}; +static const int asn_MAP_IntersectionState_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* activePrioritizations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1 = { + sizeof(struct IntersectionState_addGrpC), + offsetof(struct IntersectionState_addGrpC, _asn_ctx), + asn_MAP_IntersectionState_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_IntersectionState_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC = { + "IntersectionState-addGrpC", + "IntersectionState-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_addGrpC_tags_1, + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionState_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_IntersectionState_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/IntersectionState.c b/vcits/srem/src/IntersectionState.c new file mode 100644 index 0000000..71f656a --- /dev/null +++ b/vcits/srem/src/IntersectionState.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "IntersectionState.h" + +#include "EnabledLaneList.h" +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct IntersectionState__regional), + offsetof(struct IntersectionState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { &asn_OER_type_regional_constr_11, &asn_PER_type_regional_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionState_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStatusObject, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 3, offsetof(struct IntersectionState, moy), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "moy" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, enabledLanes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EnabledLaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabledLanes" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, states), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "states" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { &asn_OER_memb_regional_constr_11, &asn_PER_memb_regional_constr_11, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionState_oms_1[] = { 0, 4, 5, 6, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* moy */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* enabledLanes */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* states */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1 = { + sizeof(struct IntersectionState), + offsetof(struct IntersectionState, _asn_ctx), + asn_MAP_IntersectionState_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_IntersectionState_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState = { + "IntersectionState", + "IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_tags_1, + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionState_1, + 10, /* Elements count */ + &asn_SPC_IntersectionState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/IntersectionStateList.c b/vcits/srem/src/IntersectionStateList.c new file mode 100644 index 0000000..bd93dd8 --- /dev/null +++ b/vcits/srem/src/IntersectionStateList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "IntersectionStateList.h" + +#include "IntersectionState.h" +static asn_oer_constraints_t asn_OER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1 = { + sizeof(struct IntersectionStateList), + offsetof(struct IntersectionStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStateList = { + "IntersectionStateList", + "IntersectionStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionStateList_tags_1, + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionStateList_constr_1, &asn_PER_type_IntersectionStateList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntersectionStateList_1, + 1, /* Single element */ + &asn_SPC_IntersectionStateList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/IntersectionStatusObject.c b/vcits/srem/src/IntersectionStatusObject.c new file mode 100644 index 0000000..8a505f5 --- /dev/null +++ b/vcits/srem/src/IntersectionStatusObject.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "IntersectionStatusObject.h" + +int +IntersectionStatusObject_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStatusObject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject = { + "IntersectionStatusObject", + "IntersectionStatusObject", + &asn_OP_BIT_STRING, + asn_DEF_IntersectionStatusObject_tags_1, + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStatusObject_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionStatusObject_constr_1, &asn_PER_type_IntersectionStatusObject_constr_1, IntersectionStatusObject_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/Iso3833VehicleType.c b/vcits/srem/src/Iso3833VehicleType.c new file mode 100644 index 0000000..7e7ced2 --- /dev/null +++ b/vcits/srem/src/Iso3833VehicleType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Iso3833VehicleType.h" + +int +Iso3833VehicleType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Iso3833VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType = { + "Iso3833VehicleType", + "Iso3833VehicleType", + &asn_OP_NativeInteger, + asn_DEF_Iso3833VehicleType_tags_1, + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + asn_DEF_Iso3833VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + { &asn_OER_type_Iso3833VehicleType_constr_1, &asn_PER_type_Iso3833VehicleType_constr_1, Iso3833VehicleType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/IssuerIdentifier.c b/vcits/srem/src/IssuerIdentifier.c new file mode 100644 index 0000000..989c542 --- /dev/null +++ b/vcits/srem/src/IssuerIdentifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "IssuerIdentifier.h" + +int +IssuerIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IssuerIdentifier_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_IssuerIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IssuerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IssuerIdentifier = { + "IssuerIdentifier", + "IssuerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_IssuerIdentifier_tags_1, + sizeof(asn_DEF_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_IssuerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_IssuerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_IssuerIdentifier_tags_1[0]), /* 1 */ + { &asn_OER_type_IssuerIdentifier_constr_1, &asn_PER_type_IssuerIdentifier_constr_1, IssuerIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/ItineraryPath.c b/vcits/srem/src/ItineraryPath.c new file mode 100644 index 0000000..85996ad --- /dev/null +++ b/vcits/srem/src/ItineraryPath.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ItineraryPath.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..40)) */}; +static asn_per_constraints_t asn_PER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 40 } /* (SIZE(1..40)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ItineraryPath_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItineraryPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ItineraryPath_specs_1 = { + sizeof(struct ItineraryPath), + offsetof(struct ItineraryPath, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItineraryPath = { + "ItineraryPath", + "ItineraryPath", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItineraryPath_tags_1, + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + asn_DEF_ItineraryPath_tags_1, /* Same as above */ + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + { &asn_OER_type_ItineraryPath_constr_1, &asn_PER_type_ItineraryPath_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItineraryPath_1, + 1, /* Single element */ + &asn_SPC_ItineraryPath_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ItsPduHeader.c b/vcits/srem/src/ItsPduHeader.c new file mode 100644 index 0000000..7f7ae95 --- /dev/null +++ b/vcits/srem/src/ItsPduHeader.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ItsPduHeader.h" + +static int +memb_protocolVersion_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_messageID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_messageID_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_messageID_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsPduHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, protocolVersion), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_protocolVersion_constr_2, &asn_PER_memb_protocolVersion_constr_2, memb_protocolVersion_constraint_1 }, + 0, 0, /* No default value */ + "protocolVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, messageID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_messageID_constr_3, &asn_PER_memb_messageID_constr_3, memb_messageID_constraint_1 }, + 0, 0, /* No default value */ + "messageID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, stationID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsPduHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsPduHeader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolVersion */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* messageID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* stationID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1 = { + sizeof(struct ItsPduHeader), + offsetof(struct ItsPduHeader, _asn_ctx), + asn_MAP_ItsPduHeader_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsPduHeader = { + "ItsPduHeader", + "ItsPduHeader", + &asn_OP_SEQUENCE, + asn_DEF_ItsPduHeader_tags_1, + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + asn_DEF_ItsPduHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsPduHeader_1, + 3, /* Elements count */ + &asn_SPC_ItsPduHeader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ItsStationPosition.c b/vcits/srem/src/ItsStationPosition.c new file mode 100644 index 0000000..114441f --- /dev/null +++ b/vcits/srem/src/ItsStationPosition.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ItsStationPosition.h" + +#include "NodeOffsetPointXY.h" +asn_TYPE_member_t asn_MBR_ItsStationPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsStationPosition, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_POINTER, 3, offsetof(struct ItsStationPosition, laneID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 2, offsetof(struct ItsStationPosition, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_POINTER, 1, offsetof(struct ItsStationPosition, timeReference), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeReference, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeReference" + }, +}; +static const int asn_MAP_ItsStationPosition_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ItsStationPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsStationPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* timeReference */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsStationPosition_specs_1 = { + sizeof(struct ItsStationPosition), + offsetof(struct ItsStationPosition, _asn_ctx), + asn_MAP_ItsStationPosition_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ItsStationPosition_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsStationPosition = { + "ItsStationPosition", + "ItsStationPosition", + &asn_OP_SEQUENCE, + asn_DEF_ItsStationPosition_tags_1, + sizeof(asn_DEF_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ItsStationPosition_tags_1[0]), /* 1 */ + asn_DEF_ItsStationPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ItsStationPosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsStationPosition_1, + 4, /* Elements count */ + &asn_SPC_ItsStationPosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ItsStationPositionList.c b/vcits/srem/src/ItsStationPositionList.c new file mode 100644 index 0000000..f8bbec2 --- /dev/null +++ b/vcits/srem/src/ItsStationPositionList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ItsStationPositionList.h" + +#include "ItsStationPosition.h" +static asn_oer_constraints_t asn_OER_type_ItsStationPositionList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_ItsStationPositionList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsStationPositionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ItsStationPosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsStationPositionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ItsStationPositionList_specs_1 = { + sizeof(struct ItsStationPositionList), + offsetof(struct ItsStationPositionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsStationPositionList = { + "ItsStationPositionList", + "ItsStationPositionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItsStationPositionList_tags_1, + sizeof(asn_DEF_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ItsStationPositionList_tags_1[0]), /* 1 */ + asn_DEF_ItsStationPositionList_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ItsStationPositionList_tags_1[0]), /* 1 */ + { &asn_OER_type_ItsStationPositionList_constr_1, &asn_PER_type_ItsStationPositionList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItsStationPositionList_1, + 1, /* Single element */ + &asn_SPC_ItsStationPositionList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneAttributes-Barrier.c b/vcits/srem/src/LaneAttributes-Barrier.c new file mode 100644 index 0000000..69a544e --- /dev/null +++ b/vcits/srem/src/LaneAttributes-Barrier.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneAttributes-Barrier.h" + +int +LaneAttributes_Barrier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Barrier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier = { + "LaneAttributes-Barrier", + "LaneAttributes-Barrier", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Barrier_tags_1, + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Barrier_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Barrier_constr_1, &asn_PER_type_LaneAttributes_Barrier_constr_1, LaneAttributes_Barrier_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneAttributes-Bike.c b/vcits/srem/src/LaneAttributes-Bike.c new file mode 100644 index 0000000..083d4cf --- /dev/null +++ b/vcits/srem/src/LaneAttributes-Bike.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneAttributes-Bike.h" + +int +LaneAttributes_Bike_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Bike_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike = { + "LaneAttributes-Bike", + "LaneAttributes-Bike", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Bike_tags_1, + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Bike_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Bike_constr_1, &asn_PER_type_LaneAttributes_Bike_constr_1, LaneAttributes_Bike_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneAttributes-Crosswalk.c b/vcits/srem/src/LaneAttributes-Crosswalk.c new file mode 100644 index 0000000..3c18d28 --- /dev/null +++ b/vcits/srem/src/LaneAttributes-Crosswalk.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneAttributes-Crosswalk.h" + +int +LaneAttributes_Crosswalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Crosswalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk = { + "LaneAttributes-Crosswalk", + "LaneAttributes-Crosswalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Crosswalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Crosswalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Crosswalk_constr_1, &asn_PER_type_LaneAttributes_Crosswalk_constr_1, LaneAttributes_Crosswalk_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneAttributes-Parking.c b/vcits/srem/src/LaneAttributes-Parking.c new file mode 100644 index 0000000..d50465a --- /dev/null +++ b/vcits/srem/src/LaneAttributes-Parking.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneAttributes-Parking.h" + +int +LaneAttributes_Parking_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Parking_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking = { + "LaneAttributes-Parking", + "LaneAttributes-Parking", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Parking_tags_1, + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Parking_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Parking_constr_1, &asn_PER_type_LaneAttributes_Parking_constr_1, LaneAttributes_Parking_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneAttributes-Sidewalk.c b/vcits/srem/src/LaneAttributes-Sidewalk.c new file mode 100644 index 0000000..cff85a0 --- /dev/null +++ b/vcits/srem/src/LaneAttributes-Sidewalk.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneAttributes-Sidewalk.h" + +int +LaneAttributes_Sidewalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Sidewalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk = { + "LaneAttributes-Sidewalk", + "LaneAttributes-Sidewalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Sidewalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Sidewalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Sidewalk_constr_1, &asn_PER_type_LaneAttributes_Sidewalk_constr_1, LaneAttributes_Sidewalk_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneAttributes-Striping.c b/vcits/srem/src/LaneAttributes-Striping.c new file mode 100644 index 0000000..9a71451 --- /dev/null +++ b/vcits/srem/src/LaneAttributes-Striping.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneAttributes-Striping.h" + +int +LaneAttributes_Striping_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Striping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping = { + "LaneAttributes-Striping", + "LaneAttributes-Striping", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Striping_tags_1, + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Striping_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Striping_constr_1, &asn_PER_type_LaneAttributes_Striping_constr_1, LaneAttributes_Striping_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneAttributes-TrackedVehicle.c b/vcits/srem/src/LaneAttributes-TrackedVehicle.c new file mode 100644 index 0000000..c0f81d1 --- /dev/null +++ b/vcits/srem/src/LaneAttributes-TrackedVehicle.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneAttributes-TrackedVehicle.h" + +int +LaneAttributes_TrackedVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_TrackedVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle = { + "LaneAttributes-TrackedVehicle", + "LaneAttributes-TrackedVehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_TrackedVehicle_constr_1, &asn_PER_type_LaneAttributes_TrackedVehicle_constr_1, LaneAttributes_TrackedVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneAttributes-Vehicle.c b/vcits/srem/src/LaneAttributes-Vehicle.c new file mode 100644 index 0000000..6ccb606 --- /dev/null +++ b/vcits/srem/src/LaneAttributes-Vehicle.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneAttributes-Vehicle.h" + +int +LaneAttributes_Vehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 8, 8 } /* (SIZE(8..8,...)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Vehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle = { + "LaneAttributes-Vehicle", + "LaneAttributes-Vehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Vehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Vehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Vehicle_constr_1, &asn_PER_type_LaneAttributes_Vehicle_constr_1, LaneAttributes_Vehicle_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneAttributes-addGrpC.c b/vcits/srem/src/LaneAttributes-addGrpC.c new file mode 100644 index 0000000..111565b --- /dev/null +++ b/vcits/srem/src/LaneAttributes-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneAttributes-addGrpC.h" + +asn_TYPE_member_t asn_MBR_LaneAttributes_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct LaneAttributes_addGrpC, maxVehicleHeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleHeight, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxVehicleHeight" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes_addGrpC, maxVehicleWeight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleMass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxVehicleWeight" + }, +}; +static const int asn_MAP_LaneAttributes_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxVehicleHeight */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maxVehicleWeight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_addGrpC_specs_1 = { + sizeof(struct LaneAttributes_addGrpC), + offsetof(struct LaneAttributes_addGrpC, _asn_ctx), + asn_MAP_LaneAttributes_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_LaneAttributes_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_addGrpC = { + "LaneAttributes-addGrpC", + "LaneAttributes-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_addGrpC_tags_1, + sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneAttributes_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_LaneAttributes_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneAttributes.c b/vcits/srem/src/LaneAttributes.c new file mode 100644 index 0000000..93eefd7 --- /dev/null +++ b/vcits/srem/src/LaneAttributes.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneAttributes.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_LaneAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, directionalUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDirection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "directionalUse" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, sharedWith), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneSharing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sharedWith" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, laneType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_LaneTypeAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneType" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_LaneAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_LaneAttributes_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* directionalUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sharedWith */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1 = { + sizeof(struct LaneAttributes), + offsetof(struct LaneAttributes, _asn_ctx), + asn_MAP_LaneAttributes_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_LaneAttributes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes = { + "LaneAttributes", + "LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_tags_1, + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneAttributes_1, + 4, /* Elements count */ + &asn_SPC_LaneAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneConnectionID.c b/vcits/srem/src/LaneConnectionID.c new file mode 100644 index 0000000..feb571d --- /dev/null +++ b/vcits/srem/src/LaneConnectionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneConnectionID.h" + +int +LaneConnectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneConnectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneConnectionID = { + "LaneConnectionID", + "LaneConnectionID", + &asn_OP_NativeInteger, + asn_DEF_LaneConnectionID_tags_1, + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + asn_DEF_LaneConnectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneConnectionID_constr_1, &asn_PER_type_LaneConnectionID_constr_1, LaneConnectionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/LaneDataAttribute.c b/vcits/srem/src/LaneDataAttribute.c new file mode 100644 index 0000000..a549286 --- /dev/null +++ b/vcits/srem/src/LaneDataAttribute.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneDataAttribute.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_LaneDataAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct LaneDataAttribute__regional), + offsetof(struct LaneDataAttribute__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.pathEndPointAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathEndPointAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointCenter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointCenter" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointLeft), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointRight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneAngle), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MergeDivergeNodeAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneDataAttribute_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathEndPointAngle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneCrownPointCenter */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneCrownPointLeft */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneCrownPointRight */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAngle */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1 = { + sizeof(struct LaneDataAttribute), + offsetof(struct LaneDataAttribute, _asn_ctx), + offsetof(struct LaneDataAttribute, present), + sizeof(((struct LaneDataAttribute *)0)->present), + asn_MAP_LaneDataAttribute_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute = { + "LaneDataAttribute", + "LaneDataAttribute", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LaneDataAttribute_constr_1, &asn_PER_type_LaneDataAttribute_constr_1, CHOICE_constraint }, + asn_MBR_LaneDataAttribute_1, + 7, /* Elements count */ + &asn_SPC_LaneDataAttribute_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneDataAttributeList.c b/vcits/srem/src/LaneDataAttributeList.c new file mode 100644 index 0000000..c55faad --- /dev/null +++ b/vcits/srem/src/LaneDataAttributeList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneDataAttributeList.h" + +#include "LaneDataAttribute.h" +static asn_oer_constraints_t asn_OER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_LaneDataAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneDataAttributeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1 = { + sizeof(struct LaneDataAttributeList), + offsetof(struct LaneDataAttributeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList = { + "LaneDataAttributeList", + "LaneDataAttributeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneDataAttributeList_tags_1, + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + asn_DEF_LaneDataAttributeList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDataAttributeList_constr_1, &asn_PER_type_LaneDataAttributeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneDataAttributeList_1, + 1, /* Single element */ + &asn_SPC_LaneDataAttributeList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneDirection.c b/vcits/srem/src/LaneDirection.c new file mode 100644 index 0000000..b9566ec --- /dev/null +++ b/vcits/srem/src/LaneDirection.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneDirection.h" + +int +LaneDirection_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +asn_per_constraints_t asn_PER_type_LaneDirection_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneDirection = { + "LaneDirection", + "LaneDirection", + &asn_OP_BIT_STRING, + asn_DEF_LaneDirection_tags_1, + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + asn_DEF_LaneDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDirection_constr_1, &asn_PER_type_LaneDirection_constr_1, LaneDirection_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneID.c b/vcits/srem/src/LaneID.c new file mode 100644 index 0000000..66be44c --- /dev/null +++ b/vcits/srem/src/LaneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneID.h" + +int +LaneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneID = { + "LaneID", + "LaneID", + &asn_OP_NativeInteger, + asn_DEF_LaneID_tags_1, + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + asn_DEF_LaneID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneID_constr_1, &asn_PER_type_LaneID_constr_1, LaneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/LaneList.c b/vcits/srem/src/LaneList.c new file mode 100644 index 0000000..cc100f0 --- /dev/null +++ b/vcits/srem/src/LaneList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneList.h" + +#include "GenericLane.h" +static asn_oer_constraints_t asn_OER_type_LaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_LaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1 = { + sizeof(struct LaneList), + offsetof(struct LaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneList = { + "LaneList", + "LaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneList_tags_1, + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + asn_DEF_LaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneList_constr_1, &asn_PER_type_LaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneList_1, + 1, /* Single element */ + &asn_SPC_LaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/LanePosition.c b/vcits/srem/src/LanePosition.c new file mode 100644 index 0000000..b504914 --- /dev/null +++ b/vcits/srem/src/LanePosition.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LanePosition.h" + +int +LanePosition_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1 && value <= 14)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LanePosition_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-1..14) */, + -1}; +static asn_per_constraints_t asn_PER_type_LanePosition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, -1, 14 } /* (-1..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LanePosition = { + "LanePosition", + "LanePosition", + &asn_OP_NativeInteger, + asn_DEF_LanePosition_tags_1, + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + asn_DEF_LanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + { &asn_OER_type_LanePosition_constr_1, &asn_PER_type_LanePosition_constr_1, LanePosition_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/LaneSharing.c b/vcits/srem/src/LaneSharing.c new file mode 100644 index 0000000..42f2b0f --- /dev/null +++ b/vcits/srem/src/LaneSharing.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneSharing.h" + +int +LaneSharing_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneSharing_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_LaneSharing_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneSharing_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneSharing = { + "LaneSharing", + "LaneSharing", + &asn_OP_BIT_STRING, + asn_DEF_LaneSharing_tags_1, + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + asn_DEF_LaneSharing_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneSharing_constr_1, &asn_PER_type_LaneSharing_constr_1, LaneSharing_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneTypeAttributes.c b/vcits/srem/src/LaneTypeAttributes.c new file mode 100644 index 0000000..54d8612 --- /dev/null +++ b/vcits/srem/src/LaneTypeAttributes.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneTypeAttributes.h" + +static asn_oer_constraints_t asn_OER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.vehicle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Vehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.crosswalk), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Crosswalk, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crosswalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.bikeLane), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Bike, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bikeLane" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.sidewalk), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Sidewalk, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sidewalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.median), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Barrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "median" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.striping), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Striping, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "striping" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.trackedVehicle), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_TrackedVehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trackedVehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.parking), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Parking, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "parking" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneTypeAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* crosswalk */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bikeLane */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sidewalk */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* median */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* striping */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* trackedVehicle */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* parking */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1 = { + sizeof(struct LaneTypeAttributes), + offsetof(struct LaneTypeAttributes, _asn_ctx), + offsetof(struct LaneTypeAttributes, present), + sizeof(((struct LaneTypeAttributes *)0)->present), + asn_MAP_LaneTypeAttributes_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + 8 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes = { + "LaneTypeAttributes", + "LaneTypeAttributes", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LaneTypeAttributes_constr_1, &asn_PER_type_LaneTypeAttributes_constr_1, CHOICE_constraint }, + asn_MBR_LaneTypeAttributes_1, + 8, /* Elements count */ + &asn_SPC_LaneTypeAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/LaneWidth.c b/vcits/srem/src/LaneWidth.c new file mode 100644 index 0000000..a66441a --- /dev/null +++ b/vcits/srem/src/LaneWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LaneWidth.h" + +int +LaneWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneWidth_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneWidth = { + "LaneWidth", + "LaneWidth", + &asn_OP_NativeInteger, + asn_DEF_LaneWidth_tags_1, + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + asn_DEF_LaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneWidth_constr_1, &asn_PER_type_LaneWidth_constr_1, LaneWidth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/LateralAcceleration.c b/vcits/srem/src/LateralAcceleration.c new file mode 100644 index 0000000..8392713 --- /dev/null +++ b/vcits/srem/src/LateralAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LateralAcceleration.h" + +static asn_TYPE_member_t asn_MBR_LateralAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LateralAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LateralAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LateralAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateralAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lateralAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_LateralAcceleration_specs_1 = { + sizeof(struct LateralAcceleration), + offsetof(struct LateralAcceleration, _asn_ctx), + asn_MAP_LateralAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LateralAcceleration = { + "LateralAcceleration", + "LateralAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LateralAcceleration_tags_1, + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LateralAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LateralAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LateralAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/LateralAccelerationValue.c b/vcits/srem/src/LateralAccelerationValue.c new file mode 100644 index 0000000..8c2f9e0 --- /dev/null +++ b/vcits/srem/src/LateralAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LateralAccelerationValue.h" + +int +LateralAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LateralAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue = { + "LateralAccelerationValue", + "LateralAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LateralAccelerationValue_tags_1, + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LateralAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LateralAccelerationValue_constr_1, &asn_PER_type_LateralAccelerationValue_constr_1, LateralAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Latitude.c b/vcits/srem/src/Latitude.c new file mode 100644 index 0000000..7b27fe5 --- /dev/null +++ b/vcits/srem/src/Latitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Latitude.h" + +int +Latitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -900000000 && value <= 900000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Latitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-900000000..900000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Latitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 31, -1, -900000000, 900000001 } /* (-900000000..900000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_Latitude_tags_1, + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + asn_DEF_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Latitude_constr_1, &asn_PER_type_Latitude_constr_1, Latitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/LayerID.c b/vcits/srem/src/LayerID.c new file mode 100644 index 0000000..5357c88 --- /dev/null +++ b/vcits/srem/src/LayerID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LayerID.h" + +int +LayerID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LayerID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..100) */, + -1}; +asn_per_constraints_t asn_PER_type_LayerID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LayerID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerID = { + "LayerID", + "LayerID", + &asn_OP_NativeInteger, + asn_DEF_LayerID_tags_1, + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + asn_DEF_LayerID_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + { &asn_OER_type_LayerID_constr_1, &asn_PER_type_LayerID_constr_1, LayerID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/LayerType.c b/vcits/srem/src/LayerType.c new file mode 100644 index 0000000..4b4f014 --- /dev/null +++ b/vcits/srem/src/LayerType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LayerType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LayerType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LayerType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_LayerType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 12, "mixedContent" }, + { 2, 14, "generalMapData" }, + { 3, 16, "intersectionData" }, + { 4, 9, "curveData" }, + { 5, 18, "roadwaySectionData" }, + { 6, 15, "parkingAreaData" }, + { 7, 14, "sharedLaneData" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_LayerType_enum2value_1[] = { + 4, /* curveData(4) */ + 2, /* generalMapData(2) */ + 3, /* intersectionData(3) */ + 1, /* mixedContent(1) */ + 0, /* none(0) */ + 6, /* parkingAreaData(6) */ + 5, /* roadwaySectionData(5) */ + 7 /* sharedLaneData(7) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1 = { + asn_MAP_LayerType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_LayerType_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_LayerType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerType = { + "LayerType", + "LayerType", + &asn_OP_NativeEnumerated, + asn_DEF_LayerType_tags_1, + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + asn_DEF_LayerType_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + { &asn_OER_type_LayerType_constr_1, &asn_PER_type_LayerType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_LayerType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/LicPlateNumber.c b/vcits/srem/src/LicPlateNumber.c new file mode 100644 index 0000000..c10febf --- /dev/null +++ b/vcits/srem/src/LicPlateNumber.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LicPlateNumber.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_LicPlateNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LicPlateNumber = { + "LicPlateNumber", + "LicPlateNumber", + &asn_OP_OCTET_STRING, + asn_DEF_LicPlateNumber_tags_1, + sizeof(asn_DEF_LicPlateNumber_tags_1) + /sizeof(asn_DEF_LicPlateNumber_tags_1[0]), /* 1 */ + asn_DEF_LicPlateNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_LicPlateNumber_tags_1) + /sizeof(asn_DEF_LicPlateNumber_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/LightBarSirenInUse.c b/vcits/srem/src/LightBarSirenInUse.c new file mode 100644 index 0000000..d7a702d --- /dev/null +++ b/vcits/srem/src/LightBarSirenInUse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LightBarSirenInUse.h" + +int +LightBarSirenInUse_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LightBarSirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse = { + "LightBarSirenInUse", + "LightBarSirenInUse", + &asn_OP_BIT_STRING, + asn_DEF_LightBarSirenInUse_tags_1, + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + asn_DEF_LightBarSirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + { &asn_OER_type_LightBarSirenInUse_constr_1, &asn_PER_type_LightBarSirenInUse_constr_1, LightBarSirenInUse_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/Longitude.c b/vcits/srem/src/Longitude.c new file mode 100644 index 0000000..0f57186 --- /dev/null +++ b/vcits/srem/src/Longitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Longitude.h" + +int +Longitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1800000000 && value <= 1800000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Longitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-1800000000..1800000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Longitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, -1800000000, 1800000001 } /* (-1800000000..1800000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_Longitude_tags_1, + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + asn_DEF_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Longitude_constr_1, &asn_PER_type_Longitude_constr_1, Longitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/LongitudinalAcceleration.c b/vcits/srem/src/LongitudinalAcceleration.c new file mode 100644 index 0000000..dd3837e --- /dev/null +++ b/vcits/srem/src/LongitudinalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LongitudinalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_LongitudinalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LongitudinalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longitudinalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_LongitudinalAcceleration_specs_1 = { + sizeof(struct LongitudinalAcceleration), + offsetof(struct LongitudinalAcceleration, _asn_ctx), + asn_MAP_LongitudinalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration = { + "LongitudinalAcceleration", + "LongitudinalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LongitudinalAcceleration_tags_1, + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LongitudinalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LongitudinalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/LongitudinalAccelerationValue.c b/vcits/srem/src/LongitudinalAccelerationValue.c new file mode 100644 index 0000000..3428c08 --- /dev/null +++ b/vcits/srem/src/LongitudinalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "LongitudinalAccelerationValue.h" + +int +LongitudinalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue = { + "LongitudinalAccelerationValue", + "LongitudinalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LongitudinalAccelerationValue_tags_1, + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LongitudinalAccelerationValue_constr_1, &asn_PER_type_LongitudinalAccelerationValue_constr_1, LongitudinalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/ManeuverAssistList.c b/vcits/srem/src/ManeuverAssistList.c new file mode 100644 index 0000000..63e6d7b --- /dev/null +++ b/vcits/srem/src/ManeuverAssistList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ManeuverAssistList.h" + +#include "ConnectionManeuverAssist.h" +static asn_oer_constraints_t asn_OER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ManeuverAssistList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1 = { + sizeof(struct ManeuverAssistList), + offsetof(struct ManeuverAssistList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList = { + "ManeuverAssistList", + "ManeuverAssistList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ManeuverAssistList_tags_1, + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + asn_DEF_ManeuverAssistList_tags_1, /* Same as above */ + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + { &asn_OER_type_ManeuverAssistList_constr_1, &asn_PER_type_ManeuverAssistList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ManeuverAssistList_1, + 1, /* Single element */ + &asn_SPC_ManeuverAssistList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ManufacturerIdentifier.c b/vcits/srem/src/ManufacturerIdentifier.c new file mode 100644 index 0000000..b2e69f0 --- /dev/null +++ b/vcits/srem/src/ManufacturerIdentifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ManufacturerIdentifier.h" + +int +ManufacturerIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ManufacturerIdentifier_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_ManufacturerIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ManufacturerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ManufacturerIdentifier = { + "ManufacturerIdentifier", + "ManufacturerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_ManufacturerIdentifier_tags_1, + sizeof(asn_DEF_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_ManufacturerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_ManufacturerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_ManufacturerIdentifier_tags_1[0]), /* 1 */ + { &asn_OER_type_ManufacturerIdentifier_constr_1, &asn_PER_type_ManufacturerIdentifier_constr_1, ManufacturerIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/MapData-addGrpC.c b/vcits/srem/src/MapData-addGrpC.c new file mode 100644 index 0000000..e2d8de1 --- /dev/null +++ b/vcits/srem/src/MapData-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "MapData-addGrpC.h" + +#include "SignalHeadLocationList.h" +asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData_addGrpC, signalHeadLocations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalHeadLocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalHeadLocations" + }, +}; +static const int asn_MAP_MapData_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MapData_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* signalHeadLocations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1 = { + sizeof(struct MapData_addGrpC), + offsetof(struct MapData_addGrpC, _asn_ctx), + asn_MAP_MapData_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MapData_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC = { + "MapData-addGrpC", + "MapData-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MapData_addGrpC_tags_1, + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MapData_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapData_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MapData_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/MapData.c b/vcits/srem/src/MapData.c new file mode 100644 index 0000000..a665a81 --- /dev/null +++ b/vcits/srem/src/MapData.c @@ -0,0 +1,216 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "MapData.h" + +#include "IntersectionGeometryList.h" +#include "RoadSegmentList.h" +#include "DataParameters.h" +#include "RestrictionClassList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MapData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct MapData__regional), + offsetof(struct MapData__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_MapData_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct MapData, msgIssueRevision), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgIssueRevision" + }, + { ATF_POINTER, 7, offsetof(struct MapData, layerType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layerType" + }, + { ATF_POINTER, 6, offsetof(struct MapData, layerID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layerID" + }, + { ATF_POINTER, 5, offsetof(struct MapData, intersections), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionGeometryList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 4, offsetof(struct MapData, roadSegments), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadSegments" + }, + { ATF_POINTER, 3, offsetof(struct MapData, dataParameters), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DataParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dataParameters" + }, + { ATF_POINTER, 2, offsetof(struct MapData, restrictionList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "restrictionList" + }, + { ATF_POINTER, 1, offsetof(struct MapData, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MapData_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* msgIssueRevision */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* layerType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* layerID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* roadSegments */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dataParameters */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* restrictionList */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_MapData_specs_1 = { + sizeof(struct MapData), + offsetof(struct MapData, _asn_ctx), + asn_MAP_MapData_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_MapData_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData = { + "MapData", + "MapData", + &asn_OP_SEQUENCE, + asn_DEF_MapData_tags_1, + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + asn_DEF_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapData_1, + 9, /* Elements count */ + &asn_SPC_MapData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/MergeDivergeNodeAngle.c b/vcits/srem/src/MergeDivergeNodeAngle.c new file mode 100644 index 0000000..9797874 --- /dev/null +++ b/vcits/srem/src/MergeDivergeNodeAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "MergeDivergeNodeAngle.h" + +int +MergeDivergeNodeAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -180 && value <= 180)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-180..180) */, + -1}; +asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -180, 180 } /* (-180..180) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MergeDivergeNodeAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle = { + "MergeDivergeNodeAngle", + "MergeDivergeNodeAngle", + &asn_OP_NativeInteger, + asn_DEF_MergeDivergeNodeAngle_tags_1, + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + asn_DEF_MergeDivergeNodeAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_MergeDivergeNodeAngle_constr_1, &asn_PER_type_MergeDivergeNodeAngle_constr_1, MergeDivergeNodeAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/MinuteOfTheYear.c b/vcits/srem/src/MinuteOfTheYear.c new file mode 100644 index 0000000..812408b --- /dev/null +++ b/vcits/srem/src/MinuteOfTheYear.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "MinuteOfTheYear.h" + +int +MinuteOfTheYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 527040)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..527040) */, + -1}; +asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 527040 } /* (0..527040) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MinuteOfTheYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear = { + "MinuteOfTheYear", + "MinuteOfTheYear", + &asn_OP_NativeInteger, + asn_DEF_MinuteOfTheYear_tags_1, + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + asn_DEF_MinuteOfTheYear_tags_1, /* Same as above */ + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + { &asn_OER_type_MinuteOfTheYear_constr_1, &asn_PER_type_MinuteOfTheYear_constr_1, MinuteOfTheYear_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/MovementEvent-addGrpC.c b/vcits/srem/src/MovementEvent-addGrpC.c new file mode 100644 index 0000000..1e5f748 --- /dev/null +++ b/vcits/srem/src/MovementEvent-addGrpC.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "MovementEvent-addGrpC.h" + +asn_TYPE_member_t asn_MBR_MovementEvent_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementEvent_addGrpC, stateChangeReason), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExceptionalCondition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stateChangeReason" + }, +}; +static const int asn_MAP_MovementEvent_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* stateChangeReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpC_specs_1 = { + sizeof(struct MovementEvent_addGrpC), + offsetof(struct MovementEvent_addGrpC, _asn_ctx), + asn_MAP_MovementEvent_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MovementEvent_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpC = { + "MovementEvent-addGrpC", + "MovementEvent-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_addGrpC_tags_1, + sizeof(asn_DEF_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementEvent_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MovementEvent_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/MovementEvent.c b/vcits/srem/src/MovementEvent.c new file mode 100644 index 0000000..4bb2840 --- /dev/null +++ b/vcits/srem/src/MovementEvent.c @@ -0,0 +1,164 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "MovementEvent.h" + +#include "TimeChangeDetails.h" +#include "AdvisorySpeedList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct MovementEvent__regional), + offsetof(struct MovementEvent__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementEvent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MovementEvent, eventState), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementPhaseState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventState" + }, + { ATF_POINTER, 3, offsetof(struct MovementEvent, timing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeChangeDetails, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timing" + }, + { ATF_POINTER, 2, offsetof(struct MovementEvent, speeds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speeds" + }, + { ATF_POINTER, 1, offsetof(struct MovementEvent, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementEvent_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventState */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* speeds */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1 = { + sizeof(struct MovementEvent), + offsetof(struct MovementEvent, _asn_ctx), + asn_MAP_MovementEvent_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_MovementEvent_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent = { + "MovementEvent", + "MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_tags_1, + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementEvent_1, + 4, /* Elements count */ + &asn_SPC_MovementEvent_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/MovementEventList.c b/vcits/srem/src/MovementEventList.c new file mode 100644 index 0000000..73d6310 --- /dev/null +++ b/vcits/srem/src/MovementEventList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "MovementEventList.h" + +#include "MovementEvent.h" +static asn_oer_constraints_t asn_OER_type_MovementEventList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_MovementEventList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MovementEventList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementEventList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1 = { + sizeof(struct MovementEventList), + offsetof(struct MovementEventList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEventList = { + "MovementEventList", + "MovementEventList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementEventList_tags_1, + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + asn_DEF_MovementEventList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementEventList_constr_1, &asn_PER_type_MovementEventList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MovementEventList_1, + 1, /* Single element */ + &asn_SPC_MovementEventList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/MovementList.c b/vcits/srem/src/MovementList.c new file mode 100644 index 0000000..fb09aed --- /dev/null +++ b/vcits/srem/src/MovementList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "MovementList.h" + +#include "MovementState.h" +static asn_oer_constraints_t asn_OER_type_MovementList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_MovementList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MovementList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1 = { + sizeof(struct MovementList), + offsetof(struct MovementList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementList = { + "MovementList", + "MovementList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementList_tags_1, + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + asn_DEF_MovementList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementList_constr_1, &asn_PER_type_MovementList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MovementList_1, + 1, /* Single element */ + &asn_SPC_MovementList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/MovementPhaseState.c b/vcits/srem/src/MovementPhaseState.c new file mode 100644 index 0000000..9c99abb --- /dev/null +++ b/vcits/srem/src/MovementPhaseState.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "MovementPhaseState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_MovementPhaseState_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 4, "dark" }, + { 2, 17, "stop-Then-Proceed" }, + { 3, 15, "stop-And-Remain" }, + { 4, 12, "pre-Movement" }, + { 5, 27, "permissive-Movement-Allowed" }, + { 6, 26, "protected-Movement-Allowed" }, + { 7, 20, "permissive-clearance" }, + { 8, 19, "protected-clearance" }, + { 9, 27, "caution-Conflicting-Traffic" } +}; +static const unsigned int asn_MAP_MovementPhaseState_enum2value_1[] = { + 9, /* caution-Conflicting-Traffic(9) */ + 1, /* dark(1) */ + 5, /* permissive-Movement-Allowed(5) */ + 7, /* permissive-clearance(7) */ + 4, /* pre-Movement(4) */ + 6, /* protected-Movement-Allowed(6) */ + 8, /* protected-clearance(8) */ + 3, /* stop-And-Remain(3) */ + 2, /* stop-Then-Proceed(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1 = { + asn_MAP_MovementPhaseState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_MovementPhaseState_enum2value_1, /* N => "tag"; sorted by N */ + 10, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_MovementPhaseState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MovementPhaseState = { + "MovementPhaseState", + "MovementPhaseState", + &asn_OP_NativeEnumerated, + asn_DEF_MovementPhaseState_tags_1, + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + asn_DEF_MovementPhaseState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementPhaseState_constr_1, &asn_PER_type_MovementPhaseState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MovementPhaseState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/MovementState.c b/vcits/srem/src/MovementState.c new file mode 100644 index 0000000..a43f49c --- /dev/null +++ b/vcits/srem/src/MovementState.c @@ -0,0 +1,173 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "MovementState.h" + +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct MovementState__regional), + offsetof(struct MovementState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementState_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementState, movementName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "movementName" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, state_time_speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementEventList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "state-time-speed" + }, + { ATF_POINTER, 2, offsetof(struct MovementState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct MovementState, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementState_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_MovementState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* movementName */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* state-time-speed */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1 = { + sizeof(struct MovementState), + offsetof(struct MovementState, _asn_ctx), + asn_MAP_MovementState_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_MovementState_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementState = { + "MovementState", + "MovementState", + &asn_OP_SEQUENCE, + asn_DEF_MovementState_tags_1, + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + asn_DEF_MovementState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementState_1, + 5, /* Elements count */ + &asn_SPC_MovementState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/MsgCount.c b/vcits/srem/src/MsgCount.c new file mode 100644 index 0000000..1dac64e --- /dev/null +++ b/vcits/srem/src/MsgCount.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "MsgCount.h" + +int +MsgCount_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MsgCount_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_MsgCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MsgCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MsgCount = { + "MsgCount", + "MsgCount", + &asn_OP_NativeInteger, + asn_DEF_MsgCount_tags_1, + sizeof(asn_DEF_MsgCount_tags_1) + /sizeof(asn_DEF_MsgCount_tags_1[0]), /* 1 */ + asn_DEF_MsgCount_tags_1, /* Same as above */ + sizeof(asn_DEF_MsgCount_tags_1) + /sizeof(asn_DEF_MsgCount_tags_1[0]), /* 1 */ + { &asn_OER_type_MsgCount_constr_1, &asn_PER_type_MsgCount_constr_1, MsgCount_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Node-LLmD-64b.c b/vcits/srem/src/Node-LLmD-64b.c new file mode 100644 index 0000000..797fcf4 --- /dev/null +++ b/vcits/srem/src/Node-LLmD-64b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Node-LLmD-64b.h" + +asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LLmD_64b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LLmD_64b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1 = { + sizeof(struct Node_LLmD_64b), + offsetof(struct Node_LLmD_64b, _asn_ctx), + asn_MAP_Node_LLmD_64b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b = { + "Node-LLmD-64b", + "Node-LLmD-64b", + &asn_OP_SEQUENCE, + asn_DEF_Node_LLmD_64b_tags_1, + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + asn_DEF_Node_LLmD_64b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_LLmD_64b_1, + 2, /* Elements count */ + &asn_SPC_Node_LLmD_64b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/Node-XY-20b.c b/vcits/srem/src/Node-XY-20b.c new file mode 100644 index 0000000..171633a --- /dev/null +++ b/vcits/srem/src/Node-XY-20b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Node-XY-20b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_20b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_20b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_20b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1 = { + sizeof(struct Node_XY_20b), + offsetof(struct Node_XY_20b, _asn_ctx), + asn_MAP_Node_XY_20b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_20b = { + "Node-XY-20b", + "Node-XY-20b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_20b_tags_1, + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_20b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_20b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_20b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/Node-XY-22b.c b/vcits/srem/src/Node-XY-22b.c new file mode 100644 index 0000000..f6b27cd --- /dev/null +++ b/vcits/srem/src/Node-XY-22b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Node-XY-22b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_22b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_22b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_22b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1 = { + sizeof(struct Node_XY_22b), + offsetof(struct Node_XY_22b, _asn_ctx), + asn_MAP_Node_XY_22b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_22b = { + "Node-XY-22b", + "Node-XY-22b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_22b_tags_1, + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_22b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_22b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_22b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/Node-XY-24b.c b/vcits/srem/src/Node-XY-24b.c new file mode 100644 index 0000000..76aad52 --- /dev/null +++ b/vcits/srem/src/Node-XY-24b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Node-XY-24b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_24b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_24b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_24b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1 = { + sizeof(struct Node_XY_24b), + offsetof(struct Node_XY_24b, _asn_ctx), + asn_MAP_Node_XY_24b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_24b = { + "Node-XY-24b", + "Node-XY-24b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_24b_tags_1, + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_24b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_24b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_24b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/Node-XY-26b.c b/vcits/srem/src/Node-XY-26b.c new file mode 100644 index 0000000..eda36dc --- /dev/null +++ b/vcits/srem/src/Node-XY-26b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Node-XY-26b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_26b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_26b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_26b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1 = { + sizeof(struct Node_XY_26b), + offsetof(struct Node_XY_26b, _asn_ctx), + asn_MAP_Node_XY_26b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_26b = { + "Node-XY-26b", + "Node-XY-26b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_26b_tags_1, + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_26b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_26b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_26b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/Node-XY-28b.c b/vcits/srem/src/Node-XY-28b.c new file mode 100644 index 0000000..6d49feb --- /dev/null +++ b/vcits/srem/src/Node-XY-28b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Node-XY-28b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_28b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_28b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_28b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1 = { + sizeof(struct Node_XY_28b), + offsetof(struct Node_XY_28b, _asn_ctx), + asn_MAP_Node_XY_28b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_28b = { + "Node-XY-28b", + "Node-XY-28b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_28b_tags_1, + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_28b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_28b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_28b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/Node-XY-32b.c b/vcits/srem/src/Node-XY-32b.c new file mode 100644 index 0000000..dc94236 --- /dev/null +++ b/vcits/srem/src/Node-XY-32b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Node-XY-32b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_32b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_32b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_32b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1 = { + sizeof(struct Node_XY_32b), + offsetof(struct Node_XY_32b, _asn_ctx), + asn_MAP_Node_XY_32b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_32b = { + "Node-XY-32b", + "Node-XY-32b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_32b_tags_1, + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_32b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_32b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_32b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/Node.c b/vcits/srem/src/Node.c new file mode 100644 index 0000000..99d801c --- /dev/null +++ b/vcits/srem/src/Node.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Node.h" + +asn_TYPE_member_t asn_MBR_Node_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 3, offsetof(struct Node, lane), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 2, offsetof(struct Node, connectionID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 1, offsetof(struct Node, intersectionID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersectionID" + }, +}; +static const int asn_MAP_Node_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Node_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* intersectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_specs_1 = { + sizeof(struct Node), + offsetof(struct Node, _asn_ctx), + asn_MAP_Node_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Node_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node = { + "Node", + "Node", + &asn_OP_SEQUENCE, + asn_DEF_Node_tags_1, + sizeof(asn_DEF_Node_tags_1) + /sizeof(asn_DEF_Node_tags_1[0]), /* 1 */ + asn_DEF_Node_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_tags_1) + /sizeof(asn_DEF_Node_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_1, + 4, /* Elements count */ + &asn_SPC_Node_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/NodeAttributeSet-addGrpC.c b/vcits/srem/src/NodeAttributeSet-addGrpC.c new file mode 100644 index 0000000..38f2649 --- /dev/null +++ b/vcits/srem/src/NodeAttributeSet-addGrpC.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "NodeAttributeSet-addGrpC.h" + +#include "NodeLink.h" +#include "Node.h" +asn_TYPE_member_t asn_MBR_NodeAttributeSet_addGrpC_1[] = { + { ATF_POINTER, 3, offsetof(struct NodeAttributeSet_addGrpC, ptvRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtvRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptvRequest" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSet_addGrpC, nodeLink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeLink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeLink" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSet_addGrpC, node), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node" + }, +}; +static const int asn_MAP_NodeAttributeSet_addGrpC_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSet_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSet_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptvRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeLink */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* node */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSet_addGrpC_specs_1 = { + sizeof(struct NodeAttributeSet_addGrpC), + offsetof(struct NodeAttributeSet_addGrpC, _asn_ctx), + asn_MAP_NodeAttributeSet_addGrpC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_NodeAttributeSet_addGrpC_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSet_addGrpC = { + "NodeAttributeSet-addGrpC", + "NodeAttributeSet-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSet_addGrpC_tags_1, + sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSet_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeAttributeSet_addGrpC_1, + 3, /* Elements count */ + &asn_SPC_NodeAttributeSet_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/NodeAttributeSetXY.c b/vcits/srem/src/NodeAttributeSetXY.c new file mode 100644 index 0000000..65ee41c --- /dev/null +++ b/vcits/srem/src/NodeAttributeSetXY.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "NodeAttributeSetXY.h" + +#include "NodeAttributeXYList.h" +#include "SegmentAttributeXYList.h" +#include "LaneDataAttributeList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_NodeAttributeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct NodeAttributeSetXY__regional), + offsetof(struct NodeAttributeSetXY__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[] = { + { ATF_POINTER, 7, offsetof(struct NodeAttributeSetXY, localNode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "localNode" + }, + { ATF_POINTER, 6, offsetof(struct NodeAttributeSetXY, disabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "disabled" + }, + { ATF_POINTER, 5, offsetof(struct NodeAttributeSetXY, enabled), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabled" + }, + { ATF_POINTER, 4, offsetof(struct NodeAttributeSetXY, data), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDataAttributeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "data" + }, + { ATF_POINTER, 3, offsetof(struct NodeAttributeSetXY, dWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dWidth" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSetXY, dElevation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dElevation" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSetXY, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_NodeAttributeSetXY_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSetXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* localNode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* disabled */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* enabled */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* data */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dElevation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1 = { + sizeof(struct NodeAttributeSetXY), + offsetof(struct NodeAttributeSetXY, _asn_ctx), + asn_MAP_NodeAttributeSetXY_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_NodeAttributeSetXY_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY = { + "NodeAttributeSetXY", + "NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSetXY_tags_1, + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeAttributeSetXY_1, + 7, /* Elements count */ + &asn_SPC_NodeAttributeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/NodeAttributeXY.c b/vcits/srem/src/NodeAttributeXY.c new file mode 100644 index 0000000..6aadadb --- /dev/null +++ b/vcits/srem/src/NodeAttributeXY.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "NodeAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 11 } /* (0..11,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_NodeAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 8, "stopLine" }, + { 2, 16, "roundedCapStyleA" }, + { 3, 16, "roundedCapStyleB" }, + { 4, 10, "mergePoint" }, + { 5, 12, "divergePoint" }, + { 6, 18, "downstreamStopLine" }, + { 7, 19, "downstreamStartNode" }, + { 8, 15, "closedToTraffic" }, + { 9, 10, "safeIsland" }, + { 10, 20, "curbPresentAtStepOff" }, + { 11, 14, "hydrantPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NodeAttributeXY_enum2value_1[] = { + 8, /* closedToTraffic(8) */ + 10, /* curbPresentAtStepOff(10) */ + 5, /* divergePoint(5) */ + 7, /* downstreamStartNode(7) */ + 6, /* downstreamStopLine(6) */ + 11, /* hydrantPresent(11) */ + 4, /* mergePoint(4) */ + 0, /* reserved(0) */ + 2, /* roundedCapStyleA(2) */ + 3, /* roundedCapStyleB(3) */ + 9, /* safeIsland(9) */ + 1 /* stopLine(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1 = { + asn_MAP_NodeAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NodeAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 12, /* Number of elements in the maps */ + 13, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY = { + "NodeAttributeXY", + "NodeAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_NodeAttributeXY_tags_1, + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeAttributeXY_constr_1, &asn_PER_type_NodeAttributeXY_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NodeAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/NodeAttributeXYList.c b/vcits/srem/src/NodeAttributeXYList.c new file mode 100644 index 0000000..597e60a --- /dev/null +++ b/vcits/srem/src/NodeAttributeXYList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "NodeAttributeXYList.h" + +static asn_oer_constraints_t asn_OER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_NodeAttributeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1 = { + sizeof(struct NodeAttributeXYList), + offsetof(struct NodeAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList = { + "NodeAttributeXYList", + "NodeAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeAttributeXYList_tags_1, + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeAttributeXYList_constr_1, &asn_PER_type_NodeAttributeXYList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_NodeAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/NodeLink.c b/vcits/srem/src/NodeLink.c new file mode 100644 index 0000000..e34c449 --- /dev/null +++ b/vcits/srem/src/NodeLink.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "NodeLink.h" + +#include "Node.h" +static asn_oer_constraints_t asn_OER_type_NodeLink_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_NodeLink_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeLink_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeLink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeLink_specs_1 = { + sizeof(struct NodeLink), + offsetof(struct NodeLink, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeLink = { + "NodeLink", + "NodeLink", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeLink_tags_1, + sizeof(asn_DEF_NodeLink_tags_1) + /sizeof(asn_DEF_NodeLink_tags_1[0]), /* 1 */ + asn_DEF_NodeLink_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeLink_tags_1) + /sizeof(asn_DEF_NodeLink_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeLink_constr_1, &asn_PER_type_NodeLink_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeLink_1, + 1, /* Single element */ + &asn_SPC_NodeLink_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/NodeListXY.c b/vcits/srem/src/NodeListXY.c new file mode 100644 index 0000000..319ddb4 --- /dev/null +++ b/vcits/srem/src/NodeListXY.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "NodeListXY.h" + +static asn_oer_constraints_t asn_OER_type_NodeListXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeListXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeListXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.computed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ComputedLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "computed" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeListXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* computed */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1 = { + sizeof(struct NodeListXY), + offsetof(struct NodeListXY, _asn_ctx), + offsetof(struct NodeListXY, present), + sizeof(((struct NodeListXY *)0)->present), + asn_MAP_NodeListXY_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeListXY = { + "NodeListXY", + "NodeListXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeListXY_constr_1, &asn_PER_type_NodeListXY_constr_1, CHOICE_constraint }, + asn_MBR_NodeListXY_1, + 2, /* Elements count */ + &asn_SPC_NodeListXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/NodeOffsetPointXY.c b/vcits/srem/src/NodeOffsetPointXY.c new file mode 100644 index 0000000..4ccda7f --- /dev/null +++ b/vcits/srem/src/NodeOffsetPointXY.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "NodeOffsetPointXY.h" + +static asn_oer_constraints_t asn_OER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_20b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY1" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_22b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY2" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_24b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY3" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_26b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY4" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_28b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY5" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_32b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY6" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_LatLon), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LLmD_64b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-LatLon" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeOffsetPointXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* node-XY1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* node-XY2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* node-XY3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* node-XY4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* node-XY5 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* node-XY6 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* node-LatLon */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1 = { + sizeof(struct NodeOffsetPointXY), + offsetof(struct NodeOffsetPointXY, _asn_ctx), + offsetof(struct NodeOffsetPointXY, present), + sizeof(((struct NodeOffsetPointXY *)0)->present), + asn_MAP_NodeOffsetPointXY_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY = { + "NodeOffsetPointXY", + "NodeOffsetPointXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeOffsetPointXY_constr_1, &asn_PER_type_NodeOffsetPointXY_constr_1, CHOICE_constraint }, + asn_MBR_NodeOffsetPointXY_1, + 8, /* Elements count */ + &asn_SPC_NodeOffsetPointXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/NodeSetXY.c b/vcits/srem/src/NodeSetXY.c new file mode 100644 index 0000000..799dd6e --- /dev/null +++ b/vcits/srem/src/NodeSetXY.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "NodeSetXY.h" + +#include "NodeXY.h" +static asn_oer_constraints_t asn_OER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(2..63)) */}; +asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 2, 63 } /* (SIZE(2..63)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeSetXY_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1 = { + sizeof(struct NodeSetXY), + offsetof(struct NodeSetXY, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeSetXY = { + "NodeSetXY", + "NodeSetXY", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeSetXY_tags_1, + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeSetXY_constr_1, &asn_PER_type_NodeSetXY_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeSetXY_1, + 1, /* Single element */ + &asn_SPC_NodeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/NodeXY.c b/vcits/srem/src/NodeXY.c new file mode 100644 index 0000000..e9ac50e --- /dev/null +++ b/vcits/srem/src/NodeXY.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "NodeXY.h" + +#include "NodeAttributeSetXY.h" +asn_TYPE_member_t asn_MBR_NodeXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeXY, delta), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delta" + }, + { ATF_POINTER, 1, offsetof(struct NodeXY, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_NodeXY_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_NodeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* delta */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1 = { + sizeof(struct NodeXY), + offsetof(struct NodeXY, _asn_ctx), + asn_MAP_NodeXY_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_NodeXY_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeXY = { + "NodeXY", + "NodeXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeXY_tags_1, + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeXY_1, + 2, /* Elements count */ + &asn_SPC_NodeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/NumberOfOccupants.c b/vcits/srem/src/NumberOfOccupants.c new file mode 100644 index 0000000..e961bc5 --- /dev/null +++ b/vcits/srem/src/NumberOfOccupants.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "NumberOfOccupants.h" + +int +NumberOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_NumberOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants = { + "NumberOfOccupants", + "NumberOfOccupants", + &asn_OP_NativeInteger, + asn_DEF_NumberOfOccupants_tags_1, + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_NumberOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_NumberOfOccupants_constr_1, &asn_PER_type_NumberOfOccupants_constr_1, NumberOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Offset-B09.c b/vcits/srem/src/Offset-B09.c new file mode 100644 index 0000000..26cea3f --- /dev/null +++ b/vcits/srem/src/Offset-B09.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Offset-B09.h" + +int +Offset_B09_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -256 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B09_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-256..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B09_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -256, 255 } /* (-256..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B09_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B09 = { + "Offset-B09", + "Offset-B09", + &asn_OP_NativeInteger, + asn_DEF_Offset_B09_tags_1, + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + asn_DEF_Offset_B09_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B09_constr_1, &asn_PER_type_Offset_B09_constr_1, Offset_B09_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Offset-B10.c b/vcits/srem/src/Offset-B10.c new file mode 100644 index 0000000..28831f7 --- /dev/null +++ b/vcits/srem/src/Offset-B10.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Offset-B10.h" + +int +Offset_B10_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -512 && value <= 511)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B10_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-512..511) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B10_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -512, 511 } /* (-512..511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B10_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B10 = { + "Offset-B10", + "Offset-B10", + &asn_OP_NativeInteger, + asn_DEF_Offset_B10_tags_1, + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + asn_DEF_Offset_B10_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B10_constr_1, &asn_PER_type_Offset_B10_constr_1, Offset_B10_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Offset-B11.c b/vcits/srem/src/Offset-B11.c new file mode 100644 index 0000000..cff4382 --- /dev/null +++ b/vcits/srem/src/Offset-B11.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Offset-B11.h" + +int +Offset_B11_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1024 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B11_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1024..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B11_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B11_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B11 = { + "Offset-B11", + "Offset-B11", + &asn_OP_NativeInteger, + asn_DEF_Offset_B11_tags_1, + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + asn_DEF_Offset_B11_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B11_constr_1, &asn_PER_type_Offset_B11_constr_1, Offset_B11_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Offset-B12.c b/vcits/srem/src/Offset-B12.c new file mode 100644 index 0000000..dfc6849 --- /dev/null +++ b/vcits/srem/src/Offset-B12.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Offset-B12.h" + +int +Offset_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B12 = { + "Offset-B12", + "Offset-B12", + &asn_OP_NativeInteger, + asn_DEF_Offset_B12_tags_1, + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + asn_DEF_Offset_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B12_constr_1, &asn_PER_type_Offset_B12_constr_1, Offset_B12_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Offset-B13.c b/vcits/srem/src/Offset-B13.c new file mode 100644 index 0000000..51e18bc --- /dev/null +++ b/vcits/srem/src/Offset-B13.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Offset-B13.h" + +int +Offset_B13_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B13_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-4096..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B13_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, -4096, 4095 } /* (-4096..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B13_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B13 = { + "Offset-B13", + "Offset-B13", + &asn_OP_NativeInteger, + asn_DEF_Offset_B13_tags_1, + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + asn_DEF_Offset_B13_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B13_constr_1, &asn_PER_type_Offset_B13_constr_1, Offset_B13_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Offset-B14.c b/vcits/srem/src/Offset-B14.c new file mode 100644 index 0000000..84e28ca --- /dev/null +++ b/vcits/srem/src/Offset-B14.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Offset-B14.h" + +int +Offset_B14_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -8192 && value <= 8191)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B14_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-8192..8191) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B14_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, -8192, 8191 } /* (-8192..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B14_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B14 = { + "Offset-B14", + "Offset-B14", + &asn_OP_NativeInteger, + asn_DEF_Offset_B14_tags_1, + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + asn_DEF_Offset_B14_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B14_constr_1, &asn_PER_type_Offset_B14_constr_1, Offset_B14_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Offset-B16.c b/vcits/srem/src/Offset-B16.c new file mode 100644 index 0000000..c3fb043 --- /dev/null +++ b/vcits/srem/src/Offset-B16.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Offset-B16.h" + +int +Offset_B16_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32768 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B16_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32768..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B16_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B16_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B16 = { + "Offset-B16", + "Offset-B16", + &asn_OP_NativeInteger, + asn_DEF_Offset_B16_tags_1, + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + asn_DEF_Offset_B16_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B16_constr_1, &asn_PER_type_Offset_B16_constr_1, Offset_B16_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/OpeningDaysHours.c b/vcits/srem/src/OpeningDaysHours.c new file mode 100644 index 0000000..8ced009 --- /dev/null +++ b/vcits/srem/src/OpeningDaysHours.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "OpeningDaysHours.h" + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_OpeningDaysHours_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours = { + "OpeningDaysHours", + "OpeningDaysHours", + &asn_OP_UTF8String, + asn_DEF_OpeningDaysHours_tags_1, + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + asn_DEF_OpeningDaysHours_tags_1, /* Same as above */ + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + { 0, 0, UTF8String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/OverlayLaneList.c b/vcits/srem/src/OverlayLaneList.c new file mode 100644 index 0000000..2f0183a --- /dev/null +++ b/vcits/srem/src/OverlayLaneList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "OverlayLaneList.h" + +static asn_oer_constraints_t asn_OER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_OverlayLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_OverlayLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1 = { + sizeof(struct OverlayLaneList), + offsetof(struct OverlayLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_OverlayLaneList = { + "OverlayLaneList", + "OverlayLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_OverlayLaneList_tags_1, + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + asn_DEF_OverlayLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_OverlayLaneList_constr_1, &asn_PER_type_OverlayLaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_OverlayLaneList_1, + 1, /* Single element */ + &asn_SPC_OverlayLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PathDeltaTime.c b/vcits/srem/src/PathDeltaTime.c new file mode 100644 index 0000000..5a34ceb --- /dev/null +++ b/vcits/srem/src/PathDeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PathDeltaTime.h" + +int +PathDeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PathDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PathDeltaTime = { + "PathDeltaTime", + "PathDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_PathDeltaTime_tags_1, + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_PathDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_PathDeltaTime_constr_1, &asn_PER_type_PathDeltaTime_constr_1, PathDeltaTime_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/PathHistory.c b/vcits/srem/src/PathHistory.c new file mode 100644 index 0000000..d4bb7dc --- /dev/null +++ b/vcits/srem/src/PathHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PathHistory.h" + +#include "PathPoint.h" +static asn_oer_constraints_t asn_OER_type_PathHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..40)) */}; +asn_per_constraints_t asn_PER_type_PathHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 40 } /* (SIZE(0..40)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PathHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1 = { + sizeof(struct PathHistory), + offsetof(struct PathHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_PathHistory_tags_1, + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_PathHistory_constr_1, &asn_PER_type_PathHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PathHistory_1, + 1, /* Single element */ + &asn_SPC_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PathPoint.c b/vcits/srem/src/PathPoint.c new file mode 100644 index 0000000..e80c198 --- /dev/null +++ b/vcits/srem/src/PathPoint.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PathPoint.h" + +asn_TYPE_member_t asn_MBR_PathPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PathPoint, pathPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathPosition" + }, + { ATF_POINTER, 1, offsetof(struct PathPoint, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathDeltaTime" + }, +}; +static const int asn_MAP_PathPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PathPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PathPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pathDeltaTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1 = { + sizeof(struct PathPoint), + offsetof(struct PathPoint, _asn_ctx), + asn_MAP_PathPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PathPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PathPoint = { + "PathPoint", + "PathPoint", + &asn_OP_SEQUENCE, + asn_DEF_PathPoint_tags_1, + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + asn_DEF_PathPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PathPoint_1, + 2, /* Elements count */ + &asn_SPC_PathPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PedestrianBicycleDetect.c b/vcits/srem/src/PedestrianBicycleDetect.c new file mode 100644 index 0000000..e47f03d --- /dev/null +++ b/vcits/srem/src/PedestrianBicycleDetect.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PedestrianBicycleDetect.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_PedestrianBicycleDetect_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect = { + "PedestrianBicycleDetect", + "PedestrianBicycleDetect", + &asn_OP_BOOLEAN, + asn_DEF_PedestrianBicycleDetect_tags_1, + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + asn_DEF_PedestrianBicycleDetect_tags_1, /* Same as above */ + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/PerformanceClass.c b/vcits/srem/src/PerformanceClass.c new file mode 100644 index 0000000..d4dc262 --- /dev/null +++ b/vcits/srem/src/PerformanceClass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PerformanceClass.h" + +int +PerformanceClass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PerformanceClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PerformanceClass = { + "PerformanceClass", + "PerformanceClass", + &asn_OP_NativeInteger, + asn_DEF_PerformanceClass_tags_1, + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + asn_DEF_PerformanceClass_tags_1, /* Same as above */ + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + { &asn_OER_type_PerformanceClass_constr_1, &asn_PER_type_PerformanceClass_constr_1, PerformanceClass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/PhoneNumber.c b/vcits/srem/src/PhoneNumber.c new file mode 100644 index 0000000..54f1317 --- /dev/null +++ b/vcits/srem/src/PhoneNumber.c @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PhoneNumber.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* . */ + 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */ +}; +static const int permitted_alphabet_code2value_1[11] = { +32,48,49,50,51,52,53,54,55,56,57,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is NumericString */ + const NumericString_t *st = (const NumericString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +PhoneNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const NumericString_t *st = (const NumericString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 16) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_PhoneNumber_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_PhoneNumber_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using NumericString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 32, 57 } /* (32..57) */, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + asn_PER_MAP_PhoneNumber_1_v2c, /* Value to PER code map */ + asn_PER_MAP_PhoneNumber_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_PhoneNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PhoneNumber = { + "PhoneNumber", + "PhoneNumber", + &asn_OP_NumericString, + asn_DEF_PhoneNumber_tags_1, + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + asn_DEF_PhoneNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_PhoneNumber_constr_1, &asn_PER_type_PhoneNumber_constr_1, PhoneNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/PosCentMass.c b/vcits/srem/src/PosCentMass.c new file mode 100644 index 0000000..caf1d11 --- /dev/null +++ b/vcits/srem/src/PosCentMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PosCentMass.h" + +int +PosCentMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosCentMass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..63) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosCentMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosCentMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosCentMass = { + "PosCentMass", + "PosCentMass", + &asn_OP_NativeInteger, + asn_DEF_PosCentMass_tags_1, + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + asn_DEF_PosCentMass_tags_1, /* Same as above */ + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + { &asn_OER_type_PosCentMass_constr_1, &asn_PER_type_PosCentMass_constr_1, PosCentMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/PosConfidenceEllipse.c b/vcits/srem/src/PosConfidenceEllipse.c new file mode 100644 index 0000000..ed58fbb --- /dev/null +++ b/vcits/srem/src/PosConfidenceEllipse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PosConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMinorConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorOrientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PosConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PosConfidenceEllipse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* semiMajorOrientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1 = { + sizeof(struct PosConfidenceEllipse), + offsetof(struct PosConfidenceEllipse, _asn_ctx), + asn_MAP_PosConfidenceEllipse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse = { + "PosConfidenceEllipse", + "PosConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_PosConfidenceEllipse_tags_1, + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_PosConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PosConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_PosConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PosFrontAx.c b/vcits/srem/src/PosFrontAx.c new file mode 100644 index 0000000..224e425 --- /dev/null +++ b/vcits/srem/src/PosFrontAx.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PosFrontAx.h" + +int +PosFrontAx_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..20) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (1..20) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosFrontAx_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosFrontAx = { + "PosFrontAx", + "PosFrontAx", + &asn_OP_NativeInteger, + asn_DEF_PosFrontAx_tags_1, + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + asn_DEF_PosFrontAx_tags_1, /* Same as above */ + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + { &asn_OER_type_PosFrontAx_constr_1, &asn_PER_type_PosFrontAx_constr_1, PosFrontAx_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/PosLonCarr.c b/vcits/srem/src/PosLonCarr.c new file mode 100644 index 0000000..ee551b8 --- /dev/null +++ b/vcits/srem/src/PosLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PosLonCarr.h" + +int +PosLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosLonCarr = { + "PosLonCarr", + "PosLonCarr", + &asn_OP_NativeInteger, + asn_DEF_PosLonCarr_tags_1, + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + asn_DEF_PosLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_PosLonCarr_constr_1, &asn_PER_type_PosLonCarr_constr_1, PosLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/PosPillar.c b/vcits/srem/src/PosPillar.c new file mode 100644 index 0000000..14adbc5 --- /dev/null +++ b/vcits/srem/src/PosPillar.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PosPillar.h" + +int +PosPillar_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 30)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosPillar_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..30) */, + -1}; +asn_per_constraints_t asn_PER_type_PosPillar_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 30 } /* (1..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosPillar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosPillar = { + "PosPillar", + "PosPillar", + &asn_OP_NativeInteger, + asn_DEF_PosPillar_tags_1, + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + asn_DEF_PosPillar_tags_1, /* Same as above */ + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + { &asn_OER_type_PosPillar_constr_1, &asn_PER_type_PosPillar_constr_1, PosPillar_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Position3D-addGrpC.c b/vcits/srem/src/Position3D-addGrpC.c new file mode 100644 index 0000000..679f87f --- /dev/null +++ b/vcits/srem/src/Position3D-addGrpC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Position3D-addGrpC.h" + +asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D_addGrpC, altitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_Position3D_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1 = { + sizeof(struct Position3D_addGrpC), + offsetof(struct Position3D_addGrpC, _asn_ctx), + asn_MAP_Position3D_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC = { + "Position3D-addGrpC", + "Position3D-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_addGrpC_tags_1, + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_Position3D_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Position3D_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_Position3D_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/Position3D.c b/vcits/srem/src/Position3D.c new file mode 100644 index 0000000..9373bb7 --- /dev/null +++ b/vcits/srem/src/Position3D.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Position3D.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct Position3D__regional), + offsetof(struct Position3D__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Position3D_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D, lat), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_NOFLAGS, 0, offsetof(struct Position3D, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "long" + }, + { ATF_POINTER, 2, offsetof(struct Position3D, elevation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Elevation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 1, offsetof(struct Position3D, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_Position3D_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Position3D_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1 = { + sizeof(struct Position3D), + offsetof(struct Position3D, _asn_ctx), + asn_MAP_Position3D_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Position3D_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D = { + "Position3D", + "Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_tags_1, + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + asn_DEF_Position3D_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Position3D_1, + 4, /* Elements count */ + &asn_SPC_Position3D_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PositionConfidence.c b/vcits/srem/src/PositionConfidence.c new file mode 100644 index 0000000..b5b2b86 --- /dev/null +++ b/vcits/srem/src/PositionConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PositionConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositionConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 5, "a500m" }, + { 2, 5, "a200m" }, + { 3, 5, "a100m" }, + { 4, 4, "a50m" }, + { 5, 4, "a20m" }, + { 6, 4, "a10m" }, + { 7, 3, "a5m" }, + { 8, 3, "a2m" }, + { 9, 3, "a1m" }, + { 10, 5, "a50cm" }, + { 11, 5, "a20cm" }, + { 12, 5, "a10cm" }, + { 13, 4, "a5cm" }, + { 14, 4, "a2cm" }, + { 15, 4, "a1cm" } +}; +static const unsigned int asn_MAP_PositionConfidence_enum2value_1[] = { + 3, /* a100m(3) */ + 12, /* a10cm(12) */ + 6, /* a10m(6) */ + 15, /* a1cm(15) */ + 9, /* a1m(9) */ + 2, /* a200m(2) */ + 11, /* a20cm(11) */ + 5, /* a20m(5) */ + 14, /* a2cm(14) */ + 8, /* a2m(8) */ + 1, /* a500m(1) */ + 10, /* a50cm(10) */ + 4, /* a50m(4) */ + 13, /* a5cm(13) */ + 7, /* a5m(7) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1 = { + asn_MAP_PositionConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositionConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidence = { + "PositionConfidence", + "PositionConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_PositionConfidence_tags_1, + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionConfidence_constr_1, &asn_PER_type_PositionConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositionConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PositionConfidenceSet.c b/vcits/srem/src/PositionConfidenceSet.c new file mode 100644 index 0000000..94616ca --- /dev/null +++ b/vcits/srem/src/PositionConfidenceSet.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PositionConfidenceSet.h" + +asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, pos), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pos" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, elevation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ElevationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidenceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionConfidenceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pos */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* elevation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1 = { + sizeof(struct PositionConfidenceSet), + offsetof(struct PositionConfidenceSet, _asn_ctx), + asn_MAP_PositionConfidenceSet_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet = { + "PositionConfidenceSet", + "PositionConfidenceSet", + &asn_OP_SEQUENCE, + asn_DEF_PositionConfidenceSet_tags_1, + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidenceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionConfidenceSet_1, + 2, /* Elements count */ + &asn_SPC_PositionConfidenceSet_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PositionOfOccupants.c b/vcits/srem/src/PositionOfOccupants.c new file mode 100644 index 0000000..b7caca5 --- /dev/null +++ b/vcits/srem/src/PositionOfOccupants.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PositionOfOccupants.h" + +int +PositionOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { 0, 0 }, + 20 /* (SIZE(20..20)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PositionOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants = { + "PositionOfOccupants", + "PositionOfOccupants", + &asn_OP_BIT_STRING, + asn_DEF_PositionOfOccupants_tags_1, + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_PositionOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfOccupants_constr_1, &asn_PER_type_PositionOfOccupants_constr_1, PositionOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/PositionOfPillars.c b/vcits/srem/src/PositionOfPillars.c new file mode 100644 index 0000000..ff96795 --- /dev/null +++ b/vcits/srem/src/PositionOfPillars.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PositionOfPillars.h" + +static asn_oer_constraints_t asn_OER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_PositionOfPillars_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PosPillar, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionOfPillars_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_PositionOfPillars_specs_1 = { + sizeof(struct PositionOfPillars), + offsetof(struct PositionOfPillars, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfPillars = { + "PositionOfPillars", + "PositionOfPillars", + &asn_OP_SEQUENCE_OF, + asn_DEF_PositionOfPillars_tags_1, + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + asn_DEF_PositionOfPillars_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfPillars_constr_1, &asn_PER_type_PositionOfPillars_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PositionOfPillars_1, + 1, /* Single element */ + &asn_SPC_PositionOfPillars_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PositionalAccuracy.c b/vcits/srem/src/PositionalAccuracy.c new file mode 100644 index 0000000..e0fa199 --- /dev/null +++ b/vcits/srem/src/PositionalAccuracy.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PositionalAccuracy.h" + +asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMajor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMinor), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMinorAxisAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, orientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisOrientation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "orientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionalAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionalAccuracy_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinor */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* orientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1 = { + sizeof(struct PositionalAccuracy), + offsetof(struct PositionalAccuracy, _asn_ctx), + asn_MAP_PositionalAccuracy_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy = { + "PositionalAccuracy", + "PositionalAccuracy", + &asn_OP_SEQUENCE, + asn_DEF_PositionalAccuracy_tags_1, + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + asn_DEF_PositionalAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionalAccuracy_1, + 3, /* Elements count */ + &asn_SPC_PositionalAccuracy_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PositioningSolutionType.c b/vcits/srem/src/PositioningSolutionType.c new file mode 100644 index 0000000..cc3ec73 --- /dev/null +++ b/vcits/srem/src/PositioningSolutionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PositioningSolutionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositioningSolutionType_value2enum_1[] = { + { 0, 21, "noPositioningSolution" }, + { 1, 5, "sGNSS" }, + { 2, 5, "dGNSS" }, + { 3, 11, "sGNSSplusDR" }, + { 4, 11, "dGNSSplusDR" }, + { 5, 2, "dR" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PositioningSolutionType_enum2value_1[] = { + 2, /* dGNSS(2) */ + 4, /* dGNSSplusDR(4) */ + 5, /* dR(5) */ + 0, /* noPositioningSolution(0) */ + 1, /* sGNSS(1) */ + 3 /* sGNSSplusDR(3) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_PositioningSolutionType_specs_1 = { + asn_MAP_PositioningSolutionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositioningSolutionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositioningSolutionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType = { + "PositioningSolutionType", + "PositioningSolutionType", + &asn_OP_NativeEnumerated, + asn_DEF_PositioningSolutionType_tags_1, + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + asn_DEF_PositioningSolutionType_tags_1, /* Same as above */ + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + { &asn_OER_type_PositioningSolutionType_constr_1, &asn_PER_type_PositioningSolutionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositioningSolutionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PostCrashSubCauseCode.c b/vcits/srem/src/PostCrashSubCauseCode.c new file mode 100644 index 0000000..0b910f6 --- /dev/null +++ b/vcits/srem/src/PostCrashSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PostCrashSubCauseCode.h" + +int +PostCrashSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PostCrashSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode = { + "PostCrashSubCauseCode", + "PostCrashSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_PostCrashSubCauseCode_tags_1, + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_PostCrashSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_PostCrashSubCauseCode_constr_1, &asn_PER_type_PostCrashSubCauseCode_constr_1, PostCrashSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/PreemptPriorityList.c b/vcits/srem/src/PreemptPriorityList.c new file mode 100644 index 0000000..fa3249a --- /dev/null +++ b/vcits/srem/src/PreemptPriorityList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PreemptPriorityList.h" + +#include "SignalControlZone.h" +static asn_oer_constraints_t asn_OER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalControlZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PreemptPriorityList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1 = { + sizeof(struct PreemptPriorityList), + offsetof(struct PreemptPriorityList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList = { + "PreemptPriorityList", + "PreemptPriorityList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PreemptPriorityList_tags_1, + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + asn_DEF_PreemptPriorityList_tags_1, /* Same as above */ + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + { &asn_OER_type_PreemptPriorityList_constr_1, &asn_PER_type_PreemptPriorityList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PreemptPriorityList_1, + 1, /* Single element */ + &asn_SPC_PreemptPriorityList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PrioritizationResponse.c b/vcits/srem/src/PrioritizationResponse.c new file mode 100644 index 0000000..f74ddf4 --- /dev/null +++ b/vcits/srem/src/PrioritizationResponse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PrioritizationResponse.h" + +asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, priorState), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "priorState" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PrioritizationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* priorState */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroup */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1 = { + sizeof(struct PrioritizationResponse), + offsetof(struct PrioritizationResponse, _asn_ctx), + asn_MAP_PrioritizationResponse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse = { + "PrioritizationResponse", + "PrioritizationResponse", + &asn_OP_SEQUENCE, + asn_DEF_PrioritizationResponse_tags_1, + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PrioritizationResponse_1, + 3, /* Elements count */ + &asn_SPC_PrioritizationResponse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PrioritizationResponseList.c b/vcits/srem/src/PrioritizationResponseList.c new file mode 100644 index 0000000..a082fe1 --- /dev/null +++ b/vcits/srem/src/PrioritizationResponseList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PrioritizationResponseList.h" + +#include "PrioritizationResponse.h" +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PrioritizationResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1 = { + sizeof(struct PrioritizationResponseList), + offsetof(struct PrioritizationResponseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList = { + "PrioritizationResponseList", + "PrioritizationResponseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PrioritizationResponseList_tags_1, + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseList_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + { &asn_OER_type_PrioritizationResponseList_constr_1, &asn_PER_type_PrioritizationResponseList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PrioritizationResponseList_1, + 1, /* Single element */ + &asn_SPC_PrioritizationResponseList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PrioritizationResponseStatus.c b/vcits/srem/src/PrioritizationResponseStatus.c new file mode 100644 index 0000000..61f9da7 --- /dev/null +++ b/vcits/srem/src/PrioritizationResponseStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PrioritizationResponseStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PrioritizationResponseStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 9, "requested" }, + { 2, 10, "processing" }, + { 3, 17, "watchOtherTraffic" }, + { 4, 7, "granted" }, + { 5, 8, "rejected" }, + { 6, 11, "maxPresence" }, + { 7, 15, "reserviceLocked" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PrioritizationResponseStatus_enum2value_1[] = { + 4, /* granted(4) */ + 6, /* maxPresence(6) */ + 2, /* processing(2) */ + 5, /* rejected(5) */ + 1, /* requested(1) */ + 7, /* reserviceLocked(7) */ + 0, /* unknown(0) */ + 3 /* watchOtherTraffic(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1 = { + asn_MAP_PrioritizationResponseStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PrioritizationResponseStatus_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus = { + "PrioritizationResponseStatus", + "PrioritizationResponseStatus", + &asn_OP_NativeEnumerated, + asn_DEF_PrioritizationResponseStatus_tags_1, + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_PrioritizationResponseStatus_constr_1, &asn_PER_type_PrioritizationResponseStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PrioritizationResponseStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PriorityRequestType.c b/vcits/srem/src/PriorityRequestType.c new file mode 100644 index 0000000..fa8f299 --- /dev/null +++ b/vcits/srem/src/PriorityRequestType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PriorityRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PriorityRequestType_value2enum_1[] = { + { 0, 27, "priorityRequestTypeReserved" }, + { 1, 15, "priorityRequest" }, + { 2, 21, "priorityRequestUpdate" }, + { 3, 20, "priorityCancellation" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PriorityRequestType_enum2value_1[] = { + 3, /* priorityCancellation(3) */ + 1, /* priorityRequest(1) */ + 0, /* priorityRequestTypeReserved(0) */ + 2 /* priorityRequestUpdate(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1 = { + asn_MAP_PriorityRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PriorityRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PriorityRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PriorityRequestType = { + "PriorityRequestType", + "PriorityRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PriorityRequestType_tags_1, + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + asn_DEF_PriorityRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_PriorityRequestType_constr_1, &asn_PER_type_PriorityRequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PriorityRequestType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ProtectedCommunicationZone.c b/vcits/srem/src/ProtectedCommunicationZone.c new file mode 100644 index 0000000..dbd60e3 --- /dev/null +++ b/vcits/srem/src/ProtectedCommunicationZone.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ProtectedCommunicationZone.h" + +asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneType" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expiryTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 2, offsetof(struct ProtectedCommunicationZone, protectedZoneRadius), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneRadius, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneRadius" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, protectedZoneID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneID" + }, +}; +static const int asn_MAP_ProtectedCommunicationZone_oms_1[] = { 1, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ProtectedCommunicationZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expiryTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protectedZoneRadius */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* protectedZoneID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1 = { + sizeof(struct ProtectedCommunicationZone), + offsetof(struct ProtectedCommunicationZone, _asn_ctx), + asn_MAP_ProtectedCommunicationZone_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ProtectedCommunicationZone_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone = { + "ProtectedCommunicationZone", + "ProtectedCommunicationZone", + &asn_OP_SEQUENCE, + asn_DEF_ProtectedCommunicationZone_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZone_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ProtectedCommunicationZone_1, + 6, /* Elements count */ + &asn_SPC_ProtectedCommunicationZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ProtectedCommunicationZonesRSU.c b/vcits/srem/src/ProtectedCommunicationZonesRSU.c new file mode 100644 index 0000000..c9d6677 --- /dev/null +++ b/vcits/srem/src/ProtectedCommunicationZonesRSU.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ProtectedCommunicationZonesRSU.h" + +#include "ProtectedCommunicationZone.h" +static asn_oer_constraints_t asn_OER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ProtectedCommunicationZonesRSU_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtectedCommunicationZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZonesRSU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ProtectedCommunicationZonesRSU_specs_1 = { + sizeof(struct ProtectedCommunicationZonesRSU), + offsetof(struct ProtectedCommunicationZonesRSU, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU = { + "ProtectedCommunicationZonesRSU", + "ProtectedCommunicationZonesRSU", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedCommunicationZonesRSU_constr_1, &asn_PER_type_ProtectedCommunicationZonesRSU_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtectedCommunicationZonesRSU_1, + 1, /* Single element */ + &asn_SPC_ProtectedCommunicationZonesRSU_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ProtectedZoneID.c b/vcits/srem/src/ProtectedZoneID.c new file mode 100644 index 0000000..5dac7a9 --- /dev/null +++ b/vcits/srem/src/ProtectedZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ProtectedZoneID.h" + +int +ProtectedZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID = { + "ProtectedZoneID", + "ProtectedZoneID", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneID_tags_1, + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneID_constr_1, &asn_PER_type_ProtectedZoneID_constr_1, ProtectedZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/ProtectedZoneRadius.c b/vcits/srem/src/ProtectedZoneRadius.c new file mode 100644 index 0000000..c3b7fa1 --- /dev/null +++ b/vcits/srem/src/ProtectedZoneRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ProtectedZoneRadius.h" + +int +ProtectedZoneRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 255 } /* (1..255,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius = { + "ProtectedZoneRadius", + "ProtectedZoneRadius", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneRadius_tags_1, + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneRadius_constr_1, &asn_PER_type_ProtectedZoneRadius_constr_1, ProtectedZoneRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/ProtectedZoneType.c b/vcits/srem/src/ProtectedZoneType.c new file mode 100644 index 0000000..b8b3d10 --- /dev/null +++ b/vcits/srem/src/ProtectedZoneType.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ProtectedZoneType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ProtectedZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ProtectedZoneType_enum2value_1[] = { + 0, /* permanentCenDsrcTolling(0) */ + 1 /* temporaryCenDsrcTolling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1 = { + asn_MAP_ProtectedZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ProtectedZoneType_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType = { + "ProtectedZoneType", + "ProtectedZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_ProtectedZoneType_tags_1, + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneType_constr_1, &asn_PER_type_ProtectedZoneType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ProtectedZoneType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PtActivation.c b/vcits/srem/src/PtActivation.c new file mode 100644 index 0000000..1f863d8 --- /dev/null +++ b/vcits/srem/src/PtActivation.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PtActivation.h" + +static asn_TYPE_member_t asn_MBR_PtActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationData" + }, +}; +static const ber_tlv_tag_t asn_DEF_PtActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PtActivation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptActivationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivationData */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_PtActivation_specs_1 = { + sizeof(struct PtActivation), + offsetof(struct PtActivation, _asn_ctx), + asn_MAP_PtActivation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PtActivation = { + "PtActivation", + "PtActivation", + &asn_OP_SEQUENCE, + asn_DEF_PtActivation_tags_1, + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + asn_DEF_PtActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PtActivation_1, + 2, /* Elements count */ + &asn_SPC_PtActivation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/PtActivationData.c b/vcits/srem/src/PtActivationData.c new file mode 100644 index 0000000..452035a --- /dev/null +++ b/vcits/srem/src/PtActivationData.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PtActivationData.h" + +int +PtActivationData_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationData_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..20)) */}; +asn_per_constraints_t asn_PER_type_PtActivationData_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (SIZE(1..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationData = { + "PtActivationData", + "PtActivationData", + &asn_OP_OCTET_STRING, + asn_DEF_PtActivationData_tags_1, + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + asn_DEF_PtActivationData_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationData_constr_1, &asn_PER_type_PtActivationData_constr_1, PtActivationData_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/PtActivationType.c b/vcits/srem/src/PtActivationType.c new file mode 100644 index 0000000..f2d099a --- /dev/null +++ b/vcits/srem/src/PtActivationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PtActivationType.h" + +int +PtActivationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_PtActivationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationType = { + "PtActivationType", + "PtActivationType", + &asn_OP_NativeInteger, + asn_DEF_PtActivationType_tags_1, + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + asn_DEF_PtActivationType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationType_constr_1, &asn_PER_type_PtActivationType_constr_1, PtActivationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/PtvRequestType.c b/vcits/srem/src/PtvRequestType.c new file mode 100644 index 0000000..eb83be5 --- /dev/null +++ b/vcits/srem/src/PtvRequestType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "PtvRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtvRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PtvRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PtvRequestType_value2enum_1[] = { + { 0, 10, "preRequest" }, + { 1, 11, "mainRequest" }, + { 2, 16, "doorCloseRequest" }, + { 3, 13, "cancelRequest" }, + { 4, 16, "emergencyRequest" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PtvRequestType_enum2value_1[] = { + 3, /* cancelRequest(3) */ + 2, /* doorCloseRequest(2) */ + 4, /* emergencyRequest(4) */ + 1, /* mainRequest(1) */ + 0 /* preRequest(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PtvRequestType_specs_1 = { + asn_MAP_PtvRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PtvRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 6, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PtvRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtvRequestType = { + "PtvRequestType", + "PtvRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PtvRequestType_tags_1, + sizeof(asn_DEF_PtvRequestType_tags_1) + /sizeof(asn_DEF_PtvRequestType_tags_1[0]), /* 1 */ + asn_DEF_PtvRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtvRequestType_tags_1) + /sizeof(asn_DEF_PtvRequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtvRequestType_constr_1, &asn_PER_type_PtvRequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PtvRequestType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RTCM-Revision.c b/vcits/srem/src/RTCM-Revision.c new file mode 100644 index 0000000..59f649c --- /dev/null +++ b/vcits/srem/src/RTCM-Revision.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RTCM-Revision.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RTCM_Revision_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "rtcmRev2" }, + { 2, 8, "rtcmRev3" }, + { 3, 8, "reserved" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RTCM_Revision_enum2value_1[] = { + 3, /* reserved(3) */ + 1, /* rtcmRev2(1) */ + 2, /* rtcmRev3(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1 = { + asn_MAP_RTCM_Revision_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RTCM_Revision_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RTCM_Revision_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCM_Revision = { + "RTCM-Revision", + "RTCM-Revision", + &asn_OP_NativeEnumerated, + asn_DEF_RTCM_Revision_tags_1, + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + asn_DEF_RTCM_Revision_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCM_Revision_constr_1, &asn_PER_type_RTCM_Revision_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RTCM_Revision_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RTCMcorrections.c b/vcits/srem/src/RTCMcorrections.c new file mode 100644 index 0000000..f831bb6 --- /dev/null +++ b/vcits/srem/src/RTCMcorrections.c @@ -0,0 +1,194 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RTCMcorrections.h" + +#include "FullPositionVector.h" +#include "RTCMheader.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RTCMcorrections, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct RTCMcorrections__regional), + offsetof(struct RTCMcorrections__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RTCMcorrections_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, rev), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCM_Revision, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rev" + }, + { ATF_POINTER, 3, offsetof(struct RTCMcorrections, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 2, offsetof(struct RTCMcorrections, anchorPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FullPositionVector, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "anchorPoint" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, rtcmHeader), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMheader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rtcmHeader" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgs), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMmessageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgs" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RTCMcorrections_oms_1[] = { 2, 3, 4, 6 }; +static const ber_tlv_tag_t asn_DEF_RTCMcorrections_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMcorrections_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rev */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* anchorPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rtcmHeader */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* msgs */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RTCMcorrections_specs_1 = { + sizeof(struct RTCMcorrections), + offsetof(struct RTCMcorrections, _asn_ctx), + asn_MAP_RTCMcorrections_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_RTCMcorrections_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMcorrections = { + "RTCMcorrections", + "RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_RTCMcorrections_tags_1, + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + asn_DEF_RTCMcorrections_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMcorrections_1, + 7, /* Elements count */ + &asn_SPC_RTCMcorrections_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RTCMheader.c b/vcits/srem/src/RTCMheader.c new file mode 100644 index 0000000..a0c2484 --- /dev/null +++ b/vcits/srem/src/RTCMheader.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RTCMheader.h" + +asn_TYPE_member_t asn_MBR_RTCMheader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, status), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNSSstatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, offsetSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AntennaOffsetSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMheader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMheader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* offsetSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1 = { + sizeof(struct RTCMheader), + offsetof(struct RTCMheader, _asn_ctx), + asn_MAP_RTCMheader_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMheader = { + "RTCMheader", + "RTCMheader", + &asn_OP_SEQUENCE, + asn_DEF_RTCMheader_tags_1, + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + asn_DEF_RTCMheader_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMheader_1, + 2, /* Elements count */ + &asn_SPC_RTCMheader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RTCMmessage.c b/vcits/srem/src/RTCMmessage.c new file mode 100644 index 0000000..8d3635a --- /dev/null +++ b/vcits/srem/src/RTCMmessage.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RTCMmessage.h" + +int +RTCMmessage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1023)) */}; +asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (SIZE(1..1023)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessage = { + "RTCMmessage", + "RTCMmessage", + &asn_OP_OCTET_STRING, + asn_DEF_RTCMmessage_tags_1, + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCMmessage_constr_1, &asn_PER_type_RTCMmessage_constr_1, RTCMmessage_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/RTCMmessageList.c b/vcits/srem/src/RTCMmessageList.c new file mode 100644 index 0000000..2e4c752 --- /dev/null +++ b/vcits/srem/src/RTCMmessageList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RTCMmessageList.h" + +static asn_oer_constraints_t asn_OER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RTCMmessageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RTCMmessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1 = { + sizeof(struct RTCMmessageList), + offsetof(struct RTCMmessageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessageList = { + "RTCMmessageList", + "RTCMmessageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RTCMmessageList_tags_1, + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessageList_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCMmessageList_constr_1, &asn_PER_type_RTCMmessageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RTCMmessageList_1, + 1, /* Single element */ + &asn_SPC_RTCMmessageList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/ReferencePosition.c b/vcits/srem/src/ReferencePosition.c new file mode 100644 index 0000000..e3153ff --- /dev/null +++ b/vcits/srem/src/ReferencePosition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ReferencePosition.h" + +asn_TYPE_member_t asn_MBR_ReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PosConfidenceEllipse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionConfidenceEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* longitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* positionConfidenceEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1 = { + sizeof(struct ReferencePosition), + offsetof(struct ReferencePosition, _asn_ctx), + asn_MAP_ReferencePosition_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReferencePosition = { + "ReferencePosition", + "ReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_ReferencePosition_tags_1, + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_ReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReferencePosition_1, + 4, /* Elements count */ + &asn_SPC_ReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RegionId.c b/vcits/srem/src/RegionId.c new file mode 100644 index 0000000..558b08c --- /dev/null +++ b/vcits/srem/src/RegionId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RegionId.h" + +int +RegionId_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RegionId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RegionId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RegionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RegionId = { + "RegionId", + "RegionId", + &asn_OP_NativeInteger, + asn_DEF_RegionId_tags_1, + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + asn_DEF_RegionId_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + { &asn_OER_type_RegionId_constr_1, &asn_PER_type_RegionId_constr_1, RegionId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/RegionalExtension.c b/vcits/srem/src/RegionalExtension.c new file mode 100644 index 0000000..0d56acc --- /dev/null +++ b/vcits/srem/src/RegionalExtension.c @@ -0,0 +1,4204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RegionalExtension.h" + +static const long asn_VAL_5_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MapData_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_5_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MapData_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MapData_1[] = { + { 1, 2, asn_IOS_Reg_MapData_1_rows } +}; +static const long asn_VAL_1_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_ConnectionManeuverAssist_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_1_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionManeuverAssist_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_ConnectionManeuverAssist_1[] = { + { 1, 2, asn_IOS_Reg_ConnectionManeuverAssist_1_rows } +}; +static const long asn_VAL_2_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_GenericLane_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_2_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionTrajectory_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_GenericLane_1[] = { + { 1, 2, asn_IOS_Reg_GenericLane_1_rows } +}; +static const long asn_VAL_3_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_IntersectionState_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_3_addGrpC }, + { "&Type", aioc__type, &asn_DEF_IntersectionState_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_IntersectionState_1[] = { + { 1, 2, asn_IOS_Reg_IntersectionState_1_rows } +}; +static const long asn_VAL_4_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_LaneAttributes_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_4_addGrpC }, + { "&Type", aioc__type, &asn_DEF_LaneAttributes_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_LaneAttributes_1[] = { + { 1, 2, asn_IOS_Reg_LaneAttributes_1_rows } +}; +static const long asn_VAL_6_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MovementEvent_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_6_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MovementEvent_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MovementEvent_1[] = { + { 1, 2, asn_IOS_Reg_MovementEvent_1_rows } +}; +static const long asn_VAL_7_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_NodeAttributeSetXY_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_7_addGrpC }, + { "&Type", aioc__type, &asn_DEF_NodeAttributeSet_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_NodeAttributeSetXY_1[] = { + { 1, 2, asn_IOS_Reg_NodeAttributeSetXY_1_rows } +}; +static const long asn_VAL_8_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_Position3D_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_8_addGrpC }, + { "&Type", aioc__type, &asn_DEF_Position3D_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_Position3D_1[] = { + { 1, 2, asn_IOS_Reg_Position3D_1_rows } +}; +static const long asn_VAL_9_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RequestorDescription_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_9_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RequestorDescription_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RequestorDescription_1[] = { + { 1, 2, asn_IOS_Reg_RequestorDescription_1_rows } +}; +static const long asn_VAL_10_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RestrictionUserType_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_10_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RestrictionUserType_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RestrictionUserType_1[] = { + { 1, 2, asn_IOS_Reg_RestrictionUserType_1_rows } +}; +static const long asn_VAL_11_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_SignalStatusPackage_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_11_addGrpC }, + { "&Type", aioc__type, &asn_DEF_SignalStatusPackage_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_SignalStatusPackage_1[] = { + { 1, 2, asn_IOS_Reg_SignalStatusPackage_1_rows } +}; +static int +memb_regionId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MapData_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MapData_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MapData, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_ConnectionManeuverAssist_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_ConnectionManeuverAssist_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_ConnectionManeuverAssist, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_GenericLane_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_GenericLane_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_GenericLane, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_IntersectionState_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_IntersectionState_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_IntersectionState, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_LaneAttributes_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_LaneAttributes_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_LaneAttributes, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MovementEvent_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MovementEvent_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MovementEvent, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_NodeAttributeSetXY_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_NodeAttributeSetXY_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_NodeAttributeSetXY, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_Position3D_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_Position3D_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_Position3D, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RequestorDescription_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RequestorDescription_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RequestorDescription, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RestrictionUserType_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RestrictionUserType_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RestrictionUserType, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_SignalStatusPackage_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_SignalStatusPackage_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_SignalStatusPackage, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_regionId_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_11 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_14 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_15 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_17 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_18 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_20 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_21 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_23 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_26 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_27 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_29 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_30 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_30 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_32 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_33 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_35 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_36 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_38 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_39 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_41 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_42 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_42 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_44 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_44 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_45 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_47 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_47 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_48 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_50 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_51 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_53 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_53 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_54 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_54 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_56 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_56 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_57 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_57 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_59 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_60 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_62 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_63 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_63 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_65 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_65 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_66 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_66 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_68 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_68 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_69 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_69 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_71 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_71 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_72 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_74 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_74 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_75 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_75 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_77 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_77 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_78 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_78 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_80 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_80 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_81 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_81 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regExtValue_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData__regExtValue, choice.MapData_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MapData_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MapData-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_3[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MapData-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_3 = { + sizeof(struct Reg_MapData__regExtValue), + offsetof(struct Reg_MapData__regExtValue, _asn_ctx), + offsetof(struct Reg_MapData__regExtValue, present), + sizeof(((struct Reg_MapData__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_3, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_3 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_3, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MapData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_2, &asn_PER_memb_regionId_constr_2, memb_regionId_constraint_1 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_3, + select_Reg_MapData_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_3, &asn_PER_memb_regExtValue_constr_3, memb_regExtValue_constraint_1 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_1 = { + sizeof(struct Reg_MapData), + offsetof(struct Reg_MapData, _asn_ctx), + asn_MAP_Reg_MapData_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MapData = { + "Reg-MapData", + "Reg-MapData", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MapData_tags_1, + sizeof(asn_DEF_Reg_MapData_tags_1) + /sizeof(asn_DEF_Reg_MapData_tags_1[0]), /* 1 */ + asn_DEF_Reg_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_Reg_MapData_tags_1) + /sizeof(asn_DEF_Reg_MapData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MapData_1, + 2, /* Elements count */ + &asn_SPC_Reg_MapData_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_6 = { + sizeof(struct Reg_RTCMcorrections__regExtValue), + offsetof(struct Reg_RTCMcorrections__regExtValue, _asn_ctx), + offsetof(struct Reg_RTCMcorrections__regExtValue, present), + sizeof(((struct Reg_RTCMcorrections__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_6 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_5, &asn_PER_memb_regionId_constr_5, memb_regionId_constraint_4 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_6, + 0, + { &asn_OER_memb_regExtValue_constr_6, &asn_PER_memb_regExtValue_constr_6, memb_regExtValue_constraint_4 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RTCMcorrections_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RTCMcorrections_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_4 = { + sizeof(struct Reg_RTCMcorrections), + offsetof(struct Reg_RTCMcorrections, _asn_ctx), + asn_MAP_Reg_RTCMcorrections_tag2el_4, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections = { + "Reg-RTCMcorrections", + "Reg-RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RTCMcorrections_tags_4, + sizeof(asn_DEF_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + asn_DEF_Reg_RTCMcorrections_tags_4, /* Same as above */ + sizeof(asn_DEF_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RTCMcorrections_4, + 2, /* Elements count */ + &asn_SPC_Reg_RTCMcorrections_specs_4 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_9 = { + sizeof(struct Reg_SPAT__regExtValue), + offsetof(struct Reg_SPAT__regExtValue, _asn_ctx), + offsetof(struct Reg_SPAT__regExtValue, present), + sizeof(((struct Reg_SPAT__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_9 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SPAT_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_8, &asn_PER_memb_regionId_constr_8, memb_regionId_constraint_7 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_9, + 0, + { &asn_OER_memb_regExtValue_constr_9, &asn_PER_memb_regExtValue_constr_9, memb_regExtValue_constraint_7 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SPAT_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SPAT_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_7 = { + sizeof(struct Reg_SPAT), + offsetof(struct Reg_SPAT, _asn_ctx), + asn_MAP_Reg_SPAT_tag2el_7, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SPAT = { + "Reg-SPAT", + "Reg-SPAT", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SPAT_tags_7, + sizeof(asn_DEF_Reg_SPAT_tags_7) + /sizeof(asn_DEF_Reg_SPAT_tags_7[0]), /* 1 */ + asn_DEF_Reg_SPAT_tags_7, /* Same as above */ + sizeof(asn_DEF_Reg_SPAT_tags_7) + /sizeof(asn_DEF_Reg_SPAT_tags_7[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SPAT_7, + 2, /* Elements count */ + &asn_SPC_Reg_SPAT_specs_7 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_12 = { + sizeof(struct Reg_SignalRequestMessage__regExtValue), + offsetof(struct Reg_SignalRequestMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestMessage__regExtValue, present), + sizeof(((struct Reg_SignalRequestMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_12 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_11, &asn_PER_memb_regionId_constr_11, memb_regionId_constraint_10 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_12, + 0, + { &asn_OER_memb_regExtValue_constr_12, &asn_PER_memb_regExtValue_constr_12, memb_regExtValue_constraint_10 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestMessage_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestMessage_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_10 = { + sizeof(struct Reg_SignalRequestMessage), + offsetof(struct Reg_SignalRequestMessage, _asn_ctx), + asn_MAP_Reg_SignalRequestMessage_tag2el_10, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage = { + "Reg-SignalRequestMessage", + "Reg-SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestMessage_tags_10, + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + asn_DEF_Reg_SignalRequestMessage_tags_10, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequestMessage_10, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestMessage_specs_10 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_15 = { + sizeof(struct Reg_SignalStatusMessage__regExtValue), + offsetof(struct Reg_SignalStatusMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusMessage__regExtValue, present), + sizeof(((struct Reg_SignalStatusMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_15 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_14, &asn_PER_memb_regionId_constr_14, memb_regionId_constraint_13 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_15, + 0, + { &asn_OER_memb_regExtValue_constr_15, &asn_PER_memb_regExtValue_constr_15, memb_regExtValue_constraint_13 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusMessage_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusMessage_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_13 = { + sizeof(struct Reg_SignalStatusMessage), + offsetof(struct Reg_SignalStatusMessage, _asn_ctx), + asn_MAP_Reg_SignalStatusMessage_tag2el_13, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage = { + "Reg-SignalStatusMessage", + "Reg-SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusMessage_tags_13, + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + asn_DEF_Reg_SignalStatusMessage_tags_13, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatusMessage_13, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusMessage_specs_13 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_18 = { + sizeof(struct Reg_AdvisorySpeed__regExtValue), + offsetof(struct Reg_AdvisorySpeed__regExtValue, _asn_ctx), + offsetof(struct Reg_AdvisorySpeed__regExtValue, present), + sizeof(((struct Reg_AdvisorySpeed__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_18 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_17, &asn_PER_memb_regionId_constr_17, memb_regionId_constraint_16 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_18, + 0, + { &asn_OER_memb_regExtValue_constr_18, &asn_PER_memb_regExtValue_constr_18, memb_regExtValue_constraint_16 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_AdvisorySpeed_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_AdvisorySpeed_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_16 = { + sizeof(struct Reg_AdvisorySpeed), + offsetof(struct Reg_AdvisorySpeed, _asn_ctx), + asn_MAP_Reg_AdvisorySpeed_tag2el_16, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed = { + "Reg-AdvisorySpeed", + "Reg-AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_Reg_AdvisorySpeed_tags_16, + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + asn_DEF_Reg_AdvisorySpeed_tags_16, /* Same as above */ + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_AdvisorySpeed_16, + 2, /* Elements count */ + &asn_SPC_Reg_AdvisorySpeed_specs_16 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_21 = { + sizeof(struct Reg_ComputedLane__regExtValue), + offsetof(struct Reg_ComputedLane__regExtValue, _asn_ctx), + offsetof(struct Reg_ComputedLane__regExtValue, present), + sizeof(((struct Reg_ComputedLane__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_21 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ComputedLane_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_20, &asn_PER_memb_regionId_constr_20, memb_regionId_constraint_19 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_21, + 0, + { &asn_OER_memb_regExtValue_constr_21, &asn_PER_memb_regExtValue_constr_21, memb_regExtValue_constraint_19 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ComputedLane_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ComputedLane_tag2el_19[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_19 = { + sizeof(struct Reg_ComputedLane), + offsetof(struct Reg_ComputedLane, _asn_ctx), + asn_MAP_Reg_ComputedLane_tag2el_19, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane = { + "Reg-ComputedLane", + "Reg-ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ComputedLane_tags_19, + sizeof(asn_DEF_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_Reg_ComputedLane_tags_19[0]), /* 1 */ + asn_DEF_Reg_ComputedLane_tags_19, /* Same as above */ + sizeof(asn_DEF_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_Reg_ComputedLane_tags_19[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_ComputedLane_19, + 2, /* Elements count */ + &asn_SPC_Reg_ComputedLane_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, choice.ConnectionManeuverAssist_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionManeuverAssist-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionManeuverAssist-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_24 = { + sizeof(struct Reg_ConnectionManeuverAssist__regExtValue), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, _asn_ctx), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, present), + sizeof(((struct Reg_ConnectionManeuverAssist__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_24, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_24 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_24, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_23, &asn_PER_memb_regionId_constr_23, memb_regionId_constraint_22 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_24, + select_Reg_ConnectionManeuverAssist_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_24, &asn_PER_memb_regExtValue_constr_24, memb_regExtValue_constraint_22 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ConnectionManeuverAssist_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ConnectionManeuverAssist_tag2el_22[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_22 = { + sizeof(struct Reg_ConnectionManeuverAssist), + offsetof(struct Reg_ConnectionManeuverAssist, _asn_ctx), + asn_MAP_Reg_ConnectionManeuverAssist_tag2el_22, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist = { + "Reg-ConnectionManeuverAssist", + "Reg-ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ConnectionManeuverAssist_tags_22, + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + asn_DEF_Reg_ConnectionManeuverAssist_tags_22, /* Same as above */ + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_ConnectionManeuverAssist_22, + 2, /* Elements count */ + &asn_SPC_Reg_ConnectionManeuverAssist_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_27[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane__regExtValue, choice.ConnectionTrajectory_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionTrajectory_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionTrajectory-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_27[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionTrajectory-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_27 = { + sizeof(struct Reg_GenericLane__regExtValue), + offsetof(struct Reg_GenericLane__regExtValue, _asn_ctx), + offsetof(struct Reg_GenericLane__regExtValue, present), + sizeof(((struct Reg_GenericLane__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_27, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_27 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_27, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_GenericLane_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_26, &asn_PER_memb_regionId_constr_26, memb_regionId_constraint_25 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_27, + select_Reg_GenericLane_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_27, &asn_PER_memb_regExtValue_constr_27, memb_regExtValue_constraint_25 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_GenericLane_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_GenericLane_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_25 = { + sizeof(struct Reg_GenericLane), + offsetof(struct Reg_GenericLane, _asn_ctx), + asn_MAP_Reg_GenericLane_tag2el_25, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane = { + "Reg-GenericLane", + "Reg-GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_GenericLane_tags_25, + sizeof(asn_DEF_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_Reg_GenericLane_tags_25[0]), /* 1 */ + asn_DEF_Reg_GenericLane_tags_25, /* Same as above */ + sizeof(asn_DEF_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_Reg_GenericLane_tags_25[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_GenericLane_25, + 2, /* Elements count */ + &asn_SPC_Reg_GenericLane_specs_25 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_30 = { + sizeof(struct Reg_IntersectionGeometry__regExtValue), + offsetof(struct Reg_IntersectionGeometry__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionGeometry__regExtValue, present), + sizeof(((struct Reg_IntersectionGeometry__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_30 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_30 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_29, &asn_PER_memb_regionId_constr_29, memb_regionId_constraint_28 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_30, + 0, + { &asn_OER_memb_regExtValue_constr_30, &asn_PER_memb_regExtValue_constr_30, memb_regExtValue_constraint_28 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionGeometry_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionGeometry_tag2el_28[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_28 = { + sizeof(struct Reg_IntersectionGeometry), + offsetof(struct Reg_IntersectionGeometry, _asn_ctx), + asn_MAP_Reg_IntersectionGeometry_tag2el_28, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry = { + "Reg-IntersectionGeometry", + "Reg-IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionGeometry_tags_28, + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + asn_DEF_Reg_IntersectionGeometry_tags_28, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_IntersectionGeometry_28, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionGeometry_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState__regExtValue, choice.IntersectionState_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IntersectionState-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_33[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* IntersectionState-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_33 = { + sizeof(struct Reg_IntersectionState__regExtValue), + offsetof(struct Reg_IntersectionState__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionState__regExtValue, present), + sizeof(((struct Reg_IntersectionState__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_33, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_33 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_33, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionState_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_32, &asn_PER_memb_regionId_constr_32, memb_regionId_constraint_31 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_33, + select_Reg_IntersectionState_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_33, &asn_PER_memb_regExtValue_constr_33, memb_regExtValue_constraint_31 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionState_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionState_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_31 = { + sizeof(struct Reg_IntersectionState), + offsetof(struct Reg_IntersectionState, _asn_ctx), + asn_MAP_Reg_IntersectionState_tag2el_31, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState = { + "Reg-IntersectionState", + "Reg-IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionState_tags_31, + sizeof(asn_DEF_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_Reg_IntersectionState_tags_31[0]), /* 1 */ + asn_DEF_Reg_IntersectionState_tags_31, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_Reg_IntersectionState_tags_31[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_IntersectionState_31, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionState_specs_31 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes__regExtValue, choice.LaneAttributes_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_LaneAttributes_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LaneAttributes-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* LaneAttributes-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_36 = { + sizeof(struct Reg_LaneAttributes__regExtValue), + offsetof(struct Reg_LaneAttributes__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneAttributes__regExtValue, present), + sizeof(((struct Reg_LaneAttributes__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_36, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_36 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_36, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_34[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_35, &asn_PER_memb_regionId_constr_35, memb_regionId_constraint_34 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_36, + select_Reg_LaneAttributes_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_36, &asn_PER_memb_regExtValue_constr_36, memb_regExtValue_constraint_34 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneAttributes_tags_34[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneAttributes_tag2el_34[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_34 = { + sizeof(struct Reg_LaneAttributes), + offsetof(struct Reg_LaneAttributes, _asn_ctx), + asn_MAP_Reg_LaneAttributes_tag2el_34, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes = { + "Reg-LaneAttributes", + "Reg-LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneAttributes_tags_34, + sizeof(asn_DEF_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_34[0]), /* 1 */ + asn_DEF_Reg_LaneAttributes_tags_34, /* Same as above */ + sizeof(asn_DEF_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_34[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_LaneAttributes_34, + 2, /* Elements count */ + &asn_SPC_Reg_LaneAttributes_specs_34 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_39 = { + sizeof(struct Reg_LaneDataAttribute__regExtValue), + offsetof(struct Reg_LaneDataAttribute__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneDataAttribute__regExtValue, present), + sizeof(((struct Reg_LaneDataAttribute__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_39 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_38, &asn_PER_memb_regionId_constr_38, memb_regionId_constraint_37 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_39, + 0, + { &asn_OER_memb_regExtValue_constr_39, &asn_PER_memb_regExtValue_constr_39, memb_regExtValue_constraint_37 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneDataAttribute_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneDataAttribute_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_37 = { + sizeof(struct Reg_LaneDataAttribute), + offsetof(struct Reg_LaneDataAttribute, _asn_ctx), + asn_MAP_Reg_LaneDataAttribute_tag2el_37, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute = { + "Reg-LaneDataAttribute", + "Reg-LaneDataAttribute", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneDataAttribute_tags_37, + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + asn_DEF_Reg_LaneDataAttribute_tags_37, /* Same as above */ + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_LaneDataAttribute_37, + 2, /* Elements count */ + &asn_SPC_Reg_LaneDataAttribute_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_42[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent__regExtValue, choice.MovementEvent_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MovementEvent-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_42[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MovementEvent-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_42 = { + sizeof(struct Reg_MovementEvent__regExtValue), + offsetof(struct Reg_MovementEvent__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementEvent__regExtValue, present), + sizeof(((struct Reg_MovementEvent__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_42, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_42 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_42, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_42 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementEvent_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_41, &asn_PER_memb_regionId_constr_41, memb_regionId_constraint_40 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_42, + select_Reg_MovementEvent_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_42, &asn_PER_memb_regExtValue_constr_42, memb_regExtValue_constraint_40 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementEvent_tags_40[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementEvent_tag2el_40[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_40 = { + sizeof(struct Reg_MovementEvent), + offsetof(struct Reg_MovementEvent, _asn_ctx), + asn_MAP_Reg_MovementEvent_tag2el_40, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent = { + "Reg-MovementEvent", + "Reg-MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementEvent_tags_40, + sizeof(asn_DEF_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_Reg_MovementEvent_tags_40[0]), /* 1 */ + asn_DEF_Reg_MovementEvent_tags_40, /* Same as above */ + sizeof(asn_DEF_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_Reg_MovementEvent_tags_40[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MovementEvent_40, + 2, /* Elements count */ + &asn_SPC_Reg_MovementEvent_specs_40 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_45 = { + sizeof(struct Reg_MovementState__regExtValue), + offsetof(struct Reg_MovementState__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementState__regExtValue, present), + sizeof(((struct Reg_MovementState__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_45 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementState_43[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_44, &asn_PER_memb_regionId_constr_44, memb_regionId_constraint_43 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_45, + 0, + { &asn_OER_memb_regExtValue_constr_45, &asn_PER_memb_regExtValue_constr_45, memb_regExtValue_constraint_43 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementState_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementState_tag2el_43[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_43 = { + sizeof(struct Reg_MovementState), + offsetof(struct Reg_MovementState, _asn_ctx), + asn_MAP_Reg_MovementState_tag2el_43, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementState = { + "Reg-MovementState", + "Reg-MovementState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementState_tags_43, + sizeof(asn_DEF_Reg_MovementState_tags_43) + /sizeof(asn_DEF_Reg_MovementState_tags_43[0]), /* 1 */ + asn_DEF_Reg_MovementState_tags_43, /* Same as above */ + sizeof(asn_DEF_Reg_MovementState_tags_43) + /sizeof(asn_DEF_Reg_MovementState_tags_43[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MovementState_43, + 2, /* Elements count */ + &asn_SPC_Reg_MovementState_specs_43 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY__regExtValue, choice.NodeAttributeSet_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeAttributeSet_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NodeAttributeSet-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NodeAttributeSet-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_48 = { + sizeof(struct Reg_NodeAttributeSetXY__regExtValue), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, present), + sizeof(((struct Reg_NodeAttributeSetXY__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_48, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_48 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_48, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_46[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_47, &asn_PER_memb_regionId_constr_47, memb_regionId_constraint_46 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_48, + select_Reg_NodeAttributeSetXY_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_48, &asn_PER_memb_regExtValue_constr_48, memb_regExtValue_constraint_46 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeAttributeSetXY_tags_46[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeAttributeSetXY_tag2el_46[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_46 = { + sizeof(struct Reg_NodeAttributeSetXY), + offsetof(struct Reg_NodeAttributeSetXY, _asn_ctx), + asn_MAP_Reg_NodeAttributeSetXY_tag2el_46, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY = { + "Reg-NodeAttributeSetXY", + "Reg-NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeAttributeSetXY_tags_46, + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + asn_DEF_Reg_NodeAttributeSetXY_tags_46, /* Same as above */ + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_NodeAttributeSetXY_46, + 2, /* Elements count */ + &asn_SPC_Reg_NodeAttributeSetXY_specs_46 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_51 = { + sizeof(struct Reg_NodeOffsetPointXY__regExtValue), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, present), + sizeof(((struct Reg_NodeOffsetPointXY__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_51 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_50, &asn_PER_memb_regionId_constr_50, memb_regionId_constraint_49 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_51, + 0, + { &asn_OER_memb_regExtValue_constr_51, &asn_PER_memb_regExtValue_constr_51, memb_regExtValue_constraint_49 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeOffsetPointXY_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeOffsetPointXY_tag2el_49[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_49 = { + sizeof(struct Reg_NodeOffsetPointXY), + offsetof(struct Reg_NodeOffsetPointXY, _asn_ctx), + asn_MAP_Reg_NodeOffsetPointXY_tag2el_49, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY = { + "Reg-NodeOffsetPointXY", + "Reg-NodeOffsetPointXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeOffsetPointXY_tags_49, + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + asn_DEF_Reg_NodeOffsetPointXY_tags_49, /* Same as above */ + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_NodeOffsetPointXY_49, + 2, /* Elements count */ + &asn_SPC_Reg_NodeOffsetPointXY_specs_49 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_54[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D__regExtValue, choice.Position3D_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Position3D_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Position3D-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_54[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Position3D-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_54 = { + sizeof(struct Reg_Position3D__regExtValue), + offsetof(struct Reg_Position3D__regExtValue, _asn_ctx), + offsetof(struct Reg_Position3D__regExtValue, present), + sizeof(((struct Reg_Position3D__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_54, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_54 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_54, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_54 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_Position3D_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_53, &asn_PER_memb_regionId_constr_53, memb_regionId_constraint_52 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_54, + select_Reg_Position3D_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_54, &asn_PER_memb_regExtValue_constr_54, memb_regExtValue_constraint_52 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_Position3D_tags_52[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_Position3D_tag2el_52[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_52 = { + sizeof(struct Reg_Position3D), + offsetof(struct Reg_Position3D, _asn_ctx), + asn_MAP_Reg_Position3D_tag2el_52, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_Position3D = { + "Reg-Position3D", + "Reg-Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Reg_Position3D_tags_52, + sizeof(asn_DEF_Reg_Position3D_tags_52) + /sizeof(asn_DEF_Reg_Position3D_tags_52[0]), /* 1 */ + asn_DEF_Reg_Position3D_tags_52, /* Same as above */ + sizeof(asn_DEF_Reg_Position3D_tags_52) + /sizeof(asn_DEF_Reg_Position3D_tags_52[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_Position3D_52, + 2, /* Elements count */ + &asn_SPC_Reg_Position3D_specs_52 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription__regExtValue, choice.RequestorDescription_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RequestorDescription_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RequestorDescription-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_57[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RequestorDescription-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_57 = { + sizeof(struct Reg_RequestorDescription__regExtValue), + offsetof(struct Reg_RequestorDescription__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorDescription__regExtValue, present), + sizeof(((struct Reg_RequestorDescription__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_57, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_57 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_57, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_55[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_56, &asn_PER_memb_regionId_constr_56, memb_regionId_constraint_55 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_57, + select_Reg_RequestorDescription_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_57, &asn_PER_memb_regExtValue_constr_57, memb_regExtValue_constraint_55 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorDescription_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorDescription_tag2el_55[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_55 = { + sizeof(struct Reg_RequestorDescription), + offsetof(struct Reg_RequestorDescription, _asn_ctx), + asn_MAP_Reg_RequestorDescription_tag2el_55, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription = { + "Reg-RequestorDescription", + "Reg-RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorDescription_tags_55, + sizeof(asn_DEF_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_55[0]), /* 1 */ + asn_DEF_Reg_RequestorDescription_tags_55, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_55[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RequestorDescription_55, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorDescription_specs_55 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_60 = { + sizeof(struct Reg_RequestorType__regExtValue), + offsetof(struct Reg_RequestorType__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorType__regExtValue, present), + sizeof(((struct Reg_RequestorType__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_60 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorType_58[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_59, &asn_PER_memb_regionId_constr_59, memb_regionId_constraint_58 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_60, + 0, + { &asn_OER_memb_regExtValue_constr_60, &asn_PER_memb_regExtValue_constr_60, memb_regExtValue_constraint_58 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorType_tags_58[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorType_tag2el_58[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_58 = { + sizeof(struct Reg_RequestorType), + offsetof(struct Reg_RequestorType, _asn_ctx), + asn_MAP_Reg_RequestorType_tag2el_58, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType = { + "Reg-RequestorType", + "Reg-RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorType_tags_58, + sizeof(asn_DEF_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_Reg_RequestorType_tags_58[0]), /* 1 */ + asn_DEF_Reg_RequestorType_tags_58, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_Reg_RequestorType_tags_58[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RequestorType_58, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorType_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_63[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType__regExtValue, choice.RestrictionUserType_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionUserType_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RestrictionUserType-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_63[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RestrictionUserType-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_63 = { + sizeof(struct Reg_RestrictionUserType__regExtValue), + offsetof(struct Reg_RestrictionUserType__regExtValue, _asn_ctx), + offsetof(struct Reg_RestrictionUserType__regExtValue, present), + sizeof(((struct Reg_RestrictionUserType__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_63, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_63 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_63, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_62, &asn_PER_memb_regionId_constr_62, memb_regionId_constraint_61 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_63, + select_Reg_RestrictionUserType_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_63, &asn_PER_memb_regExtValue_constr_63, memb_regExtValue_constraint_61 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RestrictionUserType_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RestrictionUserType_tag2el_61[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_61 = { + sizeof(struct Reg_RestrictionUserType), + offsetof(struct Reg_RestrictionUserType, _asn_ctx), + asn_MAP_Reg_RestrictionUserType_tag2el_61, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType = { + "Reg-RestrictionUserType", + "Reg-RestrictionUserType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RestrictionUserType_tags_61, + sizeof(asn_DEF_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + asn_DEF_Reg_RestrictionUserType_tags_61, /* Same as above */ + sizeof(asn_DEF_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RestrictionUserType_61, + 2, /* Elements count */ + &asn_SPC_Reg_RestrictionUserType_specs_61 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_66 = { + sizeof(struct Reg_RoadSegment__regExtValue), + offsetof(struct Reg_RoadSegment__regExtValue, _asn_ctx), + offsetof(struct Reg_RoadSegment__regExtValue, present), + sizeof(((struct Reg_RoadSegment__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_66 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_66 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RoadSegment_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_65, &asn_PER_memb_regionId_constr_65, memb_regionId_constraint_64 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_66, + 0, + { &asn_OER_memb_regExtValue_constr_66, &asn_PER_memb_regExtValue_constr_66, memb_regExtValue_constraint_64 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RoadSegment_tags_64[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RoadSegment_tag2el_64[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_64 = { + sizeof(struct Reg_RoadSegment), + offsetof(struct Reg_RoadSegment, _asn_ctx), + asn_MAP_Reg_RoadSegment_tag2el_64, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment = { + "Reg-RoadSegment", + "Reg-RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RoadSegment_tags_64, + sizeof(asn_DEF_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_Reg_RoadSegment_tags_64[0]), /* 1 */ + asn_DEF_Reg_RoadSegment_tags_64, /* Same as above */ + sizeof(asn_DEF_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_Reg_RoadSegment_tags_64[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RoadSegment_64, + 2, /* Elements count */ + &asn_SPC_Reg_RoadSegment_specs_64 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_69 = { + sizeof(struct Reg_SignalControlZone__regExtValue), + offsetof(struct Reg_SignalControlZone__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalControlZone__regExtValue, present), + sizeof(((struct Reg_SignalControlZone__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_69 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_67[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_68, &asn_PER_memb_regionId_constr_68, memb_regionId_constraint_67 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_69, + 0, + { &asn_OER_memb_regExtValue_constr_69, &asn_PER_memb_regExtValue_constr_69, memb_regExtValue_constraint_67 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalControlZone_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalControlZone_tag2el_67[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_67 = { + sizeof(struct Reg_SignalControlZone), + offsetof(struct Reg_SignalControlZone, _asn_ctx), + asn_MAP_Reg_SignalControlZone_tag2el_67, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone = { + "Reg-SignalControlZone", + "Reg-SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalControlZone_tags_67, + sizeof(asn_DEF_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_67[0]), /* 1 */ + asn_DEF_Reg_SignalControlZone_tags_67, /* Same as above */ + sizeof(asn_DEF_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_67[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalControlZone_67, + 2, /* Elements count */ + &asn_SPC_Reg_SignalControlZone_specs_67 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_72 = { + sizeof(struct Reg_SignalRequest__regExtValue), + offsetof(struct Reg_SignalRequest__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequest__regExtValue, present), + sizeof(((struct Reg_SignalRequest__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_72 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequest_70[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_71, &asn_PER_memb_regionId_constr_71, memb_regionId_constraint_70 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_72, + 0, + { &asn_OER_memb_regExtValue_constr_72, &asn_PER_memb_regExtValue_constr_72, memb_regExtValue_constraint_70 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequest_tags_70[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequest_tag2el_70[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_70 = { + sizeof(struct Reg_SignalRequest), + offsetof(struct Reg_SignalRequest, _asn_ctx), + asn_MAP_Reg_SignalRequest_tag2el_70, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest = { + "Reg-SignalRequest", + "Reg-SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequest_tags_70, + sizeof(asn_DEF_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_Reg_SignalRequest_tags_70[0]), /* 1 */ + asn_DEF_Reg_SignalRequest_tags_70, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_Reg_SignalRequest_tags_70[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequest_70, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequest_specs_70 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_75 = { + sizeof(struct Reg_SignalRequestPackage__regExtValue), + offsetof(struct Reg_SignalRequestPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestPackage__regExtValue, present), + sizeof(((struct Reg_SignalRequestPackage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_75 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_74, &asn_PER_memb_regionId_constr_74, memb_regionId_constraint_73 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_75, + 0, + { &asn_OER_memb_regExtValue_constr_75, &asn_PER_memb_regExtValue_constr_75, memb_regExtValue_constraint_73 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestPackage_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestPackage_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_73 = { + sizeof(struct Reg_SignalRequestPackage), + offsetof(struct Reg_SignalRequestPackage, _asn_ctx), + asn_MAP_Reg_SignalRequestPackage_tag2el_73, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage = { + "Reg-SignalRequestPackage", + "Reg-SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestPackage_tags_73, + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + asn_DEF_Reg_SignalRequestPackage_tags_73, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequestPackage_73, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestPackage_specs_73 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_78 = { + sizeof(struct Reg_SignalStatus__regExtValue), + offsetof(struct Reg_SignalStatus__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatus__regExtValue, present), + sizeof(((struct Reg_SignalStatus__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_78 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_78 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatus_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_77, &asn_PER_memb_regionId_constr_77, memb_regionId_constraint_76 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_78, + 0, + { &asn_OER_memb_regExtValue_constr_78, &asn_PER_memb_regExtValue_constr_78, memb_regExtValue_constraint_76 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatus_tags_76[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatus_tag2el_76[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_76 = { + sizeof(struct Reg_SignalStatus), + offsetof(struct Reg_SignalStatus, _asn_ctx), + asn_MAP_Reg_SignalStatus_tag2el_76, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus = { + "Reg-SignalStatus", + "Reg-SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatus_tags_76, + sizeof(asn_DEF_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_Reg_SignalStatus_tags_76[0]), /* 1 */ + asn_DEF_Reg_SignalStatus_tags_76, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_Reg_SignalStatus_tags_76[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatus_76, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatus_specs_76 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage__regExtValue, choice.SignalStatusPackage_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SignalStatusPackage-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_81[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SignalStatusPackage-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_81 = { + sizeof(struct Reg_SignalStatusPackage__regExtValue), + offsetof(struct Reg_SignalStatusPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusPackage__regExtValue, present), + sizeof(((struct Reg_SignalStatusPackage__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_81, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_81 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_81, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_79[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_80, &asn_PER_memb_regionId_constr_80, memb_regionId_constraint_79 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_81, + select_Reg_SignalStatusPackage_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_81, &asn_PER_memb_regExtValue_constr_81, memb_regExtValue_constraint_79 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusPackage_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusPackage_tag2el_79[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_79 = { + sizeof(struct Reg_SignalStatusPackage), + offsetof(struct Reg_SignalStatusPackage, _asn_ctx), + asn_MAP_Reg_SignalStatusPackage_tag2el_79, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage = { + "Reg-SignalStatusPackage", + "Reg-SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusPackage_tags_79, + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + asn_DEF_Reg_SignalStatusPackage_tags_79, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatusPackage_79, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusPackage_specs_79 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RegulatorySpeedLimit.c b/vcits/srem/src/RegulatorySpeedLimit.c new file mode 100644 index 0000000..1aeda77 --- /dev/null +++ b/vcits/srem/src/RegulatorySpeedLimit.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RegulatorySpeedLimit.h" + +asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_RegulatorySpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RegulatorySpeedLimit_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1 = { + sizeof(struct RegulatorySpeedLimit), + offsetof(struct RegulatorySpeedLimit, _asn_ctx), + asn_MAP_RegulatorySpeedLimit_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit = { + "RegulatorySpeedLimit", + "RegulatorySpeedLimit", + &asn_OP_SEQUENCE, + asn_DEF_RegulatorySpeedLimit_tags_1, + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_RegulatorySpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RegulatorySpeedLimit_1, + 2, /* Elements count */ + &asn_SPC_RegulatorySpeedLimit_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RejectedReason.c b/vcits/srem/src/RejectedReason.c new file mode 100644 index 0000000..90f5dd7 --- /dev/null +++ b/vcits/srem/src/RejectedReason.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RejectedReason.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RejectedReason_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RejectedReason_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RejectedReason_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "exceptionalCondition" }, + { 2, 22, "maxWaitingTimeExceeded" }, + { 3, 18, "ptPriorityDisabled" }, + { 4, 23, "higherPTPriorityGranted" }, + { 5, 22, "vehicleTrackingUnknown" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RejectedReason_enum2value_1[] = { + 1, /* exceptionalCondition(1) */ + 4, /* higherPTPriorityGranted(4) */ + 2, /* maxWaitingTimeExceeded(2) */ + 3, /* ptPriorityDisabled(3) */ + 0, /* unknown(0) */ + 5 /* vehicleTrackingUnknown(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RejectedReason_specs_1 = { + asn_MAP_RejectedReason_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RejectedReason_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RejectedReason_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RejectedReason = { + "RejectedReason", + "RejectedReason", + &asn_OP_NativeEnumerated, + asn_DEF_RejectedReason_tags_1, + sizeof(asn_DEF_RejectedReason_tags_1) + /sizeof(asn_DEF_RejectedReason_tags_1[0]), /* 1 */ + asn_DEF_RejectedReason_tags_1, /* Same as above */ + sizeof(asn_DEF_RejectedReason_tags_1) + /sizeof(asn_DEF_RejectedReason_tags_1[0]), /* 1 */ + { &asn_OER_type_RejectedReason_constr_1, &asn_PER_type_RejectedReason_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RejectedReason_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RelevanceDistance.c b/vcits/srem/src/RelevanceDistance.c new file mode 100644 index 0000000..818912a --- /dev/null +++ b/vcits/srem/src/RelevanceDistance.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RelevanceDistance.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceDistance_value2enum_1[] = { + { 0, 11, "lessThan50m" }, + { 1, 12, "lessThan100m" }, + { 2, 12, "lessThan200m" }, + { 3, 12, "lessThan500m" }, + { 4, 13, "lessThan1000m" }, + { 5, 11, "lessThan5km" }, + { 6, 12, "lessThan10km" }, + { 7, 8, "over10km" } +}; +static const unsigned int asn_MAP_RelevanceDistance_enum2value_1[] = { + 4, /* lessThan1000m(4) */ + 1, /* lessThan100m(1) */ + 6, /* lessThan10km(6) */ + 2, /* lessThan200m(2) */ + 3, /* lessThan500m(3) */ + 0, /* lessThan50m(0) */ + 5, /* lessThan5km(5) */ + 7 /* over10km(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceDistance_specs_1 = { + asn_MAP_RelevanceDistance_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceDistance_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceDistance = { + "RelevanceDistance", + "RelevanceDistance", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceDistance_tags_1, + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + asn_DEF_RelevanceDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceDistance_constr_1, &asn_PER_type_RelevanceDistance_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceDistance_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RelevanceTrafficDirection.c b/vcits/srem/src/RelevanceTrafficDirection.c new file mode 100644 index 0000000..346df45 --- /dev/null +++ b/vcits/srem/src/RelevanceTrafficDirection.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RelevanceTrafficDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceTrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 15, "upstreamTraffic" }, + { 2, 17, "downstreamTraffic" }, + { 3, 15, "oppositeTraffic" } +}; +static const unsigned int asn_MAP_RelevanceTrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 2, /* downstreamTraffic(2) */ + 3, /* oppositeTraffic(3) */ + 1 /* upstreamTraffic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceTrafficDirection_specs_1 = { + asn_MAP_RelevanceTrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceTrafficDirection_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceTrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection = { + "RelevanceTrafficDirection", + "RelevanceTrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceTrafficDirection_tags_1, + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_RelevanceTrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceTrafficDirection_constr_1, &asn_PER_type_RelevanceTrafficDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceTrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RequestID.c b/vcits/srem/src/RequestID.c new file mode 100644 index 0000000..4462cea --- /dev/null +++ b/vcits/srem/src/RequestID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RequestID.h" + +int +RequestID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RequestID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RequestID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestID = { + "RequestID", + "RequestID", + &asn_OP_NativeInteger, + asn_DEF_RequestID_tags_1, + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + asn_DEF_RequestID_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestID_constr_1, &asn_PER_type_RequestID_constr_1, RequestID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/RequestImportanceLevel.c b/vcits/srem/src/RequestImportanceLevel.c new file mode 100644 index 0000000..b38a548 --- /dev/null +++ b/vcits/srem/src/RequestImportanceLevel.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RequestImportanceLevel.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestImportanceLevel_value2enum_1[] = { + { 0, 29, "requestImportanceLevelUnKnown" }, + { 1, 23, "requestImportanceLevel1" }, + { 2, 23, "requestImportanceLevel2" }, + { 3, 23, "requestImportanceLevel3" }, + { 4, 23, "requestImportanceLevel4" }, + { 5, 23, "requestImportanceLevel5" }, + { 6, 23, "requestImportanceLevel6" }, + { 7, 23, "requestImportanceLevel7" }, + { 8, 23, "requestImportanceLevel8" }, + { 9, 23, "requestImportanceLevel9" }, + { 10, 24, "requestImportanceLevel10" }, + { 11, 24, "requestImportanceLevel11" }, + { 12, 24, "requestImportanceLevel12" }, + { 13, 24, "requestImportanceLevel13" }, + { 14, 24, "requestImportanceLevel14" }, + { 15, 25, "requestImportanceReserved" } +}; +static const unsigned int asn_MAP_RequestImportanceLevel_enum2value_1[] = { + 1, /* requestImportanceLevel1(1) */ + 10, /* requestImportanceLevel10(10) */ + 11, /* requestImportanceLevel11(11) */ + 12, /* requestImportanceLevel12(12) */ + 13, /* requestImportanceLevel13(13) */ + 14, /* requestImportanceLevel14(14) */ + 2, /* requestImportanceLevel2(2) */ + 3, /* requestImportanceLevel3(3) */ + 4, /* requestImportanceLevel4(4) */ + 5, /* requestImportanceLevel5(5) */ + 6, /* requestImportanceLevel6(6) */ + 7, /* requestImportanceLevel7(7) */ + 8, /* requestImportanceLevel8(8) */ + 9, /* requestImportanceLevel9(9) */ + 0, /* requestImportanceLevelUnKnown(0) */ + 15 /* requestImportanceReserved(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1 = { + asn_MAP_RequestImportanceLevel_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestImportanceLevel_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestImportanceLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel = { + "RequestImportanceLevel", + "RequestImportanceLevel", + &asn_OP_NativeEnumerated, + asn_DEF_RequestImportanceLevel_tags_1, + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + asn_DEF_RequestImportanceLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestImportanceLevel_constr_1, &asn_PER_type_RequestImportanceLevel_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestImportanceLevel_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RequestResponseIndication.c b/vcits/srem/src/RequestResponseIndication.c new file mode 100644 index 0000000..6a4f592 --- /dev/null +++ b/vcits/srem/src/RequestResponseIndication.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RequestResponseIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestResponseIndication_value2enum_1[] = { + { 0, 7, "request" }, + { 1, 8, "response" } +}; +static const unsigned int asn_MAP_RequestResponseIndication_enum2value_1[] = { + 0, /* request(0) */ + 1 /* response(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RequestResponseIndication_specs_1 = { + asn_MAP_RequestResponseIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestResponseIndication_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestResponseIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication = { + "RequestResponseIndication", + "RequestResponseIndication", + &asn_OP_NativeEnumerated, + asn_DEF_RequestResponseIndication_tags_1, + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + asn_DEF_RequestResponseIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestResponseIndication_constr_1, &asn_PER_type_RequestResponseIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestResponseIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RequestSubRole.c b/vcits/srem/src/RequestSubRole.c new file mode 100644 index 0000000..272aa35 --- /dev/null +++ b/vcits/srem/src/RequestSubRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RequestSubRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestSubRole_value2enum_1[] = { + { 0, 21, "requestSubRoleUnKnown" }, + { 1, 15, "requestSubRole1" }, + { 2, 15, "requestSubRole2" }, + { 3, 15, "requestSubRole3" }, + { 4, 15, "requestSubRole4" }, + { 5, 15, "requestSubRole5" }, + { 6, 15, "requestSubRole6" }, + { 7, 15, "requestSubRole7" }, + { 8, 15, "requestSubRole8" }, + { 9, 15, "requestSubRole9" }, + { 10, 16, "requestSubRole10" }, + { 11, 16, "requestSubRole11" }, + { 12, 16, "requestSubRole12" }, + { 13, 16, "requestSubRole13" }, + { 14, 16, "requestSubRole14" }, + { 15, 22, "requestSubRoleReserved" } +}; +static const unsigned int asn_MAP_RequestSubRole_enum2value_1[] = { + 1, /* requestSubRole1(1) */ + 10, /* requestSubRole10(10) */ + 11, /* requestSubRole11(11) */ + 12, /* requestSubRole12(12) */ + 13, /* requestSubRole13(13) */ + 14, /* requestSubRole14(14) */ + 2, /* requestSubRole2(2) */ + 3, /* requestSubRole3(3) */ + 4, /* requestSubRole4(4) */ + 5, /* requestSubRole5(5) */ + 6, /* requestSubRole6(6) */ + 7, /* requestSubRole7(7) */ + 8, /* requestSubRole8(8) */ + 9, /* requestSubRole9(9) */ + 15, /* requestSubRoleReserved(15) */ + 0 /* requestSubRoleUnKnown(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1 = { + asn_MAP_RequestSubRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestSubRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestSubRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestSubRole = { + "RequestSubRole", + "RequestSubRole", + &asn_OP_NativeEnumerated, + asn_DEF_RequestSubRole_tags_1, + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + asn_DEF_RequestSubRole_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestSubRole_constr_1, &asn_PER_type_RequestSubRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestSubRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RequestorDescription-addGrpC.c b/vcits/srem/src/RequestorDescription-addGrpC.c new file mode 100644 index 0000000..33837ff --- /dev/null +++ b/vcits/srem/src/RequestorDescription-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RequestorDescription-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RequestorDescription_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct RequestorDescription_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fuel" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription_addGrpC, batteryStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BatteryStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "batteryStatus" + }, +}; +static const int asn_MAP_RequestorDescription_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fuel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* batteryStatus */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_addGrpC_specs_1 = { + sizeof(struct RequestorDescription_addGrpC), + offsetof(struct RequestorDescription_addGrpC, _asn_ctx), + asn_MAP_RequestorDescription_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RequestorDescription_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription_addGrpC = { + "RequestorDescription-addGrpC", + "RequestorDescription-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_addGrpC_tags_1, + sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorDescription_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_RequestorDescription_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RequestorDescription.c b/vcits/srem/src/RequestorDescription.c new file mode 100644 index 0000000..7895aaf --- /dev/null +++ b/vcits/srem/src/RequestorDescription.c @@ -0,0 +1,214 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RequestorDescription.h" + +#include "RequestorType.h" +#include "RequestorPositionVector.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RequestorDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct RequestorDescription__regional), + offsetof(struct RequestorDescription__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RequestorDescription_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorDescription, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 8, offsetof(struct RequestorDescription, type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 7, offsetof(struct RequestorDescription, position), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorPositionVector, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 6, offsetof(struct RequestorDescription, name), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 5, offsetof(struct RequestorDescription, routeName), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "routeName" + }, + { ATF_POINTER, 4, offsetof(struct RequestorDescription, transitStatus), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitStatus" + }, + { ATF_POINTER, 3, offsetof(struct RequestorDescription, transitOccupancy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleOccupancy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitOccupancy" + }, + { ATF_POINTER, 2, offsetof(struct RequestorDescription, transitSchedule), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitSchedule" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorDescription_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* routeName */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* transitStatus */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* transitOccupancy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* transitSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1 = { + sizeof(struct RequestorDescription), + offsetof(struct RequestorDescription, _asn_ctx), + asn_MAP_RequestorDescription_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_RequestorDescription_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription = { + "RequestorDescription", + "RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_tags_1, + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorDescription_1, + 9, /* Elements count */ + &asn_SPC_RequestorDescription_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RequestorPositionVector.c b/vcits/srem/src/RequestorPositionVector.c new file mode 100644 index 0000000..b565311 --- /dev/null +++ b/vcits/srem/src/RequestorPositionVector.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RequestorPositionVector.h" + +#include "TransmissionAndSpeed.h" +asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorPositionVector, position), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 2, offsetof(struct RequestorPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 1, offsetof(struct RequestorPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const int asn_MAP_RequestorPositionVector_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_RequestorPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1 = { + sizeof(struct RequestorPositionVector), + offsetof(struct RequestorPositionVector, _asn_ctx), + asn_MAP_RequestorPositionVector_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RequestorPositionVector_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector = { + "RequestorPositionVector", + "RequestorPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_RequestorPositionVector_tags_1, + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + asn_DEF_RequestorPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorPositionVector_1, + 3, /* Elements count */ + &asn_SPC_RequestorPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RequestorType.c b/vcits/srem/src/RequestorType.c new file mode 100644 index 0000000..16a2b93 --- /dev/null +++ b/vcits/srem/src/RequestorType.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RequestorType.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_RequestorType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorType, role), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 5, offsetof(struct RequestorType, subrole), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestSubRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subrole" + }, + { ATF_POINTER, 4, offsetof(struct RequestorType, request), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestImportanceLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 3, offsetof(struct RequestorType, iso3883), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Iso3833VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iso3883" + }, + { ATF_POINTER, 2, offsetof(struct RequestorType, hpmsType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hpmsType" + }, + { ATF_POINTER, 1, offsetof(struct RequestorType, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorType_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_RequestorType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subrole */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* iso3883 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* hpmsType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1 = { + sizeof(struct RequestorType), + offsetof(struct RequestorType, _asn_ctx), + asn_MAP_RequestorType_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_RequestorType_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorType = { + "RequestorType", + "RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_RequestorType_tags_1, + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + asn_DEF_RequestorType_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorType_1, + 6, /* Elements count */ + &asn_SPC_RequestorType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c b/vcits/srem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c new file mode 100644 index 0000000..0102322 --- /dev/null +++ b/vcits/srem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RescueAndRecoveryWorkInProgressSubCauseCode.h" + +int +RescueAndRecoveryWorkInProgressSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode = { + "RescueAndRecoveryWorkInProgressSubCauseCode", + "RescueAndRecoveryWorkInProgressSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, &asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, RescueAndRecoveryWorkInProgressSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/RestrictedTypes.c b/vcits/srem/src/RestrictedTypes.c new file mode 100644 index 0000000..97b5d9c --- /dev/null +++ b/vcits/srem/src/RestrictedTypes.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RestrictedTypes.h" + +static asn_oer_constraints_t asn_OER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RestrictedTypes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictedTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_RestrictedTypes_specs_1 = { + sizeof(struct RestrictedTypes), + offsetof(struct RestrictedTypes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictedTypes = { + "RestrictedTypes", + "RestrictedTypes", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictedTypes_tags_1, + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + asn_DEF_RestrictedTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictedTypes_constr_1, &asn_PER_type_RestrictedTypes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictedTypes_1, + 1, /* Single element */ + &asn_SPC_RestrictedTypes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RestrictionAppliesTo.c b/vcits/srem/src/RestrictionAppliesTo.c new file mode 100644 index 0000000..f2521d8 --- /dev/null +++ b/vcits/srem/src/RestrictionAppliesTo.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RestrictionAppliesTo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RestrictionAppliesTo_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 15, "equippedTransit" }, + { 2, 13, "equippedTaxis" }, + { 3, 13, "equippedOther" }, + { 4, 17, "emissionCompliant" }, + { 5, 15, "equippedBicycle" }, + { 6, 15, "weightCompliant" }, + { 7, 15, "heightCompliant" }, + { 8, 11, "pedestrians" }, + { 9, 17, "slowMovingPersons" }, + { 10, 15, "wheelchairUsers" }, + { 11, 18, "visualDisabilities" }, + { 12, 17, "audioDisabilities" }, + { 13, 24, "otherUnknownDisabilities" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RestrictionAppliesTo_enum2value_1[] = { + 12, /* audioDisabilities(12) */ + 4, /* emissionCompliant(4) */ + 5, /* equippedBicycle(5) */ + 3, /* equippedOther(3) */ + 2, /* equippedTaxis(2) */ + 1, /* equippedTransit(1) */ + 7, /* heightCompliant(7) */ + 0, /* none(0) */ + 13, /* otherUnknownDisabilities(13) */ + 8, /* pedestrians(8) */ + 9, /* slowMovingPersons(9) */ + 11, /* visualDisabilities(11) */ + 6, /* weightCompliant(6) */ + 10 /* wheelchairUsers(10) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1 = { + asn_MAP_RestrictionAppliesTo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RestrictionAppliesTo_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RestrictionAppliesTo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo = { + "RestrictionAppliesTo", + "RestrictionAppliesTo", + &asn_OP_NativeEnumerated, + asn_DEF_RestrictionAppliesTo_tags_1, + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + asn_DEF_RestrictionAppliesTo_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionAppliesTo_constr_1, &asn_PER_type_RestrictionAppliesTo_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RestrictionAppliesTo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RestrictionClassAssignment.c b/vcits/srem/src/RestrictionClassAssignment.c new file mode 100644 index 0000000..8805d30 --- /dev/null +++ b/vcits/srem/src/RestrictionClassAssignment.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RestrictionClassAssignment.h" + +asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, users), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionUserTypeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "users" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassAssignment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionClassAssignment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* users */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1 = { + sizeof(struct RestrictionClassAssignment), + offsetof(struct RestrictionClassAssignment, _asn_ctx), + asn_MAP_RestrictionClassAssignment_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment = { + "RestrictionClassAssignment", + "RestrictionClassAssignment", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionClassAssignment_tags_1, + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassAssignment_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RestrictionClassAssignment_1, + 2, /* Elements count */ + &asn_SPC_RestrictionClassAssignment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RestrictionClassID.c b/vcits/srem/src/RestrictionClassID.c new file mode 100644 index 0000000..ca5419b --- /dev/null +++ b/vcits/srem/src/RestrictionClassID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RestrictionClassID.h" + +int +RestrictionClassID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassID = { + "RestrictionClassID", + "RestrictionClassID", + &asn_OP_NativeInteger, + asn_DEF_RestrictionClassID_tags_1, + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassID_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionClassID_constr_1, &asn_PER_type_RestrictionClassID_constr_1, RestrictionClassID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/RestrictionClassList.c b/vcits/srem/src/RestrictionClassList.c new file mode 100644 index 0000000..4f3f613 --- /dev/null +++ b/vcits/srem/src/RestrictionClassList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RestrictionClassList.h" + +#include "RestrictionClassAssignment.h" +static asn_oer_constraints_t asn_OER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..254)) */}; +asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 254 } /* (SIZE(1..254)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictionClassList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionClassAssignment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1 = { + sizeof(struct RestrictionClassList), + offsetof(struct RestrictionClassList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassList = { + "RestrictionClassList", + "RestrictionClassList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionClassList_tags_1, + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionClassList_constr_1, &asn_PER_type_RestrictionClassList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictionClassList_1, + 1, /* Single element */ + &asn_SPC_RestrictionClassList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RestrictionUserType-addGrpC.c b/vcits/srem/src/RestrictionUserType-addGrpC.c new file mode 100644 index 0000000..3220f74 --- /dev/null +++ b/vcits/srem/src/RestrictionUserType-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RestrictionUserType-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct RestrictionUserType_addGrpC, emission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmissionType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emission" + }, + { ATF_POINTER, 1, offsetof(struct RestrictionUserType_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fuel" + }, +}; +static const int asn_MAP_RestrictionUserType_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RestrictionUserType_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* emission */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fuel */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1 = { + sizeof(struct RestrictionUserType_addGrpC), + offsetof(struct RestrictionUserType_addGrpC, _asn_ctx), + asn_MAP_RestrictionUserType_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RestrictionUserType_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC = { + "RestrictionUserType-addGrpC", + "RestrictionUserType-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionUserType_addGrpC_tags_1, + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserType_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RestrictionUserType_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RestrictionUserType.c b/vcits/srem/src/RestrictionUserType.c new file mode 100644 index 0000000..144143a --- /dev/null +++ b/vcits/srem/src/RestrictionUserType.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RestrictionUserType.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RestrictionUserType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_3 = { + sizeof(struct RestrictionUserType__regional), + offsetof(struct RestrictionUserType__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_3 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_3, + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]) - 1, /* 1 */ + asn_DEF_regional_tags_3, /* Same as above */ + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]), /* 2 */ + { &asn_OER_type_regional_constr_3, &asn_PER_type_regional_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_regional_3, + 1, /* Single element */ + &asn_SPC_regional_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RestrictionUserType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.basicType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionAppliesTo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "basicType" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_regional_3, + 0, + { &asn_OER_memb_regional_constr_3, &asn_PER_memb_regional_constr_3, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1 = { + sizeof(struct RestrictionUserType), + offsetof(struct RestrictionUserType, _asn_ctx), + offsetof(struct RestrictionUserType, present), + sizeof(((struct RestrictionUserType *)0)->present), + asn_MAP_RestrictionUserType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType = { + "RestrictionUserType", + "RestrictionUserType", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_RestrictionUserType_constr_1, &asn_PER_type_RestrictionUserType_constr_1, CHOICE_constraint }, + asn_MBR_RestrictionUserType_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RestrictionUserTypeList.c b/vcits/srem/src/RestrictionUserTypeList.c new file mode 100644 index 0000000..0f7982d --- /dev/null +++ b/vcits/srem/src/RestrictionUserTypeList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RestrictionUserTypeList.h" + +#include "RestrictionUserType.h" +static asn_oer_constraints_t asn_OER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RestrictionUserType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionUserTypeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1 = { + sizeof(struct RestrictionUserTypeList), + offsetof(struct RestrictionUserTypeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList = { + "RestrictionUserTypeList", + "RestrictionUserTypeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionUserTypeList_tags_1, + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserTypeList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionUserTypeList_constr_1, &asn_PER_type_RestrictionUserTypeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictionUserTypeList_1, + 1, /* Single element */ + &asn_SPC_RestrictionUserTypeList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RoadLaneSetList.c b/vcits/srem/src/RoadLaneSetList.c new file mode 100644 index 0000000..d49372a --- /dev/null +++ b/vcits/srem/src/RoadLaneSetList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RoadLaneSetList.h" + +#include "GenericLane.h" +static asn_oer_constraints_t asn_OER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadLaneSetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1 = { + sizeof(struct RoadLaneSetList), + offsetof(struct RoadLaneSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList = { + "RoadLaneSetList", + "RoadLaneSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadLaneSetList_tags_1, + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + asn_DEF_RoadLaneSetList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadLaneSetList_constr_1, &asn_PER_type_RoadLaneSetList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadLaneSetList_1, + 1, /* Single element */ + &asn_SPC_RoadLaneSetList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RoadRegulatorID.c b/vcits/srem/src/RoadRegulatorID.c new file mode 100644 index 0000000..fcfffa6 --- /dev/null +++ b/vcits/srem/src/RoadRegulatorID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RoadRegulatorID.h" + +int +RoadRegulatorID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadRegulatorID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID = { + "RoadRegulatorID", + "RoadRegulatorID", + &asn_OP_NativeInteger, + asn_DEF_RoadRegulatorID_tags_1, + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + asn_DEF_RoadRegulatorID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadRegulatorID_constr_1, &asn_PER_type_RoadRegulatorID_constr_1, RoadRegulatorID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/RoadSegment.c b/vcits/srem/src/RoadSegment.c new file mode 100644 index 0000000..48772b1 --- /dev/null +++ b/vcits/srem/src/RoadSegment.c @@ -0,0 +1,203 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RoadSegment.h" + +#include "SpeedLimitList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RoadSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct RoadSegment__regional), + offsetof(struct RoadSegment__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { &asn_OER_type_regional_constr_9, &asn_PER_type_regional_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RoadSegment_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegment, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct RoadSegment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, roadLaneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadLaneSetList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadLaneSet" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { &asn_OER_memb_regional_constr_9, &asn_PER_memb_regional_constr_9, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RoadSegment_oms_1[] = { 0, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_RoadSegment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* roadLaneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1 = { + sizeof(struct RoadSegment), + offsetof(struct RoadSegment, _asn_ctx), + asn_MAP_RoadSegment_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_RoadSegment_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegment = { + "RoadSegment", + "RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegment_tags_1, + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + asn_DEF_RoadSegment_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSegment_1, + 8, /* Elements count */ + &asn_SPC_RoadSegment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RoadSegmentID.c b/vcits/srem/src/RoadSegmentID.c new file mode 100644 index 0000000..8543253 --- /dev/null +++ b/vcits/srem/src/RoadSegmentID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RoadSegmentID.h" + +int +RoadSegmentID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentID = { + "RoadSegmentID", + "RoadSegmentID", + &asn_OP_NativeInteger, + asn_DEF_RoadSegmentID_tags_1, + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSegmentID_constr_1, &asn_PER_type_RoadSegmentID_constr_1, RoadSegmentID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/RoadSegmentList.c b/vcits/srem/src/RoadSegmentList.c new file mode 100644 index 0000000..1d9ed55 --- /dev/null +++ b/vcits/srem/src/RoadSegmentList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RoadSegmentList.h" + +#include "RoadSegment.h" +static asn_oer_constraints_t asn_OER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadSegmentList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RoadSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1 = { + sizeof(struct RoadSegmentList), + offsetof(struct RoadSegmentList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentList = { + "RoadSegmentList", + "RoadSegmentList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadSegmentList_tags_1, + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSegmentList_constr_1, &asn_PER_type_RoadSegmentList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadSegmentList_1, + 1, /* Single element */ + &asn_SPC_RoadSegmentList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RoadSegmentReferenceID.c b/vcits/srem/src/RoadSegmentReferenceID.c new file mode 100644 index 0000000..84f1ea3 --- /dev/null +++ b/vcits/srem/src/RoadSegmentReferenceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RoadSegmentReferenceID.h" + +asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegmentReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegmentReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_RoadSegmentReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_RoadSegmentReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegmentReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1 = { + sizeof(struct RoadSegmentReferenceID), + offsetof(struct RoadSegmentReferenceID, _asn_ctx), + asn_MAP_RoadSegmentReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RoadSegmentReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID = { + "RoadSegmentReferenceID", + "RoadSegmentReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegmentReferenceID_tags_1, + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSegmentReferenceID_1, + 2, /* Elements count */ + &asn_SPC_RoadSegmentReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RoadType.c b/vcits/srem/src/RoadType.c new file mode 100644 index 0000000..c58e977 --- /dev/null +++ b/vcits/srem/src/RoadType.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RoadType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RoadType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RoadType_value2enum_1[] = { + { 0, 43, "urban-NoStructuralSeparationToOppositeLanes" }, + { 1, 45, "urban-WithStructuralSeparationToOppositeLanes" }, + { 2, 46, "nonUrban-NoStructuralSeparationToOppositeLanes" }, + { 3, 48, "nonUrban-WithStructuralSeparationToOppositeLanes" } +}; +static const unsigned int asn_MAP_RoadType_enum2value_1[] = { + 2, /* nonUrban-NoStructuralSeparationToOppositeLanes(2) */ + 3, /* nonUrban-WithStructuralSeparationToOppositeLanes(3) */ + 0, /* urban-NoStructuralSeparationToOppositeLanes(0) */ + 1 /* urban-WithStructuralSeparationToOppositeLanes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RoadType_specs_1 = { + asn_MAP_RoadType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RoadType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadType = { + "RoadType", + "RoadType", + &asn_OP_NativeEnumerated, + asn_DEF_RoadType_tags_1, + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + asn_DEF_RoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadType_constr_1, &asn_PER_type_RoadType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RoadType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/RoadwayCrownAngle.c b/vcits/srem/src/RoadwayCrownAngle.c new file mode 100644 index 0000000..3f1dc27 --- /dev/null +++ b/vcits/srem/src/RoadwayCrownAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RoadwayCrownAngle.h" + +int +RoadwayCrownAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -128 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-128..127) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -128, 127 } /* (-128..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadwayCrownAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle = { + "RoadwayCrownAngle", + "RoadwayCrownAngle", + &asn_OP_NativeInteger, + asn_DEF_RoadwayCrownAngle_tags_1, + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + asn_DEF_RoadwayCrownAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadwayCrownAngle_constr_1, &asn_PER_type_RoadwayCrownAngle_constr_1, RoadwayCrownAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/RoadworksSubCauseCode.c b/vcits/srem/src/RoadworksSubCauseCode.c new file mode 100644 index 0000000..f0cb0f4 --- /dev/null +++ b/vcits/srem/src/RoadworksSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "RoadworksSubCauseCode.h" + +int +RoadworksSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadworksSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode = { + "RoadworksSubCauseCode", + "RoadworksSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RoadworksSubCauseCode_tags_1, + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RoadworksSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadworksSubCauseCode_constr_1, &asn_PER_type_RoadworksSubCauseCode_constr_1, RoadworksSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SPAT.c b/vcits/srem/src/SPAT.c new file mode 100644 index 0000000..0cf79b4 --- /dev/null +++ b/vcits/srem/src/SPAT.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SPAT.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SPAT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SPAT__regional), + offsetof(struct SPAT__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SPAT_1[] = { + { ATF_POINTER, 2, offsetof(struct SPAT, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct SPAT, intersections), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SPAT_oms_1[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_SPAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SPAT_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SPAT_specs_1 = { + sizeof(struct SPAT), + offsetof(struct SPAT, _asn_ctx), + asn_MAP_SPAT_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SPAT_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SPAT = { + "SPAT", + "SPAT", + &asn_OP_SEQUENCE, + asn_DEF_SPAT_tags_1, + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + asn_DEF_SPAT_tags_1, /* Same as above */ + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SPAT_1, + 4, /* Elements count */ + &asn_SPC_SPAT_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SREM.c b/vcits/srem/src/SREM.c new file mode 100644 index 0000000..ec1b09d --- /dev/null +++ b/vcits/srem/src/SREM.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SREM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/SREM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SREM.h" + +static asn_TYPE_member_t asn_MBR_SREM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SREM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsPduHeader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct SREM, srm), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequestMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srm" + }, +}; +static const ber_tlv_tag_t asn_DEF_SREM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SREM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* srm */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SREM_specs_1 = { + sizeof(struct SREM), + offsetof(struct SREM, _asn_ctx), + asn_MAP_SREM_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SREM = { + "SREM", + "SREM", + &asn_OP_SEQUENCE, + asn_DEF_SREM_tags_1, + sizeof(asn_DEF_SREM_tags_1) + /sizeof(asn_DEF_SREM_tags_1[0]), /* 1 */ + asn_DEF_SREM_tags_1, /* Same as above */ + sizeof(asn_DEF_SREM_tags_1) + /sizeof(asn_DEF_SREM_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SREM_1, + 2, /* Elements count */ + &asn_SPC_SREM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/Scale-B12.c b/vcits/srem/src/Scale-B12.c new file mode 100644 index 0000000..1260d8c --- /dev/null +++ b/vcits/srem/src/Scale-B12.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Scale-B12.h" + +int +Scale_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Scale_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_Scale_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Scale_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Scale_B12 = { + "Scale-B12", + "Scale-B12", + &asn_OP_NativeInteger, + asn_DEF_Scale_B12_tags_1, + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + asn_DEF_Scale_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + { &asn_OER_type_Scale_B12_constr_1, &asn_PER_type_Scale_B12_constr_1, Scale_B12_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SegmentAttributeXY.c b/vcits/srem/src/SegmentAttributeXY.c new file mode 100644 index 0000000..5fe954a --- /dev/null +++ b/vcits/srem/src/SegmentAttributeXY.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SegmentAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 37 } /* (0..37,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SegmentAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 10, "doNotBlock" }, + { 2, 9, "whiteLine" }, + { 3, 15, "mergingLaneLeft" }, + { 4, 16, "mergingLaneRight" }, + { 5, 10, "curbOnLeft" }, + { 6, 11, "curbOnRight" }, + { 7, 17, "loadingzoneOnLeft" }, + { 8, 18, "loadingzoneOnRight" }, + { 9, 18, "turnOutPointOnLeft" }, + { 10, 19, "turnOutPointOnRight" }, + { 11, 21, "adjacentParkingOnLeft" }, + { 12, 22, "adjacentParkingOnRight" }, + { 13, 22, "adjacentBikeLaneOnLeft" }, + { 14, 23, "adjacentBikeLaneOnRight" }, + { 15, 14, "sharedBikeLane" }, + { 16, 14, "bikeBoxInFront" }, + { 17, 17, "transitStopOnLeft" }, + { 18, 18, "transitStopOnRight" }, + { 19, 17, "transitStopInLane" }, + { 20, 24, "sharedWithTrackedVehicle" }, + { 21, 10, "safeIsland" }, + { 22, 15, "lowCurbsPresent" }, + { 23, 18, "rumbleStripPresent" }, + { 24, 23, "audibleSignalingPresent" }, + { 25, 21, "adaptiveTimingPresent" }, + { 26, 22, "rfSignalRequestPresent" }, + { 27, 20, "partialCurbIntrusion" }, + { 28, 11, "taperToLeft" }, + { 29, 12, "taperToRight" }, + { 30, 17, "taperToCenterLine" }, + { 31, 15, "parallelParking" }, + { 32, 13, "headInParking" }, + { 33, 11, "freeParking" }, + { 34, 25, "timeRestrictionsOnParking" }, + { 35, 10, "costToPark" }, + { 36, 19, "midBlockCurbPresent" }, + { 37, 21, "unEvenPavementPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SegmentAttributeXY_enum2value_1[] = { + 25, /* adaptiveTimingPresent(25) */ + 13, /* adjacentBikeLaneOnLeft(13) */ + 14, /* adjacentBikeLaneOnRight(14) */ + 11, /* adjacentParkingOnLeft(11) */ + 12, /* adjacentParkingOnRight(12) */ + 24, /* audibleSignalingPresent(24) */ + 16, /* bikeBoxInFront(16) */ + 35, /* costToPark(35) */ + 5, /* curbOnLeft(5) */ + 6, /* curbOnRight(6) */ + 1, /* doNotBlock(1) */ + 33, /* freeParking(33) */ + 32, /* headInParking(32) */ + 7, /* loadingzoneOnLeft(7) */ + 8, /* loadingzoneOnRight(8) */ + 22, /* lowCurbsPresent(22) */ + 3, /* mergingLaneLeft(3) */ + 4, /* mergingLaneRight(4) */ + 36, /* midBlockCurbPresent(36) */ + 31, /* parallelParking(31) */ + 27, /* partialCurbIntrusion(27) */ + 0, /* reserved(0) */ + 26, /* rfSignalRequestPresent(26) */ + 23, /* rumbleStripPresent(23) */ + 21, /* safeIsland(21) */ + 15, /* sharedBikeLane(15) */ + 20, /* sharedWithTrackedVehicle(20) */ + 30, /* taperToCenterLine(30) */ + 28, /* taperToLeft(28) */ + 29, /* taperToRight(29) */ + 34, /* timeRestrictionsOnParking(34) */ + 19, /* transitStopInLane(19) */ + 17, /* transitStopOnLeft(17) */ + 18, /* transitStopOnRight(18) */ + 9, /* turnOutPointOnLeft(9) */ + 10, /* turnOutPointOnRight(10) */ + 37, /* unEvenPavementPresent(37) */ + 2 /* whiteLine(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1 = { + asn_MAP_SegmentAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SegmentAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 38, /* Number of elements in the maps */ + 39, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY = { + "SegmentAttributeXY", + "SegmentAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_SegmentAttributeXY_tags_1, + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentAttributeXY_constr_1, &asn_PER_type_SegmentAttributeXY_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SegmentAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SegmentAttributeXYList.c b/vcits/srem/src/SegmentAttributeXYList.c new file mode 100644 index 0000000..d4dc627 --- /dev/null +++ b/vcits/srem/src/SegmentAttributeXYList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SegmentAttributeXYList.h" + +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_SegmentAttributeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1 = { + sizeof(struct SegmentAttributeXYList), + offsetof(struct SegmentAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList = { + "SegmentAttributeXYList", + "SegmentAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SegmentAttributeXYList_tags_1, + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentAttributeXYList_constr_1, &asn_PER_type_SegmentAttributeXYList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SegmentAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_SegmentAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SemiAxisLength.c b/vcits/srem/src/SemiAxisLength.c new file mode 100644 index 0000000..0483899 --- /dev/null +++ b/vcits/srem/src/SemiAxisLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SemiAxisLength.h" + +int +SemiAxisLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiAxisLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiAxisLength = { + "SemiAxisLength", + "SemiAxisLength", + &asn_OP_NativeInteger, + asn_DEF_SemiAxisLength_tags_1, + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + asn_DEF_SemiAxisLength_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiAxisLength_constr_1, &asn_PER_type_SemiAxisLength_constr_1, SemiAxisLength_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SemiMajorAxisAccuracy.c b/vcits/srem/src/SemiMajorAxisAccuracy.c new file mode 100644 index 0000000..059484b --- /dev/null +++ b/vcits/srem/src/SemiMajorAxisAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SemiMajorAxisAccuracy.h" + +int +SemiMajorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy = { + "SemiMajorAxisAccuracy", + "SemiMajorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMajorAxisAccuracy_constr_1, &asn_PER_type_SemiMajorAxisAccuracy_constr_1, SemiMajorAxisAccuracy_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SemiMajorAxisOrientation.c b/vcits/srem/src/SemiMajorAxisOrientation.c new file mode 100644 index 0000000..dc3d7cc --- /dev/null +++ b/vcits/srem/src/SemiMajorAxisOrientation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SemiMajorAxisOrientation.h" + +int +SemiMajorAxisOrientation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisOrientation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation = { + "SemiMajorAxisOrientation", + "SemiMajorAxisOrientation", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisOrientation_tags_1, + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisOrientation_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMajorAxisOrientation_constr_1, &asn_PER_type_SemiMajorAxisOrientation_constr_1, SemiMajorAxisOrientation_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SemiMinorAxisAccuracy.c b/vcits/srem/src/SemiMinorAxisAccuracy.c new file mode 100644 index 0000000..460e843 --- /dev/null +++ b/vcits/srem/src/SemiMinorAxisAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SemiMinorAxisAccuracy.h" + +int +SemiMinorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMinorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy = { + "SemiMinorAxisAccuracy", + "SemiMinorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMinorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMinorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMinorAxisAccuracy_constr_1, &asn_PER_type_SemiMinorAxisAccuracy_constr_1, SemiMinorAxisAccuracy_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SequenceNumber.c b/vcits/srem/src/SequenceNumber.c new file mode 100644 index 0000000..0c81c21 --- /dev/null +++ b/vcits/srem/src/SequenceNumber.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SequenceNumber.h" + +int +SequenceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SequenceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SequenceNumber = { + "SequenceNumber", + "SequenceNumber", + &asn_OP_NativeInteger, + asn_DEF_SequenceNumber_tags_1, + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + asn_DEF_SequenceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_SequenceNumber_constr_1, &asn_PER_type_SequenceNumber_constr_1, SequenceNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/ServiceApplicationLimit.c b/vcits/srem/src/ServiceApplicationLimit.c new file mode 100644 index 0000000..f58b516 --- /dev/null +++ b/vcits/srem/src/ServiceApplicationLimit.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ServiceApplicationLimit.h" + +int +ServiceApplicationLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ServiceApplicationLimit_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_ServiceApplicationLimit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ServiceApplicationLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServiceApplicationLimit = { + "ServiceApplicationLimit", + "ServiceApplicationLimit", + &asn_OP_BIT_STRING, + asn_DEF_ServiceApplicationLimit_tags_1, + sizeof(asn_DEF_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_ServiceApplicationLimit_tags_1[0]), /* 1 */ + asn_DEF_ServiceApplicationLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_ServiceApplicationLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_ServiceApplicationLimit_constr_1, &asn_PER_type_ServiceApplicationLimit_constr_1, ServiceApplicationLimit_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/ServiceNumber.c b/vcits/srem/src/ServiceNumber.c new file mode 100644 index 0000000..309ac35 --- /dev/null +++ b/vcits/srem/src/ServiceNumber.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ServiceNumber.h" + +int +ServiceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 32)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ServiceNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + 32 /* (SIZE(32..32)) */}; +asn_per_constraints_t asn_PER_type_ServiceNumber_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ServiceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServiceNumber = { + "ServiceNumber", + "ServiceNumber", + &asn_OP_BIT_STRING, + asn_DEF_ServiceNumber_tags_1, + sizeof(asn_DEF_ServiceNumber_tags_1) + /sizeof(asn_DEF_ServiceNumber_tags_1[0]), /* 1 */ + asn_DEF_ServiceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ServiceNumber_tags_1) + /sizeof(asn_DEF_ServiceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_ServiceNumber_constr_1, &asn_PER_type_ServiceNumber_constr_1, ServiceNumber_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalControlZone.c b/vcits/srem/src/SignalControlZone.c new file mode 100644 index 0000000..1a0174c --- /dev/null +++ b/vcits/srem/src/SignalControlZone.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalControlZone.h" + +asn_TYPE_member_t asn_MBR_SignalControlZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalControlZone, zone), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_SignalControlZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zone" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalControlZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalControlZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* zone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1 = { + sizeof(struct SignalControlZone), + offsetof(struct SignalControlZone, _asn_ctx), + asn_MAP_SignalControlZone_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalControlZone = { + "SignalControlZone", + "SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_SignalControlZone_tags_1, + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + asn_DEF_SignalControlZone_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalControlZone_1, + 1, /* Elements count */ + &asn_SPC_SignalControlZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalGroupID.c b/vcits/srem/src/SignalGroupID.c new file mode 100644 index 0000000..74c482f --- /dev/null +++ b/vcits/srem/src/SignalGroupID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalGroupID.h" + +int +SignalGroupID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalGroupID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalGroupID = { + "SignalGroupID", + "SignalGroupID", + &asn_OP_NativeInteger, + asn_DEF_SignalGroupID_tags_1, + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + asn_DEF_SignalGroupID_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalGroupID_constr_1, &asn_PER_type_SignalGroupID_constr_1, SignalGroupID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SignalHeadLocation.c b/vcits/srem/src/SignalHeadLocation.c new file mode 100644 index 0000000..fbd3070 --- /dev/null +++ b/vcits/srem/src/SignalHeadLocation.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalHeadLocation.h" + +asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, nodeZ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeZ" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, signalGroupID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroupID" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalHeadLocation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeZ */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroupID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1 = { + sizeof(struct SignalHeadLocation), + offsetof(struct SignalHeadLocation, _asn_ctx), + asn_MAP_SignalHeadLocation_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation = { + "SignalHeadLocation", + "SignalHeadLocation", + &asn_OP_SEQUENCE, + asn_DEF_SignalHeadLocation_tags_1, + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalHeadLocation_1, + 3, /* Elements count */ + &asn_SPC_SignalHeadLocation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalHeadLocationList.c b/vcits/srem/src/SignalHeadLocationList.c new file mode 100644 index 0000000..3065270 --- /dev/null +++ b/vcits/srem/src/SignalHeadLocationList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalHeadLocationList.h" + +#include "SignalHeadLocation.h" +static asn_oer_constraints_t asn_OER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalHeadLocation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1 = { + sizeof(struct SignalHeadLocationList), + offsetof(struct SignalHeadLocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList = { + "SignalHeadLocationList", + "SignalHeadLocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalHeadLocationList_tags_1, + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalHeadLocationList_constr_1, &asn_PER_type_SignalHeadLocationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalHeadLocationList_1, + 1, /* Single element */ + &asn_SPC_SignalHeadLocationList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalRequest.c b/vcits/srem/src/SignalRequest.c new file mode 100644 index 0000000..9327e81 --- /dev/null +++ b/vcits/srem/src/SignalRequest.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalRequest.h" + +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequest__regional), + offsetof(struct SignalRequest__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PriorityRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestType" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, inBoundLane), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inBoundLane" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequest, outBoundLane), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outBoundLane" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequest, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequest_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* requestID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* requestType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* inBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* outBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1 = { + sizeof(struct SignalRequest), + offsetof(struct SignalRequest, _asn_ctx), + asn_MAP_SignalRequest_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequest_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequest = { + "SignalRequest", + "SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequest_tags_1, + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + asn_DEF_SignalRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequest_1, + 6, /* Elements count */ + &asn_SPC_SignalRequest_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalRequestList.c b/vcits/srem/src/SignalRequestList.c new file mode 100644 index 0000000..8cd9cac --- /dev/null +++ b/vcits/srem/src/SignalRequestList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalRequestList.h" + +#include "SignalRequestPackage.h" +static asn_oer_constraints_t asn_OER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalRequestPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1 = { + sizeof(struct SignalRequestList), + offsetof(struct SignalRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestList = { + "SignalRequestList", + "SignalRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalRequestList_tags_1, + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalRequestList_constr_1, &asn_PER_type_SignalRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalRequestList_1, + 1, /* Single element */ + &asn_SPC_SignalRequestList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalRequestMessage.c b/vcits/srem/src/SignalRequestMessage.c new file mode 100644 index 0000000..51bcf55 --- /dev/null +++ b/vcits/srem/src/SignalRequestMessage.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalRequestMessage.h" + +#include "SignalRequestList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequestMessage__regional), + offsetof(struct SignalRequestMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequestMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, requests), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requests" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, requestor), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestor" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestMessage_oms_1[] = { 0, 2, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* requests */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* requestor */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequestMessage_specs_1 = { + sizeof(struct SignalRequestMessage), + offsetof(struct SignalRequestMessage, _asn_ctx), + asn_MAP_SignalRequestMessage_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequestMessage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage = { + "SignalRequestMessage", + "SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestMessage_tags_1, + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequestMessage_1, + 6, /* Elements count */ + &asn_SPC_SignalRequestMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalRequestPackage.c b/vcits/srem/src/SignalRequestPackage.c new file mode 100644 index 0000000..b012436 --- /dev/null +++ b/vcits/srem/src/SignalRequestPackage.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalRequestPackage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalRequestPackage__regional), + offsetof(struct SignalRequestPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestPackage, request), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 4, offsetof(struct SignalRequestPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 3, offsetof(struct SignalRequestPackage, second), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestPackage_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1 = { + sizeof(struct SignalRequestPackage), + offsetof(struct SignalRequestPackage, _asn_ctx), + asn_MAP_SignalRequestPackage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequestPackage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage = { + "SignalRequestPackage", + "SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestPackage_tags_1, + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequestPackage_1, + 5, /* Elements count */ + &asn_SPC_SignalRequestPackage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalRequesterInfo.c b/vcits/srem/src/SignalRequesterInfo.c new file mode 100644 index 0000000..61bf802 --- /dev/null +++ b/vcits/srem/src/SignalRequesterInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalRequesterInfo.h" + +#include "RequestorType.h" +asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, request), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequesterInfo, role), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequesterInfo, typeData), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeData" + }, +}; +static const int asn_MAP_SignalRequesterInfo_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequesterInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequesterInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* typeData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1 = { + sizeof(struct SignalRequesterInfo), + offsetof(struct SignalRequesterInfo, _asn_ctx), + asn_MAP_SignalRequesterInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequesterInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo = { + "SignalRequesterInfo", + "SignalRequesterInfo", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequesterInfo_tags_1, + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + asn_DEF_SignalRequesterInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequesterInfo_1, + 5, /* Elements count */ + &asn_SPC_SignalRequesterInfo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalStatus.c b/vcits/srem/src/SignalStatus.c new file mode 100644 index 0000000..910287c --- /dev/null +++ b/vcits/srem/src/SignalStatus.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalStatus.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SignalStatus__regional), + offsetof(struct SignalStatus__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sigStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusPackageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sigStatus" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatus, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatus_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_SignalStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatus_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sigStatus */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1 = { + sizeof(struct SignalStatus), + offsetof(struct SignalStatus, _asn_ctx), + asn_MAP_SignalStatus_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SignalStatus_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatus = { + "SignalStatus", + "SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatus_tags_1, + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + asn_DEF_SignalStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatus_1, + 4, /* Elements count */ + &asn_SPC_SignalStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalStatusList.c b/vcits/srem/src/SignalStatusList.c new file mode 100644 index 0000000..f9aeb9b --- /dev/null +++ b/vcits/srem/src/SignalStatusList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalStatusList.h" + +#include "SignalStatus.h" +static asn_oer_constraints_t asn_OER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalStatusList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1 = { + sizeof(struct SignalStatusList), + offsetof(struct SignalStatusList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusList = { + "SignalStatusList", + "SignalStatusList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusList_tags_1, + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalStatusList_constr_1, &asn_PER_type_SignalStatusList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalStatusList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalStatusMessage.c b/vcits/srem/src/SignalStatusMessage.c new file mode 100644 index 0000000..c618e11 --- /dev/null +++ b/vcits/srem/src/SignalStatusMessage.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalStatusMessage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalStatusMessage__regional), + offsetof(struct SignalStatusMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SignalStatusMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusMessage_oms_1[] = { 0, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SignalStatusMessage_specs_1 = { + sizeof(struct SignalStatusMessage), + offsetof(struct SignalStatusMessage, _asn_ctx), + asn_MAP_SignalStatusMessage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalStatusMessage_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage = { + "SignalStatusMessage", + "SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusMessage_tags_1, + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusMessage_1, + 5, /* Elements count */ + &asn_SPC_SignalStatusMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalStatusPackage-addGrpC.c b/vcits/srem/src/SignalStatusPackage-addGrpC.c new file mode 100644 index 0000000..1eb98aa --- /dev/null +++ b/vcits/srem/src/SignalStatusPackage-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalStatusPackage-addGrpC.h" + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage_addGrpC, synchToSchedule), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "synchToSchedule" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage_addGrpC, rejectedReason), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RejectedReason, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rejectedReason" + }, +}; +static const int asn_MAP_SignalStatusPackage_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* synchToSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rejectedReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_addGrpC_specs_1 = { + sizeof(struct SignalStatusPackage_addGrpC), + offsetof(struct SignalStatusPackage_addGrpC, _asn_ctx), + asn_MAP_SignalStatusPackage_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage_addGrpC = { + "SignalStatusPackage-addGrpC", + "SignalStatusPackage-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_addGrpC_tags_1, + sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusPackage_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_SignalStatusPackage_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalStatusPackage.c b/vcits/srem/src/SignalStatusPackage.c new file mode 100644 index 0000000..8dd37d0 --- /dev/null +++ b/vcits/srem/src/SignalStatusPackage.c @@ -0,0 +1,204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalStatusPackage.h" + +#include "SignalRequesterInfo.h" +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct SignalStatusPackage__regional), + offsetof(struct SignalStatusPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { &asn_OER_type_regional_constr_9, &asn_PER_type_regional_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, requester), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequesterInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requester" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, inboundOn), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inboundOn" + }, + { ATF_POINTER, 4, offsetof(struct SignalStatusPackage, outboundOn), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outboundOn" + }, + { ATF_POINTER, 3, offsetof(struct SignalStatusPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage, second), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, status), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { &asn_OER_memb_regional_constr_9, &asn_PER_memb_regional_constr_9, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusPackage_oms_1[] = { 0, 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requester */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* inboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* outboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1 = { + sizeof(struct SignalStatusPackage), + offsetof(struct SignalStatusPackage, _asn_ctx), + asn_MAP_SignalStatusPackage_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage = { + "SignalStatusPackage", + "SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_tags_1, + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusPackage_1, + 8, /* Elements count */ + &asn_SPC_SignalStatusPackage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalStatusPackageList.c b/vcits/srem/src/SignalStatusPackageList.c new file mode 100644 index 0000000..05f0226 --- /dev/null +++ b/vcits/srem/src/SignalStatusPackageList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalStatusPackageList.h" + +#include "SignalStatusPackage.h" +static asn_oer_constraints_t asn_OER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1 = { + sizeof(struct SignalStatusPackageList), + offsetof(struct SignalStatusPackageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList = { + "SignalStatusPackageList", + "SignalStatusPackageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusPackageList_tags_1, + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackageList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalStatusPackageList_constr_1, &asn_PER_type_SignalStatusPackageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalStatusPackageList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusPackageList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SignalViolationSubCauseCode.c b/vcits/srem/src/SignalViolationSubCauseCode.c new file mode 100644 index 0000000..0c69e6d --- /dev/null +++ b/vcits/srem/src/SignalViolationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SignalViolationSubCauseCode.h" + +int +SignalViolationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalViolationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode = { + "SignalViolationSubCauseCode", + "SignalViolationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SignalViolationSubCauseCode_tags_1, + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SignalViolationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalViolationSubCauseCode_constr_1, &asn_PER_type_SignalViolationSubCauseCode_constr_1, SignalViolationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SlowVehicleSubCauseCode.c b/vcits/srem/src/SlowVehicleSubCauseCode.c new file mode 100644 index 0000000..52e23ae --- /dev/null +++ b/vcits/srem/src/SlowVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SlowVehicleSubCauseCode.h" + +int +SlowVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SlowVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode = { + "SlowVehicleSubCauseCode", + "SlowVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SlowVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SlowVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SlowVehicleSubCauseCode_constr_1, &asn_PER_type_SlowVehicleSubCauseCode_constr_1, SlowVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SpecialTransportType.c b/vcits/srem/src/SpecialTransportType.c new file mode 100644 index 0000000..834b64a --- /dev/null +++ b/vcits/srem/src/SpecialTransportType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SpecialTransportType.h" + +int +SpecialTransportType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpecialTransportType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpecialTransportType = { + "SpecialTransportType", + "SpecialTransportType", + &asn_OP_BIT_STRING, + asn_DEF_SpecialTransportType_tags_1, + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + asn_DEF_SpecialTransportType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpecialTransportType_constr_1, &asn_PER_type_SpecialTransportType_constr_1, SpecialTransportType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/Speed.c b/vcits/srem/src/Speed.c new file mode 100644 index 0000000..111b529 --- /dev/null +++ b/vcits/srem/src/Speed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Speed.h" + +static asn_TYPE_member_t asn_MBR_Speed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Speed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speedConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Speed_specs_1 = { + sizeof(struct Speed), + offsetof(struct Speed, _asn_ctx), + asn_MAP_Speed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Speed = { + "Speed", + "Speed", + &asn_OP_SEQUENCE, + asn_DEF_Speed_tags_1, + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + asn_DEF_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Speed_1, + 2, /* Elements count */ + &asn_SPC_Speed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SpeedAdvice.c b/vcits/srem/src/SpeedAdvice.c new file mode 100644 index 0000000..2e56e98 --- /dev/null +++ b/vcits/srem/src/SpeedAdvice.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SpeedAdvice.h" + +int +SpeedAdvice_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..500) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 500 } /* (0..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedAdvice_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedAdvice = { + "SpeedAdvice", + "SpeedAdvice", + &asn_OP_NativeInteger, + asn_DEF_SpeedAdvice_tags_1, + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + asn_DEF_SpeedAdvice_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedAdvice_constr_1, &asn_PER_type_SpeedAdvice_constr_1, SpeedAdvice_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SpeedConfidence.c b/vcits/srem/src/SpeedConfidence.c new file mode 100644 index 0000000..91928c7 --- /dev/null +++ b/vcits/srem/src/SpeedConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SpeedConfidence.h" + +int +SpeedConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeInteger, + asn_DEF_SpeedConfidence_tags_1, + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidence_constr_1, &asn_PER_type_SpeedConfidence_constr_1, SpeedConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SpeedConfidenceDSRC.c b/vcits/srem/src/SpeedConfidenceDSRC.c new file mode 100644 index 0000000..f32ccc2 --- /dev/null +++ b/vcits/srem/src/SpeedConfidenceDSRC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SpeedConfidenceDSRC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidenceDSRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidenceDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SpeedConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec100ms" }, + { 2, 8, "prec10ms" }, + { 3, 7, "prec5ms" }, + { 4, 7, "prec1ms" }, + { 5, 9, "prec0-1ms" }, + { 6, 10, "prec0-05ms" }, + { 7, 10, "prec0-01ms" } +}; +static const unsigned int asn_MAP_SpeedConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-01ms(7) */ + 6, /* prec0-05ms(6) */ + 5, /* prec0-1ms(5) */ + 1, /* prec100ms(1) */ + 2, /* prec10ms(2) */ + 4, /* prec1ms(4) */ + 3, /* prec5ms(3) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedConfidenceDSRC_specs_1 = { + asn_MAP_SpeedConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedConfidenceDSRC_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidenceDSRC = { + "SpeedConfidenceDSRC", + "SpeedConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedConfidenceDSRC_tags_1, + sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidenceDSRC_constr_1, &asn_PER_type_SpeedConfidenceDSRC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SpeedLimit.c b/vcits/srem/src/SpeedLimit.c new file mode 100644 index 0000000..2c119b6 --- /dev/null +++ b/vcits/srem/src/SpeedLimit.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SpeedLimit.h" + +int +SpeedLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_NativeInteger, + asn_DEF_SpeedLimit_tags_1, + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimit_constr_1, &asn_PER_type_SpeedLimit_constr_1, SpeedLimit_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SpeedLimitList.c b/vcits/srem/src/SpeedLimitList.c new file mode 100644 index 0000000..25a04f8 --- /dev/null +++ b/vcits/srem/src/SpeedLimitList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SpeedLimitList.h" + +#include "RegulatorySpeedLimit.h" +static asn_oer_constraints_t asn_OER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..9)) */}; +asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 9 } /* (SIZE(1..9)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SpeedLimitList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RegulatorySpeedLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1 = { + sizeof(struct SpeedLimitList), + offsetof(struct SpeedLimitList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitList = { + "SpeedLimitList", + "SpeedLimitList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SpeedLimitList_tags_1, + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitList_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimitList_constr_1, &asn_PER_type_SpeedLimitList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SpeedLimitList_1, + 1, /* Single element */ + &asn_SPC_SpeedLimitList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SpeedLimitType.c b/vcits/srem/src/SpeedLimitType.c new file mode 100644 index 0000000..4fb64b6 --- /dev/null +++ b/vcits/srem/src/SpeedLimitType.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SpeedLimitType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SpeedLimitType_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "maxSpeedInSchoolZone" }, + { 2, 42, "maxSpeedInSchoolZoneWhenChildrenArePresent" }, + { 3, 26, "maxSpeedInConstructionZone" }, + { 4, 15, "vehicleMinSpeed" }, + { 5, 15, "vehicleMaxSpeed" }, + { 6, 20, "vehicleNightMaxSpeed" }, + { 7, 13, "truckMinSpeed" }, + { 8, 13, "truckMaxSpeed" }, + { 9, 18, "truckNightMaxSpeed" }, + { 10, 28, "vehiclesWithTrailersMinSpeed" }, + { 11, 28, "vehiclesWithTrailersMaxSpeed" }, + { 12, 33, "vehiclesWithTrailersNightMaxSpeed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SpeedLimitType_enum2value_1[] = { + 3, /* maxSpeedInConstructionZone(3) */ + 1, /* maxSpeedInSchoolZone(1) */ + 2, /* maxSpeedInSchoolZoneWhenChildrenArePresent(2) */ + 8, /* truckMaxSpeed(8) */ + 7, /* truckMinSpeed(7) */ + 9, /* truckNightMaxSpeed(9) */ + 0, /* unknown(0) */ + 5, /* vehicleMaxSpeed(5) */ + 4, /* vehicleMinSpeed(4) */ + 6, /* vehicleNightMaxSpeed(6) */ + 11, /* vehiclesWithTrailersMaxSpeed(11) */ + 10, /* vehiclesWithTrailersMinSpeed(10) */ + 12 /* vehiclesWithTrailersNightMaxSpeed(12) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1 = { + asn_MAP_SpeedLimitType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedLimitType_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitType = { + "SpeedLimitType", + "SpeedLimitType", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedLimitType_tags_1, + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimitType_constr_1, &asn_PER_type_SpeedLimitType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedLimitType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SpeedValue.c b/vcits/srem/src/SpeedValue.c new file mode 100644 index 0000000..8be54cc --- /dev/null +++ b/vcits/srem/src/SpeedValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SpeedValue.h" + +int +SpeedValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedValue = { + "SpeedValue", + "SpeedValue", + &asn_OP_NativeInteger, + asn_DEF_SpeedValue_tags_1, + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + asn_DEF_SpeedValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedValue_constr_1, &asn_PER_type_SpeedValue_constr_1, SpeedValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SpeedandHeadingandThrottleConfidence.c b/vcits/srem/src/SpeedandHeadingandThrottleConfidence.c new file mode 100644 index 0000000..7869934 --- /dev/null +++ b/vcits/srem/src/SpeedandHeadingandThrottleConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SpeedandHeadingandThrottleConfidence.h" + +asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, throttle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ThrottleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "throttle" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* throttle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 = { + sizeof(struct SpeedandHeadingandThrottleConfidence), + offsetof(struct SpeedandHeadingandThrottleConfidence, _asn_ctx), + asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence = { + "SpeedandHeadingandThrottleConfidence", + "SpeedandHeadingandThrottleConfidence", + &asn_OP_SEQUENCE, + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SpeedandHeadingandThrottleConfidence_1, + 3, /* Elements count */ + &asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/StartTime.c b/vcits/srem/src/StartTime.c new file mode 100644 index 0000000..0bbf43e --- /dev/null +++ b/vcits/srem/src/StartTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "StartTime.h" + +int +StartTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const AviEriDateTime_t *st = (const AviEriDateTime_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using AviEriDateTime, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StartTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_StartTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StartTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StartTime = { + "StartTime", + "StartTime", + &asn_OP_OCTET_STRING, + asn_DEF_StartTime_tags_1, + sizeof(asn_DEF_StartTime_tags_1) + /sizeof(asn_DEF_StartTime_tags_1[0]), /* 1 */ + asn_DEF_StartTime_tags_1, /* Same as above */ + sizeof(asn_DEF_StartTime_tags_1) + /sizeof(asn_DEF_StartTime_tags_1[0]), /* 1 */ + { &asn_OER_type_StartTime_constr_1, &asn_PER_type_StartTime_constr_1, StartTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/StationID.c b/vcits/srem/src/StationID.c new file mode 100644 index 0000000..2b80dad --- /dev/null +++ b/vcits/srem/src/StationID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "StationID.h" + +int +StationID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +asn_per_constraints_t asn_PER_type_StationID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_StationID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationID = { + "StationID", + "StationID", + &asn_OP_NativeInteger, + asn_DEF_StationID_tags_1, + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + asn_DEF_StationID_tags_1, /* Same as above */ + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + { &asn_OER_type_StationID_constr_1, &asn_PER_type_StationID_constr_1, StationID_constraint }, + 0, 0, /* No members */ + &asn_SPC_StationID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/StationType.c b/vcits/srem/src/StationType.c new file mode 100644 index 0000000..5ff5f84 --- /dev/null +++ b/vcits/srem/src/StationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "StationType.h" + +int +StationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_StationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationType = { + "StationType", + "StationType", + &asn_OP_NativeInteger, + asn_DEF_StationType_tags_1, + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + asn_DEF_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + { &asn_OER_type_StationType_constr_1, &asn_PER_type_StationType_constr_1, StationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/StationarySince.c b/vcits/srem/src/StationarySince.c new file mode 100644 index 0000000..055b92d --- /dev/null +++ b/vcits/srem/src/StationarySince.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "StationarySince.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationarySince_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_StationarySince_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_StationarySince_value2enum_1[] = { + { 0, 15, "lessThan1Minute" }, + { 1, 16, "lessThan2Minutes" }, + { 2, 17, "lessThan15Minutes" }, + { 3, 23, "equalOrGreater15Minutes" } +}; +static const unsigned int asn_MAP_StationarySince_enum2value_1[] = { + 3, /* equalOrGreater15Minutes(3) */ + 2, /* lessThan15Minutes(2) */ + 0, /* lessThan1Minute(0) */ + 1 /* lessThan2Minutes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_StationarySince_specs_1 = { + asn_MAP_StationarySince_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_StationarySince_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_StationarySince_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationarySince = { + "StationarySince", + "StationarySince", + &asn_OP_NativeEnumerated, + asn_DEF_StationarySince_tags_1, + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + asn_DEF_StationarySince_tags_1, /* Same as above */ + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + { &asn_OER_type_StationarySince_constr_1, &asn_PER_type_StationarySince_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_StationarySince_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/StationaryVehicleSubCauseCode.c b/vcits/srem/src/StationaryVehicleSubCauseCode.c new file mode 100644 index 0000000..6459c74 --- /dev/null +++ b/vcits/srem/src/StationaryVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "StationaryVehicleSubCauseCode.h" + +int +StationaryVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationaryVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode = { + "StationaryVehicleSubCauseCode", + "StationaryVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_StationaryVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_StationaryVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_StationaryVehicleSubCauseCode_constr_1, &asn_PER_type_StationaryVehicleSubCauseCode_constr_1, StationaryVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SteeringWheelAngle.c b/vcits/srem/src/SteeringWheelAngle.c new file mode 100644 index 0000000..4b5b5bf --- /dev/null +++ b/vcits/srem/src/SteeringWheelAngle.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SteeringWheelAngle.h" + +static asn_TYPE_member_t asn_MBR_SteeringWheelAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SteeringWheelAngle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* steeringWheelAngleValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* steeringWheelAngleConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SteeringWheelAngle_specs_1 = { + sizeof(struct SteeringWheelAngle), + offsetof(struct SteeringWheelAngle, _asn_ctx), + asn_MAP_SteeringWheelAngle_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_SEQUENCE, + asn_DEF_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SteeringWheelAngle_1, + 2, /* Elements count */ + &asn_SPC_SteeringWheelAngle_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/SteeringWheelAngleConfidence.c b/vcits/srem/src/SteeringWheelAngleConfidence.c new file mode 100644 index 0000000..0a64cc5 --- /dev/null +++ b/vcits/srem/src/SteeringWheelAngleConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SteeringWheelAngleConfidence.h" + +int +SteeringWheelAngleConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleConfidence_constr_1, &asn_PER_type_SteeringWheelAngleConfidence_constr_1, SteeringWheelAngleConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/SteeringWheelAngleValue.c b/vcits/srem/src/SteeringWheelAngleValue.c new file mode 100644 index 0000000..1661097 --- /dev/null +++ b/vcits/srem/src/SteeringWheelAngleValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SteeringWheelAngleValue.h" + +int +SteeringWheelAngleValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -511 && value <= 512)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-511..512) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -511, 512 } /* (-511..512) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue = { + "SteeringWheelAngleValue", + "SteeringWheelAngleValue", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleValue_tags_1, + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleValue_constr_1, &asn_PER_type_SteeringWheelAngleValue_constr_1, SteeringWheelAngleValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/StopTime.c b/vcits/srem/src/StopTime.c new file mode 100644 index 0000000..a5ff0d7 --- /dev/null +++ b/vcits/srem/src/StopTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "StopTime.h" + +int +StopTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const AviEriDateTime_t *st = (const AviEriDateTime_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using AviEriDateTime, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StopTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_StopTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StopTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StopTime = { + "StopTime", + "StopTime", + &asn_OP_OCTET_STRING, + asn_DEF_StopTime_tags_1, + sizeof(asn_DEF_StopTime_tags_1) + /sizeof(asn_DEF_StopTime_tags_1[0]), /* 1 */ + asn_DEF_StopTime_tags_1, /* Same as above */ + sizeof(asn_DEF_StopTime_tags_1) + /sizeof(asn_DEF_StopTime_tags_1[0]), /* 1 */ + { &asn_OER_type_StopTime_constr_1, &asn_PER_type_StopTime_constr_1, StopTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/SubCauseCodeType.c b/vcits/srem/src/SubCauseCodeType.c new file mode 100644 index 0000000..f94c0db --- /dev/null +++ b/vcits/srem/src/SubCauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "SubCauseCodeType.h" + +int +SubCauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SubCauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType = { + "SubCauseCodeType", + "SubCauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_SubCauseCodeType_tags_1, + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_SubCauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_SubCauseCodeType_constr_1, &asn_PER_type_SubCauseCodeType_constr_1, SubCauseCodeType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/TaxCode.c b/vcits/srem/src/TaxCode.c new file mode 100644 index 0000000..d73776a --- /dev/null +++ b/vcits/srem/src/TaxCode.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TaxCode.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_TaxCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TaxCode = { + "TaxCode", + "TaxCode", + &asn_OP_OCTET_STRING, + asn_DEF_TaxCode_tags_1, + sizeof(asn_DEF_TaxCode_tags_1) + /sizeof(asn_DEF_TaxCode_tags_1[0]), /* 1 */ + asn_DEF_TaxCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TaxCode_tags_1) + /sizeof(asn_DEF_TaxCode_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/Temperature.c b/vcits/srem/src/Temperature.c new file mode 100644 index 0000000..67c4c01 --- /dev/null +++ b/vcits/srem/src/Temperature.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Temperature.h" + +int +Temperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -60 && value <= 67)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Temperature_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-60..67) */, + -1}; +static asn_per_constraints_t asn_PER_type_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 67 } /* (-60..67) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_Temperature_tags_1, + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + asn_DEF_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + { &asn_OER_type_Temperature_constr_1, &asn_PER_type_Temperature_constr_1, Temperature_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/TemporaryID.c b/vcits/srem/src/TemporaryID.c new file mode 100644 index 0000000..3f8e201 --- /dev/null +++ b/vcits/srem/src/TemporaryID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TemporaryID.h" + +int +TemporaryID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TemporaryID_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +asn_per_constraints_t asn_PER_type_TemporaryID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TemporaryID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TemporaryID = { + "TemporaryID", + "TemporaryID", + &asn_OP_OCTET_STRING, + asn_DEF_TemporaryID_tags_1, + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + asn_DEF_TemporaryID_tags_1, /* Same as above */ + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + { &asn_OER_type_TemporaryID_constr_1, &asn_PER_type_TemporaryID_constr_1, TemporaryID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/ThrottleConfidence.c b/vcits/srem/src/ThrottleConfidence.c new file mode 100644 index 0000000..05067b5 --- /dev/null +++ b/vcits/srem/src/ThrottleConfidence.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ThrottleConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ThrottleConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 13, "prec10percent" }, + { 2, 12, "prec1percent" }, + { 3, 14, "prec0-5percent" } +}; +static const unsigned int asn_MAP_ThrottleConfidence_enum2value_1[] = { + 3, /* prec0-5percent(3) */ + 1, /* prec10percent(1) */ + 2, /* prec1percent(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1 = { + asn_MAP_ThrottleConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ThrottleConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence = { + "ThrottleConfidence", + "ThrottleConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ThrottleConfidence_tags_1, + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_ThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ThrottleConfidence_constr_1, &asn_PER_type_ThrottleConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/TimeChangeDetails.c b/vcits/srem/src/TimeChangeDetails.c new file mode 100644 index 0000000..27cd404 --- /dev/null +++ b/vcits/srem/src/TimeChangeDetails.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TimeChangeDetails.h" + +asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[] = { + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct TimeChangeDetails, minEndTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minEndTime" + }, + { ATF_POINTER, 4, offsetof(struct TimeChangeDetails, maxEndTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxEndTime" + }, + { ATF_POINTER, 3, offsetof(struct TimeChangeDetails, likelyTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "likelyTime" + }, + { ATF_POINTER, 2, offsetof(struct TimeChangeDetails, confidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeIntervalConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, nextTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextTime" + }, +}; +static const int asn_MAP_TimeChangeDetails_oms_1[] = { 0, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_TimeChangeDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TimeChangeDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* likelyTime */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* nextTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1 = { + sizeof(struct TimeChangeDetails), + offsetof(struct TimeChangeDetails, _asn_ctx), + asn_MAP_TimeChangeDetails_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_TimeChangeDetails_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails = { + "TimeChangeDetails", + "TimeChangeDetails", + &asn_OP_SEQUENCE, + asn_DEF_TimeChangeDetails_tags_1, + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + asn_DEF_TimeChangeDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TimeChangeDetails_1, + 6, /* Elements count */ + &asn_SPC_TimeChangeDetails_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/TimeConfidence.c b/vcits/srem/src/TimeConfidence.c new file mode 100644 index 0000000..d9c779f --- /dev/null +++ b/vcits/srem/src/TimeConfidence.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TimeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TimeConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 12, "time-100-000" }, + { 2, 12, "time-050-000" }, + { 3, 12, "time-020-000" }, + { 4, 12, "time-010-000" }, + { 5, 12, "time-002-000" }, + { 6, 12, "time-001-000" }, + { 7, 12, "time-000-500" }, + { 8, 12, "time-000-200" }, + { 9, 12, "time-000-100" }, + { 10, 12, "time-000-050" }, + { 11, 12, "time-000-020" }, + { 12, 12, "time-000-010" }, + { 13, 12, "time-000-005" }, + { 14, 12, "time-000-002" }, + { 15, 12, "time-000-001" }, + { 16, 14, "time-000-000-5" }, + { 17, 14, "time-000-000-2" }, + { 18, 14, "time-000-000-1" }, + { 19, 15, "time-000-000-05" }, + { 20, 15, "time-000-000-02" }, + { 21, 15, "time-000-000-01" }, + { 22, 16, "time-000-000-005" }, + { 23, 16, "time-000-000-002" }, + { 24, 16, "time-000-000-001" }, + { 25, 18, "time-000-000-000-5" }, + { 26, 18, "time-000-000-000-2" }, + { 27, 18, "time-000-000-000-1" }, + { 28, 19, "time-000-000-000-05" }, + { 29, 19, "time-000-000-000-02" }, + { 30, 19, "time-000-000-000-01" }, + { 31, 20, "time-000-000-000-005" }, + { 32, 20, "time-000-000-000-002" }, + { 33, 20, "time-000-000-000-001" }, + { 34, 22, "time-000-000-000-000-5" }, + { 35, 22, "time-000-000-000-000-2" }, + { 36, 22, "time-000-000-000-000-1" }, + { 37, 23, "time-000-000-000-000-05" }, + { 38, 23, "time-000-000-000-000-02" }, + { 39, 23, "time-000-000-000-000-01" } +}; +static const unsigned int asn_MAP_TimeConfidence_enum2value_1[] = { + 39, /* time-000-000-000-000-01(39) */ + 38, /* time-000-000-000-000-02(38) */ + 37, /* time-000-000-000-000-05(37) */ + 36, /* time-000-000-000-000-1(36) */ + 35, /* time-000-000-000-000-2(35) */ + 34, /* time-000-000-000-000-5(34) */ + 33, /* time-000-000-000-001(33) */ + 32, /* time-000-000-000-002(32) */ + 31, /* time-000-000-000-005(31) */ + 30, /* time-000-000-000-01(30) */ + 29, /* time-000-000-000-02(29) */ + 28, /* time-000-000-000-05(28) */ + 27, /* time-000-000-000-1(27) */ + 26, /* time-000-000-000-2(26) */ + 25, /* time-000-000-000-5(25) */ + 24, /* time-000-000-001(24) */ + 23, /* time-000-000-002(23) */ + 22, /* time-000-000-005(22) */ + 21, /* time-000-000-01(21) */ + 20, /* time-000-000-02(20) */ + 19, /* time-000-000-05(19) */ + 18, /* time-000-000-1(18) */ + 17, /* time-000-000-2(17) */ + 16, /* time-000-000-5(16) */ + 15, /* time-000-001(15) */ + 14, /* time-000-002(14) */ + 13, /* time-000-005(13) */ + 12, /* time-000-010(12) */ + 11, /* time-000-020(11) */ + 10, /* time-000-050(10) */ + 9, /* time-000-100(9) */ + 8, /* time-000-200(8) */ + 7, /* time-000-500(7) */ + 6, /* time-001-000(6) */ + 5, /* time-002-000(5) */ + 4, /* time-010-000(4) */ + 3, /* time-020-000(3) */ + 2, /* time-050-000(2) */ + 1, /* time-100-000(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1 = { + asn_MAP_TimeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TimeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 40, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TimeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeConfidence = { + "TimeConfidence", + "TimeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_TimeConfidence_tags_1, + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeConfidence_constr_1, &asn_PER_type_TimeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TimeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/TimeIntervalConfidence.c b/vcits/srem/src/TimeIntervalConfidence.c new file mode 100644 index 0000000..30b75db --- /dev/null +++ b/vcits/srem/src/TimeIntervalConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TimeIntervalConfidence.h" + +int +TimeIntervalConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeIntervalConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence = { + "TimeIntervalConfidence", + "TimeIntervalConfidence", + &asn_OP_NativeInteger, + asn_DEF_TimeIntervalConfidence_tags_1, + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeIntervalConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeIntervalConfidence_constr_1, &asn_PER_type_TimeIntervalConfidence_constr_1, TimeIntervalConfidence_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/TimeMark.c b/vcits/srem/src/TimeMark.c new file mode 100644 index 0000000..fe6f5e8 --- /dev/null +++ b/vcits/srem/src/TimeMark.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TimeMark.h" + +int +TimeMark_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 36001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeMark_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..36001) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeMark_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 36001 } /* (0..36001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeMark_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeMark = { + "TimeMark", + "TimeMark", + &asn_OP_NativeInteger, + asn_DEF_TimeMark_tags_1, + sizeof(asn_DEF_TimeMark_tags_1) + /sizeof(asn_DEF_TimeMark_tags_1[0]), /* 1 */ + asn_DEF_TimeMark_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeMark_tags_1) + /sizeof(asn_DEF_TimeMark_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeMark_constr_1, &asn_PER_type_TimeMark_constr_1, TimeMark_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/TimeReference.c b/vcits/srem/src/TimeReference.c new file mode 100644 index 0000000..a75a6fd --- /dev/null +++ b/vcits/srem/src/TimeReference.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TimeReference.h" + +int +TimeReference_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 60000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeReference_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..60000) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeReference_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 60000 } /* (0..60000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeReference = { + "TimeReference", + "TimeReference", + &asn_OP_NativeInteger, + asn_DEF_TimeReference_tags_1, + sizeof(asn_DEF_TimeReference_tags_1) + /sizeof(asn_DEF_TimeReference_tags_1[0]), /* 1 */ + asn_DEF_TimeReference_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeReference_tags_1) + /sizeof(asn_DEF_TimeReference_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeReference_constr_1, &asn_PER_type_TimeReference_constr_1, TimeReference_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/TimestampIts.c b/vcits/srem/src/TimestampIts.c new file mode 100644 index 0000000..cdb2978 --- /dev/null +++ b/vcits/srem/src/TimestampIts.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TimestampIts.h" + +int +TimestampIts_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0 && value <= 4398046511103)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimestampIts_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..4398046511103) */, + -1}; +asn_per_constraints_t asn_PER_type_TimestampIts_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 42, -1, 0, 4398046511103 } /* (0..4398046511103) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimestampIts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimestampIts = { + "TimestampIts", + "TimestampIts", + &asn_OP_INTEGER, + asn_DEF_TimestampIts_tags_1, + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + asn_DEF_TimestampIts_tags_1, /* Same as above */ + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + { &asn_OER_type_TimestampIts_constr_1, &asn_PER_type_TimestampIts_constr_1, TimestampIts_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Traces.c b/vcits/srem/src/Traces.c new file mode 100644 index 0000000..101e076 --- /dev/null +++ b/vcits/srem/src/Traces.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Traces.h" + +#include "PathHistory.h" +static asn_oer_constraints_t asn_OER_type_Traces_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..7)) */}; +static asn_per_constraints_t asn_PER_type_Traces_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_Traces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathHistory, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Traces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Traces_specs_1 = { + sizeof(struct Traces), + offsetof(struct Traces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Traces = { + "Traces", + "Traces", + &asn_OP_SEQUENCE_OF, + asn_DEF_Traces_tags_1, + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + asn_DEF_Traces_tags_1, /* Same as above */ + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + { &asn_OER_type_Traces_constr_1, &asn_PER_type_Traces_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Traces_1, + 1, /* Single element */ + &asn_SPC_Traces_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/TrafficConditionSubCauseCode.c b/vcits/srem/src/TrafficConditionSubCauseCode.c new file mode 100644 index 0000000..e466b1f --- /dev/null +++ b/vcits/srem/src/TrafficConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TrafficConditionSubCauseCode.h" + +int +TrafficConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TrafficConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode = { + "TrafficConditionSubCauseCode", + "TrafficConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_TrafficConditionSubCauseCode_tags_1, + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_TrafficConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficConditionSubCauseCode_constr_1, &asn_PER_type_TrafficConditionSubCauseCode_constr_1, TrafficConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/TrafficRule.c b/vcits/srem/src/TrafficRule.c new file mode 100644 index 0000000..0bab496 --- /dev/null +++ b/vcits/srem/src/TrafficRule.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TrafficRule.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficRule_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficRule_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TrafficRule_value2enum_1[] = { + { 0, 9, "noPassing" }, + { 1, 18, "noPassingForTrucks" }, + { 2, 11, "passToRight" }, + { 3, 10, "passToLeft" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TrafficRule_enum2value_1[] = { + 0, /* noPassing(0) */ + 1, /* noPassingForTrucks(1) */ + 3, /* passToLeft(3) */ + 2 /* passToRight(2) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_TrafficRule_specs_1 = { + asn_MAP_TrafficRule_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TrafficRule_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TrafficRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficRule = { + "TrafficRule", + "TrafficRule", + &asn_OP_NativeEnumerated, + asn_DEF_TrafficRule_tags_1, + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + asn_DEF_TrafficRule_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficRule_constr_1, &asn_PER_type_TrafficRule_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TrafficRule_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/TransitVehicleOccupancy.c b/vcits/srem/src/TransitVehicleOccupancy.c new file mode 100644 index 0000000..de4f3f0 --- /dev/null +++ b/vcits/srem/src/TransitVehicleOccupancy.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TransitVehicleOccupancy.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransitVehicleOccupancy_value2enum_1[] = { + { 0, 16, "occupancyUnknown" }, + { 1, 14, "occupancyEmpty" }, + { 2, 16, "occupancyVeryLow" }, + { 3, 12, "occupancyLow" }, + { 4, 12, "occupancyMed" }, + { 5, 13, "occupancyHigh" }, + { 6, 19, "occupancyNearlyFull" }, + { 7, 13, "occupancyFull" } +}; +static const unsigned int asn_MAP_TransitVehicleOccupancy_enum2value_1[] = { + 1, /* occupancyEmpty(1) */ + 7, /* occupancyFull(7) */ + 5, /* occupancyHigh(5) */ + 3, /* occupancyLow(3) */ + 4, /* occupancyMed(4) */ + 6, /* occupancyNearlyFull(6) */ + 0, /* occupancyUnknown(0) */ + 2 /* occupancyVeryLow(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1 = { + asn_MAP_TransitVehicleOccupancy_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransitVehicleOccupancy_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleOccupancy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy = { + "TransitVehicleOccupancy", + "TransitVehicleOccupancy", + &asn_OP_NativeEnumerated, + asn_DEF_TransitVehicleOccupancy_tags_1, + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleOccupancy_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + { &asn_OER_type_TransitVehicleOccupancy_constr_1, &asn_PER_type_TransitVehicleOccupancy_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransitVehicleOccupancy_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/TransitVehicleStatus.c b/vcits/srem/src/TransitVehicleStatus.c new file mode 100644 index 0000000..e637d91 --- /dev/null +++ b/vcits/srem/src/TransitVehicleStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TransitVehicleStatus.h" + +int +TransitVehicleStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus = { + "TransitVehicleStatus", + "TransitVehicleStatus", + &asn_OP_BIT_STRING, + asn_DEF_TransitVehicleStatus_tags_1, + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_TransitVehicleStatus_constr_1, &asn_PER_type_TransitVehicleStatus_constr_1, TransitVehicleStatus_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/srem/src/TransmissionAndSpeed.c b/vcits/srem/src/TransmissionAndSpeed.c new file mode 100644 index 0000000..0ca7673 --- /dev/null +++ b/vcits/srem/src/TransmissionAndSpeed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TransmissionAndSpeed.h" + +asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, transmisson), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transmisson" + }, + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_TransmissionAndSpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TransmissionAndSpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transmisson */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1 = { + sizeof(struct TransmissionAndSpeed), + offsetof(struct TransmissionAndSpeed, _asn_ctx), + asn_MAP_TransmissionAndSpeed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed = { + "TransmissionAndSpeed", + "TransmissionAndSpeed", + &asn_OP_SEQUENCE, + asn_DEF_TransmissionAndSpeed_tags_1, + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + asn_DEF_TransmissionAndSpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TransmissionAndSpeed_1, + 2, /* Elements count */ + &asn_SPC_TransmissionAndSpeed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/TransmissionInterval.c b/vcits/srem/src/TransmissionInterval.c new file mode 100644 index 0000000..f4eaffb --- /dev/null +++ b/vcits/srem/src/TransmissionInterval.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TransmissionInterval.h" + +int +TransmissionInterval_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..10000) */, + -1}; +static asn_per_constraints_t asn_PER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 10000 } /* (1..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransmissionInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionInterval = { + "TransmissionInterval", + "TransmissionInterval", + &asn_OP_NativeInteger, + asn_DEF_TransmissionInterval_tags_1, + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + asn_DEF_TransmissionInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionInterval_constr_1, &asn_PER_type_TransmissionInterval_constr_1, TransmissionInterval_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/TransmissionState.c b/vcits/srem/src/TransmissionState.c new file mode 100644 index 0000000..7bd4736 --- /dev/null +++ b/vcits/srem/src/TransmissionState.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TransmissionState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransmissionState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransmissionState_value2enum_1[] = { + { 0, 7, "neutral" }, + { 1, 4, "park" }, + { 2, 12, "forwardGears" }, + { 3, 12, "reverseGears" }, + { 4, 9, "reserved1" }, + { 5, 9, "reserved2" }, + { 6, 9, "reserved3" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_TransmissionState_enum2value_1[] = { + 2, /* forwardGears(2) */ + 0, /* neutral(0) */ + 1, /* park(1) */ + 4, /* reserved1(4) */ + 5, /* reserved2(5) */ + 6, /* reserved3(6) */ + 3, /* reverseGears(3) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1 = { + asn_MAP_TransmissionState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransmissionState_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransmissionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionState = { + "TransmissionState", + "TransmissionState", + &asn_OP_NativeEnumerated, + asn_DEF_TransmissionState_tags_1, + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + asn_DEF_TransmissionState_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionState_constr_1, &asn_PER_type_TransmissionState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransmissionState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/TurningRadius.c b/vcits/srem/src/TurningRadius.c new file mode 100644 index 0000000..cdeee03 --- /dev/null +++ b/vcits/srem/src/TurningRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "TurningRadius.h" + +int +TurningRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TurningRadius_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TurningRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TurningRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TurningRadius = { + "TurningRadius", + "TurningRadius", + &asn_OP_NativeInteger, + asn_DEF_TurningRadius_tags_1, + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + asn_DEF_TurningRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_TurningRadius_constr_1, &asn_PER_type_TurningRadius_constr_1, TurningRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/VDS.c b/vcits/srem/src/VDS.c new file mode 100644 index 0000000..9383222 --- /dev/null +++ b/vcits/srem/src/VDS.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "VDS.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +VDS_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 6) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VDS_constr_1 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +asn_per_constraints_t asn_PER_type_VDS_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_VDS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VDS = { + "VDS", + "VDS", + &asn_OP_IA5String, + asn_DEF_VDS_tags_1, + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + asn_DEF_VDS_tags_1, /* Same as above */ + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + { &asn_OER_type_VDS_constr_1, &asn_PER_type_VDS_constr_1, VDS_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/ValidityDuration.c b/vcits/srem/src/ValidityDuration.c new file mode 100644 index 0000000..0273f56 --- /dev/null +++ b/vcits/srem/src/ValidityDuration.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ValidityDuration.h" + +int +ValidityDuration_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 86400)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..86400) */, + -1}; +static asn_per_constraints_t asn_PER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 0, 86400 } /* (0..86400) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ValidityDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ValidityDuration = { + "ValidityDuration", + "ValidityDuration", + &asn_OP_NativeInteger, + asn_DEF_ValidityDuration_tags_1, + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + asn_DEF_ValidityDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + { &asn_OER_type_ValidityDuration_constr_1, &asn_PER_type_ValidityDuration_constr_1, ValidityDuration_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/VehicleBreakdownSubCauseCode.c b/vcits/srem/src/VehicleBreakdownSubCauseCode.c new file mode 100644 index 0000000..1c7e435 --- /dev/null +++ b/vcits/srem/src/VehicleBreakdownSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "VehicleBreakdownSubCauseCode.h" + +int +VehicleBreakdownSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleBreakdownSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode = { + "VehicleBreakdownSubCauseCode", + "VehicleBreakdownSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleBreakdownSubCauseCode_constr_1, &asn_PER_type_VehicleBreakdownSubCauseCode_constr_1, VehicleBreakdownSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/VehicleHeight.c b/vcits/srem/src/VehicleHeight.c new file mode 100644 index 0000000..8d4d7ed --- /dev/null +++ b/vcits/srem/src/VehicleHeight.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "VehicleHeight.h" + +int +VehicleHeight_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleHeight = { + "VehicleHeight", + "VehicleHeight", + &asn_OP_NativeInteger, + asn_DEF_VehicleHeight_tags_1, + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + asn_DEF_VehicleHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleHeight_constr_1, &asn_PER_type_VehicleHeight_constr_1, VehicleHeight_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/VehicleID.c b/vcits/srem/src/VehicleID.c new file mode 100644 index 0000000..195b6e6 --- /dev/null +++ b/vcits/srem/src/VehicleID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "VehicleID.h" + +static asn_oer_constraints_t asn_OER_type_VehicleID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_VehicleID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.entityID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TemporaryID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "entityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.stationID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* entityID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* stationID */ +}; +asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1 = { + sizeof(struct VehicleID), + offsetof(struct VehicleID, _asn_ctx), + offsetof(struct VehicleID, present), + sizeof(((struct VehicleID *)0)->present), + asn_MAP_VehicleID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleID = { + "VehicleID", + "VehicleID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_VehicleID_constr_1, &asn_PER_type_VehicleID_constr_1, CHOICE_constraint }, + asn_MBR_VehicleID_1, + 2, /* Elements count */ + &asn_SPC_VehicleID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/VehicleIdentification.c b/vcits/srem/src/VehicleIdentification.c new file mode 100644 index 0000000..d2bff62 --- /dev/null +++ b/vcits/srem/src/VehicleIdentification.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "VehicleIdentification.h" + +static asn_TYPE_member_t asn_MBR_VehicleIdentification_1[] = { + { ATF_POINTER, 2, offsetof(struct VehicleIdentification, wMInumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WMInumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wMInumber" + }, + { ATF_POINTER, 1, offsetof(struct VehicleIdentification, vDS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VDS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vDS" + }, +}; +static const int asn_MAP_VehicleIdentification_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_VehicleIdentification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleIdentification_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wMInumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vDS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleIdentification_specs_1 = { + sizeof(struct VehicleIdentification), + offsetof(struct VehicleIdentification, _asn_ctx), + asn_MAP_VehicleIdentification_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_VehicleIdentification_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleIdentification = { + "VehicleIdentification", + "VehicleIdentification", + &asn_OP_SEQUENCE, + asn_DEF_VehicleIdentification_tags_1, + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + asn_DEF_VehicleIdentification_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleIdentification_1, + 2, /* Elements count */ + &asn_SPC_VehicleIdentification_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/VehicleLength.c b/vcits/srem/src/VehicleLength.c new file mode 100644 index 0000000..8ffcfd1 --- /dev/null +++ b/vcits/srem/src/VehicleLength.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "VehicleLength.h" + +static asn_TYPE_member_t asn_MBR_VehicleLength_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthConfidenceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthConfidenceIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthConfidenceIndication" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleLength_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vehicleLengthConfidenceIndication */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleLength_specs_1 = { + sizeof(struct VehicleLength), + offsetof(struct VehicleLength, _asn_ctx), + asn_MAP_VehicleLength_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_SEQUENCE, + asn_DEF_VehicleLength_tags_1, + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleLength_1, + 2, /* Elements count */ + &asn_SPC_VehicleLength_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/VehicleLengthConfidenceIndication.c b/vcits/srem/src/VehicleLengthConfidenceIndication.c new file mode 100644 index 0000000..828b864 --- /dev/null +++ b/vcits/srem/src/VehicleLengthConfidenceIndication.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "VehicleLengthConfidenceIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleLengthConfidenceIndication_value2enum_1[] = { + { 0, 16, "noTrailerPresent" }, + { 1, 29, "trailerPresentWithKnownLength" }, + { 2, 31, "trailerPresentWithUnknownLength" }, + { 3, 24, "trailerPresenceIsUnknown" }, + { 4, 11, "unavailable" } +}; +static const unsigned int asn_MAP_VehicleLengthConfidenceIndication_enum2value_1[] = { + 0, /* noTrailerPresent(0) */ + 3, /* trailerPresenceIsUnknown(3) */ + 1, /* trailerPresentWithKnownLength(1) */ + 2, /* trailerPresentWithUnknownLength(2) */ + 4 /* unavailable(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1 = { + asn_MAP_VehicleLengthConfidenceIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleLengthConfidenceIndication_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthConfidenceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication = { + "VehicleLengthConfidenceIndication", + "VehicleLengthConfidenceIndication", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleLengthConfidenceIndication_tags_1, + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthConfidenceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthConfidenceIndication_constr_1, &asn_PER_type_VehicleLengthConfidenceIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleLengthConfidenceIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/VehicleLengthValue.c b/vcits/srem/src/VehicleLengthValue.c new file mode 100644 index 0000000..6be919e --- /dev/null +++ b/vcits/srem/src/VehicleLengthValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "VehicleLengthValue.h" + +int +VehicleLengthValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (1..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue = { + "VehicleLengthValue", + "VehicleLengthValue", + &asn_OP_NativeInteger, + asn_DEF_VehicleLengthValue_tags_1, + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthValue_constr_1, &asn_PER_type_VehicleLengthValue_constr_1, VehicleLengthValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/VehicleMass.c b/vcits/srem/src/VehicleMass.c new file mode 100644 index 0000000..9a75a10 --- /dev/null +++ b/vcits/srem/src/VehicleMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "VehicleMass.h" + +int +VehicleMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1024)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleMass_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1024) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_VehicleMass_tags_1, + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleMass_constr_1, &asn_PER_type_VehicleMass_constr_1, VehicleMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/VehicleRole.c b/vcits/srem/src/VehicleRole.c new file mode 100644 index 0000000..3a9d230 --- /dev/null +++ b/vcits/srem/src/VehicleRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "VehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleRole_value2enum_1[] = { + { 0, 7, "default" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 6, "rescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 11, "agriculture" }, + { 9, 10, "commercial" }, + { 10, 8, "military" }, + { 11, 12, "roadOperator" }, + { 12, 4, "taxi" }, + { 13, 9, "reserved1" }, + { 14, 9, "reserved2" }, + { 15, 9, "reserved3" } +}; +static const unsigned int asn_MAP_VehicleRole_enum2value_1[] = { + 8, /* agriculture(8) */ + 9, /* commercial(9) */ + 3, /* dangerousGoods(3) */ + 0, /* default(0) */ + 6, /* emergency(6) */ + 10, /* military(10) */ + 1, /* publicTransport(1) */ + 5, /* rescue(5) */ + 13, /* reserved1(13) */ + 14, /* reserved2(14) */ + 15, /* reserved3(15) */ + 11, /* roadOperator(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 2, /* specialTransport(2) */ + 12 /* taxi(12) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_VehicleRole_specs_1 = { + asn_MAP_VehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleRole = { + "VehicleRole", + "VehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleRole_tags_1, + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + asn_DEF_VehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleRole_constr_1, &asn_PER_type_VehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/VehicleType.c b/vcits/srem/src/VehicleType.c new file mode 100644 index 0000000..07d5197 --- /dev/null +++ b/vcits/srem/src/VehicleType.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "VehicleType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 7, "unknown" }, + { 2, 7, "special" }, + { 3, 4, "moto" }, + { 4, 3, "car" }, + { 5, 8, "carOther" }, + { 6, 3, "bus" }, + { 7, 8, "axleCnt2" }, + { 8, 8, "axleCnt3" }, + { 9, 8, "axleCnt4" }, + { 10, 15, "axleCnt4Trailer" }, + { 11, 15, "axleCnt5Trailer" }, + { 12, 15, "axleCnt6Trailer" }, + { 13, 20, "axleCnt5MultiTrailer" }, + { 14, 20, "axleCnt6MultiTrailer" }, + { 15, 20, "axleCnt7MultiTrailer" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_VehicleType_enum2value_1[] = { + 7, /* axleCnt2(7) */ + 8, /* axleCnt3(8) */ + 9, /* axleCnt4(9) */ + 10, /* axleCnt4Trailer(10) */ + 13, /* axleCnt5MultiTrailer(13) */ + 11, /* axleCnt5Trailer(11) */ + 14, /* axleCnt6MultiTrailer(14) */ + 12, /* axleCnt6Trailer(12) */ + 15, /* axleCnt7MultiTrailer(15) */ + 6, /* bus(6) */ + 4, /* car(4) */ + 5, /* carOther(5) */ + 3, /* moto(3) */ + 0, /* none(0) */ + 2, /* special(2) */ + 1 /* unknown(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1 = { + asn_MAP_VehicleType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleType_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 17, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleType = { + "VehicleType", + "VehicleType", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleType_tags_1, + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + asn_DEF_VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleType_constr_1, &asn_PER_type_VehicleType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/VehicleWidth.c b/vcits/srem/src/VehicleWidth.c new file mode 100644 index 0000000..0c230d9 --- /dev/null +++ b/vcits/srem/src/VehicleWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "VehicleWidth.h" + +int +VehicleWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 62)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..62) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 62 } /* (1..62) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_VehicleWidth_tags_1, + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleWidth_constr_1, &asn_PER_type_VehicleWidth_constr_1, VehicleWidth_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/Velocity.c b/vcits/srem/src/Velocity.c new file mode 100644 index 0000000..4639296 --- /dev/null +++ b/vcits/srem/src/Velocity.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "Velocity.h" + +int +Velocity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 8191)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Velocity_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..8191) */, + -1}; +asn_per_constraints_t asn_PER_type_Velocity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 8191 } /* (0..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Velocity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Velocity = { + "Velocity", + "Velocity", + &asn_OP_NativeInteger, + asn_DEF_Velocity_tags_1, + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + asn_DEF_Velocity_tags_1, /* Same as above */ + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + { &asn_OER_type_Velocity_constr_1, &asn_PER_type_Velocity_constr_1, Velocity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/VerticalAcceleration.c b/vcits/srem/src/VerticalAcceleration.c new file mode 100644 index 0000000..1db2c1e --- /dev/null +++ b/vcits/srem/src/VerticalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "VerticalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_VerticalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VerticalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* verticalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* verticalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VerticalAcceleration_specs_1 = { + sizeof(struct VerticalAcceleration), + offsetof(struct VerticalAcceleration, _asn_ctx), + asn_MAP_VerticalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_VerticalAcceleration_tags_1, + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VerticalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_VerticalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/VerticalAccelerationValue.c b/vcits/srem/src/VerticalAccelerationValue.c new file mode 100644 index 0000000..3db349b --- /dev/null +++ b/vcits/srem/src/VerticalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "VerticalAccelerationValue.h" + +int +VerticalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VerticalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue = { + "VerticalAccelerationValue", + "VerticalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_VerticalAccelerationValue_tags_1, + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_VerticalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VerticalAccelerationValue_constr_1, &asn_PER_type_VerticalAccelerationValue_constr_1, VerticalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/WMInumber.c b/vcits/srem/src/WMInumber.c new file mode 100644 index 0000000..fcb00ce --- /dev/null +++ b/vcits/srem/src/WMInumber.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "WMInumber.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +WMInumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 3) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WMInumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +asn_per_constraints_t asn_PER_type_WMInumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_WMInumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WMInumber = { + "WMInumber", + "WMInumber", + &asn_OP_IA5String, + asn_DEF_WMInumber_tags_1, + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + asn_DEF_WMInumber_tags_1, /* Same as above */ + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + { &asn_OER_type_WMInumber_constr_1, &asn_PER_type_WMInumber_constr_1, WMInumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/WaitOnStopline.c b/vcits/srem/src/WaitOnStopline.c new file mode 100644 index 0000000..a378737 --- /dev/null +++ b/vcits/srem/src/WaitOnStopline.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "WaitOnStopline.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_WaitOnStopline_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WaitOnStopline = { + "WaitOnStopline", + "WaitOnStopline", + &asn_OP_BOOLEAN, + asn_DEF_WaitOnStopline_tags_1, + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + asn_DEF_WaitOnStopline_tags_1, /* Same as above */ + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/WheelBaseVehicle.c b/vcits/srem/src/WheelBaseVehicle.c new file mode 100644 index 0000000..99e7616 --- /dev/null +++ b/vcits/srem/src/WheelBaseVehicle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "WheelBaseVehicle.h" + +int +WheelBaseVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WheelBaseVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle = { + "WheelBaseVehicle", + "WheelBaseVehicle", + &asn_OP_NativeInteger, + asn_DEF_WheelBaseVehicle_tags_1, + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + asn_DEF_WheelBaseVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_WheelBaseVehicle_constr_1, &asn_PER_type_WheelBaseVehicle_constr_1, WheelBaseVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/WrongWayDrivingSubCauseCode.c b/vcits/srem/src/WrongWayDrivingSubCauseCode.c new file mode 100644 index 0000000..6d356c4 --- /dev/null +++ b/vcits/srem/src/WrongWayDrivingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "WrongWayDrivingSubCauseCode.h" + +int +WrongWayDrivingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WrongWayDrivingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode = { + "WrongWayDrivingSubCauseCode", + "WrongWayDrivingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_WrongWayDrivingSubCauseCode_constr_1, &asn_PER_type_WrongWayDrivingSubCauseCode_constr_1, WrongWayDrivingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/YawRate.c b/vcits/srem/src/YawRate.c new file mode 100644 index 0000000..054f74f --- /dev/null +++ b/vcits/srem/src/YawRate.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "YawRate.h" + +static asn_TYPE_member_t asn_MBR_YawRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_YawRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yawRateValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* yawRateConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_YawRate_specs_1 = { + sizeof(struct YawRate), + offsetof(struct YawRate, _asn_ctx), + asn_MAP_YawRate_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_YawRate = { + "YawRate", + "YawRate", + &asn_OP_SEQUENCE, + asn_DEF_YawRate_tags_1, + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + asn_DEF_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_YawRate_1, + 2, /* Elements count */ + &asn_SPC_YawRate_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/YawRateConfidence.c b/vcits/srem/src/YawRateConfidence.c new file mode 100644 index 0000000..0ecc9cd --- /dev/null +++ b/vcits/srem/src/YawRateConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "YawRateConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_YawRateConfidence_value2enum_1[] = { + { 0, 13, "degSec-000-01" }, + { 1, 13, "degSec-000-05" }, + { 2, 13, "degSec-000-10" }, + { 3, 13, "degSec-001-00" }, + { 4, 13, "degSec-005-00" }, + { 5, 13, "degSec-010-00" }, + { 6, 13, "degSec-100-00" }, + { 7, 10, "outOfRange" }, + { 8, 11, "unavailable" } +}; +static const unsigned int asn_MAP_YawRateConfidence_enum2value_1[] = { + 0, /* degSec-000-01(0) */ + 1, /* degSec-000-05(1) */ + 2, /* degSec-000-10(2) */ + 3, /* degSec-001-00(3) */ + 4, /* degSec-005-00(4) */ + 5, /* degSec-010-00(5) */ + 6, /* degSec-100-00(6) */ + 7, /* outOfRange(7) */ + 8 /* unavailable(8) */ +}; +const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1 = { + asn_MAP_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_YawRateConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 9, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_YawRateConfidence_tags_1, + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateConfidence_constr_1, &asn_PER_type_YawRateConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/srem/src/YawRateValue.c b/vcits/srem/src/YawRateValue.c new file mode 100644 index 0000000..b832bac --- /dev/null +++ b/vcits/srem/src/YawRateValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "YawRateValue.h" + +int +YawRateValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32766 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32766..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_YawRateValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32766, 32767 } /* (-32766..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_YawRateValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateValue = { + "YawRateValue", + "YawRateValue", + &asn_OP_NativeInteger, + asn_DEF_YawRateValue_tags_1, + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + asn_DEF_YawRateValue_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateValue_constr_1, &asn_PER_type_YawRateValue_constr_1, YawRateValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/srem/src/ZoneLength.c b/vcits/srem/src/ZoneLength.c new file mode 100644 index 0000000..3db898a --- /dev/null +++ b/vcits/srem/src/ZoneLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/srem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SREM` + */ + +#include "ZoneLength.h" + +int +ZoneLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ZoneLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..10000) */, + -1}; +asn_per_constraints_t asn_PER_type_ZoneLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10000 } /* (0..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ZoneLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ZoneLength = { + "ZoneLength", + "ZoneLength", + &asn_OP_NativeInteger, + asn_DEF_ZoneLength_tags_1, + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + asn_DEF_ZoneLength_tags_1, /* Same as above */ + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + { &asn_OER_type_ZoneLength_constr_1, &asn_PER_type_ZoneLength_constr_1, ZoneLength_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/AccelerationConfidence.h b/vcits/ssem/AccelerationConfidence.h new file mode 100644 index 0000000..5461295 --- /dev/null +++ b/vcits/ssem/AccelerationConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AccelerationConfidence_H_ +#define _AccelerationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationConfidence { + AccelerationConfidence_pointOneMeterPerSecSquared = 1, + AccelerationConfidence_outOfRange = 101, + AccelerationConfidence_unavailable = 102 +} e_AccelerationConfidence; + +/* AccelerationConfidence */ +typedef long AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence; +asn_struct_free_f AccelerationConfidence_free; +asn_struct_print_f AccelerationConfidence_print; +asn_constr_check_f AccelerationConfidence_constraint; +ber_type_decoder_f AccelerationConfidence_decode_ber; +der_type_encoder_f AccelerationConfidence_encode_der; +xer_type_decoder_f AccelerationConfidence_decode_xer; +xer_type_encoder_f AccelerationConfidence_encode_xer; +oer_type_decoder_f AccelerationConfidence_decode_oer; +oer_type_encoder_f AccelerationConfidence_encode_oer; +per_type_decoder_f AccelerationConfidence_decode_uper; +per_type_encoder_f AccelerationConfidence_encode_uper; +per_type_decoder_f AccelerationConfidence_decode_aper; +per_type_encoder_f AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationConfidence_H_ */ +#include diff --git a/vcits/ssem/AccelerationControl.h b/vcits/ssem/AccelerationControl.h new file mode 100644 index 0000000..a1b90b3 --- /dev/null +++ b/vcits/ssem/AccelerationControl.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AccelerationControl_H_ +#define _AccelerationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationControl { + AccelerationControl_brakePedalEngaged = 0, + AccelerationControl_gasPedalEngaged = 1, + AccelerationControl_emergencyBrakeEngaged = 2, + AccelerationControl_collisionWarningEngaged = 3, + AccelerationControl_accEngaged = 4, + AccelerationControl_cruiseControlEngaged = 5, + AccelerationControl_speedLimiterEngaged = 6 +} e_AccelerationControl; + +/* AccelerationControl */ +typedef BIT_STRING_t AccelerationControl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccelerationControl; +asn_struct_free_f AccelerationControl_free; +asn_struct_print_f AccelerationControl_print; +asn_constr_check_f AccelerationControl_constraint; +ber_type_decoder_f AccelerationControl_decode_ber; +der_type_encoder_f AccelerationControl_encode_der; +xer_type_decoder_f AccelerationControl_decode_xer; +xer_type_encoder_f AccelerationControl_encode_xer; +oer_type_decoder_f AccelerationControl_decode_oer; +oer_type_encoder_f AccelerationControl_encode_oer; +per_type_decoder_f AccelerationControl_decode_uper; +per_type_encoder_f AccelerationControl_encode_uper; +per_type_decoder_f AccelerationControl_decode_aper; +per_type_encoder_f AccelerationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationControl_H_ */ +#include diff --git a/vcits/ssem/AccidentSubCauseCode.h b/vcits/ssem/AccidentSubCauseCode.h new file mode 100644 index 0000000..9a51c1d --- /dev/null +++ b/vcits/ssem/AccidentSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AccidentSubCauseCode_H_ +#define _AccidentSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccidentSubCauseCode { + AccidentSubCauseCode_unavailable = 0, + AccidentSubCauseCode_multiVehicleAccident = 1, + AccidentSubCauseCode_heavyAccident = 2, + AccidentSubCauseCode_accidentInvolvingLorry = 3, + AccidentSubCauseCode_accidentInvolvingBus = 4, + AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5, + AccidentSubCauseCode_accidentOnOppositeLane = 6, + AccidentSubCauseCode_unsecuredAccident = 7, + AccidentSubCauseCode_assistanceRequested = 8 +} e_AccidentSubCauseCode; + +/* AccidentSubCauseCode */ +typedef long AccidentSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode; +asn_struct_free_f AccidentSubCauseCode_free; +asn_struct_print_f AccidentSubCauseCode_print; +asn_constr_check_f AccidentSubCauseCode_constraint; +ber_type_decoder_f AccidentSubCauseCode_decode_ber; +der_type_encoder_f AccidentSubCauseCode_encode_der; +xer_type_decoder_f AccidentSubCauseCode_decode_xer; +xer_type_encoder_f AccidentSubCauseCode_encode_xer; +oer_type_decoder_f AccidentSubCauseCode_decode_oer; +oer_type_encoder_f AccidentSubCauseCode_encode_oer; +per_type_decoder_f AccidentSubCauseCode_decode_uper; +per_type_encoder_f AccidentSubCauseCode_encode_uper; +per_type_decoder_f AccidentSubCauseCode_decode_aper; +per_type_encoder_f AccidentSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccidentSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/ActionID.h b/vcits/ssem/ActionID.h new file mode 100644 index 0000000..e03baad --- /dev/null +++ b/vcits/ssem/ActionID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ActionID_H_ +#define _ActionID_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "SequenceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ActionID */ +typedef struct ActionID { + StationID_t originatingStationID; + SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ActionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ActionID; + +#ifdef __cplusplus +} +#endif + +#endif /* _ActionID_H_ */ +#include diff --git a/vcits/ssem/AdverseWeatherCondition-AdhesionSubCauseCode.h b/vcits/ssem/AdverseWeatherCondition-AdhesionSubCauseCode.h new file mode 100644 index 0000000..13813ce --- /dev/null +++ b/vcits/ssem/AdverseWeatherCondition-AdhesionSubCauseCode.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AdverseWeatherCondition_AdhesionSubCauseCode_H_ +#define _AdverseWeatherCondition_AdhesionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_AdhesionSubCauseCode { + AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1, + AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2, + AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3, + AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4, + AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5, + AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6, + AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7, + AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8, + AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9, + AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10 +} e_AdverseWeatherCondition_AdhesionSubCauseCode; + +/* AdverseWeatherCondition-AdhesionSubCauseCode */ +typedef long AdverseWeatherCondition_AdhesionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_AdhesionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_AdhesionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_AdhesionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_AdhesionSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h b/vcits/ssem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 0000000..f3dfb5f --- /dev/null +++ b/vcits/ssem/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ +#define _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode { + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5, + AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6 +} e_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; + +/* AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */ +typedef long AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/AdverseWeatherCondition-PrecipitationSubCauseCode.h b/vcits/ssem/AdverseWeatherCondition-PrecipitationSubCauseCode.h new file mode 100644 index 0000000..c0121cf --- /dev/null +++ b/vcits/ssem/AdverseWeatherCondition-PrecipitationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ +#define _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_PrecipitationSubCauseCode { + AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1, + AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2, + AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3 +} e_AdverseWeatherCondition_PrecipitationSubCauseCode; + +/* AdverseWeatherCondition-PrecipitationSubCauseCode */ +typedef long AdverseWeatherCondition_PrecipitationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode; +asn_struct_free_f AdverseWeatherCondition_PrecipitationSubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_PrecipitationSubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_PrecipitationSubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/AdverseWeatherCondition-VisibilitySubCauseCode.h b/vcits/ssem/AdverseWeatherCondition-VisibilitySubCauseCode.h new file mode 100644 index 0000000..a3aa00a --- /dev/null +++ b/vcits/ssem/AdverseWeatherCondition-VisibilitySubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AdverseWeatherCondition_VisibilitySubCauseCode_H_ +#define _AdverseWeatherCondition_VisibilitySubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdverseWeatherCondition_VisibilitySubCauseCode { + AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0, + AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1, + AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2, + AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4, + AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5, + AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6, + AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7, + AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8 +} e_AdverseWeatherCondition_VisibilitySubCauseCode; + +/* AdverseWeatherCondition-VisibilitySubCauseCode */ +typedef long AdverseWeatherCondition_VisibilitySubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode; +asn_struct_free_f AdverseWeatherCondition_VisibilitySubCauseCode_free; +asn_struct_print_f AdverseWeatherCondition_VisibilitySubCauseCode_print; +asn_constr_check_f AdverseWeatherCondition_VisibilitySubCauseCode_constraint; +ber_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_ber; +der_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_der; +xer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_xer; +xer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_xer; +oer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_oer; +oer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_oer; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper; +per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper; +per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdverseWeatherCondition_VisibilitySubCauseCode_H_ */ +#include diff --git a/vcits/ssem/AdvisorySpeed.h b/vcits/ssem/AdvisorySpeed.h new file mode 100644 index 0000000..b0c6be1 --- /dev/null +++ b/vcits/ssem/AdvisorySpeed.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AdvisorySpeed_H_ +#define _AdvisorySpeed_H_ + + +#include + +/* Including external dependencies */ +#include "AdvisorySpeedType.h" +#include "SpeedAdvice.h" +#include "SpeedConfidenceDSRC.h" +#include "ZoneLength.h" +#include "RestrictionClassID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_AdvisorySpeed; + +/* AdvisorySpeed */ +typedef struct AdvisorySpeed { + AdvisorySpeedType_t type; + SpeedAdvice_t *speed; /* OPTIONAL */ + SpeedConfidenceDSRC_t *confidence; /* OPTIONAL */ + ZoneLength_t *distance; /* OPTIONAL */ + RestrictionClassID_t *Class; /* OPTIONAL */ + struct AdvisorySpeed__regional { + A_SEQUENCE_OF(struct Reg_AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeed_H_ */ +#include diff --git a/vcits/ssem/AdvisorySpeedList.h b/vcits/ssem/AdvisorySpeedList.h new file mode 100644 index 0000000..e8ce32f --- /dev/null +++ b/vcits/ssem/AdvisorySpeedList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AdvisorySpeedList_H_ +#define _AdvisorySpeedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AdvisorySpeed; + +/* AdvisorySpeedList */ +typedef struct AdvisorySpeedList { + A_SEQUENCE_OF(struct AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList; +extern asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[1]; +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedList_H_ */ +#include diff --git a/vcits/ssem/AdvisorySpeedType.h b/vcits/ssem/AdvisorySpeedType.h new file mode 100644 index 0000000..5fc910e --- /dev/null +++ b/vcits/ssem/AdvisorySpeedType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AdvisorySpeedType_H_ +#define _AdvisorySpeedType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdvisorySpeedType { + AdvisorySpeedType_none = 0, + AdvisorySpeedType_greenwave = 1, + AdvisorySpeedType_ecoDrive = 2, + AdvisorySpeedType_transit = 3 + /* + * Enumeration is extensible + */ +} e_AdvisorySpeedType; + +/* AdvisorySpeedType */ +typedef long AdvisorySpeedType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType; +extern const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1; +asn_struct_free_f AdvisorySpeedType_free; +asn_struct_print_f AdvisorySpeedType_print; +asn_constr_check_f AdvisorySpeedType_constraint; +ber_type_decoder_f AdvisorySpeedType_decode_ber; +der_type_encoder_f AdvisorySpeedType_encode_der; +xer_type_decoder_f AdvisorySpeedType_decode_xer; +xer_type_encoder_f AdvisorySpeedType_encode_xer; +oer_type_decoder_f AdvisorySpeedType_decode_oer; +oer_type_encoder_f AdvisorySpeedType_encode_oer; +per_type_decoder_f AdvisorySpeedType_decode_uper; +per_type_encoder_f AdvisorySpeedType_encode_uper; +per_type_decoder_f AdvisorySpeedType_decode_aper; +per_type_encoder_f AdvisorySpeedType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedType_H_ */ +#include diff --git a/vcits/ssem/AllowedManeuvers.h b/vcits/ssem/AllowedManeuvers.h new file mode 100644 index 0000000..3d21818 --- /dev/null +++ b/vcits/ssem/AllowedManeuvers.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AllowedManeuvers_H_ +#define _AllowedManeuvers_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AllowedManeuvers { + AllowedManeuvers_maneuverStraightAllowed = 0, + AllowedManeuvers_maneuverLeftAllowed = 1, + AllowedManeuvers_maneuverRightAllowed = 2, + AllowedManeuvers_maneuverUTurnAllowed = 3, + AllowedManeuvers_maneuverLeftTurnOnRedAllowed = 4, + AllowedManeuvers_maneuverRightTurnOnRedAllowed = 5, + AllowedManeuvers_maneuverLaneChangeAllowed = 6, + AllowedManeuvers_maneuverNoStoppingAllowed = 7, + AllowedManeuvers_yieldAllwaysRequired = 8, + AllowedManeuvers_goWithHalt = 9, + AllowedManeuvers_caution = 10, + AllowedManeuvers_reserved1 = 11 +} e_AllowedManeuvers; + +/* AllowedManeuvers */ +typedef BIT_STRING_t AllowedManeuvers_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers; +asn_struct_free_f AllowedManeuvers_free; +asn_struct_print_f AllowedManeuvers_print; +asn_constr_check_f AllowedManeuvers_constraint; +ber_type_decoder_f AllowedManeuvers_decode_ber; +der_type_encoder_f AllowedManeuvers_encode_der; +xer_type_decoder_f AllowedManeuvers_decode_xer; +xer_type_encoder_f AllowedManeuvers_encode_xer; +oer_type_decoder_f AllowedManeuvers_decode_oer; +oer_type_encoder_f AllowedManeuvers_encode_oer; +per_type_decoder_f AllowedManeuvers_decode_uper; +per_type_encoder_f AllowedManeuvers_encode_uper; +per_type_decoder_f AllowedManeuvers_decode_aper; +per_type_encoder_f AllowedManeuvers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AllowedManeuvers_H_ */ +#include diff --git a/vcits/ssem/AlphabetIndicator.h b/vcits/ssem/AlphabetIndicator.h new file mode 100644 index 0000000..a92b59c --- /dev/null +++ b/vcits/ssem/AlphabetIndicator.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AlphabetIndicator_H_ +#define _AlphabetIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AlphabetIndicator { + AlphabetIndicator_latinAlphabetNo1 = 0, + AlphabetIndicator_latinAlphabetNo2 = 1, + AlphabetIndicator_latinAlphabetNo3 = 2, + AlphabetIndicator_latinAlphabetNo4 = 3, + AlphabetIndicator_latinCyrillicAlphabet = 4, + AlphabetIndicator_latinArabicAlphabet = 5, + AlphabetIndicator_latinGreekAlphabet = 6, + AlphabetIndicator_latinHebrewAlphabet = 7, + AlphabetIndicator_latinAlphabetNo5 = 8, + AlphabetIndicator_latinAlphabetNo6 = 9, + AlphabetIndicator_twoOctetBMP = 10, + AlphabetIndicator_fourOctetCanonical = 11 +} e_AlphabetIndicator; + +/* AlphabetIndicator */ +typedef long AlphabetIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AlphabetIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AlphabetIndicator; +asn_struct_free_f AlphabetIndicator_free; +asn_struct_print_f AlphabetIndicator_print; +asn_constr_check_f AlphabetIndicator_constraint; +ber_type_decoder_f AlphabetIndicator_decode_ber; +der_type_encoder_f AlphabetIndicator_encode_der; +xer_type_decoder_f AlphabetIndicator_decode_xer; +xer_type_encoder_f AlphabetIndicator_encode_xer; +oer_type_decoder_f AlphabetIndicator_decode_oer; +oer_type_encoder_f AlphabetIndicator_encode_oer; +per_type_decoder_f AlphabetIndicator_decode_uper; +per_type_encoder_f AlphabetIndicator_encode_uper; +per_type_decoder_f AlphabetIndicator_decode_aper; +per_type_encoder_f AlphabetIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AlphabetIndicator_H_ */ +#include diff --git a/vcits/ssem/Altitude.h b/vcits/ssem/Altitude.h new file mode 100644 index 0000000..ac82106 --- /dev/null +++ b/vcits/ssem/Altitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Altitude_H_ +#define _Altitude_H_ + + +#include + +/* Including external dependencies */ +#include "AltitudeValue.h" +#include "AltitudeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Altitude */ +typedef struct Altitude { + AltitudeValue_t altitudeValue; + AltitudeConfidence_t altitudeConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Altitude_H_ */ +#include diff --git a/vcits/ssem/AltitudeConfidence.h b/vcits/ssem/AltitudeConfidence.h new file mode 100644 index 0000000..ccf6943 --- /dev/null +++ b/vcits/ssem/AltitudeConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AltitudeConfidence_H_ +#define _AltitudeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeConfidence { + AltitudeConfidence_alt_000_01 = 0, + AltitudeConfidence_alt_000_02 = 1, + AltitudeConfidence_alt_000_05 = 2, + AltitudeConfidence_alt_000_10 = 3, + AltitudeConfidence_alt_000_20 = 4, + AltitudeConfidence_alt_000_50 = 5, + AltitudeConfidence_alt_001_00 = 6, + AltitudeConfidence_alt_002_00 = 7, + AltitudeConfidence_alt_005_00 = 8, + AltitudeConfidence_alt_010_00 = 9, + AltitudeConfidence_alt_020_00 = 10, + AltitudeConfidence_alt_050_00 = 11, + AltitudeConfidence_alt_100_00 = 12, + AltitudeConfidence_alt_200_00 = 13, + AltitudeConfidence_outOfRange = 14, + AltitudeConfidence_unavailable = 15 +} e_AltitudeConfidence; + +/* AltitudeConfidence */ +typedef long AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1; +asn_struct_free_f AltitudeConfidence_free; +asn_struct_print_f AltitudeConfidence_print; +asn_constr_check_f AltitudeConfidence_constraint; +ber_type_decoder_f AltitudeConfidence_decode_ber; +der_type_encoder_f AltitudeConfidence_encode_der; +xer_type_decoder_f AltitudeConfidence_decode_xer; +xer_type_encoder_f AltitudeConfidence_encode_xer; +oer_type_decoder_f AltitudeConfidence_decode_oer; +oer_type_encoder_f AltitudeConfidence_encode_oer; +per_type_decoder_f AltitudeConfidence_decode_uper; +per_type_encoder_f AltitudeConfidence_encode_uper; +per_type_decoder_f AltitudeConfidence_decode_aper; +per_type_encoder_f AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeConfidence_H_ */ +#include diff --git a/vcits/ssem/AltitudeValue.h b/vcits/ssem/AltitudeValue.h new file mode 100644 index 0000000..aef2496 --- /dev/null +++ b/vcits/ssem/AltitudeValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AltitudeValue_H_ +#define _AltitudeValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeValue { + AltitudeValue_referenceEllipsoidSurface = 0, + AltitudeValue_oneCentimeter = 1, + AltitudeValue_unavailable = 800001 +} e_AltitudeValue; + +/* AltitudeValue */ +typedef long AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeValue; +asn_struct_free_f AltitudeValue_free; +asn_struct_print_f AltitudeValue_print; +asn_constr_check_f AltitudeValue_constraint; +ber_type_decoder_f AltitudeValue_decode_ber; +der_type_encoder_f AltitudeValue_encode_der; +xer_type_decoder_f AltitudeValue_decode_xer; +xer_type_encoder_f AltitudeValue_encode_xer; +oer_type_decoder_f AltitudeValue_decode_oer; +oer_type_encoder_f AltitudeValue_encode_oer; +per_type_decoder_f AltitudeValue_decode_uper; +per_type_encoder_f AltitudeValue_encode_uper; +per_type_decoder_f AltitudeValue_decode_aper; +per_type_encoder_f AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeValue_H_ */ +#include diff --git a/vcits/ssem/Angle.h b/vcits/ssem/Angle.h new file mode 100644 index 0000000..2913f3d --- /dev/null +++ b/vcits/ssem/Angle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Angle_H_ +#define _Angle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Angle */ +typedef long Angle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Angle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Angle; +asn_struct_free_f Angle_free; +asn_struct_print_f Angle_print; +asn_constr_check_f Angle_constraint; +ber_type_decoder_f Angle_decode_ber; +der_type_encoder_f Angle_encode_der; +xer_type_decoder_f Angle_decode_xer; +xer_type_encoder_f Angle_encode_xer; +oer_type_decoder_f Angle_decode_oer; +oer_type_encoder_f Angle_encode_oer; +per_type_decoder_f Angle_decode_uper; +per_type_encoder_f Angle_encode_uper; +per_type_decoder_f Angle_decode_aper; +per_type_encoder_f Angle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Angle_H_ */ +#include diff --git a/vcits/ssem/AntennaOffsetSet.h b/vcits/ssem/AntennaOffsetSet.h new file mode 100644 index 0000000..f81a801 --- /dev/null +++ b/vcits/ssem/AntennaOffsetSet.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AntennaOffsetSet_H_ +#define _AntennaOffsetSet_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B12.h" +#include "Offset-B09.h" +#include "Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AntennaOffsetSet */ +typedef struct AntennaOffsetSet { + Offset_B12_t antOffsetX; + Offset_B09_t antOffsetY; + Offset_B10_t antOffsetZ; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AntennaOffsetSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet; +extern asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1; +extern asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AntennaOffsetSet_H_ */ +#include diff --git a/vcits/ssem/ApproachID.h b/vcits/ssem/ApproachID.h new file mode 100644 index 0000000..a397b38 --- /dev/null +++ b/vcits/ssem/ApproachID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ApproachID_H_ +#define _ApproachID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ApproachID */ +typedef long ApproachID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ApproachID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ApproachID; +asn_struct_free_f ApproachID_free; +asn_struct_print_f ApproachID_print; +asn_constr_check_f ApproachID_constraint; +ber_type_decoder_f ApproachID_decode_ber; +der_type_encoder_f ApproachID_encode_der; +xer_type_decoder_f ApproachID_decode_xer; +xer_type_encoder_f ApproachID_encode_xer; +oer_type_decoder_f ApproachID_decode_oer; +oer_type_encoder_f ApproachID_encode_oer; +per_type_decoder_f ApproachID_decode_uper; +per_type_encoder_f ApproachID_encode_uper; +per_type_decoder_f ApproachID_decode_aper; +per_type_encoder_f ApproachID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ApproachID_H_ */ +#include diff --git a/vcits/ssem/AviEriDateTime.h b/vcits/ssem/AviEriDateTime.h new file mode 100644 index 0000000..2bec97a --- /dev/null +++ b/vcits/ssem/AviEriDateTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _AviEriDateTime_H_ +#define _AviEriDateTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AviEriDateTime */ +typedef OCTET_STRING_t AviEriDateTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AviEriDateTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AviEriDateTime; +asn_struct_free_f AviEriDateTime_free; +asn_struct_print_f AviEriDateTime_print; +asn_constr_check_f AviEriDateTime_constraint; +ber_type_decoder_f AviEriDateTime_decode_ber; +der_type_encoder_f AviEriDateTime_encode_der; +xer_type_decoder_f AviEriDateTime_decode_xer; +xer_type_encoder_f AviEriDateTime_encode_xer; +oer_type_decoder_f AviEriDateTime_decode_oer; +oer_type_encoder_f AviEriDateTime_encode_oer; +per_type_decoder_f AviEriDateTime_decode_uper; +per_type_encoder_f AviEriDateTime_encode_uper; +per_type_decoder_f AviEriDateTime_decode_aper; +per_type_encoder_f AviEriDateTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AviEriDateTime_H_ */ +#include diff --git a/vcits/ssem/BasicVehicleRole.h b/vcits/ssem/BasicVehicleRole.h new file mode 100644 index 0000000..4529bbf --- /dev/null +++ b/vcits/ssem/BasicVehicleRole.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _BasicVehicleRole_H_ +#define _BasicVehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BasicVehicleRole { + BasicVehicleRole_basicVehicle = 0, + BasicVehicleRole_publicTransport = 1, + BasicVehicleRole_specialTransport = 2, + BasicVehicleRole_dangerousGoods = 3, + BasicVehicleRole_roadWork = 4, + BasicVehicleRole_roadRescue = 5, + BasicVehicleRole_emergency = 6, + BasicVehicleRole_safetyCar = 7, + BasicVehicleRole_none_unknown = 8, + BasicVehicleRole_truck = 9, + BasicVehicleRole_motorcycle = 10, + BasicVehicleRole_roadSideSource = 11, + BasicVehicleRole_police = 12, + BasicVehicleRole_fire = 13, + BasicVehicleRole_ambulance = 14, + BasicVehicleRole_dot = 15, + BasicVehicleRole_transit = 16, + BasicVehicleRole_slowMoving = 17, + BasicVehicleRole_stopNgo = 18, + BasicVehicleRole_cyclist = 19, + BasicVehicleRole_pedestrian = 20, + BasicVehicleRole_nonMotorized = 21, + BasicVehicleRole_military = 22 + /* + * Enumeration is extensible + */ +} e_BasicVehicleRole; + +/* BasicVehicleRole */ +typedef long BasicVehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1; +asn_struct_free_f BasicVehicleRole_free; +asn_struct_print_f BasicVehicleRole_print; +asn_constr_check_f BasicVehicleRole_constraint; +ber_type_decoder_f BasicVehicleRole_decode_ber; +der_type_encoder_f BasicVehicleRole_encode_der; +xer_type_decoder_f BasicVehicleRole_decode_xer; +xer_type_encoder_f BasicVehicleRole_encode_xer; +oer_type_decoder_f BasicVehicleRole_decode_oer; +oer_type_encoder_f BasicVehicleRole_encode_oer; +per_type_decoder_f BasicVehicleRole_decode_uper; +per_type_encoder_f BasicVehicleRole_encode_uper; +per_type_decoder_f BasicVehicleRole_decode_aper; +per_type_encoder_f BasicVehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicVehicleRole_H_ */ +#include diff --git a/vcits/ssem/BatteryStatus.h b/vcits/ssem/BatteryStatus.h new file mode 100644 index 0000000..9321f3e --- /dev/null +++ b/vcits/ssem/BatteryStatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _BatteryStatus_H_ +#define _BatteryStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BatteryStatus { + BatteryStatus_unknown = 0, + BatteryStatus_critical = 1, + BatteryStatus_low = 2, + BatteryStatus_good = 3 + /* + * Enumeration is extensible + */ +} e_BatteryStatus; + +/* BatteryStatus */ +typedef long BatteryStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BatteryStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BatteryStatus; +extern const asn_INTEGER_specifics_t asn_SPC_BatteryStatus_specs_1; +asn_struct_free_f BatteryStatus_free; +asn_struct_print_f BatteryStatus_print; +asn_constr_check_f BatteryStatus_constraint; +ber_type_decoder_f BatteryStatus_decode_ber; +der_type_encoder_f BatteryStatus_encode_der; +xer_type_decoder_f BatteryStatus_decode_xer; +xer_type_encoder_f BatteryStatus_encode_xer; +oer_type_decoder_f BatteryStatus_decode_oer; +oer_type_encoder_f BatteryStatus_encode_oer; +per_type_decoder_f BatteryStatus_decode_uper; +per_type_encoder_f BatteryStatus_encode_uper; +per_type_decoder_f BatteryStatus_decode_aper; +per_type_encoder_f BatteryStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BatteryStatus_H_ */ +#include diff --git a/vcits/ssem/CMakeLists.txt b/vcits/ssem/CMakeLists.txt new file mode 100644 index 0000000..ebf52e2 --- /dev/null +++ b/vcits/ssem/CMakeLists.txt @@ -0,0 +1,380 @@ +# This file is auto-generated by command-cxx.sh +cmake_minimum_required(VERSION 3.9) + +message(STATUS "--> Configure build of |-vcits-ssem") + +project(vcits-ssem VERSION 0.2 DESCRIPTION "ssem part of vcits") + +add_library(vcits-ssem STATIC +src/AccelerationConfidence.c +src/AccelerationControl.c +src/AccidentSubCauseCode.c +src/ActionID.c +src/AdverseWeatherCondition-AdhesionSubCauseCode.c +src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c +src/AdverseWeatherCondition-PrecipitationSubCauseCode.c +src/AdverseWeatherCondition-VisibilitySubCauseCode.c +src/AdvisorySpeed.c +src/AdvisorySpeedList.c +src/AdvisorySpeedType.c +src/AllowedManeuvers.c +src/AlphabetIndicator.c +src/Altitude.c +src/AltitudeConfidence.c +src/AltitudeValue.c +src/Angle.c +src/AntennaOffsetSet.c +src/ApproachID.c +src/AviEriDateTime.c +src/BasicVehicleRole.c +src/BatteryStatus.c +src/CS1.c +src/CS2.c +src/CS3.c +src/CS4.c +src/CS5.c +src/CS7.c +src/CS8.c +src/CauseCode.c +src/CauseCodeType.c +src/CenDsrcTollingZone.c +src/CenDsrcTollingZoneID.c +src/ClosedLanes.c +src/CollisionRiskSubCauseCode.c +src/ComputedLane.c +src/ConnectingLane.c +src/Connection.c +src/ConnectionManeuverAssist-addGrpC.c +src/ConnectionManeuverAssist.c +src/ConnectionTrajectory-addGrpC.c +src/ConnectsToList.c +src/CountryCode.c +src/Curvature.c +src/CurvatureCalculationMode.c +src/CurvatureConfidence.c +src/CurvatureValue.c +src/DDateTime.c +src/DDay.c +src/DHour.c +src/DMinute.c +src/DMonth.c +src/DOffset.c +src/DSRCmsgID.c +src/DSecond.c +src/DYear.c +src/DangerousEndOfQueueSubCauseCode.c +src/DangerousGoodsBasic.c +src/DangerousGoodsExtended.c +src/DangerousSituationSubCauseCode.c +src/DataParameters.c +src/DeltaAltitude.c +src/DeltaAngle.c +src/DeltaLatitude.c +src/DeltaLongitude.c +src/DeltaReferencePosition.c +src/DeltaTime.c +src/DescriptiveName.c +src/DigitalMap.c +src/DriveDirection.c +src/DrivenLineOffsetLg.c +src/DrivenLineOffsetSm.c +src/DrivingLaneStatus.c +src/Elevation.c +src/ElevationConfidence.c +src/EmbarkationStatus.c +src/EmergencyPriority.c +src/EmergencyVehicleApproachingSubCauseCode.c +src/EmissionType.c +src/EnabledLaneList.c +src/EnergyStorageType.c +src/EuVehicleCategoryCode.c +src/EuVehicleCategoryL.c +src/EuVehicleCategoryM.c +src/EuVehicleCategoryN.c +src/EuVehicleCategoryO.c +src/EventHistory.c +src/EventPoint.c +src/ExceptionalCondition.c +src/ExteriorLights.c +src/FreightContainerData.c +src/FuelType.c +src/FullPositionVector.c +src/GNSSstatus.c +src/GenericLane.c +src/GeoGraphicalLimit.c +src/HardShoulderStatus.c +src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c +src/HazardousLocation-DangerousCurveSubCauseCode.c +src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c +src/HazardousLocation-SurfaceConditionSubCauseCode.c +src/Heading.c +src/HeadingConfidence.c +src/HeadingConfidenceDSRC.c +src/HeadingDSRC.c +src/HeadingValue.c +src/HeightLonCarr.c +src/HumanPresenceOnTheRoadSubCauseCode.c +src/HumanProblemSubCauseCode.c +src/InformationQuality.c +src/IntersectionAccessPoint.c +src/IntersectionGeometry.c +src/IntersectionGeometryList.c +src/IntersectionID.c +src/IntersectionReferenceID.c +src/IntersectionState-addGrpC.c +src/IntersectionState.c +src/IntersectionStateList.c +src/IntersectionStatusObject.c +src/Iso3833VehicleType.c +src/IssuerIdentifier.c +src/ItineraryPath.c +src/ItsPduHeader.c +src/ItsStationPosition.c +src/ItsStationPositionList.c +src/LaneAttributes-Barrier.c +src/LaneAttributes-Bike.c +src/LaneAttributes-Crosswalk.c +src/LaneAttributes-Parking.c +src/LaneAttributes-Sidewalk.c +src/LaneAttributes-Striping.c +src/LaneAttributes-TrackedVehicle.c +src/LaneAttributes-Vehicle.c +src/LaneAttributes-addGrpC.c +src/LaneAttributes.c +src/LaneConnectionID.c +src/LaneDataAttribute.c +src/LaneDataAttributeList.c +src/LaneDirection.c +src/LaneID.c +src/LaneList.c +src/LanePosition.c +src/LaneSharing.c +src/LaneTypeAttributes.c +src/LaneWidth.c +src/LateralAcceleration.c +src/LateralAccelerationValue.c +src/Latitude.c +src/LayerID.c +src/LayerType.c +src/LicPlateNumber.c +src/LightBarSirenInUse.c +src/Longitude.c +src/LongitudinalAcceleration.c +src/LongitudinalAccelerationValue.c +src/ManeuverAssistList.c +src/ManufacturerIdentifier.c +src/MapData-addGrpC.c +src/MapData.c +src/MergeDivergeNodeAngle.c +src/MinuteOfTheYear.c +src/MovementEvent-addGrpC.c +src/MovementEvent.c +src/MovementEventList.c +src/MovementList.c +src/MovementPhaseState.c +src/MovementState.c +src/MsgCount.c +src/Node-LLmD-64b.c +src/Node-XY-20b.c +src/Node-XY-22b.c +src/Node-XY-24b.c +src/Node-XY-26b.c +src/Node-XY-28b.c +src/Node-XY-32b.c +src/Node.c +src/NodeAttributeSet-addGrpC.c +src/NodeAttributeSetXY.c +src/NodeAttributeXY.c +src/NodeAttributeXYList.c +src/NodeLink.c +src/NodeListXY.c +src/NodeOffsetPointXY.c +src/NodeSetXY.c +src/NodeXY.c +src/NumberOfOccupants.c +src/Offset-B09.c +src/Offset-B10.c +src/Offset-B11.c +src/Offset-B12.c +src/Offset-B13.c +src/Offset-B14.c +src/Offset-B16.c +src/OpeningDaysHours.c +src/OverlayLaneList.c +src/PathDeltaTime.c +src/PathHistory.c +src/PathPoint.c +src/PedestrianBicycleDetect.c +src/PerformanceClass.c +src/PhoneNumber.c +src/PosCentMass.c +src/PosConfidenceEllipse.c +src/PosFrontAx.c +src/PosLonCarr.c +src/PosPillar.c +src/Position3D-addGrpC.c +src/Position3D.c +src/PositionConfidence.c +src/PositionConfidenceSet.c +src/PositionOfOccupants.c +src/PositionOfPillars.c +src/PositionalAccuracy.c +src/PositioningSolutionType.c +src/PostCrashSubCauseCode.c +src/PreemptPriorityList.c +src/PrioritizationResponse.c +src/PrioritizationResponseList.c +src/PrioritizationResponseStatus.c +src/PriorityRequestType.c +src/ProtectedCommunicationZone.c +src/ProtectedCommunicationZonesRSU.c +src/ProtectedZoneID.c +src/ProtectedZoneRadius.c +src/ProtectedZoneType.c +src/PtActivation.c +src/PtActivationData.c +src/PtActivationType.c +src/PtvRequestType.c +src/RTCM-Revision.c +src/RTCMcorrections.c +src/RTCMheader.c +src/RTCMmessage.c +src/RTCMmessageList.c +src/ReferencePosition.c +src/RegionId.c +src/RegionalExtension.c +src/RegulatorySpeedLimit.c +src/RejectedReason.c +src/RelevanceDistance.c +src/RelevanceTrafficDirection.c +src/RequestID.c +src/RequestImportanceLevel.c +src/RequestResponseIndication.c +src/RequestSubRole.c +src/RequestorDescription-addGrpC.c +src/RequestorDescription.c +src/RequestorPositionVector.c +src/RequestorType.c +src/RescueAndRecoveryWorkInProgressSubCauseCode.c +src/RestrictedTypes.c +src/RestrictionAppliesTo.c +src/RestrictionClassAssignment.c +src/RestrictionClassID.c +src/RestrictionClassList.c +src/RestrictionUserType-addGrpC.c +src/RestrictionUserType.c +src/RestrictionUserTypeList.c +src/RoadLaneSetList.c +src/RoadRegulatorID.c +src/RoadSegment.c +src/RoadSegmentID.c +src/RoadSegmentList.c +src/RoadSegmentReferenceID.c +src/RoadType.c +src/RoadwayCrownAngle.c +src/RoadworksSubCauseCode.c +src/SPAT.c +src/SSEM.c +src/Scale-B12.c +src/SegmentAttributeXY.c +src/SegmentAttributeXYList.c +src/SemiAxisLength.c +src/SemiMajorAxisAccuracy.c +src/SemiMajorAxisOrientation.c +src/SemiMinorAxisAccuracy.c +src/SequenceNumber.c +src/ServiceApplicationLimit.c +src/ServiceNumber.c +src/SignalControlZone.c +src/SignalGroupID.c +src/SignalHeadLocation.c +src/SignalHeadLocationList.c +src/SignalRequest.c +src/SignalRequestList.c +src/SignalRequestMessage.c +src/SignalRequestPackage.c +src/SignalRequesterInfo.c +src/SignalStatus.c +src/SignalStatusList.c +src/SignalStatusMessage.c +src/SignalStatusPackage-addGrpC.c +src/SignalStatusPackage.c +src/SignalStatusPackageList.c +src/SignalViolationSubCauseCode.c +src/SlowVehicleSubCauseCode.c +src/SpecialTransportType.c +src/Speed.c +src/SpeedAdvice.c +src/SpeedConfidence.c +src/SpeedConfidenceDSRC.c +src/SpeedLimit.c +src/SpeedLimitList.c +src/SpeedLimitType.c +src/SpeedValue.c +src/SpeedandHeadingandThrottleConfidence.c +src/StartTime.c +src/StationID.c +src/StationType.c +src/StationarySince.c +src/StationaryVehicleSubCauseCode.c +src/SteeringWheelAngle.c +src/SteeringWheelAngleConfidence.c +src/SteeringWheelAngleValue.c +src/StopTime.c +src/SubCauseCodeType.c +src/TaxCode.c +src/Temperature.c +src/TemporaryID.c +src/ThrottleConfidence.c +src/TimeChangeDetails.c +src/TimeConfidence.c +src/TimeIntervalConfidence.c +src/TimeMark.c +src/TimeReference.c +src/TimestampIts.c +src/Traces.c +src/TrafficConditionSubCauseCode.c +src/TrafficRule.c +src/TransitVehicleOccupancy.c +src/TransitVehicleStatus.c +src/TransmissionAndSpeed.c +src/TransmissionInterval.c +src/TransmissionState.c +src/TurningRadius.c +src/VDS.c +src/ValidityDuration.c +src/VehicleBreakdownSubCauseCode.c +src/VehicleHeight.c +src/VehicleID.c +src/VehicleIdentification.c +src/VehicleLength.c +src/VehicleLengthConfidenceIndication.c +src/VehicleLengthValue.c +src/VehicleMass.c +src/VehicleRole.c +src/VehicleType.c +src/VehicleWidth.c +src/Velocity.c +src/VerticalAcceleration.c +src/VerticalAccelerationValue.c +src/WMInumber.c +src/WaitOnStopline.c +src/WheelBaseVehicle.c +src/WrongWayDrivingSubCauseCode.c +src/YawRate.c +src/YawRateConfidence.c +src/YawRateValue.c +src/ZoneLength.c +) + +set_target_properties(vcits-ssem PROPERTIES VERSION ${PROJECT_VERSION}) + +target_include_directories(vcits-ssem PRIVATE .) +target_include_directories(vcits-ssem PRIVATE ../asn1c) + +target_link_libraries(vcits-ssem PUBLIC +vcits-asn1c +) + +message(STATUS "--> Configure build of |-vcits-ssem - done") + diff --git a/vcits/ssem/CS1.h b/vcits/ssem/CS1.h new file mode 100644 index 0000000..0c04123 --- /dev/null +++ b/vcits/ssem/CS1.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CS1_H_ +#define _CS1_H_ + + +#include + +/* Including external dependencies */ +#include "CountryCode.h" +#include "IssuerIdentifier.h" +#include "ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS1 */ +typedef struct CS1 { + CountryCode_t countryCode; + IssuerIdentifier_t issuerIdentifier; + ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS1_H_ */ +#include diff --git a/vcits/ssem/CS2.h b/vcits/ssem/CS2.h new file mode 100644 index 0000000..f9963eb --- /dev/null +++ b/vcits/ssem/CS2.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CS2_H_ +#define _CS2_H_ + + +#include + +/* Including external dependencies */ +#include "ManufacturerIdentifier.h" +#include "ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS2 */ +typedef struct CS2 { + ManufacturerIdentifier_t manufacturerIdentifier; + ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS2; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS2_H_ */ +#include diff --git a/vcits/ssem/CS3.h b/vcits/ssem/CS3.h new file mode 100644 index 0000000..5092b12 --- /dev/null +++ b/vcits/ssem/CS3.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CS3_H_ +#define _CS3_H_ + + +#include + +/* Including external dependencies */ +#include "StartTime.h" +#include "StopTime.h" +#include "GeoGraphicalLimit.h" +#include "ServiceApplicationLimit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS3 */ +typedef struct CS3 { + StartTime_t startTime; + StopTime_t stopTime; + GeoGraphicalLimit_t geographLimit; + ServiceApplicationLimit_t serviceAppLimit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS3; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS3_H_ */ +#include diff --git a/vcits/ssem/CS4.h b/vcits/ssem/CS4.h new file mode 100644 index 0000000..32280b9 --- /dev/null +++ b/vcits/ssem/CS4.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CS4_H_ +#define _CS4_H_ + + +#include + +/* Including external dependencies */ +#include "CountryCode.h" +#include "AlphabetIndicator.h" +#include "LicPlateNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS4 */ +typedef struct CS4 { + CountryCode_t countryCode; + AlphabetIndicator_t alphabetIndicator; + LicPlateNumber_t licPlateNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS4_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS4; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS4_H_ */ +#include diff --git a/vcits/ssem/CS5.h b/vcits/ssem/CS5.h new file mode 100644 index 0000000..185cd3d --- /dev/null +++ b/vcits/ssem/CS5.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CS5_H_ +#define _CS5_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS5 */ +typedef struct CS5 { + VisibleString_t vin; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS5_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS5; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS5_H_ */ +#include diff --git a/vcits/ssem/CS7.h b/vcits/ssem/CS7.h new file mode 100644 index 0000000..f968c68 --- /dev/null +++ b/vcits/ssem/CS7.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CS7_H_ +#define _CS7_H_ + + +#include + +/* Including external dependencies */ +#include "FreightContainerData.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS7 */ +typedef FreightContainerData_t CS7_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS7; +asn_struct_free_f CS7_free; +asn_struct_print_f CS7_print; +asn_constr_check_f CS7_constraint; +ber_type_decoder_f CS7_decode_ber; +der_type_encoder_f CS7_encode_der; +xer_type_decoder_f CS7_decode_xer; +xer_type_encoder_f CS7_encode_xer; +oer_type_decoder_f CS7_decode_oer; +oer_type_encoder_f CS7_encode_oer; +per_type_decoder_f CS7_decode_uper; +per_type_encoder_f CS7_encode_uper; +per_type_decoder_f CS7_decode_aper; +per_type_encoder_f CS7_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS7_H_ */ +#include diff --git a/vcits/ssem/CS8.h b/vcits/ssem/CS8.h new file mode 100644 index 0000000..0c550ae --- /dev/null +++ b/vcits/ssem/CS8.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CS8_H_ +#define _CS8_H_ + + +#include + +/* Including external dependencies */ +#include +#include "CountryCode.h" +#include "TaxCode.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CS8 */ +typedef struct CS8 { + BIT_STRING_t fill; + CountryCode_t countryCode; + TaxCode_t taxCode; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CS8_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CS8; + +#ifdef __cplusplus +} +#endif + +#endif /* _CS8_H_ */ +#include diff --git a/vcits/ssem/CauseCode.h b/vcits/ssem/CauseCode.h new file mode 100644 index 0000000..5d9043d --- /dev/null +++ b/vcits/ssem/CauseCode.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CauseCode_H_ +#define _CauseCode_H_ + + +#include + +/* Including external dependencies */ +#include "CauseCodeType.h" +#include "SubCauseCodeType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CauseCode */ +typedef struct CauseCode { + CauseCodeType_t causeCode; + SubCauseCodeType_t subCauseCode; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CauseCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCode_H_ */ +#include diff --git a/vcits/ssem/CauseCodeType.h b/vcits/ssem/CauseCodeType.h new file mode 100644 index 0000000..a1fd179 --- /dev/null +++ b/vcits/ssem/CauseCodeType.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CauseCodeType_H_ +#define _CauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseCodeType { + CauseCodeType_reserved = 0, + CauseCodeType_trafficCondition = 1, + CauseCodeType_accident = 2, + CauseCodeType_roadworks = 3, + CauseCodeType_impassability = 5, + CauseCodeType_adverseWeatherCondition_Adhesion = 6, + CauseCodeType_aquaplannning = 7, + CauseCodeType_hazardousLocation_SurfaceCondition = 9, + CauseCodeType_hazardousLocation_ObstacleOnTheRoad = 10, + CauseCodeType_hazardousLocation_AnimalOnTheRoad = 11, + CauseCodeType_humanPresenceOnTheRoad = 12, + CauseCodeType_wrongWayDriving = 14, + CauseCodeType_rescueAndRecoveryWorkInProgress = 15, + CauseCodeType_adverseWeatherCondition_ExtremeWeatherCondition = 17, + CauseCodeType_adverseWeatherCondition_Visibility = 18, + CauseCodeType_adverseWeatherCondition_Precipitation = 19, + CauseCodeType_slowVehicle = 26, + CauseCodeType_dangerousEndOfQueue = 27, + CauseCodeType_vehicleBreakdown = 91, + CauseCodeType_postCrash = 92, + CauseCodeType_humanProblem = 93, + CauseCodeType_stationaryVehicle = 94, + CauseCodeType_emergencyVehicleApproaching = 95, + CauseCodeType_hazardousLocation_DangerousCurve = 96, + CauseCodeType_collisionRisk = 97, + CauseCodeType_signalViolation = 98, + CauseCodeType_dangerousSituation = 99 +} e_CauseCodeType; + +/* CauseCodeType */ +typedef long CauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseCodeType; +asn_struct_free_f CauseCodeType_free; +asn_struct_print_f CauseCodeType_print; +asn_constr_check_f CauseCodeType_constraint; +ber_type_decoder_f CauseCodeType_decode_ber; +der_type_encoder_f CauseCodeType_encode_der; +xer_type_decoder_f CauseCodeType_decode_xer; +xer_type_encoder_f CauseCodeType_encode_xer; +oer_type_decoder_f CauseCodeType_decode_oer; +oer_type_encoder_f CauseCodeType_encode_oer; +per_type_decoder_f CauseCodeType_decode_uper; +per_type_encoder_f CauseCodeType_encode_uper; +per_type_decoder_f CauseCodeType_decode_aper; +per_type_encoder_f CauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseCodeType_H_ */ +#include diff --git a/vcits/ssem/CenDsrcTollingZone.h b/vcits/ssem/CenDsrcTollingZone.h new file mode 100644 index 0000000..fda4895 --- /dev/null +++ b/vcits/ssem/CenDsrcTollingZone.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CenDsrcTollingZone_H_ +#define _CenDsrcTollingZone_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "CenDsrcTollingZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZone */ +typedef struct CenDsrcTollingZone { + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + CenDsrcTollingZoneID_t *cenDsrcTollingZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CenDsrcTollingZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZone_H_ */ +#include diff --git a/vcits/ssem/CenDsrcTollingZoneID.h b/vcits/ssem/CenDsrcTollingZoneID.h new file mode 100644 index 0000000..02e6ec5 --- /dev/null +++ b/vcits/ssem/CenDsrcTollingZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CenDsrcTollingZoneID_H_ +#define _CenDsrcTollingZoneID_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneID.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CenDsrcTollingZoneID */ +typedef ProtectedZoneID_t CenDsrcTollingZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID; +asn_struct_free_f CenDsrcTollingZoneID_free; +asn_struct_print_f CenDsrcTollingZoneID_print; +asn_constr_check_f CenDsrcTollingZoneID_constraint; +ber_type_decoder_f CenDsrcTollingZoneID_decode_ber; +der_type_encoder_f CenDsrcTollingZoneID_encode_der; +xer_type_decoder_f CenDsrcTollingZoneID_decode_xer; +xer_type_encoder_f CenDsrcTollingZoneID_encode_xer; +oer_type_decoder_f CenDsrcTollingZoneID_decode_oer; +oer_type_encoder_f CenDsrcTollingZoneID_encode_oer; +per_type_decoder_f CenDsrcTollingZoneID_decode_uper; +per_type_encoder_f CenDsrcTollingZoneID_encode_uper; +per_type_decoder_f CenDsrcTollingZoneID_decode_aper; +per_type_encoder_f CenDsrcTollingZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CenDsrcTollingZoneID_H_ */ +#include diff --git a/vcits/ssem/ClosedLanes.h b/vcits/ssem/ClosedLanes.h new file mode 100644 index 0000000..b998a63 --- /dev/null +++ b/vcits/ssem/ClosedLanes.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ClosedLanes_H_ +#define _ClosedLanes_H_ + + +#include + +/* Including external dependencies */ +#include "HardShoulderStatus.h" +#include "DrivingLaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ClosedLanes */ +typedef struct ClosedLanes { + HardShoulderStatus_t *innerhardShoulderStatus; /* OPTIONAL */ + HardShoulderStatus_t *outerhardShoulderStatus; /* OPTIONAL */ + DrivingLaneStatus_t *drivingLaneStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ClosedLanes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ClosedLanes; + +#ifdef __cplusplus +} +#endif + +#endif /* _ClosedLanes_H_ */ +#include diff --git a/vcits/ssem/CollisionRiskSubCauseCode.h b/vcits/ssem/CollisionRiskSubCauseCode.h new file mode 100644 index 0000000..b3f295c --- /dev/null +++ b/vcits/ssem/CollisionRiskSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CollisionRiskSubCauseCode_H_ +#define _CollisionRiskSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CollisionRiskSubCauseCode { + CollisionRiskSubCauseCode_unavailable = 0, + CollisionRiskSubCauseCode_longitudinalCollisionRisk = 1, + CollisionRiskSubCauseCode_crossingCollisionRisk = 2, + CollisionRiskSubCauseCode_lateralCollisionRisk = 3, + CollisionRiskSubCauseCode_vulnerableRoadUser = 4 +} e_CollisionRiskSubCauseCode; + +/* CollisionRiskSubCauseCode */ +typedef long CollisionRiskSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode; +asn_struct_free_f CollisionRiskSubCauseCode_free; +asn_struct_print_f CollisionRiskSubCauseCode_print; +asn_constr_check_f CollisionRiskSubCauseCode_constraint; +ber_type_decoder_f CollisionRiskSubCauseCode_decode_ber; +der_type_encoder_f CollisionRiskSubCauseCode_encode_der; +xer_type_decoder_f CollisionRiskSubCauseCode_decode_xer; +xer_type_encoder_f CollisionRiskSubCauseCode_encode_xer; +oer_type_decoder_f CollisionRiskSubCauseCode_decode_oer; +oer_type_encoder_f CollisionRiskSubCauseCode_encode_oer; +per_type_decoder_f CollisionRiskSubCauseCode_decode_uper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_uper; +per_type_decoder_f CollisionRiskSubCauseCode_decode_aper; +per_type_encoder_f CollisionRiskSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CollisionRiskSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/ComputedLane.h b/vcits/ssem/ComputedLane.h new file mode 100644 index 0000000..09c0e9d --- /dev/null +++ b/vcits/ssem/ComputedLane.h @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ComputedLane_H_ +#define _ComputedLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "Angle.h" +#include "Scale-B12.h" +#include "DrivenLineOffsetSm.h" +#include "DrivenLineOffsetLg.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ComputedLane__offsetXaxis_PR { + ComputedLane__offsetXaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetXaxis_PR_small, + ComputedLane__offsetXaxis_PR_large +} ComputedLane__offsetXaxis_PR; +typedef enum ComputedLane__offsetYaxis_PR { + ComputedLane__offsetYaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetYaxis_PR_small, + ComputedLane__offsetYaxis_PR_large +} ComputedLane__offsetYaxis_PR; + +/* Forward declarations */ +struct Reg_ComputedLane; + +/* ComputedLane */ +typedef struct ComputedLane { + LaneID_t referenceLaneId; + struct ComputedLane__offsetXaxis { + ComputedLane__offsetXaxis_PR present; + union ComputedLane__offsetXaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetXaxis; + struct ComputedLane__offsetYaxis { + ComputedLane__offsetYaxis_PR present; + union ComputedLane__offsetYaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetYaxis; + Angle_t *rotateXY; /* OPTIONAL */ + Scale_B12_t *scaleXaxis; /* OPTIONAL */ + Scale_B12_t *scaleYaxis; /* OPTIONAL */ + struct ComputedLane__regional { + A_SEQUENCE_OF(struct Reg_ComputedLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ComputedLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ComputedLane_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ComputedLane_H_ */ +#include diff --git a/vcits/ssem/ConnectingLane.h b/vcits/ssem/ConnectingLane.h new file mode 100644 index 0000000..b29d151 --- /dev/null +++ b/vcits/ssem/ConnectingLane.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ConnectingLane_H_ +#define _ConnectingLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "AllowedManeuvers.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectingLane */ +typedef struct ConnectingLane { + LaneID_t lane; + AllowedManeuvers_t *maneuver; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectingLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectingLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectingLane_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectingLane_H_ */ +#include diff --git a/vcits/ssem/Connection.h b/vcits/ssem/Connection.h new file mode 100644 index 0000000..caac86e --- /dev/null +++ b/vcits/ssem/Connection.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Connection_H_ +#define _Connection_H_ + + +#include + +/* Including external dependencies */ +#include "ConnectingLane.h" +#include "SignalGroupID.h" +#include "RestrictionClassID.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionReferenceID; + +/* Connection */ +typedef struct Connection { + ConnectingLane_t connectingLane; + struct IntersectionReferenceID *remoteIntersection; /* OPTIONAL */ + SignalGroupID_t *signalGroup; /* OPTIONAL */ + RestrictionClassID_t *userClass; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Connection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Connection; +extern asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1; +extern asn_TYPE_member_t asn_MBR_Connection_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Connection_H_ */ +#include diff --git a/vcits/ssem/ConnectionManeuverAssist-addGrpC.h b/vcits/ssem/ConnectionManeuverAssist-addGrpC.h new file mode 100644 index 0000000..d4440b4 --- /dev/null +++ b/vcits/ssem/ConnectionManeuverAssist-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ConnectionManeuverAssist_addGrpC_H_ +#define _ConnectionManeuverAssist_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ItsStationPositionList; + +/* ConnectionManeuverAssist-addGrpC */ +typedef struct ConnectionManeuverAssist_addGrpC { + struct ItsStationPositionList *itsStationPosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_addGrpC_H_ */ +#include diff --git a/vcits/ssem/ConnectionManeuverAssist.h b/vcits/ssem/ConnectionManeuverAssist.h new file mode 100644 index 0000000..92353f8 --- /dev/null +++ b/vcits/ssem/ConnectionManeuverAssist.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ConnectionManeuverAssist_H_ +#define _ConnectionManeuverAssist_H_ + + +#include + +/* Including external dependencies */ +#include "LaneConnectionID.h" +#include "ZoneLength.h" +#include "WaitOnStopline.h" +#include "PedestrianBicycleDetect.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_ConnectionManeuverAssist; + +/* ConnectionManeuverAssist */ +typedef struct ConnectionManeuverAssist { + LaneConnectionID_t connectionID; + ZoneLength_t *queueLength; /* OPTIONAL */ + ZoneLength_t *availableStorageLength; /* OPTIONAL */ + WaitOnStopline_t *waitOnStop; /* OPTIONAL */ + PedestrianBicycleDetect_t *pedBicycleDetect; /* OPTIONAL */ + struct ConnectionManeuverAssist__regional { + A_SEQUENCE_OF(struct Reg_ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_H_ */ +#include diff --git a/vcits/ssem/ConnectionTrajectory-addGrpC.h b/vcits/ssem/ConnectionTrajectory-addGrpC.h new file mode 100644 index 0000000..08b922c --- /dev/null +++ b/vcits/ssem/ConnectionTrajectory-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ConnectionTrajectory_addGrpC_H_ +#define _ConnectionTrajectory_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectionTrajectory-addGrpC */ +typedef struct ConnectionTrajectory_addGrpC { + NodeSetXY_t nodes; + LaneConnectionID_t connectionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionTrajectory_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionTrajectory_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionTrajectory_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionTrajectory_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionTrajectory_addGrpC_H_ */ +#include diff --git a/vcits/ssem/ConnectsToList.h b/vcits/ssem/ConnectsToList.h new file mode 100644 index 0000000..398dbd3 --- /dev/null +++ b/vcits/ssem/ConnectsToList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ConnectsToList_H_ +#define _ConnectsToList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Connection; + +/* ConnectsToList */ +typedef struct ConnectsToList { + A_SEQUENCE_OF(struct Connection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectsToList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectsToList; +extern asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectsToList_1[1]; +extern asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectsToList_H_ */ +#include diff --git a/vcits/ssem/CountryCode.h b/vcits/ssem/CountryCode.h new file mode 100644 index 0000000..021e369 --- /dev/null +++ b/vcits/ssem/CountryCode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CountryCode_H_ +#define _CountryCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CountryCode */ +typedef BIT_STRING_t CountryCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CountryCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CountryCode; +asn_struct_free_f CountryCode_free; +asn_struct_print_f CountryCode_print; +asn_constr_check_f CountryCode_constraint; +ber_type_decoder_f CountryCode_decode_ber; +der_type_encoder_f CountryCode_encode_der; +xer_type_decoder_f CountryCode_decode_xer; +xer_type_encoder_f CountryCode_encode_xer; +oer_type_decoder_f CountryCode_decode_oer; +oer_type_encoder_f CountryCode_encode_oer; +per_type_decoder_f CountryCode_decode_uper; +per_type_encoder_f CountryCode_encode_uper; +per_type_decoder_f CountryCode_decode_aper; +per_type_encoder_f CountryCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CountryCode_H_ */ +#include diff --git a/vcits/ssem/Curvature.h b/vcits/ssem/Curvature.h new file mode 100644 index 0000000..6dbbbb4 --- /dev/null +++ b/vcits/ssem/Curvature.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Curvature_H_ +#define _Curvature_H_ + + +#include + +/* Including external dependencies */ +#include "CurvatureValue.h" +#include "CurvatureConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Curvature */ +typedef struct Curvature { + CurvatureValue_t curvatureValue; + CurvatureConfidence_t curvatureConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Curvature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Curvature; + +#ifdef __cplusplus +} +#endif + +#endif /* _Curvature_H_ */ +#include diff --git a/vcits/ssem/CurvatureCalculationMode.h b/vcits/ssem/CurvatureCalculationMode.h new file mode 100644 index 0000000..f6dbeaa --- /dev/null +++ b/vcits/ssem/CurvatureCalculationMode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CurvatureCalculationMode_H_ +#define _CurvatureCalculationMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureCalculationMode { + CurvatureCalculationMode_yawRateUsed = 0, + CurvatureCalculationMode_yawRateNotUsed = 1, + CurvatureCalculationMode_unavailable = 2 + /* + * Enumeration is extensible + */ +} e_CurvatureCalculationMode; + +/* CurvatureCalculationMode */ +typedef long CurvatureCalculationMode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode; +asn_struct_free_f CurvatureCalculationMode_free; +asn_struct_print_f CurvatureCalculationMode_print; +asn_constr_check_f CurvatureCalculationMode_constraint; +ber_type_decoder_f CurvatureCalculationMode_decode_ber; +der_type_encoder_f CurvatureCalculationMode_encode_der; +xer_type_decoder_f CurvatureCalculationMode_decode_xer; +xer_type_encoder_f CurvatureCalculationMode_encode_xer; +oer_type_decoder_f CurvatureCalculationMode_decode_oer; +oer_type_encoder_f CurvatureCalculationMode_encode_oer; +per_type_decoder_f CurvatureCalculationMode_decode_uper; +per_type_encoder_f CurvatureCalculationMode_encode_uper; +per_type_decoder_f CurvatureCalculationMode_decode_aper; +per_type_encoder_f CurvatureCalculationMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureCalculationMode_H_ */ +#include diff --git a/vcits/ssem/CurvatureConfidence.h b/vcits/ssem/CurvatureConfidence.h new file mode 100644 index 0000000..bfc2ac6 --- /dev/null +++ b/vcits/ssem/CurvatureConfidence.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CurvatureConfidence_H_ +#define _CurvatureConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureConfidence { + CurvatureConfidence_onePerMeter_0_00002 = 0, + CurvatureConfidence_onePerMeter_0_0001 = 1, + CurvatureConfidence_onePerMeter_0_0005 = 2, + CurvatureConfidence_onePerMeter_0_002 = 3, + CurvatureConfidence_onePerMeter_0_01 = 4, + CurvatureConfidence_onePerMeter_0_1 = 5, + CurvatureConfidence_outOfRange = 6, + CurvatureConfidence_unavailable = 7 +} e_CurvatureConfidence; + +/* CurvatureConfidence */ +typedef long CurvatureConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1; +asn_struct_free_f CurvatureConfidence_free; +asn_struct_print_f CurvatureConfidence_print; +asn_constr_check_f CurvatureConfidence_constraint; +ber_type_decoder_f CurvatureConfidence_decode_ber; +der_type_encoder_f CurvatureConfidence_encode_der; +xer_type_decoder_f CurvatureConfidence_decode_xer; +xer_type_encoder_f CurvatureConfidence_encode_xer; +oer_type_decoder_f CurvatureConfidence_decode_oer; +oer_type_encoder_f CurvatureConfidence_encode_oer; +per_type_decoder_f CurvatureConfidence_decode_uper; +per_type_encoder_f CurvatureConfidence_encode_uper; +per_type_decoder_f CurvatureConfidence_decode_aper; +per_type_encoder_f CurvatureConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureConfidence_H_ */ +#include diff --git a/vcits/ssem/CurvatureValue.h b/vcits/ssem/CurvatureValue.h new file mode 100644 index 0000000..704ffef --- /dev/null +++ b/vcits/ssem/CurvatureValue.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _CurvatureValue_H_ +#define _CurvatureValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CurvatureValue { + CurvatureValue_straight = 0, + CurvatureValue_unavailable = 1023 +} e_CurvatureValue; + +/* CurvatureValue */ +typedef long CurvatureValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CurvatureValue; +asn_struct_free_f CurvatureValue_free; +asn_struct_print_f CurvatureValue_print; +asn_constr_check_f CurvatureValue_constraint; +ber_type_decoder_f CurvatureValue_decode_ber; +der_type_encoder_f CurvatureValue_encode_der; +xer_type_decoder_f CurvatureValue_decode_xer; +xer_type_encoder_f CurvatureValue_encode_xer; +oer_type_decoder_f CurvatureValue_decode_oer; +oer_type_encoder_f CurvatureValue_encode_oer; +per_type_decoder_f CurvatureValue_decode_uper; +per_type_encoder_f CurvatureValue_encode_uper; +per_type_decoder_f CurvatureValue_decode_aper; +per_type_encoder_f CurvatureValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CurvatureValue_H_ */ +#include diff --git a/vcits/ssem/DDateTime.h b/vcits/ssem/DDateTime.h new file mode 100644 index 0000000..9794ef3 --- /dev/null +++ b/vcits/ssem/DDateTime.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DDateTime_H_ +#define _DDateTime_H_ + + +#include + +/* Including external dependencies */ +#include "DYear.h" +#include "DMonth.h" +#include "DDay.h" +#include "DHour.h" +#include "DMinute.h" +#include "DSecond.h" +#include "DOffset.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDateTime */ +typedef struct DDateTime { + DYear_t *year; /* OPTIONAL */ + DMonth_t *month; /* OPTIONAL */ + DDay_t *day; /* OPTIONAL */ + DHour_t *hour; /* OPTIONAL */ + DMinute_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DOffset_t *offset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DDateTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DDateTime; +extern asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1; +extern asn_TYPE_member_t asn_MBR_DDateTime_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDateTime_H_ */ +#include diff --git a/vcits/ssem/DDay.h b/vcits/ssem/DDay.h new file mode 100644 index 0000000..ea71cd6 --- /dev/null +++ b/vcits/ssem/DDay.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DDay_H_ +#define _DDay_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDay */ +typedef long DDay_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DDay_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DDay; +asn_struct_free_f DDay_free; +asn_struct_print_f DDay_print; +asn_constr_check_f DDay_constraint; +ber_type_decoder_f DDay_decode_ber; +der_type_encoder_f DDay_encode_der; +xer_type_decoder_f DDay_decode_xer; +xer_type_encoder_f DDay_encode_xer; +oer_type_decoder_f DDay_decode_oer; +oer_type_encoder_f DDay_encode_oer; +per_type_decoder_f DDay_decode_uper; +per_type_encoder_f DDay_encode_uper; +per_type_decoder_f DDay_decode_aper; +per_type_encoder_f DDay_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDay_H_ */ +#include diff --git a/vcits/ssem/DHour.h b/vcits/ssem/DHour.h new file mode 100644 index 0000000..6d12607 --- /dev/null +++ b/vcits/ssem/DHour.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DHour_H_ +#define _DHour_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DHour */ +typedef long DHour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DHour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DHour; +asn_struct_free_f DHour_free; +asn_struct_print_f DHour_print; +asn_constr_check_f DHour_constraint; +ber_type_decoder_f DHour_decode_ber; +der_type_encoder_f DHour_encode_der; +xer_type_decoder_f DHour_decode_xer; +xer_type_encoder_f DHour_encode_xer; +oer_type_decoder_f DHour_decode_oer; +oer_type_encoder_f DHour_encode_oer; +per_type_decoder_f DHour_decode_uper; +per_type_encoder_f DHour_encode_uper; +per_type_decoder_f DHour_decode_aper; +per_type_encoder_f DHour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DHour_H_ */ +#include diff --git a/vcits/ssem/DMinute.h b/vcits/ssem/DMinute.h new file mode 100644 index 0000000..533fa6f --- /dev/null +++ b/vcits/ssem/DMinute.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DMinute_H_ +#define _DMinute_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMinute */ +typedef long DMinute_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMinute_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMinute; +asn_struct_free_f DMinute_free; +asn_struct_print_f DMinute_print; +asn_constr_check_f DMinute_constraint; +ber_type_decoder_f DMinute_decode_ber; +der_type_encoder_f DMinute_encode_der; +xer_type_decoder_f DMinute_decode_xer; +xer_type_encoder_f DMinute_encode_xer; +oer_type_decoder_f DMinute_decode_oer; +oer_type_encoder_f DMinute_encode_oer; +per_type_decoder_f DMinute_decode_uper; +per_type_encoder_f DMinute_encode_uper; +per_type_decoder_f DMinute_decode_aper; +per_type_encoder_f DMinute_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMinute_H_ */ +#include diff --git a/vcits/ssem/DMonth.h b/vcits/ssem/DMonth.h new file mode 100644 index 0000000..ae10bf1 --- /dev/null +++ b/vcits/ssem/DMonth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DMonth_H_ +#define _DMonth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMonth */ +typedef long DMonth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMonth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMonth; +asn_struct_free_f DMonth_free; +asn_struct_print_f DMonth_print; +asn_constr_check_f DMonth_constraint; +ber_type_decoder_f DMonth_decode_ber; +der_type_encoder_f DMonth_encode_der; +xer_type_decoder_f DMonth_decode_xer; +xer_type_encoder_f DMonth_encode_xer; +oer_type_decoder_f DMonth_decode_oer; +oer_type_encoder_f DMonth_encode_oer; +per_type_decoder_f DMonth_decode_uper; +per_type_encoder_f DMonth_encode_uper; +per_type_decoder_f DMonth_decode_aper; +per_type_encoder_f DMonth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMonth_H_ */ +#include diff --git a/vcits/ssem/DOffset.h b/vcits/ssem/DOffset.h new file mode 100644 index 0000000..b3ef603 --- /dev/null +++ b/vcits/ssem/DOffset.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DOffset_H_ +#define _DOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DOffset */ +typedef long DOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DOffset; +asn_struct_free_f DOffset_free; +asn_struct_print_f DOffset_print; +asn_constr_check_f DOffset_constraint; +ber_type_decoder_f DOffset_decode_ber; +der_type_encoder_f DOffset_encode_der; +xer_type_decoder_f DOffset_decode_xer; +xer_type_encoder_f DOffset_encode_xer; +oer_type_decoder_f DOffset_decode_oer; +oer_type_encoder_f DOffset_encode_oer; +per_type_decoder_f DOffset_decode_uper; +per_type_encoder_f DOffset_encode_uper; +per_type_decoder_f DOffset_decode_aper; +per_type_encoder_f DOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DOffset_H_ */ +#include diff --git a/vcits/ssem/DSRCmsgID.h b/vcits/ssem/DSRCmsgID.h new file mode 100644 index 0000000..96cb105 --- /dev/null +++ b/vcits/ssem/DSRCmsgID.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DSRCmsgID_H_ +#define _DSRCmsgID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSRCmsgID */ +typedef long DSRCmsgID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSRCmsgID; +asn_struct_free_f DSRCmsgID_free; +asn_struct_print_f DSRCmsgID_print; +asn_constr_check_f DSRCmsgID_constraint; +ber_type_decoder_f DSRCmsgID_decode_ber; +der_type_encoder_f DSRCmsgID_encode_der; +xer_type_decoder_f DSRCmsgID_decode_xer; +xer_type_encoder_f DSRCmsgID_encode_xer; +oer_type_decoder_f DSRCmsgID_decode_oer; +oer_type_encoder_f DSRCmsgID_encode_oer; +per_type_decoder_f DSRCmsgID_decode_uper; +per_type_encoder_f DSRCmsgID_encode_uper; +per_type_decoder_f DSRCmsgID_decode_aper; +per_type_encoder_f DSRCmsgID_encode_aper; +#define DSRCmsgID_mapData ((DSRCmsgID_t)18) +#define DSRCmsgID_rtcmCorrections ((DSRCmsgID_t)28) +#define DSRCmsgID_signalPhaseAndTimingMessage ((DSRCmsgID_t)19) +#define DSRCmsgID_signalRequestMessage ((DSRCmsgID_t)29) +#define DSRCmsgID_signalStatusMessage ((DSRCmsgID_t)30) + +#ifdef __cplusplus +} +#endif + +#endif /* _DSRCmsgID_H_ */ +#include diff --git a/vcits/ssem/DSecond.h b/vcits/ssem/DSecond.h new file mode 100644 index 0000000..4b97d2b --- /dev/null +++ b/vcits/ssem/DSecond.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DSecond_H_ +#define _DSecond_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSecond */ +typedef long DSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSecond; +asn_struct_free_f DSecond_free; +asn_struct_print_f DSecond_print; +asn_constr_check_f DSecond_constraint; +ber_type_decoder_f DSecond_decode_ber; +der_type_encoder_f DSecond_encode_der; +xer_type_decoder_f DSecond_decode_xer; +xer_type_encoder_f DSecond_encode_xer; +oer_type_decoder_f DSecond_decode_oer; +oer_type_encoder_f DSecond_encode_oer; +per_type_decoder_f DSecond_decode_uper; +per_type_encoder_f DSecond_encode_uper; +per_type_decoder_f DSecond_decode_aper; +per_type_encoder_f DSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DSecond_H_ */ +#include diff --git a/vcits/ssem/DYear.h b/vcits/ssem/DYear.h new file mode 100644 index 0000000..262160b --- /dev/null +++ b/vcits/ssem/DYear.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DYear_H_ +#define _DYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DYear */ +typedef long DYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DYear; +asn_struct_free_f DYear_free; +asn_struct_print_f DYear_print; +asn_constr_check_f DYear_constraint; +ber_type_decoder_f DYear_decode_ber; +der_type_encoder_f DYear_encode_der; +xer_type_decoder_f DYear_decode_xer; +xer_type_encoder_f DYear_encode_xer; +oer_type_decoder_f DYear_decode_oer; +oer_type_encoder_f DYear_encode_oer; +per_type_decoder_f DYear_decode_uper; +per_type_encoder_f DYear_encode_uper; +per_type_decoder_f DYear_decode_aper; +per_type_encoder_f DYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DYear_H_ */ +#include diff --git a/vcits/ssem/DangerousEndOfQueueSubCauseCode.h b/vcits/ssem/DangerousEndOfQueueSubCauseCode.h new file mode 100644 index 0000000..e158883 --- /dev/null +++ b/vcits/ssem/DangerousEndOfQueueSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DangerousEndOfQueueSubCauseCode_H_ +#define _DangerousEndOfQueueSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousEndOfQueueSubCauseCode { + DangerousEndOfQueueSubCauseCode_unavailable = 0, + DangerousEndOfQueueSubCauseCode_suddenEndOfQueue = 1, + DangerousEndOfQueueSubCauseCode_queueOverHill = 2, + DangerousEndOfQueueSubCauseCode_queueAroundBend = 3, + DangerousEndOfQueueSubCauseCode_queueInTunnel = 4 +} e_DangerousEndOfQueueSubCauseCode; + +/* DangerousEndOfQueueSubCauseCode */ +typedef long DangerousEndOfQueueSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode; +asn_struct_free_f DangerousEndOfQueueSubCauseCode_free; +asn_struct_print_f DangerousEndOfQueueSubCauseCode_print; +asn_constr_check_f DangerousEndOfQueueSubCauseCode_constraint; +ber_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_ber; +der_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_der; +xer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_xer; +xer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_xer; +oer_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_oer; +oer_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_oer; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_uper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_uper; +per_type_decoder_f DangerousEndOfQueueSubCauseCode_decode_aper; +per_type_encoder_f DangerousEndOfQueueSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousEndOfQueueSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/DangerousGoodsBasic.h b/vcits/ssem/DangerousGoodsBasic.h new file mode 100644 index 0000000..2fb57e5 --- /dev/null +++ b/vcits/ssem/DangerousGoodsBasic.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DangerousGoodsBasic_H_ +#define _DangerousGoodsBasic_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousGoodsBasic { + DangerousGoodsBasic_explosives1 = 0, + DangerousGoodsBasic_explosives2 = 1, + DangerousGoodsBasic_explosives3 = 2, + DangerousGoodsBasic_explosives4 = 3, + DangerousGoodsBasic_explosives5 = 4, + DangerousGoodsBasic_explosives6 = 5, + DangerousGoodsBasic_flammableGases = 6, + DangerousGoodsBasic_nonFlammableGases = 7, + DangerousGoodsBasic_toxicGases = 8, + DangerousGoodsBasic_flammableLiquids = 9, + DangerousGoodsBasic_flammableSolids = 10, + DangerousGoodsBasic_substancesLiableToSpontaneousCombustion = 11, + DangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater = 12, + DangerousGoodsBasic_oxidizingSubstances = 13, + DangerousGoodsBasic_organicPeroxides = 14, + DangerousGoodsBasic_toxicSubstances = 15, + DangerousGoodsBasic_infectiousSubstances = 16, + DangerousGoodsBasic_radioactiveMaterial = 17, + DangerousGoodsBasic_corrosiveSubstances = 18, + DangerousGoodsBasic_miscellaneousDangerousSubstances = 19 +} e_DangerousGoodsBasic; + +/* DangerousGoodsBasic */ +typedef long DangerousGoodsBasic_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic; +extern const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1; +asn_struct_free_f DangerousGoodsBasic_free; +asn_struct_print_f DangerousGoodsBasic_print; +asn_constr_check_f DangerousGoodsBasic_constraint; +ber_type_decoder_f DangerousGoodsBasic_decode_ber; +der_type_encoder_f DangerousGoodsBasic_encode_der; +xer_type_decoder_f DangerousGoodsBasic_decode_xer; +xer_type_encoder_f DangerousGoodsBasic_encode_xer; +oer_type_decoder_f DangerousGoodsBasic_decode_oer; +oer_type_encoder_f DangerousGoodsBasic_encode_oer; +per_type_decoder_f DangerousGoodsBasic_decode_uper; +per_type_encoder_f DangerousGoodsBasic_encode_uper; +per_type_decoder_f DangerousGoodsBasic_decode_aper; +per_type_encoder_f DangerousGoodsBasic_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsBasic_H_ */ +#include diff --git a/vcits/ssem/DangerousGoodsExtended.h b/vcits/ssem/DangerousGoodsExtended.h new file mode 100644 index 0000000..1c0dee5 --- /dev/null +++ b/vcits/ssem/DangerousGoodsExtended.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DangerousGoodsExtended_H_ +#define _DangerousGoodsExtended_H_ + + +#include + +/* Including external dependencies */ +#include "DangerousGoodsBasic.h" +#include +#include +#include +#include "PhoneNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DangerousGoodsExtended */ +typedef struct DangerousGoodsExtended { + DangerousGoodsBasic_t dangerousGoodsType; + long unNumber; + BOOLEAN_t elevatedTemperature; + BOOLEAN_t tunnelsRestricted; + BOOLEAN_t limitedQuantity; + IA5String_t *emergencyActionCode; /* OPTIONAL */ + PhoneNumber_t *phoneNumber; /* OPTIONAL */ + UTF8String_t *companyName; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DangerousGoodsExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousGoodsExtended_H_ */ +#include diff --git a/vcits/ssem/DangerousSituationSubCauseCode.h b/vcits/ssem/DangerousSituationSubCauseCode.h new file mode 100644 index 0000000..ad6e023 --- /dev/null +++ b/vcits/ssem/DangerousSituationSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DangerousSituationSubCauseCode_H_ +#define _DangerousSituationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DangerousSituationSubCauseCode { + DangerousSituationSubCauseCode_unavailable = 0, + DangerousSituationSubCauseCode_emergencyElectronicBrakeEngaged = 1, + DangerousSituationSubCauseCode_preCrashSystemEngaged = 2, + DangerousSituationSubCauseCode_espEngaged = 3, + DangerousSituationSubCauseCode_absEngaged = 4, + DangerousSituationSubCauseCode_aebEngaged = 5, + DangerousSituationSubCauseCode_brakeWarningEngaged = 6, + DangerousSituationSubCauseCode_collisionRiskWarningEngaged = 7 +} e_DangerousSituationSubCauseCode; + +/* DangerousSituationSubCauseCode */ +typedef long DangerousSituationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode; +asn_struct_free_f DangerousSituationSubCauseCode_free; +asn_struct_print_f DangerousSituationSubCauseCode_print; +asn_constr_check_f DangerousSituationSubCauseCode_constraint; +ber_type_decoder_f DangerousSituationSubCauseCode_decode_ber; +der_type_encoder_f DangerousSituationSubCauseCode_encode_der; +xer_type_decoder_f DangerousSituationSubCauseCode_decode_xer; +xer_type_encoder_f DangerousSituationSubCauseCode_encode_xer; +oer_type_decoder_f DangerousSituationSubCauseCode_decode_oer; +oer_type_encoder_f DangerousSituationSubCauseCode_encode_oer; +per_type_decoder_f DangerousSituationSubCauseCode_decode_uper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_uper; +per_type_decoder_f DangerousSituationSubCauseCode_decode_aper; +per_type_encoder_f DangerousSituationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DangerousSituationSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/DataParameters.h b/vcits/ssem/DataParameters.h new file mode 100644 index 0000000..608c3bd --- /dev/null +++ b/vcits/ssem/DataParameters.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DataParameters_H_ +#define _DataParameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DataParameters */ +typedef struct DataParameters { + IA5String_t *processMethod; /* OPTIONAL */ + IA5String_t *processAgency; /* OPTIONAL */ + IA5String_t *lastCheckedDate; /* OPTIONAL */ + IA5String_t *geoidUsed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DataParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DataParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_DataParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DataParameters_H_ */ +#include diff --git a/vcits/ssem/DeltaAltitude.h b/vcits/ssem/DeltaAltitude.h new file mode 100644 index 0000000..d5d2a2a --- /dev/null +++ b/vcits/ssem/DeltaAltitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DeltaAltitude_H_ +#define _DeltaAltitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaAltitude { + DeltaAltitude_oneCentimeterUp = 1, + DeltaAltitude_oneCentimeterDown = -1, + DeltaAltitude_unavailable = 12800 +} e_DeltaAltitude; + +/* DeltaAltitude */ +typedef long DeltaAltitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAltitude; +asn_struct_free_f DeltaAltitude_free; +asn_struct_print_f DeltaAltitude_print; +asn_constr_check_f DeltaAltitude_constraint; +ber_type_decoder_f DeltaAltitude_decode_ber; +der_type_encoder_f DeltaAltitude_encode_der; +xer_type_decoder_f DeltaAltitude_decode_xer; +xer_type_encoder_f DeltaAltitude_encode_xer; +oer_type_decoder_f DeltaAltitude_decode_oer; +oer_type_encoder_f DeltaAltitude_encode_oer; +per_type_decoder_f DeltaAltitude_decode_uper; +per_type_encoder_f DeltaAltitude_encode_uper; +per_type_decoder_f DeltaAltitude_decode_aper; +per_type_encoder_f DeltaAltitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAltitude_H_ */ +#include diff --git a/vcits/ssem/DeltaAngle.h b/vcits/ssem/DeltaAngle.h new file mode 100644 index 0000000..2d32cf2 --- /dev/null +++ b/vcits/ssem/DeltaAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DeltaAngle_H_ +#define _DeltaAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaAngle */ +typedef long DeltaAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAngle; +asn_struct_free_f DeltaAngle_free; +asn_struct_print_f DeltaAngle_print; +asn_constr_check_f DeltaAngle_constraint; +ber_type_decoder_f DeltaAngle_decode_ber; +der_type_encoder_f DeltaAngle_encode_der; +xer_type_decoder_f DeltaAngle_decode_xer; +xer_type_encoder_f DeltaAngle_encode_xer; +oer_type_decoder_f DeltaAngle_decode_oer; +oer_type_encoder_f DeltaAngle_encode_oer; +per_type_decoder_f DeltaAngle_decode_uper; +per_type_encoder_f DeltaAngle_encode_uper; +per_type_decoder_f DeltaAngle_decode_aper; +per_type_encoder_f DeltaAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAngle_H_ */ +#include diff --git a/vcits/ssem/DeltaLatitude.h b/vcits/ssem/DeltaLatitude.h new file mode 100644 index 0000000..558a436 --- /dev/null +++ b/vcits/ssem/DeltaLatitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DeltaLatitude_H_ +#define _DeltaLatitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLatitude { + DeltaLatitude_oneMicrodegreeNorth = 10, + DeltaLatitude_oneMicrodegreeSouth = -10, + DeltaLatitude_unavailable = 131072 +} e_DeltaLatitude; + +/* DeltaLatitude */ +typedef long DeltaLatitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLatitude; +asn_struct_free_f DeltaLatitude_free; +asn_struct_print_f DeltaLatitude_print; +asn_constr_check_f DeltaLatitude_constraint; +ber_type_decoder_f DeltaLatitude_decode_ber; +der_type_encoder_f DeltaLatitude_encode_der; +xer_type_decoder_f DeltaLatitude_decode_xer; +xer_type_encoder_f DeltaLatitude_encode_xer; +oer_type_decoder_f DeltaLatitude_decode_oer; +oer_type_encoder_f DeltaLatitude_encode_oer; +per_type_decoder_f DeltaLatitude_decode_uper; +per_type_encoder_f DeltaLatitude_encode_uper; +per_type_decoder_f DeltaLatitude_decode_aper; +per_type_encoder_f DeltaLatitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLatitude_H_ */ +#include diff --git a/vcits/ssem/DeltaLongitude.h b/vcits/ssem/DeltaLongitude.h new file mode 100644 index 0000000..d1917e0 --- /dev/null +++ b/vcits/ssem/DeltaLongitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DeltaLongitude_H_ +#define _DeltaLongitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DeltaLongitude { + DeltaLongitude_oneMicrodegreeEast = 10, + DeltaLongitude_oneMicrodegreeWest = -10, + DeltaLongitude_unavailable = 131072 +} e_DeltaLongitude; + +/* DeltaLongitude */ +typedef long DeltaLongitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaLongitude; +asn_struct_free_f DeltaLongitude_free; +asn_struct_print_f DeltaLongitude_print; +asn_constr_check_f DeltaLongitude_constraint; +ber_type_decoder_f DeltaLongitude_decode_ber; +der_type_encoder_f DeltaLongitude_encode_der; +xer_type_decoder_f DeltaLongitude_decode_xer; +xer_type_encoder_f DeltaLongitude_encode_xer; +oer_type_decoder_f DeltaLongitude_decode_oer; +oer_type_encoder_f DeltaLongitude_encode_oer; +per_type_decoder_f DeltaLongitude_decode_uper; +per_type_encoder_f DeltaLongitude_encode_uper; +per_type_decoder_f DeltaLongitude_decode_aper; +per_type_encoder_f DeltaLongitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaLongitude_H_ */ +#include diff --git a/vcits/ssem/DeltaReferencePosition.h b/vcits/ssem/DeltaReferencePosition.h new file mode 100644 index 0000000..a4736fa --- /dev/null +++ b/vcits/ssem/DeltaReferencePosition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DeltaReferencePosition_H_ +#define _DeltaReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaLatitude.h" +#include "DeltaLongitude.h" +#include "DeltaAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaReferencePosition */ +typedef struct DeltaReferencePosition { + DeltaLatitude_t deltaLatitude; + DeltaLongitude_t deltaLongitude; + DeltaAltitude_t deltaAltitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DeltaReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaReferencePosition_H_ */ +#include diff --git a/vcits/ssem/DeltaTime.h b/vcits/ssem/DeltaTime.h new file mode 100644 index 0000000..7fa6694 --- /dev/null +++ b/vcits/ssem/DeltaTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DeltaTime_H_ +#define _DeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaTime */ +typedef long DeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaTime; +asn_struct_free_f DeltaTime_free; +asn_struct_print_f DeltaTime_print; +asn_constr_check_f DeltaTime_constraint; +ber_type_decoder_f DeltaTime_decode_ber; +der_type_encoder_f DeltaTime_encode_der; +xer_type_decoder_f DeltaTime_decode_xer; +xer_type_encoder_f DeltaTime_encode_xer; +oer_type_decoder_f DeltaTime_decode_oer; +oer_type_encoder_f DeltaTime_encode_oer; +per_type_decoder_f DeltaTime_decode_uper; +per_type_encoder_f DeltaTime_encode_uper; +per_type_decoder_f DeltaTime_decode_aper; +per_type_encoder_f DeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaTime_H_ */ +#include diff --git a/vcits/ssem/DescriptiveName.h b/vcits/ssem/DescriptiveName.h new file mode 100644 index 0000000..9467668 --- /dev/null +++ b/vcits/ssem/DescriptiveName.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DescriptiveName_H_ +#define _DescriptiveName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DescriptiveName */ +typedef IA5String_t DescriptiveName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DescriptiveName; +asn_struct_free_f DescriptiveName_free; +asn_struct_print_f DescriptiveName_print; +asn_constr_check_f DescriptiveName_constraint; +ber_type_decoder_f DescriptiveName_decode_ber; +der_type_encoder_f DescriptiveName_encode_der; +xer_type_decoder_f DescriptiveName_decode_xer; +xer_type_encoder_f DescriptiveName_encode_xer; +oer_type_decoder_f DescriptiveName_decode_oer; +oer_type_encoder_f DescriptiveName_encode_oer; +per_type_decoder_f DescriptiveName_decode_uper; +per_type_encoder_f DescriptiveName_encode_uper; +per_type_decoder_f DescriptiveName_decode_aper; +per_type_encoder_f DescriptiveName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DescriptiveName_H_ */ +#include diff --git a/vcits/ssem/DigitalMap.h b/vcits/ssem/DigitalMap.h new file mode 100644 index 0000000..cd36ebe --- /dev/null +++ b/vcits/ssem/DigitalMap.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DigitalMap_H_ +#define _DigitalMap_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* DigitalMap */ +typedef struct DigitalMap { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DigitalMap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DigitalMap; + +#ifdef __cplusplus +} +#endif + +#endif /* _DigitalMap_H_ */ +#include diff --git a/vcits/ssem/DriveDirection.h b/vcits/ssem/DriveDirection.h new file mode 100644 index 0000000..e350634 --- /dev/null +++ b/vcits/ssem/DriveDirection.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DriveDirection_H_ +#define _DriveDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DriveDirection { + DriveDirection_forward = 0, + DriveDirection_backward = 1, + DriveDirection_unavailable = 2 +} e_DriveDirection; + +/* DriveDirection */ +typedef long DriveDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DriveDirection; +asn_struct_free_f DriveDirection_free; +asn_struct_print_f DriveDirection_print; +asn_constr_check_f DriveDirection_constraint; +ber_type_decoder_f DriveDirection_decode_ber; +der_type_encoder_f DriveDirection_encode_der; +xer_type_decoder_f DriveDirection_decode_xer; +xer_type_encoder_f DriveDirection_encode_xer; +oer_type_decoder_f DriveDirection_decode_oer; +oer_type_encoder_f DriveDirection_encode_oer; +per_type_decoder_f DriveDirection_decode_uper; +per_type_encoder_f DriveDirection_encode_uper; +per_type_decoder_f DriveDirection_decode_aper; +per_type_encoder_f DriveDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DriveDirection_H_ */ +#include diff --git a/vcits/ssem/DrivenLineOffsetLg.h b/vcits/ssem/DrivenLineOffsetLg.h new file mode 100644 index 0000000..0f572b4 --- /dev/null +++ b/vcits/ssem/DrivenLineOffsetLg.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DrivenLineOffsetLg_H_ +#define _DrivenLineOffsetLg_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetLg */ +typedef long DrivenLineOffsetLg_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg; +asn_struct_free_f DrivenLineOffsetLg_free; +asn_struct_print_f DrivenLineOffsetLg_print; +asn_constr_check_f DrivenLineOffsetLg_constraint; +ber_type_decoder_f DrivenLineOffsetLg_decode_ber; +der_type_encoder_f DrivenLineOffsetLg_encode_der; +xer_type_decoder_f DrivenLineOffsetLg_decode_xer; +xer_type_encoder_f DrivenLineOffsetLg_encode_xer; +oer_type_decoder_f DrivenLineOffsetLg_decode_oer; +oer_type_encoder_f DrivenLineOffsetLg_encode_oer; +per_type_decoder_f DrivenLineOffsetLg_decode_uper; +per_type_encoder_f DrivenLineOffsetLg_encode_uper; +per_type_decoder_f DrivenLineOffsetLg_decode_aper; +per_type_encoder_f DrivenLineOffsetLg_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetLg_H_ */ +#include diff --git a/vcits/ssem/DrivenLineOffsetSm.h b/vcits/ssem/DrivenLineOffsetSm.h new file mode 100644 index 0000000..106ec95 --- /dev/null +++ b/vcits/ssem/DrivenLineOffsetSm.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DrivenLineOffsetSm_H_ +#define _DrivenLineOffsetSm_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetSm */ +typedef long DrivenLineOffsetSm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm; +asn_struct_free_f DrivenLineOffsetSm_free; +asn_struct_print_f DrivenLineOffsetSm_print; +asn_constr_check_f DrivenLineOffsetSm_constraint; +ber_type_decoder_f DrivenLineOffsetSm_decode_ber; +der_type_encoder_f DrivenLineOffsetSm_encode_der; +xer_type_decoder_f DrivenLineOffsetSm_decode_xer; +xer_type_encoder_f DrivenLineOffsetSm_encode_xer; +oer_type_decoder_f DrivenLineOffsetSm_decode_oer; +oer_type_encoder_f DrivenLineOffsetSm_encode_oer; +per_type_decoder_f DrivenLineOffsetSm_decode_uper; +per_type_encoder_f DrivenLineOffsetSm_encode_uper; +per_type_decoder_f DrivenLineOffsetSm_decode_aper; +per_type_encoder_f DrivenLineOffsetSm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetSm_H_ */ +#include diff --git a/vcits/ssem/DrivingLaneStatus.h b/vcits/ssem/DrivingLaneStatus.h new file mode 100644 index 0000000..27cd0bc --- /dev/null +++ b/vcits/ssem/DrivingLaneStatus.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _DrivingLaneStatus_H_ +#define _DrivingLaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivingLaneStatus */ +typedef BIT_STRING_t DrivingLaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus; +asn_struct_free_f DrivingLaneStatus_free; +asn_struct_print_f DrivingLaneStatus_print; +asn_constr_check_f DrivingLaneStatus_constraint; +ber_type_decoder_f DrivingLaneStatus_decode_ber; +der_type_encoder_f DrivingLaneStatus_encode_der; +xer_type_decoder_f DrivingLaneStatus_decode_xer; +xer_type_encoder_f DrivingLaneStatus_encode_xer; +oer_type_decoder_f DrivingLaneStatus_decode_oer; +oer_type_encoder_f DrivingLaneStatus_encode_oer; +per_type_decoder_f DrivingLaneStatus_decode_uper; +per_type_encoder_f DrivingLaneStatus_encode_uper; +per_type_decoder_f DrivingLaneStatus_decode_aper; +per_type_encoder_f DrivingLaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivingLaneStatus_H_ */ +#include diff --git a/vcits/ssem/Elevation.h b/vcits/ssem/Elevation.h new file mode 100644 index 0000000..557f69f --- /dev/null +++ b/vcits/ssem/Elevation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Elevation_H_ +#define _Elevation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Elevation */ +typedef long Elevation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Elevation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Elevation; +asn_struct_free_f Elevation_free; +asn_struct_print_f Elevation_print; +asn_constr_check_f Elevation_constraint; +ber_type_decoder_f Elevation_decode_ber; +der_type_encoder_f Elevation_encode_der; +xer_type_decoder_f Elevation_decode_xer; +xer_type_encoder_f Elevation_encode_xer; +oer_type_decoder_f Elevation_decode_oer; +oer_type_encoder_f Elevation_encode_oer; +per_type_decoder_f Elevation_decode_uper; +per_type_encoder_f Elevation_encode_uper; +per_type_decoder_f Elevation_decode_aper; +per_type_encoder_f Elevation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Elevation_H_ */ +#include diff --git a/vcits/ssem/ElevationConfidence.h b/vcits/ssem/ElevationConfidence.h new file mode 100644 index 0000000..78ac71c --- /dev/null +++ b/vcits/ssem/ElevationConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ElevationConfidence_H_ +#define _ElevationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ElevationConfidence { + ElevationConfidence_unavailable = 0, + ElevationConfidence_elev_500_00 = 1, + ElevationConfidence_elev_200_00 = 2, + ElevationConfidence_elev_100_00 = 3, + ElevationConfidence_elev_050_00 = 4, + ElevationConfidence_elev_020_00 = 5, + ElevationConfidence_elev_010_00 = 6, + ElevationConfidence_elev_005_00 = 7, + ElevationConfidence_elev_002_00 = 8, + ElevationConfidence_elev_001_00 = 9, + ElevationConfidence_elev_000_50 = 10, + ElevationConfidence_elev_000_20 = 11, + ElevationConfidence_elev_000_10 = 12, + ElevationConfidence_elev_000_05 = 13, + ElevationConfidence_elev_000_02 = 14, + ElevationConfidence_elev_000_01 = 15 +} e_ElevationConfidence; + +/* ElevationConfidence */ +typedef long ElevationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ElevationConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1; +asn_struct_free_f ElevationConfidence_free; +asn_struct_print_f ElevationConfidence_print; +asn_constr_check_f ElevationConfidence_constraint; +ber_type_decoder_f ElevationConfidence_decode_ber; +der_type_encoder_f ElevationConfidence_encode_der; +xer_type_decoder_f ElevationConfidence_decode_xer; +xer_type_encoder_f ElevationConfidence_encode_xer; +oer_type_decoder_f ElevationConfidence_decode_oer; +oer_type_encoder_f ElevationConfidence_encode_oer; +per_type_decoder_f ElevationConfidence_decode_uper; +per_type_encoder_f ElevationConfidence_encode_uper; +per_type_decoder_f ElevationConfidence_decode_aper; +per_type_encoder_f ElevationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ElevationConfidence_H_ */ +#include diff --git a/vcits/ssem/EmbarkationStatus.h b/vcits/ssem/EmbarkationStatus.h new file mode 100644 index 0000000..a92d1ac --- /dev/null +++ b/vcits/ssem/EmbarkationStatus.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _EmbarkationStatus_H_ +#define _EmbarkationStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EmbarkationStatus */ +typedef BOOLEAN_t EmbarkationStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus; +asn_struct_free_f EmbarkationStatus_free; +asn_struct_print_f EmbarkationStatus_print; +asn_constr_check_f EmbarkationStatus_constraint; +ber_type_decoder_f EmbarkationStatus_decode_ber; +der_type_encoder_f EmbarkationStatus_encode_der; +xer_type_decoder_f EmbarkationStatus_decode_xer; +xer_type_encoder_f EmbarkationStatus_encode_xer; +oer_type_decoder_f EmbarkationStatus_decode_oer; +oer_type_encoder_f EmbarkationStatus_encode_oer; +per_type_decoder_f EmbarkationStatus_decode_uper; +per_type_encoder_f EmbarkationStatus_encode_uper; +per_type_decoder_f EmbarkationStatus_decode_aper; +per_type_encoder_f EmbarkationStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmbarkationStatus_H_ */ +#include diff --git a/vcits/ssem/EmergencyPriority.h b/vcits/ssem/EmergencyPriority.h new file mode 100644 index 0000000..b9709ca --- /dev/null +++ b/vcits/ssem/EmergencyPriority.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _EmergencyPriority_H_ +#define _EmergencyPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyPriority { + EmergencyPriority_requestForRightOfWay = 0, + EmergencyPriority_requestForFreeCrossingAtATrafficLight = 1 +} e_EmergencyPriority; + +/* EmergencyPriority */ +typedef BIT_STRING_t EmergencyPriority_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyPriority; +asn_struct_free_f EmergencyPriority_free; +asn_struct_print_f EmergencyPriority_print; +asn_constr_check_f EmergencyPriority_constraint; +ber_type_decoder_f EmergencyPriority_decode_ber; +der_type_encoder_f EmergencyPriority_encode_der; +xer_type_decoder_f EmergencyPriority_decode_xer; +xer_type_encoder_f EmergencyPriority_encode_xer; +oer_type_decoder_f EmergencyPriority_decode_oer; +oer_type_encoder_f EmergencyPriority_encode_oer; +per_type_decoder_f EmergencyPriority_decode_uper; +per_type_encoder_f EmergencyPriority_encode_uper; +per_type_decoder_f EmergencyPriority_decode_aper; +per_type_encoder_f EmergencyPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyPriority_H_ */ +#include diff --git a/vcits/ssem/EmergencyVehicleApproachingSubCauseCode.h b/vcits/ssem/EmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 0000000..ea26656 --- /dev/null +++ b/vcits/ssem/EmergencyVehicleApproachingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _EmergencyVehicleApproachingSubCauseCode_H_ +#define _EmergencyVehicleApproachingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmergencyVehicleApproachingSubCauseCode { + EmergencyVehicleApproachingSubCauseCode_unavailable = 0, + EmergencyVehicleApproachingSubCauseCode_emergencyVehicleApproaching = 1, + EmergencyVehicleApproachingSubCauseCode_prioritizedVehicleApproaching = 2 +} e_EmergencyVehicleApproachingSubCauseCode; + +/* EmergencyVehicleApproachingSubCauseCode */ +typedef long EmergencyVehicleApproachingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode; +asn_struct_free_f EmergencyVehicleApproachingSubCauseCode_free; +asn_struct_print_f EmergencyVehicleApproachingSubCauseCode_print; +asn_constr_check_f EmergencyVehicleApproachingSubCauseCode_constraint; +ber_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_ber; +der_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_der; +xer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_xer; +xer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_xer; +oer_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_oer; +oer_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_oer; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_uper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_uper; +per_type_decoder_f EmergencyVehicleApproachingSubCauseCode_decode_aper; +per_type_encoder_f EmergencyVehicleApproachingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyVehicleApproachingSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/EmissionType.h b/vcits/ssem/EmissionType.h new file mode 100644 index 0000000..966a68a --- /dev/null +++ b/vcits/ssem/EmissionType.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _EmissionType_H_ +#define _EmissionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmissionType { + EmissionType_euro1 = 0, + EmissionType_euro2 = 1, + EmissionType_euro3 = 2, + EmissionType_euro4 = 3, + EmissionType_euro5 = 4, + EmissionType_euro6 = 5 + /* + * Enumeration is extensible + */ +} e_EmissionType; + +/* EmissionType */ +typedef long EmissionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EmissionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EmissionType; +extern const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1; +asn_struct_free_f EmissionType_free; +asn_struct_print_f EmissionType_print; +asn_constr_check_f EmissionType_constraint; +ber_type_decoder_f EmissionType_decode_ber; +der_type_encoder_f EmissionType_encode_der; +xer_type_decoder_f EmissionType_decode_xer; +xer_type_encoder_f EmissionType_encode_xer; +oer_type_decoder_f EmissionType_decode_oer; +oer_type_encoder_f EmissionType_encode_oer; +per_type_decoder_f EmissionType_decode_uper; +per_type_encoder_f EmissionType_encode_uper; +per_type_decoder_f EmissionType_decode_aper; +per_type_encoder_f EmissionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmissionType_H_ */ +#include diff --git a/vcits/ssem/EnabledLaneList.h b/vcits/ssem/EnabledLaneList.h new file mode 100644 index 0000000..f6a64ef --- /dev/null +++ b/vcits/ssem/EnabledLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _EnabledLaneList_H_ +#define _EnabledLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EnabledLaneList */ +typedef struct EnabledLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EnabledLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnabledLaneList; +extern asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_EnabledLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnabledLaneList_H_ */ +#include diff --git a/vcits/ssem/EnergyStorageType.h b/vcits/ssem/EnergyStorageType.h new file mode 100644 index 0000000..6ceab56 --- /dev/null +++ b/vcits/ssem/EnergyStorageType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _EnergyStorageType_H_ +#define _EnergyStorageType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EnergyStorageType { + EnergyStorageType_hydrogenStorage = 0, + EnergyStorageType_electricEnergyStorage = 1, + EnergyStorageType_liquidPropaneGas = 2, + EnergyStorageType_compressedNaturalGas = 3, + EnergyStorageType_diesel = 4, + EnergyStorageType_gasoline = 5, + EnergyStorageType_ammonia = 6 +} e_EnergyStorageType; + +/* EnergyStorageType */ +typedef BIT_STRING_t EnergyStorageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnergyStorageType; +asn_struct_free_f EnergyStorageType_free; +asn_struct_print_f EnergyStorageType_print; +asn_constr_check_f EnergyStorageType_constraint; +ber_type_decoder_f EnergyStorageType_decode_ber; +der_type_encoder_f EnergyStorageType_encode_der; +xer_type_decoder_f EnergyStorageType_decode_xer; +xer_type_encoder_f EnergyStorageType_encode_xer; +oer_type_decoder_f EnergyStorageType_decode_oer; +oer_type_encoder_f EnergyStorageType_encode_oer; +per_type_decoder_f EnergyStorageType_decode_uper; +per_type_encoder_f EnergyStorageType_encode_uper; +per_type_decoder_f EnergyStorageType_decode_aper; +per_type_encoder_f EnergyStorageType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnergyStorageType_H_ */ +#include diff --git a/vcits/ssem/EuVehicleCategoryCode.h b/vcits/ssem/EuVehicleCategoryCode.h new file mode 100644 index 0000000..915050a --- /dev/null +++ b/vcits/ssem/EuVehicleCategoryCode.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _EuVehicleCategoryCode_H_ +#define _EuVehicleCategoryCode_H_ + + +#include + +/* Including external dependencies */ +#include "EuVehicleCategoryL.h" +#include "EuVehicleCategoryM.h" +#include "EuVehicleCategoryN.h" +#include "EuVehicleCategoryO.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryCode_PR { + EuVehicleCategoryCode_PR_NOTHING, /* No components present */ + EuVehicleCategoryCode_PR_euVehicleCategoryL, + EuVehicleCategoryCode_PR_euVehicleCategoryM, + EuVehicleCategoryCode_PR_euVehicleCategoryN, + EuVehicleCategoryCode_PR_euVehicleCategoryO, + EuVehicleCategoryCode_PR_euVehilcleCategoryT, + EuVehicleCategoryCode_PR_euVehilcleCategoryG +} EuVehicleCategoryCode_PR; + +/* EuVehicleCategoryCode */ +typedef struct EuVehicleCategoryCode { + EuVehicleCategoryCode_PR present; + union EuVehicleCategoryCode_u { + EuVehicleCategoryL_t euVehicleCategoryL; + EuVehicleCategoryM_t euVehicleCategoryM; + EuVehicleCategoryN_t euVehicleCategoryN; + EuVehicleCategoryO_t euVehicleCategoryO; + NULL_t euVehilcleCategoryT; + NULL_t euVehilcleCategoryG; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EuVehicleCategoryCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryCode_H_ */ +#include diff --git a/vcits/ssem/EuVehicleCategoryL.h b/vcits/ssem/EuVehicleCategoryL.h new file mode 100644 index 0000000..c360037 --- /dev/null +++ b/vcits/ssem/EuVehicleCategoryL.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _EuVehicleCategoryL_H_ +#define _EuVehicleCategoryL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryL { + EuVehicleCategoryL_l1 = 0, + EuVehicleCategoryL_l2 = 1, + EuVehicleCategoryL_l3 = 2, + EuVehicleCategoryL_l4 = 3, + EuVehicleCategoryL_l5 = 4, + EuVehicleCategoryL_l6 = 5, + EuVehicleCategoryL_l7 = 6 +} e_EuVehicleCategoryL; + +/* EuVehicleCategoryL */ +typedef long EuVehicleCategoryL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryL; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryL_specs_1; +asn_struct_free_f EuVehicleCategoryL_free; +asn_struct_print_f EuVehicleCategoryL_print; +asn_constr_check_f EuVehicleCategoryL_constraint; +ber_type_decoder_f EuVehicleCategoryL_decode_ber; +der_type_encoder_f EuVehicleCategoryL_encode_der; +xer_type_decoder_f EuVehicleCategoryL_decode_xer; +xer_type_encoder_f EuVehicleCategoryL_encode_xer; +oer_type_decoder_f EuVehicleCategoryL_decode_oer; +oer_type_encoder_f EuVehicleCategoryL_encode_oer; +per_type_decoder_f EuVehicleCategoryL_decode_uper; +per_type_encoder_f EuVehicleCategoryL_encode_uper; +per_type_decoder_f EuVehicleCategoryL_decode_aper; +per_type_encoder_f EuVehicleCategoryL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryL_H_ */ +#include diff --git a/vcits/ssem/EuVehicleCategoryM.h b/vcits/ssem/EuVehicleCategoryM.h new file mode 100644 index 0000000..e0df259 --- /dev/null +++ b/vcits/ssem/EuVehicleCategoryM.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _EuVehicleCategoryM_H_ +#define _EuVehicleCategoryM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryM { + EuVehicleCategoryM_m1 = 0, + EuVehicleCategoryM_m2 = 1, + EuVehicleCategoryM_m3 = 2 +} e_EuVehicleCategoryM; + +/* EuVehicleCategoryM */ +typedef long EuVehicleCategoryM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryM; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryM_specs_1; +asn_struct_free_f EuVehicleCategoryM_free; +asn_struct_print_f EuVehicleCategoryM_print; +asn_constr_check_f EuVehicleCategoryM_constraint; +ber_type_decoder_f EuVehicleCategoryM_decode_ber; +der_type_encoder_f EuVehicleCategoryM_encode_der; +xer_type_decoder_f EuVehicleCategoryM_decode_xer; +xer_type_encoder_f EuVehicleCategoryM_encode_xer; +oer_type_decoder_f EuVehicleCategoryM_decode_oer; +oer_type_encoder_f EuVehicleCategoryM_encode_oer; +per_type_decoder_f EuVehicleCategoryM_decode_uper; +per_type_encoder_f EuVehicleCategoryM_encode_uper; +per_type_decoder_f EuVehicleCategoryM_decode_aper; +per_type_encoder_f EuVehicleCategoryM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryM_H_ */ +#include diff --git a/vcits/ssem/EuVehicleCategoryN.h b/vcits/ssem/EuVehicleCategoryN.h new file mode 100644 index 0000000..753fca8 --- /dev/null +++ b/vcits/ssem/EuVehicleCategoryN.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _EuVehicleCategoryN_H_ +#define _EuVehicleCategoryN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryN { + EuVehicleCategoryN_n1 = 0, + EuVehicleCategoryN_n2 = 1, + EuVehicleCategoryN_n3 = 2 +} e_EuVehicleCategoryN; + +/* EuVehicleCategoryN */ +typedef long EuVehicleCategoryN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryN; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryN_specs_1; +asn_struct_free_f EuVehicleCategoryN_free; +asn_struct_print_f EuVehicleCategoryN_print; +asn_constr_check_f EuVehicleCategoryN_constraint; +ber_type_decoder_f EuVehicleCategoryN_decode_ber; +der_type_encoder_f EuVehicleCategoryN_encode_der; +xer_type_decoder_f EuVehicleCategoryN_decode_xer; +xer_type_encoder_f EuVehicleCategoryN_encode_xer; +oer_type_decoder_f EuVehicleCategoryN_decode_oer; +oer_type_encoder_f EuVehicleCategoryN_encode_oer; +per_type_decoder_f EuVehicleCategoryN_decode_uper; +per_type_encoder_f EuVehicleCategoryN_encode_uper; +per_type_decoder_f EuVehicleCategoryN_decode_aper; +per_type_encoder_f EuVehicleCategoryN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryN_H_ */ +#include diff --git a/vcits/ssem/EuVehicleCategoryO.h b/vcits/ssem/EuVehicleCategoryO.h new file mode 100644 index 0000000..efc81f8 --- /dev/null +++ b/vcits/ssem/EuVehicleCategoryO.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _EuVehicleCategoryO_H_ +#define _EuVehicleCategoryO_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EuVehicleCategoryO { + EuVehicleCategoryO_o1 = 0, + EuVehicleCategoryO_o2 = 1, + EuVehicleCategoryO_o3 = 2, + EuVehicleCategoryO_o4 = 3 +} e_EuVehicleCategoryO; + +/* EuVehicleCategoryO */ +typedef long EuVehicleCategoryO_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EuVehicleCategoryO_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryO; +extern const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryO_specs_1; +asn_struct_free_f EuVehicleCategoryO_free; +asn_struct_print_f EuVehicleCategoryO_print; +asn_constr_check_f EuVehicleCategoryO_constraint; +ber_type_decoder_f EuVehicleCategoryO_decode_ber; +der_type_encoder_f EuVehicleCategoryO_encode_der; +xer_type_decoder_f EuVehicleCategoryO_decode_xer; +xer_type_encoder_f EuVehicleCategoryO_encode_xer; +oer_type_decoder_f EuVehicleCategoryO_decode_oer; +oer_type_encoder_f EuVehicleCategoryO_encode_oer; +per_type_decoder_f EuVehicleCategoryO_decode_uper; +per_type_encoder_f EuVehicleCategoryO_encode_uper; +per_type_decoder_f EuVehicleCategoryO_decode_aper; +per_type_encoder_f EuVehicleCategoryO_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EuVehicleCategoryO_H_ */ +#include diff --git a/vcits/ssem/EventHistory.h b/vcits/ssem/EventHistory.h new file mode 100644 index 0000000..277a064 --- /dev/null +++ b/vcits/ssem/EventHistory.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _EventHistory_H_ +#define _EventHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EventPoint; + +/* EventHistory */ +typedef struct EventHistory { + A_SEQUENCE_OF(struct EventPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventHistory; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventHistory_H_ */ +#include diff --git a/vcits/ssem/EventPoint.h b/vcits/ssem/EventPoint.h new file mode 100644 index 0000000..7d0e52e --- /dev/null +++ b/vcits/ssem/EventPoint.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _EventPoint_H_ +#define _EventPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include "InformationQuality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EventPoint */ +typedef struct EventPoint { + DeltaReferencePosition_t eventPosition; + PathDeltaTime_t *eventDeltaTime; /* OPTIONAL */ + InformationQuality_t informationQuality; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_EventPoint_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventPoint_H_ */ +#include diff --git a/vcits/ssem/ExceptionalCondition.h b/vcits/ssem/ExceptionalCondition.h new file mode 100644 index 0000000..e35ebb9 --- /dev/null +++ b/vcits/ssem/ExceptionalCondition.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ExceptionalCondition_H_ +#define _ExceptionalCondition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExceptionalCondition { + ExceptionalCondition_unknown = 0, + ExceptionalCondition_publicTransportPriority = 1, + ExceptionalCondition_emergencyVehiclePriority = 2, + ExceptionalCondition_trainPriority = 3, + ExceptionalCondition_bridgeOpen = 4, + ExceptionalCondition_vehicleHeight = 5, + ExceptionalCondition_weather = 6, + ExceptionalCondition_trafficJam = 7, + ExceptionalCondition_tunnelClosure = 8, + ExceptionalCondition_meteringActive = 9, + ExceptionalCondition_truckPriority = 10, + ExceptionalCondition_bicyclePlatoonPriority = 11, + ExceptionalCondition_vehiclePlatoonPriority = 12 + /* + * Enumeration is extensible + */ +} e_ExceptionalCondition; + +/* ExceptionalCondition */ +typedef long ExceptionalCondition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ExceptionalCondition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ExceptionalCondition; +extern const asn_INTEGER_specifics_t asn_SPC_ExceptionalCondition_specs_1; +asn_struct_free_f ExceptionalCondition_free; +asn_struct_print_f ExceptionalCondition_print; +asn_constr_check_f ExceptionalCondition_constraint; +ber_type_decoder_f ExceptionalCondition_decode_ber; +der_type_encoder_f ExceptionalCondition_encode_der; +xer_type_decoder_f ExceptionalCondition_decode_xer; +xer_type_encoder_f ExceptionalCondition_encode_xer; +oer_type_decoder_f ExceptionalCondition_decode_oer; +oer_type_encoder_f ExceptionalCondition_encode_oer; +per_type_decoder_f ExceptionalCondition_decode_uper; +per_type_encoder_f ExceptionalCondition_encode_uper; +per_type_decoder_f ExceptionalCondition_decode_aper; +per_type_encoder_f ExceptionalCondition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExceptionalCondition_H_ */ +#include diff --git a/vcits/ssem/ExteriorLights.h b/vcits/ssem/ExteriorLights.h new file mode 100644 index 0000000..f03cc1c --- /dev/null +++ b/vcits/ssem/ExteriorLights.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ExteriorLights_H_ +#define _ExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExteriorLights { + ExteriorLights_lowBeamHeadlightsOn = 0, + ExteriorLights_highBeamHeadlightsOn = 1, + ExteriorLights_leftTurnSignalOn = 2, + ExteriorLights_rightTurnSignalOn = 3, + ExteriorLights_daytimeRunningLightsOn = 4, + ExteriorLights_reverseLightOn = 5, + ExteriorLights_fogLightOn = 6, + ExteriorLights_parkingLightsOn = 7 +} e_ExteriorLights; + +/* ExteriorLights */ +typedef BIT_STRING_t ExteriorLights_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ExteriorLights; +asn_struct_free_f ExteriorLights_free; +asn_struct_print_f ExteriorLights_print; +asn_constr_check_f ExteriorLights_constraint; +ber_type_decoder_f ExteriorLights_decode_ber; +der_type_encoder_f ExteriorLights_encode_der; +xer_type_decoder_f ExteriorLights_decode_xer; +xer_type_encoder_f ExteriorLights_encode_xer; +oer_type_decoder_f ExteriorLights_decode_oer; +oer_type_encoder_f ExteriorLights_encode_oer; +per_type_decoder_f ExteriorLights_decode_uper; +per_type_encoder_f ExteriorLights_encode_uper; +per_type_decoder_f ExteriorLights_decode_aper; +per_type_encoder_f ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExteriorLights_H_ */ +#include diff --git a/vcits/ssem/FreightContainerData.h b/vcits/ssem/FreightContainerData.h new file mode 100644 index 0000000..3fcea9d --- /dev/null +++ b/vcits/ssem/FreightContainerData.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _FreightContainerData_H_ +#define _FreightContainerData_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FreightContainerData */ +typedef struct FreightContainerData { + BIT_STRING_t ownerCode; + long serialNumber; + long checkDigit; + long length; + long height; + long width; + long containerTypeCode; + long maximumGrossMass; + long tareMass; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreightContainerData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreightContainerData; +extern asn_SEQUENCE_specifics_t asn_SPC_FreightContainerData_specs_1; +extern asn_TYPE_member_t asn_MBR_FreightContainerData_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreightContainerData_H_ */ +#include diff --git a/vcits/ssem/FuelType.h b/vcits/ssem/FuelType.h new file mode 100644 index 0000000..8b2693c --- /dev/null +++ b/vcits/ssem/FuelType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _FuelType_H_ +#define _FuelType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FuelType */ +typedef long FuelType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FuelType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FuelType; +asn_struct_free_f FuelType_free; +asn_struct_print_f FuelType_print; +asn_constr_check_f FuelType_constraint; +ber_type_decoder_f FuelType_decode_ber; +der_type_encoder_f FuelType_encode_der; +xer_type_decoder_f FuelType_decode_xer; +xer_type_encoder_f FuelType_encode_xer; +oer_type_decoder_f FuelType_decode_oer; +oer_type_encoder_f FuelType_encode_oer; +per_type_decoder_f FuelType_decode_uper; +per_type_encoder_f FuelType_encode_uper; +per_type_decoder_f FuelType_decode_aper; +per_type_encoder_f FuelType_encode_aper; +#define FuelType_unknownFuel ((FuelType_t)0) +#define FuelType_gasoline ((FuelType_t)1) +#define FuelType_ethanol ((FuelType_t)2) +#define FuelType_diesel ((FuelType_t)3) +#define FuelType_electric ((FuelType_t)4) +#define FuelType_hybrid ((FuelType_t)5) +#define FuelType_hydrogen ((FuelType_t)6) +#define FuelType_natGasLiquid ((FuelType_t)7) +#define FuelType_natGasComp ((FuelType_t)8) +#define FuelType_propane ((FuelType_t)9) + +#ifdef __cplusplus +} +#endif + +#endif /* _FuelType_H_ */ +#include diff --git a/vcits/ssem/FullPositionVector.h b/vcits/ssem/FullPositionVector.h new file mode 100644 index 0000000..ae2dd16 --- /dev/null +++ b/vcits/ssem/FullPositionVector.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _FullPositionVector_H_ +#define _FullPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include "Elevation.h" +#include "HeadingDSRC.h" +#include "TimeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DDateTime; +struct TransmissionAndSpeed; +struct PositionalAccuracy; +struct PositionConfidenceSet; +struct SpeedandHeadingandThrottleConfidence; + +/* FullPositionVector */ +typedef struct FullPositionVector { + struct DDateTime *utcTime; /* OPTIONAL */ + Longitude_t Long; + Latitude_t lat; + Elevation_t *elevation; /* OPTIONAL */ + HeadingDSRC_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + struct PositionalAccuracy *posAccuracy; /* OPTIONAL */ + TimeConfidence_t *timeConfidence; /* OPTIONAL */ + struct PositionConfidenceSet *posConfidence; /* OPTIONAL */ + struct SpeedandHeadingandThrottleConfidence *speedConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FullPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FullPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_FullPositionVector_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FullPositionVector_H_ */ +#include diff --git a/vcits/ssem/GNSSstatus.h b/vcits/ssem/GNSSstatus.h new file mode 100644 index 0000000..0ce9eba --- /dev/null +++ b/vcits/ssem/GNSSstatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _GNSSstatus_H_ +#define _GNSSstatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GNSSstatus { + GNSSstatus_unavailable = 0, + GNSSstatus_isHealthy = 1, + GNSSstatus_isMonitored = 2, + GNSSstatus_baseStationType = 3, + GNSSstatus_aPDOPofUnder5 = 4, + GNSSstatus_inViewOfUnder5 = 5, + GNSSstatus_localCorrectionsPresent = 6, + GNSSstatus_networkCorrectionsPresent = 7 +} e_GNSSstatus; + +/* GNSSstatus */ +typedef BIT_STRING_t GNSSstatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GNSSstatus; +asn_struct_free_f GNSSstatus_free; +asn_struct_print_f GNSSstatus_print; +asn_constr_check_f GNSSstatus_constraint; +ber_type_decoder_f GNSSstatus_decode_ber; +der_type_encoder_f GNSSstatus_encode_der; +xer_type_decoder_f GNSSstatus_decode_xer; +xer_type_encoder_f GNSSstatus_encode_xer; +oer_type_decoder_f GNSSstatus_decode_oer; +oer_type_encoder_f GNSSstatus_encode_oer; +per_type_decoder_f GNSSstatus_decode_uper; +per_type_encoder_f GNSSstatus_encode_uper; +per_type_decoder_f GNSSstatus_decode_aper; +per_type_encoder_f GNSSstatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNSSstatus_H_ */ +#include diff --git a/vcits/ssem/GenericLane.h b/vcits/ssem/GenericLane.h new file mode 100644 index 0000000..4ee3b91 --- /dev/null +++ b/vcits/ssem/GenericLane.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _GenericLane_H_ +#define _GenericLane_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "DescriptiveName.h" +#include "ApproachID.h" +#include "LaneAttributes.h" +#include "AllowedManeuvers.h" +#include "NodeListXY.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectsToList; +struct OverlayLaneList; +struct Reg_GenericLane; + +/* GenericLane */ +typedef struct GenericLane { + LaneID_t laneID; + DescriptiveName_t *name; /* OPTIONAL */ + ApproachID_t *ingressApproach; /* OPTIONAL */ + ApproachID_t *egressApproach; /* OPTIONAL */ + LaneAttributes_t laneAttributes; + AllowedManeuvers_t *maneuvers; /* OPTIONAL */ + NodeListXY_t nodeList; + struct ConnectsToList *connectsTo; /* OPTIONAL */ + struct OverlayLaneList *overlays; /* OPTIONAL */ + struct GenericLane__regional { + A_SEQUENCE_OF(struct Reg_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GenericLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1; +extern asn_TYPE_member_t asn_MBR_GenericLane_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GenericLane_H_ */ +#include diff --git a/vcits/ssem/GeoGraphicalLimit.h b/vcits/ssem/GeoGraphicalLimit.h new file mode 100644 index 0000000..2d9f382 --- /dev/null +++ b/vcits/ssem/GeoGraphicalLimit.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _GeoGraphicalLimit_H_ +#define _GeoGraphicalLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GeoGraphicalLimit { + GeoGraphicalLimit_globalRestriction = 0, + GeoGraphicalLimit_regionalRestriction = 1, + GeoGraphicalLimit_nationalRestriction = 2, + GeoGraphicalLimit_district = 3, + GeoGraphicalLimit_issuerCoverageRestriction = 4, + GeoGraphicalLimit_reservedForCEN1 = 5, + GeoGraphicalLimit_reservedForCEN2 = 6, + GeoGraphicalLimit_issuerSpecificRestriction = 7 +} e_GeoGraphicalLimit; + +/* GeoGraphicalLimit */ +typedef BIT_STRING_t GeoGraphicalLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GeoGraphicalLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GeoGraphicalLimit; +asn_struct_free_f GeoGraphicalLimit_free; +asn_struct_print_f GeoGraphicalLimit_print; +asn_constr_check_f GeoGraphicalLimit_constraint; +ber_type_decoder_f GeoGraphicalLimit_decode_ber; +der_type_encoder_f GeoGraphicalLimit_encode_der; +xer_type_decoder_f GeoGraphicalLimit_decode_xer; +xer_type_encoder_f GeoGraphicalLimit_encode_xer; +oer_type_decoder_f GeoGraphicalLimit_decode_oer; +oer_type_encoder_f GeoGraphicalLimit_encode_oer; +per_type_decoder_f GeoGraphicalLimit_decode_uper; +per_type_encoder_f GeoGraphicalLimit_encode_uper; +per_type_decoder_f GeoGraphicalLimit_decode_aper; +per_type_encoder_f GeoGraphicalLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GeoGraphicalLimit_H_ */ +#include diff --git a/vcits/ssem/HardShoulderStatus.h b/vcits/ssem/HardShoulderStatus.h new file mode 100644 index 0000000..0e0d757 --- /dev/null +++ b/vcits/ssem/HardShoulderStatus.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _HardShoulderStatus_H_ +#define _HardShoulderStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HardShoulderStatus { + HardShoulderStatus_availableForStopping = 0, + HardShoulderStatus_closed = 1, + HardShoulderStatus_availableForDriving = 2 +} e_HardShoulderStatus; + +/* HardShoulderStatus */ +typedef long HardShoulderStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus; +extern const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1; +asn_struct_free_f HardShoulderStatus_free; +asn_struct_print_f HardShoulderStatus_print; +asn_constr_check_f HardShoulderStatus_constraint; +ber_type_decoder_f HardShoulderStatus_decode_ber; +der_type_encoder_f HardShoulderStatus_encode_der; +xer_type_decoder_f HardShoulderStatus_decode_xer; +xer_type_encoder_f HardShoulderStatus_encode_xer; +oer_type_decoder_f HardShoulderStatus_decode_oer; +oer_type_encoder_f HardShoulderStatus_encode_oer; +per_type_decoder_f HardShoulderStatus_decode_uper; +per_type_encoder_f HardShoulderStatus_encode_uper; +per_type_decoder_f HardShoulderStatus_decode_aper; +per_type_encoder_f HardShoulderStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HardShoulderStatus_H_ */ +#include diff --git a/vcits/ssem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h b/vcits/ssem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..c14b8b8 --- /dev/null +++ b/vcits/ssem/HazardousLocation-AnimalOnTheRoadSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_AnimalOnTheRoadSubCauseCode { + HazardousLocation_AnimalOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimals = 1, + HazardousLocation_AnimalOnTheRoadSubCauseCode_herdOfAnimals = 2, + HazardousLocation_AnimalOnTheRoadSubCauseCode_smallAnimals = 3, + HazardousLocation_AnimalOnTheRoadSubCauseCode_largeAnimals = 4 +} e_HazardousLocation_AnimalOnTheRoadSubCauseCode; + +/* HazardousLocation-AnimalOnTheRoadSubCauseCode */ +typedef long HazardousLocation_AnimalOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_AnimalOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_AnimalOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/HazardousLocation-DangerousCurveSubCauseCode.h b/vcits/ssem/HazardousLocation-DangerousCurveSubCauseCode.h new file mode 100644 index 0000000..9b529b1 --- /dev/null +++ b/vcits/ssem/HazardousLocation-DangerousCurveSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _HazardousLocation_DangerousCurveSubCauseCode_H_ +#define _HazardousLocation_DangerousCurveSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_DangerousCurveSubCauseCode { + HazardousLocation_DangerousCurveSubCauseCode_unavailable = 0, + HazardousLocation_DangerousCurveSubCauseCode_dangerousLeftTurnCurve = 1, + HazardousLocation_DangerousCurveSubCauseCode_dangerousRightTurnCurve = 2, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithUnknownTurningDirection = 3, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithLeftTurn = 4, + HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithRightTurn = 5 +} e_HazardousLocation_DangerousCurveSubCauseCode; + +/* HazardousLocation-DangerousCurveSubCauseCode */ +typedef long HazardousLocation_DangerousCurveSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode; +asn_struct_free_f HazardousLocation_DangerousCurveSubCauseCode_free; +asn_struct_print_f HazardousLocation_DangerousCurveSubCauseCode_print; +asn_constr_check_f HazardousLocation_DangerousCurveSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_DangerousCurveSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_DangerousCurveSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_DangerousCurveSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h b/vcits/ssem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..44d1a1b --- /dev/null +++ b/vcits/ssem/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ +#define _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_ObstacleOnTheRoadSubCauseCode { + HazardousLocation_ObstacleOnTheRoadSubCauseCode_unavailable = 0, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_shedLoad = 1, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfVehicles = 2, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfTyres = 3, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_bigObjects = 4, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_fallenTrees = 5, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_hubCaps = 6, + HazardousLocation_ObstacleOnTheRoadSubCauseCode_waitingVehicles = 7 +} e_HazardousLocation_ObstacleOnTheRoadSubCauseCode; + +/* HazardousLocation-ObstacleOnTheRoadSubCauseCode */ +typedef long HazardousLocation_ObstacleOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode; +asn_struct_free_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_free; +asn_struct_print_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_print; +asn_constr_check_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/HazardousLocation-SurfaceConditionSubCauseCode.h b/vcits/ssem/HazardousLocation-SurfaceConditionSubCauseCode.h new file mode 100644 index 0000000..ddd6f58 --- /dev/null +++ b/vcits/ssem/HazardousLocation-SurfaceConditionSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _HazardousLocation_SurfaceConditionSubCauseCode_H_ +#define _HazardousLocation_SurfaceConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HazardousLocation_SurfaceConditionSubCauseCode { + HazardousLocation_SurfaceConditionSubCauseCode_unavailable = 0, + HazardousLocation_SurfaceConditionSubCauseCode_rockfalls = 1, + HazardousLocation_SurfaceConditionSubCauseCode_earthquakeDamage = 2, + HazardousLocation_SurfaceConditionSubCauseCode_sewerCollapse = 3, + HazardousLocation_SurfaceConditionSubCauseCode_subsidence = 4, + HazardousLocation_SurfaceConditionSubCauseCode_snowDrifts = 5, + HazardousLocation_SurfaceConditionSubCauseCode_stormDamage = 6, + HazardousLocation_SurfaceConditionSubCauseCode_burstPipe = 7, + HazardousLocation_SurfaceConditionSubCauseCode_volcanoEruption = 8, + HazardousLocation_SurfaceConditionSubCauseCode_fallingIce = 9 +} e_HazardousLocation_SurfaceConditionSubCauseCode; + +/* HazardousLocation-SurfaceConditionSubCauseCode */ +typedef long HazardousLocation_SurfaceConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode; +asn_struct_free_f HazardousLocation_SurfaceConditionSubCauseCode_free; +asn_struct_print_f HazardousLocation_SurfaceConditionSubCauseCode_print; +asn_constr_check_f HazardousLocation_SurfaceConditionSubCauseCode_constraint; +ber_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_ber; +der_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_der; +xer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_xer; +xer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_xer; +oer_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_oer; +oer_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_oer; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_uper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_uper; +per_type_decoder_f HazardousLocation_SurfaceConditionSubCauseCode_decode_aper; +per_type_encoder_f HazardousLocation_SurfaceConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HazardousLocation_SurfaceConditionSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/Heading.h b/vcits/ssem/Heading.h new file mode 100644 index 0000000..5ce6b2f --- /dev/null +++ b/vcits/ssem/Heading.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Heading_H_ +#define _Heading_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingValue.h" +#include "HeadingConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Heading */ +typedef struct Heading { + HeadingValue_t headingValue; + HeadingConfidence_t headingConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Heading_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Heading; + +#ifdef __cplusplus +} +#endif + +#endif /* _Heading_H_ */ +#include diff --git a/vcits/ssem/HeadingConfidence.h b/vcits/ssem/HeadingConfidence.h new file mode 100644 index 0000000..48153f0 --- /dev/null +++ b/vcits/ssem/HeadingConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _HeadingConfidence_H_ +#define _HeadingConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidence { + HeadingConfidence_equalOrWithinZeroPointOneDegree = 1, + HeadingConfidence_equalOrWithinOneDegree = 10, + HeadingConfidence_outOfRange = 126, + HeadingConfidence_unavailable = 127 +} e_HeadingConfidence; + +/* HeadingConfidence */ +typedef long HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidence; +asn_struct_free_f HeadingConfidence_free; +asn_struct_print_f HeadingConfidence_print; +asn_constr_check_f HeadingConfidence_constraint; +ber_type_decoder_f HeadingConfidence_decode_ber; +der_type_encoder_f HeadingConfidence_encode_der; +xer_type_decoder_f HeadingConfidence_decode_xer; +xer_type_encoder_f HeadingConfidence_encode_xer; +oer_type_decoder_f HeadingConfidence_decode_oer; +oer_type_encoder_f HeadingConfidence_encode_oer; +per_type_decoder_f HeadingConfidence_decode_uper; +per_type_encoder_f HeadingConfidence_encode_uper; +per_type_decoder_f HeadingConfidence_decode_aper; +per_type_encoder_f HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidence_H_ */ +#include diff --git a/vcits/ssem/HeadingConfidenceDSRC.h b/vcits/ssem/HeadingConfidenceDSRC.h new file mode 100644 index 0000000..2dcb762 --- /dev/null +++ b/vcits/ssem/HeadingConfidenceDSRC.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _HeadingConfidenceDSRC_H_ +#define _HeadingConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidenceDSRC { + HeadingConfidenceDSRC_unavailable = 0, + HeadingConfidenceDSRC_prec10deg = 1, + HeadingConfidenceDSRC_prec05deg = 2, + HeadingConfidenceDSRC_prec01deg = 3, + HeadingConfidenceDSRC_prec0_1deg = 4, + HeadingConfidenceDSRC_prec0_05deg = 5, + HeadingConfidenceDSRC_prec0_01deg = 6, + HeadingConfidenceDSRC_prec0_0125deg = 7 +} e_HeadingConfidenceDSRC; + +/* HeadingConfidenceDSRC */ +typedef long HeadingConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_HeadingConfidenceDSRC_specs_1; +asn_struct_free_f HeadingConfidenceDSRC_free; +asn_struct_print_f HeadingConfidenceDSRC_print; +asn_constr_check_f HeadingConfidenceDSRC_constraint; +ber_type_decoder_f HeadingConfidenceDSRC_decode_ber; +der_type_encoder_f HeadingConfidenceDSRC_encode_der; +xer_type_decoder_f HeadingConfidenceDSRC_decode_xer; +xer_type_encoder_f HeadingConfidenceDSRC_encode_xer; +oer_type_decoder_f HeadingConfidenceDSRC_decode_oer; +oer_type_encoder_f HeadingConfidenceDSRC_encode_oer; +per_type_decoder_f HeadingConfidenceDSRC_decode_uper; +per_type_encoder_f HeadingConfidenceDSRC_encode_uper; +per_type_decoder_f HeadingConfidenceDSRC_decode_aper; +per_type_encoder_f HeadingConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidenceDSRC_H_ */ +#include diff --git a/vcits/ssem/HeadingDSRC.h b/vcits/ssem/HeadingDSRC.h new file mode 100644 index 0000000..6f6cb7a --- /dev/null +++ b/vcits/ssem/HeadingDSRC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _HeadingDSRC_H_ +#define _HeadingDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HeadingDSRC */ +typedef long HeadingDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingDSRC; +asn_struct_free_f HeadingDSRC_free; +asn_struct_print_f HeadingDSRC_print; +asn_constr_check_f HeadingDSRC_constraint; +ber_type_decoder_f HeadingDSRC_decode_ber; +der_type_encoder_f HeadingDSRC_encode_der; +xer_type_decoder_f HeadingDSRC_decode_xer; +xer_type_encoder_f HeadingDSRC_encode_xer; +oer_type_decoder_f HeadingDSRC_decode_oer; +oer_type_encoder_f HeadingDSRC_encode_oer; +per_type_decoder_f HeadingDSRC_decode_uper; +per_type_encoder_f HeadingDSRC_encode_uper; +per_type_decoder_f HeadingDSRC_decode_aper; +per_type_encoder_f HeadingDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingDSRC_H_ */ +#include diff --git a/vcits/ssem/HeadingValue.h b/vcits/ssem/HeadingValue.h new file mode 100644 index 0000000..8b07d64 --- /dev/null +++ b/vcits/ssem/HeadingValue.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _HeadingValue_H_ +#define _HeadingValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingValue { + HeadingValue_wgs84North = 0, + HeadingValue_wgs84East = 900, + HeadingValue_wgs84South = 1800, + HeadingValue_wgs84West = 2700, + HeadingValue_unavailable = 3601 +} e_HeadingValue; + +/* HeadingValue */ +typedef long HeadingValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingValue; +asn_struct_free_f HeadingValue_free; +asn_struct_print_f HeadingValue_print; +asn_constr_check_f HeadingValue_constraint; +ber_type_decoder_f HeadingValue_decode_ber; +der_type_encoder_f HeadingValue_encode_der; +xer_type_decoder_f HeadingValue_decode_xer; +xer_type_encoder_f HeadingValue_encode_xer; +oer_type_decoder_f HeadingValue_decode_oer; +oer_type_encoder_f HeadingValue_encode_oer; +per_type_decoder_f HeadingValue_decode_uper; +per_type_encoder_f HeadingValue_encode_uper; +per_type_decoder_f HeadingValue_decode_aper; +per_type_encoder_f HeadingValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingValue_H_ */ +#include diff --git a/vcits/ssem/HeightLonCarr.h b/vcits/ssem/HeightLonCarr.h new file mode 100644 index 0000000..ffbdd25 --- /dev/null +++ b/vcits/ssem/HeightLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _HeightLonCarr_H_ +#define _HeightLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeightLonCarr { + HeightLonCarr_oneCentimeter = 1, + HeightLonCarr_unavailable = 100 +} e_HeightLonCarr; + +/* HeightLonCarr */ +typedef long HeightLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HeightLonCarr; +asn_struct_free_f HeightLonCarr_free; +asn_struct_print_f HeightLonCarr_print; +asn_constr_check_f HeightLonCarr_constraint; +ber_type_decoder_f HeightLonCarr_decode_ber; +der_type_encoder_f HeightLonCarr_encode_der; +xer_type_decoder_f HeightLonCarr_decode_xer; +xer_type_encoder_f HeightLonCarr_encode_xer; +oer_type_decoder_f HeightLonCarr_decode_oer; +oer_type_encoder_f HeightLonCarr_encode_oer; +per_type_decoder_f HeightLonCarr_decode_uper; +per_type_encoder_f HeightLonCarr_encode_uper; +per_type_decoder_f HeightLonCarr_decode_aper; +per_type_encoder_f HeightLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeightLonCarr_H_ */ +#include diff --git a/vcits/ssem/HumanPresenceOnTheRoadSubCauseCode.h b/vcits/ssem/HumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 0000000..436c841 --- /dev/null +++ b/vcits/ssem/HumanPresenceOnTheRoadSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _HumanPresenceOnTheRoadSubCauseCode_H_ +#define _HumanPresenceOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanPresenceOnTheRoadSubCauseCode { + HumanPresenceOnTheRoadSubCauseCode_unavailable = 0, + HumanPresenceOnTheRoadSubCauseCode_childrenOnRoadway = 1, + HumanPresenceOnTheRoadSubCauseCode_cyclistOnRoadway = 2, + HumanPresenceOnTheRoadSubCauseCode_motorcyclistOnRoadway = 3 +} e_HumanPresenceOnTheRoadSubCauseCode; + +/* HumanPresenceOnTheRoadSubCauseCode */ +typedef long HumanPresenceOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode; +asn_struct_free_f HumanPresenceOnTheRoadSubCauseCode_free; +asn_struct_print_f HumanPresenceOnTheRoadSubCauseCode_print; +asn_constr_check_f HumanPresenceOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_xer; +oer_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f HumanPresenceOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f HumanPresenceOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanPresenceOnTheRoadSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/HumanProblemSubCauseCode.h b/vcits/ssem/HumanProblemSubCauseCode.h new file mode 100644 index 0000000..a7c3dc3 --- /dev/null +++ b/vcits/ssem/HumanProblemSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _HumanProblemSubCauseCode_H_ +#define _HumanProblemSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanProblemSubCauseCode { + HumanProblemSubCauseCode_unavailable = 0, + HumanProblemSubCauseCode_glycemiaProblem = 1, + HumanProblemSubCauseCode_heartProblem = 2 +} e_HumanProblemSubCauseCode; + +/* HumanProblemSubCauseCode */ +typedef long HumanProblemSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode; +asn_struct_free_f HumanProblemSubCauseCode_free; +asn_struct_print_f HumanProblemSubCauseCode_print; +asn_constr_check_f HumanProblemSubCauseCode_constraint; +ber_type_decoder_f HumanProblemSubCauseCode_decode_ber; +der_type_encoder_f HumanProblemSubCauseCode_encode_der; +xer_type_decoder_f HumanProblemSubCauseCode_decode_xer; +xer_type_encoder_f HumanProblemSubCauseCode_encode_xer; +oer_type_decoder_f HumanProblemSubCauseCode_decode_oer; +oer_type_encoder_f HumanProblemSubCauseCode_encode_oer; +per_type_decoder_f HumanProblemSubCauseCode_decode_uper; +per_type_encoder_f HumanProblemSubCauseCode_encode_uper; +per_type_decoder_f HumanProblemSubCauseCode_decode_aper; +per_type_encoder_f HumanProblemSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanProblemSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/InformationQuality.h b/vcits/ssem/InformationQuality.h new file mode 100644 index 0000000..3670c6b --- /dev/null +++ b/vcits/ssem/InformationQuality.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _InformationQuality_H_ +#define _InformationQuality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InformationQuality { + InformationQuality_unavailable = 0, + InformationQuality_lowest = 1, + InformationQuality_highest = 7 +} e_InformationQuality; + +/* InformationQuality */ +typedef long InformationQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_InformationQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_InformationQuality; +asn_struct_free_f InformationQuality_free; +asn_struct_print_f InformationQuality_print; +asn_constr_check_f InformationQuality_constraint; +ber_type_decoder_f InformationQuality_decode_ber; +der_type_encoder_f InformationQuality_encode_der; +xer_type_decoder_f InformationQuality_decode_xer; +xer_type_encoder_f InformationQuality_encode_xer; +oer_type_decoder_f InformationQuality_decode_oer; +oer_type_encoder_f InformationQuality_encode_oer; +per_type_decoder_f InformationQuality_decode_uper; +per_type_encoder_f InformationQuality_encode_uper; +per_type_decoder_f InformationQuality_decode_aper; +per_type_encoder_f InformationQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InformationQuality_H_ */ +#include diff --git a/vcits/ssem/IntersectionAccessPoint.h b/vcits/ssem/IntersectionAccessPoint.h new file mode 100644 index 0000000..7dbc34f --- /dev/null +++ b/vcits/ssem/IntersectionAccessPoint.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _IntersectionAccessPoint_H_ +#define _IntersectionAccessPoint_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include "ApproachID.h" +#include "LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionAccessPoint_PR { + IntersectionAccessPoint_PR_NOTHING, /* No components present */ + IntersectionAccessPoint_PR_lane, + IntersectionAccessPoint_PR_approach, + IntersectionAccessPoint_PR_connection + /* Extensions may appear below */ + +} IntersectionAccessPoint_PR; + +/* IntersectionAccessPoint */ +typedef struct IntersectionAccessPoint { + IntersectionAccessPoint_PR present; + union IntersectionAccessPoint_u { + LaneID_t lane; + ApproachID_t approach; + LaneConnectionID_t connection; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionAccessPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint; +extern asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[3]; +extern asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionAccessPoint_H_ */ +#include diff --git a/vcits/ssem/IntersectionGeometry.h b/vcits/ssem/IntersectionGeometry.h new file mode 100644 index 0000000..de3675b --- /dev/null +++ b/vcits/ssem/IntersectionGeometry.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _IntersectionGeometry_H_ +#define _IntersectionGeometry_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "LaneList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct PreemptPriorityList; +struct Reg_IntersectionGeometry; + +/* IntersectionGeometry */ +typedef struct IntersectionGeometry { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + LaneList_t laneSet; + struct PreemptPriorityList *preemptPriorityData; /* OPTIONAL */ + struct IntersectionGeometry__regional { + A_SEQUENCE_OF(struct Reg_IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometry_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometry_H_ */ +#include diff --git a/vcits/ssem/IntersectionGeometryList.h b/vcits/ssem/IntersectionGeometryList.h new file mode 100644 index 0000000..38fb2ff --- /dev/null +++ b/vcits/ssem/IntersectionGeometryList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _IntersectionGeometryList_H_ +#define _IntersectionGeometryList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometry; + +/* IntersectionGeometryList */ +typedef struct IntersectionGeometryList { + A_SEQUENCE_OF(struct IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometryList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometryList_H_ */ +#include diff --git a/vcits/ssem/IntersectionID.h b/vcits/ssem/IntersectionID.h new file mode 100644 index 0000000..cd91beb --- /dev/null +++ b/vcits/ssem/IntersectionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _IntersectionID_H_ +#define _IntersectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionID */ +typedef long IntersectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionID; +asn_struct_free_f IntersectionID_free; +asn_struct_print_f IntersectionID_print; +asn_constr_check_f IntersectionID_constraint; +ber_type_decoder_f IntersectionID_decode_ber; +der_type_encoder_f IntersectionID_encode_der; +xer_type_decoder_f IntersectionID_decode_xer; +xer_type_encoder_f IntersectionID_encode_xer; +oer_type_decoder_f IntersectionID_decode_oer; +oer_type_encoder_f IntersectionID_encode_oer; +per_type_decoder_f IntersectionID_decode_uper; +per_type_encoder_f IntersectionID_encode_uper; +per_type_decoder_f IntersectionID_decode_aper; +per_type_encoder_f IntersectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionID_H_ */ +#include diff --git a/vcits/ssem/IntersectionReferenceID.h b/vcits/ssem/IntersectionReferenceID.h new file mode 100644 index 0000000..da4cb15 --- /dev/null +++ b/vcits/ssem/IntersectionReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _IntersectionReferenceID_H_ +#define _IntersectionReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionReferenceID */ +typedef struct IntersectionReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + IntersectionID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionReferenceID_H_ */ +#include diff --git a/vcits/ssem/IntersectionState-addGrpC.h b/vcits/ssem/IntersectionState-addGrpC.h new file mode 100644 index 0000000..72bf183 --- /dev/null +++ b/vcits/ssem/IntersectionState-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _IntersectionState_addGrpC_H_ +#define _IntersectionState_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponseList; + +/* IntersectionState-addGrpC */ +typedef struct IntersectionState_addGrpC { + struct PrioritizationResponseList *activePrioritizations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_addGrpC_H_ */ +#include diff --git a/vcits/ssem/IntersectionState.h b/vcits/ssem/IntersectionState.h new file mode 100644 index 0000000..aaf6ad6 --- /dev/null +++ b/vcits/ssem/IntersectionState.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _IntersectionState_H_ +#define _IntersectionState_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "MsgCount.h" +#include "IntersectionStatusObject.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MovementList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EnabledLaneList; +struct ManeuverAssistList; +struct Reg_IntersectionState; + +/* IntersectionState */ +typedef struct IntersectionState { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + MsgCount_t revision; + IntersectionStatusObject_t status; + MinuteOfTheYear_t *moy; /* OPTIONAL */ + DSecond_t *timeStamp; /* OPTIONAL */ + struct EnabledLaneList *enabledLanes; /* OPTIONAL */ + MovementList_t states; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct IntersectionState__regional { + A_SEQUENCE_OF(struct Reg_IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_H_ */ +#include diff --git a/vcits/ssem/IntersectionStateList.h b/vcits/ssem/IntersectionStateList.h new file mode 100644 index 0000000..18bf5cd --- /dev/null +++ b/vcits/ssem/IntersectionStateList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _IntersectionStateList_H_ +#define _IntersectionStateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionState; + +/* IntersectionStateList */ +typedef struct IntersectionStateList { + A_SEQUENCE_OF(struct IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStateList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStateList_H_ */ +#include diff --git a/vcits/ssem/IntersectionStatusObject.h b/vcits/ssem/IntersectionStatusObject.h new file mode 100644 index 0000000..642331e --- /dev/null +++ b/vcits/ssem/IntersectionStatusObject.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _IntersectionStatusObject_H_ +#define _IntersectionStatusObject_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionStatusObject { + IntersectionStatusObject_manualControlIsEnabled = 0, + IntersectionStatusObject_stopTimeIsActivated = 1, + IntersectionStatusObject_failureFlash = 2, + IntersectionStatusObject_preemptIsActive = 3, + IntersectionStatusObject_signalPriorityIsActive = 4, + IntersectionStatusObject_fixedTimeOperation = 5, + IntersectionStatusObject_trafficDependentOperation = 6, + IntersectionStatusObject_standbyOperation = 7, + IntersectionStatusObject_failureMode = 8, + IntersectionStatusObject_off = 9, + IntersectionStatusObject_recentMAPmessageUpdate = 10, + IntersectionStatusObject_recentChangeInMAPassignedLanesIDsUsed = 11, + IntersectionStatusObject_noValidMAPisAvailableAtThisTime = 12, + IntersectionStatusObject_noValidSPATisAvailableAtThisTime = 13 +} e_IntersectionStatusObject; + +/* IntersectionStatusObject */ +typedef BIT_STRING_t IntersectionStatusObject_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject; +asn_struct_free_f IntersectionStatusObject_free; +asn_struct_print_f IntersectionStatusObject_print; +asn_constr_check_f IntersectionStatusObject_constraint; +ber_type_decoder_f IntersectionStatusObject_decode_ber; +der_type_encoder_f IntersectionStatusObject_encode_der; +xer_type_decoder_f IntersectionStatusObject_decode_xer; +xer_type_encoder_f IntersectionStatusObject_encode_xer; +oer_type_decoder_f IntersectionStatusObject_decode_oer; +oer_type_encoder_f IntersectionStatusObject_encode_oer; +per_type_decoder_f IntersectionStatusObject_decode_uper; +per_type_encoder_f IntersectionStatusObject_encode_uper; +per_type_decoder_f IntersectionStatusObject_decode_aper; +per_type_encoder_f IntersectionStatusObject_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStatusObject_H_ */ +#include diff --git a/vcits/ssem/Iso3833VehicleType.h b/vcits/ssem/Iso3833VehicleType.h new file mode 100644 index 0000000..ba21b7b --- /dev/null +++ b/vcits/ssem/Iso3833VehicleType.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Iso3833VehicleType_H_ +#define _Iso3833VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Iso3833VehicleType { + Iso3833VehicleType_passengerCar = 0, + Iso3833VehicleType_saloon = 1, + Iso3833VehicleType_convertibleSaloon = 2, + Iso3833VehicleType_pullmanSaloon = 3, + Iso3833VehicleType_stationWagon = 4, + Iso3833VehicleType_truckStationWagon = 5, + Iso3833VehicleType_coupe = 6, + Iso3833VehicleType_convertible = 7, + Iso3833VehicleType_multipurposePassengerCar = 8, + Iso3833VehicleType_forwardControlPassengerCar = 9, + Iso3833VehicleType_specialPassengerCar = 10, + Iso3833VehicleType_bus = 11, + Iso3833VehicleType_minibus = 12, + Iso3833VehicleType_urbanBus = 13, + Iso3833VehicleType_interurbanCoach = 14, + Iso3833VehicleType_longDistanceCoach = 15, + Iso3833VehicleType_articulatedBus = 16, + Iso3833VehicleType_trolleyBus = 17, + Iso3833VehicleType_specialBus = 18, + Iso3833VehicleType_commercialVehicle = 19, + Iso3833VehicleType_specialCommercialVehicle = 20, + Iso3833VehicleType_specialVehicle = 21, + Iso3833VehicleType_trailingTowingVehicle = 22, + Iso3833VehicleType_semiTrailerTowingVehicle = 23, + Iso3833VehicleType_trailer = 24, + Iso3833VehicleType_busTrailer = 25, + Iso3833VehicleType_generalPurposeTrailer = 26, + Iso3833VehicleType_caravan = 27, + Iso3833VehicleType_specialTrailer = 28, + Iso3833VehicleType_semiTrailer = 29, + Iso3833VehicleType_busSemiTrailer = 30, + Iso3833VehicleType_generalPurposeSemiTrailer = 31, + Iso3833VehicleType_specialSemiTrailer = 32, + Iso3833VehicleType_roadTrain = 33, + Iso3833VehicleType_passengerRoadTrain = 34, + Iso3833VehicleType_articulatedRoadTrain = 35, + Iso3833VehicleType_doubleRoadTrain = 36, + Iso3833VehicleType_compositeRoadTrain = 37, + Iso3833VehicleType_specialRoadTrain = 38, + Iso3833VehicleType_moped = 39, + Iso3833VehicleType_motorCycle = 40 +} e_Iso3833VehicleType; + +/* Iso3833VehicleType */ +typedef long Iso3833VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType; +asn_struct_free_f Iso3833VehicleType_free; +asn_struct_print_f Iso3833VehicleType_print; +asn_constr_check_f Iso3833VehicleType_constraint; +ber_type_decoder_f Iso3833VehicleType_decode_ber; +der_type_encoder_f Iso3833VehicleType_encode_der; +xer_type_decoder_f Iso3833VehicleType_decode_xer; +xer_type_encoder_f Iso3833VehicleType_encode_xer; +oer_type_decoder_f Iso3833VehicleType_decode_oer; +oer_type_encoder_f Iso3833VehicleType_encode_oer; +per_type_decoder_f Iso3833VehicleType_decode_uper; +per_type_encoder_f Iso3833VehicleType_encode_uper; +per_type_decoder_f Iso3833VehicleType_decode_aper; +per_type_encoder_f Iso3833VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Iso3833VehicleType_H_ */ +#include diff --git a/vcits/ssem/IssuerIdentifier.h b/vcits/ssem/IssuerIdentifier.h new file mode 100644 index 0000000..087953c --- /dev/null +++ b/vcits/ssem/IssuerIdentifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _IssuerIdentifier_H_ +#define _IssuerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IssuerIdentifier */ +typedef long IssuerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IssuerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IssuerIdentifier; +asn_struct_free_f IssuerIdentifier_free; +asn_struct_print_f IssuerIdentifier_print; +asn_constr_check_f IssuerIdentifier_constraint; +ber_type_decoder_f IssuerIdentifier_decode_ber; +der_type_encoder_f IssuerIdentifier_encode_der; +xer_type_decoder_f IssuerIdentifier_decode_xer; +xer_type_encoder_f IssuerIdentifier_encode_xer; +oer_type_decoder_f IssuerIdentifier_decode_oer; +oer_type_encoder_f IssuerIdentifier_encode_oer; +per_type_decoder_f IssuerIdentifier_decode_uper; +per_type_encoder_f IssuerIdentifier_encode_uper; +per_type_decoder_f IssuerIdentifier_decode_aper; +per_type_encoder_f IssuerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IssuerIdentifier_H_ */ +#include diff --git a/vcits/ssem/ItineraryPath.h b/vcits/ssem/ItineraryPath.h new file mode 100644 index 0000000..431b77d --- /dev/null +++ b/vcits/ssem/ItineraryPath.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ItineraryPath_H_ +#define _ItineraryPath_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReferencePosition; + +/* ItineraryPath */ +typedef struct ItineraryPath { + A_SEQUENCE_OF(struct ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItineraryPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItineraryPath; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItineraryPath_H_ */ +#include diff --git a/vcits/ssem/ItsPduHeader.h b/vcits/ssem/ItsPduHeader.h new file mode 100644 index 0000000..50bf598 --- /dev/null +++ b/vcits/ssem/ItsPduHeader.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ItsPduHeader_H_ +#define _ItsPduHeader_H_ + + +#include + +/* Including external dependencies */ +#include +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ItsPduHeader__messageID { + ItsPduHeader__messageID_denm = 1, + ItsPduHeader__messageID_cam = 2, + ItsPduHeader__messageID_poi = 3, + ItsPduHeader__messageID_spatem = 4, + ItsPduHeader__messageID_mapem = 5, + ItsPduHeader__messageID_ivim = 6, + ItsPduHeader__messageID_ev_rsr = 7, + ItsPduHeader__messageID_tistpgtransaction = 8, + ItsPduHeader__messageID_srem = 9, + ItsPduHeader__messageID_ssem = 10, + ItsPduHeader__messageID_evcsn = 11, + ItsPduHeader__messageID_saem = 12, + ItsPduHeader__messageID_rtcmem = 13 +} e_ItsPduHeader__messageID; + +/* ItsPduHeader */ +typedef struct ItsPduHeader { + long protocolVersion; + long messageID; + StationID_t stationID; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsPduHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsPduHeader; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsPduHeader_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsPduHeader_H_ */ +#include diff --git a/vcits/ssem/ItsStationPosition.h b/vcits/ssem/ItsStationPosition.h new file mode 100644 index 0000000..c23a55f --- /dev/null +++ b/vcits/ssem/ItsStationPosition.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ItsStationPosition_H_ +#define _ItsStationPosition_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "LaneID.h" +#include "TimeReference.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeOffsetPointXY; + +/* ItsStationPosition */ +typedef struct ItsStationPosition { + StationID_t stationID; + LaneID_t *laneID; /* OPTIONAL */ + struct NodeOffsetPointXY *nodeXY; /* OPTIONAL */ + TimeReference_t *timeReference; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsStationPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsStationPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ItsStationPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsStationPosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsStationPosition_H_ */ +#include diff --git a/vcits/ssem/ItsStationPositionList.h b/vcits/ssem/ItsStationPositionList.h new file mode 100644 index 0000000..7f60f1e --- /dev/null +++ b/vcits/ssem/ItsStationPositionList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ItsStationPositionList_H_ +#define _ItsStationPositionList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ItsStationPosition; + +/* ItsStationPositionList */ +typedef struct ItsStationPositionList { + A_SEQUENCE_OF(struct ItsStationPosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ItsStationPositionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ItsStationPositionList; +extern asn_SET_OF_specifics_t asn_SPC_ItsStationPositionList_specs_1; +extern asn_TYPE_member_t asn_MBR_ItsStationPositionList_1[1]; +extern asn_per_constraints_t asn_PER_type_ItsStationPositionList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsStationPositionList_H_ */ +#include diff --git a/vcits/ssem/LaneAttributes-Barrier.h b/vcits/ssem/LaneAttributes-Barrier.h new file mode 100644 index 0000000..1cb0827 --- /dev/null +++ b/vcits/ssem/LaneAttributes-Barrier.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneAttributes_Barrier_H_ +#define _LaneAttributes_Barrier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Barrier { + LaneAttributes_Barrier_median_RevocableLane = 0, + LaneAttributes_Barrier_median = 1, + LaneAttributes_Barrier_whiteLineHashing = 2, + LaneAttributes_Barrier_stripedLines = 3, + LaneAttributes_Barrier_doubleStripedLines = 4, + LaneAttributes_Barrier_trafficCones = 5, + LaneAttributes_Barrier_constructionBarrier = 6, + LaneAttributes_Barrier_trafficChannels = 7, + LaneAttributes_Barrier_lowCurbs = 8, + LaneAttributes_Barrier_highCurbs = 9 +} e_LaneAttributes_Barrier; + +/* LaneAttributes-Barrier */ +typedef BIT_STRING_t LaneAttributes_Barrier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier; +asn_struct_free_f LaneAttributes_Barrier_free; +asn_struct_print_f LaneAttributes_Barrier_print; +asn_constr_check_f LaneAttributes_Barrier_constraint; +ber_type_decoder_f LaneAttributes_Barrier_decode_ber; +der_type_encoder_f LaneAttributes_Barrier_encode_der; +xer_type_decoder_f LaneAttributes_Barrier_decode_xer; +xer_type_encoder_f LaneAttributes_Barrier_encode_xer; +oer_type_decoder_f LaneAttributes_Barrier_decode_oer; +oer_type_encoder_f LaneAttributes_Barrier_encode_oer; +per_type_decoder_f LaneAttributes_Barrier_decode_uper; +per_type_encoder_f LaneAttributes_Barrier_encode_uper; +per_type_decoder_f LaneAttributes_Barrier_decode_aper; +per_type_encoder_f LaneAttributes_Barrier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Barrier_H_ */ +#include diff --git a/vcits/ssem/LaneAttributes-Bike.h b/vcits/ssem/LaneAttributes-Bike.h new file mode 100644 index 0000000..cb9aa1a --- /dev/null +++ b/vcits/ssem/LaneAttributes-Bike.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneAttributes_Bike_H_ +#define _LaneAttributes_Bike_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Bike { + LaneAttributes_Bike_bikeRevocableLane = 0, + LaneAttributes_Bike_pedestrianUseAllowed = 1, + LaneAttributes_Bike_isBikeFlyOverLane = 2, + LaneAttributes_Bike_fixedCycleTime = 3, + LaneAttributes_Bike_biDirectionalCycleTimes = 4, + LaneAttributes_Bike_isolatedByBarrier = 5, + LaneAttributes_Bike_unsignalizedSegmentsPresent = 6 +} e_LaneAttributes_Bike; + +/* LaneAttributes-Bike */ +typedef BIT_STRING_t LaneAttributes_Bike_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike; +asn_struct_free_f LaneAttributes_Bike_free; +asn_struct_print_f LaneAttributes_Bike_print; +asn_constr_check_f LaneAttributes_Bike_constraint; +ber_type_decoder_f LaneAttributes_Bike_decode_ber; +der_type_encoder_f LaneAttributes_Bike_encode_der; +xer_type_decoder_f LaneAttributes_Bike_decode_xer; +xer_type_encoder_f LaneAttributes_Bike_encode_xer; +oer_type_decoder_f LaneAttributes_Bike_decode_oer; +oer_type_encoder_f LaneAttributes_Bike_encode_oer; +per_type_decoder_f LaneAttributes_Bike_decode_uper; +per_type_encoder_f LaneAttributes_Bike_encode_uper; +per_type_decoder_f LaneAttributes_Bike_decode_aper; +per_type_encoder_f LaneAttributes_Bike_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Bike_H_ */ +#include diff --git a/vcits/ssem/LaneAttributes-Crosswalk.h b/vcits/ssem/LaneAttributes-Crosswalk.h new file mode 100644 index 0000000..00b8560 --- /dev/null +++ b/vcits/ssem/LaneAttributes-Crosswalk.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneAttributes_Crosswalk_H_ +#define _LaneAttributes_Crosswalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Crosswalk { + LaneAttributes_Crosswalk_crosswalkRevocableLane = 0, + LaneAttributes_Crosswalk_bicyleUseAllowed = 1, + LaneAttributes_Crosswalk_isXwalkFlyOverLane = 2, + LaneAttributes_Crosswalk_fixedCycleTime = 3, + LaneAttributes_Crosswalk_biDirectionalCycleTimes = 4, + LaneAttributes_Crosswalk_hasPushToWalkButton = 5, + LaneAttributes_Crosswalk_audioSupport = 6, + LaneAttributes_Crosswalk_rfSignalRequestPresent = 7, + LaneAttributes_Crosswalk_unsignalizedSegmentsPresent = 8 +} e_LaneAttributes_Crosswalk; + +/* LaneAttributes-Crosswalk */ +typedef BIT_STRING_t LaneAttributes_Crosswalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk; +asn_struct_free_f LaneAttributes_Crosswalk_free; +asn_struct_print_f LaneAttributes_Crosswalk_print; +asn_constr_check_f LaneAttributes_Crosswalk_constraint; +ber_type_decoder_f LaneAttributes_Crosswalk_decode_ber; +der_type_encoder_f LaneAttributes_Crosswalk_encode_der; +xer_type_decoder_f LaneAttributes_Crosswalk_decode_xer; +xer_type_encoder_f LaneAttributes_Crosswalk_encode_xer; +oer_type_decoder_f LaneAttributes_Crosswalk_decode_oer; +oer_type_encoder_f LaneAttributes_Crosswalk_encode_oer; +per_type_decoder_f LaneAttributes_Crosswalk_decode_uper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_uper; +per_type_decoder_f LaneAttributes_Crosswalk_decode_aper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Crosswalk_H_ */ +#include diff --git a/vcits/ssem/LaneAttributes-Parking.h b/vcits/ssem/LaneAttributes-Parking.h new file mode 100644 index 0000000..b120771 --- /dev/null +++ b/vcits/ssem/LaneAttributes-Parking.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneAttributes_Parking_H_ +#define _LaneAttributes_Parking_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Parking { + LaneAttributes_Parking_parkingRevocableLane = 0, + LaneAttributes_Parking_parallelParkingInUse = 1, + LaneAttributes_Parking_headInParkingInUse = 2, + LaneAttributes_Parking_doNotParkZone = 3, + LaneAttributes_Parking_parkingForBusUse = 4, + LaneAttributes_Parking_parkingForTaxiUse = 5, + LaneAttributes_Parking_noPublicParkingUse = 6 +} e_LaneAttributes_Parking; + +/* LaneAttributes-Parking */ +typedef BIT_STRING_t LaneAttributes_Parking_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking; +asn_struct_free_f LaneAttributes_Parking_free; +asn_struct_print_f LaneAttributes_Parking_print; +asn_constr_check_f LaneAttributes_Parking_constraint; +ber_type_decoder_f LaneAttributes_Parking_decode_ber; +der_type_encoder_f LaneAttributes_Parking_encode_der; +xer_type_decoder_f LaneAttributes_Parking_decode_xer; +xer_type_encoder_f LaneAttributes_Parking_encode_xer; +oer_type_decoder_f LaneAttributes_Parking_decode_oer; +oer_type_encoder_f LaneAttributes_Parking_encode_oer; +per_type_decoder_f LaneAttributes_Parking_decode_uper; +per_type_encoder_f LaneAttributes_Parking_encode_uper; +per_type_decoder_f LaneAttributes_Parking_decode_aper; +per_type_encoder_f LaneAttributes_Parking_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Parking_H_ */ +#include diff --git a/vcits/ssem/LaneAttributes-Sidewalk.h b/vcits/ssem/LaneAttributes-Sidewalk.h new file mode 100644 index 0000000..a85731d --- /dev/null +++ b/vcits/ssem/LaneAttributes-Sidewalk.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneAttributes_Sidewalk_H_ +#define _LaneAttributes_Sidewalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Sidewalk { + LaneAttributes_Sidewalk_sidewalk_RevocableLane = 0, + LaneAttributes_Sidewalk_bicyleUseAllowed = 1, + LaneAttributes_Sidewalk_isSidewalkFlyOverLane = 2, + LaneAttributes_Sidewalk_walkBikes = 3 +} e_LaneAttributes_Sidewalk; + +/* LaneAttributes-Sidewalk */ +typedef BIT_STRING_t LaneAttributes_Sidewalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk; +asn_struct_free_f LaneAttributes_Sidewalk_free; +asn_struct_print_f LaneAttributes_Sidewalk_print; +asn_constr_check_f LaneAttributes_Sidewalk_constraint; +ber_type_decoder_f LaneAttributes_Sidewalk_decode_ber; +der_type_encoder_f LaneAttributes_Sidewalk_encode_der; +xer_type_decoder_f LaneAttributes_Sidewalk_decode_xer; +xer_type_encoder_f LaneAttributes_Sidewalk_encode_xer; +oer_type_decoder_f LaneAttributes_Sidewalk_decode_oer; +oer_type_encoder_f LaneAttributes_Sidewalk_encode_oer; +per_type_decoder_f LaneAttributes_Sidewalk_decode_uper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_uper; +per_type_decoder_f LaneAttributes_Sidewalk_decode_aper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Sidewalk_H_ */ +#include diff --git a/vcits/ssem/LaneAttributes-Striping.h b/vcits/ssem/LaneAttributes-Striping.h new file mode 100644 index 0000000..78c38a2 --- /dev/null +++ b/vcits/ssem/LaneAttributes-Striping.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneAttributes_Striping_H_ +#define _LaneAttributes_Striping_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Striping { + LaneAttributes_Striping_stripeToConnectingLanesRevocableLane = 0, + LaneAttributes_Striping_stripeDrawOnLeft = 1, + LaneAttributes_Striping_stripeDrawOnRight = 2, + LaneAttributes_Striping_stripeToConnectingLanesLeft = 3, + LaneAttributes_Striping_stripeToConnectingLanesRight = 4, + LaneAttributes_Striping_stripeToConnectingLanesAhead = 5 +} e_LaneAttributes_Striping; + +/* LaneAttributes-Striping */ +typedef BIT_STRING_t LaneAttributes_Striping_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping; +asn_struct_free_f LaneAttributes_Striping_free; +asn_struct_print_f LaneAttributes_Striping_print; +asn_constr_check_f LaneAttributes_Striping_constraint; +ber_type_decoder_f LaneAttributes_Striping_decode_ber; +der_type_encoder_f LaneAttributes_Striping_encode_der; +xer_type_decoder_f LaneAttributes_Striping_decode_xer; +xer_type_encoder_f LaneAttributes_Striping_encode_xer; +oer_type_decoder_f LaneAttributes_Striping_decode_oer; +oer_type_encoder_f LaneAttributes_Striping_encode_oer; +per_type_decoder_f LaneAttributes_Striping_decode_uper; +per_type_encoder_f LaneAttributes_Striping_encode_uper; +per_type_decoder_f LaneAttributes_Striping_decode_aper; +per_type_encoder_f LaneAttributes_Striping_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Striping_H_ */ +#include diff --git a/vcits/ssem/LaneAttributes-TrackedVehicle.h b/vcits/ssem/LaneAttributes-TrackedVehicle.h new file mode 100644 index 0000000..23b0d64 --- /dev/null +++ b/vcits/ssem/LaneAttributes-TrackedVehicle.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneAttributes_TrackedVehicle_H_ +#define _LaneAttributes_TrackedVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_TrackedVehicle { + LaneAttributes_TrackedVehicle_spec_RevocableLane = 0, + LaneAttributes_TrackedVehicle_spec_commuterRailRoadTrack = 1, + LaneAttributes_TrackedVehicle_spec_lightRailRoadTrack = 2, + LaneAttributes_TrackedVehicle_spec_heavyRailRoadTrack = 3, + LaneAttributes_TrackedVehicle_spec_otherRailType = 4 +} e_LaneAttributes_TrackedVehicle; + +/* LaneAttributes-TrackedVehicle */ +typedef BIT_STRING_t LaneAttributes_TrackedVehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle; +asn_struct_free_f LaneAttributes_TrackedVehicle_free; +asn_struct_print_f LaneAttributes_TrackedVehicle_print; +asn_constr_check_f LaneAttributes_TrackedVehicle_constraint; +ber_type_decoder_f LaneAttributes_TrackedVehicle_decode_ber; +der_type_encoder_f LaneAttributes_TrackedVehicle_encode_der; +xer_type_decoder_f LaneAttributes_TrackedVehicle_decode_xer; +xer_type_encoder_f LaneAttributes_TrackedVehicle_encode_xer; +oer_type_decoder_f LaneAttributes_TrackedVehicle_decode_oer; +oer_type_encoder_f LaneAttributes_TrackedVehicle_encode_oer; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_uper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_uper; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_aper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_TrackedVehicle_H_ */ +#include diff --git a/vcits/ssem/LaneAttributes-Vehicle.h b/vcits/ssem/LaneAttributes-Vehicle.h new file mode 100644 index 0000000..255e09c --- /dev/null +++ b/vcits/ssem/LaneAttributes-Vehicle.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneAttributes_Vehicle_H_ +#define _LaneAttributes_Vehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Vehicle { + LaneAttributes_Vehicle_isVehicleRevocableLane = 0, + LaneAttributes_Vehicle_isVehicleFlyOverLane = 1, + LaneAttributes_Vehicle_hovLaneUseOnly = 2, + LaneAttributes_Vehicle_restrictedToBusUse = 3, + LaneAttributes_Vehicle_restrictedToTaxiUse = 4, + LaneAttributes_Vehicle_restrictedFromPublicUse = 5, + LaneAttributes_Vehicle_hasIRbeaconCoverage = 6, + LaneAttributes_Vehicle_permissionOnRequest = 7 +} e_LaneAttributes_Vehicle; + +/* LaneAttributes-Vehicle */ +typedef BIT_STRING_t LaneAttributes_Vehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle; +asn_struct_free_f LaneAttributes_Vehicle_free; +asn_struct_print_f LaneAttributes_Vehicle_print; +asn_constr_check_f LaneAttributes_Vehicle_constraint; +ber_type_decoder_f LaneAttributes_Vehicle_decode_ber; +der_type_encoder_f LaneAttributes_Vehicle_encode_der; +xer_type_decoder_f LaneAttributes_Vehicle_decode_xer; +xer_type_encoder_f LaneAttributes_Vehicle_encode_xer; +oer_type_decoder_f LaneAttributes_Vehicle_decode_oer; +oer_type_encoder_f LaneAttributes_Vehicle_encode_oer; +per_type_decoder_f LaneAttributes_Vehicle_decode_uper; +per_type_encoder_f LaneAttributes_Vehicle_encode_uper; +per_type_decoder_f LaneAttributes_Vehicle_decode_aper; +per_type_encoder_f LaneAttributes_Vehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Vehicle_H_ */ +#include diff --git a/vcits/ssem/LaneAttributes-addGrpC.h b/vcits/ssem/LaneAttributes-addGrpC.h new file mode 100644 index 0000000..9b4636f --- /dev/null +++ b/vcits/ssem/LaneAttributes-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneAttributes_addGrpC_H_ +#define _LaneAttributes_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleHeight.h" +#include "VehicleMass.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneAttributes-addGrpC */ +typedef struct LaneAttributes_addGrpC { + VehicleHeight_t *maxVehicleHeight; /* OPTIONAL */ + VehicleMass_t *maxVehicleWeight; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_addGrpC_H_ */ +#include diff --git a/vcits/ssem/LaneAttributes.h b/vcits/ssem/LaneAttributes.h new file mode 100644 index 0000000..827bdc7 --- /dev/null +++ b/vcits/ssem/LaneAttributes.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneAttributes_H_ +#define _LaneAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "LaneDirection.h" +#include "LaneSharing.h" +#include "LaneTypeAttributes.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_LaneAttributes; + +/* LaneAttributes */ +typedef struct LaneAttributes { + LaneDirection_t directionalUse; + LaneSharing_t sharedWith; + LaneTypeAttributes_t laneType; + struct Reg_LaneAttributes *regional; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_H_ */ +#include diff --git a/vcits/ssem/LaneConnectionID.h b/vcits/ssem/LaneConnectionID.h new file mode 100644 index 0000000..26bee5a --- /dev/null +++ b/vcits/ssem/LaneConnectionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneConnectionID_H_ +#define _LaneConnectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneConnectionID */ +typedef long LaneConnectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneConnectionID; +asn_struct_free_f LaneConnectionID_free; +asn_struct_print_f LaneConnectionID_print; +asn_constr_check_f LaneConnectionID_constraint; +ber_type_decoder_f LaneConnectionID_decode_ber; +der_type_encoder_f LaneConnectionID_encode_der; +xer_type_decoder_f LaneConnectionID_decode_xer; +xer_type_encoder_f LaneConnectionID_encode_xer; +oer_type_decoder_f LaneConnectionID_decode_oer; +oer_type_encoder_f LaneConnectionID_encode_oer; +per_type_decoder_f LaneConnectionID_decode_uper; +per_type_encoder_f LaneConnectionID_encode_uper; +per_type_decoder_f LaneConnectionID_decode_aper; +per_type_encoder_f LaneConnectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneConnectionID_H_ */ +#include diff --git a/vcits/ssem/LaneDataAttribute.h b/vcits/ssem/LaneDataAttribute.h new file mode 100644 index 0000000..061c119 --- /dev/null +++ b/vcits/ssem/LaneDataAttribute.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneDataAttribute_H_ +#define _LaneDataAttribute_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaAngle.h" +#include "RoadwayCrownAngle.h" +#include "MergeDivergeNodeAngle.h" +#include "SpeedLimitList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDataAttribute_PR { + LaneDataAttribute_PR_NOTHING, /* No components present */ + LaneDataAttribute_PR_pathEndPointAngle, + LaneDataAttribute_PR_laneCrownPointCenter, + LaneDataAttribute_PR_laneCrownPointLeft, + LaneDataAttribute_PR_laneCrownPointRight, + LaneDataAttribute_PR_laneAngle, + LaneDataAttribute_PR_speedLimits, + LaneDataAttribute_PR_regional + /* Extensions may appear below */ + +} LaneDataAttribute_PR; + +/* Forward declarations */ +struct Reg_LaneDataAttribute; + +/* LaneDataAttribute */ +typedef struct LaneDataAttribute { + LaneDataAttribute_PR present; + union LaneDataAttribute_u { + DeltaAngle_t pathEndPointAngle; + RoadwayCrownAngle_t laneCrownPointCenter; + RoadwayCrownAngle_t laneCrownPointLeft; + RoadwayCrownAngle_t laneCrownPointRight; + MergeDivergeNodeAngle_t laneAngle; + SpeedLimitList_t speedLimits; + struct LaneDataAttribute__regional { + A_SEQUENCE_OF(struct Reg_LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute; +extern asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[7]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttribute_H_ */ +#include diff --git a/vcits/ssem/LaneDataAttributeList.h b/vcits/ssem/LaneDataAttributeList.h new file mode 100644 index 0000000..63840f3 --- /dev/null +++ b/vcits/ssem/LaneDataAttributeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneDataAttributeList_H_ +#define _LaneDataAttributeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LaneDataAttribute; + +/* LaneDataAttributeList */ +typedef struct LaneDataAttributeList { + A_SEQUENCE_OF(struct LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttributeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList; +extern asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttributeList_H_ */ +#include diff --git a/vcits/ssem/LaneDirection.h b/vcits/ssem/LaneDirection.h new file mode 100644 index 0000000..49809a6 --- /dev/null +++ b/vcits/ssem/LaneDirection.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneDirection_H_ +#define _LaneDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDirection { + LaneDirection_ingressPath = 0, + LaneDirection_egressPath = 1 +} e_LaneDirection; + +/* LaneDirection */ +typedef BIT_STRING_t LaneDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneDirection; +asn_struct_free_f LaneDirection_free; +asn_struct_print_f LaneDirection_print; +asn_constr_check_f LaneDirection_constraint; +ber_type_decoder_f LaneDirection_decode_ber; +der_type_encoder_f LaneDirection_encode_der; +xer_type_decoder_f LaneDirection_decode_xer; +xer_type_encoder_f LaneDirection_encode_xer; +oer_type_decoder_f LaneDirection_decode_oer; +oer_type_encoder_f LaneDirection_encode_oer; +per_type_decoder_f LaneDirection_decode_uper; +per_type_encoder_f LaneDirection_encode_uper; +per_type_decoder_f LaneDirection_decode_aper; +per_type_encoder_f LaneDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDirection_H_ */ +#include diff --git a/vcits/ssem/LaneID.h b/vcits/ssem/LaneID.h new file mode 100644 index 0000000..c9a9d01 --- /dev/null +++ b/vcits/ssem/LaneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneID_H_ +#define _LaneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneID */ +typedef long LaneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneID; +asn_struct_free_f LaneID_free; +asn_struct_print_f LaneID_print; +asn_constr_check_f LaneID_constraint; +ber_type_decoder_f LaneID_decode_ber; +der_type_encoder_f LaneID_encode_der; +xer_type_decoder_f LaneID_decode_xer; +xer_type_encoder_f LaneID_encode_xer; +oer_type_decoder_f LaneID_decode_oer; +oer_type_encoder_f LaneID_encode_oer; +per_type_decoder_f LaneID_decode_uper; +per_type_encoder_f LaneID_encode_uper; +per_type_decoder_f LaneID_decode_aper; +per_type_encoder_f LaneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneID_H_ */ +#include diff --git a/vcits/ssem/LaneList.h b/vcits/ssem/LaneList.h new file mode 100644 index 0000000..efc6ab6 --- /dev/null +++ b/vcits/ssem/LaneList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneList_H_ +#define _LaneList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* LaneList */ +typedef struct LaneList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneList; +extern asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneList_H_ */ +#include diff --git a/vcits/ssem/LanePosition.h b/vcits/ssem/LanePosition.h new file mode 100644 index 0000000..e3a22aa --- /dev/null +++ b/vcits/ssem/LanePosition.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LanePosition_H_ +#define _LanePosition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LanePosition { + LanePosition_offTheRoad = -1, + LanePosition_innerHardShoulder = 0, + LanePosition_innermostDrivingLane = 1, + LanePosition_secondLaneFromInside = 2, + LanePosition_outerHardShoulder = 14 +} e_LanePosition; + +/* LanePosition */ +typedef long LanePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LanePosition; +asn_struct_free_f LanePosition_free; +asn_struct_print_f LanePosition_print; +asn_constr_check_f LanePosition_constraint; +ber_type_decoder_f LanePosition_decode_ber; +der_type_encoder_f LanePosition_encode_der; +xer_type_decoder_f LanePosition_decode_xer; +xer_type_encoder_f LanePosition_encode_xer; +oer_type_decoder_f LanePosition_decode_oer; +oer_type_encoder_f LanePosition_encode_oer; +per_type_decoder_f LanePosition_decode_uper; +per_type_encoder_f LanePosition_encode_uper; +per_type_decoder_f LanePosition_decode_aper; +per_type_encoder_f LanePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LanePosition_H_ */ +#include diff --git a/vcits/ssem/LaneSharing.h b/vcits/ssem/LaneSharing.h new file mode 100644 index 0000000..25341d2 --- /dev/null +++ b/vcits/ssem/LaneSharing.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneSharing_H_ +#define _LaneSharing_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneSharing { + LaneSharing_overlappingLaneDescriptionProvided = 0, + LaneSharing_multipleLanesTreatedAsOneLane = 1, + LaneSharing_otherNonMotorizedTrafficTypes = 2, + LaneSharing_individualMotorizedVehicleTraffic = 3, + LaneSharing_busVehicleTraffic = 4, + LaneSharing_taxiVehicleTraffic = 5, + LaneSharing_pedestriansTraffic = 6, + LaneSharing_cyclistVehicleTraffic = 7, + LaneSharing_trackedVehicleTraffic = 8, + LaneSharing_pedestrianTraffic = 9 +} e_LaneSharing; + +/* LaneSharing */ +typedef BIT_STRING_t LaneSharing_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneSharing_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneSharing; +asn_struct_free_f LaneSharing_free; +asn_struct_print_f LaneSharing_print; +asn_constr_check_f LaneSharing_constraint; +ber_type_decoder_f LaneSharing_decode_ber; +der_type_encoder_f LaneSharing_encode_der; +xer_type_decoder_f LaneSharing_decode_xer; +xer_type_encoder_f LaneSharing_encode_xer; +oer_type_decoder_f LaneSharing_decode_oer; +oer_type_encoder_f LaneSharing_encode_oer; +per_type_decoder_f LaneSharing_decode_uper; +per_type_encoder_f LaneSharing_encode_uper; +per_type_decoder_f LaneSharing_decode_aper; +per_type_encoder_f LaneSharing_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneSharing_H_ */ +#include diff --git a/vcits/ssem/LaneTypeAttributes.h b/vcits/ssem/LaneTypeAttributes.h new file mode 100644 index 0000000..b375e51 --- /dev/null +++ b/vcits/ssem/LaneTypeAttributes.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneTypeAttributes_H_ +#define _LaneTypeAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "LaneAttributes-Vehicle.h" +#include "LaneAttributes-Crosswalk.h" +#include "LaneAttributes-Bike.h" +#include "LaneAttributes-Sidewalk.h" +#include "LaneAttributes-Barrier.h" +#include "LaneAttributes-Striping.h" +#include "LaneAttributes-TrackedVehicle.h" +#include "LaneAttributes-Parking.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneTypeAttributes_PR { + LaneTypeAttributes_PR_NOTHING, /* No components present */ + LaneTypeAttributes_PR_vehicle, + LaneTypeAttributes_PR_crosswalk, + LaneTypeAttributes_PR_bikeLane, + LaneTypeAttributes_PR_sidewalk, + LaneTypeAttributes_PR_median, + LaneTypeAttributes_PR_striping, + LaneTypeAttributes_PR_trackedVehicle, + LaneTypeAttributes_PR_parking + /* Extensions may appear below */ + +} LaneTypeAttributes_PR; + +/* LaneTypeAttributes */ +typedef struct LaneTypeAttributes { + LaneTypeAttributes_PR present; + union LaneTypeAttributes_u { + LaneAttributes_Vehicle_t vehicle; + LaneAttributes_Crosswalk_t crosswalk; + LaneAttributes_Bike_t bikeLane; + LaneAttributes_Sidewalk_t sidewalk; + LaneAttributes_Barrier_t median; + LaneAttributes_Striping_t striping; + LaneAttributes_TrackedVehicle_t trackedVehicle; + LaneAttributes_Parking_t parking; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneTypeAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes; +extern asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[8]; +extern asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneTypeAttributes_H_ */ +#include diff --git a/vcits/ssem/LaneWidth.h b/vcits/ssem/LaneWidth.h new file mode 100644 index 0000000..56e3297 --- /dev/null +++ b/vcits/ssem/LaneWidth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LaneWidth_H_ +#define _LaneWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneWidth */ +typedef long LaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneWidth; +asn_struct_free_f LaneWidth_free; +asn_struct_print_f LaneWidth_print; +asn_constr_check_f LaneWidth_constraint; +ber_type_decoder_f LaneWidth_decode_ber; +der_type_encoder_f LaneWidth_encode_der; +xer_type_decoder_f LaneWidth_decode_xer; +xer_type_encoder_f LaneWidth_encode_xer; +oer_type_decoder_f LaneWidth_decode_oer; +oer_type_encoder_f LaneWidth_encode_oer; +per_type_decoder_f LaneWidth_decode_uper; +per_type_encoder_f LaneWidth_encode_uper; +per_type_decoder_f LaneWidth_decode_aper; +per_type_encoder_f LaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneWidth_H_ */ +#include diff --git a/vcits/ssem/LateralAcceleration.h b/vcits/ssem/LateralAcceleration.h new file mode 100644 index 0000000..defdce6 --- /dev/null +++ b/vcits/ssem/LateralAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LateralAcceleration_H_ +#define _LateralAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LateralAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LateralAcceleration */ +typedef struct LateralAcceleration { + LateralAccelerationValue_t lateralAccelerationValue; + AccelerationConfidence_t lateralAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LateralAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LateralAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAcceleration_H_ */ +#include diff --git a/vcits/ssem/LateralAccelerationValue.h b/vcits/ssem/LateralAccelerationValue.h new file mode 100644 index 0000000..3f65b7a --- /dev/null +++ b/vcits/ssem/LateralAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LateralAccelerationValue_H_ +#define _LateralAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LateralAccelerationValue { + LateralAccelerationValue_pointOneMeterPerSecSquaredToRight = -1, + LateralAccelerationValue_pointOneMeterPerSecSquaredToLeft = 1, + LateralAccelerationValue_unavailable = 161 +} e_LateralAccelerationValue; + +/* LateralAccelerationValue */ +typedef long LateralAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue; +asn_struct_free_f LateralAccelerationValue_free; +asn_struct_print_f LateralAccelerationValue_print; +asn_constr_check_f LateralAccelerationValue_constraint; +ber_type_decoder_f LateralAccelerationValue_decode_ber; +der_type_encoder_f LateralAccelerationValue_encode_der; +xer_type_decoder_f LateralAccelerationValue_decode_xer; +xer_type_encoder_f LateralAccelerationValue_encode_xer; +oer_type_decoder_f LateralAccelerationValue_decode_oer; +oer_type_encoder_f LateralAccelerationValue_encode_oer; +per_type_decoder_f LateralAccelerationValue_decode_uper; +per_type_encoder_f LateralAccelerationValue_encode_uper; +per_type_decoder_f LateralAccelerationValue_decode_aper; +per_type_encoder_f LateralAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LateralAccelerationValue_H_ */ +#include diff --git a/vcits/ssem/Latitude.h b/vcits/ssem/Latitude.h new file mode 100644 index 0000000..a7c9fcf --- /dev/null +++ b/vcits/ssem/Latitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Latitude_H_ +#define _Latitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Latitude { + Latitude_oneMicrodegreeNorth = 10, + Latitude_oneMicrodegreeSouth = -10, + Latitude_unavailable = 900000001 +} e_Latitude; + +/* Latitude */ +typedef long Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Latitude; +asn_struct_free_f Latitude_free; +asn_struct_print_f Latitude_print; +asn_constr_check_f Latitude_constraint; +ber_type_decoder_f Latitude_decode_ber; +der_type_encoder_f Latitude_encode_der; +xer_type_decoder_f Latitude_decode_xer; +xer_type_encoder_f Latitude_encode_xer; +oer_type_decoder_f Latitude_decode_oer; +oer_type_encoder_f Latitude_encode_oer; +per_type_decoder_f Latitude_decode_uper; +per_type_encoder_f Latitude_encode_uper; +per_type_decoder_f Latitude_decode_aper; +per_type_encoder_f Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Latitude_H_ */ +#include diff --git a/vcits/ssem/LayerID.h b/vcits/ssem/LayerID.h new file mode 100644 index 0000000..a6d7f97 --- /dev/null +++ b/vcits/ssem/LayerID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LayerID_H_ +#define _LayerID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LayerID */ +typedef long LayerID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerID; +asn_struct_free_f LayerID_free; +asn_struct_print_f LayerID_print; +asn_constr_check_f LayerID_constraint; +ber_type_decoder_f LayerID_decode_ber; +der_type_encoder_f LayerID_encode_der; +xer_type_decoder_f LayerID_decode_xer; +xer_type_encoder_f LayerID_encode_xer; +oer_type_decoder_f LayerID_decode_oer; +oer_type_encoder_f LayerID_encode_oer; +per_type_decoder_f LayerID_decode_uper; +per_type_encoder_f LayerID_encode_uper; +per_type_decoder_f LayerID_decode_aper; +per_type_encoder_f LayerID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerID_H_ */ +#include diff --git a/vcits/ssem/LayerType.h b/vcits/ssem/LayerType.h new file mode 100644 index 0000000..5b6094d --- /dev/null +++ b/vcits/ssem/LayerType.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LayerType_H_ +#define _LayerType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LayerType { + LayerType_none = 0, + LayerType_mixedContent = 1, + LayerType_generalMapData = 2, + LayerType_intersectionData = 3, + LayerType_curveData = 4, + LayerType_roadwaySectionData = 5, + LayerType_parkingAreaData = 6, + LayerType_sharedLaneData = 7 + /* + * Enumeration is extensible + */ +} e_LayerType; + +/* LayerType */ +typedef long LayerType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerType; +extern const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1; +asn_struct_free_f LayerType_free; +asn_struct_print_f LayerType_print; +asn_constr_check_f LayerType_constraint; +ber_type_decoder_f LayerType_decode_ber; +der_type_encoder_f LayerType_encode_der; +xer_type_decoder_f LayerType_decode_xer; +xer_type_encoder_f LayerType_encode_xer; +oer_type_decoder_f LayerType_decode_oer; +oer_type_encoder_f LayerType_encode_oer; +per_type_decoder_f LayerType_decode_uper; +per_type_encoder_f LayerType_encode_uper; +per_type_decoder_f LayerType_decode_aper; +per_type_encoder_f LayerType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerType_H_ */ +#include diff --git a/vcits/ssem/LicPlateNumber.h b/vcits/ssem/LicPlateNumber.h new file mode 100644 index 0000000..3dcd3f2 --- /dev/null +++ b/vcits/ssem/LicPlateNumber.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LicPlateNumber_H_ +#define _LicPlateNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LicPlateNumber */ +typedef OCTET_STRING_t LicPlateNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LicPlateNumber; +asn_struct_free_f LicPlateNumber_free; +asn_struct_print_f LicPlateNumber_print; +asn_constr_check_f LicPlateNumber_constraint; +ber_type_decoder_f LicPlateNumber_decode_ber; +der_type_encoder_f LicPlateNumber_encode_der; +xer_type_decoder_f LicPlateNumber_decode_xer; +xer_type_encoder_f LicPlateNumber_encode_xer; +oer_type_decoder_f LicPlateNumber_decode_oer; +oer_type_encoder_f LicPlateNumber_encode_oer; +per_type_decoder_f LicPlateNumber_decode_uper; +per_type_encoder_f LicPlateNumber_encode_uper; +per_type_decoder_f LicPlateNumber_decode_aper; +per_type_encoder_f LicPlateNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LicPlateNumber_H_ */ +#include diff --git a/vcits/ssem/LightBarSirenInUse.h b/vcits/ssem/LightBarSirenInUse.h new file mode 100644 index 0000000..1022978 --- /dev/null +++ b/vcits/ssem/LightBarSirenInUse.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LightBarSirenInUse_H_ +#define _LightBarSirenInUse_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LightBarSirenInUse { + LightBarSirenInUse_lightBarActivated = 0, + LightBarSirenInUse_sirenActivated = 1 +} e_LightBarSirenInUse; + +/* LightBarSirenInUse */ +typedef BIT_STRING_t LightBarSirenInUse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse; +asn_struct_free_f LightBarSirenInUse_free; +asn_struct_print_f LightBarSirenInUse_print; +asn_constr_check_f LightBarSirenInUse_constraint; +ber_type_decoder_f LightBarSirenInUse_decode_ber; +der_type_encoder_f LightBarSirenInUse_encode_der; +xer_type_decoder_f LightBarSirenInUse_decode_xer; +xer_type_encoder_f LightBarSirenInUse_encode_xer; +oer_type_decoder_f LightBarSirenInUse_decode_oer; +oer_type_encoder_f LightBarSirenInUse_encode_oer; +per_type_decoder_f LightBarSirenInUse_decode_uper; +per_type_encoder_f LightBarSirenInUse_encode_uper; +per_type_decoder_f LightBarSirenInUse_decode_aper; +per_type_encoder_f LightBarSirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LightBarSirenInUse_H_ */ +#include diff --git a/vcits/ssem/Longitude.h b/vcits/ssem/Longitude.h new file mode 100644 index 0000000..e67358a --- /dev/null +++ b/vcits/ssem/Longitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Longitude_H_ +#define _Longitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Longitude { + Longitude_oneMicrodegreeEast = 10, + Longitude_oneMicrodegreeWest = -10, + Longitude_unavailable = 1800000001 +} e_Longitude; + +/* Longitude */ +typedef long Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Longitude; +asn_struct_free_f Longitude_free; +asn_struct_print_f Longitude_print; +asn_constr_check_f Longitude_constraint; +ber_type_decoder_f Longitude_decode_ber; +der_type_encoder_f Longitude_encode_der; +xer_type_decoder_f Longitude_decode_xer; +xer_type_encoder_f Longitude_encode_xer; +oer_type_decoder_f Longitude_decode_oer; +oer_type_encoder_f Longitude_encode_oer; +per_type_decoder_f Longitude_decode_uper; +per_type_encoder_f Longitude_encode_uper; +per_type_decoder_f Longitude_decode_aper; +per_type_encoder_f Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Longitude_H_ */ +#include diff --git a/vcits/ssem/LongitudinalAcceleration.h b/vcits/ssem/LongitudinalAcceleration.h new file mode 100644 index 0000000..9a105f7 --- /dev/null +++ b/vcits/ssem/LongitudinalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LongitudinalAcceleration_H_ +#define _LongitudinalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "LongitudinalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LongitudinalAcceleration */ +typedef struct LongitudinalAcceleration { + LongitudinalAccelerationValue_t longitudinalAccelerationValue; + AccelerationConfidence_t longitudinalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LongitudinalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAcceleration_H_ */ +#include diff --git a/vcits/ssem/LongitudinalAccelerationValue.h b/vcits/ssem/LongitudinalAccelerationValue.h new file mode 100644 index 0000000..075f9fb --- /dev/null +++ b/vcits/ssem/LongitudinalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _LongitudinalAccelerationValue_H_ +#define _LongitudinalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LongitudinalAccelerationValue { + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredForward = 1, + LongitudinalAccelerationValue_pointOneMeterPerSecSquaredBackward = -1, + LongitudinalAccelerationValue_unavailable = 161 +} e_LongitudinalAccelerationValue; + +/* LongitudinalAccelerationValue */ +typedef long LongitudinalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue; +asn_struct_free_f LongitudinalAccelerationValue_free; +asn_struct_print_f LongitudinalAccelerationValue_print; +asn_constr_check_f LongitudinalAccelerationValue_constraint; +ber_type_decoder_f LongitudinalAccelerationValue_decode_ber; +der_type_encoder_f LongitudinalAccelerationValue_encode_der; +xer_type_decoder_f LongitudinalAccelerationValue_decode_xer; +xer_type_encoder_f LongitudinalAccelerationValue_encode_xer; +oer_type_decoder_f LongitudinalAccelerationValue_decode_oer; +oer_type_encoder_f LongitudinalAccelerationValue_encode_oer; +per_type_decoder_f LongitudinalAccelerationValue_decode_uper; +per_type_encoder_f LongitudinalAccelerationValue_encode_uper; +per_type_decoder_f LongitudinalAccelerationValue_decode_aper; +per_type_encoder_f LongitudinalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudinalAccelerationValue_H_ */ +#include diff --git a/vcits/ssem/ManeuverAssistList.h b/vcits/ssem/ManeuverAssistList.h new file mode 100644 index 0000000..016e428 --- /dev/null +++ b/vcits/ssem/ManeuverAssistList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ManeuverAssistList_H_ +#define _ManeuverAssistList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectionManeuverAssist; + +/* ManeuverAssistList */ +typedef struct ManeuverAssistList { + A_SEQUENCE_OF(struct ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ManeuverAssistList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList; +extern asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1; +extern asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[1]; +extern asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManeuverAssistList_H_ */ +#include diff --git a/vcits/ssem/ManufacturerIdentifier.h b/vcits/ssem/ManufacturerIdentifier.h new file mode 100644 index 0000000..701dc92 --- /dev/null +++ b/vcits/ssem/ManufacturerIdentifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ManufacturerIdentifier_H_ +#define _ManufacturerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ManufacturerIdentifier */ +typedef long ManufacturerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ManufacturerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ManufacturerIdentifier; +asn_struct_free_f ManufacturerIdentifier_free; +asn_struct_print_f ManufacturerIdentifier_print; +asn_constr_check_f ManufacturerIdentifier_constraint; +ber_type_decoder_f ManufacturerIdentifier_decode_ber; +der_type_encoder_f ManufacturerIdentifier_encode_der; +xer_type_decoder_f ManufacturerIdentifier_decode_xer; +xer_type_encoder_f ManufacturerIdentifier_encode_xer; +oer_type_decoder_f ManufacturerIdentifier_decode_oer; +oer_type_encoder_f ManufacturerIdentifier_encode_oer; +per_type_decoder_f ManufacturerIdentifier_decode_uper; +per_type_encoder_f ManufacturerIdentifier_encode_uper; +per_type_decoder_f ManufacturerIdentifier_decode_aper; +per_type_encoder_f ManufacturerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManufacturerIdentifier_H_ */ +#include diff --git a/vcits/ssem/MapData-addGrpC.h b/vcits/ssem/MapData-addGrpC.h new file mode 100644 index 0000000..e1e4129 --- /dev/null +++ b/vcits/ssem/MapData-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _MapData_addGrpC_H_ +#define _MapData_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocationList; + +/* MapData-addGrpC */ +typedef struct MapData_addGrpC { + struct SignalHeadLocationList *signalHeadLocations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_addGrpC_H_ */ +#include diff --git a/vcits/ssem/MapData.h b/vcits/ssem/MapData.h new file mode 100644 index 0000000..fb6e423 --- /dev/null +++ b/vcits/ssem/MapData.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _MapData_H_ +#define _MapData_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "MsgCount.h" +#include "LayerType.h" +#include "LayerID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometryList; +struct RoadSegmentList; +struct DataParameters; +struct RestrictionClassList; +struct Reg_MapData; + +/* MapData */ +typedef struct MapData { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + MsgCount_t msgIssueRevision; + LayerType_t *layerType; /* OPTIONAL */ + LayerID_t *layerID; /* OPTIONAL */ + struct IntersectionGeometryList *intersections; /* OPTIONAL */ + struct RoadSegmentList *roadSegments; /* OPTIONAL */ + struct DataParameters *dataParameters; /* OPTIONAL */ + struct RestrictionClassList *restrictionList; /* OPTIONAL */ + struct MapData__regional { + A_SEQUENCE_OF(struct Reg_MapData) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_H_ */ +#include diff --git a/vcits/ssem/MergeDivergeNodeAngle.h b/vcits/ssem/MergeDivergeNodeAngle.h new file mode 100644 index 0000000..2e1d9e1 --- /dev/null +++ b/vcits/ssem/MergeDivergeNodeAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _MergeDivergeNodeAngle_H_ +#define _MergeDivergeNodeAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MergeDivergeNodeAngle */ +typedef long MergeDivergeNodeAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle; +asn_struct_free_f MergeDivergeNodeAngle_free; +asn_struct_print_f MergeDivergeNodeAngle_print; +asn_constr_check_f MergeDivergeNodeAngle_constraint; +ber_type_decoder_f MergeDivergeNodeAngle_decode_ber; +der_type_encoder_f MergeDivergeNodeAngle_encode_der; +xer_type_decoder_f MergeDivergeNodeAngle_decode_xer; +xer_type_encoder_f MergeDivergeNodeAngle_encode_xer; +oer_type_decoder_f MergeDivergeNodeAngle_decode_oer; +oer_type_encoder_f MergeDivergeNodeAngle_encode_oer; +per_type_decoder_f MergeDivergeNodeAngle_decode_uper; +per_type_encoder_f MergeDivergeNodeAngle_encode_uper; +per_type_decoder_f MergeDivergeNodeAngle_decode_aper; +per_type_encoder_f MergeDivergeNodeAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MergeDivergeNodeAngle_H_ */ +#include diff --git a/vcits/ssem/MinuteOfTheYear.h b/vcits/ssem/MinuteOfTheYear.h new file mode 100644 index 0000000..4cb7c39 --- /dev/null +++ b/vcits/ssem/MinuteOfTheYear.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _MinuteOfTheYear_H_ +#define _MinuteOfTheYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MinuteOfTheYear */ +typedef long MinuteOfTheYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear; +asn_struct_free_f MinuteOfTheYear_free; +asn_struct_print_f MinuteOfTheYear_print; +asn_constr_check_f MinuteOfTheYear_constraint; +ber_type_decoder_f MinuteOfTheYear_decode_ber; +der_type_encoder_f MinuteOfTheYear_encode_der; +xer_type_decoder_f MinuteOfTheYear_decode_xer; +xer_type_encoder_f MinuteOfTheYear_encode_xer; +oer_type_decoder_f MinuteOfTheYear_decode_oer; +oer_type_encoder_f MinuteOfTheYear_encode_oer; +per_type_decoder_f MinuteOfTheYear_decode_uper; +per_type_encoder_f MinuteOfTheYear_encode_uper; +per_type_decoder_f MinuteOfTheYear_decode_aper; +per_type_encoder_f MinuteOfTheYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MinuteOfTheYear_H_ */ +#include diff --git a/vcits/ssem/MovementEvent-addGrpC.h b/vcits/ssem/MovementEvent-addGrpC.h new file mode 100644 index 0000000..6a3a95f --- /dev/null +++ b/vcits/ssem/MovementEvent-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _MovementEvent_addGrpC_H_ +#define _MovementEvent_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "ExceptionalCondition.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MovementEvent-addGrpC */ +typedef struct MovementEvent_addGrpC { + ExceptionalCondition_t *stateChangeReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_addGrpC_H_ */ +#include diff --git a/vcits/ssem/MovementEvent.h b/vcits/ssem/MovementEvent.h new file mode 100644 index 0000000..adb2c64 --- /dev/null +++ b/vcits/ssem/MovementEvent.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _MovementEvent_H_ +#define _MovementEvent_H_ + + +#include + +/* Including external dependencies */ +#include "MovementPhaseState.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TimeChangeDetails; +struct AdvisorySpeedList; +struct Reg_MovementEvent; + +/* MovementEvent */ +typedef struct MovementEvent { + MovementPhaseState_t eventState; + struct TimeChangeDetails *timing; /* OPTIONAL */ + struct AdvisorySpeedList *speeds; /* OPTIONAL */ + struct MovementEvent__regional { + A_SEQUENCE_OF(struct Reg_MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_H_ */ +#include diff --git a/vcits/ssem/MovementEventList.h b/vcits/ssem/MovementEventList.h new file mode 100644 index 0000000..94f52ba --- /dev/null +++ b/vcits/ssem/MovementEventList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _MovementEventList_H_ +#define _MovementEventList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementEvent; + +/* MovementEventList */ +typedef struct MovementEventList { + A_SEQUENCE_OF(struct MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEventList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEventList; +extern asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEventList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementEventList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEventList_H_ */ +#include diff --git a/vcits/ssem/MovementList.h b/vcits/ssem/MovementList.h new file mode 100644 index 0000000..ba0ae21 --- /dev/null +++ b/vcits/ssem/MovementList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _MovementList_H_ +#define _MovementList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementState; + +/* MovementList */ +typedef struct MovementList { + A_SEQUENCE_OF(struct MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementList; +extern asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementList_H_ */ +#include diff --git a/vcits/ssem/MovementPhaseState.h b/vcits/ssem/MovementPhaseState.h new file mode 100644 index 0000000..f7216b6 --- /dev/null +++ b/vcits/ssem/MovementPhaseState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _MovementPhaseState_H_ +#define _MovementPhaseState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MovementPhaseState { + MovementPhaseState_unavailable = 0, + MovementPhaseState_dark = 1, + MovementPhaseState_stop_Then_Proceed = 2, + MovementPhaseState_stop_And_Remain = 3, + MovementPhaseState_pre_Movement = 4, + MovementPhaseState_permissive_Movement_Allowed = 5, + MovementPhaseState_protected_Movement_Allowed = 6, + MovementPhaseState_permissive_clearance = 7, + MovementPhaseState_protected_clearance = 8, + MovementPhaseState_caution_Conflicting_Traffic = 9 +} e_MovementPhaseState; + +/* MovementPhaseState */ +typedef long MovementPhaseState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MovementPhaseState; +extern const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1; +asn_struct_free_f MovementPhaseState_free; +asn_struct_print_f MovementPhaseState_print; +asn_constr_check_f MovementPhaseState_constraint; +ber_type_decoder_f MovementPhaseState_decode_ber; +der_type_encoder_f MovementPhaseState_encode_der; +xer_type_decoder_f MovementPhaseState_decode_xer; +xer_type_encoder_f MovementPhaseState_encode_xer; +oer_type_decoder_f MovementPhaseState_decode_oer; +oer_type_encoder_f MovementPhaseState_encode_oer; +per_type_decoder_f MovementPhaseState_decode_uper; +per_type_encoder_f MovementPhaseState_encode_uper; +per_type_decoder_f MovementPhaseState_decode_aper; +per_type_encoder_f MovementPhaseState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementPhaseState_H_ */ +#include diff --git a/vcits/ssem/MovementState.h b/vcits/ssem/MovementState.h new file mode 100644 index 0000000..21100f6 --- /dev/null +++ b/vcits/ssem/MovementState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _MovementState_H_ +#define _MovementState_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "SignalGroupID.h" +#include "MovementEventList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ManeuverAssistList; +struct Reg_MovementState; + +/* MovementState */ +typedef struct MovementState { + DescriptiveName_t *movementName; /* OPTIONAL */ + SignalGroupID_t signalGroup; + MovementEventList_t state_time_speed; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct MovementState__regional { + A_SEQUENCE_OF(struct Reg_MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementState_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementState_H_ */ +#include diff --git a/vcits/ssem/MsgCount.h b/vcits/ssem/MsgCount.h new file mode 100644 index 0000000..728db49 --- /dev/null +++ b/vcits/ssem/MsgCount.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _MsgCount_H_ +#define _MsgCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MsgCount */ +typedef long MsgCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MsgCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MsgCount; +asn_struct_free_f MsgCount_free; +asn_struct_print_f MsgCount_print; +asn_constr_check_f MsgCount_constraint; +ber_type_decoder_f MsgCount_decode_ber; +der_type_encoder_f MsgCount_encode_der; +xer_type_decoder_f MsgCount_decode_xer; +xer_type_encoder_f MsgCount_encode_xer; +oer_type_decoder_f MsgCount_decode_oer; +oer_type_encoder_f MsgCount_encode_oer; +per_type_decoder_f MsgCount_decode_uper; +per_type_encoder_f MsgCount_encode_uper; +per_type_decoder_f MsgCount_decode_aper; +per_type_encoder_f MsgCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MsgCount_H_ */ +#include diff --git a/vcits/ssem/Node-LLmD-64b.h b/vcits/ssem/Node-LLmD-64b.h new file mode 100644 index 0000000..42975bc --- /dev/null +++ b/vcits/ssem/Node-LLmD-64b.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Node_LLmD_64b_H_ +#define _Node_LLmD_64b_H_ + + +#include + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LLmD-64b */ +typedef struct Node_LLmD_64b { + Longitude_t lon; + Latitude_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LLmD_64b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LLmD_64b_H_ */ +#include diff --git a/vcits/ssem/Node-XY-20b.h b/vcits/ssem/Node-XY-20b.h new file mode 100644 index 0000000..13fe387 --- /dev/null +++ b/vcits/ssem/Node-XY-20b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Node_XY_20b_H_ +#define _Node_XY_20b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-20b */ +typedef struct Node_XY_20b { + Offset_B10_t x; + Offset_B10_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_20b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_20b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_20b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_20b_H_ */ +#include diff --git a/vcits/ssem/Node-XY-22b.h b/vcits/ssem/Node-XY-22b.h new file mode 100644 index 0000000..3e793d5 --- /dev/null +++ b/vcits/ssem/Node-XY-22b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Node_XY_22b_H_ +#define _Node_XY_22b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B11.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-22b */ +typedef struct Node_XY_22b { + Offset_B11_t x; + Offset_B11_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_22b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_22b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_22b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_22b_H_ */ +#include diff --git a/vcits/ssem/Node-XY-24b.h b/vcits/ssem/Node-XY-24b.h new file mode 100644 index 0000000..3c96068 --- /dev/null +++ b/vcits/ssem/Node-XY-24b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Node_XY_24b_H_ +#define _Node_XY_24b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B12.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-24b */ +typedef struct Node_XY_24b { + Offset_B12_t x; + Offset_B12_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_24b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_24b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_24b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_24b_H_ */ +#include diff --git a/vcits/ssem/Node-XY-26b.h b/vcits/ssem/Node-XY-26b.h new file mode 100644 index 0000000..698d898 --- /dev/null +++ b/vcits/ssem/Node-XY-26b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Node_XY_26b_H_ +#define _Node_XY_26b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B13.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-26b */ +typedef struct Node_XY_26b { + Offset_B13_t x; + Offset_B13_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_26b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_26b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_26b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_26b_H_ */ +#include diff --git a/vcits/ssem/Node-XY-28b.h b/vcits/ssem/Node-XY-28b.h new file mode 100644 index 0000000..ea934ae --- /dev/null +++ b/vcits/ssem/Node-XY-28b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Node_XY_28b_H_ +#define _Node_XY_28b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B14.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-28b */ +typedef struct Node_XY_28b { + Offset_B14_t x; + Offset_B14_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_28b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_28b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_28b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_28b_H_ */ +#include diff --git a/vcits/ssem/Node-XY-32b.h b/vcits/ssem/Node-XY-32b.h new file mode 100644 index 0000000..a3e66a7 --- /dev/null +++ b/vcits/ssem/Node-XY-32b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Node_XY_32b_H_ +#define _Node_XY_32b_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B16.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-32b */ +typedef struct Node_XY_32b { + Offset_B16_t x; + Offset_B16_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_32b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_32b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_32b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_32b_H_ */ +#include diff --git a/vcits/ssem/Node.h b/vcits/ssem/Node.h new file mode 100644 index 0000000..52e019c --- /dev/null +++ b/vcits/ssem/Node.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Node_H_ +#define _Node_H_ + + +#include + +/* Including external dependencies */ +#include +#include "LaneID.h" +#include "LaneConnectionID.h" +#include "IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node */ +typedef struct Node { + long id; + LaneID_t *lane; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + IntersectionID_t *intersectionID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_H_ */ +#include diff --git a/vcits/ssem/NodeAttributeSet-addGrpC.h b/vcits/ssem/NodeAttributeSet-addGrpC.h new file mode 100644 index 0000000..be290c7 --- /dev/null +++ b/vcits/ssem/NodeAttributeSet-addGrpC.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _NodeAttributeSet_addGrpC_H_ +#define _NodeAttributeSet_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "PtvRequestType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeLink; +struct Node; + +/* NodeAttributeSet-addGrpC */ +typedef struct NodeAttributeSet_addGrpC { + PtvRequestType_t *ptvRequest; /* OPTIONAL */ + struct NodeLink *nodeLink; /* OPTIONAL */ + struct Node *node; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSet_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSet_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSet_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSet_addGrpC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSet_addGrpC_H_ */ +#include diff --git a/vcits/ssem/NodeAttributeSetXY.h b/vcits/ssem/NodeAttributeSetXY.h new file mode 100644 index 0000000..5deaf14 --- /dev/null +++ b/vcits/ssem/NodeAttributeSetXY.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _NodeAttributeSetXY_H_ +#define _NodeAttributeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include "Offset-B10.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeXYList; +struct SegmentAttributeXYList; +struct LaneDataAttributeList; +struct Reg_NodeAttributeSetXY; + +/* NodeAttributeSetXY */ +typedef struct NodeAttributeSetXY { + struct NodeAttributeXYList *localNode; /* OPTIONAL */ + struct SegmentAttributeXYList *disabled; /* OPTIONAL */ + struct SegmentAttributeXYList *enabled; /* OPTIONAL */ + struct LaneDataAttributeList *data; /* OPTIONAL */ + Offset_B10_t *dWidth; /* OPTIONAL */ + Offset_B10_t *dElevation; /* OPTIONAL */ + struct NodeAttributeSetXY__regional { + A_SEQUENCE_OF(struct Reg_NodeAttributeSetXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSetXY_H_ */ +#include diff --git a/vcits/ssem/NodeAttributeXY.h b/vcits/ssem/NodeAttributeXY.h new file mode 100644 index 0000000..b70b088 --- /dev/null +++ b/vcits/ssem/NodeAttributeXY.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _NodeAttributeXY_H_ +#define _NodeAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeAttributeXY { + NodeAttributeXY_reserved = 0, + NodeAttributeXY_stopLine = 1, + NodeAttributeXY_roundedCapStyleA = 2, + NodeAttributeXY_roundedCapStyleB = 3, + NodeAttributeXY_mergePoint = 4, + NodeAttributeXY_divergePoint = 5, + NodeAttributeXY_downstreamStopLine = 6, + NodeAttributeXY_downstreamStartNode = 7, + NodeAttributeXY_closedToTraffic = 8, + NodeAttributeXY_safeIsland = 9, + NodeAttributeXY_curbPresentAtStepOff = 10, + NodeAttributeXY_hydrantPresent = 11 + /* + * Enumeration is extensible + */ +} e_NodeAttributeXY; + +/* NodeAttributeXY */ +typedef long NodeAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1; +asn_struct_free_f NodeAttributeXY_free; +asn_struct_print_f NodeAttributeXY_print; +asn_constr_check_f NodeAttributeXY_constraint; +ber_type_decoder_f NodeAttributeXY_decode_ber; +der_type_encoder_f NodeAttributeXY_encode_der; +xer_type_decoder_f NodeAttributeXY_decode_xer; +xer_type_encoder_f NodeAttributeXY_encode_xer; +oer_type_decoder_f NodeAttributeXY_decode_oer; +oer_type_encoder_f NodeAttributeXY_encode_oer; +per_type_decoder_f NodeAttributeXY_decode_uper; +per_type_encoder_f NodeAttributeXY_encode_uper; +per_type_decoder_f NodeAttributeXY_decode_aper; +per_type_encoder_f NodeAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXY_H_ */ +#include diff --git a/vcits/ssem/NodeAttributeXYList.h b/vcits/ssem/NodeAttributeXYList.h new file mode 100644 index 0000000..1704da7 --- /dev/null +++ b/vcits/ssem/NodeAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _NodeAttributeXYList_H_ +#define _NodeAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "NodeAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NodeAttributeXYList */ +typedef struct NodeAttributeXYList { + A_SEQUENCE_OF(NodeAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXYList_H_ */ +#include diff --git a/vcits/ssem/NodeLink.h b/vcits/ssem/NodeLink.h new file mode 100644 index 0000000..f32576f --- /dev/null +++ b/vcits/ssem/NodeLink.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _NodeLink_H_ +#define _NodeLink_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Node; + +/* NodeLink */ +typedef struct NodeLink { + A_SEQUENCE_OF(struct Node) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeLink_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeLink; +extern asn_SET_OF_specifics_t asn_SPC_NodeLink_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeLink_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeLink_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeLink_H_ */ +#include diff --git a/vcits/ssem/NodeListXY.h b/vcits/ssem/NodeListXY.h new file mode 100644 index 0000000..46c4c75 --- /dev/null +++ b/vcits/ssem/NodeListXY.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _NodeListXY_H_ +#define _NodeListXY_H_ + + +#include + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "ComputedLane.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeListXY_PR { + NodeListXY_PR_NOTHING, /* No components present */ + NodeListXY_PR_nodes, + NodeListXY_PR_computed + /* Extensions may appear below */ + +} NodeListXY_PR; + +/* NodeListXY */ +typedef struct NodeListXY { + NodeListXY_PR present; + union NodeListXY_u { + NodeSetXY_t nodes; + ComputedLane_t computed; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeListXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeListXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeListXY_1[2]; +extern asn_per_constraints_t asn_PER_type_NodeListXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeListXY_H_ */ +#include diff --git a/vcits/ssem/NodeOffsetPointXY.h b/vcits/ssem/NodeOffsetPointXY.h new file mode 100644 index 0000000..150da1c --- /dev/null +++ b/vcits/ssem/NodeOffsetPointXY.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _NodeOffsetPointXY_H_ +#define _NodeOffsetPointXY_H_ + + +#include + +/* Including external dependencies */ +#include "Node-XY-20b.h" +#include "Node-XY-22b.h" +#include "Node-XY-24b.h" +#include "Node-XY-26b.h" +#include "Node-XY-28b.h" +#include "Node-XY-32b.h" +#include "Node-LLmD-64b.h" +#include "RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeOffsetPointXY_PR { + NodeOffsetPointXY_PR_NOTHING, /* No components present */ + NodeOffsetPointXY_PR_node_XY1, + NodeOffsetPointXY_PR_node_XY2, + NodeOffsetPointXY_PR_node_XY3, + NodeOffsetPointXY_PR_node_XY4, + NodeOffsetPointXY_PR_node_XY5, + NodeOffsetPointXY_PR_node_XY6, + NodeOffsetPointXY_PR_node_LatLon, + NodeOffsetPointXY_PR_regional +} NodeOffsetPointXY_PR; + +/* NodeOffsetPointXY */ +typedef struct NodeOffsetPointXY { + NodeOffsetPointXY_PR present; + union NodeOffsetPointXY_u { + Node_XY_20b_t node_XY1; + Node_XY_22b_t node_XY2; + Node_XY_24b_t node_XY3; + Node_XY_26b_t node_XY4; + Node_XY_28b_t node_XY5; + Node_XY_32b_t node_XY6; + Node_LLmD_64b_t node_LatLon; + Reg_NodeOffsetPointXY_t regional; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeOffsetPointXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[8]; +extern asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeOffsetPointXY_H_ */ +#include diff --git a/vcits/ssem/NodeSetXY.h b/vcits/ssem/NodeSetXY.h new file mode 100644 index 0000000..118ae63 --- /dev/null +++ b/vcits/ssem/NodeSetXY.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _NodeSetXY_H_ +#define _NodeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeXY; + +/* NodeSetXY */ +typedef struct NodeSetXY { + A_SEQUENCE_OF(struct NodeXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeSetXY; +extern asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeSetXY_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeSetXY_H_ */ +#include diff --git a/vcits/ssem/NodeXY.h b/vcits/ssem/NodeXY.h new file mode 100644 index 0000000..0702929 --- /dev/null +++ b/vcits/ssem/NodeXY.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _NodeXY_H_ +#define _NodeXY_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeSetXY; + +/* NodeXY */ +typedef struct NodeXY { + NodeOffsetPointXY_t delta; + struct NodeAttributeSetXY *attributes; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeXY_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeXY_H_ */ +#include diff --git a/vcits/ssem/NumberOfOccupants.h b/vcits/ssem/NumberOfOccupants.h new file mode 100644 index 0000000..b30fd09 --- /dev/null +++ b/vcits/ssem/NumberOfOccupants.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _NumberOfOccupants_H_ +#define _NumberOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NumberOfOccupants { + NumberOfOccupants_oneOccupant = 1, + NumberOfOccupants_unavailable = 127 +} e_NumberOfOccupants; + +/* NumberOfOccupants */ +typedef long NumberOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants; +asn_struct_free_f NumberOfOccupants_free; +asn_struct_print_f NumberOfOccupants_print; +asn_constr_check_f NumberOfOccupants_constraint; +ber_type_decoder_f NumberOfOccupants_decode_ber; +der_type_encoder_f NumberOfOccupants_encode_der; +xer_type_decoder_f NumberOfOccupants_decode_xer; +xer_type_encoder_f NumberOfOccupants_encode_xer; +oer_type_decoder_f NumberOfOccupants_decode_oer; +oer_type_encoder_f NumberOfOccupants_encode_oer; +per_type_decoder_f NumberOfOccupants_decode_uper; +per_type_encoder_f NumberOfOccupants_encode_uper; +per_type_decoder_f NumberOfOccupants_decode_aper; +per_type_encoder_f NumberOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NumberOfOccupants_H_ */ +#include diff --git a/vcits/ssem/Offset-B09.h b/vcits/ssem/Offset-B09.h new file mode 100644 index 0000000..0c6a39a --- /dev/null +++ b/vcits/ssem/Offset-B09.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Offset_B09_H_ +#define _Offset_B09_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B09 */ +typedef long Offset_B09_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B09_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B09; +asn_struct_free_f Offset_B09_free; +asn_struct_print_f Offset_B09_print; +asn_constr_check_f Offset_B09_constraint; +ber_type_decoder_f Offset_B09_decode_ber; +der_type_encoder_f Offset_B09_encode_der; +xer_type_decoder_f Offset_B09_decode_xer; +xer_type_encoder_f Offset_B09_encode_xer; +oer_type_decoder_f Offset_B09_decode_oer; +oer_type_encoder_f Offset_B09_encode_oer; +per_type_decoder_f Offset_B09_decode_uper; +per_type_encoder_f Offset_B09_encode_uper; +per_type_decoder_f Offset_B09_decode_aper; +per_type_encoder_f Offset_B09_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B09_H_ */ +#include diff --git a/vcits/ssem/Offset-B10.h b/vcits/ssem/Offset-B10.h new file mode 100644 index 0000000..4d1fd7f --- /dev/null +++ b/vcits/ssem/Offset-B10.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Offset_B10_H_ +#define _Offset_B10_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B10 */ +typedef long Offset_B10_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B10_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B10; +asn_struct_free_f Offset_B10_free; +asn_struct_print_f Offset_B10_print; +asn_constr_check_f Offset_B10_constraint; +ber_type_decoder_f Offset_B10_decode_ber; +der_type_encoder_f Offset_B10_encode_der; +xer_type_decoder_f Offset_B10_decode_xer; +xer_type_encoder_f Offset_B10_encode_xer; +oer_type_decoder_f Offset_B10_decode_oer; +oer_type_encoder_f Offset_B10_encode_oer; +per_type_decoder_f Offset_B10_decode_uper; +per_type_encoder_f Offset_B10_encode_uper; +per_type_decoder_f Offset_B10_decode_aper; +per_type_encoder_f Offset_B10_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B10_H_ */ +#include diff --git a/vcits/ssem/Offset-B11.h b/vcits/ssem/Offset-B11.h new file mode 100644 index 0000000..2424937 --- /dev/null +++ b/vcits/ssem/Offset-B11.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Offset_B11_H_ +#define _Offset_B11_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B11 */ +typedef long Offset_B11_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B11_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B11; +asn_struct_free_f Offset_B11_free; +asn_struct_print_f Offset_B11_print; +asn_constr_check_f Offset_B11_constraint; +ber_type_decoder_f Offset_B11_decode_ber; +der_type_encoder_f Offset_B11_encode_der; +xer_type_decoder_f Offset_B11_decode_xer; +xer_type_encoder_f Offset_B11_encode_xer; +oer_type_decoder_f Offset_B11_decode_oer; +oer_type_encoder_f Offset_B11_encode_oer; +per_type_decoder_f Offset_B11_decode_uper; +per_type_encoder_f Offset_B11_encode_uper; +per_type_decoder_f Offset_B11_decode_aper; +per_type_encoder_f Offset_B11_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B11_H_ */ +#include diff --git a/vcits/ssem/Offset-B12.h b/vcits/ssem/Offset-B12.h new file mode 100644 index 0000000..5c5c279 --- /dev/null +++ b/vcits/ssem/Offset-B12.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Offset_B12_H_ +#define _Offset_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B12 */ +typedef long Offset_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B12; +asn_struct_free_f Offset_B12_free; +asn_struct_print_f Offset_B12_print; +asn_constr_check_f Offset_B12_constraint; +ber_type_decoder_f Offset_B12_decode_ber; +der_type_encoder_f Offset_B12_encode_der; +xer_type_decoder_f Offset_B12_decode_xer; +xer_type_encoder_f Offset_B12_encode_xer; +oer_type_decoder_f Offset_B12_decode_oer; +oer_type_encoder_f Offset_B12_encode_oer; +per_type_decoder_f Offset_B12_decode_uper; +per_type_encoder_f Offset_B12_encode_uper; +per_type_decoder_f Offset_B12_decode_aper; +per_type_encoder_f Offset_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B12_H_ */ +#include diff --git a/vcits/ssem/Offset-B13.h b/vcits/ssem/Offset-B13.h new file mode 100644 index 0000000..92bf2c6 --- /dev/null +++ b/vcits/ssem/Offset-B13.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Offset_B13_H_ +#define _Offset_B13_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B13 */ +typedef long Offset_B13_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B13_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B13; +asn_struct_free_f Offset_B13_free; +asn_struct_print_f Offset_B13_print; +asn_constr_check_f Offset_B13_constraint; +ber_type_decoder_f Offset_B13_decode_ber; +der_type_encoder_f Offset_B13_encode_der; +xer_type_decoder_f Offset_B13_decode_xer; +xer_type_encoder_f Offset_B13_encode_xer; +oer_type_decoder_f Offset_B13_decode_oer; +oer_type_encoder_f Offset_B13_encode_oer; +per_type_decoder_f Offset_B13_decode_uper; +per_type_encoder_f Offset_B13_encode_uper; +per_type_decoder_f Offset_B13_decode_aper; +per_type_encoder_f Offset_B13_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B13_H_ */ +#include diff --git a/vcits/ssem/Offset-B14.h b/vcits/ssem/Offset-B14.h new file mode 100644 index 0000000..8656658 --- /dev/null +++ b/vcits/ssem/Offset-B14.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Offset_B14_H_ +#define _Offset_B14_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B14 */ +typedef long Offset_B14_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B14_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B14; +asn_struct_free_f Offset_B14_free; +asn_struct_print_f Offset_B14_print; +asn_constr_check_f Offset_B14_constraint; +ber_type_decoder_f Offset_B14_decode_ber; +der_type_encoder_f Offset_B14_encode_der; +xer_type_decoder_f Offset_B14_decode_xer; +xer_type_encoder_f Offset_B14_encode_xer; +oer_type_decoder_f Offset_B14_decode_oer; +oer_type_encoder_f Offset_B14_encode_oer; +per_type_decoder_f Offset_B14_decode_uper; +per_type_encoder_f Offset_B14_encode_uper; +per_type_decoder_f Offset_B14_decode_aper; +per_type_encoder_f Offset_B14_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B14_H_ */ +#include diff --git a/vcits/ssem/Offset-B16.h b/vcits/ssem/Offset-B16.h new file mode 100644 index 0000000..de45074 --- /dev/null +++ b/vcits/ssem/Offset-B16.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Offset_B16_H_ +#define _Offset_B16_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B16 */ +typedef long Offset_B16_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B16_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B16; +asn_struct_free_f Offset_B16_free; +asn_struct_print_f Offset_B16_print; +asn_constr_check_f Offset_B16_constraint; +ber_type_decoder_f Offset_B16_decode_ber; +der_type_encoder_f Offset_B16_encode_der; +xer_type_decoder_f Offset_B16_decode_xer; +xer_type_encoder_f Offset_B16_encode_xer; +oer_type_decoder_f Offset_B16_decode_oer; +oer_type_encoder_f Offset_B16_encode_oer; +per_type_decoder_f Offset_B16_decode_uper; +per_type_encoder_f Offset_B16_encode_uper; +per_type_decoder_f Offset_B16_decode_aper; +per_type_encoder_f Offset_B16_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B16_H_ */ +#include diff --git a/vcits/ssem/OpeningDaysHours.h b/vcits/ssem/OpeningDaysHours.h new file mode 100644 index 0000000..bc41737 --- /dev/null +++ b/vcits/ssem/OpeningDaysHours.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _OpeningDaysHours_H_ +#define _OpeningDaysHours_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OpeningDaysHours */ +typedef UTF8String_t OpeningDaysHours_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours; +asn_struct_free_f OpeningDaysHours_free; +asn_struct_print_f OpeningDaysHours_print; +asn_constr_check_f OpeningDaysHours_constraint; +ber_type_decoder_f OpeningDaysHours_decode_ber; +der_type_encoder_f OpeningDaysHours_encode_der; +xer_type_decoder_f OpeningDaysHours_decode_xer; +xer_type_encoder_f OpeningDaysHours_encode_xer; +oer_type_decoder_f OpeningDaysHours_decode_oer; +oer_type_encoder_f OpeningDaysHours_encode_oer; +per_type_decoder_f OpeningDaysHours_decode_uper; +per_type_encoder_f OpeningDaysHours_encode_uper; +per_type_decoder_f OpeningDaysHours_decode_aper; +per_type_encoder_f OpeningDaysHours_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OpeningDaysHours_H_ */ +#include diff --git a/vcits/ssem/OverlayLaneList.h b/vcits/ssem/OverlayLaneList.h new file mode 100644 index 0000000..b882823 --- /dev/null +++ b/vcits/ssem/OverlayLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _OverlayLaneList_H_ +#define _OverlayLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OverlayLaneList */ +typedef struct OverlayLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} OverlayLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OverlayLaneList; +extern asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_OverlayLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _OverlayLaneList_H_ */ +#include diff --git a/vcits/ssem/PathDeltaTime.h b/vcits/ssem/PathDeltaTime.h new file mode 100644 index 0000000..a520d64 --- /dev/null +++ b/vcits/ssem/PathDeltaTime.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PathDeltaTime_H_ +#define _PathDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PathDeltaTime { + PathDeltaTime_tenMilliSecondsInPast = 1 +} e_PathDeltaTime; + +/* PathDeltaTime */ +typedef long PathDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PathDeltaTime; +asn_struct_free_f PathDeltaTime_free; +asn_struct_print_f PathDeltaTime_print; +asn_constr_check_f PathDeltaTime_constraint; +ber_type_decoder_f PathDeltaTime_decode_ber; +der_type_encoder_f PathDeltaTime_encode_der; +xer_type_decoder_f PathDeltaTime_decode_xer; +xer_type_encoder_f PathDeltaTime_encode_xer; +oer_type_decoder_f PathDeltaTime_decode_oer; +oer_type_encoder_f PathDeltaTime_encode_oer; +per_type_decoder_f PathDeltaTime_decode_uper; +per_type_encoder_f PathDeltaTime_encode_uper; +per_type_decoder_f PathDeltaTime_decode_aper; +per_type_encoder_f PathDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathDeltaTime_H_ */ +#include diff --git a/vcits/ssem/PathHistory.h b/vcits/ssem/PathHistory.h new file mode 100644 index 0000000..8964df5 --- /dev/null +++ b/vcits/ssem/PathHistory.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PathHistory_H_ +#define _PathHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathPoint; + +/* PathHistory */ +typedef struct PathHistory { + A_SEQUENCE_OF(struct PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathHistory; +extern asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_PathHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_PathHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathHistory_H_ */ +#include diff --git a/vcits/ssem/PathPoint.h b/vcits/ssem/PathPoint.h new file mode 100644 index 0000000..573cad6 --- /dev/null +++ b/vcits/ssem/PathPoint.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PathPoint_H_ +#define _PathPoint_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PathPoint */ +typedef struct PathPoint { + DeltaReferencePosition_t pathPosition; + PathDeltaTime_t *pathDeltaTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_PathPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathPoint_H_ */ +#include diff --git a/vcits/ssem/PedestrianBicycleDetect.h b/vcits/ssem/PedestrianBicycleDetect.h new file mode 100644 index 0000000..2976adf --- /dev/null +++ b/vcits/ssem/PedestrianBicycleDetect.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PedestrianBicycleDetect_H_ +#define _PedestrianBicycleDetect_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PedestrianBicycleDetect */ +typedef BOOLEAN_t PedestrianBicycleDetect_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect; +asn_struct_free_f PedestrianBicycleDetect_free; +asn_struct_print_f PedestrianBicycleDetect_print; +asn_constr_check_f PedestrianBicycleDetect_constraint; +ber_type_decoder_f PedestrianBicycleDetect_decode_ber; +der_type_encoder_f PedestrianBicycleDetect_encode_der; +xer_type_decoder_f PedestrianBicycleDetect_decode_xer; +xer_type_encoder_f PedestrianBicycleDetect_encode_xer; +oer_type_decoder_f PedestrianBicycleDetect_decode_oer; +oer_type_encoder_f PedestrianBicycleDetect_encode_oer; +per_type_decoder_f PedestrianBicycleDetect_decode_uper; +per_type_encoder_f PedestrianBicycleDetect_encode_uper; +per_type_decoder_f PedestrianBicycleDetect_decode_aper; +per_type_encoder_f PedestrianBicycleDetect_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PedestrianBicycleDetect_H_ */ +#include diff --git a/vcits/ssem/PerformanceClass.h b/vcits/ssem/PerformanceClass.h new file mode 100644 index 0000000..e2a35ec --- /dev/null +++ b/vcits/ssem/PerformanceClass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PerformanceClass_H_ +#define _PerformanceClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PerformanceClass { + PerformanceClass_unavailable = 0, + PerformanceClass_performanceClassA = 1, + PerformanceClass_performanceClassB = 2 +} e_PerformanceClass; + +/* PerformanceClass */ +typedef long PerformanceClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PerformanceClass; +asn_struct_free_f PerformanceClass_free; +asn_struct_print_f PerformanceClass_print; +asn_constr_check_f PerformanceClass_constraint; +ber_type_decoder_f PerformanceClass_decode_ber; +der_type_encoder_f PerformanceClass_encode_der; +xer_type_decoder_f PerformanceClass_decode_xer; +xer_type_encoder_f PerformanceClass_encode_xer; +oer_type_decoder_f PerformanceClass_decode_oer; +oer_type_encoder_f PerformanceClass_encode_oer; +per_type_decoder_f PerformanceClass_decode_uper; +per_type_encoder_f PerformanceClass_encode_uper; +per_type_decoder_f PerformanceClass_decode_aper; +per_type_encoder_f PerformanceClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PerformanceClass_H_ */ +#include diff --git a/vcits/ssem/PhoneNumber.h b/vcits/ssem/PhoneNumber.h new file mode 100644 index 0000000..7a43450 --- /dev/null +++ b/vcits/ssem/PhoneNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PhoneNumber_H_ +#define _PhoneNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PhoneNumber */ +typedef NumericString_t PhoneNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PhoneNumber; +asn_struct_free_f PhoneNumber_free; +asn_struct_print_f PhoneNumber_print; +asn_constr_check_f PhoneNumber_constraint; +ber_type_decoder_f PhoneNumber_decode_ber; +der_type_encoder_f PhoneNumber_encode_der; +xer_type_decoder_f PhoneNumber_decode_xer; +xer_type_encoder_f PhoneNumber_encode_xer; +oer_type_decoder_f PhoneNumber_decode_oer; +oer_type_encoder_f PhoneNumber_encode_oer; +per_type_decoder_f PhoneNumber_decode_uper; +per_type_encoder_f PhoneNumber_encode_uper; +per_type_decoder_f PhoneNumber_decode_aper; +per_type_encoder_f PhoneNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PhoneNumber_H_ */ +#include diff --git a/vcits/ssem/PosCentMass.h b/vcits/ssem/PosCentMass.h new file mode 100644 index 0000000..bbb3cee --- /dev/null +++ b/vcits/ssem/PosCentMass.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PosCentMass_H_ +#define _PosCentMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosCentMass { + PosCentMass_tenCentimeters = 1, + PosCentMass_unavailable = 63 +} e_PosCentMass; + +/* PosCentMass */ +typedef long PosCentMass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosCentMass; +asn_struct_free_f PosCentMass_free; +asn_struct_print_f PosCentMass_print; +asn_constr_check_f PosCentMass_constraint; +ber_type_decoder_f PosCentMass_decode_ber; +der_type_encoder_f PosCentMass_encode_der; +xer_type_decoder_f PosCentMass_decode_xer; +xer_type_encoder_f PosCentMass_encode_xer; +oer_type_decoder_f PosCentMass_decode_oer; +oer_type_encoder_f PosCentMass_encode_oer; +per_type_decoder_f PosCentMass_decode_uper; +per_type_encoder_f PosCentMass_encode_uper; +per_type_decoder_f PosCentMass_decode_aper; +per_type_encoder_f PosCentMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosCentMass_H_ */ +#include diff --git a/vcits/ssem/PosConfidenceEllipse.h b/vcits/ssem/PosConfidenceEllipse.h new file mode 100644 index 0000000..b6e4db8 --- /dev/null +++ b/vcits/ssem/PosConfidenceEllipse.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PosConfidenceEllipse_H_ +#define _PosConfidenceEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "SemiAxisLength.h" +#include "HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PosConfidenceEllipse */ +typedef struct PosConfidenceEllipse { + SemiAxisLength_t semiMajorConfidence; + SemiAxisLength_t semiMinorConfidence; + HeadingValue_t semiMajorOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PosConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosConfidenceEllipse_H_ */ +#include diff --git a/vcits/ssem/PosFrontAx.h b/vcits/ssem/PosFrontAx.h new file mode 100644 index 0000000..0aa0213 --- /dev/null +++ b/vcits/ssem/PosFrontAx.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PosFrontAx_H_ +#define _PosFrontAx_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosFrontAx { + PosFrontAx_tenCentimeters = 1, + PosFrontAx_unavailable = 20 +} e_PosFrontAx; + +/* PosFrontAx */ +typedef long PosFrontAx_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosFrontAx; +asn_struct_free_f PosFrontAx_free; +asn_struct_print_f PosFrontAx_print; +asn_constr_check_f PosFrontAx_constraint; +ber_type_decoder_f PosFrontAx_decode_ber; +der_type_encoder_f PosFrontAx_encode_der; +xer_type_decoder_f PosFrontAx_decode_xer; +xer_type_encoder_f PosFrontAx_encode_xer; +oer_type_decoder_f PosFrontAx_decode_oer; +oer_type_encoder_f PosFrontAx_encode_oer; +per_type_decoder_f PosFrontAx_decode_uper; +per_type_encoder_f PosFrontAx_encode_uper; +per_type_decoder_f PosFrontAx_decode_aper; +per_type_encoder_f PosFrontAx_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosFrontAx_H_ */ +#include diff --git a/vcits/ssem/PosLonCarr.h b/vcits/ssem/PosLonCarr.h new file mode 100644 index 0000000..d54de83 --- /dev/null +++ b/vcits/ssem/PosLonCarr.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PosLonCarr_H_ +#define _PosLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosLonCarr { + PosLonCarr_oneCentimeter = 1, + PosLonCarr_unavailable = 127 +} e_PosLonCarr; + +/* PosLonCarr */ +typedef long PosLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PosLonCarr; +asn_struct_free_f PosLonCarr_free; +asn_struct_print_f PosLonCarr_print; +asn_constr_check_f PosLonCarr_constraint; +ber_type_decoder_f PosLonCarr_decode_ber; +der_type_encoder_f PosLonCarr_encode_der; +xer_type_decoder_f PosLonCarr_decode_xer; +xer_type_encoder_f PosLonCarr_encode_xer; +oer_type_decoder_f PosLonCarr_decode_oer; +oer_type_encoder_f PosLonCarr_encode_oer; +per_type_decoder_f PosLonCarr_decode_uper; +per_type_encoder_f PosLonCarr_encode_uper; +per_type_decoder_f PosLonCarr_decode_aper; +per_type_encoder_f PosLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosLonCarr_H_ */ +#include diff --git a/vcits/ssem/PosPillar.h b/vcits/ssem/PosPillar.h new file mode 100644 index 0000000..089e015 --- /dev/null +++ b/vcits/ssem/PosPillar.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PosPillar_H_ +#define _PosPillar_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PosPillar { + PosPillar_tenCentimeters = 1, + PosPillar_unavailable = 30 +} e_PosPillar; + +/* PosPillar */ +typedef long PosPillar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PosPillar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PosPillar; +asn_struct_free_f PosPillar_free; +asn_struct_print_f PosPillar_print; +asn_constr_check_f PosPillar_constraint; +ber_type_decoder_f PosPillar_decode_ber; +der_type_encoder_f PosPillar_encode_der; +xer_type_decoder_f PosPillar_decode_xer; +xer_type_encoder_f PosPillar_encode_xer; +oer_type_decoder_f PosPillar_decode_oer; +oer_type_encoder_f PosPillar_encode_oer; +per_type_decoder_f PosPillar_decode_uper; +per_type_encoder_f PosPillar_encode_uper; +per_type_decoder_f PosPillar_decode_aper; +per_type_encoder_f PosPillar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PosPillar_H_ */ +#include diff --git a/vcits/ssem/Position3D-addGrpC.h b/vcits/ssem/Position3D-addGrpC.h new file mode 100644 index 0000000..5ffb921 --- /dev/null +++ b/vcits/ssem/Position3D-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Position3D_addGrpC_H_ +#define _Position3D_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Position3D-addGrpC */ +typedef struct Position3D_addGrpC { + Altitude_t altitude; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_addGrpC_H_ */ +#include diff --git a/vcits/ssem/Position3D.h b/vcits/ssem/Position3D.h new file mode 100644 index 0000000..176c923 --- /dev/null +++ b/vcits/ssem/Position3D.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Position3D_H_ +#define _Position3D_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "Elevation.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_Position3D; + +/* Position3D */ +typedef struct Position3D { + Latitude_t lat; + Longitude_t Long; + Elevation_t *elevation; /* OPTIONAL */ + struct Position3D__regional { + A_SEQUENCE_OF(struct Reg_Position3D) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_H_ */ +#include diff --git a/vcits/ssem/PositionConfidence.h b/vcits/ssem/PositionConfidence.h new file mode 100644 index 0000000..043ddc4 --- /dev/null +++ b/vcits/ssem/PositionConfidence.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PositionConfidence_H_ +#define _PositionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionConfidence { + PositionConfidence_unavailable = 0, + PositionConfidence_a500m = 1, + PositionConfidence_a200m = 2, + PositionConfidence_a100m = 3, + PositionConfidence_a50m = 4, + PositionConfidence_a20m = 5, + PositionConfidence_a10m = 6, + PositionConfidence_a5m = 7, + PositionConfidence_a2m = 8, + PositionConfidence_a1m = 9, + PositionConfidence_a50cm = 10, + PositionConfidence_a20cm = 11, + PositionConfidence_a10cm = 12, + PositionConfidence_a5cm = 13, + PositionConfidence_a2cm = 14, + PositionConfidence_a1cm = 15 +} e_PositionConfidence; + +/* PositionConfidence */ +typedef long PositionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1; +asn_struct_free_f PositionConfidence_free; +asn_struct_print_f PositionConfidence_print; +asn_constr_check_f PositionConfidence_constraint; +ber_type_decoder_f PositionConfidence_decode_ber; +der_type_encoder_f PositionConfidence_encode_der; +xer_type_decoder_f PositionConfidence_decode_xer; +xer_type_encoder_f PositionConfidence_encode_xer; +oer_type_decoder_f PositionConfidence_decode_oer; +oer_type_encoder_f PositionConfidence_encode_oer; +per_type_decoder_f PositionConfidence_decode_uper; +per_type_encoder_f PositionConfidence_encode_uper; +per_type_decoder_f PositionConfidence_decode_aper; +per_type_encoder_f PositionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidence_H_ */ +#include diff --git a/vcits/ssem/PositionConfidenceSet.h b/vcits/ssem/PositionConfidenceSet.h new file mode 100644 index 0000000..dedf096 --- /dev/null +++ b/vcits/ssem/PositionConfidenceSet.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PositionConfidenceSet_H_ +#define _PositionConfidenceSet_H_ + + +#include + +/* Including external dependencies */ +#include "PositionConfidence.h" +#include "ElevationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionConfidenceSet */ +typedef struct PositionConfidenceSet { + PositionConfidence_t pos; + ElevationConfidence_t elevation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionConfidenceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidenceSet_H_ */ +#include diff --git a/vcits/ssem/PositionOfOccupants.h b/vcits/ssem/PositionOfOccupants.h new file mode 100644 index 0000000..590dd71 --- /dev/null +++ b/vcits/ssem/PositionOfOccupants.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PositionOfOccupants_H_ +#define _PositionOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionOfOccupants { + PositionOfOccupants_row1LeftOccupied = 0, + PositionOfOccupants_row1RightOccupied = 1, + PositionOfOccupants_row1MidOccupied = 2, + PositionOfOccupants_row1NotDetectable = 3, + PositionOfOccupants_row1NotPresent = 4, + PositionOfOccupants_row2LeftOccupied = 5, + PositionOfOccupants_row2RightOccupied = 6, + PositionOfOccupants_row2MidOccupied = 7, + PositionOfOccupants_row2NotDetectable = 8, + PositionOfOccupants_row2NotPresent = 9, + PositionOfOccupants_row3LeftOccupied = 10, + PositionOfOccupants_row3RightOccupied = 11, + PositionOfOccupants_row3MidOccupied = 12, + PositionOfOccupants_row3NotDetectable = 13, + PositionOfOccupants_row3NotPresent = 14, + PositionOfOccupants_row4LeftOccupied = 15, + PositionOfOccupants_row4RightOccupied = 16, + PositionOfOccupants_row4MidOccupied = 17, + PositionOfOccupants_row4NotDetectable = 18, + PositionOfOccupants_row4NotPresent = 19 +} e_PositionOfOccupants; + +/* PositionOfOccupants */ +typedef BIT_STRING_t PositionOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants; +asn_struct_free_f PositionOfOccupants_free; +asn_struct_print_f PositionOfOccupants_print; +asn_constr_check_f PositionOfOccupants_constraint; +ber_type_decoder_f PositionOfOccupants_decode_ber; +der_type_encoder_f PositionOfOccupants_encode_der; +xer_type_decoder_f PositionOfOccupants_decode_xer; +xer_type_encoder_f PositionOfOccupants_encode_xer; +oer_type_decoder_f PositionOfOccupants_decode_oer; +oer_type_encoder_f PositionOfOccupants_encode_oer; +per_type_decoder_f PositionOfOccupants_decode_uper; +per_type_encoder_f PositionOfOccupants_encode_uper; +per_type_decoder_f PositionOfOccupants_decode_aper; +per_type_encoder_f PositionOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfOccupants_H_ */ +#include diff --git a/vcits/ssem/PositionOfPillars.h b/vcits/ssem/PositionOfPillars.h new file mode 100644 index 0000000..ed7316c --- /dev/null +++ b/vcits/ssem/PositionOfPillars.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PositionOfPillars_H_ +#define _PositionOfPillars_H_ + + +#include + +/* Including external dependencies */ +#include "PosPillar.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionOfPillars */ +typedef struct PositionOfPillars { + A_SEQUENCE_OF(PosPillar_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionOfPillars_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionOfPillars; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionOfPillars_H_ */ +#include diff --git a/vcits/ssem/PositionalAccuracy.h b/vcits/ssem/PositionalAccuracy.h new file mode 100644 index 0000000..04aae7d --- /dev/null +++ b/vcits/ssem/PositionalAccuracy.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PositionalAccuracy_H_ +#define _PositionalAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include "SemiMajorAxisAccuracy.h" +#include "SemiMinorAxisAccuracy.h" +#include "SemiMajorAxisOrientation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionalAccuracy */ +typedef struct PositionalAccuracy { + SemiMajorAxisAccuracy_t semiMajor; + SemiMinorAxisAccuracy_t semiMinor; + SemiMajorAxisOrientation_t orientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionalAccuracy_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionalAccuracy_H_ */ +#include diff --git a/vcits/ssem/PositioningSolutionType.h b/vcits/ssem/PositioningSolutionType.h new file mode 100644 index 0000000..4437256 --- /dev/null +++ b/vcits/ssem/PositioningSolutionType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PositioningSolutionType_H_ +#define _PositioningSolutionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositioningSolutionType { + PositioningSolutionType_noPositioningSolution = 0, + PositioningSolutionType_sGNSS = 1, + PositioningSolutionType_dGNSS = 2, + PositioningSolutionType_sGNSSplusDR = 3, + PositioningSolutionType_dGNSSplusDR = 4, + PositioningSolutionType_dR = 5 + /* + * Enumeration is extensible + */ +} e_PositioningSolutionType; + +/* PositioningSolutionType */ +typedef long PositioningSolutionType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType; +asn_struct_free_f PositioningSolutionType_free; +asn_struct_print_f PositioningSolutionType_print; +asn_constr_check_f PositioningSolutionType_constraint; +ber_type_decoder_f PositioningSolutionType_decode_ber; +der_type_encoder_f PositioningSolutionType_encode_der; +xer_type_decoder_f PositioningSolutionType_decode_xer; +xer_type_encoder_f PositioningSolutionType_encode_xer; +oer_type_decoder_f PositioningSolutionType_decode_oer; +oer_type_encoder_f PositioningSolutionType_encode_oer; +per_type_decoder_f PositioningSolutionType_decode_uper; +per_type_encoder_f PositioningSolutionType_encode_uper; +per_type_decoder_f PositioningSolutionType_decode_aper; +per_type_encoder_f PositioningSolutionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositioningSolutionType_H_ */ +#include diff --git a/vcits/ssem/PostCrashSubCauseCode.h b/vcits/ssem/PostCrashSubCauseCode.h new file mode 100644 index 0000000..9c40008 --- /dev/null +++ b/vcits/ssem/PostCrashSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PostCrashSubCauseCode_H_ +#define _PostCrashSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PostCrashSubCauseCode { + PostCrashSubCauseCode_unavailable = 0, + PostCrashSubCauseCode_accidentWithoutECallTriggered = 1, + PostCrashSubCauseCode_accidentWithECallManuallyTriggered = 2, + PostCrashSubCauseCode_accidentWithECallAutomaticallyTriggered = 3, + PostCrashSubCauseCode_accidentWithECallTriggeredWithoutAccessToCellularNetwork = 4 +} e_PostCrashSubCauseCode; + +/* PostCrashSubCauseCode */ +typedef long PostCrashSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode; +asn_struct_free_f PostCrashSubCauseCode_free; +asn_struct_print_f PostCrashSubCauseCode_print; +asn_constr_check_f PostCrashSubCauseCode_constraint; +ber_type_decoder_f PostCrashSubCauseCode_decode_ber; +der_type_encoder_f PostCrashSubCauseCode_encode_der; +xer_type_decoder_f PostCrashSubCauseCode_decode_xer; +xer_type_encoder_f PostCrashSubCauseCode_encode_xer; +oer_type_decoder_f PostCrashSubCauseCode_decode_oer; +oer_type_encoder_f PostCrashSubCauseCode_encode_oer; +per_type_decoder_f PostCrashSubCauseCode_decode_uper; +per_type_encoder_f PostCrashSubCauseCode_encode_uper; +per_type_decoder_f PostCrashSubCauseCode_decode_aper; +per_type_encoder_f PostCrashSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PostCrashSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/PreemptPriorityList.h b/vcits/ssem/PreemptPriorityList.h new file mode 100644 index 0000000..3df7f8b --- /dev/null +++ b/vcits/ssem/PreemptPriorityList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PreemptPriorityList_H_ +#define _PreemptPriorityList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalControlZone; + +/* PreemptPriorityList */ +typedef struct PreemptPriorityList { + A_SEQUENCE_OF(struct SignalControlZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PreemptPriorityList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList; +extern asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1; +extern asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[1]; +extern asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PreemptPriorityList_H_ */ +#include diff --git a/vcits/ssem/PrioritizationResponse.h b/vcits/ssem/PrioritizationResponse.h new file mode 100644 index 0000000..0ea83de --- /dev/null +++ b/vcits/ssem/PrioritizationResponse.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PrioritizationResponse_H_ +#define _PrioritizationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "StationID.h" +#include "PrioritizationResponseStatus.h" +#include "SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PrioritizationResponse */ +typedef struct PrioritizationResponse { + StationID_t stationID; + PrioritizationResponseStatus_t priorState; + SignalGroupID_t signalGroup; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponse_H_ */ +#include diff --git a/vcits/ssem/PrioritizationResponseList.h b/vcits/ssem/PrioritizationResponseList.h new file mode 100644 index 0000000..3b82dba --- /dev/null +++ b/vcits/ssem/PrioritizationResponseList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PrioritizationResponseList_H_ +#define _PrioritizationResponseList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponse; + +/* PrioritizationResponseList */ +typedef struct PrioritizationResponseList { + A_SEQUENCE_OF(struct PrioritizationResponse) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList; +extern asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[1]; +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseList_H_ */ +#include diff --git a/vcits/ssem/PrioritizationResponseStatus.h b/vcits/ssem/PrioritizationResponseStatus.h new file mode 100644 index 0000000..54775bb --- /dev/null +++ b/vcits/ssem/PrioritizationResponseStatus.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PrioritizationResponseStatus_H_ +#define _PrioritizationResponseStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PrioritizationResponseStatus { + PrioritizationResponseStatus_unknown = 0, + PrioritizationResponseStatus_requested = 1, + PrioritizationResponseStatus_processing = 2, + PrioritizationResponseStatus_watchOtherTraffic = 3, + PrioritizationResponseStatus_granted = 4, + PrioritizationResponseStatus_rejected = 5, + PrioritizationResponseStatus_maxPresence = 6, + PrioritizationResponseStatus_reserviceLocked = 7 + /* + * Enumeration is extensible + */ +} e_PrioritizationResponseStatus; + +/* PrioritizationResponseStatus */ +typedef long PrioritizationResponseStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus; +extern const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1; +asn_struct_free_f PrioritizationResponseStatus_free; +asn_struct_print_f PrioritizationResponseStatus_print; +asn_constr_check_f PrioritizationResponseStatus_constraint; +ber_type_decoder_f PrioritizationResponseStatus_decode_ber; +der_type_encoder_f PrioritizationResponseStatus_encode_der; +xer_type_decoder_f PrioritizationResponseStatus_decode_xer; +xer_type_encoder_f PrioritizationResponseStatus_encode_xer; +oer_type_decoder_f PrioritizationResponseStatus_decode_oer; +oer_type_encoder_f PrioritizationResponseStatus_encode_oer; +per_type_decoder_f PrioritizationResponseStatus_decode_uper; +per_type_encoder_f PrioritizationResponseStatus_encode_uper; +per_type_decoder_f PrioritizationResponseStatus_decode_aper; +per_type_encoder_f PrioritizationResponseStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseStatus_H_ */ +#include diff --git a/vcits/ssem/PriorityRequestType.h b/vcits/ssem/PriorityRequestType.h new file mode 100644 index 0000000..6c21246 --- /dev/null +++ b/vcits/ssem/PriorityRequestType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PriorityRequestType_H_ +#define _PriorityRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PriorityRequestType { + PriorityRequestType_priorityRequestTypeReserved = 0, + PriorityRequestType_priorityRequest = 1, + PriorityRequestType_priorityRequestUpdate = 2, + PriorityRequestType_priorityCancellation = 3 + /* + * Enumeration is extensible + */ +} e_PriorityRequestType; + +/* PriorityRequestType */ +typedef long PriorityRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PriorityRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1; +asn_struct_free_f PriorityRequestType_free; +asn_struct_print_f PriorityRequestType_print; +asn_constr_check_f PriorityRequestType_constraint; +ber_type_decoder_f PriorityRequestType_decode_ber; +der_type_encoder_f PriorityRequestType_encode_der; +xer_type_decoder_f PriorityRequestType_decode_xer; +xer_type_encoder_f PriorityRequestType_encode_xer; +oer_type_decoder_f PriorityRequestType_decode_oer; +oer_type_encoder_f PriorityRequestType_encode_oer; +per_type_decoder_f PriorityRequestType_decode_uper; +per_type_encoder_f PriorityRequestType_encode_uper; +per_type_decoder_f PriorityRequestType_decode_aper; +per_type_encoder_f PriorityRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PriorityRequestType_H_ */ +#include diff --git a/vcits/ssem/ProtectedCommunicationZone.h b/vcits/ssem/ProtectedCommunicationZone.h new file mode 100644 index 0000000..275fd28 --- /dev/null +++ b/vcits/ssem/ProtectedCommunicationZone.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ProtectedCommunicationZone_H_ +#define _ProtectedCommunicationZone_H_ + + +#include + +/* Including external dependencies */ +#include "ProtectedZoneType.h" +#include "TimestampIts.h" +#include "Latitude.h" +#include "Longitude.h" +#include "ProtectedZoneRadius.h" +#include "ProtectedZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedCommunicationZone */ +typedef struct ProtectedCommunicationZone { + ProtectedZoneType_t protectedZoneType; + TimestampIts_t *expiryTime; /* OPTIONAL */ + Latitude_t protectedZoneLatitude; + Longitude_t protectedZoneLongitude; + ProtectedZoneRadius_t *protectedZoneRadius; /* OPTIONAL */ + ProtectedZoneID_t *protectedZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone; +extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZone_H_ */ +#include diff --git a/vcits/ssem/ProtectedCommunicationZonesRSU.h b/vcits/ssem/ProtectedCommunicationZonesRSU.h new file mode 100644 index 0000000..f5adae4 --- /dev/null +++ b/vcits/ssem/ProtectedCommunicationZonesRSU.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ProtectedCommunicationZonesRSU_H_ +#define _ProtectedCommunicationZonesRSU_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtectedCommunicationZone; + +/* ProtectedCommunicationZonesRSU */ +typedef struct ProtectedCommunicationZonesRSU { + A_SEQUENCE_OF(struct ProtectedCommunicationZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtectedCommunicationZonesRSU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedCommunicationZonesRSU_H_ */ +#include diff --git a/vcits/ssem/ProtectedZoneID.h b/vcits/ssem/ProtectedZoneID.h new file mode 100644 index 0000000..0b9641f --- /dev/null +++ b/vcits/ssem/ProtectedZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ProtectedZoneID_H_ +#define _ProtectedZoneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedZoneID */ +typedef long ProtectedZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID; +asn_struct_free_f ProtectedZoneID_free; +asn_struct_print_f ProtectedZoneID_print; +asn_constr_check_f ProtectedZoneID_constraint; +ber_type_decoder_f ProtectedZoneID_decode_ber; +der_type_encoder_f ProtectedZoneID_encode_der; +xer_type_decoder_f ProtectedZoneID_decode_xer; +xer_type_encoder_f ProtectedZoneID_encode_xer; +oer_type_decoder_f ProtectedZoneID_decode_oer; +oer_type_encoder_f ProtectedZoneID_encode_oer; +per_type_decoder_f ProtectedZoneID_decode_uper; +per_type_encoder_f ProtectedZoneID_encode_uper; +per_type_decoder_f ProtectedZoneID_decode_aper; +per_type_encoder_f ProtectedZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneID_H_ */ +#include diff --git a/vcits/ssem/ProtectedZoneRadius.h b/vcits/ssem/ProtectedZoneRadius.h new file mode 100644 index 0000000..5fecf11 --- /dev/null +++ b/vcits/ssem/ProtectedZoneRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ProtectedZoneRadius_H_ +#define _ProtectedZoneRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneRadius { + ProtectedZoneRadius_oneMeter = 1 +} e_ProtectedZoneRadius; + +/* ProtectedZoneRadius */ +typedef long ProtectedZoneRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius; +asn_struct_free_f ProtectedZoneRadius_free; +asn_struct_print_f ProtectedZoneRadius_print; +asn_constr_check_f ProtectedZoneRadius_constraint; +ber_type_decoder_f ProtectedZoneRadius_decode_ber; +der_type_encoder_f ProtectedZoneRadius_encode_der; +xer_type_decoder_f ProtectedZoneRadius_decode_xer; +xer_type_encoder_f ProtectedZoneRadius_encode_xer; +oer_type_decoder_f ProtectedZoneRadius_decode_oer; +oer_type_encoder_f ProtectedZoneRadius_encode_oer; +per_type_decoder_f ProtectedZoneRadius_decode_uper; +per_type_encoder_f ProtectedZoneRadius_encode_uper; +per_type_decoder_f ProtectedZoneRadius_decode_aper; +per_type_encoder_f ProtectedZoneRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneRadius_H_ */ +#include diff --git a/vcits/ssem/ProtectedZoneType.h b/vcits/ssem/ProtectedZoneType.h new file mode 100644 index 0000000..7f3003f --- /dev/null +++ b/vcits/ssem/ProtectedZoneType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ProtectedZoneType_H_ +#define _ProtectedZoneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProtectedZoneType { + ProtectedZoneType_permanentCenDsrcTolling = 0, + /* + * Enumeration is extensible + */ + ProtectedZoneType_temporaryCenDsrcTolling = 1 +} e_ProtectedZoneType; + +/* ProtectedZoneType */ +typedef long ProtectedZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1; +asn_struct_free_f ProtectedZoneType_free; +asn_struct_print_f ProtectedZoneType_print; +asn_constr_check_f ProtectedZoneType_constraint; +ber_type_decoder_f ProtectedZoneType_decode_ber; +der_type_encoder_f ProtectedZoneType_encode_der; +xer_type_decoder_f ProtectedZoneType_decode_xer; +xer_type_encoder_f ProtectedZoneType_encode_xer; +oer_type_decoder_f ProtectedZoneType_decode_oer; +oer_type_encoder_f ProtectedZoneType_encode_oer; +per_type_decoder_f ProtectedZoneType_decode_uper; +per_type_encoder_f ProtectedZoneType_encode_uper; +per_type_decoder_f ProtectedZoneType_decode_aper; +per_type_encoder_f ProtectedZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedZoneType_H_ */ +#include diff --git a/vcits/ssem/PtActivation.h b/vcits/ssem/PtActivation.h new file mode 100644 index 0000000..eb541a5 --- /dev/null +++ b/vcits/ssem/PtActivation.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PtActivation_H_ +#define _PtActivation_H_ + + +#include + +/* Including external dependencies */ +#include "PtActivationType.h" +#include "PtActivationData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivation */ +typedef struct PtActivation { + PtActivationType_t ptActivationType; + PtActivationData_t ptActivationData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PtActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PtActivation; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivation_H_ */ +#include diff --git a/vcits/ssem/PtActivationData.h b/vcits/ssem/PtActivationData.h new file mode 100644 index 0000000..b3b4248 --- /dev/null +++ b/vcits/ssem/PtActivationData.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PtActivationData_H_ +#define _PtActivationData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PtActivationData */ +typedef OCTET_STRING_t PtActivationData_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationData_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationData; +asn_struct_free_f PtActivationData_free; +asn_struct_print_f PtActivationData_print; +asn_constr_check_f PtActivationData_constraint; +ber_type_decoder_f PtActivationData_decode_ber; +der_type_encoder_f PtActivationData_encode_der; +xer_type_decoder_f PtActivationData_decode_xer; +xer_type_encoder_f PtActivationData_encode_xer; +oer_type_decoder_f PtActivationData_decode_oer; +oer_type_encoder_f PtActivationData_encode_oer; +per_type_decoder_f PtActivationData_decode_uper; +per_type_encoder_f PtActivationData_encode_uper; +per_type_decoder_f PtActivationData_decode_aper; +per_type_encoder_f PtActivationData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationData_H_ */ +#include diff --git a/vcits/ssem/PtActivationType.h b/vcits/ssem/PtActivationType.h new file mode 100644 index 0000000..7912096 --- /dev/null +++ b/vcits/ssem/PtActivationType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PtActivationType_H_ +#define _PtActivationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtActivationType { + PtActivationType_undefinedCodingType = 0, + PtActivationType_r09_16CodingType = 1, + PtActivationType_vdv_50149CodingType = 2 +} e_PtActivationType; + +/* PtActivationType */ +typedef long PtActivationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtActivationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtActivationType; +asn_struct_free_f PtActivationType_free; +asn_struct_print_f PtActivationType_print; +asn_constr_check_f PtActivationType_constraint; +ber_type_decoder_f PtActivationType_decode_ber; +der_type_encoder_f PtActivationType_encode_der; +xer_type_decoder_f PtActivationType_decode_xer; +xer_type_encoder_f PtActivationType_encode_xer; +oer_type_decoder_f PtActivationType_decode_oer; +oer_type_encoder_f PtActivationType_encode_oer; +per_type_decoder_f PtActivationType_decode_uper; +per_type_encoder_f PtActivationType_encode_uper; +per_type_decoder_f PtActivationType_decode_aper; +per_type_encoder_f PtActivationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtActivationType_H_ */ +#include diff --git a/vcits/ssem/PtvRequestType.h b/vcits/ssem/PtvRequestType.h new file mode 100644 index 0000000..1f7bf50 --- /dev/null +++ b/vcits/ssem/PtvRequestType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _PtvRequestType_H_ +#define _PtvRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PtvRequestType { + PtvRequestType_preRequest = 0, + PtvRequestType_mainRequest = 1, + PtvRequestType_doorCloseRequest = 2, + PtvRequestType_cancelRequest = 3, + PtvRequestType_emergencyRequest = 4 + /* + * Enumeration is extensible + */ +} e_PtvRequestType; + +/* PtvRequestType */ +typedef long PtvRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PtvRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PtvRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PtvRequestType_specs_1; +asn_struct_free_f PtvRequestType_free; +asn_struct_print_f PtvRequestType_print; +asn_constr_check_f PtvRequestType_constraint; +ber_type_decoder_f PtvRequestType_decode_ber; +der_type_encoder_f PtvRequestType_encode_der; +xer_type_decoder_f PtvRequestType_decode_xer; +xer_type_encoder_f PtvRequestType_encode_xer; +oer_type_decoder_f PtvRequestType_decode_oer; +oer_type_encoder_f PtvRequestType_encode_oer; +per_type_decoder_f PtvRequestType_decode_uper; +per_type_encoder_f PtvRequestType_encode_uper; +per_type_decoder_f PtvRequestType_decode_aper; +per_type_encoder_f PtvRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PtvRequestType_H_ */ +#include diff --git a/vcits/ssem/RTCM-Revision.h b/vcits/ssem/RTCM-Revision.h new file mode 100644 index 0000000..4f225a2 --- /dev/null +++ b/vcits/ssem/RTCM-Revision.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RTCM_Revision_H_ +#define _RTCM_Revision_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RTCM_Revision { + RTCM_Revision_unknown = 0, + RTCM_Revision_rtcmRev2 = 1, + RTCM_Revision_rtcmRev3 = 2, + RTCM_Revision_reserved = 3 + /* + * Enumeration is extensible + */ +} e_RTCM_Revision; + +/* RTCM-Revision */ +typedef long RTCM_Revision_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCM_Revision; +extern const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1; +asn_struct_free_f RTCM_Revision_free; +asn_struct_print_f RTCM_Revision_print; +asn_constr_check_f RTCM_Revision_constraint; +ber_type_decoder_f RTCM_Revision_decode_ber; +der_type_encoder_f RTCM_Revision_encode_der; +xer_type_decoder_f RTCM_Revision_decode_xer; +xer_type_encoder_f RTCM_Revision_encode_xer; +oer_type_decoder_f RTCM_Revision_decode_oer; +oer_type_encoder_f RTCM_Revision_encode_oer; +per_type_decoder_f RTCM_Revision_decode_uper; +per_type_encoder_f RTCM_Revision_encode_uper; +per_type_decoder_f RTCM_Revision_decode_aper; +per_type_encoder_f RTCM_Revision_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCM_Revision_H_ */ +#include diff --git a/vcits/ssem/RTCMcorrections.h b/vcits/ssem/RTCMcorrections.h new file mode 100644 index 0000000..de7013f --- /dev/null +++ b/vcits/ssem/RTCMcorrections.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RTCMcorrections_H_ +#define _RTCMcorrections_H_ + + +#include + +/* Including external dependencies */ +#include "MsgCount.h" +#include "RTCM-Revision.h" +#include "MinuteOfTheYear.h" +#include "RTCMmessageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FullPositionVector; +struct RTCMheader; +struct Reg_RTCMcorrections; + +/* RTCMcorrections */ +typedef struct RTCMcorrections { + MsgCount_t msgCnt; + RTCM_Revision_t rev; + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + struct FullPositionVector *anchorPoint; /* OPTIONAL */ + struct RTCMheader *rtcmHeader; /* OPTIONAL */ + RTCMmessageList_t msgs; + struct RTCMcorrections__regional { + A_SEQUENCE_OF(struct Reg_RTCMcorrections) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMcorrections_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMcorrections; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMcorrections_H_ */ +#include diff --git a/vcits/ssem/RTCMheader.h b/vcits/ssem/RTCMheader.h new file mode 100644 index 0000000..fbc3a86 --- /dev/null +++ b/vcits/ssem/RTCMheader.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RTCMheader_H_ +#define _RTCMheader_H_ + + +#include + +/* Including external dependencies */ +#include "GNSSstatus.h" +#include "AntennaOffsetSet.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMheader */ +typedef struct RTCMheader { + GNSSstatus_t status; + AntennaOffsetSet_t offsetSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMheader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMheader; +extern asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMheader_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMheader_H_ */ +#include diff --git a/vcits/ssem/RTCMmessage.h b/vcits/ssem/RTCMmessage.h new file mode 100644 index 0000000..a06cf8d --- /dev/null +++ b/vcits/ssem/RTCMmessage.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RTCMmessage_H_ +#define _RTCMmessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessage */ +typedef OCTET_STRING_t RTCMmessage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessage; +asn_struct_free_f RTCMmessage_free; +asn_struct_print_f RTCMmessage_print; +asn_constr_check_f RTCMmessage_constraint; +ber_type_decoder_f RTCMmessage_decode_ber; +der_type_encoder_f RTCMmessage_encode_der; +xer_type_decoder_f RTCMmessage_decode_xer; +xer_type_encoder_f RTCMmessage_encode_xer; +oer_type_decoder_f RTCMmessage_decode_oer; +oer_type_encoder_f RTCMmessage_encode_oer; +per_type_decoder_f RTCMmessage_decode_uper; +per_type_encoder_f RTCMmessage_encode_uper; +per_type_decoder_f RTCMmessage_decode_aper; +per_type_encoder_f RTCMmessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessage_H_ */ +#include diff --git a/vcits/ssem/RTCMmessageList.h b/vcits/ssem/RTCMmessageList.h new file mode 100644 index 0000000..6ab7ef7 --- /dev/null +++ b/vcits/ssem/RTCMmessageList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RTCMmessageList_H_ +#define _RTCMmessageList_H_ + + +#include + +/* Including external dependencies */ +#include "RTCMmessage.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessageList */ +typedef struct RTCMmessageList { + A_SEQUENCE_OF(RTCMmessage_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMmessageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessageList; +extern asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMmessageList_1[1]; +extern asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessageList_H_ */ +#include diff --git a/vcits/ssem/ReferencePosition.h b/vcits/ssem/ReferencePosition.h new file mode 100644 index 0000000..7d252e8 --- /dev/null +++ b/vcits/ssem/ReferencePosition.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ReferencePosition_H_ +#define _ReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "PosConfidenceEllipse.h" +#include "Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReferencePosition */ +typedef struct ReferencePosition { + Latitude_t latitude; + Longitude_t longitude; + PosConfidenceEllipse_t positionConfidenceEllipse; + Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ReferencePosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReferencePosition_H_ */ +#include diff --git a/vcits/ssem/RegionId.h b/vcits/ssem/RegionId.h new file mode 100644 index 0000000..928bcbe --- /dev/null +++ b/vcits/ssem/RegionId.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RegionId_H_ +#define _RegionId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegionId */ +typedef long RegionId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RegionId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RegionId; +asn_struct_free_f RegionId_free; +asn_struct_print_f RegionId_print; +asn_constr_check_f RegionId_constraint; +ber_type_decoder_f RegionId_decode_ber; +der_type_encoder_f RegionId_encode_der; +xer_type_decoder_f RegionId_decode_xer; +xer_type_encoder_f RegionId_encode_xer; +oer_type_decoder_f RegionId_decode_oer; +oer_type_encoder_f RegionId_encode_oer; +per_type_decoder_f RegionId_decode_uper; +per_type_encoder_f RegionId_encode_uper; +per_type_decoder_f RegionId_decode_aper; +per_type_encoder_f RegionId_encode_aper; +#define RegionId_noRegion ((RegionId_t)0) +#define RegionId_addGrpA ((RegionId_t)1) +#define RegionId_addGrpB ((RegionId_t)2) +#define RegionId_addGrpC ((RegionId_t)3) + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionId_H_ */ +#include diff --git a/vcits/ssem/RegionalExtension.h b/vcits/ssem/RegionalExtension.h new file mode 100644 index 0000000..b4ccc08 --- /dev/null +++ b/vcits/ssem/RegionalExtension.h @@ -0,0 +1,626 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RegionalExtension_H_ +#define _RegionalExtension_H_ + + +#include + +/* Including external dependencies */ +#include "RegionId.h" +#include +#include +#include "MapData-addGrpC.h" +#include +#include +#include +#include "ConnectionManeuverAssist-addGrpC.h" +#include "ConnectionTrajectory-addGrpC.h" +#include "IntersectionState-addGrpC.h" +#include "LaneAttributes-addGrpC.h" +#include "MovementEvent-addGrpC.h" +#include "NodeAttributeSet-addGrpC.h" +#include "Position3D-addGrpC.h" +#include "RequestorDescription-addGrpC.h" +#include "RestrictionUserType-addGrpC.h" +#include "SignalStatusPackage-addGrpC.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Reg_MapData__regExtValue_PR { + Reg_MapData__regExtValue_PR_NOTHING, /* No components present */ + Reg_MapData__regExtValue_PR_MapData_addGrpC +} Reg_MapData__regExtValue_PR; +typedef enum Reg_RTCMcorrections__regExtValue_PR { + Reg_RTCMcorrections__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RTCMcorrections__regExtValue_PR; +typedef enum Reg_SPAT__regExtValue_PR { + Reg_SPAT__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SPAT__regExtValue_PR; +typedef enum Reg_SignalRequestMessage__regExtValue_PR { + Reg_SignalRequestMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestMessage__regExtValue_PR; +typedef enum Reg_SignalStatusMessage__regExtValue_PR { + Reg_SignalStatusMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatusMessage__regExtValue_PR; +typedef enum Reg_AdvisorySpeed__regExtValue_PR { + Reg_AdvisorySpeed__regExtValue_PR_NOTHING /* No components present */ + +} Reg_AdvisorySpeed__regExtValue_PR; +typedef enum Reg_ComputedLane__regExtValue_PR { + Reg_ComputedLane__regExtValue_PR_NOTHING /* No components present */ + +} Reg_ComputedLane__regExtValue_PR; +typedef enum Reg_ConnectionManeuverAssist__regExtValue_PR { + Reg_ConnectionManeuverAssist__regExtValue_PR_NOTHING, /* No components present */ + Reg_ConnectionManeuverAssist__regExtValue_PR_ConnectionManeuverAssist_addGrpC +} Reg_ConnectionManeuverAssist__regExtValue_PR; +typedef enum Reg_GenericLane__regExtValue_PR { + Reg_GenericLane__regExtValue_PR_NOTHING, /* No components present */ + Reg_GenericLane__regExtValue_PR_ConnectionTrajectory_addGrpC +} Reg_GenericLane__regExtValue_PR; +typedef enum Reg_IntersectionGeometry__regExtValue_PR { + Reg_IntersectionGeometry__regExtValue_PR_NOTHING /* No components present */ + +} Reg_IntersectionGeometry__regExtValue_PR; +typedef enum Reg_IntersectionState__regExtValue_PR { + Reg_IntersectionState__regExtValue_PR_NOTHING, /* No components present */ + Reg_IntersectionState__regExtValue_PR_IntersectionState_addGrpC +} Reg_IntersectionState__regExtValue_PR; +typedef enum Reg_LaneAttributes__regExtValue_PR { + Reg_LaneAttributes__regExtValue_PR_NOTHING, /* No components present */ + Reg_LaneAttributes__regExtValue_PR_LaneAttributes_addGrpC +} Reg_LaneAttributes__regExtValue_PR; +typedef enum Reg_LaneDataAttribute__regExtValue_PR { + Reg_LaneDataAttribute__regExtValue_PR_NOTHING /* No components present */ + +} Reg_LaneDataAttribute__regExtValue_PR; +typedef enum Reg_MovementEvent__regExtValue_PR { + Reg_MovementEvent__regExtValue_PR_NOTHING, /* No components present */ + Reg_MovementEvent__regExtValue_PR_MovementEvent_addGrpC +} Reg_MovementEvent__regExtValue_PR; +typedef enum Reg_MovementState__regExtValue_PR { + Reg_MovementState__regExtValue_PR_NOTHING /* No components present */ + +} Reg_MovementState__regExtValue_PR; +typedef enum Reg_NodeAttributeSetXY__regExtValue_PR { + Reg_NodeAttributeSetXY__regExtValue_PR_NOTHING, /* No components present */ + Reg_NodeAttributeSetXY__regExtValue_PR_NodeAttributeSet_addGrpC +} Reg_NodeAttributeSetXY__regExtValue_PR; +typedef enum Reg_NodeOffsetPointXY__regExtValue_PR { + Reg_NodeOffsetPointXY__regExtValue_PR_NOTHING /* No components present */ + +} Reg_NodeOffsetPointXY__regExtValue_PR; +typedef enum Reg_Position3D__regExtValue_PR { + Reg_Position3D__regExtValue_PR_NOTHING, /* No components present */ + Reg_Position3D__regExtValue_PR_Position3D_addGrpC +} Reg_Position3D__regExtValue_PR; +typedef enum Reg_RequestorDescription__regExtValue_PR { + Reg_RequestorDescription__regExtValue_PR_NOTHING, /* No components present */ + Reg_RequestorDescription__regExtValue_PR_RequestorDescription_addGrpC +} Reg_RequestorDescription__regExtValue_PR; +typedef enum Reg_RequestorType__regExtValue_PR { + Reg_RequestorType__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RequestorType__regExtValue_PR; +typedef enum Reg_RestrictionUserType__regExtValue_PR { + Reg_RestrictionUserType__regExtValue_PR_NOTHING, /* No components present */ + Reg_RestrictionUserType__regExtValue_PR_RestrictionUserType_addGrpC +} Reg_RestrictionUserType__regExtValue_PR; +typedef enum Reg_RoadSegment__regExtValue_PR { + Reg_RoadSegment__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RoadSegment__regExtValue_PR; +typedef enum Reg_SignalControlZone__regExtValue_PR { + Reg_SignalControlZone__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalControlZone__regExtValue_PR; +typedef enum Reg_SignalRequest__regExtValue_PR { + Reg_SignalRequest__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequest__regExtValue_PR; +typedef enum Reg_SignalRequestPackage__regExtValue_PR { + Reg_SignalRequestPackage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestPackage__regExtValue_PR; +typedef enum Reg_SignalStatus__regExtValue_PR { + Reg_SignalStatus__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatus__regExtValue_PR; +typedef enum Reg_SignalStatusPackage__regExtValue_PR { + Reg_SignalStatusPackage__regExtValue_PR_NOTHING, /* No components present */ + Reg_SignalStatusPackage__regExtValue_PR_SignalStatusPackage_addGrpC +} Reg_SignalStatusPackage__regExtValue_PR; + +/* RegionalExtension */ +typedef struct Reg_MapData { + RegionId_t regionId; + struct Reg_MapData__regExtValue { + Reg_MapData__regExtValue_PR present; + union Reg_MapData__regExtValue_u { + MapData_addGrpC_t MapData_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MapData_t; +typedef struct Reg_RTCMcorrections { + RegionId_t regionId; + struct Reg_RTCMcorrections__regExtValue { + Reg_RTCMcorrections__regExtValue_PR present; + union Reg_RTCMcorrections__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RTCMcorrections_t; +typedef struct Reg_SPAT { + RegionId_t regionId; + struct Reg_SPAT__regExtValue { + Reg_SPAT__regExtValue_PR present; + union Reg_SPAT__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SPAT_t; +typedef struct Reg_SignalRequestMessage { + RegionId_t regionId; + struct Reg_SignalRequestMessage__regExtValue { + Reg_SignalRequestMessage__regExtValue_PR present; + union Reg_SignalRequestMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestMessage_t; +typedef struct Reg_SignalStatusMessage { + RegionId_t regionId; + struct Reg_SignalStatusMessage__regExtValue { + Reg_SignalStatusMessage__regExtValue_PR present; + union Reg_SignalStatusMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusMessage_t; +typedef struct Reg_AdvisorySpeed { + RegionId_t regionId; + struct Reg_AdvisorySpeed__regExtValue { + Reg_AdvisorySpeed__regExtValue_PR present; + union Reg_AdvisorySpeed__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_AdvisorySpeed_t; +typedef struct Reg_ComputedLane { + RegionId_t regionId; + struct Reg_ComputedLane__regExtValue { + Reg_ComputedLane__regExtValue_PR present; + union Reg_ComputedLane__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ComputedLane_t; +typedef struct Reg_ConnectionManeuverAssist { + RegionId_t regionId; + struct Reg_ConnectionManeuverAssist__regExtValue { + Reg_ConnectionManeuverAssist__regExtValue_PR present; + union Reg_ConnectionManeuverAssist__regExtValue_u { + ConnectionManeuverAssist_addGrpC_t ConnectionManeuverAssist_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ConnectionManeuverAssist_t; +typedef struct Reg_GenericLane { + RegionId_t regionId; + struct Reg_GenericLane__regExtValue { + Reg_GenericLane__regExtValue_PR present; + union Reg_GenericLane__regExtValue_u { + ConnectionTrajectory_addGrpC_t ConnectionTrajectory_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_GenericLane_t; +typedef struct Reg_IntersectionGeometry { + RegionId_t regionId; + struct Reg_IntersectionGeometry__regExtValue { + Reg_IntersectionGeometry__regExtValue_PR present; + union Reg_IntersectionGeometry__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionGeometry_t; +typedef struct Reg_IntersectionState { + RegionId_t regionId; + struct Reg_IntersectionState__regExtValue { + Reg_IntersectionState__regExtValue_PR present; + union Reg_IntersectionState__regExtValue_u { + IntersectionState_addGrpC_t IntersectionState_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionState_t; +typedef struct Reg_LaneAttributes { + RegionId_t regionId; + struct Reg_LaneAttributes__regExtValue { + Reg_LaneAttributes__regExtValue_PR present; + union Reg_LaneAttributes__regExtValue_u { + LaneAttributes_addGrpC_t LaneAttributes_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneAttributes_t; +typedef struct Reg_LaneDataAttribute { + RegionId_t regionId; + struct Reg_LaneDataAttribute__regExtValue { + Reg_LaneDataAttribute__regExtValue_PR present; + union Reg_LaneDataAttribute__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneDataAttribute_t; +typedef struct Reg_MovementEvent { + RegionId_t regionId; + struct Reg_MovementEvent__regExtValue { + Reg_MovementEvent__regExtValue_PR present; + union Reg_MovementEvent__regExtValue_u { + MovementEvent_addGrpC_t MovementEvent_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementEvent_t; +typedef struct Reg_MovementState { + RegionId_t regionId; + struct Reg_MovementState__regExtValue { + Reg_MovementState__regExtValue_PR present; + union Reg_MovementState__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementState_t; +typedef struct Reg_NodeAttributeSetXY { + RegionId_t regionId; + struct Reg_NodeAttributeSetXY__regExtValue { + Reg_NodeAttributeSetXY__regExtValue_PR present; + union Reg_NodeAttributeSetXY__regExtValue_u { + NodeAttributeSet_addGrpC_t NodeAttributeSet_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeAttributeSetXY_t; +typedef struct Reg_NodeOffsetPointXY { + RegionId_t regionId; + struct Reg_NodeOffsetPointXY__regExtValue { + Reg_NodeOffsetPointXY__regExtValue_PR present; + union Reg_NodeOffsetPointXY__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeOffsetPointXY_t; +typedef struct Reg_Position3D { + RegionId_t regionId; + struct Reg_Position3D__regExtValue { + Reg_Position3D__regExtValue_PR present; + union Reg_Position3D__regExtValue_u { + Position3D_addGrpC_t Position3D_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_Position3D_t; +typedef struct Reg_RequestorDescription { + RegionId_t regionId; + struct Reg_RequestorDescription__regExtValue { + Reg_RequestorDescription__regExtValue_PR present; + union Reg_RequestorDescription__regExtValue_u { + RequestorDescription_addGrpC_t RequestorDescription_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorDescription_t; +typedef struct Reg_RequestorType { + RegionId_t regionId; + struct Reg_RequestorType__regExtValue { + Reg_RequestorType__regExtValue_PR present; + union Reg_RequestorType__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorType_t; +typedef struct Reg_RestrictionUserType { + RegionId_t regionId; + struct Reg_RestrictionUserType__regExtValue { + Reg_RestrictionUserType__regExtValue_PR present; + union Reg_RestrictionUserType__regExtValue_u { + RestrictionUserType_addGrpC_t RestrictionUserType_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RestrictionUserType_t; +typedef struct Reg_RoadSegment { + RegionId_t regionId; + struct Reg_RoadSegment__regExtValue { + Reg_RoadSegment__regExtValue_PR present; + union Reg_RoadSegment__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RoadSegment_t; +typedef struct Reg_SignalControlZone { + RegionId_t regionId; + struct Reg_SignalControlZone__regExtValue { + Reg_SignalControlZone__regExtValue_PR present; + union Reg_SignalControlZone__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalControlZone_t; +typedef struct Reg_SignalRequest { + RegionId_t regionId; + struct Reg_SignalRequest__regExtValue { + Reg_SignalRequest__regExtValue_PR present; + union Reg_SignalRequest__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequest_t; +typedef struct Reg_SignalRequestPackage { + RegionId_t regionId; + struct Reg_SignalRequestPackage__regExtValue { + Reg_SignalRequestPackage__regExtValue_PR present; + union Reg_SignalRequestPackage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestPackage_t; +typedef struct Reg_SignalStatus { + RegionId_t regionId; + struct Reg_SignalStatus__regExtValue { + Reg_SignalStatus__regExtValue_PR present; + union Reg_SignalStatus__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatus_t; +typedef struct Reg_SignalStatusPackage { + RegionId_t regionId; + struct Reg_SignalStatusPackage__regExtValue { + Reg_SignalStatusPackage__regExtValue_PR present; + union Reg_SignalStatusPackage__regExtValue_u { + SignalStatusPackage_addGrpC_t SignalStatusPackage_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Reg_MapData; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_1; +extern asn_TYPE_member_t asn_MBR_Reg_MapData_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_4; +extern asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_4[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SPAT; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_7; +extern asn_TYPE_member_t asn_MBR_Reg_SPAT_7[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_10; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_10[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_13; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_13[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_16; +extern asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_16[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_19; +extern asn_TYPE_member_t asn_MBR_Reg_ComputedLane_19[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_22; +extern asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_22[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_25; +extern asn_TYPE_member_t asn_MBR_Reg_GenericLane_25[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_28; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_28[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_31; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionState_31[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_34; +extern asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_34[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_37; +extern asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_37[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_40; +extern asn_TYPE_member_t asn_MBR_Reg_MovementEvent_40[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_43; +extern asn_TYPE_member_t asn_MBR_Reg_MovementState_43[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_46; +extern asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_46[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_49; +extern asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_49[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_52; +extern asn_TYPE_member_t asn_MBR_Reg_Position3D_52[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_55; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_55[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_58; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorType_58[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_61; +extern asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_61[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_64; +extern asn_TYPE_member_t asn_MBR_Reg_RoadSegment_64[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_67; +extern asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_67[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_70; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequest_70[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_73; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_73[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_76; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatus_76[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_79; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_79[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionalExtension_H_ */ +#include diff --git a/vcits/ssem/RegulatorySpeedLimit.h b/vcits/ssem/RegulatorySpeedLimit.h new file mode 100644 index 0000000..8e2850e --- /dev/null +++ b/vcits/ssem/RegulatorySpeedLimit.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RegulatorySpeedLimit_H_ +#define _RegulatorySpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedLimitType.h" +#include "Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegulatorySpeedLimit */ +typedef struct RegulatorySpeedLimit { + SpeedLimitType_t type; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RegulatorySpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit; +extern asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1; +extern asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegulatorySpeedLimit_H_ */ +#include diff --git a/vcits/ssem/RejectedReason.h b/vcits/ssem/RejectedReason.h new file mode 100644 index 0000000..359bad4 --- /dev/null +++ b/vcits/ssem/RejectedReason.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RejectedReason_H_ +#define _RejectedReason_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RejectedReason { + RejectedReason_unknown = 0, + RejectedReason_exceptionalCondition = 1, + RejectedReason_maxWaitingTimeExceeded = 2, + RejectedReason_ptPriorityDisabled = 3, + RejectedReason_higherPTPriorityGranted = 4, + RejectedReason_vehicleTrackingUnknown = 5 + /* + * Enumeration is extensible + */ +} e_RejectedReason; + +/* RejectedReason */ +typedef long RejectedReason_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RejectedReason_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RejectedReason; +extern const asn_INTEGER_specifics_t asn_SPC_RejectedReason_specs_1; +asn_struct_free_f RejectedReason_free; +asn_struct_print_f RejectedReason_print; +asn_constr_check_f RejectedReason_constraint; +ber_type_decoder_f RejectedReason_decode_ber; +der_type_encoder_f RejectedReason_encode_der; +xer_type_decoder_f RejectedReason_decode_xer; +xer_type_encoder_f RejectedReason_encode_xer; +oer_type_decoder_f RejectedReason_decode_oer; +oer_type_encoder_f RejectedReason_encode_oer; +per_type_decoder_f RejectedReason_decode_uper; +per_type_encoder_f RejectedReason_encode_uper; +per_type_decoder_f RejectedReason_decode_aper; +per_type_encoder_f RejectedReason_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RejectedReason_H_ */ +#include diff --git a/vcits/ssem/RelevanceDistance.h b/vcits/ssem/RelevanceDistance.h new file mode 100644 index 0000000..7e624ba --- /dev/null +++ b/vcits/ssem/RelevanceDistance.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RelevanceDistance_H_ +#define _RelevanceDistance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceDistance { + RelevanceDistance_lessThan50m = 0, + RelevanceDistance_lessThan100m = 1, + RelevanceDistance_lessThan200m = 2, + RelevanceDistance_lessThan500m = 3, + RelevanceDistance_lessThan1000m = 4, + RelevanceDistance_lessThan5km = 5, + RelevanceDistance_lessThan10km = 6, + RelevanceDistance_over10km = 7 +} e_RelevanceDistance; + +/* RelevanceDistance */ +typedef long RelevanceDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceDistance; +asn_struct_free_f RelevanceDistance_free; +asn_struct_print_f RelevanceDistance_print; +asn_constr_check_f RelevanceDistance_constraint; +ber_type_decoder_f RelevanceDistance_decode_ber; +der_type_encoder_f RelevanceDistance_encode_der; +xer_type_decoder_f RelevanceDistance_decode_xer; +xer_type_encoder_f RelevanceDistance_encode_xer; +oer_type_decoder_f RelevanceDistance_decode_oer; +oer_type_encoder_f RelevanceDistance_encode_oer; +per_type_decoder_f RelevanceDistance_decode_uper; +per_type_encoder_f RelevanceDistance_encode_uper; +per_type_decoder_f RelevanceDistance_decode_aper; +per_type_encoder_f RelevanceDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceDistance_H_ */ +#include diff --git a/vcits/ssem/RelevanceTrafficDirection.h b/vcits/ssem/RelevanceTrafficDirection.h new file mode 100644 index 0000000..4a076cd --- /dev/null +++ b/vcits/ssem/RelevanceTrafficDirection.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RelevanceTrafficDirection_H_ +#define _RelevanceTrafficDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RelevanceTrafficDirection { + RelevanceTrafficDirection_allTrafficDirections = 0, + RelevanceTrafficDirection_upstreamTraffic = 1, + RelevanceTrafficDirection_downstreamTraffic = 2, + RelevanceTrafficDirection_oppositeTraffic = 3 +} e_RelevanceTrafficDirection; + +/* RelevanceTrafficDirection */ +typedef long RelevanceTrafficDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection; +asn_struct_free_f RelevanceTrafficDirection_free; +asn_struct_print_f RelevanceTrafficDirection_print; +asn_constr_check_f RelevanceTrafficDirection_constraint; +ber_type_decoder_f RelevanceTrafficDirection_decode_ber; +der_type_encoder_f RelevanceTrafficDirection_encode_der; +xer_type_decoder_f RelevanceTrafficDirection_decode_xer; +xer_type_encoder_f RelevanceTrafficDirection_encode_xer; +oer_type_decoder_f RelevanceTrafficDirection_decode_oer; +oer_type_encoder_f RelevanceTrafficDirection_encode_oer; +per_type_decoder_f RelevanceTrafficDirection_decode_uper; +per_type_encoder_f RelevanceTrafficDirection_encode_uper; +per_type_decoder_f RelevanceTrafficDirection_decode_aper; +per_type_encoder_f RelevanceTrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RelevanceTrafficDirection_H_ */ +#include diff --git a/vcits/ssem/RequestID.h b/vcits/ssem/RequestID.h new file mode 100644 index 0000000..869b35c --- /dev/null +++ b/vcits/ssem/RequestID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RequestID_H_ +#define _RequestID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestID */ +typedef long RequestID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestID; +asn_struct_free_f RequestID_free; +asn_struct_print_f RequestID_print; +asn_constr_check_f RequestID_constraint; +ber_type_decoder_f RequestID_decode_ber; +der_type_encoder_f RequestID_encode_der; +xer_type_decoder_f RequestID_decode_xer; +xer_type_encoder_f RequestID_encode_xer; +oer_type_decoder_f RequestID_decode_oer; +oer_type_encoder_f RequestID_encode_oer; +per_type_decoder_f RequestID_decode_uper; +per_type_encoder_f RequestID_encode_uper; +per_type_decoder_f RequestID_decode_aper; +per_type_encoder_f RequestID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestID_H_ */ +#include diff --git a/vcits/ssem/RequestImportanceLevel.h b/vcits/ssem/RequestImportanceLevel.h new file mode 100644 index 0000000..accf87f --- /dev/null +++ b/vcits/ssem/RequestImportanceLevel.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RequestImportanceLevel_H_ +#define _RequestImportanceLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestImportanceLevel { + RequestImportanceLevel_requestImportanceLevelUnKnown = 0, + RequestImportanceLevel_requestImportanceLevel1 = 1, + RequestImportanceLevel_requestImportanceLevel2 = 2, + RequestImportanceLevel_requestImportanceLevel3 = 3, + RequestImportanceLevel_requestImportanceLevel4 = 4, + RequestImportanceLevel_requestImportanceLevel5 = 5, + RequestImportanceLevel_requestImportanceLevel6 = 6, + RequestImportanceLevel_requestImportanceLevel7 = 7, + RequestImportanceLevel_requestImportanceLevel8 = 8, + RequestImportanceLevel_requestImportanceLevel9 = 9, + RequestImportanceLevel_requestImportanceLevel10 = 10, + RequestImportanceLevel_requestImportanceLevel11 = 11, + RequestImportanceLevel_requestImportanceLevel12 = 12, + RequestImportanceLevel_requestImportanceLevel13 = 13, + RequestImportanceLevel_requestImportanceLevel14 = 14, + RequestImportanceLevel_requestImportanceReserved = 15 +} e_RequestImportanceLevel; + +/* RequestImportanceLevel */ +typedef long RequestImportanceLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel; +extern const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1; +asn_struct_free_f RequestImportanceLevel_free; +asn_struct_print_f RequestImportanceLevel_print; +asn_constr_check_f RequestImportanceLevel_constraint; +ber_type_decoder_f RequestImportanceLevel_decode_ber; +der_type_encoder_f RequestImportanceLevel_encode_der; +xer_type_decoder_f RequestImportanceLevel_decode_xer; +xer_type_encoder_f RequestImportanceLevel_encode_xer; +oer_type_decoder_f RequestImportanceLevel_decode_oer; +oer_type_encoder_f RequestImportanceLevel_encode_oer; +per_type_decoder_f RequestImportanceLevel_decode_uper; +per_type_encoder_f RequestImportanceLevel_encode_uper; +per_type_decoder_f RequestImportanceLevel_decode_aper; +per_type_encoder_f RequestImportanceLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestImportanceLevel_H_ */ +#include diff --git a/vcits/ssem/RequestResponseIndication.h b/vcits/ssem/RequestResponseIndication.h new file mode 100644 index 0000000..013c4d4 --- /dev/null +++ b/vcits/ssem/RequestResponseIndication.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RequestResponseIndication_H_ +#define _RequestResponseIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestResponseIndication { + RequestResponseIndication_request = 0, + RequestResponseIndication_response = 1 +} e_RequestResponseIndication; + +/* RequestResponseIndication */ +typedef long RequestResponseIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication; +asn_struct_free_f RequestResponseIndication_free; +asn_struct_print_f RequestResponseIndication_print; +asn_constr_check_f RequestResponseIndication_constraint; +ber_type_decoder_f RequestResponseIndication_decode_ber; +der_type_encoder_f RequestResponseIndication_encode_der; +xer_type_decoder_f RequestResponseIndication_decode_xer; +xer_type_encoder_f RequestResponseIndication_encode_xer; +oer_type_decoder_f RequestResponseIndication_decode_oer; +oer_type_encoder_f RequestResponseIndication_encode_oer; +per_type_decoder_f RequestResponseIndication_decode_uper; +per_type_encoder_f RequestResponseIndication_encode_uper; +per_type_decoder_f RequestResponseIndication_decode_aper; +per_type_encoder_f RequestResponseIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestResponseIndication_H_ */ +#include diff --git a/vcits/ssem/RequestSubRole.h b/vcits/ssem/RequestSubRole.h new file mode 100644 index 0000000..f24b25c --- /dev/null +++ b/vcits/ssem/RequestSubRole.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RequestSubRole_H_ +#define _RequestSubRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestSubRole { + RequestSubRole_requestSubRoleUnKnown = 0, + RequestSubRole_requestSubRole1 = 1, + RequestSubRole_requestSubRole2 = 2, + RequestSubRole_requestSubRole3 = 3, + RequestSubRole_requestSubRole4 = 4, + RequestSubRole_requestSubRole5 = 5, + RequestSubRole_requestSubRole6 = 6, + RequestSubRole_requestSubRole7 = 7, + RequestSubRole_requestSubRole8 = 8, + RequestSubRole_requestSubRole9 = 9, + RequestSubRole_requestSubRole10 = 10, + RequestSubRole_requestSubRole11 = 11, + RequestSubRole_requestSubRole12 = 12, + RequestSubRole_requestSubRole13 = 13, + RequestSubRole_requestSubRole14 = 14, + RequestSubRole_requestSubRoleReserved = 15 +} e_RequestSubRole; + +/* RequestSubRole */ +typedef long RequestSubRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestSubRole; +extern const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1; +asn_struct_free_f RequestSubRole_free; +asn_struct_print_f RequestSubRole_print; +asn_constr_check_f RequestSubRole_constraint; +ber_type_decoder_f RequestSubRole_decode_ber; +der_type_encoder_f RequestSubRole_encode_der; +xer_type_decoder_f RequestSubRole_decode_xer; +xer_type_encoder_f RequestSubRole_encode_xer; +oer_type_decoder_f RequestSubRole_decode_oer; +oer_type_encoder_f RequestSubRole_encode_oer; +per_type_decoder_f RequestSubRole_decode_uper; +per_type_encoder_f RequestSubRole_encode_uper; +per_type_decoder_f RequestSubRole_decode_aper; +per_type_encoder_f RequestSubRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestSubRole_H_ */ +#include diff --git a/vcits/ssem/RequestorDescription-addGrpC.h b/vcits/ssem/RequestorDescription-addGrpC.h new file mode 100644 index 0000000..6d9766b --- /dev/null +++ b/vcits/ssem/RequestorDescription-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RequestorDescription_addGrpC_H_ +#define _RequestorDescription_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "FuelType.h" +#include "BatteryStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestorDescription-addGrpC */ +typedef struct RequestorDescription_addGrpC { + FuelType_t *fuel; /* OPTIONAL */ + BatteryStatus_t *batteryStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_addGrpC_H_ */ +#include diff --git a/vcits/ssem/RequestorDescription.h b/vcits/ssem/RequestorDescription.h new file mode 100644 index 0000000..5bddec8 --- /dev/null +++ b/vcits/ssem/RequestorDescription.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RequestorDescription_H_ +#define _RequestorDescription_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleID.h" +#include "DescriptiveName.h" +#include "TransitVehicleStatus.h" +#include "TransitVehicleOccupancy.h" +#include "DeltaTime.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; +struct RequestorPositionVector; +struct Reg_RequestorDescription; + +/* RequestorDescription */ +typedef struct RequestorDescription { + VehicleID_t id; + struct RequestorType *type; /* OPTIONAL */ + struct RequestorPositionVector *position; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + DescriptiveName_t *routeName; /* OPTIONAL */ + TransitVehicleStatus_t *transitStatus; /* OPTIONAL */ + TransitVehicleOccupancy_t *transitOccupancy; /* OPTIONAL */ + DeltaTime_t *transitSchedule; /* OPTIONAL */ + struct RequestorDescription__regional { + A_SEQUENCE_OF(struct Reg_RequestorDescription) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_H_ */ +#include diff --git a/vcits/ssem/RequestorPositionVector.h b/vcits/ssem/RequestorPositionVector.h new file mode 100644 index 0000000..43387a0 --- /dev/null +++ b/vcits/ssem/RequestorPositionVector.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RequestorPositionVector_H_ +#define _RequestorPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "Position3D.h" +#include "Angle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TransmissionAndSpeed; + +/* RequestorPositionVector */ +typedef struct RequestorPositionVector { + Position3D_t position; + Angle_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorPositionVector_H_ */ +#include diff --git a/vcits/ssem/RequestorType.h b/vcits/ssem/RequestorType.h new file mode 100644 index 0000000..eff53eb --- /dev/null +++ b/vcits/ssem/RequestorType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RequestorType_H_ +#define _RequestorType_H_ + + +#include + +/* Including external dependencies */ +#include "BasicVehicleRole.h" +#include "RequestSubRole.h" +#include "RequestImportanceLevel.h" +#include "Iso3833VehicleType.h" +#include "VehicleType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_RequestorType; + +/* RequestorType */ +typedef struct RequestorType { + BasicVehicleRole_t role; + RequestSubRole_t *subrole; /* OPTIONAL */ + RequestImportanceLevel_t *request; /* OPTIONAL */ + Iso3833VehicleType_t *iso3883; /* OPTIONAL */ + VehicleType_t *hpmsType; /* OPTIONAL */ + struct Reg_RequestorType *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorType_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorType_H_ */ +#include diff --git a/vcits/ssem/RescueAndRecoveryWorkInProgressSubCauseCode.h b/vcits/ssem/RescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 0000000..5d53220 --- /dev/null +++ b/vcits/ssem/RescueAndRecoveryWorkInProgressSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RescueAndRecoveryWorkInProgressSubCauseCode_H_ +#define _RescueAndRecoveryWorkInProgressSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RescueAndRecoveryWorkInProgressSubCauseCode { + RescueAndRecoveryWorkInProgressSubCauseCode_unavailable = 0, + RescueAndRecoveryWorkInProgressSubCauseCode_emergencyVehicles = 1, + RescueAndRecoveryWorkInProgressSubCauseCode_rescueHelicopterLanding = 2, + RescueAndRecoveryWorkInProgressSubCauseCode_policeActivityOngoing = 3, + RescueAndRecoveryWorkInProgressSubCauseCode_medicalEmergencyOngoing = 4, + RescueAndRecoveryWorkInProgressSubCauseCode_childAbductionInProgress = 5 +} e_RescueAndRecoveryWorkInProgressSubCauseCode; + +/* RescueAndRecoveryWorkInProgressSubCauseCode */ +typedef long RescueAndRecoveryWorkInProgressSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode; +asn_struct_free_f RescueAndRecoveryWorkInProgressSubCauseCode_free; +asn_struct_print_f RescueAndRecoveryWorkInProgressSubCauseCode_print; +asn_constr_check_f RescueAndRecoveryWorkInProgressSubCauseCode_constraint; +ber_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_ber; +der_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_der; +xer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_xer; +xer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_xer; +oer_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_oer; +oer_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_oer; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_uper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_uper; +per_type_decoder_f RescueAndRecoveryWorkInProgressSubCauseCode_decode_aper; +per_type_encoder_f RescueAndRecoveryWorkInProgressSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RescueAndRecoveryWorkInProgressSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/RestrictedTypes.h b/vcits/ssem/RestrictedTypes.h new file mode 100644 index 0000000..0b1baeb --- /dev/null +++ b/vcits/ssem/RestrictedTypes.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RestrictedTypes_H_ +#define _RestrictedTypes_H_ + + +#include + +/* Including external dependencies */ +#include "StationType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictedTypes */ +typedef struct RestrictedTypes { + A_SEQUENCE_OF(StationType_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictedTypes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictedTypes; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictedTypes_H_ */ +#include diff --git a/vcits/ssem/RestrictionAppliesTo.h b/vcits/ssem/RestrictionAppliesTo.h new file mode 100644 index 0000000..a2d6495 --- /dev/null +++ b/vcits/ssem/RestrictionAppliesTo.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RestrictionAppliesTo_H_ +#define _RestrictionAppliesTo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionAppliesTo { + RestrictionAppliesTo_none = 0, + RestrictionAppliesTo_equippedTransit = 1, + RestrictionAppliesTo_equippedTaxis = 2, + RestrictionAppliesTo_equippedOther = 3, + RestrictionAppliesTo_emissionCompliant = 4, + RestrictionAppliesTo_equippedBicycle = 5, + RestrictionAppliesTo_weightCompliant = 6, + RestrictionAppliesTo_heightCompliant = 7, + RestrictionAppliesTo_pedestrians = 8, + RestrictionAppliesTo_slowMovingPersons = 9, + RestrictionAppliesTo_wheelchairUsers = 10, + RestrictionAppliesTo_visualDisabilities = 11, + RestrictionAppliesTo_audioDisabilities = 12, + RestrictionAppliesTo_otherUnknownDisabilities = 13 + /* + * Enumeration is extensible + */ +} e_RestrictionAppliesTo; + +/* RestrictionAppliesTo */ +typedef long RestrictionAppliesTo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo; +extern const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1; +asn_struct_free_f RestrictionAppliesTo_free; +asn_struct_print_f RestrictionAppliesTo_print; +asn_constr_check_f RestrictionAppliesTo_constraint; +ber_type_decoder_f RestrictionAppliesTo_decode_ber; +der_type_encoder_f RestrictionAppliesTo_encode_der; +xer_type_decoder_f RestrictionAppliesTo_decode_xer; +xer_type_encoder_f RestrictionAppliesTo_encode_xer; +oer_type_decoder_f RestrictionAppliesTo_decode_oer; +oer_type_encoder_f RestrictionAppliesTo_encode_oer; +per_type_decoder_f RestrictionAppliesTo_decode_uper; +per_type_encoder_f RestrictionAppliesTo_encode_uper; +per_type_decoder_f RestrictionAppliesTo_decode_aper; +per_type_encoder_f RestrictionAppliesTo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionAppliesTo_H_ */ +#include diff --git a/vcits/ssem/RestrictionClassAssignment.h b/vcits/ssem/RestrictionClassAssignment.h new file mode 100644 index 0000000..6429244 --- /dev/null +++ b/vcits/ssem/RestrictionClassAssignment.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RestrictionClassAssignment_H_ +#define _RestrictionClassAssignment_H_ + + +#include + +/* Including external dependencies */ +#include "RestrictionClassID.h" +#include "RestrictionUserTypeList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassAssignment */ +typedef struct RestrictionClassAssignment { + RestrictionClassID_t id; + RestrictionUserTypeList_t users; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassAssignment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassAssignment_H_ */ +#include diff --git a/vcits/ssem/RestrictionClassID.h b/vcits/ssem/RestrictionClassID.h new file mode 100644 index 0000000..3c01606 --- /dev/null +++ b/vcits/ssem/RestrictionClassID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RestrictionClassID_H_ +#define _RestrictionClassID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassID */ +typedef long RestrictionClassID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassID; +asn_struct_free_f RestrictionClassID_free; +asn_struct_print_f RestrictionClassID_print; +asn_constr_check_f RestrictionClassID_constraint; +ber_type_decoder_f RestrictionClassID_decode_ber; +der_type_encoder_f RestrictionClassID_encode_der; +xer_type_decoder_f RestrictionClassID_decode_xer; +xer_type_encoder_f RestrictionClassID_encode_xer; +oer_type_decoder_f RestrictionClassID_decode_oer; +oer_type_encoder_f RestrictionClassID_encode_oer; +per_type_decoder_f RestrictionClassID_decode_uper; +per_type_encoder_f RestrictionClassID_encode_uper; +per_type_decoder_f RestrictionClassID_decode_aper; +per_type_encoder_f RestrictionClassID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassID_H_ */ +#include diff --git a/vcits/ssem/RestrictionClassList.h b/vcits/ssem/RestrictionClassList.h new file mode 100644 index 0000000..0d0e3cc --- /dev/null +++ b/vcits/ssem/RestrictionClassList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RestrictionClassList_H_ +#define _RestrictionClassList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionClassAssignment; + +/* RestrictionClassList */ +typedef struct RestrictionClassList { + A_SEQUENCE_OF(struct RestrictionClassAssignment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassList_H_ */ +#include diff --git a/vcits/ssem/RestrictionUserType-addGrpC.h b/vcits/ssem/RestrictionUserType-addGrpC.h new file mode 100644 index 0000000..d27e09d --- /dev/null +++ b/vcits/ssem/RestrictionUserType-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RestrictionUserType_addGrpC_H_ +#define _RestrictionUserType_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "EmissionType.h" +#include "FuelType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionUserType-addGrpC */ +typedef struct RestrictionUserType_addGrpC { + EmissionType_t *emission; /* OPTIONAL */ + FuelType_t *fuel; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_addGrpC_H_ */ +#include diff --git a/vcits/ssem/RestrictionUserType.h b/vcits/ssem/RestrictionUserType.h new file mode 100644 index 0000000..17e3ed5 --- /dev/null +++ b/vcits/ssem/RestrictionUserType.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RestrictionUserType_H_ +#define _RestrictionUserType_H_ + + +#include + +/* Including external dependencies */ +#include "RestrictionAppliesTo.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionUserType_PR { + RestrictionUserType_PR_NOTHING, /* No components present */ + RestrictionUserType_PR_basicType, + RestrictionUserType_PR_regional + /* Extensions may appear below */ + +} RestrictionUserType_PR; + +/* Forward declarations */ +struct Reg_RestrictionUserType; + +/* RestrictionUserType */ +typedef struct RestrictionUserType { + RestrictionUserType_PR present; + union RestrictionUserType_u { + RestrictionAppliesTo_t basicType; + struct RestrictionUserType__regional { + A_SEQUENCE_OF(struct Reg_RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType; +extern asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_1[2]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_H_ */ +#include diff --git a/vcits/ssem/RestrictionUserTypeList.h b/vcits/ssem/RestrictionUserTypeList.h new file mode 100644 index 0000000..42ac820 --- /dev/null +++ b/vcits/ssem/RestrictionUserTypeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RestrictionUserTypeList_H_ +#define _RestrictionUserTypeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionUserType; + +/* RestrictionUserTypeList */ +typedef struct RestrictionUserTypeList { + A_SEQUENCE_OF(struct RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserTypeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserTypeList_H_ */ +#include diff --git a/vcits/ssem/RoadLaneSetList.h b/vcits/ssem/RoadLaneSetList.h new file mode 100644 index 0000000..f8d4158 --- /dev/null +++ b/vcits/ssem/RoadLaneSetList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RoadLaneSetList_H_ +#define _RoadLaneSetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* RoadLaneSetList */ +typedef struct RoadLaneSetList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadLaneSetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList; +extern asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadLaneSetList_H_ */ +#include diff --git a/vcits/ssem/RoadRegulatorID.h b/vcits/ssem/RoadRegulatorID.h new file mode 100644 index 0000000..4d9118c --- /dev/null +++ b/vcits/ssem/RoadRegulatorID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RoadRegulatorID_H_ +#define _RoadRegulatorID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadRegulatorID */ +typedef long RoadRegulatorID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID; +asn_struct_free_f RoadRegulatorID_free; +asn_struct_print_f RoadRegulatorID_print; +asn_constr_check_f RoadRegulatorID_constraint; +ber_type_decoder_f RoadRegulatorID_decode_ber; +der_type_encoder_f RoadRegulatorID_encode_der; +xer_type_decoder_f RoadRegulatorID_decode_xer; +xer_type_encoder_f RoadRegulatorID_encode_xer; +oer_type_decoder_f RoadRegulatorID_decode_oer; +oer_type_encoder_f RoadRegulatorID_encode_oer; +per_type_decoder_f RoadRegulatorID_decode_uper; +per_type_encoder_f RoadRegulatorID_encode_uper; +per_type_decoder_f RoadRegulatorID_decode_aper; +per_type_encoder_f RoadRegulatorID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadRegulatorID_H_ */ +#include diff --git a/vcits/ssem/RoadSegment.h b/vcits/ssem/RoadSegment.h new file mode 100644 index 0000000..137c128 --- /dev/null +++ b/vcits/ssem/RoadSegment.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RoadSegment_H_ +#define _RoadSegment_H_ + + +#include + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "RoadSegmentReferenceID.h" +#include "MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "RoadLaneSetList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct Reg_RoadSegment; + +/* RoadSegment */ +typedef struct RoadSegment { + DescriptiveName_t *name; /* OPTIONAL */ + RoadSegmentReferenceID_t id; + MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + RoadLaneSetList_t roadLaneSet; + struct RoadSegment__regional { + A_SEQUENCE_OF(struct Reg_RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegment_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegment_H_ */ +#include diff --git a/vcits/ssem/RoadSegmentID.h b/vcits/ssem/RoadSegmentID.h new file mode 100644 index 0000000..a91765a --- /dev/null +++ b/vcits/ssem/RoadSegmentID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RoadSegmentID_H_ +#define _RoadSegmentID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentID */ +typedef long RoadSegmentID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentID; +asn_struct_free_f RoadSegmentID_free; +asn_struct_print_f RoadSegmentID_print; +asn_constr_check_f RoadSegmentID_constraint; +ber_type_decoder_f RoadSegmentID_decode_ber; +der_type_encoder_f RoadSegmentID_encode_der; +xer_type_decoder_f RoadSegmentID_decode_xer; +xer_type_encoder_f RoadSegmentID_encode_xer; +oer_type_decoder_f RoadSegmentID_decode_oer; +oer_type_encoder_f RoadSegmentID_encode_oer; +per_type_decoder_f RoadSegmentID_decode_uper; +per_type_encoder_f RoadSegmentID_encode_uper; +per_type_decoder_f RoadSegmentID_decode_aper; +per_type_encoder_f RoadSegmentID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentID_H_ */ +#include diff --git a/vcits/ssem/RoadSegmentList.h b/vcits/ssem/RoadSegmentList.h new file mode 100644 index 0000000..350dd7b --- /dev/null +++ b/vcits/ssem/RoadSegmentList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RoadSegmentList_H_ +#define _RoadSegmentList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RoadSegment; + +/* RoadSegmentList */ +typedef struct RoadSegmentList { + A_SEQUENCE_OF(struct RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentList; +extern asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentList_H_ */ +#include diff --git a/vcits/ssem/RoadSegmentReferenceID.h b/vcits/ssem/RoadSegmentReferenceID.h new file mode 100644 index 0000000..bf1bf1e --- /dev/null +++ b/vcits/ssem/RoadSegmentReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RoadSegmentReferenceID_H_ +#define _RoadSegmentReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "RoadSegmentID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentReferenceID */ +typedef struct RoadSegmentReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + RoadSegmentID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentReferenceID_H_ */ +#include diff --git a/vcits/ssem/RoadType.h b/vcits/ssem/RoadType.h new file mode 100644 index 0000000..d2ce2e0 --- /dev/null +++ b/vcits/ssem/RoadType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RoadType_H_ +#define _RoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadType { + RoadType_urban_NoStructuralSeparationToOppositeLanes = 0, + RoadType_urban_WithStructuralSeparationToOppositeLanes = 1, + RoadType_nonUrban_NoStructuralSeparationToOppositeLanes = 2, + RoadType_nonUrban_WithStructuralSeparationToOppositeLanes = 3 +} e_RoadType; + +/* RoadType */ +typedef long RoadType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadType; +asn_struct_free_f RoadType_free; +asn_struct_print_f RoadType_print; +asn_constr_check_f RoadType_constraint; +ber_type_decoder_f RoadType_decode_ber; +der_type_encoder_f RoadType_encode_der; +xer_type_decoder_f RoadType_decode_xer; +xer_type_encoder_f RoadType_encode_xer; +oer_type_decoder_f RoadType_decode_oer; +oer_type_encoder_f RoadType_encode_oer; +per_type_decoder_f RoadType_decode_uper; +per_type_encoder_f RoadType_encode_uper; +per_type_decoder_f RoadType_decode_aper; +per_type_encoder_f RoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadType_H_ */ +#include diff --git a/vcits/ssem/RoadwayCrownAngle.h b/vcits/ssem/RoadwayCrownAngle.h new file mode 100644 index 0000000..36546b2 --- /dev/null +++ b/vcits/ssem/RoadwayCrownAngle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RoadwayCrownAngle_H_ +#define _RoadwayCrownAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadwayCrownAngle */ +typedef long RoadwayCrownAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle; +asn_struct_free_f RoadwayCrownAngle_free; +asn_struct_print_f RoadwayCrownAngle_print; +asn_constr_check_f RoadwayCrownAngle_constraint; +ber_type_decoder_f RoadwayCrownAngle_decode_ber; +der_type_encoder_f RoadwayCrownAngle_encode_der; +xer_type_decoder_f RoadwayCrownAngle_decode_xer; +xer_type_encoder_f RoadwayCrownAngle_encode_xer; +oer_type_decoder_f RoadwayCrownAngle_decode_oer; +oer_type_encoder_f RoadwayCrownAngle_encode_oer; +per_type_decoder_f RoadwayCrownAngle_decode_uper; +per_type_encoder_f RoadwayCrownAngle_encode_uper; +per_type_decoder_f RoadwayCrownAngle_decode_aper; +per_type_encoder_f RoadwayCrownAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadwayCrownAngle_H_ */ +#include diff --git a/vcits/ssem/RoadworksSubCauseCode.h b/vcits/ssem/RoadworksSubCauseCode.h new file mode 100644 index 0000000..0f61bea --- /dev/null +++ b/vcits/ssem/RoadworksSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _RoadworksSubCauseCode_H_ +#define _RoadworksSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RoadworksSubCauseCode { + RoadworksSubCauseCode_unavailable = 0, + RoadworksSubCauseCode_majorRoadworks = 1, + RoadworksSubCauseCode_roadMarkingWork = 2, + RoadworksSubCauseCode_slowMovingRoadMaintenance = 3, + RoadworksSubCauseCode_shortTermStationaryRoadworks = 4, + RoadworksSubCauseCode_streetCleaning = 5, + RoadworksSubCauseCode_winterService = 6 +} e_RoadworksSubCauseCode; + +/* RoadworksSubCauseCode */ +typedef long RoadworksSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode; +asn_struct_free_f RoadworksSubCauseCode_free; +asn_struct_print_f RoadworksSubCauseCode_print; +asn_constr_check_f RoadworksSubCauseCode_constraint; +ber_type_decoder_f RoadworksSubCauseCode_decode_ber; +der_type_encoder_f RoadworksSubCauseCode_encode_der; +xer_type_decoder_f RoadworksSubCauseCode_decode_xer; +xer_type_encoder_f RoadworksSubCauseCode_encode_xer; +oer_type_decoder_f RoadworksSubCauseCode_decode_oer; +oer_type_encoder_f RoadworksSubCauseCode_encode_oer; +per_type_decoder_f RoadworksSubCauseCode_decode_uper; +per_type_encoder_f RoadworksSubCauseCode_encode_uper; +per_type_decoder_f RoadworksSubCauseCode_decode_aper; +per_type_encoder_f RoadworksSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadworksSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/SPAT.h b/vcits/ssem/SPAT.h new file mode 100644 index 0000000..99992ba --- /dev/null +++ b/vcits/ssem/SPAT.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SPAT_H_ +#define _SPAT_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DescriptiveName.h" +#include "IntersectionStateList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SPAT; + +/* SPAT */ +typedef struct SPAT { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionStateList_t intersections; + struct SPAT__regional { + A_SEQUENCE_OF(struct Reg_SPAT) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SPAT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SPAT; + +#ifdef __cplusplus +} +#endif + +#endif /* _SPAT_H_ */ +#include diff --git a/vcits/ssem/SSEM.h b/vcits/ssem/SSEM.h new file mode 100644 index 0000000..4ddd47f --- /dev/null +++ b/vcits/ssem/SSEM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SSEM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/SSEM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SSEM_H_ +#define _SSEM_H_ + + +#include + +/* Including external dependencies */ +#include "ItsPduHeader.h" +#include "SignalStatusMessage.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SSEM */ +typedef struct SSEM { + ItsPduHeader_t header; + SignalStatusMessage_t ssm; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SSEM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SSEM; + +#ifdef __cplusplus +} +#endif + +#endif /* _SSEM_H_ */ +#include diff --git a/vcits/ssem/Scale-B12.h b/vcits/ssem/Scale-B12.h new file mode 100644 index 0000000..bf721ea --- /dev/null +++ b/vcits/ssem/Scale-B12.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Scale_B12_H_ +#define _Scale_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Scale-B12 */ +typedef long Scale_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Scale_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Scale_B12; +asn_struct_free_f Scale_B12_free; +asn_struct_print_f Scale_B12_print; +asn_constr_check_f Scale_B12_constraint; +ber_type_decoder_f Scale_B12_decode_ber; +der_type_encoder_f Scale_B12_encode_der; +xer_type_decoder_f Scale_B12_decode_xer; +xer_type_encoder_f Scale_B12_encode_xer; +oer_type_decoder_f Scale_B12_decode_oer; +oer_type_encoder_f Scale_B12_encode_oer; +per_type_decoder_f Scale_B12_decode_uper; +per_type_encoder_f Scale_B12_encode_uper; +per_type_decoder_f Scale_B12_decode_aper; +per_type_encoder_f Scale_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Scale_B12_H_ */ +#include diff --git a/vcits/ssem/SegmentAttributeXY.h b/vcits/ssem/SegmentAttributeXY.h new file mode 100644 index 0000000..17c4e40 --- /dev/null +++ b/vcits/ssem/SegmentAttributeXY.h @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SegmentAttributeXY_H_ +#define _SegmentAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SegmentAttributeXY { + SegmentAttributeXY_reserved = 0, + SegmentAttributeXY_doNotBlock = 1, + SegmentAttributeXY_whiteLine = 2, + SegmentAttributeXY_mergingLaneLeft = 3, + SegmentAttributeXY_mergingLaneRight = 4, + SegmentAttributeXY_curbOnLeft = 5, + SegmentAttributeXY_curbOnRight = 6, + SegmentAttributeXY_loadingzoneOnLeft = 7, + SegmentAttributeXY_loadingzoneOnRight = 8, + SegmentAttributeXY_turnOutPointOnLeft = 9, + SegmentAttributeXY_turnOutPointOnRight = 10, + SegmentAttributeXY_adjacentParkingOnLeft = 11, + SegmentAttributeXY_adjacentParkingOnRight = 12, + SegmentAttributeXY_adjacentBikeLaneOnLeft = 13, + SegmentAttributeXY_adjacentBikeLaneOnRight = 14, + SegmentAttributeXY_sharedBikeLane = 15, + SegmentAttributeXY_bikeBoxInFront = 16, + SegmentAttributeXY_transitStopOnLeft = 17, + SegmentAttributeXY_transitStopOnRight = 18, + SegmentAttributeXY_transitStopInLane = 19, + SegmentAttributeXY_sharedWithTrackedVehicle = 20, + SegmentAttributeXY_safeIsland = 21, + SegmentAttributeXY_lowCurbsPresent = 22, + SegmentAttributeXY_rumbleStripPresent = 23, + SegmentAttributeXY_audibleSignalingPresent = 24, + SegmentAttributeXY_adaptiveTimingPresent = 25, + SegmentAttributeXY_rfSignalRequestPresent = 26, + SegmentAttributeXY_partialCurbIntrusion = 27, + SegmentAttributeXY_taperToLeft = 28, + SegmentAttributeXY_taperToRight = 29, + SegmentAttributeXY_taperToCenterLine = 30, + SegmentAttributeXY_parallelParking = 31, + SegmentAttributeXY_headInParking = 32, + SegmentAttributeXY_freeParking = 33, + SegmentAttributeXY_timeRestrictionsOnParking = 34, + SegmentAttributeXY_costToPark = 35, + SegmentAttributeXY_midBlockCurbPresent = 36, + SegmentAttributeXY_unEvenPavementPresent = 37 + /* + * Enumeration is extensible + */ +} e_SegmentAttributeXY; + +/* SegmentAttributeXY */ +typedef long SegmentAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1; +asn_struct_free_f SegmentAttributeXY_free; +asn_struct_print_f SegmentAttributeXY_print; +asn_constr_check_f SegmentAttributeXY_constraint; +ber_type_decoder_f SegmentAttributeXY_decode_ber; +der_type_encoder_f SegmentAttributeXY_encode_der; +xer_type_decoder_f SegmentAttributeXY_decode_xer; +xer_type_encoder_f SegmentAttributeXY_encode_xer; +oer_type_decoder_f SegmentAttributeXY_decode_oer; +oer_type_encoder_f SegmentAttributeXY_encode_oer; +per_type_decoder_f SegmentAttributeXY_decode_uper; +per_type_encoder_f SegmentAttributeXY_encode_uper; +per_type_decoder_f SegmentAttributeXY_decode_aper; +per_type_encoder_f SegmentAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXY_H_ */ +#include diff --git a/vcits/ssem/SegmentAttributeXYList.h b/vcits/ssem/SegmentAttributeXYList.h new file mode 100644 index 0000000..667aa61 --- /dev/null +++ b/vcits/ssem/SegmentAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SegmentAttributeXYList_H_ +#define _SegmentAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "SegmentAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SegmentAttributeXYList */ +typedef struct SegmentAttributeXYList { + A_SEQUENCE_OF(SegmentAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SegmentAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXYList_H_ */ +#include diff --git a/vcits/ssem/SemiAxisLength.h b/vcits/ssem/SemiAxisLength.h new file mode 100644 index 0000000..b23af03 --- /dev/null +++ b/vcits/ssem/SemiAxisLength.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SemiAxisLength_H_ +#define _SemiAxisLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SemiAxisLength { + SemiAxisLength_oneCentimeter = 1, + SemiAxisLength_outOfRange = 4094, + SemiAxisLength_unavailable = 4095 +} e_SemiAxisLength; + +/* SemiAxisLength */ +typedef long SemiAxisLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiAxisLength; +asn_struct_free_f SemiAxisLength_free; +asn_struct_print_f SemiAxisLength_print; +asn_constr_check_f SemiAxisLength_constraint; +ber_type_decoder_f SemiAxisLength_decode_ber; +der_type_encoder_f SemiAxisLength_encode_der; +xer_type_decoder_f SemiAxisLength_decode_xer; +xer_type_encoder_f SemiAxisLength_encode_xer; +oer_type_decoder_f SemiAxisLength_decode_oer; +oer_type_encoder_f SemiAxisLength_encode_oer; +per_type_decoder_f SemiAxisLength_decode_uper; +per_type_encoder_f SemiAxisLength_encode_uper; +per_type_decoder_f SemiAxisLength_decode_aper; +per_type_encoder_f SemiAxisLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiAxisLength_H_ */ +#include diff --git a/vcits/ssem/SemiMajorAxisAccuracy.h b/vcits/ssem/SemiMajorAxisAccuracy.h new file mode 100644 index 0000000..6e0826a --- /dev/null +++ b/vcits/ssem/SemiMajorAxisAccuracy.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SemiMajorAxisAccuracy_H_ +#define _SemiMajorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisAccuracy */ +typedef long SemiMajorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy; +asn_struct_free_f SemiMajorAxisAccuracy_free; +asn_struct_print_f SemiMajorAxisAccuracy_print; +asn_constr_check_f SemiMajorAxisAccuracy_constraint; +ber_type_decoder_f SemiMajorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMajorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMajorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMajorAxisAccuracy_encode_xer; +oer_type_decoder_f SemiMajorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMajorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMajorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMajorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisAccuracy_H_ */ +#include diff --git a/vcits/ssem/SemiMajorAxisOrientation.h b/vcits/ssem/SemiMajorAxisOrientation.h new file mode 100644 index 0000000..d48e897 --- /dev/null +++ b/vcits/ssem/SemiMajorAxisOrientation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SemiMajorAxisOrientation_H_ +#define _SemiMajorAxisOrientation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisOrientation */ +typedef long SemiMajorAxisOrientation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation; +asn_struct_free_f SemiMajorAxisOrientation_free; +asn_struct_print_f SemiMajorAxisOrientation_print; +asn_constr_check_f SemiMajorAxisOrientation_constraint; +ber_type_decoder_f SemiMajorAxisOrientation_decode_ber; +der_type_encoder_f SemiMajorAxisOrientation_encode_der; +xer_type_decoder_f SemiMajorAxisOrientation_decode_xer; +xer_type_encoder_f SemiMajorAxisOrientation_encode_xer; +oer_type_decoder_f SemiMajorAxisOrientation_decode_oer; +oer_type_encoder_f SemiMajorAxisOrientation_encode_oer; +per_type_decoder_f SemiMajorAxisOrientation_decode_uper; +per_type_encoder_f SemiMajorAxisOrientation_encode_uper; +per_type_decoder_f SemiMajorAxisOrientation_decode_aper; +per_type_encoder_f SemiMajorAxisOrientation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisOrientation_H_ */ +#include diff --git a/vcits/ssem/SemiMinorAxisAccuracy.h b/vcits/ssem/SemiMinorAxisAccuracy.h new file mode 100644 index 0000000..fdd268f --- /dev/null +++ b/vcits/ssem/SemiMinorAxisAccuracy.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SemiMinorAxisAccuracy_H_ +#define _SemiMinorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMinorAxisAccuracy */ +typedef long SemiMinorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy; +asn_struct_free_f SemiMinorAxisAccuracy_free; +asn_struct_print_f SemiMinorAxisAccuracy_print; +asn_constr_check_f SemiMinorAxisAccuracy_constraint; +ber_type_decoder_f SemiMinorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMinorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMinorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMinorAxisAccuracy_encode_xer; +oer_type_decoder_f SemiMinorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMinorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMinorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMinorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMinorAxisAccuracy_H_ */ +#include diff --git a/vcits/ssem/SequenceNumber.h b/vcits/ssem/SequenceNumber.h new file mode 100644 index 0000000..aee606a --- /dev/null +++ b/vcits/ssem/SequenceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SequenceNumber_H_ +#define _SequenceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SequenceNumber */ +typedef long SequenceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SequenceNumber; +asn_struct_free_f SequenceNumber_free; +asn_struct_print_f SequenceNumber_print; +asn_constr_check_f SequenceNumber_constraint; +ber_type_decoder_f SequenceNumber_decode_ber; +der_type_encoder_f SequenceNumber_encode_der; +xer_type_decoder_f SequenceNumber_decode_xer; +xer_type_encoder_f SequenceNumber_encode_xer; +oer_type_decoder_f SequenceNumber_decode_oer; +oer_type_encoder_f SequenceNumber_encode_oer; +per_type_decoder_f SequenceNumber_decode_uper; +per_type_encoder_f SequenceNumber_encode_uper; +per_type_decoder_f SequenceNumber_decode_aper; +per_type_encoder_f SequenceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SequenceNumber_H_ */ +#include diff --git a/vcits/ssem/ServiceApplicationLimit.h b/vcits/ssem/ServiceApplicationLimit.h new file mode 100644 index 0000000..a29af5e --- /dev/null +++ b/vcits/ssem/ServiceApplicationLimit.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ServiceApplicationLimit_H_ +#define _ServiceApplicationLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ServiceApplicationLimit { + ServiceApplicationLimit_notForPostpayment = 0, + ServiceApplicationLimit_notForPrepayment = 1, + ServiceApplicationLimit_notForVehicleaccess = 2, + ServiceApplicationLimit_notForFleetcontrol = 3, + ServiceApplicationLimit_issuerSpecificRestriction1 = 4, + ServiceApplicationLimit_issuerSpecificRestriction2 = 5, + ServiceApplicationLimit_issuerSpecificRestriction3 = 6, + ServiceApplicationLimit_issuerSpecificRestriction4 = 7 +} e_ServiceApplicationLimit; + +/* ServiceApplicationLimit */ +typedef BIT_STRING_t ServiceApplicationLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ServiceApplicationLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ServiceApplicationLimit; +asn_struct_free_f ServiceApplicationLimit_free; +asn_struct_print_f ServiceApplicationLimit_print; +asn_constr_check_f ServiceApplicationLimit_constraint; +ber_type_decoder_f ServiceApplicationLimit_decode_ber; +der_type_encoder_f ServiceApplicationLimit_encode_der; +xer_type_decoder_f ServiceApplicationLimit_decode_xer; +xer_type_encoder_f ServiceApplicationLimit_encode_xer; +oer_type_decoder_f ServiceApplicationLimit_decode_oer; +oer_type_encoder_f ServiceApplicationLimit_encode_oer; +per_type_decoder_f ServiceApplicationLimit_decode_uper; +per_type_encoder_f ServiceApplicationLimit_encode_uper; +per_type_decoder_f ServiceApplicationLimit_decode_aper; +per_type_encoder_f ServiceApplicationLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServiceApplicationLimit_H_ */ +#include diff --git a/vcits/ssem/ServiceNumber.h b/vcits/ssem/ServiceNumber.h new file mode 100644 index 0000000..aad257e --- /dev/null +++ b/vcits/ssem/ServiceNumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ServiceNumber_H_ +#define _ServiceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ServiceNumber */ +typedef BIT_STRING_t ServiceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ServiceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ServiceNumber; +asn_struct_free_f ServiceNumber_free; +asn_struct_print_f ServiceNumber_print; +asn_constr_check_f ServiceNumber_constraint; +ber_type_decoder_f ServiceNumber_decode_ber; +der_type_encoder_f ServiceNumber_encode_der; +xer_type_decoder_f ServiceNumber_decode_xer; +xer_type_encoder_f ServiceNumber_encode_xer; +oer_type_decoder_f ServiceNumber_decode_oer; +oer_type_encoder_f ServiceNumber_encode_oer; +per_type_decoder_f ServiceNumber_decode_uper; +per_type_encoder_f ServiceNumber_encode_uper; +per_type_decoder_f ServiceNumber_decode_aper; +per_type_encoder_f ServiceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServiceNumber_H_ */ +#include diff --git a/vcits/ssem/SignalControlZone.h b/vcits/ssem/SignalControlZone.h new file mode 100644 index 0000000..a9519e6 --- /dev/null +++ b/vcits/ssem/SignalControlZone.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalControlZone_H_ +#define _SignalControlZone_H_ + + +#include + +/* Including external dependencies */ +#include "RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalControlZone */ +typedef struct SignalControlZone { + Reg_SignalControlZone_t zone; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalControlZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalControlZone_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalControlZone_H_ */ +#include diff --git a/vcits/ssem/SignalGroupID.h b/vcits/ssem/SignalGroupID.h new file mode 100644 index 0000000..23f92eb --- /dev/null +++ b/vcits/ssem/SignalGroupID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalGroupID_H_ +#define _SignalGroupID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalGroupID */ +typedef long SignalGroupID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SignalGroupID; +asn_struct_free_f SignalGroupID_free; +asn_struct_print_f SignalGroupID_print; +asn_constr_check_f SignalGroupID_constraint; +ber_type_decoder_f SignalGroupID_decode_ber; +der_type_encoder_f SignalGroupID_encode_der; +xer_type_decoder_f SignalGroupID_decode_xer; +xer_type_encoder_f SignalGroupID_encode_xer; +oer_type_decoder_f SignalGroupID_decode_oer; +oer_type_encoder_f SignalGroupID_encode_oer; +per_type_decoder_f SignalGroupID_decode_uper; +per_type_encoder_f SignalGroupID_encode_uper; +per_type_decoder_f SignalGroupID_decode_aper; +per_type_encoder_f SignalGroupID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalGroupID_H_ */ +#include diff --git a/vcits/ssem/SignalHeadLocation.h b/vcits/ssem/SignalHeadLocation.h new file mode 100644 index 0000000..5290bd5 --- /dev/null +++ b/vcits/ssem/SignalHeadLocation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalHeadLocation_H_ +#define _SignalHeadLocation_H_ + + +#include + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include "DeltaAltitude.h" +#include "SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalHeadLocation */ +typedef struct SignalHeadLocation { + NodeOffsetPointXY_t nodeXY; + DeltaAltitude_t nodeZ; + SignalGroupID_t signalGroupID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocation_H_ */ +#include diff --git a/vcits/ssem/SignalHeadLocationList.h b/vcits/ssem/SignalHeadLocationList.h new file mode 100644 index 0000000..855de7d --- /dev/null +++ b/vcits/ssem/SignalHeadLocationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalHeadLocationList_H_ +#define _SignalHeadLocationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocation; + +/* SignalHeadLocationList */ +typedef struct SignalHeadLocationList { + A_SEQUENCE_OF(struct SignalHeadLocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList; +extern asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocationList_H_ */ +#include diff --git a/vcits/ssem/SignalRequest.h b/vcits/ssem/SignalRequest.h new file mode 100644 index 0000000..de07351 --- /dev/null +++ b/vcits/ssem/SignalRequest.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalRequest_H_ +#define _SignalRequest_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionReferenceID.h" +#include "RequestID.h" +#include "PriorityRequestType.h" +#include "IntersectionAccessPoint.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionAccessPoint; +struct Reg_SignalRequest; + +/* SignalRequest */ +typedef struct SignalRequest { + IntersectionReferenceID_t id; + RequestID_t requestID; + PriorityRequestType_t requestType; + IntersectionAccessPoint_t inBoundLane; + struct IntersectionAccessPoint *outBoundLane; /* OPTIONAL */ + struct SignalRequest__regional { + A_SEQUENCE_OF(struct Reg_SignalRequest) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequest_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequest_H_ */ +#include diff --git a/vcits/ssem/SignalRequestList.h b/vcits/ssem/SignalRequestList.h new file mode 100644 index 0000000..7284f58 --- /dev/null +++ b/vcits/ssem/SignalRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalRequestList_H_ +#define _SignalRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestPackage; + +/* SignalRequestList */ +typedef struct SignalRequestList { + A_SEQUENCE_OF(struct SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestList; +extern asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestList_H_ */ +#include diff --git a/vcits/ssem/SignalRequestMessage.h b/vcits/ssem/SignalRequestMessage.h new file mode 100644 index 0000000..94121c4 --- /dev/null +++ b/vcits/ssem/SignalRequestMessage.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalRequestMessage_H_ +#define _SignalRequestMessage_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MsgCount.h" +#include "RequestorDescription.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestList; +struct Reg_SignalRequestMessage; + +/* SignalRequestMessage */ +typedef struct SignalRequestMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + MsgCount_t *sequenceNumber; /* OPTIONAL */ + struct SignalRequestList *requests; /* OPTIONAL */ + RequestorDescription_t requestor; + struct SignalRequestMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestMessage_H_ */ +#include diff --git a/vcits/ssem/SignalRequestPackage.h b/vcits/ssem/SignalRequestPackage.h new file mode 100644 index 0000000..c4d4d48 --- /dev/null +++ b/vcits/ssem/SignalRequestPackage.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalRequestPackage_H_ +#define _SignalRequestPackage_H_ + + +#include + +/* Including external dependencies */ +#include "SignalRequest.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalRequestPackage; + +/* SignalRequestPackage */ +typedef struct SignalRequestPackage { + SignalRequest_t request; + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + struct SignalRequestPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestPackage_H_ */ +#include diff --git a/vcits/ssem/SignalRequesterInfo.h b/vcits/ssem/SignalRequesterInfo.h new file mode 100644 index 0000000..481d0e9 --- /dev/null +++ b/vcits/ssem/SignalRequesterInfo.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalRequesterInfo_H_ +#define _SignalRequesterInfo_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleID.h" +#include "RequestID.h" +#include "MsgCount.h" +#include "BasicVehicleRole.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; + +/* SignalRequesterInfo */ +typedef struct SignalRequesterInfo { + VehicleID_t id; + RequestID_t request; + MsgCount_t sequenceNumber; + BasicVehicleRole_t *role; /* OPTIONAL */ + struct RequestorType *typeData; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequesterInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequesterInfo_H_ */ +#include diff --git a/vcits/ssem/SignalStatus.h b/vcits/ssem/SignalStatus.h new file mode 100644 index 0000000..7759a30 --- /dev/null +++ b/vcits/ssem/SignalStatus.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalStatus_H_ +#define _SignalStatus_H_ + + +#include + +/* Including external dependencies */ +#include "MsgCount.h" +#include "IntersectionReferenceID.h" +#include "SignalStatusPackageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatus; + +/* SignalStatus */ +typedef struct SignalStatus { + MsgCount_t sequenceNumber; + IntersectionReferenceID_t id; + SignalStatusPackageList_t sigStatus; + struct SignalStatus__regional { + A_SEQUENCE_OF(struct Reg_SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatus_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatus_H_ */ +#include diff --git a/vcits/ssem/SignalStatusList.h b/vcits/ssem/SignalStatusList.h new file mode 100644 index 0000000..9063433 --- /dev/null +++ b/vcits/ssem/SignalStatusList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalStatusList_H_ +#define _SignalStatusList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatus; + +/* SignalStatusList */ +typedef struct SignalStatusList { + A_SEQUENCE_OF(struct SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusList_H_ */ +#include diff --git a/vcits/ssem/SignalStatusMessage.h b/vcits/ssem/SignalStatusMessage.h new file mode 100644 index 0000000..b59c601 --- /dev/null +++ b/vcits/ssem/SignalStatusMessage.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalStatusMessage_H_ +#define _SignalStatusMessage_H_ + + +#include + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MsgCount.h" +#include "SignalStatusList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatusMessage; + +/* SignalStatusMessage */ +typedef struct SignalStatusMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + MsgCount_t *sequenceNumber; /* OPTIONAL */ + SignalStatusList_t status; + struct SignalStatusMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusMessage_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusMessage_H_ */ +#include diff --git a/vcits/ssem/SignalStatusPackage-addGrpC.h b/vcits/ssem/SignalStatusPackage-addGrpC.h new file mode 100644 index 0000000..167cd1d --- /dev/null +++ b/vcits/ssem/SignalStatusPackage-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalStatusPackage_addGrpC_H_ +#define _SignalStatusPackage_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "DeltaTime.h" +#include "RejectedReason.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalStatusPackage-addGrpC */ +typedef struct SignalStatusPackage_addGrpC { + DeltaTime_t *synchToSchedule; /* OPTIONAL */ + RejectedReason_t *rejectedReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_addGrpC_H_ */ +#include diff --git a/vcits/ssem/SignalStatusPackage.h b/vcits/ssem/SignalStatusPackage.h new file mode 100644 index 0000000..507b0f0 --- /dev/null +++ b/vcits/ssem/SignalStatusPackage.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalStatusPackage_H_ +#define _SignalStatusPackage_H_ + + +#include + +/* Including external dependencies */ +#include "IntersectionAccessPoint.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "PrioritizationResponseStatus.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequesterInfo; +struct IntersectionAccessPoint; +struct Reg_SignalStatusPackage; + +/* SignalStatusPackage */ +typedef struct SignalStatusPackage { + struct SignalRequesterInfo *requester; /* OPTIONAL */ + IntersectionAccessPoint_t inboundOn; + struct IntersectionAccessPoint *outboundOn; /* OPTIONAL */ + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + PrioritizationResponseStatus_t status; + struct SignalStatusPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_H_ */ +#include diff --git a/vcits/ssem/SignalStatusPackageList.h b/vcits/ssem/SignalStatusPackageList.h new file mode 100644 index 0000000..16152fd --- /dev/null +++ b/vcits/ssem/SignalStatusPackageList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalStatusPackageList_H_ +#define _SignalStatusPackageList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatusPackage; + +/* SignalStatusPackageList */ +typedef struct SignalStatusPackageList { + A_SEQUENCE_OF(struct SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackageList_H_ */ +#include diff --git a/vcits/ssem/SignalViolationSubCauseCode.h b/vcits/ssem/SignalViolationSubCauseCode.h new file mode 100644 index 0000000..5813889 --- /dev/null +++ b/vcits/ssem/SignalViolationSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SignalViolationSubCauseCode_H_ +#define _SignalViolationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SignalViolationSubCauseCode { + SignalViolationSubCauseCode_unavailable = 0, + SignalViolationSubCauseCode_stopSignViolation = 1, + SignalViolationSubCauseCode_trafficLightViolation = 2, + SignalViolationSubCauseCode_turningRegulationViolation = 3 +} e_SignalViolationSubCauseCode; + +/* SignalViolationSubCauseCode */ +typedef long SignalViolationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode; +asn_struct_free_f SignalViolationSubCauseCode_free; +asn_struct_print_f SignalViolationSubCauseCode_print; +asn_constr_check_f SignalViolationSubCauseCode_constraint; +ber_type_decoder_f SignalViolationSubCauseCode_decode_ber; +der_type_encoder_f SignalViolationSubCauseCode_encode_der; +xer_type_decoder_f SignalViolationSubCauseCode_decode_xer; +xer_type_encoder_f SignalViolationSubCauseCode_encode_xer; +oer_type_decoder_f SignalViolationSubCauseCode_decode_oer; +oer_type_encoder_f SignalViolationSubCauseCode_encode_oer; +per_type_decoder_f SignalViolationSubCauseCode_decode_uper; +per_type_encoder_f SignalViolationSubCauseCode_encode_uper; +per_type_decoder_f SignalViolationSubCauseCode_decode_aper; +per_type_encoder_f SignalViolationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalViolationSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/SlowVehicleSubCauseCode.h b/vcits/ssem/SlowVehicleSubCauseCode.h new file mode 100644 index 0000000..60b64b6 --- /dev/null +++ b/vcits/ssem/SlowVehicleSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SlowVehicleSubCauseCode_H_ +#define _SlowVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SlowVehicleSubCauseCode { + SlowVehicleSubCauseCode_unavailable = 0, + SlowVehicleSubCauseCode_maintenanceVehicle = 1, + SlowVehicleSubCauseCode_vehiclesSlowingToLookAtAccident = 2, + SlowVehicleSubCauseCode_abnormalLoad = 3, + SlowVehicleSubCauseCode_abnormalWideLoad = 4, + SlowVehicleSubCauseCode_convoy = 5, + SlowVehicleSubCauseCode_snowplough = 6, + SlowVehicleSubCauseCode_deicing = 7, + SlowVehicleSubCauseCode_saltingVehicles = 8 +} e_SlowVehicleSubCauseCode; + +/* SlowVehicleSubCauseCode */ +typedef long SlowVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode; +asn_struct_free_f SlowVehicleSubCauseCode_free; +asn_struct_print_f SlowVehicleSubCauseCode_print; +asn_constr_check_f SlowVehicleSubCauseCode_constraint; +ber_type_decoder_f SlowVehicleSubCauseCode_decode_ber; +der_type_encoder_f SlowVehicleSubCauseCode_encode_der; +xer_type_decoder_f SlowVehicleSubCauseCode_decode_xer; +xer_type_encoder_f SlowVehicleSubCauseCode_encode_xer; +oer_type_decoder_f SlowVehicleSubCauseCode_decode_oer; +oer_type_encoder_f SlowVehicleSubCauseCode_encode_oer; +per_type_decoder_f SlowVehicleSubCauseCode_decode_uper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_uper; +per_type_decoder_f SlowVehicleSubCauseCode_decode_aper; +per_type_encoder_f SlowVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SlowVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/SpecialTransportType.h b/vcits/ssem/SpecialTransportType.h new file mode 100644 index 0000000..529b28d --- /dev/null +++ b/vcits/ssem/SpecialTransportType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SpecialTransportType_H_ +#define _SpecialTransportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpecialTransportType { + SpecialTransportType_heavyLoad = 0, + SpecialTransportType_excessWidth = 1, + SpecialTransportType_excessLength = 2, + SpecialTransportType_excessHeight = 3 +} e_SpecialTransportType; + +/* SpecialTransportType */ +typedef BIT_STRING_t SpecialTransportType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpecialTransportType; +asn_struct_free_f SpecialTransportType_free; +asn_struct_print_f SpecialTransportType_print; +asn_constr_check_f SpecialTransportType_constraint; +ber_type_decoder_f SpecialTransportType_decode_ber; +der_type_encoder_f SpecialTransportType_encode_der; +xer_type_decoder_f SpecialTransportType_decode_xer; +xer_type_encoder_f SpecialTransportType_encode_xer; +oer_type_decoder_f SpecialTransportType_decode_oer; +oer_type_encoder_f SpecialTransportType_encode_oer; +per_type_decoder_f SpecialTransportType_decode_uper; +per_type_encoder_f SpecialTransportType_encode_uper; +per_type_decoder_f SpecialTransportType_decode_aper; +per_type_encoder_f SpecialTransportType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpecialTransportType_H_ */ +#include diff --git a/vcits/ssem/Speed.h b/vcits/ssem/Speed.h new file mode 100644 index 0000000..c5cc3a6 --- /dev/null +++ b/vcits/ssem/Speed.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Speed_H_ +#define _Speed_H_ + + +#include + +/* Including external dependencies */ +#include "SpeedValue.h" +#include "SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Speed */ +typedef struct Speed { + SpeedValue_t speedValue; + SpeedConfidence_t speedConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Speed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Speed; + +#ifdef __cplusplus +} +#endif + +#endif /* _Speed_H_ */ +#include diff --git a/vcits/ssem/SpeedAdvice.h b/vcits/ssem/SpeedAdvice.h new file mode 100644 index 0000000..82f653a --- /dev/null +++ b/vcits/ssem/SpeedAdvice.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SpeedAdvice_H_ +#define _SpeedAdvice_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedAdvice */ +typedef long SpeedAdvice_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedAdvice; +asn_struct_free_f SpeedAdvice_free; +asn_struct_print_f SpeedAdvice_print; +asn_constr_check_f SpeedAdvice_constraint; +ber_type_decoder_f SpeedAdvice_decode_ber; +der_type_encoder_f SpeedAdvice_encode_der; +xer_type_decoder_f SpeedAdvice_decode_xer; +xer_type_encoder_f SpeedAdvice_encode_xer; +oer_type_decoder_f SpeedAdvice_decode_oer; +oer_type_encoder_f SpeedAdvice_encode_oer; +per_type_decoder_f SpeedAdvice_decode_uper; +per_type_encoder_f SpeedAdvice_encode_uper; +per_type_decoder_f SpeedAdvice_decode_aper; +per_type_encoder_f SpeedAdvice_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedAdvice_H_ */ +#include diff --git a/vcits/ssem/SpeedConfidence.h b/vcits/ssem/SpeedConfidence.h new file mode 100644 index 0000000..000b61a --- /dev/null +++ b/vcits/ssem/SpeedConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SpeedConfidence_H_ +#define _SpeedConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidence { + SpeedConfidence_equalOrWithinOneCentimeterPerSec = 1, + SpeedConfidence_equalOrWithinOneMeterPerSec = 100, + SpeedConfidence_outOfRange = 126, + SpeedConfidence_unavailable = 127 +} e_SpeedConfidence; + +/* SpeedConfidence */ +typedef long SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidence; +asn_struct_free_f SpeedConfidence_free; +asn_struct_print_f SpeedConfidence_print; +asn_constr_check_f SpeedConfidence_constraint; +ber_type_decoder_f SpeedConfidence_decode_ber; +der_type_encoder_f SpeedConfidence_encode_der; +xer_type_decoder_f SpeedConfidence_decode_xer; +xer_type_encoder_f SpeedConfidence_encode_xer; +oer_type_decoder_f SpeedConfidence_decode_oer; +oer_type_encoder_f SpeedConfidence_encode_oer; +per_type_decoder_f SpeedConfidence_decode_uper; +per_type_encoder_f SpeedConfidence_encode_uper; +per_type_decoder_f SpeedConfidence_decode_aper; +per_type_encoder_f SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidence_H_ */ +#include diff --git a/vcits/ssem/SpeedConfidenceDSRC.h b/vcits/ssem/SpeedConfidenceDSRC.h new file mode 100644 index 0000000..8ce3fb4 --- /dev/null +++ b/vcits/ssem/SpeedConfidenceDSRC.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SpeedConfidenceDSRC_H_ +#define _SpeedConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidenceDSRC { + SpeedConfidenceDSRC_unavailable = 0, + SpeedConfidenceDSRC_prec100ms = 1, + SpeedConfidenceDSRC_prec10ms = 2, + SpeedConfidenceDSRC_prec5ms = 3, + SpeedConfidenceDSRC_prec1ms = 4, + SpeedConfidenceDSRC_prec0_1ms = 5, + SpeedConfidenceDSRC_prec0_05ms = 6, + SpeedConfidenceDSRC_prec0_01ms = 7 +} e_SpeedConfidenceDSRC; + +/* SpeedConfidenceDSRC */ +typedef long SpeedConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedConfidenceDSRC_specs_1; +asn_struct_free_f SpeedConfidenceDSRC_free; +asn_struct_print_f SpeedConfidenceDSRC_print; +asn_constr_check_f SpeedConfidenceDSRC_constraint; +ber_type_decoder_f SpeedConfidenceDSRC_decode_ber; +der_type_encoder_f SpeedConfidenceDSRC_encode_der; +xer_type_decoder_f SpeedConfidenceDSRC_decode_xer; +xer_type_encoder_f SpeedConfidenceDSRC_encode_xer; +oer_type_decoder_f SpeedConfidenceDSRC_decode_oer; +oer_type_encoder_f SpeedConfidenceDSRC_encode_oer; +per_type_decoder_f SpeedConfidenceDSRC_decode_uper; +per_type_encoder_f SpeedConfidenceDSRC_encode_uper; +per_type_decoder_f SpeedConfidenceDSRC_decode_aper; +per_type_encoder_f SpeedConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidenceDSRC_H_ */ +#include diff --git a/vcits/ssem/SpeedLimit.h b/vcits/ssem/SpeedLimit.h new file mode 100644 index 0000000..23a7ee5 --- /dev/null +++ b/vcits/ssem/SpeedLimit.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SpeedLimit_H_ +#define _SpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimit { + SpeedLimit_oneKmPerHour = 1 +} e_SpeedLimit; + +/* SpeedLimit */ +typedef long SpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimit; +asn_struct_free_f SpeedLimit_free; +asn_struct_print_f SpeedLimit_print; +asn_constr_check_f SpeedLimit_constraint; +ber_type_decoder_f SpeedLimit_decode_ber; +der_type_encoder_f SpeedLimit_encode_der; +xer_type_decoder_f SpeedLimit_decode_xer; +xer_type_encoder_f SpeedLimit_encode_xer; +oer_type_decoder_f SpeedLimit_decode_oer; +oer_type_encoder_f SpeedLimit_encode_oer; +per_type_decoder_f SpeedLimit_decode_uper; +per_type_encoder_f SpeedLimit_encode_uper; +per_type_decoder_f SpeedLimit_decode_aper; +per_type_encoder_f SpeedLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimit_H_ */ +#include diff --git a/vcits/ssem/SpeedLimitList.h b/vcits/ssem/SpeedLimitList.h new file mode 100644 index 0000000..12fb827 --- /dev/null +++ b/vcits/ssem/SpeedLimitList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SpeedLimitList_H_ +#define _SpeedLimitList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RegulatorySpeedLimit; + +/* SpeedLimitList */ +typedef struct SpeedLimitList { + A_SEQUENCE_OF(struct RegulatorySpeedLimit) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedLimitList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitList; +extern asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedLimitList_1[1]; +extern asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitList_H_ */ +#include diff --git a/vcits/ssem/SpeedLimitType.h b/vcits/ssem/SpeedLimitType.h new file mode 100644 index 0000000..f7fff69 --- /dev/null +++ b/vcits/ssem/SpeedLimitType.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SpeedLimitType_H_ +#define _SpeedLimitType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimitType { + SpeedLimitType_unknown = 0, + SpeedLimitType_maxSpeedInSchoolZone = 1, + SpeedLimitType_maxSpeedInSchoolZoneWhenChildrenArePresent = 2, + SpeedLimitType_maxSpeedInConstructionZone = 3, + SpeedLimitType_vehicleMinSpeed = 4, + SpeedLimitType_vehicleMaxSpeed = 5, + SpeedLimitType_vehicleNightMaxSpeed = 6, + SpeedLimitType_truckMinSpeed = 7, + SpeedLimitType_truckMaxSpeed = 8, + SpeedLimitType_truckNightMaxSpeed = 9, + SpeedLimitType_vehiclesWithTrailersMinSpeed = 10, + SpeedLimitType_vehiclesWithTrailersMaxSpeed = 11, + SpeedLimitType_vehiclesWithTrailersNightMaxSpeed = 12 + /* + * Enumeration is extensible + */ +} e_SpeedLimitType; + +/* SpeedLimitType */ +typedef long SpeedLimitType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitType; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1; +asn_struct_free_f SpeedLimitType_free; +asn_struct_print_f SpeedLimitType_print; +asn_constr_check_f SpeedLimitType_constraint; +ber_type_decoder_f SpeedLimitType_decode_ber; +der_type_encoder_f SpeedLimitType_encode_der; +xer_type_decoder_f SpeedLimitType_decode_xer; +xer_type_encoder_f SpeedLimitType_encode_xer; +oer_type_decoder_f SpeedLimitType_decode_oer; +oer_type_encoder_f SpeedLimitType_encode_oer; +per_type_decoder_f SpeedLimitType_decode_uper; +per_type_encoder_f SpeedLimitType_encode_uper; +per_type_decoder_f SpeedLimitType_decode_aper; +per_type_encoder_f SpeedLimitType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitType_H_ */ +#include diff --git a/vcits/ssem/SpeedValue.h b/vcits/ssem/SpeedValue.h new file mode 100644 index 0000000..4cd86ac --- /dev/null +++ b/vcits/ssem/SpeedValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SpeedValue_H_ +#define _SpeedValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedValue { + SpeedValue_standstill = 0, + SpeedValue_oneCentimeterPerSec = 1, + SpeedValue_unavailable = 16383 +} e_SpeedValue; + +/* SpeedValue */ +typedef long SpeedValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedValue; +asn_struct_free_f SpeedValue_free; +asn_struct_print_f SpeedValue_print; +asn_constr_check_f SpeedValue_constraint; +ber_type_decoder_f SpeedValue_decode_ber; +der_type_encoder_f SpeedValue_encode_der; +xer_type_decoder_f SpeedValue_decode_xer; +xer_type_encoder_f SpeedValue_encode_xer; +oer_type_decoder_f SpeedValue_decode_oer; +oer_type_encoder_f SpeedValue_encode_oer; +per_type_decoder_f SpeedValue_decode_uper; +per_type_encoder_f SpeedValue_encode_uper; +per_type_decoder_f SpeedValue_decode_aper; +per_type_encoder_f SpeedValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedValue_H_ */ +#include diff --git a/vcits/ssem/SpeedandHeadingandThrottleConfidence.h b/vcits/ssem/SpeedandHeadingandThrottleConfidence.h new file mode 100644 index 0000000..55089c0 --- /dev/null +++ b/vcits/ssem/SpeedandHeadingandThrottleConfidence.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SpeedandHeadingandThrottleConfidence_H_ +#define _SpeedandHeadingandThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "HeadingConfidenceDSRC.h" +#include "SpeedConfidenceDSRC.h" +#include "ThrottleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedandHeadingandThrottleConfidence */ +typedef struct SpeedandHeadingandThrottleConfidence { + HeadingConfidenceDSRC_t heading; + SpeedConfidenceDSRC_t speed; + ThrottleConfidence_t throttle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedandHeadingandThrottleConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedandHeadingandThrottleConfidence_H_ */ +#include diff --git a/vcits/ssem/StartTime.h b/vcits/ssem/StartTime.h new file mode 100644 index 0000000..864a200 --- /dev/null +++ b/vcits/ssem/StartTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _StartTime_H_ +#define _StartTime_H_ + + +#include + +/* Including external dependencies */ +#include "AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* StartTime */ +typedef AviEriDateTime_t StartTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StartTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StartTime; +asn_struct_free_f StartTime_free; +asn_struct_print_f StartTime_print; +asn_constr_check_f StartTime_constraint; +ber_type_decoder_f StartTime_decode_ber; +der_type_encoder_f StartTime_encode_der; +xer_type_decoder_f StartTime_decode_xer; +xer_type_encoder_f StartTime_encode_xer; +oer_type_decoder_f StartTime_decode_oer; +oer_type_encoder_f StartTime_encode_oer; +per_type_decoder_f StartTime_decode_uper; +per_type_encoder_f StartTime_encode_uper; +per_type_decoder_f StartTime_decode_aper; +per_type_encoder_f StartTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StartTime_H_ */ +#include diff --git a/vcits/ssem/StationID.h b/vcits/ssem/StationID.h new file mode 100644 index 0000000..4567917 --- /dev/null +++ b/vcits/ssem/StationID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _StationID_H_ +#define _StationID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* StationID */ +typedef unsigned long StationID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationID; +extern const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1; +asn_struct_free_f StationID_free; +asn_struct_print_f StationID_print; +asn_constr_check_f StationID_constraint; +ber_type_decoder_f StationID_decode_ber; +der_type_encoder_f StationID_encode_der; +xer_type_decoder_f StationID_decode_xer; +xer_type_encoder_f StationID_encode_xer; +oer_type_decoder_f StationID_decode_oer; +oer_type_encoder_f StationID_encode_oer; +per_type_decoder_f StationID_decode_uper; +per_type_encoder_f StationID_encode_uper; +per_type_decoder_f StationID_decode_aper; +per_type_encoder_f StationID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationID_H_ */ +#include diff --git a/vcits/ssem/StationType.h b/vcits/ssem/StationType.h new file mode 100644 index 0000000..cecb9c6 --- /dev/null +++ b/vcits/ssem/StationType.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _StationType_H_ +#define _StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationType { + StationType_unknown = 0, + StationType_pedestrian = 1, + StationType_cyclist = 2, + StationType_moped = 3, + StationType_motorcycle = 4, + StationType_passengerCar = 5, + StationType_bus = 6, + StationType_lightTruck = 7, + StationType_heavyTruck = 8, + StationType_trailer = 9, + StationType_specialVehicles = 10, + StationType_tram = 11, + StationType_roadSideUnit = 15 +} e_StationType; + +/* StationType */ +typedef long StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationType; +asn_struct_free_f StationType_free; +asn_struct_print_f StationType_print; +asn_constr_check_f StationType_constraint; +ber_type_decoder_f StationType_decode_ber; +der_type_encoder_f StationType_encode_der; +xer_type_decoder_f StationType_decode_xer; +xer_type_encoder_f StationType_encode_xer; +oer_type_decoder_f StationType_decode_oer; +oer_type_encoder_f StationType_encode_oer; +per_type_decoder_f StationType_decode_uper; +per_type_encoder_f StationType_encode_uper; +per_type_decoder_f StationType_decode_aper; +per_type_encoder_f StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationType_H_ */ +#include diff --git a/vcits/ssem/StationarySince.h b/vcits/ssem/StationarySince.h new file mode 100644 index 0000000..76c3f3c --- /dev/null +++ b/vcits/ssem/StationarySince.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _StationarySince_H_ +#define _StationarySince_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationarySince { + StationarySince_lessThan1Minute = 0, + StationarySince_lessThan2Minutes = 1, + StationarySince_lessThan15Minutes = 2, + StationarySince_equalOrGreater15Minutes = 3 +} e_StationarySince; + +/* StationarySince */ +typedef long StationarySince_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationarySince; +asn_struct_free_f StationarySince_free; +asn_struct_print_f StationarySince_print; +asn_constr_check_f StationarySince_constraint; +ber_type_decoder_f StationarySince_decode_ber; +der_type_encoder_f StationarySince_encode_der; +xer_type_decoder_f StationarySince_decode_xer; +xer_type_encoder_f StationarySince_encode_xer; +oer_type_decoder_f StationarySince_decode_oer; +oer_type_encoder_f StationarySince_encode_oer; +per_type_decoder_f StationarySince_decode_uper; +per_type_encoder_f StationarySince_encode_uper; +per_type_decoder_f StationarySince_decode_aper; +per_type_encoder_f StationarySince_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationarySince_H_ */ +#include diff --git a/vcits/ssem/StationaryVehicleSubCauseCode.h b/vcits/ssem/StationaryVehicleSubCauseCode.h new file mode 100644 index 0000000..af20e46 --- /dev/null +++ b/vcits/ssem/StationaryVehicleSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _StationaryVehicleSubCauseCode_H_ +#define _StationaryVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StationaryVehicleSubCauseCode { + StationaryVehicleSubCauseCode_unavailable = 0, + StationaryVehicleSubCauseCode_humanProblem = 1, + StationaryVehicleSubCauseCode_vehicleBreakdown = 2, + StationaryVehicleSubCauseCode_postCrash = 3, + StationaryVehicleSubCauseCode_publicTransportStop = 4, + StationaryVehicleSubCauseCode_carryingDangerousGoods = 5 +} e_StationaryVehicleSubCauseCode; + +/* StationaryVehicleSubCauseCode */ +typedef long StationaryVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode; +asn_struct_free_f StationaryVehicleSubCauseCode_free; +asn_struct_print_f StationaryVehicleSubCauseCode_print; +asn_constr_check_f StationaryVehicleSubCauseCode_constraint; +ber_type_decoder_f StationaryVehicleSubCauseCode_decode_ber; +der_type_encoder_f StationaryVehicleSubCauseCode_encode_der; +xer_type_decoder_f StationaryVehicleSubCauseCode_decode_xer; +xer_type_encoder_f StationaryVehicleSubCauseCode_encode_xer; +oer_type_decoder_f StationaryVehicleSubCauseCode_decode_oer; +oer_type_encoder_f StationaryVehicleSubCauseCode_encode_oer; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_uper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_uper; +per_type_decoder_f StationaryVehicleSubCauseCode_decode_aper; +per_type_encoder_f StationaryVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationaryVehicleSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/SteeringWheelAngle.h b/vcits/ssem/SteeringWheelAngle.h new file mode 100644 index 0000000..72d7fae --- /dev/null +++ b/vcits/ssem/SteeringWheelAngle.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SteeringWheelAngle_H_ +#define _SteeringWheelAngle_H_ + + +#include + +/* Including external dependencies */ +#include "SteeringWheelAngleValue.h" +#include "SteeringWheelAngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SteeringWheelAngle */ +typedef struct SteeringWheelAngle { + SteeringWheelAngleValue_t steeringWheelAngleValue; + SteeringWheelAngleConfidence_t steeringWheelAngleConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SteeringWheelAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngle_H_ */ +#include diff --git a/vcits/ssem/SteeringWheelAngleConfidence.h b/vcits/ssem/SteeringWheelAngleConfidence.h new file mode 100644 index 0000000..c7487f2 --- /dev/null +++ b/vcits/ssem/SteeringWheelAngleConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SteeringWheelAngleConfidence_H_ +#define _SteeringWheelAngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleConfidence { + SteeringWheelAngleConfidence_equalOrWithinOnePointFiveDegree = 1, + SteeringWheelAngleConfidence_outOfRange = 126, + SteeringWheelAngleConfidence_unavailable = 127 +} e_SteeringWheelAngleConfidence; + +/* SteeringWheelAngleConfidence */ +typedef long SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence; +asn_struct_free_f SteeringWheelAngleConfidence_free; +asn_struct_print_f SteeringWheelAngleConfidence_print; +asn_constr_check_f SteeringWheelAngleConfidence_constraint; +ber_type_decoder_f SteeringWheelAngleConfidence_decode_ber; +der_type_encoder_f SteeringWheelAngleConfidence_encode_der; +xer_type_decoder_f SteeringWheelAngleConfidence_decode_xer; +xer_type_encoder_f SteeringWheelAngleConfidence_encode_xer; +oer_type_decoder_f SteeringWheelAngleConfidence_decode_oer; +oer_type_encoder_f SteeringWheelAngleConfidence_encode_oer; +per_type_decoder_f SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleConfidence_H_ */ +#include diff --git a/vcits/ssem/SteeringWheelAngleValue.h b/vcits/ssem/SteeringWheelAngleValue.h new file mode 100644 index 0000000..5be96f9 --- /dev/null +++ b/vcits/ssem/SteeringWheelAngleValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SteeringWheelAngleValue_H_ +#define _SteeringWheelAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleValue { + SteeringWheelAngleValue_straight = 0, + SteeringWheelAngleValue_onePointFiveDegreesToRight = -1, + SteeringWheelAngleValue_onePointFiveDegreesToLeft = 1, + SteeringWheelAngleValue_unavailable = 512 +} e_SteeringWheelAngleValue; + +/* SteeringWheelAngleValue */ +typedef long SteeringWheelAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue; +asn_struct_free_f SteeringWheelAngleValue_free; +asn_struct_print_f SteeringWheelAngleValue_print; +asn_constr_check_f SteeringWheelAngleValue_constraint; +ber_type_decoder_f SteeringWheelAngleValue_decode_ber; +der_type_encoder_f SteeringWheelAngleValue_encode_der; +xer_type_decoder_f SteeringWheelAngleValue_decode_xer; +xer_type_encoder_f SteeringWheelAngleValue_encode_xer; +oer_type_decoder_f SteeringWheelAngleValue_decode_oer; +oer_type_encoder_f SteeringWheelAngleValue_encode_oer; +per_type_decoder_f SteeringWheelAngleValue_decode_uper; +per_type_encoder_f SteeringWheelAngleValue_encode_uper; +per_type_decoder_f SteeringWheelAngleValue_decode_aper; +per_type_encoder_f SteeringWheelAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleValue_H_ */ +#include diff --git a/vcits/ssem/StopTime.h b/vcits/ssem/StopTime.h new file mode 100644 index 0000000..92ea9cf --- /dev/null +++ b/vcits/ssem/StopTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _StopTime_H_ +#define _StopTime_H_ + + +#include + +/* Including external dependencies */ +#include "AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* StopTime */ +typedef AviEriDateTime_t StopTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StopTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StopTime; +asn_struct_free_f StopTime_free; +asn_struct_print_f StopTime_print; +asn_constr_check_f StopTime_constraint; +ber_type_decoder_f StopTime_decode_ber; +der_type_encoder_f StopTime_encode_der; +xer_type_decoder_f StopTime_decode_xer; +xer_type_encoder_f StopTime_encode_xer; +oer_type_decoder_f StopTime_decode_oer; +oer_type_encoder_f StopTime_encode_oer; +per_type_decoder_f StopTime_decode_uper; +per_type_encoder_f StopTime_encode_uper; +per_type_decoder_f StopTime_decode_aper; +per_type_encoder_f StopTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StopTime_H_ */ +#include diff --git a/vcits/ssem/SubCauseCodeType.h b/vcits/ssem/SubCauseCodeType.h new file mode 100644 index 0000000..d127f1c --- /dev/null +++ b/vcits/ssem/SubCauseCodeType.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _SubCauseCodeType_H_ +#define _SubCauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SubCauseCodeType */ +typedef long SubCauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType; +asn_struct_free_f SubCauseCodeType_free; +asn_struct_print_f SubCauseCodeType_print; +asn_constr_check_f SubCauseCodeType_constraint; +ber_type_decoder_f SubCauseCodeType_decode_ber; +der_type_encoder_f SubCauseCodeType_encode_der; +xer_type_decoder_f SubCauseCodeType_decode_xer; +xer_type_encoder_f SubCauseCodeType_encode_xer; +oer_type_decoder_f SubCauseCodeType_decode_oer; +oer_type_encoder_f SubCauseCodeType_encode_oer; +per_type_decoder_f SubCauseCodeType_decode_uper; +per_type_encoder_f SubCauseCodeType_encode_uper; +per_type_decoder_f SubCauseCodeType_decode_aper; +per_type_encoder_f SubCauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SubCauseCodeType_H_ */ +#include diff --git a/vcits/ssem/TaxCode.h b/vcits/ssem/TaxCode.h new file mode 100644 index 0000000..1fd508b --- /dev/null +++ b/vcits/ssem/TaxCode.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TaxCode_H_ +#define _TaxCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TaxCode */ +typedef OCTET_STRING_t TaxCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TaxCode; +asn_struct_free_f TaxCode_free; +asn_struct_print_f TaxCode_print; +asn_constr_check_f TaxCode_constraint; +ber_type_decoder_f TaxCode_decode_ber; +der_type_encoder_f TaxCode_encode_der; +xer_type_decoder_f TaxCode_decode_xer; +xer_type_encoder_f TaxCode_encode_xer; +oer_type_decoder_f TaxCode_decode_oer; +oer_type_encoder_f TaxCode_encode_oer; +per_type_decoder_f TaxCode_decode_uper; +per_type_encoder_f TaxCode_encode_uper; +per_type_decoder_f TaxCode_decode_aper; +per_type_encoder_f TaxCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TaxCode_H_ */ +#include diff --git a/vcits/ssem/Temperature.h b/vcits/ssem/Temperature.h new file mode 100644 index 0000000..27b07ad --- /dev/null +++ b/vcits/ssem/Temperature.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Temperature_H_ +#define _Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Temperature { + Temperature_equalOrSmallerThanMinus60Deg = -60, + Temperature_oneDegreeCelsius = 1, + Temperature_equalOrGreaterThan67Deg = 67 +} e_Temperature; + +/* Temperature */ +typedef long Temperature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Temperature; +asn_struct_free_f Temperature_free; +asn_struct_print_f Temperature_print; +asn_constr_check_f Temperature_constraint; +ber_type_decoder_f Temperature_decode_ber; +der_type_encoder_f Temperature_encode_der; +xer_type_decoder_f Temperature_decode_xer; +xer_type_encoder_f Temperature_encode_xer; +oer_type_decoder_f Temperature_decode_oer; +oer_type_encoder_f Temperature_encode_oer; +per_type_decoder_f Temperature_decode_uper; +per_type_encoder_f Temperature_encode_uper; +per_type_decoder_f Temperature_decode_aper; +per_type_encoder_f Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Temperature_H_ */ +#include diff --git a/vcits/ssem/TemporaryID.h b/vcits/ssem/TemporaryID.h new file mode 100644 index 0000000..679e70f --- /dev/null +++ b/vcits/ssem/TemporaryID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TemporaryID_H_ +#define _TemporaryID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TemporaryID */ +typedef OCTET_STRING_t TemporaryID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TemporaryID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TemporaryID; +asn_struct_free_f TemporaryID_free; +asn_struct_print_f TemporaryID_print; +asn_constr_check_f TemporaryID_constraint; +ber_type_decoder_f TemporaryID_decode_ber; +der_type_encoder_f TemporaryID_encode_der; +xer_type_decoder_f TemporaryID_decode_xer; +xer_type_encoder_f TemporaryID_encode_xer; +oer_type_decoder_f TemporaryID_decode_oer; +oer_type_encoder_f TemporaryID_encode_oer; +per_type_decoder_f TemporaryID_decode_uper; +per_type_encoder_f TemporaryID_encode_uper; +per_type_decoder_f TemporaryID_decode_aper; +per_type_encoder_f TemporaryID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TemporaryID_H_ */ +#include diff --git a/vcits/ssem/ThrottleConfidence.h b/vcits/ssem/ThrottleConfidence.h new file mode 100644 index 0000000..20886d0 --- /dev/null +++ b/vcits/ssem/ThrottleConfidence.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ThrottleConfidence_H_ +#define _ThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ThrottleConfidence { + ThrottleConfidence_unavailable = 0, + ThrottleConfidence_prec10percent = 1, + ThrottleConfidence_prec1percent = 2, + ThrottleConfidence_prec0_5percent = 3 +} e_ThrottleConfidence; + +/* ThrottleConfidence */ +typedef long ThrottleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1; +asn_struct_free_f ThrottleConfidence_free; +asn_struct_print_f ThrottleConfidence_print; +asn_constr_check_f ThrottleConfidence_constraint; +ber_type_decoder_f ThrottleConfidence_decode_ber; +der_type_encoder_f ThrottleConfidence_encode_der; +xer_type_decoder_f ThrottleConfidence_decode_xer; +xer_type_encoder_f ThrottleConfidence_encode_xer; +oer_type_decoder_f ThrottleConfidence_decode_oer; +oer_type_encoder_f ThrottleConfidence_encode_oer; +per_type_decoder_f ThrottleConfidence_decode_uper; +per_type_encoder_f ThrottleConfidence_encode_uper; +per_type_decoder_f ThrottleConfidence_decode_aper; +per_type_encoder_f ThrottleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ThrottleConfidence_H_ */ +#include diff --git a/vcits/ssem/TimeChangeDetails.h b/vcits/ssem/TimeChangeDetails.h new file mode 100644 index 0000000..15aab94 --- /dev/null +++ b/vcits/ssem/TimeChangeDetails.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TimeChangeDetails_H_ +#define _TimeChangeDetails_H_ + + +#include + +/* Including external dependencies */ +#include "TimeMark.h" +#include "TimeIntervalConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeChangeDetails */ +typedef struct TimeChangeDetails { + TimeMark_t *startTime; /* OPTIONAL */ + TimeMark_t minEndTime; + TimeMark_t *maxEndTime; /* OPTIONAL */ + TimeMark_t *likelyTime; /* OPTIONAL */ + TimeIntervalConfidence_t *confidence; /* OPTIONAL */ + TimeMark_t *nextTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TimeChangeDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeChangeDetails_H_ */ +#include diff --git a/vcits/ssem/TimeConfidence.h b/vcits/ssem/TimeConfidence.h new file mode 100644 index 0000000..9fa58d6 --- /dev/null +++ b/vcits/ssem/TimeConfidence.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TimeConfidence_H_ +#define _TimeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeConfidence { + TimeConfidence_unavailable = 0, + TimeConfidence_time_100_000 = 1, + TimeConfidence_time_050_000 = 2, + TimeConfidence_time_020_000 = 3, + TimeConfidence_time_010_000 = 4, + TimeConfidence_time_002_000 = 5, + TimeConfidence_time_001_000 = 6, + TimeConfidence_time_000_500 = 7, + TimeConfidence_time_000_200 = 8, + TimeConfidence_time_000_100 = 9, + TimeConfidence_time_000_050 = 10, + TimeConfidence_time_000_020 = 11, + TimeConfidence_time_000_010 = 12, + TimeConfidence_time_000_005 = 13, + TimeConfidence_time_000_002 = 14, + TimeConfidence_time_000_001 = 15, + TimeConfidence_time_000_000_5 = 16, + TimeConfidence_time_000_000_2 = 17, + TimeConfidence_time_000_000_1 = 18, + TimeConfidence_time_000_000_05 = 19, + TimeConfidence_time_000_000_02 = 20, + TimeConfidence_time_000_000_01 = 21, + TimeConfidence_time_000_000_005 = 22, + TimeConfidence_time_000_000_002 = 23, + TimeConfidence_time_000_000_001 = 24, + TimeConfidence_time_000_000_000_5 = 25, + TimeConfidence_time_000_000_000_2 = 26, + TimeConfidence_time_000_000_000_1 = 27, + TimeConfidence_time_000_000_000_05 = 28, + TimeConfidence_time_000_000_000_02 = 29, + TimeConfidence_time_000_000_000_01 = 30, + TimeConfidence_time_000_000_000_005 = 31, + TimeConfidence_time_000_000_000_002 = 32, + TimeConfidence_time_000_000_000_001 = 33, + TimeConfidence_time_000_000_000_000_5 = 34, + TimeConfidence_time_000_000_000_000_2 = 35, + TimeConfidence_time_000_000_000_000_1 = 36, + TimeConfidence_time_000_000_000_000_05 = 37, + TimeConfidence_time_000_000_000_000_02 = 38, + TimeConfidence_time_000_000_000_000_01 = 39 +} e_TimeConfidence; + +/* TimeConfidence */ +typedef long TimeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1; +asn_struct_free_f TimeConfidence_free; +asn_struct_print_f TimeConfidence_print; +asn_constr_check_f TimeConfidence_constraint; +ber_type_decoder_f TimeConfidence_decode_ber; +der_type_encoder_f TimeConfidence_encode_der; +xer_type_decoder_f TimeConfidence_decode_xer; +xer_type_encoder_f TimeConfidence_encode_xer; +oer_type_decoder_f TimeConfidence_decode_oer; +oer_type_encoder_f TimeConfidence_encode_oer; +per_type_decoder_f TimeConfidence_decode_uper; +per_type_encoder_f TimeConfidence_encode_uper; +per_type_decoder_f TimeConfidence_decode_aper; +per_type_encoder_f TimeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeConfidence_H_ */ +#include diff --git a/vcits/ssem/TimeIntervalConfidence.h b/vcits/ssem/TimeIntervalConfidence.h new file mode 100644 index 0000000..b3e355e --- /dev/null +++ b/vcits/ssem/TimeIntervalConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TimeIntervalConfidence_H_ +#define _TimeIntervalConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeIntervalConfidence */ +typedef long TimeIntervalConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence; +asn_struct_free_f TimeIntervalConfidence_free; +asn_struct_print_f TimeIntervalConfidence_print; +asn_constr_check_f TimeIntervalConfidence_constraint; +ber_type_decoder_f TimeIntervalConfidence_decode_ber; +der_type_encoder_f TimeIntervalConfidence_encode_der; +xer_type_decoder_f TimeIntervalConfidence_decode_xer; +xer_type_encoder_f TimeIntervalConfidence_encode_xer; +oer_type_decoder_f TimeIntervalConfidence_decode_oer; +oer_type_encoder_f TimeIntervalConfidence_encode_oer; +per_type_decoder_f TimeIntervalConfidence_decode_uper; +per_type_encoder_f TimeIntervalConfidence_encode_uper; +per_type_decoder_f TimeIntervalConfidence_decode_aper; +per_type_encoder_f TimeIntervalConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeIntervalConfidence_H_ */ +#include diff --git a/vcits/ssem/TimeMark.h b/vcits/ssem/TimeMark.h new file mode 100644 index 0000000..d9127fe --- /dev/null +++ b/vcits/ssem/TimeMark.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TimeMark_H_ +#define _TimeMark_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeMark */ +typedef long TimeMark_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeMark_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeMark; +asn_struct_free_f TimeMark_free; +asn_struct_print_f TimeMark_print; +asn_constr_check_f TimeMark_constraint; +ber_type_decoder_f TimeMark_decode_ber; +der_type_encoder_f TimeMark_encode_der; +xer_type_decoder_f TimeMark_decode_xer; +xer_type_encoder_f TimeMark_encode_xer; +oer_type_decoder_f TimeMark_decode_oer; +oer_type_encoder_f TimeMark_encode_oer; +per_type_decoder_f TimeMark_decode_uper; +per_type_encoder_f TimeMark_encode_uper; +per_type_decoder_f TimeMark_decode_aper; +per_type_encoder_f TimeMark_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeMark_H_ */ +#include diff --git a/vcits/ssem/TimeReference.h b/vcits/ssem/TimeReference.h new file mode 100644 index 0000000..89d4aee --- /dev/null +++ b/vcits/ssem/TimeReference.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TimeReference_H_ +#define _TimeReference_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeReference { + TimeReference_oneMilliSec = 1 +} e_TimeReference; + +/* TimeReference */ +typedef long TimeReference_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeReference_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeReference; +asn_struct_free_f TimeReference_free; +asn_struct_print_f TimeReference_print; +asn_constr_check_f TimeReference_constraint; +ber_type_decoder_f TimeReference_decode_ber; +der_type_encoder_f TimeReference_encode_der; +xer_type_decoder_f TimeReference_decode_xer; +xer_type_encoder_f TimeReference_encode_xer; +oer_type_decoder_f TimeReference_decode_oer; +oer_type_encoder_f TimeReference_encode_oer; +per_type_decoder_f TimeReference_decode_uper; +per_type_encoder_f TimeReference_encode_uper; +per_type_decoder_f TimeReference_decode_aper; +per_type_encoder_f TimeReference_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeReference_H_ */ +#include diff --git a/vcits/ssem/TimestampIts.h b/vcits/ssem/TimestampIts.h new file mode 100644 index 0000000..a802c3b --- /dev/null +++ b/vcits/ssem/TimestampIts.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TimestampIts_H_ +#define _TimestampIts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimestampIts { + TimestampIts_utcStartOf2004 = 0, + TimestampIts_oneMillisecAfterUTCStartOf2004 = 1 +} e_TimestampIts; + +/* TimestampIts */ +typedef INTEGER_t TimestampIts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimestampIts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimestampIts; +asn_struct_free_f TimestampIts_free; +asn_struct_print_f TimestampIts_print; +asn_constr_check_f TimestampIts_constraint; +ber_type_decoder_f TimestampIts_decode_ber; +der_type_encoder_f TimestampIts_encode_der; +xer_type_decoder_f TimestampIts_decode_xer; +xer_type_encoder_f TimestampIts_encode_xer; +oer_type_decoder_f TimestampIts_decode_oer; +oer_type_encoder_f TimestampIts_encode_oer; +per_type_decoder_f TimestampIts_decode_uper; +per_type_encoder_f TimestampIts_encode_uper; +per_type_decoder_f TimestampIts_decode_aper; +per_type_encoder_f TimestampIts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimestampIts_H_ */ +#include diff --git a/vcits/ssem/Traces.h b/vcits/ssem/Traces.h new file mode 100644 index 0000000..0e97c71 --- /dev/null +++ b/vcits/ssem/Traces.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Traces_H_ +#define _Traces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathHistory; + +/* Traces */ +typedef struct Traces { + A_SEQUENCE_OF(struct PathHistory) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Traces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Traces; + +#ifdef __cplusplus +} +#endif + +#endif /* _Traces_H_ */ +#include diff --git a/vcits/ssem/TrafficConditionSubCauseCode.h b/vcits/ssem/TrafficConditionSubCauseCode.h new file mode 100644 index 0000000..a01d10a --- /dev/null +++ b/vcits/ssem/TrafficConditionSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TrafficConditionSubCauseCode_H_ +#define _TrafficConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficConditionSubCauseCode { + TrafficConditionSubCauseCode_unavailable = 0, + TrafficConditionSubCauseCode_increasedVolumeOfTraffic = 1, + TrafficConditionSubCauseCode_trafficJamSlowlyIncreasing = 2, + TrafficConditionSubCauseCode_trafficJamIncreasing = 3, + TrafficConditionSubCauseCode_trafficJamStronglyIncreasing = 4, + TrafficConditionSubCauseCode_trafficStationary = 5, + TrafficConditionSubCauseCode_trafficJamSlightlyDecreasing = 6, + TrafficConditionSubCauseCode_trafficJamDecreasing = 7, + TrafficConditionSubCauseCode_trafficJamStronglyDecreasing = 8 +} e_TrafficConditionSubCauseCode; + +/* TrafficConditionSubCauseCode */ +typedef long TrafficConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode; +asn_struct_free_f TrafficConditionSubCauseCode_free; +asn_struct_print_f TrafficConditionSubCauseCode_print; +asn_constr_check_f TrafficConditionSubCauseCode_constraint; +ber_type_decoder_f TrafficConditionSubCauseCode_decode_ber; +der_type_encoder_f TrafficConditionSubCauseCode_encode_der; +xer_type_decoder_f TrafficConditionSubCauseCode_decode_xer; +xer_type_encoder_f TrafficConditionSubCauseCode_encode_xer; +oer_type_decoder_f TrafficConditionSubCauseCode_decode_oer; +oer_type_encoder_f TrafficConditionSubCauseCode_encode_oer; +per_type_decoder_f TrafficConditionSubCauseCode_decode_uper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_uper; +per_type_decoder_f TrafficConditionSubCauseCode_decode_aper; +per_type_encoder_f TrafficConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficConditionSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/TrafficRule.h b/vcits/ssem/TrafficRule.h new file mode 100644 index 0000000..1255eca --- /dev/null +++ b/vcits/ssem/TrafficRule.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TrafficRule_H_ +#define _TrafficRule_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TrafficRule { + TrafficRule_noPassing = 0, + TrafficRule_noPassingForTrucks = 1, + TrafficRule_passToRight = 2, + TrafficRule_passToLeft = 3 + /* + * Enumeration is extensible + */ +} e_TrafficRule; + +/* TrafficRule */ +typedef long TrafficRule_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrafficRule; +asn_struct_free_f TrafficRule_free; +asn_struct_print_f TrafficRule_print; +asn_constr_check_f TrafficRule_constraint; +ber_type_decoder_f TrafficRule_decode_ber; +der_type_encoder_f TrafficRule_encode_der; +xer_type_decoder_f TrafficRule_decode_xer; +xer_type_encoder_f TrafficRule_encode_xer; +oer_type_decoder_f TrafficRule_decode_oer; +oer_type_encoder_f TrafficRule_encode_oer; +per_type_decoder_f TrafficRule_decode_uper; +per_type_encoder_f TrafficRule_encode_uper; +per_type_decoder_f TrafficRule_decode_aper; +per_type_encoder_f TrafficRule_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrafficRule_H_ */ +#include diff --git a/vcits/ssem/TransitVehicleOccupancy.h b/vcits/ssem/TransitVehicleOccupancy.h new file mode 100644 index 0000000..d63ff4d --- /dev/null +++ b/vcits/ssem/TransitVehicleOccupancy.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TransitVehicleOccupancy_H_ +#define _TransitVehicleOccupancy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleOccupancy { + TransitVehicleOccupancy_occupancyUnknown = 0, + TransitVehicleOccupancy_occupancyEmpty = 1, + TransitVehicleOccupancy_occupancyVeryLow = 2, + TransitVehicleOccupancy_occupancyLow = 3, + TransitVehicleOccupancy_occupancyMed = 4, + TransitVehicleOccupancy_occupancyHigh = 5, + TransitVehicleOccupancy_occupancyNearlyFull = 6, + TransitVehicleOccupancy_occupancyFull = 7 +} e_TransitVehicleOccupancy; + +/* TransitVehicleOccupancy */ +typedef long TransitVehicleOccupancy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy; +extern const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1; +asn_struct_free_f TransitVehicleOccupancy_free; +asn_struct_print_f TransitVehicleOccupancy_print; +asn_constr_check_f TransitVehicleOccupancy_constraint; +ber_type_decoder_f TransitVehicleOccupancy_decode_ber; +der_type_encoder_f TransitVehicleOccupancy_encode_der; +xer_type_decoder_f TransitVehicleOccupancy_decode_xer; +xer_type_encoder_f TransitVehicleOccupancy_encode_xer; +oer_type_decoder_f TransitVehicleOccupancy_decode_oer; +oer_type_encoder_f TransitVehicleOccupancy_encode_oer; +per_type_decoder_f TransitVehicleOccupancy_decode_uper; +per_type_encoder_f TransitVehicleOccupancy_encode_uper; +per_type_decoder_f TransitVehicleOccupancy_decode_aper; +per_type_encoder_f TransitVehicleOccupancy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleOccupancy_H_ */ +#include diff --git a/vcits/ssem/TransitVehicleStatus.h b/vcits/ssem/TransitVehicleStatus.h new file mode 100644 index 0000000..de3ae6e --- /dev/null +++ b/vcits/ssem/TransitVehicleStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TransitVehicleStatus_H_ +#define _TransitVehicleStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleStatus { + TransitVehicleStatus_loading = 0, + TransitVehicleStatus_anADAuse = 1, + TransitVehicleStatus_aBikeLoad = 2, + TransitVehicleStatus_doorOpen = 3, + TransitVehicleStatus_charging = 4, + TransitVehicleStatus_atStopLine = 5 +} e_TransitVehicleStatus; + +/* TransitVehicleStatus */ +typedef BIT_STRING_t TransitVehicleStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus; +asn_struct_free_f TransitVehicleStatus_free; +asn_struct_print_f TransitVehicleStatus_print; +asn_constr_check_f TransitVehicleStatus_constraint; +ber_type_decoder_f TransitVehicleStatus_decode_ber; +der_type_encoder_f TransitVehicleStatus_encode_der; +xer_type_decoder_f TransitVehicleStatus_decode_xer; +xer_type_encoder_f TransitVehicleStatus_encode_xer; +oer_type_decoder_f TransitVehicleStatus_decode_oer; +oer_type_encoder_f TransitVehicleStatus_encode_oer; +per_type_decoder_f TransitVehicleStatus_decode_uper; +per_type_encoder_f TransitVehicleStatus_encode_uper; +per_type_decoder_f TransitVehicleStatus_decode_aper; +per_type_encoder_f TransitVehicleStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleStatus_H_ */ +#include diff --git a/vcits/ssem/TransmissionAndSpeed.h b/vcits/ssem/TransmissionAndSpeed.h new file mode 100644 index 0000000..699cc13 --- /dev/null +++ b/vcits/ssem/TransmissionAndSpeed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TransmissionAndSpeed_H_ +#define _TransmissionAndSpeed_H_ + + +#include + +/* Including external dependencies */ +#include "TransmissionState.h" +#include "Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TransmissionAndSpeed */ +typedef struct TransmissionAndSpeed { + TransmissionState_t transmisson; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TransmissionAndSpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionAndSpeed_H_ */ +#include diff --git a/vcits/ssem/TransmissionInterval.h b/vcits/ssem/TransmissionInterval.h new file mode 100644 index 0000000..e50dd4c --- /dev/null +++ b/vcits/ssem/TransmissionInterval.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TransmissionInterval_H_ +#define _TransmissionInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionInterval { + TransmissionInterval_oneMilliSecond = 1, + TransmissionInterval_tenSeconds = 10000 +} e_TransmissionInterval; + +/* TransmissionInterval */ +typedef long TransmissionInterval_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionInterval; +asn_struct_free_f TransmissionInterval_free; +asn_struct_print_f TransmissionInterval_print; +asn_constr_check_f TransmissionInterval_constraint; +ber_type_decoder_f TransmissionInterval_decode_ber; +der_type_encoder_f TransmissionInterval_encode_der; +xer_type_decoder_f TransmissionInterval_decode_xer; +xer_type_encoder_f TransmissionInterval_encode_xer; +oer_type_decoder_f TransmissionInterval_decode_oer; +oer_type_encoder_f TransmissionInterval_encode_oer; +per_type_decoder_f TransmissionInterval_decode_uper; +per_type_encoder_f TransmissionInterval_encode_uper; +per_type_decoder_f TransmissionInterval_decode_aper; +per_type_encoder_f TransmissionInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionInterval_H_ */ +#include diff --git a/vcits/ssem/TransmissionState.h b/vcits/ssem/TransmissionState.h new file mode 100644 index 0000000..b5b8095 --- /dev/null +++ b/vcits/ssem/TransmissionState.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TransmissionState_H_ +#define _TransmissionState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionState { + TransmissionState_neutral = 0, + TransmissionState_park = 1, + TransmissionState_forwardGears = 2, + TransmissionState_reverseGears = 3, + TransmissionState_reserved1 = 4, + TransmissionState_reserved2 = 5, + TransmissionState_reserved3 = 6, + TransmissionState_unavailable = 7 +} e_TransmissionState; + +/* TransmissionState */ +typedef long TransmissionState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransmissionState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransmissionState; +extern const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1; +asn_struct_free_f TransmissionState_free; +asn_struct_print_f TransmissionState_print; +asn_constr_check_f TransmissionState_constraint; +ber_type_decoder_f TransmissionState_decode_ber; +der_type_encoder_f TransmissionState_encode_der; +xer_type_decoder_f TransmissionState_decode_xer; +xer_type_encoder_f TransmissionState_encode_xer; +oer_type_decoder_f TransmissionState_decode_oer; +oer_type_encoder_f TransmissionState_encode_oer; +per_type_decoder_f TransmissionState_decode_uper; +per_type_encoder_f TransmissionState_encode_uper; +per_type_decoder_f TransmissionState_decode_aper; +per_type_encoder_f TransmissionState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionState_H_ */ +#include diff --git a/vcits/ssem/TurningRadius.h b/vcits/ssem/TurningRadius.h new file mode 100644 index 0000000..36bd83d --- /dev/null +++ b/vcits/ssem/TurningRadius.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _TurningRadius_H_ +#define _TurningRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TurningRadius { + TurningRadius_point4Meters = 1, + TurningRadius_unavailable = 255 +} e_TurningRadius; + +/* TurningRadius */ +typedef long TurningRadius_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TurningRadius; +asn_struct_free_f TurningRadius_free; +asn_struct_print_f TurningRadius_print; +asn_constr_check_f TurningRadius_constraint; +ber_type_decoder_f TurningRadius_decode_ber; +der_type_encoder_f TurningRadius_encode_der; +xer_type_decoder_f TurningRadius_decode_xer; +xer_type_encoder_f TurningRadius_encode_xer; +oer_type_decoder_f TurningRadius_decode_oer; +oer_type_encoder_f TurningRadius_encode_oer; +per_type_decoder_f TurningRadius_decode_uper; +per_type_encoder_f TurningRadius_encode_uper; +per_type_decoder_f TurningRadius_decode_aper; +per_type_encoder_f TurningRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TurningRadius_H_ */ +#include diff --git a/vcits/ssem/VDS.h b/vcits/ssem/VDS.h new file mode 100644 index 0000000..45a5a33 --- /dev/null +++ b/vcits/ssem/VDS.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _VDS_H_ +#define _VDS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VDS */ +typedef IA5String_t VDS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VDS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VDS; +asn_struct_free_f VDS_free; +asn_struct_print_f VDS_print; +asn_constr_check_f VDS_constraint; +ber_type_decoder_f VDS_decode_ber; +der_type_encoder_f VDS_encode_der; +xer_type_decoder_f VDS_decode_xer; +xer_type_encoder_f VDS_encode_xer; +oer_type_decoder_f VDS_decode_oer; +oer_type_encoder_f VDS_encode_oer; +per_type_decoder_f VDS_decode_uper; +per_type_encoder_f VDS_encode_uper; +per_type_decoder_f VDS_decode_aper; +per_type_encoder_f VDS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VDS_H_ */ +#include diff --git a/vcits/ssem/ValidityDuration.h b/vcits/ssem/ValidityDuration.h new file mode 100644 index 0000000..ffda940 --- /dev/null +++ b/vcits/ssem/ValidityDuration.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ValidityDuration_H_ +#define _ValidityDuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ValidityDuration { + ValidityDuration_timeOfDetection = 0, + ValidityDuration_oneSecondAfterDetection = 1 +} e_ValidityDuration; + +/* ValidityDuration */ +typedef long ValidityDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ValidityDuration; +asn_struct_free_f ValidityDuration_free; +asn_struct_print_f ValidityDuration_print; +asn_constr_check_f ValidityDuration_constraint; +ber_type_decoder_f ValidityDuration_decode_ber; +der_type_encoder_f ValidityDuration_encode_der; +xer_type_decoder_f ValidityDuration_decode_xer; +xer_type_encoder_f ValidityDuration_encode_xer; +oer_type_decoder_f ValidityDuration_decode_oer; +oer_type_encoder_f ValidityDuration_encode_oer; +per_type_decoder_f ValidityDuration_decode_uper; +per_type_encoder_f ValidityDuration_encode_uper; +per_type_decoder_f ValidityDuration_decode_aper; +per_type_encoder_f ValidityDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ValidityDuration_H_ */ +#include diff --git a/vcits/ssem/VehicleBreakdownSubCauseCode.h b/vcits/ssem/VehicleBreakdownSubCauseCode.h new file mode 100644 index 0000000..739aa67 --- /dev/null +++ b/vcits/ssem/VehicleBreakdownSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _VehicleBreakdownSubCauseCode_H_ +#define _VehicleBreakdownSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleBreakdownSubCauseCode { + VehicleBreakdownSubCauseCode_unavailable = 0, + VehicleBreakdownSubCauseCode_lackOfFuel = 1, + VehicleBreakdownSubCauseCode_lackOfBatteryPower = 2, + VehicleBreakdownSubCauseCode_engineProblem = 3, + VehicleBreakdownSubCauseCode_transmissionProblem = 4, + VehicleBreakdownSubCauseCode_engineCoolingProblem = 5, + VehicleBreakdownSubCauseCode_brakingSystemProblem = 6, + VehicleBreakdownSubCauseCode_steeringProblem = 7, + VehicleBreakdownSubCauseCode_tyrePuncture = 8, + VehicleBreakdownSubCauseCode_tyrePressureProblem = 9 +} e_VehicleBreakdownSubCauseCode; + +/* VehicleBreakdownSubCauseCode */ +typedef long VehicleBreakdownSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode; +asn_struct_free_f VehicleBreakdownSubCauseCode_free; +asn_struct_print_f VehicleBreakdownSubCauseCode_print; +asn_constr_check_f VehicleBreakdownSubCauseCode_constraint; +ber_type_decoder_f VehicleBreakdownSubCauseCode_decode_ber; +der_type_encoder_f VehicleBreakdownSubCauseCode_encode_der; +xer_type_decoder_f VehicleBreakdownSubCauseCode_decode_xer; +xer_type_encoder_f VehicleBreakdownSubCauseCode_encode_xer; +oer_type_decoder_f VehicleBreakdownSubCauseCode_decode_oer; +oer_type_encoder_f VehicleBreakdownSubCauseCode_encode_oer; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_uper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_uper; +per_type_decoder_f VehicleBreakdownSubCauseCode_decode_aper; +per_type_encoder_f VehicleBreakdownSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleBreakdownSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/VehicleHeight.h b/vcits/ssem/VehicleHeight.h new file mode 100644 index 0000000..efe9e24 --- /dev/null +++ b/vcits/ssem/VehicleHeight.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _VehicleHeight_H_ +#define _VehicleHeight_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleHeight */ +typedef long VehicleHeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleHeight; +asn_struct_free_f VehicleHeight_free; +asn_struct_print_f VehicleHeight_print; +asn_constr_check_f VehicleHeight_constraint; +ber_type_decoder_f VehicleHeight_decode_ber; +der_type_encoder_f VehicleHeight_encode_der; +xer_type_decoder_f VehicleHeight_decode_xer; +xer_type_encoder_f VehicleHeight_encode_xer; +oer_type_decoder_f VehicleHeight_decode_oer; +oer_type_encoder_f VehicleHeight_encode_oer; +per_type_decoder_f VehicleHeight_decode_uper; +per_type_encoder_f VehicleHeight_encode_uper; +per_type_decoder_f VehicleHeight_decode_aper; +per_type_encoder_f VehicleHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleHeight_H_ */ +#include diff --git a/vcits/ssem/VehicleID.h b/vcits/ssem/VehicleID.h new file mode 100644 index 0000000..9b1f92b --- /dev/null +++ b/vcits/ssem/VehicleID.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _VehicleID_H_ +#define _VehicleID_H_ + + +#include + +/* Including external dependencies */ +#include "TemporaryID.h" +#include "StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleID_PR { + VehicleID_PR_NOTHING, /* No components present */ + VehicleID_PR_entityID, + VehicleID_PR_stationID +} VehicleID_PR; + +/* VehicleID */ +typedef struct VehicleID { + VehicleID_PR present; + union VehicleID_u { + TemporaryID_t entityID; + StationID_t stationID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleID; +extern asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleID_1[2]; +extern asn_per_constraints_t asn_PER_type_VehicleID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleID_H_ */ +#include diff --git a/vcits/ssem/VehicleIdentification.h b/vcits/ssem/VehicleIdentification.h new file mode 100644 index 0000000..2667342 --- /dev/null +++ b/vcits/ssem/VehicleIdentification.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _VehicleIdentification_H_ +#define _VehicleIdentification_H_ + + +#include + +/* Including external dependencies */ +#include "WMInumber.h" +#include "VDS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleIdentification */ +typedef struct VehicleIdentification { + WMInumber_t *wMInumber; /* OPTIONAL */ + VDS_t *vDS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleIdentification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleIdentification; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleIdentification_H_ */ +#include diff --git a/vcits/ssem/VehicleLength.h b/vcits/ssem/VehicleLength.h new file mode 100644 index 0000000..7a51ef4 --- /dev/null +++ b/vcits/ssem/VehicleLength.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _VehicleLength_H_ +#define _VehicleLength_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleLengthValue.h" +#include "VehicleLengthConfidenceIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleLength */ +typedef struct VehicleLength { + VehicleLengthValue_t vehicleLengthValue; + VehicleLengthConfidenceIndication_t vehicleLengthConfidenceIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleLength; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLength_H_ */ +#include diff --git a/vcits/ssem/VehicleLengthConfidenceIndication.h b/vcits/ssem/VehicleLengthConfidenceIndication.h new file mode 100644 index 0000000..16f78e6 --- /dev/null +++ b/vcits/ssem/VehicleLengthConfidenceIndication.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _VehicleLengthConfidenceIndication_H_ +#define _VehicleLengthConfidenceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthConfidenceIndication { + VehicleLengthConfidenceIndication_noTrailerPresent = 0, + VehicleLengthConfidenceIndication_trailerPresentWithKnownLength = 1, + VehicleLengthConfidenceIndication_trailerPresentWithUnknownLength = 2, + VehicleLengthConfidenceIndication_trailerPresenceIsUnknown = 3, + VehicleLengthConfidenceIndication_unavailable = 4 +} e_VehicleLengthConfidenceIndication; + +/* VehicleLengthConfidenceIndication */ +typedef long VehicleLengthConfidenceIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1; +asn_struct_free_f VehicleLengthConfidenceIndication_free; +asn_struct_print_f VehicleLengthConfidenceIndication_print; +asn_constr_check_f VehicleLengthConfidenceIndication_constraint; +ber_type_decoder_f VehicleLengthConfidenceIndication_decode_ber; +der_type_encoder_f VehicleLengthConfidenceIndication_encode_der; +xer_type_decoder_f VehicleLengthConfidenceIndication_decode_xer; +xer_type_encoder_f VehicleLengthConfidenceIndication_encode_xer; +oer_type_decoder_f VehicleLengthConfidenceIndication_decode_oer; +oer_type_encoder_f VehicleLengthConfidenceIndication_encode_oer; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_uper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_uper; +per_type_decoder_f VehicleLengthConfidenceIndication_decode_aper; +per_type_encoder_f VehicleLengthConfidenceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthConfidenceIndication_H_ */ +#include diff --git a/vcits/ssem/VehicleLengthValue.h b/vcits/ssem/VehicleLengthValue.h new file mode 100644 index 0000000..6247a8e --- /dev/null +++ b/vcits/ssem/VehicleLengthValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _VehicleLengthValue_H_ +#define _VehicleLengthValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleLengthValue { + VehicleLengthValue_tenCentimeters = 1, + VehicleLengthValue_outOfRange = 1022, + VehicleLengthValue_unavailable = 1023 +} e_VehicleLengthValue; + +/* VehicleLengthValue */ +typedef long VehicleLengthValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue; +asn_struct_free_f VehicleLengthValue_free; +asn_struct_print_f VehicleLengthValue_print; +asn_constr_check_f VehicleLengthValue_constraint; +ber_type_decoder_f VehicleLengthValue_decode_ber; +der_type_encoder_f VehicleLengthValue_encode_der; +xer_type_decoder_f VehicleLengthValue_decode_xer; +xer_type_encoder_f VehicleLengthValue_encode_xer; +oer_type_decoder_f VehicleLengthValue_decode_oer; +oer_type_encoder_f VehicleLengthValue_encode_oer; +per_type_decoder_f VehicleLengthValue_decode_uper; +per_type_encoder_f VehicleLengthValue_encode_uper; +per_type_decoder_f VehicleLengthValue_decode_aper; +per_type_encoder_f VehicleLengthValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLengthValue_H_ */ +#include diff --git a/vcits/ssem/VehicleMass.h b/vcits/ssem/VehicleMass.h new file mode 100644 index 0000000..ae09742 --- /dev/null +++ b/vcits/ssem/VehicleMass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _VehicleMass_H_ +#define _VehicleMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleMass { + VehicleMass_hundredKg = 1, + VehicleMass_unavailable = 1024 +} e_VehicleMass; + +/* VehicleMass */ +typedef long VehicleMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleMass; +asn_struct_free_f VehicleMass_free; +asn_struct_print_f VehicleMass_print; +asn_constr_check_f VehicleMass_constraint; +ber_type_decoder_f VehicleMass_decode_ber; +der_type_encoder_f VehicleMass_encode_der; +xer_type_decoder_f VehicleMass_decode_xer; +xer_type_encoder_f VehicleMass_encode_xer; +oer_type_decoder_f VehicleMass_decode_oer; +oer_type_encoder_f VehicleMass_encode_oer; +per_type_decoder_f VehicleMass_decode_uper; +per_type_encoder_f VehicleMass_encode_uper; +per_type_decoder_f VehicleMass_decode_aper; +per_type_encoder_f VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleMass_H_ */ +#include diff --git a/vcits/ssem/VehicleRole.h b/vcits/ssem/VehicleRole.h new file mode 100644 index 0000000..9e9fe08 --- /dev/null +++ b/vcits/ssem/VehicleRole.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _VehicleRole_H_ +#define _VehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleRole { + VehicleRole_default = 0, + VehicleRole_publicTransport = 1, + VehicleRole_specialTransport = 2, + VehicleRole_dangerousGoods = 3, + VehicleRole_roadWork = 4, + VehicleRole_rescue = 5, + VehicleRole_emergency = 6, + VehicleRole_safetyCar = 7, + VehicleRole_agriculture = 8, + VehicleRole_commercial = 9, + VehicleRole_military = 10, + VehicleRole_roadOperator = 11, + VehicleRole_taxi = 12, + VehicleRole_reserved1 = 13, + VehicleRole_reserved2 = 14, + VehicleRole_reserved3 = 15 +} e_VehicleRole; + +/* VehicleRole */ +typedef long VehicleRole_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleRole; +asn_struct_free_f VehicleRole_free; +asn_struct_print_f VehicleRole_print; +asn_constr_check_f VehicleRole_constraint; +ber_type_decoder_f VehicleRole_decode_ber; +der_type_encoder_f VehicleRole_encode_der; +xer_type_decoder_f VehicleRole_decode_xer; +xer_type_encoder_f VehicleRole_encode_xer; +oer_type_decoder_f VehicleRole_decode_oer; +oer_type_encoder_f VehicleRole_encode_oer; +per_type_decoder_f VehicleRole_decode_uper; +per_type_encoder_f VehicleRole_encode_uper; +per_type_decoder_f VehicleRole_decode_aper; +per_type_encoder_f VehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleRole_H_ */ +#include diff --git a/vcits/ssem/VehicleType.h b/vcits/ssem/VehicleType.h new file mode 100644 index 0000000..79de7a6 --- /dev/null +++ b/vcits/ssem/VehicleType.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _VehicleType_H_ +#define _VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleType { + VehicleType_none = 0, + VehicleType_unknown = 1, + VehicleType_special = 2, + VehicleType_moto = 3, + VehicleType_car = 4, + VehicleType_carOther = 5, + VehicleType_bus = 6, + VehicleType_axleCnt2 = 7, + VehicleType_axleCnt3 = 8, + VehicleType_axleCnt4 = 9, + VehicleType_axleCnt4Trailer = 10, + VehicleType_axleCnt5Trailer = 11, + VehicleType_axleCnt6Trailer = 12, + VehicleType_axleCnt5MultiTrailer = 13, + VehicleType_axleCnt6MultiTrailer = 14, + VehicleType_axleCnt7MultiTrailer = 15 + /* + * Enumeration is extensible + */ +} e_VehicleType; + +/* VehicleType */ +typedef long VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleType; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1; +asn_struct_free_f VehicleType_free; +asn_struct_print_f VehicleType_print; +asn_constr_check_f VehicleType_constraint; +ber_type_decoder_f VehicleType_decode_ber; +der_type_encoder_f VehicleType_encode_der; +xer_type_decoder_f VehicleType_decode_xer; +xer_type_encoder_f VehicleType_encode_xer; +oer_type_decoder_f VehicleType_decode_oer; +oer_type_encoder_f VehicleType_encode_oer; +per_type_decoder_f VehicleType_decode_uper; +per_type_encoder_f VehicleType_encode_uper; +per_type_decoder_f VehicleType_decode_aper; +per_type_encoder_f VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleType_H_ */ +#include diff --git a/vcits/ssem/VehicleWidth.h b/vcits/ssem/VehicleWidth.h new file mode 100644 index 0000000..eacc0cc --- /dev/null +++ b/vcits/ssem/VehicleWidth.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _VehicleWidth_H_ +#define _VehicleWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleWidth { + VehicleWidth_tenCentimeters = 1, + VehicleWidth_outOfRange = 61, + VehicleWidth_unavailable = 62 +} e_VehicleWidth; + +/* VehicleWidth */ +typedef long VehicleWidth_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleWidth; +asn_struct_free_f VehicleWidth_free; +asn_struct_print_f VehicleWidth_print; +asn_constr_check_f VehicleWidth_constraint; +ber_type_decoder_f VehicleWidth_decode_ber; +der_type_encoder_f VehicleWidth_encode_der; +xer_type_decoder_f VehicleWidth_decode_xer; +xer_type_encoder_f VehicleWidth_encode_xer; +oer_type_decoder_f VehicleWidth_decode_oer; +oer_type_encoder_f VehicleWidth_encode_oer; +per_type_decoder_f VehicleWidth_decode_uper; +per_type_encoder_f VehicleWidth_encode_uper; +per_type_decoder_f VehicleWidth_decode_aper; +per_type_encoder_f VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleWidth_H_ */ +#include diff --git a/vcits/ssem/Velocity.h b/vcits/ssem/Velocity.h new file mode 100644 index 0000000..c0c5b27 --- /dev/null +++ b/vcits/ssem/Velocity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _Velocity_H_ +#define _Velocity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Velocity */ +typedef long Velocity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Velocity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Velocity; +asn_struct_free_f Velocity_free; +asn_struct_print_f Velocity_print; +asn_constr_check_f Velocity_constraint; +ber_type_decoder_f Velocity_decode_ber; +der_type_encoder_f Velocity_encode_der; +xer_type_decoder_f Velocity_decode_xer; +xer_type_encoder_f Velocity_encode_xer; +oer_type_decoder_f Velocity_decode_oer; +oer_type_encoder_f Velocity_encode_oer; +per_type_decoder_f Velocity_decode_uper; +per_type_encoder_f Velocity_encode_uper; +per_type_decoder_f Velocity_decode_aper; +per_type_encoder_f Velocity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Velocity_H_ */ +#include diff --git a/vcits/ssem/VerticalAcceleration.h b/vcits/ssem/VerticalAcceleration.h new file mode 100644 index 0000000..5cc25c6 --- /dev/null +++ b/vcits/ssem/VerticalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _VerticalAcceleration_H_ +#define _VerticalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "VerticalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VerticalAcceleration */ +typedef struct VerticalAcceleration { + VerticalAccelerationValue_t verticalAccelerationValue; + AccelerationConfidence_t verticalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VerticalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAcceleration_H_ */ +#include diff --git a/vcits/ssem/VerticalAccelerationValue.h b/vcits/ssem/VerticalAccelerationValue.h new file mode 100644 index 0000000..74ba299 --- /dev/null +++ b/vcits/ssem/VerticalAccelerationValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _VerticalAccelerationValue_H_ +#define _VerticalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VerticalAccelerationValue { + VerticalAccelerationValue_pointOneMeterPerSecSquaredUp = 1, + VerticalAccelerationValue_pointOneMeterPerSecSquaredDown = -1, + VerticalAccelerationValue_unavailable = 161 +} e_VerticalAccelerationValue; + +/* VerticalAccelerationValue */ +typedef long VerticalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue; +asn_struct_free_f VerticalAccelerationValue_free; +asn_struct_print_f VerticalAccelerationValue_print; +asn_constr_check_f VerticalAccelerationValue_constraint; +ber_type_decoder_f VerticalAccelerationValue_decode_ber; +der_type_encoder_f VerticalAccelerationValue_encode_der; +xer_type_decoder_f VerticalAccelerationValue_decode_xer; +xer_type_encoder_f VerticalAccelerationValue_encode_xer; +oer_type_decoder_f VerticalAccelerationValue_decode_oer; +oer_type_encoder_f VerticalAccelerationValue_encode_oer; +per_type_decoder_f VerticalAccelerationValue_decode_uper; +per_type_encoder_f VerticalAccelerationValue_encode_uper; +per_type_decoder_f VerticalAccelerationValue_decode_aper; +per_type_encoder_f VerticalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAccelerationValue_H_ */ +#include diff --git a/vcits/ssem/WMInumber.h b/vcits/ssem/WMInumber.h new file mode 100644 index 0000000..49d8d44 --- /dev/null +++ b/vcits/ssem/WMInumber.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _WMInumber_H_ +#define _WMInumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WMInumber */ +typedef IA5String_t WMInumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WMInumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WMInumber; +asn_struct_free_f WMInumber_free; +asn_struct_print_f WMInumber_print; +asn_constr_check_f WMInumber_constraint; +ber_type_decoder_f WMInumber_decode_ber; +der_type_encoder_f WMInumber_encode_der; +xer_type_decoder_f WMInumber_decode_xer; +xer_type_encoder_f WMInumber_encode_xer; +oer_type_decoder_f WMInumber_decode_oer; +oer_type_encoder_f WMInumber_encode_oer; +per_type_decoder_f WMInumber_decode_uper; +per_type_encoder_f WMInumber_encode_uper; +per_type_decoder_f WMInumber_decode_aper; +per_type_encoder_f WMInumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WMInumber_H_ */ +#include diff --git a/vcits/ssem/WaitOnStopline.h b/vcits/ssem/WaitOnStopline.h new file mode 100644 index 0000000..71088c3 --- /dev/null +++ b/vcits/ssem/WaitOnStopline.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _WaitOnStopline_H_ +#define _WaitOnStopline_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WaitOnStopline */ +typedef BOOLEAN_t WaitOnStopline_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WaitOnStopline; +asn_struct_free_f WaitOnStopline_free; +asn_struct_print_f WaitOnStopline_print; +asn_constr_check_f WaitOnStopline_constraint; +ber_type_decoder_f WaitOnStopline_decode_ber; +der_type_encoder_f WaitOnStopline_encode_der; +xer_type_decoder_f WaitOnStopline_decode_xer; +xer_type_encoder_f WaitOnStopline_encode_xer; +oer_type_decoder_f WaitOnStopline_decode_oer; +oer_type_encoder_f WaitOnStopline_encode_oer; +per_type_decoder_f WaitOnStopline_decode_uper; +per_type_encoder_f WaitOnStopline_encode_uper; +per_type_decoder_f WaitOnStopline_decode_aper; +per_type_encoder_f WaitOnStopline_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WaitOnStopline_H_ */ +#include diff --git a/vcits/ssem/WheelBaseVehicle.h b/vcits/ssem/WheelBaseVehicle.h new file mode 100644 index 0000000..d80c4e9 --- /dev/null +++ b/vcits/ssem/WheelBaseVehicle.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _WheelBaseVehicle_H_ +#define _WheelBaseVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WheelBaseVehicle { + WheelBaseVehicle_tenCentimeters = 1, + WheelBaseVehicle_unavailable = 127 +} e_WheelBaseVehicle; + +/* WheelBaseVehicle */ +typedef long WheelBaseVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle; +asn_struct_free_f WheelBaseVehicle_free; +asn_struct_print_f WheelBaseVehicle_print; +asn_constr_check_f WheelBaseVehicle_constraint; +ber_type_decoder_f WheelBaseVehicle_decode_ber; +der_type_encoder_f WheelBaseVehicle_encode_der; +xer_type_decoder_f WheelBaseVehicle_decode_xer; +xer_type_encoder_f WheelBaseVehicle_encode_xer; +oer_type_decoder_f WheelBaseVehicle_decode_oer; +oer_type_encoder_f WheelBaseVehicle_encode_oer; +per_type_decoder_f WheelBaseVehicle_decode_uper; +per_type_encoder_f WheelBaseVehicle_encode_uper; +per_type_decoder_f WheelBaseVehicle_decode_aper; +per_type_encoder_f WheelBaseVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WheelBaseVehicle_H_ */ +#include diff --git a/vcits/ssem/WrongWayDrivingSubCauseCode.h b/vcits/ssem/WrongWayDrivingSubCauseCode.h new file mode 100644 index 0000000..47f3138 --- /dev/null +++ b/vcits/ssem/WrongWayDrivingSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _WrongWayDrivingSubCauseCode_H_ +#define _WrongWayDrivingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WrongWayDrivingSubCauseCode { + WrongWayDrivingSubCauseCode_unavailable = 0, + WrongWayDrivingSubCauseCode_wrongLane = 1, + WrongWayDrivingSubCauseCode_wrongDirection = 2 +} e_WrongWayDrivingSubCauseCode; + +/* WrongWayDrivingSubCauseCode */ +typedef long WrongWayDrivingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode; +asn_struct_free_f WrongWayDrivingSubCauseCode_free; +asn_struct_print_f WrongWayDrivingSubCauseCode_print; +asn_constr_check_f WrongWayDrivingSubCauseCode_constraint; +ber_type_decoder_f WrongWayDrivingSubCauseCode_decode_ber; +der_type_encoder_f WrongWayDrivingSubCauseCode_encode_der; +xer_type_decoder_f WrongWayDrivingSubCauseCode_decode_xer; +xer_type_encoder_f WrongWayDrivingSubCauseCode_encode_xer; +oer_type_decoder_f WrongWayDrivingSubCauseCode_decode_oer; +oer_type_encoder_f WrongWayDrivingSubCauseCode_encode_oer; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_uper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_uper; +per_type_decoder_f WrongWayDrivingSubCauseCode_decode_aper; +per_type_encoder_f WrongWayDrivingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WrongWayDrivingSubCauseCode_H_ */ +#include diff --git a/vcits/ssem/YawRate.h b/vcits/ssem/YawRate.h new file mode 100644 index 0000000..af06e9c --- /dev/null +++ b/vcits/ssem/YawRate.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _YawRate_H_ +#define _YawRate_H_ + + +#include + +/* Including external dependencies */ +#include "YawRateValue.h" +#include "YawRateConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* YawRate */ +typedef struct YawRate { + YawRateValue_t yawRateValue; + YawRateConfidence_t yawRateConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} YawRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_YawRate; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRate_H_ */ +#include diff --git a/vcits/ssem/YawRateConfidence.h b/vcits/ssem/YawRateConfidence.h new file mode 100644 index 0000000..f624715 --- /dev/null +++ b/vcits/ssem/YawRateConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _YawRateConfidence_H_ +#define _YawRateConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateConfidence { + YawRateConfidence_degSec_000_01 = 0, + YawRateConfidence_degSec_000_05 = 1, + YawRateConfidence_degSec_000_10 = 2, + YawRateConfidence_degSec_001_00 = 3, + YawRateConfidence_degSec_005_00 = 4, + YawRateConfidence_degSec_010_00 = 5, + YawRateConfidence_degSec_100_00 = 6, + YawRateConfidence_outOfRange = 7, + YawRateConfidence_unavailable = 8 +} e_YawRateConfidence; + +/* YawRateConfidence */ +typedef long YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1; +asn_struct_free_f YawRateConfidence_free; +asn_struct_print_f YawRateConfidence_print; +asn_constr_check_f YawRateConfidence_constraint; +ber_type_decoder_f YawRateConfidence_decode_ber; +der_type_encoder_f YawRateConfidence_encode_der; +xer_type_decoder_f YawRateConfidence_decode_xer; +xer_type_encoder_f YawRateConfidence_encode_xer; +oer_type_decoder_f YawRateConfidence_decode_oer; +oer_type_encoder_f YawRateConfidence_encode_oer; +per_type_decoder_f YawRateConfidence_decode_uper; +per_type_encoder_f YawRateConfidence_encode_uper; +per_type_decoder_f YawRateConfidence_decode_aper; +per_type_encoder_f YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateConfidence_H_ */ +#include diff --git a/vcits/ssem/YawRateValue.h b/vcits/ssem/YawRateValue.h new file mode 100644 index 0000000..1e12ac0 --- /dev/null +++ b/vcits/ssem/YawRateValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _YawRateValue_H_ +#define _YawRateValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateValue { + YawRateValue_straight = 0, + YawRateValue_degSec_000_01ToRight = -1, + YawRateValue_degSec_000_01ToLeft = 1, + YawRateValue_unavailable = 32767 +} e_YawRateValue; + +/* YawRateValue */ +typedef long YawRateValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateValue; +asn_struct_free_f YawRateValue_free; +asn_struct_print_f YawRateValue_print; +asn_constr_check_f YawRateValue_constraint; +ber_type_decoder_f YawRateValue_decode_ber; +der_type_encoder_f YawRateValue_encode_der; +xer_type_decoder_f YawRateValue_decode_xer; +xer_type_encoder_f YawRateValue_encode_xer; +oer_type_decoder_f YawRateValue_decode_oer; +oer_type_encoder_f YawRateValue_encode_oer; +per_type_decoder_f YawRateValue_decode_uper; +per_type_encoder_f YawRateValue_encode_uper; +per_type_decoder_f YawRateValue_decode_aper; +per_type_encoder_f YawRateValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateValue_H_ */ +#include diff --git a/vcits/ssem/ZoneLength.h b/vcits/ssem/ZoneLength.h new file mode 100644 index 0000000..30da6b2 --- /dev/null +++ b/vcits/ssem/ZoneLength.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#ifndef _ZoneLength_H_ +#define _ZoneLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ZoneLength */ +typedef long ZoneLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ZoneLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ZoneLength; +asn_struct_free_f ZoneLength_free; +asn_struct_print_f ZoneLength_print; +asn_constr_check_f ZoneLength_constraint; +ber_type_decoder_f ZoneLength_decode_ber; +der_type_encoder_f ZoneLength_encode_der; +xer_type_decoder_f ZoneLength_decode_xer; +xer_type_encoder_f ZoneLength_encode_xer; +oer_type_decoder_f ZoneLength_decode_oer; +oer_type_encoder_f ZoneLength_encode_oer; +per_type_decoder_f ZoneLength_decode_uper; +per_type_encoder_f ZoneLength_encode_uper; +per_type_decoder_f ZoneLength_decode_aper; +per_type_encoder_f ZoneLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ZoneLength_H_ */ +#include diff --git a/vcits/ssem/asn_constant.h b/vcits/ssem/asn_constant.h new file mode 100644 index 0000000..9214f13 --- /dev/null +++ b/vcits/ssem/asn_constant.h @@ -0,0 +1,265 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_StationID (0) +#define max_val_StationID (4294967295) +#define min_val_Longitude (-1800000000) +#define max_val_Longitude (1800000001) +#define min_val_Latitude (-900000000) +#define max_val_Latitude (900000001) +#define min_val_AltitudeValue (-100000) +#define max_val_AltitudeValue (800001) +#define min_val_DeltaLongitude (-131071) +#define max_val_DeltaLongitude (131072) +#define min_val_DeltaLatitude (-131071) +#define max_val_DeltaLatitude (131072) +#define min_val_DeltaAltitude (-12700) +#define max_val_DeltaAltitude (12800) +#define min_val_PtActivationType (0) +#define max_val_PtActivationType (255) +#define min_val_SemiAxisLength (0) +#define max_val_SemiAxisLength (4095) +#define min_val_CauseCodeType (0) +#define max_val_CauseCodeType (255) +#define min_val_SubCauseCodeType (0) +#define max_val_SubCauseCodeType (255) +#define min_val_TrafficConditionSubCauseCode (0) +#define max_val_TrafficConditionSubCauseCode (255) +#define min_val_AccidentSubCauseCode (0) +#define max_val_AccidentSubCauseCode (255) +#define min_val_RoadworksSubCauseCode (0) +#define max_val_RoadworksSubCauseCode (255) +#define min_val_HumanPresenceOnTheRoadSubCauseCode (0) +#define max_val_HumanPresenceOnTheRoadSubCauseCode (255) +#define min_val_WrongWayDrivingSubCauseCode (0) +#define max_val_WrongWayDrivingSubCauseCode (255) +#define min_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_AdhesionSubCauseCode (0) +#define max_val_AdverseWeatherCondition_AdhesionSubCauseCode (255) +#define min_val_AdverseWeatherCondition_VisibilitySubCauseCode (0) +#define max_val_AdverseWeatherCondition_VisibilitySubCauseCode (255) +#define min_val_AdverseWeatherCondition_PrecipitationSubCauseCode (0) +#define max_val_AdverseWeatherCondition_PrecipitationSubCauseCode (255) +#define min_val_SlowVehicleSubCauseCode (0) +#define max_val_SlowVehicleSubCauseCode (255) +#define min_val_StationaryVehicleSubCauseCode (0) +#define max_val_StationaryVehicleSubCauseCode (255) +#define min_val_HumanProblemSubCauseCode (0) +#define max_val_HumanProblemSubCauseCode (255) +#define min_val_EmergencyVehicleApproachingSubCauseCode (0) +#define max_val_EmergencyVehicleApproachingSubCauseCode (255) +#define min_val_HazardousLocation_DangerousCurveSubCauseCode (0) +#define max_val_HazardousLocation_DangerousCurveSubCauseCode (255) +#define min_val_HazardousLocation_SurfaceConditionSubCauseCode (0) +#define max_val_HazardousLocation_SurfaceConditionSubCauseCode (255) +#define min_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_ObstacleOnTheRoadSubCauseCode (255) +#define min_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (0) +#define max_val_HazardousLocation_AnimalOnTheRoadSubCauseCode (255) +#define min_val_CollisionRiskSubCauseCode (0) +#define max_val_CollisionRiskSubCauseCode (255) +#define min_val_SignalViolationSubCauseCode (0) +#define max_val_SignalViolationSubCauseCode (255) +#define min_val_RescueAndRecoveryWorkInProgressSubCauseCode (0) +#define max_val_RescueAndRecoveryWorkInProgressSubCauseCode (255) +#define min_val_DangerousEndOfQueueSubCauseCode (0) +#define max_val_DangerousEndOfQueueSubCauseCode (255) +#define min_val_DangerousSituationSubCauseCode (0) +#define max_val_DangerousSituationSubCauseCode (255) +#define min_val_VehicleBreakdownSubCauseCode (0) +#define max_val_VehicleBreakdownSubCauseCode (255) +#define min_val_PostCrashSubCauseCode (0) +#define max_val_PostCrashSubCauseCode (255) +#define min_val_CurvatureValue (-1023) +#define max_val_CurvatureValue (1023) +#define min_val_HeadingValue (0) +#define max_val_HeadingValue (3601) +#define min_val_HeadingConfidence (1) +#define max_val_HeadingConfidence (127) +#define min_val_LanePosition (-1) +#define max_val_LanePosition (14) +#define min_val_PerformanceClass (0) +#define max_val_PerformanceClass (7) +#define min_val_SpeedValue (0) +#define max_val_SpeedValue (16383) +#define min_val_SpeedConfidence (1) +#define max_val_SpeedConfidence (127) +#define min_val_VehicleMass (1) +#define max_val_VehicleMass (1024) +#define min_val_LongitudinalAccelerationValue (-160) +#define max_val_LongitudinalAccelerationValue (161) +#define min_val_AccelerationConfidence (0) +#define max_val_AccelerationConfidence (102) +#define min_val_LateralAccelerationValue (-160) +#define max_val_LateralAccelerationValue (161) +#define min_val_VerticalAccelerationValue (-160) +#define max_val_VerticalAccelerationValue (161) +#define min_val_StationType (0) +#define max_val_StationType (255) +#define min_val_HeightLonCarr (1) +#define max_val_HeightLonCarr (100) +#define min_val_PosLonCarr (1) +#define max_val_PosLonCarr (127) +#define min_val_PosPillar (1) +#define max_val_PosPillar (30) +#define min_val_PosCentMass (1) +#define max_val_PosCentMass (63) +#define min_val_SpeedLimit (1) +#define max_val_SpeedLimit (255) +#define min_val_Temperature (-60) +#define max_val_Temperature (67) +#define min_val_WheelBaseVehicle (1) +#define max_val_WheelBaseVehicle (127) +#define min_val_TurningRadius (1) +#define max_val_TurningRadius (255) +#define min_val_PosFrontAx (1) +#define max_val_PosFrontAx (20) +#define min_val_VehicleLengthValue (1) +#define max_val_VehicleLengthValue (1023) +#define min_val_VehicleWidth (1) +#define max_val_VehicleWidth (62) +#define min_val_InformationQuality (0) +#define max_val_InformationQuality (7) +#define min_val_SteeringWheelAngleValue (-511) +#define max_val_SteeringWheelAngleValue (512) +#define min_val_SteeringWheelAngleConfidence (1) +#define max_val_SteeringWheelAngleConfidence (127) +#define min_val_TimestampIts (0) +#define max_val_TimestampIts (4398046511103) +#define min_val_YawRateValue (-32766) +#define max_val_YawRateValue (32767) +#define min_val_TransmissionInterval (1) +#define max_val_TransmissionInterval (10000) +#define min_val_ValidityDuration (0) +#define max_val_ValidityDuration (86400) +#define min_val_NumberOfOccupants (0) +#define max_val_NumberOfOccupants (127) +#define min_val_SequenceNumber (0) +#define max_val_SequenceNumber (65535) +#define min_val_ProtectedZoneID (0) +#define max_val_ProtectedZoneID (134217727) +#define min_val_Iso3833VehicleType (0) +#define max_val_Iso3833VehicleType (255) +#define min_val_TimeReference (0) +#define max_val_TimeReference (60000) +#define min_val_TimeMark (0) +#define max_val_TimeMark (36001) +#define min_val_Angle (0) +#define max_val_Angle (28800) +#define min_val_ApproachID (0) +#define max_val_ApproachID (15) +#define min_val_DDay (0) +#define max_val_DDay (31) +#define min_val_DeltaAngle (-150) +#define max_val_DeltaAngle (150) +#define min_val_DeltaTime (-122) +#define max_val_DeltaTime (121) +#define min_val_DHour (0) +#define max_val_DHour (31) +#define min_val_DMinute (0) +#define max_val_DMinute (60) +#define min_val_DMonth (0) +#define max_val_DMonth (12) +#define min_val_DOffset (-840) +#define max_val_DOffset (840) +#define min_val_DrivenLineOffsetLg (-32767) +#define max_val_DrivenLineOffsetLg (32767) +#define min_val_DrivenLineOffsetSm (-2047) +#define max_val_DrivenLineOffsetSm (2047) +#define min_val_DSecond (0) +#define max_val_DSecond (65535) +#define min_val_DSRCmsgID (0) +#define max_val_DSRCmsgID (32767) +#define min_val_DYear (0) +#define max_val_DYear (4095) +#define min_val_Elevation (-4096) +#define max_val_Elevation (61439) +#define min_val_FuelType (0) +#define max_val_FuelType (15) +#define min_val_HeadingDSRC (0) +#define max_val_HeadingDSRC (28800) +#define min_val_IntersectionID (0) +#define max_val_IntersectionID (65535) +#define min_val_LaneConnectionID (0) +#define max_val_LaneConnectionID (255) +#define min_val_LaneID (0) +#define max_val_LaneID (255) +#define min_val_LayerID (0) +#define max_val_LayerID (100) +#define min_val_LaneWidth (0) +#define max_val_LaneWidth (32767) +#define min_val_MergeDivergeNodeAngle (-180) +#define max_val_MergeDivergeNodeAngle (180) +#define min_val_MinuteOfTheYear (0) +#define max_val_MinuteOfTheYear (527040) +#define min_val_MsgCount (0) +#define max_val_MsgCount (127) +#define min_val_Offset_B09 (-256) +#define max_val_Offset_B09 (255) +#define min_val_Offset_B10 (-512) +#define max_val_Offset_B10 (511) +#define min_val_Offset_B11 (-1024) +#define max_val_Offset_B11 (1023) +#define min_val_Offset_B12 (-2048) +#define max_val_Offset_B12 (2047) +#define min_val_Offset_B13 (-4096) +#define max_val_Offset_B13 (4095) +#define min_val_Offset_B14 (-8192) +#define max_val_Offset_B14 (8191) +#define min_val_Offset_B16 (-32768) +#define max_val_Offset_B16 (32767) +#define min_val_RegionId (0) +#define max_val_RegionId (255) +#define min_val_RequestID (0) +#define max_val_RequestID (255) +#define min_val_RestrictionClassID (0) +#define max_val_RestrictionClassID (255) +#define min_val_RoadRegulatorID (0) +#define max_val_RoadRegulatorID (65535) +#define min_val_RoadSegmentID (0) +#define max_val_RoadSegmentID (65535) +#define min_val_RoadwayCrownAngle (-128) +#define max_val_RoadwayCrownAngle (127) +#define min_val_Scale_B12 (-2048) +#define max_val_Scale_B12 (2047) +#define min_val_SignalGroupID (0) +#define max_val_SignalGroupID (255) +#define min_val_SemiMajorAxisAccuracy (0) +#define max_val_SemiMajorAxisAccuracy (255) +#define min_val_SemiMajorAxisOrientation (0) +#define max_val_SemiMajorAxisOrientation (65535) +#define min_val_SemiMinorAxisAccuracy (0) +#define max_val_SemiMinorAxisAccuracy (255) +#define min_val_SpeedAdvice (0) +#define max_val_SpeedAdvice (500) +#define min_val_TimeIntervalConfidence (0) +#define max_val_TimeIntervalConfidence (15) +#define min_val_VehicleHeight (0) +#define max_val_VehicleHeight (127) +#define min_val_Velocity (0) +#define max_val_Velocity (8191) +#define min_val_ZoneLength (0) +#define max_val_ZoneLength (10000) +#define min_val_IssuerIdentifier (0) +#define max_val_IssuerIdentifier (16383) +#define min_val_ManufacturerIdentifier (0) +#define max_val_ManufacturerIdentifier (65535) +#define min_val_AlphabetIndicator (0) +#define max_val_AlphabetIndicator (63) +#define version (1) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/vcits/ssem/src/AccelerationConfidence.c b/vcits/ssem/src/AccelerationConfidence.c new file mode 100644 index 0000000..21091ed --- /dev/null +++ b/vcits/ssem/src/AccelerationConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AccelerationConfidence.h" + +int +AccelerationConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 102)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..102) */, + -1}; +asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 102 } /* (0..102) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeInteger, + asn_DEF_AccelerationConfidence_tags_1, + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationConfidence_constr_1, &asn_PER_type_AccelerationConfidence_constr_1, AccelerationConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/AccelerationControl.c b/vcits/ssem/src/AccelerationControl.c new file mode 100644 index 0000000..329aded --- /dev/null +++ b/vcits/ssem/src/AccelerationControl.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AccelerationControl.h" + +int +AccelerationControl_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_AccelerationControl_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccelerationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationControl = { + "AccelerationControl", + "AccelerationControl", + &asn_OP_BIT_STRING, + asn_DEF_AccelerationControl_tags_1, + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + asn_DEF_AccelerationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationControl_tags_1) + /sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */ + { &asn_OER_type_AccelerationControl_constr_1, &asn_PER_type_AccelerationControl_constr_1, AccelerationControl_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/AccidentSubCauseCode.c b/vcits/ssem/src/AccidentSubCauseCode.c new file mode 100644 index 0000000..bed530b --- /dev/null +++ b/vcits/ssem/src/AccidentSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AccidentSubCauseCode.h" + +int +AccidentSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AccidentSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode = { + "AccidentSubCauseCode", + "AccidentSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AccidentSubCauseCode_tags_1, + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AccidentSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AccidentSubCauseCode_constr_1, &asn_PER_type_AccidentSubCauseCode_constr_1, AccidentSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/ActionID.c b/vcits/ssem/src/ActionID.c new file mode 100644 index 0000000..ffc8e40 --- /dev/null +++ b/vcits/ssem/src/ActionID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ActionID.h" + +static asn_TYPE_member_t asn_MBR_ActionID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ActionID, originatingStationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "originatingStationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ActionID, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SequenceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ActionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ActionID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingStationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sequenceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ActionID_specs_1 = { + sizeof(struct ActionID), + offsetof(struct ActionID, _asn_ctx), + asn_MAP_ActionID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ActionID = { + "ActionID", + "ActionID", + &asn_OP_SEQUENCE, + asn_DEF_ActionID_tags_1, + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + asn_DEF_ActionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ActionID_tags_1) + /sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ActionID_1, + 2, /* Elements count */ + &asn_SPC_ActionID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c b/vcits/ssem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c new file mode 100644 index 0000000..f08c66a --- /dev/null +++ b/vcits/ssem/src/AdverseWeatherCondition-AdhesionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AdverseWeatherCondition-AdhesionSubCauseCode.h" + +int +AdverseWeatherCondition_AdhesionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode = { + "AdverseWeatherCondition-AdhesionSubCauseCode", + "AdverseWeatherCondition-AdhesionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, AdverseWeatherCondition_AdhesionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c b/vcits/ssem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c new file mode 100644 index 0000000..9fd7518 --- /dev/null +++ b/vcits/ssem/src/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" + +int +AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = { + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c b/vcits/ssem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c new file mode 100644 index 0000000..4807580 --- /dev/null +++ b/vcits/ssem/src/AdverseWeatherCondition-PrecipitationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AdverseWeatherCondition-PrecipitationSubCauseCode.h" + +int +AdverseWeatherCondition_PrecipitationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode = { + "AdverseWeatherCondition-PrecipitationSubCauseCode", + "AdverseWeatherCondition-PrecipitationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, AdverseWeatherCondition_PrecipitationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c b/vcits/ssem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c new file mode 100644 index 0000000..9150552 --- /dev/null +++ b/vcits/ssem/src/AdverseWeatherCondition-VisibilitySubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AdverseWeatherCondition-VisibilitySubCauseCode.h" + +int +AdverseWeatherCondition_VisibilitySubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode = { + "AdverseWeatherCondition-VisibilitySubCauseCode", + "AdverseWeatherCondition-VisibilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, &asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, AdverseWeatherCondition_VisibilitySubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/AdvisorySpeed.c b/vcits/ssem/src/AdvisorySpeed.c new file mode 100644 index 0000000..a145ba0 --- /dev/null +++ b/vcits/ssem/src/AdvisorySpeed.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AdvisorySpeed.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_AdvisorySpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct AdvisorySpeed__regional), + offsetof(struct AdvisorySpeed__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AdvisorySpeed, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 5, offsetof(struct AdvisorySpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedAdvice, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct AdvisorySpeed, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 3, offsetof(struct AdvisorySpeed, distance), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "distance" + }, + { ATF_POINTER, 2, offsetof(struct AdvisorySpeed, Class), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "class" + }, + { ATF_POINTER, 1, offsetof(struct AdvisorySpeed, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_AdvisorySpeed_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AdvisorySpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* distance */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* class */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1 = { + sizeof(struct AdvisorySpeed), + offsetof(struct AdvisorySpeed, _asn_ctx), + asn_MAP_AdvisorySpeed_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_AdvisorySpeed_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed = { + "AdvisorySpeed", + "AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_AdvisorySpeed_tags_1, + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AdvisorySpeed_1, + 6, /* Elements count */ + &asn_SPC_AdvisorySpeed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/AdvisorySpeedList.c b/vcits/ssem/src/AdvisorySpeedList.c new file mode 100644 index 0000000..5080d6d --- /dev/null +++ b/vcits/ssem/src/AdvisorySpeedList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AdvisorySpeedList.h" + +#include "AdvisorySpeed.h" +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AdvisorySpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1 = { + sizeof(struct AdvisorySpeedList), + offsetof(struct AdvisorySpeedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList = { + "AdvisorySpeedList", + "AdvisorySpeedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_AdvisorySpeedList_tags_1, + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedList_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + { &asn_OER_type_AdvisorySpeedList_constr_1, &asn_PER_type_AdvisorySpeedList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AdvisorySpeedList_1, + 1, /* Single element */ + &asn_SPC_AdvisorySpeedList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/AdvisorySpeedType.c b/vcits/ssem/src/AdvisorySpeedType.c new file mode 100644 index 0000000..5f505fd --- /dev/null +++ b/vcits/ssem/src/AdvisorySpeedType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AdvisorySpeedType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AdvisorySpeedType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 9, "greenwave" }, + { 2, 8, "ecoDrive" }, + { 3, 7, "transit" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_AdvisorySpeedType_enum2value_1[] = { + 2, /* ecoDrive(2) */ + 1, /* greenwave(1) */ + 0, /* none(0) */ + 3 /* transit(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1 = { + asn_MAP_AdvisorySpeedType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AdvisorySpeedType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType = { + "AdvisorySpeedType", + "AdvisorySpeedType", + &asn_OP_NativeEnumerated, + asn_DEF_AdvisorySpeedType_tags_1, + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedType_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + { &asn_OER_type_AdvisorySpeedType_constr_1, &asn_PER_type_AdvisorySpeedType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AdvisorySpeedType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/AllowedManeuvers.c b/vcits/ssem/src/AllowedManeuvers.c new file mode 100644 index 0000000..ea1814c --- /dev/null +++ b/vcits/ssem/src/AllowedManeuvers.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AllowedManeuvers.h" + +int +AllowedManeuvers_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { 0, 0 }, + 12 /* (SIZE(12..12)) */}; +asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 12, 12 } /* (SIZE(12..12)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AllowedManeuvers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers = { + "AllowedManeuvers", + "AllowedManeuvers", + &asn_OP_BIT_STRING, + asn_DEF_AllowedManeuvers_tags_1, + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + asn_DEF_AllowedManeuvers_tags_1, /* Same as above */ + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + { &asn_OER_type_AllowedManeuvers_constr_1, &asn_PER_type_AllowedManeuvers_constr_1, AllowedManeuvers_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/AlphabetIndicator.c b/vcits/ssem/src/AlphabetIndicator.c new file mode 100644 index 0000000..10ff5bc --- /dev/null +++ b/vcits/ssem/src/AlphabetIndicator.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AlphabetIndicator.h" + +int +AlphabetIndicator_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AlphabetIndicator_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +asn_per_constraints_t asn_PER_type_AlphabetIndicator_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AlphabetIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AlphabetIndicator = { + "AlphabetIndicator", + "AlphabetIndicator", + &asn_OP_NativeInteger, + asn_DEF_AlphabetIndicator_tags_1, + sizeof(asn_DEF_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_AlphabetIndicator_tags_1[0]), /* 1 */ + asn_DEF_AlphabetIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_AlphabetIndicator_tags_1[0]), /* 1 */ + { &asn_OER_type_AlphabetIndicator_constr_1, &asn_PER_type_AlphabetIndicator_constr_1, AlphabetIndicator_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Altitude.c b/vcits/ssem/src/Altitude.c new file mode 100644 index 0000000..fbd49b3 --- /dev/null +++ b/vcits/ssem/src/Altitude.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Altitude.h" + +asn_TYPE_member_t asn_MBR_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitudeConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Altitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altitudeValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altitudeConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1 = { + sizeof(struct Altitude), + offsetof(struct Altitude, _asn_ctx), + asn_MAP_Altitude_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_Altitude_tags_1, + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + asn_DEF_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Altitude_1, + 2, /* Elements count */ + &asn_SPC_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/AltitudeConfidence.c b/vcits/ssem/src/AltitudeConfidence.c new file mode 100644 index 0000000..cd12119 --- /dev/null +++ b/vcits/ssem/src/AltitudeConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AltitudeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AltitudeConfidence_value2enum_1[] = { + { 0, 10, "alt-000-01" }, + { 1, 10, "alt-000-02" }, + { 2, 10, "alt-000-05" }, + { 3, 10, "alt-000-10" }, + { 4, 10, "alt-000-20" }, + { 5, 10, "alt-000-50" }, + { 6, 10, "alt-001-00" }, + { 7, 10, "alt-002-00" }, + { 8, 10, "alt-005-00" }, + { 9, 10, "alt-010-00" }, + { 10, 10, "alt-020-00" }, + { 11, 10, "alt-050-00" }, + { 12, 10, "alt-100-00" }, + { 13, 10, "alt-200-00" }, + { 14, 10, "outOfRange" }, + { 15, 11, "unavailable" } +}; +static const unsigned int asn_MAP_AltitudeConfidence_enum2value_1[] = { + 0, /* alt-000-01(0) */ + 1, /* alt-000-02(1) */ + 2, /* alt-000-05(2) */ + 3, /* alt-000-10(3) */ + 4, /* alt-000-20(4) */ + 5, /* alt-000-50(5) */ + 6, /* alt-001-00(6) */ + 7, /* alt-002-00(7) */ + 8, /* alt-005-00(8) */ + 9, /* alt-010-00(9) */ + 10, /* alt-020-00(10) */ + 11, /* alt-050-00(11) */ + 12, /* alt-100-00(12) */ + 13, /* alt-200-00(13) */ + 14, /* outOfRange(14) */ + 15 /* unavailable(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1 = { + asn_MAP_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AltitudeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_AltitudeConfidence_tags_1, + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeConfidence_constr_1, &asn_PER_type_AltitudeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/AltitudeValue.c b/vcits/ssem/src/AltitudeValue.c new file mode 100644 index 0000000..d638c4a --- /dev/null +++ b/vcits/ssem/src/AltitudeValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AltitudeValue.h" + +int +AltitudeValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -100000 && value <= 800001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-100000..800001) */, + -1}; +asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, -100000, 800001 } /* (-100000..800001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_AltitudeValue_tags_1, + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + { &asn_OER_type_AltitudeValue_constr_1, &asn_PER_type_AltitudeValue_constr_1, AltitudeValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Angle.c b/vcits/ssem/src/Angle.c new file mode 100644 index 0000000..de6e9c7 --- /dev/null +++ b/vcits/ssem/src/Angle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Angle.h" + +int +Angle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 28800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Angle_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +asn_per_constraints_t asn_PER_type_Angle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Angle = { + "Angle", + "Angle", + &asn_OP_NativeInteger, + asn_DEF_Angle_tags_1, + sizeof(asn_DEF_Angle_tags_1) + /sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */ + asn_DEF_Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_Angle_tags_1) + /sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */ + { &asn_OER_type_Angle_constr_1, &asn_PER_type_Angle_constr_1, Angle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/AntennaOffsetSet.c b/vcits/ssem/src/AntennaOffsetSet.c new file mode 100644 index 0000000..3964fcb --- /dev/null +++ b/vcits/ssem/src/AntennaOffsetSet.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AntennaOffsetSet.h" + +asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetX), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetX" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetY), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B09, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetY" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetZ), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "antOffsetZ" + }, +}; +static const ber_tlv_tag_t asn_DEF_AntennaOffsetSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AntennaOffsetSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* antOffsetX */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* antOffsetY */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* antOffsetZ */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1 = { + sizeof(struct AntennaOffsetSet), + offsetof(struct AntennaOffsetSet, _asn_ctx), + asn_MAP_AntennaOffsetSet_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet = { + "AntennaOffsetSet", + "AntennaOffsetSet", + &asn_OP_SEQUENCE, + asn_DEF_AntennaOffsetSet_tags_1, + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + asn_DEF_AntennaOffsetSet_tags_1, /* Same as above */ + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AntennaOffsetSet_1, + 3, /* Elements count */ + &asn_SPC_AntennaOffsetSet_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ApproachID.c b/vcits/ssem/src/ApproachID.c new file mode 100644 index 0000000..16c7c26 --- /dev/null +++ b/vcits/ssem/src/ApproachID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ApproachID.h" + +int +ApproachID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ApproachID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_ApproachID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ApproachID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ApproachID = { + "ApproachID", + "ApproachID", + &asn_OP_NativeInteger, + asn_DEF_ApproachID_tags_1, + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + asn_DEF_ApproachID_tags_1, /* Same as above */ + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + { &asn_OER_type_ApproachID_constr_1, &asn_PER_type_ApproachID_constr_1, ApproachID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/AviEriDateTime.c b/vcits/ssem/src/AviEriDateTime.c new file mode 100644 index 0000000..df41a37 --- /dev/null +++ b/vcits/ssem/src/AviEriDateTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "AviEriDateTime.h" + +int +AviEriDateTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AviEriDateTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_AviEriDateTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AviEriDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AviEriDateTime = { + "AviEriDateTime", + "AviEriDateTime", + &asn_OP_OCTET_STRING, + asn_DEF_AviEriDateTime_tags_1, + sizeof(asn_DEF_AviEriDateTime_tags_1) + /sizeof(asn_DEF_AviEriDateTime_tags_1[0]), /* 1 */ + asn_DEF_AviEriDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_AviEriDateTime_tags_1) + /sizeof(asn_DEF_AviEriDateTime_tags_1[0]), /* 1 */ + { &asn_OER_type_AviEriDateTime_constr_1, &asn_PER_type_AviEriDateTime_constr_1, AviEriDateTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/BasicVehicleRole.c b/vcits/ssem/src/BasicVehicleRole.c new file mode 100644 index 0000000..282ed1a --- /dev/null +++ b/vcits/ssem/src/BasicVehicleRole.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "BasicVehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 22 } /* (0..22,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BasicVehicleRole_value2enum_1[] = { + { 0, 12, "basicVehicle" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 10, "roadRescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 12, "none-unknown" }, + { 9, 5, "truck" }, + { 10, 10, "motorcycle" }, + { 11, 14, "roadSideSource" }, + { 12, 6, "police" }, + { 13, 4, "fire" }, + { 14, 9, "ambulance" }, + { 15, 3, "dot" }, + { 16, 7, "transit" }, + { 17, 10, "slowMoving" }, + { 18, 7, "stopNgo" }, + { 19, 7, "cyclist" }, + { 20, 10, "pedestrian" }, + { 21, 12, "nonMotorized" }, + { 22, 8, "military" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BasicVehicleRole_enum2value_1[] = { + 14, /* ambulance(14) */ + 0, /* basicVehicle(0) */ + 19, /* cyclist(19) */ + 3, /* dangerousGoods(3) */ + 15, /* dot(15) */ + 6, /* emergency(6) */ + 13, /* fire(13) */ + 22, /* military(22) */ + 10, /* motorcycle(10) */ + 21, /* nonMotorized(21) */ + 8, /* none-unknown(8) */ + 20, /* pedestrian(20) */ + 12, /* police(12) */ + 1, /* publicTransport(1) */ + 5, /* roadRescue(5) */ + 11, /* roadSideSource(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 17, /* slowMoving(17) */ + 2, /* specialTransport(2) */ + 18, /* stopNgo(18) */ + 16, /* transit(16) */ + 9 /* truck(9) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1 = { + asn_MAP_BasicVehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BasicVehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 23, /* Number of elements in the maps */ + 24, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BasicVehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole = { + "BasicVehicleRole", + "BasicVehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_BasicVehicleRole_tags_1, + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + asn_DEF_BasicVehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_BasicVehicleRole_constr_1, &asn_PER_type_BasicVehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BasicVehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/BatteryStatus.c b/vcits/ssem/src/BatteryStatus.c new file mode 100644 index 0000000..742415a --- /dev/null +++ b/vcits/ssem/src/BatteryStatus.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "BatteryStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BatteryStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BatteryStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BatteryStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "critical" }, + { 2, 3, "low" }, + { 3, 4, "good" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BatteryStatus_enum2value_1[] = { + 1, /* critical(1) */ + 3, /* good(3) */ + 2, /* low(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BatteryStatus_specs_1 = { + asn_MAP_BatteryStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BatteryStatus_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BatteryStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BatteryStatus = { + "BatteryStatus", + "BatteryStatus", + &asn_OP_NativeEnumerated, + asn_DEF_BatteryStatus_tags_1, + sizeof(asn_DEF_BatteryStatus_tags_1) + /sizeof(asn_DEF_BatteryStatus_tags_1[0]), /* 1 */ + asn_DEF_BatteryStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_BatteryStatus_tags_1) + /sizeof(asn_DEF_BatteryStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_BatteryStatus_constr_1, &asn_PER_type_BatteryStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BatteryStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CS1.c b/vcits/ssem/src/CS1.c new file mode 100644 index 0000000..c7a05ba --- /dev/null +++ b/vcits/ssem/src/CS1.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CS1.h" + +static asn_TYPE_member_t asn_MBR_CS1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS1, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS1, issuerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IssuerIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "issuerIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS1, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* issuerIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* serviceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS1_specs_1 = { + sizeof(struct CS1), + offsetof(struct CS1, _asn_ctx), + asn_MAP_CS1_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS1 = { + "CS1", + "CS1", + &asn_OP_SEQUENCE, + asn_DEF_CS1_tags_1, + sizeof(asn_DEF_CS1_tags_1) + /sizeof(asn_DEF_CS1_tags_1[0]), /* 1 */ + asn_DEF_CS1_tags_1, /* Same as above */ + sizeof(asn_DEF_CS1_tags_1) + /sizeof(asn_DEF_CS1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS1_1, + 3, /* Elements count */ + &asn_SPC_CS1_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CS2.c b/vcits/ssem/src/CS2.c new file mode 100644 index 0000000..7b3d3f9 --- /dev/null +++ b/vcits/ssem/src/CS2.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CS2.h" + +static asn_TYPE_member_t asn_MBR_CS2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS2, manufacturerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManufacturerIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "manufacturerIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS2, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* manufacturerIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* serviceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS2_specs_1 = { + sizeof(struct CS2), + offsetof(struct CS2, _asn_ctx), + asn_MAP_CS2_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS2 = { + "CS2", + "CS2", + &asn_OP_SEQUENCE, + asn_DEF_CS2_tags_1, + sizeof(asn_DEF_CS2_tags_1) + /sizeof(asn_DEF_CS2_tags_1[0]), /* 1 */ + asn_DEF_CS2_tags_1, /* Same as above */ + sizeof(asn_DEF_CS2_tags_1) + /sizeof(asn_DEF_CS2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS2_1, + 2, /* Elements count */ + &asn_SPC_CS2_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CS3.c b/vcits/ssem/src/CS3.c new file mode 100644 index 0000000..42b34f7 --- /dev/null +++ b/vcits/ssem/src/CS3.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CS3.h" + +static asn_TYPE_member_t asn_MBR_CS3_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS3, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StartTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, stopTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StopTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stopTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, geographLimit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GeoGraphicalLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "geographLimit" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS3, serviceAppLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServiceApplicationLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceAppLimit" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS3_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* stopTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* geographLimit */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* serviceAppLimit */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS3_specs_1 = { + sizeof(struct CS3), + offsetof(struct CS3, _asn_ctx), + asn_MAP_CS3_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS3 = { + "CS3", + "CS3", + &asn_OP_SEQUENCE, + asn_DEF_CS3_tags_1, + sizeof(asn_DEF_CS3_tags_1) + /sizeof(asn_DEF_CS3_tags_1[0]), /* 1 */ + asn_DEF_CS3_tags_1, /* Same as above */ + sizeof(asn_DEF_CS3_tags_1) + /sizeof(asn_DEF_CS3_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS3_1, + 4, /* Elements count */ + &asn_SPC_CS3_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CS4.c b/vcits/ssem/src/CS4.c new file mode 100644 index 0000000..64d4fa5 --- /dev/null +++ b/vcits/ssem/src/CS4.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CS4.h" + +static asn_oer_constraints_t asn_OER_type_CS4_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_CS4_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS4_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS4, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS4, alphabetIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AlphabetIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "alphabetIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS4, licPlateNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LicPlateNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "licPlateNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS4_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* alphabetIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* licPlateNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS4_specs_1 = { + sizeof(struct CS4), + offsetof(struct CS4, _asn_ctx), + asn_MAP_CS4_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS4 = { + "CS4", + "CS4", + &asn_OP_SEQUENCE, + asn_DEF_CS4_tags_1, + sizeof(asn_DEF_CS4_tags_1) + /sizeof(asn_DEF_CS4_tags_1[0]), /* 1 */ + asn_DEF_CS4_tags_1, /* Same as above */ + sizeof(asn_DEF_CS4_tags_1) + /sizeof(asn_DEF_CS4_tags_1[0]), /* 1 */ + { &asn_OER_type_CS4_constr_1, &asn_PER_type_CS4_constr_1, SEQUENCE_constraint }, + asn_MBR_CS4_1, + 3, /* Elements count */ + &asn_SPC_CS4_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CS5.c b/vcits/ssem/src/CS5.c new file mode 100644 index 0000000..b00b0de --- /dev/null +++ b/vcits/ssem/src/CS5.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CS5.h" + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 9)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_fill_constr_3 CC_NOTUSED = { + { 0, 0 }, + 9 /* (SIZE(9..9)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 9, 9 } /* (SIZE(9..9)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS5_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS5, vin), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VisibleString, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vin" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS5, fill), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_3, &asn_PER_memb_fill_constr_3, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS5_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS5_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vin */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fill */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS5_specs_1 = { + sizeof(struct CS5), + offsetof(struct CS5, _asn_ctx), + asn_MAP_CS5_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS5 = { + "CS5", + "CS5", + &asn_OP_SEQUENCE, + asn_DEF_CS5_tags_1, + sizeof(asn_DEF_CS5_tags_1) + /sizeof(asn_DEF_CS5_tags_1[0]), /* 1 */ + asn_DEF_CS5_tags_1, /* Same as above */ + sizeof(asn_DEF_CS5_tags_1) + /sizeof(asn_DEF_CS5_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS5_1, + 2, /* Elements count */ + &asn_SPC_CS5_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CS7.c b/vcits/ssem/src/CS7.c new file mode 100644 index 0000000..7a15a28 --- /dev/null +++ b/vcits/ssem/src/CS7.c @@ -0,0 +1,32 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CS7.h" + +/* + * This type is implemented using FreightContainerData, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_CS7_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CS7 = { + "CS7", + "CS7", + &asn_OP_SEQUENCE, + asn_DEF_CS7_tags_1, + sizeof(asn_DEF_CS7_tags_1) + /sizeof(asn_DEF_CS7_tags_1[0]), /* 1 */ + asn_DEF_CS7_tags_1, /* Same as above */ + sizeof(asn_DEF_CS7_tags_1) + /sizeof(asn_DEF_CS7_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CS8.c b/vcits/ssem/src/CS8.c new file mode 100644 index 0000000..636c773 --- /dev/null +++ b/vcits/ssem/src/CS8.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CS8.h" + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 6)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_fill_constr_2 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_CS8_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CS8, fill), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_2, &asn_PER_memb_fill_constr_2, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS8, countryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CountryCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CS8, taxCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TaxCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "taxCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CS8_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CS8_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fill */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* taxCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CS8_specs_1 = { + sizeof(struct CS8), + offsetof(struct CS8, _asn_ctx), + asn_MAP_CS8_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CS8 = { + "CS8", + "CS8", + &asn_OP_SEQUENCE, + asn_DEF_CS8_tags_1, + sizeof(asn_DEF_CS8_tags_1) + /sizeof(asn_DEF_CS8_tags_1[0]), /* 1 */ + asn_DEF_CS8_tags_1, /* Same as above */ + sizeof(asn_DEF_CS8_tags_1) + /sizeof(asn_DEF_CS8_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CS8_1, + 3, /* Elements count */ + &asn_SPC_CS8_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CauseCode.c b/vcits/ssem/src/CauseCode.c new file mode 100644 index 0000000..e183e23 --- /dev/null +++ b/vcits/ssem/src/CauseCode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CauseCode.h" + +static asn_TYPE_member_t asn_MBR_CauseCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, causeCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "causeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct CauseCode, subCauseCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubCauseCodeType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subCauseCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_CauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CauseCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* causeCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* subCauseCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CauseCode_specs_1 = { + sizeof(struct CauseCode), + offsetof(struct CauseCode, _asn_ctx), + asn_MAP_CauseCode_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CauseCode = { + "CauseCode", + "CauseCode", + &asn_OP_SEQUENCE, + asn_DEF_CauseCode_tags_1, + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + asn_DEF_CauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCode_tags_1) + /sizeof(asn_DEF_CauseCode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CauseCode_1, + 2, /* Elements count */ + &asn_SPC_CauseCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CauseCodeType.c b/vcits/ssem/src/CauseCodeType.c new file mode 100644 index 0000000..d3e6dec --- /dev/null +++ b/vcits/ssem/src/CauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CauseCodeType.h" + +int +CauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_CauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseCodeType = { + "CauseCodeType", + "CauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_CauseCodeType_tags_1, + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_CauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseCodeType_tags_1) + /sizeof(asn_DEF_CauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseCodeType_constr_1, &asn_PER_type_CauseCodeType_constr_1, CauseCodeType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/CenDsrcTollingZone.c b/vcits/ssem/src/CenDsrcTollingZone.c new file mode 100644 index 0000000..c7ad64e --- /dev/null +++ b/vcits/ssem/src/CenDsrcTollingZone.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CenDsrcTollingZone.h" + +static asn_TYPE_member_t asn_MBR_CenDsrcTollingZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct CenDsrcTollingZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 1, offsetof(struct CenDsrcTollingZone, cenDsrcTollingZoneID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CenDsrcTollingZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cenDsrcTollingZoneID" + }, +}; +static const int asn_MAP_CenDsrcTollingZone_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CenDsrcTollingZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cenDsrcTollingZoneID */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CenDsrcTollingZone_specs_1 = { + sizeof(struct CenDsrcTollingZone), + offsetof(struct CenDsrcTollingZone, _asn_ctx), + asn_MAP_CenDsrcTollingZone_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CenDsrcTollingZone_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZone = { + "CenDsrcTollingZone", + "CenDsrcTollingZone", + &asn_OP_SEQUENCE, + asn_DEF_CenDsrcTollingZone_tags_1, + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZone_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CenDsrcTollingZone_1, + 3, /* Elements count */ + &asn_SPC_CenDsrcTollingZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CenDsrcTollingZoneID.c b/vcits/ssem/src/CenDsrcTollingZoneID.c new file mode 100644 index 0000000..c82cff8 --- /dev/null +++ b/vcits/ssem/src/CenDsrcTollingZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CenDsrcTollingZoneID.h" + +int +CenDsrcTollingZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using ProtectedZoneID, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CenDsrcTollingZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CenDsrcTollingZoneID = { + "CenDsrcTollingZoneID", + "CenDsrcTollingZoneID", + &asn_OP_NativeInteger, + asn_DEF_CenDsrcTollingZoneID_tags_1, + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + asn_DEF_CenDsrcTollingZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_CenDsrcTollingZoneID_constr_1, &asn_PER_type_CenDsrcTollingZoneID_constr_1, CenDsrcTollingZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/ClosedLanes.c b/vcits/ssem/src/ClosedLanes.c new file mode 100644 index 0000000..b03d46e --- /dev/null +++ b/vcits/ssem/src/ClosedLanes.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ClosedLanes.h" + +static asn_TYPE_member_t asn_MBR_ClosedLanes_1[] = { + { ATF_POINTER, 3, offsetof(struct ClosedLanes, innerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "innerhardShoulderStatus" + }, + { ATF_POINTER, 2, offsetof(struct ClosedLanes, outerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HardShoulderStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outerhardShoulderStatus" + }, + { ATF_POINTER, 1, offsetof(struct ClosedLanes, drivingLaneStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivingLaneStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drivingLaneStatus" + }, +}; +static const int asn_MAP_ClosedLanes_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ClosedLanes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ClosedLanes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* innerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* outerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* drivingLaneStatus */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ClosedLanes_specs_1 = { + sizeof(struct ClosedLanes), + offsetof(struct ClosedLanes, _asn_ctx), + asn_MAP_ClosedLanes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ClosedLanes_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ClosedLanes = { + "ClosedLanes", + "ClosedLanes", + &asn_OP_SEQUENCE, + asn_DEF_ClosedLanes_tags_1, + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + asn_DEF_ClosedLanes_tags_1, /* Same as above */ + sizeof(asn_DEF_ClosedLanes_tags_1) + /sizeof(asn_DEF_ClosedLanes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ClosedLanes_1, + 3, /* Elements count */ + &asn_SPC_ClosedLanes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CollisionRiskSubCauseCode.c b/vcits/ssem/src/CollisionRiskSubCauseCode.c new file mode 100644 index 0000000..b80ba64 --- /dev/null +++ b/vcits/ssem/src/CollisionRiskSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CollisionRiskSubCauseCode.h" + +int +CollisionRiskSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_CollisionRiskSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CollisionRiskSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CollisionRiskSubCauseCode = { + "CollisionRiskSubCauseCode", + "CollisionRiskSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_CollisionRiskSubCauseCode_tags_1, + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_CollisionRiskSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CollisionRiskSubCauseCode_constr_1, &asn_PER_type_CollisionRiskSubCauseCode_constr_1, CollisionRiskSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/ComputedLane.c b/vcits/ssem/src/ComputedLane.c new file mode 100644 index 0000000..8d01501 --- /dev/null +++ b/vcits/ssem/src/ComputedLane.c @@ -0,0 +1,306 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ComputedLane.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_offsetXaxis_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetXaxis_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetXaxis_specs_3 = { + sizeof(struct ComputedLane__offsetXaxis), + offsetof(struct ComputedLane__offsetXaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetXaxis, present), + sizeof(((struct ComputedLane__offsetXaxis *)0)->present), + asn_MAP_offsetXaxis_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetXaxis_3 = { + "offsetXaxis", + "offsetXaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_offsetXaxis_constr_3, &asn_PER_type_offsetXaxis_constr_3, CHOICE_constraint }, + asn_MBR_offsetXaxis_3, + 2, /* Elements count */ + &asn_SPC_offsetXaxis_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_offsetYaxis_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetYaxis_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetYaxis_specs_6 = { + sizeof(struct ComputedLane__offsetYaxis), + offsetof(struct ComputedLane__offsetYaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetYaxis, present), + sizeof(((struct ComputedLane__offsetYaxis *)0)->present), + asn_MAP_offsetYaxis_tag2el_6, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetYaxis_6 = { + "offsetYaxis", + "offsetYaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_offsetYaxis_constr_6, &asn_PER_type_offsetYaxis_constr_6, CHOICE_constraint }, + asn_MBR_offsetYaxis_6, + 2, /* Elements count */ + &asn_SPC_offsetYaxis_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regional_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ComputedLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_12 = { + sizeof(struct ComputedLane__regional), + offsetof(struct ComputedLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_12 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_12, + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]) - 1, /* 1 */ + asn_DEF_regional_tags_12, /* Same as above */ + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]), /* 2 */ + { &asn_OER_type_regional_constr_12, &asn_PER_type_regional_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_regional_12, + 1, /* Single element */ + &asn_SPC_regional_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ComputedLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, referenceLaneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceLaneId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetXaxis), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetXaxis_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetXaxis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetYaxis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetYaxis_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetYaxis" + }, + { ATF_POINTER, 4, offsetof(struct ComputedLane, rotateXY), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rotateXY" + }, + { ATF_POINTER, 3, offsetof(struct ComputedLane, scaleXaxis), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaleXaxis" + }, + { ATF_POINTER, 2, offsetof(struct ComputedLane, scaleYaxis), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaleYaxis" + }, + { ATF_POINTER, 1, offsetof(struct ComputedLane, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_12, + 0, + { &asn_OER_memb_regional_constr_12, &asn_PER_memb_regional_constr_12, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ComputedLane_oms_1[] = { 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ComputedLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ComputedLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceLaneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* offsetXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* offsetYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rotateXY */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* scaleXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* scaleYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1 = { + sizeof(struct ComputedLane), + offsetof(struct ComputedLane, _asn_ctx), + asn_MAP_ComputedLane_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ComputedLane_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ComputedLane = { + "ComputedLane", + "ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_ComputedLane_tags_1, + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + asn_DEF_ComputedLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ComputedLane_1, + 7, /* Elements count */ + &asn_SPC_ComputedLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ConnectingLane.c b/vcits/ssem/src/ConnectingLane.c new file mode 100644 index 0000000..e41e550 --- /dev/null +++ b/vcits/ssem/src/ConnectingLane.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ConnectingLane.h" + +asn_TYPE_member_t asn_MBR_ConnectingLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectingLane, lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 1, offsetof(struct ConnectingLane, maneuver), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuver" + }, +}; +static const int asn_MAP_ConnectingLane_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ConnectingLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectingLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maneuver */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1 = { + sizeof(struct ConnectingLane), + offsetof(struct ConnectingLane, _asn_ctx), + asn_MAP_ConnectingLane_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ConnectingLane_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectingLane = { + "ConnectingLane", + "ConnectingLane", + &asn_OP_SEQUENCE, + asn_DEF_ConnectingLane_tags_1, + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + asn_DEF_ConnectingLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectingLane_1, + 2, /* Elements count */ + &asn_SPC_ConnectingLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Connection.c b/vcits/ssem/src/Connection.c new file mode 100644 index 0000000..6c1df7e --- /dev/null +++ b/vcits/ssem/src/Connection.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Connection.h" + +#include "IntersectionReferenceID.h" +asn_TYPE_member_t asn_MBR_Connection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Connection, connectingLane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectingLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectingLane" + }, + { ATF_POINTER, 4, offsetof(struct Connection, remoteIntersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "remoteIntersection" + }, + { ATF_POINTER, 3, offsetof(struct Connection, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_POINTER, 2, offsetof(struct Connection, userClass), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "userClass" + }, + { ATF_POINTER, 1, offsetof(struct Connection, connectionID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const int asn_MAP_Connection_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Connection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Connection_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectingLane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* remoteIntersection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* userClass */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1 = { + sizeof(struct Connection), + offsetof(struct Connection, _asn_ctx), + asn_MAP_Connection_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Connection_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Connection = { + "Connection", + "Connection", + &asn_OP_SEQUENCE, + asn_DEF_Connection_tags_1, + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + asn_DEF_Connection_tags_1, /* Same as above */ + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Connection_1, + 5, /* Elements count */ + &asn_SPC_Connection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ConnectionManeuverAssist-addGrpC.c b/vcits/ssem/src/ConnectionManeuverAssist-addGrpC.c new file mode 100644 index 0000000..0b36cea --- /dev/null +++ b/vcits/ssem/src/ConnectionManeuverAssist-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ConnectionManeuverAssist-addGrpC.h" + +#include "ItsStationPositionList.h" +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist_addGrpC, itsStationPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsStationPositionList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "itsStationPosition" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* itsStationPosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 = { + sizeof(struct ConnectionManeuverAssist_addGrpC), + offsetof(struct ConnectionManeuverAssist_addGrpC, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC = { + "ConnectionManeuverAssist-addGrpC", + "ConnectionManeuverAssist-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionManeuverAssist_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ConnectionManeuverAssist.c b/vcits/ssem/src/ConnectionManeuverAssist.c new file mode 100644 index 0000000..e631ffa --- /dev/null +++ b/vcits/ssem/src/ConnectionManeuverAssist.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ConnectionManeuverAssist.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ConnectionManeuverAssist, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct ConnectionManeuverAssist__regional), + offsetof(struct ConnectionManeuverAssist__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionManeuverAssist, connectionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 5, offsetof(struct ConnectionManeuverAssist, queueLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "queueLength" + }, + { ATF_POINTER, 4, offsetof(struct ConnectionManeuverAssist, availableStorageLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "availableStorageLength" + }, + { ATF_POINTER, 3, offsetof(struct ConnectionManeuverAssist, waitOnStop), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WaitOnStopline, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "waitOnStop" + }, + { ATF_POINTER, 2, offsetof(struct ConnectionManeuverAssist, pedBicycleDetect), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PedestrianBicycleDetect, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pedBicycleDetect" + }, + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* queueLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* availableStorageLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* waitOnStop */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pedBicycleDetect */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1 = { + sizeof(struct ConnectionManeuverAssist), + offsetof(struct ConnectionManeuverAssist, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist = { + "ConnectionManeuverAssist", + "ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionManeuverAssist_1, + 6, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ConnectionTrajectory-addGrpC.c b/vcits/ssem/src/ConnectionTrajectory-addGrpC.c new file mode 100644 index 0000000..893c394 --- /dev/null +++ b/vcits/ssem/src/ConnectionTrajectory-addGrpC.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ConnectionTrajectory-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ConnectionTrajectory_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionTrajectory_addGrpC, nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConnectionTrajectory_addGrpC, connectionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectionTrajectory_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionTrajectory_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionTrajectory_addGrpC_specs_1 = { + sizeof(struct ConnectionTrajectory_addGrpC), + offsetof(struct ConnectionTrajectory_addGrpC, _asn_ctx), + asn_MAP_ConnectionTrajectory_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionTrajectory_addGrpC = { + "ConnectionTrajectory-addGrpC", + "ConnectionTrajectory-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionTrajectory_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionTrajectory_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnectionTrajectory_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_ConnectionTrajectory_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ConnectsToList.c b/vcits/ssem/src/ConnectsToList.c new file mode 100644 index 0000000..2ed5cfe --- /dev/null +++ b/vcits/ssem/src/ConnectsToList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ConnectsToList.h" + +#include "Connection.h" +static asn_oer_constraints_t asn_OER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ConnectsToList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Connection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectsToList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1 = { + sizeof(struct ConnectsToList), + offsetof(struct ConnectsToList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectsToList = { + "ConnectsToList", + "ConnectsToList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ConnectsToList_tags_1, + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + asn_DEF_ConnectsToList_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + { &asn_OER_type_ConnectsToList_constr_1, &asn_PER_type_ConnectsToList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ConnectsToList_1, + 1, /* Single element */ + &asn_SPC_ConnectsToList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CountryCode.c b/vcits/ssem/src/CountryCode.c new file mode 100644 index 0000000..d9291b7 --- /dev/null +++ b/vcits/ssem/src/CountryCode.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CountryCode.h" + +int +CountryCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CountryCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_CountryCode_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CountryCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CountryCode = { + "CountryCode", + "CountryCode", + &asn_OP_BIT_STRING, + asn_DEF_CountryCode_tags_1, + sizeof(asn_DEF_CountryCode_tags_1) + /sizeof(asn_DEF_CountryCode_tags_1[0]), /* 1 */ + asn_DEF_CountryCode_tags_1, /* Same as above */ + sizeof(asn_DEF_CountryCode_tags_1) + /sizeof(asn_DEF_CountryCode_tags_1[0]), /* 1 */ + { &asn_OER_type_CountryCode_constr_1, &asn_PER_type_CountryCode_constr_1, CountryCode_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Curvature.c b/vcits/ssem/src/Curvature.c new file mode 100644 index 0000000..a8670a1 --- /dev/null +++ b/vcits/ssem/src/Curvature.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Curvature.h" + +static asn_TYPE_member_t asn_MBR_Curvature_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Curvature, curvatureConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CurvatureConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "curvatureConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Curvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Curvature_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* curvatureValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* curvatureConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Curvature_specs_1 = { + sizeof(struct Curvature), + offsetof(struct Curvature, _asn_ctx), + asn_MAP_Curvature_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Curvature = { + "Curvature", + "Curvature", + &asn_OP_SEQUENCE, + asn_DEF_Curvature_tags_1, + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + asn_DEF_Curvature_tags_1, /* Same as above */ + sizeof(asn_DEF_Curvature_tags_1) + /sizeof(asn_DEF_Curvature_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Curvature_1, + 2, /* Elements count */ + &asn_SPC_Curvature_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CurvatureCalculationMode.c b/vcits/ssem/src/CurvatureCalculationMode.c new file mode 100644 index 0000000..aba023f --- /dev/null +++ b/vcits/ssem/src/CurvatureCalculationMode.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CurvatureCalculationMode.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureCalculationMode_value2enum_1[] = { + { 0, 11, "yawRateUsed" }, + { 1, 14, "yawRateNotUsed" }, + { 2, 11, "unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CurvatureCalculationMode_enum2value_1[] = { + 2, /* unavailable(2) */ + 1, /* yawRateNotUsed(1) */ + 0 /* yawRateUsed(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_CurvatureCalculationMode_specs_1 = { + asn_MAP_CurvatureCalculationMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureCalculationMode_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureCalculationMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureCalculationMode = { + "CurvatureCalculationMode", + "CurvatureCalculationMode", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureCalculationMode_tags_1, + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + asn_DEF_CurvatureCalculationMode_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_CurvatureCalculationMode_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureCalculationMode_constr_1, &asn_PER_type_CurvatureCalculationMode_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureCalculationMode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CurvatureConfidence.c b/vcits/ssem/src/CurvatureConfidence.c new file mode 100644 index 0000000..40d30c8 --- /dev/null +++ b/vcits/ssem/src/CurvatureConfidence.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CurvatureConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CurvatureConfidence_value2enum_1[] = { + { 0, 19, "onePerMeter-0-00002" }, + { 1, 18, "onePerMeter-0-0001" }, + { 2, 18, "onePerMeter-0-0005" }, + { 3, 17, "onePerMeter-0-002" }, + { 4, 16, "onePerMeter-0-01" }, + { 5, 15, "onePerMeter-0-1" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_CurvatureConfidence_enum2value_1[] = { + 0, /* onePerMeter-0-00002(0) */ + 1, /* onePerMeter-0-0001(1) */ + 2, /* onePerMeter-0-0005(2) */ + 3, /* onePerMeter-0-002(3) */ + 4, /* onePerMeter-0-01(4) */ + 5, /* onePerMeter-0-1(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_CurvatureConfidence_specs_1 = { + asn_MAP_CurvatureConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CurvatureConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CurvatureConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureConfidence = { + "CurvatureConfidence", + "CurvatureConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_CurvatureConfidence_tags_1, + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + asn_DEF_CurvatureConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_CurvatureConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureConfidence_constr_1, &asn_PER_type_CurvatureConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CurvatureConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/CurvatureValue.c b/vcits/ssem/src/CurvatureValue.c new file mode 100644 index 0000000..535374f --- /dev/null +++ b/vcits/ssem/src/CurvatureValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "CurvatureValue.h" + +int +CurvatureValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1023 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1023..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_CurvatureValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1023, 1023 } /* (-1023..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CurvatureValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CurvatureValue = { + "CurvatureValue", + "CurvatureValue", + &asn_OP_NativeInteger, + asn_DEF_CurvatureValue_tags_1, + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + asn_DEF_CurvatureValue_tags_1, /* Same as above */ + sizeof(asn_DEF_CurvatureValue_tags_1) + /sizeof(asn_DEF_CurvatureValue_tags_1[0]), /* 1 */ + { &asn_OER_type_CurvatureValue_constr_1, &asn_PER_type_CurvatureValue_constr_1, CurvatureValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DDateTime.c b/vcits/ssem/src/DDateTime.c new file mode 100644 index 0000000..924ab0c --- /dev/null +++ b/vcits/ssem/src/DDateTime.c @@ -0,0 +1,112 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DDateTime.h" + +asn_TYPE_member_t asn_MBR_DDateTime_1[] = { + { ATF_POINTER, 7, offsetof(struct DDateTime, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "year" + }, + { ATF_POINTER, 6, offsetof(struct DDateTime, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMonth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "month" + }, + { ATF_POINTER, 5, offsetof(struct DDateTime, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDay, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "day" + }, + { ATF_POINTER, 4, offsetof(struct DDateTime, hour), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DHour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hour" + }, + { ATF_POINTER, 3, offsetof(struct DDateTime, minute), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMinute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct DDateTime, second), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct DDateTime, offset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offset" + }, +}; +static const int asn_MAP_DDateTime_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_DDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DDateTime_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* day */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hour */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* offset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1 = { + sizeof(struct DDateTime), + offsetof(struct DDateTime, _asn_ctx), + asn_MAP_DDateTime_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_DDateTime_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DDateTime = { + "DDateTime", + "DDateTime", + &asn_OP_SEQUENCE, + asn_DEF_DDateTime_tags_1, + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + asn_DEF_DDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DDateTime_1, + 7, /* Elements count */ + &asn_SPC_DDateTime_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/DDay.c b/vcits/ssem/src/DDay.c new file mode 100644 index 0000000..256a25d --- /dev/null +++ b/vcits/ssem/src/DDay.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DDay.h" + +int +DDay_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DDay_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_DDay_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DDay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DDay = { + "DDay", + "DDay", + &asn_OP_NativeInteger, + asn_DEF_DDay_tags_1, + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + asn_DEF_DDay_tags_1, /* Same as above */ + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + { &asn_OER_type_DDay_constr_1, &asn_PER_type_DDay_constr_1, DDay_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DHour.c b/vcits/ssem/src/DHour.c new file mode 100644 index 0000000..0379d2e --- /dev/null +++ b/vcits/ssem/src/DHour.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DHour.h" + +int +DHour_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DHour_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_DHour_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DHour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DHour = { + "DHour", + "DHour", + &asn_OP_NativeInteger, + asn_DEF_DHour_tags_1, + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + asn_DEF_DHour_tags_1, /* Same as above */ + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + { &asn_OER_type_DHour_constr_1, &asn_PER_type_DHour_constr_1, DHour_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DMinute.c b/vcits/ssem/src/DMinute.c new file mode 100644 index 0000000..2bc9406 --- /dev/null +++ b/vcits/ssem/src/DMinute.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DMinute.h" + +int +DMinute_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 60)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DMinute_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..60) */, + -1}; +asn_per_constraints_t asn_PER_type_DMinute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 60 } /* (0..60) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DMinute_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMinute = { + "DMinute", + "DMinute", + &asn_OP_NativeInteger, + asn_DEF_DMinute_tags_1, + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + asn_DEF_DMinute_tags_1, /* Same as above */ + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + { &asn_OER_type_DMinute_constr_1, &asn_PER_type_DMinute_constr_1, DMinute_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DMonth.c b/vcits/ssem/src/DMonth.c new file mode 100644 index 0000000..5c0dc8c --- /dev/null +++ b/vcits/ssem/src/DMonth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DMonth.h" + +int +DMonth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DMonth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..12) */, + -1}; +asn_per_constraints_t asn_PER_type_DMonth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DMonth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMonth = { + "DMonth", + "DMonth", + &asn_OP_NativeInteger, + asn_DEF_DMonth_tags_1, + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + asn_DEF_DMonth_tags_1, /* Same as above */ + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + { &asn_OER_type_DMonth_constr_1, &asn_PER_type_DMonth_constr_1, DMonth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DOffset.c b/vcits/ssem/src/DOffset.c new file mode 100644 index 0000000..950122d --- /dev/null +++ b/vcits/ssem/src/DOffset.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DOffset.h" + +int +DOffset_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -840 && value <= 840)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DOffset_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-840..840) */, + -1}; +asn_per_constraints_t asn_PER_type_DOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -840, 840 } /* (-840..840) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DOffset = { + "DOffset", + "DOffset", + &asn_OP_NativeInteger, + asn_DEF_DOffset_tags_1, + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + asn_DEF_DOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + { &asn_OER_type_DOffset_constr_1, &asn_PER_type_DOffset_constr_1, DOffset_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DSRCmsgID.c b/vcits/ssem/src/DSRCmsgID.c new file mode 100644 index 0000000..ce05b6d --- /dev/null +++ b/vcits/ssem/src/DSRCmsgID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DSRCmsgID.h" + +int +DSRCmsgID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DSRCmsgID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSRCmsgID = { + "DSRCmsgID", + "DSRCmsgID", + &asn_OP_NativeInteger, + asn_DEF_DSRCmsgID_tags_1, + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + asn_DEF_DSRCmsgID_tags_1, /* Same as above */ + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + { &asn_OER_type_DSRCmsgID_constr_1, &asn_PER_type_DSRCmsgID_constr_1, DSRCmsgID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DSecond.c b/vcits/ssem/src/DSecond.c new file mode 100644 index 0000000..8ab8f63 --- /dev/null +++ b/vcits/ssem/src/DSecond.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DSecond.h" + +int +DSecond_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DSecond_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_DSecond_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSecond = { + "DSecond", + "DSecond", + &asn_OP_NativeInteger, + asn_DEF_DSecond_tags_1, + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + asn_DEF_DSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + { &asn_OER_type_DSecond_constr_1, &asn_PER_type_DSecond_constr_1, DSecond_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DYear.c b/vcits/ssem/src/DYear.c new file mode 100644 index 0000000..09c16c7 --- /dev/null +++ b/vcits/ssem/src/DYear.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DYear.h" + +int +DYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DYear_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_DYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DYear = { + "DYear", + "DYear", + &asn_OP_NativeInteger, + asn_DEF_DYear_tags_1, + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + asn_DEF_DYear_tags_1, /* Same as above */ + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + { &asn_OER_type_DYear_constr_1, &asn_PER_type_DYear_constr_1, DYear_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DangerousEndOfQueueSubCauseCode.c b/vcits/ssem/src/DangerousEndOfQueueSubCauseCode.c new file mode 100644 index 0000000..b0e5080 --- /dev/null +++ b/vcits/ssem/src/DangerousEndOfQueueSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DangerousEndOfQueueSubCauseCode.h" + +int +DangerousEndOfQueueSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousEndOfQueueSubCauseCode = { + "DangerousEndOfQueueSubCauseCode", + "DangerousEndOfQueueSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousEndOfQueueSubCauseCode_constr_1, &asn_PER_type_DangerousEndOfQueueSubCauseCode_constr_1, DangerousEndOfQueueSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DangerousGoodsBasic.c b/vcits/ssem/src/DangerousGoodsBasic.c new file mode 100644 index 0000000..8cb8138 --- /dev/null +++ b/vcits/ssem/src/DangerousGoodsBasic.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DangerousGoodsBasic.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DangerousGoodsBasic_value2enum_1[] = { + { 0, 11, "explosives1" }, + { 1, 11, "explosives2" }, + { 2, 11, "explosives3" }, + { 3, 11, "explosives4" }, + { 4, 11, "explosives5" }, + { 5, 11, "explosives6" }, + { 6, 14, "flammableGases" }, + { 7, 17, "nonFlammableGases" }, + { 8, 10, "toxicGases" }, + { 9, 16, "flammableLiquids" }, + { 10, 15, "flammableSolids" }, + { 11, 39, "substancesLiableToSpontaneousCombustion" }, + { 12, 52, "substancesEmittingFlammableGasesUponContactWithWater" }, + { 13, 19, "oxidizingSubstances" }, + { 14, 16, "organicPeroxides" }, + { 15, 15, "toxicSubstances" }, + { 16, 20, "infectiousSubstances" }, + { 17, 19, "radioactiveMaterial" }, + { 18, 19, "corrosiveSubstances" }, + { 19, 32, "miscellaneousDangerousSubstances" } +}; +static const unsigned int asn_MAP_DangerousGoodsBasic_enum2value_1[] = { + 18, /* corrosiveSubstances(18) */ + 0, /* explosives1(0) */ + 1, /* explosives2(1) */ + 2, /* explosives3(2) */ + 3, /* explosives4(3) */ + 4, /* explosives5(4) */ + 5, /* explosives6(5) */ + 6, /* flammableGases(6) */ + 9, /* flammableLiquids(9) */ + 10, /* flammableSolids(10) */ + 16, /* infectiousSubstances(16) */ + 19, /* miscellaneousDangerousSubstances(19) */ + 7, /* nonFlammableGases(7) */ + 14, /* organicPeroxides(14) */ + 13, /* oxidizingSubstances(13) */ + 17, /* radioactiveMaterial(17) */ + 12, /* substancesEmittingFlammableGasesUponContactWithWater(12) */ + 11, /* substancesLiableToSpontaneousCombustion(11) */ + 8, /* toxicGases(8) */ + 15 /* toxicSubstances(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DangerousGoodsBasic_specs_1 = { + asn_MAP_DangerousGoodsBasic_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DangerousGoodsBasic_enum2value_1, /* N => "tag"; sorted by N */ + 20, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsBasic = { + "DangerousGoodsBasic", + "DangerousGoodsBasic", + &asn_OP_NativeEnumerated, + asn_DEF_DangerousGoodsBasic_tags_1, + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_DangerousGoodsBasic_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousGoodsBasic_constr_1, &asn_PER_type_DangerousGoodsBasic_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DangerousGoodsBasic_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/DangerousGoodsExtended.c b/vcits/ssem/src/DangerousGoodsExtended.c new file mode 100644 index 0000000..036e751 --- /dev/null +++ b/vcits/ssem/src/DangerousGoodsExtended.c @@ -0,0 +1,243 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DangerousGoodsExtended.h" + +static int check_permitted_alphabet_7(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_unNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 9999)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_emergencyActionCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 24) + && !check_permitted_alphabet_7(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_companyName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const UTF8String_t *st = (const UTF8String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = UTF8String_length(st); + if((ssize_t)size < 0) { + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((size >= 1 && size <= 24)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_unNumber_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..9999) */, + -1}; +static asn_per_constraints_t asn_PER_memb_unNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 9999 } /* (0..9999) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..24)) */}; +static asn_per_constraints_t asn_PER_memb_emergencyActionCode_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 5, 5, 1, 24 } /* (SIZE(1..24)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_companyName_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_companyName_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DangerousGoodsExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DangerousGoodsBasic, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dangerousGoodsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, unNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_unNumber_constr_3, &asn_PER_memb_unNumber_constr_3, memb_unNumber_constraint_1 }, + 0, 0, /* No default value */ + "unNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, elevatedTemperature), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevatedTemperature" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, tunnelsRestricted), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tunnelsRestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct DangerousGoodsExtended, limitedQuantity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "limitedQuantity" + }, + { ATF_POINTER, 3, offsetof(struct DangerousGoodsExtended, emergencyActionCode), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_emergencyActionCode_constr_7, &asn_PER_memb_emergencyActionCode_constr_7, memb_emergencyActionCode_constraint_1 }, + 0, 0, /* No default value */ + "emergencyActionCode" + }, + { ATF_POINTER, 2, offsetof(struct DangerousGoodsExtended, phoneNumber), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhoneNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phoneNumber" + }, + { ATF_POINTER, 1, offsetof(struct DangerousGoodsExtended, companyName), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { &asn_OER_memb_companyName_constr_9, &asn_PER_memb_companyName_constr_9, memb_companyName_constraint_1 }, + 0, 0, /* No default value */ + "companyName" + }, +}; +static const int asn_MAP_DangerousGoodsExtended_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_DangerousGoodsExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DangerousGoodsExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dangerousGoodsType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* unNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevatedTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tunnelsRestricted */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* limitedQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyActionCode */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* phoneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* companyName */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DangerousGoodsExtended_specs_1 = { + sizeof(struct DangerousGoodsExtended), + offsetof(struct DangerousGoodsExtended, _asn_ctx), + asn_MAP_DangerousGoodsExtended_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_DangerousGoodsExtended_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DangerousGoodsExtended = { + "DangerousGoodsExtended", + "DangerousGoodsExtended", + &asn_OP_SEQUENCE, + asn_DEF_DangerousGoodsExtended_tags_1, + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + asn_DEF_DangerousGoodsExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_DangerousGoodsExtended_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DangerousGoodsExtended_1, + 8, /* Elements count */ + &asn_SPC_DangerousGoodsExtended_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/DangerousSituationSubCauseCode.c b/vcits/ssem/src/DangerousSituationSubCauseCode.c new file mode 100644 index 0000000..8161fa8 --- /dev/null +++ b/vcits/ssem/src/DangerousSituationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DangerousSituationSubCauseCode.h" + +int +DangerousSituationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_DangerousSituationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DangerousSituationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DangerousSituationSubCauseCode = { + "DangerousSituationSubCauseCode", + "DangerousSituationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_DangerousSituationSubCauseCode_tags_1, + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_DangerousSituationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_DangerousSituationSubCauseCode_constr_1, &asn_PER_type_DangerousSituationSubCauseCode_constr_1, DangerousSituationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DataParameters.c b/vcits/ssem/src/DataParameters.c new file mode 100644 index 0000000..39c3c59 --- /dev/null +++ b/vcits/ssem/src/DataParameters.c @@ -0,0 +1,274 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DataParameters.h" + +static int check_permitted_alphabet_2(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_3(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_4(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_5(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +static int +memb_processMethod_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_2(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_processAgency_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_3(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_lastCheckedDate_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_4(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_geoidUsed_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 255) + && !check_permitted_alphabet_5(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_processMethod_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_processMethod_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_processAgency_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_processAgency_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +static asn_oer_constraints_t asn_OER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +static asn_per_constraints_t asn_PER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +asn_TYPE_member_t asn_MBR_DataParameters_1[] = { + { ATF_POINTER, 4, offsetof(struct DataParameters, processMethod), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_processMethod_constr_2, &asn_PER_memb_processMethod_constr_2, memb_processMethod_constraint_1 }, + 0, 0, /* No default value */ + "processMethod" + }, + { ATF_POINTER, 3, offsetof(struct DataParameters, processAgency), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_processAgency_constr_3, &asn_PER_memb_processAgency_constr_3, memb_processAgency_constraint_1 }, + 0, 0, /* No default value */ + "processAgency" + }, + { ATF_POINTER, 2, offsetof(struct DataParameters, lastCheckedDate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_lastCheckedDate_constr_4, &asn_PER_memb_lastCheckedDate_constr_4, memb_lastCheckedDate_constraint_1 }, + 0, 0, /* No default value */ + "lastCheckedDate" + }, + { ATF_POINTER, 1, offsetof(struct DataParameters, geoidUsed), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { &asn_OER_memb_geoidUsed_constr_5, &asn_PER_memb_geoidUsed_constr_5, memb_geoidUsed_constraint_1 }, + 0, 0, /* No default value */ + "geoidUsed" + }, +}; +static const int asn_MAP_DataParameters_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_DataParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DataParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* processMethod */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* processAgency */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lastCheckedDate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* geoidUsed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1 = { + sizeof(struct DataParameters), + offsetof(struct DataParameters, _asn_ctx), + asn_MAP_DataParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DataParameters_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DataParameters = { + "DataParameters", + "DataParameters", + &asn_OP_SEQUENCE, + asn_DEF_DataParameters_tags_1, + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + asn_DEF_DataParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DataParameters_1, + 4, /* Elements count */ + &asn_SPC_DataParameters_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/DeltaAltitude.c b/vcits/ssem/src/DeltaAltitude.c new file mode 100644 index 0000000..d9a03de --- /dev/null +++ b/vcits/ssem/src/DeltaAltitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DeltaAltitude.h" + +int +DeltaAltitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -12700 && value <= 12800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-12700..12800) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAltitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, -12700, 12800 } /* (-12700..12800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAltitude = { + "DeltaAltitude", + "DeltaAltitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaAltitude_tags_1, + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAltitude_tags_1) + /sizeof(asn_DEF_DeltaAltitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAltitude_constr_1, &asn_PER_type_DeltaAltitude_constr_1, DeltaAltitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DeltaAngle.c b/vcits/ssem/src/DeltaAngle.c new file mode 100644 index 0000000..aad84f8 --- /dev/null +++ b/vcits/ssem/src/DeltaAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DeltaAngle.h" + +int +DeltaAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -150 && value <= 150)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-150..150) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -150, 150 } /* (-150..150) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAngle = { + "DeltaAngle", + "DeltaAngle", + &asn_OP_NativeInteger, + asn_DEF_DeltaAngle_tags_1, + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + asn_DEF_DeltaAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaAngle_constr_1, &asn_PER_type_DeltaAngle_constr_1, DeltaAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DeltaLatitude.c b/vcits/ssem/src/DeltaLatitude.c new file mode 100644 index 0000000..a9a221a --- /dev/null +++ b/vcits/ssem/src/DeltaLatitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DeltaLatitude.h" + +int +DeltaLatitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLatitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLatitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLatitude = { + "DeltaLatitude", + "DeltaLatitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLatitude_tags_1, + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLatitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLatitude_tags_1) + /sizeof(asn_DEF_DeltaLatitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLatitude_constr_1, &asn_PER_type_DeltaLatitude_constr_1, DeltaLatitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DeltaLongitude.c b/vcits/ssem/src/DeltaLongitude.c new file mode 100644 index 0000000..4d2b89a --- /dev/null +++ b/vcits/ssem/src/DeltaLongitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DeltaLongitude.h" + +int +DeltaLongitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131071 && value <= 131072)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaLongitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaLongitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaLongitude = { + "DeltaLongitude", + "DeltaLongitude", + &asn_OP_NativeInteger, + asn_DEF_DeltaLongitude_tags_1, + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + asn_DEF_DeltaLongitude_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaLongitude_tags_1) + /sizeof(asn_DEF_DeltaLongitude_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaLongitude_constr_1, &asn_PER_type_DeltaLongitude_constr_1, DeltaLongitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DeltaReferencePosition.c b/vcits/ssem/src/DeltaReferencePosition.c new file mode 100644 index 0000000..6819ae9 --- /dev/null +++ b/vcits/ssem/src/DeltaReferencePosition.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DeltaReferencePosition.h" + +asn_TYPE_member_t asn_MBR_DeltaReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLatitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaLongitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaLongitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct DeltaReferencePosition, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaAltitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_DeltaReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DeltaReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* deltaAltitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DeltaReferencePosition_specs_1 = { + sizeof(struct DeltaReferencePosition), + offsetof(struct DeltaReferencePosition, _asn_ctx), + asn_MAP_DeltaReferencePosition_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DeltaReferencePosition = { + "DeltaReferencePosition", + "DeltaReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_DeltaReferencePosition_tags_1, + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_DeltaReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_DeltaReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DeltaReferencePosition_1, + 3, /* Elements count */ + &asn_SPC_DeltaReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/DeltaTime.c b/vcits/ssem/src/DeltaTime.c new file mode 100644 index 0000000..d37fa2e --- /dev/null +++ b/vcits/ssem/src/DeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DeltaTime.h" + +int +DeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -122 && value <= 121)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DeltaTime_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-122..121) */, + -1}; +asn_per_constraints_t asn_PER_type_DeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -122, 121 } /* (-122..121) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaTime = { + "DeltaTime", + "DeltaTime", + &asn_OP_NativeInteger, + asn_DEF_DeltaTime_tags_1, + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + asn_DEF_DeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_DeltaTime_constr_1, &asn_PER_type_DeltaTime_constr_1, DeltaTime_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DescriptiveName.c b/vcits/ssem/src/DescriptiveName.c new file mode 100644 index 0000000..ae08634 --- /dev/null +++ b/vcits/ssem/src/DescriptiveName.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DescriptiveName.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +DescriptiveName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 63) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_DescriptiveName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DescriptiveName = { + "DescriptiveName", + "DescriptiveName", + &asn_OP_IA5String, + asn_DEF_DescriptiveName_tags_1, + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + asn_DEF_DescriptiveName_tags_1, /* Same as above */ + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + { &asn_OER_type_DescriptiveName_constr_1, &asn_PER_type_DescriptiveName_constr_1, DescriptiveName_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DigitalMap.c b/vcits/ssem/src/DigitalMap.c new file mode 100644 index 0000000..5c307e8 --- /dev/null +++ b/vcits/ssem/src/DigitalMap.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DigitalMap.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_DigitalMap_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_DigitalMap_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_DigitalMap_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DigitalMap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DigitalMap_specs_1 = { + sizeof(struct DigitalMap), + offsetof(struct DigitalMap, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DigitalMap = { + "DigitalMap", + "DigitalMap", + &asn_OP_SEQUENCE_OF, + asn_DEF_DigitalMap_tags_1, + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + asn_DEF_DigitalMap_tags_1, /* Same as above */ + sizeof(asn_DEF_DigitalMap_tags_1) + /sizeof(asn_DEF_DigitalMap_tags_1[0]), /* 1 */ + { &asn_OER_type_DigitalMap_constr_1, &asn_PER_type_DigitalMap_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DigitalMap_1, + 1, /* Single element */ + &asn_SPC_DigitalMap_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/DriveDirection.c b/vcits/ssem/src/DriveDirection.c new file mode 100644 index 0000000..296b5bd --- /dev/null +++ b/vcits/ssem/src/DriveDirection.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DriveDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DriveDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_DriveDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DriveDirection_value2enum_1[] = { + { 0, 7, "forward" }, + { 1, 8, "backward" }, + { 2, 11, "unavailable" } +}; +static const unsigned int asn_MAP_DriveDirection_enum2value_1[] = { + 1, /* backward(1) */ + 0, /* forward(0) */ + 2 /* unavailable(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_DriveDirection_specs_1 = { + asn_MAP_DriveDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DriveDirection_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DriveDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DriveDirection = { + "DriveDirection", + "DriveDirection", + &asn_OP_NativeEnumerated, + asn_DEF_DriveDirection_tags_1, + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + asn_DEF_DriveDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_DriveDirection_tags_1) + /sizeof(asn_DEF_DriveDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_DriveDirection_constr_1, &asn_PER_type_DriveDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DriveDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/DrivenLineOffsetLg.c b/vcits/ssem/src/DrivenLineOffsetLg.c new file mode 100644 index 0000000..6105b62 --- /dev/null +++ b/vcits/ssem/src/DrivenLineOffsetLg.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DrivenLineOffsetLg.h" + +int +DrivenLineOffsetLg_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32767 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32767..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32767, 32767 } /* (-32767..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetLg_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg = { + "DrivenLineOffsetLg", + "DrivenLineOffsetLg", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetLg_tags_1, + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetLg_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivenLineOffsetLg_constr_1, &asn_PER_type_DrivenLineOffsetLg_constr_1, DrivenLineOffsetLg_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DrivenLineOffsetSm.c b/vcits/ssem/src/DrivenLineOffsetSm.c new file mode 100644 index 0000000..5701339 --- /dev/null +++ b/vcits/ssem/src/DrivenLineOffsetSm.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DrivenLineOffsetSm.h" + +int +DrivenLineOffsetSm_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2047 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2047..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2047, 2047 } /* (-2047..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetSm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm = { + "DrivenLineOffsetSm", + "DrivenLineOffsetSm", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetSm_tags_1, + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetSm_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivenLineOffsetSm_constr_1, &asn_PER_type_DrivenLineOffsetSm_constr_1, DrivenLineOffsetSm_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/DrivingLaneStatus.c b/vcits/ssem/src/DrivingLaneStatus.c new file mode 100644 index 0000000..7b78d29 --- /dev/null +++ b/vcits/ssem/src/DrivingLaneStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "DrivingLaneStatus.h" + +int +DrivingLaneStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size >= 1 && size <= 13)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..13)) */}; +asn_per_constraints_t asn_PER_type_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 13 } /* (SIZE(1..13)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DrivingLaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivingLaneStatus = { + "DrivingLaneStatus", + "DrivingLaneStatus", + &asn_OP_BIT_STRING, + asn_DEF_DrivingLaneStatus_tags_1, + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + asn_DEF_DrivingLaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_DrivingLaneStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_DrivingLaneStatus_constr_1, &asn_PER_type_DrivingLaneStatus_constr_1, DrivingLaneStatus_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Elevation.c b/vcits/ssem/src/Elevation.c new file mode 100644 index 0000000..d66b637 --- /dev/null +++ b/vcits/ssem/src/Elevation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Elevation.h" + +int +Elevation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096 && value <= 61439)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Elevation_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-4096..61439) */, + -1}; +asn_per_constraints_t asn_PER_type_Elevation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -4096, 61439 } /* (-4096..61439) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Elevation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Elevation = { + "Elevation", + "Elevation", + &asn_OP_NativeInteger, + asn_DEF_Elevation_tags_1, + sizeof(asn_DEF_Elevation_tags_1) + /sizeof(asn_DEF_Elevation_tags_1[0]), /* 1 */ + asn_DEF_Elevation_tags_1, /* Same as above */ + sizeof(asn_DEF_Elevation_tags_1) + /sizeof(asn_DEF_Elevation_tags_1[0]), /* 1 */ + { &asn_OER_type_Elevation_constr_1, &asn_PER_type_Elevation_constr_1, Elevation_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/ElevationConfidence.c b/vcits/ssem/src/ElevationConfidence.c new file mode 100644 index 0000000..0da014f --- /dev/null +++ b/vcits/ssem/src/ElevationConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ElevationConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ElevationConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 11, "elev-500-00" }, + { 2, 11, "elev-200-00" }, + { 3, 11, "elev-100-00" }, + { 4, 11, "elev-050-00" }, + { 5, 11, "elev-020-00" }, + { 6, 11, "elev-010-00" }, + { 7, 11, "elev-005-00" }, + { 8, 11, "elev-002-00" }, + { 9, 11, "elev-001-00" }, + { 10, 11, "elev-000-50" }, + { 11, 11, "elev-000-20" }, + { 12, 11, "elev-000-10" }, + { 13, 11, "elev-000-05" }, + { 14, 11, "elev-000-02" }, + { 15, 11, "elev-000-01" } +}; +static const unsigned int asn_MAP_ElevationConfidence_enum2value_1[] = { + 15, /* elev-000-01(15) */ + 14, /* elev-000-02(14) */ + 13, /* elev-000-05(13) */ + 12, /* elev-000-10(12) */ + 11, /* elev-000-20(11) */ + 10, /* elev-000-50(10) */ + 9, /* elev-001-00(9) */ + 8, /* elev-002-00(8) */ + 7, /* elev-005-00(7) */ + 6, /* elev-010-00(6) */ + 5, /* elev-020-00(5) */ + 4, /* elev-050-00(4) */ + 3, /* elev-100-00(3) */ + 2, /* elev-200-00(2) */ + 1, /* elev-500-00(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1 = { + asn_MAP_ElevationConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ElevationConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ElevationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ElevationConfidence = { + "ElevationConfidence", + "ElevationConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ElevationConfidence_tags_1, + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + asn_DEF_ElevationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ElevationConfidence_constr_1, &asn_PER_type_ElevationConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ElevationConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/EmbarkationStatus.c b/vcits/ssem/src/EmbarkationStatus.c new file mode 100644 index 0000000..279bc02 --- /dev/null +++ b/vcits/ssem/src/EmbarkationStatus.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "EmbarkationStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_EmbarkationStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmbarkationStatus = { + "EmbarkationStatus", + "EmbarkationStatus", + &asn_OP_BOOLEAN, + asn_DEF_EmbarkationStatus_tags_1, + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + asn_DEF_EmbarkationStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_EmbarkationStatus_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/EmergencyPriority.c b/vcits/ssem/src/EmergencyPriority.c new file mode 100644 index 0000000..d02d1a8 --- /dev/null +++ b/vcits/ssem/src/EmergencyPriority.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "EmergencyPriority.h" + +int +EmergencyPriority_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_EmergencyPriority_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyPriority = { + "EmergencyPriority", + "EmergencyPriority", + &asn_OP_BIT_STRING, + asn_DEF_EmergencyPriority_tags_1, + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + asn_DEF_EmergencyPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyPriority_tags_1) + /sizeof(asn_DEF_EmergencyPriority_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyPriority_constr_1, &asn_PER_type_EmergencyPriority_constr_1, EmergencyPriority_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/EmergencyVehicleApproachingSubCauseCode.c b/vcits/ssem/src/EmergencyVehicleApproachingSubCauseCode.c new file mode 100644 index 0000000..c2e87a8 --- /dev/null +++ b/vcits/ssem/src/EmergencyVehicleApproachingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "EmergencyVehicleApproachingSubCauseCode.h" + +int +EmergencyVehicleApproachingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleApproachingSubCauseCode = { + "EmergencyVehicleApproachingSubCauseCode", + "EmergencyVehicleApproachingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, &asn_PER_type_EmergencyVehicleApproachingSubCauseCode_constr_1, EmergencyVehicleApproachingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/EmissionType.c b/vcits/ssem/src/EmissionType.c new file mode 100644 index 0000000..ea07b85 --- /dev/null +++ b/vcits/ssem/src/EmissionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "EmissionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EmissionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EmissionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EmissionType_value2enum_1[] = { + { 0, 5, "euro1" }, + { 1, 5, "euro2" }, + { 2, 5, "euro3" }, + { 3, 5, "euro4" }, + { 4, 5, "euro5" }, + { 5, 5, "euro6" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_EmissionType_enum2value_1[] = { + 0, /* euro1(0) */ + 1, /* euro2(1) */ + 2, /* euro3(2) */ + 3, /* euro4(3) */ + 4, /* euro5(4) */ + 5 /* euro6(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1 = { + asn_MAP_EmissionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EmissionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EmissionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmissionType = { + "EmissionType", + "EmissionType", + &asn_OP_NativeEnumerated, + asn_DEF_EmissionType_tags_1, + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + asn_DEF_EmissionType_tags_1, /* Same as above */ + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + { &asn_OER_type_EmissionType_constr_1, &asn_PER_type_EmissionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EmissionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/EnabledLaneList.c b/vcits/ssem/src/EnabledLaneList.c new file mode 100644 index 0000000..a107604 --- /dev/null +++ b/vcits/ssem/src/EnabledLaneList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "EnabledLaneList.h" + +static asn_oer_constraints_t asn_OER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_EnabledLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EnabledLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1 = { + sizeof(struct EnabledLaneList), + offsetof(struct EnabledLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EnabledLaneList = { + "EnabledLaneList", + "EnabledLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EnabledLaneList_tags_1, + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + asn_DEF_EnabledLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_EnabledLaneList_constr_1, &asn_PER_type_EnabledLaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EnabledLaneList_1, + 1, /* Single element */ + &asn_SPC_EnabledLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/EnergyStorageType.c b/vcits/ssem/src/EnergyStorageType.c new file mode 100644 index 0000000..a3676ff --- /dev/null +++ b/vcits/ssem/src/EnergyStorageType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "EnergyStorageType.h" + +int +EnergyStorageType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_EnergyStorageType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_EnergyStorageType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EnergyStorageType = { + "EnergyStorageType", + "EnergyStorageType", + &asn_OP_BIT_STRING, + asn_DEF_EnergyStorageType_tags_1, + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + asn_DEF_EnergyStorageType_tags_1, /* Same as above */ + sizeof(asn_DEF_EnergyStorageType_tags_1) + /sizeof(asn_DEF_EnergyStorageType_tags_1[0]), /* 1 */ + { &asn_OER_type_EnergyStorageType_constr_1, &asn_PER_type_EnergyStorageType_constr_1, EnergyStorageType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/EuVehicleCategoryCode.c b/vcits/ssem/src/EuVehicleCategoryCode.c new file mode 100644 index 0000000..e559978 --- /dev/null +++ b/vcits/ssem/src/EuVehicleCategoryCode.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "EuVehicleCategoryCode.h" + +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EuVehicleCategoryCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryL" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryM" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryN" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehicleCategoryO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EuVehicleCategoryO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehicleCategoryO" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehilcleCategoryT), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehilcleCategoryT" + }, + { ATF_NOFLAGS, 0, offsetof(struct EuVehicleCategoryCode, choice.euVehilcleCategoryG), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euVehilcleCategoryG" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_EuVehicleCategoryCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* euVehicleCategoryL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* euVehicleCategoryM */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* euVehicleCategoryN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* euVehicleCategoryO */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* euVehilcleCategoryT */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* euVehilcleCategoryG */ +}; +static asn_CHOICE_specifics_t asn_SPC_EuVehicleCategoryCode_specs_1 = { + sizeof(struct EuVehicleCategoryCode), + offsetof(struct EuVehicleCategoryCode, _asn_ctx), + offsetof(struct EuVehicleCategoryCode, present), + sizeof(((struct EuVehicleCategoryCode *)0)->present), + asn_MAP_EuVehicleCategoryCode_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryCode = { + "EuVehicleCategoryCode", + "EuVehicleCategoryCode", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_EuVehicleCategoryCode_constr_1, &asn_PER_type_EuVehicleCategoryCode_constr_1, CHOICE_constraint }, + asn_MBR_EuVehicleCategoryCode_1, + 6, /* Elements count */ + &asn_SPC_EuVehicleCategoryCode_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/EuVehicleCategoryL.c b/vcits/ssem/src/EuVehicleCategoryL.c new file mode 100644 index 0000000..48131a2 --- /dev/null +++ b/vcits/ssem/src/EuVehicleCategoryL.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "EuVehicleCategoryL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryL_value2enum_1[] = { + { 0, 2, "l1" }, + { 1, 2, "l2" }, + { 2, 2, "l3" }, + { 3, 2, "l4" }, + { 4, 2, "l5" }, + { 5, 2, "l6" }, + { 6, 2, "l7" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryL_enum2value_1[] = { + 0, /* l1(0) */ + 1, /* l2(1) */ + 2, /* l3(2) */ + 3, /* l4(3) */ + 4, /* l5(4) */ + 5, /* l6(5) */ + 6 /* l7(6) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryL_specs_1 = { + asn_MAP_EuVehicleCategoryL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryL_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryL = { + "EuVehicleCategoryL", + "EuVehicleCategoryL", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryL_tags_1, + sizeof(asn_DEF_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryL_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryL_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryL_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryL_constr_1, &asn_PER_type_EuVehicleCategoryL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryL_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/EuVehicleCategoryM.c b/vcits/ssem/src/EuVehicleCategoryM.c new file mode 100644 index 0000000..e9b08ab --- /dev/null +++ b/vcits/ssem/src/EuVehicleCategoryM.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "EuVehicleCategoryM.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryM_value2enum_1[] = { + { 0, 2, "m1" }, + { 1, 2, "m2" }, + { 2, 2, "m3" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryM_enum2value_1[] = { + 0, /* m1(0) */ + 1, /* m2(1) */ + 2 /* m3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryM_specs_1 = { + asn_MAP_EuVehicleCategoryM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryM_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryM = { + "EuVehicleCategoryM", + "EuVehicleCategoryM", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryM_tags_1, + sizeof(asn_DEF_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryM_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryM_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryM_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryM_constr_1, &asn_PER_type_EuVehicleCategoryM_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/EuVehicleCategoryN.c b/vcits/ssem/src/EuVehicleCategoryN.c new file mode 100644 index 0000000..bc63c43 --- /dev/null +++ b/vcits/ssem/src/EuVehicleCategoryN.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "EuVehicleCategoryN.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryN_value2enum_1[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryN_enum2value_1[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryN_specs_1 = { + asn_MAP_EuVehicleCategoryN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryN_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryN = { + "EuVehicleCategoryN", + "EuVehicleCategoryN", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryN_tags_1, + sizeof(asn_DEF_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryN_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryN_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryN_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryN_constr_1, &asn_PER_type_EuVehicleCategoryN_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryN_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/EuVehicleCategoryO.c b/vcits/ssem/src/EuVehicleCategoryO.c new file mode 100644 index 0000000..bde9003 --- /dev/null +++ b/vcits/ssem/src/EuVehicleCategoryO.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "EuVehicleCategoryO.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EuVehicleCategoryO_value2enum_1[] = { + { 0, 2, "o1" }, + { 1, 2, "o2" }, + { 2, 2, "o3" }, + { 3, 2, "o4" } +}; +static const unsigned int asn_MAP_EuVehicleCategoryO_enum2value_1[] = { + 0, /* o1(0) */ + 1, /* o2(1) */ + 2, /* o3(2) */ + 3 /* o4(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EuVehicleCategoryO_specs_1 = { + asn_MAP_EuVehicleCategoryO_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EuVehicleCategoryO_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EuVehicleCategoryO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EuVehicleCategoryO = { + "EuVehicleCategoryO", + "EuVehicleCategoryO", + &asn_OP_NativeEnumerated, + asn_DEF_EuVehicleCategoryO_tags_1, + sizeof(asn_DEF_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryO_tags_1[0]), /* 1 */ + asn_DEF_EuVehicleCategoryO_tags_1, /* Same as above */ + sizeof(asn_DEF_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_EuVehicleCategoryO_tags_1[0]), /* 1 */ + { &asn_OER_type_EuVehicleCategoryO_constr_1, &asn_PER_type_EuVehicleCategoryO_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EuVehicleCategoryO_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/EventHistory.c b/vcits/ssem/src/EventHistory.c new file mode 100644 index 0000000..5b4e182 --- /dev/null +++ b/vcits/ssem/src/EventHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "EventHistory.h" + +#include "EventPoint.h" +static asn_oer_constraints_t asn_OER_type_EventHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..23)) */}; +static asn_per_constraints_t asn_PER_type_EventHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (SIZE(1..23)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_EventHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EventPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EventHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_EventHistory_specs_1 = { + sizeof(struct EventHistory), + offsetof(struct EventHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EventHistory = { + "EventHistory", + "EventHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_EventHistory_tags_1, + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + asn_DEF_EventHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_EventHistory_tags_1) + /sizeof(asn_DEF_EventHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_EventHistory_constr_1, &asn_PER_type_EventHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EventHistory_1, + 1, /* Single element */ + &asn_SPC_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/EventPoint.c b/vcits/ssem/src/EventPoint.c new file mode 100644 index 0000000..17a77dc --- /dev/null +++ b/vcits/ssem/src/EventPoint.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "EventPoint.h" + +asn_TYPE_member_t asn_MBR_EventPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventPosition" + }, + { ATF_POINTER, 1, offsetof(struct EventPoint, eventDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventPoint, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InformationQuality, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "informationQuality" + }, +}; +static const int asn_MAP_EventPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_EventPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EventPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* informationQuality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EventPoint_specs_1 = { + sizeof(struct EventPoint), + offsetof(struct EventPoint, _asn_ctx), + asn_MAP_EventPoint_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_EventPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EventPoint = { + "EventPoint", + "EventPoint", + &asn_OP_SEQUENCE, + asn_DEF_EventPoint_tags_1, + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + asn_DEF_EventPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_EventPoint_tags_1) + /sizeof(asn_DEF_EventPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EventPoint_1, + 3, /* Elements count */ + &asn_SPC_EventPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ExceptionalCondition.c b/vcits/ssem/src/ExceptionalCondition.c new file mode 100644 index 0000000..50994f7 --- /dev/null +++ b/vcits/ssem/src/ExceptionalCondition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ExceptionalCondition.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExceptionalCondition_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ExceptionalCondition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ExceptionalCondition_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 23, "publicTransportPriority" }, + { 2, 24, "emergencyVehiclePriority" }, + { 3, 13, "trainPriority" }, + { 4, 10, "bridgeOpen" }, + { 5, 13, "vehicleHeight" }, + { 6, 7, "weather" }, + { 7, 10, "trafficJam" }, + { 8, 13, "tunnelClosure" }, + { 9, 14, "meteringActive" }, + { 10, 13, "truckPriority" }, + { 11, 22, "bicyclePlatoonPriority" }, + { 12, 22, "vehiclePlatoonPriority" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ExceptionalCondition_enum2value_1[] = { + 11, /* bicyclePlatoonPriority(11) */ + 4, /* bridgeOpen(4) */ + 2, /* emergencyVehiclePriority(2) */ + 9, /* meteringActive(9) */ + 1, /* publicTransportPriority(1) */ + 7, /* trafficJam(7) */ + 3, /* trainPriority(3) */ + 10, /* truckPriority(10) */ + 8, /* tunnelClosure(8) */ + 0, /* unknown(0) */ + 5, /* vehicleHeight(5) */ + 12, /* vehiclePlatoonPriority(12) */ + 6 /* weather(6) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ExceptionalCondition_specs_1 = { + asn_MAP_ExceptionalCondition_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ExceptionalCondition_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ExceptionalCondition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExceptionalCondition = { + "ExceptionalCondition", + "ExceptionalCondition", + &asn_OP_NativeEnumerated, + asn_DEF_ExceptionalCondition_tags_1, + sizeof(asn_DEF_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ExceptionalCondition_tags_1[0]), /* 1 */ + asn_DEF_ExceptionalCondition_tags_1, /* Same as above */ + sizeof(asn_DEF_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ExceptionalCondition_tags_1[0]), /* 1 */ + { &asn_OER_type_ExceptionalCondition_constr_1, &asn_PER_type_ExceptionalCondition_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ExceptionalCondition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ExteriorLights.c b/vcits/ssem/src/ExteriorLights.c new file mode 100644 index 0000000..167760e --- /dev/null +++ b/vcits/ssem/src/ExteriorLights.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ExteriorLights.h" + +int +ExteriorLights_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_ExteriorLights_tags_1, + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + { &asn_OER_type_ExteriorLights_constr_1, &asn_PER_type_ExteriorLights_constr_1, ExteriorLights_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/FreightContainerData.c b/vcits/ssem/src/FreightContainerData.c new file mode 100644 index 0000000..0aacf55 --- /dev/null +++ b/vcits/ssem/src/FreightContainerData.c @@ -0,0 +1,482 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "FreightContainerData.h" + +static int +memb_ownerCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_serialNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1000000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_checkDigit_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_length_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 2000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_height_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_width_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 200 && value <= 300)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_containerTypeCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_maximumGrossMass_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 19 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_tareMass_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 99)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_fill_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_ownerCode_constr_2 CC_NOTUSED = { + { 0, 0 }, + 19 /* (SIZE(19..19)) */}; +static asn_per_constraints_t asn_PER_memb_ownerCode_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 19, 19 } /* (SIZE(19..19)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_serialNumber_constr_3 CC_NOTUSED = { + { 4, 1 } /* (0..1000000) */, + -1}; +static asn_per_constraints_t asn_PER_memb_serialNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 1000000 } /* (0..1000000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_checkDigit_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..10) */, + -1}; +static asn_per_constraints_t asn_PER_memb_checkDigit_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 10 } /* (0..10) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_length_constr_5 CC_NOTUSED = { + { 2, 1 } /* (1..2000) */, + -1}; +static asn_per_constraints_t asn_PER_memb_length_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 1, 2000 } /* (1..2000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_height_constr_6 CC_NOTUSED = { + { 2, 1 } /* (1..500) */, + -1}; +static asn_per_constraints_t asn_PER_memb_height_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 500 } /* (1..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_width_constr_7 CC_NOTUSED = { + { 2, 1 } /* (200..300) */, + -1}; +static asn_per_constraints_t asn_PER_memb_width_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 200, 300 } /* (200..300) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_containerTypeCode_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_containerTypeCode_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_maximumGrossMass_constr_9 CC_NOTUSED = { + { 2, 1 } /* (19..500) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maximumGrossMass_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 19, 500 } /* (19..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_tareMass_constr_10 CC_NOTUSED = { + { 1, 1 } /* (0..99) */, + -1}; +static asn_per_constraints_t asn_PER_memb_tareMass_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 99 } /* (0..99) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_fill_constr_11 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_fill_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_FreightContainerData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, ownerCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_ownerCode_constr_2, &asn_PER_memb_ownerCode_constr_2, memb_ownerCode_constraint_1 }, + 0, 0, /* No default value */ + "ownerCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, serialNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_serialNumber_constr_3, &asn_PER_memb_serialNumber_constr_3, memb_serialNumber_constraint_1 }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, checkDigit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_checkDigit_constr_4, &asn_PER_memb_checkDigit_constr_4, memb_checkDigit_constraint_1 }, + 0, 0, /* No default value */ + "checkDigit" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, length), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_length_constr_5, &asn_PER_memb_length_constr_5, memb_length_constraint_1 }, + 0, 0, /* No default value */ + "length" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, height), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_height_constr_6, &asn_PER_memb_height_constr_6, memb_height_constraint_1 }, + 0, 0, /* No default value */ + "height" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, width), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_width_constr_7, &asn_PER_memb_width_constr_7, memb_width_constraint_1 }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, containerTypeCode), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_containerTypeCode_constr_8, &asn_PER_memb_containerTypeCode_constr_8, memb_containerTypeCode_constraint_1 }, + 0, 0, /* No default value */ + "containerTypeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, maximumGrossMass), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maximumGrossMass_constr_9, &asn_PER_memb_maximumGrossMass_constr_9, memb_maximumGrossMass_constraint_1 }, + 0, 0, /* No default value */ + "maximumGrossMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, tareMass), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_tareMass_constr_10, &asn_PER_memb_tareMass_constr_10, memb_tareMass_constraint_1 }, + 0, 0, /* No default value */ + "tareMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreightContainerData, fill), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fill_constr_11, &asn_PER_memb_fill_constr_11, memb_fill_constraint_1 }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_FreightContainerData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FreightContainerData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ownerCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serialNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* checkDigit */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* length */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* height */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* width */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* containerTypeCode */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* maximumGrossMass */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* tareMass */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* fill */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FreightContainerData_specs_1 = { + sizeof(struct FreightContainerData), + offsetof(struct FreightContainerData, _asn_ctx), + asn_MAP_FreightContainerData_tag2el_1, + 10, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FreightContainerData = { + "FreightContainerData", + "FreightContainerData", + &asn_OP_SEQUENCE, + asn_DEF_FreightContainerData_tags_1, + sizeof(asn_DEF_FreightContainerData_tags_1) + /sizeof(asn_DEF_FreightContainerData_tags_1[0]), /* 1 */ + asn_DEF_FreightContainerData_tags_1, /* Same as above */ + sizeof(asn_DEF_FreightContainerData_tags_1) + /sizeof(asn_DEF_FreightContainerData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/FuelType.c b/vcits/ssem/src/FuelType.c new file mode 100644 index 0000000..3be46d8 --- /dev/null +++ b/vcits/ssem/src/FuelType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "FuelType.h" + +int +FuelType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FuelType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_FuelType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_FuelType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FuelType = { + "FuelType", + "FuelType", + &asn_OP_NativeInteger, + asn_DEF_FuelType_tags_1, + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + asn_DEF_FuelType_tags_1, /* Same as above */ + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + { &asn_OER_type_FuelType_constr_1, &asn_PER_type_FuelType_constr_1, FuelType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/FullPositionVector.c b/vcits/ssem/src/FullPositionVector.c new file mode 100644 index 0000000..e3c9863 --- /dev/null +++ b/vcits/ssem/src/FullPositionVector.c @@ -0,0 +1,147 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "FullPositionVector.h" + +#include "DDateTime.h" +#include "TransmissionAndSpeed.h" +#include "PositionalAccuracy.h" +#include "PositionConfidenceSet.h" +#include "SpeedandHeadingandThrottleConfidence.h" +asn_TYPE_member_t asn_MBR_FullPositionVector_1[] = { + { ATF_POINTER, 1, offsetof(struct FullPositionVector, utcTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDateTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "utcTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "long" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, lat), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_POINTER, 7, offsetof(struct FullPositionVector, elevation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Elevation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 6, offsetof(struct FullPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 5, offsetof(struct FullPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct FullPositionVector, posAccuracy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionalAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posAccuracy" + }, + { ATF_POINTER, 3, offsetof(struct FullPositionVector, timeConfidence), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeConfidence" + }, + { ATF_POINTER, 2, offsetof(struct FullPositionVector, posConfidence), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidenceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "posConfidence" + }, + { ATF_POINTER, 1, offsetof(struct FullPositionVector, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedandHeadingandThrottleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const int asn_MAP_FullPositionVector_oms_1[] = { 0, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_FullPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FullPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* utcTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* posAccuracy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* timeConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* posConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1 = { + sizeof(struct FullPositionVector), + offsetof(struct FullPositionVector, _asn_ctx), + asn_MAP_FullPositionVector_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_FullPositionVector_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FullPositionVector = { + "FullPositionVector", + "FullPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_FullPositionVector_tags_1, + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + asn_DEF_FullPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FullPositionVector_1, + 10, /* Elements count */ + &asn_SPC_FullPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/GNSSstatus.c b/vcits/ssem/src/GNSSstatus.c new file mode 100644 index 0000000..94457cc --- /dev/null +++ b/vcits/ssem/src/GNSSstatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "GNSSstatus.h" + +int +GNSSstatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GNSSstatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNSSstatus = { + "GNSSstatus", + "GNSSstatus", + &asn_OP_BIT_STRING, + asn_DEF_GNSSstatus_tags_1, + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + asn_DEF_GNSSstatus_tags_1, /* Same as above */ + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + { &asn_OER_type_GNSSstatus_constr_1, &asn_PER_type_GNSSstatus_constr_1, GNSSstatus_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/GenericLane.c b/vcits/ssem/src/GenericLane.c new file mode 100644 index 0000000..1aefd68 --- /dev/null +++ b/vcits/ssem/src/GenericLane.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "GenericLane.h" + +#include "ConnectsToList.h" +#include "OverlayLaneList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct GenericLane__regional), + offsetof(struct GenericLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { &asn_OER_type_regional_constr_11, &asn_PER_type_regional_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GenericLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, ingressApproach), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ingressApproach" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, egressApproach), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "egressApproach" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneAttributes), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneAttributes" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, maneuvers), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuvers" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, nodeList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeListXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeList" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, connectsTo), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectsToList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectsTo" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, overlays), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OverlayLaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "overlays" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { &asn_OER_memb_regional_constr_11, &asn_PER_memb_regional_constr_11, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_GenericLane_oms_1[] = { 1, 2, 3, 5, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_GenericLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GenericLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ingressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* egressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAttributes */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maneuvers */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* nodeList */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* connectsTo */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* overlays */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1 = { + sizeof(struct GenericLane), + offsetof(struct GenericLane, _asn_ctx), + asn_MAP_GenericLane_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_GenericLane_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GenericLane = { + "GenericLane", + "GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_GenericLane_tags_1, + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + asn_DEF_GenericLane_tags_1, /* Same as above */ + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GenericLane_1, + 10, /* Elements count */ + &asn_SPC_GenericLane_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/GeoGraphicalLimit.c b/vcits/ssem/src/GeoGraphicalLimit.c new file mode 100644 index 0000000..8237a7c --- /dev/null +++ b/vcits/ssem/src/GeoGraphicalLimit.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "GeoGraphicalLimit.h" + +int +GeoGraphicalLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GeoGraphicalLimit_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_GeoGraphicalLimit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GeoGraphicalLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GeoGraphicalLimit = { + "GeoGraphicalLimit", + "GeoGraphicalLimit", + &asn_OP_BIT_STRING, + asn_DEF_GeoGraphicalLimit_tags_1, + sizeof(asn_DEF_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_GeoGraphicalLimit_tags_1[0]), /* 1 */ + asn_DEF_GeoGraphicalLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_GeoGraphicalLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_GeoGraphicalLimit_constr_1, &asn_PER_type_GeoGraphicalLimit_constr_1, GeoGraphicalLimit_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/HardShoulderStatus.c b/vcits/ssem/src/HardShoulderStatus.c new file mode 100644 index 0000000..1ceabe4 --- /dev/null +++ b/vcits/ssem/src/HardShoulderStatus.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "HardShoulderStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HardShoulderStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HardShoulderStatus_value2enum_1[] = { + { 0, 20, "availableForStopping" }, + { 1, 6, "closed" }, + { 2, 19, "availableForDriving" } +}; +static const unsigned int asn_MAP_HardShoulderStatus_enum2value_1[] = { + 2, /* availableForDriving(2) */ + 0, /* availableForStopping(0) */ + 1 /* closed(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HardShoulderStatus_specs_1 = { + asn_MAP_HardShoulderStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HardShoulderStatus_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HardShoulderStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HardShoulderStatus = { + "HardShoulderStatus", + "HardShoulderStatus", + &asn_OP_NativeEnumerated, + asn_DEF_HardShoulderStatus_tags_1, + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + asn_DEF_HardShoulderStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_HardShoulderStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_HardShoulderStatus_constr_1, &asn_PER_type_HardShoulderStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HardShoulderStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c b/vcits/ssem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..934409c --- /dev/null +++ b/vcits/ssem/src/HazardousLocation-AnimalOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "HazardousLocation-AnimalOnTheRoadSubCauseCode.h" + +int +HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode = { + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/HazardousLocation-DangerousCurveSubCauseCode.c b/vcits/ssem/src/HazardousLocation-DangerousCurveSubCauseCode.c new file mode 100644 index 0000000..788c57c --- /dev/null +++ b/vcits/ssem/src/HazardousLocation-DangerousCurveSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "HazardousLocation-DangerousCurveSubCauseCode.h" + +int +HazardousLocation_DangerousCurveSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_DangerousCurveSubCauseCode = { + "HazardousLocation-DangerousCurveSubCauseCode", + "HazardousLocation-DangerousCurveSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_DangerousCurveSubCauseCode_constr_1, HazardousLocation_DangerousCurveSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c b/vcits/ssem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..ffecf51 --- /dev/null +++ b/vcits/ssem/src/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" + +int +HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode = { + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/HazardousLocation-SurfaceConditionSubCauseCode.c b/vcits/ssem/src/HazardousLocation-SurfaceConditionSubCauseCode.c new file mode 100644 index 0000000..06781c2 --- /dev/null +++ b/vcits/ssem/src/HazardousLocation-SurfaceConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "HazardousLocation-SurfaceConditionSubCauseCode.h" + +int +HazardousLocation_SurfaceConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode = { + "HazardousLocation-SurfaceConditionSubCauseCode", + "HazardousLocation-SurfaceConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, &asn_PER_type_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, HazardousLocation_SurfaceConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Heading.c b/vcits/ssem/src/Heading.c new file mode 100644 index 0000000..88a0c82 --- /dev/null +++ b/vcits/ssem/src/Heading.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Heading.h" + +static asn_TYPE_member_t asn_MBR_Heading_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Heading, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headingConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Heading_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* headingValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* headingConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Heading_specs_1 = { + sizeof(struct Heading), + offsetof(struct Heading, _asn_ctx), + asn_MAP_Heading_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Heading = { + "Heading", + "Heading", + &asn_OP_SEQUENCE, + asn_DEF_Heading_tags_1, + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + asn_DEF_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Heading_1, + 2, /* Elements count */ + &asn_SPC_Heading_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/HeadingConfidence.c b/vcits/ssem/src/HeadingConfidence.c new file mode 100644 index 0000000..9e49556 --- /dev/null +++ b/vcits/ssem/src/HeadingConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "HeadingConfidence.h" + +int +HeadingConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeInteger, + asn_DEF_HeadingConfidence_tags_1, + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidence_constr_1, &asn_PER_type_HeadingConfidence_constr_1, HeadingConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/HeadingConfidenceDSRC.c b/vcits/ssem/src/HeadingConfidenceDSRC.c new file mode 100644 index 0000000..78eeb83 --- /dev/null +++ b/vcits/ssem/src/HeadingConfidenceDSRC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "HeadingConfidenceDSRC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingConfidenceDSRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_HeadingConfidenceDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_HeadingConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec10deg" }, + { 2, 9, "prec05deg" }, + { 3, 9, "prec01deg" }, + { 4, 10, "prec0-1deg" }, + { 5, 11, "prec0-05deg" }, + { 6, 11, "prec0-01deg" }, + { 7, 13, "prec0-0125deg" } +}; +static const unsigned int asn_MAP_HeadingConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-0125deg(7) */ + 6, /* prec0-01deg(6) */ + 5, /* prec0-05deg(5) */ + 4, /* prec0-1deg(4) */ + 3, /* prec01deg(3) */ + 2, /* prec05deg(2) */ + 1, /* prec10deg(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HeadingConfidenceDSRC_specs_1 = { + asn_MAP_HeadingConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HeadingConfidenceDSRC_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidenceDSRC = { + "HeadingConfidenceDSRC", + "HeadingConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_HeadingConfidenceDSRC_tags_1, + sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingConfidenceDSRC_constr_1, &asn_PER_type_HeadingConfidenceDSRC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HeadingConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/HeadingDSRC.c b/vcits/ssem/src/HeadingDSRC.c new file mode 100644 index 0000000..83adbd2 --- /dev/null +++ b/vcits/ssem/src/HeadingDSRC.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "HeadingDSRC.h" + +int +HeadingDSRC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 28800)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingDSRC_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingDSRC = { + "HeadingDSRC", + "HeadingDSRC", + &asn_OP_NativeInteger, + asn_DEF_HeadingDSRC_tags_1, + sizeof(asn_DEF_HeadingDSRC_tags_1) + /sizeof(asn_DEF_HeadingDSRC_tags_1[0]), /* 1 */ + asn_DEF_HeadingDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingDSRC_tags_1) + /sizeof(asn_DEF_HeadingDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingDSRC_constr_1, &asn_PER_type_HeadingDSRC_constr_1, HeadingDSRC_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/HeadingValue.c b/vcits/ssem/src/HeadingValue.c new file mode 100644 index 0000000..b0a4d47 --- /dev/null +++ b/vcits/ssem/src/HeadingValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "HeadingValue.h" + +int +HeadingValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3601)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeadingValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3601) */, + -1}; +asn_per_constraints_t asn_PER_type_HeadingValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeadingValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingValue = { + "HeadingValue", + "HeadingValue", + &asn_OP_NativeInteger, + asn_DEF_HeadingValue_tags_1, + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + asn_DEF_HeadingValue_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingValue_tags_1) + /sizeof(asn_DEF_HeadingValue_tags_1[0]), /* 1 */ + { &asn_OER_type_HeadingValue_constr_1, &asn_PER_type_HeadingValue_constr_1, HeadingValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/HeightLonCarr.c b/vcits/ssem/src/HeightLonCarr.c new file mode 100644 index 0000000..c76627d --- /dev/null +++ b/vcits/ssem/src/HeightLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "HeightLonCarr.h" + +int +HeightLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..100) */, + -1}; +static asn_per_constraints_t asn_PER_type_HeightLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 100 } /* (1..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HeightLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeightLonCarr = { + "HeightLonCarr", + "HeightLonCarr", + &asn_OP_NativeInteger, + asn_DEF_HeightLonCarr_tags_1, + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + asn_DEF_HeightLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_HeightLonCarr_tags_1) + /sizeof(asn_DEF_HeightLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_HeightLonCarr_constr_1, &asn_PER_type_HeightLonCarr_constr_1, HeightLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/HumanPresenceOnTheRoadSubCauseCode.c b/vcits/ssem/src/HumanPresenceOnTheRoadSubCauseCode.c new file mode 100644 index 0000000..5eee886 --- /dev/null +++ b/vcits/ssem/src/HumanPresenceOnTheRoadSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "HumanPresenceOnTheRoadSubCauseCode.h" + +int +HumanPresenceOnTheRoadSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanPresenceOnTheRoadSubCauseCode = { + "HumanPresenceOnTheRoadSubCauseCode", + "HumanPresenceOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, &asn_PER_type_HumanPresenceOnTheRoadSubCauseCode_constr_1, HumanPresenceOnTheRoadSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/HumanProblemSubCauseCode.c b/vcits/ssem/src/HumanProblemSubCauseCode.c new file mode 100644 index 0000000..8d19874 --- /dev/null +++ b/vcits/ssem/src/HumanProblemSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "HumanProblemSubCauseCode.h" + +int +HumanProblemSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_HumanProblemSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_HumanProblemSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanProblemSubCauseCode = { + "HumanProblemSubCauseCode", + "HumanProblemSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_HumanProblemSubCauseCode_tags_1, + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_HumanProblemSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_HumanProblemSubCauseCode_constr_1, &asn_PER_type_HumanProblemSubCauseCode_constr_1, HumanProblemSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/InformationQuality.c b/vcits/ssem/src/InformationQuality.c new file mode 100644 index 0000000..a6309ba --- /dev/null +++ b/vcits/ssem/src/InformationQuality.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "InformationQuality.h" + +int +InformationQuality_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_InformationQuality_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_InformationQuality_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_InformationQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InformationQuality = { + "InformationQuality", + "InformationQuality", + &asn_OP_NativeInteger, + asn_DEF_InformationQuality_tags_1, + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + asn_DEF_InformationQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_InformationQuality_tags_1) + /sizeof(asn_DEF_InformationQuality_tags_1[0]), /* 1 */ + { &asn_OER_type_InformationQuality_constr_1, &asn_PER_type_InformationQuality_constr_1, InformationQuality_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/IntersectionAccessPoint.c b/vcits/ssem/src/IntersectionAccessPoint.c new file mode 100644 index 0000000..7f65127 --- /dev/null +++ b/vcits/ssem/src/IntersectionAccessPoint.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "IntersectionAccessPoint.h" + +static asn_oer_constraints_t asn_OER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.approach), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "approach" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.connection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionAccessPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* approach */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* connection */ +}; +asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1 = { + sizeof(struct IntersectionAccessPoint), + offsetof(struct IntersectionAccessPoint, _asn_ctx), + offsetof(struct IntersectionAccessPoint, present), + sizeof(((struct IntersectionAccessPoint *)0)->present), + asn_MAP_IntersectionAccessPoint_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint = { + "IntersectionAccessPoint", + "IntersectionAccessPoint", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_IntersectionAccessPoint_constr_1, &asn_PER_type_IntersectionAccessPoint_constr_1, CHOICE_constraint }, + asn_MBR_IntersectionAccessPoint_1, + 3, /* Elements count */ + &asn_SPC_IntersectionAccessPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/IntersectionGeometry.c b/vcits/ssem/src/IntersectionGeometry.c new file mode 100644 index 0000000..fc85fb7 --- /dev/null +++ b/vcits/ssem/src/IntersectionGeometry.c @@ -0,0 +1,214 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "IntersectionGeometry.h" + +#include "SpeedLimitList.h" +#include "PreemptPriorityList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionGeometry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct IntersectionGeometry__regional), + offsetof(struct IntersectionGeometry__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, laneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneSet" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, preemptPriorityData), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PreemptPriorityList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "preemptPriorityData" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionGeometry_oms_1[] = { 0, 4, 5, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionGeometry_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* laneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* preemptPriorityData */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1 = { + sizeof(struct IntersectionGeometry), + offsetof(struct IntersectionGeometry, _asn_ctx), + asn_MAP_IntersectionGeometry_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_IntersectionGeometry_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry = { + "IntersectionGeometry", + "IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionGeometry_tags_1, + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometry_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionGeometry_1, + 9, /* Elements count */ + &asn_SPC_IntersectionGeometry_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/IntersectionGeometryList.c b/vcits/ssem/src/IntersectionGeometryList.c new file mode 100644 index 0000000..e6c19ec --- /dev/null +++ b/vcits/ssem/src/IntersectionGeometryList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "IntersectionGeometryList.h" + +#include "IntersectionGeometry.h" +static asn_oer_constraints_t asn_OER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionGeometry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometryList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1 = { + sizeof(struct IntersectionGeometryList), + offsetof(struct IntersectionGeometryList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList = { + "IntersectionGeometryList", + "IntersectionGeometryList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionGeometryList_tags_1, + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometryList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionGeometryList_constr_1, &asn_PER_type_IntersectionGeometryList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntersectionGeometryList_1, + 1, /* Single element */ + &asn_SPC_IntersectionGeometryList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/IntersectionID.c b/vcits/ssem/src/IntersectionID.c new file mode 100644 index 0000000..6a0c159 --- /dev/null +++ b/vcits/ssem/src/IntersectionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "IntersectionID.h" + +int +IntersectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntersectionID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_IntersectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IntersectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionID = { + "IntersectionID", + "IntersectionID", + &asn_OP_NativeInteger, + asn_DEF_IntersectionID_tags_1, + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionID_constr_1, &asn_PER_type_IntersectionID_constr_1, IntersectionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/IntersectionReferenceID.c b/vcits/ssem/src/IntersectionReferenceID.c new file mode 100644 index 0000000..b489f08 --- /dev/null +++ b/vcits/ssem/src/IntersectionReferenceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "IntersectionReferenceID.h" + +asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_IntersectionReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1 = { + sizeof(struct IntersectionReferenceID), + offsetof(struct IntersectionReferenceID, _asn_ctx), + asn_MAP_IntersectionReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_IntersectionReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID = { + "IntersectionReferenceID", + "IntersectionReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionReferenceID_tags_1, + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionReferenceID_1, + 2, /* Elements count */ + &asn_SPC_IntersectionReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/IntersectionState-addGrpC.c b/vcits/ssem/src/IntersectionState-addGrpC.c new file mode 100644 index 0000000..cc512eb --- /dev/null +++ b/vcits/ssem/src/IntersectionState-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "IntersectionState-addGrpC.h" + +#include "PrioritizationResponseList.h" +asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState_addGrpC, activePrioritizations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "activePrioritizations" + }, +}; +static const int asn_MAP_IntersectionState_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* activePrioritizations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1 = { + sizeof(struct IntersectionState_addGrpC), + offsetof(struct IntersectionState_addGrpC, _asn_ctx), + asn_MAP_IntersectionState_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_IntersectionState_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC = { + "IntersectionState-addGrpC", + "IntersectionState-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_addGrpC_tags_1, + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionState_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_IntersectionState_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/IntersectionState.c b/vcits/ssem/src/IntersectionState.c new file mode 100644 index 0000000..603375c --- /dev/null +++ b/vcits/ssem/src/IntersectionState.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "IntersectionState.h" + +#include "EnabledLaneList.h" +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct IntersectionState__regional), + offsetof(struct IntersectionState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { &asn_OER_type_regional_constr_11, &asn_PER_type_regional_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionState_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStatusObject, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 3, offsetof(struct IntersectionState, moy), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "moy" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, enabledLanes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EnabledLaneList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabledLanes" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, states), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "states" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { &asn_OER_memb_regional_constr_11, &asn_PER_memb_regional_constr_11, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionState_oms_1[] = { 0, 4, 5, 6, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* moy */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* enabledLanes */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* states */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1 = { + sizeof(struct IntersectionState), + offsetof(struct IntersectionState, _asn_ctx), + asn_MAP_IntersectionState_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_IntersectionState_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState = { + "IntersectionState", + "IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_tags_1, + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntersectionState_1, + 10, /* Elements count */ + &asn_SPC_IntersectionState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/IntersectionStateList.c b/vcits/ssem/src/IntersectionStateList.c new file mode 100644 index 0000000..5992155 --- /dev/null +++ b/vcits/ssem/src/IntersectionStateList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "IntersectionStateList.h" + +#include "IntersectionState.h" +static asn_oer_constraints_t asn_OER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_IntersectionStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1 = { + sizeof(struct IntersectionStateList), + offsetof(struct IntersectionStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStateList = { + "IntersectionStateList", + "IntersectionStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionStateList_tags_1, + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionStateList_constr_1, &asn_PER_type_IntersectionStateList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntersectionStateList_1, + 1, /* Single element */ + &asn_SPC_IntersectionStateList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/IntersectionStatusObject.c b/vcits/ssem/src/IntersectionStatusObject.c new file mode 100644 index 0000000..aec6cbf --- /dev/null +++ b/vcits/ssem/src/IntersectionStatusObject.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "IntersectionStatusObject.h" + +int +IntersectionStatusObject_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStatusObject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject = { + "IntersectionStatusObject", + "IntersectionStatusObject", + &asn_OP_BIT_STRING, + asn_DEF_IntersectionStatusObject_tags_1, + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStatusObject_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + { &asn_OER_type_IntersectionStatusObject_constr_1, &asn_PER_type_IntersectionStatusObject_constr_1, IntersectionStatusObject_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Iso3833VehicleType.c b/vcits/ssem/src/Iso3833VehicleType.c new file mode 100644 index 0000000..ab0a89f --- /dev/null +++ b/vcits/ssem/src/Iso3833VehicleType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Iso3833VehicleType.h" + +int +Iso3833VehicleType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Iso3833VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType = { + "Iso3833VehicleType", + "Iso3833VehicleType", + &asn_OP_NativeInteger, + asn_DEF_Iso3833VehicleType_tags_1, + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + asn_DEF_Iso3833VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + { &asn_OER_type_Iso3833VehicleType_constr_1, &asn_PER_type_Iso3833VehicleType_constr_1, Iso3833VehicleType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/IssuerIdentifier.c b/vcits/ssem/src/IssuerIdentifier.c new file mode 100644 index 0000000..84e2fc4 --- /dev/null +++ b/vcits/ssem/src/IssuerIdentifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "IssuerIdentifier.h" + +int +IssuerIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IssuerIdentifier_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_IssuerIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_IssuerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IssuerIdentifier = { + "IssuerIdentifier", + "IssuerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_IssuerIdentifier_tags_1, + sizeof(asn_DEF_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_IssuerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_IssuerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_IssuerIdentifier_tags_1[0]), /* 1 */ + { &asn_OER_type_IssuerIdentifier_constr_1, &asn_PER_type_IssuerIdentifier_constr_1, IssuerIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/ItineraryPath.c b/vcits/ssem/src/ItineraryPath.c new file mode 100644 index 0000000..cb28aa2 --- /dev/null +++ b/vcits/ssem/src/ItineraryPath.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ItineraryPath.h" + +#include "ReferencePosition.h" +static asn_oer_constraints_t asn_OER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..40)) */}; +static asn_per_constraints_t asn_PER_type_ItineraryPath_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 40 } /* (SIZE(1..40)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ItineraryPath_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItineraryPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ItineraryPath_specs_1 = { + sizeof(struct ItineraryPath), + offsetof(struct ItineraryPath, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItineraryPath = { + "ItineraryPath", + "ItineraryPath", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItineraryPath_tags_1, + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + asn_DEF_ItineraryPath_tags_1, /* Same as above */ + sizeof(asn_DEF_ItineraryPath_tags_1) + /sizeof(asn_DEF_ItineraryPath_tags_1[0]), /* 1 */ + { &asn_OER_type_ItineraryPath_constr_1, &asn_PER_type_ItineraryPath_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItineraryPath_1, + 1, /* Single element */ + &asn_SPC_ItineraryPath_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ItsPduHeader.c b/vcits/ssem/src/ItsPduHeader.c new file mode 100644 index 0000000..b8dc5c9 --- /dev/null +++ b/vcits/ssem/src/ItsPduHeader.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ItsPduHeader.h" + +static int +memb_protocolVersion_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_messageID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_protocolVersion_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_messageID_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_messageID_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsPduHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, protocolVersion), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_protocolVersion_constr_2, &asn_PER_memb_protocolVersion_constr_2, memb_protocolVersion_constraint_1 }, + 0, 0, /* No default value */ + "protocolVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, messageID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_messageID_constr_3, &asn_PER_memb_messageID_constr_3, memb_messageID_constraint_1 }, + 0, 0, /* No default value */ + "messageID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ItsPduHeader, stationID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsPduHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsPduHeader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolVersion */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* messageID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* stationID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsPduHeader_specs_1 = { + sizeof(struct ItsPduHeader), + offsetof(struct ItsPduHeader, _asn_ctx), + asn_MAP_ItsPduHeader_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsPduHeader = { + "ItsPduHeader", + "ItsPduHeader", + &asn_OP_SEQUENCE, + asn_DEF_ItsPduHeader_tags_1, + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + asn_DEF_ItsPduHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ItsPduHeader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsPduHeader_1, + 3, /* Elements count */ + &asn_SPC_ItsPduHeader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ItsStationPosition.c b/vcits/ssem/src/ItsStationPosition.c new file mode 100644 index 0000000..37770c1 --- /dev/null +++ b/vcits/ssem/src/ItsStationPosition.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ItsStationPosition.h" + +#include "NodeOffsetPointXY.h" +asn_TYPE_member_t asn_MBR_ItsStationPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ItsStationPosition, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_POINTER, 3, offsetof(struct ItsStationPosition, laneID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 2, offsetof(struct ItsStationPosition, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_POINTER, 1, offsetof(struct ItsStationPosition, timeReference), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeReference, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeReference" + }, +}; +static const int asn_MAP_ItsStationPosition_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ItsStationPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ItsStationPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* timeReference */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ItsStationPosition_specs_1 = { + sizeof(struct ItsStationPosition), + offsetof(struct ItsStationPosition, _asn_ctx), + asn_MAP_ItsStationPosition_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ItsStationPosition_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsStationPosition = { + "ItsStationPosition", + "ItsStationPosition", + &asn_OP_SEQUENCE, + asn_DEF_ItsStationPosition_tags_1, + sizeof(asn_DEF_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ItsStationPosition_tags_1[0]), /* 1 */ + asn_DEF_ItsStationPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ItsStationPosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ItsStationPosition_1, + 4, /* Elements count */ + &asn_SPC_ItsStationPosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ItsStationPositionList.c b/vcits/ssem/src/ItsStationPositionList.c new file mode 100644 index 0000000..62d3a4c --- /dev/null +++ b/vcits/ssem/src/ItsStationPositionList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ItsStationPositionList.h" + +#include "ItsStationPosition.h" +static asn_oer_constraints_t asn_OER_type_ItsStationPositionList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_ItsStationPositionList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ItsStationPositionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ItsStationPosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ItsStationPositionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ItsStationPositionList_specs_1 = { + sizeof(struct ItsStationPositionList), + offsetof(struct ItsStationPositionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ItsStationPositionList = { + "ItsStationPositionList", + "ItsStationPositionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ItsStationPositionList_tags_1, + sizeof(asn_DEF_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ItsStationPositionList_tags_1[0]), /* 1 */ + asn_DEF_ItsStationPositionList_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ItsStationPositionList_tags_1[0]), /* 1 */ + { &asn_OER_type_ItsStationPositionList_constr_1, &asn_PER_type_ItsStationPositionList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ItsStationPositionList_1, + 1, /* Single element */ + &asn_SPC_ItsStationPositionList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneAttributes-Barrier.c b/vcits/ssem/src/LaneAttributes-Barrier.c new file mode 100644 index 0000000..f53bc51 --- /dev/null +++ b/vcits/ssem/src/LaneAttributes-Barrier.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneAttributes-Barrier.h" + +int +LaneAttributes_Barrier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Barrier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier = { + "LaneAttributes-Barrier", + "LaneAttributes-Barrier", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Barrier_tags_1, + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Barrier_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Barrier_constr_1, &asn_PER_type_LaneAttributes_Barrier_constr_1, LaneAttributes_Barrier_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneAttributes-Bike.c b/vcits/ssem/src/LaneAttributes-Bike.c new file mode 100644 index 0000000..7e7394a --- /dev/null +++ b/vcits/ssem/src/LaneAttributes-Bike.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneAttributes-Bike.h" + +int +LaneAttributes_Bike_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Bike_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike = { + "LaneAttributes-Bike", + "LaneAttributes-Bike", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Bike_tags_1, + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Bike_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Bike_constr_1, &asn_PER_type_LaneAttributes_Bike_constr_1, LaneAttributes_Bike_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneAttributes-Crosswalk.c b/vcits/ssem/src/LaneAttributes-Crosswalk.c new file mode 100644 index 0000000..4746460 --- /dev/null +++ b/vcits/ssem/src/LaneAttributes-Crosswalk.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneAttributes-Crosswalk.h" + +int +LaneAttributes_Crosswalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Crosswalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk = { + "LaneAttributes-Crosswalk", + "LaneAttributes-Crosswalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Crosswalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Crosswalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Crosswalk_constr_1, &asn_PER_type_LaneAttributes_Crosswalk_constr_1, LaneAttributes_Crosswalk_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneAttributes-Parking.c b/vcits/ssem/src/LaneAttributes-Parking.c new file mode 100644 index 0000000..04ae09a --- /dev/null +++ b/vcits/ssem/src/LaneAttributes-Parking.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneAttributes-Parking.h" + +int +LaneAttributes_Parking_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Parking_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking = { + "LaneAttributes-Parking", + "LaneAttributes-Parking", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Parking_tags_1, + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Parking_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Parking_constr_1, &asn_PER_type_LaneAttributes_Parking_constr_1, LaneAttributes_Parking_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneAttributes-Sidewalk.c b/vcits/ssem/src/LaneAttributes-Sidewalk.c new file mode 100644 index 0000000..983fe30 --- /dev/null +++ b/vcits/ssem/src/LaneAttributes-Sidewalk.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneAttributes-Sidewalk.h" + +int +LaneAttributes_Sidewalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Sidewalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk = { + "LaneAttributes-Sidewalk", + "LaneAttributes-Sidewalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Sidewalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Sidewalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Sidewalk_constr_1, &asn_PER_type_LaneAttributes_Sidewalk_constr_1, LaneAttributes_Sidewalk_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneAttributes-Striping.c b/vcits/ssem/src/LaneAttributes-Striping.c new file mode 100644 index 0000000..d2f9bdd --- /dev/null +++ b/vcits/ssem/src/LaneAttributes-Striping.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneAttributes-Striping.h" + +int +LaneAttributes_Striping_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Striping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping = { + "LaneAttributes-Striping", + "LaneAttributes-Striping", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Striping_tags_1, + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Striping_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Striping_constr_1, &asn_PER_type_LaneAttributes_Striping_constr_1, LaneAttributes_Striping_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneAttributes-TrackedVehicle.c b/vcits/ssem/src/LaneAttributes-TrackedVehicle.c new file mode 100644 index 0000000..757bad1 --- /dev/null +++ b/vcits/ssem/src/LaneAttributes-TrackedVehicle.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneAttributes-TrackedVehicle.h" + +int +LaneAttributes_TrackedVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_TrackedVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle = { + "LaneAttributes-TrackedVehicle", + "LaneAttributes-TrackedVehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_TrackedVehicle_constr_1, &asn_PER_type_LaneAttributes_TrackedVehicle_constr_1, LaneAttributes_TrackedVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneAttributes-Vehicle.c b/vcits/ssem/src/LaneAttributes-Vehicle.c new file mode 100644 index 0000000..4afdfc8 --- /dev/null +++ b/vcits/ssem/src/LaneAttributes-Vehicle.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneAttributes-Vehicle.h" + +int +LaneAttributes_Vehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 8, 8 } /* (SIZE(8..8,...)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Vehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle = { + "LaneAttributes-Vehicle", + "LaneAttributes-Vehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Vehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Vehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneAttributes_Vehicle_constr_1, &asn_PER_type_LaneAttributes_Vehicle_constr_1, LaneAttributes_Vehicle_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneAttributes-addGrpC.c b/vcits/ssem/src/LaneAttributes-addGrpC.c new file mode 100644 index 0000000..5cccdb0 --- /dev/null +++ b/vcits/ssem/src/LaneAttributes-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneAttributes-addGrpC.h" + +asn_TYPE_member_t asn_MBR_LaneAttributes_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct LaneAttributes_addGrpC, maxVehicleHeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleHeight, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxVehicleHeight" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes_addGrpC, maxVehicleWeight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleMass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxVehicleWeight" + }, +}; +static const int asn_MAP_LaneAttributes_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxVehicleHeight */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maxVehicleWeight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_addGrpC_specs_1 = { + sizeof(struct LaneAttributes_addGrpC), + offsetof(struct LaneAttributes_addGrpC, _asn_ctx), + asn_MAP_LaneAttributes_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_LaneAttributes_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_addGrpC = { + "LaneAttributes-addGrpC", + "LaneAttributes-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_addGrpC_tags_1, + sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneAttributes_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_LaneAttributes_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneAttributes.c b/vcits/ssem/src/LaneAttributes.c new file mode 100644 index 0000000..e3e1754 --- /dev/null +++ b/vcits/ssem/src/LaneAttributes.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneAttributes.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_LaneAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, directionalUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDirection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "directionalUse" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, sharedWith), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneSharing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sharedWith" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, laneType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_LaneTypeAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneType" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_LaneAttributes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_LaneAttributes_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* directionalUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sharedWith */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1 = { + sizeof(struct LaneAttributes), + offsetof(struct LaneAttributes, _asn_ctx), + asn_MAP_LaneAttributes_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_LaneAttributes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes = { + "LaneAttributes", + "LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_tags_1, + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LaneAttributes_1, + 4, /* Elements count */ + &asn_SPC_LaneAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneConnectionID.c b/vcits/ssem/src/LaneConnectionID.c new file mode 100644 index 0000000..0e4b92f --- /dev/null +++ b/vcits/ssem/src/LaneConnectionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneConnectionID.h" + +int +LaneConnectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneConnectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneConnectionID = { + "LaneConnectionID", + "LaneConnectionID", + &asn_OP_NativeInteger, + asn_DEF_LaneConnectionID_tags_1, + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + asn_DEF_LaneConnectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneConnectionID_constr_1, &asn_PER_type_LaneConnectionID_constr_1, LaneConnectionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/LaneDataAttribute.c b/vcits/ssem/src/LaneDataAttribute.c new file mode 100644 index 0000000..15fa902 --- /dev/null +++ b/vcits/ssem/src/LaneDataAttribute.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneDataAttribute.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_LaneDataAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct LaneDataAttribute__regional), + offsetof(struct LaneDataAttribute__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.pathEndPointAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathEndPointAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointCenter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointCenter" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointLeft), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointRight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneCrownPointRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneAngle), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MergeDivergeNodeAngle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneDataAttribute_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathEndPointAngle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneCrownPointCenter */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneCrownPointLeft */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneCrownPointRight */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAngle */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1 = { + sizeof(struct LaneDataAttribute), + offsetof(struct LaneDataAttribute, _asn_ctx), + offsetof(struct LaneDataAttribute, present), + sizeof(((struct LaneDataAttribute *)0)->present), + asn_MAP_LaneDataAttribute_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute = { + "LaneDataAttribute", + "LaneDataAttribute", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LaneDataAttribute_constr_1, &asn_PER_type_LaneDataAttribute_constr_1, CHOICE_constraint }, + asn_MBR_LaneDataAttribute_1, + 7, /* Elements count */ + &asn_SPC_LaneDataAttribute_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneDataAttributeList.c b/vcits/ssem/src/LaneDataAttributeList.c new file mode 100644 index 0000000..0d41b1d --- /dev/null +++ b/vcits/ssem/src/LaneDataAttributeList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneDataAttributeList.h" + +#include "LaneDataAttribute.h" +static asn_oer_constraints_t asn_OER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_LaneDataAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneDataAttributeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1 = { + sizeof(struct LaneDataAttributeList), + offsetof(struct LaneDataAttributeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList = { + "LaneDataAttributeList", + "LaneDataAttributeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneDataAttributeList_tags_1, + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + asn_DEF_LaneDataAttributeList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDataAttributeList_constr_1, &asn_PER_type_LaneDataAttributeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneDataAttributeList_1, + 1, /* Single element */ + &asn_SPC_LaneDataAttributeList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneDirection.c b/vcits/ssem/src/LaneDirection.c new file mode 100644 index 0000000..15ad0db --- /dev/null +++ b/vcits/ssem/src/LaneDirection.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneDirection.h" + +int +LaneDirection_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +asn_per_constraints_t asn_PER_type_LaneDirection_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneDirection = { + "LaneDirection", + "LaneDirection", + &asn_OP_BIT_STRING, + asn_DEF_LaneDirection_tags_1, + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + asn_DEF_LaneDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneDirection_constr_1, &asn_PER_type_LaneDirection_constr_1, LaneDirection_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneID.c b/vcits/ssem/src/LaneID.c new file mode 100644 index 0000000..acd3044 --- /dev/null +++ b/vcits/ssem/src/LaneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneID.h" + +int +LaneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneID = { + "LaneID", + "LaneID", + &asn_OP_NativeInteger, + asn_DEF_LaneID_tags_1, + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + asn_DEF_LaneID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneID_constr_1, &asn_PER_type_LaneID_constr_1, LaneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/LaneList.c b/vcits/ssem/src/LaneList.c new file mode 100644 index 0000000..d5e7b27 --- /dev/null +++ b/vcits/ssem/src/LaneList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneList.h" + +#include "GenericLane.h" +static asn_oer_constraints_t asn_OER_type_LaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_LaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1 = { + sizeof(struct LaneList), + offsetof(struct LaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneList = { + "LaneList", + "LaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneList_tags_1, + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + asn_DEF_LaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneList_constr_1, &asn_PER_type_LaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LaneList_1, + 1, /* Single element */ + &asn_SPC_LaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LanePosition.c b/vcits/ssem/src/LanePosition.c new file mode 100644 index 0000000..40c088b --- /dev/null +++ b/vcits/ssem/src/LanePosition.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LanePosition.h" + +int +LanePosition_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1 && value <= 14)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LanePosition_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-1..14) */, + -1}; +static asn_per_constraints_t asn_PER_type_LanePosition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, -1, 14 } /* (-1..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LanePosition = { + "LanePosition", + "LanePosition", + &asn_OP_NativeInteger, + asn_DEF_LanePosition_tags_1, + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + asn_DEF_LanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_LanePosition_tags_1) + /sizeof(asn_DEF_LanePosition_tags_1[0]), /* 1 */ + { &asn_OER_type_LanePosition_constr_1, &asn_PER_type_LanePosition_constr_1, LanePosition_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/LaneSharing.c b/vcits/ssem/src/LaneSharing.c new file mode 100644 index 0000000..e0a2139 --- /dev/null +++ b/vcits/ssem/src/LaneSharing.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneSharing.h" + +int +LaneSharing_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneSharing_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_LaneSharing_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneSharing_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneSharing = { + "LaneSharing", + "LaneSharing", + &asn_OP_BIT_STRING, + asn_DEF_LaneSharing_tags_1, + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + asn_DEF_LaneSharing_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneSharing_constr_1, &asn_PER_type_LaneSharing_constr_1, LaneSharing_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneTypeAttributes.c b/vcits/ssem/src/LaneTypeAttributes.c new file mode 100644 index 0000000..44a480c --- /dev/null +++ b/vcits/ssem/src/LaneTypeAttributes.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneTypeAttributes.h" + +static asn_oer_constraints_t asn_OER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.vehicle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Vehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.crosswalk), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Crosswalk, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crosswalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.bikeLane), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Bike, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bikeLane" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.sidewalk), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Sidewalk, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sidewalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.median), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Barrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "median" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.striping), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Striping, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "striping" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.trackedVehicle), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_TrackedVehicle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trackedVehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.parking), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Parking, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "parking" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneTypeAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* crosswalk */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bikeLane */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sidewalk */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* median */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* striping */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* trackedVehicle */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* parking */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1 = { + sizeof(struct LaneTypeAttributes), + offsetof(struct LaneTypeAttributes, _asn_ctx), + offsetof(struct LaneTypeAttributes, present), + sizeof(((struct LaneTypeAttributes *)0)->present), + asn_MAP_LaneTypeAttributes_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + 8 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes = { + "LaneTypeAttributes", + "LaneTypeAttributes", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LaneTypeAttributes_constr_1, &asn_PER_type_LaneTypeAttributes_constr_1, CHOICE_constraint }, + asn_MBR_LaneTypeAttributes_1, + 8, /* Elements count */ + &asn_SPC_LaneTypeAttributes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LaneWidth.c b/vcits/ssem/src/LaneWidth.c new file mode 100644 index 0000000..adf2e0d --- /dev/null +++ b/vcits/ssem/src/LaneWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LaneWidth.h" + +int +LaneWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LaneWidth_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_LaneWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneWidth = { + "LaneWidth", + "LaneWidth", + &asn_OP_NativeInteger, + asn_DEF_LaneWidth_tags_1, + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + asn_DEF_LaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_LaneWidth_constr_1, &asn_PER_type_LaneWidth_constr_1, LaneWidth_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/LateralAcceleration.c b/vcits/ssem/src/LateralAcceleration.c new file mode 100644 index 0000000..4b41554 --- /dev/null +++ b/vcits/ssem/src/LateralAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LateralAcceleration.h" + +static asn_TYPE_member_t asn_MBR_LateralAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LateralAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LateralAcceleration, lateralAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateralAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LateralAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LateralAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateralAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lateralAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_LateralAcceleration_specs_1 = { + sizeof(struct LateralAcceleration), + offsetof(struct LateralAcceleration, _asn_ctx), + asn_MAP_LateralAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LateralAcceleration = { + "LateralAcceleration", + "LateralAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LateralAcceleration_tags_1, + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LateralAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAcceleration_tags_1) + /sizeof(asn_DEF_LateralAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LateralAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LateralAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LateralAccelerationValue.c b/vcits/ssem/src/LateralAccelerationValue.c new file mode 100644 index 0000000..3ea2fba --- /dev/null +++ b/vcits/ssem/src/LateralAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LateralAccelerationValue.h" + +int +LateralAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LateralAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LateralAccelerationValue = { + "LateralAccelerationValue", + "LateralAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LateralAccelerationValue_tags_1, + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LateralAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_LateralAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LateralAccelerationValue_constr_1, &asn_PER_type_LateralAccelerationValue_constr_1, LateralAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Latitude.c b/vcits/ssem/src/Latitude.c new file mode 100644 index 0000000..9d8cf4e --- /dev/null +++ b/vcits/ssem/src/Latitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Latitude.h" + +int +Latitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -900000000 && value <= 900000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Latitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-900000000..900000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Latitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 31, -1, -900000000, 900000001 } /* (-900000000..900000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_Latitude_tags_1, + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + asn_DEF_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Latitude_constr_1, &asn_PER_type_Latitude_constr_1, Latitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/LayerID.c b/vcits/ssem/src/LayerID.c new file mode 100644 index 0000000..50a844d --- /dev/null +++ b/vcits/ssem/src/LayerID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LayerID.h" + +int +LayerID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LayerID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..100) */, + -1}; +asn_per_constraints_t asn_PER_type_LayerID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LayerID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerID = { + "LayerID", + "LayerID", + &asn_OP_NativeInteger, + asn_DEF_LayerID_tags_1, + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + asn_DEF_LayerID_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + { &asn_OER_type_LayerID_constr_1, &asn_PER_type_LayerID_constr_1, LayerID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/LayerType.c b/vcits/ssem/src/LayerType.c new file mode 100644 index 0000000..504fe65 --- /dev/null +++ b/vcits/ssem/src/LayerType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LayerType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LayerType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LayerType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_LayerType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 12, "mixedContent" }, + { 2, 14, "generalMapData" }, + { 3, 16, "intersectionData" }, + { 4, 9, "curveData" }, + { 5, 18, "roadwaySectionData" }, + { 6, 15, "parkingAreaData" }, + { 7, 14, "sharedLaneData" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_LayerType_enum2value_1[] = { + 4, /* curveData(4) */ + 2, /* generalMapData(2) */ + 3, /* intersectionData(3) */ + 1, /* mixedContent(1) */ + 0, /* none(0) */ + 6, /* parkingAreaData(6) */ + 5, /* roadwaySectionData(5) */ + 7 /* sharedLaneData(7) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1 = { + asn_MAP_LayerType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_LayerType_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_LayerType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerType = { + "LayerType", + "LayerType", + &asn_OP_NativeEnumerated, + asn_DEF_LayerType_tags_1, + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + asn_DEF_LayerType_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + { &asn_OER_type_LayerType_constr_1, &asn_PER_type_LayerType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_LayerType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LicPlateNumber.c b/vcits/ssem/src/LicPlateNumber.c new file mode 100644 index 0000000..125d1d6 --- /dev/null +++ b/vcits/ssem/src/LicPlateNumber.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LicPlateNumber.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_LicPlateNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LicPlateNumber = { + "LicPlateNumber", + "LicPlateNumber", + &asn_OP_OCTET_STRING, + asn_DEF_LicPlateNumber_tags_1, + sizeof(asn_DEF_LicPlateNumber_tags_1) + /sizeof(asn_DEF_LicPlateNumber_tags_1[0]), /* 1 */ + asn_DEF_LicPlateNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_LicPlateNumber_tags_1) + /sizeof(asn_DEF_LicPlateNumber_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LightBarSirenInUse.c b/vcits/ssem/src/LightBarSirenInUse.c new file mode 100644 index 0000000..4ea3ca1 --- /dev/null +++ b/vcits/ssem/src/LightBarSirenInUse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LightBarSirenInUse.h" + +int +LightBarSirenInUse_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LightBarSirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LightBarSirenInUse = { + "LightBarSirenInUse", + "LightBarSirenInUse", + &asn_OP_BIT_STRING, + asn_DEF_LightBarSirenInUse_tags_1, + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + asn_DEF_LightBarSirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_LightBarSirenInUse_tags_1[0]), /* 1 */ + { &asn_OER_type_LightBarSirenInUse_constr_1, &asn_PER_type_LightBarSirenInUse_constr_1, LightBarSirenInUse_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Longitude.c b/vcits/ssem/src/Longitude.c new file mode 100644 index 0000000..b074845 --- /dev/null +++ b/vcits/ssem/src/Longitude.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Longitude.h" + +int +Longitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1800000000 && value <= 1800000001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Longitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-1800000000..1800000001) */, + -1}; +asn_per_constraints_t asn_PER_type_Longitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, -1800000000, 1800000001 } /* (-1800000000..1800000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_Longitude_tags_1, + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + asn_DEF_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + { &asn_OER_type_Longitude_constr_1, &asn_PER_type_Longitude_constr_1, Longitude_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/LongitudinalAcceleration.c b/vcits/ssem/src/LongitudinalAcceleration.c new file mode 100644 index 0000000..9fcda45 --- /dev/null +++ b/vcits/ssem/src/LongitudinalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LongitudinalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_LongitudinalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudinalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct LongitudinalAcceleration, longitudinalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitudinalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LongitudinalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longitudinalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_LongitudinalAcceleration_specs_1 = { + sizeof(struct LongitudinalAcceleration), + offsetof(struct LongitudinalAcceleration, _asn_ctx), + asn_MAP_LongitudinalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAcceleration = { + "LongitudinalAcceleration", + "LongitudinalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_LongitudinalAcceleration_tags_1, + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_LongitudinalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LongitudinalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_LongitudinalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/LongitudinalAccelerationValue.c b/vcits/ssem/src/LongitudinalAccelerationValue.c new file mode 100644 index 0000000..c9382e7 --- /dev/null +++ b/vcits/ssem/src/LongitudinalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "LongitudinalAccelerationValue.h" + +int +LongitudinalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LongitudinalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LongitudinalAccelerationValue = { + "LongitudinalAccelerationValue", + "LongitudinalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_LongitudinalAccelerationValue_tags_1, + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_LongitudinalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_LongitudinalAccelerationValue_constr_1, &asn_PER_type_LongitudinalAccelerationValue_constr_1, LongitudinalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/ManeuverAssistList.c b/vcits/ssem/src/ManeuverAssistList.c new file mode 100644 index 0000000..46fef16 --- /dev/null +++ b/vcits/ssem/src/ManeuverAssistList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ManeuverAssistList.h" + +#include "ConnectionManeuverAssist.h" +static asn_oer_constraints_t asn_OER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ManeuverAssistList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1 = { + sizeof(struct ManeuverAssistList), + offsetof(struct ManeuverAssistList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList = { + "ManeuverAssistList", + "ManeuverAssistList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ManeuverAssistList_tags_1, + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + asn_DEF_ManeuverAssistList_tags_1, /* Same as above */ + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + { &asn_OER_type_ManeuverAssistList_constr_1, &asn_PER_type_ManeuverAssistList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ManeuverAssistList_1, + 1, /* Single element */ + &asn_SPC_ManeuverAssistList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ManufacturerIdentifier.c b/vcits/ssem/src/ManufacturerIdentifier.c new file mode 100644 index 0000000..e522730 --- /dev/null +++ b/vcits/ssem/src/ManufacturerIdentifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ManufacturerIdentifier.h" + +int +ManufacturerIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ManufacturerIdentifier_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_ManufacturerIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ManufacturerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ManufacturerIdentifier = { + "ManufacturerIdentifier", + "ManufacturerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_ManufacturerIdentifier_tags_1, + sizeof(asn_DEF_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_ManufacturerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_ManufacturerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_ManufacturerIdentifier_tags_1[0]), /* 1 */ + { &asn_OER_type_ManufacturerIdentifier_constr_1, &asn_PER_type_ManufacturerIdentifier_constr_1, ManufacturerIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/MapData-addGrpC.c b/vcits/ssem/src/MapData-addGrpC.c new file mode 100644 index 0000000..15942b5 --- /dev/null +++ b/vcits/ssem/src/MapData-addGrpC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "MapData-addGrpC.h" + +#include "SignalHeadLocationList.h" +asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData_addGrpC, signalHeadLocations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalHeadLocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalHeadLocations" + }, +}; +static const int asn_MAP_MapData_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MapData_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* signalHeadLocations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1 = { + sizeof(struct MapData_addGrpC), + offsetof(struct MapData_addGrpC, _asn_ctx), + asn_MAP_MapData_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MapData_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC = { + "MapData-addGrpC", + "MapData-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MapData_addGrpC_tags_1, + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MapData_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapData_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MapData_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/MapData.c b/vcits/ssem/src/MapData.c new file mode 100644 index 0000000..c65fb31 --- /dev/null +++ b/vcits/ssem/src/MapData.c @@ -0,0 +1,216 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "MapData.h" + +#include "IntersectionGeometryList.h" +#include "RoadSegmentList.h" +#include "DataParameters.h" +#include "RestrictionClassList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MapData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct MapData__regional), + offsetof(struct MapData__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_MapData_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct MapData, msgIssueRevision), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgIssueRevision" + }, + { ATF_POINTER, 7, offsetof(struct MapData, layerType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layerType" + }, + { ATF_POINTER, 6, offsetof(struct MapData, layerID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "layerID" + }, + { ATF_POINTER, 5, offsetof(struct MapData, intersections), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionGeometryList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 4, offsetof(struct MapData, roadSegments), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadSegments" + }, + { ATF_POINTER, 3, offsetof(struct MapData, dataParameters), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DataParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dataParameters" + }, + { ATF_POINTER, 2, offsetof(struct MapData, restrictionList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "restrictionList" + }, + { ATF_POINTER, 1, offsetof(struct MapData, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MapData_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* msgIssueRevision */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* layerType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* layerID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* roadSegments */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dataParameters */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* restrictionList */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_MapData_specs_1 = { + sizeof(struct MapData), + offsetof(struct MapData, _asn_ctx), + asn_MAP_MapData_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_MapData_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData = { + "MapData", + "MapData", + &asn_OP_SEQUENCE, + asn_DEF_MapData_tags_1, + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + asn_DEF_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MapData_1, + 9, /* Elements count */ + &asn_SPC_MapData_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/MergeDivergeNodeAngle.c b/vcits/ssem/src/MergeDivergeNodeAngle.c new file mode 100644 index 0000000..46884f3 --- /dev/null +++ b/vcits/ssem/src/MergeDivergeNodeAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "MergeDivergeNodeAngle.h" + +int +MergeDivergeNodeAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -180 && value <= 180)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-180..180) */, + -1}; +asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -180, 180 } /* (-180..180) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MergeDivergeNodeAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle = { + "MergeDivergeNodeAngle", + "MergeDivergeNodeAngle", + &asn_OP_NativeInteger, + asn_DEF_MergeDivergeNodeAngle_tags_1, + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + asn_DEF_MergeDivergeNodeAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_MergeDivergeNodeAngle_constr_1, &asn_PER_type_MergeDivergeNodeAngle_constr_1, MergeDivergeNodeAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/MinuteOfTheYear.c b/vcits/ssem/src/MinuteOfTheYear.c new file mode 100644 index 0000000..73b1be5 --- /dev/null +++ b/vcits/ssem/src/MinuteOfTheYear.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "MinuteOfTheYear.h" + +int +MinuteOfTheYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 527040)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..527040) */, + -1}; +asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 527040 } /* (0..527040) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MinuteOfTheYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear = { + "MinuteOfTheYear", + "MinuteOfTheYear", + &asn_OP_NativeInteger, + asn_DEF_MinuteOfTheYear_tags_1, + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + asn_DEF_MinuteOfTheYear_tags_1, /* Same as above */ + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + { &asn_OER_type_MinuteOfTheYear_constr_1, &asn_PER_type_MinuteOfTheYear_constr_1, MinuteOfTheYear_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/MovementEvent-addGrpC.c b/vcits/ssem/src/MovementEvent-addGrpC.c new file mode 100644 index 0000000..9916857 --- /dev/null +++ b/vcits/ssem/src/MovementEvent-addGrpC.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "MovementEvent-addGrpC.h" + +asn_TYPE_member_t asn_MBR_MovementEvent_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementEvent_addGrpC, stateChangeReason), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExceptionalCondition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stateChangeReason" + }, +}; +static const int asn_MAP_MovementEvent_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* stateChangeReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpC_specs_1 = { + sizeof(struct MovementEvent_addGrpC), + offsetof(struct MovementEvent_addGrpC, _asn_ctx), + asn_MAP_MovementEvent_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MovementEvent_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpC = { + "MovementEvent-addGrpC", + "MovementEvent-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_addGrpC_tags_1, + sizeof(asn_DEF_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementEvent_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MovementEvent_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/MovementEvent.c b/vcits/ssem/src/MovementEvent.c new file mode 100644 index 0000000..eecba85 --- /dev/null +++ b/vcits/ssem/src/MovementEvent.c @@ -0,0 +1,164 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "MovementEvent.h" + +#include "TimeChangeDetails.h" +#include "AdvisorySpeedList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct MovementEvent__regional), + offsetof(struct MovementEvent__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementEvent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MovementEvent, eventState), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementPhaseState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventState" + }, + { ATF_POINTER, 3, offsetof(struct MovementEvent, timing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeChangeDetails, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timing" + }, + { ATF_POINTER, 2, offsetof(struct MovementEvent, speeds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speeds" + }, + { ATF_POINTER, 1, offsetof(struct MovementEvent, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementEvent_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventState */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* speeds */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1 = { + sizeof(struct MovementEvent), + offsetof(struct MovementEvent, _asn_ctx), + asn_MAP_MovementEvent_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_MovementEvent_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent = { + "MovementEvent", + "MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_tags_1, + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementEvent_1, + 4, /* Elements count */ + &asn_SPC_MovementEvent_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/MovementEventList.c b/vcits/ssem/src/MovementEventList.c new file mode 100644 index 0000000..26276bc --- /dev/null +++ b/vcits/ssem/src/MovementEventList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "MovementEventList.h" + +#include "MovementEvent.h" +static asn_oer_constraints_t asn_OER_type_MovementEventList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_MovementEventList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MovementEventList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementEventList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1 = { + sizeof(struct MovementEventList), + offsetof(struct MovementEventList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEventList = { + "MovementEventList", + "MovementEventList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementEventList_tags_1, + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + asn_DEF_MovementEventList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementEventList_constr_1, &asn_PER_type_MovementEventList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MovementEventList_1, + 1, /* Single element */ + &asn_SPC_MovementEventList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/MovementList.c b/vcits/ssem/src/MovementList.c new file mode 100644 index 0000000..f455b10 --- /dev/null +++ b/vcits/ssem/src/MovementList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "MovementList.h" + +#include "MovementState.h" +static asn_oer_constraints_t asn_OER_type_MovementList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_MovementList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MovementList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1 = { + sizeof(struct MovementList), + offsetof(struct MovementList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementList = { + "MovementList", + "MovementList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementList_tags_1, + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + asn_DEF_MovementList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementList_constr_1, &asn_PER_type_MovementList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MovementList_1, + 1, /* Single element */ + &asn_SPC_MovementList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/MovementPhaseState.c b/vcits/ssem/src/MovementPhaseState.c new file mode 100644 index 0000000..575dbd0 --- /dev/null +++ b/vcits/ssem/src/MovementPhaseState.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "MovementPhaseState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_MovementPhaseState_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 4, "dark" }, + { 2, 17, "stop-Then-Proceed" }, + { 3, 15, "stop-And-Remain" }, + { 4, 12, "pre-Movement" }, + { 5, 27, "permissive-Movement-Allowed" }, + { 6, 26, "protected-Movement-Allowed" }, + { 7, 20, "permissive-clearance" }, + { 8, 19, "protected-clearance" }, + { 9, 27, "caution-Conflicting-Traffic" } +}; +static const unsigned int asn_MAP_MovementPhaseState_enum2value_1[] = { + 9, /* caution-Conflicting-Traffic(9) */ + 1, /* dark(1) */ + 5, /* permissive-Movement-Allowed(5) */ + 7, /* permissive-clearance(7) */ + 4, /* pre-Movement(4) */ + 6, /* protected-Movement-Allowed(6) */ + 8, /* protected-clearance(8) */ + 3, /* stop-And-Remain(3) */ + 2, /* stop-Then-Proceed(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1 = { + asn_MAP_MovementPhaseState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_MovementPhaseState_enum2value_1, /* N => "tag"; sorted by N */ + 10, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_MovementPhaseState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MovementPhaseState = { + "MovementPhaseState", + "MovementPhaseState", + &asn_OP_NativeEnumerated, + asn_DEF_MovementPhaseState_tags_1, + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + asn_DEF_MovementPhaseState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + { &asn_OER_type_MovementPhaseState_constr_1, &asn_PER_type_MovementPhaseState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MovementPhaseState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/MovementState.c b/vcits/ssem/src/MovementState.c new file mode 100644 index 0000000..3d1fa8e --- /dev/null +++ b/vcits/ssem/src/MovementState.c @@ -0,0 +1,173 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "MovementState.h" + +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct MovementState__regional), + offsetof(struct MovementState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementState_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementState, movementName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "movementName" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, state_time_speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementEventList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "state-time-speed" + }, + { ATF_POINTER, 2, offsetof(struct MovementState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct MovementState, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementState_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_MovementState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* movementName */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* state-time-speed */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1 = { + sizeof(struct MovementState), + offsetof(struct MovementState, _asn_ctx), + asn_MAP_MovementState_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_MovementState_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementState = { + "MovementState", + "MovementState", + &asn_OP_SEQUENCE, + asn_DEF_MovementState_tags_1, + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + asn_DEF_MovementState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MovementState_1, + 5, /* Elements count */ + &asn_SPC_MovementState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/MsgCount.c b/vcits/ssem/src/MsgCount.c new file mode 100644 index 0000000..c2d89f9 --- /dev/null +++ b/vcits/ssem/src/MsgCount.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "MsgCount.h" + +int +MsgCount_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MsgCount_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_MsgCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MsgCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MsgCount = { + "MsgCount", + "MsgCount", + &asn_OP_NativeInteger, + asn_DEF_MsgCount_tags_1, + sizeof(asn_DEF_MsgCount_tags_1) + /sizeof(asn_DEF_MsgCount_tags_1[0]), /* 1 */ + asn_DEF_MsgCount_tags_1, /* Same as above */ + sizeof(asn_DEF_MsgCount_tags_1) + /sizeof(asn_DEF_MsgCount_tags_1[0]), /* 1 */ + { &asn_OER_type_MsgCount_constr_1, &asn_PER_type_MsgCount_constr_1, MsgCount_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Node-LLmD-64b.c b/vcits/ssem/src/Node-LLmD-64b.c new file mode 100644 index 0000000..50e381b --- /dev/null +++ b/vcits/ssem/src/Node-LLmD-64b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Node-LLmD-64b.h" + +asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LLmD_64b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LLmD_64b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1 = { + sizeof(struct Node_LLmD_64b), + offsetof(struct Node_LLmD_64b, _asn_ctx), + asn_MAP_Node_LLmD_64b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b = { + "Node-LLmD-64b", + "Node-LLmD-64b", + &asn_OP_SEQUENCE, + asn_DEF_Node_LLmD_64b_tags_1, + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + asn_DEF_Node_LLmD_64b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_LLmD_64b_1, + 2, /* Elements count */ + &asn_SPC_Node_LLmD_64b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Node-XY-20b.c b/vcits/ssem/src/Node-XY-20b.c new file mode 100644 index 0000000..673a36c --- /dev/null +++ b/vcits/ssem/src/Node-XY-20b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Node-XY-20b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_20b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_20b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_20b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1 = { + sizeof(struct Node_XY_20b), + offsetof(struct Node_XY_20b, _asn_ctx), + asn_MAP_Node_XY_20b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_20b = { + "Node-XY-20b", + "Node-XY-20b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_20b_tags_1, + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_20b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_20b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_20b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Node-XY-22b.c b/vcits/ssem/src/Node-XY-22b.c new file mode 100644 index 0000000..54a43c7 --- /dev/null +++ b/vcits/ssem/src/Node-XY-22b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Node-XY-22b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_22b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_22b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_22b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1 = { + sizeof(struct Node_XY_22b), + offsetof(struct Node_XY_22b, _asn_ctx), + asn_MAP_Node_XY_22b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_22b = { + "Node-XY-22b", + "Node-XY-22b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_22b_tags_1, + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_22b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_22b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_22b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Node-XY-24b.c b/vcits/ssem/src/Node-XY-24b.c new file mode 100644 index 0000000..2e63ace --- /dev/null +++ b/vcits/ssem/src/Node-XY-24b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Node-XY-24b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_24b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_24b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_24b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1 = { + sizeof(struct Node_XY_24b), + offsetof(struct Node_XY_24b, _asn_ctx), + asn_MAP_Node_XY_24b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_24b = { + "Node-XY-24b", + "Node-XY-24b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_24b_tags_1, + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_24b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_24b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_24b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Node-XY-26b.c b/vcits/ssem/src/Node-XY-26b.c new file mode 100644 index 0000000..63b3c2a --- /dev/null +++ b/vcits/ssem/src/Node-XY-26b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Node-XY-26b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_26b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_26b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_26b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1 = { + sizeof(struct Node_XY_26b), + offsetof(struct Node_XY_26b, _asn_ctx), + asn_MAP_Node_XY_26b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_26b = { + "Node-XY-26b", + "Node-XY-26b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_26b_tags_1, + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_26b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_26b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_26b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Node-XY-28b.c b/vcits/ssem/src/Node-XY-28b.c new file mode 100644 index 0000000..4b63ca3 --- /dev/null +++ b/vcits/ssem/src/Node-XY-28b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Node-XY-28b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_28b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_28b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_28b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1 = { + sizeof(struct Node_XY_28b), + offsetof(struct Node_XY_28b, _asn_ctx), + asn_MAP_Node_XY_28b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_28b = { + "Node-XY-28b", + "Node-XY-28b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_28b_tags_1, + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_28b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_28b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_28b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Node-XY-32b.c b/vcits/ssem/src/Node-XY-32b.c new file mode 100644 index 0000000..3f77aaa --- /dev/null +++ b/vcits/ssem/src/Node-XY-32b.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Node-XY-32b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_32b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_32b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_32b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1 = { + sizeof(struct Node_XY_32b), + offsetof(struct Node_XY_32b, _asn_ctx), + asn_MAP_Node_XY_32b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_32b = { + "Node-XY-32b", + "Node-XY-32b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_32b_tags_1, + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_32b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_XY_32b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_32b_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Node.c b/vcits/ssem/src/Node.c new file mode 100644 index 0000000..6ded978 --- /dev/null +++ b/vcits/ssem/src/Node.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Node.h" + +asn_TYPE_member_t asn_MBR_Node_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 3, offsetof(struct Node, lane), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 2, offsetof(struct Node, connectionID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 1, offsetof(struct Node, intersectionID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersectionID" + }, +}; +static const int asn_MAP_Node_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Node_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* intersectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_specs_1 = { + sizeof(struct Node), + offsetof(struct Node, _asn_ctx), + asn_MAP_Node_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Node_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node = { + "Node", + "Node", + &asn_OP_SEQUENCE, + asn_DEF_Node_tags_1, + sizeof(asn_DEF_Node_tags_1) + /sizeof(asn_DEF_Node_tags_1[0]), /* 1 */ + asn_DEF_Node_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_tags_1) + /sizeof(asn_DEF_Node_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Node_1, + 4, /* Elements count */ + &asn_SPC_Node_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/NodeAttributeSet-addGrpC.c b/vcits/ssem/src/NodeAttributeSet-addGrpC.c new file mode 100644 index 0000000..44a73ea --- /dev/null +++ b/vcits/ssem/src/NodeAttributeSet-addGrpC.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "NodeAttributeSet-addGrpC.h" + +#include "NodeLink.h" +#include "Node.h" +asn_TYPE_member_t asn_MBR_NodeAttributeSet_addGrpC_1[] = { + { ATF_POINTER, 3, offsetof(struct NodeAttributeSet_addGrpC, ptvRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtvRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptvRequest" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSet_addGrpC, nodeLink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeLink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeLink" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSet_addGrpC, node), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node" + }, +}; +static const int asn_MAP_NodeAttributeSet_addGrpC_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSet_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSet_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptvRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeLink */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* node */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSet_addGrpC_specs_1 = { + sizeof(struct NodeAttributeSet_addGrpC), + offsetof(struct NodeAttributeSet_addGrpC, _asn_ctx), + asn_MAP_NodeAttributeSet_addGrpC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_NodeAttributeSet_addGrpC_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSet_addGrpC = { + "NodeAttributeSet-addGrpC", + "NodeAttributeSet-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSet_addGrpC_tags_1, + sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSet_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeAttributeSet_addGrpC_1, + 3, /* Elements count */ + &asn_SPC_NodeAttributeSet_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/NodeAttributeSetXY.c b/vcits/ssem/src/NodeAttributeSetXY.c new file mode 100644 index 0000000..4a23af0 --- /dev/null +++ b/vcits/ssem/src/NodeAttributeSetXY.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "NodeAttributeSetXY.h" + +#include "NodeAttributeXYList.h" +#include "SegmentAttributeXYList.h" +#include "LaneDataAttributeList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_NodeAttributeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct NodeAttributeSetXY__regional), + offsetof(struct NodeAttributeSetXY__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[] = { + { ATF_POINTER, 7, offsetof(struct NodeAttributeSetXY, localNode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "localNode" + }, + { ATF_POINTER, 6, offsetof(struct NodeAttributeSetXY, disabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "disabled" + }, + { ATF_POINTER, 5, offsetof(struct NodeAttributeSetXY, enabled), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabled" + }, + { ATF_POINTER, 4, offsetof(struct NodeAttributeSetXY, data), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDataAttributeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "data" + }, + { ATF_POINTER, 3, offsetof(struct NodeAttributeSetXY, dWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dWidth" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSetXY, dElevation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dElevation" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSetXY, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_NodeAttributeSetXY_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSetXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* localNode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* disabled */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* enabled */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* data */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dElevation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1 = { + sizeof(struct NodeAttributeSetXY), + offsetof(struct NodeAttributeSetXY, _asn_ctx), + asn_MAP_NodeAttributeSetXY_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_NodeAttributeSetXY_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY = { + "NodeAttributeSetXY", + "NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSetXY_tags_1, + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeAttributeSetXY_1, + 7, /* Elements count */ + &asn_SPC_NodeAttributeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/NodeAttributeXY.c b/vcits/ssem/src/NodeAttributeXY.c new file mode 100644 index 0000000..1ee5500 --- /dev/null +++ b/vcits/ssem/src/NodeAttributeXY.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "NodeAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 11 } /* (0..11,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_NodeAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 8, "stopLine" }, + { 2, 16, "roundedCapStyleA" }, + { 3, 16, "roundedCapStyleB" }, + { 4, 10, "mergePoint" }, + { 5, 12, "divergePoint" }, + { 6, 18, "downstreamStopLine" }, + { 7, 19, "downstreamStartNode" }, + { 8, 15, "closedToTraffic" }, + { 9, 10, "safeIsland" }, + { 10, 20, "curbPresentAtStepOff" }, + { 11, 14, "hydrantPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NodeAttributeXY_enum2value_1[] = { + 8, /* closedToTraffic(8) */ + 10, /* curbPresentAtStepOff(10) */ + 5, /* divergePoint(5) */ + 7, /* downstreamStartNode(7) */ + 6, /* downstreamStopLine(6) */ + 11, /* hydrantPresent(11) */ + 4, /* mergePoint(4) */ + 0, /* reserved(0) */ + 2, /* roundedCapStyleA(2) */ + 3, /* roundedCapStyleB(3) */ + 9, /* safeIsland(9) */ + 1 /* stopLine(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1 = { + asn_MAP_NodeAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NodeAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 12, /* Number of elements in the maps */ + 13, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY = { + "NodeAttributeXY", + "NodeAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_NodeAttributeXY_tags_1, + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeAttributeXY_constr_1, &asn_PER_type_NodeAttributeXY_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NodeAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/NodeAttributeXYList.c b/vcits/ssem/src/NodeAttributeXYList.c new file mode 100644 index 0000000..16e9619 --- /dev/null +++ b/vcits/ssem/src/NodeAttributeXYList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "NodeAttributeXYList.h" + +static asn_oer_constraints_t asn_OER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_NodeAttributeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1 = { + sizeof(struct NodeAttributeXYList), + offsetof(struct NodeAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList = { + "NodeAttributeXYList", + "NodeAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeAttributeXYList_tags_1, + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeAttributeXYList_constr_1, &asn_PER_type_NodeAttributeXYList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_NodeAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/NodeLink.c b/vcits/ssem/src/NodeLink.c new file mode 100644 index 0000000..35b395f --- /dev/null +++ b/vcits/ssem/src/NodeLink.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "NodeLink.h" + +#include "Node.h" +static asn_oer_constraints_t asn_OER_type_NodeLink_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_NodeLink_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeLink_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeLink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeLink_specs_1 = { + sizeof(struct NodeLink), + offsetof(struct NodeLink, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeLink = { + "NodeLink", + "NodeLink", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeLink_tags_1, + sizeof(asn_DEF_NodeLink_tags_1) + /sizeof(asn_DEF_NodeLink_tags_1[0]), /* 1 */ + asn_DEF_NodeLink_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeLink_tags_1) + /sizeof(asn_DEF_NodeLink_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeLink_constr_1, &asn_PER_type_NodeLink_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeLink_1, + 1, /* Single element */ + &asn_SPC_NodeLink_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/NodeListXY.c b/vcits/ssem/src/NodeListXY.c new file mode 100644 index 0000000..2c95cd5 --- /dev/null +++ b/vcits/ssem/src/NodeListXY.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "NodeListXY.h" + +static asn_oer_constraints_t asn_OER_type_NodeListXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeListXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeListXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.computed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ComputedLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "computed" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeListXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* computed */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1 = { + sizeof(struct NodeListXY), + offsetof(struct NodeListXY, _asn_ctx), + offsetof(struct NodeListXY, present), + sizeof(((struct NodeListXY *)0)->present), + asn_MAP_NodeListXY_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeListXY = { + "NodeListXY", + "NodeListXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeListXY_constr_1, &asn_PER_type_NodeListXY_constr_1, CHOICE_constraint }, + asn_MBR_NodeListXY_1, + 2, /* Elements count */ + &asn_SPC_NodeListXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/NodeOffsetPointXY.c b/vcits/ssem/src/NodeOffsetPointXY.c new file mode 100644 index 0000000..2643e68 --- /dev/null +++ b/vcits/ssem/src/NodeOffsetPointXY.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "NodeOffsetPointXY.h" + +static asn_oer_constraints_t asn_OER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_20b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY1" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_22b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY2" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_24b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY3" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_26b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY4" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_28b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY5" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_32b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-XY6" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_LatLon), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LLmD_64b, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "node-LatLon" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeOffsetPointXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* node-XY1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* node-XY2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* node-XY3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* node-XY4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* node-XY5 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* node-XY6 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* node-LatLon */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1 = { + sizeof(struct NodeOffsetPointXY), + offsetof(struct NodeOffsetPointXY, _asn_ctx), + offsetof(struct NodeOffsetPointXY, present), + sizeof(((struct NodeOffsetPointXY *)0)->present), + asn_MAP_NodeOffsetPointXY_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY = { + "NodeOffsetPointXY", + "NodeOffsetPointXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NodeOffsetPointXY_constr_1, &asn_PER_type_NodeOffsetPointXY_constr_1, CHOICE_constraint }, + asn_MBR_NodeOffsetPointXY_1, + 8, /* Elements count */ + &asn_SPC_NodeOffsetPointXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/NodeSetXY.c b/vcits/ssem/src/NodeSetXY.c new file mode 100644 index 0000000..18a88b3 --- /dev/null +++ b/vcits/ssem/src/NodeSetXY.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "NodeSetXY.h" + +#include "NodeXY.h" +static asn_oer_constraints_t asn_OER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(2..63)) */}; +asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 2, 63 } /* (SIZE(2..63)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NodeSetXY_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1 = { + sizeof(struct NodeSetXY), + offsetof(struct NodeSetXY, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeSetXY = { + "NodeSetXY", + "NodeSetXY", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeSetXY_tags_1, + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + { &asn_OER_type_NodeSetXY_constr_1, &asn_PER_type_NodeSetXY_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NodeSetXY_1, + 1, /* Single element */ + &asn_SPC_NodeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/NodeXY.c b/vcits/ssem/src/NodeXY.c new file mode 100644 index 0000000..d1bb9b5 --- /dev/null +++ b/vcits/ssem/src/NodeXY.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "NodeXY.h" + +#include "NodeAttributeSetXY.h" +asn_TYPE_member_t asn_MBR_NodeXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeXY, delta), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delta" + }, + { ATF_POINTER, 1, offsetof(struct NodeXY, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeSetXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_NodeXY_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_NodeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* delta */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1 = { + sizeof(struct NodeXY), + offsetof(struct NodeXY, _asn_ctx), + asn_MAP_NodeXY_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_NodeXY_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeXY = { + "NodeXY", + "NodeXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeXY_tags_1, + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NodeXY_1, + 2, /* Elements count */ + &asn_SPC_NodeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/NumberOfOccupants.c b/vcits/ssem/src/NumberOfOccupants.c new file mode 100644 index 0000000..1a3c271 --- /dev/null +++ b/vcits/ssem/src/NumberOfOccupants.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "NumberOfOccupants.h" + +int +NumberOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_NumberOfOccupants_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_NumberOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NumberOfOccupants = { + "NumberOfOccupants", + "NumberOfOccupants", + &asn_OP_NativeInteger, + asn_DEF_NumberOfOccupants_tags_1, + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_NumberOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_NumberOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_NumberOfOccupants_constr_1, &asn_PER_type_NumberOfOccupants_constr_1, NumberOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Offset-B09.c b/vcits/ssem/src/Offset-B09.c new file mode 100644 index 0000000..4038a11 --- /dev/null +++ b/vcits/ssem/src/Offset-B09.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Offset-B09.h" + +int +Offset_B09_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -256 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B09_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-256..255) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B09_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -256, 255 } /* (-256..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B09_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B09 = { + "Offset-B09", + "Offset-B09", + &asn_OP_NativeInteger, + asn_DEF_Offset_B09_tags_1, + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + asn_DEF_Offset_B09_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B09_constr_1, &asn_PER_type_Offset_B09_constr_1, Offset_B09_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Offset-B10.c b/vcits/ssem/src/Offset-B10.c new file mode 100644 index 0000000..4ee0142 --- /dev/null +++ b/vcits/ssem/src/Offset-B10.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Offset-B10.h" + +int +Offset_B10_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -512 && value <= 511)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B10_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-512..511) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B10_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -512, 511 } /* (-512..511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B10_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B10 = { + "Offset-B10", + "Offset-B10", + &asn_OP_NativeInteger, + asn_DEF_Offset_B10_tags_1, + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + asn_DEF_Offset_B10_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B10_constr_1, &asn_PER_type_Offset_B10_constr_1, Offset_B10_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Offset-B11.c b/vcits/ssem/src/Offset-B11.c new file mode 100644 index 0000000..5a4fb5a --- /dev/null +++ b/vcits/ssem/src/Offset-B11.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Offset-B11.h" + +int +Offset_B11_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1024 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B11_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1024..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B11_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B11_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B11 = { + "Offset-B11", + "Offset-B11", + &asn_OP_NativeInteger, + asn_DEF_Offset_B11_tags_1, + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + asn_DEF_Offset_B11_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B11_constr_1, &asn_PER_type_Offset_B11_constr_1, Offset_B11_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Offset-B12.c b/vcits/ssem/src/Offset-B12.c new file mode 100644 index 0000000..a8640d0 --- /dev/null +++ b/vcits/ssem/src/Offset-B12.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Offset-B12.h" + +int +Offset_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B12 = { + "Offset-B12", + "Offset-B12", + &asn_OP_NativeInteger, + asn_DEF_Offset_B12_tags_1, + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + asn_DEF_Offset_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B12_constr_1, &asn_PER_type_Offset_B12_constr_1, Offset_B12_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Offset-B13.c b/vcits/ssem/src/Offset-B13.c new file mode 100644 index 0000000..244507c --- /dev/null +++ b/vcits/ssem/src/Offset-B13.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Offset-B13.h" + +int +Offset_B13_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B13_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-4096..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B13_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, -4096, 4095 } /* (-4096..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B13_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B13 = { + "Offset-B13", + "Offset-B13", + &asn_OP_NativeInteger, + asn_DEF_Offset_B13_tags_1, + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + asn_DEF_Offset_B13_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B13_constr_1, &asn_PER_type_Offset_B13_constr_1, Offset_B13_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Offset-B14.c b/vcits/ssem/src/Offset-B14.c new file mode 100644 index 0000000..f83176d --- /dev/null +++ b/vcits/ssem/src/Offset-B14.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Offset-B14.h" + +int +Offset_B14_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -8192 && value <= 8191)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B14_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-8192..8191) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B14_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, -8192, 8191 } /* (-8192..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B14_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B14 = { + "Offset-B14", + "Offset-B14", + &asn_OP_NativeInteger, + asn_DEF_Offset_B14_tags_1, + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + asn_DEF_Offset_B14_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B14_constr_1, &asn_PER_type_Offset_B14_constr_1, Offset_B14_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Offset-B16.c b/vcits/ssem/src/Offset-B16.c new file mode 100644 index 0000000..4e1adb6 --- /dev/null +++ b/vcits/ssem/src/Offset-B16.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Offset-B16.h" + +int +Offset_B16_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32768 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Offset_B16_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32768..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_Offset_B16_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Offset_B16_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B16 = { + "Offset-B16", + "Offset-B16", + &asn_OP_NativeInteger, + asn_DEF_Offset_B16_tags_1, + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + asn_DEF_Offset_B16_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + { &asn_OER_type_Offset_B16_constr_1, &asn_PER_type_Offset_B16_constr_1, Offset_B16_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/OpeningDaysHours.c b/vcits/ssem/src/OpeningDaysHours.c new file mode 100644 index 0000000..ec78e2c --- /dev/null +++ b/vcits/ssem/src/OpeningDaysHours.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "OpeningDaysHours.h" + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_OpeningDaysHours_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OpeningDaysHours = { + "OpeningDaysHours", + "OpeningDaysHours", + &asn_OP_UTF8String, + asn_DEF_OpeningDaysHours_tags_1, + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + asn_DEF_OpeningDaysHours_tags_1, /* Same as above */ + sizeof(asn_DEF_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_OpeningDaysHours_tags_1[0]), /* 1 */ + { 0, 0, UTF8String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/OverlayLaneList.c b/vcits/ssem/src/OverlayLaneList.c new file mode 100644 index 0000000..c1adc64 --- /dev/null +++ b/vcits/ssem/src/OverlayLaneList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "OverlayLaneList.h" + +static asn_oer_constraints_t asn_OER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_OverlayLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_OverlayLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1 = { + sizeof(struct OverlayLaneList), + offsetof(struct OverlayLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_OverlayLaneList = { + "OverlayLaneList", + "OverlayLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_OverlayLaneList_tags_1, + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + asn_DEF_OverlayLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + { &asn_OER_type_OverlayLaneList_constr_1, &asn_PER_type_OverlayLaneList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_OverlayLaneList_1, + 1, /* Single element */ + &asn_SPC_OverlayLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PathDeltaTime.c b/vcits/ssem/src/PathDeltaTime.c new file mode 100644 index 0000000..39d28f9 --- /dev/null +++ b/vcits/ssem/src/PathDeltaTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PathDeltaTime.h" + +int +PathDeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PathDeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PathDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PathDeltaTime = { + "PathDeltaTime", + "PathDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_PathDeltaTime_tags_1, + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_PathDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_PathDeltaTime_tags_1) + /sizeof(asn_DEF_PathDeltaTime_tags_1[0]), /* 1 */ + { &asn_OER_type_PathDeltaTime_constr_1, &asn_PER_type_PathDeltaTime_constr_1, PathDeltaTime_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/PathHistory.c b/vcits/ssem/src/PathHistory.c new file mode 100644 index 0000000..865776f --- /dev/null +++ b/vcits/ssem/src/PathHistory.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PathHistory.h" + +#include "PathPoint.h" +static asn_oer_constraints_t asn_OER_type_PathHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..40)) */}; +asn_per_constraints_t asn_PER_type_PathHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 40 } /* (SIZE(0..40)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PathHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PathHistory_specs_1 = { + sizeof(struct PathHistory), + offsetof(struct PathHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_PathHistory_tags_1, + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + { &asn_OER_type_PathHistory_constr_1, &asn_PER_type_PathHistory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PathHistory_1, + 1, /* Single element */ + &asn_SPC_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PathPoint.c b/vcits/ssem/src/PathPoint.c new file mode 100644 index 0000000..e916d4f --- /dev/null +++ b/vcits/ssem/src/PathPoint.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PathPoint.h" + +asn_TYPE_member_t asn_MBR_PathPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PathPoint, pathPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaReferencePosition, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathPosition" + }, + { ATF_POINTER, 1, offsetof(struct PathPoint, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathDeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathDeltaTime" + }, +}; +static const int asn_MAP_PathPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PathPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PathPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pathDeltaTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PathPoint_specs_1 = { + sizeof(struct PathPoint), + offsetof(struct PathPoint, _asn_ctx), + asn_MAP_PathPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PathPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PathPoint = { + "PathPoint", + "PathPoint", + &asn_OP_SEQUENCE, + asn_DEF_PathPoint_tags_1, + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + asn_DEF_PathPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_PathPoint_tags_1) + /sizeof(asn_DEF_PathPoint_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PathPoint_1, + 2, /* Elements count */ + &asn_SPC_PathPoint_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PedestrianBicycleDetect.c b/vcits/ssem/src/PedestrianBicycleDetect.c new file mode 100644 index 0000000..bbda035 --- /dev/null +++ b/vcits/ssem/src/PedestrianBicycleDetect.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PedestrianBicycleDetect.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_PedestrianBicycleDetect_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect = { + "PedestrianBicycleDetect", + "PedestrianBicycleDetect", + &asn_OP_BOOLEAN, + asn_DEF_PedestrianBicycleDetect_tags_1, + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + asn_DEF_PedestrianBicycleDetect_tags_1, /* Same as above */ + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/PerformanceClass.c b/vcits/ssem/src/PerformanceClass.c new file mode 100644 index 0000000..b656630 --- /dev/null +++ b/vcits/ssem/src/PerformanceClass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PerformanceClass.h" + +int +PerformanceClass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_type_PerformanceClass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PerformanceClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PerformanceClass = { + "PerformanceClass", + "PerformanceClass", + &asn_OP_NativeInteger, + asn_DEF_PerformanceClass_tags_1, + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + asn_DEF_PerformanceClass_tags_1, /* Same as above */ + sizeof(asn_DEF_PerformanceClass_tags_1) + /sizeof(asn_DEF_PerformanceClass_tags_1[0]), /* 1 */ + { &asn_OER_type_PerformanceClass_constr_1, &asn_PER_type_PerformanceClass_constr_1, PerformanceClass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/PhoneNumber.c b/vcits/ssem/src/PhoneNumber.c new file mode 100644 index 0000000..7730c7e --- /dev/null +++ b/vcits/ssem/src/PhoneNumber.c @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PhoneNumber.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* . */ + 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */ +}; +static const int permitted_alphabet_code2value_1[11] = { +32,48,49,50,51,52,53,54,55,56,57,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is NumericString */ + const NumericString_t *st = (const NumericString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +PhoneNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const NumericString_t *st = (const NumericString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 16) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_PhoneNumber_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_PhoneNumber_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using NumericString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_PhoneNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 32, 57 } /* (32..57) */, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + asn_PER_MAP_PhoneNumber_1_v2c, /* Value to PER code map */ + asn_PER_MAP_PhoneNumber_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_PhoneNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PhoneNumber = { + "PhoneNumber", + "PhoneNumber", + &asn_OP_NumericString, + asn_DEF_PhoneNumber_tags_1, + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + asn_DEF_PhoneNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_PhoneNumber_tags_1) + /sizeof(asn_DEF_PhoneNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_PhoneNumber_constr_1, &asn_PER_type_PhoneNumber_constr_1, PhoneNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/PosCentMass.c b/vcits/ssem/src/PosCentMass.c new file mode 100644 index 0000000..42e8781 --- /dev/null +++ b/vcits/ssem/src/PosCentMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PosCentMass.h" + +int +PosCentMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosCentMass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..63) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosCentMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosCentMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosCentMass = { + "PosCentMass", + "PosCentMass", + &asn_OP_NativeInteger, + asn_DEF_PosCentMass_tags_1, + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + asn_DEF_PosCentMass_tags_1, /* Same as above */ + sizeof(asn_DEF_PosCentMass_tags_1) + /sizeof(asn_DEF_PosCentMass_tags_1[0]), /* 1 */ + { &asn_OER_type_PosCentMass_constr_1, &asn_PER_type_PosCentMass_constr_1, PosCentMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/PosConfidenceEllipse.c b/vcits/ssem/src/PosConfidenceEllipse.c new file mode 100644 index 0000000..5859823 --- /dev/null +++ b/vcits/ssem/src/PosConfidenceEllipse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PosConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_PosConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMinorConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiAxisLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct PosConfidenceEllipse, semiMajorOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajorOrientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PosConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PosConfidenceEllipse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* semiMajorOrientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PosConfidenceEllipse_specs_1 = { + sizeof(struct PosConfidenceEllipse), + offsetof(struct PosConfidenceEllipse, _asn_ctx), + asn_MAP_PosConfidenceEllipse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PosConfidenceEllipse = { + "PosConfidenceEllipse", + "PosConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_PosConfidenceEllipse_tags_1, + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_PosConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_PosConfidenceEllipse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PosConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_PosConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PosFrontAx.c b/vcits/ssem/src/PosFrontAx.c new file mode 100644 index 0000000..9d3ac26 --- /dev/null +++ b/vcits/ssem/src/PosFrontAx.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PosFrontAx.h" + +int +PosFrontAx_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..20) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosFrontAx_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (1..20) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosFrontAx_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosFrontAx = { + "PosFrontAx", + "PosFrontAx", + &asn_OP_NativeInteger, + asn_DEF_PosFrontAx_tags_1, + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + asn_DEF_PosFrontAx_tags_1, /* Same as above */ + sizeof(asn_DEF_PosFrontAx_tags_1) + /sizeof(asn_DEF_PosFrontAx_tags_1[0]), /* 1 */ + { &asn_OER_type_PosFrontAx_constr_1, &asn_PER_type_PosFrontAx_constr_1, PosFrontAx_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/PosLonCarr.c b/vcits/ssem/src/PosLonCarr.c new file mode 100644 index 0000000..23cfeb0 --- /dev/null +++ b/vcits/ssem/src/PosLonCarr.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PosLonCarr.h" + +int +PosLonCarr_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_PosLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosLonCarr = { + "PosLonCarr", + "PosLonCarr", + &asn_OP_NativeInteger, + asn_DEF_PosLonCarr_tags_1, + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + asn_DEF_PosLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_PosLonCarr_tags_1) + /sizeof(asn_DEF_PosLonCarr_tags_1[0]), /* 1 */ + { &asn_OER_type_PosLonCarr_constr_1, &asn_PER_type_PosLonCarr_constr_1, PosLonCarr_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/PosPillar.c b/vcits/ssem/src/PosPillar.c new file mode 100644 index 0000000..7dc1fba --- /dev/null +++ b/vcits/ssem/src/PosPillar.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PosPillar.h" + +int +PosPillar_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 30)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PosPillar_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..30) */, + -1}; +asn_per_constraints_t asn_PER_type_PosPillar_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 30 } /* (1..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PosPillar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PosPillar = { + "PosPillar", + "PosPillar", + &asn_OP_NativeInteger, + asn_DEF_PosPillar_tags_1, + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + asn_DEF_PosPillar_tags_1, /* Same as above */ + sizeof(asn_DEF_PosPillar_tags_1) + /sizeof(asn_DEF_PosPillar_tags_1[0]), /* 1 */ + { &asn_OER_type_PosPillar_constr_1, &asn_PER_type_PosPillar_constr_1, PosPillar_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Position3D-addGrpC.c b/vcits/ssem/src/Position3D-addGrpC.c new file mode 100644 index 0000000..6e6b7bd --- /dev/null +++ b/vcits/ssem/src/Position3D-addGrpC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Position3D-addGrpC.h" + +asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D_addGrpC, altitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_Position3D_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1 = { + sizeof(struct Position3D_addGrpC), + offsetof(struct Position3D_addGrpC, _asn_ctx), + asn_MAP_Position3D_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC = { + "Position3D-addGrpC", + "Position3D-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_addGrpC_tags_1, + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_Position3D_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Position3D_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_Position3D_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Position3D.c b/vcits/ssem/src/Position3D.c new file mode 100644 index 0000000..55c8950 --- /dev/null +++ b/vcits/ssem/src/Position3D.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Position3D.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct Position3D__regional), + offsetof(struct Position3D__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Position3D_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D, lat), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_NOFLAGS, 0, offsetof(struct Position3D, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "long" + }, + { ATF_POINTER, 2, offsetof(struct Position3D, elevation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Elevation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 1, offsetof(struct Position3D, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_Position3D_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Position3D_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1 = { + sizeof(struct Position3D), + offsetof(struct Position3D, _asn_ctx), + asn_MAP_Position3D_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Position3D_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D = { + "Position3D", + "Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_tags_1, + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + asn_DEF_Position3D_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Position3D_1, + 4, /* Elements count */ + &asn_SPC_Position3D_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PositionConfidence.c b/vcits/ssem/src/PositionConfidence.c new file mode 100644 index 0000000..3ce49fa --- /dev/null +++ b/vcits/ssem/src/PositionConfidence.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PositionConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositionConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 5, "a500m" }, + { 2, 5, "a200m" }, + { 3, 5, "a100m" }, + { 4, 4, "a50m" }, + { 5, 4, "a20m" }, + { 6, 4, "a10m" }, + { 7, 3, "a5m" }, + { 8, 3, "a2m" }, + { 9, 3, "a1m" }, + { 10, 5, "a50cm" }, + { 11, 5, "a20cm" }, + { 12, 5, "a10cm" }, + { 13, 4, "a5cm" }, + { 14, 4, "a2cm" }, + { 15, 4, "a1cm" } +}; +static const unsigned int asn_MAP_PositionConfidence_enum2value_1[] = { + 3, /* a100m(3) */ + 12, /* a10cm(12) */ + 6, /* a10m(6) */ + 15, /* a1cm(15) */ + 9, /* a1m(9) */ + 2, /* a200m(2) */ + 11, /* a20cm(11) */ + 5, /* a20m(5) */ + 14, /* a2cm(14) */ + 8, /* a2m(8) */ + 1, /* a500m(1) */ + 10, /* a50cm(10) */ + 4, /* a50m(4) */ + 13, /* a5cm(13) */ + 7, /* a5m(7) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1 = { + asn_MAP_PositionConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositionConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidence = { + "PositionConfidence", + "PositionConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_PositionConfidence_tags_1, + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionConfidence_constr_1, &asn_PER_type_PositionConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositionConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PositionConfidenceSet.c b/vcits/ssem/src/PositionConfidenceSet.c new file mode 100644 index 0000000..0ec816e --- /dev/null +++ b/vcits/ssem/src/PositionConfidenceSet.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PositionConfidenceSet.h" + +asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, pos), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pos" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, elevation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ElevationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "elevation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidenceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionConfidenceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pos */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* elevation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1 = { + sizeof(struct PositionConfidenceSet), + offsetof(struct PositionConfidenceSet, _asn_ctx), + asn_MAP_PositionConfidenceSet_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet = { + "PositionConfidenceSet", + "PositionConfidenceSet", + &asn_OP_SEQUENCE, + asn_DEF_PositionConfidenceSet_tags_1, + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidenceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionConfidenceSet_1, + 2, /* Elements count */ + &asn_SPC_PositionConfidenceSet_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PositionOfOccupants.c b/vcits/ssem/src/PositionOfOccupants.c new file mode 100644 index 0000000..105fcb9 --- /dev/null +++ b/vcits/ssem/src/PositionOfOccupants.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PositionOfOccupants.h" + +int +PositionOfOccupants_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { 0, 0 }, + 20 /* (SIZE(20..20)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfOccupants_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PositionOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfOccupants = { + "PositionOfOccupants", + "PositionOfOccupants", + &asn_OP_BIT_STRING, + asn_DEF_PositionOfOccupants_tags_1, + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_PositionOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_PositionOfOccupants_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfOccupants_constr_1, &asn_PER_type_PositionOfOccupants_constr_1, PositionOfOccupants_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PositionOfPillars.c b/vcits/ssem/src/PositionOfPillars.c new file mode 100644 index 0000000..349172b --- /dev/null +++ b/vcits/ssem/src/PositionOfPillars.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PositionOfPillars.h" + +static asn_oer_constraints_t asn_OER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_PositionOfPillars_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_PositionOfPillars_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PosPillar, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionOfPillars_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_PositionOfPillars_specs_1 = { + sizeof(struct PositionOfPillars), + offsetof(struct PositionOfPillars, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionOfPillars = { + "PositionOfPillars", + "PositionOfPillars", + &asn_OP_SEQUENCE_OF, + asn_DEF_PositionOfPillars_tags_1, + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + asn_DEF_PositionOfPillars_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionOfPillars_tags_1) + /sizeof(asn_DEF_PositionOfPillars_tags_1[0]), /* 1 */ + { &asn_OER_type_PositionOfPillars_constr_1, &asn_PER_type_PositionOfPillars_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PositionOfPillars_1, + 1, /* Single element */ + &asn_SPC_PositionOfPillars_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PositionalAccuracy.c b/vcits/ssem/src/PositionalAccuracy.c new file mode 100644 index 0000000..3260c22 --- /dev/null +++ b/vcits/ssem/src/PositionalAccuracy.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PositionalAccuracy.h" + +asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMajor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMajor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMinor), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMinorAxisAccuracy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiMinor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, orientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisOrientation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "orientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionalAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionalAccuracy_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinor */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* orientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1 = { + sizeof(struct PositionalAccuracy), + offsetof(struct PositionalAccuracy, _asn_ctx), + asn_MAP_PositionalAccuracy_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy = { + "PositionalAccuracy", + "PositionalAccuracy", + &asn_OP_SEQUENCE, + asn_DEF_PositionalAccuracy_tags_1, + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + asn_DEF_PositionalAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionalAccuracy_1, + 3, /* Elements count */ + &asn_SPC_PositionalAccuracy_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PositioningSolutionType.c b/vcits/ssem/src/PositioningSolutionType.c new file mode 100644 index 0000000..c164aa8 --- /dev/null +++ b/vcits/ssem/src/PositioningSolutionType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PositioningSolutionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_PositioningSolutionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PositioningSolutionType_value2enum_1[] = { + { 0, 21, "noPositioningSolution" }, + { 1, 5, "sGNSS" }, + { 2, 5, "dGNSS" }, + { 3, 11, "sGNSSplusDR" }, + { 4, 11, "dGNSSplusDR" }, + { 5, 2, "dR" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PositioningSolutionType_enum2value_1[] = { + 2, /* dGNSS(2) */ + 4, /* dGNSSplusDR(4) */ + 5, /* dR(5) */ + 0, /* noPositioningSolution(0) */ + 1, /* sGNSS(1) */ + 3 /* sGNSSplusDR(3) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_PositioningSolutionType_specs_1 = { + asn_MAP_PositioningSolutionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositioningSolutionType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositioningSolutionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositioningSolutionType = { + "PositioningSolutionType", + "PositioningSolutionType", + &asn_OP_NativeEnumerated, + asn_DEF_PositioningSolutionType_tags_1, + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + asn_DEF_PositioningSolutionType_tags_1, /* Same as above */ + sizeof(asn_DEF_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_PositioningSolutionType_tags_1[0]), /* 1 */ + { &asn_OER_type_PositioningSolutionType_constr_1, &asn_PER_type_PositioningSolutionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositioningSolutionType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PostCrashSubCauseCode.c b/vcits/ssem/src/PostCrashSubCauseCode.c new file mode 100644 index 0000000..13a180b --- /dev/null +++ b/vcits/ssem/src/PostCrashSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PostCrashSubCauseCode.h" + +int +PostCrashSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_PostCrashSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PostCrashSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PostCrashSubCauseCode = { + "PostCrashSubCauseCode", + "PostCrashSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_PostCrashSubCauseCode_tags_1, + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_PostCrashSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_PostCrashSubCauseCode_constr_1, &asn_PER_type_PostCrashSubCauseCode_constr_1, PostCrashSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/PreemptPriorityList.c b/vcits/ssem/src/PreemptPriorityList.c new file mode 100644 index 0000000..64541ec --- /dev/null +++ b/vcits/ssem/src/PreemptPriorityList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PreemptPriorityList.h" + +#include "SignalControlZone.h" +static asn_oer_constraints_t asn_OER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalControlZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PreemptPriorityList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1 = { + sizeof(struct PreemptPriorityList), + offsetof(struct PreemptPriorityList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList = { + "PreemptPriorityList", + "PreemptPriorityList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PreemptPriorityList_tags_1, + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + asn_DEF_PreemptPriorityList_tags_1, /* Same as above */ + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + { &asn_OER_type_PreemptPriorityList_constr_1, &asn_PER_type_PreemptPriorityList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PreemptPriorityList_1, + 1, /* Single element */ + &asn_SPC_PreemptPriorityList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PrioritizationResponse.c b/vcits/ssem/src/PrioritizationResponse.c new file mode 100644 index 0000000..e7c792d --- /dev/null +++ b/vcits/ssem/src/PrioritizationResponse.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PrioritizationResponse.h" + +asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, priorState), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "priorState" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroup" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PrioritizationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* priorState */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroup */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1 = { + sizeof(struct PrioritizationResponse), + offsetof(struct PrioritizationResponse, _asn_ctx), + asn_MAP_PrioritizationResponse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse = { + "PrioritizationResponse", + "PrioritizationResponse", + &asn_OP_SEQUENCE, + asn_DEF_PrioritizationResponse_tags_1, + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PrioritizationResponse_1, + 3, /* Elements count */ + &asn_SPC_PrioritizationResponse_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PrioritizationResponseList.c b/vcits/ssem/src/PrioritizationResponseList.c new file mode 100644 index 0000000..6187af3 --- /dev/null +++ b/vcits/ssem/src/PrioritizationResponseList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PrioritizationResponseList.h" + +#include "PrioritizationResponse.h" +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PrioritizationResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1 = { + sizeof(struct PrioritizationResponseList), + offsetof(struct PrioritizationResponseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList = { + "PrioritizationResponseList", + "PrioritizationResponseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PrioritizationResponseList_tags_1, + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseList_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + { &asn_OER_type_PrioritizationResponseList_constr_1, &asn_PER_type_PrioritizationResponseList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PrioritizationResponseList_1, + 1, /* Single element */ + &asn_SPC_PrioritizationResponseList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PrioritizationResponseStatus.c b/vcits/ssem/src/PrioritizationResponseStatus.c new file mode 100644 index 0000000..4a6e97a --- /dev/null +++ b/vcits/ssem/src/PrioritizationResponseStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PrioritizationResponseStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PrioritizationResponseStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 9, "requested" }, + { 2, 10, "processing" }, + { 3, 17, "watchOtherTraffic" }, + { 4, 7, "granted" }, + { 5, 8, "rejected" }, + { 6, 11, "maxPresence" }, + { 7, 15, "reserviceLocked" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PrioritizationResponseStatus_enum2value_1[] = { + 4, /* granted(4) */ + 6, /* maxPresence(6) */ + 2, /* processing(2) */ + 5, /* rejected(5) */ + 1, /* requested(1) */ + 7, /* reserviceLocked(7) */ + 0, /* unknown(0) */ + 3 /* watchOtherTraffic(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1 = { + asn_MAP_PrioritizationResponseStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PrioritizationResponseStatus_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus = { + "PrioritizationResponseStatus", + "PrioritizationResponseStatus", + &asn_OP_NativeEnumerated, + asn_DEF_PrioritizationResponseStatus_tags_1, + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_PrioritizationResponseStatus_constr_1, &asn_PER_type_PrioritizationResponseStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PrioritizationResponseStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PriorityRequestType.c b/vcits/ssem/src/PriorityRequestType.c new file mode 100644 index 0000000..a2d572f --- /dev/null +++ b/vcits/ssem/src/PriorityRequestType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PriorityRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PriorityRequestType_value2enum_1[] = { + { 0, 27, "priorityRequestTypeReserved" }, + { 1, 15, "priorityRequest" }, + { 2, 21, "priorityRequestUpdate" }, + { 3, 20, "priorityCancellation" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PriorityRequestType_enum2value_1[] = { + 3, /* priorityCancellation(3) */ + 1, /* priorityRequest(1) */ + 0, /* priorityRequestTypeReserved(0) */ + 2 /* priorityRequestUpdate(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1 = { + asn_MAP_PriorityRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PriorityRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PriorityRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PriorityRequestType = { + "PriorityRequestType", + "PriorityRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PriorityRequestType_tags_1, + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + asn_DEF_PriorityRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_PriorityRequestType_constr_1, &asn_PER_type_PriorityRequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PriorityRequestType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ProtectedCommunicationZone.c b/vcits/ssem/src/ProtectedCommunicationZone.c new file mode 100644 index 0000000..4d96e20 --- /dev/null +++ b/vcits/ssem/src/ProtectedCommunicationZone.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ProtectedCommunicationZone.h" + +asn_TYPE_member_t asn_MBR_ProtectedCommunicationZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneType" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimestampIts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expiryTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProtectedCommunicationZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 2, offsetof(struct ProtectedCommunicationZone, protectedZoneRadius), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneRadius, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneRadius" + }, + { ATF_POINTER, 1, offsetof(struct ProtectedCommunicationZone, protectedZoneID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedZoneID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedZoneID" + }, +}; +static const int asn_MAP_ProtectedCommunicationZone_oms_1[] = { 1, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ProtectedCommunicationZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expiryTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protectedZoneRadius */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* protectedZoneID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ProtectedCommunicationZone_specs_1 = { + sizeof(struct ProtectedCommunicationZone), + offsetof(struct ProtectedCommunicationZone, _asn_ctx), + asn_MAP_ProtectedCommunicationZone_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ProtectedCommunicationZone_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZone = { + "ProtectedCommunicationZone", + "ProtectedCommunicationZone", + &asn_OP_SEQUENCE, + asn_DEF_ProtectedCommunicationZone_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZone_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ProtectedCommunicationZone_1, + 6, /* Elements count */ + &asn_SPC_ProtectedCommunicationZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ProtectedCommunicationZonesRSU.c b/vcits/ssem/src/ProtectedCommunicationZonesRSU.c new file mode 100644 index 0000000..9746ed2 --- /dev/null +++ b/vcits/ssem/src/ProtectedCommunicationZonesRSU.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ProtectedCommunicationZonesRSU.h" + +#include "ProtectedCommunicationZone.h" +static asn_oer_constraints_t asn_OER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_ProtectedCommunicationZonesRSU_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ProtectedCommunicationZonesRSU_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtectedCommunicationZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtectedCommunicationZonesRSU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ProtectedCommunicationZonesRSU_specs_1 = { + sizeof(struct ProtectedCommunicationZonesRSU), + offsetof(struct ProtectedCommunicationZonesRSU, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedCommunicationZonesRSU = { + "ProtectedCommunicationZonesRSU", + "ProtectedCommunicationZonesRSU", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + asn_DEF_ProtectedCommunicationZonesRSU_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedCommunicationZonesRSU_constr_1, &asn_PER_type_ProtectedCommunicationZonesRSU_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtectedCommunicationZonesRSU_1, + 1, /* Single element */ + &asn_SPC_ProtectedCommunicationZonesRSU_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ProtectedZoneID.c b/vcits/ssem/src/ProtectedZoneID.c new file mode 100644 index 0000000..d0462b1 --- /dev/null +++ b/vcits/ssem/src/ProtectedZoneID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ProtectedZoneID.h" + +int +ProtectedZoneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 134217727)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneID = { + "ProtectedZoneID", + "ProtectedZoneID", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneID_tags_1, + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ProtectedZoneID_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneID_constr_1, &asn_PER_type_ProtectedZoneID_constr_1, ProtectedZoneID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/ProtectedZoneRadius.c b/vcits/ssem/src/ProtectedZoneRadius.c new file mode 100644 index 0000000..c82970d --- /dev/null +++ b/vcits/ssem/src/ProtectedZoneRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ProtectedZoneRadius.h" + +int +ProtectedZoneRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 255 } /* (1..255,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneRadius = { + "ProtectedZoneRadius", + "ProtectedZoneRadius", + &asn_OP_NativeInteger, + asn_DEF_ProtectedZoneRadius_tags_1, + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ProtectedZoneRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneRadius_constr_1, &asn_PER_type_ProtectedZoneRadius_constr_1, ProtectedZoneRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/ProtectedZoneType.c b/vcits/ssem/src/ProtectedZoneType.c new file mode 100644 index 0000000..16c65bd --- /dev/null +++ b/vcits/ssem/src/ProtectedZoneType.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ProtectedZoneType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ProtectedZoneType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ProtectedZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ProtectedZoneType_enum2value_1[] = { + 0, /* permanentCenDsrcTolling(0) */ + 1 /* temporaryCenDsrcTolling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ProtectedZoneType_specs_1 = { + asn_MAP_ProtectedZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ProtectedZoneType_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ProtectedZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedZoneType = { + "ProtectedZoneType", + "ProtectedZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_ProtectedZoneType_tags_1, + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + asn_DEF_ProtectedZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ProtectedZoneType_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtectedZoneType_constr_1, &asn_PER_type_ProtectedZoneType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ProtectedZoneType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PtActivation.c b/vcits/ssem/src/PtActivation.c new file mode 100644 index 0000000..6134b25 --- /dev/null +++ b/vcits/ssem/src/PtActivation.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PtActivation.h" + +static asn_TYPE_member_t asn_MBR_PtActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct PtActivation, ptActivationData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PtActivationData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptActivationData" + }, +}; +static const ber_tlv_tag_t asn_DEF_PtActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PtActivation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptActivationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivationData */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_PtActivation_specs_1 = { + sizeof(struct PtActivation), + offsetof(struct PtActivation, _asn_ctx), + asn_MAP_PtActivation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PtActivation = { + "PtActivation", + "PtActivation", + &asn_OP_SEQUENCE, + asn_DEF_PtActivation_tags_1, + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + asn_DEF_PtActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivation_tags_1) + /sizeof(asn_DEF_PtActivation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PtActivation_1, + 2, /* Elements count */ + &asn_SPC_PtActivation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PtActivationData.c b/vcits/ssem/src/PtActivationData.c new file mode 100644 index 0000000..902ea3e --- /dev/null +++ b/vcits/ssem/src/PtActivationData.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PtActivationData.h" + +int +PtActivationData_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 20)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationData_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..20)) */}; +asn_per_constraints_t asn_PER_type_PtActivationData_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (SIZE(1..20)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationData = { + "PtActivationData", + "PtActivationData", + &asn_OP_OCTET_STRING, + asn_DEF_PtActivationData_tags_1, + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + asn_DEF_PtActivationData_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationData_tags_1) + /sizeof(asn_DEF_PtActivationData_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationData_constr_1, &asn_PER_type_PtActivationData_constr_1, PtActivationData_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/PtActivationType.c b/vcits/ssem/src/PtActivationType.c new file mode 100644 index 0000000..d6504ce --- /dev/null +++ b/vcits/ssem/src/PtActivationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PtActivationType.h" + +int +PtActivationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtActivationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_PtActivationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PtActivationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtActivationType = { + "PtActivationType", + "PtActivationType", + &asn_OP_NativeInteger, + asn_DEF_PtActivationType_tags_1, + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + asn_DEF_PtActivationType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtActivationType_tags_1) + /sizeof(asn_DEF_PtActivationType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtActivationType_constr_1, &asn_PER_type_PtActivationType_constr_1, PtActivationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/PtvRequestType.c b/vcits/ssem/src/PtvRequestType.c new file mode 100644 index 0000000..bd56d83 --- /dev/null +++ b/vcits/ssem/src/PtvRequestType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "PtvRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PtvRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PtvRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PtvRequestType_value2enum_1[] = { + { 0, 10, "preRequest" }, + { 1, 11, "mainRequest" }, + { 2, 16, "doorCloseRequest" }, + { 3, 13, "cancelRequest" }, + { 4, 16, "emergencyRequest" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PtvRequestType_enum2value_1[] = { + 3, /* cancelRequest(3) */ + 2, /* doorCloseRequest(2) */ + 4, /* emergencyRequest(4) */ + 1, /* mainRequest(1) */ + 0 /* preRequest(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PtvRequestType_specs_1 = { + asn_MAP_PtvRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PtvRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 6, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PtvRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PtvRequestType = { + "PtvRequestType", + "PtvRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PtvRequestType_tags_1, + sizeof(asn_DEF_PtvRequestType_tags_1) + /sizeof(asn_DEF_PtvRequestType_tags_1[0]), /* 1 */ + asn_DEF_PtvRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PtvRequestType_tags_1) + /sizeof(asn_DEF_PtvRequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_PtvRequestType_constr_1, &asn_PER_type_PtvRequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PtvRequestType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RTCM-Revision.c b/vcits/ssem/src/RTCM-Revision.c new file mode 100644 index 0000000..911a03d --- /dev/null +++ b/vcits/ssem/src/RTCM-Revision.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RTCM-Revision.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RTCM_Revision_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "rtcmRev2" }, + { 2, 8, "rtcmRev3" }, + { 3, 8, "reserved" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RTCM_Revision_enum2value_1[] = { + 3, /* reserved(3) */ + 1, /* rtcmRev2(1) */ + 2, /* rtcmRev3(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1 = { + asn_MAP_RTCM_Revision_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RTCM_Revision_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RTCM_Revision_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCM_Revision = { + "RTCM-Revision", + "RTCM-Revision", + &asn_OP_NativeEnumerated, + asn_DEF_RTCM_Revision_tags_1, + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + asn_DEF_RTCM_Revision_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCM_Revision_constr_1, &asn_PER_type_RTCM_Revision_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RTCM_Revision_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RTCMcorrections.c b/vcits/ssem/src/RTCMcorrections.c new file mode 100644 index 0000000..cd65100 --- /dev/null +++ b/vcits/ssem/src/RTCMcorrections.c @@ -0,0 +1,194 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RTCMcorrections.h" + +#include "FullPositionVector.h" +#include "RTCMheader.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RTCMcorrections, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct RTCMcorrections__regional), + offsetof(struct RTCMcorrections__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { &asn_OER_type_regional_constr_8, &asn_PER_type_regional_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RTCMcorrections_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, rev), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCM_Revision, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rev" + }, + { ATF_POINTER, 3, offsetof(struct RTCMcorrections, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 2, offsetof(struct RTCMcorrections, anchorPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FullPositionVector, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "anchorPoint" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, rtcmHeader), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMheader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rtcmHeader" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgs), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMmessageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msgs" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { &asn_OER_memb_regional_constr_8, &asn_PER_memb_regional_constr_8, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RTCMcorrections_oms_1[] = { 2, 3, 4, 6 }; +static const ber_tlv_tag_t asn_DEF_RTCMcorrections_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMcorrections_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rev */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* anchorPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rtcmHeader */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* msgs */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RTCMcorrections_specs_1 = { + sizeof(struct RTCMcorrections), + offsetof(struct RTCMcorrections, _asn_ctx), + asn_MAP_RTCMcorrections_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_RTCMcorrections_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMcorrections = { + "RTCMcorrections", + "RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_RTCMcorrections_tags_1, + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + asn_DEF_RTCMcorrections_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMcorrections_1, + 7, /* Elements count */ + &asn_SPC_RTCMcorrections_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RTCMheader.c b/vcits/ssem/src/RTCMheader.c new file mode 100644 index 0000000..b56ef25 --- /dev/null +++ b/vcits/ssem/src/RTCMheader.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RTCMheader.h" + +asn_TYPE_member_t asn_MBR_RTCMheader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, status), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNSSstatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, offsetSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AntennaOffsetSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMheader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMheader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* offsetSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1 = { + sizeof(struct RTCMheader), + offsetof(struct RTCMheader, _asn_ctx), + asn_MAP_RTCMheader_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMheader = { + "RTCMheader", + "RTCMheader", + &asn_OP_SEQUENCE, + asn_DEF_RTCMheader_tags_1, + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + asn_DEF_RTCMheader_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RTCMheader_1, + 2, /* Elements count */ + &asn_SPC_RTCMheader_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RTCMmessage.c b/vcits/ssem/src/RTCMmessage.c new file mode 100644 index 0000000..772504c --- /dev/null +++ b/vcits/ssem/src/RTCMmessage.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RTCMmessage.h" + +int +RTCMmessage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1023)) */}; +asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (SIZE(1..1023)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessage = { + "RTCMmessage", + "RTCMmessage", + &asn_OP_OCTET_STRING, + asn_DEF_RTCMmessage_tags_1, + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCMmessage_constr_1, &asn_PER_type_RTCMmessage_constr_1, RTCMmessage_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RTCMmessageList.c b/vcits/ssem/src/RTCMmessageList.c new file mode 100644 index 0000000..7aef23e --- /dev/null +++ b/vcits/ssem/src/RTCMmessageList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RTCMmessageList.h" + +static asn_oer_constraints_t asn_OER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RTCMmessageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RTCMmessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1 = { + sizeof(struct RTCMmessageList), + offsetof(struct RTCMmessageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessageList = { + "RTCMmessageList", + "RTCMmessageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RTCMmessageList_tags_1, + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessageList_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + { &asn_OER_type_RTCMmessageList_constr_1, &asn_PER_type_RTCMmessageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RTCMmessageList_1, + 1, /* Single element */ + &asn_SPC_RTCMmessageList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ReferencePosition.c b/vcits/ssem/src/ReferencePosition.c new file mode 100644 index 0000000..03d3e0c --- /dev/null +++ b/vcits/ssem/src/ReferencePosition.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ReferencePosition.h" + +asn_TYPE_member_t asn_MBR_ReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PosConfidenceEllipse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionConfidenceEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReferencePosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* longitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* positionConfidenceEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ReferencePosition_specs_1 = { + sizeof(struct ReferencePosition), + offsetof(struct ReferencePosition, _asn_ctx), + asn_MAP_ReferencePosition_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReferencePosition = { + "ReferencePosition", + "ReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_ReferencePosition_tags_1, + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_ReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ReferencePosition_tags_1) + /sizeof(asn_DEF_ReferencePosition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReferencePosition_1, + 4, /* Elements count */ + &asn_SPC_ReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RegionId.c b/vcits/ssem/src/RegionId.c new file mode 100644 index 0000000..bc2bfab --- /dev/null +++ b/vcits/ssem/src/RegionId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RegionId.h" + +int +RegionId_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RegionId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RegionId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RegionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RegionId = { + "RegionId", + "RegionId", + &asn_OP_NativeInteger, + asn_DEF_RegionId_tags_1, + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + asn_DEF_RegionId_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + { &asn_OER_type_RegionId_constr_1, &asn_PER_type_RegionId_constr_1, RegionId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/RegionalExtension.c b/vcits/ssem/src/RegionalExtension.c new file mode 100644 index 0000000..16fca6b --- /dev/null +++ b/vcits/ssem/src/RegionalExtension.c @@ -0,0 +1,4204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RegionalExtension.h" + +static const long asn_VAL_5_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MapData_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_5_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MapData_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MapData_1[] = { + { 1, 2, asn_IOS_Reg_MapData_1_rows } +}; +static const long asn_VAL_1_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_ConnectionManeuverAssist_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_1_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionManeuverAssist_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_ConnectionManeuverAssist_1[] = { + { 1, 2, asn_IOS_Reg_ConnectionManeuverAssist_1_rows } +}; +static const long asn_VAL_2_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_GenericLane_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_2_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionTrajectory_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_GenericLane_1[] = { + { 1, 2, asn_IOS_Reg_GenericLane_1_rows } +}; +static const long asn_VAL_3_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_IntersectionState_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_3_addGrpC }, + { "&Type", aioc__type, &asn_DEF_IntersectionState_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_IntersectionState_1[] = { + { 1, 2, asn_IOS_Reg_IntersectionState_1_rows } +}; +static const long asn_VAL_4_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_LaneAttributes_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_4_addGrpC }, + { "&Type", aioc__type, &asn_DEF_LaneAttributes_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_LaneAttributes_1[] = { + { 1, 2, asn_IOS_Reg_LaneAttributes_1_rows } +}; +static const long asn_VAL_6_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MovementEvent_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_6_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MovementEvent_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MovementEvent_1[] = { + { 1, 2, asn_IOS_Reg_MovementEvent_1_rows } +}; +static const long asn_VAL_7_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_NodeAttributeSetXY_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_7_addGrpC }, + { "&Type", aioc__type, &asn_DEF_NodeAttributeSet_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_NodeAttributeSetXY_1[] = { + { 1, 2, asn_IOS_Reg_NodeAttributeSetXY_1_rows } +}; +static const long asn_VAL_8_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_Position3D_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_8_addGrpC }, + { "&Type", aioc__type, &asn_DEF_Position3D_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_Position3D_1[] = { + { 1, 2, asn_IOS_Reg_Position3D_1_rows } +}; +static const long asn_VAL_9_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RequestorDescription_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_9_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RequestorDescription_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RequestorDescription_1[] = { + { 1, 2, asn_IOS_Reg_RequestorDescription_1_rows } +}; +static const long asn_VAL_10_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RestrictionUserType_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_10_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RestrictionUserType_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RestrictionUserType_1[] = { + { 1, 2, asn_IOS_Reg_RestrictionUserType_1_rows } +}; +static const long asn_VAL_11_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_SignalStatusPackage_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_11_addGrpC }, + { "&Type", aioc__type, &asn_DEF_SignalStatusPackage_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_SignalStatusPackage_1[] = { + { 1, 2, asn_IOS_Reg_SignalStatusPackage_1_rows } +}; +static int +memb_regionId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MapData_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MapData_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MapData, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_ConnectionManeuverAssist_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_ConnectionManeuverAssist_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_ConnectionManeuverAssist, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_GenericLane_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_GenericLane_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_GenericLane, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_IntersectionState_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_IntersectionState_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_IntersectionState, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_LaneAttributes_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_LaneAttributes_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_LaneAttributes, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MovementEvent_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MovementEvent_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MovementEvent, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_NodeAttributeSetXY_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_NodeAttributeSetXY_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_NodeAttributeSetXY, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_Position3D_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_Position3D_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_Position3D, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RequestorDescription_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RequestorDescription_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RequestorDescription, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RestrictionUserType_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RestrictionUserType_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RestrictionUserType, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_SignalStatusPackage_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_SignalStatusPackage_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_SignalStatusPackage, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_regionId_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_11 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_14 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_15 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_17 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_18 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_20 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_21 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_23 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_26 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_27 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_29 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_30 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_30 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_32 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_33 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_35 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_36 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_38 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_39 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_41 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_42 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_42 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_44 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_44 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_45 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_47 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_47 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_48 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_50 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_51 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_53 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_53 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_54 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_54 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_56 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_56 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_57 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_57 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_59 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_60 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_62 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_63 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_63 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_65 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_65 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_66 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_66 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_68 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_68 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_69 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_69 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_71 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_71 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_72 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_74 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_74 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_75 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_75 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_77 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_77 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_78 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_78 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regionId_constr_80 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_regionId_constr_80 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_81 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_81 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regExtValue_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData__regExtValue, choice.MapData_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MapData_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MapData-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_3[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MapData-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_3 = { + sizeof(struct Reg_MapData__regExtValue), + offsetof(struct Reg_MapData__regExtValue, _asn_ctx), + offsetof(struct Reg_MapData__regExtValue, present), + sizeof(((struct Reg_MapData__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_3, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_3 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_3, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MapData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_2, &asn_PER_memb_regionId_constr_2, memb_regionId_constraint_1 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_3, + select_Reg_MapData_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_3, &asn_PER_memb_regExtValue_constr_3, memb_regExtValue_constraint_1 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_1 = { + sizeof(struct Reg_MapData), + offsetof(struct Reg_MapData, _asn_ctx), + asn_MAP_Reg_MapData_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MapData = { + "Reg-MapData", + "Reg-MapData", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MapData_tags_1, + sizeof(asn_DEF_Reg_MapData_tags_1) + /sizeof(asn_DEF_Reg_MapData_tags_1[0]), /* 1 */ + asn_DEF_Reg_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_Reg_MapData_tags_1) + /sizeof(asn_DEF_Reg_MapData_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MapData_1, + 2, /* Elements count */ + &asn_SPC_Reg_MapData_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_6 = { + sizeof(struct Reg_RTCMcorrections__regExtValue), + offsetof(struct Reg_RTCMcorrections__regExtValue, _asn_ctx), + offsetof(struct Reg_RTCMcorrections__regExtValue, present), + sizeof(((struct Reg_RTCMcorrections__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_6 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_5, &asn_PER_memb_regionId_constr_5, memb_regionId_constraint_4 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_6, + 0, + { &asn_OER_memb_regExtValue_constr_6, &asn_PER_memb_regExtValue_constr_6, memb_regExtValue_constraint_4 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RTCMcorrections_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RTCMcorrections_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_4 = { + sizeof(struct Reg_RTCMcorrections), + offsetof(struct Reg_RTCMcorrections, _asn_ctx), + asn_MAP_Reg_RTCMcorrections_tag2el_4, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections = { + "Reg-RTCMcorrections", + "Reg-RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RTCMcorrections_tags_4, + sizeof(asn_DEF_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + asn_DEF_Reg_RTCMcorrections_tags_4, /* Same as above */ + sizeof(asn_DEF_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RTCMcorrections_4, + 2, /* Elements count */ + &asn_SPC_Reg_RTCMcorrections_specs_4 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_9 = { + sizeof(struct Reg_SPAT__regExtValue), + offsetof(struct Reg_SPAT__regExtValue, _asn_ctx), + offsetof(struct Reg_SPAT__regExtValue, present), + sizeof(((struct Reg_SPAT__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_9 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SPAT_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_8, &asn_PER_memb_regionId_constr_8, memb_regionId_constraint_7 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_9, + 0, + { &asn_OER_memb_regExtValue_constr_9, &asn_PER_memb_regExtValue_constr_9, memb_regExtValue_constraint_7 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SPAT_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SPAT_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_7 = { + sizeof(struct Reg_SPAT), + offsetof(struct Reg_SPAT, _asn_ctx), + asn_MAP_Reg_SPAT_tag2el_7, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SPAT = { + "Reg-SPAT", + "Reg-SPAT", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SPAT_tags_7, + sizeof(asn_DEF_Reg_SPAT_tags_7) + /sizeof(asn_DEF_Reg_SPAT_tags_7[0]), /* 1 */ + asn_DEF_Reg_SPAT_tags_7, /* Same as above */ + sizeof(asn_DEF_Reg_SPAT_tags_7) + /sizeof(asn_DEF_Reg_SPAT_tags_7[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SPAT_7, + 2, /* Elements count */ + &asn_SPC_Reg_SPAT_specs_7 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_12 = { + sizeof(struct Reg_SignalRequestMessage__regExtValue), + offsetof(struct Reg_SignalRequestMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestMessage__regExtValue, present), + sizeof(((struct Reg_SignalRequestMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_12 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_11, &asn_PER_memb_regionId_constr_11, memb_regionId_constraint_10 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_12, + 0, + { &asn_OER_memb_regExtValue_constr_12, &asn_PER_memb_regExtValue_constr_12, memb_regExtValue_constraint_10 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestMessage_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestMessage_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_10 = { + sizeof(struct Reg_SignalRequestMessage), + offsetof(struct Reg_SignalRequestMessage, _asn_ctx), + asn_MAP_Reg_SignalRequestMessage_tag2el_10, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage = { + "Reg-SignalRequestMessage", + "Reg-SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestMessage_tags_10, + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + asn_DEF_Reg_SignalRequestMessage_tags_10, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequestMessage_10, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestMessage_specs_10 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_15 = { + sizeof(struct Reg_SignalStatusMessage__regExtValue), + offsetof(struct Reg_SignalStatusMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusMessage__regExtValue, present), + sizeof(((struct Reg_SignalStatusMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_15 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_14, &asn_PER_memb_regionId_constr_14, memb_regionId_constraint_13 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_15, + 0, + { &asn_OER_memb_regExtValue_constr_15, &asn_PER_memb_regExtValue_constr_15, memb_regExtValue_constraint_13 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusMessage_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusMessage_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_13 = { + sizeof(struct Reg_SignalStatusMessage), + offsetof(struct Reg_SignalStatusMessage, _asn_ctx), + asn_MAP_Reg_SignalStatusMessage_tag2el_13, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage = { + "Reg-SignalStatusMessage", + "Reg-SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusMessage_tags_13, + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + asn_DEF_Reg_SignalStatusMessage_tags_13, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatusMessage_13, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusMessage_specs_13 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_18 = { + sizeof(struct Reg_AdvisorySpeed__regExtValue), + offsetof(struct Reg_AdvisorySpeed__regExtValue, _asn_ctx), + offsetof(struct Reg_AdvisorySpeed__regExtValue, present), + sizeof(((struct Reg_AdvisorySpeed__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_18 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_17, &asn_PER_memb_regionId_constr_17, memb_regionId_constraint_16 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_18, + 0, + { &asn_OER_memb_regExtValue_constr_18, &asn_PER_memb_regExtValue_constr_18, memb_regExtValue_constraint_16 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_AdvisorySpeed_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_AdvisorySpeed_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_16 = { + sizeof(struct Reg_AdvisorySpeed), + offsetof(struct Reg_AdvisorySpeed, _asn_ctx), + asn_MAP_Reg_AdvisorySpeed_tag2el_16, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed = { + "Reg-AdvisorySpeed", + "Reg-AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_Reg_AdvisorySpeed_tags_16, + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + asn_DEF_Reg_AdvisorySpeed_tags_16, /* Same as above */ + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_AdvisorySpeed_16, + 2, /* Elements count */ + &asn_SPC_Reg_AdvisorySpeed_specs_16 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_21 = { + sizeof(struct Reg_ComputedLane__regExtValue), + offsetof(struct Reg_ComputedLane__regExtValue, _asn_ctx), + offsetof(struct Reg_ComputedLane__regExtValue, present), + sizeof(((struct Reg_ComputedLane__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_21 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ComputedLane_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_20, &asn_PER_memb_regionId_constr_20, memb_regionId_constraint_19 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_21, + 0, + { &asn_OER_memb_regExtValue_constr_21, &asn_PER_memb_regExtValue_constr_21, memb_regExtValue_constraint_19 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ComputedLane_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ComputedLane_tag2el_19[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_19 = { + sizeof(struct Reg_ComputedLane), + offsetof(struct Reg_ComputedLane, _asn_ctx), + asn_MAP_Reg_ComputedLane_tag2el_19, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane = { + "Reg-ComputedLane", + "Reg-ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ComputedLane_tags_19, + sizeof(asn_DEF_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_Reg_ComputedLane_tags_19[0]), /* 1 */ + asn_DEF_Reg_ComputedLane_tags_19, /* Same as above */ + sizeof(asn_DEF_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_Reg_ComputedLane_tags_19[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_ComputedLane_19, + 2, /* Elements count */ + &asn_SPC_Reg_ComputedLane_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, choice.ConnectionManeuverAssist_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionManeuverAssist-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionManeuverAssist-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_24 = { + sizeof(struct Reg_ConnectionManeuverAssist__regExtValue), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, _asn_ctx), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, present), + sizeof(((struct Reg_ConnectionManeuverAssist__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_24, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_24 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_24, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_23, &asn_PER_memb_regionId_constr_23, memb_regionId_constraint_22 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_24, + select_Reg_ConnectionManeuverAssist_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_24, &asn_PER_memb_regExtValue_constr_24, memb_regExtValue_constraint_22 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ConnectionManeuverAssist_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ConnectionManeuverAssist_tag2el_22[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_22 = { + sizeof(struct Reg_ConnectionManeuverAssist), + offsetof(struct Reg_ConnectionManeuverAssist, _asn_ctx), + asn_MAP_Reg_ConnectionManeuverAssist_tag2el_22, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist = { + "Reg-ConnectionManeuverAssist", + "Reg-ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ConnectionManeuverAssist_tags_22, + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + asn_DEF_Reg_ConnectionManeuverAssist_tags_22, /* Same as above */ + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_ConnectionManeuverAssist_22, + 2, /* Elements count */ + &asn_SPC_Reg_ConnectionManeuverAssist_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_27[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane__regExtValue, choice.ConnectionTrajectory_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionTrajectory_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionTrajectory-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_27[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionTrajectory-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_27 = { + sizeof(struct Reg_GenericLane__regExtValue), + offsetof(struct Reg_GenericLane__regExtValue, _asn_ctx), + offsetof(struct Reg_GenericLane__regExtValue, present), + sizeof(((struct Reg_GenericLane__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_27, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_27 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_27, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_GenericLane_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_26, &asn_PER_memb_regionId_constr_26, memb_regionId_constraint_25 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_27, + select_Reg_GenericLane_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_27, &asn_PER_memb_regExtValue_constr_27, memb_regExtValue_constraint_25 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_GenericLane_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_GenericLane_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_25 = { + sizeof(struct Reg_GenericLane), + offsetof(struct Reg_GenericLane, _asn_ctx), + asn_MAP_Reg_GenericLane_tag2el_25, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane = { + "Reg-GenericLane", + "Reg-GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_GenericLane_tags_25, + sizeof(asn_DEF_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_Reg_GenericLane_tags_25[0]), /* 1 */ + asn_DEF_Reg_GenericLane_tags_25, /* Same as above */ + sizeof(asn_DEF_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_Reg_GenericLane_tags_25[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_GenericLane_25, + 2, /* Elements count */ + &asn_SPC_Reg_GenericLane_specs_25 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_30 = { + sizeof(struct Reg_IntersectionGeometry__regExtValue), + offsetof(struct Reg_IntersectionGeometry__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionGeometry__regExtValue, present), + sizeof(((struct Reg_IntersectionGeometry__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_30 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_30 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_29, &asn_PER_memb_regionId_constr_29, memb_regionId_constraint_28 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_30, + 0, + { &asn_OER_memb_regExtValue_constr_30, &asn_PER_memb_regExtValue_constr_30, memb_regExtValue_constraint_28 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionGeometry_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionGeometry_tag2el_28[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_28 = { + sizeof(struct Reg_IntersectionGeometry), + offsetof(struct Reg_IntersectionGeometry, _asn_ctx), + asn_MAP_Reg_IntersectionGeometry_tag2el_28, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry = { + "Reg-IntersectionGeometry", + "Reg-IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionGeometry_tags_28, + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + asn_DEF_Reg_IntersectionGeometry_tags_28, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_IntersectionGeometry_28, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionGeometry_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState__regExtValue, choice.IntersectionState_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IntersectionState-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_33[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* IntersectionState-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_33 = { + sizeof(struct Reg_IntersectionState__regExtValue), + offsetof(struct Reg_IntersectionState__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionState__regExtValue, present), + sizeof(((struct Reg_IntersectionState__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_33, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_33 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_33, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionState_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_32, &asn_PER_memb_regionId_constr_32, memb_regionId_constraint_31 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_33, + select_Reg_IntersectionState_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_33, &asn_PER_memb_regExtValue_constr_33, memb_regExtValue_constraint_31 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionState_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionState_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_31 = { + sizeof(struct Reg_IntersectionState), + offsetof(struct Reg_IntersectionState, _asn_ctx), + asn_MAP_Reg_IntersectionState_tag2el_31, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState = { + "Reg-IntersectionState", + "Reg-IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionState_tags_31, + sizeof(asn_DEF_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_Reg_IntersectionState_tags_31[0]), /* 1 */ + asn_DEF_Reg_IntersectionState_tags_31, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_Reg_IntersectionState_tags_31[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_IntersectionState_31, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionState_specs_31 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes__regExtValue, choice.LaneAttributes_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_LaneAttributes_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LaneAttributes-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* LaneAttributes-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_36 = { + sizeof(struct Reg_LaneAttributes__regExtValue), + offsetof(struct Reg_LaneAttributes__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneAttributes__regExtValue, present), + sizeof(((struct Reg_LaneAttributes__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_36, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_36 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_36, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_34[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_35, &asn_PER_memb_regionId_constr_35, memb_regionId_constraint_34 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_36, + select_Reg_LaneAttributes_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_36, &asn_PER_memb_regExtValue_constr_36, memb_regExtValue_constraint_34 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneAttributes_tags_34[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneAttributes_tag2el_34[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_34 = { + sizeof(struct Reg_LaneAttributes), + offsetof(struct Reg_LaneAttributes, _asn_ctx), + asn_MAP_Reg_LaneAttributes_tag2el_34, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes = { + "Reg-LaneAttributes", + "Reg-LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneAttributes_tags_34, + sizeof(asn_DEF_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_34[0]), /* 1 */ + asn_DEF_Reg_LaneAttributes_tags_34, /* Same as above */ + sizeof(asn_DEF_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_34[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_LaneAttributes_34, + 2, /* Elements count */ + &asn_SPC_Reg_LaneAttributes_specs_34 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_39 = { + sizeof(struct Reg_LaneDataAttribute__regExtValue), + offsetof(struct Reg_LaneDataAttribute__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneDataAttribute__regExtValue, present), + sizeof(((struct Reg_LaneDataAttribute__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_39 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_38, &asn_PER_memb_regionId_constr_38, memb_regionId_constraint_37 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_39, + 0, + { &asn_OER_memb_regExtValue_constr_39, &asn_PER_memb_regExtValue_constr_39, memb_regExtValue_constraint_37 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneDataAttribute_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneDataAttribute_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_37 = { + sizeof(struct Reg_LaneDataAttribute), + offsetof(struct Reg_LaneDataAttribute, _asn_ctx), + asn_MAP_Reg_LaneDataAttribute_tag2el_37, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute = { + "Reg-LaneDataAttribute", + "Reg-LaneDataAttribute", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneDataAttribute_tags_37, + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + asn_DEF_Reg_LaneDataAttribute_tags_37, /* Same as above */ + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_LaneDataAttribute_37, + 2, /* Elements count */ + &asn_SPC_Reg_LaneDataAttribute_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_42[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent__regExtValue, choice.MovementEvent_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MovementEvent-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_42[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MovementEvent-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_42 = { + sizeof(struct Reg_MovementEvent__regExtValue), + offsetof(struct Reg_MovementEvent__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementEvent__regExtValue, present), + sizeof(((struct Reg_MovementEvent__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_42, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_42 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_42, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_42 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementEvent_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_41, &asn_PER_memb_regionId_constr_41, memb_regionId_constraint_40 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_42, + select_Reg_MovementEvent_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_42, &asn_PER_memb_regExtValue_constr_42, memb_regExtValue_constraint_40 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementEvent_tags_40[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementEvent_tag2el_40[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_40 = { + sizeof(struct Reg_MovementEvent), + offsetof(struct Reg_MovementEvent, _asn_ctx), + asn_MAP_Reg_MovementEvent_tag2el_40, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent = { + "Reg-MovementEvent", + "Reg-MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementEvent_tags_40, + sizeof(asn_DEF_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_Reg_MovementEvent_tags_40[0]), /* 1 */ + asn_DEF_Reg_MovementEvent_tags_40, /* Same as above */ + sizeof(asn_DEF_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_Reg_MovementEvent_tags_40[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MovementEvent_40, + 2, /* Elements count */ + &asn_SPC_Reg_MovementEvent_specs_40 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_45 = { + sizeof(struct Reg_MovementState__regExtValue), + offsetof(struct Reg_MovementState__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementState__regExtValue, present), + sizeof(((struct Reg_MovementState__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_45 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementState_43[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_44, &asn_PER_memb_regionId_constr_44, memb_regionId_constraint_43 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_45, + 0, + { &asn_OER_memb_regExtValue_constr_45, &asn_PER_memb_regExtValue_constr_45, memb_regExtValue_constraint_43 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementState_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementState_tag2el_43[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_43 = { + sizeof(struct Reg_MovementState), + offsetof(struct Reg_MovementState, _asn_ctx), + asn_MAP_Reg_MovementState_tag2el_43, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementState = { + "Reg-MovementState", + "Reg-MovementState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementState_tags_43, + sizeof(asn_DEF_Reg_MovementState_tags_43) + /sizeof(asn_DEF_Reg_MovementState_tags_43[0]), /* 1 */ + asn_DEF_Reg_MovementState_tags_43, /* Same as above */ + sizeof(asn_DEF_Reg_MovementState_tags_43) + /sizeof(asn_DEF_Reg_MovementState_tags_43[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_MovementState_43, + 2, /* Elements count */ + &asn_SPC_Reg_MovementState_specs_43 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY__regExtValue, choice.NodeAttributeSet_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeAttributeSet_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NodeAttributeSet-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NodeAttributeSet-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_48 = { + sizeof(struct Reg_NodeAttributeSetXY__regExtValue), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, present), + sizeof(((struct Reg_NodeAttributeSetXY__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_48, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_48 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_48, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_46[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_47, &asn_PER_memb_regionId_constr_47, memb_regionId_constraint_46 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_48, + select_Reg_NodeAttributeSetXY_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_48, &asn_PER_memb_regExtValue_constr_48, memb_regExtValue_constraint_46 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeAttributeSetXY_tags_46[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeAttributeSetXY_tag2el_46[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_46 = { + sizeof(struct Reg_NodeAttributeSetXY), + offsetof(struct Reg_NodeAttributeSetXY, _asn_ctx), + asn_MAP_Reg_NodeAttributeSetXY_tag2el_46, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY = { + "Reg-NodeAttributeSetXY", + "Reg-NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeAttributeSetXY_tags_46, + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + asn_DEF_Reg_NodeAttributeSetXY_tags_46, /* Same as above */ + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_NodeAttributeSetXY_46, + 2, /* Elements count */ + &asn_SPC_Reg_NodeAttributeSetXY_specs_46 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_51 = { + sizeof(struct Reg_NodeOffsetPointXY__regExtValue), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, present), + sizeof(((struct Reg_NodeOffsetPointXY__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_51 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_50, &asn_PER_memb_regionId_constr_50, memb_regionId_constraint_49 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_51, + 0, + { &asn_OER_memb_regExtValue_constr_51, &asn_PER_memb_regExtValue_constr_51, memb_regExtValue_constraint_49 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeOffsetPointXY_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeOffsetPointXY_tag2el_49[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_49 = { + sizeof(struct Reg_NodeOffsetPointXY), + offsetof(struct Reg_NodeOffsetPointXY, _asn_ctx), + asn_MAP_Reg_NodeOffsetPointXY_tag2el_49, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY = { + "Reg-NodeOffsetPointXY", + "Reg-NodeOffsetPointXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeOffsetPointXY_tags_49, + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + asn_DEF_Reg_NodeOffsetPointXY_tags_49, /* Same as above */ + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_NodeOffsetPointXY_49, + 2, /* Elements count */ + &asn_SPC_Reg_NodeOffsetPointXY_specs_49 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_54[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D__regExtValue, choice.Position3D_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Position3D_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Position3D-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_54[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Position3D-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_54 = { + sizeof(struct Reg_Position3D__regExtValue), + offsetof(struct Reg_Position3D__regExtValue, _asn_ctx), + offsetof(struct Reg_Position3D__regExtValue, present), + sizeof(((struct Reg_Position3D__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_54, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_54 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_54, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_54 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_Position3D_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_53, &asn_PER_memb_regionId_constr_53, memb_regionId_constraint_52 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_54, + select_Reg_Position3D_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_54, &asn_PER_memb_regExtValue_constr_54, memb_regExtValue_constraint_52 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_Position3D_tags_52[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_Position3D_tag2el_52[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_52 = { + sizeof(struct Reg_Position3D), + offsetof(struct Reg_Position3D, _asn_ctx), + asn_MAP_Reg_Position3D_tag2el_52, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_Position3D = { + "Reg-Position3D", + "Reg-Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Reg_Position3D_tags_52, + sizeof(asn_DEF_Reg_Position3D_tags_52) + /sizeof(asn_DEF_Reg_Position3D_tags_52[0]), /* 1 */ + asn_DEF_Reg_Position3D_tags_52, /* Same as above */ + sizeof(asn_DEF_Reg_Position3D_tags_52) + /sizeof(asn_DEF_Reg_Position3D_tags_52[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_Position3D_52, + 2, /* Elements count */ + &asn_SPC_Reg_Position3D_specs_52 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription__regExtValue, choice.RequestorDescription_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RequestorDescription_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RequestorDescription-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_57[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RequestorDescription-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_57 = { + sizeof(struct Reg_RequestorDescription__regExtValue), + offsetof(struct Reg_RequestorDescription__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorDescription__regExtValue, present), + sizeof(((struct Reg_RequestorDescription__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_57, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_57 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_57, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_55[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_56, &asn_PER_memb_regionId_constr_56, memb_regionId_constraint_55 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_57, + select_Reg_RequestorDescription_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_57, &asn_PER_memb_regExtValue_constr_57, memb_regExtValue_constraint_55 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorDescription_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorDescription_tag2el_55[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_55 = { + sizeof(struct Reg_RequestorDescription), + offsetof(struct Reg_RequestorDescription, _asn_ctx), + asn_MAP_Reg_RequestorDescription_tag2el_55, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription = { + "Reg-RequestorDescription", + "Reg-RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorDescription_tags_55, + sizeof(asn_DEF_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_55[0]), /* 1 */ + asn_DEF_Reg_RequestorDescription_tags_55, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_55[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RequestorDescription_55, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorDescription_specs_55 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_60 = { + sizeof(struct Reg_RequestorType__regExtValue), + offsetof(struct Reg_RequestorType__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorType__regExtValue, present), + sizeof(((struct Reg_RequestorType__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_60 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorType_58[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_59, &asn_PER_memb_regionId_constr_59, memb_regionId_constraint_58 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_60, + 0, + { &asn_OER_memb_regExtValue_constr_60, &asn_PER_memb_regExtValue_constr_60, memb_regExtValue_constraint_58 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorType_tags_58[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorType_tag2el_58[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_58 = { + sizeof(struct Reg_RequestorType), + offsetof(struct Reg_RequestorType, _asn_ctx), + asn_MAP_Reg_RequestorType_tag2el_58, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType = { + "Reg-RequestorType", + "Reg-RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorType_tags_58, + sizeof(asn_DEF_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_Reg_RequestorType_tags_58[0]), /* 1 */ + asn_DEF_Reg_RequestorType_tags_58, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_Reg_RequestorType_tags_58[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RequestorType_58, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorType_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_63[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType__regExtValue, choice.RestrictionUserType_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionUserType_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RestrictionUserType-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_63[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RestrictionUserType-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_63 = { + sizeof(struct Reg_RestrictionUserType__regExtValue), + offsetof(struct Reg_RestrictionUserType__regExtValue, _asn_ctx), + offsetof(struct Reg_RestrictionUserType__regExtValue, present), + sizeof(((struct Reg_RestrictionUserType__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_63, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_63 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_63, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_62, &asn_PER_memb_regionId_constr_62, memb_regionId_constraint_61 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_63, + select_Reg_RestrictionUserType_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_63, &asn_PER_memb_regExtValue_constr_63, memb_regExtValue_constraint_61 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RestrictionUserType_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RestrictionUserType_tag2el_61[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_61 = { + sizeof(struct Reg_RestrictionUserType), + offsetof(struct Reg_RestrictionUserType, _asn_ctx), + asn_MAP_Reg_RestrictionUserType_tag2el_61, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType = { + "Reg-RestrictionUserType", + "Reg-RestrictionUserType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RestrictionUserType_tags_61, + sizeof(asn_DEF_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + asn_DEF_Reg_RestrictionUserType_tags_61, /* Same as above */ + sizeof(asn_DEF_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RestrictionUserType_61, + 2, /* Elements count */ + &asn_SPC_Reg_RestrictionUserType_specs_61 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_66 = { + sizeof(struct Reg_RoadSegment__regExtValue), + offsetof(struct Reg_RoadSegment__regExtValue, _asn_ctx), + offsetof(struct Reg_RoadSegment__regExtValue, present), + sizeof(((struct Reg_RoadSegment__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_66 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_66 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RoadSegment_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_65, &asn_PER_memb_regionId_constr_65, memb_regionId_constraint_64 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_66, + 0, + { &asn_OER_memb_regExtValue_constr_66, &asn_PER_memb_regExtValue_constr_66, memb_regExtValue_constraint_64 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RoadSegment_tags_64[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RoadSegment_tag2el_64[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_64 = { + sizeof(struct Reg_RoadSegment), + offsetof(struct Reg_RoadSegment, _asn_ctx), + asn_MAP_Reg_RoadSegment_tag2el_64, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment = { + "Reg-RoadSegment", + "Reg-RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RoadSegment_tags_64, + sizeof(asn_DEF_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_Reg_RoadSegment_tags_64[0]), /* 1 */ + asn_DEF_Reg_RoadSegment_tags_64, /* Same as above */ + sizeof(asn_DEF_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_Reg_RoadSegment_tags_64[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_RoadSegment_64, + 2, /* Elements count */ + &asn_SPC_Reg_RoadSegment_specs_64 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_69 = { + sizeof(struct Reg_SignalControlZone__regExtValue), + offsetof(struct Reg_SignalControlZone__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalControlZone__regExtValue, present), + sizeof(((struct Reg_SignalControlZone__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_69 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_67[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_68, &asn_PER_memb_regionId_constr_68, memb_regionId_constraint_67 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_69, + 0, + { &asn_OER_memb_regExtValue_constr_69, &asn_PER_memb_regExtValue_constr_69, memb_regExtValue_constraint_67 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalControlZone_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalControlZone_tag2el_67[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_67 = { + sizeof(struct Reg_SignalControlZone), + offsetof(struct Reg_SignalControlZone, _asn_ctx), + asn_MAP_Reg_SignalControlZone_tag2el_67, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone = { + "Reg-SignalControlZone", + "Reg-SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalControlZone_tags_67, + sizeof(asn_DEF_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_67[0]), /* 1 */ + asn_DEF_Reg_SignalControlZone_tags_67, /* Same as above */ + sizeof(asn_DEF_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_67[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalControlZone_67, + 2, /* Elements count */ + &asn_SPC_Reg_SignalControlZone_specs_67 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_72 = { + sizeof(struct Reg_SignalRequest__regExtValue), + offsetof(struct Reg_SignalRequest__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequest__regExtValue, present), + sizeof(((struct Reg_SignalRequest__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_72 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequest_70[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_71, &asn_PER_memb_regionId_constr_71, memb_regionId_constraint_70 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_72, + 0, + { &asn_OER_memb_regExtValue_constr_72, &asn_PER_memb_regExtValue_constr_72, memb_regExtValue_constraint_70 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequest_tags_70[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequest_tag2el_70[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_70 = { + sizeof(struct Reg_SignalRequest), + offsetof(struct Reg_SignalRequest, _asn_ctx), + asn_MAP_Reg_SignalRequest_tag2el_70, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest = { + "Reg-SignalRequest", + "Reg-SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequest_tags_70, + sizeof(asn_DEF_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_Reg_SignalRequest_tags_70[0]), /* 1 */ + asn_DEF_Reg_SignalRequest_tags_70, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_Reg_SignalRequest_tags_70[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequest_70, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequest_specs_70 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_75 = { + sizeof(struct Reg_SignalRequestPackage__regExtValue), + offsetof(struct Reg_SignalRequestPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestPackage__regExtValue, present), + sizeof(((struct Reg_SignalRequestPackage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_75 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_74, &asn_PER_memb_regionId_constr_74, memb_regionId_constraint_73 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_75, + 0, + { &asn_OER_memb_regExtValue_constr_75, &asn_PER_memb_regExtValue_constr_75, memb_regExtValue_constraint_73 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestPackage_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestPackage_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_73 = { + sizeof(struct Reg_SignalRequestPackage), + offsetof(struct Reg_SignalRequestPackage, _asn_ctx), + asn_MAP_Reg_SignalRequestPackage_tag2el_73, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage = { + "Reg-SignalRequestPackage", + "Reg-SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestPackage_tags_73, + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + asn_DEF_Reg_SignalRequestPackage_tags_73, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalRequestPackage_73, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestPackage_specs_73 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_78 = { + sizeof(struct Reg_SignalStatus__regExtValue), + offsetof(struct Reg_SignalStatus__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatus__regExtValue, present), + sizeof(((struct Reg_SignalStatus__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_78 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_78 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatus_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_77, &asn_PER_memb_regionId_constr_77, memb_regionId_constraint_76 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_78, + 0, + { &asn_OER_memb_regExtValue_constr_78, &asn_PER_memb_regExtValue_constr_78, memb_regExtValue_constraint_76 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatus_tags_76[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatus_tag2el_76[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_76 = { + sizeof(struct Reg_SignalStatus), + offsetof(struct Reg_SignalStatus, _asn_ctx), + asn_MAP_Reg_SignalStatus_tag2el_76, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus = { + "Reg-SignalStatus", + "Reg-SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatus_tags_76, + sizeof(asn_DEF_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_Reg_SignalStatus_tags_76[0]), /* 1 */ + asn_DEF_Reg_SignalStatus_tags_76, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_Reg_SignalStatus_tags_76[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatus_76, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatus_specs_76 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage__regExtValue, choice.SignalStatusPackage_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage_addGrpC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SignalStatusPackage-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_81[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SignalStatusPackage-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_81 = { + sizeof(struct Reg_SignalStatusPackage__regExtValue), + offsetof(struct Reg_SignalStatusPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusPackage__regExtValue, present), + sizeof(((struct Reg_SignalStatusPackage__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_81, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_81 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_regExtValue_81, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_79[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { &asn_OER_memb_regionId_constr_80, &asn_PER_memb_regionId_constr_80, memb_regionId_constraint_79 }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_81, + select_Reg_SignalStatusPackage_regExtValue_type, + { &asn_OER_memb_regExtValue_constr_81, &asn_PER_memb_regExtValue_constr_81, memb_regExtValue_constraint_79 }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusPackage_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusPackage_tag2el_79[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_79 = { + sizeof(struct Reg_SignalStatusPackage), + offsetof(struct Reg_SignalStatusPackage, _asn_ctx), + asn_MAP_Reg_SignalStatusPackage_tag2el_79, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage = { + "Reg-SignalStatusPackage", + "Reg-SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusPackage_tags_79, + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + asn_DEF_Reg_SignalStatusPackage_tags_79, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reg_SignalStatusPackage_79, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusPackage_specs_79 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RegulatorySpeedLimit.c b/vcits/ssem/src/RegulatorySpeedLimit.c new file mode 100644 index 0000000..4bf8f5f --- /dev/null +++ b/vcits/ssem/src/RegulatorySpeedLimit.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RegulatorySpeedLimit.h" + +asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_RegulatorySpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RegulatorySpeedLimit_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1 = { + sizeof(struct RegulatorySpeedLimit), + offsetof(struct RegulatorySpeedLimit, _asn_ctx), + asn_MAP_RegulatorySpeedLimit_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit = { + "RegulatorySpeedLimit", + "RegulatorySpeedLimit", + &asn_OP_SEQUENCE, + asn_DEF_RegulatorySpeedLimit_tags_1, + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_RegulatorySpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RegulatorySpeedLimit_1, + 2, /* Elements count */ + &asn_SPC_RegulatorySpeedLimit_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RejectedReason.c b/vcits/ssem/src/RejectedReason.c new file mode 100644 index 0000000..f289dc4 --- /dev/null +++ b/vcits/ssem/src/RejectedReason.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RejectedReason.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RejectedReason_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RejectedReason_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RejectedReason_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "exceptionalCondition" }, + { 2, 22, "maxWaitingTimeExceeded" }, + { 3, 18, "ptPriorityDisabled" }, + { 4, 23, "higherPTPriorityGranted" }, + { 5, 22, "vehicleTrackingUnknown" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RejectedReason_enum2value_1[] = { + 1, /* exceptionalCondition(1) */ + 4, /* higherPTPriorityGranted(4) */ + 2, /* maxWaitingTimeExceeded(2) */ + 3, /* ptPriorityDisabled(3) */ + 0, /* unknown(0) */ + 5 /* vehicleTrackingUnknown(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RejectedReason_specs_1 = { + asn_MAP_RejectedReason_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RejectedReason_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RejectedReason_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RejectedReason = { + "RejectedReason", + "RejectedReason", + &asn_OP_NativeEnumerated, + asn_DEF_RejectedReason_tags_1, + sizeof(asn_DEF_RejectedReason_tags_1) + /sizeof(asn_DEF_RejectedReason_tags_1[0]), /* 1 */ + asn_DEF_RejectedReason_tags_1, /* Same as above */ + sizeof(asn_DEF_RejectedReason_tags_1) + /sizeof(asn_DEF_RejectedReason_tags_1[0]), /* 1 */ + { &asn_OER_type_RejectedReason_constr_1, &asn_PER_type_RejectedReason_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RejectedReason_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RelevanceDistance.c b/vcits/ssem/src/RelevanceDistance.c new file mode 100644 index 0000000..bbdd75e --- /dev/null +++ b/vcits/ssem/src/RelevanceDistance.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RelevanceDistance.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceDistance_value2enum_1[] = { + { 0, 11, "lessThan50m" }, + { 1, 12, "lessThan100m" }, + { 2, 12, "lessThan200m" }, + { 3, 12, "lessThan500m" }, + { 4, 13, "lessThan1000m" }, + { 5, 11, "lessThan5km" }, + { 6, 12, "lessThan10km" }, + { 7, 8, "over10km" } +}; +static const unsigned int asn_MAP_RelevanceDistance_enum2value_1[] = { + 4, /* lessThan1000m(4) */ + 1, /* lessThan100m(1) */ + 6, /* lessThan10km(6) */ + 2, /* lessThan200m(2) */ + 3, /* lessThan500m(3) */ + 0, /* lessThan50m(0) */ + 5, /* lessThan5km(5) */ + 7 /* over10km(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceDistance_specs_1 = { + asn_MAP_RelevanceDistance_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceDistance_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceDistance = { + "RelevanceDistance", + "RelevanceDistance", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceDistance_tags_1, + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + asn_DEF_RelevanceDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceDistance_tags_1) + /sizeof(asn_DEF_RelevanceDistance_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceDistance_constr_1, &asn_PER_type_RelevanceDistance_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceDistance_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RelevanceTrafficDirection.c b/vcits/ssem/src/RelevanceTrafficDirection.c new file mode 100644 index 0000000..f691f02 --- /dev/null +++ b/vcits/ssem/src/RelevanceTrafficDirection.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RelevanceTrafficDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RelevanceTrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 15, "upstreamTraffic" }, + { 2, 17, "downstreamTraffic" }, + { 3, 15, "oppositeTraffic" } +}; +static const unsigned int asn_MAP_RelevanceTrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 2, /* downstreamTraffic(2) */ + 3, /* oppositeTraffic(3) */ + 1 /* upstreamTraffic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RelevanceTrafficDirection_specs_1 = { + asn_MAP_RelevanceTrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RelevanceTrafficDirection_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RelevanceTrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RelevanceTrafficDirection = { + "RelevanceTrafficDirection", + "RelevanceTrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_RelevanceTrafficDirection_tags_1, + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_RelevanceTrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + { &asn_OER_type_RelevanceTrafficDirection_constr_1, &asn_PER_type_RelevanceTrafficDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RelevanceTrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RequestID.c b/vcits/ssem/src/RequestID.c new file mode 100644 index 0000000..acc61cc --- /dev/null +++ b/vcits/ssem/src/RequestID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RequestID.h" + +int +RequestID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RequestID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RequestID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestID = { + "RequestID", + "RequestID", + &asn_OP_NativeInteger, + asn_DEF_RequestID_tags_1, + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + asn_DEF_RequestID_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestID_constr_1, &asn_PER_type_RequestID_constr_1, RequestID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/RequestImportanceLevel.c b/vcits/ssem/src/RequestImportanceLevel.c new file mode 100644 index 0000000..18e6d3f --- /dev/null +++ b/vcits/ssem/src/RequestImportanceLevel.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RequestImportanceLevel.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestImportanceLevel_value2enum_1[] = { + { 0, 29, "requestImportanceLevelUnKnown" }, + { 1, 23, "requestImportanceLevel1" }, + { 2, 23, "requestImportanceLevel2" }, + { 3, 23, "requestImportanceLevel3" }, + { 4, 23, "requestImportanceLevel4" }, + { 5, 23, "requestImportanceLevel5" }, + { 6, 23, "requestImportanceLevel6" }, + { 7, 23, "requestImportanceLevel7" }, + { 8, 23, "requestImportanceLevel8" }, + { 9, 23, "requestImportanceLevel9" }, + { 10, 24, "requestImportanceLevel10" }, + { 11, 24, "requestImportanceLevel11" }, + { 12, 24, "requestImportanceLevel12" }, + { 13, 24, "requestImportanceLevel13" }, + { 14, 24, "requestImportanceLevel14" }, + { 15, 25, "requestImportanceReserved" } +}; +static const unsigned int asn_MAP_RequestImportanceLevel_enum2value_1[] = { + 1, /* requestImportanceLevel1(1) */ + 10, /* requestImportanceLevel10(10) */ + 11, /* requestImportanceLevel11(11) */ + 12, /* requestImportanceLevel12(12) */ + 13, /* requestImportanceLevel13(13) */ + 14, /* requestImportanceLevel14(14) */ + 2, /* requestImportanceLevel2(2) */ + 3, /* requestImportanceLevel3(3) */ + 4, /* requestImportanceLevel4(4) */ + 5, /* requestImportanceLevel5(5) */ + 6, /* requestImportanceLevel6(6) */ + 7, /* requestImportanceLevel7(7) */ + 8, /* requestImportanceLevel8(8) */ + 9, /* requestImportanceLevel9(9) */ + 0, /* requestImportanceLevelUnKnown(0) */ + 15 /* requestImportanceReserved(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1 = { + asn_MAP_RequestImportanceLevel_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestImportanceLevel_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestImportanceLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel = { + "RequestImportanceLevel", + "RequestImportanceLevel", + &asn_OP_NativeEnumerated, + asn_DEF_RequestImportanceLevel_tags_1, + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + asn_DEF_RequestImportanceLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestImportanceLevel_constr_1, &asn_PER_type_RequestImportanceLevel_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestImportanceLevel_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RequestResponseIndication.c b/vcits/ssem/src/RequestResponseIndication.c new file mode 100644 index 0000000..3cfd1de --- /dev/null +++ b/vcits/ssem/src/RequestResponseIndication.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RequestResponseIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RequestResponseIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestResponseIndication_value2enum_1[] = { + { 0, 7, "request" }, + { 1, 8, "response" } +}; +static const unsigned int asn_MAP_RequestResponseIndication_enum2value_1[] = { + 0, /* request(0) */ + 1 /* response(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RequestResponseIndication_specs_1 = { + asn_MAP_RequestResponseIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestResponseIndication_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestResponseIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestResponseIndication = { + "RequestResponseIndication", + "RequestResponseIndication", + &asn_OP_NativeEnumerated, + asn_DEF_RequestResponseIndication_tags_1, + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + asn_DEF_RequestResponseIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_RequestResponseIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestResponseIndication_constr_1, &asn_PER_type_RequestResponseIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestResponseIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RequestSubRole.c b/vcits/ssem/src/RequestSubRole.c new file mode 100644 index 0000000..c9ebf4d --- /dev/null +++ b/vcits/ssem/src/RequestSubRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RequestSubRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestSubRole_value2enum_1[] = { + { 0, 21, "requestSubRoleUnKnown" }, + { 1, 15, "requestSubRole1" }, + { 2, 15, "requestSubRole2" }, + { 3, 15, "requestSubRole3" }, + { 4, 15, "requestSubRole4" }, + { 5, 15, "requestSubRole5" }, + { 6, 15, "requestSubRole6" }, + { 7, 15, "requestSubRole7" }, + { 8, 15, "requestSubRole8" }, + { 9, 15, "requestSubRole9" }, + { 10, 16, "requestSubRole10" }, + { 11, 16, "requestSubRole11" }, + { 12, 16, "requestSubRole12" }, + { 13, 16, "requestSubRole13" }, + { 14, 16, "requestSubRole14" }, + { 15, 22, "requestSubRoleReserved" } +}; +static const unsigned int asn_MAP_RequestSubRole_enum2value_1[] = { + 1, /* requestSubRole1(1) */ + 10, /* requestSubRole10(10) */ + 11, /* requestSubRole11(11) */ + 12, /* requestSubRole12(12) */ + 13, /* requestSubRole13(13) */ + 14, /* requestSubRole14(14) */ + 2, /* requestSubRole2(2) */ + 3, /* requestSubRole3(3) */ + 4, /* requestSubRole4(4) */ + 5, /* requestSubRole5(5) */ + 6, /* requestSubRole6(6) */ + 7, /* requestSubRole7(7) */ + 8, /* requestSubRole8(8) */ + 9, /* requestSubRole9(9) */ + 15, /* requestSubRoleReserved(15) */ + 0 /* requestSubRoleUnKnown(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1 = { + asn_MAP_RequestSubRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestSubRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestSubRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestSubRole = { + "RequestSubRole", + "RequestSubRole", + &asn_OP_NativeEnumerated, + asn_DEF_RequestSubRole_tags_1, + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + asn_DEF_RequestSubRole_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestSubRole_constr_1, &asn_PER_type_RequestSubRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestSubRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RequestorDescription-addGrpC.c b/vcits/ssem/src/RequestorDescription-addGrpC.c new file mode 100644 index 0000000..a990335 --- /dev/null +++ b/vcits/ssem/src/RequestorDescription-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RequestorDescription-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RequestorDescription_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct RequestorDescription_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fuel" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription_addGrpC, batteryStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BatteryStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "batteryStatus" + }, +}; +static const int asn_MAP_RequestorDescription_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fuel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* batteryStatus */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_addGrpC_specs_1 = { + sizeof(struct RequestorDescription_addGrpC), + offsetof(struct RequestorDescription_addGrpC, _asn_ctx), + asn_MAP_RequestorDescription_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RequestorDescription_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription_addGrpC = { + "RequestorDescription-addGrpC", + "RequestorDescription-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_addGrpC_tags_1, + sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorDescription_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_RequestorDescription_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RequestorDescription.c b/vcits/ssem/src/RequestorDescription.c new file mode 100644 index 0000000..042633a --- /dev/null +++ b/vcits/ssem/src/RequestorDescription.c @@ -0,0 +1,214 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RequestorDescription.h" + +#include "RequestorType.h" +#include "RequestorPositionVector.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RequestorDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct RequestorDescription__regional), + offsetof(struct RequestorDescription__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { &asn_OER_type_regional_constr_10, &asn_PER_type_regional_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RequestorDescription_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorDescription, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 8, offsetof(struct RequestorDescription, type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 7, offsetof(struct RequestorDescription, position), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorPositionVector, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 6, offsetof(struct RequestorDescription, name), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 5, offsetof(struct RequestorDescription, routeName), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "routeName" + }, + { ATF_POINTER, 4, offsetof(struct RequestorDescription, transitStatus), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitStatus" + }, + { ATF_POINTER, 3, offsetof(struct RequestorDescription, transitOccupancy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleOccupancy, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitOccupancy" + }, + { ATF_POINTER, 2, offsetof(struct RequestorDescription, transitSchedule), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transitSchedule" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { &asn_OER_memb_regional_constr_10, &asn_PER_memb_regional_constr_10, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorDescription_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* routeName */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* transitStatus */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* transitOccupancy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* transitSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1 = { + sizeof(struct RequestorDescription), + offsetof(struct RequestorDescription, _asn_ctx), + asn_MAP_RequestorDescription_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_RequestorDescription_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription = { + "RequestorDescription", + "RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_tags_1, + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorDescription_1, + 9, /* Elements count */ + &asn_SPC_RequestorDescription_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RequestorPositionVector.c b/vcits/ssem/src/RequestorPositionVector.c new file mode 100644 index 0000000..99c8ed4 --- /dev/null +++ b/vcits/ssem/src/RequestorPositionVector.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RequestorPositionVector.h" + +#include "TransmissionAndSpeed.h" +asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorPositionVector, position), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 2, offsetof(struct RequestorPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Angle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 1, offsetof(struct RequestorPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const int asn_MAP_RequestorPositionVector_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_RequestorPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1 = { + sizeof(struct RequestorPositionVector), + offsetof(struct RequestorPositionVector, _asn_ctx), + asn_MAP_RequestorPositionVector_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RequestorPositionVector_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector = { + "RequestorPositionVector", + "RequestorPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_RequestorPositionVector_tags_1, + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + asn_DEF_RequestorPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorPositionVector_1, + 3, /* Elements count */ + &asn_SPC_RequestorPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RequestorType.c b/vcits/ssem/src/RequestorType.c new file mode 100644 index 0000000..2f6b381 --- /dev/null +++ b/vcits/ssem/src/RequestorType.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RequestorType.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_RequestorType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorType, role), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 5, offsetof(struct RequestorType, subrole), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestSubRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subrole" + }, + { ATF_POINTER, 4, offsetof(struct RequestorType, request), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestImportanceLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 3, offsetof(struct RequestorType, iso3883), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Iso3833VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iso3883" + }, + { ATF_POINTER, 2, offsetof(struct RequestorType, hpmsType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hpmsType" + }, + { ATF_POINTER, 1, offsetof(struct RequestorType, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorType_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_RequestorType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subrole */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* iso3883 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* hpmsType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1 = { + sizeof(struct RequestorType), + offsetof(struct RequestorType, _asn_ctx), + asn_MAP_RequestorType_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_RequestorType_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorType = { + "RequestorType", + "RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_RequestorType_tags_1, + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + asn_DEF_RequestorType_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RequestorType_1, + 6, /* Elements count */ + &asn_SPC_RequestorType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c b/vcits/ssem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c new file mode 100644 index 0000000..2e52933 --- /dev/null +++ b/vcits/ssem/src/RescueAndRecoveryWorkInProgressSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RescueAndRecoveryWorkInProgressSubCauseCode.h" + +int +RescueAndRecoveryWorkInProgressSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode = { + "RescueAndRecoveryWorkInProgressSubCauseCode", + "RescueAndRecoveryWorkInProgressSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, &asn_PER_type_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, RescueAndRecoveryWorkInProgressSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/RestrictedTypes.c b/vcits/ssem/src/RestrictedTypes.c new file mode 100644 index 0000000..0d4a463 --- /dev/null +++ b/vcits/ssem/src/RestrictedTypes.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RestrictedTypes.h" + +static asn_oer_constraints_t asn_OER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_RestrictedTypes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RestrictedTypes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_StationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictedTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_RestrictedTypes_specs_1 = { + sizeof(struct RestrictedTypes), + offsetof(struct RestrictedTypes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictedTypes = { + "RestrictedTypes", + "RestrictedTypes", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictedTypes_tags_1, + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + asn_DEF_RestrictedTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictedTypes_tags_1) + /sizeof(asn_DEF_RestrictedTypes_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictedTypes_constr_1, &asn_PER_type_RestrictedTypes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictedTypes_1, + 1, /* Single element */ + &asn_SPC_RestrictedTypes_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RestrictionAppliesTo.c b/vcits/ssem/src/RestrictionAppliesTo.c new file mode 100644 index 0000000..00f73df --- /dev/null +++ b/vcits/ssem/src/RestrictionAppliesTo.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RestrictionAppliesTo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RestrictionAppliesTo_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 15, "equippedTransit" }, + { 2, 13, "equippedTaxis" }, + { 3, 13, "equippedOther" }, + { 4, 17, "emissionCompliant" }, + { 5, 15, "equippedBicycle" }, + { 6, 15, "weightCompliant" }, + { 7, 15, "heightCompliant" }, + { 8, 11, "pedestrians" }, + { 9, 17, "slowMovingPersons" }, + { 10, 15, "wheelchairUsers" }, + { 11, 18, "visualDisabilities" }, + { 12, 17, "audioDisabilities" }, + { 13, 24, "otherUnknownDisabilities" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RestrictionAppliesTo_enum2value_1[] = { + 12, /* audioDisabilities(12) */ + 4, /* emissionCompliant(4) */ + 5, /* equippedBicycle(5) */ + 3, /* equippedOther(3) */ + 2, /* equippedTaxis(2) */ + 1, /* equippedTransit(1) */ + 7, /* heightCompliant(7) */ + 0, /* none(0) */ + 13, /* otherUnknownDisabilities(13) */ + 8, /* pedestrians(8) */ + 9, /* slowMovingPersons(9) */ + 11, /* visualDisabilities(11) */ + 6, /* weightCompliant(6) */ + 10 /* wheelchairUsers(10) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1 = { + asn_MAP_RestrictionAppliesTo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RestrictionAppliesTo_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RestrictionAppliesTo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo = { + "RestrictionAppliesTo", + "RestrictionAppliesTo", + &asn_OP_NativeEnumerated, + asn_DEF_RestrictionAppliesTo_tags_1, + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + asn_DEF_RestrictionAppliesTo_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionAppliesTo_constr_1, &asn_PER_type_RestrictionAppliesTo_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RestrictionAppliesTo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RestrictionClassAssignment.c b/vcits/ssem/src/RestrictionClassAssignment.c new file mode 100644 index 0000000..3186256 --- /dev/null +++ b/vcits/ssem/src/RestrictionClassAssignment.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RestrictionClassAssignment.h" + +asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, users), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionUserTypeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "users" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassAssignment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionClassAssignment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* users */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1 = { + sizeof(struct RestrictionClassAssignment), + offsetof(struct RestrictionClassAssignment, _asn_ctx), + asn_MAP_RestrictionClassAssignment_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment = { + "RestrictionClassAssignment", + "RestrictionClassAssignment", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionClassAssignment_tags_1, + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassAssignment_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RestrictionClassAssignment_1, + 2, /* Elements count */ + &asn_SPC_RestrictionClassAssignment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RestrictionClassID.c b/vcits/ssem/src/RestrictionClassID.c new file mode 100644 index 0000000..6108dbf --- /dev/null +++ b/vcits/ssem/src/RestrictionClassID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RestrictionClassID.h" + +int +RestrictionClassID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassID = { + "RestrictionClassID", + "RestrictionClassID", + &asn_OP_NativeInteger, + asn_DEF_RestrictionClassID_tags_1, + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassID_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionClassID_constr_1, &asn_PER_type_RestrictionClassID_constr_1, RestrictionClassID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/RestrictionClassList.c b/vcits/ssem/src/RestrictionClassList.c new file mode 100644 index 0000000..316dd27 --- /dev/null +++ b/vcits/ssem/src/RestrictionClassList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RestrictionClassList.h" + +#include "RestrictionClassAssignment.h" +static asn_oer_constraints_t asn_OER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..254)) */}; +asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 254 } /* (SIZE(1..254)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictionClassList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionClassAssignment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1 = { + sizeof(struct RestrictionClassList), + offsetof(struct RestrictionClassList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassList = { + "RestrictionClassList", + "RestrictionClassList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionClassList_tags_1, + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionClassList_constr_1, &asn_PER_type_RestrictionClassList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictionClassList_1, + 1, /* Single element */ + &asn_SPC_RestrictionClassList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RestrictionUserType-addGrpC.c b/vcits/ssem/src/RestrictionUserType-addGrpC.c new file mode 100644 index 0000000..332fa17 --- /dev/null +++ b/vcits/ssem/src/RestrictionUserType-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RestrictionUserType-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct RestrictionUserType_addGrpC, emission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmissionType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emission" + }, + { ATF_POINTER, 1, offsetof(struct RestrictionUserType_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fuel" + }, +}; +static const int asn_MAP_RestrictionUserType_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RestrictionUserType_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* emission */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fuel */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1 = { + sizeof(struct RestrictionUserType_addGrpC), + offsetof(struct RestrictionUserType_addGrpC, _asn_ctx), + asn_MAP_RestrictionUserType_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RestrictionUserType_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC = { + "RestrictionUserType-addGrpC", + "RestrictionUserType-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionUserType_addGrpC_tags_1, + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserType_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RestrictionUserType_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RestrictionUserType.c b/vcits/ssem/src/RestrictionUserType.c new file mode 100644 index 0000000..9b8ccaa --- /dev/null +++ b/vcits/ssem/src/RestrictionUserType.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RestrictionUserType.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RestrictionUserType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_3 = { + sizeof(struct RestrictionUserType__regional), + offsetof(struct RestrictionUserType__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_3 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_3, + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]) - 1, /* 1 */ + asn_DEF_regional_tags_3, /* Same as above */ + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]), /* 2 */ + { &asn_OER_type_regional_constr_3, &asn_PER_type_regional_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_regional_3, + 1, /* Single element */ + &asn_SPC_regional_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RestrictionUserType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.basicType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionAppliesTo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "basicType" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_regional_3, + 0, + { &asn_OER_memb_regional_constr_3, &asn_PER_memb_regional_constr_3, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1 = { + sizeof(struct RestrictionUserType), + offsetof(struct RestrictionUserType, _asn_ctx), + offsetof(struct RestrictionUserType, present), + sizeof(((struct RestrictionUserType *)0)->present), + asn_MAP_RestrictionUserType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType = { + "RestrictionUserType", + "RestrictionUserType", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_RestrictionUserType_constr_1, &asn_PER_type_RestrictionUserType_constr_1, CHOICE_constraint }, + asn_MBR_RestrictionUserType_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RestrictionUserTypeList.c b/vcits/ssem/src/RestrictionUserTypeList.c new file mode 100644 index 0000000..e73b092 --- /dev/null +++ b/vcits/ssem/src/RestrictionUserTypeList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RestrictionUserTypeList.h" + +#include "RestrictionUserType.h" +static asn_oer_constraints_t asn_OER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RestrictionUserType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionUserTypeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1 = { + sizeof(struct RestrictionUserTypeList), + offsetof(struct RestrictionUserTypeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList = { + "RestrictionUserTypeList", + "RestrictionUserTypeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionUserTypeList_tags_1, + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserTypeList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + { &asn_OER_type_RestrictionUserTypeList_constr_1, &asn_PER_type_RestrictionUserTypeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RestrictionUserTypeList_1, + 1, /* Single element */ + &asn_SPC_RestrictionUserTypeList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RoadLaneSetList.c b/vcits/ssem/src/RoadLaneSetList.c new file mode 100644 index 0000000..ad293f9 --- /dev/null +++ b/vcits/ssem/src/RoadLaneSetList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RoadLaneSetList.h" + +#include "GenericLane.h" +static asn_oer_constraints_t asn_OER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadLaneSetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1 = { + sizeof(struct RoadLaneSetList), + offsetof(struct RoadLaneSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList = { + "RoadLaneSetList", + "RoadLaneSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadLaneSetList_tags_1, + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + asn_DEF_RoadLaneSetList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadLaneSetList_constr_1, &asn_PER_type_RoadLaneSetList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadLaneSetList_1, + 1, /* Single element */ + &asn_SPC_RoadLaneSetList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RoadRegulatorID.c b/vcits/ssem/src/RoadRegulatorID.c new file mode 100644 index 0000000..8c2aa5f --- /dev/null +++ b/vcits/ssem/src/RoadRegulatorID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RoadRegulatorID.h" + +int +RoadRegulatorID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadRegulatorID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID = { + "RoadRegulatorID", + "RoadRegulatorID", + &asn_OP_NativeInteger, + asn_DEF_RoadRegulatorID_tags_1, + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + asn_DEF_RoadRegulatorID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadRegulatorID_constr_1, &asn_PER_type_RoadRegulatorID_constr_1, RoadRegulatorID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/RoadSegment.c b/vcits/ssem/src/RoadSegment.c new file mode 100644 index 0000000..875a0cc --- /dev/null +++ b/vcits/ssem/src/RoadSegment.c @@ -0,0 +1,203 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RoadSegment.h" + +#include "SpeedLimitList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RoadSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct RoadSegment__regional), + offsetof(struct RoadSegment__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { &asn_OER_type_regional_constr_9, &asn_PER_type_regional_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RoadSegment_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegment, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct RoadSegment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, roadLaneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadLaneSetList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "roadLaneSet" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { &asn_OER_memb_regional_constr_9, &asn_PER_memb_regional_constr_9, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RoadSegment_oms_1[] = { 0, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_RoadSegment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* roadLaneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1 = { + sizeof(struct RoadSegment), + offsetof(struct RoadSegment, _asn_ctx), + asn_MAP_RoadSegment_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_RoadSegment_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegment = { + "RoadSegment", + "RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegment_tags_1, + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + asn_DEF_RoadSegment_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSegment_1, + 8, /* Elements count */ + &asn_SPC_RoadSegment_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RoadSegmentID.c b/vcits/ssem/src/RoadSegmentID.c new file mode 100644 index 0000000..a1e895c --- /dev/null +++ b/vcits/ssem/src/RoadSegmentID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RoadSegmentID.h" + +int +RoadSegmentID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentID = { + "RoadSegmentID", + "RoadSegmentID", + &asn_OP_NativeInteger, + asn_DEF_RoadSegmentID_tags_1, + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSegmentID_constr_1, &asn_PER_type_RoadSegmentID_constr_1, RoadSegmentID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/RoadSegmentList.c b/vcits/ssem/src/RoadSegmentList.c new file mode 100644 index 0000000..a7fdd7b --- /dev/null +++ b/vcits/ssem/src/RoadSegmentList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RoadSegmentList.h" + +#include "RoadSegment.h" +static asn_oer_constraints_t asn_OER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RoadSegmentList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RoadSegment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1 = { + sizeof(struct RoadSegmentList), + offsetof(struct RoadSegmentList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentList = { + "RoadSegmentList", + "RoadSegmentList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadSegmentList_tags_1, + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadSegmentList_constr_1, &asn_PER_type_RoadSegmentList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RoadSegmentList_1, + 1, /* Single element */ + &asn_SPC_RoadSegmentList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RoadSegmentReferenceID.c b/vcits/ssem/src/RoadSegmentReferenceID.c new file mode 100644 index 0000000..dce7eaa --- /dev/null +++ b/vcits/ssem/src/RoadSegmentReferenceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RoadSegmentReferenceID.h" + +asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegmentReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegmentReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_RoadSegmentReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_RoadSegmentReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegmentReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1 = { + sizeof(struct RoadSegmentReferenceID), + offsetof(struct RoadSegmentReferenceID, _asn_ctx), + asn_MAP_RoadSegmentReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RoadSegmentReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID = { + "RoadSegmentReferenceID", + "RoadSegmentReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegmentReferenceID_tags_1, + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RoadSegmentReferenceID_1, + 2, /* Elements count */ + &asn_SPC_RoadSegmentReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RoadType.c b/vcits/ssem/src/RoadType.c new file mode 100644 index 0000000..0b63882 --- /dev/null +++ b/vcits/ssem/src/RoadType.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RoadType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RoadType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RoadType_value2enum_1[] = { + { 0, 43, "urban-NoStructuralSeparationToOppositeLanes" }, + { 1, 45, "urban-WithStructuralSeparationToOppositeLanes" }, + { 2, 46, "nonUrban-NoStructuralSeparationToOppositeLanes" }, + { 3, 48, "nonUrban-WithStructuralSeparationToOppositeLanes" } +}; +static const unsigned int asn_MAP_RoadType_enum2value_1[] = { + 2, /* nonUrban-NoStructuralSeparationToOppositeLanes(2) */ + 3, /* nonUrban-WithStructuralSeparationToOppositeLanes(3) */ + 0, /* urban-NoStructuralSeparationToOppositeLanes(0) */ + 1 /* urban-WithStructuralSeparationToOppositeLanes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RoadType_specs_1 = { + asn_MAP_RoadType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RoadType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadType = { + "RoadType", + "RoadType", + &asn_OP_NativeEnumerated, + asn_DEF_RoadType_tags_1, + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + asn_DEF_RoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadType_tags_1) + /sizeof(asn_DEF_RoadType_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadType_constr_1, &asn_PER_type_RoadType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RoadType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/RoadwayCrownAngle.c b/vcits/ssem/src/RoadwayCrownAngle.c new file mode 100644 index 0000000..a522b9a --- /dev/null +++ b/vcits/ssem/src/RoadwayCrownAngle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RoadwayCrownAngle.h" + +int +RoadwayCrownAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -128 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-128..127) */, + -1}; +asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -128, 127 } /* (-128..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadwayCrownAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle = { + "RoadwayCrownAngle", + "RoadwayCrownAngle", + &asn_OP_NativeInteger, + asn_DEF_RoadwayCrownAngle_tags_1, + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + asn_DEF_RoadwayCrownAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadwayCrownAngle_constr_1, &asn_PER_type_RoadwayCrownAngle_constr_1, RoadwayCrownAngle_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/RoadworksSubCauseCode.c b/vcits/ssem/src/RoadworksSubCauseCode.c new file mode 100644 index 0000000..4831a35 --- /dev/null +++ b/vcits/ssem/src/RoadworksSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "RoadworksSubCauseCode.h" + +int +RoadworksSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RoadworksSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RoadworksSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadworksSubCauseCode = { + "RoadworksSubCauseCode", + "RoadworksSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_RoadworksSubCauseCode_tags_1, + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_RoadworksSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RoadworksSubCauseCode_constr_1, &asn_PER_type_RoadworksSubCauseCode_constr_1, RoadworksSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SPAT.c b/vcits/ssem/src/SPAT.c new file mode 100644 index 0000000..526f379 --- /dev/null +++ b/vcits/ssem/src/SPAT.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SPAT.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SPAT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SPAT__regional), + offsetof(struct SPAT__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SPAT_1[] = { + { ATF_POINTER, 2, offsetof(struct SPAT, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct SPAT, intersections), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SPAT_oms_1[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_SPAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SPAT_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SPAT_specs_1 = { + sizeof(struct SPAT), + offsetof(struct SPAT, _asn_ctx), + asn_MAP_SPAT_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SPAT_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SPAT = { + "SPAT", + "SPAT", + &asn_OP_SEQUENCE, + asn_DEF_SPAT_tags_1, + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + asn_DEF_SPAT_tags_1, /* Same as above */ + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SPAT_1, + 4, /* Elements count */ + &asn_SPC_SPAT_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SSEM.c b/vcits/ssem/src/SSEM.c new file mode 100644 index 0000000..65db0ad --- /dev/null +++ b/vcits/ssem/src/SSEM.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SSEM-PDU-Descriptions" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/is_ts103301/SSEM-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SSEM.h" + +static asn_TYPE_member_t asn_MBR_SSEM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SSEM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsPduHeader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct SSEM, ssm), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssm" + }, +}; +static const ber_tlv_tag_t asn_DEF_SSEM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SSEM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ssm */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SSEM_specs_1 = { + sizeof(struct SSEM), + offsetof(struct SSEM, _asn_ctx), + asn_MAP_SSEM_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SSEM = { + "SSEM", + "SSEM", + &asn_OP_SEQUENCE, + asn_DEF_SSEM_tags_1, + sizeof(asn_DEF_SSEM_tags_1) + /sizeof(asn_DEF_SSEM_tags_1[0]), /* 1 */ + asn_DEF_SSEM_tags_1, /* Same as above */ + sizeof(asn_DEF_SSEM_tags_1) + /sizeof(asn_DEF_SSEM_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SSEM_1, + 2, /* Elements count */ + &asn_SPC_SSEM_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Scale-B12.c b/vcits/ssem/src/Scale-B12.c new file mode 100644 index 0000000..5a96fd9 --- /dev/null +++ b/vcits/ssem/src/Scale-B12.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Scale-B12.h" + +int +Scale_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Scale_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +asn_per_constraints_t asn_PER_type_Scale_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Scale_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Scale_B12 = { + "Scale-B12", + "Scale-B12", + &asn_OP_NativeInteger, + asn_DEF_Scale_B12_tags_1, + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + asn_DEF_Scale_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + { &asn_OER_type_Scale_B12_constr_1, &asn_PER_type_Scale_B12_constr_1, Scale_B12_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SegmentAttributeXY.c b/vcits/ssem/src/SegmentAttributeXY.c new file mode 100644 index 0000000..1204d62 --- /dev/null +++ b/vcits/ssem/src/SegmentAttributeXY.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SegmentAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 37 } /* (0..37,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SegmentAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 10, "doNotBlock" }, + { 2, 9, "whiteLine" }, + { 3, 15, "mergingLaneLeft" }, + { 4, 16, "mergingLaneRight" }, + { 5, 10, "curbOnLeft" }, + { 6, 11, "curbOnRight" }, + { 7, 17, "loadingzoneOnLeft" }, + { 8, 18, "loadingzoneOnRight" }, + { 9, 18, "turnOutPointOnLeft" }, + { 10, 19, "turnOutPointOnRight" }, + { 11, 21, "adjacentParkingOnLeft" }, + { 12, 22, "adjacentParkingOnRight" }, + { 13, 22, "adjacentBikeLaneOnLeft" }, + { 14, 23, "adjacentBikeLaneOnRight" }, + { 15, 14, "sharedBikeLane" }, + { 16, 14, "bikeBoxInFront" }, + { 17, 17, "transitStopOnLeft" }, + { 18, 18, "transitStopOnRight" }, + { 19, 17, "transitStopInLane" }, + { 20, 24, "sharedWithTrackedVehicle" }, + { 21, 10, "safeIsland" }, + { 22, 15, "lowCurbsPresent" }, + { 23, 18, "rumbleStripPresent" }, + { 24, 23, "audibleSignalingPresent" }, + { 25, 21, "adaptiveTimingPresent" }, + { 26, 22, "rfSignalRequestPresent" }, + { 27, 20, "partialCurbIntrusion" }, + { 28, 11, "taperToLeft" }, + { 29, 12, "taperToRight" }, + { 30, 17, "taperToCenterLine" }, + { 31, 15, "parallelParking" }, + { 32, 13, "headInParking" }, + { 33, 11, "freeParking" }, + { 34, 25, "timeRestrictionsOnParking" }, + { 35, 10, "costToPark" }, + { 36, 19, "midBlockCurbPresent" }, + { 37, 21, "unEvenPavementPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SegmentAttributeXY_enum2value_1[] = { + 25, /* adaptiveTimingPresent(25) */ + 13, /* adjacentBikeLaneOnLeft(13) */ + 14, /* adjacentBikeLaneOnRight(14) */ + 11, /* adjacentParkingOnLeft(11) */ + 12, /* adjacentParkingOnRight(12) */ + 24, /* audibleSignalingPresent(24) */ + 16, /* bikeBoxInFront(16) */ + 35, /* costToPark(35) */ + 5, /* curbOnLeft(5) */ + 6, /* curbOnRight(6) */ + 1, /* doNotBlock(1) */ + 33, /* freeParking(33) */ + 32, /* headInParking(32) */ + 7, /* loadingzoneOnLeft(7) */ + 8, /* loadingzoneOnRight(8) */ + 22, /* lowCurbsPresent(22) */ + 3, /* mergingLaneLeft(3) */ + 4, /* mergingLaneRight(4) */ + 36, /* midBlockCurbPresent(36) */ + 31, /* parallelParking(31) */ + 27, /* partialCurbIntrusion(27) */ + 0, /* reserved(0) */ + 26, /* rfSignalRequestPresent(26) */ + 23, /* rumbleStripPresent(23) */ + 21, /* safeIsland(21) */ + 15, /* sharedBikeLane(15) */ + 20, /* sharedWithTrackedVehicle(20) */ + 30, /* taperToCenterLine(30) */ + 28, /* taperToLeft(28) */ + 29, /* taperToRight(29) */ + 34, /* timeRestrictionsOnParking(34) */ + 19, /* transitStopInLane(19) */ + 17, /* transitStopOnLeft(17) */ + 18, /* transitStopOnRight(18) */ + 9, /* turnOutPointOnLeft(9) */ + 10, /* turnOutPointOnRight(10) */ + 37, /* unEvenPavementPresent(37) */ + 2 /* whiteLine(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1 = { + asn_MAP_SegmentAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SegmentAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 38, /* Number of elements in the maps */ + 39, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY = { + "SegmentAttributeXY", + "SegmentAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_SegmentAttributeXY_tags_1, + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentAttributeXY_constr_1, &asn_PER_type_SegmentAttributeXY_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SegmentAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SegmentAttributeXYList.c b/vcits/ssem/src/SegmentAttributeXYList.c new file mode 100644 index 0000000..a3febfb --- /dev/null +++ b/vcits/ssem/src/SegmentAttributeXYList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SegmentAttributeXYList.h" + +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_SegmentAttributeXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1 = { + sizeof(struct SegmentAttributeXYList), + offsetof(struct SegmentAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList = { + "SegmentAttributeXYList", + "SegmentAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SegmentAttributeXYList_tags_1, + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + { &asn_OER_type_SegmentAttributeXYList_constr_1, &asn_PER_type_SegmentAttributeXYList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SegmentAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_SegmentAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SemiAxisLength.c b/vcits/ssem/src/SemiAxisLength.c new file mode 100644 index 0000000..6a0c98b --- /dev/null +++ b/vcits/ssem/src/SemiAxisLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SemiAxisLength.h" + +int +SemiAxisLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiAxisLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiAxisLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiAxisLength = { + "SemiAxisLength", + "SemiAxisLength", + &asn_OP_NativeInteger, + asn_DEF_SemiAxisLength_tags_1, + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + asn_DEF_SemiAxisLength_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiAxisLength_tags_1) + /sizeof(asn_DEF_SemiAxisLength_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiAxisLength_constr_1, &asn_PER_type_SemiAxisLength_constr_1, SemiAxisLength_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SemiMajorAxisAccuracy.c b/vcits/ssem/src/SemiMajorAxisAccuracy.c new file mode 100644 index 0000000..63548bc --- /dev/null +++ b/vcits/ssem/src/SemiMajorAxisAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SemiMajorAxisAccuracy.h" + +int +SemiMajorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy = { + "SemiMajorAxisAccuracy", + "SemiMajorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMajorAxisAccuracy_constr_1, &asn_PER_type_SemiMajorAxisAccuracy_constr_1, SemiMajorAxisAccuracy_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SemiMajorAxisOrientation.c b/vcits/ssem/src/SemiMajorAxisOrientation.c new file mode 100644 index 0000000..0c5a101 --- /dev/null +++ b/vcits/ssem/src/SemiMajorAxisOrientation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SemiMajorAxisOrientation.h" + +int +SemiMajorAxisOrientation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisOrientation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation = { + "SemiMajorAxisOrientation", + "SemiMajorAxisOrientation", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisOrientation_tags_1, + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisOrientation_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMajorAxisOrientation_constr_1, &asn_PER_type_SemiMajorAxisOrientation_constr_1, SemiMajorAxisOrientation_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SemiMinorAxisAccuracy.c b/vcits/ssem/src/SemiMinorAxisAccuracy.c new file mode 100644 index 0000000..d585ac7 --- /dev/null +++ b/vcits/ssem/src/SemiMinorAxisAccuracy.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SemiMinorAxisAccuracy.h" + +int +SemiMinorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SemiMinorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy = { + "SemiMinorAxisAccuracy", + "SemiMinorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMinorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMinorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + { &asn_OER_type_SemiMinorAxisAccuracy_constr_1, &asn_PER_type_SemiMinorAxisAccuracy_constr_1, SemiMinorAxisAccuracy_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SequenceNumber.c b/vcits/ssem/src/SequenceNumber.c new file mode 100644 index 0000000..bd22d68 --- /dev/null +++ b/vcits/ssem/src/SequenceNumber.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SequenceNumber.h" + +int +SequenceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_SequenceNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SequenceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SequenceNumber = { + "SequenceNumber", + "SequenceNumber", + &asn_OP_NativeInteger, + asn_DEF_SequenceNumber_tags_1, + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + asn_DEF_SequenceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_SequenceNumber_tags_1) + /sizeof(asn_DEF_SequenceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_SequenceNumber_constr_1, &asn_PER_type_SequenceNumber_constr_1, SequenceNumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/ServiceApplicationLimit.c b/vcits/ssem/src/ServiceApplicationLimit.c new file mode 100644 index 0000000..c4f08f3 --- /dev/null +++ b/vcits/ssem/src/ServiceApplicationLimit.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ServiceApplicationLimit.h" + +int +ServiceApplicationLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ServiceApplicationLimit_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_ServiceApplicationLimit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ServiceApplicationLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServiceApplicationLimit = { + "ServiceApplicationLimit", + "ServiceApplicationLimit", + &asn_OP_BIT_STRING, + asn_DEF_ServiceApplicationLimit_tags_1, + sizeof(asn_DEF_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_ServiceApplicationLimit_tags_1[0]), /* 1 */ + asn_DEF_ServiceApplicationLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_ServiceApplicationLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_ServiceApplicationLimit_constr_1, &asn_PER_type_ServiceApplicationLimit_constr_1, ServiceApplicationLimit_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ServiceNumber.c b/vcits/ssem/src/ServiceNumber.c new file mode 100644 index 0000000..630de84 --- /dev/null +++ b/vcits/ssem/src/ServiceNumber.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ServiceNumber.h" + +int +ServiceNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 32)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ServiceNumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + 32 /* (SIZE(32..32)) */}; +asn_per_constraints_t asn_PER_type_ServiceNumber_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ServiceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServiceNumber = { + "ServiceNumber", + "ServiceNumber", + &asn_OP_BIT_STRING, + asn_DEF_ServiceNumber_tags_1, + sizeof(asn_DEF_ServiceNumber_tags_1) + /sizeof(asn_DEF_ServiceNumber_tags_1[0]), /* 1 */ + asn_DEF_ServiceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ServiceNumber_tags_1) + /sizeof(asn_DEF_ServiceNumber_tags_1[0]), /* 1 */ + { &asn_OER_type_ServiceNumber_constr_1, &asn_PER_type_ServiceNumber_constr_1, ServiceNumber_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalControlZone.c b/vcits/ssem/src/SignalControlZone.c new file mode 100644 index 0000000..31df06a --- /dev/null +++ b/vcits/ssem/src/SignalControlZone.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalControlZone.h" + +asn_TYPE_member_t asn_MBR_SignalControlZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalControlZone, zone), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_SignalControlZone, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zone" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalControlZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalControlZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* zone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1 = { + sizeof(struct SignalControlZone), + offsetof(struct SignalControlZone, _asn_ctx), + asn_MAP_SignalControlZone_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalControlZone = { + "SignalControlZone", + "SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_SignalControlZone_tags_1, + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + asn_DEF_SignalControlZone_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalControlZone_1, + 1, /* Elements count */ + &asn_SPC_SignalControlZone_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalGroupID.c b/vcits/ssem/src/SignalGroupID.c new file mode 100644 index 0000000..39cfdc5 --- /dev/null +++ b/vcits/ssem/src/SignalGroupID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalGroupID.h" + +int +SignalGroupID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalGroupID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalGroupID = { + "SignalGroupID", + "SignalGroupID", + &asn_OP_NativeInteger, + asn_DEF_SignalGroupID_tags_1, + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + asn_DEF_SignalGroupID_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalGroupID_constr_1, &asn_PER_type_SignalGroupID_constr_1, SignalGroupID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SignalHeadLocation.c b/vcits/ssem/src/SignalHeadLocation.c new file mode 100644 index 0000000..edb7b44 --- /dev/null +++ b/vcits/ssem/src/SignalHeadLocation.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalHeadLocation.h" + +asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, nodeZ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAltitude, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nodeZ" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, signalGroupID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signalGroupID" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalHeadLocation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeZ */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroupID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1 = { + sizeof(struct SignalHeadLocation), + offsetof(struct SignalHeadLocation, _asn_ctx), + asn_MAP_SignalHeadLocation_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation = { + "SignalHeadLocation", + "SignalHeadLocation", + &asn_OP_SEQUENCE, + asn_DEF_SignalHeadLocation_tags_1, + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalHeadLocation_1, + 3, /* Elements count */ + &asn_SPC_SignalHeadLocation_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalHeadLocationList.c b/vcits/ssem/src/SignalHeadLocationList.c new file mode 100644 index 0000000..c660e92 --- /dev/null +++ b/vcits/ssem/src/SignalHeadLocationList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalHeadLocationList.h" + +#include "SignalHeadLocation.h" +static asn_oer_constraints_t asn_OER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalHeadLocation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1 = { + sizeof(struct SignalHeadLocationList), + offsetof(struct SignalHeadLocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList = { + "SignalHeadLocationList", + "SignalHeadLocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalHeadLocationList_tags_1, + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalHeadLocationList_constr_1, &asn_PER_type_SignalHeadLocationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalHeadLocationList_1, + 1, /* Single element */ + &asn_SPC_SignalHeadLocationList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalRequest.c b/vcits/ssem/src/SignalRequest.c new file mode 100644 index 0000000..79c2850 --- /dev/null +++ b/vcits/ssem/src/SignalRequest.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalRequest.h" + +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequest__regional), + offsetof(struct SignalRequest__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PriorityRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestType" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, inBoundLane), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inBoundLane" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequest, outBoundLane), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outBoundLane" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequest, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequest_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* requestID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* requestType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* inBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* outBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1 = { + sizeof(struct SignalRequest), + offsetof(struct SignalRequest, _asn_ctx), + asn_MAP_SignalRequest_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequest_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequest = { + "SignalRequest", + "SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequest_tags_1, + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + asn_DEF_SignalRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequest_1, + 6, /* Elements count */ + &asn_SPC_SignalRequest_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalRequestList.c b/vcits/ssem/src/SignalRequestList.c new file mode 100644 index 0000000..55f6688 --- /dev/null +++ b/vcits/ssem/src/SignalRequestList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalRequestList.h" + +#include "SignalRequestPackage.h" +static asn_oer_constraints_t asn_OER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalRequestPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1 = { + sizeof(struct SignalRequestList), + offsetof(struct SignalRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestList = { + "SignalRequestList", + "SignalRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalRequestList_tags_1, + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalRequestList_constr_1, &asn_PER_type_SignalRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalRequestList_1, + 1, /* Single element */ + &asn_SPC_SignalRequestList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalRequestMessage.c b/vcits/ssem/src/SignalRequestMessage.c new file mode 100644 index 0000000..8d088e1 --- /dev/null +++ b/vcits/ssem/src/SignalRequestMessage.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalRequestMessage.h" + +#include "SignalRequestList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequestMessage__regional), + offsetof(struct SignalRequestMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { &asn_OER_type_regional_constr_7, &asn_PER_type_regional_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_SignalRequestMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, requests), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requests" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, requestor), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorDescription, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestor" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { &asn_OER_memb_regional_constr_7, &asn_PER_memb_regional_constr_7, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestMessage_oms_1[] = { 0, 2, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* requests */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* requestor */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SignalRequestMessage_specs_1 = { + sizeof(struct SignalRequestMessage), + offsetof(struct SignalRequestMessage, _asn_ctx), + asn_MAP_SignalRequestMessage_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequestMessage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage = { + "SignalRequestMessage", + "SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestMessage_tags_1, + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequestMessage_1, + 6, /* Elements count */ + &asn_SPC_SignalRequestMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalRequestPackage.c b/vcits/ssem/src/SignalRequestPackage.c new file mode 100644 index 0000000..1465528 --- /dev/null +++ b/vcits/ssem/src/SignalRequestPackage.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalRequestPackage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalRequestPackage__regional), + offsetof(struct SignalRequestPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestPackage, request), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 4, offsetof(struct SignalRequestPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 3, offsetof(struct SignalRequestPackage, second), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestPackage_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1 = { + sizeof(struct SignalRequestPackage), + offsetof(struct SignalRequestPackage, _asn_ctx), + asn_MAP_SignalRequestPackage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequestPackage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage = { + "SignalRequestPackage", + "SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestPackage_tags_1, + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequestPackage_1, + 5, /* Elements count */ + &asn_SPC_SignalRequestPackage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalRequesterInfo.c b/vcits/ssem/src/SignalRequesterInfo.c new file mode 100644 index 0000000..a98ae04 --- /dev/null +++ b/vcits/ssem/src/SignalRequesterInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalRequesterInfo.h" + +#include "RequestorType.h" +asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, request), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "request" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequesterInfo, role), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequesterInfo, typeData), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeData" + }, +}; +static const int asn_MAP_SignalRequesterInfo_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequesterInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequesterInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* typeData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1 = { + sizeof(struct SignalRequesterInfo), + offsetof(struct SignalRequesterInfo, _asn_ctx), + asn_MAP_SignalRequesterInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequesterInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo = { + "SignalRequesterInfo", + "SignalRequesterInfo", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequesterInfo_tags_1, + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + asn_DEF_SignalRequesterInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalRequesterInfo_1, + 5, /* Elements count */ + &asn_SPC_SignalRequesterInfo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalStatus.c b/vcits/ssem/src/SignalStatus.c new file mode 100644 index 0000000..24370cf --- /dev/null +++ b/vcits/ssem/src/SignalStatus.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalStatus.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SignalStatus__regional), + offsetof(struct SignalStatus__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { &asn_OER_type_regional_constr_5, &asn_PER_type_regional_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sigStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusPackageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sigStatus" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatus, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { &asn_OER_memb_regional_constr_5, &asn_PER_memb_regional_constr_5, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatus_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_SignalStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatus_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sigStatus */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1 = { + sizeof(struct SignalStatus), + offsetof(struct SignalStatus, _asn_ctx), + asn_MAP_SignalStatus_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SignalStatus_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatus = { + "SignalStatus", + "SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatus_tags_1, + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + asn_DEF_SignalStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatus_1, + 4, /* Elements count */ + &asn_SPC_SignalStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalStatusList.c b/vcits/ssem/src/SignalStatusList.c new file mode 100644 index 0000000..5a84f1f --- /dev/null +++ b/vcits/ssem/src/SignalStatusList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalStatusList.h" + +#include "SignalStatus.h" +static asn_oer_constraints_t asn_OER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalStatusList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1 = { + sizeof(struct SignalStatusList), + offsetof(struct SignalStatusList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusList = { + "SignalStatusList", + "SignalStatusList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusList_tags_1, + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalStatusList_constr_1, &asn_PER_type_SignalStatusList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalStatusList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalStatusMessage.c b/vcits/ssem/src/SignalStatusMessage.c new file mode 100644 index 0000000..bd15945 --- /dev/null +++ b/vcits/ssem/src/SignalStatusMessage.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalStatusMessage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalStatusMessage__regional), + offsetof(struct SignalStatusMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { &asn_OER_type_regional_constr_6, &asn_PER_type_regional_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatusMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { &asn_OER_memb_regional_constr_6, &asn_PER_memb_regional_constr_6, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusMessage_oms_1[] = { 0, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusMessage_specs_1 = { + sizeof(struct SignalStatusMessage), + offsetof(struct SignalStatusMessage, _asn_ctx), + asn_MAP_SignalStatusMessage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalStatusMessage_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage = { + "SignalStatusMessage", + "SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusMessage_tags_1, + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusMessage_1, + 5, /* Elements count */ + &asn_SPC_SignalStatusMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalStatusPackage-addGrpC.c b/vcits/ssem/src/SignalStatusPackage-addGrpC.c new file mode 100644 index 0000000..ebde362 --- /dev/null +++ b/vcits/ssem/src/SignalStatusPackage-addGrpC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalStatusPackage-addGrpC.h" + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage_addGrpC, synchToSchedule), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "synchToSchedule" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage_addGrpC, rejectedReason), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RejectedReason, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rejectedReason" + }, +}; +static const int asn_MAP_SignalStatusPackage_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* synchToSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rejectedReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_addGrpC_specs_1 = { + sizeof(struct SignalStatusPackage_addGrpC), + offsetof(struct SignalStatusPackage_addGrpC, _asn_ctx), + asn_MAP_SignalStatusPackage_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage_addGrpC = { + "SignalStatusPackage-addGrpC", + "SignalStatusPackage-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_addGrpC_tags_1, + sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusPackage_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_SignalStatusPackage_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalStatusPackage.c b/vcits/ssem/src/SignalStatusPackage.c new file mode 100644 index 0000000..adbbdac --- /dev/null +++ b/vcits/ssem/src/SignalStatusPackage.c @@ -0,0 +1,204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalStatusPackage.h" + +#include "SignalRequesterInfo.h" +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 4)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct SignalStatusPackage__regional), + offsetof(struct SignalStatusPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { &asn_OER_type_regional_constr_9, &asn_PER_type_regional_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, requester), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequesterInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requester" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, inboundOn), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inboundOn" + }, + { ATF_POINTER, 4, offsetof(struct SignalStatusPackage, outboundOn), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outboundOn" + }, + { ATF_POINTER, 3, offsetof(struct SignalStatusPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage, second), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, status), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { &asn_OER_memb_regional_constr_9, &asn_PER_memb_regional_constr_9, memb_regional_constraint_1 }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusPackage_oms_1[] = { 0, 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requester */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* inboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* outboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1 = { + sizeof(struct SignalStatusPackage), + offsetof(struct SignalStatusPackage, _asn_ctx), + asn_MAP_SignalStatusPackage_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage = { + "SignalStatusPackage", + "SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_tags_1, + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SignalStatusPackage_1, + 8, /* Elements count */ + &asn_SPC_SignalStatusPackage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalStatusPackageList.c b/vcits/ssem/src/SignalStatusPackageList.c new file mode 100644 index 0000000..0cc5cb0 --- /dev/null +++ b/vcits/ssem/src/SignalStatusPackageList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalStatusPackageList.h" + +#include "SignalStatusPackage.h" +static asn_oer_constraints_t asn_OER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1 = { + sizeof(struct SignalStatusPackageList), + offsetof(struct SignalStatusPackageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList = { + "SignalStatusPackageList", + "SignalStatusPackageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusPackageList_tags_1, + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackageList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalStatusPackageList_constr_1, &asn_PER_type_SignalStatusPackageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SignalStatusPackageList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusPackageList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SignalViolationSubCauseCode.c b/vcits/ssem/src/SignalViolationSubCauseCode.c new file mode 100644 index 0000000..cbcfdf3 --- /dev/null +++ b/vcits/ssem/src/SignalViolationSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SignalViolationSubCauseCode.h" + +int +SignalViolationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SignalViolationSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SignalViolationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalViolationSubCauseCode = { + "SignalViolationSubCauseCode", + "SignalViolationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SignalViolationSubCauseCode_tags_1, + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SignalViolationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SignalViolationSubCauseCode_constr_1, &asn_PER_type_SignalViolationSubCauseCode_constr_1, SignalViolationSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SlowVehicleSubCauseCode.c b/vcits/ssem/src/SlowVehicleSubCauseCode.c new file mode 100644 index 0000000..a27586f --- /dev/null +++ b/vcits/ssem/src/SlowVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SlowVehicleSubCauseCode.h" + +int +SlowVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SlowVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SlowVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SlowVehicleSubCauseCode = { + "SlowVehicleSubCauseCode", + "SlowVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_SlowVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_SlowVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_SlowVehicleSubCauseCode_constr_1, &asn_PER_type_SlowVehicleSubCauseCode_constr_1, SlowVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SpecialTransportType.c b/vcits/ssem/src/SpecialTransportType.c new file mode 100644 index 0000000..675bd92 --- /dev/null +++ b/vcits/ssem/src/SpecialTransportType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SpecialTransportType.h" + +int +SpecialTransportType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_type_SpecialTransportType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpecialTransportType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpecialTransportType = { + "SpecialTransportType", + "SpecialTransportType", + &asn_OP_BIT_STRING, + asn_DEF_SpecialTransportType_tags_1, + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + asn_DEF_SpecialTransportType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpecialTransportType_tags_1) + /sizeof(asn_DEF_SpecialTransportType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpecialTransportType_constr_1, &asn_PER_type_SpecialTransportType_constr_1, SpecialTransportType_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Speed.c b/vcits/ssem/src/Speed.c new file mode 100644 index 0000000..43b560e --- /dev/null +++ b/vcits/ssem/src/Speed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Speed.h" + +static asn_TYPE_member_t asn_MBR_Speed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Speed, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Speed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speedConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Speed_specs_1 = { + sizeof(struct Speed), + offsetof(struct Speed, _asn_ctx), + asn_MAP_Speed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Speed = { + "Speed", + "Speed", + &asn_OP_SEQUENCE, + asn_DEF_Speed_tags_1, + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + asn_DEF_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Speed_1, + 2, /* Elements count */ + &asn_SPC_Speed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SpeedAdvice.c b/vcits/ssem/src/SpeedAdvice.c new file mode 100644 index 0000000..cf80854 --- /dev/null +++ b/vcits/ssem/src/SpeedAdvice.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SpeedAdvice.h" + +int +SpeedAdvice_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..500) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 500 } /* (0..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedAdvice_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedAdvice = { + "SpeedAdvice", + "SpeedAdvice", + &asn_OP_NativeInteger, + asn_DEF_SpeedAdvice_tags_1, + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + asn_DEF_SpeedAdvice_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedAdvice_constr_1, &asn_PER_type_SpeedAdvice_constr_1, SpeedAdvice_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SpeedConfidence.c b/vcits/ssem/src/SpeedConfidence.c new file mode 100644 index 0000000..9b79b2f --- /dev/null +++ b/vcits/ssem/src/SpeedConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SpeedConfidence.h" + +int +SpeedConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeInteger, + asn_DEF_SpeedConfidence_tags_1, + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidence_constr_1, &asn_PER_type_SpeedConfidence_constr_1, SpeedConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SpeedConfidenceDSRC.c b/vcits/ssem/src/SpeedConfidenceDSRC.c new file mode 100644 index 0000000..7fbc17c --- /dev/null +++ b/vcits/ssem/src/SpeedConfidenceDSRC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SpeedConfidenceDSRC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedConfidenceDSRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpeedConfidenceDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SpeedConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec100ms" }, + { 2, 8, "prec10ms" }, + { 3, 7, "prec5ms" }, + { 4, 7, "prec1ms" }, + { 5, 9, "prec0-1ms" }, + { 6, 10, "prec0-05ms" }, + { 7, 10, "prec0-01ms" } +}; +static const unsigned int asn_MAP_SpeedConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-01ms(7) */ + 6, /* prec0-05ms(6) */ + 5, /* prec0-1ms(5) */ + 1, /* prec100ms(1) */ + 2, /* prec10ms(2) */ + 4, /* prec1ms(4) */ + 3, /* prec5ms(3) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedConfidenceDSRC_specs_1 = { + asn_MAP_SpeedConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedConfidenceDSRC_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidenceDSRC = { + "SpeedConfidenceDSRC", + "SpeedConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedConfidenceDSRC_tags_1, + sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedConfidenceDSRC_constr_1, &asn_PER_type_SpeedConfidenceDSRC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SpeedLimit.c b/vcits/ssem/src/SpeedLimit.c new file mode 100644 index 0000000..dd7c479 --- /dev/null +++ b/vcits/ssem/src/SpeedLimit.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SpeedLimit.h" + +int +SpeedLimit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_NativeInteger, + asn_DEF_SpeedLimit_tags_1, + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimit_constr_1, &asn_PER_type_SpeedLimit_constr_1, SpeedLimit_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SpeedLimitList.c b/vcits/ssem/src/SpeedLimitList.c new file mode 100644 index 0000000..fb8be03 --- /dev/null +++ b/vcits/ssem/src/SpeedLimitList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SpeedLimitList.h" + +#include "RegulatorySpeedLimit.h" +static asn_oer_constraints_t asn_OER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..9)) */}; +asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 9 } /* (SIZE(1..9)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SpeedLimitList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RegulatorySpeedLimit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1 = { + sizeof(struct SpeedLimitList), + offsetof(struct SpeedLimitList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitList = { + "SpeedLimitList", + "SpeedLimitList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SpeedLimitList_tags_1, + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitList_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimitList_constr_1, &asn_PER_type_SpeedLimitList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SpeedLimitList_1, + 1, /* Single element */ + &asn_SPC_SpeedLimitList_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SpeedLimitType.c b/vcits/ssem/src/SpeedLimitType.c new file mode 100644 index 0000000..bedf937 --- /dev/null +++ b/vcits/ssem/src/SpeedLimitType.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SpeedLimitType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SpeedLimitType_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "maxSpeedInSchoolZone" }, + { 2, 42, "maxSpeedInSchoolZoneWhenChildrenArePresent" }, + { 3, 26, "maxSpeedInConstructionZone" }, + { 4, 15, "vehicleMinSpeed" }, + { 5, 15, "vehicleMaxSpeed" }, + { 6, 20, "vehicleNightMaxSpeed" }, + { 7, 13, "truckMinSpeed" }, + { 8, 13, "truckMaxSpeed" }, + { 9, 18, "truckNightMaxSpeed" }, + { 10, 28, "vehiclesWithTrailersMinSpeed" }, + { 11, 28, "vehiclesWithTrailersMaxSpeed" }, + { 12, 33, "vehiclesWithTrailersNightMaxSpeed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SpeedLimitType_enum2value_1[] = { + 3, /* maxSpeedInConstructionZone(3) */ + 1, /* maxSpeedInSchoolZone(1) */ + 2, /* maxSpeedInSchoolZoneWhenChildrenArePresent(2) */ + 8, /* truckMaxSpeed(8) */ + 7, /* truckMinSpeed(7) */ + 9, /* truckNightMaxSpeed(9) */ + 0, /* unknown(0) */ + 5, /* vehicleMaxSpeed(5) */ + 4, /* vehicleMinSpeed(4) */ + 6, /* vehicleNightMaxSpeed(6) */ + 11, /* vehiclesWithTrailersMaxSpeed(11) */ + 10, /* vehiclesWithTrailersMinSpeed(10) */ + 12 /* vehiclesWithTrailersNightMaxSpeed(12) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1 = { + asn_MAP_SpeedLimitType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedLimitType_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitType = { + "SpeedLimitType", + "SpeedLimitType", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedLimitType_tags_1, + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedLimitType_constr_1, &asn_PER_type_SpeedLimitType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedLimitType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SpeedValue.c b/vcits/ssem/src/SpeedValue.c new file mode 100644 index 0000000..447c22f --- /dev/null +++ b/vcits/ssem/src/SpeedValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SpeedValue.h" + +int +SpeedValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 16383)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SpeedValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +asn_per_constraints_t asn_PER_type_SpeedValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpeedValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedValue = { + "SpeedValue", + "SpeedValue", + &asn_OP_NativeInteger, + asn_DEF_SpeedValue_tags_1, + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + asn_DEF_SpeedValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedValue_tags_1) + /sizeof(asn_DEF_SpeedValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SpeedValue_constr_1, &asn_PER_type_SpeedValue_constr_1, SpeedValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SpeedandHeadingandThrottleConfidence.c b/vcits/ssem/src/SpeedandHeadingandThrottleConfidence.c new file mode 100644 index 0000000..0f4ddc7 --- /dev/null +++ b/vcits/ssem/src/SpeedandHeadingandThrottleConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SpeedandHeadingandThrottleConfidence.h" + +asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidenceDSRC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, throttle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ThrottleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "throttle" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* throttle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 = { + sizeof(struct SpeedandHeadingandThrottleConfidence), + offsetof(struct SpeedandHeadingandThrottleConfidence, _asn_ctx), + asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence = { + "SpeedandHeadingandThrottleConfidence", + "SpeedandHeadingandThrottleConfidence", + &asn_OP_SEQUENCE, + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SpeedandHeadingandThrottleConfidence_1, + 3, /* Elements count */ + &asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/StartTime.c b/vcits/ssem/src/StartTime.c new file mode 100644 index 0000000..ac10b1a --- /dev/null +++ b/vcits/ssem/src/StartTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "StartTime.h" + +int +StartTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const AviEriDateTime_t *st = (const AviEriDateTime_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using AviEriDateTime, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StartTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_StartTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StartTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StartTime = { + "StartTime", + "StartTime", + &asn_OP_OCTET_STRING, + asn_DEF_StartTime_tags_1, + sizeof(asn_DEF_StartTime_tags_1) + /sizeof(asn_DEF_StartTime_tags_1[0]), /* 1 */ + asn_DEF_StartTime_tags_1, /* Same as above */ + sizeof(asn_DEF_StartTime_tags_1) + /sizeof(asn_DEF_StartTime_tags_1[0]), /* 1 */ + { &asn_OER_type_StartTime_constr_1, &asn_PER_type_StartTime_constr_1, StartTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/StationID.c b/vcits/ssem/src/StationID.c new file mode 100644 index 0000000..2f54c2c --- /dev/null +++ b/vcits/ssem/src/StationID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "StationID.h" + +int +StationID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +asn_per_constraints_t asn_PER_type_StationID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_StationID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationID = { + "StationID", + "StationID", + &asn_OP_NativeInteger, + asn_DEF_StationID_tags_1, + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + asn_DEF_StationID_tags_1, /* Same as above */ + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + { &asn_OER_type_StationID_constr_1, &asn_PER_type_StationID_constr_1, StationID_constraint }, + 0, 0, /* No members */ + &asn_SPC_StationID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/StationType.c b/vcits/ssem/src/StationType.c new file mode 100644 index 0000000..3014123 --- /dev/null +++ b/vcits/ssem/src/StationType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "StationType.h" + +int +StationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_StationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationType = { + "StationType", + "StationType", + &asn_OP_NativeInteger, + asn_DEF_StationType_tags_1, + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + asn_DEF_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_StationType_tags_1) + /sizeof(asn_DEF_StationType_tags_1[0]), /* 1 */ + { &asn_OER_type_StationType_constr_1, &asn_PER_type_StationType_constr_1, StationType_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/StationarySince.c b/vcits/ssem/src/StationarySince.c new file mode 100644 index 0000000..623a995 --- /dev/null +++ b/vcits/ssem/src/StationarySince.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "StationarySince.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationarySince_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_StationarySince_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_StationarySince_value2enum_1[] = { + { 0, 15, "lessThan1Minute" }, + { 1, 16, "lessThan2Minutes" }, + { 2, 17, "lessThan15Minutes" }, + { 3, 23, "equalOrGreater15Minutes" } +}; +static const unsigned int asn_MAP_StationarySince_enum2value_1[] = { + 3, /* equalOrGreater15Minutes(3) */ + 2, /* lessThan15Minutes(2) */ + 0, /* lessThan1Minute(0) */ + 1 /* lessThan2Minutes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_StationarySince_specs_1 = { + asn_MAP_StationarySince_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_StationarySince_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_StationarySince_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationarySince = { + "StationarySince", + "StationarySince", + &asn_OP_NativeEnumerated, + asn_DEF_StationarySince_tags_1, + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + asn_DEF_StationarySince_tags_1, /* Same as above */ + sizeof(asn_DEF_StationarySince_tags_1) + /sizeof(asn_DEF_StationarySince_tags_1[0]), /* 1 */ + { &asn_OER_type_StationarySince_constr_1, &asn_PER_type_StationarySince_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_StationarySince_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/StationaryVehicleSubCauseCode.c b/vcits/ssem/src/StationaryVehicleSubCauseCode.c new file mode 100644 index 0000000..f531a2d --- /dev/null +++ b/vcits/ssem/src/StationaryVehicleSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "StationaryVehicleSubCauseCode.h" + +int +StationaryVehicleSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_StationaryVehicleSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StationaryVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationaryVehicleSubCauseCode = { + "StationaryVehicleSubCauseCode", + "StationaryVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_StationaryVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_StationaryVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_StationaryVehicleSubCauseCode_constr_1, &asn_PER_type_StationaryVehicleSubCauseCode_constr_1, StationaryVehicleSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SteeringWheelAngle.c b/vcits/ssem/src/SteeringWheelAngle.c new file mode 100644 index 0000000..0fa4647 --- /dev/null +++ b/vcits/ssem/src/SteeringWheelAngle.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SteeringWheelAngle.h" + +static asn_TYPE_member_t asn_MBR_SteeringWheelAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct SteeringWheelAngle, steeringWheelAngleConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "steeringWheelAngleConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SteeringWheelAngle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* steeringWheelAngleValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* steeringWheelAngleConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SteeringWheelAngle_specs_1 = { + sizeof(struct SteeringWheelAngle), + offsetof(struct SteeringWheelAngle, _asn_ctx), + asn_MAP_SteeringWheelAngle_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_SEQUENCE, + asn_DEF_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SteeringWheelAngle_1, + 2, /* Elements count */ + &asn_SPC_SteeringWheelAngle_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SteeringWheelAngleConfidence.c b/vcits/ssem/src/SteeringWheelAngleConfidence.c new file mode 100644 index 0000000..6596e5e --- /dev/null +++ b/vcits/ssem/src/SteeringWheelAngleConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SteeringWheelAngleConfidence.h" + +int +SteeringWheelAngleConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleConfidence_constr_1, &asn_PER_type_SteeringWheelAngleConfidence_constr_1, SteeringWheelAngleConfidence_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/SteeringWheelAngleValue.c b/vcits/ssem/src/SteeringWheelAngleValue.c new file mode 100644 index 0000000..3b56681 --- /dev/null +++ b/vcits/ssem/src/SteeringWheelAngleValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SteeringWheelAngleValue.h" + +int +SteeringWheelAngleValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -511 && value <= 512)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-511..512) */, + -1}; +asn_per_constraints_t asn_PER_type_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -511, 512 } /* (-511..512) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleValue = { + "SteeringWheelAngleValue", + "SteeringWheelAngleValue", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleValue_tags_1, + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + { &asn_OER_type_SteeringWheelAngleValue_constr_1, &asn_PER_type_SteeringWheelAngleValue_constr_1, SteeringWheelAngleValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/StopTime.c b/vcits/ssem/src/StopTime.c new file mode 100644 index 0000000..bb5db86 --- /dev/null +++ b/vcits/ssem/src/StopTime.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "StopTime.h" + +int +StopTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const AviEriDateTime_t *st = (const AviEriDateTime_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using AviEriDateTime, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_StopTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +asn_per_constraints_t asn_PER_type_StopTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_StopTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StopTime = { + "StopTime", + "StopTime", + &asn_OP_OCTET_STRING, + asn_DEF_StopTime_tags_1, + sizeof(asn_DEF_StopTime_tags_1) + /sizeof(asn_DEF_StopTime_tags_1[0]), /* 1 */ + asn_DEF_StopTime_tags_1, /* Same as above */ + sizeof(asn_DEF_StopTime_tags_1) + /sizeof(asn_DEF_StopTime_tags_1[0]), /* 1 */ + { &asn_OER_type_StopTime_constr_1, &asn_PER_type_StopTime_constr_1, StopTime_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/SubCauseCodeType.c b/vcits/ssem/src/SubCauseCodeType.c new file mode 100644 index 0000000..1a7d07e --- /dev/null +++ b/vcits/ssem/src/SubCauseCodeType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "SubCauseCodeType.h" + +int +SubCauseCodeType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SubCauseCodeType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SubCauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SubCauseCodeType = { + "SubCauseCodeType", + "SubCauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_SubCauseCodeType_tags_1, + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_SubCauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_SubCauseCodeType_tags_1[0]), /* 1 */ + { &asn_OER_type_SubCauseCodeType_constr_1, &asn_PER_type_SubCauseCodeType_constr_1, SubCauseCodeType_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/TaxCode.c b/vcits/ssem/src/TaxCode.c new file mode 100644 index 0000000..10640cc --- /dev/null +++ b/vcits/ssem/src/TaxCode.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/tmp/gen_env/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TaxCode.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_TaxCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TaxCode = { + "TaxCode", + "TaxCode", + &asn_OP_OCTET_STRING, + asn_DEF_TaxCode_tags_1, + sizeof(asn_DEF_TaxCode_tags_1) + /sizeof(asn_DEF_TaxCode_tags_1[0]), /* 1 */ + asn_DEF_TaxCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TaxCode_tags_1) + /sizeof(asn_DEF_TaxCode_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/Temperature.c b/vcits/ssem/src/Temperature.c new file mode 100644 index 0000000..124c400 --- /dev/null +++ b/vcits/ssem/src/Temperature.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Temperature.h" + +int +Temperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -60 && value <= 67)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Temperature_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-60..67) */, + -1}; +static asn_per_constraints_t asn_PER_type_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 67 } /* (-60..67) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_Temperature_tags_1, + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + asn_DEF_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_Temperature_tags_1) + /sizeof(asn_DEF_Temperature_tags_1[0]), /* 1 */ + { &asn_OER_type_Temperature_constr_1, &asn_PER_type_Temperature_constr_1, Temperature_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/TemporaryID.c b/vcits/ssem/src/TemporaryID.c new file mode 100644 index 0000000..c26c0a6 --- /dev/null +++ b/vcits/ssem/src/TemporaryID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TemporaryID.h" + +int +TemporaryID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TemporaryID_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +asn_per_constraints_t asn_PER_type_TemporaryID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TemporaryID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TemporaryID = { + "TemporaryID", + "TemporaryID", + &asn_OP_OCTET_STRING, + asn_DEF_TemporaryID_tags_1, + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + asn_DEF_TemporaryID_tags_1, /* Same as above */ + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + { &asn_OER_type_TemporaryID_constr_1, &asn_PER_type_TemporaryID_constr_1, TemporaryID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/ThrottleConfidence.c b/vcits/ssem/src/ThrottleConfidence.c new file mode 100644 index 0000000..945a86c --- /dev/null +++ b/vcits/ssem/src/ThrottleConfidence.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ThrottleConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ThrottleConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 13, "prec10percent" }, + { 2, 12, "prec1percent" }, + { 3, 14, "prec0-5percent" } +}; +static const unsigned int asn_MAP_ThrottleConfidence_enum2value_1[] = { + 3, /* prec0-5percent(3) */ + 1, /* prec10percent(1) */ + 2, /* prec1percent(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1 = { + asn_MAP_ThrottleConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ThrottleConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence = { + "ThrottleConfidence", + "ThrottleConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ThrottleConfidence_tags_1, + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_ThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_ThrottleConfidence_constr_1, &asn_PER_type_ThrottleConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/TimeChangeDetails.c b/vcits/ssem/src/TimeChangeDetails.c new file mode 100644 index 0000000..6c88321 --- /dev/null +++ b/vcits/ssem/src/TimeChangeDetails.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TimeChangeDetails.h" + +asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[] = { + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct TimeChangeDetails, minEndTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "minEndTime" + }, + { ATF_POINTER, 4, offsetof(struct TimeChangeDetails, maxEndTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxEndTime" + }, + { ATF_POINTER, 3, offsetof(struct TimeChangeDetails, likelyTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "likelyTime" + }, + { ATF_POINTER, 2, offsetof(struct TimeChangeDetails, confidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeIntervalConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, nextTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeMark, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextTime" + }, +}; +static const int asn_MAP_TimeChangeDetails_oms_1[] = { 0, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_TimeChangeDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TimeChangeDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* likelyTime */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* nextTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1 = { + sizeof(struct TimeChangeDetails), + offsetof(struct TimeChangeDetails, _asn_ctx), + asn_MAP_TimeChangeDetails_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_TimeChangeDetails_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails = { + "TimeChangeDetails", + "TimeChangeDetails", + &asn_OP_SEQUENCE, + asn_DEF_TimeChangeDetails_tags_1, + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + asn_DEF_TimeChangeDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TimeChangeDetails_1, + 6, /* Elements count */ + &asn_SPC_TimeChangeDetails_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/TimeConfidence.c b/vcits/ssem/src/TimeConfidence.c new file mode 100644 index 0000000..291977f --- /dev/null +++ b/vcits/ssem/src/TimeConfidence.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TimeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TimeConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 12, "time-100-000" }, + { 2, 12, "time-050-000" }, + { 3, 12, "time-020-000" }, + { 4, 12, "time-010-000" }, + { 5, 12, "time-002-000" }, + { 6, 12, "time-001-000" }, + { 7, 12, "time-000-500" }, + { 8, 12, "time-000-200" }, + { 9, 12, "time-000-100" }, + { 10, 12, "time-000-050" }, + { 11, 12, "time-000-020" }, + { 12, 12, "time-000-010" }, + { 13, 12, "time-000-005" }, + { 14, 12, "time-000-002" }, + { 15, 12, "time-000-001" }, + { 16, 14, "time-000-000-5" }, + { 17, 14, "time-000-000-2" }, + { 18, 14, "time-000-000-1" }, + { 19, 15, "time-000-000-05" }, + { 20, 15, "time-000-000-02" }, + { 21, 15, "time-000-000-01" }, + { 22, 16, "time-000-000-005" }, + { 23, 16, "time-000-000-002" }, + { 24, 16, "time-000-000-001" }, + { 25, 18, "time-000-000-000-5" }, + { 26, 18, "time-000-000-000-2" }, + { 27, 18, "time-000-000-000-1" }, + { 28, 19, "time-000-000-000-05" }, + { 29, 19, "time-000-000-000-02" }, + { 30, 19, "time-000-000-000-01" }, + { 31, 20, "time-000-000-000-005" }, + { 32, 20, "time-000-000-000-002" }, + { 33, 20, "time-000-000-000-001" }, + { 34, 22, "time-000-000-000-000-5" }, + { 35, 22, "time-000-000-000-000-2" }, + { 36, 22, "time-000-000-000-000-1" }, + { 37, 23, "time-000-000-000-000-05" }, + { 38, 23, "time-000-000-000-000-02" }, + { 39, 23, "time-000-000-000-000-01" } +}; +static const unsigned int asn_MAP_TimeConfidence_enum2value_1[] = { + 39, /* time-000-000-000-000-01(39) */ + 38, /* time-000-000-000-000-02(38) */ + 37, /* time-000-000-000-000-05(37) */ + 36, /* time-000-000-000-000-1(36) */ + 35, /* time-000-000-000-000-2(35) */ + 34, /* time-000-000-000-000-5(34) */ + 33, /* time-000-000-000-001(33) */ + 32, /* time-000-000-000-002(32) */ + 31, /* time-000-000-000-005(31) */ + 30, /* time-000-000-000-01(30) */ + 29, /* time-000-000-000-02(29) */ + 28, /* time-000-000-000-05(28) */ + 27, /* time-000-000-000-1(27) */ + 26, /* time-000-000-000-2(26) */ + 25, /* time-000-000-000-5(25) */ + 24, /* time-000-000-001(24) */ + 23, /* time-000-000-002(23) */ + 22, /* time-000-000-005(22) */ + 21, /* time-000-000-01(21) */ + 20, /* time-000-000-02(20) */ + 19, /* time-000-000-05(19) */ + 18, /* time-000-000-1(18) */ + 17, /* time-000-000-2(17) */ + 16, /* time-000-000-5(16) */ + 15, /* time-000-001(15) */ + 14, /* time-000-002(14) */ + 13, /* time-000-005(13) */ + 12, /* time-000-010(12) */ + 11, /* time-000-020(11) */ + 10, /* time-000-050(10) */ + 9, /* time-000-100(9) */ + 8, /* time-000-200(8) */ + 7, /* time-000-500(7) */ + 6, /* time-001-000(6) */ + 5, /* time-002-000(5) */ + 4, /* time-010-000(4) */ + 3, /* time-020-000(3) */ + 2, /* time-050-000(2) */ + 1, /* time-100-000(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1 = { + asn_MAP_TimeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TimeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 40, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TimeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeConfidence = { + "TimeConfidence", + "TimeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_TimeConfidence_tags_1, + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeConfidence_constr_1, &asn_PER_type_TimeConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TimeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/TimeIntervalConfidence.c b/vcits/ssem/src/TimeIntervalConfidence.c new file mode 100644 index 0000000..7c44f77 --- /dev/null +++ b/vcits/ssem/src/TimeIntervalConfidence.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TimeIntervalConfidence.h" + +int +TimeIntervalConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 15)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeIntervalConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence = { + "TimeIntervalConfidence", + "TimeIntervalConfidence", + &asn_OP_NativeInteger, + asn_DEF_TimeIntervalConfidence_tags_1, + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeIntervalConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeIntervalConfidence_constr_1, &asn_PER_type_TimeIntervalConfidence_constr_1, TimeIntervalConfidence_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/TimeMark.c b/vcits/ssem/src/TimeMark.c new file mode 100644 index 0000000..b310da9 --- /dev/null +++ b/vcits/ssem/src/TimeMark.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TimeMark.h" + +int +TimeMark_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 36001)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeMark_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..36001) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeMark_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 36001 } /* (0..36001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeMark_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeMark = { + "TimeMark", + "TimeMark", + &asn_OP_NativeInteger, + asn_DEF_TimeMark_tags_1, + sizeof(asn_DEF_TimeMark_tags_1) + /sizeof(asn_DEF_TimeMark_tags_1[0]), /* 1 */ + asn_DEF_TimeMark_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeMark_tags_1) + /sizeof(asn_DEF_TimeMark_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeMark_constr_1, &asn_PER_type_TimeMark_constr_1, TimeMark_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/TimeReference.c b/vcits/ssem/src/TimeReference.c new file mode 100644 index 0000000..42c2b2c --- /dev/null +++ b/vcits/ssem/src/TimeReference.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TimeReference.h" + +int +TimeReference_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 60000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeReference_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..60000) */, + -1}; +asn_per_constraints_t asn_PER_type_TimeReference_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 60000 } /* (0..60000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimeReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeReference = { + "TimeReference", + "TimeReference", + &asn_OP_NativeInteger, + asn_DEF_TimeReference_tags_1, + sizeof(asn_DEF_TimeReference_tags_1) + /sizeof(asn_DEF_TimeReference_tags_1[0]), /* 1 */ + asn_DEF_TimeReference_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeReference_tags_1) + /sizeof(asn_DEF_TimeReference_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeReference_constr_1, &asn_PER_type_TimeReference_constr_1, TimeReference_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/TimestampIts.c b/vcits/ssem/src/TimestampIts.c new file mode 100644 index 0000000..ed34735 --- /dev/null +++ b/vcits/ssem/src/TimestampIts.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TimestampIts.h" + +int +TimestampIts_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0 && value <= 4398046511103)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimestampIts_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..4398046511103) */, + -1}; +asn_per_constraints_t asn_PER_type_TimestampIts_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 42, -1, 0, 4398046511103 } /* (0..4398046511103) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TimestampIts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimestampIts = { + "TimestampIts", + "TimestampIts", + &asn_OP_INTEGER, + asn_DEF_TimestampIts_tags_1, + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + asn_DEF_TimestampIts_tags_1, /* Same as above */ + sizeof(asn_DEF_TimestampIts_tags_1) + /sizeof(asn_DEF_TimestampIts_tags_1[0]), /* 1 */ + { &asn_OER_type_TimestampIts_constr_1, &asn_PER_type_TimestampIts_constr_1, TimestampIts_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Traces.c b/vcits/ssem/src/Traces.c new file mode 100644 index 0000000..8f77aec --- /dev/null +++ b/vcits/ssem/src/Traces.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Traces.h" + +#include "PathHistory.h" +static asn_oer_constraints_t asn_OER_type_Traces_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..7)) */}; +static asn_per_constraints_t asn_PER_type_Traces_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_Traces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathHistory, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Traces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Traces_specs_1 = { + sizeof(struct Traces), + offsetof(struct Traces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Traces = { + "Traces", + "Traces", + &asn_OP_SEQUENCE_OF, + asn_DEF_Traces_tags_1, + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + asn_DEF_Traces_tags_1, /* Same as above */ + sizeof(asn_DEF_Traces_tags_1) + /sizeof(asn_DEF_Traces_tags_1[0]), /* 1 */ + { &asn_OER_type_Traces_constr_1, &asn_PER_type_Traces_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Traces_1, + 1, /* Single element */ + &asn_SPC_Traces_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/TrafficConditionSubCauseCode.c b/vcits/ssem/src/TrafficConditionSubCauseCode.c new file mode 100644 index 0000000..470ff2d --- /dev/null +++ b/vcits/ssem/src/TrafficConditionSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TrafficConditionSubCauseCode.h" + +int +TrafficConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficConditionSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TrafficConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficConditionSubCauseCode = { + "TrafficConditionSubCauseCode", + "TrafficConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_TrafficConditionSubCauseCode_tags_1, + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_TrafficConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficConditionSubCauseCode_constr_1, &asn_PER_type_TrafficConditionSubCauseCode_constr_1, TrafficConditionSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/TrafficRule.c b/vcits/ssem/src/TrafficRule.c new file mode 100644 index 0000000..ce7f77c --- /dev/null +++ b/vcits/ssem/src/TrafficRule.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TrafficRule.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TrafficRule_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_TrafficRule_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TrafficRule_value2enum_1[] = { + { 0, 9, "noPassing" }, + { 1, 18, "noPassingForTrucks" }, + { 2, 11, "passToRight" }, + { 3, 10, "passToLeft" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TrafficRule_enum2value_1[] = { + 0, /* noPassing(0) */ + 1, /* noPassingForTrucks(1) */ + 3, /* passToLeft(3) */ + 2 /* passToRight(2) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_TrafficRule_specs_1 = { + asn_MAP_TrafficRule_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TrafficRule_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TrafficRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrafficRule = { + "TrafficRule", + "TrafficRule", + &asn_OP_NativeEnumerated, + asn_DEF_TrafficRule_tags_1, + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + asn_DEF_TrafficRule_tags_1, /* Same as above */ + sizeof(asn_DEF_TrafficRule_tags_1) + /sizeof(asn_DEF_TrafficRule_tags_1[0]), /* 1 */ + { &asn_OER_type_TrafficRule_constr_1, &asn_PER_type_TrafficRule_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TrafficRule_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/TransitVehicleOccupancy.c b/vcits/ssem/src/TransitVehicleOccupancy.c new file mode 100644 index 0000000..862dad8 --- /dev/null +++ b/vcits/ssem/src/TransitVehicleOccupancy.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TransitVehicleOccupancy.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransitVehicleOccupancy_value2enum_1[] = { + { 0, 16, "occupancyUnknown" }, + { 1, 14, "occupancyEmpty" }, + { 2, 16, "occupancyVeryLow" }, + { 3, 12, "occupancyLow" }, + { 4, 12, "occupancyMed" }, + { 5, 13, "occupancyHigh" }, + { 6, 19, "occupancyNearlyFull" }, + { 7, 13, "occupancyFull" } +}; +static const unsigned int asn_MAP_TransitVehicleOccupancy_enum2value_1[] = { + 1, /* occupancyEmpty(1) */ + 7, /* occupancyFull(7) */ + 5, /* occupancyHigh(5) */ + 3, /* occupancyLow(3) */ + 4, /* occupancyMed(4) */ + 6, /* occupancyNearlyFull(6) */ + 0, /* occupancyUnknown(0) */ + 2 /* occupancyVeryLow(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1 = { + asn_MAP_TransitVehicleOccupancy_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransitVehicleOccupancy_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleOccupancy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy = { + "TransitVehicleOccupancy", + "TransitVehicleOccupancy", + &asn_OP_NativeEnumerated, + asn_DEF_TransitVehicleOccupancy_tags_1, + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleOccupancy_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + { &asn_OER_type_TransitVehicleOccupancy_constr_1, &asn_PER_type_TransitVehicleOccupancy_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransitVehicleOccupancy_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/TransitVehicleStatus.c b/vcits/ssem/src/TransitVehicleStatus.c new file mode 100644 index 0000000..d70b59e --- /dev/null +++ b/vcits/ssem/src/TransitVehicleStatus.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TransitVehicleStatus.h" + +int +TransitVehicleStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus = { + "TransitVehicleStatus", + "TransitVehicleStatus", + &asn_OP_BIT_STRING, + asn_DEF_TransitVehicleStatus_tags_1, + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_TransitVehicleStatus_constr_1, &asn_PER_type_TransitVehicleStatus_constr_1, TransitVehicleStatus_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/ssem/src/TransmissionAndSpeed.c b/vcits/ssem/src/TransmissionAndSpeed.c new file mode 100644 index 0000000..a4d5f7d --- /dev/null +++ b/vcits/ssem/src/TransmissionAndSpeed.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TransmissionAndSpeed.h" + +asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, transmisson), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transmisson" + }, + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_TransmissionAndSpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TransmissionAndSpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transmisson */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1 = { + sizeof(struct TransmissionAndSpeed), + offsetof(struct TransmissionAndSpeed, _asn_ctx), + asn_MAP_TransmissionAndSpeed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed = { + "TransmissionAndSpeed", + "TransmissionAndSpeed", + &asn_OP_SEQUENCE, + asn_DEF_TransmissionAndSpeed_tags_1, + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + asn_DEF_TransmissionAndSpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TransmissionAndSpeed_1, + 2, /* Elements count */ + &asn_SPC_TransmissionAndSpeed_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/TransmissionInterval.c b/vcits/ssem/src/TransmissionInterval.c new file mode 100644 index 0000000..03f9df9 --- /dev/null +++ b/vcits/ssem/src/TransmissionInterval.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TransmissionInterval.h" + +int +TransmissionInterval_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..10000) */, + -1}; +static asn_per_constraints_t asn_PER_type_TransmissionInterval_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 10000 } /* (1..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransmissionInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionInterval = { + "TransmissionInterval", + "TransmissionInterval", + &asn_OP_NativeInteger, + asn_DEF_TransmissionInterval_tags_1, + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + asn_DEF_TransmissionInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionInterval_tags_1) + /sizeof(asn_DEF_TransmissionInterval_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionInterval_constr_1, &asn_PER_type_TransmissionInterval_constr_1, TransmissionInterval_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/TransmissionState.c b/vcits/ssem/src/TransmissionState.c new file mode 100644 index 0000000..85b741d --- /dev/null +++ b/vcits/ssem/src/TransmissionState.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TransmissionState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransmissionState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransmissionState_value2enum_1[] = { + { 0, 7, "neutral" }, + { 1, 4, "park" }, + { 2, 12, "forwardGears" }, + { 3, 12, "reverseGears" }, + { 4, 9, "reserved1" }, + { 5, 9, "reserved2" }, + { 6, 9, "reserved3" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_TransmissionState_enum2value_1[] = { + 2, /* forwardGears(2) */ + 0, /* neutral(0) */ + 1, /* park(1) */ + 4, /* reserved1(4) */ + 5, /* reserved2(5) */ + 6, /* reserved3(6) */ + 3, /* reverseGears(3) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1 = { + asn_MAP_TransmissionState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransmissionState_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransmissionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionState = { + "TransmissionState", + "TransmissionState", + &asn_OP_NativeEnumerated, + asn_DEF_TransmissionState_tags_1, + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + asn_DEF_TransmissionState_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionState_constr_1, &asn_PER_type_TransmissionState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransmissionState_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/TurningRadius.c b/vcits/ssem/src/TurningRadius.c new file mode 100644 index 0000000..081383d --- /dev/null +++ b/vcits/ssem/src/TurningRadius.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "TurningRadius.h" + +int +TurningRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TurningRadius_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_TurningRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TurningRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TurningRadius = { + "TurningRadius", + "TurningRadius", + &asn_OP_NativeInteger, + asn_DEF_TurningRadius_tags_1, + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + asn_DEF_TurningRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_TurningRadius_tags_1) + /sizeof(asn_DEF_TurningRadius_tags_1[0]), /* 1 */ + { &asn_OER_type_TurningRadius_constr_1, &asn_PER_type_TurningRadius_constr_1, TurningRadius_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/VDS.c b/vcits/ssem/src/VDS.c new file mode 100644 index 0000000..b407523 --- /dev/null +++ b/vcits/ssem/src/VDS.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "VDS.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +VDS_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 6) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VDS_constr_1 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +asn_per_constraints_t asn_PER_type_VDS_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_VDS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VDS = { + "VDS", + "VDS", + &asn_OP_IA5String, + asn_DEF_VDS_tags_1, + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + asn_DEF_VDS_tags_1, /* Same as above */ + sizeof(asn_DEF_VDS_tags_1) + /sizeof(asn_DEF_VDS_tags_1[0]), /* 1 */ + { &asn_OER_type_VDS_constr_1, &asn_PER_type_VDS_constr_1, VDS_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/ValidityDuration.c b/vcits/ssem/src/ValidityDuration.c new file mode 100644 index 0000000..8069409 --- /dev/null +++ b/vcits/ssem/src/ValidityDuration.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ValidityDuration.h" + +int +ValidityDuration_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 86400)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..86400) */, + -1}; +static asn_per_constraints_t asn_PER_type_ValidityDuration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 0, 86400 } /* (0..86400) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ValidityDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ValidityDuration = { + "ValidityDuration", + "ValidityDuration", + &asn_OP_NativeInteger, + asn_DEF_ValidityDuration_tags_1, + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + asn_DEF_ValidityDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ValidityDuration_tags_1) + /sizeof(asn_DEF_ValidityDuration_tags_1[0]), /* 1 */ + { &asn_OER_type_ValidityDuration_constr_1, &asn_PER_type_ValidityDuration_constr_1, ValidityDuration_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/VehicleBreakdownSubCauseCode.c b/vcits/ssem/src/VehicleBreakdownSubCauseCode.c new file mode 100644 index 0000000..04c1350 --- /dev/null +++ b/vcits/ssem/src/VehicleBreakdownSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "VehicleBreakdownSubCauseCode.h" + +int +VehicleBreakdownSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleBreakdownSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleBreakdownSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleBreakdownSubCauseCode = { + "VehicleBreakdownSubCauseCode", + "VehicleBreakdownSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_VehicleBreakdownSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleBreakdownSubCauseCode_constr_1, &asn_PER_type_VehicleBreakdownSubCauseCode_constr_1, VehicleBreakdownSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/VehicleHeight.c b/vcits/ssem/src/VehicleHeight.c new file mode 100644 index 0000000..e58f6f5 --- /dev/null +++ b/vcits/ssem/src/VehicleHeight.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "VehicleHeight.h" + +int +VehicleHeight_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleHeight = { + "VehicleHeight", + "VehicleHeight", + &asn_OP_NativeInteger, + asn_DEF_VehicleHeight_tags_1, + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + asn_DEF_VehicleHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleHeight_constr_1, &asn_PER_type_VehicleHeight_constr_1, VehicleHeight_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/VehicleID.c b/vcits/ssem/src/VehicleID.c new file mode 100644 index 0000000..d0fbb9f --- /dev/null +++ b/vcits/ssem/src/VehicleID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "VehicleID.h" + +static asn_oer_constraints_t asn_OER_type_VehicleID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_VehicleID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.entityID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TemporaryID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "entityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.stationID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* entityID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* stationID */ +}; +asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1 = { + sizeof(struct VehicleID), + offsetof(struct VehicleID, _asn_ctx), + offsetof(struct VehicleID, present), + sizeof(((struct VehicleID *)0)->present), + asn_MAP_VehicleID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleID = { + "VehicleID", + "VehicleID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_VehicleID_constr_1, &asn_PER_type_VehicleID_constr_1, CHOICE_constraint }, + asn_MBR_VehicleID_1, + 2, /* Elements count */ + &asn_SPC_VehicleID_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/VehicleIdentification.c b/vcits/ssem/src/VehicleIdentification.c new file mode 100644 index 0000000..2b36b6a --- /dev/null +++ b/vcits/ssem/src/VehicleIdentification.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "VehicleIdentification.h" + +static asn_TYPE_member_t asn_MBR_VehicleIdentification_1[] = { + { ATF_POINTER, 2, offsetof(struct VehicleIdentification, wMInumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WMInumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wMInumber" + }, + { ATF_POINTER, 1, offsetof(struct VehicleIdentification, vDS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VDS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vDS" + }, +}; +static const int asn_MAP_VehicleIdentification_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_VehicleIdentification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleIdentification_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wMInumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vDS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleIdentification_specs_1 = { + sizeof(struct VehicleIdentification), + offsetof(struct VehicleIdentification, _asn_ctx), + asn_MAP_VehicleIdentification_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_VehicleIdentification_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleIdentification = { + "VehicleIdentification", + "VehicleIdentification", + &asn_OP_SEQUENCE, + asn_DEF_VehicleIdentification_tags_1, + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + asn_DEF_VehicleIdentification_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleIdentification_tags_1) + /sizeof(asn_DEF_VehicleIdentification_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleIdentification_1, + 2, /* Elements count */ + &asn_SPC_VehicleIdentification_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/VehicleLength.c b/vcits/ssem/src/VehicleLength.c new file mode 100644 index 0000000..8e5158c --- /dev/null +++ b/vcits/ssem/src/VehicleLength.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "VehicleLength.h" + +static asn_TYPE_member_t asn_MBR_VehicleLength_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleLength, vehicleLengthConfidenceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLengthConfidenceIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleLengthConfidenceIndication" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleLength_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vehicleLengthConfidenceIndication */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VehicleLength_specs_1 = { + sizeof(struct VehicleLength), + offsetof(struct VehicleLength, _asn_ctx), + asn_MAP_VehicleLength_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_SEQUENCE, + asn_DEF_VehicleLength_tags_1, + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VehicleLength_1, + 2, /* Elements count */ + &asn_SPC_VehicleLength_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/VehicleLengthConfidenceIndication.c b/vcits/ssem/src/VehicleLengthConfidenceIndication.c new file mode 100644 index 0000000..fe29a38 --- /dev/null +++ b/vcits/ssem/src/VehicleLengthConfidenceIndication.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "VehicleLengthConfidenceIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleLengthConfidenceIndication_value2enum_1[] = { + { 0, 16, "noTrailerPresent" }, + { 1, 29, "trailerPresentWithKnownLength" }, + { 2, 31, "trailerPresentWithUnknownLength" }, + { 3, 24, "trailerPresenceIsUnknown" }, + { 4, 11, "unavailable" } +}; +static const unsigned int asn_MAP_VehicleLengthConfidenceIndication_enum2value_1[] = { + 0, /* noTrailerPresent(0) */ + 3, /* trailerPresenceIsUnknown(3) */ + 1, /* trailerPresentWithKnownLength(1) */ + 2, /* trailerPresentWithUnknownLength(2) */ + 4 /* unavailable(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleLengthConfidenceIndication_specs_1 = { + asn_MAP_VehicleLengthConfidenceIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleLengthConfidenceIndication_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthConfidenceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthConfidenceIndication = { + "VehicleLengthConfidenceIndication", + "VehicleLengthConfidenceIndication", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleLengthConfidenceIndication_tags_1, + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthConfidenceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthConfidenceIndication_constr_1, &asn_PER_type_VehicleLengthConfidenceIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleLengthConfidenceIndication_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/VehicleLengthValue.c b/vcits/ssem/src/VehicleLengthValue.c new file mode 100644 index 0000000..860f713 --- /dev/null +++ b/vcits/ssem/src/VehicleLengthValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "VehicleLengthValue.h" + +int +VehicleLengthValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1023)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleLengthValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (1..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleLengthValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLengthValue = { + "VehicleLengthValue", + "VehicleLengthValue", + &asn_OP_NativeInteger, + asn_DEF_VehicleLengthValue_tags_1, + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + asn_DEF_VehicleLengthValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_VehicleLengthValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleLengthValue_constr_1, &asn_PER_type_VehicleLengthValue_constr_1, VehicleLengthValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/VehicleMass.c b/vcits/ssem/src/VehicleMass.c new file mode 100644 index 0000000..de433d1 --- /dev/null +++ b/vcits/ssem/src/VehicleMass.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "VehicleMass.h" + +int +VehicleMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1024)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleMass_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1024) */, + -1}; +asn_per_constraints_t asn_PER_type_VehicleMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_VehicleMass_tags_1, + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleMass_constr_1, &asn_PER_type_VehicleMass_constr_1, VehicleMass_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/VehicleRole.c b/vcits/ssem/src/VehicleRole.c new file mode 100644 index 0000000..57886f2 --- /dev/null +++ b/vcits/ssem/src/VehicleRole.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "VehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleRole_value2enum_1[] = { + { 0, 7, "default" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 6, "rescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 11, "agriculture" }, + { 9, 10, "commercial" }, + { 10, 8, "military" }, + { 11, 12, "roadOperator" }, + { 12, 4, "taxi" }, + { 13, 9, "reserved1" }, + { 14, 9, "reserved2" }, + { 15, 9, "reserved3" } +}; +static const unsigned int asn_MAP_VehicleRole_enum2value_1[] = { + 8, /* agriculture(8) */ + 9, /* commercial(9) */ + 3, /* dangerousGoods(3) */ + 0, /* default(0) */ + 6, /* emergency(6) */ + 10, /* military(10) */ + 1, /* publicTransport(1) */ + 5, /* rescue(5) */ + 13, /* reserved1(13) */ + 14, /* reserved2(14) */ + 15, /* reserved3(15) */ + 11, /* roadOperator(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 2, /* specialTransport(2) */ + 12 /* taxi(12) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_VehicleRole_specs_1 = { + asn_MAP_VehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleRole = { + "VehicleRole", + "VehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleRole_tags_1, + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + asn_DEF_VehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleRole_tags_1) + /sizeof(asn_DEF_VehicleRole_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleRole_constr_1, &asn_PER_type_VehicleRole_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/VehicleType.c b/vcits/ssem/src/VehicleType.c new file mode 100644 index 0000000..a2e549a --- /dev/null +++ b/vcits/ssem/src/VehicleType.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "VehicleType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_VehicleType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 7, "unknown" }, + { 2, 7, "special" }, + { 3, 4, "moto" }, + { 4, 3, "car" }, + { 5, 8, "carOther" }, + { 6, 3, "bus" }, + { 7, 8, "axleCnt2" }, + { 8, 8, "axleCnt3" }, + { 9, 8, "axleCnt4" }, + { 10, 15, "axleCnt4Trailer" }, + { 11, 15, "axleCnt5Trailer" }, + { 12, 15, "axleCnt6Trailer" }, + { 13, 20, "axleCnt5MultiTrailer" }, + { 14, 20, "axleCnt6MultiTrailer" }, + { 15, 20, "axleCnt7MultiTrailer" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_VehicleType_enum2value_1[] = { + 7, /* axleCnt2(7) */ + 8, /* axleCnt3(8) */ + 9, /* axleCnt4(9) */ + 10, /* axleCnt4Trailer(10) */ + 13, /* axleCnt5MultiTrailer(13) */ + 11, /* axleCnt5Trailer(11) */ + 14, /* axleCnt6MultiTrailer(14) */ + 12, /* axleCnt6Trailer(12) */ + 15, /* axleCnt7MultiTrailer(15) */ + 6, /* bus(6) */ + 4, /* car(4) */ + 5, /* carOther(5) */ + 3, /* moto(3) */ + 0, /* none(0) */ + 2, /* special(2) */ + 1 /* unknown(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1 = { + asn_MAP_VehicleType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleType_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 17, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleType = { + "VehicleType", + "VehicleType", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleType_tags_1, + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + asn_DEF_VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleType_constr_1, &asn_PER_type_VehicleType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/VehicleWidth.c b/vcits/ssem/src/VehicleWidth.c new file mode 100644 index 0000000..1d9eb5b --- /dev/null +++ b/vcits/ssem/src/VehicleWidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "VehicleWidth.h" + +int +VehicleWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 62)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..62) */, + -1}; +static asn_per_constraints_t asn_PER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 62 } /* (1..62) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_VehicleWidth_tags_1, + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + { &asn_OER_type_VehicleWidth_constr_1, &asn_PER_type_VehicleWidth_constr_1, VehicleWidth_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/Velocity.c b/vcits/ssem/src/Velocity.c new file mode 100644 index 0000000..b8a5c01 --- /dev/null +++ b/vcits/ssem/src/Velocity.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "Velocity.h" + +int +Velocity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 8191)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Velocity_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..8191) */, + -1}; +asn_per_constraints_t asn_PER_type_Velocity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 8191 } /* (0..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Velocity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Velocity = { + "Velocity", + "Velocity", + &asn_OP_NativeInteger, + asn_DEF_Velocity_tags_1, + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + asn_DEF_Velocity_tags_1, /* Same as above */ + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + { &asn_OER_type_Velocity_constr_1, &asn_PER_type_Velocity_constr_1, Velocity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/VerticalAcceleration.c b/vcits/ssem/src/VerticalAcceleration.c new file mode 100644 index 0000000..6d72de4 --- /dev/null +++ b/vcits/ssem/src/VerticalAcceleration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "VerticalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_VerticalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAccelerationValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalAcceleration, verticalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "verticalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VerticalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* verticalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* verticalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VerticalAcceleration_specs_1 = { + sizeof(struct VerticalAcceleration), + offsetof(struct VerticalAcceleration, _asn_ctx), + asn_MAP_VerticalAcceleration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_VerticalAcceleration_tags_1, + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VerticalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_VerticalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/VerticalAccelerationValue.c b/vcits/ssem/src/VerticalAccelerationValue.c new file mode 100644 index 0000000..0c2bc9f --- /dev/null +++ b/vcits/ssem/src/VerticalAccelerationValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "VerticalAccelerationValue.h" + +int +VerticalAccelerationValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -160 && value <= 161)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -1}; +asn_per_constraints_t asn_PER_type_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_VerticalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationValue = { + "VerticalAccelerationValue", + "VerticalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_VerticalAccelerationValue_tags_1, + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_VerticalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_VerticalAccelerationValue_tags_1[0]), /* 1 */ + { &asn_OER_type_VerticalAccelerationValue_constr_1, &asn_PER_type_VerticalAccelerationValue_constr_1, VerticalAccelerationValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/WMInumber.c b/vcits/ssem/src/WMInumber.c new file mode 100644 index 0000000..c1ae560 --- /dev/null +++ b/vcits/ssem/src/WMInumber.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "WMInumber.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127)) return -1; + } + return 0; +} + +int +WMInumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 3) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WMInumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +asn_per_constraints_t asn_PER_type_WMInumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_WMInumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WMInumber = { + "WMInumber", + "WMInumber", + &asn_OP_IA5String, + asn_DEF_WMInumber_tags_1, + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + asn_DEF_WMInumber_tags_1, /* Same as above */ + sizeof(asn_DEF_WMInumber_tags_1) + /sizeof(asn_DEF_WMInumber_tags_1[0]), /* 1 */ + { &asn_OER_type_WMInumber_constr_1, &asn_PER_type_WMInumber_constr_1, WMInumber_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/WaitOnStopline.c b/vcits/ssem/src/WaitOnStopline.c new file mode 100644 index 0000000..4bca1a9 --- /dev/null +++ b/vcits/ssem/src/WaitOnStopline.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "WaitOnStopline.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_WaitOnStopline_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WaitOnStopline = { + "WaitOnStopline", + "WaitOnStopline", + &asn_OP_BOOLEAN, + asn_DEF_WaitOnStopline_tags_1, + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + asn_DEF_WaitOnStopline_tags_1, /* Same as above */ + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/WheelBaseVehicle.c b/vcits/ssem/src/WheelBaseVehicle.c new file mode 100644 index 0000000..216dff5 --- /dev/null +++ b/vcits/ssem/src/WheelBaseVehicle.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "WheelBaseVehicle.h" + +int +WheelBaseVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_type_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WheelBaseVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WheelBaseVehicle = { + "WheelBaseVehicle", + "WheelBaseVehicle", + &asn_OP_NativeInteger, + asn_DEF_WheelBaseVehicle_tags_1, + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + asn_DEF_WheelBaseVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_WheelBaseVehicle_tags_1[0]), /* 1 */ + { &asn_OER_type_WheelBaseVehicle_constr_1, &asn_PER_type_WheelBaseVehicle_constr_1, WheelBaseVehicle_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/WrongWayDrivingSubCauseCode.c b/vcits/ssem/src/WrongWayDrivingSubCauseCode.c new file mode 100644 index 0000000..e365229 --- /dev/null +++ b/vcits/ssem/src/WrongWayDrivingSubCauseCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "WrongWayDrivingSubCauseCode.h" + +int +WrongWayDrivingSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_WrongWayDrivingSubCauseCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_WrongWayDrivingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WrongWayDrivingSubCauseCode = { + "WrongWayDrivingSubCauseCode", + "WrongWayDrivingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_WrongWayDrivingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + { &asn_OER_type_WrongWayDrivingSubCauseCode_constr_1, &asn_PER_type_WrongWayDrivingSubCauseCode_constr_1, WrongWayDrivingSubCauseCode_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/YawRate.c b/vcits/ssem/src/YawRate.c new file mode 100644 index 0000000..4daf2fb --- /dev/null +++ b/vcits/ssem/src/YawRate.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "YawRate.h" + +static asn_TYPE_member_t asn_MBR_YawRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct YawRate, yawRateConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateConfidence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "yawRateConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_YawRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yawRateValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* yawRateConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_YawRate_specs_1 = { + sizeof(struct YawRate), + offsetof(struct YawRate, _asn_ctx), + asn_MAP_YawRate_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_YawRate = { + "YawRate", + "YawRate", + &asn_OP_SEQUENCE, + asn_DEF_YawRate_tags_1, + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + asn_DEF_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_YawRate_1, + 2, /* Elements count */ + &asn_SPC_YawRate_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/YawRateConfidence.c b/vcits/ssem/src/YawRateConfidence.c new file mode 100644 index 0000000..4c54565 --- /dev/null +++ b/vcits/ssem/src/YawRateConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "YawRateConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_YawRateConfidence_value2enum_1[] = { + { 0, 13, "degSec-000-01" }, + { 1, 13, "degSec-000-05" }, + { 2, 13, "degSec-000-10" }, + { 3, 13, "degSec-001-00" }, + { 4, 13, "degSec-005-00" }, + { 5, 13, "degSec-010-00" }, + { 6, 13, "degSec-100-00" }, + { 7, 10, "outOfRange" }, + { 8, 11, "unavailable" } +}; +static const unsigned int asn_MAP_YawRateConfidence_enum2value_1[] = { + 0, /* degSec-000-01(0) */ + 1, /* degSec-000-05(1) */ + 2, /* degSec-000-10(2) */ + 3, /* degSec-001-00(3) */ + 4, /* degSec-005-00(4) */ + 5, /* degSec-010-00(5) */ + 6, /* degSec-100-00(6) */ + 7, /* outOfRange(7) */ + 8 /* unavailable(8) */ +}; +const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1 = { + asn_MAP_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_YawRateConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 9, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_YawRateConfidence_tags_1, + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateConfidence_constr_1, &asn_PER_type_YawRateConfidence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vcits/ssem/src/YawRateValue.c b/vcits/ssem/src/YawRateValue.c new file mode 100644 index 0000000..6fcdc5d --- /dev/null +++ b/vcits/ssem/src/YawRateValue.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/etsi/cdd_ts102894_2/ITS-Container.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "YawRateValue.h" + +int +YawRateValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32766 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_YawRateValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32766..32767) */, + -1}; +asn_per_constraints_t asn_PER_type_YawRateValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32766, 32767 } /* (-32766..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_YawRateValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateValue = { + "YawRateValue", + "YawRateValue", + &asn_OP_NativeInteger, + asn_DEF_YawRateValue_tags_1, + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + asn_DEF_YawRateValue_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateValue_tags_1) + /sizeof(asn_DEF_YawRateValue_tags_1[0]), /* 1 */ + { &asn_OER_type_YawRateValue_constr_1, &asn_PER_type_YawRateValue_constr_1, YawRateValue_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vcits/ssem/src/ZoneLength.c b/vcits/ssem/src/ZoneLength.c new file mode 100644 index 0000000..84a6387 --- /dev/null +++ b/vcits/ssem/src/ZoneLength.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/tmp/gen_env/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -D /tmp/gen_env/vcits/ssem -R -no-gen-example -fcompound-names -fno-include-deps -pdu=SSEM` + */ + +#include "ZoneLength.h" + +int +ZoneLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ZoneLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..10000) */, + -1}; +asn_per_constraints_t asn_PER_type_ZoneLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10000 } /* (0..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ZoneLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ZoneLength = { + "ZoneLength", + "ZoneLength", + &asn_OP_NativeInteger, + asn_DEF_ZoneLength_tags_1, + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + asn_DEF_ZoneLength_tags_1, /* Same as above */ + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + { &asn_OER_type_ZoneLength_constr_1, &asn_PER_type_ZoneLength_constr_1, ZoneLength_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/vccontainer/AreaType.h b/vcits/vccontainer/AreaType.h new file mode 100644 index 0000000..e0e1c37 --- /dev/null +++ b/vcits/vccontainer/AreaType.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _AreaType_H_ +#define _AreaType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AreaType { + AreaType_circle = 0, + AreaType_rectangle = 1, + AreaType_ellipse = 2 +} e_AreaType; + +/* AreaType */ +typedef long AreaType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AreaType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AreaType; +extern const asn_INTEGER_specifics_t asn_SPC_AreaType_specs_1; +asn_struct_free_f AreaType_free; +asn_struct_print_f AreaType_print; +asn_constr_check_f AreaType_constraint; +ber_type_decoder_f AreaType_decode_ber; +der_type_encoder_f AreaType_encode_der; +xer_type_decoder_f AreaType_decode_xer; +xer_type_encoder_f AreaType_encode_xer; +oer_type_decoder_f AreaType_decode_oer; +oer_type_encoder_f AreaType_encode_oer; +per_type_decoder_f AreaType_decode_uper; +per_type_encoder_f AreaType_encode_uper; +per_type_decoder_f AreaType_decode_aper; +per_type_encoder_f AreaType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AreaType_H_ */ +#include diff --git a/vcits/vccontainer/AreaTypeInfo.h b/vcits/vccontainer/AreaTypeInfo.h new file mode 100644 index 0000000..ecfc241 --- /dev/null +++ b/vcits/vccontainer/AreaTypeInfo.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _AreaTypeInfo_H_ +#define _AreaTypeInfo_H_ + + +#include + +/* Including external dependencies */ +#include "AreaType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AreaTypeInfo */ +typedef struct AreaTypeInfo { + AreaType_t type; + long distanceA; + long distanceB; + long angle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AreaTypeInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AreaTypeInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_AreaTypeInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_AreaTypeInfo_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AreaTypeInfo_H_ */ +#include diff --git a/vcits/vccontainer/CMakeLists.txt b/vcits/vccontainer/CMakeLists.txt new file mode 100644 index 0000000..0ddf40d --- /dev/null +++ b/vcits/vccontainer/CMakeLists.txt @@ -0,0 +1,34 @@ +# This file is auto-generated by command-cxx.sh +cmake_minimum_required(VERSION 3.9) + +message(STATUS "--> Configure build of |-vcits-vccontainer") + +project(vcits-vccontainer VERSION 0.2 DESCRIPTION "vccontainer part of vcits") + +add_library(vcits-vccontainer STATIC +src/AreaType.c +src/AreaTypeInfo.c +src/DecapStatus.c +src/EncapType.c +src/ItsAID.c +src/LocalInfo.c +src/MACAddress.c +src/PositionInfo.c +src/RawRxMessage.c +src/RawTxMessage.c +src/RxInfo.c +src/RxSecurity.c +src/SSP.c +src/SSPLen.c +src/TimeVal.c +src/TxInfo.c +src/TxSecurity.c +) + +set_target_properties(vcits-vccontainer PROPERTIES VERSION ${PROJECT_VERSION}) + +target_include_directories(vcits-vccontainer PRIVATE .) +target_include_directories(vcits-vccontainer PRIVATE ../asn1c) + +message(STATUS "--> Configure build of |-vcits-vccontainer - done") + diff --git a/vcits/vccontainer/DecapStatus.h b/vcits/vccontainer/DecapStatus.h new file mode 100644 index 0000000..6e67852 --- /dev/null +++ b/vcits/vccontainer/DecapStatus.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _DecapStatus_H_ +#define _DecapStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DecapStatus { + DecapStatus_none = 0, + DecapStatus_invalid_fmt = 1, + DecapStatus_verified_pkt = 2, + DecapStatus_unverifiable_pkt = 3 +} e_DecapStatus; + +/* DecapStatus */ +typedef long DecapStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DecapStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DecapStatus; +extern const asn_INTEGER_specifics_t asn_SPC_DecapStatus_specs_1; +asn_struct_free_f DecapStatus_free; +asn_struct_print_f DecapStatus_print; +asn_constr_check_f DecapStatus_constraint; +ber_type_decoder_f DecapStatus_decode_ber; +der_type_encoder_f DecapStatus_encode_der; +xer_type_decoder_f DecapStatus_decode_xer; +xer_type_encoder_f DecapStatus_encode_xer; +oer_type_decoder_f DecapStatus_decode_oer; +oer_type_encoder_f DecapStatus_encode_oer; +per_type_decoder_f DecapStatus_decode_uper; +per_type_encoder_f DecapStatus_encode_uper; +per_type_decoder_f DecapStatus_decode_aper; +per_type_encoder_f DecapStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DecapStatus_H_ */ +#include diff --git a/vcits/vccontainer/EncapType.h b/vcits/vccontainer/EncapType.h new file mode 100644 index 0000000..de4bd98 --- /dev/null +++ b/vcits/vccontainer/EncapType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _EncapType_H_ +#define _EncapType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EncapType { + EncapType_unsecure = 0, + EncapType_signed = 1 +} e_EncapType; + +/* EncapType */ +typedef long EncapType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EncapType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EncapType; +extern const asn_INTEGER_specifics_t asn_SPC_EncapType_specs_1; +asn_struct_free_f EncapType_free; +asn_struct_print_f EncapType_print; +asn_constr_check_f EncapType_constraint; +ber_type_decoder_f EncapType_decode_ber; +der_type_encoder_f EncapType_encode_der; +xer_type_decoder_f EncapType_decode_xer; +xer_type_encoder_f EncapType_encode_xer; +oer_type_decoder_f EncapType_decode_oer; +oer_type_encoder_f EncapType_encode_oer; +per_type_decoder_f EncapType_decode_uper; +per_type_encoder_f EncapType_encode_uper; +per_type_decoder_f EncapType_decode_aper; +per_type_encoder_f EncapType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EncapType_H_ */ +#include diff --git a/vcits/vccontainer/ItsAID.h b/vcits/vccontainer/ItsAID.h new file mode 100644 index 0000000..2b99214 --- /dev/null +++ b/vcits/vccontainer/ItsAID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _ItsAID_H_ +#define _ItsAID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ItsAID */ +typedef long ItsAID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ItsAID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ItsAID; +asn_struct_free_f ItsAID_free; +asn_struct_print_f ItsAID_print; +asn_constr_check_f ItsAID_constraint; +ber_type_decoder_f ItsAID_decode_ber; +der_type_encoder_f ItsAID_encode_der; +xer_type_decoder_f ItsAID_decode_xer; +xer_type_encoder_f ItsAID_encode_xer; +oer_type_decoder_f ItsAID_decode_oer; +oer_type_encoder_f ItsAID_encode_oer; +per_type_decoder_f ItsAID_decode_uper; +per_type_encoder_f ItsAID_encode_uper; +per_type_decoder_f ItsAID_decode_aper; +per_type_encoder_f ItsAID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ItsAID_H_ */ +#include diff --git a/vcits/vccontainer/LocalInfo.h b/vcits/vccontainer/LocalInfo.h new file mode 100644 index 0000000..3c3d9f7 --- /dev/null +++ b/vcits/vccontainer/LocalInfo.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _LocalInfo_H_ +#define _LocalInfo_H_ + + +#include + +/* Including external dependencies */ +#include "TimeVal.h" +#include "PositionInfo.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LocalInfo */ +typedef struct LocalInfo { + TimeVal_t timestamp; + PositionInfo_t positionInfo; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LocalInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LocalInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_LocalInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_LocalInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LocalInfo_H_ */ +#include diff --git a/vcits/vccontainer/MACAddress.h b/vcits/vccontainer/MACAddress.h new file mode 100644 index 0000000..08d19b8 --- /dev/null +++ b/vcits/vccontainer/MACAddress.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _MACAddress_H_ +#define _MACAddress_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MACAddress */ +typedef OCTET_STRING_t MACAddress_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MACAddress_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MACAddress; +asn_struct_free_f MACAddress_free; +asn_struct_print_f MACAddress_print; +asn_constr_check_f MACAddress_constraint; +ber_type_decoder_f MACAddress_decode_ber; +der_type_encoder_f MACAddress_encode_der; +xer_type_decoder_f MACAddress_decode_xer; +xer_type_encoder_f MACAddress_encode_xer; +oer_type_decoder_f MACAddress_decode_oer; +oer_type_encoder_f MACAddress_encode_oer; +per_type_decoder_f MACAddress_decode_uper; +per_type_encoder_f MACAddress_encode_uper; +per_type_decoder_f MACAddress_decode_aper; +per_type_encoder_f MACAddress_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MACAddress_H_ */ +#include diff --git a/vcits/vccontainer/PositionInfo.h b/vcits/vccontainer/PositionInfo.h new file mode 100644 index 0000000..6575e88 --- /dev/null +++ b/vcits/vccontainer/PositionInfo.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _PositionInfo_H_ +#define _PositionInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionInfo */ +typedef struct PositionInfo { + long latitude; + long longitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionInfo_H_ */ +#include diff --git a/vcits/vccontainer/RawRxMessage.h b/vcits/vccontainer/RawRxMessage.h new file mode 100644 index 0000000..ab6b9dd --- /dev/null +++ b/vcits/vccontainer/RawRxMessage.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _RawRxMessage_H_ +#define _RawRxMessage_H_ + + +#include + +/* Including external dependencies */ +#include "RxInfo.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LocalInfo; + +/* RawRxMessage */ +typedef struct RawRxMessage { + struct LocalInfo *localInfo; /* OPTIONAL */ + RxInfo_t rxInfo; + long payloadSize; + OCTET_STRING_t *payloadString; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RawRxMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RawRxMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _RawRxMessage_H_ */ +#include diff --git a/vcits/vccontainer/RawTxMessage.h b/vcits/vccontainer/RawTxMessage.h new file mode 100644 index 0000000..77f4e98 --- /dev/null +++ b/vcits/vccontainer/RawTxMessage.h @@ -0,0 +1,38 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _RawTxMessage_H_ +#define _RawTxMessage_H_ + + +#include + +/* Including external dependencies */ +#include "TxInfo.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RawTxMessage */ +typedef struct RawTxMessage { + TxInfo_t txInfo; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RawTxMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RawTxMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _RawTxMessage_H_ */ +#include diff --git a/vcits/vccontainer/RxInfo.h b/vcits/vccontainer/RxInfo.h new file mode 100644 index 0000000..090185c --- /dev/null +++ b/vcits/vccontainer/RxInfo.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _RxInfo_H_ +#define _RxInfo_H_ + + +#include + +/* Including external dependencies */ +#include "TimeVal.h" +#include +#include "RxSecurity.h" +#include "PositionInfo.h" +#include "AreaTypeInfo.h" +#include "MACAddress.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RxInfo */ +typedef struct RxInfo { + TimeVal_t timestamp; + long rssi; + long dataRate; + long trafficClassID; + long remainHopLimit; + RxSecurity_t security; + PositionInfo_t positionInfo; + AreaTypeInfo_t areaTypeInfo; + MACAddress_t sourceMacAddress; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RxInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RxInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_RxInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_RxInfo_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RxInfo_H_ */ +#include diff --git a/vcits/vccontainer/RxSecurity.h b/vcits/vccontainer/RxSecurity.h new file mode 100644 index 0000000..f8377cd --- /dev/null +++ b/vcits/vccontainer/RxSecurity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _RxSecurity_H_ +#define _RxSecurity_H_ + + +#include + +/* Including external dependencies */ +#include "DecapStatus.h" +#include "ItsAID.h" +#include "SSPLen.h" +#include "SSP.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RxSecurity */ +typedef struct RxSecurity { + DecapStatus_t status; + ItsAID_t itsAID; + SSPLen_t sspLen; + SSP_t ssp; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RxSecurity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RxSecurity; +extern asn_SEQUENCE_specifics_t asn_SPC_RxSecurity_specs_1; +extern asn_TYPE_member_t asn_MBR_RxSecurity_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RxSecurity_H_ */ +#include diff --git a/vcits/vccontainer/SSP.h b/vcits/vccontainer/SSP.h new file mode 100644 index 0000000..9017c40 --- /dev/null +++ b/vcits/vccontainer/SSP.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _SSP_H_ +#define _SSP_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SSP */ +typedef OCTET_STRING_t SSP_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SSP_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SSP; +asn_struct_free_f SSP_free; +asn_struct_print_f SSP_print; +asn_constr_check_f SSP_constraint; +ber_type_decoder_f SSP_decode_ber; +der_type_encoder_f SSP_encode_der; +xer_type_decoder_f SSP_decode_xer; +xer_type_encoder_f SSP_encode_xer; +oer_type_decoder_f SSP_decode_oer; +oer_type_encoder_f SSP_encode_oer; +per_type_decoder_f SSP_decode_uper; +per_type_encoder_f SSP_encode_uper; +per_type_decoder_f SSP_decode_aper; +per_type_encoder_f SSP_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SSP_H_ */ +#include diff --git a/vcits/vccontainer/SSPLen.h b/vcits/vccontainer/SSPLen.h new file mode 100644 index 0000000..13a3567 --- /dev/null +++ b/vcits/vccontainer/SSPLen.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _SSPLen_H_ +#define _SSPLen_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SSPLen */ +typedef long SSPLen_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SSPLen_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SSPLen; +asn_struct_free_f SSPLen_free; +asn_struct_print_f SSPLen_print; +asn_constr_check_f SSPLen_constraint; +ber_type_decoder_f SSPLen_decode_ber; +der_type_encoder_f SSPLen_encode_der; +xer_type_decoder_f SSPLen_decode_xer; +xer_type_encoder_f SSPLen_encode_xer; +oer_type_decoder_f SSPLen_decode_oer; +oer_type_encoder_f SSPLen_encode_oer; +per_type_decoder_f SSPLen_decode_uper; +per_type_encoder_f SSPLen_encode_uper; +per_type_decoder_f SSPLen_decode_aper; +per_type_encoder_f SSPLen_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SSPLen_H_ */ +#include diff --git a/vcits/vccontainer/TimeVal.h b/vcits/vccontainer/TimeVal.h new file mode 100644 index 0000000..2685da7 --- /dev/null +++ b/vcits/vccontainer/TimeVal.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _TimeVal_H_ +#define _TimeVal_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeVal */ +typedef struct TimeVal { + long sec; + long usec; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TimeVal_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TimeVal; +extern asn_SEQUENCE_specifics_t asn_SPC_TimeVal_specs_1; +extern asn_TYPE_member_t asn_MBR_TimeVal_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeVal_H_ */ +#include diff --git a/vcits/vccontainer/TxInfo.h b/vcits/vccontainer/TxInfo.h new file mode 100644 index 0000000..6265739 --- /dev/null +++ b/vcits/vccontainer/TxInfo.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _TxInfo_H_ +#define _TxInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include "TxSecurity.h" +#include "PositionInfo.h" +#include "AreaTypeInfo.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TxInfo */ +typedef struct TxInfo { + long destPort; + long dataRate; + long txPower; + long trafficClassID; + TxSecurity_t security; + PositionInfo_t positionInfo; + AreaTypeInfo_t areaTypeInfo; + BOOLEAN_t destPortPresent; + BOOLEAN_t dataRatePresent; + BOOLEAN_t txPowerPresent; + BOOLEAN_t trafficClassIDPresent; + BOOLEAN_t securityPresent; + BOOLEAN_t positionInfoPresent; + BOOLEAN_t areaTypeInfoPresent; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TxInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TxInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_TxInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_TxInfo_1[14]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TxInfo_H_ */ +#include diff --git a/vcits/vccontainer/TxSecurity.h b/vcits/vccontainer/TxSecurity.h new file mode 100644 index 0000000..a74644b --- /dev/null +++ b/vcits/vccontainer/TxSecurity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#ifndef _TxSecurity_H_ +#define _TxSecurity_H_ + + +#include + +/* Including external dependencies */ +#include "EncapType.h" +#include "ItsAID.h" +#include "SSPLen.h" +#include "SSP.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TxSecurity */ +typedef struct TxSecurity { + EncapType_t type; + ItsAID_t itsAID; + SSPLen_t sspLen; + SSP_t ssp; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TxSecurity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TxSecurity; +extern asn_SEQUENCE_specifics_t asn_SPC_TxSecurity_specs_1; +extern asn_TYPE_member_t asn_MBR_TxSecurity_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TxSecurity_H_ */ +#include diff --git a/vcits/vccontainer/asn_constant.h b/vcits/vccontainer/asn_constant.h new file mode 100644 index 0000000..bbe9e42 --- /dev/null +++ b/vcits/vccontainer/asn_constant.h @@ -0,0 +1,22 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_ItsAID (0) +#define max_val_ItsAID (2113663) +#define min_val_SSPLen (0) +#define max_val_SSPLen (255) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/vcits/vccontainer/src/AreaType.c b/vcits/vccontainer/src/AreaType.c new file mode 100644 index 0000000..ba9a94e --- /dev/null +++ b/vcits/vccontainer/src/AreaType.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "AreaType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AreaType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AreaType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_AreaType_value2enum_1[] = { + { 0, 6, "circle" }, + { 1, 9, "rectangle" }, + { 2, 7, "ellipse" } +}; +static const unsigned int asn_MAP_AreaType_enum2value_1[] = { + 0, /* circle(0) */ + 2, /* ellipse(2) */ + 1 /* rectangle(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_AreaType_specs_1 = { + asn_MAP_AreaType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AreaType_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AreaType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AreaType = { + "AreaType", + "AreaType", + &asn_OP_NativeEnumerated, + asn_DEF_AreaType_tags_1, + sizeof(asn_DEF_AreaType_tags_1) + /sizeof(asn_DEF_AreaType_tags_1[0]), /* 1 */ + asn_DEF_AreaType_tags_1, /* Same as above */ + sizeof(asn_DEF_AreaType_tags_1) + /sizeof(asn_DEF_AreaType_tags_1[0]), /* 1 */ + { &asn_OER_type_AreaType_constr_1, &asn_PER_type_AreaType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AreaType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/vccontainer/src/AreaTypeInfo.c b/vcits/vccontainer/src/AreaTypeInfo.c new file mode 100644 index 0000000..3a2229e --- /dev/null +++ b/vcits/vccontainer/src/AreaTypeInfo.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "AreaTypeInfo.h" + +static int +memb_distanceA_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_distanceB_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_angle_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_distanceA_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_distanceA_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_distanceB_constr_4 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_distanceB_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_angle_constr_5 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_angle_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_AreaTypeInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AreaTypeInfo, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AreaType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_NOFLAGS, 0, offsetof(struct AreaTypeInfo, distanceA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_distanceA_constr_3, &asn_PER_memb_distanceA_constr_3, memb_distanceA_constraint_1 }, + 0, 0, /* No default value */ + "distanceA" + }, + { ATF_NOFLAGS, 0, offsetof(struct AreaTypeInfo, distanceB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_distanceB_constr_4, &asn_PER_memb_distanceB_constr_4, memb_distanceB_constraint_1 }, + 0, 0, /* No default value */ + "distanceB" + }, + { ATF_NOFLAGS, 0, offsetof(struct AreaTypeInfo, angle), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_angle_constr_5, &asn_PER_memb_angle_constr_5, memb_angle_constraint_1 }, + 0, 0, /* No default value */ + "angle" + }, +}; +static const ber_tlv_tag_t asn_DEF_AreaTypeInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AreaTypeInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* distanceA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* distanceB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* angle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AreaTypeInfo_specs_1 = { + sizeof(struct AreaTypeInfo), + offsetof(struct AreaTypeInfo, _asn_ctx), + asn_MAP_AreaTypeInfo_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AreaTypeInfo = { + "AreaTypeInfo", + "AreaTypeInfo", + &asn_OP_SEQUENCE, + asn_DEF_AreaTypeInfo_tags_1, + sizeof(asn_DEF_AreaTypeInfo_tags_1) + /sizeof(asn_DEF_AreaTypeInfo_tags_1[0]), /* 1 */ + asn_DEF_AreaTypeInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_AreaTypeInfo_tags_1) + /sizeof(asn_DEF_AreaTypeInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AreaTypeInfo_1, + 4, /* Elements count */ + &asn_SPC_AreaTypeInfo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/vccontainer/src/DecapStatus.c b/vcits/vccontainer/src/DecapStatus.c new file mode 100644 index 0000000..662a6b7 --- /dev/null +++ b/vcits/vccontainer/src/DecapStatus.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "DecapStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DecapStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DecapStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DecapStatus_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 11, "invalid-fmt" }, + { 2, 12, "verified-pkt" }, + { 3, 16, "unverifiable-pkt" } +}; +static const unsigned int asn_MAP_DecapStatus_enum2value_1[] = { + 1, /* invalid-fmt(1) */ + 0, /* none(0) */ + 3, /* unverifiable-pkt(3) */ + 2 /* verified-pkt(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DecapStatus_specs_1 = { + asn_MAP_DecapStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DecapStatus_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DecapStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DecapStatus = { + "DecapStatus", + "DecapStatus", + &asn_OP_NativeEnumerated, + asn_DEF_DecapStatus_tags_1, + sizeof(asn_DEF_DecapStatus_tags_1) + /sizeof(asn_DEF_DecapStatus_tags_1[0]), /* 1 */ + asn_DEF_DecapStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_DecapStatus_tags_1) + /sizeof(asn_DEF_DecapStatus_tags_1[0]), /* 1 */ + { &asn_OER_type_DecapStatus_constr_1, &asn_PER_type_DecapStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DecapStatus_specs_1 /* Additional specs */ +}; + diff --git a/vcits/vccontainer/src/EncapType.c b/vcits/vccontainer/src/EncapType.c new file mode 100644 index 0000000..d999f06 --- /dev/null +++ b/vcits/vccontainer/src/EncapType.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "EncapType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EncapType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EncapType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EncapType_value2enum_1[] = { + { 0, 8, "unsecure" }, + { 1, 6, "signed" } +}; +static const unsigned int asn_MAP_EncapType_enum2value_1[] = { + 1, /* signed(1) */ + 0 /* unsecure(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EncapType_specs_1 = { + asn_MAP_EncapType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EncapType_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EncapType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EncapType = { + "EncapType", + "EncapType", + &asn_OP_NativeEnumerated, + asn_DEF_EncapType_tags_1, + sizeof(asn_DEF_EncapType_tags_1) + /sizeof(asn_DEF_EncapType_tags_1[0]), /* 1 */ + asn_DEF_EncapType_tags_1, /* Same as above */ + sizeof(asn_DEF_EncapType_tags_1) + /sizeof(asn_DEF_EncapType_tags_1[0]), /* 1 */ + { &asn_OER_type_EncapType_constr_1, &asn_PER_type_EncapType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EncapType_specs_1 /* Additional specs */ +}; + diff --git a/vcits/vccontainer/src/ItsAID.c b/vcits/vccontainer/src/ItsAID.c new file mode 100644 index 0000000..0298f8f --- /dev/null +++ b/vcits/vccontainer/src/ItsAID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "ItsAID.h" + +int +ItsAID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 2113663)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ItsAID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..2113663) */, + -1}; +asn_per_constraints_t asn_PER_type_ItsAID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 22, -1, 0, 2113663 } /* (0..2113663) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ItsAID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ItsAID = { + "ItsAID", + "ItsAID", + &asn_OP_NativeInteger, + asn_DEF_ItsAID_tags_1, + sizeof(asn_DEF_ItsAID_tags_1) + /sizeof(asn_DEF_ItsAID_tags_1[0]), /* 1 */ + asn_DEF_ItsAID_tags_1, /* Same as above */ + sizeof(asn_DEF_ItsAID_tags_1) + /sizeof(asn_DEF_ItsAID_tags_1[0]), /* 1 */ + { &asn_OER_type_ItsAID_constr_1, &asn_PER_type_ItsAID_constr_1, ItsAID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/vccontainer/src/LocalInfo.c b/vcits/vccontainer/src/LocalInfo.c new file mode 100644 index 0000000..7cfe80e --- /dev/null +++ b/vcits/vccontainer/src/LocalInfo.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "LocalInfo.h" + +asn_TYPE_member_t asn_MBR_LocalInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LocalInfo, timestamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeVal, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timestamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct LocalInfo, positionInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_LocalInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LocalInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timestamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* positionInfo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LocalInfo_specs_1 = { + sizeof(struct LocalInfo), + offsetof(struct LocalInfo, _asn_ctx), + asn_MAP_LocalInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LocalInfo = { + "LocalInfo", + "LocalInfo", + &asn_OP_SEQUENCE, + asn_DEF_LocalInfo_tags_1, + sizeof(asn_DEF_LocalInfo_tags_1) + /sizeof(asn_DEF_LocalInfo_tags_1[0]), /* 1 */ + asn_DEF_LocalInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_LocalInfo_tags_1) + /sizeof(asn_DEF_LocalInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LocalInfo_1, + 2, /* Elements count */ + &asn_SPC_LocalInfo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/vccontainer/src/MACAddress.c b/vcits/vccontainer/src/MACAddress.c new file mode 100644 index 0000000..8744c30 --- /dev/null +++ b/vcits/vccontainer/src/MACAddress.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "MACAddress.h" + +int +MACAddress_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 6)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MACAddress_constr_1 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +asn_per_constraints_t asn_PER_type_MACAddress_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MACAddress_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MACAddress = { + "MACAddress", + "MACAddress", + &asn_OP_OCTET_STRING, + asn_DEF_MACAddress_tags_1, + sizeof(asn_DEF_MACAddress_tags_1) + /sizeof(asn_DEF_MACAddress_tags_1[0]), /* 1 */ + asn_DEF_MACAddress_tags_1, /* Same as above */ + sizeof(asn_DEF_MACAddress_tags_1) + /sizeof(asn_DEF_MACAddress_tags_1[0]), /* 1 */ + { &asn_OER_type_MACAddress_constr_1, &asn_PER_type_MACAddress_constr_1, MACAddress_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/vccontainer/src/PositionInfo.c b/vcits/vccontainer/src/PositionInfo.c new file mode 100644 index 0000000..65bc68d --- /dev/null +++ b/vcits/vccontainer/src/PositionInfo.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "PositionInfo.h" + +static int +memb_latitude_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= (-2147483647L - 1) && value <= 2147483647)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_longitude_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= (-2147483647L - 1) && value <= 2147483647)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_latitude_constr_2 CC_NOTUSED = { + { 4, 0 } /* (-2147483648..2147483647) */, + -1}; +static asn_per_constraints_t asn_PER_memb_latitude_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, (-2147483647L - 1), 2147483647 } /* (-2147483648..2147483647) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_longitude_constr_3 CC_NOTUSED = { + { 4, 0 } /* (-2147483648..2147483647) */, + -1}; +static asn_per_constraints_t asn_PER_memb_longitude_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, (-2147483647L - 1), 2147483647 } /* (-2147483648..2147483647) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PositionInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionInfo, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_latitude_constr_2, &asn_PER_memb_latitude_constr_2, memb_latitude_constraint_1 }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionInfo, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_longitude_constr_3, &asn_PER_memb_longitude_constr_3, memb_longitude_constraint_1 }, + 0, 0, /* No default value */ + "longitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionInfo_specs_1 = { + sizeof(struct PositionInfo), + offsetof(struct PositionInfo, _asn_ctx), + asn_MAP_PositionInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionInfo = { + "PositionInfo", + "PositionInfo", + &asn_OP_SEQUENCE, + asn_DEF_PositionInfo_tags_1, + sizeof(asn_DEF_PositionInfo_tags_1) + /sizeof(asn_DEF_PositionInfo_tags_1[0]), /* 1 */ + asn_DEF_PositionInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionInfo_tags_1) + /sizeof(asn_DEF_PositionInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PositionInfo_1, + 2, /* Elements count */ + &asn_SPC_PositionInfo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/vccontainer/src/RawRxMessage.c b/vcits/vccontainer/src/RawRxMessage.c new file mode 100644 index 0000000..5d4ef5e --- /dev/null +++ b/vcits/vccontainer/src/RawRxMessage.c @@ -0,0 +1,150 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "RawRxMessage.h" + +#include "LocalInfo.h" +static int +memb_payloadSize_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_payloadString_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 1500)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_payloadSize_constr_4 CC_NOTUSED = { + { 2, 1 } /* (0..1500) */, + -1}; +static asn_per_constraints_t asn_PER_memb_payloadSize_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 1500 } /* (0..1500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_payloadString_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1500)) */}; +static asn_per_constraints_t asn_PER_memb_payloadString_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 11, 11, 1, 1500 } /* (SIZE(1..1500)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RawRxMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct RawRxMessage, localInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LocalInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "localInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct RawRxMessage, rxInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RxInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rxInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct RawRxMessage, payloadSize), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_payloadSize_constr_4, &asn_PER_memb_payloadSize_constr_4, memb_payloadSize_constraint_1 }, + 0, 0, /* No default value */ + "payloadSize" + }, + { ATF_POINTER, 1, offsetof(struct RawRxMessage, payloadString), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_payloadString_constr_5, &asn_PER_memb_payloadString_constr_5, memb_payloadString_constraint_1 }, + 0, 0, /* No default value */ + "payloadString" + }, +}; +static const int asn_MAP_RawRxMessage_oms_1[] = { 0, 3 }; +static const ber_tlv_tag_t asn_DEF_RawRxMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RawRxMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* localInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rxInfo */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* payloadSize */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* payloadString */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RawRxMessage_specs_1 = { + sizeof(struct RawRxMessage), + offsetof(struct RawRxMessage, _asn_ctx), + asn_MAP_RawRxMessage_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_RawRxMessage_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RawRxMessage = { + "RawRxMessage", + "RawRxMessage", + &asn_OP_SEQUENCE, + asn_DEF_RawRxMessage_tags_1, + sizeof(asn_DEF_RawRxMessage_tags_1) + /sizeof(asn_DEF_RawRxMessage_tags_1[0]), /* 1 */ + asn_DEF_RawRxMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RawRxMessage_tags_1) + /sizeof(asn_DEF_RawRxMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RawRxMessage_1, + 4, /* Elements count */ + &asn_SPC_RawRxMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/vccontainer/src/RawTxMessage.c b/vcits/vccontainer/src/RawTxMessage.c new file mode 100644 index 0000000..11f929e --- /dev/null +++ b/vcits/vccontainer/src/RawTxMessage.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "RawTxMessage.h" + +static asn_TYPE_member_t asn_MBR_RawTxMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RawTxMessage, txInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TxInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "txInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_RawTxMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RawTxMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* txInfo */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RawTxMessage_specs_1 = { + sizeof(struct RawTxMessage), + offsetof(struct RawTxMessage, _asn_ctx), + asn_MAP_RawTxMessage_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RawTxMessage = { + "RawTxMessage", + "RawTxMessage", + &asn_OP_SEQUENCE, + asn_DEF_RawTxMessage_tags_1, + sizeof(asn_DEF_RawTxMessage_tags_1) + /sizeof(asn_DEF_RawTxMessage_tags_1[0]), /* 1 */ + asn_DEF_RawTxMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RawTxMessage_tags_1) + /sizeof(asn_DEF_RawTxMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RawTxMessage_1, + 1, /* Elements count */ + &asn_SPC_RawTxMessage_specs_1 /* Additional specs */ +}; + diff --git a/vcits/vccontainer/src/RxInfo.c b/vcits/vccontainer/src/RxInfo.c new file mode 100644 index 0000000..62ab7fd --- /dev/null +++ b/vcits/vccontainer/src/RxInfo.c @@ -0,0 +1,262 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "RxInfo.h" + +static int +memb_rssi_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32768 && value <= 32767)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_dataRate_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_trafficClassID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_remainHopLimit_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_rssi_constr_3 CC_NOTUSED = { + { 2, 0 } /* (-32768..32767) */, + -1}; +static asn_per_constraints_t asn_PER_memb_rssi_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_dataRate_constr_4 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_dataRate_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_trafficClassID_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_trafficClassID_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_remainHopLimit_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_remainHopLimit_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RxInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RxInfo, timestamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeVal, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timestamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct RxInfo, rssi), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_rssi_constr_3, &asn_PER_memb_rssi_constr_3, memb_rssi_constraint_1 }, + 0, 0, /* No default value */ + "rssi" + }, + { ATF_NOFLAGS, 0, offsetof(struct RxInfo, dataRate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_dataRate_constr_4, &asn_PER_memb_dataRate_constr_4, memb_dataRate_constraint_1 }, + 0, 0, /* No default value */ + "dataRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct RxInfo, trafficClassID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_trafficClassID_constr_5, &asn_PER_memb_trafficClassID_constr_5, memb_trafficClassID_constraint_1 }, + 0, 0, /* No default value */ + "trafficClassID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RxInfo, remainHopLimit), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_remainHopLimit_constr_6, &asn_PER_memb_remainHopLimit_constr_6, memb_remainHopLimit_constraint_1 }, + 0, 0, /* No default value */ + "remainHopLimit" + }, + { ATF_NOFLAGS, 0, offsetof(struct RxInfo, security), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RxSecurity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "security" + }, + { ATF_NOFLAGS, 0, offsetof(struct RxInfo, positionInfo), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct RxInfo, areaTypeInfo), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AreaTypeInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "areaTypeInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct RxInfo, sourceMacAddress), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MACAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourceMacAddress" + }, +}; +static const ber_tlv_tag_t asn_DEF_RxInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RxInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timestamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rssi */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dataRate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* trafficClassID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* remainHopLimit */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* security */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* positionInfo */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* areaTypeInfo */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* sourceMacAddress */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RxInfo_specs_1 = { + sizeof(struct RxInfo), + offsetof(struct RxInfo, _asn_ctx), + asn_MAP_RxInfo_tag2el_1, + 9, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RxInfo = { + "RxInfo", + "RxInfo", + &asn_OP_SEQUENCE, + asn_DEF_RxInfo_tags_1, + sizeof(asn_DEF_RxInfo_tags_1) + /sizeof(asn_DEF_RxInfo_tags_1[0]), /* 1 */ + asn_DEF_RxInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_RxInfo_tags_1) + /sizeof(asn_DEF_RxInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RxInfo_1, + 9, /* Elements count */ + &asn_SPC_RxInfo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/vccontainer/src/RxSecurity.c b/vcits/vccontainer/src/RxSecurity.c new file mode 100644 index 0000000..2a553a4 --- /dev/null +++ b/vcits/vccontainer/src/RxSecurity.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "RxSecurity.h" + +asn_TYPE_member_t asn_MBR_RxSecurity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RxSecurity, status), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DecapStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "status" + }, + { ATF_NOFLAGS, 0, offsetof(struct RxSecurity, itsAID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsAID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "itsAID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RxSecurity, sspLen), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSPLen, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sspLen" + }, + { ATF_NOFLAGS, 0, offsetof(struct RxSecurity, ssp), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssp" + }, +}; +static const ber_tlv_tag_t asn_DEF_RxSecurity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RxSecurity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* itsAID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sspLen */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ssp */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RxSecurity_specs_1 = { + sizeof(struct RxSecurity), + offsetof(struct RxSecurity, _asn_ctx), + asn_MAP_RxSecurity_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RxSecurity = { + "RxSecurity", + "RxSecurity", + &asn_OP_SEQUENCE, + asn_DEF_RxSecurity_tags_1, + sizeof(asn_DEF_RxSecurity_tags_1) + /sizeof(asn_DEF_RxSecurity_tags_1[0]), /* 1 */ + asn_DEF_RxSecurity_tags_1, /* Same as above */ + sizeof(asn_DEF_RxSecurity_tags_1) + /sizeof(asn_DEF_RxSecurity_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RxSecurity_1, + 4, /* Elements count */ + &asn_SPC_RxSecurity_specs_1 /* Additional specs */ +}; + diff --git a/vcits/vccontainer/src/SSP.c b/vcits/vccontainer/src/SSP.c new file mode 100644 index 0000000..504d72e --- /dev/null +++ b/vcits/vccontainer/src/SSP.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "SSP.h" + +int +SSP_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 32)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SSP_constr_1 CC_NOTUSED = { + { 0, 0 }, + 32 /* (SIZE(32..32)) */}; +asn_per_constraints_t asn_PER_type_SSP_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SSP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SSP = { + "SSP", + "SSP", + &asn_OP_OCTET_STRING, + asn_DEF_SSP_tags_1, + sizeof(asn_DEF_SSP_tags_1) + /sizeof(asn_DEF_SSP_tags_1[0]), /* 1 */ + asn_DEF_SSP_tags_1, /* Same as above */ + sizeof(asn_DEF_SSP_tags_1) + /sizeof(asn_DEF_SSP_tags_1[0]), /* 1 */ + { &asn_OER_type_SSP_constr_1, &asn_PER_type_SSP_constr_1, SSP_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vcits/vccontainer/src/SSPLen.c b/vcits/vccontainer/src/SSPLen.c new file mode 100644 index 0000000..ab20e63 --- /dev/null +++ b/vcits/vccontainer/src/SSPLen.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "SSPLen.h" + +int +SSPLen_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SSPLen_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_SSPLen_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SSPLen_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SSPLen = { + "SSPLen", + "SSPLen", + &asn_OP_NativeInteger, + asn_DEF_SSPLen_tags_1, + sizeof(asn_DEF_SSPLen_tags_1) + /sizeof(asn_DEF_SSPLen_tags_1[0]), /* 1 */ + asn_DEF_SSPLen_tags_1, /* Same as above */ + sizeof(asn_DEF_SSPLen_tags_1) + /sizeof(asn_DEF_SSPLen_tags_1[0]), /* 1 */ + { &asn_OER_type_SSPLen_constr_1, &asn_PER_type_SSPLen_constr_1, SSPLen_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vcits/vccontainer/src/TimeVal.c b/vcits/vccontainer/src/TimeVal.c new file mode 100644 index 0000000..0c53338 --- /dev/null +++ b/vcits/vccontainer/src/TimeVal.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "TimeVal.h" + +static int +memb_sec_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= (-2147483647L - 1) && value <= 2147483647)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_usec_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= (-2147483647L - 1) && value <= 2147483647)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_sec_constr_2 CC_NOTUSED = { + { 4, 0 } /* (-2147483648..2147483647) */, + -1}; +static asn_per_constraints_t asn_PER_memb_sec_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, (-2147483647L - 1), 2147483647 } /* (-2147483648..2147483647) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_usec_constr_3 CC_NOTUSED = { + { 4, 0 } /* (-2147483648..2147483647) */, + -1}; +static asn_per_constraints_t asn_PER_memb_usec_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, (-2147483647L - 1), 2147483647 } /* (-2147483648..2147483647) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_TimeVal_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TimeVal, sec), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sec_constr_2, &asn_PER_memb_sec_constr_2, memb_sec_constraint_1 }, + 0, 0, /* No default value */ + "sec" + }, + { ATF_NOFLAGS, 0, offsetof(struct TimeVal, usec), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_usec_constr_3, &asn_PER_memb_usec_constr_3, memb_usec_constraint_1 }, + 0, 0, /* No default value */ + "usec" + }, +}; +static const ber_tlv_tag_t asn_DEF_TimeVal_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TimeVal_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sec */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* usec */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TimeVal_specs_1 = { + sizeof(struct TimeVal), + offsetof(struct TimeVal, _asn_ctx), + asn_MAP_TimeVal_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TimeVal = { + "TimeVal", + "TimeVal", + &asn_OP_SEQUENCE, + asn_DEF_TimeVal_tags_1, + sizeof(asn_DEF_TimeVal_tags_1) + /sizeof(asn_DEF_TimeVal_tags_1[0]), /* 1 */ + asn_DEF_TimeVal_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeVal_tags_1) + /sizeof(asn_DEF_TimeVal_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TimeVal_1, + 2, /* Elements count */ + &asn_SPC_TimeVal_specs_1 /* Additional specs */ +}; + diff --git a/vcits/vccontainer/src/TxInfo.c b/vcits/vccontainer/src/TxInfo.c new file mode 100644 index 0000000..41adaf2 --- /dev/null +++ b/vcits/vccontainer/src/TxInfo.c @@ -0,0 +1,312 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "TxInfo.h" + +static int +memb_destPort_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_dataRate_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_txPower_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -128 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_trafficClassID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_destPort_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_destPort_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_dataRate_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_dataRate_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_txPower_constr_4 CC_NOTUSED = { + { 1, 0 } /* (-128..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_txPower_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -128, 127 } /* (-128..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_trafficClassID_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_trafficClassID_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_TxInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TxInfo, destPort), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_destPort_constr_2, &asn_PER_memb_destPort_constr_2, memb_destPort_constraint_1 }, + 0, 0, /* No default value */ + "destPort" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxInfo, dataRate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_dataRate_constr_3, &asn_PER_memb_dataRate_constr_3, memb_dataRate_constraint_1 }, + 0, 0, /* No default value */ + "dataRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxInfo, txPower), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_txPower_constr_4, &asn_PER_memb_txPower_constr_4, memb_txPower_constraint_1 }, + 0, 0, /* No default value */ + "txPower" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxInfo, trafficClassID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_trafficClassID_constr_5, &asn_PER_memb_trafficClassID_constr_5, memb_trafficClassID_constraint_1 }, + 0, 0, /* No default value */ + "trafficClassID" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxInfo, security), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TxSecurity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "security" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxInfo, positionInfo), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxInfo, areaTypeInfo), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AreaTypeInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "areaTypeInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxInfo, destPortPresent), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "destPortPresent" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxInfo, dataRatePresent), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dataRatePresent" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxInfo, txPowerPresent), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "txPowerPresent" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxInfo, trafficClassIDPresent), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trafficClassIDPresent" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxInfo, securityPresent), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityPresent" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxInfo, positionInfoPresent), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "positionInfoPresent" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxInfo, areaTypeInfoPresent), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "areaTypeInfoPresent" + }, +}; +static const ber_tlv_tag_t asn_DEF_TxInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TxInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* destPort */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dataRate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* txPower */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* trafficClassID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* security */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* positionInfo */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* areaTypeInfo */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* destPortPresent */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* dataRatePresent */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* txPowerPresent */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* trafficClassIDPresent */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* securityPresent */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* positionInfoPresent */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 } /* areaTypeInfoPresent */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TxInfo_specs_1 = { + sizeof(struct TxInfo), + offsetof(struct TxInfo, _asn_ctx), + asn_MAP_TxInfo_tag2el_1, + 14, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TxInfo = { + "TxInfo", + "TxInfo", + &asn_OP_SEQUENCE, + asn_DEF_TxInfo_tags_1, + sizeof(asn_DEF_TxInfo_tags_1) + /sizeof(asn_DEF_TxInfo_tags_1[0]), /* 1 */ + asn_DEF_TxInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_TxInfo_tags_1) + /sizeof(asn_DEF_TxInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TxInfo_1, + 14, /* Elements count */ + &asn_SPC_TxInfo_specs_1 /* Additional specs */ +}; + diff --git a/vcits/vccontainer/src/TxSecurity.c b/vcits/vccontainer/src/TxSecurity.c new file mode 100644 index 0000000..b91f567 --- /dev/null +++ b/vcits/vccontainer/src/TxSecurity.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "VC-Container" + * found in "/tmp/gen_env/../vehicle_captain_its_asn1_specifications/custom/VC-Container-PDU-Descriptions.asn" + * `asn1c -D /tmp/gen_env/vcits/vccontainer -R -no-gen-example -fcompound-names -fno-include-deps -pdu=RawRxMessage -pdu=RawTxMessage` + */ + +#include "TxSecurity.h" + +asn_TYPE_member_t asn_MBR_TxSecurity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TxSecurity, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EncapType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxSecurity, itsAID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ItsAID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "itsAID" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxSecurity, sspLen), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSPLen, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sspLen" + }, + { ATF_NOFLAGS, 0, offsetof(struct TxSecurity, ssp), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssp" + }, +}; +static const ber_tlv_tag_t asn_DEF_TxSecurity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TxSecurity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* itsAID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sspLen */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ssp */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TxSecurity_specs_1 = { + sizeof(struct TxSecurity), + offsetof(struct TxSecurity, _asn_ctx), + asn_MAP_TxSecurity_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TxSecurity = { + "TxSecurity", + "TxSecurity", + &asn_OP_SEQUENCE, + asn_DEF_TxSecurity_tags_1, + sizeof(asn_DEF_TxSecurity_tags_1) + /sizeof(asn_DEF_TxSecurity_tags_1[0]), /* 1 */ + asn_DEF_TxSecurity_tags_1, /* Same as above */ + sizeof(asn_DEF_TxSecurity_tags_1) + /sizeof(asn_DEF_TxSecurity_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TxSecurity_1, + 4, /* Elements count */ + &asn_SPC_TxSecurity_specs_1 /* Additional specs */ +}; +